From 0229ff5dbd0f5b22cfc5398dcc2d8f040f67ee1e Mon Sep 17 00:00:00 2001 From: lechuck <lechuck@autistici.org> Date: Fri, 3 Jun 2016 01:01:56 +0100 Subject: [PATCH] [auto] Plugin: nextgen-gallery 2.1.43 --- .../plugins/nextgen-gallery/.hg_archival.txt | 4 +- .../plugins/nextgen-gallery/.hgsubstate | 2 +- wp-content/plugins/nextgen-gallery/.hgtags | 38 + .../plugins/nextgen-gallery/changelog.txt | 72 +- .../plugins/nextgen-gallery/composer.json | 12 + .../nextgen-gallery/freemius/LICENSE.txt | 340 + .../freemius/assets/css/admin/account.css | 1 + .../freemius/assets/css/admin/account.min.css | 1 + .../freemius/assets/css/admin/add-ons.css | 2 + .../freemius/assets/css/admin/add-ons.min.css | 1 + .../freemius/assets/css/admin/common.css | 1 + .../freemius/assets/css/admin/common.min.css | 1 + .../freemius/assets/css/admin/connect.css | 1 + .../freemius/assets/css/admin/connect.min.css | 1 + .../css/admin/deactivation-feedback.css | 1 + .../css/admin/deactivation-feedback.min.css | 1 + .../freemius/assets/css/admin/debug.css | 1 + .../freemius/assets/css/admin/debug.min.css | 1 + .../freemius/assets/css/common.css | 1 + .../freemius/assets/css/common.min.css | 1 + .../freemius/assets/img/icon.png | Bin 0 -> 22426 bytes .../freemius/assets/img/nextgen-gallery.png | Bin 0 -> 22426 bytes .../freemius/assets/img/plugin-icon.png | Bin 0 -> 9380 bytes .../assets/img/pootle-page-builder.png | Bin 0 -> 21773 bytes .../freemius/assets/img/rating-widget.jpg | Bin 0 -> 32400 bytes .../assets/js/jquery.ba-postmessage.js | 222 + .../assets/js/jquery.ba-postmessage.min.js | 1 + .../assets/js/nojquery.ba-postmessage.js | 140 + .../assets/js/nojquery.ba-postmessage.min.js | 1 + .../freemius/assets/js/postmessage.js | 110 + .../freemius/assets/js/postmessage.min.js | 1 + .../freemius/assets/scss/_colors.scss | 58 + .../freemius/assets/scss/_load.scss | 4 + .../freemius/assets/scss/_mixins.scss | 224 + .../freemius/assets/scss/_start.scss | 4 + .../freemius/assets/scss/_vars.scss | 5 + .../freemius/assets/scss/admin/account.scss | 171 + .../freemius/assets/scss/admin/add-ons.scss | 449 + .../freemius/assets/scss/admin/common.scss | 134 + .../freemius/assets/scss/admin/connect.scss | 421 + .../scss/admin/deactivation-feedback.scss | 120 + .../freemius/assets/scss/admin/debug.scss | 91 + .../nextgen-gallery/freemius/config.php | 229 + .../includes/class-freemius-abstract.php | 404 + .../freemius/includes/class-freemius.php | 9452 +++++++++++++++++ .../freemius/includes/class-fs-api.php | 455 + .../freemius/includes/class-fs-logger.php | 179 + .../includes/class-fs-plugin-updater.php | 334 + .../freemius/includes/class-fs-security.php | 61 + .../debug/class-fs-debug-bar-panel.php | 64 + .../includes/debug/debug-bar-start.php | 52 + .../includes/entities/class-fs-entity.php | 149 + .../entities/class-fs-plugin-info.php | 34 + .../entities/class-fs-plugin-license.php | 172 + .../entities/class-fs-plugin-plan.php | 124 + .../includes/entities/class-fs-plugin-tag.php | 24 + .../includes/entities/class-fs-plugin.php | 90 + .../includes/entities/class-fs-pricing.php | 141 + .../entities/class-fs-scope-entity.php | 29 + .../includes/entities/class-fs-site.php | 127 + .../entities/class-fs-subscription.php | 125 + .../includes/entities/class-fs-user.php | 62 + .../freemius/includes/fs-core-functions.php | 441 + .../includes/fs-essential-functions.php | 412 + .../includes/fs-plugin-info-dialog.php | 936 ++ .../freemius/includes/i18n.php | 352 + .../managers/class-fs-admin-menu-manager.php | 549 + .../class-fs-admin-notice-manager.php | 310 + .../managers/class-fs-cache-manager.php | 237 + .../managers/class-fs-key-value-storage.php | 295 + .../managers/class-fs-license-manager.php | 101 + .../managers/class-fs-option-manager.php | 302 + .../managers/class-fs-plan-manager.php | 162 + .../managers/class-fs-plugin-manager.php | 154 + .../Exceptions/ArgumentNotExistException.php | 6 + .../sdk/Exceptions/EmptyArgumentException.php | 6 + .../includes/sdk/Exceptions/Exception.php | 75 + .../Exceptions/InvalidArgumentException.php | 6 + .../sdk/Exceptions/OAuthException.php | 12 + .../freemius/includes/sdk/Freemius.php | 574 + .../freemius/includes/sdk/FreemiusBase.php | 178 + .../freemius/includes/sdk/LICENSE.txt | 340 + .../fs-essential-functions-1.1.7.1.php | 45 + .../nextgen-gallery/freemius/start.php | 341 + .../freemius/templates/account.php | 625 ++ .../freemius/templates/add-ons.php | 144 + .../freemius/templates/admin-notice.php | 46 + .../freemius/templates/all-admin-notice.php | 35 + .../freemius/templates/checkout.php | 260 + .../freemius/templates/connect.php | 206 + .../freemius/templates/contact.php | 77 + .../templates/deactivation-feedback-modal.php | 282 + .../freemius/templates/debug.php | 250 + .../freemius/templates/debug/api-calls.php | 138 + .../freemius/templates/debug/logger.php | 60 + .../templates/debug/plugins-themes-sync.php | 68 + .../templates/debug/scheduled-crons.php | 100 + .../freemius/templates/email.php | 46 + .../freemius/templates/firewall-issues-js.php | 60 + .../freemius/templates/plugin-icon.php | 93 + .../templates/plugin-info/description.php | 75 + .../templates/plugin-info/features.php | 97 + .../templates/plugin-info/screenshots.php | 33 + .../freemius/templates/powered-by.php | 41 + .../freemius/templates/pricing.php | 100 + .../templates/sticky-admin-notice-js.php | 40 + .../plugins/nextgen-gallery/nggallery.php | 159 +- .../class.nextgen_shortcode_manager.php | 40 +- .../non_pope/class.photocrati_installer.php | 3 +- .../class.photocrati_resource_manager.php | 2 +- .../pope/lib/class.component_registry.php | 2 +- .../modules/ajax/module.ajax.php | 6 +- .../attach_to_post/module.attach_to_post.php | 28 +- .../package.module.attach_to_post.php | 20 +- .../ngg_attach_to_post_tinymce_plugin.js | 6 +- .../ngg_attach_to_post_tinymce_plugin.min.js | 2 +- ...tach_to_post_tinymce_plugin_wp38_compat.js | 6 +- ..._to_post_tinymce_plugin_wp38_compat.min.js | 2 +- .../static/underscore.string.min.js | 2 +- .../templates/display_tab_js.php | 14 +- .../modules/cache/module.cache.php | 4 +- .../modules/datamapper/module.datamapper.php | 8 +- .../datamapper/package.module.datamapper.php | 36 +- .../module.dynamic_stylesheet.php | 4 +- .../package.module.dynamic_stylesheet.php | 4 +- .../module.dynamic_thumbnails.php | 4 +- .../package.module.dynamic_thumbnails.php | 3 +- .../module.frame_communication.php | 16 +- .../package.module.frame_communication.php | 2 +- .../static/frame_event_publisher.js | 42 +- .../static/frame_event_publisher.min.js | 2 +- .../modules/fs/module.fs.php | 4 +- .../modules/fs/package.module.fs.php | 2 +- .../modules/i18n/lang/nggallery-sv_SE.mo | Bin 0 -> 58381 bytes .../modules/i18n/lang/nggallery-sv_SE.po | 3238 ++++++ .../modules/i18n/lang/nggallery.po | 33 +- .../modules/i18n/module.i18n.php | 121 +- .../modules/lightbox/module.lightbox.php | 4 +- .../lightbox/package.module.lightbox.php | 23 +- .../modules/mvc/module.mvc.php | 6 +- .../modules/mvc/package.module.mvc.php | 56 +- .../module.nextgen_addgallery_page.php | 52 +- ...package.module.nextgen_addgallery_page.php | 10 +- .../templates/import_folder.php | 7 +- .../nextgen_admin/module.nextgen_admin.php | 56 +- .../package.module.nextgen_admin.php | 18 +- .../jquery-ui/jquery-ui-1.9.1.custom.css | 2 +- .../nextgen_admin/static/ngg_progressbar.js | 7 +- .../static/ngg_progressbar.min.js | 2 +- .../static/select2/select2.modded.min.js | 2 +- .../module.nextgen_basic_album.php | 4 +- .../package.module.nextgen_basic_album.php | 15 +- .../static/breadcrumbs.css | 2 +- .../static/breadcrumbs.min.css | 2 +- .../module.nextgen_basic_gallery.php | 4 +- .../package.module.nextgen_basic_gallery.php | 21 +- .../templates/slideshow/index.php | 2 +- .../templates/thumbnails/index.php | 2 +- .../module.nextgen_basic_imagebrowser.php | 4 +- ...kage.module.nextgen_basic_imagebrowser.php | 2 +- .../module.nextgen_basic_singlepic.php | 8 +- ...package.module.nextgen_basic_singlepic.php | 2 +- .../templates/nextgen_basic_singlepic.php | 2 +- .../module.nextgen_basic_tagcloud.php | 4 +- .../package.module.nextgen_basic_tagcloud.php | 4 +- .../module.nextgen_basic_templates.php | 4 +- ...package.module.nextgen_basic_templates.php | 16 +- .../nextgen_data/module.nextgen_data.php | 19 +- .../package.module.nextgen_data.php | 136 +- .../module.nextgen_gallery_display.php | 57 +- ...package.module.nextgen_gallery_display.php | 4 +- .../static/fontawesome/font-awesome.css | 2178 +++- .../static/fontawesome/font-awesome.min.css | 5 +- .../static/fonts/FontAwesome.otf | Bin 93888 -> 123112 bytes .../static/fonts/fontawesome-webfont.eot | Bin 60767 -> 75220 bytes .../static/fonts/fontawesome-webfont.svg | 170 +- .../static/fonts/fontawesome-webfont.ttf | Bin 122092 -> 150920 bytes .../static/fonts/fontawesome-webfont.woff | Bin 71508 -> 89076 bytes .../static/fonts/fontawesome-webfont.woff2 | Bin 56780 -> 70728 bytes .../templates/related.php | 5 +- .../module.nextgen_other_options.php | 4 +- .../package.module.nextgen_other_options.php | 12 +- .../module.nextgen_pagination.php | 4 +- .../module.nextgen_pro_upgrade.php | 4 +- .../package.module.nextgen_pro_upgrade.php | 2 +- .../nextgen_pro_upgrade/templates/index.php | 2 +- .../nextgen_pro_upgrade/templates/plus.php | 4 +- .../nextgen_pro_upgrade/templates/pro.php | 2 +- .../module.nextgen_settings.php | 6 +- .../nextgen_xmlrpc/module.nextgen_xmlrpc.php | 4 +- .../modules/ngglegacy/admin/admin.php | 28 +- .../modules/ngglegacy/admin/ajax.php | 153 +- .../modules/ngglegacy/admin/album.php | 2 +- .../modules/ngglegacy/admin/functions.php | 6 +- .../modules/ngglegacy/admin/install.php | 4 +- .../ngglegacy/admin/manage-galleries.php | 6 +- .../modules/ngglegacy/admin/manage-images.php | 13 +- .../modules/ngglegacy/admin/manage.php | 23 +- .../modules/ngglegacy/admin/overview.php | 740 +- .../modules/ngglegacy/css/nggallery.css | 4 +- .../modules/ngglegacy/lib/media-rss.php | 2 +- .../modules/ngglegacy/lib/meta.php | 42 +- .../modules/ngglegacy/lib/ngg-db.php | 21 +- .../modules/ngglegacy/lib/shortcodes.php | 4 +- .../modules/ngglegacy/lib/tags.php | 14 +- .../modules/ngglegacy/module.ngglegacy.php | 4 +- .../modules/ngglegacy/nggallery.php | 5 +- .../modules/ngglegacy/static/default.css | 4 +- .../ngglegacy/view/imagebrowser-caption.php | 5 + .../ngglegacy/view/imagebrowser-exif.php | 7 +- .../modules/ngglegacy/view/imagebrowser.php | 7 +- .../modules/ngglegacy/view/singlepic.php | 2 +- .../modules/router/module.router.php | 4 +- .../modules/router/package.module.router.php | 10 +- .../modules/security/module.security.php | 4 +- .../simplehtmldom/module.simple_html_dom.php | 4 +- .../module.third_party_compat.php | 4 +- .../modules/validation/module.validation.php | 4 +- .../modules/widget/module.widget.php | 4 +- .../modules/widget/package.module.widget.php | 8 +- .../module.wordpress_routing.php | 4 +- .../modules/wpcli/module.wpcli.php | 4 +- .../product.photocrati_nextgen.php | 8 +- wp-content/plugins/nextgen-gallery/readme.txt | 192 +- .../plugins/nextgen-gallery/wpml-config.xml | 5 + 225 files changed, 30707 insertions(+), 1076 deletions(-) create mode 100644 wp-content/plugins/nextgen-gallery/composer.json create mode 100644 wp-content/plugins/nextgen-gallery/freemius/LICENSE.txt create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/account.css create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/account.min.css create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/add-ons.css create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/add-ons.min.css create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/common.css create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/common.min.css create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/connect.css create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/connect.min.css create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/deactivation-feedback.css create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/deactivation-feedback.min.css create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/debug.css create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/debug.min.css create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/css/common.css create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/css/common.min.css create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/img/icon.png create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/img/nextgen-gallery.png create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/img/plugin-icon.png create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/img/pootle-page-builder.png create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/img/rating-widget.jpg create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/js/jquery.ba-postmessage.js create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/js/jquery.ba-postmessage.min.js create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/js/nojquery.ba-postmessage.js create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/js/nojquery.ba-postmessage.min.js create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/js/postmessage.js create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/js/postmessage.min.js create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/scss/_colors.scss create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/scss/_load.scss create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/scss/_mixins.scss create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/scss/_start.scss create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/scss/_vars.scss create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/account.scss create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/add-ons.scss create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/common.scss create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/connect.scss create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/deactivation-feedback.scss create mode 100644 wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/debug.scss create mode 100644 wp-content/plugins/nextgen-gallery/freemius/config.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/class-freemius-abstract.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/class-freemius.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-api.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-logger.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-plugin-updater.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-security.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/debug/class-fs-debug-bar-panel.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/debug/debug-bar-start.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-entity.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-info.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-license.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-plan.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-tag.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-pricing.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-scope-entity.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-site.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-subscription.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-user.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/fs-core-functions.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/fs-essential-functions.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/fs-plugin-info-dialog.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/i18n.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-admin-menu-manager.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-admin-notice-manager.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-cache-manager.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-key-value-storage.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-license-manager.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-option-manager.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-plan-manager.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-plugin-manager.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/ArgumentNotExistException.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/EmptyArgumentException.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/Exception.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/InvalidArgumentException.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/OAuthException.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Freemius.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/sdk/FreemiusBase.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/sdk/LICENSE.txt create mode 100644 wp-content/plugins/nextgen-gallery/freemius/includes/supplements/fs-essential-functions-1.1.7.1.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/start.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/account.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/add-ons.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/admin-notice.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/all-admin-notice.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/checkout.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/connect.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/contact.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/deactivation-feedback-modal.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/debug.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/debug/api-calls.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/debug/logger.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/debug/plugins-themes-sync.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/debug/scheduled-crons.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/email.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/firewall-issues-js.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/plugin-icon.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/plugin-info/description.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/plugin-info/features.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/plugin-info/screenshots.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/powered-by.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/pricing.php create mode 100644 wp-content/plugins/nextgen-gallery/freemius/templates/sticky-admin-notice-js.php create mode 100644 wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/i18n/lang/nggallery-sv_SE.mo create mode 100644 wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/i18n/lang/nggallery-sv_SE.po create mode 100644 wp-content/plugins/nextgen-gallery/wpml-config.xml diff --git a/wp-content/plugins/nextgen-gallery/.hg_archival.txt b/wp-content/plugins/nextgen-gallery/.hg_archival.txt index f2349f48a..0d99dcd9b 100644 --- a/wp-content/plugins/nextgen-gallery/.hg_archival.txt +++ b/wp-content/plugins/nextgen-gallery/.hg_archival.txt @@ -1,4 +1,4 @@ repo: 2b82bc45fbe039c6f4c9f0c667e9cd1ee4d84cbb -node: 3f9f49cb9ae1c156b83b728aafc1f25ca60a8111 +node: 3fb2d7676b857e7aac86473767d12550615b006e branch: default -tag: 2.1.15 +tag: 2.1.43 diff --git a/wp-content/plugins/nextgen-gallery/.hgsubstate b/wp-content/plugins/nextgen-gallery/.hgsubstate index 8a7dff39c..1d1ed8551 100644 --- a/wp-content/plugins/nextgen-gallery/.hgsubstate +++ b/wp-content/plugins/nextgen-gallery/.hgsubstate @@ -1 +1 @@ -a67d026aa1d495eb6c653faa84450a198d8ab18b pope +db06534b8bacd5f4a2be28cacad6d94aa24a6494 pope diff --git a/wp-content/plugins/nextgen-gallery/.hgtags b/wp-content/plugins/nextgen-gallery/.hgtags index a644e66b6..2e0d80b10 100644 --- a/wp-content/plugins/nextgen-gallery/.hgtags +++ b/wp-content/plugins/nextgen-gallery/.hgtags @@ -324,3 +324,41 @@ bbc6a008ce6a9700a3855e4f12f3e6cb27553f92 2.1.11 7b09155e13df437933b9312ef9589e1b8525742d 2.1.12 224613db46bd7bcc40d3a8f1892c0dd543deecc9 2.1.13 7252966ee2d3d67bf7e753a2c862eeea4e620bbc 2.1.14 +3f9f49cb9ae1c156b83b728aafc1f25ca60a8111 2.1.15 +6b51acef81e7b87d326dfb779d54a3dea61d5bfa 2.1.16 +e7779f27830389673327ba22b8c74150589fd2c4 2.1.17 +7f7e376fc415b9bd2b2660863359dd41fd996f6e 2.1.18 +7f7e376fc415b9bd2b2660863359dd41fd996f6e 2.1.18 +0000000000000000000000000000000000000000 2.1.18 +0000000000000000000000000000000000000000 2.1.18 +305c0878ca0fa96a99da331df514830d848e1b1c 2.1.18 +adbd42e0b7450aa76fd70c4218d07bac9beb3c7b 2.1.19 +adbd42e0b7450aa76fd70c4218d07bac9beb3c7b 2.1.19 +22e4846d4b3b59177e20e26974edd4b84470c394 2.1.19 +f334e538b611b3210e9187f696b5d61089d6a470 2.1.21 +56c44c308de1f74ad1411fd5db0ea0eadbdfade9 2.1.22 +a3e4a954e5b4c109fb932394d288ba47376223c2 2.1.23 +5a705abc91262e278349ccd39863f0798a70aa53 2.1.27 +1f61383a52c5231be6cf36d0873590d9dc76f76f 2.1.28 +d5476510d49f93860f76e7670a491f44546179aa 2.1.29 +bf2b7351e226d1469a5dcf3e51cc951826cc467b 2.1.30 +82e5658c1e6a94d9d6023ce7aad47d8540ddb185 2.1.31 +a39beb5df2083d84529d5cd2c22d10f1c87aa3f1 2.1.32 +385a8cd3e9e6a92836fbbba75dde1c161095f324 2.1.33 +e7d2e379659f16a967240c536b73436ce7523c9c 2.1.34 +e7d2e379659f16a967240c536b73436ce7523c9c 2.1.34 +0000000000000000000000000000000000000000 2.1.34 +0000000000000000000000000000000000000000 2.1.34 +0b3ffad2b478d9017a2d03a880de7d21093108d2 2.1.34 +3dbcfaf90c539496708e32502b68e3f5f2c0b1fd 2.1.35 +3dbcfaf90c539496708e32502b68e3f5f2c0b1fd 2.1.35 +0000000000000000000000000000000000000000 2.1.35 +0000000000000000000000000000000000000000 2.1.35 +e70349cb37f2706f7e3e0c986dcd4e12e91961ad 2.1.35 +f8e0cc86a8a01afe67165961cbe57bb2c1bc126b 2.1.36 +fae688dab36bc460febc772638629e8da60e03a7 2.1.37 +ae577878212945c437421606207f5b8b709b3bca 2.1.38 +fccdd0b40c53a633b6807cbaa444bc5c57be7c6c 2.1.39 +0e8bc8a20a261d4d721473843f6e6fb5adcf7ebf 2.1.40 +24b36e3784c24a4722ab93f865394730da376128 2.1.41 +ca0e796e54ee4845e721b06f73b91f3a58606cc3 2.1.42 diff --git a/wp-content/plugins/nextgen-gallery/changelog.txt b/wp-content/plugins/nextgen-gallery/changelog.txt index 4b59bd3f6..81af0c13d 100644 --- a/wp-content/plugins/nextgen-gallery/changelog.txt +++ b/wp-content/plugins/nextgen-gallery/changelog.txt @@ -1,5 +1,75 @@ NextGEN Gallery -by Photocrati Media +by Imagely + += V2.1.43 - 05.25.2016 = +* NEW: Added Freemius integration +* NEW: Added actions actions ngg_updated_image_meta, ngg_recovered_image, ngg_generated_image, ngg_moved_images, and ngg_copied_images +* NEW: Added patch from WPML copyping ATP galleries to new language pages when duplicating a page to a new language +* Changed: Moved 'ngg_delete_picture' action to before the image has been removed +* Changed: Now prevent maximum_entity_count from being set to 0 or lower in Other Options +* Changed: Updated "Roots" relative url support to re-branded "Soil" relative url +* Changed: Updated branding so all publicly visible instances of "Photocrati" are now "Imagely" +* Changed: Upgraded FontAwesome to 4.6.1 +* Fixed: Album breadcrumbs when used with legacy templates +* Fixed: Compatibility with added WP role objects without a remove_cap() method +* Fixed: Default watermark setting causing images to be watermarked by text even though "image" is shown chosen on "Other Options" +* Fixed: Navigating to albums with UTF8 characters in their name +* Fixed: Replaced use of get_currentuserinfo() with wp_get_current_user() + += V2.1.33 - 04.25.2016 = +* Fixed: Compatibility with themes and plugins which enqueue underscore.js in the head of the document +* Fixed: Ensure that shutter reloaded can find it's image assets + += V2.1.31 - 04.05.2016 = +* NEW: Added constant NGG_SCRIPT_VERSION that is either the plugin version or rand() should SCRIPT_DEBUG be on +* NEW: Added warning when saving galleries and refuse to automatically delete galleries with one or more "../" in their path. +* Changed: ATP slug field disallow several characters (spaces, ?, |, &, [, ]) by replacing them with dashes as they are typed +* Changed: Made get_static_url() look in the WP_CONTENT/ngg/(module_name)/static directory for CSS/JS overrides +* Fixed: Bug introduced in 2.1.24 allowing gallery paths & slugs to contain spaces; galleries must be "saved" once to correct them +* Fixed: Compatibility with WPML String Translation when uploading images without title or description +* Fixed: Made get_image_url() encode gallery directory names 'because%this%is' a valid directory +* Fixed: Manage Galleries > Search results not saving when edited +* Fixed: Provided imagebrowser legacy templates not using AJAX pagination when enabled +* Fixed: Resource manager breaking the layout of the Multisite Plugin Activation page +* Fixed: Static url generation when the nextgen-gallery directory is a symlink outside of the WordPress roots + += V2.1.27 - 03.16.2016 = +* Fixed: Formatting issues with changelog + += V2.1.26 - 03.15.2016 = +* Fixed: Removed unnecessary whitespace from "Related images" template that caused issues with some themes +* Fixed: Detection of parents from grand-child-albums when generating breadcrumbs +* Fixed: C_Router->initialize() generating warnings with WP-CLI or the WP-CLI-Cron +* Fixed: Added Roots-theme relative-url support to C_MVC_Router->get_static_url() +* Fixed: nggdb::get_unique_slug() not generating unique slugs +* Fixed: Album breadcrumbs CSS compatibility with certain themes +* Fixed: C_Gallery->validation() not working properly when sanitizing gallery title using UTF-8 +* Fixed: NGG's cross-frame-communication cookies not being purged +* Fixed: Updated C_Dynamic_Thumbnails_Manager->get_uri_from_params() with user-submitted patch +* Fixed: Updated C_CustomPost_DataMapper_Driver->_save_entity() with user-submitted patch +* Fixed: Cleaned up overview.php's readability and removed some now-long-unused code from legacy's ajax.php + += V2.1.23 - 01.05.2015 = +* Secured: XSS vulnerabilities in Manage Gallery pages +* Secured: Ability to browse and import gallery folders + += V2.1.19 - 12.23.2015 = +* Fixed: PHP warning about incorrect usage of parse_url() + += V2.1.18 - 12.21.2015 = +* NEW: Added text domain and domain path to plugin header +* NEW: Add the ability to specify gallery title with import_gallery_from_fs() method +* NEW: Swedish (sv_SE) translation (thanks Anders O Johansson) +* Changed: Updated FontAwesome to version 4.5 +* Changed: Handle for bundled version select2 is now called 'ngg_select2' +* Fixed: Removed redundant translatable strings (thanks Rene Wolf) +* Fixed: Loading non-WOFF fonts on IIS servers +* Fixed: Attempt to load non-existing minified translation files for Plupload +* Fixed: Order direction not honored on Manage Galleries page +* Fixed: _NGG_Galleries_List_Table compatibility with WordPress 4.3+ +* Fixed: Double-UTF8-encoding of image metadata +* Fixed: Don't use interframe communication outside of the Insert Gallery Window +* Fixed: Problem deleting interframe communication cookies = V2.1.15 - 09.09.2015 = * Secured: Image uploads diff --git a/wp-content/plugins/nextgen-gallery/composer.json b/wp-content/plugins/nextgen-gallery/composer.json new file mode 100644 index 000000000..6baf73020 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/composer.json @@ -0,0 +1,12 @@ +{ + "name": "imagely/nextgen-gallery", + "description": "The most popular gallery plugin for WordPress and one of the most popular plugins of all time with over 12 million downloads.", + "keywords": ["nextgen", "nextgen gallery", "gallery", "galleries", "image", "images", "image gallery", "photo", "photos", "photo gallery", "picture", "pictures", "picture gallery", "album", "albums", "photo albums", "image album", "media", "media gallery", "thumbnails", "thumbnail gallery", "thumbnail galleries", "slideshow", "slideshows", "slideshow gallery", "slideshow galleries", "fancybox", "lightbox", "responsive", "responsive gallery", "responsive galleries", "singlepic", "watermarks", "watermarking", "photography", "photographer"], + "homepage": "https://www.imagely.com/", + "license": "GPLv2", + "type": "wordpress-plugin", + "require": { + "php": ">=5.2", + "composer/installers": "v1.0.6" + } +} diff --git a/wp-content/plugins/nextgen-gallery/freemius/LICENSE.txt b/wp-content/plugins/nextgen-gallery/freemius/LICENSE.txt new file mode 100644 index 000000000..d6a93266f --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/LICENSE.txt @@ -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/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/account.css b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/account.css new file mode 100644 index 000000000..8044ac690 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/account.css @@ -0,0 +1 @@ +#fs_account .postbox,#fs_account .widefat{max-width:700px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px 0;line-height:1.4;border-bottom:1px solid #F1F1F1}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .button i.dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:0.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li form{display:inline-block}#fs_account .fs-header-actions li a{text-decoration:none}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table form{display:inline-block}.fs-key-value-table tr td:first-child{text-align:right}.fs-key-value-table tr td:first-child nobr{font-weight:bold}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr td.fs-right{text-align:right}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table var,.fs-key-value-table code{color:#0073AA;font-size:16px;background:none}label.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:bold}#fs_addons td:last-child,#fs_addons th:last-child{text-align:right}#fs_addons th{font-weight:bold} diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/account.min.css b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/account.min.css new file mode 100644 index 000000000..f0deec708 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/account.min.css @@ -0,0 +1 @@ +#fs_account .postbox,#fs_account .widefat{max-width:700px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px 0;line-height:1.4;border-bottom:1px solid #f1f1f1}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .button i.dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li form{display:inline-block}#fs_account .fs-header-actions li a{text-decoration:none}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table form{display:inline-block}.fs-key-value-table tr td:first-child{text-align:right}.fs-key-value-table tr td:first-child nobr{font-weight:bold}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr td.fs-right{text-align:right}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table var,.fs-key-value-table code{color:#0073aa;font-size:16px;background:none}label.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_addons h3{border:0;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:bold}#fs_addons td:last-child,#fs_addons th:last-child{text-align:right}#fs_addons th{font-weight:bold} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/add-ons.css b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/add-ons.css new file mode 100644 index 000000000..0c2df5ab4 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/add-ons.css @@ -0,0 +1,2 @@ +#fs_addons .fs-cards-list{list-style:none}#fs_addons .fs-cards-list .fs-card{float:left;height:152px;width:310px;padding:0;margin:0 0 30px 30px;font-size:14px;list-style:none;border:1px solid #ddd;cursor:pointer;position:relative}#fs_addons .fs-cards-list .fs-card .fs-overlay{position:absolute;left:0;right:0;bottom:0;top:0;z-index:9}#fs_addons .fs-cards-list .fs-card .fs-inner{background-color:#fff;overflow:hidden;height:100%;position:relative}#fs_addons .fs-cards-list .fs-card .fs-inner ul{-moz-transition:all,0.15s;-o-transition:all,0.15s;-ms-transition:all,0.15s;-webkit-transition:all,0.15s;transition:all,0.15s;left:0;right:0;top:0;position:absolute}#fs_addons .fs-cards-list .fs-card .fs-inner li{list-style:none;line-height:18px;padding:0 15px;width:100%;display:block;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-card-banner{padding:0;margin:0;line-height:0;display:block;height:100px;background-repeat:repeat-x;background-size:100% 100%;-moz-transition:all,0.15s;-o-transition:all,0.15s;-ms-transition:all,0.15s;-webkit-transition:all,0.15s;transition:all,0.15s}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-title{margin:10px 0 0 0;height:18px;overflow:hidden;color:#000;white-space:nowrap;text-overflow:ellipsis;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-offer{font-size:0.9em}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-description{background-color:#f9f9f9;padding:10px 15px 100px 15px;border-top:1px solid #eee;margin:0 0 10px 0;color:#777}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-tag{position:absolute;top:10px;right:0px;background:greenyellow;display:block;padding:2px 10px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.3);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.3);box-shadow:1px 1px 1px rgba(0,0,0,0.3);text-transform:uppercase;font-size:0.9em;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button{position:absolute;top:112px;right:10px}@media screen and (min-width: 960px){#fs_addons .fs-cards-list .fs-card:hover .fs-overlay{border:2px solid #29abe1;margin-left:-1px;margin-top:-1px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner ul{top:-100px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-title,#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-offer{color:#29abe1}} +#TB_window,#TB_window iframe{width:772px !important}#plugin-information #section-description h2,#plugin-information #section-description h3,#plugin-information #section-description p,#plugin-information #section-description b,#plugin-information #section-description i,#plugin-information #section-description blockquote,#plugin-information #section-description li,#plugin-information #section-description ul,#plugin-information #section-description ol{clear:none}#plugin-information #section-description .fs-selling-points{padding-bottom:10px;border-bottom:1px solid #ddd}#plugin-information #section-description .fs-selling-points ul{margin:0}#plugin-information #section-description .fs-selling-points ul li{padding:0;list-style:none outside none}#plugin-information #section-description .fs-selling-points ul li i.dashicons{color:#71ae00;font-size:3em;vertical-align:middle;line-height:30px;float:left;margin:0 0 0 -15px}#plugin-information #section-description .fs-selling-points ul li h3{margin:1em 30px !important}#plugin-information #section-description .fs-screenshots:after{content:"";display:table;clear:both}#plugin-information #section-description .fs-screenshots ul{list-style:none;margin:0}#plugin-information #section-description .fs-screenshots ul li{width:225px;height:225px;float:left;margin-bottom:20px;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}#plugin-information #section-description .fs-screenshots ul li a{display:block;width:100%;height:100%;border:1px solid;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);background-size:cover}#plugin-information #section-description .fs-screenshots ul li.odd{margin-right:20px}#plugin-information .plugin-information-pricing{margin:-16px;border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan h3{margin-top:0;padding:20px;font-size:16px}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper{border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab{cursor:pointer;position:relative;padding:0 10px;font-size:0.9em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab label{text-transform:uppercase;color:green;background:greenyellow;position:absolute;left:-1px;right:-1px;bottom:100%;border:1px solid darkgreen;padding:2px;text-align:center;font-size:0.9em;line-height:1em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab.nav-tab-active{cursor:default;background:#fffeec;border-bottom-color:#fffeec}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle h3{background:#fffeec;margin:0;padding-bottom:0;color:#0073aa}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .nav-tab-wrapper,#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .fs-billing-frequency{display:none}#plugin-information .plugin-information-pricing .fs-plan .fs-pricing-body{background:#fffeec;padding:20px}#plugin-information .plugin-information-pricing .fs-plan .button{width:100%;text-align:center;font-weight:bold;text-transform:uppercase;font-size:1.1em}#plugin-information .plugin-information-pricing .fs-plan label{white-space:nowrap}#plugin-information .plugin-information-pricing .fs-plan var{font-style:normal}#plugin-information .plugin-information-pricing .fs-plan .fs-billing-frequency,#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-align:center;display:block;font-weight:bold;margin-bottom:10px;text-transform:uppercase;background:#F3F3F3;padding:2px;border:1px solid #ccc}#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-transform:none;color:green;background:greenyellow}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms{font-size:0.9em}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms i{float:left;margin:0 0 0 -15px}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms li{margin:10px 0 0 0}#plugin-information #section-features .fs-features{margin:-20px -26px}#plugin-information #section-features table{width:100%;border-spacing:0;border-collapse:separate}#plugin-information #section-features table thead th{padding:10px 0}#plugin-information #section-features table thead .fs-price{color:#71ae00;font-weight:normal;display:block;text-align:center}#plugin-information #section-features table tbody td{border-top:1px solid #ccc;padding:10px 0;text-align:center;width:100px;color:#71ae00}#plugin-information #section-features table tbody td:first-child{text-align:left;width:auto;color:inherit;padding-left:26px}#plugin-information #section-features table tbody tr.fs-odd td{background:#fefefe}#plugin-information #section-features .dashicons-yes{width:30px;height:30px;font-size:30px}@media screen and (max-width: 961px){#fs_addons .fs-cards-list .fs-card{height:265px}} diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/add-ons.min.css b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/add-ons.min.css new file mode 100644 index 000000000..caaa00866 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/add-ons.min.css @@ -0,0 +1 @@ +#fs_addons .fs-cards-list{list-style:none}#fs_addons .fs-cards-list .fs-card{float:left;height:152px;width:310px;padding:0;margin:0 0 30px 30px;font-size:14px;list-style:none;border:1px solid #ddd;cursor:pointer;position:relative}#fs_addons .fs-cards-list .fs-card .fs-overlay{position:absolute;left:0;right:0;bottom:0;top:0;z-index:9}#fs_addons .fs-cards-list .fs-card .fs-inner{background-color:#fff;overflow:hidden;height:100%;position:relative}#fs_addons .fs-cards-list .fs-card .fs-inner ul{-moz-transition:all,0.15s;-o-transition:all,0.15s;-ms-transition:all,0.15s;-webkit-transition:all,0.15s;transition:all,0.15s;left:0;right:0;top:0;position:absolute}#fs_addons .fs-cards-list .fs-card .fs-inner li{list-style:none;line-height:18px;padding:0 15px;width:100%;display:block;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-card-banner{padding:0;margin:0;line-height:0;display:block;height:100px;background-repeat:repeat-x;background-size:100% 100%;-moz-transition:all,0.15s;-o-transition:all,0.15s;-ms-transition:all,0.15s;-webkit-transition:all,0.15s;transition:all,0.15s}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-title{margin:10px 0 0 0;height:18px;overflow:hidden;color:#000;white-space:nowrap;text-overflow:ellipsis;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-offer{font-size:.9em}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-description{background-color:#f9f9f9;padding:10px 15px 100px 15px;border-top:1px solid #eee;margin:0 0 10px 0;color:#777}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-tag{position:absolute;top:10px;right:0;background:greenyellow;display:block;padding:2px 10px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.3);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.3);box-shadow:1px 1px 1px rgba(0,0,0,0.3);text-transform:uppercase;font-size:.9em;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button{position:absolute;top:112px;right:10px}@media screen and (min-width:960px){#fs_addons .fs-cards-list .fs-card:hover .fs-overlay{border:2px solid #29abe1;margin-left:-1px;margin-top:-1px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner ul{top:-100px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-title,#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-offer{color:#29abe1}}#TB_window,#TB_window iframe{width:772px !important}#plugin-information #section-description h2,#plugin-information #section-description h3,#plugin-information #section-description p,#plugin-information #section-description b,#plugin-information #section-description i,#plugin-information #section-description blockquote,#plugin-information #section-description li,#plugin-information #section-description ul,#plugin-information #section-description ol{clear:none}#plugin-information #section-description .fs-selling-points{padding-bottom:10px;border-bottom:1px solid #ddd}#plugin-information #section-description .fs-selling-points ul{margin:0}#plugin-information #section-description .fs-selling-points ul li{padding:0;list-style:none outside none}#plugin-information #section-description .fs-selling-points ul li i.dashicons{color:#71ae00;font-size:3em;vertical-align:middle;line-height:30px;float:left;margin:0 0 0 -15px}#plugin-information #section-description .fs-selling-points ul li h3{margin:1em 30px !important}#plugin-information #section-description .fs-screenshots:after{content:"";display:table;clear:both}#plugin-information #section-description .fs-screenshots ul{list-style:none;margin:0}#plugin-information #section-description .fs-screenshots ul li{width:225px;height:225px;float:left;margin-bottom:20px;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}#plugin-information #section-description .fs-screenshots ul li a{display:block;width:100%;height:100%;border:1px solid;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);background-size:cover}#plugin-information #section-description .fs-screenshots ul li.odd{margin-right:20px}#plugin-information .plugin-information-pricing{margin:-16px;border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan h3{margin-top:0;padding:20px;font-size:16px}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper{border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab{cursor:pointer;position:relative;padding:0 10px;font-size:.9em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab label{text-transform:uppercase;color:green;background:greenyellow;position:absolute;left:-1px;right:-1px;bottom:100%;border:1px solid darkgreen;padding:2px;text-align:center;font-size:.9em;line-height:1em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab.nav-tab-active{cursor:default;background:#fffeec;border-bottom-color:#fffeec}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle h3{background:#fffeec;margin:0;padding-bottom:0;color:#0073aa}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .nav-tab-wrapper,#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .fs-billing-frequency{display:none}#plugin-information .plugin-information-pricing .fs-plan .fs-pricing-body{background:#fffeec;padding:20px}#plugin-information .plugin-information-pricing .fs-plan .button{width:100%;text-align:center;font-weight:bold;text-transform:uppercase;font-size:1.1em}#plugin-information .plugin-information-pricing .fs-plan label{white-space:nowrap}#plugin-information .plugin-information-pricing .fs-plan var{font-style:normal}#plugin-information .plugin-information-pricing .fs-plan .fs-billing-frequency,#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-align:center;display:block;font-weight:bold;margin-bottom:10px;text-transform:uppercase;background:#f3f3f3;padding:2px;border:1px solid #ccc}#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-transform:none;color:green;background:greenyellow}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms{font-size:.9em}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms i{float:left;margin:0 0 0 -15px}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms li{margin:10px 0 0 0}#plugin-information #section-features .fs-features{margin:-20px -26px}#plugin-information #section-features table{width:100%;border-spacing:0;border-collapse:separate}#plugin-information #section-features table thead th{padding:10px 0}#plugin-information #section-features table thead .fs-price{color:#71ae00;font-weight:normal;display:block;text-align:center}#plugin-information #section-features table tbody td{border-top:1px solid #ccc;padding:10px 0;text-align:center;width:100px;color:#71ae00}#plugin-information #section-features table tbody td:first-child{text-align:left;width:auto;color:inherit;padding-left:26px}#plugin-information #section-features table tbody tr.fs-odd td{background:#fefefe}#plugin-information #section-features .dashicons-yes{width:30px;height:30px;font-size:30px}@media screen and (max-width:961px){#fs_addons .fs-cards-list .fs-card{height:265px}} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/common.css b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/common.css new file mode 100644 index 000000000..e5715b82a --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/common.css @@ -0,0 +1 @@ +.fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;box-shadow:0px 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'} diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/common.min.css b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/common.min.css new file mode 100644 index 000000000..ee05a589d --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/common.min.css @@ -0,0 +1 @@ +.fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;box-shadow:0 2px 2px rgba(6,113,6,0.3);opacity:.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}@media screen and (max-width:960px){.fs-secure-notice{left:36px}}@media screen and (max-width:782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/connect.css b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/connect.css new file mode 100644 index 000000000..b81b3df45 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/connect.css @@ -0,0 +1 @@ +#fs_connect{width:480px;-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.3);box-shadow:0px 1px 2px rgba(0,0,0,0.3);margin:20px 0}@media screen and (max-width: 479px){#fs_connect{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:auto;margin:0 0 0 -10px}}#fs_connect .fs-content{background:#fff;padding:15px 20px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:' \279C'}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#FEFEFE;-moz-transition:background 0.5s ease;-o-transition:background 0.5s ease;-ms-transition:background 0.5s ease;-webkit-transition:background 0.5s ease;transition:background 0.5s ease}#fs_connect .fs-permissions .fs-trigger{font-size:0.9em;text-decoration:none;text-align:center;display:block}#fs_connect .fs-permissions ul{height:0;overflow:hidden;margin:0}#fs_connect .fs-permissions ul li{margin-bottom:12px}#fs_connect .fs-permissions ul li:last-child{margin-bottom:0}#fs_connect .fs-permissions ul li i.dashicons{float:left;font-size:40px;width:40px;height:40px}#fs_connect .fs-permissions ul li div{margin-left:55px}#fs_connect .fs-permissions ul li div span{font-weight:bold;text-transform:uppercase;color:#23282d}#fs_connect .fs-permissions ul li div p{margin:2px 0 0 0}#fs_connect .fs-permissions.fs-open{background:#fff}#fs_connect .fs-permissions.fs-open ul{height:auto;margin:20px 20px 10px 20px}@media screen and (max-width: 479px){#fs_connect .fs-permissions{background:#fff}#fs_connect .fs-permissions .fs-trigger{display:none}#fs_connect .fs-permissions ul{height:auto;margin:20px}}#fs_connect .fs-visual{padding:12px;line-height:0;background:#fafafa;height:80px;position:relative}#fs_connect .fs-visual .fs-site-icon{position:absolute;left:20px;top:10px}#fs_connect .fs-visual .fs-connect-logo{position:absolute;right:20px;top:10px}#fs_connect .fs-visual .fs-plugin-icon{position:absolute;top:10px;left:50%;margin-left:-40px}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-site-icon,#fs_connect .fs-visual img,#fs_connect .fs-visual object{width:80px;height:80px}#fs_connect .fs-visual .dashicons-wordpress{font-size:64px;background:#01749a;color:#fff;width:64px;height:64px;padding:8px}#fs_connect .fs-visual .dashicons-plus{position:absolute;top:50%;font-size:30px;margin-top:-10px;color:#bbb}#fs_connect .fs-visual .dashicons-plus.fs-first{left:28%}#fs_connect .fs-visual .dashicons-plus.fs-second{left:65%}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-connect-logo,#fs_connect .fs-visual .fs-site-icon{border:1px solid #ccc;padding:1px;background:#fff}#fs_connect .fs-terms{text-align:center;font-size:0.85em;padding:5px;background:rgba(0,0,0,0.05)}#fs_connect .fs-terms,#fs_connect .fs-terms a{color:#999}#fs_connect .fs-terms a{text-decoration:none}.rtl #fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}.rtl #fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}.rtl #fs_connect .fs-actions .button.button-primary:after{content:' \000bb'}.rtl #fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}.rtl #fs_connect .fs-actions .button.button-secondary{float:left}.rtl #fs_connect .fs-permissions ul li div{margin-right:55px;margin-left:0}.rtl #fs_connect .fs-permissions ul li i.dashicons{float:right}.rtl #fs_connect .fs-visual .fs-site-icon{right:20px;left:auto}.rtl #fs_connect .fs-visual .fs-connect-logo{right:auto;left:20px}.wp-pointer-content #fs_connect{margin:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fs-opt-in-pointer .wp-pointer-content{padding:0}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow{border-bottom-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow-inner{border-bottom-color:#fafafa}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow{border-top-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow-inner{border-top-color:#fafafa}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow{border-right-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow-inner{border-right-color:#fafafa}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow{border-left-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow-inner{border-left-color:#fafafa} diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/connect.min.css b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/connect.min.css new file mode 100644 index 000000000..f83548b8d --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/connect.min.css @@ -0,0 +1 @@ +#fs_connect{width:480px;-moz-box-shadow:0 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.3);box-shadow:0 1px 2px rgba(0,0,0,0.3);margin:20px 0}@media screen and (max-width:479px){#fs_connect{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:auto;margin:0 0 0 -10px}}#fs_connect .fs-content{background:#fff;padding:15px 20px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-actions{padding:10px 20px;background:#c0c7ca}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:' \279C'}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#fefefe;-moz-transition:background .5s ease;-o-transition:background .5s ease;-ms-transition:background .5s ease;-webkit-transition:background .5s ease;transition:background .5s ease}#fs_connect .fs-permissions .fs-trigger{font-size:.9em;text-decoration:none;text-align:center;display:block}#fs_connect .fs-permissions ul{height:0;overflow:hidden;margin:0}#fs_connect .fs-permissions ul li{margin-bottom:12px}#fs_connect .fs-permissions ul li:last-child{margin-bottom:0}#fs_connect .fs-permissions ul li i.dashicons{float:left;font-size:40px;width:40px;height:40px}#fs_connect .fs-permissions ul li div{margin-left:55px}#fs_connect .fs-permissions ul li div span{font-weight:bold;text-transform:uppercase;color:#23282d}#fs_connect .fs-permissions ul li div p{margin:2px 0 0 0}#fs_connect .fs-permissions.fs-open{background:#fff}#fs_connect .fs-permissions.fs-open ul{height:auto;margin:20px 20px 10px 20px}@media screen and (max-width:479px){#fs_connect .fs-permissions{background:#fff}#fs_connect .fs-permissions .fs-trigger{display:none}#fs_connect .fs-permissions ul{height:auto;margin:20px}}#fs_connect .fs-visual{padding:12px;line-height:0;background:#fafafa;height:80px;position:relative}#fs_connect .fs-visual .fs-site-icon{position:absolute;left:20px;top:10px}#fs_connect .fs-visual .fs-connect-logo{position:absolute;right:20px;top:10px}#fs_connect .fs-visual .fs-plugin-icon{position:absolute;top:10px;left:50%;margin-left:-40px}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-site-icon,#fs_connect .fs-visual img,#fs_connect .fs-visual object{width:80px;height:80px}#fs_connect .fs-visual .dashicons-wordpress{font-size:64px;background:#01749a;color:#fff;width:64px;height:64px;padding:8px}#fs_connect .fs-visual .dashicons-plus{position:absolute;top:50%;font-size:30px;margin-top:-10px;color:#bbb}#fs_connect .fs-visual .dashicons-plus.fs-first{left:28%}#fs_connect .fs-visual .dashicons-plus.fs-second{left:65%}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-connect-logo,#fs_connect .fs-visual .fs-site-icon{border:1px solid #ccc;padding:1px;background:#fff}#fs_connect .fs-terms{text-align:center;font-size:.85em;padding:5px;background:rgba(0,0,0,0.05)}#fs_connect .fs-terms,#fs_connect .fs-terms a{color:#999}#fs_connect .fs-terms a{text-decoration:none}.rtl #fs_connect .fs-actions{padding:10px 20px;background:#c0c7ca}.rtl #fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}.rtl #fs_connect .fs-actions .button.button-primary:after{content:' \000bb'}.rtl #fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}.rtl #fs_connect .fs-actions .button.button-secondary{float:left}.rtl #fs_connect .fs-permissions ul li div{margin-right:55px;margin-left:0}.rtl #fs_connect .fs-permissions ul li i.dashicons{float:right}.rtl #fs_connect .fs-visual .fs-site-icon{right:20px;left:auto}.rtl #fs_connect .fs-visual .fs-connect-logo{right:auto;left:20px}.wp-pointer-content #fs_connect{margin:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fs-opt-in-pointer .wp-pointer-content{padding:0}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow{border-bottom-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow-inner{border-bottom-color:#fafafa}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow{border-top-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow-inner{border-top-color:#fafafa}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow{border-right-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow-inner{border-right-color:#fafafa}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow{border-left-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow-inner{border-left-color:#fafafa} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/deactivation-feedback.css b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/deactivation-feedback.css new file mode 100644 index 000000000..27a596a27 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/deactivation-feedback.css @@ -0,0 +1 @@ +.fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}.fs-modal .fs-modal-dialog li.reason{margin-bottom:10px}.fs-modal .fs-modal-dialog li.reason .reason-input{margin-left:29px}.fs-modal .fs-modal-dialog li.reason label{display:table}.fs-modal .fs-modal-dialog li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body h2{font-size:20px}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel:not(.active){display:none}.fs-modal .reason-input{margin:3px 0 3px 22px}.fs-modal .reason-input input,.fs-modal .reason-input textarea{width:100%}body.has-fs-modal{overflow:hidden}#the-list .deactivate>.fs-slug{display:none} diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/deactivation-feedback.min.css b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/deactivation-feedback.min.css new file mode 100644 index 000000000..7302ec6aa --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/deactivation-feedback.min.css @@ -0,0 +1 @@ +.fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media(max-width:650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}.fs-modal .fs-modal-dialog li.reason{margin-bottom:10px}.fs-modal .fs-modal-dialog li.reason .reason-input{margin-left:29px}.fs-modal .fs-modal-dialog li.reason label{display:table}.fs-modal .fs-modal-dialog li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body h2{font-size:20px}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel:not(.active){display:none}.fs-modal .reason-input{margin:3px 0 3px 22px}.fs-modal .reason-input input,.fs-modal .reason-input textarea{width:100%}body.has-fs-modal{overflow:hidden}#the-list .deactivate>.fs-slug{display:none} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/debug.css b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/debug.css new file mode 100644 index 000000000..48fe92f9b --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/debug.css @@ -0,0 +1 @@ +.switch{position:relative;display:inline-block;font-size:1.6em;font-weight:bold;color:#ccc;text-shadow:0px 1px 1px rgba(255,255,255,0.8);height:18px;padding:6px 6px 5px 6px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:4px;background:#ececec;box-shadow:0px 0px 4px rgba(0,0,0,0.1),inset 0px 1px 3px 0px rgba(0,0,0,0.1);cursor:pointer}.switch span{display:inline-block;width:35px;text-transform:uppercase}.switch span.on{color:#6bc406}.switch .toggle{position:absolute;top:1px;width:37px;height:25px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.3);border-radius:4px;background:#fff;background:-moz-linear-gradient(top, #ececec 0%, #fff 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ececec), color-stop(100%, #fff));background:-webkit-linear-gradient(top, #ececec 0%, #fff 100%);background:-o-linear-gradient(top, #ececec 0%, #fff 100%);background:-ms-linear-gradient(top, #ececec 0%, #fff 100%);background:linear-gradient(top, #ececec 0%, #fff 100%);box-shadow:inset 0px 1px 0px 0px rgba(255,255,255,0.5);z-index:999;-moz-transition:all 0.15s ease-in-out;-o-transition:all 0.15s ease-in-out;-ms-transition:all 0.15s ease-in-out;-webkit-transition:all 0.15s ease-in-out;transition:all 0.15s ease-in-out}.switch.on .toggle{left:2%}.switch.off .toggle{left:54%}.switch.round{padding:0px 20px;border-radius:40px}.switch.round .toggle{border-radius:40px;width:14px;height:14px}.switch.round.on .toggle{left:3%;background:#6bc406}.switch.round.off .toggle{left:58%}.switch-label{font-size:20px;line-height:31px;margin:0 5px} diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/debug.min.css b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/debug.min.css new file mode 100644 index 000000000..67f7d1006 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/css/admin/debug.min.css @@ -0,0 +1 @@ +.switch{position:relative;display:inline-block;font-size:1.6em;font-weight:bold;color:#ccc;text-shadow:0 1px 1px rgba(255,255,255,0.8);height:18px;padding:6px 6px 5px 6px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:4px;background:#ececec;box-shadow:0 0 4px rgba(0,0,0,0.1),inset 0 1px 3px 0 rgba(0,0,0,0.1);cursor:pointer}.switch span{display:inline-block;width:35px;text-transform:uppercase}.switch span.on{color:#6bc406}.switch .toggle{position:absolute;top:1px;width:37px;height:25px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.3);border-radius:4px;background:#fff;background:-moz-linear-gradient(top,#ececec 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ececec),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ececec 0,#fff 100%);background:-o-linear-gradient(top,#ececec 0,#fff 100%);background:-ms-linear-gradient(top,#ececec 0,#fff 100%);background:linear-gradient(top,#ececec 0,#fff 100%);box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.5);z-index:999;-moz-transition:all .15s ease-in-out;-o-transition:all .15s ease-in-out;-ms-transition:all .15s ease-in-out;-webkit-transition:all .15s ease-in-out;transition:all .15s ease-in-out}.switch.on .toggle{left:2%}.switch.off .toggle{left:54%}.switch.round{padding:0 20px;border-radius:40px}.switch.round .toggle{border-radius:40px;width:14px;height:14px}.switch.round.on .toggle{left:3%;background:#6bc406}.switch.round.off .toggle{left:58%}.switch-label{font-size:20px;line-height:31px;margin:0 5px} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/css/common.css b/wp-content/plugins/nextgen-gallery/freemius/assets/css/common.css new file mode 100644 index 000000000..619b9e44b --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/css/common.css @@ -0,0 +1 @@ +.fs-notice.success{color:green;font-weight:700} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/css/common.min.css b/wp-content/plugins/nextgen-gallery/freemius/assets/css/common.min.css new file mode 100644 index 000000000..619b9e44b --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/css/common.min.css @@ -0,0 +1 @@ +.fs-notice.success{color:green;font-weight:700} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/img/icon.png b/wp-content/plugins/nextgen-gallery/freemius/assets/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..31ea456182b1aef1c7d847ad750d2f2d0fc8267d GIT binary patch literal 22426 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 Brl9}; literal 0 HcmV?d00001 diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/img/nextgen-gallery.png b/wp-content/plugins/nextgen-gallery/freemius/assets/img/nextgen-gallery.png new file mode 100644 index 0000000000000000000000000000000000000000..31ea456182b1aef1c7d847ad750d2f2d0fc8267d GIT binary patch literal 22426 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 Brl9}; literal 0 HcmV?d00001 diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/img/plugin-icon.png b/wp-content/plugins/nextgen-gallery/freemius/assets/img/plugin-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..33902b4a99ec9a3199804151277daabfc610406b GIT binary patch literal 9380 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/img/pootle-page-builder.png b/wp-content/plugins/nextgen-gallery/freemius/assets/img/pootle-page-builder.png new file mode 100644 index 0000000000000000000000000000000000000000..02b7e834a0ffe27a6a91cf089f1ee8559431e74e GIT binary patch literal 21773 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 F69Cbvo*@7L literal 0 HcmV?d00001 diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/img/rating-widget.jpg b/wp-content/plugins/nextgen-gallery/freemius/assets/img/rating-widget.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b1064545b7fa5ba6359b70b2709f466f540df67b GIT binary patch literal 32400 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/js/jquery.ba-postmessage.js b/wp-content/plugins/nextgen-gallery/freemius/assets/js/jquery.ba-postmessage.js new file mode 100644 index 000000000..5c0fbfef7 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/js/jquery.ba-postmessage.js @@ -0,0 +1,222 @@ +/*! + * jQuery postMessage - v0.5 - 9/11/2009 + * http://benalman.com/projects/jquery-postmessage-plugin/ + * + * Copyright (c) 2009 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ + +// Script: jQuery postMessage: Cross-domain scripting goodness +// +// *Version: 0.5, Last updated: 9/11/2009* +// +// Project Home - http://benalman.com/projects/jquery-postmessage-plugin/ +// GitHub - http://github.com/cowboy/jquery-postmessage/ +// Source - http://github.com/cowboy/jquery-postmessage/raw/master/jquery.ba-postmessage.js +// (Minified) - http://github.com/cowboy/jquery-postmessage/raw/master/jquery.ba-postmessage.min.js (0.9kb) +// +// About: License +// +// Copyright (c) 2009 "Cowboy" Ben Alman, +// Dual licensed under the MIT and GPL licenses. +// http://benalman.com/about/license/ +// +// About: Examples +// +// This working example, complete with fully commented code, illustrates one +// way in which this plugin can be used. +// +// Iframe resizing - http://benalman.com/code/projects/jquery-postmessage/examples/iframe/ +// +// About: Support and Testing +// +// Information about what version or versions of jQuery this plugin has been +// tested with and what browsers it has been tested in. +// +// jQuery Versions - 1.3.2 +// Browsers Tested - Internet Explorer 6-8, Firefox 3, Safari 3-4, Chrome, Opera 9. +// +// About: Release History +// +// 0.5 - (9/11/2009) Improved cache-busting +// 0.4 - (8/25/2009) Initial release + +(function($){ + '$:nomunge'; // Used by YUI compressor. + + // A few vars used in non-awesome browsers. + var interval_id, + last_hash, + cache_bust = 1, + + // A var used in awesome browsers. + rm_callback, + + // A few convenient shortcuts. + window = this, + FALSE = !1, + + // Reused internal strings. + postMessage = 'postMessage', + addEventListener = 'addEventListener', + + p_receiveMessage, + + // I couldn't get window.postMessage to actually work in Opera 9.64! + has_postMessage = window[postMessage] && !$.browser.opera; + + // Method: jQuery.postMessage + // + // This method will call window.postMessage if available, setting the + // targetOrigin parameter to the base of the target_url parameter for maximum + // security in browsers that support it. If window.postMessage is not available, + // the target window's location.hash will be used to pass the message. If an + // object is passed as the message param, it will be serialized into a string + // using the jQuery.param method. + // + // Usage: + // + // > jQuery.postMessage( message, target_url [, target ] ); + // + // Arguments: + // + // message - (String) A message to be passed to the other frame. + // message - (Object) An object to be serialized into a params string, using + // the jQuery.param method. + // target_url - (String) The URL of the other frame this window is + // attempting to communicate with. This must be the exact URL (including + // any query string) of the other window for this script to work in + // browsers that don't support window.postMessage. + // target - (Object) A reference to the other frame this window is + // attempting to communicate with. If omitted, defaults to `parent`. + // + // Returns: + // + // Nothing. + + $[postMessage] = function( message, target_url, target ) { + if ( !target_url ) { return; } + + // Serialize the message if not a string. Note that this is the only real + // jQuery dependency for this script. If removed, this script could be + // written as very basic JavaScript. + message = typeof message === 'string' ? message : $.param( message ); + + // Default to parent if unspecified. + target = target || parent; + + if ( has_postMessage ) { + // The browser supports window.postMessage, so call it with a targetOrigin + // set appropriately, based on the target_url parameter. + target[postMessage]( message, target_url.replace( /([^:]+:\/\/[^\/]+).*/, '$1' ) ); + + } else if ( target_url ) { + // The browser does not support window.postMessage, so set the location + // of the target to target_url#message. A bit ugly, but it works! A cache + // bust parameter is added to ensure that repeat messages trigger the + // callback. + target.location = target_url.replace( /#.*$/, '' ) + '#' + (+new Date) + (cache_bust++) + '&' + message; + } + }; + + // Method: jQuery.receiveMessage + // + // Register a single callback for either a window.postMessage call, if + // supported, or if unsupported, for any change in the current window + // location.hash. If window.postMessage is supported and source_origin is + // specified, the source window will be checked against this for maximum + // security. If window.postMessage is unsupported, a polling loop will be + // started to watch for changes to the location.hash. + // + // Note that for simplicity's sake, only a single callback can be registered + // at one time. Passing no params will unbind this event (or stop the polling + // loop), and calling this method a second time with another callback will + // unbind the event (or stop the polling loop) first, before binding the new + // callback. + // + // Also note that if window.postMessage is available, the optional + // source_origin param will be used to test the event.origin property. From + // the MDC window.postMessage docs: This string is the concatenation of the + // protocol and "://", the host name if one exists, and ":" followed by a port + // number if a port is present and differs from the default port for the given + // protocol. Examples of typical origins are https://example.org (implying + // port 443), http://example.net (implying port 80), and http://example.com:8080. + // + // Usage: + // + // > jQuery.receiveMessage( callback [, source_origin ] [, delay ] ); + // + // Arguments: + // + // callback - (Function) This callback will execute whenever a <jQuery.postMessage> + // message is received, provided the source_origin matches. If callback is + // omitted, any existing receiveMessage event bind or polling loop will be + // canceled. + // source_origin - (String) If window.postMessage is available and this value + // is not equal to the event.origin property, the callback will not be + // called. + // source_origin - (Function) If window.postMessage is available and this + // function returns false when passed the event.origin property, the + // callback will not be called. + // delay - (Number) An optional zero-or-greater delay in milliseconds at + // which the polling loop will execute (for browser that don't support + // window.postMessage). If omitted, defaults to 100. + // + // Returns: + // + // Nothing! + + $.receiveMessage = p_receiveMessage = function( callback, source_origin, delay ) { + if ( has_postMessage ) { + // Since the browser supports window.postMessage, the callback will be + // bound to the actual event associated with window.postMessage. + + if ( callback ) { + // Unbind an existing callback if it exists. + rm_callback && p_receiveMessage(); + + // Bind the callback. A reference to the callback is stored for ease of + // unbinding. + rm_callback = function(e) { + if ( ( typeof source_origin === 'string' && e.origin !== source_origin ) + || ( $.isFunction( source_origin ) && source_origin( e.origin ) === FALSE ) ) { + return FALSE; + } + callback( e ); + }; + } + + if ( window[addEventListener] ) { + window[ callback ? addEventListener : 'removeEventListener' ]( 'message', rm_callback, FALSE ); + } else { + window[ callback ? 'attachEvent' : 'detachEvent' ]( 'onmessage', rm_callback ); + } + + } else { + // Since the browser sucks, a polling loop will be started, and the + // callback will be called whenever the location.hash changes. + + interval_id && clearInterval( interval_id ); + interval_id = null; + + if ( callback ) { + delay = typeof source_origin === 'number' + ? source_origin + : typeof delay === 'number' + ? delay + : 100; + + interval_id = setInterval(function(){ + var hash = document.location.hash, + re = /^#?\d+&/; + if ( hash !== last_hash && re.test( hash ) ) { + last_hash = hash; + callback({ data: hash.replace( re, '' ) }); + } + }, delay ); + } + } + }; + +})(jQuery); diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/js/jquery.ba-postmessage.min.js b/wp-content/plugins/nextgen-gallery/freemius/assets/js/jquery.ba-postmessage.min.js new file mode 100644 index 000000000..4a16443ca --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/js/jquery.ba-postmessage.min.js @@ -0,0 +1 @@ +eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(7($){\'$:y\';u 8,m,s=1,a,6=x,g=!1,9=\'9\',i=\'i\',o,n=6[9]&&!$.w.A;$[9]=7(2,f,b){0(!f){p}2=h 2===\'r\'?2:$.D(2);b=b||C;0(n){b[9](2,f.k(/([^:]+:\\/\\/[^\\/]+).*/,\'$1\'))}j 0(f){b.v=f.k(/#.*$/,\'\')+\'#\'+(+B E)+(s++)+\'&\'+2}};$.z=o=7(4,3,c){0(n){0(4){a&&o();a=7(e){0((h 3===\'r\'&&e.q!==3)||($.H(3)&&3(e.q)===g)){p g}4(e)}}0(6[i]){6[4?i:\'O\'](\'2\',a,g)}j{6[4?\'P\':\'F\'](\'M\',a)}}j{8&&L(8);8=G;0(4){c=h 3===\'t\'?3:h c===\'t\'?c:I;8=J(7(){u 5=K.v.5,l=/^#?\\d+&/;0(5!==m&&l.R(5)){m=5;4({N:5.k(l,\'\')})}},c)}}}})(Q);',54,54,'if||message|source_origin|callback|hash|window|function|interval_id|postMessage|rm_callback|target|delay|||target_url|FALSE|typeof|addEventListener|else|replace|re|last_hash|has_postMessage|p_receiveMessage|return|origin|string|cache_bust|number|var|location|browser|this|nomunge|receiveMessage|opera|new|parent|param|Date|detachEvent|null|isFunction|100|setInterval|document|clearInterval|onmessage|data|removeEventListener|attachEvent|jQuery|test'.split('|'),0,{})) diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/js/nojquery.ba-postmessage.js b/wp-content/plugins/nextgen-gallery/freemius/assets/js/nojquery.ba-postmessage.js new file mode 100644 index 000000000..aedbd81ac --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/js/nojquery.ba-postmessage.js @@ -0,0 +1,140 @@ +/*! + * jQuery postMessage - v0.5 - 9/11/2009 + * http://benalman.com/projects/jquery-postmessage-plugin/ + * + * Copyright (c) 2009 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + * + * Non-jQuery fork by Jeff Lee + * + * This fork consists of the following changes: + * 1. Basic code cleanup and restructuring, for legibility. + * 2. The `postMessage` and `receiveMessage` functions can be bound arbitrarily, + * in terms of both function names and object scope. Scope is specified by + * the the "this" context of NoJQueryPostMessageMixin(); + * 3. I've removed the check for Opera 9.64, which used `$.browser`. There were + * at least three different GitHub users requesting the removal of this + * "Opera sniff" on the original project's Issues page, so I figured this + * would be a relatively safe change. + * 4. `postMessage` no longer uses `$.param` to serialize messages that are not + * strings. I actually prefer this structure anyway. `receiveMessage` does + * not implement a corresponding deserialization step, and as such it seems + * cleaner and more symmetric to leave both data serialization and + * deserialization to the client. + * 5. The use of `$.isFunction` is replaced by a functionally-identical check. + * 6. The `$:nomunge` YUI option is no longer necessary. + */ + +function NoJQueryPostMessageMixin(postBinding, receiveBinding) { + + var setMessageCallback, unsetMessageCallback, currentMsgCallback, + intervalId, lastHash, cacheBust = 1; + + if (window.postMessage) { + + if (window.addEventListener) { + setMessageCallback = function(callback) { + window.addEventListener('message', callback, false); + } + + unsetMessageCallback = function(callback) { + window.removeEventListener('message', callback, false); + } + } else { + setMessageCallback = function(callback) { + window.attachEvent('onmessage', callback); + } + + unsetMessageCallback = function(callback) { + window.detachEvent('onmessage', callback); + } + } + + this[postBinding] = function(message, targetUrl, target) { + if (!targetUrl) { + return; + } + + // The browser supports window.postMessage, so call it with a targetOrigin + // set appropriately, based on the targetUrl parameter. + target.postMessage( message, targetUrl.replace( /([^:]+:\/\/[^\/]+).*/, '$1' ) ); + } + + // Since the browser supports window.postMessage, the callback will be + // bound to the actual event associated with window.postMessage. + this[receiveBinding] = function(callback, sourceOrigin, delay) { + // Unbind an existing callback if it exists. + if (currentMsgCallback) { + unsetMessageCallback(currentMsgCallback); + currentMsgCallback = null; + } + + if (!callback) { + return false; + } + + // Bind the callback. A reference to the callback is stored for ease of + // unbinding. + currentMsgCallback = setMessageCallback(function(e) { + switch(Object.prototype.toString.call(sourceOrigin)) { + case '[object String]': + if (sourceOrigin !== e.origin) { + return false; + } + break; + case '[object Function]': + if (sourceOrigin(e.origin)) { + return false; + } + break; + } + + callback(e); + }); + }; + + } else { + + this[postBinding] = function(message, targetUrl, target) { + if (!targetUrl) { + return; + } + + // The browser does not support window.postMessage, so set the location + // of the target to targetUrl#message. A bit ugly, but it works! A cache + // bust parameter is added to ensure that repeat messages trigger the + // callback. + target.location = targetUrl.replace( /#.*$/, '' ) + '#' + (+new Date) + (cacheBust++) + '&' + message; + } + + // Since the browser sucks, a polling loop will be started, and the + // callback will be called whenever the location.hash changes. + this[receiveBinding] = function(callback, sourceOrigin, delay) { + if (intervalId) { + clearInterval(intervalId); + intervalId = null; + } + + if (callback) { + delay = typeof sourceOrigin === 'number' + ? sourceOrigin + : typeof delay === 'number' + ? delay + : 100; + + intervalId = setInterval(function(){ + var hash = document.location.hash, + re = /^#?\d+&/; + if ( hash !== lastHash && re.test( hash ) ) { + lastHash = hash; + callback({ data: hash.replace( re, '' ) }); + } + }, delay ); + } + }; + + } + + return this; +} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/js/nojquery.ba-postmessage.min.js b/wp-content/plugins/nextgen-gallery/freemius/assets/js/nojquery.ba-postmessage.min.js new file mode 100644 index 000000000..17aef7601 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/js/nojquery.ba-postmessage.min.js @@ -0,0 +1 @@ +eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('3 F(o,l){z h,j,g,f,m,A=1;2(5.v){2(5.x){h=3(0){5.x(\'6\',0,c)}j=3(0){5.I(\'6\',0,c)}}s{h=3(0){5.J(\'u\',0)}j=3(0){5.G(\'u\',0)}}b[o]=3(6,7,i){2(!7){9}i.v(6,7.k(/([^:]+:\\/\\/[^\\/]+).*/,\'$1\'))}b[l]=3(0,4,8){2(g){j(g);g=C}2(!0){9 c}g=h(3(e){D(E.H.U.T(4)){t\'[q S]\':2(4!==e.r){9 c}p;t\'[q V]\':2(4(e.r)){9 c}p}0(e)})}}s{b[o]=3(6,7,i){2(!7){9}i.w=7.k(/#.*$/,\'\')+\'#\'+(+K R)+(A++)+\'&\'+6}b[l]=3(0,4,8){2(f){Q(f);f=C}2(0){8=B 4===\'y\'?4:B 8===\'y\'?8:M;f=L(3(){z a=N.w.a,n=/^#?\\d+&/;2(a!==m&&n.O(a)){m=a;0({P:a.k(n,\'\')})}},8)}}}9 b}',58,58,'callback||if|function|sourceOrigin|window|message|targetUrl|delay|return|hash|this|false|||intervalId|currentMsgCallback|setMessageCallback|target|unsetMessageCallback|replace|receiveBinding|lastHash|re|postBinding|break|object|origin|else|case|onmessage|postMessage|location|addEventListener|number|var|cacheBust|typeof|null|switch|Object|NoJQueryPostMessageMixin|detachEvent|prototype|removeEventListener|attachEvent|new|setInterval|100|document|test|data|clearInterval|Date|String|call|toString|Function'.split('|'),0,{})) diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/js/postmessage.js b/wp-content/plugins/nextgen-gallery/freemius/assets/js/postmessage.js new file mode 100644 index 000000000..ad0c83979 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/js/postmessage.js @@ -0,0 +1,110 @@ +(function ($, undef) { + var global = this; + + // Namespace. + global.FS = global.FS || {}; + + global.FS.PostMessage = function () + { + var + _is_child = false, + _postman = new NoJQueryPostMessageMixin('postMessage', 'receiveMessage'), + _callbacks = {}, + _base_url, + _parent_url = decodeURIComponent(document.location.hash.replace(/^#/, '')), + _parent_subdomain = _parent_url.substring(0, _parent_url.indexOf('/', ('https://' === _parent_url.substring(0, ('https://').length)) ? 8 : 7)), + _init = function () { + _postman.receiveMessage(function (e) { + var data = JSON.parse(e.data); + + if (_callbacks[data.type]) { + for (var i = 0; i < _callbacks[data.type].length; i++) { + // Execute type callbacks. + _callbacks[data.type][i](data.data); + } + } + }, _base_url); + }; + + return { + init : function (url) + { + _base_url = url; + _init(); + + // Automatically receive forward messages. + FS.PostMessage.receiveOnce('forward', function (data){ + window.location = data.url; + }); + }, + init_child : function () + { + this.init(_parent_subdomain); + + _is_child = true; + + // Post height of a child right after window is loaded. + $(window).bind('load', function () { + FS.PostMessage.postHeight(); + }); + + }, + postHeight : function (diff, wrapper) { + diff = diff || 0; + wrapper = wrapper || '#wrap_section'; + this.post('height', { + height: diff + $(wrapper).outerHeight(true) + }); + }, + post : function (type, data, iframe) + { + console.debug('PostMessage.post', type); + + if (iframe) + { + // Post to iframe. + _postman.postMessage(JSON.stringify({ + type: type, + data: data + }), iframe.src, iframe.contentWindow); + } + else { + // Post to parent. + _postman.postMessage(JSON.stringify({ + type: type, + data: data + }), _parent_url, window.parent); + } + }, + receive: function (type, callback) + { + console.debug('PostMessage.receive', type); + + if (undef === _callbacks[type]) + _callbacks[type] = []; + + _callbacks[type].push(callback); + }, + receiveOnce: function (type, callback) + { + if (this.is_set(type)) + return; + + this.receive(type, callback); + }, + // Check if any callbacks assigned to a specified message type. + is_set: function (type) + { + return (undef != _callbacks[type]); + }, + parent_url: function () + { + return _parent_url; + }, + parent_subdomain: function () + { + return _parent_subdomain; + } + }; + }(); +})(jQuery); \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/js/postmessage.min.js b/wp-content/plugins/nextgen-gallery/freemius/assets/js/postmessage.min.js new file mode 100644 index 000000000..c433fd012 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/js/postmessage.min.js @@ -0,0 +1 @@ +eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(2($,q){g c=6;c.9=c.9||{};c.9.a=2(){g x=Q,d=P O(\'m\',\'C\'),4={},n,5=R(N.w.U.T(/^#/,\'\')),s=5.B(0,5.V(\'/\',(\'z://\'===5.B(0,(\'z://\').F))?8:7)),J=2(){d.C(2(e){g 3=r.M(e.3);l(4[3.1]){L(g i=0;i<4[3.1].F;i++){4[3.1][i](3.3)}}},n)};b{H:2(o){n=o;J();9.a.y(\'15\',2(3){t.w=3.o})},16:2(){6.H(s);x=I;$(t).W(\'12\',2(){9.a.A()})},A:2(j,h){j=j||0;h=h||\'#Z\';6.p(\'v\',{v:j+$(h).11(I)})},p:2(1,3,f){K.G(\'a.p\',1);l(f){d.m(r.E({1:1,3:3}),f.18,f.X)}13{d.m(r.E({1:1,3:3}),5,t.17)}},u:2(1,k){K.G(\'a.u\',1);l(q===4[1])4[1]=[];4[1].14(k)},y:2(1,k){l(6.D(1))b;6.u(1,k)},D:2(1){b(q!=4[1])},Y:2(){b 5},S:2(){b s}}}()})(10);',62,71,'|type|function|data|_callbacks|_parent_url|this|||FS|PostMessage|return|global|_postman||iframe|var|wrapper||diff|callback|if|postMessage|_base_url|url|post|undef|JSON|_parent_subdomain|window|receive|height|location|_is_child|receiveOnce|https|postHeight|substring|receiveMessage|is_set|stringify|length|debug|init|true|_init|console|for|parse|document|NoJQueryPostMessageMixin|new|false|decodeURIComponent|parent_subdomain|replace|hash|indexOf|bind|contentWindow|parent_url|wrap_section|jQuery|outerHeight|load|else|push|forward|init_child|parent|src'.split('|'),0,{})) diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/scss/_colors.scss b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/_colors.scss new file mode 100644 index 000000000..d2fc52f45 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/_colors.scss @@ -0,0 +1,58 @@ +$menu-hover-color: #333; +$darkest-color: #000; +$fms-live-color: #71ae00; +$fms-test-color: #f7941d; +$fms-link-color: #29abe1; +$fms-link-hover-color: darken(#29abe1, 10%); +$body-bkg: #111; +$special-color: #d3135a; +$body-color: #f1f1f1; +$fms-white: #f1f1f1; +$container-bkg: #222; +$container-bkg-odd: #262626; +$container-border-color: #333; +$table-head-bkg: #333; +$table-head-color: #999; +$info-color: #999; +$error-color: #ff0000; + +$fs-logo-blue-color: #29abe1; +$fs-logo-green-color: #71ae00; +$fs-logo-magenta-color: #d3135a; + +$fs-notice-promotion-border-color: #00a0d2; +$fs-notice-promotion-bkg: #f2fcff; + +// WordPress colors. +$page-header-bkg: #333; +$page-header-color: $fms-white; +$text-dark-color: #333; +$text-light-color: #666; +$text-lightest-color: #999; + +// WP Buttons. +$button-primary-bkg: #6bc406; +$button-primary-color: $fms-white; +$button-secondary-bkg: #333; +$button-secondary-color: $fms-white; +$featured-color: #6bc406; +$wp-selected-color: #0074a3; + +$wordpress_color: #01749A; +$blogger_color: #ff8100; +$wix_color: #fac102; +$shopify_color: #80d100; +$addthis_color: #fe6d4e; +$tumblr_color: #34506b; +$zepo_color: #00baf2; +$jquery_color: #000919; +$javascript_color: #00baf2; +$squarespace_color: #000; + +$blog_color: #ff6600; +$facebook_color: #3b5998; +$twitter_color: #4099ff; +$linkedin_color: #4875b4; +$youtube_color: #ff3333; +$gplus_color: #c63d2d; + diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/scss/_load.scss b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/_load.scss new file mode 100644 index 000000000..ee175eea1 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/_load.scss @@ -0,0 +1,4 @@ +@import 'mixins'; +@import "vars"; +@import "functions"; +@import "colors"; diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/scss/_mixins.scss b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/_mixins.scss new file mode 100644 index 000000000..7c298dc0d --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/_mixins.scss @@ -0,0 +1,224 @@ +// ---- CSS3 SASS MIXINS ---- +// https://github.com/madr/css3-sass-mixins +// +// Copyright (C) 2011 by Anders Ytterström +// +// 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. +// + +// ---- LEGACY IE SUPPORT USING FILTERS ---- +// Should IE filters be used or not? +// PROS: gradients, drop shadows etc will be handled by css. +// CONS: will harm the site performance badly, +// especially on sites with heavy rendering and scripting. +$useIEFilters: 0; +// might be 0 or 1. disabled by default. +// ---- /LEGACY IE SUPPORT USING FILTERS ---- + + +@mixin background-size ($value) { + -webkit-background-size: $value; + background-size: $value; +} + +@mixin border-image ($path, $offsets, $repeats) { + -moz-border-image: $path $offsets $repeats; + -o-border-image: $path $offsets $repeats; + -webkit-border-image: $path $offsets $repeats; + border-image: $path $offsets $repeats; +} + +@mixin border-radius ($values...) { + -moz-border-radius: $values; + -webkit-border-radius: $values; + border-radius: $values; + /*-moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box;*/ +} + +@mixin box-shadow ($values...) { + -moz-box-shadow: $values; + -webkit-box-shadow: $values; + box-shadow: $values; +} + +//@mixin box-shadow ($x, $y, $offset, $hex, $ie: $useIEFilters, $inset: null, $spread:null) { +// -moz-box-shadow: $x $y $offset $spread $hex $inset; +// -webkit-box-shadow: $x $y $offset $spread $hex $inset; +// box-shadow: $x $y $offset $spread $hex $inset; +// +// @if $ie == 1 { +// $iecolor: '#' + red($hex) + green($hex) + blue($hex); +// filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=#{$x}, OffY=#{$y}, Color='#{$iecolor}'); +// -ms-filter: quote(progid:DXImageTransform.Microsoft.dropshadow(OffX=#{$x}, OffY=#{$y}, Color='#{$iecolor}')); +// } +//} + +@mixin box-sizing($value) { + -moz-box-sizing: $value; + -webkit-box-sizing: $value; + box-sizing: $value; +} + +// requires sass 3.2 +//@mixin keyframes { +// @-moz-keyframes { @content; } +// @-ms-keyframes { @content; } +// @-o-keyframes { @content; } +// @-webkit-keyframes { @content; } +// @keyframes { @content; } +//} + +@mixin linear-gradient($from, $to, $ie: $useIEFilters) { + @if $ie != 1 { background-color: $to; } + + background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, $from),color-stop(1, $to)); + background-image: -webkit-linear-gradient(top, $from, $to); + background-image: -moz-linear-gradient(top, $from, $to); + background-image: -ms-linear-gradient(top, $from, $to); + background-image: -o-linear-gradient(top, $from, $to); + background-image: linear-gradient(top, bottom, $from, $to); + + @if $ie == 1 { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$from}', endColorstr='#{$to}'); + } +} + +@mixin horizontal-gradient($startColor: #555, $endColor: #333, $ie: $useIEFilters) { + @if $ie != 1 { background-color: $endColor; } + + background-color: $endColor; + background-image: -webkit-gradient(linear, 0 0, 100% 0, from($startColor), to($endColor)); // Safari 4+, Chrome 2+ + background-image: -webkit-linear-gradient(left, $startColor, $endColor); // Safari 5.1+, Chrome 10+ + background-image: -moz-linear-gradient(left, $startColor, $endColor); // FF 3.6+ + background-image: -o-linear-gradient(left, $startColor, $endColor); // Opera 11.10 + background-image: linear-gradient(to right, $startColor, $endColor); // Standard, IE10 + background-repeat: repeat-x; + @if $ie == 1 { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$startColor}', endColorstr='#{$endColor}', GradientType=1); + } +} + +@mixin radial-gradient($from, $to, $ie: $useIEFilters) { + @if $ie != 1 { background-color: $to; } + + background: -moz-radial-gradient(center, circle cover, $from 0%, $to 100%); + background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, $from), color-stop(100%, $to)); + background: -webkit-radial-gradient(center, circle cover, $from 0%, $to 100%); + background: -o-radial-gradient(center, circle cover, $from 0%, $to 100%); + background: -ms-radial-gradient(center, circle cover, $from 0%, $to 100%); + background: radial-gradient(center, circle cover, $from 0%, $to 100%); + background-color: $from; + + @if $ie == 1 { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$from}', endColorstr='#{$to}', GradientType=1); /* IE6-9 fallback on horizontal gradient */ + } +} + +/*@mixin rgba-bg ($hex, $alpha, $ie: $useIEFilters) { + @if $ie == 1 { + background-color: none; + $hexopac: ie-hex-str(rgba($hex, $alpha)); + filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#{$hexopac}',EndColorStr='#{$hexopac}}'); + -ms-filter: quote(progid:DXImageTransform.Microsoft.gradient(startColorStr='#{$hexopac}',EndColorStr='#{$hexopac}')); + } + @else { + background-color: $hex; + background-color: rgba($hex, $alpha); + } +}*/ + +@mixin perspective($perspective) { + -moz-perspective: $perspective; + -ms-perspective: $perspective; + -webkit-perspective: $perspective; + perspective: $perspective; + -moz-transform-style: preserve-3d; + -ms-transform-style: preserve-3d; + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; +} + +@mixin transform ($transforms) { + -moz-transform: $transforms; + -o-transform: $transforms; + -ms-transform: $transforms; + -webkit-transform: $transforms; + transform: $transforms; +} + + @mixin matrix ($a, $b, $c, $d, $e, $f) { + -moz-transform: matrix($a, $b, $c, $d, #{$e}px, #{$f}px); + -o-transform: matrix($a, $b, $c, $d, $e, $f); + -ms-transform: matrix($a, $b, $c, $d, $e, $f); + -webkit-transform: matrix($a, $b, $c, $d, $e, $f); + transform: matrix($a, $b, $c, $d, $e, $f); + } + + @mixin rotate ($deg) { + @include transform(rotate(#{$deg}deg)); + } + + @mixin scale ($size) { + @include transform(scale(#{$size})); + } + + @mixin translate ($x, $y) { + @include transform(translate($x, $y)); + } + +@mixin transition ($value...) { + -moz-transition: $value; + -o-transition: $value; + -ms-transition: $value; + -webkit-transition: $value; + transition: $value; +} + +// ==== /CSS3 SASS MIXINS ==== + +@mixin opacity($opacity) { + opacity: $opacity; + $opacity-ie: $opacity * 100; + filter: alpha(opacity=$opacity-ie); //IE8 +} + +@mixin sprite($img, $width, $height: $width, $display: block) +{ + display: $display; + background-image: url('#{$img}'); + + @include size($width, $height); +} + +@mixin size($width, $height: $width) +{ + width: $width; + height: $height; +} + +@mixin clearfix +{ + &:after { + content: ""; + display: table; + clear: both; + } +} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/scss/_start.scss b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/_start.scss new file mode 100644 index 000000000..653f53ac8 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/_start.scss @@ -0,0 +1,4 @@ +@import "vars"; +@import "colors"; +@import "mixins"; +@import "functions"; \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/scss/_vars.scss b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/_vars.scss new file mode 100644 index 000000000..053b22cf4 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/_vars.scss @@ -0,0 +1,5 @@ +$is_production: true; + +$img_common: if($is_production == true, '//img.freemius.com', 'http://img.freemius:8080'); + +$layout_width: 960px; \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/account.scss b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/account.scss new file mode 100644 index 000000000..0b5e38559 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/account.scss @@ -0,0 +1,171 @@ +#fs_account +{ + .postbox, + .widefat + { + max-width: 700px; + } + + h3 + { + font-size: 1.3em; + padding: 12px 15px; + margin: 0 0 12px 0; + line-height: 1.4; + border-bottom: 1px solid #F1F1F1; + } + + i.dashicons + { + font-size: 1.2em; + height: 1.2em; + width: 1.2em; + } + + .button + { + i.dashicons + { + vertical-align: middle; + } + } + + .fs-header-actions + { + position: absolute; + top: 17px; + right: 15px; + font-size: 0.9em; + + ul + { + margin: 0; + } + + li + { + form + { + display: inline-block; + } + + float: left; + a + { + text-decoration: none; + } + } + } +} + +.rtl #fs_account .fs-header-actions +{ + left: 15px; + right: auto; +} + +.fs-key-value-table +{ + width: 100%; + + form + { + display: inline-block; + } + + tr + { + td:first-child + { + nobr + { + font-weight: bold; + } + + text-align: right; + + form + { + display: block; + } + } + + td.fs-right + { + text-align: right; + } + + &.fs-odd + { + background: #ebebeb; + } + } + + td, th + { + padding: 10px; + } + + var, code + { + color: #0073AA; + font-size: 16px; + background: none; + } +} + +label.fs-tag +{ + background: #ffba00; + color: #fff; + display: inline-block; + border-radius: 3px; + padding: 5px; + font-size: 11px; + line-height: 11px; + vertical-align: baseline; + + &.fs-warn + { + background: #ffba00; + } + &.fs-success + { + background: #46b450; + } + &.fs-error + { + background: #dc3232; + } +} + +#fs_addons +{ + h3 + { + border: none; + margin-bottom: 0; + padding: 4px 5px; + } + + td + { + vertical-align: middle; + } + + td:first-child, + th:first-child + { + text-align: left; + font-weight: bold; + } + td:last-child, + th:last-child + { + text-align: right; + } + th + { + font-weight: bold; + } +} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/add-ons.scss b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/add-ons.scss new file mode 100644 index 000000000..f1636cdef --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/add-ons.scss @@ -0,0 +1,449 @@ +@import "../start"; + +#fs_addons +{ + .fs-cards-list + { + list-style: none; + + .fs-card + { + float: left; + // height: 185px; // With reviews/ratings + height: 152px; + width: 310px; + padding: 0; + margin: 0 0 30px 30px; + font-size: 14px; + list-style: none; + border: 1px solid #ddd; + cursor: pointer; + position: relative; + + .fs-overlay + { + position: absolute; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 9; + } + + .fs-inner + { + background-color: #fff; + overflow: hidden; + height: 100%; + position: relative; + + ul + { + @include transition(all, 0.15s); + left: 0; + right: 0; + top: 0; + position: absolute; + } + + li + { + list-style: none; + line-height: 18px; + padding: 0 15px; + width: 100%; + display: block; + @include box-sizing(border-box); + } + + .fs-card-banner + { + padding: 0; + margin: 0; + line-height: 0; + display: block; + height: 100px; + background-repeat: repeat-x; + background-size: 100% 100%; + @include transition(all, 0.15s); + } + + .fs-title + { + margin: 10px 0 0 0; + height: 18px; + overflow: hidden; + color: #000; + white-space: nowrap; + text-overflow: ellipsis; + font-weight: bold; + } + + .fs-offer + { + font-size: 0.9em; + } + + .fs-description + { + background-color: #f9f9f9; + padding: 10px 15px 100px 15px; + border-top: 1px solid #eee; + margin: 0 0 10px 0; + color: #777; + } + + .fs-tag + { + position: absolute; + top: 10px; + right: 0px; + background: greenyellow; + display: block; + padding: 2px 10px; + @include box-shadow(1px 1px 1px rgba(0,0,0,0.3)); + text-transform: uppercase; + font-size: 0.9em; + font-weight: bold; + } + + .fs-cta + { + .button + { + position: absolute; + top: 112px; + right: 10px; + } + } + } + + @media screen and (min-width: 960px) { + &:hover + { + .fs-overlay + { + border: 2px solid $fms-link-color; + margin-left: -1px; + margin-top: -1px; + } + + .fs-inner + { + ul + { + top: -100px; + } + + .fs-card-banner + { + // background-position: 50% -100px; + } + + .fs-title, + .fs-offer + { + color: $fms-link-color; + } + } + } + } + } + } +} + +#TB_window +{ + &, iframe + { + width: 772px !important; + } +} + +#plugin-information +{ + #section-description + { + h2, h3, p, b, i, blockquote, li, ul, ol + { + clear: none; + } + + .fs-selling-points + { + padding-bottom: 10px; + border-bottom: 1px solid #ddd; + + ul + { + margin: 0; + + li + { + padding: 0; + list-style: none outside none; + + i.dashicons + { + color: $fs-logo-green-color; + font-size: 3em; + vertical-align: middle; + line-height: 30px; + float: left; + margin: 0 0 0 -15px; + } + + h3 + { + margin: 1em 30px !important; + } + } + } + } + + .fs-screenshots + { + @include clearfix(); + ul + { + list-style: none; + margin: 0; + + li + { + width: 225px; + height: 225px; + float: left; + margin-bottom: 20px; + @include box-sizing(content-box); + + a + { + display: block; + width: 100%; + height: 100%; + border: 1px solid; + @include box-shadow(1px 1px 1px rgba(0, 0, 0, 0.2)); + background-size: cover; + } + + &.odd + { + margin-right: 20px; + } + } + } + } + } + + .plugin-information-pricing + { + $pricing_color: #FFFEEC; + $borders_color: #DDD; + margin: -16px; + // padding: 20px; + border-bottom: 1px solid $borders_color; + + .fs-plan + { + + h3 + { + margin-top: 0; + padding: 20px; + font-size: 16px; + } + + .nav-tab-wrapper + { + border-bottom: 1px solid $borders_color; + + .nav-tab + { + cursor: pointer; + position: relative; + padding: 0 10px; + font-size: 0.9em; + + label + { + text-transform: uppercase; + color: green; + background: greenyellow; + position: absolute; + left: -1px; + right: -1px; + bottom: 100%; + border: 1px solid darkgreen; + padding: 2px; + text-align: center; + font-size: 0.9em; + line-height: 1em; + } + + &.nav-tab-active + { + cursor: default; + background: $pricing_color; + border-bottom-color: $pricing_color; + } + } + } + + &.fs-single-cycle + { + h3 + { + background: $pricing_color; + margin: 0; + padding-bottom: 0; + color: #0073aa; + } + + .nav-tab-wrapper, + .fs-billing-frequency + { + display: none; + } + } + + .fs-pricing-body + { + background: $pricing_color; + padding: 20px; + } + + .button + { + width: 100%; + text-align: center; + font-weight: bold; + text-transform: uppercase; + font-size: 1.1em; + } + + label + { + white-space: nowrap; + } + + var { + font-style: normal; + } + + .fs-billing-frequency, + .fs-annual-discount + { + text-align: center; + display: block; + font-weight: bold; + margin-bottom: 10px; + text-transform: uppercase; + background: #F3F3F3; + padding: 2px; + border: 1px solid #ccc; + } + + .fs-annual-discount + { + text-transform: none; + color: green; + background: greenyellow; + } + + ul.fs-trial-terms + { + font-size: 0.9em; + + i + { + float: left; + margin: 0 0 0 -15px; + } + + li + { + margin: 10px 0 0 0; + } + } + } + } + + #section-features + { + .fs-features + { + margin: -20px -26px; + } + + table + { + width: 100%; + border-spacing: 0; + border-collapse: separate; + + thead + { + th + { + padding: 10px 0; + } + + .fs-price + { + color: $fs-logo-green-color; + font-weight: normal; + display: block; + text-align: center; + } + } + + tbody + { + td + { + border-top: 1px solid #ccc; + padding: 10px 0; + text-align: center; + width: 100px; + color: $fs-logo-green-color; + + &:first-child + { + text-align: left; + width: auto; + color: inherit; + padding-left: 26px; + } + } + tr.fs-odd + { + td + { + background: #fefefe; + } + } + } + } + + .dashicons-yes + { + width: 30px; + height: 30px; + font-size: 30px; + } + } +} + +@media screen and (max-width: 961px) { + #fs_addons + { + .fs-cards-list + { + .fs-card + { + height: 265px; + } + } + } +} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/common.scss b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/common.scss new file mode 100644 index 000000000..4a2f75eb0 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/common.scss @@ -0,0 +1,134 @@ +@import "../start"; + +.fs-notice +{ + position: relative; + + &.fs-has-title + { + margin-bottom: 30px !important; + } + + &.success + { + color: green; + // font-weight: normal; + } + + &.promotion + { + border-color: $fs-notice-promotion-border-color !important; + background-color: $fs-notice-promotion-bkg !important; + } + + .fs-notice-body + { + margin: .5em 0; + padding: 2px; + } + + .fs-close + { + // position: absolute; + // top: 2px; + // bottom: 2px; + // right: 2px; + // min-width: 100px; + // text-align: center; + // padding-right: 2px; + cursor: pointer; + color: #aaa; + float: right; + + &:hover + { + color: #666; + // background: #A9A9A9; + } + + > * + { + margin-top: 7px; + display: inline-block; + } + } + + label.fs-plugin-title + { + background: rgba(0, 0, 0, 0.3); + color: #fff; + padding: 2px 10px; + position: absolute; + top: 100%; + bottom: auto; + right: auto; + @include border-radius(0 0 3px 3px); + left: 10px; + font-size: 12px; + font-weight: bold; + cursor: auto; + } +} + +.rtl .fs-notice +{ + .fs-close + { + // left: 2px; + // right: auto; + // padding-right: 0; + // padding-left: 2px; + float: left; + } +} + +.fs-secure-notice +{ + position: fixed; + top: 32px; + left: 160px; + right: 0; + background: rgb(235, 253, 235); + padding: 10px 20px; + color: green; + z-index: 9999; + box-shadow: 0px 2px 2px rgba(6, 113, 6, 0.3); + @include opacity(0.95); + + &:hover + { + @include opacity(1); + } +} + +@media screen and (max-width: 960px) { + .fs-secure-notice + { + left: 36px; + } +} + +@media screen and (max-width: 782px) { + .fs-secure-notice + { + left: 0; + top: 46px; + text-align: center; + } +} + +span.fs-submenu-item.fs-sub:before +{ + // Add small arrow. + content: '\21B3'; + padding: 0 5px; +} + +.rtl +{ + span.fs-submenu-item.fs-sub:before + { + // Add small RTL arrow. + content: '\21B2'; + } +} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/connect.scss b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/connect.scss new file mode 100644 index 000000000..12d696784 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/connect.scss @@ -0,0 +1,421 @@ +@import "../start"; + +$form_width: 480px; + +#fs_connect +{ + width: $form_width; + @include box-shadow(0px 1px 2px rgba(0, 0, 0, 0.3)); + margin: 20px 0; + + @media screen and (max-width: ($form_width - 1)) { + @include box-shadow(none); + width: auto; + margin: 0 0 0 -10px; + } + + .fs-content + { + background: #fff; + padding: 15px 20px; + + p + { + margin: 0; + padding: 0; + font-size: 1.2em; + } + } + + .fs-actions + { + padding: 10px 20px; + background: #C0C7CA; + + .button + { + padding: 0 10px 1px; + line-height: 35px; + height: 37px; + font-size: 16px; + margin-bottom: 0; + + .dashicons + { + font-size: 37px; + margin-left: -8px; + margin-right: 12px; + } + + &.button-primary + { + padding-right: 15px; + padding-left: 15px; + + &:after + { + content: ' \279C'; + } + + &.fs-loading + { + &:after + { + content: ''; + } + } + } + + &.button-secondary + { + float: right; + } + } + + // .fs-skip + // { + // line-height: 38px; + // vertical-align: middle; + // text-decoration: none; + // margin-left: 10px; + // } + } + + &.fs-anonymous-disabled + { + .fs-actions + { + .button.button-primary + { + width: 100%; + } + } + } + + .fs-permissions + { + padding: 10px 20px; + background: #FEFEFE; + // background: #F1F1F1; + @include transition(background 0.5s ease); + + .fs-trigger + { + font-size: 0.9em; + text-decoration: none; + text-align: center; + display: block; + } + + ul + { + height: 0; + overflow: hidden; + margin: 0; + + li + { + margin-bottom: 12px; + + &:last-child + { + margin-bottom: 0; + } + + i.dashicons + { + float: left; + font-size: 40px; + width: 40px; + height: 40px; + } + + div + { + margin-left: 55px; + + span + { + font-weight: bold; + text-transform: uppercase; + color: #23282d; + } + + p + { + margin: 2px 0 0 0; + } + } + } + } + + &.fs-open + { + background: #fff; + + ul + { + height: auto; + margin: 20px 20px 10px 20px; + } + } + + @media screen and (max-width: ($form_width - 1)) { + background: #fff; + + .fs-trigger + { + display: none; + } + + ul + { + height: auto; + margin: 20px; + } + } + } + + $icon_size: 80px; + $wp_logo_padding: $icon_size / 10; + $icons_top: 10px; + + .fs-visual + { + padding: 12px; + line-height: 0; + background: #fafafa; + height: $icon_size; + position: relative; + + .fs-site-icon + { + position: absolute; + left: 20px; + top: $icons_top; + } + + .fs-connect-logo + { + position: absolute; + right: 20px; + top: $icons_top; + } + + .fs-plugin-icon + { + position: absolute; + top: $icons_top; + left: 50%; + margin-left: - ($icon_size / 2); + } + + .fs-plugin-icon, + .fs-site-icon, + img, + object + { + width: $icon_size; + height: $icon_size; + } + + .dashicons-wordpress + { + font-size: $icon_size - ($wp_logo_padding * 2); + background: $wordpress_color; + color: #fff; + width: $icon_size - ($wp_logo_padding * 2); + height: $icon_size - ($wp_logo_padding * 2); + padding: $wp_logo_padding; + } + + .dashicons-plus + { + position: absolute; + top: 50%; + font-size: 30px; + margin-top: -10px; + color: #bbb; + + &.fs-first + { + left: 28%; + } + &.fs-second + { + left: 65%; + } + } + + .fs-plugin-icon, + .fs-connect-logo, + .fs-site-icon + { + border: 1px solid #ccc; + padding: 1px; + background: #fff; + } + } + + .fs-terms + { + text-align: center; + font-size: 0.85em; + padding: 5px; + background: rgba(0, 0, 0, 0.05); + + &, a + { + color: #999; + } + + a + { + text-decoration: none; + } + } +} + +.rtl +{ + #fs_connect + { + .fs-actions + { + padding: 10px 20px; + background: #C0C7CA; + + .button + { + .dashicons + { + font-size: 37px; + margin-left: -8px; + margin-right: 12px; + } + + &.button-primary + { + &:after + { + content: ' \000bb'; + } + + &.fs-loading + { + &:after + { + content: ''; + } + } + } + + &.button-secondary + { + float: left; + } + } + } + + .fs-permissions + { + ul + { + li + { + div + { + margin-right: 55px; + margin-left: 0; + } + + i.dashicons + { + float: right; + } + + } + } + } + + .fs-visual + { + .fs-site-icon + { + right: 20px; + left: auto; + } + + .fs-connect-logo + { + right: auto; + left: 20px; + } + } + } +} + +.wp-pointer-content +{ + #fs_connect + { + margin: 0; + @include box-shadow(none); + } +} + +.fs-opt-in-pointer +{ + .wp-pointer-content + { + padding: 0; + } + + &.wp-pointer-top + { + .wp-pointer-arrow + { + border-bottom-color: #dfdfdf; + } + .wp-pointer-arrow-inner + { + border-bottom-color: #fafafa; + } + } + + &.wp-pointer-bottom + { + .wp-pointer-arrow + { + border-top-color: #dfdfdf; + } + .wp-pointer-arrow-inner + { + border-top-color: #fafafa; + } + } + + &.wp-pointer-left + { + .wp-pointer-arrow + { + border-right-color: #dfdfdf; + } + .wp-pointer-arrow-inner + { + border-right-color: #fafafa; + } + } + + &.wp-pointer-right + { + .wp-pointer-arrow + { + border-left-color: #dfdfdf; + } + .wp-pointer-arrow-inner + { + border-left-color: #fafafa; + } + } +} diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/deactivation-feedback.scss b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/deactivation-feedback.scss new file mode 100644 index 000000000..03792f1f3 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/deactivation-feedback.scss @@ -0,0 +1,120 @@ +.fs-modal { + position: fixed; + overflow: auto; + height: 100%; + width: 100%; + top: 0; + z-index: 100000; + display: none; + background: rgba(0, 0, 0, 0.6); + + .fs-modal-dialog { + background: transparent; + position: absolute; + left: 50%; + margin-left: -298px; + padding-bottom: 30px; + top: -100%; + z-index: 100001; + width: 596px; + + @media (max-width: 650px) { + margin-left: -50%; + box-sizing: border-box; + padding-left: 10px; + padding-right: 10px; + width: 100%; + + .fs-modal-panel > h3 > strong { + font-size: 1.3em; + } + + li.reason { + margin-bottom: 10px; + + .reason-input { + margin-left: 29px; + } + + label { + display: table; + + > span { + display: table-cell; + font-size: 1.3em; + } + } + } + } + } + + &.active { + display: block; + + &:before { + display: block; + } + + .fs-modal-dialog { + top: 10%; + } + } + + .fs-modal-body, + .fs-modal-footer { + border: 0; + background: #fefefe; + padding: 20px; + } + + .fs-modal-body { + border-bottom: 0; + + h2 { + font-size: 20px; + } + + > div { + margin-top: 10px; + + h2 { + font-weight: bold; + font-size: 20px; + margin-top: 0; + } + } + } + + .fs-modal-footer { + border-top: #eeeeee solid 1px; + text-align: right; + + > .button { + margin: 0 7px; + + &:first-child { + margin: 0; + } + } + } + + .fs-modal-panel:not(.active) { + display: none; + } + + .reason-input { + margin: 3px 0 3px 22px; + + input, textarea { + width: 100%; + } + } +} + +body.has-fs-modal { + overflow: hidden; +} + +#the-list .deactivate > .fs-slug { + display: none; +} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/debug.scss b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/debug.scss new file mode 100644 index 000000000..f1ff00101 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/assets/scss/admin/debug.scss @@ -0,0 +1,91 @@ +@import "../start"; + +.switch +{ + position: relative; + display: inline-block; + font-size: 1.6em; + font-weight: bold; + color: #ccc; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.8); + height: 18px; + padding: 6px 6px 5px 6px; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 4px; + background: #ececec; + box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.1), inset 0px 1px 3px 0px rgba(0, 0, 0, 0.1); + cursor: pointer; + + span + { + display: inline-block; width: 35px; + text-transform: uppercase; + + &.on + { + color: $button-primary-bkg; + } + } + + .toggle + { + position: absolute; + top: 1px; + width: 37px; + height: 25px; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.3); + border-radius: 4px; + background: #fff; + background: -moz-linear-gradient(top, #ececec 0%, #fff 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ececec), color-stop(100%, #fff)); + background: -webkit-linear-gradient(top, #ececec 0%, #fff 100%); + background: -o-linear-gradient(top, #ececec 0%, #fff 100%); + background: -ms-linear-gradient(top, #ececec 0%, #fff 100%); + background: linear-gradient(top, #ececec 0%, #fff 100%); + box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.5); + z-index: 999; + @include transition(all 0.15s ease-in-out); + } + + &.on .toggle + { + left: 2%; + } + &.off .toggle + { + left: 54%; + } + + /* Round switch */ + &.round + { + padding: 0px 20px; + border-radius: 40px; + + .toggle + { + border-radius: 40px; + width: 14px; + height: 14px; + } + + &.on .toggle + { + left: 3%; + background: $button-primary-bkg; + } + &.off .toggle + { + left: 58%; + } + } +} + +.switch-label +{ + font-size: 20px; + line-height: 31px; + margin: 0 5px; +} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/config.php b/wp-content/plugins/nextgen-gallery/freemius/config.php new file mode 100644 index 000000000..3d5bb8a45 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/config.php @@ -0,0 +1,229 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.4 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + define( 'WP_FS__SLUG', 'freemius' ); + if ( ! defined( 'WP_FS__DEV_MODE' ) ) { + define( 'WP_FS__DEV_MODE', false ); + } + + /** + * API Connectivity Simulation + */ + if ( ! defined( 'WP_FS__SIMULATE_NO_API_CONNECTIVITY' ) ) { + define( 'WP_FS__SIMULATE_NO_API_CONNECTIVITY', false ); + } + if ( ! defined( 'WP_FS__SIMULATE_NO_CURL' ) ) { + define( 'WP_FS__SIMULATE_NO_CURL', false ); + } + if ( ! defined( 'WP_FS__SIMULATE_NO_API_CONNECTIVITY_CLOUDFLARE' ) ) { + define( 'WP_FS__SIMULATE_NO_API_CONNECTIVITY_CLOUDFLARE', false ); + } + if ( ! defined( 'WP_FS__SIMULATE_NO_API_CONNECTIVITY_SQUID_ACL' ) ) { + define( 'WP_FS__SIMULATE_NO_API_CONNECTIVITY_SQUID_ACL', false ); + } + if ( WP_FS__SIMULATE_NO_CURL ) { + define( 'FS_SDK__SIMULATE_NO_CURL', true ); + } + if ( WP_FS__SIMULATE_NO_API_CONNECTIVITY_CLOUDFLARE ) { + define( 'FS_SDK__SIMULATE_NO_API_CONNECTIVITY_CLOUDFLARE', true ); + } + if ( WP_FS__SIMULATE_NO_API_CONNECTIVITY_SQUID_ACL ) { + define( 'FS_SDK__SIMULATE_NO_API_CONNECTIVITY_SQUID_ACL', true ); + } + + if ( ! defined( 'WP_FS__SIMULATE_FREEMIUS_OFF' ) ) { + define( 'WP_FS__SIMULATE_FREEMIUS_OFF', false ); + } + + if ( ! defined( 'WP_FS__PING_API_ON_IP_OR_HOST_CHANGES' ) ) { + /** + * @since 1.1.7.3 + * @author Vova Feldman (@svovaf) + * + * I'm not sure if shared servers periodically change IP, or the subdomain of the + * admin dashboard. Also, I've seen sites that have strange loop of switching + * between domains on a daily basis. Therefore, to eliminate the risk of + * multiple unwanted connectivity test pings, temporary ignore domain or + * server IP changes. + */ + define( 'WP_FS__PING_API_ON_IP_OR_HOST_CHANGES', false ); + } + + /** + * If your dev environment supports custom public network IP setup + * like VVV, please update WP_FS__LOCALHOST_IP with your public IP + * and uncomment it during dev. + */ + if ( ! defined( 'WP_FS__LOCALHOST_IP' ) ) { + // VVV default public network IP. + define( 'WP_FS__VVV_DEFAULT_PUBLIC_IP', '192.168.50.4' ); + +// define( 'WP_FS__LOCALHOST_IP', WP_FS__VVV_DEFAULT_PUBLIC_IP ); + } + + /** + * If true and running with secret key, the opt-in process + * will skip the email activation process which is invoked + * when the email of the context user already exist in Freemius + * database (as a security precaution, to prevent sharing user + * secret with unauthorized entity). + * + * IMPORTANT: + * AS A SECURITY PRECAUTION, WE VALIDATE THE TIMESTAMP OF THE OPT-IN REQUEST. + * THEREFORE, MAKE SURE THAT WHEN USING THIS PARAMETER,YOUR TESTING ENVIRONMENT'S + * CLOCK IS SYNCED. + */ + if ( ! defined( 'WP_FS__SKIP_EMAIL_ACTIVATION' ) ) { + define( 'WP_FS__SKIP_EMAIL_ACTIVATION', false ); + } + + + /** + * Directories + */ + define( 'WP_FS__DIR', dirname( __FILE__ ) ); + define( 'WP_FS__DIR_INCLUDES', WP_FS__DIR . '/includes' ); + define( 'WP_FS__DIR_TEMPLATES', WP_FS__DIR . '/templates' ); + define( 'WP_FS__DIR_ASSETS', WP_FS__DIR . '/assets' ); + define( 'WP_FS__DIR_CSS', WP_FS__DIR_ASSETS . '/css' ); + define( 'WP_FS__DIR_JS', WP_FS__DIR_ASSETS . '/js' ); + define( 'WP_FS__DIR_IMG', WP_FS__DIR_ASSETS . '/img' ); + define( 'WP_FS__DIR_SDK', WP_FS__DIR_INCLUDES . '/sdk' ); + + + /** + * Domain / URL / Address + */ + define( 'WP_FS__DOMAIN_PRODUCTION', 'wp.freemius.com' ); + define( 'WP_FS__ADDRESS_PRODUCTION', 'https://' . WP_FS__DOMAIN_PRODUCTION ); + + if ( ! defined( 'WP_FS__DOMAIN_LOCALHOST' ) ) { + define( 'WP_FS__DOMAIN_LOCALHOST', 'wp.freemius' ); + } + if ( ! defined( 'WP_FS__ADDRESS_LOCALHOST' ) ) { + define( 'WP_FS__ADDRESS_LOCALHOST', 'http://' . WP_FS__DOMAIN_LOCALHOST . ':8080' ); + } + + if ( ! defined( 'WP_FS__TESTING_DOMAIN' ) ) { + define( 'WP_FS__TESTING_DOMAIN', 'fswp' ); + } + + if ( ! defined( 'WP_FS__API_ADDRESS_LOCALHOST' ) ) { + define( 'WP_FS__API_ADDRESS_LOCALHOST', 'http://api.freemius:8080' ); + } + if ( ! defined( 'WP_FS__API_SANDBOX_ADDRESS_LOCALHOST' ) ) { + define( 'WP_FS__API_SANDBOX_ADDRESS_LOCALHOST', 'http://sandbox-api.freemius:8080' ); + } + + define( 'WP_FS__IS_HTTP_REQUEST', isset( $_SERVER['HTTP_HOST'] ) ); + define( 'WP_FS__REMOTE_ADDR', fs_get_ip() ); + + if ( ! defined( 'WP_FS__IS_PRODUCTION_MODE' ) ) { + // By default, run with Freemius production servers. + define( 'WP_FS__IS_PRODUCTION_MODE', true ); + } + + define( 'WP_FS__ADDRESS', ( WP_FS__IS_PRODUCTION_MODE ? WP_FS__ADDRESS_PRODUCTION : WP_FS__ADDRESS_LOCALHOST ) ); + + if ( defined( 'WP_FS__LOCALHOST_IP' ) ) { + define( 'WP_FS__IS_LOCALHOST', ( WP_FS__LOCALHOST_IP === WP_FS__REMOTE_ADDR ) ); + } else { + define( 'WP_FS__IS_LOCALHOST', WP_FS__IS_HTTP_REQUEST && + is_string( WP_FS__REMOTE_ADDR ) && + ( substr( WP_FS__REMOTE_ADDR, 0, 4 ) == '127.' || + WP_FS__REMOTE_ADDR == '::1' ) + ); + } + + define( 'WP_FS__IS_LOCALHOST_FOR_SERVER', ( ! WP_FS__IS_HTTP_REQUEST || + false !== strpos( $_SERVER['HTTP_HOST'], 'localhost' ) ) ); + + // Set API address for local testing. + if ( ! WP_FS__IS_PRODUCTION_MODE ) { + define( 'FS_API__ADDRESS', WP_FS__API_ADDRESS_LOCALHOST ); + define( 'FS_API__SANDBOX_ADDRESS', WP_FS__API_SANDBOX_ADDRESS_LOCALHOST ); + } + + define( 'WP_FS___OPTION_PREFIX', 'fs' . ( WP_FS__IS_PRODUCTION_MODE ? '' : '_dbg' ) . '_' ); + + if ( ! defined( 'WP_FS__ACCOUNTS_OPTION_NAME' ) ) { + define( 'WP_FS__ACCOUNTS_OPTION_NAME', WP_FS___OPTION_PREFIX . 'accounts' ); + } + if ( ! defined( 'WP_FS__API_CACHE_OPTION_NAME' ) ) { + define( 'WP_FS__API_CACHE_OPTION_NAME', WP_FS___OPTION_PREFIX . 'api_cache' ); + } + define( 'WP_FS__OPTIONS_OPTION_NAME', WP_FS___OPTION_PREFIX . 'options' ); + + define( 'WP_FS__IS_HTTPS', ( WP_FS__IS_HTTP_REQUEST && + // Checks if CloudFlare's HTTPS (Flexible SSL support) + isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' === strtolower( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) ) || + // Check if HTTPS request. + ( isset( $_SERVER['HTTPS'] ) && 'on' == $_SERVER['HTTPS'] ) || + ( isset( $_SERVER['SERVER_PORT'] ) && 443 == $_SERVER['SERVER_PORT'] ) + ); + + define( 'WP_FS__IS_POST_REQUEST', ( WP_FS__IS_HTTP_REQUEST && + strtoupper( $_SERVER['REQUEST_METHOD'] ) == 'POST' ) ); + + /** + * Billing Frequencies + */ + define( 'WP_FS__PERIOD_ANNUALLY', 'annual' ); + define( 'WP_FS__PERIOD_MONTHLY', 'monthly' ); + define( 'WP_FS__PERIOD_LIFETIME', 'lifetime' ); + + /** + * Plans + */ + define( 'WP_FS__PLAN_DEFAULT_PAID', false ); + define( 'WP_FS__PLAN_FREE', 'free' ); + define( 'WP_FS__PLAN_TRIAL', 'trial' ); + + /** + * Times in seconds + */ + define( 'WP_FS__TIME_5_MIN_IN_SEC', 300 ); + define( 'WP_FS__TIME_10_MIN_IN_SEC', 600 ); +// define( 'WP_FS__TIME_15_MIN_IN_SEC', 900 ); + define( 'WP_FS__TIME_24_HOURS_IN_SEC', 86400 ); + + /** + * Debugging + */ + if ( ! defined( 'WP_FS__DEBUG_SDK' ) ) { + $debug_mode = get_option( 'fs_debug_mode', null ); + + if ( $debug_mode === null ) { + $debug_mode = false; + add_option( 'fs_debug_mode', $debug_mode ); + } + + define( 'WP_FS__DEBUG_SDK', is_numeric( $debug_mode ) ? ( 0 < $debug_mode ) : WP_FS__DEV_MODE ); + } + + define( 'WP_FS__ECHO_DEBUG_SDK', WP_FS__DEV_MODE && ! empty( $_GET['fs_dbg_echo'] ) ); + define( 'WP_FS__LOG_DATETIME_FORMAT', 'Y-n-d H:i:s' ); + if ( ! defined( 'FS_API__LOGGER_ON' ) ) { + define( 'FS_API__LOGGER_ON', WP_FS__DEBUG_SDK ); + } + + if ( WP_FS__ECHO_DEBUG_SDK ) { + error_reporting( E_ALL ); + ini_set( 'error_reporting', E_ALL ); + ini_set( 'display_errors', true ); + ini_set( 'html_errors', true ); + } + + + define( 'WP_FS__SCRIPT_START_TIME', time() ); + define( 'WP_FS__DEFAULT_PRIORITY', 10 ); + define( 'WP_FS__LOWEST_PRIORITY', 999999999 ); diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/class-freemius-abstract.php b/wp-content/plugins/nextgen-gallery/freemius/includes/class-freemius-abstract.php new file mode 100644 index 000000000..0b42c71bb --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/class-freemius-abstract.php @@ -0,0 +1,404 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.7 + */ + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + + /** + * - Each instance of Freemius class represents a single plugin + * install by a single user (the installer of the plugin). + * + * - Each website can only have one install of the same plugin. + * + * - Install entity is only created after a user connects his account with Freemius. + * + * Class Freemius_Abstract + */ + abstract class Freemius_Abstract { + + #region Identity ------------------------------------------------------------------ + + /** + * Check if user registered with Freemius by connecting his account. + * + * @since 1.0.1 + * @return bool + */ + abstract function is_registered(); + + /** + * Check if the user skipped connecting the account with Freemius. + * + * @since 1.0.7 + * + * @return bool + */ + abstract function is_anonymous(); + + /** + * Check if the user currently in activation mode. + * + * @since 1.0.7 + * + * @return bool + */ + abstract function is_activation_mode(); + + #endregion Identity ------------------------------------------------------------------ + + #region Permissions ------------------------------------------------------------------ + + /** + * Check if plugin must be WordPress.org compliant. + * + * @since 1.0.7 + * + * @return bool + */ + abstract function is_org_repo_compliant(); + + /** + * Check if plugin is allowed to install executable files. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @return bool + */ + function is_allowed_to_install() { + return ( $this->is_premium() || ! $this->is_org_repo_compliant() ); + } + + #endregion Permissions ------------------------------------------------------------------ + + /** + * Check if user in trial or in free plan (not paying). + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @return bool + */ + function is_not_paying() { + return ( $this->is_trial() || $this->is_free_plan() ); + } + + /** + * Check if the user has an activated and valid paid license on current plugin's install. + * + * @since 1.0.9 + * + * @return bool + */ + abstract function is_paying(); + + /** + * Check if the user is paying or in trial. + * + * @since 1.0.9 + * + * @return bool + */ + function is_paying_or_trial() { + return ( $this->is_paying() || $this->is_trial() ); + } + + #region Premium Only ------------------------------------------------------------------ + + /** + * All logic wrapped in methods with "__premium_only()" suffix will be only + * included in the premium code. + * + * Example: + * if ( freemius()->is__premium_only() ) { + * ... + * } + */ + + /** + * Returns true when running premium plugin code. + * + * @since 1.0.9 + * + * @return bool + */ + function is__premium_only() { + return $this->is_premium(); + } + + /** + * Check if the user has an activated and valid paid license on current plugin's install. + * + * @since 1.0.9 + * + * @return bool + * + */ + function is_paying__premium_only() { + return ( $this->is__premium_only() && $this->is_paying() ); + } + + /** + * All code wrapped in this statement will be only included in the premium code. + * + * @since 1.0.9 + * + * @param string $plan Plan name + * @param bool $exact If true, looks for exact plan. If false, also check "higher" plans. + * + * @return bool + */ + function is_plan__premium_only( $plan, $exact = false ) { + return ( $this->is_premium() && $this->is_plan( $plan, $exact ) ); + } + + /** + * Check if plan matches active license' plan or active trial license' plan. + * + * All code wrapped in this statement will be only included in the premium code. + * + * @since 1.0.9 + * + * @param string $plan Plan name + * @param bool $exact If true, looks for exact plan. If false, also check "higher" plans. + * + * @return bool + */ + function is_plan_or_trial__premium_only( $plan, $exact = false ) { + return ( $this->is_premium() && $this->is_plan_or_trial( $plan, $exact ) ); + } + + /** + * Check if the user is paying or in trial. + * + * All code wrapped in this statement will be only included in the premium code. + * + * @since 1.0.9 + * + * @return bool + */ + function is_paying_or_trial__premium_only() { + return $this->is_premium() && $this->is_paying_or_trial(); + } + + /** + * Check if the user has an activated and valid paid license on current plugin's install. + * + * @since 1.0.4 + * + * @return bool + * + * @deprecated Method name is confusing since it's not clear from the name the code will be removed. + * @using Alias to is_paying__premium_only() + */ + function is_paying__fs__() { + return $this->is_paying__premium_only(); + } + + #endregion Premium Only ------------------------------------------------------------------ + + #region Trial ------------------------------------------------------------------ + + /** + * Check if the user in a trial. + * + * @since 1.0.3 + * + * @return bool + */ + abstract function is_trial(); + + /** + * Check if trial already utilized. + * + * @since 1.0.9 + * + * @return bool + */ + abstract function is_trial_utilized(); + + #endregion Trial ------------------------------------------------------------------ + + #region Plans ------------------------------------------------------------------ + + /** + * Check if plugin using the free plan. + * + * @since 1.0.4 + * + * @return bool + */ + abstract function is_free_plan(); + + /** + * @since 1.0.2 + * + * @param string $plan Plan name + * @param bool $exact If true, looks for exact plan. If false, also check "higher" plans. + * + * @return bool + */ + abstract function is_plan( $plan, $exact = false ); + + /** + * Check if plan based on trial. If not in trial mode, should return false. + * + * @since 1.0.9 + * + * @param string $plan Plan name + * @param bool $exact If true, looks for exact plan. If false, also check "higher" plans. + * + * @return bool + */ + abstract function is_trial_plan( $plan, $exact = false ); + + /** + * Check if plan matches active license' plan or active trial license' plan. + * + * @since 1.0.9 + * + * @param string $plan Plan name + * @param bool $exact If true, looks for exact plan. If false, also check "higher" plans. + * + * @return bool + */ + function is_plan_or_trial( $plan, $exact = false ) { + return $this->is_plan( $plan, $exact ) || + $this->is_trial_plan( $plan, $exact ); + } + + /** + * Check if plugin has any paid plans. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @return bool + */ + abstract function has_paid_plan(); + + /** + * Check if plugin has any free plan, or is it premium only. + * + * Note: If no plans configured, assume plugin is free. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @return bool + */ + abstract function has_free_plan(); + + #endregion Plans ------------------------------------------------------------------ + + /** + * Check if running payments in sandbox mode. + * + * @since 1.0.4 + * + * @return bool + */ + abstract function is_payments_sandbox(); + + /** + * Check if running test vs. live plugin. + * + * @since 1.0.5 + * + * @return bool + */ + abstract function is_live(); + + /** + * Check if running premium plugin code. + * + * @since 1.0.5 + * + * @return bool + */ + abstract function is_premium(); + + /** + * Get upgrade URL. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.2 + * + * @param string $period Billing cycle + * + * @return string + */ + abstract function get_upgrade_url( $period = WP_FS__PERIOD_ANNUALLY ); + + /** + * Check if Freemius was first added in a plugin update. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.5 + * + * @return bool + */ + function is_plugin_update() { + return ! $this->is_plugin_new_install(); + } + + /** + * Check if Freemius was part of the plugin when the user installed it first. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.5 + * + * @return bool + */ + abstract function is_plugin_new_install(); + + #region Marketing ------------------------------------------------------------------ + + /** + * Check if current user purchased any other plugins before. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + abstract function has_purchased_before(); + + /** + * Check if current user classified as an agency. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + abstract function is_agency(); + + /** + * Check if current user classified as a developer. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + abstract function is_developer(); + + /** + * Check if current user classified as a business. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + abstract function is_business(); + + #endregion ------------------------------------------------------------------ + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/class-freemius.php b/wp-content/plugins/nextgen-gallery/freemius/includes/class-freemius.php new file mode 100644 index 000000000..9411e0148 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/class-freemius.php @@ -0,0 +1,9452 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + // "final class" + class Freemius extends Freemius_Abstract { + /** + * SDK Version + * + * @var string + */ + public $version = WP_FS__SDK_VERSION; + + #region Plugin Info + + /** + * @since 1.0.1 + * + * @var string + */ + private $_slug; + + /** + * @since 1.0.0 + * + * @var string + */ + private $_plugin_basename; + /** + * @since 1.0.0 + * + * @var string + */ + private $_free_plugin_basename; + /** + * @since 1.0.0 + * + * @var string + */ + private $_plugin_dir_path; + /** + * @since 1.0.0 + * + * @var string + */ + private $_plugin_dir_name; + /** + * @since 1.0.0 + * + * @var string + */ + private $_plugin_main_file_path; + /** + * @var string[] + */ + private $_plugin_data; + /** + * @since 1.0.9 + * + * @var string + */ + private $_plugin_name; + + #endregion Plugin Info + + /** + * @since 1.0.9 + * + * @var bool If false, don't turn Freemius on. + */ + private $_is_on; + + /** + * @since 1.1.3 + * + * @var bool If false, don't turn Freemius on. + */ + private $_is_anonymous; + + /** + * @since 1.0.9 + * @var bool If false, issues with connectivity to Freemius API. + */ + private $_has_api_connection; + + /** + * @since 1.0.9 + * @var bool Hints the SDK if plugin can support anonymous mode (if skip connect is visible). + */ + private $_enable_anonymous; + + /** + * @since 1.1.7.5 + * @var bool Hints the SDK if plugin should run in anonymous mode (only adds feedback form). + */ + private $_anonymous_mode; + + /** + * @since 1.0.8 + * @var bool Hints the SDK if the plugin has any paid plans. + */ + private $_has_paid_plans; + + /** + * @since 1.0.7 + * @var bool Hints the SDK if the plugin is WordPress.org compliant. + */ + private $_is_org_compliant; + + /** + * @since 1.0.7 + * @var bool Hints the SDK if the plugin is has add-ons. + */ + private $_has_addons; + + /** + * @since 1.1.6 + * @var string[]bool. + */ + private $_permissions; + + /** + * @var FS_Key_Value_Storage + */ + private $_storage; + + /** + * @since 1.0.0 + * + * @var FS_Logger + */ + private $_logger; + /** + * @since 1.0.4 + * + * @var FS_Plugin + */ + private $_plugin = false; + /** + * @since 1.0.4 + * + * @var FS_Plugin + */ + private $_parent_plugin = false; + /** + * @since 1.1.1 + * + * @var Freemius + */ + private $_parent = false; + /** + * @since 1.0.1 + * + * @var FS_User + */ + private $_user = false; + /** + * @since 1.0.1 + * + * @var FS_Site + */ + private $_site = false; + /** + * @since 1.0.1 + * + * @var FS_Plugin_License + */ + private $_license; + /** + * @since 1.0.2 + * + * @var FS_Plugin_Plan[] + */ + private $_plans = false; + /** + * @var FS_Plugin_License[] + * @since 1.0.5 + */ + private $_licenses = false; + + /** + * @since 1.0.1 + * + * @var FS_Admin_Menu_Manager + */ + private $_menu; + + /** + * @var FS_Admin_Notice_Manager + */ + private $_admin_notices; + + /** + * @since 1.1.6 + * + * @var FS_Admin_Notice_Manager + */ + private static $_global_admin_notices; + + /** + * @var FS_Logger + * @since 1.0.0 + */ + private static $_static_logger; + + /** + * @var FS_Option_Manager + * @since 1.0.2 + */ + private static $_accounts; + + /** + * @var Freemius[] + */ + private static $_instances = array(); + + + /* Ctor +------------------------------------------------------------------------------------------------------------------*/ + + private function __construct( $slug ) { + $this->_slug = $slug; + + $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_' . $slug, WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK ); + + $this->_storage = FS_Key_Value_Storage::instance( 'plugin_data', $this->_slug ); + + $this->_plugin_main_file_path = $this->_find_caller_plugin_file(); + $this->_plugin_dir_path = plugin_dir_path( $this->_plugin_main_file_path ); + $this->_plugin_basename = plugin_basename( $this->_plugin_main_file_path ); + $this->_free_plugin_basename = str_replace( '-premium/', '/', $this->_plugin_basename ); + + $base_name_split = explode( '/', $this->_plugin_basename ); + $this->_plugin_dir_name = $base_name_split[0]; + + if ( $this->_logger->is_on() ) { + $this->_logger->info( 'plugin_main_file_path = ' . $this->_plugin_main_file_path ); + $this->_logger->info( 'plugin_dir_path = ' . $this->_plugin_dir_path ); + $this->_logger->info( 'plugin_basename = ' . $this->_plugin_basename ); + $this->_logger->info( 'free_plugin_basename = ' . $this->_free_plugin_basename ); + $this->_logger->info( 'plugin_dir_name = ' . $this->_plugin_dir_name ); + } + + // Remember link between file to slug. + $this->store_file_slug_map(); + + // Store plugin's initial install timestamp. + if ( ! isset( $this->_storage->install_timestamp ) ) { + $this->_storage->install_timestamp = WP_FS__SCRIPT_START_TIME; + } + + $this->_plugin = FS_Plugin_Manager::instance( $this->_slug )->get(); + + $this->_admin_notices = FS_Admin_Notice_Manager::instance( + $slug, + is_object( $this->_plugin ) ? $this->_plugin->title : '' + ); + + if ( 'true' === fs_request_get( 'fs_clear_api_cache' ) || + 'true' === fs_request_is_action( 'restart_freemius' ) + ) { + FS_Api::clear_cache(); + } + + $this->_register_hooks(); + + $this->_load_account(); + + $this->_version_updates_handler(); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + */ + private function _version_updates_handler() { + if ( ! isset( $this->_storage->sdk_version ) || $this->_storage->sdk_version != $this->version ) { + // Freemius version upgrade mode. + $this->_storage->sdk_last_version = $this->_storage->sdk_version; + $this->_storage->sdk_version = $this->version; + + if ( empty( $this->_storage->sdk_last_version ) || + version_compare( $this->_storage->sdk_last_version, $this->version, '<' ) + ) { + $this->_storage->sdk_upgrade_mode = true; + $this->_storage->sdk_downgrade_mode = false; + } else { + $this->_storage->sdk_downgrade_mode = true; + $this->_storage->sdk_upgrade_mode = false; + + } + + $this->do_action( 'sdk_version_update', $this->_storage->sdk_last_version, $this->version ); + } + + $plugin_version = $this->get_plugin_version(); + if ( ! isset( $this->_storage->plugin_version ) || $this->_storage->plugin_version != $plugin_version ) { + // Plugin version upgrade mode. + $this->_storage->plugin_last_version = $this->_storage->plugin_version; + $this->_storage->plugin_version = $plugin_version; + + if ( empty( $this->_storage->plugin_last_version ) || + version_compare( $this->_storage->plugin_last_version, $plugin_version, '<' ) + ) { + $this->_storage->plugin_upgrade_mode = true; + $this->_storage->plugin_downgrade_mode = false; + } else { + $this->_storage->plugin_downgrade_mode = true; + $this->_storage->plugin_upgrade_mode = false; + } + + if ( ! empty( $this->_storage->plugin_last_version ) ) { + // Different version of the plugin was installed before, therefore it's an update. + $this->_storage->is_plugin_new_install = false; + } + + $this->do_action( 'plugin_version_update', $this->_storage->plugin_last_version, $plugin_version ); + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.5 + * + * @param string $sdk_prev_version + * @param string $sdk_version + */ + function _data_migration( $sdk_prev_version, $sdk_version ) { + /** + * @since 1.1.7.3 Fixed unwanted connectivity test cleanup. + */ + if ( empty( $sdk_prev_version ) ) { + return; + } + + if ( version_compare( $sdk_prev_version, '1.1.5', '<' ) && + version_compare( $sdk_version, '1.1.5', '>=' ) + ) { + // On version 1.1.5 merged connectivity and is_on data. + if ( isset( $this->_storage->connectivity_test ) ) { + if ( ! isset( $this->_storage->is_on ) ) { + unset( $this->_storage->connectivity_test ); + } else { + $connectivity_data = $this->_storage->connectivity_test; + $connectivity_data['is_active'] = $this->_storage->is_on['is_active']; + $connectivity_data['timestamp'] = $this->_storage->is_on['timestamp']; + + // Override. + $this->_storage->connectivity_test = $connectivity_data; + + // Remove previous structure. + unset( $this->_storage->is_on ); + } + + } + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + */ + private function _register_hooks() { + if ( is_admin() ) { + // Hook to plugin activation + register_activation_hook( $this->_plugin_main_file_path, array( + &$this, + '_activate_plugin_event_hook' + ) ); + + // Hook to plugin uninstall. + register_uninstall_hook( $this->_plugin_main_file_path, array( 'Freemius', '_uninstall_plugin_hook' ) ); + + if ( ! $this->is_ajax() ) { + if ( ! $this->is_addon() ) { + add_action( 'init', array( &$this, '_add_default_submenu_items' ), WP_FS__LOWEST_PRIORITY ); + add_action( 'admin_menu', array( &$this, '_prepare_admin_menu' ), WP_FS__LOWEST_PRIORITY ); + } + } + } + + register_deactivation_hook( $this->_plugin_main_file_path, array( &$this, '_deactivate_plugin_hook' ) ); + + add_action( 'init', array( &$this, '_redirect_on_clicked_menu_link' ), WP_FS__LOWEST_PRIORITY ); + + $this->add_action( 'after_plans_sync', array( &$this, '_check_for_trial_plans' ) ); + + $this->add_action( 'sdk_version_update', array( &$this, '_data_migration' ), WP_FS__DEFAULT_PRIORITY, 2 ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + */ + private function _register_account_hooks() { + if ( is_admin() ) { + if ( ! $this->is_ajax() ) { + if ( $this->apply_filters( 'show_trial', true ) && $this->has_trial_plan() ) { + $last_time_trial_promotion_shown = $this->_storage->get( 'trial_promotion_shown', false ); + if ( ! $this->_site->is_trial_utilized() && + ( + // Show promotion if never shown it yet and 24 hours after initial activation. + ( false === $last_time_trial_promotion_shown && $this->_storage->activation_timestamp < ( time() - WP_FS__TIME_24_HOURS_IN_SEC ) ) || + // Show promotion in every 30 days. + ( is_numeric( $last_time_trial_promotion_shown ) && 30 * WP_FS__TIME_24_HOURS_IN_SEC < time() - $last_time_trial_promotion_shown ) ) + ) { + $this->add_action( 'after_init_plugin_registered', array( &$this, '_add_trial_notice' ) ); + } + } + } + + // If user is paying or in trial and have the free version installed, + // assume that the deactivation is for the upgrade process. + if ( ! $this->is_paying_or_trial() || $this->is_premium() ) { + add_action( 'wp_ajax_submit-uninstall-reason', array( &$this, '_submit_uninstall_reason_action' ) ); + + global $pagenow; + if ( 'plugins.php' === $pagenow ) { + add_action( 'admin_footer', array( &$this, '_add_deactivation_feedback_dialog_box' ) ); + } + } + } + } + + /** + * Leverage backtrace to find caller plugin file path. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return string + * + * @uses fs_find_caller_plugin_file + */ + private function _find_caller_plugin_file() { + // Try to load the cached value of the file path. + if ( isset( $this->_storage->plugin_main_file ) ) { + if ( file_exists( $this->_storage->plugin_main_file->path ) ) { + return $this->_storage->plugin_main_file->path; + } + } + + $plugin_file = fs_find_caller_plugin_file(); + + $this->_storage->plugin_main_file = (object) array( + 'path' => fs_normalize_path( $plugin_file ), + ); + + return $plugin_file; + } + + + #region Deactivation Feedback Form ------------------------------------------------------------------ + + /** + * Displays a confirmation and feedback dialog box when the user clicks on the "Deactivate" link on the plugins + * page. + * + * @author Vova Feldman (@svovaf) + * @author Leo Fajardo (@leorw) + * @since 1.1.2 + */ + function _add_deactivation_feedback_dialog_box() { + fs_enqueue_local_style( 'fs_deactivation_feedback', '/admin/deactivation-feedback.css' ); + + /* Check the type of user: + * 1. Long-term (long-term) + * 2. Non-registered and non-anonymous short-term (non-registered-and-non-anonymous-short-term). + * 3. Short-term (short-term) + */ + $is_long_term_user = true; + + // Check if the site is at least 2 days old. + $time_installed = $this->_storage->install_timestamp; + + // Difference in seconds. + $date_diff = time() - $time_installed; + + // Convert seconds to days. + $date_diff_days = floor( $date_diff / ( 60 * 60 * 24 ) ); + + if ( $date_diff_days < 2 ) { + $is_long_term_user = false; + } + + $is_long_term_user = $this->apply_filters( 'is_long_term_user', $is_long_term_user ); + + if ( $is_long_term_user ) { + $user_type = 'long-term'; + } else { + if ( ! $this->is_registered() && ! $this->is_anonymous() ) { + $user_type = 'non-registered-and-non-anonymous-short-term'; + } else { + $user_type = 'short-term'; + } + } + + $uninstall_reasons = $this->_get_uninstall_reasons( $user_type ); + + // Load the HTML template for the deactivation feedback dialog box. + $vars = array( + 'reasons' => $uninstall_reasons, + 'slug' => $this->_slug + ); + + /** + * @todo Deactivation form core functions should be loaded only once! Otherwise, when there are multiple Freemius powered plugins the same code is loaded multiple times. The only thing that should be loaded differently is the various deactivation reasons object based on the state of the plugin. + */ + fs_require_template( 'deactivation-feedback-modal.php', $vars ); + } + + /** + * @author Leo Fajardo (leorw) + * @since 1.1.2 + * + * @param string $user_type + * + * @return array The uninstall reasons for the specified user type. + */ + function _get_uninstall_reasons( $user_type = 'long-term' ) { + $reason_found_better_plugin = array( + 'id' => 2, + 'text' => __fs( 'reason-found-a-better-plugin', $this->_slug ), + 'input_type' => 'textfield', + 'input_placeholder' => __fs( 'placeholder-plugin-name', $this->_slug ) + ); + + $reason_temporary_deactivation = array( + 'id' => 15, + 'text' => __fs( 'reason-temporary-deactivation', $this->_slug ), + 'input_type' => '', + 'input_placeholder' => '' + ); + + $reason_other = array( + 'id' => 7, + 'text' => __fs( 'reason-other', $this->_slug ), + 'input_type' => 'textfield', + 'input_placeholder' => '' + ); + + $long_term_user_reasons = array( + array( + 'id' => 1, + 'text' => __fs( 'reason-no-longer-needed', $this->_slug ), + 'input_type' => '', + 'input_placeholder' => '' + ), + $reason_found_better_plugin, + array( + 'id' => 3, + 'text' => __fs( 'reason-needed-for-a-short-period', $this->_slug ), + 'input_type' => '', + 'input_placeholder' => '' + ), + array( + 'id' => 4, + 'text' => __fs( 'reason-broke-my-site', $this->_slug ), + 'input_type' => '', + 'input_placeholder' => '' + ), + array( + 'id' => 5, + 'text' => __fs( 'reason-suddenly-stopped-working', $this->_slug ), + 'input_type' => '', + 'input_placeholder' => '' + ) + ); + + if ( $this->is_paying() ) { + $long_term_user_reasons[] = array( + 'id' => 6, + 'text' => __fs( 'reason-cant-pay-anymore', $this->_slug ), + 'input_type' => 'textfield', + 'input_placeholder' => __fs( 'placeholder-comfortable-price', $this->_slug ) + ); + } + + $long_term_user_reasons[] = $reason_temporary_deactivation; + $long_term_user_reasons[] = $reason_other; + + $uninstall_reasons = array( + 'long-term' => $long_term_user_reasons, + 'non-registered-and-non-anonymous-short-term' => array( + array( + 'id' => 8, + 'text' => __fs( 'reason-didnt-work', $this->_slug ), + 'input_type' => '', + 'input_placeholder' => '' + ), + array( + 'id' => 9, + 'text' => __fs( 'reason-dont-like-to-share-my-information', $this->_slug ), + 'input_type' => '', + 'input_placeholder' => '' + ), + $reason_found_better_plugin, + $reason_temporary_deactivation, + $reason_other + ), + 'short-term' => array( + array( + 'id' => 10, + 'text' => __fs( 'reason-couldnt-make-it-work', $this->_slug ), + 'input_type' => '', + 'input_placeholder' => '' + ), + $reason_found_better_plugin, + array( + 'id' => 11, + 'text' => __fs( 'reason-great-but-need-specific-feature', $this->_slug ), + 'input_type' => 'textarea', + 'input_placeholder' => __fs( 'placeholder-feature', $this->_slug ) + ), + array( + 'id' => 12, + 'text' => __fs( 'reason-not-working', $this->_slug ), + 'input_type' => 'textarea', + 'input_placeholder' => __fs( 'placeholder-share-what-didnt-work', $this->_slug ) + ), + array( + 'id' => 13, + 'text' => __fs( 'reason-not-what-i-was-looking-for', $this->_slug ), + 'input_type' => 'textarea', + 'input_placeholder' => __fs( 'placeholder-what-youve-been-looking-for', $this->_slug ) + ), + array( + 'id' => 14, + 'text' => __fs( 'reason-didnt-work-as-expected', $this->_slug ), + 'input_type' => 'textarea', + 'input_placeholder' => __fs( 'placeholder-what-did-you-expect', $this->_slug ) + ), + $reason_temporary_deactivation, + $reason_other + ) + ); + + $uninstall_reasons = $this->apply_filters( 'uninstall_reasons', $uninstall_reasons ); + + return $uninstall_reasons[ $user_type ]; + } + + /** + * Called after the user has submitted his reason for deactivating the plugin. + * + * @author Leo Fajardo (@leorw) + * @since 1.1.2 + */ + function _submit_uninstall_reason_action() { + if ( ! isset( $_POST['reason_id'] ) ) { + exit; + } + + $reason_info = isset( $_REQUEST['reason_info'] ) ? trim( stripslashes( $_REQUEST['reason_info'] ) ) : ''; + + $reason = (object) array( + 'id' => $_POST['reason_id'], + 'info' => substr( $reason_info, 0, 128 ) + ); + + $this->_storage->store( 'uninstall_reason', $reason ); + + // Print '1' for successful operation. + echo 1; + exit; + } + + #endregion Deactivation Feedback Form ------------------------------------------------------------------ + + #region Instance ------------------------------------------------------------------ + + /** + * Main singleton instance. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.0 + * + * @param $slug + * + * @return Freemius + */ + static function instance( $slug ) { + $slug = strtolower( $slug ); + + if ( ! isset( self::$_instances[ $slug ] ) ) { + if ( 0 === count( self::$_instances ) ) { + self::_load_required_static(); + } + + self::$_instances[ $slug ] = new Freemius( $slug ); + } + + return self::$_instances[ $slug ]; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param string|number $slug_or_id + * + * @return bool + */ + private static function has_instance( $slug_or_id ) { + return ! is_numeric( $slug_or_id ) ? + isset( self::$_instances[ strtolower( $slug_or_id ) ] ) : + ( false !== self::get_instance_by_id( $slug_or_id ) ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param $id + * + * @return false|Freemius + */ + static function get_instance_by_id( $id ) { + foreach ( self::$_instances as $slug => $instance ) { + if ( $id == $instance->get_id() ) { + return $instance; + } + } + + return false; + } + + /** + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @param $plugin_file + * + * @return false|Freemius + */ + static function get_instance_by_file( $plugin_file ) { + $slug = self::find_slug_by_basename( $plugin_file ); + + return ( false !== $slug ) ? + self::instance( $slug ) : + false; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return false|Freemius + */ + function get_parent_instance() { + return self::get_instance_by_id( $this->_plugin->parent_plugin_id ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param $slug_or_id + * + * @return bool|Freemius + */ + function get_addon_instance( $slug_or_id ) { + return ! is_numeric( $slug_or_id ) ? + self::instance( strtolower( $slug_or_id ) ) : + self::get_instance_by_id( $slug_or_id ); + } + + #endregion ------------------------------------------------------------------ + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return bool + */ + function is_parent_plugin_installed() { + return self::has_instance( $this->_plugin->parent_plugin_id ); + } + + /** + * Check if add-on parent plugin in activation mode. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @return bool + */ + function is_parent_in_activation() { + $parent_fs = $this->get_parent_instance(); + if ( ! is_object( $parent_fs ) ) { + return false; + } + + return ( $parent_fs->is_activation_mode() ); + } + + /** + * Is plugin in activation mode. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @return bool + */ + function is_activation_mode() { + return ( + $this->is_on() && + ! $this->is_registered() && + ( ! $this->enable_anonymous() || + ( ! $this->is_anonymous() && ! $this->is_pending_activation() ) ) + ); + } + + /** + * Get collection of all active plugins. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return array[string]array + */ + private static function get_active_plugins() { + self::require_plugin_essentials(); + + $active_plugin = array(); + $all_plugins = get_plugins(); + $active_plugins_basenames = get_option( 'active_plugins' ); + + foreach ( $active_plugins_basenames as $plugin_basename ) { + $active_plugin[ $plugin_basename ] = $all_plugins[ $plugin_basename ]; + } + + return $active_plugin; + } + + /** + * Get collection of all plugins. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.8 + * + * @return array Key is the plugin file path and the value is an array of the plugin data. + */ + private static function get_all_plugins() { + self::require_plugin_essentials(); + + $all_plugins = get_plugins(); + $active_plugins_basenames = get_option( 'active_plugins' ); + + foreach ( $all_plugins as $basename => &$data ) { + // By default set to inactive (next foreach update the active plugins). + $data['is_active'] = false; + // Enrich with plugin slug. + $data['slug'] = self::get_plugin_slug( $basename ); + } + + // Flag active plugins. + foreach ( $active_plugins_basenames as $basename ) { + if ( isset( $all_plugins[ $basename ] ) ) { + $all_plugins[ $basename ]['is_active'] = true; + } + } + + return $all_plugins; + } + + + /** + * Cached result of get_site_transient( 'update_plugins' ) + * + * @author Vova Feldman (@svovaf) + * @since 1.1.8 + * + * @var object + */ + private static $_plugins_info; + + /** + * Helper function to get specified plugin's slug. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.8 + * + * @param $basename + * + * @return string + */ + private static function get_plugin_slug( $basename ) { + if ( ! isset( self::$_plugins_info ) ) { + self::$_plugins_info = get_site_transient( 'update_plugins' ); + } + + $slug = ''; + + if ( is_object( self::$_plugins_info ) ) { + if ( isset( self::$_plugins_info->no_update ) && + isset( self::$_plugins_info->no_update[ $basename ] ) && + ! empty( self::$_plugins_info->no_update[ $basename ]->slug ) + ) { + $slug = self::$_plugins_info->no_update[ $basename ]->slug; + } else if ( isset( self::$_plugins_info->response ) && + isset( self::$_plugins_info->response[ $basename ] ) && + ! empty( self::$_plugins_info->response[ $basename ]->slug ) + ) { + $slug = self::$_plugins_info->response[ $basename ]->slug; + } + } + + if ( empty( $slug ) ) { + // Try to find slug from FS data. + $slug = self::find_slug_by_basename( $basename ); + } + + if ( empty( $slug ) ) { + // Fallback to plugin's folder name. + $slug = dirname( $basename ); + } + + return $slug; + } + + private static $_statics_loaded = false; + + /** + * Load static resources. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + */ + private static function _load_required_static() { + if ( self::$_statics_loaded ) { + return; + } + + self::$_static_logger = FS_Logger::get_logger( WP_FS__SLUG, WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK ); + + self::$_static_logger->entrance(); + + self::$_accounts = FS_Option_Manager::get_manager( WP_FS__ACCOUNTS_OPTION_NAME, true ); + + self::$_global_admin_notices = FS_Admin_Notice_Manager::instance( 'global' ); + + // Configure which Freemius powered plugins should be auto updated. +// add_filter( 'auto_update_plugin', '_include_plugins_in_auto_update', 10, 2 ); + + add_action( 'admin_menu', array( 'Freemius', 'add_debug_page' ) ); + + add_action( "wp_ajax_fs_toggle_debug_mode", array( 'Freemius', '_toggle_debug_mode' ) ); + + self::$_statics_loaded = true; + } + + #region Debugging ------------------------------------------------------------------ + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.8 + */ + static function add_debug_page() { + if ( ! current_user_can( 'activate_plugins' ) ) { + return; + } + + self::$_static_logger->entrance(); + + $title = sprintf( '%s [v.%s]', __fs( 'freemius-debug' ), WP_FS__SDK_VERSION ); + + if ( WP_FS__DEV_MODE ) { + // Add top-level debug menu item. + $hook = add_menu_page( + $title, + $title, + 'manage_options', + 'freemius', + array( 'Freemius', '_debug_page_render' ) + ); + } else { + // Add hidden debug page. + $hook = add_submenu_page( + null, + $title, + $title, + 'manage_options', + 'freemius', + array( 'Freemius', '_debug_page_render' ) + ); + } + + add_action( "load-$hook", array( 'Freemius', '_debug_page_actions' ) ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + */ + static function _toggle_debug_mode() { + if ( in_array( $_POST['is_on'], array( 0, 1 ) ) ) { + update_option( 'fs_debug_mode', $_POST['is_on'] ); + } + + exit; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.8 + */ + static function _debug_page_actions() { + self::_clean_admin_content_section(); + + if ( fs_request_is_action( 'restart_freemius' ) ) { + check_admin_referer( 'restart_freemius' ); + + self::$_accounts->clear( true ); + + + return; + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.8 + */ + static function _debug_page_render() { + self::$_static_logger->entrance(); + + $sites = self::get_all_sites(); + $users = self::get_all_users(); + $addons = self::get_all_addons(); + $account_addons = self::get_all_account_addons(); + +// $plans = self::get_all_plans(); +// $licenses = self::get_all_licenses(); + + $vars = array( + 'sites' => $sites, + 'users' => $users, + 'addons' => $addons, + 'account_addons' => $account_addons, + ); + + fs_enqueue_local_style( 'fs_account', '/admin/debug.css' ); + fs_require_once_template( 'debug.php', $vars ); + } + + #endregion ------------------------------------------------------------------ + + #region Connectivity Issues ------------------------------------------------------------------ + + /** + * Check if Freemius should be turned on for the current plugin install. + * + * Note: + * $this->_is_on is updated in has_api_connectivity() + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function is_on() { + self::$_static_logger->entrance(); + + if ( isset( $this->_is_on ) ) { + return $this->_is_on; + } + + // If already installed or pending then sure it's on :) + if ( $this->is_registered() || $this->is_pending_activation() ) { + $this->_is_on = true; + + return true; + } + + return false; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + * @param bool $flush_if_no_connectivity + * + * @return bool + */ + private function should_run_connectivity_test( $flush_if_no_connectivity = false ) { + if ( ! isset( $this->_storage->connectivity_test ) ) { + // Connectivity test was never executed, or cache was cleared. + return true; + } + + if ( WP_FS__PING_API_ON_IP_OR_HOST_CHANGES ) { + if ( WP_FS__IS_HTTP_REQUEST ) { + if ( $_SERVER['HTTP_HOST'] != $this->_storage->connectivity_test['host'] ) { + // Domain changed. + return true; + } + + if ( WP_FS__REMOTE_ADDR != $this->_storage->connectivity_test['server_ip'] ) { + // Server IP changed. + return true; + } + } + } + + if ( $this->_storage->connectivity_test['is_connected'] && + $this->_storage->connectivity_test['is_active'] + ) { + // API connected and Freemius is active - no need to run connectivity check. + return false; + } + + if ( $flush_if_no_connectivity ) { + /** + * If explicitly asked to flush when no connectivity - do it only + * if at least 10 sec passed from the last API connectivity test. + */ + return ( isset( $this->_storage->connectivity_test['timestamp'] ) && + ( WP_FS__SCRIPT_START_TIME - $this->_storage->connectivity_test['timestamp'] ) > 10 ); + } + + /** + * @since 1.1.7 Don't check for connectivity on plugin downgrade. + */ + $version = $this->get_plugin_version(); + if ( version_compare( $version, $this->_storage->connectivity_test['version'], '>' ) ) { + // If it's a plugin version upgrade and Freemius is off or no connectivity, run connectivity test. + return true; + } + + return false; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.4 + * + * @return object|false + */ + private function ping() { + if ( WP_FS__SIMULATE_NO_API_CONNECTIVITY ) { + return false; + } + + $version = $this->get_plugin_version(); + + $is_update = $this->apply_filters( 'is_plugin_update', $this->is_plugin_update() ); + + return $this->get_api_plugin_scope()->ping( + $this->get_anonymous_id(), + array( + 'is_update' => json_encode( $is_update ), + 'version' => $version, + 'sdk' => $this->version, + 'is_admin' => json_encode( is_admin() ), + 'is_ajax' => json_encode( $this->is_ajax() ), + 'is_cron' => json_encode( $this->is_cron() ), + 'is_http' => json_encode( WP_FS__IS_HTTP_REQUEST ), + ) + ); + } + + /** + * Check if there's any connectivity issue to Freemius API. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param bool $flush_if_no_connectivity + * + * @return bool + */ + function has_api_connectivity( $flush_if_no_connectivity = false ) { + $this->_logger->entrance(); + + if ( isset( $this->_has_api_connection ) && ( $this->_has_api_connection || ! $flush_if_no_connectivity ) ) { + return $this->_has_api_connection; + } + + if ( WP_FS__SIMULATE_NO_API_CONNECTIVITY && + isset( $this->_storage->connectivity_test ) && + true === $this->_storage->connectivity_test['is_connected'] + ) { + unset( $this->_storage->connectivity_test ); + } + + if ( ! $this->should_run_connectivity_test( $flush_if_no_connectivity ) ) { + $this->_has_api_connection = $this->_storage->connectivity_test['is_connected']; + /** + * @since 1.1.6 During dev mode, if there's connectivity - turn Freemius on regardless the configuration. + */ + $this->_is_on = $this->_storage->connectivity_test['is_active'] || + ( WP_FS__DEV_MODE && $this->_has_api_connection && ! WP_FS__SIMULATE_FREEMIUS_OFF ); + + return $this->_has_api_connection; + } + + $pong = $this->ping(); + $is_connected = $this->get_api_plugin_scope()->is_valid_ping( $pong ); + + if ( ! $is_connected ) { + // API failure. + $this->_add_connectivity_issue_message( $pong ); + } + + $this->store_connectivity_info( $pong, $is_connected ); + + return $this->_has_api_connection; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.4 + * + * @param object $pong + * @param bool $is_connected + */ + private function store_connectivity_info( $pong, $is_connected ) { + $this->_logger->entrance(); + + $version = $this->get_plugin_version(); + + if ( ! $is_connected || WP_FS__SIMULATE_FREEMIUS_OFF ) { + $is_active = false; + } else { + $is_active = ( isset( $pong->is_active ) && true == $pong->is_active ); + } + + $is_active = $this->apply_filters( + 'is_on', + $is_active, + $this->is_plugin_update(), + $version + ); + + $this->_storage->connectivity_test = array( + 'is_connected' => $is_connected, + 'host' => $_SERVER['HTTP_HOST'], + 'server_ip' => WP_FS__REMOTE_ADDR, + 'is_active' => $is_active, + 'timestamp' => WP_FS__SCRIPT_START_TIME, + // Last version with connectivity attempt. + 'version' => $version, + ); + + $this->_has_api_connection = $is_connected; + $this->_is_on = $is_active || ( WP_FS__DEV_MODE && $is_connected && ! WP_FS__SIMULATE_FREEMIUS_OFF ); + } + + /** + * Force turning Freemius on. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.8.1 + * + * @return bool TRUE if successfully turned on. + */ + private function turn_on() { + $this->_logger->entrance(); + + if ($this->is_on() || ! isset( $this->_storage->connectivity_test['is_active'] ) ) { + return false; + } + + $updated_connectivity = $this->_storage->connectivity_test; + $updated_connectivity['is_active'] = true; + $updated_connectivity['timestamp'] = WP_FS__SCRIPT_START_TIME; + $this->_storage->connectivity_test = $updated_connectivity; + + $this->_is_on = true; + + return true; + } + + /** + * Anonymous and unique site identifier (Hash). + * + * @author Vova Feldman (@svovaf) + * @since 1.1.0 + * + * @return string + */ + function get_anonymous_id() { + $unique_id = self::$_accounts->get_option( 'unique_id' ); + + if ( empty( $unique_id ) || ! is_string( $unique_id ) ) { + $key = get_site_url(); + + // If localhost, assign microtime instead of domain. + if ( WP_FS__IS_LOCALHOST || + false !== strpos( $key, 'localhost' ) || + false === strpos( $key, '.' ) + ) { + $key = microtime(); + } + + $unique_id = md5( $key ); + + self::$_accounts->set_option( 'unique_id', $unique_id, true ); + } + + $this->_logger->departure( $unique_id ); + + return $unique_id; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.4 + * + * @return \WP_User + */ + static function _get_current_wp_user() { + self::require_pluggable_essentials(); + + return wp_get_current_user(); + } + + /** + * Generate API connectivity issue message. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param mixed $api_result + * @param bool $is_first_failure + */ + function _add_connectivity_issue_message( $api_result, $is_first_failure = true ) { + if ( $this->_enable_anonymous ) { + // Don't add message if can run anonymously. + return; + } + + if ( ! function_exists( 'wp_nonce_url' ) ) { + require_once( ABSPATH . 'wp-includes/functions.php' ); + } + + $current_user = self::_get_current_wp_user(); +// $admin_email = get_option( 'admin_email' ); + $admin_email = $current_user->user_email; + + $message = false; + if ( is_object( $api_result ) && + isset( $api_result->error ) && + isset( $api_result->error->code ) + ) { + switch ( $api_result->error->code ) { + case 'curl_missing': + $message = sprintf( + __fs( 'x-requires-access-to-api', $this->_slug ) . ' ' . + __fs( 'curl-missing-message', $this->_slug ) . ' ' . + ' %s', + '<b>' . $this->get_plugin_name() . '</b>', + sprintf( + '<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>', + sprintf( + '<a class="fs-resolve" data-type="curl" href="#"><b>%s</b></a>%s', + __fs( 'curl-missing-no-clue-title', $this->_slug ), + ' - ' . sprintf( + __fs( 'curl-missing-no-clue-desc', $this->_slug ), + '<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>' + ) + ), + sprintf( + '<b>%s</b> - %s', + __fs( 'sysadmin-title', $this->_slug ), + __fs( 'curl-missing-sysadmin-desc', $this->_slug ) + ), + sprintf( + '<a href="%s"><b>%s</b></a>%s', + wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $this->_plugin_basename . '&plugin_status=' . 'all' . '&paged=' . '1' . '&s=' . '', 'deactivate-plugin_' . $this->_plugin_basename ), + __fs( 'deactivate-plugin-title', $this->_slug ), + ' - ' . __fs( 'deactivate-plugin-desc', 'freemius', $this->_slug ) + ) + ) + ); + break; + case 'cloudflare_ddos_protection': + $message = sprintf( + __fs( 'x-requires-access-to-api', $this->_slug ) . ' ' . + __fs( 'cloudflare-blocks-connection-message', $this->_slug ) . ' ' . + __fs( 'happy-to-resolve-issue-asap', $this->_slug ) . + ' %s', + '<b>' . $this->get_plugin_name() . '</b>', + sprintf( + '<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>', + sprintf( + '<a class="fs-resolve" data-type="cloudflare" href="#"><b>%s</b></a>%s', + __fs( 'fix-issue-title', $this->_slug ), + ' - ' . sprintf( + __fs( 'fix-issue-desc', $this->_slug ), + '<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>' + ) + ), + sprintf( + '<a href="%s" target="_blank"><b>%s</b></a>%s', + sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ), + __fs( 'install-previous-title', $this->_slug ), + ' - ' . __fs( 'install-previous-desc', $this->_slug ) + ), + sprintf( + '<a href="%s"><b>%s</b></a>%s', + wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $this->_plugin_basename . '&plugin_status=' . 'all' . '&paged=' . '1' . '&s=' . '', 'deactivate-plugin_' . $this->_plugin_basename ), + __fs( 'deactivate-plugin-title', $this->_slug ), + ' - ' . __fs( 'deactivate-plugin-desc', $this->_slug ) + ) + ) + ); + break; + case 'squid_cache_block': + $message = sprintf( + __fs( 'x-requires-access-to-api', $this->_slug ) . ' ' . + __fs( 'squid-blocks-connection-message', $this->_slug ) . + ' %s', + '<b>' . $this->get_plugin_name() . '</b>', + sprintf( + '<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>', + sprintf( + '<a class="fs-resolve" data-type="squid" href="#"><b>%s</b></a>%s', + __fs( 'squid-no-clue-title', $this->_slug ), + ' - ' . sprintf( + __fs( 'squid-no-clue-desc', $this->_slug ), + '<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>' + ) + ), + sprintf( + '<b>%s</b> - %s', + __fs( 'sysadmin-title', $this->_slug ), + sprintf( + __fs( 'squid-sysadmin-desc', $this->_slug ), + // We use a filter since the plugin might require additional API connectivity. + '<b>' . implode( ', ', $this->apply_filters( 'api_domains', array( 'api.freemius.com' ) ) ) . '</b>' ) + ), + sprintf( + '<a href="%s"><b>%s</b></a>%s', + wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $this->_plugin_basename . '&plugin_status=' . 'all' . '&paged=' . '1' . '&s=' . '', 'deactivate-plugin_' . $this->_plugin_basename ), + __fs( 'deactivate-plugin-title', $this->_slug ), + ' - ' . __fs( 'deactivate-plugin-desc', $this->_slug ) + ) + ) + ); + break; +// default: +// $message = __fs( 'connectivity-test-fails-message', $this->_slug ); +// break; + } + } + + $message_id = 'failed_connect_api'; + $type = 'error'; + + if ( false === $message ) { + if ( $is_first_failure ) { + // First attempt failed. + $message = sprintf( + __fs( 'x-requires-access-to-api', $this->_slug ) . ' ' . + __fs( 'connectivity-test-fails-message', $this->_slug ) . ' ' . + __fs( 'connectivity-test-maybe-temporary', $this->_slug ) . '<br><br>' . + '%s', + '<b>' . $this->get_plugin_name() . '</b>', + sprintf( + '<div id="fs_firewall_issue_options">%s %s</div>', + sprintf( + '<a class="button button-primary fs-resolve" data-type="retry_ping" href="#">%s</a>', + __fs( 'yes-do-your-thing', $this->_slug ) + ), + sprintf( + '<a href="%s" class="button">%s</a>', + wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $this->_plugin_basename . '&plugin_status=' . 'all' . '&paged=' . '1' . '&s=' . '', 'deactivate-plugin_' . $this->_plugin_basename ), + __fs( 'no-deactivate', $this->_slug ) + ) + ) + ); + + $message_id = 'failed_connect_api_first'; + $type = 'promotion'; + } else { + // Second connectivity attempt failed. + $message = sprintf( + __fs( 'x-requires-access-to-api', $this->_slug ) . ' ' . + __fs( 'connectivity-test-fails-message', $this->_slug ) . ' ' . + __fs( 'happy-to-resolve-issue-asap', $this->_slug ) . + ' %s', + '<b>' . $this->get_plugin_name() . '</b>', + sprintf( + '<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>', + sprintf( + '<a class="fs-resolve" data-type="general" href="#"><b>%s</b></a>%s', + __fs( 'fix-issue-title', $this->_slug ), + ' - ' . sprintf( + __fs( 'fix-issue-desc', $this->_slug ), + '<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>' + ) + ), + sprintf( + '<a href="%s" target="_blank"><b>%s</b></a>%s', + sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ), + __fs( 'install-previous-title', $this->_slug ), + ' - ' . __fs( 'install-previous-desc', $this->_slug ) + ), + sprintf( + '<a href="%s"><b>%s</b></a>%s', + wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $this->_plugin_basename . '&plugin_status=' . 'all' . '&paged=' . '1' . '&s=' . '', 'deactivate-plugin_' . $this->_plugin_basename ), + __fs( 'deactivate-plugin-title', $this->_slug ), + ' - ' . __fs( 'deactivate-plugin-desc', $this->_slug ) + ) + ) + ); + } + } + + $this->_admin_notices->add_sticky( + $message, + $message_id, + __fs( 'oops', $this->_slug ) . '...', + $type + ); + } + + /** + * Handle user request to resolve connectivity issue. + * This method will send an email to Freemius API technical staff for resolution. + * The email will contain server's info and installed plugins (might be caching issue). + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + */ + function _email_about_firewall_issue() { + $this->_admin_notices->remove_sticky( 'failed_connect_api' ); + + $pong = $this->ping(); + + $is_connected = $this->get_api_plugin_scope()->is_valid_ping( $pong ); + + if ( $is_connected ) { + $this->store_connectivity_info( $pong, $is_connected ); + + echo $this->get_after_plugin_activation_redirect_url(); + exit; + } + + $current_user = self::_get_current_wp_user(); + $admin_email = $current_user->user_email; + + $error_type = fs_request_get( 'error_type', 'general' ); + + switch ( $error_type ) { + case 'squid': + $title = 'Squid ACL Blocking Issue'; + break; + case 'cloudflare': + $title = 'CloudFlare Blocking Issue'; + break; + default: + $title = 'API Connectivity Issue'; + break; + } + + $custom_email_sections = array(); + + if ( 'squid' === $error_type ) { + // Override the 'Site' email section. + $custom_email_sections['site'] = array( + 'rows' => array( + 'hosting_company' => array( 'Hosting Company', fs_request_get( 'hosting_company' ) ) + ) + ); + } + + // Add 'API Error' custom email section. + $custom_email_sections['api_error'] = array( + 'title' => 'API Error', + 'rows' => array( + 'ping' => array( is_string( $pong ) ? htmlentities( $pong ) : json_encode( $pong ) ) + ) + ); + + // Add PHP info for deeper investigation. + ob_start(); + phpinfo(); + $php_info = ob_get_clean(); + $custom_email_sections['php_info'] = array( + 'title' => 'PHP Info', + 'rows' => array( + 'info' => array( $php_info ) + ) + ); + + // Send email with technical details to resolve CloudFlare's firewall unnecessary protection. + $this->send_email( + 'api@freemius.com', // recipient + $title . ' [' . $this->get_plugin_name() . ']', // subject + $custom_email_sections, + array( "Reply-To: $admin_email <$admin_email>" ) // headers + ); + + $this->_admin_notices->add_sticky( + sprintf( + __fs( 'fix-request-sent-message', $this->_slug ), + '<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>' + ), + 'server_details_sent' + ); + + // Action was taken, tell that API connectivity troubleshooting should be off now. + + echo "1"; + exit; + } + + /** + * Handle connectivity test retry approved by the user. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.4 + */ + function _retry_connectivity_test() { + $this->_admin_notices->remove_sticky( 'failed_connect_api_first' ); + + $pong = $this->ping(); + + $is_connected = $this->get_api_plugin_scope()->is_valid_ping( $pong ); + + if ( $is_connected ) { + $this->store_connectivity_info( $pong, $is_connected ); + + echo $this->get_after_plugin_activation_redirect_url(); + } else { + // Add connectivity issue message after 2nd failed attempt. + $this->_add_connectivity_issue_message( $pong, false ); + + echo "1"; + } + + exit; + } + + static function _add_firewall_issues_javascript() { + $params = array(); + fs_require_once_template( 'firewall-issues-js.php', $params ); + } + + #endregion Connectivity Issues ------------------------------------------------------------------ + + #region Email ------------------------------------------------------------------ + + /** + * Generates and sends an HTML email with customizable sections. + * + * @author Leo Fajardo (@leorw) + * @since 1.1.2 + * + * @param string $to_address + * @param string $subject + * @param array $sections + * @param array $headers + * + * @return bool Whether the email contents were sent successfully. + */ + private function send_email( + $to_address, + $subject, + $sections = array(), + $headers = array() + ) { + $default_sections = $this->get_email_sections(); + + // Insert new sections or replace the default email sections. + if ( is_array( $sections ) && ! empty( $sections ) ) { + foreach ( $sections as $section_id => $custom_section ) { + if ( ! isset( $default_sections[ $section_id ] ) ) { + // If the section does not exist, add it. + $default_sections[ $section_id ] = $custom_section; + } else { + // If the section already exists, override it. + $current_section = $default_sections[ $section_id ]; + + // Replace the current section's title if a custom section title exists. + if ( isset( $custom_section['title'] ) ) { + $current_section['title'] = $custom_section['title']; + } + + // Insert new rows under the current section or replace the default rows. + if ( isset( $custom_section['rows'] ) && is_array( $custom_section['rows'] ) && ! empty( $custom_section['rows'] ) ) { + foreach ( $custom_section['rows'] as $row_id => $row ) { + $current_section['rows'][ $row_id ] = $row; + } + } + + $default_sections[ $section_id ] = $current_section; + } + } + } + + $vars = array( 'sections' => $default_sections ); + $message = fs_get_template( 'email.php', $vars ); + + // Set the type of email to HTML. + $headers[] = 'Content-type: text/html'; + + $header_string = implode( "\r\n", $headers ); + + return wp_mail( + $to_address, + $subject, + $message, + $header_string + ); + } + + /** + * Generates the data for the sections of the email content. + * + * @author Leo Fajardo (@leorw) + * @since 1.1.2 + * + * @return array + */ + private function get_email_sections() { + // Retrieve the current user's information so that we can get the user's email, first name, and last name below. + $current_user = self::_get_current_wp_user(); + + // Retrieve the cURL version information so that we can get the version number below. + $curl_version_information = curl_version(); + + $active_plugin = self::get_active_plugins(); + + // Generate the list of active plugins separated by new line. + $active_plugin_string = ''; + foreach ( $active_plugin as $plugin ) { + $active_plugin_string .= sprintf( + '<a href="%s">%s</a> [v%s]<br>', + $plugin['PluginURI'], + $plugin['Name'], + $plugin['Version'] + ); + } + + $server_ip = WP_FS__REMOTE_ADDR; + + // Generate the default email sections. + $sections = array( + 'sdk' => array( + 'title' => 'SDK', + 'rows' => array( + 'fs_version' => array( 'FS Version', $this->version ), + 'curl_version' => array( 'cURL Version', $curl_version_information['version'] ) + ) + ), + 'plugin' => array( + 'title' => 'Plugin', + 'rows' => array( + 'name' => array( 'Name', $this->get_plugin_name() ), + 'version' => array( 'Version', $this->get_plugin_version() ) + ) + ), + 'site' => array( + 'title' => 'Site', + 'rows' => array( + 'unique_id' => array( 'Address', $this->get_anonymous_id() ), + 'address' => array( 'Address', site_url() ), + 'host' => array( + 'HTTP_HOST', + ( ! empty( $_SERVER['HTTP_HOST'] ) ? $_SERVER['HTTP_HOST'] : '' ) + ), + 'server_addr' => array( + 'SERVER_ADDR', + '<a href="http://www.projecthoneypot.org/ip_' . $server_ip . '">' . $server_ip . '</a>' + ) + ) + ), + 'user' => array( + 'title' => 'User', + 'rows' => array( + 'email' => array( 'Email', $current_user->user_email ), + 'first' => array( 'First', $current_user->user_firstname ), + 'last' => array( 'Last', $current_user->user_lastname ) + ) + ), + 'plugins' => array( + 'title' => 'Plugins', + 'rows' => array( + 'active_plugins' => array( 'Active Plugins', $active_plugin_string ) + ) + ), + ); + + // Allow the sections to be modified by other code. + $sections = $this->apply_filters( 'email_template_sections', $sections ); + + return $sections; + } + + #endregion Email ------------------------------------------------------------------ + + #region Initialization ------------------------------------------------------------------ + + /** + * Init plugin's Freemius instance. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @param number $id + * @param string $public_key + * @param bool $is_live + * @param bool $is_premium + */ + function init( $id, $public_key, $is_live = true, $is_premium = true ) { + $this->_logger->entrance(); + + $this->dynamic_init( array( + 'id' => $id, + 'public_key' => $public_key, + 'is_live' => $is_live, + 'is_premium' => $is_premium, + ) ); + } + + /** + * Dynamic initiator, originally created to support initiation + * with parent_id for add-ons. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param array $plugin_info + * + * @throws Freemius_Exception + */ + function dynamic_init( array $plugin_info ) { + $this->_logger->entrance(); + + $this->parse_settings( $plugin_info ); + + if ( $this->should_stop_execution() ) { + return; + } + + if ( ! $this->is_registered() ) { + if ( $this->is_anonymous() ) { + // If user skipped, no need to test connectivity. + $this->_has_api_connection = true; + $this->_is_on = true; + } else { + if ( ! $this->has_api_connectivity() ) { + if ( $this->_admin_notices->has_sticky( 'failed_connect_api_first' ) || + $this->_admin_notices->has_sticky( 'failed_connect_api' ) + ) { + if ( ! $this->_enable_anonymous ) { + // If anonymous mode is disabled, add firewall admin-notice message. + add_action( 'admin_footer', array( 'Freemius', '_add_firewall_issues_javascript' ) ); + + add_action( "wp_ajax_{$this->_slug}_resolve_firewall_issues", array( + &$this, + '_email_about_firewall_issue' + ) ); + + add_action( "wp_ajax_{$this->_slug}_retry_connectivity_test", array( + &$this, + '_retry_connectivity_test' + ) ); + } + } + + return; + } else { + $this->_admin_notices->remove_sticky( array( + 'failed_connect_api_first', + 'failed_connect_api', + ) ); + + if ( $this->_anonymous_mode ) { + // Simulate anonymous mode. + $this->_is_anonymous = true; + } + } + } + + // Check if Freemius is on for the current plugin. + // This MUST be executed after all the plugin variables has been loaded. + if ( ! $this->is_on() ) { + return; + } + } + + if ( $this->has_api_connectivity() && $this->is_user_in_admin() ) { + /** + * Schedule daily data sync cron if: + * + * 1. User opted-in (for tracking). + * 2. If plugin has add-ons (update add-ons data). + * 3. If skipped, but later upgraded (opted-in via upgrade). + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + */ + if ( $this->is_registered() || + ( ! $this->is_activation_mode() && $this->_has_addons ) + ) { + + $this->hook_callback_to_sync_cron(); + + if ( ! $this->is_sync_cron_on() ) { + $this->schedule_sync_cron(); + } + } + + /** + * Check if requested for manual blocking background sync. + */ + if ( fs_request_has( 'background_sync' ) ) { + $this->run_manual_sync(); + } + } + + if ( $this->is_registered() ) { + $this->hook_callback_to_install_sync(); + } + + if ( $this->is_addon() ) { + if ( $this->is_parent_plugin_installed() ) { + // Link to parent FS. + $this->_parent = self::get_instance_by_id( $this->_plugin->parent_plugin_id ); + + // Get parent plugin reference. + $this->_parent_plugin = $this->_parent->get_plugin(); + } + } + + if ( $this->is_user_in_admin() ) { + global $pagenow; + if ( 'plugins.php' === $pagenow ) { + $this->hook_plugin_action_links(); + } + + if ( $this->is_addon() ) { + if ( ! $this->is_parent_plugin_installed() ) { + $parent_name = $this->get_option( $plugin_info, 'parent_name', null ); + + if ( isset( $plugin_info['parent'] ) ) { + $parent_name = $this->get_option( $plugin_info['parent'], 'name', null ); + } + + $this->_admin_notices->add( + ( ! empty( $parent_name ) ? + sprintf( __fs( 'addon-x-cannot-run-without-y', $this->_slug ), $this->get_plugin_name(), $parent_name ) : + sprintf( __fs( 'addon-x-cannot-run-without-parent', $this->_slug ), $this->get_plugin_name() ) + ), + __fs( 'oops', $this->_slug ) . '...', + 'error' + ); + + return; + } else { + if ( $this->_parent->is_registered() && ! $this->is_registered() ) { + // If parent plugin activated, automatically install add-on for the user. + $this->_activate_addon_account( $this->_parent ); + } + + // @todo This should be only executed on activation. It should be migrated to register_activation_hook() together with other activation related logic. + if ( $this->is_premium() ) { + // Remove add-on download admin-notice. + $this->_parent->_admin_notices->remove_sticky( 'addon_plan_upgraded_' . $this->_slug ); + } + + $this->deactivate_premium_only_addon_without_license(); + } + } else { + add_action( 'admin_init', array( &$this, '_admin_init_action' ) ); + + if ( $this->has_addons() && + 'plugin-information' === fs_request_get( 'tab', false ) && + $this->get_id() == fs_request_get( 'parent_plugin_id', false ) + ) { + require_once WP_FS__DIR_INCLUDES . '/fs-plugin-info-dialog.php'; + + new FS_Plugin_Info_Dialog( $this ); + } + } + + if ( $this->is_premium() ) { + new FS_Plugin_Updater( $this ); + } + +// if ( $this->is_registered() || +// $this->is_anonymous() || +// $this->is_pending_activation() +// ) { +// $this->_init_admin(); +// } + } + + $this->do_action( 'initiated' ); + + if ( ! $this->is_addon() ) { + if ( $this->is_registered() ) { + // Fix for upgrade from versions < 1.0.9. + if ( ! isset( $this->_storage->activation_timestamp ) ) { + $this->_storage->activation_timestamp = WP_FS__SCRIPT_START_TIME; + } + if ( $this->_storage->prev_is_premium !== $this->_plugin->is_premium ) { + if ( isset( $this->_storage->prev_is_premium ) ) { + add_action( is_admin() ? 'admin_init' : 'init', array( + &$this, + '_plugin_code_type_changed' + ) ); + } else { + // Set for code type for the first time. + $this->_storage->prev_is_premium = $this->_plugin->is_premium; + } + } + + $this->do_action( 'after_init_plugin_registered' ); + } else if ( $this->is_anonymous() ) { + $this->do_action( 'after_init_plugin_anonymous' ); + } else if ( $this->is_pending_activation() ) { + $this->do_action( 'after_init_plugin_pending_activations' ); + } + } else { + if ( $this->is_registered() ) { + $this->do_action( 'after_init_addon_registered' ); + } else if ( $this->is_anonymous() ) { + $this->do_action( 'after_init_addon_anonymous' ); + } else if ( $this->is_pending_activation() ) { + $this->do_action( 'after_init_addon_pending_activations' ); + } + } + } + + /** + * Parse plugin's settings (as defined by the plugin dev). + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + * @param array $plugin_info + * + * @throws \Freemius_Exception + */ + private function parse_settings( &$plugin_info ) { + $this->_logger->entrance(); + + $id = $this->get_numeric_option( $plugin_info, 'id', false ); + $public_key = $this->get_option( $plugin_info, 'public_key', false ); + $secret_key = $this->get_option( $plugin_info, 'secret_key', null ); + $parent_id = $this->get_numeric_option( $plugin_info, 'parent_id', null ); + $parent_name = $this->get_option( $plugin_info, 'parent_name', null ); + + if ( isset( $plugin_info['parent'] ) ) { + $parent_id = $this->get_numeric_option( $plugin_info['parent'], 'id', null ); +// $parent_slug = $this->get_option( $plugin_info['parent'], 'slug', null ); +// $parent_public_key = $this->get_option( $plugin_info['parent'], 'public_key', null ); + $parent_name = $this->get_option( $plugin_info['parent'], 'name', null ); + } + + if ( false === $id ) { + throw new Freemius_Exception( 'Plugin id parameter is not set.' ); + } + if ( false === $public_key ) { + throw new Freemius_Exception( 'Plugin public_key parameter is not set.' ); + } + + $plugin = ( $this->_plugin instanceof FS_Plugin ) ? + $this->_plugin : + new FS_Plugin(); + + $plugin->update( array( + 'id' => $id, + 'public_key' => $public_key, + 'slug' => $this->_slug, + 'parent_plugin_id' => $parent_id, + 'version' => $this->get_plugin_version(), + 'title' => $this->get_plugin_name(), + 'file' => $this->_plugin_basename, + 'is_premium' => $this->get_bool_option( $plugin_info, 'is_premium', true ), + 'is_live' => $this->get_bool_option( $plugin_info, 'is_live', true ), +// 'secret_key' => $secret_key, + ) ); + + if ( $plugin->is_updated() ) { + // Update plugin details. + $this->_plugin = FS_Plugin_Manager::instance( $this->_slug )->store( $plugin ); + } + // Set the secret key after storing the plugin, we don't want to store the key in the storage. + $this->_plugin->secret_key = $secret_key; + + if ( ! isset( $plugin_info['menu'] ) ) { + // Back compatibility to 1.1.2 + $plugin_info['menu'] = array( + 'slug' => isset( $plugin_info['menu_slug'] ) ? + $plugin_info['menu_slug'] : + $this->_slug + ); + } + + $this->_menu = FS_Admin_Menu_Manager::instance( $this->_slug ); + $this->_menu->init( $plugin_info['menu'], $this->is_addon() ); + + $this->_has_addons = $this->get_bool_option( $plugin_info, 'has_addons', false ); + $this->_has_paid_plans = $this->get_bool_option( $plugin_info, 'has_paid_plans', true ); + $this->_is_org_compliant = $this->get_bool_option( $plugin_info, 'is_org_compliant', true ); + $this->_enable_anonymous = $this->get_bool_option( $plugin_info, 'enable_anonymous', true ); + $this->_anonymous_mode = $this->get_bool_option( $plugin_info, 'anonymous_mode', false ); + $this->_permissions = $this->get_option( $plugin_info, 'permissions', array() ); + } + + /** + * @param string[] $options + * @param string $key + * @param mixed $default + * + * @return bool + */ + private function get_option( &$options, $key, $default = false ) { + return ! empty( $options[ $key ] ) ? $options[ $key ] : $default; + } + + private function get_bool_option( &$options, $key, $default = false ) { + return isset( $options[ $key ] ) && is_bool( $options[ $key ] ) ? $options[ $key ] : $default; + } + + private function get_numeric_option( &$options, $key, $default = false ) { + return isset( $options[ $key ] ) && is_numeric( $options[ $key ] ) ? $options[ $key ] : $default; + } + + /** + * Gate keeper. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + * @return bool + */ + private function should_stop_execution() { + if ( $this->is_activation_mode() ) { + if ( ! is_admin() ) { + /** + * If in activation mode, don't execute Freemius outside of the + * admin dashboard. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + */ + return true; + } + + if ( ! WP_FS__IS_HTTP_REQUEST ) { + /** + * If in activation and executed without HTTP context (e.g. CLI, Cronjob), + * then don't start Freemius. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6.3 + * + * @link https://wordpress.org/support/topic/errors-in-the-freemius-class-when-running-in-wordpress-in-cli + */ + return true; + } + + if ( $this->is_cron() ) { + /** + * If in activation mode, don't execute Freemius during wp crons + * (wp crons have HTTP context - called as HTTP request). + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + */ + return true; + } + + if ( $this->is_ajax() && + ! $this->_admin_notices->has_sticky( 'failed_connect_api_first' ) && + ! $this->_admin_notices->has_sticky( 'failed_connect_api' ) + ) { + /** + * During activation, if running in AJAX mode, unless there's a sticky + * connectivity issue notice, don't run Freemius. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + */ + return true; + } + } + + return false; + } + + /** + * Handles plugin's code type change (free <--> premium). + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + */ + function _plugin_code_type_changed() { + // Schedule code type changes event. +// $this->sync_install(); + $this->schedule_install_sync(); + + if ( $this->is_premium() ) { + // Activated premium code. + $this->do_action( 'after_premium_version_activation' ); + + // Remove all sticky messages related to download of the premium version. + $this->_admin_notices->remove_sticky( array( + 'trial_started', + 'plan_upgraded', + 'plan_changed', + ) ); + + $this->_admin_notices->add_sticky( + __fs( 'premium-activated-message', $this->_slug ), + 'premium_activated', + __fs( 'woot', $this->_slug ) . '!' + ); + } else { + // Activated free code (after had the premium before). + $this->do_action( 'after_free_version_reactivation' ); + + if ( $this->is_paying() && ! $this->is_premium() ) { + $this->_admin_notices->add_sticky( + sprintf( + __fs( 'you-have-x-license', $this->_slug ), + $this->_site->plan->title + ) . ' ' . $this->_get_latest_download_link( sprintf( + __fs( 'download-x-version-now', $this->_slug ), + $this->_site->plan->title + ) ), + 'plan_upgraded', + __fs( 'yee-haw', $this->_slug ) . '!' + ); + } + } + + // Update is_premium of latest version. + $this->_storage->prev_is_premium = $this->_plugin->is_premium; + } + + #endregion Initialization ------------------------------------------------------------------ + + #region Add-ons ------------------------------------------------------------------------- + + /** + * Check if add-on installed and activated on site. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param string|number $slug_or_id + * + * @return bool + */ + function is_addon_activated( $slug_or_id ) { + return self::has_instance( $slug_or_id ); + } + + /** + * Check if add-on was connected to install + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7 + * + * @param string $slug + * + * @return bool + */ + function is_addon_connected( $slug ) { + $sites = self::get_all_sites(); + + if ( ! isset( $sites[ $slug ] ) ) { + return false; + } + + $site = $sites[ $slug ]; + + $plugin = FS_Plugin_Manager::instance( $slug )->get(); + + if ( $plugin->parent_plugin_id != $this->_plugin->id ) { + // The given slug do NOT belong to any of the plugin's add-ons. + return false; + } + + return ( is_object( $site ) && + is_numeric( $site->id ) && + is_numeric( $site->user_id ) && + is_object( $site->plan ) + ); + } + + /** + * Determines if add-on installed. + * + * NOTE: This is a heuristic and only works if the folder/file named as the slug. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param string $slug + * + * @return bool + */ + function is_addon_installed( $slug ) { + return file_exists( fs_normalize_path( WP_PLUGIN_DIR . '/' . $this->get_addon_basename( $slug ) ) ); + } + + /** + * Get add-on basename. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param string $slug + * + * @return string + */ + function get_addon_basename( $slug ) { + if ( $this->is_addon_activated( $slug ) ) { + self::instance( $slug )->get_plugin_basename(); + } + + $premium_basename = $slug . '-premium/' . $slug . '.php'; + + if ( file_exists( fs_normalize_path( WP_PLUGIN_DIR . '/' . $premium_basename ) ) ) { + return $premium_basename; + } + + $free_basename = $slug . '/' . $slug . '.php'; + + return $free_basename; + } + + /** + * Get installed add-ons instances. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return Freemius[] + */ + function get_installed_addons() { + $installed_addons = array(); + foreach ( self::$_instances as $slug => $instance ) { + if ( $instance->is_addon() && is_object( $instance->_parent_plugin ) ) { + if ( $this->_plugin->id == $instance->_parent_plugin->id ) { + $installed_addons[] = $instance; + } + } + } + + return $installed_addons; + } + + /** + * Check if any add-ons of the plugin are installed. + * + * @author Leo Fajardo (@leorw) + * @since 1.1.1 + * + * @return bool + */ + function has_installed_addons() { + if ( ! $this->has_addons() ) { + return false; + } + + foreach ( self::$_instances as $slug => $instance ) { + if ( $instance->is_addon() && is_object( $instance->_parent_plugin ) ) { + if ( $this->_plugin->id == $instance->_parent_plugin->id ) { + return true; + } + } + } + + return false; + } + + /** + * Tell Freemius that the current plugin is an add-on. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param number $parent_plugin_id The parent plugin ID + */ + function init_addon( $parent_plugin_id ) { + $this->_plugin->parent_plugin_id = $parent_plugin_id; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return bool + */ + function is_addon() { + return isset( $this->_plugin->parent_plugin_id ) && is_numeric( $this->_plugin->parent_plugin_id ); + } + + /** + * Deactivate add-on if it's premium only and the user does't have a valid license. + * + * @param bool $is_after_trial_cancel + * + * @return bool If add-on was deactivated. + */ + private function deactivate_premium_only_addon_without_license( $is_after_trial_cancel = false ) { + if ( ! $this->has_free_plan() && + ! $this->has_features_enabled_license() && + ! $this->_has_premium_license() + ) { + deactivate_plugins( array( $this->_plugin_basename ), true ); + + $this->_parent->_admin_notices->add_sticky( + sprintf( + __fs( ( $is_after_trial_cancel ? + 'addon-trial-cancelled-message' : + 'addon-no-license-message' ), + $this->_parent->_slug + ), + '<b>' . $this->_plugin->title . '</b>' + ) . ' ' . sprintf( + '<a href="%s" aria-label="%s" class="button button-primary" style="margin-left: 10px; vertical-align: middle;">%s ➜</a>', + $this->_parent->addon_url( $this->_slug ), + esc_attr( sprintf( __fs( 'more-information-about-x', $this->_parent->_slug ), $this->_plugin->title ) ), + __fs( 'purchase-license', $this->_parent->_slug ) + ), + 'no_addon_license', + ( $is_after_trial_cancel ? '' : __fs( 'oops', $this->_parent->_slug ) . '...' ), + ( $is_after_trial_cancel ? 'success' : 'error' ) + ); + + return true; + } + + return false; + } + + #endregion ------------------------------------------------------------------ + + #region Sandbox ------------------------------------------------------------------ + + /** + * Set Freemius into sandbox mode for debugging. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param string $secret_key + */ + function init_sandbox( $secret_key ) { + $this->_plugin->secret_key = $secret_key; + + // Update plugin details. + FS_Plugin_Manager::instance( $this->_slug )->update( $this->_plugin, true ); + } + + /** + * Check if running payments in sandbox mode. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @return bool + */ + function is_payments_sandbox() { + return ( ! $this->is_live() ) || isset( $this->_plugin->secret_key ); + } + + #endregion Sandbox ------------------------------------------------------------------ + + /** + * Check if running test vs. live plugin. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @return bool + */ + function is_live() { + return $this->_plugin->is_live; + } + + /** + * Check if the user skipped connecting the account with Freemius. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @return bool + */ + function is_anonymous() { + if ( ! isset( $this->_is_anonymous ) ) { + if ( ! isset( $this->_storage->is_anonymous ) ) { + // Not skipped. + $this->_is_anonymous = false; + } else if ( is_bool( $this->_storage->is_anonymous ) ) { + // For back compatibility, since the variable was boolean before. + $this->_is_anonymous = $this->_storage->is_anonymous; + + // Upgrade stored data format to 1.1.3 format. + $this->set_anonymous_mode( $this->_storage->is_anonymous ); + } else { + // Version 1.1.3 and later. + $this->_is_anonymous = $this->_storage->is_anonymous['is']; + } + } + + return $this->_is_anonymous; + } + + /** + * Check if user connected his account and install pending email activation. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @return bool + */ + function is_pending_activation() { + return $this->_storage->get( 'is_pending_activation', false ); + } + + /** + * Check if plugin must be WordPress.org compliant. + * + * @since 1.0.7 + * + * @return bool + */ + function is_org_repo_compliant() { + return $this->_is_org_compliant; + } + + #region Daily Sync Cron ------------------------------------------------------------------ + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + */ + private function run_manual_sync() { + $this->require_pluggable_essentials(); + + if ( ! current_user_can( 'activate_plugins' ) ) { + return; + } + + // Run manual sync. + $this->_sync_cron(); + + // Reschedule next cron to run 24 hours from now (performance optimization). + $this->clear_sync_cron(); + + $this->schedule_sync_cron( time() + WP_FS__TIME_24_HOURS_IN_SEC, false ); + } + + /** + * Data sync cron job. Replaces the background sync non blocking HTTP request + * that doesn't halt page loading. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + */ + function _sync_cron() { + $this->_logger->entrance(); + + // Store the last time data sync was executed. + $this->_storage->sync_timestamp = time(); + + // Check if API is temporary down. + if ( FS_Api::is_temporary_down() ) { + return; + } + + // @todo Add logic that identifies API latency, and reschedule the next background sync randomly between 8-16 hours. + + if ( $this->is_registered() ) { + if ( $this->has_paid_plan() ) { + // Initiate background plan sync. + $this->_sync_license( true ); + + if ( $this->is_paying() ) { + // Check for premium plugin updates. + $this->_check_updates( true ); + } + } else { + // Sync install (only if something changed locally). + $this->sync_install(); + } + } + + if ( ! $this->is_addon() && $this->_has_addons ) { + // Sync add-ons collection. + $this->_sync_addons( true ); + } + } + + /** + * Check if sync was executed in the last $period of seconds. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + * @param int $period In seconds + * + * @return bool + */ + private function is_sync_executed( $period = WP_FS__TIME_24_HOURS_IN_SEC ) { + if ( ! isset( $this->_storage->sync_timestamp ) ) { + return false; + } + + return ( $this->_storage->sync_timestamp > ( WP_FS__SCRIPT_START_TIME - $period ) ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + * @return bool + */ + private function is_sync_cron_on() { + /** + * @var object $sync_cron_data + */ + $sync_cron_data = $this->_storage->get( 'sync_cron', null ); + + return ( ! is_null( $sync_cron_data ) && true === $sync_cron_data->on ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + * @param int $start_at Defaults to now. + * @param bool $randomize_start If true, schedule first job randomly during the next 12 hours. Otherwise, + * schedule job to start right away. + */ + private function schedule_sync_cron( $start_at = WP_FS__SCRIPT_START_TIME, $randomize_start = true ) { + $this->_logger->entrance(); + + if ( $randomize_start ) { + // Schedule first sync with a random 12 hour time range from now. + $start_at += rand( 0, ( WP_FS__TIME_24_HOURS_IN_SEC / 2 ) ); + } + + // Schedule daily WP cron. + wp_schedule_event( + $start_at, + 'daily', + $this->get_action_tag( 'data_sync' ) + ); + + $this->_storage->store( 'sync_cron', (object) array( + 'version' => $this->get_plugin_version(), + 'sdk_version' => $this->version, + 'timestamp' => WP_FS__SCRIPT_START_TIME, + 'on' => true, + ) ); + } + + /** + * Add the actual sync function to the cron job hook. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + */ + private function hook_callback_to_sync_cron() { + $this->add_action( 'data_sync', array( &$this, '_sync_cron' ) ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + */ + private function clear_sync_cron() { + $this->_logger->entrance(); + + if ( ! $this->is_sync_cron_on() ) { + return; + } + + $this->_storage->remove( 'sync_cron' ); + + wp_clear_scheduled_hook( $this->get_action_tag( 'data_sync' ) ); + } + + /** + * Unix timestamp for next sync cron execution or false if not scheduled. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + * @return int|false + */ + function next_sync_cron() { + $this->_logger->entrance(); + + if ( ! $this->is_sync_cron_on() ) { + return false; + } + + return wp_next_scheduled( $this->get_action_tag( 'data_sync' ) ); + } + + /** + * Unix timestamp for previous sync cron execution or false if never executed. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + * @return int|false + */ + function last_sync_cron() { + $this->_logger->entrance(); + + return $this->_storage->get( 'sync_timestamp' ); + } + + #endregion Daily Sync Cron ------------------------------------------------------------------ + + #region Async Install Sync ------------------------------------------------------------------ + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + * @return bool + */ + private function is_install_sync_scheduled() { + /** + * @var object $cron_data + */ + $cron_data = $this->_storage->get( 'install_sync_cron', null ); + + return ( ! is_null( $cron_data ) && true === $cron_data->on ); + } + + /** + * Instead of running blocking install sync event, execute non blocking scheduled wp-cron. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + */ + private function schedule_install_sync() { + $this->_logger->entrance(); + + $this->clear_install_sync_cron(); + + // Schedule immediate install sync. + wp_schedule_single_event( + WP_FS__SCRIPT_START_TIME, + $this->get_action_tag( 'install_sync' ) + ); + + $this->_storage->store( 'install_sync_cron', (object) array( + 'version' => $this->get_plugin_version(), + 'sdk_version' => $this->version, + 'timestamp' => WP_FS__SCRIPT_START_TIME, + 'on' => true, + ) ); + } + + /** + * Unix timestamp for previous install sync cron execution or false if never executed. + * + * @todo There's some very strange bug that $this->_storage->install_sync_timestamp value is not being + * updated. But for sure the sync event is working. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + * @return int|false + */ + function last_install_sync() { + $this->_logger->entrance(); + + return $this->_storage->get( 'install_sync_timestamp' ); + } + + /** + * Unix timestamp for next install sync cron execution or false if not scheduled. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + * @return int|false + */ + function next_install_sync() { + $this->_logger->entrance(); + + if ( ! $this->is_install_sync_scheduled() ) { + return false; + } + + return wp_next_scheduled( $this->get_action_tag( 'install_sync' ) ); + } + + /** + * Add the actual install sync function to the cron job hook. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + */ + private function hook_callback_to_install_sync() { + $this->add_action( 'install_sync', array( &$this, '_run_sync_install' ) ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + */ + private function clear_install_sync_cron() { + $this->_logger->entrance(); + + if ( ! $this->is_install_sync_scheduled() ) { + return; + } + + $this->_storage->remove( 'install_sync_cron' ); + + wp_clear_scheduled_hook( $this->get_action_tag( 'install_sync' ) ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + */ + public function _run_sync_install() { + $this->_logger->entrance(); + + // Update last install sync timestamp. + $this->_storage->install_sync_timestamp = time(); + + $this->sync_install( array(), true ); + } + + #endregion Async Install Sync ------------------------------------------------------------------ + + /** + * Show a notice that activation is currently pending. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @param bool|string $email + */ + function _add_pending_activation_notice( $email = false ) { + if ( ! is_string( $email ) ) { + $current_user = self::_get_current_wp_user(); + $email = $current_user->user_email; + } + + $this->_admin_notices->add_sticky( + sprintf( + __fs( 'pending-activation-message', $this->_slug ), + '<b>' . $this->get_plugin_name() . '</b>', + '<b>' . $email . '</b>' + ), + 'activation_pending', + 'Thanks!' + ); + } + + /** + * Check if currently in plugin activation. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.4 + * + * @return bool + */ + function is_plugin_activation() { + return get_option( "fs_{$this->_slug}_activated", false ); + } + + /** + * + * NOTE: admin_menu action executed before admin_init. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + */ + function _admin_init_action() { + /** + * Automatically redirect to connect/activation page after plugin activation. + * + * @since 1.1.7 Do NOT redirect to opt-in when running in network admin mode. + */ + if ( $this->is_plugin_activation() ) { + delete_option( "fs_{$this->_slug}_activated" ); + + if ( ! function_exists( 'is_network_admin' ) || ! is_network_admin() ) { + $this->_redirect_on_activation_hook(); + + return; + } + } + + if ( fs_request_is_action( $this->_slug . '_skip_activation' ) ) { + check_admin_referer( $this->_slug . '_skip_activation' ); + + $this->skip_connection(); + + if ( fs_redirect( $this->get_after_activation_url( 'after_skip_url' ) ) ) { + exit(); + } + } + + if ( ! $this->is_addon() && ! $this->is_registered() && ! $this->is_anonymous() ) { + if ( ! $this->is_pending_activation() ) { + if ( ! $this->_menu->is_activation_page() ) { + if ( $this->is_plugin_new_install() ) { + // Show notice for new plugin installations. + $this->_admin_notices->add( + sprintf( + __fs( 'you-are-step-away', $this->_slug ), + sprintf( '<b><a href="%s">%s</a></b>', + $this->get_activation_url(), + sprintf( __fs( 'activate-x-now', $this->_slug ), $this->get_plugin_name() ) + ) + ), + '', + 'update-nag' + ); + } else { + if ( ! isset( $this->_storage->sticky_optin_added ) ) { + $this->_storage->sticky_optin_added = true; + + // Show notice for new plugin installations. + $this->_admin_notices->add_sticky( + sprintf( + __fs( 'few-plugin-tweaks', $this->_slug ), + sprintf( '<b><a href="%s">%s</a></b>', + $this->get_activation_url(), + sprintf( __fs( 'optin-x-now', $this->_slug ), $this->get_plugin_name() ) + ) + ), + 'connect_account', + '', + 'update-nag' + ); + } + + if ( $this->has_filter( 'optin_pointer_element' ) ) { + // Don't show admin nag if plugin update. + wp_enqueue_script( 'wp-pointer' ); + wp_enqueue_style( 'wp-pointer' ); + + $this->_enqueue_connect_essentials(); + + add_action( 'admin_print_footer_scripts', array( + $this, + '_add_connect_pointer_script' + ) ); + } + + } + } + } + } + + $this->_add_upgrade_action_link(); + } + + /** + * Enqueue connect requires scripts and styles. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.4 + */ + function _enqueue_connect_essentials() { + wp_enqueue_script( 'jquery' ); + wp_enqueue_script( 'json2' ); + + fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.min.js' ); + fs_enqueue_local_script( 'fs-postmessage', 'postmessage.js' ); + + fs_enqueue_local_style( 'fs_connect', '/admin/connect.css' ); + } + + /** + * Add connect / opt-in pointer. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.4 + */ + function _add_connect_pointer_script() { + $vars = array( 'slug' => $this->_slug ); + $pointer_content = fs_get_template( 'connect.php', $vars ); + ?> + <script type="text/javascript">// <![CDATA[ + jQuery(document).ready(function ($) { + if ('undefined' !== typeof(jQuery().pointer)) { + + var element = <?php echo $this->apply_filters('optin_pointer_element', '$("#non_existing_element");') ?>; + + if (element.length > 0) { + var optin = $(element).pointer($.extend(true, {}, { + content : <?php echo json_encode($pointer_content) ?>, + position : { + edge : 'left', + align: 'center' + }, + buttons : function () { + // Don't show pointer buttons. + return ''; + }, + pointerWidth: 482 + }, <?php echo $this->apply_filters('optin_pointer_options_json', '{}') ?>)); + + <?php + echo $this->apply_filters('optin_pointer_execute', " + + optin.pointer('open'); + + // Tag the opt-in pointer with custom class. + $('.wp-pointer #fs_connect') + .parents('.wp-pointer.wp-pointer-top') + .addClass('fs-opt-in-pointer'); + + ", 'element', 'optin') ?> + } + } + }); + // ]]></script> + <?php + } + + /** + * Return current page's URL. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @return string + */ + function current_page_url() { + $url = 'http'; + + if ( isset( $_SERVER["HTTPS"] ) ) { + if ( $_SERVER["HTTPS"] == "on" ) { + $url .= "s"; + } + } + $url .= "://"; + if ( $_SERVER["SERVER_PORT"] != "80" ) { + $url .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"]; + } else { + $url .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]; + } + + return esc_url( $url ); + } + + /** + * Check if the current page is the plugin's main admin settings page. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @return bool + */ + function _is_plugin_page() { + return fs_is_plugin_page( $this->_menu->get_raw_slug() ) || + fs_is_plugin_page( $this->_slug ); + } + + /* Events + ------------------------------------------------------------------------------------------------------------------*/ + /** + * Delete site install from Database. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @param bool $store + */ + function _delete_site( $store = true ) { + $sites = self::get_all_sites(); + + if ( isset( $sites[ $this->_slug ] ) ) { + unset( $sites[ $this->_slug ] ); + } + + self::$_accounts->set_option( 'sites', $sites, $store ); + } + + /** + * Delete plugin's plans information. + * + * @param bool $store Flush to Database if true. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + */ + private function _delete_plans( $store = true ) { + $this->_logger->entrance(); + + $plans = self::get_all_plans(); + + unset( $plans[ $this->_slug ] ); + + self::$_accounts->set_option( 'plans', $plans, $store ); + } + + /** + * Delete all plugin licenses. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param bool $store + * @param string|bool $plugin_slug + */ + private function _delete_licenses( $store = true, $plugin_slug = false ) { + $this->_logger->entrance(); + + $all_licenses = self::get_all_licenses(); + + if ( ! is_string( $plugin_slug ) ) { + $plugin_slug = $this->_slug; + } + + unset( $all_licenses[ $plugin_slug ] ); + + self::$_accounts->set_option( 'licenses', $all_licenses, $store ); + } + + /** + * Check if Freemius was added on new plugin installation. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.5 + * + * @return bool + */ + function is_plugin_new_install() { + return isset( $this->_storage->is_plugin_new_install ) && + $this->_storage->is_plugin_new_install; + } + + /** + * Plugin activated hook. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @uses FS_Api + */ + function _activate_plugin_event_hook() { + $this->_logger->entrance( 'slug = ' . $this->_slug ); + + if ( ! current_user_can( 'activate_plugins' ) ) { + return; + } + + // Clear API cache on activation. + FS_Api::clear_cache(); + + if ( $this->is_registered() ) { + // Schedule re-activation event and sync. +// $this->sync_install( array(), true ); + $this->schedule_install_sync(); + + /** + * @todo Work on automatic deactivation of the Free plugin version. It doesn't work since the slug of the free & premium versions is identical. Therefore, only one instance of Freemius is created and the activation hook of the premium version is not being added. + */ + if ( $this->_plugin_basename !== $this->_free_plugin_basename ) { + // Deactivate Free plugin version on premium plugin activation. + deactivate_plugins( $this->_free_plugin_basename ); + + $this->_admin_notices->add( + sprintf( __fs( 'successful-version-upgrade-message', $this->_slug ), sprintf( '<b>%s</b>', $this->_plugin->title ) ), + __fs( 'woot', $this->_slug ) . '!' + ); + } + } else if ( $this->is_anonymous() ) { + /** + * Reset "skipped" click cache on the following: + * 1. Development mode. + * 2. If the user skipped the exact same version before. + * + * @todo 3. If explicitly asked to retry after every activation. + */ + if ( WP_FS__DEV_MODE || + $this->get_plugin_version() == $this->_storage->is_anonymous['version'] + ) { + $this->reset_anonymous_mode(); + } + } + + if ( ! isset( $this->_storage->is_plugin_new_install ) ) { + /** + * If no previous version of plugin's version exist, it means that it's either + * the first time that the plugin installed on the site, or the plugin was installed + * before but didn't have Freemius integrated. + * + * Since register_activation_hook() do NOT fires on updates since 3.1, and only fires + * on manual activation via the dashboard, is_plugin_activation() is TRUE + * only after immediate activation. + * + * @since 1.1.4 + * @link https://make.wordpress.org/core/2010/10/27/plugin-activation-hooks-no-longer-fire-for-updates/ + */ + $this->_storage->is_plugin_new_install = empty( $this->_storage->plugin_last_version ); + } + + if ( ! $this->_anonymous_mode && $this->has_api_connectivity( WP_FS__DEV_MODE ) ) { + // Store hint that the plugin was just activated to enable auto-redirection to settings. + add_option( "fs_{$this->_slug}_activated", true ); + } + } + + /** + * Delete account. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * + * @param bool $check_user Enforce checking if user have plugins activation privileges. + */ + function delete_account_event( $check_user = true ) { + $this->_logger->entrance( 'slug = ' . $this->_slug ); + + if ( $check_user && ! current_user_can( 'activate_plugins' ) ) { + return; + } + + $this->do_action( 'before_account_delete' ); + + // Clear all admin notices. + $this->_admin_notices->clear_all_sticky(); + + $this->_delete_site( false ); + + $this->_delete_plans( false ); + + $this->_delete_licenses( false ); + + // Delete add-ons related to plugin's account. + $this->_delete_account_addons( false ); + + // @todo Delete plans and licenses of add-ons. + + self::$_accounts->store(); + + /** + * IMPORTANT: + * Clear crons must be executed before clearing all storage. + * Otherwise, the cron will not be cleared. + */ + $this->clear_sync_cron(); + $this->clear_install_sync_cron(); + + // Clear all storage data. + $this->_storage->clear_all( true, array( + 'connectivity_test', + 'is_on', + ) ); + + // Send delete event. + $this->get_api_site_scope()->call( '/', 'delete' ); + + $this->do_action( 'after_account_delete' ); + } + + /** + * Plugin deactivation hook. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + */ + function _deactivate_plugin_hook() { + $this->_logger->entrance( 'slug = ' . $this->_slug ); + + if ( ! current_user_can( 'activate_plugins' ) ) { + return; + } + + $this->_admin_notices->clear_all_sticky(); + if ( isset( $this->_storage->sticky_optin_added ) ) { + unset( $this->_storage->sticky_optin_added ); + } + + if ( ! isset( $this->_storage->is_plugin_new_install ) ) { + // Remember that plugin was already installed. + $this->_storage->is_plugin_new_install = false; + } + + $this->clear_sync_cron(); + $this->clear_install_sync_cron(); + + if ( $this->is_registered() ) { + // Send deactivation event. + $this->sync_install( array( + 'is_active' => false, + ) ); + } else { + if ( ! $this->has_api_connectivity() ) { + // Reset connectivity test cache. + unset( $this->_storage->connectivity_test ); + } + } + + // Clear API cache on deactivation. + FS_Api::clear_cache(); + + $this->remove_sdk_reference(); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + */ + private function remove_sdk_reference() { + global $fs_active_plugins; + + foreach ( $fs_active_plugins->plugins as $sdk_path => &$data ) { + if ( $this->_plugin_basename == $data->plugin_path ) { + unset( $fs_active_plugins->plugins[ $sdk_path ] ); + break; + } + } + + fs_fallback_to_newest_active_sdk(); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @param bool $is_anonymous + */ + private function set_anonymous_mode( $is_anonymous = true ) { + // Store information regarding skip to try and opt-in the user + // again in the future. + $this->_storage->is_anonymous = array( + 'is' => $is_anonymous, + 'timestamp' => WP_FS__SCRIPT_START_TIME, + 'version' => $this->get_plugin_version(), + ); + + // Update anonymous mode cache. + $this->_is_anonymous = $is_anonymous; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + */ + private function reset_anonymous_mode() { + unset( $this->_storage->is_anonymous ); + } + + /** + * Clears the anonymous mode and redirects to the opt-in screen. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7 + */ + function connect_again() { + if ( ! $this->is_anonymous() ) { + return; + } + + $this->reset_anonymous_mode(); + + if ( fs_redirect( $this->get_activation_url() ) ) { + exit(); + } + } + + /** + * Skip account connect, and set anonymous mode. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.1 + */ + private function skip_connection() { + $this->_logger->entrance(); + + $this->_admin_notices->remove_sticky( 'connect_account' ); + + $this->set_anonymous_mode(); + + // Send anonymous skip event. + // No user identified info nor any tracking will be sent after the user skips the opt-in. + $this->get_api_plugin_scope()->call( 'skip.json', 'put', array( + 'uid' => $this->get_anonymous_id(), + ) ); + } + + /** + * Plugin version update hook. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + */ + private function update_plugin_version_event() { + $this->_logger->entrance(); + + if ( ! $this->is_registered() ) { + return; + } + + $this->schedule_install_sync(); +// $this->sync_install( array(), true ); + } + + /** + * Return a list of modified plugins since the last sync. + * + * Note: + * There's no point to store a plugins counter since even if the number of + * plugins didn't change, we still need to check if the versions are all the + * same and the activity state is similar. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.8 + * + * @return array|false + */ + private function get_plugins_data_for_api() { + // Alias. + $option_name = 'all_plugins'; + + $all_cached_plugins = self::$_accounts->get_option( $option_name ); + + if ( ! is_object( $all_cached_plugins ) ) { + $all_cached_plugins = (object) array( + 'timestamp' => '', + 'md5' => '', + 'plugins' => array(), + ); + } + + $time = time(); + + if ( ! empty( $all_cached_plugins->timestamp ) && + ( $time - $all_cached_plugins->timestamp ) < WP_FS__TIME_5_MIN_IN_SEC + ) { + // Don't send plugin updates if last update was in the past 5 min. + return false; + } + + // Write timestamp to lock the logic. + $all_cached_plugins->timestamp = $time; + self::$_accounts->set_option( $option_name, $all_cached_plugins, true ); + + // Reload options from DB. + self::$_accounts->load( true ); + $all_cached_plugins = self::$_accounts->get_option( $option_name ); + + if ( $time != $all_cached_plugins->timestamp ) { + // If timestamp is different, then another thread captured the lock. + return false; + } + + // Check if there's a change in plugins. + $all_plugins = self::get_all_plugins(); + + // Check if plugins changed. + ksort( $all_plugins ); + + $plugins_signature = ''; + foreach ( $all_plugins as $basename => $data ) { + $plugins_signature .= $data['slug'] . ',' . + $data['Version'] . ',' . + ( $data['is_active'] ? '1' : '0' ) . ';'; + } + + // Check if plugins status changed (version or active/inactive). + $plugins_changed = ( $all_cached_plugins->md5 !== md5( $plugins_signature ) ); + + $plugins_update_data = array(); + + if ( $plugins_changed ) { + // Change in plugins, report changes. + + // Update existing plugins info. + foreach ( $all_cached_plugins->plugins as $basename => $data ) { + if ( ! isset( $all_plugins[ $basename ] ) ) { + // Plugin uninstalled. + $uninstalled_plugin_data = $data; + $uninstalled_plugin_data['is_active'] = false; + $uninstalled_plugin_data['is_uninstalled'] = true; + $plugins_update_data[] = $uninstalled_plugin_data; + + unset( $all_plugins[ $basename ] ); + unset( $all_cached_plugins->plugins[ $basename ] ); + } else if ( $data['is_active'] !== $all_plugins[ $basename ]['is_active'] || + $data['version'] !== $all_plugins[ $basename ]['Version'] + ) { + // Plugin activated or deactivated, or version changed. + $all_cached_plugins->plugins[ $basename ]['is_active'] = $all_plugins[ $basename ]['is_active']; + $all_cached_plugins->plugins[ $basename ]['version'] = $all_plugins[ $basename ]['Version']; + + $plugins_update_data[] = $all_cached_plugins->plugins[ $basename ]; + } + } + + // Find new plugins that weren't yet seen before. + foreach ( $all_plugins as $basename => $data ) { + if ( ! isset( $all_cached_plugins->plugins[ $basename ] ) ) { + // New plugin. + $new_plugin = array( + 'slug' => $data['slug'], + 'version' => $data['Version'], + 'title' => $data['Name'], + 'is_active' => $data['is_active'], + 'is_uninstalled' => false, + ); + + $plugins_update_data[] = $new_plugin; + $all_cached_plugins->plugins[ $basename ] = $new_plugin; + } + } + + $all_cached_plugins->md5 = md5( $plugins_signature ); + $all_cached_plugins->timestamp = $time; + self::$_accounts->set_option( $option_name, $all_cached_plugins, true ); + } + + return $plugins_update_data; + } + + /** + * Return a list of modified themes since the last sync. + * + * Note: + * There's no point to store a themes counter since even if the number of + * themes didn't change, we still need to check if the versions are all the + * same and the activity state is similar. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.8 + * + * @return array|false + */ + private function get_themes_data_for_api() { + // Alias. + $option_name = 'all_themes'; + + $all_cached_themes = self::$_accounts->get_option( $option_name ); + + if ( ! is_object( $all_cached_themes ) ) { + $all_cached_themes = (object) array( + 'timestamp' => '', + 'md5' => '', + 'themes' => array(), + ); + } + + $time = time(); + + if ( ! empty( $all_cached_themes->timestamp ) && + ( $time - $all_cached_themes->timestamp ) < WP_FS__TIME_5_MIN_IN_SEC + ) { + // Don't send theme updates if last update was in the past 5 min. + return false; + } + + // Write timestamp to lock the logic. + $all_cached_themes->timestamp = $time; + self::$_accounts->set_option( $option_name, $all_cached_themes, true ); + + // Reload options from DB. + self::$_accounts->load( true ); + $all_cached_themes = self::$_accounts->get_option( $option_name ); + + if ( $time != $all_cached_themes->timestamp ) { + // If timestamp is different, then another thread captured the lock. + return false; + } + + // Get active theme. + $active_theme = wp_get_theme(); + + // Check if there's a change in themes. + $all_themes = wp_get_themes(); + + // Check if themes changed. + ksort( $all_themes ); + + $themes_signature = ''; + foreach ( $all_themes as $slug => $data ) { + $is_active = ( $slug === $active_theme->stylesheet ); + $themes_signature .= $slug . ',' . + $data->version . ',' . + ( $is_active ? '1' : '0' ) . ';'; + } + + // Check if themes status changed (version or active/inactive). + $themes_changed = ( $all_cached_themes->md5 !== md5( $themes_signature ) ); + + $themes_update_data = array(); + + if ( $themes_changed ) { + // Change in themes, report changes. + + // Update existing themes info. + foreach ( $all_cached_themes->themes as $slug => $data ) { + $is_active = ( $slug === $active_theme->stylesheet ); + + if ( ! isset( $all_themes[ $slug ] ) ) { + // Plugin uninstalled. + $uninstalled_theme_data = $data; + $uninstalled_theme_data['is_active'] = false; + $uninstalled_theme_data['is_uninstalled'] = true; + $themes_update_data[] = $uninstalled_theme_data; + + unset( $all_themes[ $slug ] ); + unset( $all_cached_themes->themes[ $slug ] ); + } else if ( $data['is_active'] !== $is_active || + $data['version'] !== $all_themes[ $slug ]->version + ) { + // Plugin activated or deactivated, or version changed. + + $all_cached_themes->themes[ $slug ]['is_active'] = $is_active; + $all_cached_themes->themes[ $slug ]['version'] = $all_themes[ $slug ]->version; + + $themes_update_data[] = $all_cached_themes->themes[ $slug ]; + } + } + + // Find new themes that weren't yet seen before. + foreach ( $all_themes as $slug => $data ) { + if ( ! isset( $all_cached_themes->themes[ $slug ] ) ) { + $is_active = ( $slug === $active_theme->stylesheet ); + + // New plugin. + $new_plugin = array( + 'slug' => $slug, + 'version' => $data->version, + 'title' => $data->name, + 'is_active' => $is_active, + 'is_uninstalled' => false, + ); + + $themes_update_data[] = $new_plugin; + $all_cached_themes->themes[ $slug ] = $new_plugin; + } + } + + $all_cached_themes->md5 = md5( $themes_signature ); + $all_cached_themes->timestamp = time(); + self::$_accounts->set_option( $option_name, $all_cached_themes, true ); + } + + return $themes_update_data; + } + + /** + * Update install details. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.2 + * + * @param string[] string $override + * @param bool $include_plugins Since 1.1.8 by default include plugin changes. + * @param bool $include_themes Since 1.1.8 by default include plugin changes. + * + * @return array + */ + private function get_install_data_for_api( + array $override, + $include_plugins = true, + $include_themes = true + ) { + /** + * @since 1.1.8 Also send plugin updates. + */ + if ( $include_plugins && ! isset( $override['plugins'] ) ) { + $plugins = $this->get_plugins_data_for_api(); + if ( ! empty( $plugins ) ) { + $override['plugins'] = $plugins; + } + } + /** + * @since 1.1.8 Also send themes updates. + */ + if ( $include_themes && ! isset( $override['themes'] ) ) { + $themes = $this->get_themes_data_for_api(); + if ( ! empty( $themes ) ) { + $override['themes'] = $themes; + } + } + + return array_merge( array( + 'version' => $this->get_plugin_version(), + 'is_premium' => $this->is_premium(), + 'language' => get_bloginfo( 'language' ), + 'charset' => get_bloginfo( 'charset' ), + 'platform_version' => get_bloginfo( 'version' ), + 'programming_language_version' => phpversion(), + 'title' => get_bloginfo( 'name' ), + 'url' => get_site_url(), + // Special params. + 'is_active' => true, + 'is_uninstalled' => false, + ), $override ); + } + + /** + * Update install only if changed. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param string[] string $override + * @param bool $flush + * + * @return false|object|string + */ + private function send_install_update( $override = array(), $flush = false ) { + $this->_logger->entrance(); + + $check_properties = $this->get_install_data_for_api( $override ); + + if ( $flush ) { + $params = $check_properties; + } else { + $params = array(); + $special = array(); + $special_override = false; + + foreach ( $check_properties as $p => $v ) { + if ( property_exists( $this->_site, $p ) ) { + if ( ! empty( $this->_site->{$p} ) && + $this->_site->{$p} != $v + ) { + $this->_site->{$p} = $v; + $params[ $p ] = $v; + } + } else { + $special[ $p ] = $v; + + if ( isset( $override[ $p ] ) || + 'plugins' === $p || + 'themes' === $p + ) { + $special_override = true; + } + } + } + + if ( $special_override || 0 < count( $params ) ) { + // Add special params only if has at least one + // standard param, or if explicitly requested to + // override a special param or a param which is not exist + // in the install object. + $params = array_merge( $params, $special ); + } + } + + if ( 0 < count( $params ) ) { + // Update last install sync timestamp. + $this->_storage->install_sync_timestamp = time(); + + $params['uid'] = $this->get_anonymous_id(); + + // Send updated values to FS. + $site = $this->get_api_site_scope()->call( '/', 'put', $params ); + + if ( ! $this->is_api_error( $site ) ) { + // I successfully sent install update, clear scheduled sync if exist. + $this->clear_install_sync_cron(); + } + + return $site; + } + + return false; + } + + /** + * Update install only if changed. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param string[] string $override + * @param bool $flush + * + * @return false|object|string + */ + private function sync_install( $override = array(), $flush = false ) { + $this->_logger->entrance(); + + $site = $this->send_install_update( $override, $flush ); + + if ( false === $site ) { + // No sync required. + return; + } + + if ( $this->is_api_error( $site ) ) { + // Failed to sync, don't update locally. + return; + } + + $plan = $this->get_plan(); + $this->_site = new FS_Site( $site ); + $this->_site->plan = $plan; + + $this->_store_site( true ); + } + + /** + * Plugin uninstall hook. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @param bool $check_user Enforce checking if user have plugins activation privileges. + */ + function _uninstall_plugin_event( $check_user = true ) { + $this->_logger->entrance( 'slug = ' . $this->_slug ); + + if ( $check_user && ! current_user_can( 'activate_plugins' ) ) { + return; + } + + $params = array(); + if ( isset( $this->_storage->uninstall_reason ) ) { + $params['reason_id'] = $this->_storage->uninstall_reason->id; + $params['reason_info'] = $this->_storage->uninstall_reason->info; + } + + if ( ! $this->is_registered() && isset( $this->_storage->uninstall_reason ) ) { + // Send anonymous uninstall event only if user submitted a feedback. + $params['uid'] = $this->get_anonymous_id(); + $this->get_api_plugin_scope()->call( 'uninstall.json', 'put', $params ); + } else { + // Send uninstall event. + $this->send_install_update( array_merge( $params, array( + 'is_active' => false, + 'is_uninstalled' => true, + ) ) ); + } + + // @todo Decide if we want to delete plugin information from db. + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.1 + * + * @return string + */ + private function premium_plugin_basename() { + return preg_replace( '/\//', '-premium/', $this->_free_plugin_basename, 1 ); + } + + /** + * Uninstall plugin hook. Called only when connected his account with Freemius for active sites tracking. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.2 + */ + public static function _uninstall_plugin_hook() { + self::_load_required_static(); + + self::$_static_logger->entrance(); + + if ( ! current_user_can( 'activate_plugins' ) ) { + return; + } + + $plugin_file = substr( current_filter(), strlen( 'uninstall_' ) ); + + self::$_static_logger->info( 'plugin = ' . $plugin_file ); + + define( 'WP_FS__UNINSTALL_MODE', true ); + + $fs = self::get_instance_by_file( $plugin_file ); + + if ( is_object( $fs ) ) { + self::require_plugin_essentials(); + + if ( is_plugin_active( $fs->_free_plugin_basename ) || + is_plugin_active( $fs->premium_plugin_basename() ) + ) { + // Deleting Free or Premium plugin version while the other version still installed. + return; + } + + $fs->_uninstall_plugin_event(); + + $fs->do_action( 'after_uninstall' ); + } + } + + #region Plugin Information ------------------------------------------------------------------ + + /** + * Load WordPress core plugin.php essential module. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.1 + */ + private static function require_plugin_essentials() { + if ( ! function_exists( 'get_plugins' ) ) { + require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); + } + } + + /** + * Load WordPress core pluggable.php module. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.2 + */ + private static function require_pluggable_essentials() { + if ( ! function_exists( 'wp_get_current_user' ) ) { + require_once( ABSPATH . 'wp-includes/pluggable.php' ); + } + } + + /** + * Return plugin data. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @return array + */ + function get_plugin_data() { + if ( ! isset( $this->_plugin_data ) ) { + self::require_plugin_essentials(); + + $this->_plugin_data = get_plugin_data( $this->_plugin_main_file_path ); + } + + return $this->_plugin_data; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @return string Plugin slug. + */ + function get_slug() { + return $this->_slug; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @return number Plugin ID. + */ + function get_id() { + return $this->_plugin->id; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @return string Plugin public key. + */ + function get_public_key() { + return $this->_plugin->public_key; + } + + /** + * Will be available only on sandbox mode. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @return mixed Plugin secret key. + */ + function get_secret_key() { + return $this->_plugin->secret_key; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.1 + * + * @return bool + */ + function has_secret_key() { + return ! empty( $this->_plugin->secret_key ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return string + */ + function get_plugin_name() { + $this->_logger->entrance(); + + if ( ! isset( $this->_plugin_name ) ) { + $plugin_data = $this->get_plugin_data(); + + // Get name. + $this->_plugin_name = $plugin_data['Name']; + + // Check if plugin name contains [Premium] suffix and remove it. + $suffix = '[premium]'; + $suffix_len = strlen( $suffix ); + + if ( strlen( $plugin_data['Name'] ) > $suffix_len && + $suffix === substr( strtolower( $plugin_data['Name'] ), - $suffix_len ) + ) { + $this->_plugin_name = substr( $plugin_data['Name'], 0, - $suffix_len ); + } + + $this->_logger->departure( 'Name = ' . $this->_plugin_name ); + } + + return $this->_plugin_name; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.0 + * + * @return string + */ + function get_plugin_version() { + $this->_logger->entrance(); + + $plugin_data = $this->get_plugin_data(); + + $this->_logger->departure( 'Version = ' . $plugin_data['Version'] ); + + return $this->apply_filters( 'plugin_version', $plugin_data['Version'] ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @return string + */ + function get_plugin_basename() { + return $this->_plugin_basename; + } + + function get_plugin_folder_name() { + $this->_logger->entrance(); + + $plugin_folder = $this->_plugin_basename; + + while ( '.' !== dirname( $plugin_folder ) ) { + $plugin_folder = dirname( $plugin_folder ); + } + + $this->_logger->departure( 'Folder Name = ' . $plugin_folder ); + + return $plugin_folder; + } + + #endregion ------------------------------------------------------------------ + + /* Account + ------------------------------------------------------------------------------------------------------------------*/ + + /** + * Find plugin's slug by plugin's basename. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param string $plugin_base_name + * + * @return false|string + */ + private static function find_slug_by_basename( $plugin_base_name ) { + $file_slug_map = self::$_accounts->get_option( 'file_slug_map', array() ); + + if ( ! array( $file_slug_map ) || ! isset( $file_slug_map[ $plugin_base_name ] ) ) { + return false; + } + + return $file_slug_map[ $plugin_base_name ]; + } + + /** + * Store the map between the plugin's basename to the slug. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + */ + private function store_file_slug_map() { + $file_slug_map = self::$_accounts->get_option( 'file_slug_map', array() ); + + if ( ! array( $file_slug_map ) ) { + $file_slug_map = array(); + } + + if ( ! isset( $file_slug_map[ $this->_plugin_basename ] ) || + $file_slug_map[ $this->_plugin_basename ] !== $this->_slug + ) { + $file_slug_map[ $this->_plugin_basename ] = $this->_slug; + self::$_accounts->set_option( 'file_slug_map', $file_slug_map, true ); + } + } + + /** + * @return FS_User[] + */ + static function get_all_users() { + $users = self::$_accounts->get_option( 'users', array() ); + + if ( ! is_array( $users ) ) { + $users = array(); + } + + return $users; + } + + /** + * @return FS_Site[] + */ + private static function get_all_sites() { + $sites = self::$_accounts->get_option( 'sites', array() ); + + if ( ! is_array( $sites ) ) { + $sites = array(); + } + + return $sites; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return FS_Plugin_License[] + */ + private static function get_all_licenses() { + $licenses = self::$_accounts->get_option( 'licenses', array() ); + + if ( ! is_array( $licenses ) ) { + $licenses = array(); + } + + return $licenses; + } + + /** + * @return FS_Plugin_Plan[] + */ + private static function get_all_plans() { + $plans = self::$_accounts->get_option( 'plans', array() ); + + if ( ! is_array( $plans ) ) { + $plans = array(); + } + + return $plans; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @return FS_Plugin_Tag[] + */ + private static function get_all_updates() { + $updates = self::$_accounts->get_option( 'updates', array() ); + + if ( ! is_array( $updates ) ) { + $updates = array(); + } + + return $updates; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return FS_Plugin[]|false + */ + private static function get_all_addons() { + $addons = self::$_accounts->get_option( 'addons', array() ); + + if ( ! is_array( $addons ) ) { + $addons = array(); + } + + return $addons; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return FS_Plugin[]|false + */ + private static function get_all_account_addons() { + $addons = self::$_accounts->get_option( 'account_addons', array() ); + + if ( ! is_array( $addons ) ) { + $addons = array(); + } + + return $addons; + } + + /** + * Check if user is registered. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * @return bool + */ + function is_registered() { + return is_object( $this->_user ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @return FS_Plugin + */ + function get_plugin() { + return $this->_plugin; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * + * @return FS_User + */ + function get_user() { + return $this->_user; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * + * @return FS_Site + */ + function get_site() { + return $this->_site; + } + + /** + * Get plugin add-ons. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @since 1.1.7.3 If not yet loaded, fetch data from the API. + * + * @return FS_Plugin[]|false + */ + function get_addons() { + $this->_logger->entrance(); + + $all_addons = self::get_all_addons(); + + /** + * @since 1.1.7.3 If not yet loaded, fetch data from the API. + */ + if ( ! is_array( $all_addons ) || + ! isset( $all_addons[ $this->_plugin->id ] ) || + ! is_array( $all_addons[ $this->_plugin->id ] ) || + empty( $all_addons[ $this->_plugin->id ] ) + ) { + if ( $this->_has_addons ) { + $addons = $this->_sync_addons(); + + if ( ! empty( $addons ) ) { + $all_addons = self::get_all_addons(); + } + } + } + + if ( ! is_array( $all_addons ) || + ! isset( $all_addons[ $this->_plugin->id ] ) || + ! is_array( $all_addons[ $this->_plugin->id ] ) || + empty( $all_addons[ $this->_plugin->id ] ) + ) { + return false; + } + + return $all_addons[ $this->_plugin->id ]; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return FS_Plugin[]|false + */ + function get_account_addons() { + $this->_logger->entrance(); + + $addons = self::get_all_account_addons(); + + if ( ! is_array( $addons ) || + ! isset( $addons[ $this->_plugin->id ] ) || + ! is_array( $addons[ $this->_plugin->id ] ) || + 0 === count( $addons[ $this->_plugin->id ] ) + ) { + return false; + } + + return $addons[ $this->_plugin->id ]; + } + + /** + * Check if user has any + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @return bool + */ + function has_account_addons() { + $addons = $this->get_account_addons(); + + return is_array( $addons ) && ( 0 < count( $addons ) ); + } + + + /** + * Get add-on by ID (from local data). + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param number $id + * + * @return FS_Plugin|false + */ + function get_addon( $id ) { + $this->_logger->entrance(); + + $addons = $this->get_addons(); + + if ( is_array( $addons ) ) { + foreach ( $addons as $addon ) { + if ( $id == $addon->id ) { + return $addon; + } + } + } + + return false; + } + + /** + * Get add-on by slug (from local data). + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param string $slug + * + * @return FS_Plugin|false + */ + function get_addon_by_slug( $slug ) { + $this->_logger->entrance(); + + $addons = $this->get_addons(); + + if ( is_array( $addons ) ) { + foreach ( $addons as $addon ) { + if ( $slug == $addon->slug ) { + return $addon; + } + } + } + + return false; + } + + #region Plans & Licensing ------------------------------------------------------------------ + + /** + * Check if running premium plugin code. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @return bool + */ + function is_premium() { + return $this->_plugin->is_premium; + } + + /** + * Get site's plan ID. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.2 + * + * @return number + */ + function get_plan_id() { + return $this->_site->plan->id; + } + + /** + * Get site's plan title. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.2 + * + * @return string + */ + function get_plan_title() { + return $this->_site->plan->title; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return FS_Plugin_Plan + */ + function get_plan() { + return is_object( $this->_site->plan ) ? $this->_site->plan : false; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * + * @return bool + */ + function is_trial() { + $this->_logger->entrance(); + + if ( ! $this->is_registered() ) { + return false; + } + + return $this->_site->is_trial(); + } + + /** + * Check if currently in a trial with payment method (credit card or paypal). + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7 + * + * @return bool + */ + function is_paid_trial() { + $this->_logger->entrance(); + + if ( ! $this->is_trial() ) { + return false; + } + + return $this->has_active_license() && ( $this->_site->trial_plan_id == $this->_license->plan_id ); + } + + /** + * Check if trial already utilized. + * + * @since 1.0.9 + * + * @return bool + */ + function is_trial_utilized() { + $this->_logger->entrance(); + + if ( ! $this->is_registered() ) { + return false; + } + + return $this->_site->is_trial_utilized(); + } + + /** + * Get trial plan information (if in trial). + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool|FS_Plugin_Plan + */ + function get_trial_plan() { + $this->_logger->entrance(); + + if ( ! $this->is_trial() ) { + return false; + } + + return $this->_storage->trial_plan; + } + + /** + * Check if the user has an activated and valid paid license on current plugin's install. + * + * @since 1.0.9 + * + * @return bool + */ + function is_paying() { + $this->_logger->entrance(); + + if ( ! $this->is_registered() ) { + return false; + } + + if ( ! $this->has_paid_plan() ) { + return false; + } + + return ( + ! $this->is_trial() && + 'free' !== $this->_site->plan->name && + $this->has_features_enabled_license() + ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @return bool + */ + function is_free_plan() { + if ( ! $this->is_registered() ) { + return true; + } + + if ( ! $this->has_paid_plan() ) { + return true; + } + + return ( + 'free' === $this->_site->plan->name || + ! $this->has_features_enabled_license() + ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @return bool + */ + function _has_premium_license() { + $this->_logger->entrance(); + + $premium_license = $this->_get_available_premium_license(); + + return ( false !== $premium_license ); + } + + /** + * Check if user has any licenses associated with the plugin (including expired or blocking). + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + * @return bool + */ + private function has_any_license() { + return is_array( $this->_licenses ) && ( 0 < count( $this->_licenses ) ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @return FS_Plugin_License + */ + function _get_available_premium_license() { + $this->_logger->entrance(); + + if ( ! $this->has_paid_plan() ) { + return false; + } + + if ( is_array( $this->_licenses ) ) { + foreach ( $this->_licenses as $license ) { + if ( ! $license->is_utilized() && $license->is_features_enabled() ) { + return $license; + } + } + } + + return false; + } + + /** + * Sync local plugin plans with remote server. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @return FS_Plugin_Plan[]|object + */ + function _sync_plans() { + $plans = $this->_fetch_plugin_plans(); + if ( ! $this->is_api_error( $plans ) ) { + $this->_plans = $plans; + $this->_store_plans(); + } + + $this->do_action( 'after_plans_sync', $plans ); + + return $this->_plans; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @param number $id + * + * @return FS_Plugin_Plan + */ + function _get_plan_by_id( $id ) { + $this->_logger->entrance(); + + if ( ! is_array( $this->_plans ) || 0 === count( $this->_plans ) ) { + $this->_sync_plans(); + } + + foreach ( $this->_plans as $plan ) { + if ( $id == $plan->id ) { + return $plan; + } + } + + return false; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.8.1 + * + * @param string $name + * + * @return FS_Plugin_Plan|false + */ + private function get_plan_by_name( $name ) { + $this->_logger->entrance(); + + if ( ! is_array( $this->_plans ) || 0 === count( $this->_plans ) ) { + $this->_sync_plans(); + } + + foreach ( $this->_plans as $plan ) { + if ( $name == $plan->name ) { + return $plan; + } + } + + return false; + } + + /** + * Sync local plugin plans with remote server. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return FS_Plugin_License[]|object + */ + function _sync_licenses() { + $licenses = $this->_fetch_licenses(); + if ( ! $this->is_api_error( $licenses ) ) { + $this->_licenses = $licenses; + $this->_store_licenses(); + } + + // Update current license. + if ( is_object( $this->_license ) ) { + $this->_license = $this->_get_license_by_id( $this->_license->id ); + } + + return $this->_licenses; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @param number $id + * + * @return FS_Plugin_License + */ + function _get_license_by_id( $id ) { + $this->_logger->entrance(); + + if ( ! is_numeric( $id ) ) { + return false; + } + + if ( ! is_array( $this->_licenses ) || 0 === count( $this->_licenses ) ) { + $this->_sync_licenses(); + } + + foreach ( $this->_licenses as $license ) { + if ( $id == $license->id ) { + return $license; + } + } + + return false; + } + + /** + * Sync site's license with user licenses. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param FS_Plugin_License|null $new_license + */ + function _update_site_license( $new_license ) { + $this->_logger->entrance(); + + $this->_license = $new_license; + + if ( ! is_object( $new_license ) ) { + $this->_site->license_id = null; + $this->_sync_site_subscription( null ); + + return; + } + + $this->_site->license_id = $this->_license->id; + + if ( ! is_array( $this->_licenses ) ) { + $this->_licenses = array(); + } + + $is_license_found = false; + for ( $i = 0, $len = count( $this->_licenses ); $i < $len; $i ++ ) { + if ( $new_license->id == $this->_licenses[ $i ]->id ) { + $this->_licenses[ $i ] = $new_license; + + $is_license_found = true; + break; + } + } + + // If new license just append. + if ( ! $is_license_found ) { + $this->_licenses[] = $new_license; + } + + $this->_sync_site_subscription( $new_license ); + } + + /** + * Sync site's subscription. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param FS_Plugin_License|null $license + * + * @return bool|\FS_Subscription + */ + private function _sync_site_subscription( $license ) { + if ( ! is_object( $license ) ) { + unset( $this->_storage->subscription ); + + return false; + } + + // Load subscription details if not lifetime. + $subscription = $license->is_lifetime() ? + false : + $this->_fetch_site_license_subscription(); + + if ( is_object( $subscription ) && ! isset( $subscription->error ) ) { + $this->_storage->subscription = $subscription; + } else { + unset( $this->_storage->subscription ); + } + + return $subscription; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return bool|\FS_Plugin_License + */ + function _get_license() { + return $this->_license; + } + + /** + * @return bool|\FS_Subscription + */ + function _get_subscription() { + return isset( $this->_storage->subscription ) ? + $this->_storage->subscription : + false; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.2 + * + * @param string $plan Plan name + * @param bool $exact If true, looks for exact plan. If false, also check "higher" plans. + * + * @return bool + */ + function is_plan( $plan, $exact = false ) { + $this->_logger->entrance(); + + if ( ! $this->is_registered() ) { + return false; + } + + $plan = strtolower( $plan ); + + if ( $this->_site->plan->name === $plan ) // Exact plan. + { + return true; + } else if ( $exact ) // Required exact, but plans are different. + { + return false; + } + + $current_plan_order = - 1; + $required_plan_order = - 1; + for ( $i = 0, $len = count( $this->_plans ); $i < $len; $i ++ ) { + if ( $plan === $this->_plans[ $i ]->name ) { + $required_plan_order = $i; + } else if ( $this->_site->plan->name === $this->_plans[ $i ]->name ) { + $current_plan_order = $i; + } + } + + return ( $current_plan_order > $required_plan_order ); + } + + /** + * Check if plan based on trial. If not in trial mode, should return false. + * + * @since 1.0.9 + * + * @param string $plan Plan name + * @param bool $exact If true, looks for exact plan. If false, also check "higher" plans. + * + * @return bool + */ + function is_trial_plan( $plan, $exact = false ) { + $this->_logger->entrance(); + + if ( ! $this->is_registered() ) { + return false; + } + + if ( ! $this->is_trial() ) { + return false; + } + + if ( ! isset( $this->_storage->trial_plan ) ) { + // Store trial plan information. + $this->_enrich_site_trial_plan( true ); + } + + if ( $this->_storage->trial_plan->name === $plan ) // Exact plan. + { + return true; + } else if ( $exact ) // Required exact, but plans are different. + { + return false; + } + + $current_plan_order = - 1; + $required_plan_order = - 1; + for ( $i = 0, $len = count( $this->_plans ); $i < $len; $i ++ ) { + if ( $plan === $this->_plans[ $i ]->name ) { + $required_plan_order = $i; + } else if ( $this->_storage->trial_plan->name === $this->_plans[ $i ]->name ) { + $current_plan_order = $i; + } + } + + return ( $current_plan_order > $required_plan_order ); + } + + /** + * Check if plugin has any paid plans. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @return bool + */ + function has_paid_plan() { + return $this->_has_paid_plans || FS_Plan_Manager::instance()->has_paid_plan( $this->_plans ); + } + + /** + * Check if plugin has any plan with a trail. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function has_trial_plan() { + if ( ! $this->is_registered() ) { + return false; + } + + return $this->_storage->get( 'has_trial_plan', false ); + } + + /** + * Check if plugin has any free plan, or is it premium only. + * + * Note: If no plans configured, assume plugin is free. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @return bool + */ + function has_free_plan() { + return FS_Plan_Manager::instance()->has_free_plan( $this->_plans ); + } + + #region URL Generators + + /** + * Alias to pricing_url(). + * + * @author Vova Feldman (@svovaf) + * @since 1.0.2 + * + * @uses pricing_url() + * + * @param string $period Billing cycle + * @param bool $is_trial + * + * @return string + */ + function get_upgrade_url( $period = WP_FS__PERIOD_ANNUALLY, $is_trial = false ) { + return $this->pricing_url( $period, $is_trial ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @uses get_upgrade_url() + * + * @return string + */ + function get_trial_url() { + return $this->get_upgrade_url( WP_FS__PERIOD_ANNUALLY, true ); + } + + /** + * Plugin's pricing URL. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param string $billing_cycle Billing cycle + * + * @param bool $is_trial + * + * @return string + */ + function pricing_url( $billing_cycle = WP_FS__PERIOD_ANNUALLY, $is_trial = false ) { + $this->_logger->entrance(); + + $params = array( + 'billing_cycle' => $billing_cycle + ); + + if ( $is_trial ) { + $params['trial'] = 'true'; + } + + return $this->_get_admin_page_url( 'pricing', $params ); + } + + /** + * Checkout page URL. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param string $billing_cycle Billing cycle + * @param bool $is_trial + * @param array $extra (optional) Extra parameters, override other query params. + * + * @return string + */ + function checkout_url( + $billing_cycle = WP_FS__PERIOD_ANNUALLY, + $is_trial = false, + $extra = array() + ) { + $this->_logger->entrance(); + + $params = array( + 'checkout' => 'true', + 'billing_cycle' => $billing_cycle, + ); + + if ( $is_trial ) { + $params['trial'] = 'true'; + } + + /** + * Params in extra override other params. + */ + $params = array_merge( $params, $extra ); + + return $this->_get_admin_page_url( 'pricing', $params ); + } + + /** + * Add-on checkout URL. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7 + * + * @param number $addon_id + * @param number $pricing_id + * @param string $billing_cycle + * @param bool $is_trial + * + * @return string + */ + function addon_checkout_url( + $addon_id, + $pricing_id, + $billing_cycle = WP_FS__PERIOD_ANNUALLY, + $is_trial = false + ) { + return $this->checkout_url( $billing_cycle, $is_trial, array( + 'plugin_id' => $addon_id, + 'pricing_id' => $pricing_id, + ) ); + } + + #endregion + + #endregion ------------------------------------------------------------------ + + /** + * Check if plugin has any add-ons. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @since 1.1.7.3 Base logic only on the parameter provided by the developer in the init function. + * + * @return bool + */ + function has_addons() { + $this->_logger->entrance(); + + return $this->_has_addons; + } + + /** + * Check if plugin can work in anonymous mode. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function enable_anonymous() { + return $this->_enable_anonymous; + } + + /** + * Check if feature supported with current site's plan. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @todo IMPLEMENT + * + * @param number $feature_id + * + * @throws Exception + */ + function is_feature_supported( $feature_id ) { + throw new Exception( 'not implemented' ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @return bool Is running in SSL/HTTPS + */ + function is_ssl() { + return WP_FS__IS_HTTPS; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool Is running in AJAX call. + * + * @link http://wordpress.stackexchange.com/questions/70676/how-to-check-if-i-am-in-admin-ajax + */ + function is_ajax() { + return ( defined( 'DOING_AJAX' ) && DOING_AJAX ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7 + * + * @return bool + */ + function is_cron() { + return ( defined( 'DOING_CRON' ) && DOING_CRON ); + } + + /** + * Check if a real user is visiting the admin dashboard. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7 + * + * @return bool + */ + function is_user_in_admin() { + return is_admin() && ! $this->is_ajax() && ! $this->is_cron(); + } + + /** + * Check if running in HTTPS and if site's plan matching the specified plan. + * + * @param string $plan + * @param bool $exact + * + * @return bool + */ + function is_ssl_and_plan( $plan, $exact = false ) { + return ( $this->is_ssl() && $this->is_plan( $plan, $exact ) ); + } + + /** + * Construct plugin's settings page URL. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param string $page + * @param array $params + * + * @return string + */ + function _get_admin_page_url( $page = '', $params = array() ) { + if ( ! $this->_menu->is_top_level() ) { + $parent_slug = $this->_menu->get_parent_slug(); + $menu_file = ( false !== strpos( $parent_slug, '.php' ) ) ? + $parent_slug : + 'admin.php'; + + return add_query_arg( array_merge( $params, array( + 'page' => $this->_menu->get_slug( $page ), + ) ), admin_url( $menu_file, 'admin' ) ); + } + + if ( $this->_menu->is_cpt() ) { + if ( empty( $page ) && $this->is_activation_mode() ) { + return add_query_arg( array_merge( $params, array( + 'page' => $this->_menu->get_slug() + ) ), admin_url( 'admin.php', 'admin' ) ); + } else { + if ( ! empty( $page ) ) { + $params['page'] = $this->_menu->get_slug( $page ); + } + + return add_query_arg( $params, admin_url( $this->_menu->get_raw_slug(), 'admin' ) ); + } + } else { + return add_query_arg( array_merge( $params, array( + 'page' => $this->_menu->get_slug( $page ), + ) ), admin_url( 'admin.php', 'admin' ) ); + } + } + + + /** + * Plugin's account URL. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param bool|string $action + * @param array $params + * + * @param bool $add_action_nonce + * + * @return string + */ + function get_account_url( $action = false, $params = array(), $add_action_nonce = true ) { + if ( is_string( $action ) ) { + $params['fs_action'] = $action; + } + + self::require_pluggable_essentials(); + + return ( $add_action_nonce && is_string( $action ) ) ? + wp_nonce_url( $this->_get_admin_page_url( 'account', $params ), $action ) : + $this->_get_admin_page_url( 'account', $params ); + } + + /** + * Plugin's account URL. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param bool|string $topic + * @param bool|string $message + * + * @return string + */ + function contact_url( $topic = false, $message = false ) { + $params = array(); + if ( is_string( $topic ) ) { + $params['topic'] = $topic; + } + if ( is_string( $message ) ) { + $params['message'] = $message; + } + + if ( $this->is_addon() ) { + $params['addon_id'] = $this->get_id(); + + return $this->get_parent_instance()->_get_admin_page_url( 'contact', $params ); + } else { + return $this->_get_admin_page_url( 'contact', $params ); + } + } + + /** + * Add-on direct info URL. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.0 + * + * @param string $slug + * + * @return string + */ + function addon_url( $slug ) { + return $this->_get_admin_page_url( 'addons', array( + 'slug' => $slug + ) ); + } + + /* Logger + ------------------------------------------------------------------------------------------------------------------*/ + /** + * @param string $id + * @param bool $prefix_slug + * + * @return FS_Logger + */ + function get_logger( $id = '', $prefix_slug = true ) { + return FS_Logger::get_logger( ( $prefix_slug ? $this->_slug : '' ) . ( ( ! $prefix_slug || empty( $id ) ) ? '' : '_' ) . $id ); + } + + /** + * @param $id + * @param bool $load_options + * @param bool $prefix_slug + * + * @return FS_Option_Manager + */ + function get_options_manager( $id, $load_options = false, $prefix_slug = true ) { + return FS_Option_Manager::get_manager( ( $prefix_slug ? $this->_slug : '' ) . ( ( ! $prefix_slug || empty( $id ) ) ? '' : '_' ) . $id, $load_options ); + } + + /* Security + ------------------------------------------------------------------------------------------------------------------*/ + private function _encrypt( $str ) { + if ( is_null( $str ) ) { + return null; + } + + return base64_encode( $str ); + } + + private function _decrypt( $str ) { + if ( is_null( $str ) ) { + return null; + } + + return base64_decode( $str ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @param FS_Entity $entity + * + * @return FS_Entity Return an encrypted clone entity. + */ + private function _encrypt_entity( FS_Entity $entity ) { + $clone = clone $entity; + $props = get_object_vars( $entity ); + + foreach ( $props as $key => $val ) { + $clone->{$key} = $this->_encrypt( $val ); + } + + return $clone; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @param FS_Entity $entity + * + * @return FS_Entity Return an decrypted clone entity. + */ + private function _decrypt_entity( FS_Entity $entity ) { + $clone = clone $entity; + $props = get_object_vars( $entity ); + + foreach ( $props as $key => $val ) { + $clone->{$key} = $this->_decrypt( $val ); + } + + return $clone; + } + + /** + * Tries to activate account based on POST params. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.2 + */ + function _activate_account() { + if ( $this->is_registered() ) { + // Already activated. + return; + } + + self::_clean_admin_content_section(); + + if ( fs_request_is_action( 'activate' ) && fs_request_is_post() ) { +// check_admin_referer( 'activate_' . $this->_plugin->public_key ); + + // Verify matching plugin details. + if ( $this->_plugin->id != fs_request_get( 'plugin_id' ) || $this->_slug != fs_request_get( 'plugin_slug' ) ) { + return; + } + + $user = new FS_User(); + $user->id = fs_request_get( 'user_id' ); + $user->public_key = fs_request_get( 'user_public_key' ); + $user->secret_key = fs_request_get( 'user_secret_key' ); + $user->email = fs_request_get( 'user_email' ); + $user->first = fs_request_get( 'user_first' ); + $user->last = fs_request_get( 'user_last' ); + $user->is_verified = fs_request_get_bool( 'user_is_verified' ); + + $site = new FS_Site(); + $site->id = fs_request_get( 'install_id' ); + $site->public_key = fs_request_get( 'install_public_key' ); + $site->secret_key = fs_request_get( 'install_secret_key' ); + $site->plan->id = fs_request_get( 'plan_id' ); + $site->plan->title = fs_request_get( 'plan_title' ); + $site->plan->name = fs_request_get( 'plan_name' ); + + $plans = array(); + $plans_data = json_decode( urldecode( fs_request_get( 'plans' ) ) ); + foreach ( $plans_data as $p ) { + $plans[] = new FS_Plugin_Plan( $p ); + } + + $this->_set_account( $user, $site, $plans ); + + // Reload the page with the keys. + if ( fs_redirect( $this->_get_admin_page_url() ) ) { + exit(); + } + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @param string $email + * + * @return FS_User|bool + */ + static function _get_user_by_email( $email ) { + self::$_static_logger->entrance(); + + $email = trim( strtolower( $email ) ); + $users = self::get_all_users(); + if ( is_array( $users ) ) { + foreach ( $users as $u ) { + if ( $email === trim( strtolower( $u->email ) ) ) { + return $u; + } + } + } + + return false; + } + + #region Account (Loading, Updates & Activation) ------------------------------------------------------------------ + + /*** + * Load account information (user + site). + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + */ + private function _load_account() { + $this->_logger->entrance(); + + $this->do_action( 'before_account_load' ); + + $sites = self::get_all_sites(); + $users = self::get_all_users(); + $plans = self::get_all_plans(); + $licenses = self::get_all_licenses(); + + if ( $this->_logger->is_on() && is_admin() ) { + $this->_logger->log( 'sites = ' . var_export( $sites, true ) ); + $this->_logger->log( 'users = ' . var_export( $users, true ) ); + $this->_logger->log( 'plans = ' . var_export( $plans, true ) ); + $this->_logger->log( 'licenses = ' . var_export( $licenses, true ) ); + } + + $site = isset( $sites[ $this->_slug ] ) ? $sites[ $this->_slug ] : false; + + if ( is_object( $site ) && + is_numeric( $site->id ) && + is_numeric( $site->user_id ) && + is_object( $site->plan ) + ) { + // Load site. + $this->_site = clone $site; + $this->_site->plan = $this->_decrypt_entity( $this->_site->plan ); + + // Load relevant user. + $this->_user = clone $users[ $this->_site->user_id ]; + + // Load plans. + $this->_plans = $plans[ $this->_slug ]; + if ( ! is_array( $this->_plans ) || empty( $this->_plans ) ) { + $this->_sync_plans( true ); + } else { + for ( $i = 0, $len = count( $this->_plans ); $i < $len; $i ++ ) { + if ( $this->_plans[ $i ] instanceof FS_Plugin_Plan ) { + $this->_plans[ $i ] = $this->_decrypt_entity( $this->_plans[ $i ] ); + } else { + unset( $this->_plans[ $i ] ); + } + } + } + + // Load licenses. + $this->_licenses = array(); + if ( is_array( $licenses ) && + isset( $licenses[ $this->_slug ] ) && + isset( $licenses[ $this->_slug ][ $this->_user->id ] ) + ) { + $this->_licenses = $licenses[ $this->_slug ][ $this->_user->id ]; + } + + $this->_license = $this->_get_license_by_id( $this->_site->license_id ); + + if ( $this->_site->version != $this->get_plugin_version() ) { + // If stored install version is different than current installed plugin version, + // then update plugin version event. + $this->update_plugin_version_event(); + } + } + + $this->_register_account_hooks(); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @param FS_User $user + * @param FS_Site $site + * @param bool|array $plans + */ + private function _set_account( FS_User $user, FS_Site $site, $plans = false ) { + $site->slug = $this->_slug; + $site->user_id = $user->id; + + $this->_site = $site; + $this->_user = $user; + if ( false !== $plans ) { + $this->_plans = $plans; + } + + $this->send_install_update(); + + $this->_store_account(); + + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.4 + * + * @param array $override_with + * + * @return array + */ + function get_opt_in_params( $override_with = array() ) { + $this->_logger->entrance(); + + $current_user = self::_get_current_wp_user(); + + $params = array( + 'user_firstname' => $current_user->user_firstname, + 'user_lastname' => $current_user->user_lastname, + 'user_nickname' => $current_user->user_nicename, + 'user_email' => $current_user->user_email, + 'user_ip' => WP_FS__REMOTE_ADDR, + 'plugin_slug' => $this->_slug, + 'plugin_id' => $this->get_id(), + 'plugin_public_key' => $this->get_public_key(), + 'plugin_version' => $this->get_plugin_version(), + 'return_url' => wp_nonce_url( $this->_get_admin_page_url( + '', + array( 'fs_action' => $this->_slug . '_activate_new' ) + ), $this->_slug . '_activate_new' ), + 'account_url' => wp_nonce_url( $this->_get_admin_page_url( + 'account', + array( 'fs_action' => 'sync_user' ) + ), 'sync_user' ), + 'site_uid' => $this->get_anonymous_id(), + 'site_url' => get_site_url(), + 'site_name' => get_bloginfo( 'name' ), + 'platform_version' => get_bloginfo( 'version' ), + 'php_version' => phpversion(), + 'language' => get_bloginfo( 'language' ), + 'charset' => get_bloginfo( 'charset' ), + ); + + if ( WP_FS__SKIP_EMAIL_ACTIVATION && $this->has_secret_key() ) { + // Even though rand() is known for its security issues, + // the timestamp adds another layer of protection. + // It would be very hard for an attacker to get the secret key form here. + // Plus, this should never run in production since the secret should never + // be included in the production version. + $params['ts'] = WP_FS__SCRIPT_START_TIME; + $params['salt'] = md5( uniqid( rand() ) ); + $params['secure'] = md5( + $params['ts'] . + $params['salt'] . + $this->get_secret_key() + ); + } + + return array_merge( $params, $override_with ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.4 + * + * @param string|bool $email + * @param string|bool $first + * @param string|bool $last + * + * @return bool Is successful opt-in (or set to pending). + */ + function opt_in( $email = false, $first = false, $last = false ) { + $this->_logger->entrance(); + + if ( false === $email ) { + $current_user = self::_get_current_wp_user(); + $email = $current_user->user_email; + } + + $fs_user = Freemius::_get_user_by_email( $email ); + if ( is_object( $fs_user ) && ! $this->is_pending_activation() ) { + $this->install_with_current_user( false ); + + return true; + } + + $user_info = array(); + if ( ! empty( $email ) ) { + $user_info['user_email'] = $email; + } + if ( ! empty( $first ) ) { + $user_info['user_firstname'] = $first; + } + if ( ! empty( $last ) ) { + $user_info['user_lastname'] = $last; + } + + $params = $this->get_opt_in_params( $user_info ); + $params['format'] = 'json'; + + $url = WP_FS__ADDRESS . '/action/service/user/install/'; + if ( isset( $_COOKIE['XDEBUG_SESSION'] ) ) { + $url = add_query_arg( 'XDEBUG_SESSION', 'PHPSTORM', $url ); + } + + $response = wp_remote_post( $url, array( + 'method' => 'POST', + 'body' => $params, + 'timeout' => 15, + ) ); + + if ( $response instanceof WP_Error ) { + if ( 'https://' === substr( $url, 0, 8 ) && + isset( $response->errors ) && + isset( $response->errors['http_request_failed'] ) && + false !== strpos( $response->errors['http_request_failed'][0], 'sslv3 alert handshake' ) + ) { + // Failed due to old version of cURL or Open SSL (SSLv3 is not supported by CloudFlare). + $url = 'http://' . substr( $url, 8 ); + + $response = wp_remote_post( $url, array( + 'method' => 'POST', + 'body' => $params, + 'timeout' => 15, + ) ); + } + + if ( $response instanceof WP_Error ) { + return false; + } + } + + if ( is_wp_error( $response ) ) { + return false; + } + + $decoded = @json_decode( $response['body'] ); + + if ( empty( $decoded ) ) { + return false; + } + + if ( isset( $decoded->error ) ) { + return false; + } else if ( isset( $decoded->pending_activation ) && $decoded->pending_activation ) { + // Pending activation, add message. + $this->set_pending_confirmation( false, false ); + + return true; + } else if ( isset( $decoded->install_secret_key ) ) { + $this->install_with_new_user( + $decoded->user_id, + $decoded->user_public_key, + $decoded->user_secret_key, + $decoded->install_id, + $decoded->install_public_key, + $decoded->install_secret_key, + false + ); + + return true; + } + + return false; + } + + /** + * Set user and site identities. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param FS_User $user + * @param FS_Site $site + * @param bool $redirect + * + * @return bool False if account already set. + */ + function setup_account( FS_User $user, FS_Site $site, $redirect = true ) { + $this->_user = $user; + $this->_site = $site; + + $this->_sync_plans(); + + $this->_enrich_site_plan( false ); + + $this->_set_account( $user, $site ); + + if ( $this->is_trial() ) { + // Store trial plan information. + $this->_enrich_site_trial_plan( true ); + } + + // If Freemius was OFF before, turn it on. + $this->turn_on(); + + $this->do_action( 'after_account_connection', $user, $site ); + + if ( is_numeric( $site->license_id ) ) { + $this->_license = $this->_get_license_by_id( $site->license_id ); + } + + if ( $this->is_pending_activation() ) { + // Remove pending activation sticky notice (if still exist). + $this->_admin_notices->remove_sticky( 'activation_pending' ); + + // Remove plugin from pending activation mode. + unset( $this->_storage->is_pending_activation ); + + if ( ! $this->is_paying() ) { + $this->_admin_notices->add_sticky( + sprintf( __fs( 'plugin-x-activation-message', $this->_slug ), '<b>' . $this->get_plugin_name() . '</b>' ), + 'activation_complete' + ); + } + } + + if ( $this->is_paying() && ! $this->is_premium() ) { + $this->_admin_notices->add_sticky( + sprintf( + __fs( 'activation-with-plan-x-message', $this->_slug ), + $this->_site->plan->title + ) . ' ' . $this->_get_latest_download_link( sprintf( + __fs( 'download-latest-x-version', $this->_slug ), + $this->_site->plan->title + ) ), + 'plan_upgraded', + __fs( 'yee-haw', $this->_slug ) . '!' + ); + } + + $plugin_id = fs_request_get( 'plugin_id', false ); + + // Store activation time ONLY for plugins (not add-ons). + if ( ! is_numeric( $plugin_id ) || ( $plugin_id == $this->_plugin->id ) ) { + $this->_storage->activation_timestamp = WP_FS__SCRIPT_START_TIME; + } + + if ( is_numeric( $plugin_id ) ) { + if ( $plugin_id != $this->_plugin->id ) { + // Add-on was installed - sync license right after install. + if ( $redirect && fs_redirect( fs_nonce_url( $this->_get_admin_page_url( + 'account', + array( + 'fs_action' => $this->_slug . '_sync_license', + 'plugin_id' => $plugin_id + ) + ), $this->_slug . '_sync_license' ) ) + ) { + exit(); + } + + } + } else { + // Reload the page with the keys. + if ( $redirect && fs_redirect( $this->get_after_activation_url( 'after_connect_url' ) ) ) { + exit(); + } + } + } + + /** + * Install plugin with new user information after approval. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + */ + function _install_with_new_user() { + $this->_logger->entrance(); + + if ( $this->is_registered() ) { + return; + } + + if ( fs_request_is_action( $this->_slug . '_activate_new' ) ) { +// check_admin_referer( $this->_slug . '_activate_new' ); + + $this->_admin_notices->remove_sticky( 'connect_account' ); + + if ( fs_request_has( 'user_secret_key' ) ) { + $this->install_with_new_user( + fs_request_get( 'user_id' ), + fs_request_get( 'user_public_key' ), + fs_request_get( 'user_secret_key' ), + fs_request_get( 'install_id' ), + fs_request_get( 'install_public_key' ), + fs_request_get( 'install_secret_key' ) + ); + } else if ( fs_request_has( 'pending_activation' ) ) { + $this->set_pending_confirmation( fs_request_get( 'user_email' ), true ); + } + } + } + + /** + * Install plugin with new user. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.4 + * + * @param number $user_id + * @param string $user_public_key + * @param string $user_secret_key + * @param number $install_id + * @param string $install_public_key + * @param string $install_secret_key + * @param bool $redirect + */ + private function install_with_new_user( + $user_id, + $user_public_key, + $user_secret_key, + $install_id, + $install_public_key, + $install_secret_key, + $redirect = true + ) { + $user = new FS_User(); + $user->id = $user_id; + $user->public_key = $user_public_key; + $user->secret_key = $user_secret_key; + + $this->_user = $user; + $user_result = $this->get_api_user_scope()->get(); + $user = new FS_User( $user_result ); + $this->_user = $user; + + $site = new FS_Site(); + $site->id = $install_id; + $site->public_key = $install_public_key; + $site->secret_key = $install_secret_key; + + $this->_site = $site; + $site_result = $this->get_api_site_scope()->get(); + $site = new FS_Site( $site_result ); + $this->_site = $site; + + $this->setup_account( $this->_user, $this->_site, $redirect ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.4 + * + * @param bool $email + * @param bool $redirect + */ + private function set_pending_confirmation( $email = false, $redirect = true ) { + // Install must be activated via email since + // user with the same email already exist. + $this->_storage->is_pending_activation = true; + $this->_add_pending_activation_notice( $email ); + + // Reload the page with with pending activation message. + if ( $redirect && fs_redirect( $this->get_after_activation_url( 'after_pending_connect_url' ) ) ) { + exit(); + } + } + + /** + * Install plugin with current logged WP user info. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + */ + function _install_with_current_user() { + $this->_logger->entrance(); + + if ( $this->is_registered() ) { + return; + } + + if ( fs_request_is_action( $this->_slug . '_activate_existing' ) && fs_request_is_post() ) { +// check_admin_referer( 'activate_existing_' . $this->_plugin->public_key ); + + $this->install_with_current_user(); + } + } + + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7.4 + * + * @param bool $redirect + */ + private function install_with_current_user( $redirect = true ) { + $this->_admin_notices->remove_sticky( 'connect_account' ); + + // Get current logged WP user. + $current_user = self::_get_current_wp_user(); + + // Find the relevant FS user by the email. + $user = self::_get_user_by_email( $current_user->user_email ); + + // We have to set the user before getting user scope API handler. + $this->_user = $user; + + // Install the plugin. + $install = $this->get_api_user_scope()->call( + "/plugins/{$this->get_id()}/installs.json", + 'post', + $this->get_install_data_for_api( array( + 'uid' => $this->get_anonymous_id(), + ), false, false ) + ); + + if ( isset( $install->error ) ) { + $this->_admin_notices->add( + sprintf( __fs( 'could-not-activate-x', $this->_slug ), $this->get_plugin_name() ) . ' ' . + __fs( 'contact-us-with-error-message', $this->_slug ) . ' ' . '<b>' . $install->error->message . '</b>', + __fs( 'oops', $this->_slug ) . '...', + 'error' + ); + + return; + } + + $site = new FS_Site( $install ); + $this->_site = $site; +// $this->_enrich_site_plan( false ); + +// $this->_set_account( $user, $site ); +// $this->_sync_plans(); + + $this->setup_account( $this->_user, $this->_site, $redirect ); + } + + /** + * Tries to activate add-on account based on parent plugin info. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param Freemius $parent_fs + */ + private function _activate_addon_account( Freemius $parent_fs ) { + if ( $this->is_registered() ) { + // Already activated. + return; + } + + // Activate add-on with parent plugin credentials. + $addon_install = $parent_fs->get_api_site_scope()->call( + "/addons/{$this->_plugin->id}/installs.json", + 'post', + $this->get_install_data_for_api( array( + 'uid' => $this->get_anonymous_id(), + ), false, false ) + ); + + if ( isset( $addon_install->error ) ) { + $this->_admin_notices->add( + sprintf( __fs( 'could-not-activate-x', $this->_slug ), $this->get_plugin_name() ) . ' ' . + __fs( 'contact-us-with-error-message', $this->_slug ) . ' ' . '<b>' . $addon_install->error->message . '</b>', + __fs( 'oops', $this->_slug ) . '...', + 'error' + ); + + return; + } + + // First of all, set site info - otherwise we won't + // be able to invoke API calls. + $this->_site = new FS_Site( $addon_install ); + + // Sync add-on plans. + $this->_sync_plans(); + + // Get site's current plan. + $this->_site->plan = $this->_get_plan_by_id( $this->_site->plan->id ); + + // Get user information based on parent's plugin. + $user = $parent_fs->get_user(); + + $this->_set_account( $user, $this->_site ); + + // Sync licenses. + $this->_sync_licenses(); + + // Try to activate premium license. + $this->_activate_license( true ); + } + + #endregion ------------------------------------------------------------------ + + #region Admin Menu Items ------------------------------------------------------------------ + + private $_menu_items = array(); + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @return string + */ + function get_menu_slug() { + return $this->_menu->get_slug(); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + */ + function _prepare_admin_menu() { +// if ( ! $this->is_on() ) { +// return; +// } + + if ( ! $this->has_api_connectivity() && ! $this->enable_anonymous() ) { + $this->_menu->remove_menu_item(); + } else { + $this->add_submenu_items(); + $this->add_menu_action(); + } + } + + /** + * Admin dashboard menu items modifications. + * + * NOTE: admin_menu action executed before admin_init. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + */ + private function add_menu_action() { + if ( $this->is_activation_mode() ) { + $this->override_plugin_menu_with_activation(); + } else { + // If not registered try to install user. + if ( ! $this->is_registered() && + fs_request_is_action( $this->_slug . '_activate_new' ) + ) { + $this->_install_with_new_user(); + } + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @return string + */ + function _redirect_on_clicked_menu_link() { + $this->_logger->entrance(); + + $page = strtolower( isset( $_REQUEST['page'] ) ? $_REQUEST['page'] : '' ); + + $this->_logger->log( 'page = ' . $page ); + + foreach ( $this->_menu_items as $priority => $items ) { + foreach ( $items as $item ) { + if ( isset( $item['url'] ) ) { + if ( $page === strtolower( $item['menu_slug'] ) ) { + $this->_logger->log( 'Redirecting to ' . $item['url'] ); + + fs_redirect( $item['url'] ); + } + } + } + } + } + + /** + * Remove plugin's all admin menu items & pages, and replace with activation page. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + */ + private function override_plugin_menu_with_activation() { + $this->_logger->entrance(); + + $hook = false; + + if ( $this->_menu->is_top_level() ) { + $hook = $this->_menu->override_menu_item( array( &$this, '_connect_page_render' ) ); + + if ( false === $hook ) { + // Create new menu item just for the opt-in. + $hook = add_menu_page( + $this->get_plugin_name(), + $this->get_plugin_name(), + 'manage_options', + $this->_menu->get_slug(), + array( &$this, '_connect_page_render' ) + ); + } + } else { + $menus = array( $this->_menu->get_parent_slug() ); + + if ( $this->_menu->is_override_exact() ) { + // Make sure the current page is matching the activation page. + $activation_url = strtolower( $this->get_activation_url() ); + $request_url = strtolower( $_SERVER['REQUEST_URI'] ); + + if ( parse_url( $activation_url, PHP_URL_PATH ) !== parse_url( $request_url, PHP_URL_PATH ) ) { + // Different path - DO NOT OVERRIDE PAGE. + return; + } + + $activation_url_params = array(); + parse_str( parse_url( $activation_url, PHP_URL_QUERY ), $activation_url_params ); + + $request_url_params = array(); + parse_str( parse_url( $request_url, PHP_URL_QUERY ), $request_url_params ); + + + foreach ( $activation_url_params as $key => $val ) { + if ( ! isset( $request_url_params[ $key ] ) || $val != $request_url_params[ $key ] ) { + // Not matching query string - DO NOT OVERRIDE PAGE. + return; + } + } + } + + foreach ( $menus as $parent_slug ) { + $hook = $this->_menu->override_submenu_action( + $parent_slug, + $this->_menu->get_raw_slug(), + array( &$this, '_connect_page_render' ) + ); + + if ( false !== $hook ) { + // Found plugin's submenu item. + break; + } + } + } + + if ( $this->_menu->is_activation_page() ) { + // Clean admin page from distracting content. + self::_clean_admin_content_section(); + } + + if ( false !== $hook ) { + if ( fs_request_is_action( $this->_slug . '_activate_existing' ) ) { + add_action( "load-$hook", array( &$this, '_install_with_current_user' ) ); + } else if ( fs_request_is_action( $this->_slug . '_activate_new' ) ) { + add_action( "load-$hook", array( &$this, '_install_with_new_user' ) ); + } + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.0 + * + * @return string + */ + private function get_top_level_menu_slug() { + return ( $this->is_addon() ? + $this->get_parent_instance()->_menu->get_top_level_menu_slug() : + $this->_menu->get_top_level_menu_slug() ); + } + + /** + * Add default Freemius menu items. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.0 + */ + private function add_submenu_items() { + $this->_logger->entrance(); + + $this->do_action( 'before_admin_menu_init' ); + + if ( ! $this->is_addon() ) { + if ( ! $this->is_activation_mode() ) { + if ( $this->is_registered() ) { + // Add user account page. + $this->add_submenu_item( + __fs( 'account', $this->_slug ), + array( &$this, '_account_page_render' ), + $this->get_plugin_name() . ' – ' . __fs( 'account', $this->_slug ), + 'manage_options', + 'account', + array( &$this, '_account_page_load' ), + WP_FS__DEFAULT_PRIORITY, + $this->_menu->is_submenu_item_visible( 'account' ) + ); + } + + // Add contact page. + $this->add_submenu_item( + __fs( 'contact-us', $this->_slug ), + array( &$this, '_contact_page_render' ), + $this->get_plugin_name() . ' – ' . __fs( 'contact-us', $this->_slug ), + 'manage_options', + 'contact', + 'Freemius::_clean_admin_content_section', + WP_FS__DEFAULT_PRIORITY, + $this->_menu->is_submenu_item_visible( 'contact' ) + ); + + if ( $this->has_addons() ) { + $this->add_submenu_item( + __fs( 'add-ons', $this->_slug ), + array( &$this, '_addons_page_render' ), + $this->get_plugin_name() . ' – ' . __fs( 'add-ons', $this->_slug ), + 'manage_options', + 'addons', + array( &$this, '_addons_page_load' ), + WP_FS__LOWEST_PRIORITY - 1, + $this->_menu->is_submenu_item_visible( 'addons' ) + ); + } + + $show_pricing = ( $this->has_paid_plan() && $this->_menu->is_submenu_item_visible( 'pricing' ) ); + // If user don't have paid plans, add pricing page + // to support add-ons checkout but don't add the submenu item. + // || (isset( $_GET['page'] ) && $this->_menu->get_slug( 'pricing' ) == $_GET['page']); + + // Add upgrade/pricing page. + $this->add_submenu_item( + ( $this->is_paying() ? __fs( 'pricing', $this->_slug ) : __fs( 'upgrade', $this->_slug ) . ' ➤' ), + array( &$this, '_pricing_page_render' ), + $this->get_plugin_name() . ' – ' . __fs( 'pricing', $this->_slug ), + 'manage_options', + 'pricing', + 'Freemius::_clean_admin_content_section', + WP_FS__LOWEST_PRIORITY, + $show_pricing + ); + } + } + + + if ( 0 < count( $this->_menu_items ) ) { + if ( ! $this->_menu->is_top_level() ) { + fs_enqueue_local_style( 'fs_common', '/admin/common.css' ); + + // Append submenu items right after the plugin's submenu item. + $this->order_sub_submenu_items(); + } else { + // Append submenu items. + $this->embed_submenu_items(); + } + } + } + + /** + * Moved the actual submenu item additions to a separated function, + * in order to support sub-submenu items when the plugin's settings + * only have a submenu and not top-level menu item. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.4 + */ + private function embed_submenu_items() { + $item_template = $this->_menu->is_top_level() ? + '<span class="fs-submenu-item">%s</span>' : + '<span class="fs-submenu-item fs-sub">%s</span>'; + + ksort( $this->_menu_items ); + + foreach ( $this->_menu_items as $priority => $items ) { + foreach ( $items as $item ) { + if ( ! isset( $item['url'] ) ) { + $hook = add_submenu_page( + $item['show_submenu'] ? + $this->get_top_level_menu_slug() : + null, + $item['page_title'], + sprintf( $item_template, $item['menu_title'] ), + $item['capability'], + $item['menu_slug'], + $item['render_function'] + ); + + if ( false !== $item['before_render_function'] ) { + add_action( "load-$hook", $item['before_render_function'] ); + } + } else { + add_submenu_page( + $this->get_top_level_menu_slug(), + $item['page_title'], + sprintf( $item_template, $item['menu_title'] ), + $item['capability'], + $item['menu_slug'], + array( $this, '' ) + ); + } + } + } + } + + /** + * Re-order the submenu items so all Freemius added new submenu items + * are added right after the plugin's settings submenu item. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.4 + */ + private function order_sub_submenu_items() { + global $submenu; + + $top_level_menu = &$submenu[ $this->_menu->get_top_level_menu_slug() ]; + + $all_submenu_items_after = array(); + + $found_submenu_item = false; + + foreach ( $top_level_menu as $submenu_id => $meta ) { + if ( $found_submenu_item ) { + // Remove all submenu items after the plugin's submenu item. + $all_submenu_items_after[] = $meta; + unset( $top_level_menu[ $submenu_id ] ); + } + + if ( $this->_menu->get_raw_slug() === $meta[2] ) { + // Found the submenu item, put all below. + $found_submenu_item = true; + continue; + } + } + + // Embed all plugin's new submenu items. + $this->embed_submenu_items(); + + // Start with specially high number to make sure it's appended. + $i = max( 10000, max( array_keys( $top_level_menu ) ) + 1 ); + foreach ( $all_submenu_items_after as $meta ) { + $top_level_menu[ $i ] = $meta; + $i ++; + } + + // Sort submenu items. + ksort( $top_level_menu ); + } + + /** + * Displays the Support Forum link when enabled. + * + * Can be filtered like so: + * + * function _fs_show_support_menu( $is_visible, $menu_id ) { + * if ( 'support' === $menu_id ) { + * return _fs->is_registered(); + * } + * return $is_visible; + * } + * _fs()->add_filter('is_submenu_visible', '_fs_show_support_menu', 10, 2); + * + */ + function _add_default_submenu_items() { + if ( ! $this->is_on() ) { + return; + } + + if ( ! $this->is_activation_mode() ) { + if ( $this->_menu->is_submenu_item_visible( 'support' ) ) { + $this->add_submenu_link_item( + $this->apply_filters( 'support_forum_submenu', __fs( 'support-forum', $this->_slug ) ), + $this->apply_filters( 'support_forum_url', 'https://wordpress.org/support/plugin/' . $this->_slug ), + 'wp-support-forum', + 'read', + 50 + ); + } + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @param string $menu_title + * @param callable $render_function + * @param bool|string $page_title + * @param string $capability + * @param bool|string $menu_slug + * @param bool|callable $before_render_function + * @param int $priority + * @param bool $show_submenu + */ + function add_submenu_item( + $menu_title, + $render_function, + $page_title = false, + $capability = 'manage_options', + $menu_slug = false, + $before_render_function = false, + $priority = WP_FS__DEFAULT_PRIORITY, + $show_submenu = true + ) { + $this->_logger->entrance( 'Title = ' . $menu_title ); + + if ( $this->is_addon() ) { + $parent_fs = $this->get_parent_instance(); + + if ( is_object( $parent_fs ) ) { + $parent_fs->add_submenu_item( + $menu_title, + $render_function, + $page_title, + $capability, + $menu_slug, + $before_render_function, + $priority, + $show_submenu + ); + + return; + } + } + + if ( ! isset( $this->_menu_items[ $priority ] ) ) { + $this->_menu_items[ $priority ] = array(); + } + + $this->_menu_items[ $priority ][] = array( + 'page_title' => is_string( $page_title ) ? $page_title : $menu_title, + 'menu_title' => $menu_title, + 'capability' => $capability, + 'menu_slug' => $this->_menu->get_slug( is_string( $menu_slug ) ? $menu_slug : strtolower( $menu_title ) ), + 'render_function' => $render_function, + 'before_render_function' => $before_render_function, + 'show_submenu' => $show_submenu, + ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @param string $menu_title + * @param string $url + * @param bool $menu_slug + * @param string $capability + * @param int $priority + * + */ + function add_submenu_link_item( + $menu_title, + $url, + $menu_slug = false, + $capability = 'read', + $priority = WP_FS__DEFAULT_PRIORITY + ) { + $this->_logger->entrance( 'Title = ' . $menu_title . '; Url = ' . $url ); + + if ( $this->is_addon() ) { + $parent_fs = $this->get_parent_instance(); + + if ( is_object( $parent_fs ) ) { + $parent_fs->add_submenu_link_item( + $menu_title, + $url, + $menu_slug, + $capability, + $priority + ); + + return; + } + } + + if ( ! isset( $this->_menu_items[ $priority ] ) ) { + $this->_menu_items[ $priority ] = array(); + } + + $this->_menu_items[ $priority ][] = array( + 'menu_title' => $menu_title, + 'capability' => $capability, + 'menu_slug' => $this->_menu->get_slug( is_string( $menu_slug ) ? $menu_slug : strtolower( $menu_title ) ), + 'url' => $url, + 'page_title' => $menu_title, + 'render_function' => 'fs_dummy', + 'before_render_function' => '', + ); + } + + #endregion ------------------------------------------------------------------ + + /* Actions / Hooks / Filters + ------------------------------------------------------------------------------------------------------------------*/ + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7 + * + * @param string $tag + * + * @return string + */ + private function get_action_tag( $tag ) { + return 'fs_' . $tag . '_' . $this->_slug; + } + + /** + * Do action, specific for the current context plugin. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @param string $tag The name of the action to be executed. + * @param mixed $arg,... Optional. Additional arguments which are passed on to the + * functions hooked to the action. Default empty. + * + * @uses do_action() + */ + function do_action( $tag, $arg = '' ) { + $this->_logger->entrance( $tag ); + + $args = func_get_args(); + + call_user_func_array( 'do_action', array_merge( + array( $this->get_action_tag( $tag ) ), + array_slice( $args, 1 ) ) + ); + } + + /** + * Add action, specific for the current context plugin. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @param string $tag + * @param callable $function_to_add + * @param int $priority + * @param int $accepted_args + * + * @uses add_action() + */ + function add_action( $tag, $function_to_add, $priority = WP_FS__DEFAULT_PRIORITY, $accepted_args = 1 ) { + $this->_logger->entrance( $tag ); + + add_action( $this->get_action_tag( $tag ), $function_to_add, $priority, $accepted_args ); + } + + /** + * Apply filter, specific for the current context plugin. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param string $tag The name of the filter hook. + * @param mixed $value The value on which the filters hooked to `$tag` are applied on. + * + * @return mixed The filtered value after all hooked functions are applied to it. + * + * @uses apply_filters() + */ + function apply_filters( $tag, $value ) { + $this->_logger->entrance( $tag ); + + $args = func_get_args(); + array_unshift( $args, $this->_slug ); + + return call_user_func_array( 'fs_apply_filter', $args ); + } + + /** + * Add filter, specific for the current context plugin. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param string $tag + * @param callable $function_to_add + * @param int $priority + * @param int $accepted_args + * + * @uses add_filter() + */ + function add_filter( $tag, $function_to_add, $priority = WP_FS__DEFAULT_PRIORITY, $accepted_args = 1 ) { + $this->_logger->entrance( $tag ); + + add_filter( $this->get_action_tag( $tag ), $function_to_add, $priority, $accepted_args ); + } + + /** + * Check if has filter. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.4 + * + * @param string $tag + * @param callable|bool $function_to_check Optional. The callback to check for. Default false. + * + * @return false|int + * + * @uses has_filter() + */ + function has_filter( $tag, $function_to_check = false ) { + $this->_logger->entrance( $tag ); + + return has_filter( $this->get_action_tag( $tag ), $function_to_check ); + } + + /** + * Override default i18n text phrases. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @param string[] string $key_value + * + * @uses fs_override_i18n() + */ + function override_i18n( $key_value ) { + fs_override_i18n( $key_value, $this->_slug ); + } + + /* Account Page + ------------------------------------------------------------------------------------------------------------------*/ + /** + * Update site information. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @param bool $store Flush to Database if true. + */ + private function _store_site( $store = true ) { + $this->_logger->entrance(); + + $encrypted_site = clone $this->_site; + $encrypted_site->plan = $this->_encrypt_entity( $this->_site->plan ); + + $sites = self::get_all_sites(); + $sites[ $this->_slug ] = $encrypted_site; + self::$_accounts->set_option( 'sites', $sites, $store ); + } + + /** + * Update plugin's plans information. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.2 + * + * @param bool $store Flush to Database if true. + */ + private function _store_plans( $store = true ) { + $this->_logger->entrance(); + + $plans = self::get_all_plans(); + + // Copy plans. + $encrypted_plans = array(); + for ( $i = 0, $len = count( $this->_plans ); $i < $len; $i ++ ) { + $encrypted_plans[] = $this->_encrypt_entity( $this->_plans[ $i ] ); + } + + $plans[ $this->_slug ] = $encrypted_plans; + self::$_accounts->set_option( 'plans', $plans, $store ); + } + + /** + * Update user's plugin licenses. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @param bool $store + * @param string|bool $plugin_slug + * @param FS_Plugin_License[] $licenses + */ + private function _store_licenses( $store = true, $plugin_slug = false, $licenses = array() ) { + $this->_logger->entrance(); + + $all_licenses = self::get_all_licenses(); + + if ( ! is_string( $plugin_slug ) ) { + $plugin_slug = $this->_slug; + $licenses = $this->_licenses; + } + + if ( ! isset( $all_licenses[ $plugin_slug ] ) ) { + $all_licenses[ $plugin_slug ] = array(); + } + + $all_licenses[ $plugin_slug ][ $this->_user->id ] = $licenses; + + self::$_accounts->set_option( 'licenses', $all_licenses, $store ); + } + + /** + * Update user information. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + * + * @param bool $store Flush to Database if true. + */ + private function _store_user( $store = true ) { + $this->_logger->entrance(); + + $users = self::get_all_users(); + $users[ $this->_user->id ] = $this->_user; + self::$_accounts->set_option( 'users', $users, $store ); + } + + /** + * Update new updates information. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param FS_Plugin_Tag|null $update + * @param bool $store Flush to Database if true. + * @param bool|number $plugin_id + */ + private function _store_update( $update, $store = true, $plugin_id = false ) { + $this->_logger->entrance(); + + if ( $update instanceof FS_Plugin_Tag ) { + $update->updated = time(); + } + + if ( ! is_numeric( $plugin_id ) ) { + $plugin_id = $this->_plugin->id; + } + + $updates = self::get_all_updates(); + $updates[ $plugin_id ] = $update; + self::$_accounts->set_option( 'updates', $updates, $store ); + } + + /** + * Update new updates information. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param FS_Plugin[] $plugin_addons + * @param bool $store Flush to Database if true. + */ + private function _store_addons( $plugin_addons, $store = true ) { + $this->_logger->entrance(); + + $addons = self::get_all_addons(); + $addons[ $this->_plugin->id ] = $plugin_addons; + self::$_accounts->set_option( 'addons', $addons, $store ); + } + + /** + * Delete plugin's associated add-ons. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.8 + * + * @param bool $store + * + * @return bool + */ + private function _delete_account_addons( $store = true ) { + $all_addons = self::get_all_account_addons(); + + if ( ! isset( $all_addons[ $this->_plugin->id ] ) ) { + return false; + } + + unset( $all_addons[ $this->_plugin->id ] ); + + self::$_accounts->set_option( 'account_addons', $all_addons, $store ); + + return true; + } + + /** + * Update account add-ons list. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param FS_Plugin[] $addons + * @param bool $store Flush to Database if true. + */ + private function _store_account_addons( $addons, $store = true ) { + $this->_logger->entrance(); + + $all_addons = self::get_all_account_addons(); + $all_addons[ $this->_plugin->id ] = $addons; + self::$_accounts->set_option( 'account_addons', $all_addons, $store ); + } + + /** + * Store account params in the Database. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.1 + */ + private function _store_account() { + $this->_logger->entrance(); + + $this->_store_site( false ); + $this->_store_user( false ); + $this->_store_plans( false ); + $this->_store_licenses( false ); + + self::$_accounts->store(); + } + + /** + * Sync user's information. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * @uses FS_Api + */ + private function _handle_account_user_sync() { + $this->_logger->entrance(); + + $api = $this->get_api_user_scope(); + + // Get user's information. + $user = $api->get( '/', true ); + + if ( isset( $user->id ) ) { + $this->_user->first = $user->first; + $this->_user->last = $user->last; + $this->_user->email = $user->email; + + $is_menu_item_account_visible = $this->_menu->is_submenu_item_visible( 'account' ); + + if ( $user->is_verified && + ( ! isset( $this->_user->is_verified ) || false === $this->_user->is_verified ) + ) { + $this->_user->is_verified = true; + + $this->do_action( 'account_email_verified', $user->email ); + + $this->_admin_notices->add( + __fs( 'email-verified-message', $this->_slug ), + __fs( 'right-on', $this->_slug ) . '!', + 'success', + // Make admin sticky if account menu item is invisible, + // since the page will be auto redirected to the plugin's + // main settings page, and the non-sticky message + // will disappear. + ! $is_menu_item_account_visible, + false, + 'email_verified' + ); + } + + // Flush user details to DB. + $this->_store_user(); + + $this->do_action( 'after_account_user_sync', $user ); + + /** + * If account menu item is hidden, redirect to plugin's main settings page. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @link https://github.com/Freemius/wordpress-sdk/issues/6 + */ + if ( ! $is_menu_item_account_visible ) { + if ( fs_redirect( $this->_get_admin_page_url() ) ) { + exit(); + } + } + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * @uses FS_Api + * + * @param bool $flush + * + * @return object|\FS_Site + */ + private function _fetch_site( $flush = false ) { + $this->_logger->entrance(); + $api = $this->get_api_site_scope(); + + $site = $api->get( '/', $flush ); + + if ( ! isset( $site->error ) ) { + $site = new FS_Site( $site ); + $site->slug = $this->_slug; + $site->version = $this->get_plugin_version(); + } + + return $site; + } + + /** + * @param bool $store + * + * @return FS_Plugin_Plan|object|false + */ + private function _enrich_site_plan( $store = true ) { + // Try to load plan from local cache. + $plan = $this->_get_plan_by_id( $this->_site->plan->id ); + + if ( false === $plan ) { + $plan = $this->_fetch_site_plan(); + } + + if ( $plan instanceof FS_Plugin_Plan ) { + $this->_update_plan( $plan, $store ); + } + + return $plan; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * @uses FS_Api + * + * @param bool $store + * + * @return FS_Plugin_Plan|object|false + */ + private function _enrich_site_trial_plan( $store = true ) { + // Try to load plan from local cache. + $trial_plan = $this->_get_plan_by_id( $this->_site->trial_plan_id ); + + if ( false === $trial_plan ) { + $trial_plan = $this->_fetch_site_plan( $this->_site->trial_plan_id ); + } + + if ( $trial_plan instanceof FS_Plugin_Plan ) { + $this->_storage->store( 'trial_plan', $trial_plan, $store ); + } + + return $trial_plan; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * @uses FS_Api + * + * @param number|bool $license_id + * + * @return FS_Subscription|object|bool + */ + private function _fetch_site_license_subscription( $license_id = false ) { + $this->_logger->entrance(); + $api = $this->get_api_site_scope(); + + if ( ! is_numeric( $license_id ) ) { + $license_id = $this->_license->id; + } + + $result = $api->get( "/licenses/{$license_id}/subscriptions.json", true ); + + return ! isset( $result->error ) ? + ( ( is_array( $result->subscriptions ) && 0 < count( $result->subscriptions ) ) ? + new FS_Subscription( $result->subscriptions[0] ) : + false + ) : + $result; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * @uses FS_Api + * + * @param number|bool $plan_id + * + * @return FS_Plugin_Plan|object + */ + private function _fetch_site_plan( $plan_id = false ) { + $this->_logger->entrance(); + $api = $this->get_api_site_scope(); + + if ( ! is_numeric( $plan_id ) ) { + $plan_id = $this->_site->plan->id; + } + + $plan = $api->get( "/plans/{$plan_id}.json", true ); + + return ! isset( $plan->error ) ? new FS_Plugin_Plan( $plan ) : $plan; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * @uses FS_Api + * + * @return FS_Plugin_Plan[]|object + */ + private function _fetch_plugin_plans() { + $this->_logger->entrance(); + $api = $this->get_api_site_scope(); + + $result = $api->get( '/plans.json', true ); + + if ( ! $this->is_api_error( $result ) ) { + for ( $i = 0, $len = count( $result->plans ); $i < $len; $i ++ ) { + $result->plans[ $i ] = new FS_Plugin_Plan( $result->plans[ $i ] ); + } + + $result = $result->plans; + } + + return $result; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * @uses FS_Api + * + * @param number|bool $plugin_id + * + * @return FS_Plugin_License[]|object + */ + private function _fetch_licenses( $plugin_id = false ) { + $this->_logger->entrance(); + + $api = $this->get_api_user_scope(); + + if ( ! is_numeric( $plugin_id ) ) { + $plugin_id = $this->_plugin->id; + } + + $result = $api->get( "/plugins/{$plugin_id}/licenses.json", true ); + + if ( ! isset( $result->error ) ) { + for ( $i = 0, $len = count( $result->licenses ); $i < $len; $i ++ ) { + $result->licenses[ $i ] = new FS_Plugin_License( $result->licenses[ $i ] ); + } + + $result = $result->licenses; + } + + return $result; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param FS_Plugin_Plan $plan + * @param bool $store + */ + private function _update_plan( $plan, $store = false ) { + $this->_logger->entrance(); + + $this->_site->plan = $plan; + $this->_store_site( $store ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @param FS_Plugin_License[] $licenses + * @param string|bool $plugin_slug + */ + private function _update_licenses( $licenses, $plugin_slug = false ) { + $this->_logger->entrance(); + + if ( is_array( $licenses ) ) { + for ( $i = 0, $len = count( $licenses ); $i < $len; $i ++ ) { + $licenses[ $i ]->updated = time(); + } + } + + if ( ! is_string( $plugin_slug ) ) { + $this->_licenses = $licenses; + } + + $this->_store_licenses( true, $plugin_slug, $licenses ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param bool|number $plugin_id + * @param bool $flush Since 1.1.7.3 + * + * @return object|false New plugin tag info if exist. + */ + private function _fetch_newer_version( $plugin_id = false, $flush = true ) { + $latest_tag = $this->_fetch_latest_version( $plugin_id, $flush ); + + if ( ! is_object( $latest_tag ) ) { + return false; + } + + // Check if version is actually newer. + $has_new_version = + // If it's an non-installed add-on then always return latest. + ( $this->_is_addon_id( $plugin_id ) && ! $this->is_addon_activated( $plugin_id ) ) || + // Compare versions. + version_compare( $this->get_plugin_version(), $latest_tag->version, '<' ); + + $this->_logger->departure( $has_new_version ? 'Found newer plugin version ' . $latest_tag->version : 'No new version' ); + + return $has_new_version ? $latest_tag : false; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @param bool|number $plugin_id + * @param bool $flush Since 1.1.7.3 + * + * @return bool|FS_Plugin_Tag + */ + function get_update( $plugin_id = false, $flush = true ) { + $this->_logger->entrance(); + + if ( ! is_numeric( $plugin_id ) ) { + $plugin_id = $this->_plugin->id; + } + + $this->_check_updates( true, $plugin_id, $flush ); + $updates = $this->get_all_updates(); + + return isset( $updates[ $plugin_id ] ) && is_object( $updates[ $plugin_id ] ) ? $updates[ $plugin_id ] : false; + } + + /** + * Check if site assigned with active license. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + */ + function has_active_license() { + return ( + is_object( $this->_license ) && + is_numeric( $this->_license->id ) && + ! $this->_license->is_expired() + ); + } + + /** + * Check if site assigned with license with enabled features. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return bool + */ + function has_features_enabled_license() { + return ( + is_object( $this->_license ) && + is_numeric( $this->_license->id ) && + $this->_license->is_features_enabled() + ); + } + + /** + * Check if user is a trial or have feature enabled license. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7 + * + * @return bool + */ + function can_use_premium_code() { + return $this->is_trial() || $this->has_features_enabled_license(); + } + + /** + * Sync site's plan. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * + * @uses FS_Api + * + * @param bool $background Hints the method if it's a background sync. If false, it means that was initiated by + * the admin. + */ + private function _sync_license( $background = false ) { + $this->_logger->entrance(); + + $plugin_id = fs_request_get( 'plugin_id', $this->get_id() ); + + $is_addon_sync = ( ! $this->_plugin->is_addon() && $plugin_id != $this->get_id() ); + + if ( $is_addon_sync ) { + $this->_sync_addon_license( $plugin_id, $background ); + } else { + $this->_sync_plugin_license( $background ); + } + + $this->do_action( 'after_account_plan_sync', $this->_site->plan->name ); + } + + /** + * Sync plugin's add-on license. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * @uses FS_Api + * + * @param number $addon_id + * @param bool $background + */ + private function _sync_addon_license( $addon_id, $background ) { + $this->_logger->entrance(); + + if ( $this->is_addon_activated( $addon_id ) ) { + // If already installed, use add-on sync. + $fs_addon = self::get_instance_by_id( $addon_id ); + $fs_addon->_sync_license( $background ); + + return; + } + + // Validate add-on exists. + $addon = $this->get_addon( $addon_id ); + + if ( ! is_object( $addon ) ) { + return; + } + + // Add add-on into account add-ons. + $account_addons = $this->get_account_addons(); + if ( ! is_array( $account_addons ) ) { + $account_addons = array(); + } + $account_addons[] = $addon->id; + $account_addons = array_unique( $account_addons ); + $this->_store_account_addons( $account_addons ); + + // Load add-on licenses. + $licenses = $this->_fetch_licenses( $addon->id ); + + // Sync add-on licenses. + if ( ! isset( $licenses->error ) ) { + $this->_update_licenses( $licenses, $addon->slug ); + + if ( ! $this->is_addon_installed( $addon->slug ) && FS_License_Manager::has_premium_license( $licenses ) ) { + $plans_result = $this->get_api_site_or_plugin_scope()->get( "/addons/{$addon_id}/plans.json" ); + + if ( ! isset( $plans_result->error ) ) { + $plans = array(); + foreach ( $plans_result->plans as $plan ) { + $plans[] = new FS_Plugin_Plan( $plan ); + } + + $this->_admin_notices->add_sticky( + FS_Plan_Manager::instance()->has_free_plan( $plans ) ? + sprintf( + __fs( 'addon-successfully-upgraded-message', $this->_slug ), + $addon->title + ) . ' ' . $this->_get_latest_download_link( + __fs( 'download-latest-version', $this->_slug ), + $addon_id + ) + : + sprintf( + __fs( 'addon-successfully-purchased-message', $this->_slug ), + $addon->title + ) . ' ' . $this->_get_latest_download_link( + __fs( 'download-latest-version', $this->_slug ), + $addon_id + ), + 'addon_plan_upgraded_' . $addon->slug, + __fs( 'yee-haw', $this->_slug ) . '!' + ); + } + } + } + } + + /** + * Sync site's plugin plan. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * @uses FS_Api + * + * @param bool $background Hints the method if it's a background sync. If false, it means that was initiated by + * the admin. + */ + private function _sync_plugin_license( $background = false ) { + $this->_logger->entrance(); + + // Sync site info. + $site = $this->send_install_update( array(), true ); + + $plan_change = 'none'; + + if ( $this->is_api_error( $site ) ) { + // Show API messages only if not background sync or if paying customer. + if ( ! $background || $this->is_paying() ) { + // Try to ping API to see if not blocked. + if ( ! FS_Api::test() ) { + /** + * Failed to ping API - blocked! + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 Only show message related to one of the Freemius powered plugins. Once it will be resolved it will fix the issue for all plugins anyways. There's no point to scare users with multiple error messages. + */ + $api = $this->get_api_site_scope(); + + if ( ! self::$_global_admin_notices->has_sticky( 'api_blocked' ) ) { + self::$_global_admin_notices->add( + sprintf( + __fs( 'server-blocking-access', $this->_slug ), + $this->get_plugin_name(), + '<a href="' . $api->get_url() . '" target="_blank">' . $api->get_url() . '</a>' + ) . '<br> ' . __fs( 'server-error-message', $this->_slug ) . var_export( $site->error, true ), + __fs( 'oops', $this->_slug ) . '...', + 'error', + $background, + false, + 'api_blocked' + ); + } + } else { + // Authentication params are broken. + $this->_admin_notices->add( + __fs( 'wrong-authentication-param-message', $this->_slug ), + __fs( 'oops', $this->_slug ) . '...', + 'error' + ); + } + } + + // No reason to continue with license sync while there are API issues. + return; + } + + // Remove sticky API connectivity message. + self::$_global_admin_notices->remove_sticky( 'api_blocked' ); + + $site = new FS_Site( $site ); + + // Sync plans. + $this->_sync_plans(); + + if ( ! $this->has_paid_plan() ) { + $this->_site = $site; + $this->_enrich_site_plan( true ); + $this->_store_site(); + } else { + // Sync licenses. + $this->_sync_licenses(); + + // Check if plan / license changed. + if ( ! FS_Entity::equals( $site->plan, $this->_site->plan ) || + // Check if trial started. + $site->trial_plan_id != $this->_site->trial_plan_id || + $site->trial_ends != $this->_site->trial_ends || + // Check if license changed. + $site->license_id != $this->_site->license_id + ) { + if ( $site->is_trial() && ( ! $this->_site->is_trial() || $site->trial_ends != $this->_site->trial_ends ) ) { + // New trial started. + $this->_site = $site; + $plan_change = 'trial_started'; + + // Store trial plan information. + $this->_enrich_site_trial_plan( true ); + + // For trial with subscription use-case. + $new_license = is_null( $site->license_id ) ? null : $this->_get_license_by_id( $site->license_id ); + + if ( is_object( $new_license ) && ! $new_license->is_expired() ) { + $this->_site = $site; + $this->_update_site_license( $new_license ); + $this->_store_licenses(); + $this->_enrich_site_plan( true ); + + $this->_sync_site_subscription( $this->_license ); + } + } else if ( $this->_site->is_trial() && ! $site->is_trial() && ! is_numeric( $site->license_id ) ) { + // Was in trial, but now trial expired and no license ID. + // New trial started. + $this->_site = $site; + $plan_change = 'trial_expired'; + + // Clear trial plan information. + $this->_storage->trial_plan = null; + + } else { + $is_free = $this->is_free_plan(); + + // Make sure license exist and not expired. + $new_license = is_null( $site->license_id ) ? null : $this->_get_license_by_id( $site->license_id ); + + if ( $is_free && ( ( ! is_object( $new_license ) || $new_license->is_expired() ) ) ) { + // The license is expired, so ignore upgrade method. + } else { + // License changed. + $this->_site = $site; + $this->_update_site_license( $new_license ); + $this->_store_licenses(); + $this->_enrich_site_plan( true ); + + $plan_change = $is_free ? + 'upgraded' : + ( is_object( $new_license ) ? + 'changed' : + 'downgraded' ); + } + } + + // Store updated site info. + $this->_store_site(); + } else { + if ( is_object( $this->_license ) && $this->_license->is_expired() ) { + if ( ! $this->has_features_enabled_license() ) { + $this->_deactivate_license(); + $plan_change = 'downgraded'; + } else { + $plan_change = 'expired'; + } + } + + if ( is_numeric( $site->license_id ) && is_object( $this->_license ) ) { + $this->_sync_site_subscription( $this->_license ); + } + } + } + + if ( $this->has_paid_plan() ) { + switch ( $plan_change ) { + case 'none': + if ( ! $background && is_admin() ) { + $plan = $this->is_trial() ? + $this->_storage->trial_plan : + $this->_site->plan; + + $this->_admin_notices->add( + sprintf( + __fs( 'plan-did-not-change-message', $this->_slug ) . ' ' . + sprintf( + '<a href="%s">%s</a>', + $this->contact_url( + 'bug', + sprintf( __fs( 'plan-did-not-change-email-message', $this->_slug ), + strtoupper( $plan->name ) + ) + ), + __fs( 'contact-us-here', $this->_slug ) + ), + '<i>' . $plan->title . ( $this->is_trial() ? ' ' . __fs( 'trial', $this->_slug ) : '' ) . '</i>' + ), + __fs( 'hmm', $this->_slug ) . '...', + 'error' + ); + } + break; + case 'upgraded': + $this->_admin_notices->add_sticky( + sprintf( + __fs( 'plan-upgraded-message', $this->_slug ), + '<i>' . $this->get_plugin_name() . '</i>' + ) . ( $this->is_premium() ? '' : ' ' . $this->_get_latest_download_link( sprintf( + __fs( 'download-latest-x-version', $this->_slug ), + $this->_site->plan->title + ) ) + ), + 'plan_upgraded', + __fs( 'yee-haw', $this->_slug ) . '!' + ); + + $this->_admin_notices->remove_sticky( array( + 'trial_started', + 'trial_promotion', + 'trial_expired', + 'activation_complete', + ) ); + break; + case 'changed': + $this->_admin_notices->add_sticky( + sprintf( + __fs( 'plan-changed-to-x-message', $this->_slug ), + $this->_site->plan->title + ), + 'plan_changed' + ); + + $this->_admin_notices->remove_sticky( array( + 'trial_started', + 'trial_promotion', + 'trial_expired', + 'activation_complete', + ) ); + break; + case 'downgraded': + $this->_admin_notices->add_sticky( + sprintf( __fs( 'license-expired-blocking-message', $this->_slug ) ), + 'license_expired', + __fs( 'hmm', $this->_slug ) . '...' + ); + $this->_admin_notices->remove_sticky( 'plan_upgraded' ); + break; + case 'expired': + $this->_admin_notices->add_sticky( + sprintf( __fs( 'license-expired-non-blocking-message', $this->_slug ), $this->_site->plan->title ), + 'license_expired', + __fs( 'hmm', $this->_slug ) . '...' + ); + $this->_admin_notices->remove_sticky( 'plan_upgraded' ); + break; + case 'trial_started': + $this->_admin_notices->add_sticky( + sprintf( + __fs( 'trial-started-message', $this->_slug ), + '<i>' . $this->get_plugin_name() . '</i>' + ) . ( $this->is_premium() ? '' : ' ' . $this->_get_latest_download_link( sprintf( + __fs( 'download-latest-x-version', $this->_slug ), + $this->_storage->trial_plan->title + ) ) ), + 'trial_started', + __fs( 'yee-haw', $this->_slug ) . '!' + ); + + $this->_admin_notices->remove_sticky( array( + 'trial_promotion', + ) ); + break; + case 'trial_expired': + $this->_admin_notices->add_sticky( + __fs( 'trial-expired-message', $this->_slug ), + 'trial_expired', + __fs( 'hmm', $this->_slug ) . '...' + ); + $this->_admin_notices->remove_sticky( array( + 'trial_started', + 'trial_promotion', + 'plan_upgraded', + ) ); + break; + } + } + + if ( 'none' !== $plan_change ) { + $this->do_action( 'after_license_change', $plan_change, $this->_site->plan ); + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @param bool $background + */ + protected function _activate_license( $background = false ) { + $this->_logger->entrance(); + + $license_id = fs_request_get( 'license_id' ); + + if ( FS_Plugin_License::is_valid_id( $license_id ) && $license_id == $this->_site->license_id ) { + // License is already activated. + return; + } + + $premium_license = FS_Plugin_License::is_valid_id( $license_id ) ? + $this->_get_license_by_id( $license_id ) : + $this->_get_available_premium_license(); + + if ( ! is_object( $premium_license ) ) { + return; + } + + $api = $this->get_api_site_scope(); + $license = $api->call( "/licenses/{$premium_license->id}.json", 'put' ); + + if ( $this->is_api_error( $license ) ) { + if ( ! $background ) { + $this->_admin_notices->add( + __fs( 'license-activation-failed-message', $this->_slug ) . '<br> ' . + __fs( 'server-error-message', $this->_slug ) . ' ' . var_export( $license, true ), + __fs( 'hmm', $this->_slug ) . '...', + 'error' + ); + } + + return; + } + + $premium_license = new FS_Plugin_License( $license ); + + // Updated site plan. + $site = $this->get_api_site_scope()->get( '/', true ); + if ( ! $this->is_api_error( $site ) ) { + $this->_site = new FS_Site( $site ); + } + $this->_update_site_license( $premium_license ); + $this->_enrich_site_plan( false ); + + $this->_store_account(); + + if ( ! $background ) { + $this->_admin_notices->add_sticky( + __fs( 'license-activated-message', $this->_slug ) . + ( $this->is_premium() ? '' : ' ' . $this->_get_latest_download_link( sprintf( + __fs( 'download-latest-x-version', $this->_slug ), + $this->_site->plan->title + ) ) ), + 'license_activated', + __fs( 'yee-haw', $this->_slug ) . '!' + ); + } + + $this->_admin_notices->remove_sticky( array( + 'trial_promotion', + 'license_expired', + ) ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @param bool $show_notice + */ + protected function _deactivate_license( $show_notice = true ) { + $this->_logger->entrance(); + + if ( ! is_object( $this->_license ) ) { + $this->_admin_notices->add( + sprintf( __fs( 'no-active-license-message', $this->_slug ), $this->_site->plan->title ), + __fs( 'hmm', $this->_slug ) . '...' + ); + + return; + } + + $api = $this->get_api_site_scope(); + $license = $api->call( "/licenses/{$this->_site->license_id}.json", 'delete' ); + + if ( isset( $license->error ) ) { + $this->_admin_notices->add( + __fs( 'license-deactivation-failed-message', $this->_slug ) . '<br> ' . + __fs( 'server-error-message', $this->_slug ) . ' ' . var_export( $license->error, true ), + __fs( 'hmm', $this->_slug ) . '...', + 'error' + ); + + return; + } + + // Update license cache. + for ( $i = 0, $len = count( $this->_licenses ); $i < $len; $i ++ ) { + if ( $license->id == $this->_licenses[ $i ]->id ) { + $this->_licenses[ $i ] = new FS_Plugin_License( $license ); + } + } + + // Updated site plan to default. + $this->_sync_plans(); + $this->_site->plan->id = $this->_plans[0]->id; + // Unlink license from site. + $this->_update_site_license( null ); + $this->_enrich_site_plan( false ); + + $this->_store_account(); + + if ( $show_notice ) { + $this->_admin_notices->add( + sprintf( __fs( 'license-deactivation-message', $this->_slug ), $this->_site->plan->title ), + __fs( 'ok', $this->_slug ) + ); + } + + $this->_admin_notices->remove_sticky( array( + 'plan_upgraded', + 'license_activated', + ) ); + } + + /** + * Site plan downgrade. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @uses FS_Api + */ + private function _downgrade_site() { + $this->_logger->entrance(); + + $api = $this->get_api_site_scope(); + $site = $api->call( 'downgrade.json', 'put' ); + + $plan_downgraded = false; + $plan = false; + if ( ! isset( $site->error ) ) { + $prev_plan_id = $this->_site->plan->id; + + // Update new site plan id. + $this->_site->plan->id = $site->plan_id; + + $plan = $this->_enrich_site_plan(); + $subscription = $this->_sync_site_subscription( $this->_license ); + + // Plan downgraded if plan was changed or subscription was cancelled. + $plan_downgraded = ( $plan instanceof FS_Plugin_Plan && $prev_plan_id != $plan->id ) || + ( is_object( $subscription ) && ! isset( $subscription->error ) && ! $subscription->is_active() ); + } else { + // handle different error cases. + + } + + if ( $plan_downgraded ) { + // Remove previous sticky message about upgrade (if exist). + $this->_admin_notices->remove_sticky( 'plan_upgraded' ); + + $this->_admin_notices->add( + sprintf( __fs( 'plan-x-downgraded-message', $this->_slug ), + $plan->title, + human_time_diff( time(), strtotime( $this->_license->expiration ) ) + ) + ); + + // Store site updates. + $this->_store_site(); + } else { + $this->_admin_notices->add( + __fs( 'plan-downgraded-failure-message', $this->_slug ), + __fs( 'oops', $this->_slug ) . '...', + 'error' + ); + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.8.1 + * + * @param bool|string $plan_name + * + * @return bool If trial was successfully started. + */ + function start_trial($plan_name = false) { + $this->_logger->entrance(); + + if ( $this->is_trial() ) { + // Already in trial mode. + $this->_admin_notices->add( + __fs( 'in-trial-mode', $this->_slug ), + __fs( 'oops', $this->_slug ) . '...', + 'error' + ); + + return false; + } + + if ( $this->_site->is_trial_utilized() ) { + // Trial was already utilized. + $this->_admin_notices->add( + __fs( 'trial-utilized', $this->_slug ), + __fs( 'oops', $this->_slug ) . '...', + 'error' + ); + + return false; + } + + if ( false !== $plan_name ) { + $plan = $this->get_plan_by_name( $plan_name ); + + if ( false === $plan ) { + // Plan doesn't exist. + $this->_admin_notices->add( + sprintf( __fs( 'trial-plan-x-not-exist', $this->_slug ), $plan_name ), + __fs( 'oops', $this->_slug ) . '...', + 'error' + ); + + return false; + } + + if ( ! $plan->has_trial() ) { + // Plan doesn't exist. + $this->_admin_notices->add( + sprintf( __fs( 'plan-x-no-trial', $this->_slug ), $plan_name ), + __fs( 'oops', $this->_slug ) . '...', + 'error' + ); + + return false; + } + } else { + if ( ! $this->has_trial_plan() ) { + // None of the plans have a trial. + $this->_admin_notices->add( + __fs( 'no-trials', $this->_slug ), + __fs( 'oops', $this->_slug ) . '...', + 'error' + ); + + return false; + } + + $plans_with_trial = FS_Plan_Manager::instance()->get_trial_plans( $this->_plans ); + + $plan = $plans_with_trial[0]; + } + + $api = $this->get_api_site_scope(); + $plan = $api->call( "plans/{$plan->id}/trials.json", 'post' ); + + if ( $this->is_api_error( $plan ) ) { + // Some API error while trying to start the trial. + $this->_admin_notices->add( + __fs( 'unexpected-api-error', $this->_slug ) . ' ' . var_export( $plan, true ), + __fs( 'oops', $this->_slug ) . '...', + 'error' + ); + + return false; + } + + // Sync license. + $this->_sync_license(); + + return $this->is_trial(); + } + + /** + * Cancel site trial. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @uses FS_Api + */ + private function _cancel_trial() { + $this->_logger->entrance(); + + if ( ! $this->is_trial() ) { + $this->_admin_notices->add( + __fs( 'trial-cancel-no-trial-message', $this->_slug ), + __fs( 'oops', $this->_slug ) . '...', + 'error' + ); + + return; + } + + $api = $this->get_api_site_scope(); + $site = $api->call( 'trials.json', 'delete' ); + + $trial_cancelled = false; + + if ( ! $this->is_api_error( $site ) ) { + $prev_trial_ends = $this->_site->trial_ends; + + if ( $this->is_paid_trial() ) { + $this->_license->expiration = $site->trial_ends; + $this->_license->is_cancelled = true; + $this->_update_site_license( $this->_license ); + $this->_store_licenses(); + + // Clear subscription reference. + $this->_sync_site_subscription( null ); + } + + // Update site info. + $this->_site = new FS_Site( $site ); + $this->_enrich_site_plan(); + + $trial_cancelled = ( $prev_trial_ends != $site->trial_ends ); + } else { + // handle different error cases. + + } + + if ( $trial_cancelled ) { + // Remove previous sticky messages about upgrade or trial (if exist). + $this->_admin_notices->remove_sticky( array( + 'trial_started', + 'trial_promotion', + 'plan_upgraded', + ) ); + + // Store site updates. + $this->_store_site(); + + // Clear trial plan information. + unset( $this->_storage->trial_plan ); + + if ( ! $this->is_addon() || + ! $this->deactivate_premium_only_addon_without_license( true ) + ) { + $this->_admin_notices->add( + sprintf( __fs( 'trial-cancel-message', $this->_slug ), $this->_storage->trial_plan->title ) + ); + } + } else { + $this->_admin_notices->add( + __fs( 'trial-cancel-failure-message', $this->_slug ), + __fs( 'oops', $this->_slug ) . '...', + 'error' + ); + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param bool|number $plugin_id + * + * @return bool + */ + private function _is_addon_id( $plugin_id ) { + return is_numeric( $plugin_id ) && ( $this->get_id() != $plugin_id ); + } + + /** + * Check if user eligible to download premium version updates. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return bool + */ + private function _can_download_premium() { + return $this->has_active_license() || + ( $this->is_trial() && ! $this->get_trial_plan()->is_free() ); + } + + /** + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param bool|number $addon_id + * @param string $type "json" or "zip" + * + * @return string + */ + private function _get_latest_version_endpoint( $addon_id = false, $type = 'json' ) { + + $is_addon = $this->_is_addon_id( $addon_id ); + + $is_premium = null; + if ( ! $is_addon ) { + $is_premium = $this->_can_download_premium(); + } else if ( $this->is_addon_activated( $addon_id ) ) { + $is_premium = self::get_instance_by_id( $addon_id )->_can_download_premium(); + } + + return // If add-on, then append add-on ID. + ( $is_addon ? "/addons/$addon_id" : '' ) . + '/updates/latest.' . $type . + // If add-on and not yet activated, try to fetch based on server licensing. + ( is_bool( $is_premium ) ? '?is_premium=' . json_encode( $is_premium ) : '' ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param bool|number $addon_id + * @param bool $flush Since 1.1.7.3 + * + * @return object|false Plugin latest tag info. + */ + function _fetch_latest_version( $addon_id = false, $flush = true ) { + $this->_logger->entrance(); + + /** + * @since 1.1.7.3 Check for plugin updates from Freemius only if opted-in. + * @since 1.1.7.4 Also check updates for add-ons. + */ + if ( ! $this->is_registered() && + ! $this->_is_addon_id( $addon_id ) + ) { + return false; + } + + $tag = $this->get_api_site_or_plugin_scope()->get( + $this->_get_latest_version_endpoint( $addon_id, 'json' ), + $flush + ); + + $latest_version = ( is_object( $tag ) && isset( $tag->version ) ) ? $tag->version : 'couldn\'t get'; + + $this->_logger->departure( 'Latest version ' . $latest_version ); + + return ( is_object( $tag ) && isset( $tag->version ) ) ? $tag : false; + } + + #region Download Plugin ------------------------------------------------------------------ + + /** + * Download latest plugin version, based on plan. + * The download will be fetched via the API first. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param bool|number $plugin_id + * + * @uses FS_Api + * + * @deprecated + */ + private function _download_latest( $plugin_id = false ) { + $this->_logger->entrance(); + + $is_addon = $this->_is_addon_id( $plugin_id ); + + $is_premium = $this->_can_download_premium(); + + $latest = $this->get_api_site_scope()->call( + $this->_get_latest_version_endpoint( $plugin_id, 'zip' ) + ); + + $slug = $this->_slug; + if ( $is_addon ) { + $addon = $this->get_addon( $plugin_id ); + $slug = is_object( $addon ) ? $addon->slug : 'addon'; + } + + if ( ! is_object( $latest ) ) { + header( "Content-Type: application/zip" ); + header( "Content-Disposition: attachment; filename={$slug}" . ( ! $is_addon && $is_premium ? '-premium' : '' ) . ".zip" ); + header( "Content-Length: " . strlen( $latest ) ); + echo $latest; + + exit(); + } + } + + /** + * Download latest plugin version, based on plan. + * + * Not like _download_latest(), this will redirect the page + * to secure download url to prevent dual download (from FS to WP server, + * and then from WP server to the client / browser). + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param bool|number $plugin_id + * + * @uses FS_Api + * @uses wp_redirect() + */ + private function _download_latest_directly( $plugin_id = false ) { + $this->_logger->entrance(); + + wp_redirect( $this->_get_latest_download_api_url( $plugin_id ) ); + } + + /** + * Get latest plugin FS API download URL. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param bool|number $plugin_id + * + * @return string + */ + private function _get_latest_download_api_url( $plugin_id = false ) { + $this->_logger->entrance(); + + return $this->get_api_site_scope()->get_signed_url( + $this->_get_latest_version_endpoint( $plugin_id, 'zip' ) + ); + } + + /** + * Get latest plugin download link. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param string $label + * @param bool|number $plugin_id + * + * @return string + */ + private function _get_latest_download_link( $label, $plugin_id = false ) { + return sprintf( + '<a target="_blank" href="%s">%s</a>', + $this->_get_latest_download_local_url( $plugin_id ), + $label + ); + } + + /** + * Get latest plugin download local URL. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param bool|number $plugin_id + * + * @return string + */ + function _get_latest_download_local_url( $plugin_id = false ) { + // Add timestamp to protect from caching. + $params = array( 'ts' => WP_FS__SCRIPT_START_TIME ); + + if ( ! empty( $plugin_id ) ) { + $params['plugin_id'] = $plugin_id; + } + + return $this->get_account_url( 'download_latest', $params ); + } + + #endregion Download Plugin ------------------------------------------------------------------ + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @uses FS_Api + * + * @param bool $background Hints the method if it's a background updates check. If false, it means that + * was initiated by the admin. + * @param bool|number $plugin_id + * @param bool $flush Since 1.1.7.3 + */ + private function _check_updates( $background = false, $plugin_id = false, $flush = true ) { + $this->_logger->entrance(); + + // Check if there's a newer version for download. + $new_version = $this->_fetch_newer_version( $plugin_id, $flush ); + + $update = null; + if ( is_object( $new_version ) ) { + $update = new FS_Plugin_Tag( $new_version ); + + if ( ! $background ) { + $this->_admin_notices->add( + sprintf( + __fs( 'version-x-released', $this->_slug ) . ' ' . __fs( 'please-download-x', $this->_slug ), + $update->version, + sprintf( + '<a href="%s" target="_blank">%s</a>', + $this->get_account_url( 'download_latest' ), + sprintf( __fs( 'latest-x-version', $this->_slug ), $this->_site->plan->title ) + ) + ), + __fs( 'new', $this->_slug ) . '!' + ); + } + } else if ( false === $new_version && ! $background ) { + $this->_admin_notices->add( + __fs( 'you-have-latest', $this->_slug ), + __fs( 'you-are-good', $this->_slug ) + ); + } + + $this->_store_update( $update, true, $plugin_id ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param bool $flush Since 1.1.7.3 by default add 24 hour cache. + * + * @return FS_Plugin[] + * + * @uses FS_Api + */ + private function _sync_addons( $flush = false ) { + $this->_logger->entrance(); + + $result = $this->get_api_site_or_plugin_scope()->get( '/addons.json?enriched=true', $flush ); + + $addons = array(); + if ( ! $this->is_api_error( $result ) ) { + for ( $i = 0, $len = count( $result->plugins ); $i < $len; $i ++ ) { + $addons[ $i ] = new FS_Plugin( $result->plugins[ $i ] ); + } + + $this->_store_addons( $addons, true ); + } + + return $addons; + } + + /** + * Handle user email update. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * @uses FS_Api + * + * @param string $new_email + * + * @return object + */ + private function _update_email( $new_email ) { + $this->_logger->entrance(); + + + $api = $this->get_api_user_scope(); + $user = $api->call( "?plugin_id={$this->_plugin->id}&fields=id,email,is_verified", 'put', array( + 'email' => $new_email, + 'after_email_confirm_url' => $this->_get_admin_page_url( + 'account', + array( 'fs_action' => 'sync_user' ) + ), + ) ); + + if ( ! isset( $user->error ) ) { + $this->_user->email = $user->email; + $this->_user->is_verified = $user->is_verified; + $this->_store_user(); + } else { + // handle different error cases. + + } + + return $user; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.1 + * + * @param mixed $result + * + * @return bool Is API result contains an error. + */ + private function is_api_error( $result ) { + return ( is_object( $result ) && isset( $result->error ) ) || + is_string( $result ); + } + + /** + * Start install ownership change. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.1 + * @uses FS_Api + * + * @param string $candidate_email + * + * @return bool Is ownership change successfully initiated. + */ + private function init_change_owner( $candidate_email ) { + $this->_logger->entrance(); + + $api = $this->get_api_site_scope(); + $result = $api->call( "/users/{$this->_user->id}.json", 'put', array( + 'email' => $candidate_email, + 'after_confirm_url' => $this->_get_admin_page_url( + 'account', + array( 'fs_action' => 'change_owner' ) + ), + ) ); + + return ! $this->is_api_error( $result ); + } + + /** + * Handle install ownership change. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.1 + * @uses FS_Api + * + * @return bool Was ownership change successfully complete. + */ + private function complete_change_owner() { + $this->_logger->entrance(); + + $site_result = $this->get_api_site_scope( true )->get(); + $site = new FS_Site( $site_result ); + $this->_site = $site; + + $user = new FS_User(); + $user->id = fs_request_get( 'user_id' ); + + // Validate install's user and given user. + if ( $user->id != $this->_site->user_id ) { + return false; + } + + $user->public_key = fs_request_get( 'user_public_key' ); + $user->secret_key = fs_request_get( 'user_secret_key' ); + + // Fetch new user information. + $this->_user = $user; + $user_result = $this->get_api_user_scope( true )->get(); + $user = new FS_User( $user_result ); + $this->_user = $user; + + $this->_set_account( $user, $site ); + + return true; + } + + /** + * Handle user name update. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * @uses FS_Api + * + * @return object + */ + private function update_user_name() { + $this->_logger->entrance(); + $name = fs_request_get( 'fs_user_name_' . $this->_slug, '' ); + + $api = $this->get_api_user_scope(); + $user = $api->call( "?plugin_id={$this->_plugin->id}&fields=id,first,last", 'put', array( + 'name' => $name, + ) ); + + if ( ! isset( $user->error ) ) { + $this->_user->first = $user->first; + $this->_user->last = $user->last; + $this->_store_user(); + } else { + // handle different error cases. + + } + + return $user; + } + + /** + * Verify user email. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * @uses FS_Api + */ + private function verify_email() { + $this->_handle_account_user_sync(); + + if ( $this->_user->is_verified() ) { + return; + } + + $api = $this->get_api_site_scope(); + $result = $api->call( "/users/{$this->_user->id}/verify.json", 'put', array( + 'after_email_confirm_url' => $this->_get_admin_page_url( + 'account', + array( 'fs_action' => 'sync_user' ) + ) + ) ); + + if ( ! isset( $result->error ) ) { + $this->_admin_notices->add( sprintf( + __fs( 'verification-email-sent-message', $this->_slug ), + sprintf( '<a href="mailto:%1s">%2s</a>', esc_url( $this->_user->email ), $this->_user->email ) + ) ); + } else { + // handle different error cases. + + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.2 + * + * @return string + */ + private function get_activation_url() { + return $this->apply_filters( 'connect_url', $this->_get_admin_page_url() ); + } + + /** + * Get the URL of the page that should be loaded after the user connect or skip in the opt-in screen. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @param string $filter Filter name. + * + * @return string + */ + private function get_after_activation_url( $filter ) { + $first_time_path = $this->_menu->get_first_time_path(); + + return $this->apply_filters( + $filter, + empty( $first_time_path ) ? + $this->_get_admin_page_url() : + $first_time_path + ); + } + + /** + * Handle account page updates / edits / actions. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.2 + * + */ + private function _handle_account_edits() { + if ( ! current_user_can( 'activate_plugins' ) ) { + return; + } + + $plugin_id = fs_request_get( 'plugin_id', $this->get_id() ); + $action = fs_get_action(); + + switch ( $action ) { + case 'delete_account': + check_admin_referer( $action ); + + if ( $plugin_id == $this->get_id() ) { + $this->delete_account_event(); + + // Clear user and site. + $this->_site = null; + $this->_user = null; + + if ( fs_redirect( $this->get_activation_url() ) ) { + exit(); + } + } else { + if ( $this->is_addon_activated( $plugin_id ) ) { + $fs_addon = self::get_instance_by_id( $plugin_id ); + $fs_addon->delete_account_event(); + + if ( fs_redirect( $this->_get_admin_page_url( 'account' ) ) ) { + exit(); + } + } + } + + return; + + case 'downgrade_account': + check_admin_referer( $action ); + $this->_downgrade_site(); + + return; + + case 'activate_license': + check_admin_referer( $action ); + + if ( $plugin_id == $this->get_id() ) { + $this->_activate_license(); + } else { + if ( $this->is_addon_activated( $plugin_id ) ) { + $fs_addon = self::get_instance_by_id( $plugin_id ); + $fs_addon->_activate_license(); + } + } + + return; + + case 'deactivate_license': + check_admin_referer( $action ); + + if ( $plugin_id == $this->get_id() ) { + $this->_deactivate_license(); + } else { + if ( $this->is_addon_activated( $plugin_id ) ) { + $fs_addon = self::get_instance_by_id( $plugin_id ); + $fs_addon->_deactivate_license(); + } + } + + return; + + case 'check_updates': + check_admin_referer( $action ); + $this->_check_updates(); + + return; + + case 'change_owner': + $state = fs_request_get( 'state', 'init' ); + switch ( $state ) { + case 'init': + $candidate_email = fs_request_get( 'candidate_email', '' ); + + if ( $this->init_change_owner( $candidate_email ) ) { + $this->_admin_notices->add( sprintf( __fs( 'change-owner-request-sent-x', $this->_slug ), '<b>' . $this->_user->email . '</b>' ) ); + } + break; + case 'owner_confirmed': + $candidate_email = fs_request_get( 'candidate_email', '' ); + + $this->_admin_notices->add( sprintf( __fs( 'change-owner-request_owner-confirmed', $this->_slug ), '<b>' . $candidate_email . '</b>' ) ); + break; + case 'candidate_confirmed': + if ( $this->complete_change_owner() ) { + $this->_admin_notices->add_sticky( + sprintf( __fs( 'change-owner-request_candidate-confirmed', $this->_slug ), '<b>' . $this->_user->email . '</b>' ), + 'ownership_changed', + __fs( 'congrats', $this->_slug ) . '!' + ); + } else { + // @todo Handle failed ownership change message. + } + break; + } + + return; + + case 'update_email': + check_admin_referer( 'update_email' ); + + $new_email = fs_request_get( 'fs_email_' . $this->_slug, '' ); + $result = $this->_update_email( $new_email ); + + if ( isset( $result->error ) ) { + switch ( $result->error->code ) { + case 'user_exist': + $this->_admin_notices->add( + __fs( 'user-exist-message', $this->_slug ) . ' ' . + sprintf( __fs( 'user-exist-message_ownership', $this->_slug ), '<b>' . $new_email . '</b>' ) . + sprintf( + '<a style="margin-left: 10px;" href="%s"><button class="button button-primary">%s ➜</button></a>', + $this->get_account_url( 'change_owner', array( + 'state' => 'init', + 'candidate_email' => $new_email + ) ), + __fs( 'change-ownership', $this->_slug ) + ), + __fs( 'oops', $this->_slug ) . '...', + 'error' + ); + break; + } + } else { + $this->_admin_notices->add( __fs( 'email-updated-message', $this->_slug ) ); + } + + return; + + case 'update_user_name': + check_admin_referer( 'update_user_name' ); + + $result = $this->update_user_name(); + + if ( isset( $result->error ) ) { + $this->_admin_notices->add( + __fs( 'name-update-failed-message', $this->_slug ), + __fs( 'oops', $this->_slug ) . '...', + 'error' + ); + } else { + $this->_admin_notices->add( __fs( 'name-updated-message', $this->_slug ) ); + } + + return; + + #region Actions that might be called from external links (e.g. email) + + case 'cancel_trial': + if ( $plugin_id == $this->get_id() ) { + $this->_cancel_trial(); + } else { + if ( $this->is_addon_activated( $plugin_id ) ) { + $fs_addon = self::get_instance_by_id( $plugin_id ); + $fs_addon->_cancel_trial(); + } + } + + return; + + case 'verify_email': + $this->verify_email(); + + return; + + case 'sync_user': + $this->_handle_account_user_sync(); + + return; + + case $this->_slug . '_sync_license': + $this->_sync_license(); + + return; + + case 'download_latest': + $this->_download_latest_directly( $plugin_id ); + + return; + + #endregion + } + + if ( WP_FS__IS_POST_REQUEST ) { + $properties = array( 'site_secret_key', 'site_id', 'site_public_key' ); + foreach ( $properties as $p ) { + if ( 'update_' . $p === $action ) { + check_admin_referer( $action ); + + $this->_logger->log( $action ); + + $site_property = substr( $p, strlen( 'site_' ) ); + $site_property_value = fs_request_get( 'fs_' . $p . '_' . $this->_slug, '' ); + $this->get_site()->{$site_property} = $site_property_value; + + // Store account after modification. + $this->_store_site(); + + $this->do_action( 'account_property_edit', 'site', $site_property, $site_property_value ); + + $this->_admin_notices->add( sprintf( + __fs( 'x-updated', $this->_slug ), + '<b>' . str_replace( '_', ' ', $p ) . '</b>' ) ); + + return; + } + } + } + } + + /** + * Account page resources load. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + */ + function _account_page_load() { + $this->_logger->entrance(); + + $this->_logger->info( var_export( $_REQUEST, true ) ); + + fs_enqueue_local_style( 'fs_account', '/admin/account.css' ); + + if ( $this->has_addons() ) { + wp_enqueue_script( 'plugin-install' ); + add_thickbox(); + + function fs_addons_body_class( $classes ) { + $classes .= ' plugins-php'; + + return $classes; + } + + add_filter( 'admin_body_class', 'fs_addons_body_class' ); + } + + if ( $this->has_paid_plan() && + ! $this->has_any_license() && + ! $this->is_sync_executed() + ) { + /** + * If no licenses found and no sync job was executed during the last 24 hours, + * just execute the sync job right away (blocking execution). + * + * @since 1.1.7.3 + */ + $this->run_manual_sync(); + } + + $this->_handle_account_edits(); + + $this->do_action( 'account_page_load_before_departure' ); + } + + /** + * Render account page. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.0 + */ + function _account_page_render() { + $this->_logger->entrance(); + + $vars = array( 'slug' => $this->_slug ); + fs_require_once_template( 'account.php', $vars ); + } + + /** + * Render account connect page. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + */ + function _connect_page_render() { + $this->_logger->entrance(); + + $vars = array( 'slug' => $this->_slug ); + fs_require_once_template( 'connect.php', $vars ); + } + + /** + * Load required resources before add-ons page render. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + */ + function _addons_page_load() { + $this->_logger->entrance(); + + fs_enqueue_local_style( 'fs_addons', '/admin/add-ons.css' ); + + wp_enqueue_script( 'plugin-install' ); + add_thickbox(); + + function fs_addons_body_class( $classes ) { + $classes .= ' plugins-php'; + + return $classes; + } + + add_filter( 'admin_body_class', 'fs_addons_body_class' ); + + if ( ! $this->is_registered() && $this->is_org_repo_compliant() ) { + $this->_admin_notices->add( + sprintf( __fs( 'addons-info-external-message', $this->_slug ), '<b>' . $this->get_plugin_name() . '</b>' ), + __fs( 'heads-up', $this->_slug ), + 'update-nag' + ); + } + } + + /** + * Render add-ons page. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + */ + function _addons_page_render() { + $this->_logger->entrance(); + + $vars = array( 'slug' => $this->_slug ); + fs_require_once_template( 'add-ons.php', $vars ); + } + + /* Pricing & Upgrade + ------------------------------------------------------------------------------------------------------------------*/ + /** + * Render pricing page. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.0 + */ + function _pricing_page_render() { + $this->_logger->entrance(); + + $vars = array( 'slug' => $this->_slug ); + + if ( 'true' === fs_request_get( 'checkout', false ) ) { + fs_require_once_template( 'checkout.php', $vars ); + } else { + fs_require_once_template( 'pricing.php', $vars ); + } + } + + #region Contact Us ------------------------------------------------------------------ + + /** + * Render contact-us page. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + */ + function _contact_page_render() { + $this->_logger->entrance(); + + $vars = array( 'slug' => $this->_slug ); + fs_require_once_template( 'contact.php', $vars ); + } + + #endregion ------------------------------------------------------------------ + + /** + * Hide all admin notices to prevent distractions. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * + * @uses remove_all_actions() + */ + private static function _hide_admin_notices() { + remove_all_actions( 'admin_notices' ); + remove_all_actions( 'network_admin_notices' ); + remove_all_actions( 'all_admin_notices' ); + remove_all_actions( 'user_admin_notices' ); + } + + static function _clean_admin_content_section_hook() { + self::_hide_admin_notices(); + + // Hide footer. + echo '<style>#wpfooter { display: none !important; }</style>'; + } + + /** + * Attach to admin_head hook to hide all admin notices. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + */ + static function _clean_admin_content_section() { + add_action( 'admin_head', 'Freemius::_clean_admin_content_section_hook' ); + } + + /* CSS & JavaScript + ------------------------------------------------------------------------------------------------------------------*/ + /* function _enqueue_script($handle, $src) { + $url = plugins_url( substr( WP_FS__DIR_JS, strlen( $this->_plugin_dir_path ) ) . '/assets/js/' . $src ); + + $this->_logger->entrance( 'script = ' . $url ); + + wp_enqueue_script( $handle, $url ); + }*/ + + /* SDK + ------------------------------------------------------------------------------------------------------------------*/ + private $_user_api; + + /** + * + * @author Vova Feldman (@svovaf) + * @since 1.0.2 + * + * @param bool $flush + * + * @return FS_Api + */ + function get_api_user_scope( $flush = false ) { + if ( ! isset( $this->_user_api ) || $flush ) { + $this->_user_api = FS_Api::instance( + $this->_slug, + 'user', + $this->_user->id, + $this->_user->public_key, + ! $this->is_live(), + $this->_user->secret_key + ); + } + + return $this->_user_api; + } + + private $_site_api; + + /** + * + * @author Vova Feldman (@svovaf) + * @since 1.0.2 + * + * @param bool $flush + * + * @return FS_Api + */ + function get_api_site_scope( $flush = false ) { + if ( ! isset( $this->_site_api ) || $flush ) { + $this->_site_api = FS_Api::instance( + $this->_slug, + 'install', + $this->_site->id, + $this->_site->public_key, + ! $this->is_live(), + $this->_site->secret_key + ); + } + + return $this->_site_api; + } + + private $_plugin_api; + + /** + * Get plugin public API scope. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @return FS_Api + */ + function get_api_plugin_scope() { + if ( ! isset( $this->_plugin_api ) ) { + $this->_plugin_api = FS_Api::instance( + $this->_slug, + 'plugin', + $this->_plugin->id, + $this->_plugin->public_key, + ! $this->is_live() + ); + } + + return $this->_plugin_api; + } + + /** + * Get site API scope object (fallback to public plugin scope when not registered). + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @return FS_Api + */ + function get_api_site_or_plugin_scope() { + return $this->is_registered() ? + $this->get_api_site_scope() : + $this->get_api_plugin_scope(); + } + + /** + * Show trial promotional notice (if any trial exist). + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param $plans + */ + function _check_for_trial_plans( $plans ) { + $this->_storage->has_trial_plan = FS_Plan_Manager::instance()->has_trial_plan( $plans ); + } + + /** + * Show trial promotional notice (if any trial exist). + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + */ + function _add_trial_notice() { + // Check if trial already utilized. + if ( $this->_site->is_trial_utilized() ) { + return; + } + + // Check if already paying. + if ( $this->is_paying() ) { + return; + } + + // Check if trial message is already shown. + if ( $this->_admin_notices->has_sticky( 'trial_promotion' ) ) { + return; + } + + $trial_plans = FS_Plan_Manager::instance()->get_trial_plans( $this->_plans ); + $trial_plans_count = count( $trial_plans ); + + // Check if any of the plans contains trial. + if ( 0 === $trial_plans_count ) { + return; + } + + /** + * @var FS_Plugin_Plan $paid_plan + */ + $paid_plan = $trial_plans[0]; + $require_subscription = $paid_plan->is_require_subscription; + $upgrade_url = $this->get_trial_url(); + $cc_string = $require_subscription ? + sprintf( __fs( 'no-commitment-for-x-days', $this->_slug ), $paid_plan->trial_period ) : + __fs( 'no-cc-required', $this->_slug ) . '!'; + + + $total_paid_plans = count( $this->_plans ) - ( FS_Plan_Manager::instance()->has_free_plan( $this->_plans ) ? 1 : 0 ); + + if ( $total_paid_plans === $trial_plans_count ) { + // All paid plans have trials. + $message = sprintf( + __fs( 'hey', $this->_slug ) . '! ' . __fs( 'trial-x-promotion-message', $this->_slug ), + sprintf( '<b>%s</b>', $this->get_plugin_name() ), + strtolower( __fs( 'awesome', $this->_slug ) ), + $paid_plan->trial_period + ); + } else { + $plans_string = ''; + for ( $i = 0; $i < $trial_plans_count; $i ++ ) { + $plans_string .= sprintf( '<a href="%s">%s</a>', $upgrade_url, $trial_plans[ $i ]->title ); + + if ( $i < $trial_plans_count - 2 ) { + $plans_string .= ', '; + } else if ( $i == $trial_plans_count - 2 ) { + $plans_string .= ' and '; + } + } + + // Not all paid plans have trials. + $message = sprintf( + __fs( 'hey', $this->_slug ) . '! ' . __fs( 'trial-x-promotion-message', $this->_slug ), + sprintf( '<b>%s</b>', $this->get_plugin_name() ), + $plans_string, + $paid_plan->trial_period + ); + } + + $message .= ' ' . $cc_string; + + // Add start trial button. + $message .= ' ' . sprintf( + '<a style="margin-left: 10px; vertical-align: super;" href="%s"><button class="button button-primary">%s ➜</button></a>', + $upgrade_url, + __fs( 'start-free-trial', $this->_slug ) + ); + + $this->_admin_notices->add_sticky( + $this->apply_filters( 'trial_promotion_message', $message ), + 'trial_promotion', + '', + 'promotion' + ); + + $this->_storage->trial_promotion_shown = WP_FS__SCRIPT_START_TIME; + } + + /* Action Links + ------------------------------------------------------------------------------------------------------------------*/ + private $_action_links_hooked = false; + private $_action_links = array(); + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.0 + * + * @return bool + */ + private function is_plugin_action_links_hooked() { + $this->_logger->entrance( json_encode( $this->_action_links_hooked ) ); + + return $this->_action_links_hooked; + } + + /** + * Hook to plugin action links filter. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.0 + */ + private function hook_plugin_action_links() { + $this->_logger->entrance(); + + $this->_action_links_hooked = true; + + $this->_logger->log( 'Adding action links hooks.' ); + + // Add action link to settings page. + add_filter( 'plugin_action_links_' . $this->_plugin_basename, array( + &$this, + '_modify_plugin_action_links_hook' + ), WP_FS__DEFAULT_PRIORITY, 2 ); + add_filter( 'network_admin_plugin_action_links_' . $this->_plugin_basename, array( + &$this, + '_modify_plugin_action_links_hook' + ), WP_FS__DEFAULT_PRIORITY, 2 ); + } + + /** + * Add plugin action link. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.0 + * + * @param $label + * @param $url + * @param bool $external + * @param int $priority + * @param bool $key + */ + function add_plugin_action_link( $label, $url, $external = false, $priority = WP_FS__DEFAULT_PRIORITY, $key = false ) { + $this->_logger->entrance(); + + if ( ! isset( $this->_action_links[ $priority ] ) ) { + $this->_action_links[ $priority ] = array(); + } + + if ( false === $key ) { + $key = preg_replace( "/[^A-Za-z0-9 ]/", '', strtolower( $label ) ); + } + + $this->_action_links[ $priority ][] = array( + 'label' => $label, + 'href' => $url, + 'key' => $key, + 'external' => $external + ); + } + + /** + * Adds Upgrade and Add-Ons links to the main Plugins page link actions collection. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.0 + */ + function _add_upgrade_action_link() { + $this->_logger->entrance(); + + if ( $this->is_registered() ) { + if ( ! $this->is_paying() && $this->has_paid_plan() ) { + $this->add_plugin_action_link( + __fs( 'upgrade', $this->_slug ), + $this->get_upgrade_url(), + false, + 7, + 'upgrade' + ); + } + + if ( $this->has_addons() ) { + $this->add_plugin_action_link( + __fs( 'add-ons', $this->_slug ), + $this->_get_admin_page_url( 'addons' ), + false, + 9, + 'addons' + ); + } + } + } + + /** + * Get the URL of the page that should be loaded right after the plugin activation. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.4 + * + * @return string + */ + function get_after_plugin_activation_redirect_url() { + $url = false; + $plugin_fs = false; + + if ( ! $this->is_addon() ) { + $first_time_path = $this->_menu->get_first_time_path(); + $plugin_fs = $this; + $url = $plugin_fs->is_activation_mode() ? + $plugin_fs->get_activation_url() : + ( empty( $first_time_path ) ? + $this->_get_admin_page_url() : + $first_time_path ); + } else { + if ( $this->is_parent_plugin_installed() ) { + $plugin_fs = self::get_parent_instance(); + } + + if ( is_object( $plugin_fs ) ) { + if ( ! $plugin_fs->is_registered() ) { + // Forward to parent plugin connect when parent not registered. + $url = $plugin_fs->get_activation_url(); + } else { + // Forward to account page. + $url = $plugin_fs->_get_admin_page_url( 'account' ); + } + } + } + + return $url; + } + + /** + * Forward page to activation page. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + */ + function _redirect_on_activation_hook() { + $url = $this->get_after_plugin_activation_redirect_url(); + + if ( is_string( $url ) ) { + fs_redirect( $url ); + exit(); + } + } + + /** + * Modify plugin's page action links collection. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.0 + * + * @param array $links + * @param $file + * + * @return array + */ + function _modify_plugin_action_links_hook( $links, $file ) { + $this->_logger->entrance(); + + $passed_deactivate = false; + $deactivate_link = ''; + $before_deactivate = array(); + $after_deactivate = array(); + foreach ( $links as $key => $link ) { + if ( 'deactivate' === $key ) { + $deactivate_link = $link; + $passed_deactivate = true; + continue; + } + + if ( ! $passed_deactivate ) { + $before_deactivate[ $key ] = $link; + } else { + $after_deactivate[ $key ] = $link; + } + } + + ksort( $this->_action_links ); + + foreach ( $this->_action_links as $new_links ) { + foreach ( $new_links as $link ) { + $before_deactivate[ $link['key'] ] = '<a href="' . $link['href'] . '"' . ( $link['external'] ? ' target="_blank"' : '' ) . '>' . $link['label'] . '</a>'; + } + } + + if ( ! empty( $deactivate_link ) ) { + if ( ! $this->is_paying_or_trial() || $this->is_premium() ) { + /* + * This HTML element is used to identify the correct plugin when attaching an event to its Deactivate link. + * + * If user is paying or in trial and have the free version installed, + * assume that the deactivation is for the upgrade process, so this is not needed. + */ + $deactivate_link .= '<i class="fs-slug" data-slug="' . $this->_slug . '"></i>'; + } + + // Append deactivation link. + $before_deactivate['deactivate'] = $deactivate_link; + } + + return array_merge( $before_deactivate, $after_deactivate ); + } + + /** + * Adds admin message. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param string $message + * @param string $title + * @param string $type + */ + function add_admin_message( $message, $title = '', $type = 'success' ) { + $this->_admin_notices->add( $message, $title, $type ); + } + + /** + * Adds sticky admin message. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.0 + * + * @param string $message + * @param string $id + * @param string $title + * @param string $type + */ + function add_sticky_admin_message( $message, $id, $title = '', $type = 'success' ) { + $this->_admin_notices->add_sticky( $message, $id, $title, $type ); + } + + /* Plugin Auto-Updates (@since 1.0.4) + ------------------------------------------------------------------------------------------------------------------*/ + /** + * @var string[] + */ + private static $_auto_updated_plugins; + + /** + * @todo TEST IF IT WORKS!!! + * + * Include plugins for automatic updates based on stored settings. + * + * @see http://wordpress.stackexchange.com/questions/131394/how-do-i-exclude-plugins-from-getting-automatically-updated/131404#131404 + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param bool $update Whether to update (not used for plugins) + * @param object $item The plugin's info + * + * @return bool + */ + static function _include_plugins_in_auto_update( $update, $item ) { + // Before version 3.8.2 the $item was the file name of the plugin, + // while in 3.8.2 statistics were added (https://core.trac.wordpress.org/changeset/27905). + $by_slug = ( (int) str_replace( '.', '', get_bloginfo( 'version' ) ) >= 382 ); + + if ( ! isset( self::$_auto_updated_plugins ) ) { + $plugins = self::$_accounts->get_option( 'plugins', array() ); + + $identifiers = array(); + foreach ( $plugins as $p ) { + /** + * @var FS_Plugin $p + */ + if ( isset( $p->auto_update ) && $p->auto_update ) { + $identifiers[] = ( $by_slug ? $p->slug : plugin_basename( $p->file ) ); + } + } + + self::$_auto_updated_plugins = $identifiers; + } + + if ( in_array( $by_slug ? $item->slug : $item, self::$_auto_updated_plugins ) ) { + return true; + } + + // Pass update decision to next filters + return $update; + } + + #region Versioning ------------------------------------------------------------------ + + /** + * Check if Freemius in SDK upgrade mode. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function is_sdk_upgrade_mode() { + return isset( $this->_storage->sdk_upgrade_mode ) ? + $this->_storage->sdk_upgrade_mode : + false; + } + + /** + * Turn SDK upgrade mode off. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function set_sdk_upgrade_complete() { + $this->_storage->sdk_upgrade_mode = false; + } + + /** + * Check if plugin upgrade mode. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function is_plugin_upgrade_mode() { + return isset( $this->_storage->plugin_upgrade_mode ) ? + $this->_storage->plugin_upgrade_mode : + false; + } + + /** + * Turn plugin upgrade mode off. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function set_plugin_upgrade_complete() { + $this->_storage->plugin_upgrade_mode = false; + } + + #endregion ------------------------------------------------------------------ + + #region Permissions ------------------------------------------------------------------ + + /** + * Check if specific permission requested. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @param string $permission + * + * @return bool + */ + function is_permission_requested( $permission ) { + return isset( $this->_permissions[ $permission ] ) && ( true === $this->_permissions[ $permission ] ); + } + + #endregion Permissions ------------------------------------------------------------------ + + #region Marketing ------------------------------------------------------------------ + + /** + * Check if current user purchased any other plugins before. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function has_purchased_before() { + // TODO: Implement has_purchased_before() method. + } + + /** + * Check if current user classified as an agency. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function is_agency() { + // TODO: Implement is_agency() method. + } + + /** + * Check if current user classified as a developer. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function is_developer() { + // TODO: Implement is_developer() method. + } + + /** + * Check if current user classified as a business. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function is_business() { + // TODO: Implement is_business() method. + } + + #endregion ------------------------------------------------------------------ + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-api.php b/wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-api.php new file mode 100644 index 000000000..d2a8a08ba --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-api.php @@ -0,0 +1,455 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.4 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + /** + * Class FS_Api + * + * Wraps Freemius API SDK to handle: + * 1. Clock sync. + * 2. Fallback to HTTP when HTTPS fails. + * 3. Adds caching layer to GET requests. + * 4. Adds consistency for failed requests by using last cached version. + */ + class FS_Api { + /** + * @var FS_Api[] + */ + private static $_instances = array(); + + /** + * @var FS_Option_Manager Freemius options, options-manager. + */ + private static $_options; + + /** + * @var FS_Cache_Manager API Caching layer + */ + private static $_cache; + + /** + * @var int Clock diff in seconds between current server to API server. + */ + private static $_clock_diff; + + /** + * @var Freemius_Api + */ + private $_api; + + /** + * @var string + */ + private $_slug; + + /** + * @var FS_Logger + * @since 1.0.4 + */ + private $_logger; + + /** + * @param string $slug + * @param string $scope 'app', 'developer', 'user' or 'install'. + * @param number $id Element's id. + * @param string $public_key Public key. + * @param bool $is_sandbox + * @param bool|string $secret_key Element's secret key. + * + * @return FS_Api + */ + static function instance( $slug, $scope, $id, $public_key, $is_sandbox, $secret_key = false ) { + $identifier = md5( $slug . $scope . $id . $public_key . ( is_string( $secret_key ) ? $secret_key : '' ) . json_encode( $is_sandbox ) ); + + if ( ! isset( self::$_instances[ $identifier ] ) ) { + self::_init(); + + self::$_instances[ $identifier ] = new FS_Api( $slug, $scope, $id, $public_key, $secret_key, $is_sandbox ); + } + + return self::$_instances[ $identifier ]; + } + + private static function _init() { + if ( isset( self::$_options ) ) { + return; + } + + if ( ! class_exists( 'Freemius_Api' ) ) { + require_once( WP_FS__DIR_SDK . '/Freemius.php' ); + } + + self::$_options = FS_Option_Manager::get_manager( WP_FS__OPTIONS_OPTION_NAME, true ); + self::$_cache = FS_Cache_Manager::get_manager( WP_FS__API_CACHE_OPTION_NAME ); + + self::$_clock_diff = self::$_options->get_option( 'api_clock_diff', 0 ); + Freemius_Api::SetClockDiff( self::$_clock_diff ); + + if ( self::$_options->get_option( 'api_force_http', false ) ) { + Freemius_Api::SetHttp(); + } + } + + /** + * @param string $slug + * @param string $scope 'app', 'developer', 'user' or 'install'. + * @param number $id Element's id. + * @param string $public_key Public key. + * @param bool|string $secret_key Element's secret key. + * @param bool $is_sandbox + */ + private function __construct( $slug, $scope, $id, $public_key, $secret_key, $is_sandbox ) { + $this->_api = new Freemius_Api( $scope, $id, $public_key, $secret_key, $is_sandbox ); + + $this->_slug = $slug; + $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_' . $slug . '_api', WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK ); + } + + /** + * Find clock diff between server and API server, and store the diff locally. + * + * @param bool|int $diff + * + * @return bool|int False if clock diff didn't change, otherwise returns the clock diff in seconds. + */ + private function _sync_clock_diff( $diff = false ) { + $this->_logger->entrance(); + + // Sync clock and store. + $new_clock_diff = ( false === $diff ) ? + Freemius_Api::FindClockDiff() : + $diff; + + if ( $new_clock_diff === self::$_clock_diff ) { + return false; + } + + self::$_clock_diff = $new_clock_diff; + + // Update API clock's diff. + Freemius_Api::SetClockDiff( self::$_clock_diff ); + + // Store new clock diff in storage. + self::$_options->set_option( 'api_clock_diff', self::$_clock_diff, true ); + + return $new_clock_diff; + } + + /** + * Override API call to enable retry with servers' clock auto sync method. + * + * @param string $path + * @param string $method + * @param array $params + * @param bool $retry Is in retry or first call attempt. + * + * @return array|mixed|string|void + */ + private function _call( $path, $method = 'GET', $params = array(), $retry = false ) { + $this->_logger->entrance( $method . ':' . $path ); + + if ( self::is_temporary_down() ) { + $result = $this->get_temporary_unavailable_error(); + } else { + $result = $this->_api->Api( $path, $method, $params ); + + if ( null !== $result && + isset( $result->error ) && + isset( $result->error->code ) && + 'request_expired' === $result->error->code + ) { + if ( ! $retry ) { + $diff = isset( $result->error->timestamp ) ? + ( time() - strtotime( $result->error->timestamp ) ) : + false; + + // Try to sync clock diff. + if ( false !== $this->_sync_clock_diff( $diff ) ) { + // Retry call with new synced clock. + return $this->_call( $path, $method, $params, true ); + } + } + } + } + + if ( null !== $result && isset( $result->error ) && isset( $result->error->message ) ) { + // Log API errors. + $this->_logger->error( $result->error->message ); + } + + return $result; + } + + /** + * Override API call to wrap it in servers' clock sync method. + * + * @param string $path + * @param string $method + * @param array $params + * + * @return array|mixed|string|void + * @throws Freemius_Exception + */ + function call( $path, $method = 'GET', $params = array() ) { + return $this->_call( $path, $method, $params ); + } + + /** + * Get API request URL signed via query string. + * + * @param string $path + * + * @return string + */ + function get_signed_url( $path ) { + return $this->_api->GetSignedUrl( $path ); + } + + /** + * @param string $path + * @param bool $flush + * @param int $expiration (optional) Time until expiration in seconds from now, defaults to 24 hours + * + * @return stdClass|mixed + */ + function get( $path = '/', $flush = false, $expiration = WP_FS__TIME_24_HOURS_IN_SEC ) { + $this->_logger->entrance( $path ); + + $cache_key = $this->get_cache_key( $path ); + + // Always flush during development. + if ( WP_FS__DEV_MODE || $this->_api->IsSandbox() ) { + $flush = true; + } + + $cached_result = self::$_cache->get( $cache_key ); + + if ( $flush || ! self::$_cache->has_valid( $cache_key ) ) { + $result = $this->call( $path ); + + if ( ! is_object( $result ) || isset( $result->error ) ) { + // Api returned an error. + if ( is_object( $cached_result ) && + ! isset( $cached_result ) + ) { + // If there was an error during a newer data fetch, + // fallback to older data version. + $result = $cached_result; + } else { + // If no older data version, return result without + // caching the error. + return $result; + } + } + + self::$_cache->set( $cache_key, $result, $expiration ); + + $cached_result = $result; + } + + return $cached_result; + } + + private function get_cache_key( $path, $method = 'GET', $params = array() ) { + $canonized = $this->_api->CanonizePath( $path ); +// $exploded = explode('/', $canonized); +// return $method . '_' . array_pop($exploded) . '_' . md5($canonized . json_encode($params)); + return $method . ':' . $canonized . ( ! empty( $params ) ? '#' . md5( json_encode( $params ) ) : '' ); + } + + /** + * Test API connectivity. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 If fails, try to fallback to HTTP. + * @since 1.1.6 Added a 5-min caching mechanism, to prevent from overloading the server if the API if + * temporary down. + * + * @return bool True if successful connectivity to the API. + */ + static function test() { + self::_init(); + + $cache_key = 'ping_test'; + + $test = self::$_cache->get_valid( $cache_key, null ); + + if ( is_null( $test ) ) { + $test = Freemius_Api::Test(); + + if ( false === $test && Freemius_Api::IsHttps() ) { + // Fallback to HTTP, since HTTPS fails. + Freemius_Api::SetHttp(); + + self::$_options->set_option( 'api_force_http', true, true ); + + $test = Freemius_Api::Test(); + + if ( false === $test ) { + /** + * API connectivity test fail also in HTTP request, therefore, + * fallback to HTTPS to keep connection secure. + * + * @since 1.1.6 + */ + self::$_options->set_option( 'api_force_http', false, true ); + } + } + + self::$_cache->set( $cache_key, $test, WP_FS__TIME_5_MIN_IN_SEC ); + } + + return $test; + } + + /** + * Check if API is temporary down. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @return bool + */ + static function is_temporary_down() { + self::_init(); + + $test = self::$_cache->get_valid( 'ping_test', null ); + + return ( false === $test ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @return object + */ + private function get_temporary_unavailable_error() { + return (object) array( + 'error' => array( + 'type' => 'TemporaryUnavailable', + 'message' => 'API is temporary unavailable, please retry in ' . ( self::$_cache->get_record_expiration( 'ping_test' ) - WP_FS__SCRIPT_START_TIME ) . ' sec.', + 'code' => 'temporary_unavailable', + 'http' => 503 + ) + ); + } + + /** + * Ping API for connectivity test, and return result object. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param null|string $unique_anonymous_id + * @param array $params + * + * @return object + */ + function ping( $unique_anonymous_id = null, $params = array() ) { + $this->_logger->entrance(); + + if ( self::is_temporary_down() ) { + return $this->get_temporary_unavailable_error(); + } + + $pong = is_null( $unique_anonymous_id ) ? + Freemius_Api::Ping() : + $this->_call( 'ping.json?' . http_build_query( array_merge( + array( 'uid' => $unique_anonymous_id ), + $params + ) ) ); + + if ( $this->is_valid_ping( $pong ) ) { + return $pong; + } + + if ( self::should_try_with_http( $pong ) ) { + // Fallback to HTTP, since HTTPS fails. + Freemius_Api::SetHttp(); + + self::$_options->set_option( 'api_force_http', true, true ); + + $pong = is_null( $unique_anonymous_id ) ? + Freemius_Api::Ping() : + $this->_call( 'ping.json?' . http_build_query( array_merge( + array( 'uid' => $unique_anonymous_id ), + $params + ) ) ); + + if ( ! $this->is_valid_ping( $pong ) ) { + self::$_options->set_option( 'api_force_http', false, true ); + } + } + + return $pong; + } + + /** + * Check if based on the API result we should try + * to re-run the same request with HTTP instead of HTTPS. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @param $result + * + * @return bool + */ + private static function should_try_with_http( $result ) { + if ( ! Freemius_Api::IsHttps() ) { + return false; + } + + return ( ! is_object( $result ) || + ! isset( $result->error ) || + ! isset( $result->error->code ) || + ! in_array( $result->error->code, array( + 'curl_missing', + 'cloudflare_ddos_protection', + 'maintenance_mode', + 'squid_cache_block', + 'too_many_requests', + ) ) ); + + } + + /** + * Check if valid ping request result. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.1 + * + * @param mixed $pong + * + * @return bool + */ + function is_valid_ping( $pong ) { + return Freemius_Api::Test( $pong ); + } + + function get_url( $path = '' ) { + return Freemius_Api::GetUrl( $path, $this->_api->IsSandbox() ); + } + + /** + * Clear API cache. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + */ + static function clear_cache() { + self::_init(); + + self::$_cache = FS_Cache_Manager::get_manager( WP_FS__API_CACHE_OPTION_NAME ); + self::$_cache->clear( true ); + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-logger.php b/wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-logger.php new file mode 100644 index 000000000..6f5fc76ac --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-logger.php @@ -0,0 +1,179 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Logger { + private $_id; + private $_on = false; + private $_echo = false; + private $_file_start = 0; + + private static $LOGGERS = array(); + private static $LOG = array(); + private static $CNT = 0; + private static $_HOOKED_FOOTER = false; + + private function __construct( $id, $on = false, $echo = false ) { + $this->_id = $id; + + $bt = debug_backtrace(); + $caller = $bt[2]; + + $this->_file_start = strpos( $caller['file'], 'plugins' ) + strlen( 'plugins/' ); + + if ( $on ) { + $this->on(); + } + if ( $echo ) { + $this->echo_on(); + } + } + + /** + * @param string $id + * @param bool $on + * @param bool $echo + * + * @return FS_Logger + */ + public static function get_logger( $id, $on = false, $echo = false ) { + $id = strtolower( $id ); + + if ( ! isset( self::$LOGGERS[ $id ] ) ) { + self::$LOGGERS[ $id ] = new FS_Logger( $id, $on, $echo ); + } + + return self::$LOGGERS[ $id ]; + } + + private static function _hook_footer() { + if ( self::$_HOOKED_FOOTER ) { + return; + } + + if ( is_admin() ) { + add_action( 'admin_footer', 'FS_Logger::dump', 100 ); + } else { + add_action( 'wp_footer', 'FS_Logger::dump', 100 ); + } + } + + function is_on() { + return $this->_on; + } + + function on() { + $this->_on = true; + + self::_hook_footer(); + } + + function echo_on() { + $this->on(); + + $this->_echo = true; + } + + function is_echo_on() { + return $this->_echo; + } + + function get_id() { + return $this->_id; + } + + function get_file() { + return $this->_file_start; + } + + private function _log( &$message, $type = 'log', $wrapper ) { + if ( ! $this->is_on() ) { + return; + } + + $bt = debug_backtrace(); + $depth = $wrapper ? 3 : 2; + while ( $depth < count( $bt ) - 1 && 'eval' === $bt[ $depth ]['function'] ) { + $depth ++; + } + + $caller = $bt[ $depth ]; + + $log = array_merge( $caller, array( + 'cnt' => self::$CNT ++, + 'logger' => $this, + 'timestamp' => microtime(true), + 'type' => $type, + 'msg' => $message, + ) ); + + self::$LOG[] = $log; + + if ( $this->is_echo_on() ) { + echo self::format_html( $log ) . "\n"; + } + } + + function log( $message, $wrapper = false ) { + $this->_log( $message, 'log', $wrapper ); + } + + function info( $message, $wrapper = false ) { + $this->_log( $message, 'info', $wrapper ); + } + + function warn( $message, $wrapper = false ) { + $this->_log( $message, 'warn', $wrapper ); + } + + function error( $message, $wrapper = false ) { + $this->_log( $message, 'error', $wrapper ); + } + + function entrance( $message = '', $wrapper = false ) { + $msg = 'Entrance' . ( empty( $message ) ? '' : ' > ' ) . $message; + + $this->_log( $msg, 'log', $wrapper ); + } + + function departure( $message = '', $wrapper = false ) { + $msg = 'Departure' . ( empty( $message ) ? '' : ' > ' ) . $message; + + $this->_log( $msg, 'log', $wrapper ); + } + + private static function format( $log, $show_type = true ) { + return '[' . str_pad( $log['cnt'], strlen( self::$CNT ), '0', STR_PAD_LEFT ) . '] [' . $log['logger']->_id . '] ' . ( $show_type ? '[' . $log['type'] . ']' : '' ) . $log['function'] . ' >> ' . $log['msg'] . ( isset( $log['file'] ) ? ' (' . substr( $log['file'], $log['logger']->_file_start ) . ' ' . $log['line'] . ') ' : '' ) . ' [' . $log['timestamp'] . ']'; + } + + private static function format_html( $log ) { + return '<div style="font-size: 11px; padding: 3px; background: #ccc; margin-bottom: 3px;">[' . $log['cnt'] . '] [' . $log['logger']->_id . '] [' . $log['type'] . '] <b><code style="color: blue;">' . $log['function'] . '</code> >> <b style="color: darkorange;">' . $log['msg'] . '</b></b>' . ( isset( $log['file'] ) ? ' (' . substr( $log['file'], $log['logger']->_file_start ) . ' ' . $log['line'] . ')' : '' ) . ' [' . $log['timestamp'] . ']</div>'; + } + + static function dump() { + ?> + <!-- BEGIN: Freemius PHP Console Log --> + <script type="text/javascript"> + <?php + foreach (self::$LOG as $log) + { + echo 'console.' . $log['type'] . '(' . json_encode(self::format($log, false)) . ')' . "\n"; + } + ?> + </script> + <!-- END: Freemius PHP Console Log --> + <?php + } + + static function get_log() { + return self::$LOG; + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-plugin-updater.php b/wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-plugin-updater.php new file mode 100644 index 000000000..15fc78720 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-plugin-updater.php @@ -0,0 +1,334 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.4 + * + * @link https://github.com/easydigitaldownloads/EDD-License-handler/blob/master/EDD_SL_Plugin_Updater.php + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + // Uncomment this line for testing. +// set_site_transient( 'update_plugins', null ); + + class FS_Plugin_Updater { + + /** + * @var Freemius + * @since 1.0.4 + */ + private $_fs; + /** + * @var FS_Logger + * @since 1.0.4 + */ + private $_logger; + /** + * @var object + * @since 1.1.8.1 + */ + private $_update_details; + + function __construct( Freemius $freemius ) { + $this->_fs = $freemius; + + $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_' . $freemius->get_slug() . '_updater', WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK ); + + $this->_filters(); + } + + /** + * Initiate required filters. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + */ + private function _filters() { + // Override request for plugin information + add_filter( 'plugins_api', array( &$this, 'plugins_api_filter' ), 10, 3 ); + + // WP 3.0+ + add_filter( 'pre_set_site_transient_update_plugins', array( + &$this, + 'pre_set_site_transient_update_plugins_filter' + ) ); + + if ( ! $this->_fs->has_active_license() ) { + /** + * If user has the premium plugin's code but do NOT have an active license, + * encourage him to upgrade by showing that there's a new release, but instead + * of showing an update link, show upgrade link to the pricing page. + * + * @since 1.1.6 + * + */ + // WP 2.9+ + add_action( "after_plugin_row_{$this->_fs->get_plugin_basename()}", array( + &$this, + 'catch_plugin_update_row' + ), 9 ); + add_action( "after_plugin_row_{$this->_fs->get_plugin_basename()}", array( + &$this, + 'edit_and_echo_plugin_update_row' + ), 11, 2 ); + } + + if ( ! WP_FS__IS_PRODUCTION_MODE ) { + add_filter( 'http_request_host_is_external', array( + $this, + 'http_request_host_is_external_filter' + ), 10, 3 ); + } + } + + /** + * Capture plugin update row by turning output buffering. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + */ + function catch_plugin_update_row() { + ob_start(); + } + + /** + * Overrides default update message format with "renew your license" message. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + */ + function edit_and_echo_plugin_update_row( $file, $plugin_data ) { + $plugin_update_row = ob_get_clean(); + + $current = get_site_transient( 'update_plugins' ); + if ( ! isset( $current->response[ $file ] ) ) { + echo $plugin_update_row; + + return false; + } + + $r = $current->response[ $file ]; + + $plugin_update_row = preg_replace( + '/(\<div.+>)(.+)(\<a.+\<a.+)\<\/div\>/is', + '$1 $2 ' . sprintf( + __fs( 'renew-license-now' ), + '<a href="' . $this->_fs->pricing_url() . '">', '</a>', + $r->new_version ) . + '$4', + $plugin_update_row + ); + + echo $plugin_update_row; + } + + /** + * Since WP version 3.6, a new security feature was added that denies access to repository with a local ip. + * During development mode we want to be able updating plugin versions via our localhost repository. This + * filter white-list all domains including "api.freemius". + * + * @link http://www.emanueletessore.com/wordpress-download-failed-valid-url-provided/ + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param bool $allow + * @param string $host + * @param string $url + * + * @return bool + */ + function http_request_host_is_external_filter( $allow, $host, $url ) { + return ( false !== strpos( $host, 'freemius' ) ) ? true : $allow; + } + + /** + * Check for Updates at the defined API endpoint and modify the update array. + * + * This function dives into the update api just when WordPress creates its update array, + * then adds a custom API call and injects the custom plugin data retrieved from the API. + * It is reassembled from parts of the native WordPress plugin update code. + * See wp-includes/update.php line 121 for the original wp_update_plugins() function. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @uses FS_Api + * + * @param stdClass $transient_data Update array build by WordPress. + * + * @return array Modified update array with custom plugin data. + */ + function pre_set_site_transient_update_plugins_filter( $transient_data ) { + $this->_logger->entrance(); + + if ( empty( $transient_data ) || + defined( 'WP_FS__UNINSTALL_MODE' ) + ) { + return $transient_data; + } + + if ( ! isset( $this->_update_details ) ) { + // Get plugin's newest update. + $new_version = $this->_fs->get_update( false, false ); + + $this->_update_details = false; + + if ( is_object( $new_version ) ) { + $this->_logger->log( 'Found newer plugin version ' . $new_version->version ); + + $plugin_details = new stdClass(); + $plugin_details->slug = $this->_fs->get_slug(); + $plugin_details->new_version = $new_version->version; + $plugin_details->url = WP_FS__ADDRESS; + $plugin_details->package = $new_version->url; + $plugin_details->plugin = $this->_fs->get_plugin_basename(); + + /** + * Cache plugin details locally since set_site_transient( 'update_plugins' ) + * called multiple times and the non wp.org plugins are filtered after the + * call to .org. + * + * @since 1.1.8.1 + */ + $this->_update_details = $plugin_details; + } + } + + if ( is_object( $this->_update_details ) ) { + // Add plugin to transient data. + $transient_data->response[ $this->_fs->get_plugin_basename() ] = $this->_update_details; + } + + return $transient_data; + } + + /** + * Try to fetch plugin's info from .org repository. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @param string $action + * @param object $args + * + * @return bool|mixed + */ + static function _fetch_plugin_info_from_repository( $action, $args ) { + $url = $http_url = 'http://api.wordpress.org/plugins/info/1.0/'; + if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) { + $url = set_url_scheme( $url, 'https' ); + } + + $args = array( + 'timeout' => 15, + 'body' => array( + 'action' => $action, + 'request' => serialize( $args ) + ) + ); + + $request = wp_remote_post( $url, $args ); + + if ( is_wp_error( $request ) ) { + return false; + } + + $res = maybe_unserialize( wp_remote_retrieve_body( $request ) ); + + if ( ! is_object( $res ) && ! is_array( $res ) ) { + return false; + } + + return $res; + } + + /** + * Updates information on the "View version x.x details" page with custom data. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @uses FS_Api + * + * @param object $data + * @param string $action + * @param mixed $args + * + * @return object + */ + function plugins_api_filter( $data, $action = '', $args = null ) { + $this->_logger->entrance(); + + if ( ( 'plugin_information' !== $action ) || + ! isset( $args->slug ) + ) { + return $data; + } + + $addon = false; + $is_addon = false; + + if ( $this->_fs->get_slug() !== $args->slug ) { + $addon = $this->_fs->get_addon_by_slug( $args->slug ); + + if ( ! is_object( $addon ) ) { + return $data; + } + + $is_addon = true; + } + + $plugin_in_repo = false; + if ( ! $is_addon ) { + // Try to fetch info from .org repository. + $data = self::_fetch_plugin_info_from_repository( $action, $args ); + + $plugin_in_repo = ( false !== $data ); + } + + if ( ! $plugin_in_repo ) { + $data = $args; + + // Fetch as much as possible info from local files. + $plugin_local_data = $this->_fs->get_plugin_data(); + $data->name = $plugin_local_data['Name']; + $data->author = $plugin_local_data['Author']; + $data->sections = array( + 'description' => 'Upgrade ' . $plugin_local_data['Name'] . ' to latest.', + ); + + // @todo Store extra plugin info on Freemius or parse readme.txt markup. + /*$info = $this->_fs->get_api_site_scope()->call('/information.json'); + +if ( !isset($info->error) ) { + $data = $info; +}*/ + } + + // Get plugin's newest update. + $new_version = $this->_fs->_fetch_latest_version( $is_addon ? $addon->id : false ); + + if ( $is_addon ) { + $data->name = $addon->title . ' ' . __fs( 'addon', $this->_fs->get_slug() ); + $data->slug = $addon->slug; + $data->url = WP_FS__ADDRESS; + $data->package = $new_version->url; + } + + if ( ! $plugin_in_repo ) { + $data->last_updated = ! is_null( $new_version->updated ) ? $new_version->updated : $new_version->created; + $data->requires = $new_version->requires_platform_version; + $data->tested = $new_version->tested_up_to_version; + } + + $data->version = $new_version->version; + $data->download_link = $new_version->url; + + return $data; + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-security.php b/wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-security.php new file mode 100644 index 000000000..aa4d4ac0c --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/class-fs-security.php @@ -0,0 +1,61 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + define( 'WP_FS__SECURITY_PARAMS_PREFIX', 's_' ); + + class FS_Security { + /** + * @var FS_Security + * @since 1.0.3 + */ + private static $_instance; + /** + * @var FS_Logger + * @since 1.0.3 + */ + private static $_logger; + + public static function instance() { + if ( ! isset( self::$_instance ) ) { + self::$_instance = new FS_Security(); + self::$_logger = FS_Logger::get_logger( WP_FS__SLUG, WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK ); + } + + return self::$_instance; + } + + private function __construct() { + } + + function get_secure_token( FS_Scope_Entity $entity, $timestamp, $action = '' ) { + return md5( + $timestamp . + $entity->id . + $entity->secret_key . + $entity->public_key . + $action + ); + } + + function get_context_params( FS_Scope_Entity $entity, $timestamp = false, $action = '' ) { + if ( false === $timestamp ) { + $timestamp = time(); + } + + return array( + 's_ctx_type' => $entity->get_type(), + 's_ctx_id' => $entity->id, + 's_ctx_ts' => $timestamp, + 's_ctx_secure' => $this->get_secure_token( $entity, $timestamp, $action ), + ); + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/debug/class-fs-debug-bar-panel.php b/wp-content/plugins/nextgen-gallery/freemius/includes/debug/class-fs-debug-bar-panel.php new file mode 100644 index 000000000..1c3259bdf --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/debug/class-fs-debug-bar-panel.php @@ -0,0 +1,64 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.1.7.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + /** + * Extends Debug Bar plugin by adding a panel to show all Freemius API requests. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + * Class Freemius_Debug_Bar_Panel + */ + class Freemius_Debug_Bar_Panel extends Debug_Bar_Panel { + function init() { + $this->title( 'Freemius' ); + } + + static function requests_count() { + if ( class_exists( 'Freemius_Api' ) ) { + $logger = Freemius_Api::GetLogger(); + } else { + $logger = array(); + } + + return number_format( count( $logger ) ); + } + + static function total_time() { + if ( class_exists( 'Freemius_Api' ) ) { + $logger = Freemius_Api::GetLogger(); + } else { + $logger = array(); + } + + $total_time = .0; + foreach ( $logger as $l ) { + $total_time += $l['total']; + } + + return number_format( 100 * $total_time, 2 ) . ' ' . __fs( 'ms' ); + } + + function render() { + ?> + <div id='debug-bar-php'> + <?php fs_require_template( '/debug/api-calls.php' ) ?> + <br> + <?php fs_require_template( '/debug/scheduled-crons.php' ) ?> + <br> + <?php fs_require_template( '/debug/plugins-themes-sync.php' ) ?> + <br> + <?php fs_require_template( '/debug/logger.php' ) ?> + </div> + <?php + } + } diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/debug/debug-bar-start.php b/wp-content/plugins/nextgen-gallery/freemius/includes/debug/debug-bar-start.php new file mode 100644 index 000000000..852dfd7ce --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/debug/debug-bar-start.php @@ -0,0 +1,52 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.1.7.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + if ( ! WP_FS__DEBUG_SDK ) { + return; + } + + /** + * Initialize Freemius custom debug panels. + * + * @param array $panels Debug bar panels objects + * + * @return array Debug bar panels with your custom panels + */ + function fs_custom_panels_init( $panels ) { + if ( class_exists( 'Debug_Bar_Panel' ) ) { + if ( FS_API__LOGGER_ON ) { + require_once dirname( __FILE__ ) . '/class-fs-debug-bar-panel.php'; + $panels[] = new Freemius_Debug_Bar_Panel(); + } + } + + return $panels; + } + + function fs_custom_status_init( $statuses ) { + if ( class_exists( 'Debug_Bar_Panel' ) ) { + if ( FS_API__LOGGER_ON ) { + require_once dirname( __FILE__ ) . '/class-fs-debug-bar-panel.php'; + $statuses[] = array( + 'fs_api_requests', + __fs( 'Freemius API' ), + Freemius_Debug_Bar_Panel::requests_count() . ' ' . __fs( 'Requests' ) . + ' (' . Freemius_Debug_Bar_Panel::total_time() . ')' + ); + } + } + + return $statuses; + } + + add_filter( 'debug_bar_panels', 'fs_custom_panels_init' ); + add_filter( 'debug_bar_statuses', 'fs_custom_status_init' ); \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-entity.php b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-entity.php new file mode 100644 index 000000000..125b1911c --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-entity.php @@ -0,0 +1,149 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + /** + * Get object's public variables. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.0 + * + * @param object $object + * + * @return array + */ + function fs_get_object_public_vars( $object ) { + return get_object_vars( $object ); + } + + class FS_Entity { + /** + * @var number + */ + public $id; + /** + * @var string Datetime value in 'YYYY-MM-DD HH:MM:SS' format. + */ + public $updated; + /** + * @var string Datetime value in 'YYYY-MM-DD HH:MM:SS' format. + */ + public $created; + + /** + * @param bool|stdClass $entity + */ + function __construct( $entity = false ) { + if ( ! ( $entity instanceof stdClass ) ) { + return; + } + + $props = fs_get_object_public_vars( $this ); + + foreach ( $props as $key => $def_value ) { + $this->{$key} = isset( $entity->{$key} ) ? + $entity->{$key} : + $def_value; + } + } + + static function get_type() { + return 'type'; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param FS_Entity $entity1 + * @param FS_Entity $entity2 + * + * @return bool + */ + static function equals( $entity1, $entity2 ) { + if ( is_null( $entity1 ) && is_null( $entity2 ) ) { + return true; + } else if ( is_object( $entity1 ) && is_object( $entity2 ) ) { + return ( $entity1->id == $entity2->id ); + } else if ( is_object( $entity1 ) ) { + return is_null( $entity1->id ); + } else { + return is_null( $entity2->id ); + } + } + + private $_is_updated = false; + + /** + * Update object property. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param string|array[string]mixed $key + * @param string|bool $val + * + * @return bool + */ + function update( $key, $val = false ) { + if ( ! is_array( $key ) ) { + $key = array( $key => $val ); + } + + $is_updated = false; + + foreach ( $key as $k => $v ) { + if ( $this->{$k} === $v ) { + continue; + } + + if ( ( is_string( $this->{$k} ) && is_numeric( $v ) || + ( is_numeric( $this->{$k} ) && is_string( $v ) ) ) && + $this->{$k} == $v + ) { + continue; + } + + // Update value. + $this->{$k} = $v; + + $is_updated = true; + } + + $this->_is_updated = $is_updated; + + return $is_updated; + } + + /** + * Checks if entity was updated. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function is_updated() { + return $this->_is_updated; + } + + /** + * @param $id + * + * @author Vova Feldman (@svovaf) + * @since 1.1.2 + * + * @return bool + */ + static function is_valid_id($id){ + return is_numeric($id); + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-info.php b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-info.php new file mode 100644 index 000000000..33d2d2bb2 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-info.php @@ -0,0 +1,34 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Plugin_Info extends FS_Entity { + public $plugin_id; + public $description; + public $short_description; + public $banner_url; + public $card_banner_url; + public $selling_point_0; + public $selling_point_1; + public $selling_point_2; + public $screenshots; + + /** + * @param stdClass|bool $plugin_info + */ + function __construct( $plugin_info = false ) { + parent::__construct( $plugin_info ); + } + + static function get_type() { + return 'plugin'; + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-license.php b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-license.php new file mode 100644 index 000000000..655605f34 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-license.php @@ -0,0 +1,172 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.5 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Plugin_License extends FS_Entity { + + #region Properties + + /** + * @var number + */ + public $plugin_id; + /** + * @var number + */ + public $user_id; + /** + * @var number + */ + public $plan_id; + /** + * @var number + */ + public $pricing_id; + /** + * @var int|null + */ + public $quota; + /** + * @var int + */ + public $activated; + /** + * @var int + */ + public $activated_local; + /** + * @var string + */ + public $expiration; + /** + * @var bool $is_free_localhost Defaults to true. If true, allow unlimited localhost installs with the same + * license. + */ + public $is_free_localhost; + /** + * @var bool $is_block_features Defaults to true. If false, don't block features after license expiry - only + * block updates and support. + */ + public $is_block_features; + /** + * @var bool + */ + public $is_cancelled; + + #endregion Properties + + /** + * @param stdClass|bool $license + */ + function __construct( $license = false ) { + parent::__construct( $license ); + } + + static function get_type() { + return 'license'; + } + + /** + * Check how many site activations left. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @return int + */ + function left() { + if ( $this->is_expired() ) { + return 0; + } + + return ( $this->quota - $this->activated - ( $this->is_free_localhost ? 0 : $this->activated_local ) ); + } + + /** + * Check if single site license. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.8.1 + * + * @return bool + */ + function is_single_site() { + return ( is_numeric( $this->quota ) && 1 == $this->quota ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.5 + * + * @return bool + */ + function is_expired() { + return ! $this->is_lifetime() && ( strtotime( $this->expiration ) < WP_FS__SCRIPT_START_TIME ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return bool + */ + function is_lifetime() { + return is_null( $this->expiration ); + } + + /** + * Check if license is fully utilized. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param bool $is_localhost + * + * @return bool + */ + function is_utilized( $is_localhost = null ) { + if ( is_null( $is_localhost ) ) { + $is_localhost = WP_FS__IS_LOCALHOST_FOR_SERVER; + } + + return ! ( $this->is_free_localhost && $is_localhost ) && + ( $this->quota <= $this->activated + ( $this->is_free_localhost ? 0 : $this->activated_local ) ); + } + + /** + * Check if license's plan features are enabled. + * + * - Either if plan not expired + * - If expired, based on the configuration to block features or not. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return bool + */ + function is_features_enabled() { + return ( ! $this->is_block_features || ! $this->is_expired() ); + } + + /** + * Subscription considered to be new without any payments + * if the license expires in less than 24 hours + * from the license creation. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function is_first_payment_pending() { + return ( WP_FS__TIME_24_HOURS_IN_SEC >= strtotime( $this->expiration ) - strtotime( $this->created ) ); + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-plan.php b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-plan.php new file mode 100644 index 000000000..1df50eb2a --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-plan.php @@ -0,0 +1,124 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.5 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Plugin_Plan extends FS_Entity { + + #region Properties + + /** + * @var number + */ + public $plugin_id; + /** + * @var string + */ + public $name; + /** + * @var string + */ + public $title; + /** + * @var string + */ + public $description; + /** + * @var bool Defaults to true. If true, allow unlimited localhost installs with the same license. + */ + public $is_free_localhost; + /** + * @var bool Defaults to true. If false, don't block features after license expiry - only block updates and + * support. + */ + public $is_block_features; + /** + * @var int + */ + public $license_type; + /** + * @var bool + */ + public $is_https_support; + /** + * @var int Trial days. + */ + public $trial_period; + /** + * @var string If true, require payment for trial. + */ + public $is_require_subscription; + /** + * @var string Knowledge Base URL. + */ + public $support_kb; + /** + * @var string Support Forum URL. + */ + public $support_forum; + /** + * @var string Support email address. + */ + public $support_email; + /** + * @var string Support phone. + */ + public $support_phone; + /** + * @var string Support skype username. + */ + public $support_skype; + /** + * @var bool Is personal success manager supported with the plan. + */ + public $is_success_manager; + /** + * @var bool Is featured plan. + */ + public $is_featured; + + #endregion Properties + + /** + * @param object|bool $plan + */ + function __construct( $plan = false ) { + parent::__construct( $plan ); + + if ( is_object( $plan ) ) { + $this->name = strtolower( $plan->name ); + } + } + + static function get_type() { + return 'plan'; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function is_free() { + return ( 'free' === $this->name ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function has_trial() { + return ! $this->is_free() && + is_numeric( $this->trial_period ) && ( $this->trial_period > 0 ); + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-tag.php b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-tag.php new file mode 100644 index 000000000..5b859fc30 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin-tag.php @@ -0,0 +1,24 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.4 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Plugin_Tag extends FS_Entity { + public $version; + public $url; + + function __construct( $tag = false ) { + parent::__construct( $tag ); + } + + static function get_type() { + return 'tag'; + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin.php b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin.php new file mode 100644 index 000000000..e166d5838 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-plugin.php @@ -0,0 +1,90 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Plugin extends FS_Scope_Entity { + /** + * @since 1.0.6 + * @var null|number + */ + public $parent_plugin_id; + /** + * @var string + */ + public $title; + /** + * @var string + */ + public $slug; + + #region Install Specific Properties + + /** + * @var string + */ + public $file; + /** + * @var string + */ + public $version; + /** + * @var bool + */ + public $auto_update; + /** + * @var FS_Plugin_Info + */ + public $info; + /** + * @since 1.0.9 + * + * @var bool + */ + public $is_premium; + /** + * @since 1.0.9 + * + * @var bool + */ + public $is_live; + + #endregion Install Specific Properties + + /** + * @param stdClass|bool $plugin + */ + function __construct( $plugin = false ) { + parent::__construct( $plugin ); + + $this->is_premium = false; + $this->is_live = true; + + if ( isset( $plugin->info ) && is_object( $plugin->info ) ) { + $this->info = new FS_Plugin_Info( $plugin->info ); + } + } + + /** + * Check if plugin is an add-on (has parent). + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return bool + */ + function is_addon() { + return isset( $this->parent_plugin_id ) && is_numeric( $this->parent_plugin_id ); + } + + static function get_type() { + return 'plugin'; + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-pricing.php b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-pricing.php new file mode 100644 index 000000000..fb70b5aef --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-pricing.php @@ -0,0 +1,141 @@ +<?php + /** + * @package Freemius for EDD Add-On + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.0 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Pricing extends FS_Entity { + + #region Properties + + /** + * @var number + */ + public $plan_id; + /** + * @var int + */ + public $licenses; + /** + * @var null|float + */ + public $monthly_price; + /** + * @var null|float + */ + public $annual_price; + /** + * @var null|float + */ + public $lifetime_price; + + #endregion Properties + + /** + * @param object|bool $pricing + */ + function __construct( $pricing = false ) { + parent::__construct( $pricing ); + } + + static function get_type() { + return 'pricing'; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.8 + * + * @return bool + */ + function has_monthly() { + return ( is_numeric( $this->monthly_price ) && $this->monthly_price > 0 ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.8 + * + * @return bool + */ + function has_annual() { + return ( is_numeric( $this->annual_price ) && $this->annual_price > 0 ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.8 + * + * @return bool + */ + function has_lifetime() { + return ( is_numeric( $this->lifetime_price ) && $this->lifetime_price > 0 ); + } + + /** + * Check if unlimited licenses pricing. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.8 + * + * @return bool + */ + function is_unlimited() { + return is_null( $this->licenses ); + } + + + /** + * Check if pricing has more than one billing cycle. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.8 + * + * @return bool + */ + function is_multi_cycle() { + $cycles = 0; + if ( $this->has_monthly() ) { + $cycles ++; + } + if ( $this->has_annual() ) { + $cycles ++; + } + if ( $this->has_lifetime() ) { + $cycles ++; + } + + return $cycles > 1; + } + + /** + * Get annual over monthly discount. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.8 + * + * @return int + */ + function annual_discount_percentage() { + return floor( $this->annual_savings() / ( $this->monthly_price * 12 * ( $this->is_unlimited() ? 1 : $this->licenses ) ) * 100 ); + } + + /** + * Get annual over monthly savings. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.8 + * + * @return float + */ + function annual_savings() { + return ( $this->monthly_price * 12 - $this->annual_price ) * ( $this->is_unlimited() ? 1 : $this->licenses ); + } + + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-scope-entity.php b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-scope-entity.php new file mode 100644 index 000000000..c9108d647 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-scope-entity.php @@ -0,0 +1,29 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.4 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Scope_Entity extends FS_Entity { + /** + * @var string + */ + public $public_key; + /** + * @var string + */ + public $secret_key; + + /** + * @param bool|stdClass $scope_entity + */ + function __construct( $scope_entity = false ) { + parent::__construct( $scope_entity ); + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-site.php b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-site.php new file mode 100644 index 000000000..1c9393bdf --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-site.php @@ -0,0 +1,127 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Site extends FS_Scope_Entity { + /** + * @var string + */ + public $slug; + /** + * @var number + */ + public $site_id; + /** + * @var number + */ + public $plugin_id; + /** + * @var number + */ + public $user_id; + /** + * @var string + */ + public $title; + /** + * @var string + */ + public $url; + /** + * @var string + */ + public $version; + /** + * @var string E.g. en-GB + */ + public $language; + /** + * @var string E.g. UTF-8 + */ + public $charset; + /** + * @var string Platform version (e.g WordPress version). + */ + public $platform_version; + /** + * @var string Programming language version (e.g PHP version). + */ + public $programming_language_version; + /** + * @var FS_Plugin_Plan $plan + */ + public $plan; + /** + * @var number|null + */ + public $license_id; + /** + * @var number|null + */ + public $trial_plan_id; + /** + * @var string|null + */ + public $trial_ends; + /** + * @since 1.0.9 + * + * @var bool + */ + public $is_premium = false; + + /** + * @param stdClass|bool $site + */ + function __construct( $site = false ) { + $this->plan = new FS_Plugin_Plan(); + + parent::__construct( $site ); + + if ( is_object( $site ) ) { + $this->plan->id = $site->plan_id; + } + } + + static function get_type() { + return 'install'; + } + + function is_localhost() { + // The server has no way to verify if localhost unless localhost appears in domain. + return WP_FS__IS_LOCALHOST_FOR_SERVER; +// return (substr($_SERVER['REMOTE_ADDR'], 0, 4) == '127.' || $_SERVER['REMOTE_ADDR'] == '::1'); + } + + /** + * Check if site in trial. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function is_trial() { + return is_numeric( $this->trial_plan_id ) && ( strtotime( $this->trial_ends ) > WP_FS__SCRIPT_START_TIME ); + } + + /** + * Check if user already utilized the trial with the current install. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function is_trial_utilized() { + return is_numeric( $this->trial_plan_id ); + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-subscription.php b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-subscription.php new file mode 100644 index 000000000..0041df0e9 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-subscription.php @@ -0,0 +1,125 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.9 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Subscription extends FS_Entity { + + #region Properties + + /** + * @var number + */ + public $user_id; + /** + * @var number + */ + public $install_id; + /** + * @var number + */ + public $plan_id; + /** + * @var number + */ + public $license_id; + /** + * @var float + */ + public $total_gross; + /** + * @var float + */ + public $amount_per_cycle; + /** + * @var int # of months + */ + public $billing_cycle; + /** + * @var float + */ + public $outstanding_balance; + /** + * @var int + */ + public $failed_payments; + /** + * @var string + */ + public $gateway; + /** + * @var string + */ + public $external_id; + /** + * @var string|null + */ + public $trial_ends; + /** + * @var string|null Datetime of the next payment, or null if cancelled + */ + public $next_payment; + /** + * @var string|null + */ + public $vat_id; + /** + * @var string Two characters country code + */ + public $country_code; + + #endregion Properties + + /** + * @param object|bool $subscription + */ + function __construct( $subscription = false ) { + parent::__construct( $subscription ); + } + + static function get_type() { + return 'subscription'; + } + + /** + * Check if subscription is active. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function is_active() { + return ! empty( $this->next_payment ) && + ( strtotime( $this->next_payment ) > WP_FS__SCRIPT_START_TIME ); + } + + /** + * Subscription considered to be new without any payments + * if the next payment should be made within less than 24 hours + * from the subscription creation. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return bool + */ + function is_first_payment_pending() { + return ( WP_FS__TIME_24_HOURS_IN_SEC >= strtotime( $this->next_payment ) - strtotime( $this->created ) ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7 + */ + function has_trial() { + return ! is_null( $this->trial_ends ); + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-user.php b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-user.php new file mode 100644 index 000000000..d80f7b447 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/entities/class-fs-user.php @@ -0,0 +1,62 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_User extends FS_Scope_Entity { + + #region Properties + + /** + * @var string + */ + public $email; + /** + * @var string + */ + public $first; + /** + * @var string + */ + public $last; + /** + * @var bool + */ + public $is_verified; + /** + * @var string|null + */ + public $customer_id; + /** + * @var float + */ + public $gross; + + #endregion Properties + + /** + * @param object|bool $user + */ + function __construct( $user = false ) { + parent::__construct( $user ); + } + + function get_name() { + return trim( ucfirst( trim( is_string( $this->first ) ? $this->first : '' ) ) . ' ' . ucfirst( trim( is_string( $this->last ) ? $this->last : '' ) ) ); + } + + function is_verified() { + return ( isset( $this->is_verified ) && true === $this->is_verified ); + } + + static function get_type() { + return 'user'; + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/fs-core-functions.php b/wp-content/plugins/nextgen-gallery/freemius/includes/fs-core-functions.php new file mode 100644 index 000000000..8eee70ba3 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/fs-core-functions.php @@ -0,0 +1,441 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + global $fs_core_logger; + + $fs_core_logger = FS_Logger::get_logger( WP_FS__SLUG . '_core', WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK ); + + if ( ! function_exists( 'fs_dummy' ) ) { + function fs_dummy() { + } + } + + /* Url. + --------------------------------------------------------------------------------------------*/ + function fs_get_url_daily_cache_killer() { + return date( '\YY\Mm\Dd' ); + } + + /* Templates / Views. + --------------------------------------------------------------------------------------------*/ + if ( ! function_exists( 'fs_get_template_path' ) ) { + function fs_get_template_path( $path ) { + return WP_FS__DIR_TEMPLATES . '/' . trim( $path, '/' ); + } + + function fs_include_template( $path, &$params = null ) { + $VARS = &$params; + include( fs_get_template_path( $path ) ); + } + + function fs_include_once_template( $path, &$params = null ) { + $VARS = &$params; + include_once( fs_get_template_path( $path ) ); + } + + function fs_require_template( $path, &$params = null ) { + $VARS = &$params; + require( fs_get_template_path( $path ) ); + } + + function fs_require_once_template( $path, &$params = null ) { + $VARS = &$params; + require_once( fs_get_template_path( $path ) ); + } + + function fs_get_template( $path, &$params = null ) { + ob_start(); + + $VARS = &$params; + require_once( fs_get_template_path( $path ) ); + + return ob_get_clean(); + } + } + + /* Scripts and styles including. + --------------------------------------------------------------------------------------------*/ + function fs_enqueue_local_style( $handle, $path, $deps = array(), $ver = false, $media = 'all' ) { + global $fs_core_logger; + if ( $fs_core_logger->is_on() ) { + $fs_core_logger->info( 'handle = ' . $handle . '; path = ' . $path . ';' ); + $fs_core_logger->info( 'plugin_basename = ' . plugins_url( WP_FS__DIR_CSS . trim( $path, '/' ) ) ); + $fs_core_logger->info( 'plugins_url = ' . plugins_url( plugin_basename( WP_FS__DIR_CSS . '/' . trim( $path, '/' ) ) ) ); + } + + wp_enqueue_style( $handle, plugins_url( plugin_basename( WP_FS__DIR_CSS . '/' . trim( $path, '/' ) ) ), $deps, $ver, $media ); + } + + function fs_enqueue_local_script( $handle, $path, $deps = array(), $ver = false, $in_footer = 'all' ) { + global $fs_core_logger; + if ( $fs_core_logger->is_on() ) { + $fs_core_logger->info( 'handle = ' . $handle . '; path = ' . $path . ';' ); + $fs_core_logger->info( 'plugin_basename = ' . plugins_url( WP_FS__DIR_JS . trim( $path, '/' ) ) ); + $fs_core_logger->info( 'plugins_url = ' . plugins_url( plugin_basename( WP_FS__DIR_JS . '/' . trim( $path, '/' ) ) ) ); + } + + wp_enqueue_script( $handle, plugins_url( plugin_basename( WP_FS__DIR_JS . '/' . trim( $path, '/' ) ) ), $deps, $ver, $in_footer ); + } + + function fs_img_url( $path, $img_dir = WP_FS__DIR_IMG ) { + return plugins_url( plugin_basename( $img_dir . '/' . trim( $path, '/' ) ) ); + } + + /* Request handlers. + --------------------------------------------------------------------------------------------*/ + /** + * @param string $key + * @param mixed $def + * + * @return mixed + */ + function fs_request_get( $key, $def = false ) { + return isset( $_REQUEST[ $key ] ) ? $_REQUEST[ $key ] : $def; + } + + function fs_request_has( $key ) { + return isset( $_REQUEST[ $key ] ); + } + + function fs_request_get_bool( $key, $def = false ) { + return ( isset( $_REQUEST[ $key ] ) && ( 1 == $_REQUEST[ $key ] || 'true' === strtolower( $_REQUEST[ $key ] ) ) ) ? true : $def; + } + + function fs_request_is_post() { + return ( 'post' === strtolower( $_SERVER['REQUEST_METHOD'] ) ); + } + + function fs_request_is_get() { + return ( 'get' === strtolower( $_SERVER['REQUEST_METHOD'] ) ); + } + + function fs_get_action( $action_key = 'action' ) { + if ( ! empty( $_REQUEST[ $action_key ] ) ) { + return strtolower( $_REQUEST[ $action_key ] ); + } + + if ( 'action' == $action_key ) { + $action_key = 'fs_action'; + + if ( ! empty( $_REQUEST[ $action_key ] ) ) { + return strtolower( $_REQUEST[ $action_key ] ); + } + } + + return false; + } + + function fs_request_is_action( $action, $action_key = 'action' ) { + return ( strtolower( $action ) === fs_get_action( $action_key ) ); + } + + function fs_is_plugin_page( $menu_slug ) { + return ( is_admin() && $_REQUEST['page'] === $menu_slug ); + } + + /* Core UI. + --------------------------------------------------------------------------------------------*/ + /** + * @param string $slug + * @param string $page + * @param string $action + * @param string $title + * @param array $params + * @param bool $is_primary + * @param string|bool $icon_class Optional class for an icon (since 1.1.7). + * @param string|bool $confirmation Optional confirmation message before submit (since 1.1.7). + * @param string $method Since 1.1.7 + * + * @uses fs_ui_get_action_button() + */ + function fs_ui_action_button( + $slug, + $page, + $action, + $title, + $params = array(), + $is_primary = true, + $icon_class = false, + $confirmation = false, + $method = 'GET' + ) { + echo fs_ui_get_action_button( + $slug, + $page, + $action, + $title, + $params, + $is_primary, + $icon_class, + $confirmation, + $method + ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7 + * + * @param string $slug + * @param string $page + * @param string $action + * @param string $title + * @param array $params + * @param bool $is_primary + * @param string|bool $icon_class Optional class for an icon. + * @param string|bool $confirmation Optional confirmation message before submit. + * @param string $method + * + * @return string + */ + function fs_ui_get_action_button( + $slug, + $page, + $action, + $title, + $params = array(), + $is_primary = true, + $icon_class = false, + $confirmation = false, + $method = 'GET' + ) { + // Prepend icon (if set). + $title = ( is_string( $icon_class ) ? '<i class="' . $icon_class . '"></i> ' : '' ) . $title; + + if ( is_string( $confirmation ) ) { + return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="if (confirm(\'%s\')) this.parentNode.submit(); return false;">%s</a></form>', + freemius( $slug )->_get_admin_page_url( $page, $params ), + $method, + $action, + wp_nonce_field( $action, '_wpnonce', true, false ), + 'button' . ( $is_primary ? ' button-primary' : '' ), + $confirmation, + $title + ); + } else if ( 'GET' !== strtoupper( $method ) ) { + return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="this.parentNode.submit(); return false;">%s</a></form>', + freemius( $slug )->_get_admin_page_url( $page, $params ), + $method, + $action, + wp_nonce_field( $action, '_wpnonce', true, false ), + 'button' . ( $is_primary ? ' button-primary' : '' ), + $title + ); + } else { + return sprintf( '<a href="%s" class="%s">%s</a></form>', + wp_nonce_url( freemius( $slug )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ), + 'button' . ( $is_primary ? ' button-primary' : '' ), + $title + ); + } + } + + function fs_ui_action_link( $slug, $page, $action, $title, $params = array() ) { + ?><a class="" + href="<?php echo wp_nonce_url( freemius( $slug )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ) ?>"><?php echo $title ?></a><?php + } + + /*function fs_error_handler($errno, $errstr, $errfile, $errline) + { + if (false === strpos($errfile, 'freemius/')) + { + // @todo Dump Freemius errors to local log. + } + +// switch ($errno) { +// case E_USER_ERROR: +// break; +// case E_WARNING: +// case E_USER_WARNING: +// break; +// case E_NOTICE: +// case E_USER_NOTICE: +// break; +// default: +// break; +// } + } + + set_error_handler('fs_error_handler');*/ + + function fs_nonce_url( $actionurl, $action = - 1, $name = '_wpnonce' ) { +// $actionurl = str_replace( '&', '&', $actionurl ); + return add_query_arg( $name, wp_create_nonce( $action ), $actionurl ); + } + + if ( ! function_exists( 'fs_starts_with' ) ) { + /** + * Check if string starts with. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @param string $haystack + * @param string $needle + * + * @return bool + */ + function fs_starts_with( $haystack, $needle ) { + $length = strlen( $needle ); + + return ( substr( $haystack, 0, $length ) === $needle ); + } + } + + #region Url Canonization ------------------------------------------------------------------ + + if ( ! function_exists( 'fs_canonize_url' ) ) { + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @param string $url + * @param bool $omit_host + * @param array $ignore_params + * + * @return string + */ + function fs_canonize_url( $url, $omit_host = false, $ignore_params = array() ) { + $parsed_url = parse_url( strtolower( $url ) ); + +// if ( ! isset( $parsed_url['host'] ) ) { +// return $url; +// } + + $canonical = ( ( $omit_host || ! isset( $parsed_url['host'] ) ) ? '' : $parsed_url['host'] ) . $parsed_url['path']; + + if ( isset( $parsed_url['query'] ) ) { + parse_str( $parsed_url['query'], $queryString ); + $canonical .= '?' . fs_canonize_query_string( $queryString, $ignore_params ); + } + + return $canonical; + } + } + + if ( ! function_exists( 'fs_canonize_query_string' ) ) { + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @param array $params + * @param array $ignore_params + * @param bool $params_prefix + * + * @return string + */ + function fs_canonize_query_string( array $params, array &$ignore_params, $params_prefix = false ) { + if ( ! is_array( $params ) || 0 === count( $params ) ) { + return ''; + } + + // Urlencode both keys and values + $keys = fs_urlencode_rfc3986( array_keys( $params ) ); + $values = fs_urlencode_rfc3986( array_values( $params ) ); + $params = array_combine( $keys, $values ); + + // Parameters are sorted by name, using lexicographical byte value ordering. + // Ref: Spec: 9.1.1 (1) + uksort( $params, 'strcmp' ); + + $pairs = array(); + foreach ( $params as $parameter => $value ) { + $lower_param = strtolower( $parameter ); + + // Skip ignore params. + if ( in_array( $lower_param, $ignore_params ) || ( false !== $params_prefix && startsWith( $lower_param, $params_prefix ) ) ) { + continue; + } + + if ( is_array( $value ) ) { + // If two or more parameters share the same name, they are sorted by their value + // Ref: Spec: 9.1.1 (1) + natsort( $value ); + foreach ( $value as $duplicate_value ) { + $pairs[] = $lower_param . '=' . $duplicate_value; + } + } else { + $pairs[] = $lower_param . '=' . $value; + } + } + + if ( 0 === count( $pairs ) ) { + return ''; + } + + return implode( "&", $pairs ); + } + } + + if ( ! function_exists( 'fs_urlencode_rfc3986' ) ) { + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @param string|string[] $input + * + * @return array|mixed|string + */ + function fs_urlencode_rfc3986( $input ) { + if ( is_array( $input ) ) { + return array_map( 'fs_urlencode_rfc3986', $input ); + } else if ( is_scalar( $input ) ) { + return str_replace( '+', ' ', str_replace( '%7E', '~', rawurlencode( $input ) ) ); + } + + return ''; + } + } + + #endregion Url Canonization ------------------------------------------------------------------ + + function fs_download_image( $from, $to ) { + $ch = curl_init( $from ); + $fp = fopen( fs_normalize_path( $to ), 'wb' ); + curl_setopt( $ch, CURLOPT_FILE, $fp ); + curl_setopt( $ch, CURLOPT_HEADER, 0 ); + curl_exec( $ch ); + curl_close( $ch ); + fclose( $fp ); + } + + /* General Utilities + --------------------------------------------------------------------------------------------*/ + + /** + * Sorts an array by the value of the priority key. + * + * @author Daniel Iser (@danieliser) + * @since 1.1.7 + * + * @param $a + * @param $b + * + * @return int + */ + function fs_sort_by_priority( $a, $b ) { + + // If b has a priority and a does not, b wins. + if ( ! isset( $a['priority'] ) && isset( $b['priority'] ) ) { + return 1; + } // If b has a priority and a does not, b wins. + elseif ( isset( $a['priority'] ) && ! isset( $b['priority'] ) ) { + return - 1; + } // If neither has a priority or both priorities are equal its a tie. + elseif ( ( ! isset( $a['priority'] ) && ! isset( $b['priority'] ) ) || $a['priority'] === $b['priority'] ) { + return 0; + } + + // If both have priority return the winner. + return ( $a['priority'] < $b['priority'] ) ? - 1 : 1; + } + diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/fs-essential-functions.php b/wp-content/plugins/nextgen-gallery/freemius/includes/fs-essential-functions.php new file mode 100644 index 000000000..64a530879 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/fs-essential-functions.php @@ -0,0 +1,412 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.1.5 + */ + + if ( ! function_exists( 'fs_normalize_path' ) ) { + if ( function_exists( 'wp_normalize_path' ) ) { + /** + * Normalize a filesystem path. + * + * Replaces backslashes with forward slashes for Windows systems, and ensures + * no duplicate slashes exist. + * + * @param string $path Path to normalize. + * + * @return string Normalized path. + */ + function fs_normalize_path( $path ) { + return wp_normalize_path( $path ); + } + } else { + function fs_normalize_path( $path ) { + $path = str_replace( '\\', '/', $path ); + $path = preg_replace( '|/+|', '/', $path ); + + return $path; + } + } + } + + #region Core Redirect (copied from BuddyPress) ----------------------------------------- + + if ( ! function_exists( 'fs_redirect' ) ) { + /** + * Redirects to another page, with a workaround for the IIS Set-Cookie bug. + * + * @link http://support.microsoft.com/kb/q176113/ + * @since 1.5.1 + * @uses apply_filters() Calls 'wp_redirect' hook on $location and $status. + * + * @param string $location The path to redirect to + * @param int $status Status code to use + * + * @return bool False if $location is not set + */ + function fs_redirect( $location, $status = 302 ) { + global $is_IIS; + + if ( headers_sent() ) { + return false; + } + + if ( ! $location ) // allows the wp_redirect filter to cancel a redirect + { + return false; + } + + $location = fs_sanitize_redirect( $location ); + + if ( $is_IIS ) { + header( "Refresh: 0;url=$location" ); + } else { + if ( php_sapi_name() != 'cgi-fcgi' ) { + status_header( $status ); + } // This causes problems on IIS and some FastCGI setups + header( "Location: $location" ); + } + + return true; + } + + if ( ! function_exists( 'fs_sanitize_redirect' ) ) { + /** + * Sanitizes a URL for use in a redirect. + * + * @since 2.3 + * + * @param string $location + * + * @return string redirect-sanitized URL + */ + function fs_sanitize_redirect( $location ) { + $location = preg_replace( '|[^a-z0-9-~+_.?#=&;,/:%!]|i', '', $location ); + $location = fs_kses_no_null( $location ); + + // remove %0d and %0a from location + $strip = array( '%0d', '%0a' ); + $found = true; + while ( $found ) { + $found = false; + foreach ( (array) $strip as $val ) { + while ( strpos( $location, $val ) !== false ) { + $found = true; + $location = str_replace( $val, '', $location ); + } + } + } + + return $location; + } + } + + if ( ! function_exists( 'fs_kses_no_null' ) ) { + /** + * Removes any NULL characters in $string. + * + * @since 1.0.0 + * + * @param string $string + * + * @return string + */ + function fs_kses_no_null( $string ) { + $string = preg_replace( '/\0+/', '', $string ); + $string = preg_replace( '/(\\\\0)+/', '', $string ); + + return $string; + } + } + } + + #endregion Core Redirect (copied from BuddyPress) ----------------------------------------- + + if ( ! function_exists( '__fs' ) ) { + global $fs_text_overrides; + + if ( ! isset( $fs_text_overrides ) ) { + $fs_text_overrides = array(); + } + + /** + * Retrieve a translated text by key. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.4 + * + * @param string $key + * @param string $slug + * + * @return string + * + * @global $fs_text , $fs_text_overrides + */ + function __fs( $key, $slug = 'freemius' ) { + global $fs_text, $fs_text_overrides; + + if ( ! isset( $fs_text ) ) { + require_once( ( defined( 'WP_FS__DIR_INCLUDES' ) ? WP_FS__DIR_INCLUDES : dirname( __FILE__ ) ) . '/i18n.php' ); + } + + if ( isset( $fs_text_overrides[ $slug ] ) ) { + if ( isset( $fs_text_overrides[ $slug ][ $key ] ) ) { + return $fs_text_overrides[ $slug ][ $key ]; + } + + $lower_key = strtolower( $key ); + if ( isset( $fs_text_overrides[ $slug ][ $lower_key ] ) ) { + return $fs_text_overrides[ $slug ][ $lower_key ]; + } + } + + return isset( $fs_text[ $key ] ) ? + $fs_text[ $key ] : + $key; + } + + /** + * Display a translated text by key. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.4 + * + * @param string $key + * @param string $slug + */ + function _efs( $key, $slug = 'freemius' ) { + echo __fs( $key, $slug ); + } + + /** + * Override default i18n text phrases. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @param string[] $key_value + * @param string $slug + * + * @global $fs_text_overrides + */ + function fs_override_i18n( array $key_value, $slug = 'freemius' ) { + global $fs_text_overrides; + + if ( ! isset( $fs_text_overrides[ $slug ] ) ) { + $fs_text_overrides[ $slug ] = array(); + } + + foreach ( $key_value as $key => $value ) { + $fs_text_overrides[ $slug ][ $key ] = $value; + } + } + } + + if ( ! function_exists( 'fs_get_ip' ) ) { + /** + * Get client IP. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.2 + * + * @return string|null + */ + function fs_get_ip() { + $fields = array( + 'HTTP_CF_CONNECTING_IP', + 'HTTP_CLIENT_IP', + 'HTTP_X_FORWARDED_FOR', + 'HTTP_X_FORWARDED', + 'HTTP_FORWARDED_FOR', + 'HTTP_FORWARDED', + 'REMOTE_ADDR', + ); + + foreach ( $fields as $ip_field ) { + if ( ! empty( $_SERVER[ $ip_field ] ) ) { + return $_SERVER[ $ip_field ]; + } + } + + return null; + } + } + + /** + * Leverage backtrace to find caller plugin main file path. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return string + */ + function fs_find_caller_plugin_file() { + /** + * All the code below will be executed once on activation. + * If the user changes the main plugin's file name, the file_exists() + * will catch it. + */ + if ( ! function_exists( 'get_plugins' ) ) { + require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); + } + + $all_plugins = get_plugins(); + $all_plugins_paths = array(); + + // Get active plugin's main files real full names (might be symlinks). + foreach ( $all_plugins as $relative_path => &$data ) { + $all_plugins_paths[] = fs_normalize_path( realpath( WP_PLUGIN_DIR . '/' . $relative_path ) ); + } + + $plugin_file = null; + for ( $i = 1, $bt = debug_backtrace(), $len = count( $bt ); $i < $len; $i ++ ) { + if ( in_array( fs_normalize_path( $bt[ $i ]['file'] ), $all_plugins_paths ) ) { + $plugin_file = $bt[ $i ]['file']; + break; + } + } + + if ( is_null( $plugin_file ) ) { + // Throw an error to the developer in case of some edge case dev environment. + wp_die( __fs( 'failed-finding-main-path' ), __fs( 'error' ), array( 'back_link' => true ) ); + } + + return $plugin_file; + } + + require_once dirname( __FILE__ ) . '/supplements/fs-essential-functions-1.1.7.1.php'; + + /** + * Update SDK newest version reference. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @param string $sdk_relative_path + * @param string|bool $plugin_file + * + * @global $fs_active_plugins + */ + function fs_update_sdk_newest_version( $sdk_relative_path, $plugin_file = false ) { + global $fs_active_plugins; + + if ( ! is_string( $plugin_file ) ) { + $plugin_file = plugin_basename( fs_find_caller_plugin_file() ); + } + + $fs_active_plugins->newest = (object) array( + 'plugin_path' => $plugin_file, + 'sdk_path' => $sdk_relative_path, + 'version' => $fs_active_plugins->plugins[ $sdk_relative_path ]->version, + 'in_activation' => ! is_plugin_active( $plugin_file ), + 'timestamp' => time(), + ); + + // Update DB with latest SDK version and path. + update_option( 'fs_active_plugins', $fs_active_plugins ); + } + + /** + * Reorder the plugins load order so the plugin with the newest Freemius SDK is loaded first. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @return bool Was plugin order changed. Return false if plugin was loaded first anyways. + * + * @global $fs_active_plugins + */ + function fs_newest_sdk_plugin_first() { + global $fs_active_plugins; + + /** + * @todo Multi-site network activated plugin are always loaded prior to site plugins so if there's a a plugin activated in the network mode that has an older version of the SDK of another plugin which is site activated that has new SDK version, the fs-essential-functions.php will be loaded from the older SDK. Same thing about MU plugins (loaded even before network activated plugins). + * + * @link https://github.com/Freemius/wordpress-sdk/issues/26 + */ +// $active_sitewide_plugins = get_site_option( 'active_sitewide_plugins' ); + + $active_plugins = get_option( 'active_plugins' ); + $newest_sdk_plugin_key = array_search( $fs_active_plugins->newest->plugin_path, $active_plugins ); + if ( 0 == $newest_sdk_plugin_key ) { + // if it's 0 it's the first plugin already, no need to continue + return false; + } + + array_splice( $active_plugins, $newest_sdk_plugin_key, 1 ); + array_unshift( $active_plugins, $fs_active_plugins->newest->plugin_path ); + update_option( 'active_plugins', $active_plugins ); + + return true; + } + + /** + * Go over all Freemius SDKs in the system and find and "remember" + * the newest SDK which is associated with an active plugin. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @global $fs_active_plugins + */ + function fs_fallback_to_newest_active_sdk() { + global $fs_active_plugins; + + $newest_sdk_data = null; + $newest_sdk_path = null; + + foreach ( $fs_active_plugins->plugins as $sdk_relative_path => $data ) { + if ( is_null( $newest_sdk_data ) || version_compare( $data->version, $newest_sdk_data->version, '>' ) + ) { + // If plugin inactive or SDK starter file doesn't exist, remove SDK reference. + if ( ! is_plugin_active( $data->plugin_path ) || + ! file_exists( fs_normalize_path( WP_PLUGIN_DIR . '/' . $sdk_relative_path . '/start.php' ) ) + ) { + unset( $fs_active_plugins->plugins[ $sdk_relative_path ] ); + + // No need to store the data since it will be stored in fs_update_sdk_newest_version() + // or explicitly with update_option(). + } else { + $newest_sdk_data = $data; + $newest_sdk_path = $sdk_relative_path; + } + } + } + + if ( is_null( $newest_sdk_data ) ) { + // Couldn't find any SDK reference. + $fs_active_plugins = new stdClass(); + update_option( 'fs_active_plugins', $fs_active_plugins ); + } else { + fs_update_sdk_newest_version( $newest_sdk_path, $newest_sdk_data->plugin_path ); + } + } + + #region Actions / Filters ----------------------------------------- + + /** + * Apply filter for specific plugin. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param string $slug Plugin slug + * @param string $tag The name of the filter hook. + * @param mixed $value The value on which the filters hooked to `$tag` are applied on. + * + * @return mixed The filtered value after all hooked functions are applied to it. + * + * @uses apply_filters() + */ + function fs_apply_filter( $slug, $tag, $value ) { + $args = func_get_args(); + + return call_user_func_array( 'apply_filters', array_merge( + array( 'fs_' . $tag . '_' . $slug ), + array_slice( $args, 2 ) ) + ); + } + + #endregion Actions / Filters ----------------------------------------- \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/fs-plugin-info-dialog.php b/wp-content/plugins/nextgen-gallery/freemius/includes/fs-plugin-info-dialog.php new file mode 100644 index 000000000..2280144a0 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/fs-plugin-info-dialog.php @@ -0,0 +1,936 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.6 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + /** + * Class FS_Plugin_Info_Dialog + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7 + */ + class FS_Plugin_Info_Dialog { + /** + * @since 1.1.7 + * + * @var FS_Logger + */ + private $_logger; + + /** + * @since 1.1.7 + * + * @var Freemius + */ + private $_fs; + + function __construct( Freemius $fs ) { + $this->_fs = $fs; + + $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_' . $fs->get_slug() . '_info', WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK ); + + // Remove default plugin information action. + remove_all_actions( 'install_plugins_pre_plugin-information' ); + + // Override action with custom plugins function for add-ons. + add_action( 'install_plugins_pre_plugin-information', array( &$this, 'install_plugin_information' ) ); + + // Override request for plugin information for Add-ons. + add_filter( + 'fs_plugins_api', + array( &$this, '_get_addon_info_filter' ), + WP_FS__DEFAULT_PRIORITY, 3 ); + } + + /** + * Generate add-on plugin information. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param array $data + * @param string $action + * @param object|null $args + * + * @return array|null + */ + function _get_addon_info_filter( $data, $action = '', $args = null ) { + $this->_logger->entrance(); + + $parent_plugin_id = fs_request_get( 'parent_plugin_id', false ); + + if ( $this->_fs->get_id() != $parent_plugin_id || + ( 'plugin_information' !== $action ) || + ! isset( $args->slug ) + ) { + return $data; + } + + // Find add-on by slug. + $addons = $this->_fs->get_addons(); + $selected_addon = false; + foreach ( $addons as $addon ) { + if ( $addon->slug == $args->slug ) { + $selected_addon = $addon; + break; + } + } + + if ( false === $selected_addon ) { + return $data; + } + + if ( ! isset( $selected_addon->info ) ) { + // Setup some default info. + $selected_addon->info = new stdClass(); + $selected_addon->info->selling_point_0 = 'Selling Point 1'; + $selected_addon->info->selling_point_1 = 'Selling Point 2'; + $selected_addon->info->selling_point_2 = 'Selling Point 3'; + $selected_addon->info->description = '<p>Tell your users all about your add-on</p>'; + } + + fs_enqueue_local_style( 'fs_addons', '/admin/add-ons.css' ); + + $data = $args; + + $is_free = true; + + // Load add-on pricing. + $has_pricing = false; + $has_features = false; + $plans = false; + $plans_result = $this->_fs->get_api_site_or_plugin_scope()->get( "/addons/{$selected_addon->id}/plans.json" ); + if ( ! isset( $plans_result->error ) ) { + $plans = $plans_result->plans; + if ( is_array( $plans ) ) { + for ( $i = 0, $len = count( $plans ); $i < $len; $i ++ ) { + $plans[ $i ] = new FS_Plugin_Plan( $plans[ $i ] ); + $plan = $plans[ $i ]; + + $pricing_result = $this->_fs->get_api_site_or_plugin_scope()->get( "/addons/{$selected_addon->id}/plans/{$plan->id}/pricing.json" ); + if ( ! isset( $pricing_result->error ) ) { + // Update plan's pricing. + $plan->pricing = $pricing_result->pricing; + + if ( is_array( $plan->pricing ) && ! empty( $plan->pricing ) ) { + $is_free = false; + + foreach ( $plan->pricing as &$pricing ) { + $pricing = new FS_Pricing( $pricing ); + } + } + + $has_pricing = true; + } + + $features_result = $this->_fs->get_api_site_or_plugin_scope()->get( "/addons/{$selected_addon->id}/plans/{$plan->id}/features.json" ); + if ( ! isset( $features_result->error ) && + is_array( $features_result->features ) && + 0 < count( $features_result->features ) + ) { + // Update plan's pricing. + $plan->features = $features_result->features; + + $has_features = true; + } + } + } + } + + // Fetch latest version from Freemius. + $latest = $this->_fs->_fetch_latest_version( $selected_addon->id ); + + if ( ! $is_free ) { + // If paid add-on, then it's not on wordpress.org + $is_wordpress_org = false; + } else { + // If no versions found, then assume it's a .org plugin. + $is_wordpress_org = ( false === $latest ); + } + + if ( $is_wordpress_org ) { + $repo_data = FS_Plugin_Updater::_fetch_plugin_info_from_repository( + 'plugin_information', (object) array( + 'slug' => $selected_addon->slug, + 'is_ssl' => is_ssl(), + 'fields' => array( + 'banners' => true, + 'reviews' => true, + 'downloaded' => false, + 'active_installs' => true + ) + ) ); + + if ( ! empty( $repo_data ) ) { + $data = $repo_data; + $data->wp_org_missing = false; + } else { + // Couldn't find plugin on .org. + $is_wordpress_org = false; + + // Plugin is missing, not on Freemius nor WP.org. + $data->wp_org_missing = true; + } + } + + if ( ! $is_wordpress_org ) { + $data->checkout_link = $this->_fs->checkout_url(); + $data->fs_missing = ( false === $latest ); + + if ( $is_free ) { + $data->download_link = $this->_fs->_get_latest_download_local_url( $selected_addon->id ); + } + } + + if ( ! $is_wordpress_org ) { +// Fetch as much as possible info from local files. + $plugin_local_data = $this->_fs->get_plugin_data(); + $data->name = $selected_addon->title; + $data->author = $plugin_local_data['Author']; + $view_vars = array( 'plugin' => $selected_addon ); + $data->sections = array( + 'description' => fs_get_template( '/plugin-info/description.php', $view_vars ), + ); + + if ( ! empty( $selected_addon->info->banner_url ) ) { + $data->banners = array( + 'low' => $selected_addon->info->banner_url, + ); + } + + if ( ! empty( $selected_addon->info->screenshots ) ) { + $view_vars = array( + 'screenshots' => $selected_addon->info->screenshots, + 'plugin' => $selected_addon, + ); + $data->sections['screenshots'] = fs_get_template( '/plugin-info/screenshots.php', $view_vars ); + } + + if ( is_object( $latest ) ) { + $data->version = $latest->version; + $data->last_updated = ! is_null( $latest->updated ) ? $latest->updated : $latest->created; + $data->requires = $latest->requires_platform_version; + $data->tested = $latest->tested_up_to_version; + } else { + // Add dummy version. + $data->version = '1.0.0'; + + // Add message to developer to deploy the plugin through Freemius. + } + } + + if ( $has_pricing ) { + // Add plans to data. + $data->plans = $plans; + + if ( $has_features ) { + $view_vars = array( + 'plans' => $plans, + 'plugin' => $selected_addon, + ); + $data->sections['features'] = fs_get_template( '/plugin-info/features.php', $view_vars ); + } + } + + $data->is_paid = ! $is_free; + $data->external = ! $is_wordpress_org; + + return $data; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7 + * + * @param FS_Plugin_Plan $plan + * + * @return string + */ + private function get_billing_cycle( FS_Plugin_Plan $plan ) { + $billing_cycle = null; + + if ( 1 === count( $plan->pricing ) && 1 == $plan->pricing[0]->licenses ) { + $pricing = $plan->pricing[0]; + if ( isset( $pricing->annual_price ) ) { + $billing_cycle = 'annual'; + } else if ( isset( $pricing->monthly_price ) ) { + $billing_cycle = 'monthly'; + } else if ( isset( $pricing->lifetime_price ) ) { + $billing_cycle = 'lifetime'; + } + } else { + foreach ( $plan->pricing as $pricing ) { + if ( isset( $pricing->annual_price ) ) { + $billing_cycle = 'annual'; + } else if ( isset( $pricing->monthly_price ) ) { + $billing_cycle = 'monthly'; + } else if ( isset( $pricing->lifetime_price ) ) { + $billing_cycle = 'lifetime'; + } + + if ( ! is_null( $billing_cycle ) ) { + break; + } + } + } + + return $billing_cycle; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7 + * + * @param FS_Plugin_Plan $plan + * @param FS_Pricing $pricing + * + * @return float|null|string + */ + private function get_price_tag( FS_Plugin_Plan $plan, FS_Pricing $pricing ) { + $price_tag = ''; + if ( isset( $pricing->annual_price ) ) { + $price_tag = $pricing->annual_price . ( $plan->is_block_features ? ' / year' : '' ); + } else if ( isset( $pricing->monthly_price ) ) { + $price_tag = $pricing->monthly_price . ' / mo'; + } else if ( isset( $pricing->lifetime_price ) ) { + $price_tag = $pricing->lifetime_price; + } + + return '$' . $price_tag; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7 + * + * @param object $api + * @param FS_Plugin_Plan|null $plan + * + * @return string + */ + private function get_plugin_cta( $api, $plan = null ) { + if ( ( current_user_can( 'install_plugins' ) || current_user_can( 'update_plugins' ) ) ) { + + if ( ! empty( $api->checkout_link ) && isset( $api->plans ) && 0 < is_array( $api->plans ) ) { + if ( is_null( $plan ) ) { + $plan = $api->plans[0]; + } + + return ' <a class="button button-primary right" href="' . $this->_fs->addon_checkout_url( + $plan->plugin_id, + $plan->pricing[0]->id, + $this->get_billing_cycle( $plan ), + $plan->has_trial() + ) . '" target="_parent">' . + ( ! $plan->has_trial() ? + __fs( 'purchase', $api->slug ) : + sprintf( __fs( 'start-free-x', $api->slug ), $this->get_trial_period( $plan ) ) + ) . + '</a>'; + + // @todo Add Cart concept. +// echo ' <a class="button right" href="' . $status['url'] . '" target="_parent">' . __( 'Add to Cart' ) . '</a>'; + + } else if ( ! empty( $api->download_link ) ) { + $status = install_plugin_install_status( $api ); + + + // Hosted on WordPress.org. + switch ( $status['status'] ) { + case 'install': + if ( $api->external && + $this->_fs->is_org_repo_compliant() || + ! $this->_fs->is_premium() + ) { + /** + * Add-on hosted on Freemius, not yet installed, and core + * plugin is wordpress.org compliant. Therefore, require a download + * since installing external plugins is not allowed by the wp.org guidelines. + */ + return ' <a class="button button-primary right" href="' . esc_url( $api->download_link ) . '" target="_blank">' . __fs( 'download-latest', $api->slug ) . '</a>'; + } else { + if ( $status['url'] ) { + return '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' . __( 'Install Now' ) . '</a>'; + } + } + break; + case 'update_available': + if ( $status['url'] ) { + return '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' . __( 'Install Update Now' ) . '</a>'; + } + break; + case 'newer_installed': + return '<a class="button button-primary right disabled">' . sprintf( __( 'Newer Version (%s) Installed' ), $status['version'] ) . '</a>'; + break; + case 'latest_installed': + return '<a class="button button-primary right disabled">' . __( 'Latest Version Installed' ) . '</a>'; + break; + } + + } + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.7 + * + * @param FS_Plugin_Plan $plan + * + * @return string + */ + private function get_trial_period( $plan ) { + $trial_period = (int) $plan->trial_period; + + switch ( $trial_period ) { + case 30: + return 'month'; + case 60: + return '2 months'; + default: + return "{$plan->trial_period} days"; + } + } + + /** + * Display plugin information in dialog box form. + * + * Based on core install_plugin_information() function. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + */ + function install_plugin_information() { + global $tab; + + if ( empty( $_REQUEST['plugin'] ) ) { + return; + } + + $args = array( + 'slug' => wp_unslash( $_REQUEST['plugin'] ), + 'is_ssl' => is_ssl(), + 'fields' => array( + 'banners' => true, + 'reviews' => true, + 'downloaded' => false, + 'active_installs' => true + ) + ); + + if ( is_array( $args ) ) { + $args = (object) $args; + } + + if ( ! isset( $args->per_page ) ) { + $args->per_page = 24; + } + + if ( ! isset( $args->locale ) ) { + $args->locale = get_locale(); + } + + $api = apply_filters( 'fs_plugins_api', false, 'plugin_information', $args ); + + if ( is_wp_error( $api ) ) { + wp_die( $api ); + } + + $plugins_allowedtags = array( + 'a' => array( + 'href' => array(), + 'title' => array(), + 'target' => array(), + // Add image style for screenshots. + 'class' => array() + ), + 'style' => array(), + 'abbr' => array( 'title' => array() ), + 'acronym' => array( 'title' => array() ), + 'code' => array(), + 'pre' => array(), + 'em' => array(), + 'strong' => array(), + 'div' => array( 'class' => array() ), + 'span' => array( 'class' => array() ), + 'p' => array(), + 'ul' => array(), + 'ol' => array(), + 'li' => array( 'class' => array() ), + 'i' => array( 'class' => array() ), + 'h1' => array(), + 'h2' => array(), + 'h3' => array(), + 'h4' => array(), + 'h5' => array(), + 'h6' => array(), + 'img' => array( 'src' => array(), 'class' => array(), 'alt' => array() ), +// 'table' => array(), +// 'td' => array(), +// 'tr' => array(), +// 'th' => array(), +// 'thead' => array(), +// 'tbody' => array(), + ); + + $plugins_section_titles = array( + 'description' => _x( 'Description', 'Plugin installer section title' ), + 'installation' => _x( 'Installation', 'Plugin installer section title' ), + 'faq' => _x( 'FAQ', 'Plugin installer section title' ), + 'screenshots' => _x( 'Screenshots', 'Plugin installer section title' ), + 'changelog' => _x( 'Changelog', 'Plugin installer section title' ), + 'reviews' => _x( 'Reviews', 'Plugin installer section title' ), + 'other_notes' => _x( 'Other Notes', 'Plugin installer section title' ), + ); + + // Sanitize HTML +// foreach ( (array) $api->sections as $section_name => $content ) { +// $api->sections[$section_name] = wp_kses( $content, $plugins_allowedtags ); +// } + + foreach ( array( 'version', 'author', 'requires', 'tested', 'homepage', 'downloaded', 'slug' ) as $key ) { + if ( isset( $api->$key ) ) { + $api->$key = wp_kses( $api->$key, $plugins_allowedtags ); + } + } + + // Add after $api->slug is ready. + $plugins_section_titles['features'] = __fs( 'features-and-pricing', $api->slug ); + + $_tab = esc_attr( $tab ); + + $section = isset( $_REQUEST['section'] ) ? wp_unslash( $_REQUEST['section'] ) : 'description'; // Default to the Description tab, Do not translate, API returns English. + if ( empty( $section ) || ! isset( $api->sections[ $section ] ) ) { + $section_titles = array_keys( (array) $api->sections ); + $section = array_shift( $section_titles ); + } + + iframe_header( __( 'Plugin Install' ) ); + + $_with_banner = ''; + +// var_dump($api->banners); + if ( ! empty( $api->banners ) && ( ! empty( $api->banners['low'] ) || ! empty( $api->banners['high'] ) ) ) { + $_with_banner = 'with-banner'; + $low = empty( $api->banners['low'] ) ? $api->banners['high'] : $api->banners['low']; + $high = empty( $api->banners['high'] ) ? $api->banners['low'] : $api->banners['high']; + ?> + <style type="text/css"> + #plugin-information-title.with-banner + { + background-image: url( <?php echo esc_url( $low ); ?> ); + } + + @media only screen and ( -webkit-min-device-pixel-ratio: 1.5 ) + { + #plugin-information-title.with-banner + { + background-image: url( <?php echo esc_url( $high ); ?> ); + } + } + </style> + <?php + } + + echo '<div id="plugin-information-scrollable">'; + echo "<div id='{$_tab}-title' class='{$_with_banner}'><div class='vignette'></div><h2>{$api->name}</h2></div>"; + echo "<div id='{$_tab}-tabs' class='{$_with_banner}'>\n"; + + foreach ( (array) $api->sections as $section_name => $content ) { + if ( 'reviews' === $section_name && ( empty( $api->ratings ) || 0 === array_sum( (array) $api->ratings ) ) ) { + continue; + } + + if ( isset( $plugins_section_titles[ $section_name ] ) ) { + $title = $plugins_section_titles[ $section_name ]; + } else { + $title = ucwords( str_replace( '_', ' ', $section_name ) ); + } + + $class = ( $section_name === $section ) ? ' class="current"' : ''; + $href = add_query_arg( array( 'tab' => $tab, 'section' => $section_name ) ); + $href = esc_url( $href ); + $san_section = esc_attr( $section_name ); + echo "\t<a name='$san_section' href='$href' $class>$title</a>\n"; + } + + echo "</div>\n"; + + ?> + <div id="<?php echo $_tab; ?>-content" class='<?php echo $_with_banner; ?>'> + <div class="fyi"> + <?php if ( $api->is_paid ) : ?> + <?php if ( isset( $api->plans ) ) : ?> + <div class="plugin-information-pricing"> + <?php foreach ( $api->plans as $plan ) : ?> + <?php + /** + * @var FS_Plugin_Plan $plan + */ + ?> + <?php $first_pricing = $plan->pricing[0] ?> + <?php $is_multi_cycle = $first_pricing->is_multi_cycle() ?> + <div class="fs-plan<?php if ( ! $is_multi_cycle ) { + echo ' fs-single-cycle'; + } ?>" data-plan-id="<?php echo $plan->id ?>"> + <h3 data-plan="<?php echo $plan->id ?>"><?php printf( __fs( 'x-plan', $api->slug ), $plan->title ) ?></h3> + <?php $has_annual = $first_pricing->has_annual() ?> + <?php $has_monthly = $first_pricing->has_monthly() ?> + <div class="nav-tab-wrapper"> + <?php $billing_cycles = array( 'monthly', 'annual', 'lifetime' ) ?> + <?php $i = 0; + foreach ( $billing_cycles as $cycle ) : ?> + <?php $prop = "{$cycle}_price"; + if ( isset( $first_pricing->{$prop} ) ) : ?> + <?php $is_featured = ( 'annual' === $cycle && $is_multi_cycle ) ?> + <?php + $prices = array(); + foreach ( $plan->pricing as $pricing ) { + if ( isset( $pricing->{$prop} ) ) { + $prices[] = array( + 'id' => $pricing->id, + 'licenses' => $pricing->licenses, + 'price' => $pricing->{$prop} + ); + } + } + ?> + <a class="nav-tab" data-billing-cycle="<?php echo $cycle ?>" + data-pricing="<?php esc_attr_e( json_encode( $prices ) ) ?>"> + <?php if ( $is_featured ) : ?> + <label>★ <?php _efs( 'best', $api->slug ) ?> ★</label> + <?php endif ?> + <?php _efs( $cycle, $api->slug ) ?> + </a> + <?php endif ?> + <?php $i ++; endforeach ?> + <?php wp_enqueue_script( 'jquery' ) ?> + <script type="text/javascript"> + (function ($, undef) { + var + _formatBillingFrequency = function (cycle) { + switch (cycle) { + case 'monthly': + return '<?php printf(__fs('billed-x', $api->slug), __fs('monthly', $api->slug)) ?>'; + case 'annual': + return '<?php printf(__fs('billed-x', $api->slug), __fs('annually', $api->slug)) ?>'; + case 'lifetime': + return '<?php printf(__fs('billed-x', $api->slug), __fs('once', $api->slug)) ?>'; + } + }, + _formatLicensesTitle = function (pricing) { + switch (pricing.licenses) { + case 1: + return '<?php _efs( 'license-single-site', $api->slug ) ?>'; + case null: + return '<?php _efs( 'license-unlimited', $api->slug ) ?>'; + default: + return '<?php _efs( 'license-x-sites', $api->slug ) ?>'.replace('%s', pricing.licenses); + } + }, + _formatPrice = function (pricing, cycle, multipleLicenses) { + if (undef === multipleLicenses) + multipleLicenses = true; + + var priceCycle; + switch (cycle) { + case 'monthly': + priceCycle = ' / <?php _efs('mo', $api->slug) ?>'; + break; + case 'lifetime': + priceCycle = ''; + break; + case 'annual': + default: + priceCycle = ' / <?php _efs('year', $api->slug) ?>'; + break; + } + + if (!multipleLicenses && 1 == pricing.licenses) { + return '$' + pricing.price + priceCycle; + } + + return _formatLicensesTitle(pricing) + ' - <var class="fs-price">$' + pricing.price + priceCycle + '</var>'; + }, + _checkoutUrl = function (plan, pricing, cycle) { + return '<?php echo esc_url_raw(remove_query_arg('billing_cycle', add_query_arg(array('plugin_id' => $plan->plugin_id), $api->checkout_link))) ?>' + + '&plan_id=' + plan + + '&pricing_id=' + pricing + + '&billing_cycle=' + cycle<?php if ($plan->has_trial()) { echo " + '&trial=true'"; }?>; + }, + _updateCtaUrl = function (plan, pricing, cycle) { + $('.plugin-information-pricing .button, #plugin-information-footer .button').attr('href', _checkoutUrl(plan, pricing, cycle)); + }; + + $(document).ready(function () { + var $plan = $('.plugin-information-pricing .fs-plan[data-plan-id=<?php echo $plan->id ?>]'); + $plan.find('input[type=radio]').live('click', function () { + _updateCtaUrl( + $plan.attr('data-plan-id'), + $(this).val(), + $plan.find('.nav-tab-active').attr('data-billing-cycle') + ); + + $plan.find('.fs-trial-terms .fs-price').html( + $(this).parents('label').find('.fs-price').html() + ); + }); + + $plan.find('.nav-tab').click(function () { + if ($(this).hasClass('nav-tab-active')) + return; + + var $this = $(this), + billingCycle = $this.attr('data-billing-cycle'), + pricing = JSON.parse($this.attr('data-pricing')), + $pricesList = $this.parents('.fs-plan').find('.fs-pricing-body .fs-licenses'), + html = ''; + + // Un-select previously selected tab. + $plan.find('.nav-tab').removeClass('nav-tab-active'); + + // Select current tab. + $this.addClass('nav-tab-active'); + + // Render licenses prices. + if (1 == pricing.length) { + html = '<li><label><?php _efs( 'price', $api->slug ) ?>: ' + _formatPrice(pricing[0], billingCycle, false) + '</label></li>'; + } else { + for (var i = 0; i < pricing.length; i++) { + html += '<li><label><input name="pricing-<?php echo $plan->id ?>" type="radio" value="' + pricing[i].id + '">' + _formatPrice(pricing[i], billingCycle) + '</label></li>'; + } + } + $pricesList.html(html); + + if (1 < pricing.length) { + // Select first license option. + $pricesList.find('li:first input').click(); + } + else { + _updateCtaUrl( + $plan.attr('data-plan-id'), + pricing[0].id, + billingCycle + ); + } + + // Update billing frequency. + $plan.find('.fs-billing-frequency').html(_formatBillingFrequency(billingCycle)); + + if ('annual' === billingCycle) { + $plan.find('.fs-annual-discount').show(); + } else { + $plan.find('.fs-annual-discount').hide(); + } + }); + + <?php if ( $has_annual ) : ?> + // Select annual by default. + $plan.find('.nav-tab[data-billing-cycle=annual]').click(); + <?php else : ?> + // Select first tab. + $plan.find('.nav-tab:first').click(); + <?php endif ?> + }); + }(jQuery)); + </script> + </div> + <div class="fs-pricing-body"> + <span class="fs-billing-frequency"></span> + <?php $annual_discount = ( $has_annual && $has_monthly ) ? $plan->pricing[0]->annual_discount_percentage() : 0 ?> + <?php if ( $annual_discount > 0 ) : ?> + <span + class="fs-annual-discount"><?php printf( __fs( 'save-x', $api->slug ), $annual_discount . '%' ) ?></span> + <?php endif ?> + <ul class="fs-licenses"> + </ul> + <?php echo $this->get_plugin_cta( $api, $plan ) ?> + <div style="clear:both"></div> + <?php if ( $plan->has_trial() ) : ?> + <?php $trial_period = $this->get_trial_period( $plan ) ?> + <ul class="fs-trial-terms"> + <li> + <i class="dashicons dashicons-yes"></i><?php printf( __fs( 'no-commitment-x', $api->slug ), $trial_period ) ?> + </li> + <li> + <i class="dashicons dashicons-yes"></i><?php printf( __fs( 'after-x-pay-as-little-y', $api->slug ), $trial_period, '<var class="fs-price">' . $this->get_price_tag( $plan, $plan->pricing[0] ) . '</var>' ) ?> + </li> + </ul> + <?php endif ?> + </div> + </div> + </div> + <?php endforeach ?> + <?php endif ?> + <?php endif ?> + <div> + <h3><?php _efs( 'details', $api->slug ) ?></h3> + <ul> + <?php if ( ! empty( $api->version ) ) { ?> + <li><strong><?php _e( 'Version:' ); ?></strong> <?php echo $api->version; ?></li> + <?php + } + if ( ! empty( $api->author ) ) { + ?> + <li> + <strong><?php _e( 'Author:' ); ?></strong> <?php echo links_add_target( $api->author, '_blank' ); ?> + </li> + <?php + } + if ( ! empty( $api->last_updated ) ) { + ?> + <li><strong><?php _e( 'Last Updated:' ); ?></strong> <span + title="<?php echo $api->last_updated; ?>"> + <?php printf( __( '%s ago' ), human_time_diff( strtotime( $api->last_updated ) ) ); ?> + </span></li> + <?php + } + if ( ! empty( $api->requires ) ) { + ?> + <li> + <strong><?php _e( 'Requires WordPress Version:' ); ?></strong> <?php printf( __( '%s or higher' ), $api->requires ); ?> + </li> + <?php + } + if ( ! empty( $api->tested ) ) { + ?> + <li><strong><?php _e( 'Compatible up to:' ); ?></strong> <?php echo $api->tested; ?> + </li> + <?php + } + if ( ! empty( $api->downloaded ) ) { + ?> + <li> + <strong><?php _e( 'Downloaded:' ); ?></strong> <?php printf( _n( '%s time', '%s times', $api->downloaded ), number_format_i18n( $api->downloaded ) ); ?> + </li> + <?php + } + if ( ! empty( $api->slug ) && empty( $api->external ) ) { + ?> + <li><a target="_blank" + href="https://wordpress.org/plugins/<?php echo $api->slug; ?>/"><?php _e( 'WordPress.org Plugin Page »' ); ?></a> + </li> + <?php + } + if ( ! empty( $api->homepage ) ) { + ?> + <li><a target="_blank" + href="<?php echo esc_url( $api->homepage ); ?>"><?php _e( 'Plugin Homepage »' ); ?></a> + </li> + <?php + } + if ( ! empty( $api->donate_link ) && empty( $api->contributors ) ) { + ?> + <li><a target="_blank" + href="<?php echo esc_url( $api->donate_link ); ?>"><?php _e( 'Donate to this plugin »' ); ?></a> + </li> + <?php } ?> + </ul> + </div> + <?php if ( ! empty( $api->rating ) ) { ?> + <h3><?php _e( 'Average Rating' ); ?></h3> + <?php wp_star_rating( array( + 'rating' => $api->rating, + 'type' => 'percent', + 'number' => $api->num_ratings + ) ); ?> + <small><?php printf( _n( '(based on %s rating)', '(based on %s ratings)', $api->num_ratings ), number_format_i18n( $api->num_ratings ) ); ?></small> + <?php + } + + if ( ! empty( $api->ratings ) && array_sum( (array) $api->ratings ) > 0 ) { + foreach ( $api->ratings as $key => $ratecount ) { + // Avoid div-by-zero. + $_rating = $api->num_ratings ? ( $ratecount / $api->num_ratings ) : 0; + ?> + <div class="counter-container"> + <span class="counter-label"><a + href="https://wordpress.org/support/view/plugin-reviews/<?php echo $api->slug; ?>?filter=<?php echo $key; ?>" + target="_blank" + title="<?php echo esc_attr( sprintf( _n( 'Click to see reviews that provided a rating of %d star', 'Click to see reviews that provided a rating of %d stars', $key ), $key ) ); ?>"><?php printf( _n( '%d star', '%d stars', $key ), $key ); ?></a></span> + <span class="counter-back"> + <span class="counter-bar" style="width: <?php echo 92 * $_rating; ?>px;"></span> + </span> + <span class="counter-count"><?php echo number_format_i18n( $ratecount ); ?></span> + </div> + <?php + } + } + if ( ! empty( $api->contributors ) ) { + ?> + <h3><?php _e( 'Contributors' ); ?></h3> + <ul class="contributors"> + <?php + foreach ( (array) $api->contributors as $contrib_username => $contrib_profile ) { + if ( empty( $contrib_username ) && empty( $contrib_profile ) ) { + continue; + } + if ( empty( $contrib_username ) ) { + $contrib_username = preg_replace( '/^.+\/(.+)\/?$/', '\1', $contrib_profile ); + } + $contrib_username = sanitize_user( $contrib_username ); + if ( empty( $contrib_profile ) ) { + echo "<li><img src='https://wordpress.org/grav-redirect.php?user={$contrib_username}&s=36' width='18' height='18' />{$contrib_username}</li>"; + } else { + echo "<li><a href='{$contrib_profile}' target='_blank'><img src='https://wordpress.org/grav-redirect.php?user={$contrib_username}&s=36' width='18' height='18' />{$contrib_username}</a></li>"; + } + } + ?> + </ul> + <?php if ( ! empty( $api->donate_link ) ) { ?> + <a target="_blank" + href="<?php echo esc_url( $api->donate_link ); ?>"><?php _e( 'Donate to this plugin »' ); ?></a> + <?php } ?> + <?php } ?> + </div> + <div id="section-holder" class="wrap"> + <?php + if ( ! empty( $api->tested ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->tested ) ), $api->tested, '>' ) ) { + echo '<div class="notice notice-warning"><p>' . '<strong>' . __( 'Warning:' ) . '</strong> ' . __( 'This plugin has not been tested with your current version of WordPress.' ) . '</p></div>'; + } else if ( ! empty( $api->requires ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->requires ) ), $api->requires, '<' ) ) { + echo '<div class="notice notice-warning"><p>' . '<strong>' . __( 'Warning:' ) . '</strong> ' . __( 'This plugin has not been marked as compatible with your version of WordPress.' ) . '</p></div>'; + } + + foreach ( (array) $api->sections as $section_name => $content ) { + $content = links_add_base_url( $content, 'https://wordpress.org/plugins/' . $api->slug . '/' ); + $content = links_add_target( $content, '_blank' ); + + $san_section = esc_attr( $section_name ); + + $display = ( $section_name === $section ) ? 'block' : 'none'; + + if ( 'description' === $section_name && + ( ( ! $api->external && $api->wp_org_missing ) || + ( $api->external && $api->fs_missing ) ) + ) { + $missing_notice = array( + 'type' => 'error', + 'id' => md5( microtime() ), + 'message' => __fs( ( $api->is_paid ? 'paid-addon-not-deployed' : 'free-addon-not-deployed' ), $api->slug ), + ); + fs_require_template( 'admin-notice.php', $missing_notice ); + } + echo "\t<div id='section-{$san_section}' class='section' style='display: {$display};'>\n"; + echo $content; + echo "\t</div>\n"; + } + echo "</div>\n"; + echo "</div>\n"; + echo "</div>\n"; // #plugin-information-scrollable + echo "<div id='$tab-footer'>\n"; + + echo $this->get_plugin_cta( $api ); + + echo "</div>\n"; + + iframe_footer(); + exit; +} + } diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/i18n.php b/wp-content/plugins/nextgen-gallery/freemius/includes/i18n.php new file mode 100644 index 000000000..704e9ff87 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/i18n.php @@ -0,0 +1,352 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.1.4 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + /** + * All strings can now be overridden. + * + * For example, if we want to override: + * 'you-are-step-away' => 'You are just one step away - %s', + * + * We can use the filter: + * fs_override_i18n( array( + * 'opt-in-connect' => __( "Yes - I'm in!", '{your-text_domain}' ), + * 'skip' => __( 'Not today', '{your-text_domain}' ), + * ), '{plugin_slug}' ); + * + * Or with the Freemius instance: + * + * my_freemius->override_i18n( array( + * 'opt-in-connect' => __( "Yes - I'm in!", '{your-text_domain}' ), + * 'skip' => __( 'Not today', '{your-text_domain}' ), + * ); + */ + global $fs_text; + + $fs_text = array( + 'account' => __( 'Account', 'freemius' ), + 'addon' => __( 'Add On', 'freemius' ), + 'contact-us' => __( 'Contact Us', 'freemius' ), + 'change-ownership' => __( 'Change Ownership', 'freemius' ), + 'support' => __( 'Support', 'freemius' ), + 'support-forum' => __( 'Support Forum', 'freemius' ), + 'add-ons' => __( 'Add Ons', 'freemius' ), + 'upgrade' => _x( 'Upgrade', 'verb', 'freemius' ), + 'awesome' => __( 'Awesome', 'freemius' ), + 'pricing' => _x( 'Pricing', 'noun', 'freemius' ), + 'price' => _x( 'Price', 'noun', 'freemius' ), + 'unlimited-updates' => __( 'Unlimited Updates', 'freemius' ), + 'downgrade' => _x( 'Downgrade', 'verb', 'freemius' ), + 'cancel-trial' => __( 'Cancel Trial', 'freemius' ), + 'free-trial' => __( 'Free Trial', 'freemius' ), + 'start-free-x' => __( 'Start my free %s', 'freemius' ), + 'no-commitment-x' => __( 'No commitment for %s - cancel anytime', 'freemius' ), + 'after-x-pay-as-little-y' => __( 'After your free %s, pay as little as %s', 'freemius' ), + 'details' => __( 'Details', 'freemius' ), + 'account-details' => __( 'Account Details', 'freemius' ), + 'delete' => _x( 'Delete', 'verb', 'freemius' ), + 'delete-account' => __( 'Delete Account', 'freemius' ), + 'dismiss' => _x( 'Dismiss', 'as close a window', 'freemius' ), + 'plan' => _x( 'Plan', 'as product pricing plan', 'freemius' ), + 'change-plan' => __( 'Change Plan', 'freemius' ), + 'download-x-version' => _x( 'Download %s Version', 'as download professional version', 'freemius' ), + 'download-x-version-now' => _x( 'Download %s version now', 'as download professional version now', 'freemius' ), + 'download-latest' => _x( 'Download Latest', 'as download latest version', 'freemius' ), + 'you-have-x-license' => _x( 'You have a %s license.', 'E.g. you have a professional license.', 'freemius' ), + 'new' => __( 'New', 'freemius' ), + 'free' => __( 'Free', 'freemius' ), + 'trial' => _x( 'Trial', 'as trial plan', 'freemius' ), + 'purchase' => _x( 'Purchase', 'verb', 'freemius' ), + 'purchase-license' => __( 'Purchase License', 'freemius' ), + 'buy' => _x( 'Buy', 'verb', 'freemius' ), + 'buy-license' => __( 'Buy License', 'freemius' ), + 'license-single-site' => __( 'Single Site License', 'freemius' ), + 'license-unlimited' => __( 'Unlimited Licenses', 'freemius' ), + 'license-x-sites' => __( 'Up to %s Sites', 'freemius' ), + 'renew-license-now' => __( '%sRenew your license now%s to access version %s features and support.', 'freemius' ), + 'x-plan' => _x( '%s Plan', 'e.g. Professional Plan', 'freemius' ), + 'you-are-step-away' => __( 'You are just one step away - %s', 'freemius' ), + 'activate-x-now' => _x( 'Complete "%s" Activation Now', '%s - plugin name. As complete "Jetpack" activation now', 'freemius' ), + 'few-plugin-tweaks' => __( 'We made a few tweaks to the plugin, %s', 'freemius' ), + 'optin-x-now' => __( 'Opt-in to make "%s" Better!', 'freemius' ), + 'error' => __( 'Error', 'freemius' ), + 'failed-finding-main-path' => __( 'Freemius SDK couldn\'t find the plugin\'s main file. Please contact sdk@freemius.com with the current error.', 'freemius' ), + #region Account + + 'expiration' => _x( 'Expiration', 'as expiration date', 'freemius' ), + 'license' => _x( 'License', 'as software license', 'freemius' ), + 'not-verified' => __( 'not verified', 'freemius' ), + 'verify-email' => __( 'Verify Email', 'freemius' ), + 'expires-in' => _x( 'Expires in %s', 'e.g. expires in 2 months', 'freemius' ), + 'renews-in' => _x( 'Auto renews in %s', 'e.g. auto renews in 2 months', 'freemius' ), + 'no-expiration' => __( 'No expiration', 'freemius' ), + 'expired' => __( 'Expired', 'freemius' ), + 'cancelled' => __( 'Cancelled', 'freemius' ), + 'in-x' => _x( 'In %s', 'e.g. In 2 hours', 'freemius' ), + 'x-ago' => _x( '%s ago', 'e.g. 2 min ago', 'freemius' ), + 'version' => _x( 'Version', 'as plugin version', 'freemius' ), + 'name' => __( 'Name', 'freemius' ), + 'email' => __( 'Email', 'freemius' ), + 'verified' => __( 'Verified', 'freemius' ), + 'plugin' => __( 'Plugin', 'freemius' ), + 'plugins' => __( 'Plugins', 'freemius' ), + 'themes' => __( 'Themes', 'freemius' ), + 'path' => _x( 'Path', 'as file/folder path', 'freemius' ), + 'title' => __( 'Title', 'freemius' ), + 'free-version' => __( 'Free version', 'freemius' ), + 'premium-version' => __( 'Premium version', 'freemius' ), + 'slug' => _x( 'Slug', 'as WP plugin slug', 'freemius' ), + 'id' => __( 'ID', 'freemius' ), + 'users' => __( 'Users', 'freemius' ), + 'plugin-installs' => __( 'Plugin Installs', 'freemius' ), + 'sites' => _x( 'Sites', 'like websites', 'freemius' ), + 'user-id' => __( 'User ID', 'freemius' ), + 'site-id' => __( 'Site ID', 'freemius' ), + 'public-key' => __( 'Public Key', 'freemius' ), + 'secret-key' => __( 'Secret Key', 'freemius' ), + 'no-secret' => _x( 'No Secret', 'as secret encryption key missing', 'freemius' ), + 'no-id' => __( 'No ID', 'freemius' ), + 'sync-license' => _x( 'Sync License', 'as synchronize license', 'freemius' ), + 'sync' => _x( 'Sync', 'as synchronize', 'freemius' ), + 'deactivate-license' => __( 'Deactivate License', 'freemius' ), + 'activate' => __( 'Activate', 'freemius' ), + 'deactivate' => __( 'Deactivate', 'freemius' ), + 'skip-deactivate' => __( 'Skip & Deactivate', 'freemius' ), + 'no-deactivate' => __( 'No - just deactivate', 'freemius' ), + 'yes-do-your-thing' => __( 'Yes - do your thing', 'freemius' ), + 'active' => _x( 'Active', 'active mode', 'freemius' ), + 'is-active' => _x( 'Is Active', 'is active mode?', 'freemius' ), + 'install-now' => __( 'Install Now', 'freemius' ), + 'install-update-now' => __( 'Install Update Now', 'freemius' ), + 'more-information-about-x' => __( 'More information about %s', 'freemius' ), + 'localhost' => __( 'Localhost', 'freemius' ), + 'activate-x-plan' => _x( 'Activate %s Plan', 'as activate Professional plan', 'freemius' ), + 'x-left' => _x( '%s left', 'as 5 licenses left', 'freemius' ), + 'last-license' => __( 'Last license', 'freemius' ), + 'what-is-your-x' => __( 'What is your %s?', 'freemius' ), + 'activate-this-addon' => __( 'Activate this add-on', 'freemius' ), + 'deactivate-license-confirm' => __( 'Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?', 'freemius' ), + 'delete-account-x-confirm' => __( 'Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the "Cancel" button, and first "Downgrade" your account. Are you sure you would like to continue with the deletion?', 'freemius' ), + 'delete-account-confirm' => __( 'Deletion is not temporary. Only delete if you no longer want to use this plugin anymore. Are you sure you would like to continue with the deletion?', 'freemius' ), + 'downgrade-x-confirm' => __( 'Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s.', 'freemius' ), + 'cancel-trial-confirm' => __( 'Cancelling the trial will immediately block access to all premium features. Are you sure?', 'freemius' ), + 'after-downgrade-non-blocking' => __( 'You can still enjoy all %s features but you will not have access to plugin updates and support.', 'freemius' ), + 'after-downgrade-blocking' => __( 'Once your license expire you can still use the Free version but you will NOT have access to the %s features.', 'freemius' ), + 'proceed-confirmation' => __( 'Are you sure you want to proceed?', 'freemius' ), + #endregion Account + + 'add-ons-for-x' => __( 'Add Ons for %s', 'freemius' ), + 'add-ons-missing' => __( 'We could\'nt load the add-ons list. It\'s probably an issue on our side, please try to come back in few minutes.', 'freemius' ), + #region Plugin Deactivation + 'deactivation-share-reason' => __( 'If you have a moment, please let us know why you are deactivating', 'freemius' ), + 'deactivation-modal-button-confirm' => __( 'Yes - Deactivate', 'freemius' ), + 'deactivation-modal-button-submit' => __( 'Submit & Deactivate', 'freemius' ), + 'deactivation-modal-button-cancel' => _x( 'Cancel', 'the text of the cancel button of the plugin deactivation dialog box.', 'freemius' ), + 'reason-no-longer-needed' => __( 'I no longer need the plugin', 'freemius' ), + 'reason-found-a-better-plugin' => __( 'I found a better plugin', 'freemius' ), + 'reason-needed-for-a-short-period' => __( 'I only needed the plugin for a short period', 'freemius' ), + 'reason-broke-my-site' => __( 'The plugin broke my site', 'freemius' ), + 'reason-suddenly-stopped-working' => __( 'The plugin suddenly stopped working', 'freemius' ), + 'reason-cant-pay-anymore' => __( "I can't pay for it anymore", 'freemius' ), + 'reason-temporary-deactivation' => __( "It's a temporary deactivation. I'm just debugging an issue.", 'freemius' ), + 'reason-other' => _x( 'Other', 'the text of the "other" reason for deactivating the plugin that is shown in the modal box.', 'freemius' ), + 'ask-for-reason-message' => __( 'Kindly tell us the reason so we can improve.', 'freemius' ), + 'placeholder-plugin-name' => __( "What's the plugin's name?", 'freemius' ), + 'placeholder-comfortable-price' => __( 'What price would you feel comfortable paying?', 'freemius' ), + 'reason-couldnt-make-it-work' => __( "I couldn't understand how to make it work", 'freemius' ), + 'reason-great-but-need-specific-feature' => __( "The plugin is great, but I need specific feature that you don't support", 'freemius' ), + 'reason-not-working' => __( 'The plugin is not working', 'freemius' ), + 'reason-not-what-i-was-looking-for' => __( "It's not what I was looking for", 'freemius' ), + 'reason-didnt-work-as-expected' => __( "The plugin didn't work as expected", 'freemius' ), + 'placeholder-feature' => __( 'What feature?', 'freemius' ), + 'placeholder-share-what-didnt-work' => __( "Kindly share what didn't work so we can fix it for future users...", 'freemius' ), + 'placeholder-what-youve-been-looking-for' => __( "What you've been looking for?", 'freemius' ), + 'placeholder-what-did-you-expect' => __( "What did you expect?", 'freemius' ), + 'reason-didnt-work' => __( "The plugin didn't work", 'freemius' ), + 'reason-dont-like-to-share-my-information' => __( "I don't like to share my information with you", 'freemius' ), + #endregion Plugin Deactivation + + #region Connect + 'hey-x' => _x( 'Hey %s,', 'greeting', 'freemius' ), + 'thanks-x' => _x( 'Thanks %s!', 'a greeting. E.g. Thanks John!', 'freemius' ), + 'connect-message' => __( 'In order to enjoy all our features and functionality, %s needs to connect your user, %s at %s, to %s', 'freemius' ), + 'connect-message_on-update' => __( 'Please help us improve %2$s! If you opt-in, some data about your usage of %2$s will be sent to %5$s. If you skip this, that\'s okay! %2$s will still work just fine.', 'freemius' ), + 'pending-activation-message' => __( 'You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to complete the install.', 'freemius' ), + 'what-permissions' => __( 'What permissions are being granted?', 'freemius' ), + 'permissions-profile' => __( 'Your Profile Overview', 'freemius' ), + 'permissions-profile_desc' => __( 'Name and email address', 'freemius' ), + 'permissions-site' => __( 'Your Site Overview', 'freemius' ), + 'permissions-site_desc' => __( 'Site URL, WP version, PHP info, plugins & themes', 'freemius' ), + 'permissions-events' => __( 'Current Plugin Events', 'freemius' ), + 'permissions-events_desc' => __( 'Activation, deactivation and uninstall', 'freemius' ), + 'permissions-plugins_themes' => __( 'Plugins & Themes', 'freemius' ), + 'permissions-plugins_themes_desc' => __( 'Titles, versions and state.', 'freemius' ), + 'permissions-newsletter' => __( 'Newsletter', 'freemius' ), + 'permissions-newsletter_desc' => __( 'Updates, announcements, marketing, no spam', 'freemius' ), + 'privacy-policy' => __( 'Privacy Policy', 'freemius' ), + 'tos' => __( 'Terms of Service', 'freemius' ), + 'activating' => _x( 'Activating', 'as activating plugin', 'freemius' ), + 'sending-email' => _x( 'Sending email', 'as in the process of sending an email', 'freemius' ), + 'opt-in-connect' => _x( 'Allow & Continue', 'button label', 'freemius' ), + 'skip' => _x( 'Skip', 'verb', 'freemius' ), + 'resend-activation-email' => __( 'Re-send activation email', 'freemius' ), + #endregion Connect + + #region Screenshots + 'screenshots' => __( 'Screenshots', 'freemius' ), + 'view-full-size-x' => __( 'Click to view full-size screenshot %d', 'freemius' ), + #endregion Screenshots + + #region Debug + 'freemius-debug' => __( 'Freemius Debug', 'freemius' ), + 'on' => _x( 'On', 'as turned on', 'freemius' ), + 'off' => _x( 'Off', 'as turned off', 'freemius' ), + 'debugging' => _x( 'Debugging', 'as code debugging', 'freemius' ), + 'freemius-state' => __( 'Freemius State', 'freemius' ), + 'connected' => _x( 'Connected', 'as connection was successful', 'freemius' ), + 'blocked' => _x( 'Blocked', 'as connection blocked', 'freemius' ), + 'api' => _x( 'API', 'as application program interface', 'freemius' ), + 'sdk' => _x( 'SDK', 'as software development kit versions', 'freemius' ), + 'sdk-versions' => _x( 'SDK Versions', 'as software development kit versions', 'freemius' ), + 'plugin-path' => _x( 'Plugin Path', 'as plugin folder path', 'freemius' ), + 'sdk-path' => _x( 'SDK Path', 'as sdk path', 'freemius' ), + 'addons-of-x' => __( 'Add Ons of Plugin %s', 'freemius' ), + 'delete-all-confirm' => __( 'Are you sure you want to delete all Freemius data?', 'freemius' ), + 'actions' => __( 'Actions', 'freemius' ), + 'delete-all-accounts' => __( 'Delete All Accounts', 'freemius' ), + 'start-fresh' => __( 'Start Fresh', 'freemius' ), + 'clear-api-cache' => __( 'Clear API Cache', 'freemius' ), + 'sync-data-from-server' => __( 'Sync Data From Server', 'freemius' ), + 'scheduled-crons' => __( 'Scheduled Crons', 'freemius' ), + 'plugins-themes-sync' => __( 'Plugins & Themes Sync', 'freemius' ), + #endregion Debug + + #region Expressions + 'congrats' => _x( 'Congrats', 'as congratulations', 'freemius' ), + 'oops' => _x( 'Oops', 'exclamation', 'freemius' ), + 'yee-haw' => _x( 'Yee-haw', 'interjection expressing joy or exuberance', 'freemius' ), + 'woot' => _x( 'W00t', '(especially in electronic communication) used to express elation, enthusiasm, or triumph.', 'freemius' ), + 'right-on' => _x( 'Right on', 'a positive response', 'freemius' ), + 'hmm' => _x( 'Hmm', 'something somebody says when they are thinking about what you have just said. ', 'freemius' ), + 'ok' => __( 'O.K', 'freemius' ), + 'hey' => _x( 'Hey', 'exclamation', 'freemius' ), + 'heads-up' => _x( 'Heads up', 'advance notice of something that will need attention.', 'freemius' ), + #endregion Expressions + + #region Admin Notices + 'you-have-latest' => __( 'Seems like you got the latest release.', 'freemius' ), + 'you-are-good' => __( 'You are all good!', 'freemius' ), + 'user-exist-message' => __( 'Sorry, we could not complete the email update. Another user with the same email is already registered.', 'freemius' ), + 'user-exist-message_ownership' => __( 'If you would like to give up the ownership of the plugin\'s account to %s click the Change Ownership button.', 'freemius' ), + 'email-updated-message' => __( 'Your email was successfully updated. You should receive an email with confirmation instructions in few moments.', 'freemius' ), + 'name-updated-message' => __( 'Your name was successfully updated.', 'freemius' ), + 'x-updated' => __( 'You have successfully updated your %s.', 'freemius' ), + 'name-update-failed-message' => __( 'Please provide your full name.', 'freemius' ), + 'verification-email-sent-message' => __( 'Verification mail was just sent to %s. If you can\'t find it after 5 min, please check your spam box.', 'freemius' ), + 'addons-info-external-message' => __( 'Just letting you know that the add-ons information of %s is being pulled from an external server.', 'freemius' ), + 'no-cc-required' => __( 'No credit card required', 'freemius' ), + 'premium-activated-message' => __( 'Premium plugin version was successfully activated.', 'freemius' ), + 'successful-version-upgrade-message' => __( 'The upgrade of %s was successfully completed.', 'freemius' ), + 'activation-with-plan-x-message' => __( 'Your account was successfully activated with the %s plan.', 'freemius' ), + 'download-latest-x-version' => __( 'Download the latest %s version now', 'freemius' ), + 'download-latest-version' => __( 'Download the latest version now', 'freemius' ), + 'addon-successfully-purchased-message' => _x( '%s Add-on was successfully purchased.', '%s - product name, e.g. Facebook add-on was successfully...', 'freemius' ), + 'addon-successfully-upgraded-message' => __( 'Your %s Add-on plan was successfully upgraded.', 'freemius' ), + 'email-verified-message' => __( 'Your email has been successfully verified - you are AWESOME!', 'freemius' ), + 'plan-upgraded-message' => __( 'Your plan was successfully upgraded.', 'freemius' ), + 'plan-changed-to-x-message' => __( 'Your plan was successfully changed to %s.', 'freemius' ), + 'license-expired-blocking-message' => __( 'Your license has expired. You can still continue using the free plugin forever.', 'freemius' ), + 'trial-started-message' => __( 'Your trial has been successfully started.', 'freemius' ), + 'license-activated-message' => __( 'Your license was successfully activated.', 'freemius' ), + 'no-active-license-message' => __( 'It looks like your site currently doesn\'t have an active license.', 'freemius' ), + 'license-deactivation-message' => __( 'Your license was successfully deactivated, you are back to the %s plan.', 'freemius' ), + 'license-deactivation-failed-message' => __( 'It looks like the license deactivation failed.', 'freemius' ), + 'license-activation-failed-message' => __( 'It looks like the license could not be activated.', 'freemius' ), + 'server-error-message' => __( 'Error received from the server:', 'freemius' ), + 'trial-expired-message' => __( 'Your trial has expired. You can still continue using all our free features.', 'freemius' ), + 'plan-x-downgraded-message' => __( 'Your plan was successfully downgraded. Your %s plan license will expire in %s.', 'freemius' ), + 'plan-downgraded-failure-message' => __( 'Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes.', 'freemius' ), + 'trial-cancel-no-trial-message' => __( 'It looks like you are not in trial mode anymore so there\'s nothing to cancel :)', 'freemius' ), + 'trial-cancel-message' => __( 'Your %s free trial was successfully cancelled.', 'freemius' ), + 'version-x-released' => _x( 'Version %s was released.', '%s - numeric version number', 'freemius' ), + 'please-download-x' => __( 'Please download %s.', 'freemius' ), + 'latest-x-version' => _x( 'the latest %s version here', '%s - plan name, as the latest professional version here', 'freemius' ), + 'trial-x-promotion-message' => __( 'How do you like %s so far? Test all our %s premium features with a %d-day free trial.', 'freemius' ), + 'start-free-trial' => _x( 'Start free trial', 'call to action', 'freemius' ), + 'trial-cancel-failure-message' => __( 'Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes.', 'freemius' ), + 'trial-utilized' => __( 'You already utilized a trial before.', 'freemius' ), + 'in-trial-mode' => __( 'You are already running the plugin in a trial mode.', 'freemius' ), + 'trial-plan-x-not-exist' => __( 'Plan %s do not exist, therefore, can\'t start a trial.', 'freemius' ), + 'plan-x-no-trial' => __( 'Plan %s does not support a trial period.', 'freemius' ), + 'no-trials' => __( 'None of the plugin\'s plans supports a trial period.', 'freemius' ), + 'unexpected-api-error' => __( 'Unexpected API error. Please contact the plugin\'s author with the following error.', 'freemius' ), + 'no-commitment-for-x-days' => __( 'No commitment for %s days - cancel anytime!', 'freemius' ), + 'license-expired-non-blocking-message' => __( 'Your license has expired. You can still continue using all the %s features, but you\'ll need to renew your license to continue getting updates and support.', 'freemius' ), + 'could-not-activate-x' => __( 'Couldn\'t activate %s.', 'freemius' ), + 'contact-us-with-error-message' => __( 'Please contact us with the following message:', 'freemius' ), + 'plan-did-not-change-message' => __( 'It looks like you are still on the %s plan. If you did upgrade or change your plan, it\'s probably an issue on our side - sorry.', 'freemius' ), + 'contact-us-here' => __( 'Please contact us here', 'freemius' ), + 'plan-did-not-change-email-message' => __( 'I have upgraded my account but when I try to Sync the License, the plan remains %s.', 'freemius' ), + #endregion Admin Notices + #region Connectivity Issues + 'connectivity-test-fails-message' => __( 'From unknown reason, the API connectivity test failed.', 'freemius' ), + 'connectivity-test-maybe-temporary' => __( 'It\'s probably a temporary issue on our end. Just to be sure, with your permission, would it be o.k to run another connectivity test?', 'freemius' ), + 'curl-missing-message' => __( 'We use PHP cURL library for the API calls, which is a very common library and usually installed out of the box. Unfortunately, cURL is not installed on your server.', 'freemius' ), + 'cloudflare-blocks-connection-message' => __( 'From unknown reason, CloudFlare, the firewall we use, blocks the connection.', 'freemius' ), + 'x-requires-access-to-api' => _x( '%s requires an access to our API.', 'as pluginX requires an access to our API', 'freemius' ), + 'squid-blocks-connection-message' => __( 'It looks like your server is using Squid ACL (access control lists), which blocks the connection.', 'freemius' ), + 'squid-no-clue-title' => __( 'I don\'t know what is Squid or ACL, help me!', 'freemius' ), + 'squid-no-clue-desc' => __( 'We\'ll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update.', 'freemius' ), + 'sysadmin-title' => __( 'I\'m a system administrator', 'freemius' ), + 'squid-sysadmin-desc' => __( 'Great, please whitelist the following domains: %s. Once you done, deactivate the plugin and activate it again.', 'freemius' ), + 'curl-missing-no-clue-title' => __( 'I don\'t know what is cURL or how to install it, help me!', 'freemius' ), + 'curl-missing-no-clue-desc' => __( 'We\'ll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update.', 'freemius' ), + 'curl-missing-sysadmin-desc' => __( 'Great, please install cURL and enable it in your php.ini file. To make sure it was successfully activated, use \'phpinfo()\'. Once activated, deactivate the plugin and reactivate it back again.', 'freemius' ), + 'happy-to-resolve-issue-asap' => __( 'We are sure it\'s an issue on our side and more than happy to resolve it for you ASAP if you give us a chance.', 'freemius' ), + 'fix-issue-title' => __( 'Yes - I\'m giving you a chance to fix it', 'freemius' ), + 'fix-issue-desc' => __( 'We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update.', 'freemius' ), + 'install-previous-title' => __( 'Let\'s try your previous version', 'freemius' ), + 'install-previous-desc' => __( 'Uninstall this version and install the previous one.', 'freemius' ), + 'deactivate-plugin-title' => __( 'That\'s exhausting, please deactivate', 'freemius' ), + 'deactivate-plugin-desc' => __( 'We feel your frustration and sincerely apologize for the inconvenience. Hope to see you again in the future.', 'freemius' ), + 'fix-request-sent-message' => __( 'Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience.', 'freemius' ), + 'server-blocking-access' => _x( 'Your server is blocking the access to Freemius\' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s', '%1s - plugin title, %2s - API domain', 'freemius' ), + 'wrong-authentication-param-message' => __( 'It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again.', 'freemius' ), + #endregion Connectivity Issues + #region Change Owner + 'change-owner-request-sent-x' => __( 'Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder.', 'freemius' ), + 'change-owner-request_owner-confirmed' => __( 'Thanks for confirming the ownership change. An email was just sent to %s for final approval.', 'freemius' ), + 'change-owner-request_candidate-confirmed' => __( '%s is the new owner of the account.', 'freemius' ), + #endregion Change Owner + 'addon-x-cannot-run-without-y' => _x( '%s cannot run without %s.', 'addonX cannot run without pluginY', 'freemius' ), + 'addon-x-cannot-run-without-parent' => _x( '%s cannot run without the plugin.', 'addonX cannot run...', 'freemius' ), + 'plugin-x-activation-message' => _x( '%s activation was successfully completed.', 'pluginX activation was successfully...', 'freemius' ), + 'features-and-pricing' => _x( 'Features & Pricing', 'Plugin installer section title', 'freemius' ), + 'free-addon-not-deployed' => __( 'Add-on must be deployed to WordPress.org or Freemius.', 'freemius' ), + 'paid-addon-not-deployed' => __( 'Paid add-on must be deployed to Freemius.', 'freemius' ), + #region Add-On Licensing + 'addon-no-license-message' => __( '%s is a premium only add-on. You have to purchase a license first before activating the plugin.', 'freemius' ), + 'addon-trial-cancelled-message' => __( '%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you\'ll have to purchase a license.', 'freemius' ), + #endregion Add-On Licensing + #region Billing Cycles + 'monthly' => _x( 'Monthly', 'as every month', 'freemius' ), + 'mo' => _x( 'mo', 'as monthly period', 'freemius' ), + 'annual' => _x( 'Annual', 'as once a year', 'freemius' ), + 'annually' => _x( 'Annually', 'as once a year', 'freemius' ), + 'once' => _x( 'Once', 'as once a year', 'freemius' ), + 'year' => _x( 'year', 'as annual period', 'freemius' ), + 'lifetime' => __( 'Lifetime', 'freemius' ), + 'best' => _x( 'Best', 'e.g. the best product', 'freemius' ), + 'billed-x' => _x( 'Billed %s', 'e.g. billed monthly', 'freemius' ), + 'save-x' => _x( 'Save %s', 'as a discount of $5 or 10%', 'freemius' ), + #endregion Billing Cycles + 'view-details' => __( 'View details', 'freemius' ), + ); diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-admin-menu-manager.php b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-admin-menu-manager.php new file mode 100644 index 000000000..cbc8000f7 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-admin-menu-manager.php @@ -0,0 +1,549 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.1.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Admin_Menu_Manager { + + #region Properties + + /** + * @var string + */ + protected $_plugin_slug; + + /** + * @since 1.0.6 + * + * @var string + */ + private $_menu_slug; + /** + * @since 1.1.3 + * + * @var string + */ + private $_parent_slug; + /** + * @since 1.1.3 + * + * @var string + */ + private $_parent_type; + /** + * @since 1.1.3 + * + * @var string + */ + private $_type; + /** + * @since 1.1.3 + * + * @var bool + */ + private $_is_top_level; + /** + * @since 1.1.3 + * + * @var bool + */ + private $_is_override_exact; + /** + * @since 1.1.3 + * + * @var string[]bool + */ + private $_default_submenu_items; + /** + * @since 1.1.3 + * + * @var string + */ + private $_first_time_path; + + #endregion Properties + + /** + * @var FS_Logger + */ + protected $_logger; + + #region Singleton + + /** + * @var FS_Admin_Menu_Manager[] + */ + private static $_instances = array(); + + /** + * @param string $plugin_slug + * + * @return FS_Admin_Notice_Manager + */ + static function instance( $plugin_slug ) { + if ( ! isset( self::$_instances[ $plugin_slug ] ) ) { + self::$_instances[ $plugin_slug ] = new FS_Admin_Menu_Manager( $plugin_slug ); + } + + return self::$_instances[ $plugin_slug ]; + } + + protected function __construct( $plugin_slug ) { + $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_' . $plugin_slug . '_admin_menu', WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK ); + + $this->_plugin_slug = $plugin_slug; + } + + #endregion Singleton + + #region Helpers + + private function get_option( &$options, $key, $default = false ) { + return ! empty( $options[ $key ] ) ? $options[ $key ] : $default; + } + + private function get_bool_option( &$options, $key, $default = false ) { + return isset( $options[ $key ] ) &&is_bool( $options[ $key ] ) ? $options[ $key ] : $default; + } + + #endregion Helpers + + /** + * @param array $menu + * @param bool $is_addon + */ + function init( $menu, $is_addon = false ) { + $this->_menu_slug = $menu['slug']; + + $this->_default_submenu_items = array(); + // @deprecated + $this->_type = 'page'; + $this->_is_top_level = true; + $this->_is_override_exact = false; + $this->_parent_slug = false; + // @deprecated + $this->_parent_type = 'page'; + + if ( ! $is_addon && isset( $menu ) ) { + $this->_default_submenu_items = array( + 'contact' => $this->get_bool_option( $menu, 'contact', true ), + 'support' => $this->get_bool_option( $menu, 'support', true ), + 'account' => $this->get_bool_option( $menu, 'account', true ), + 'pricing' => $this->get_bool_option( $menu, 'pricing', true ), + 'addons' => $this->get_bool_option( $menu, 'addons', true ), + ); + + // @deprecated + $this->_type = $this->get_option( $menu, 'type', 'page' ); + $this->_is_override_exact = $this->get_bool_option( $menu, 'override_exact' ); + + if ( isset( $menu['parent'] ) ) { + $this->_parent_slug = $this->get_option( $menu['parent'], 'slug' ); + // @deprecated + $this->_parent_type = $this->get_option( $menu['parent'], 'type', 'page' ); + + // If parent's slug is different, then it's NOT a top level menu item. + $this->_is_top_level = ( $this->_parent_slug === $this->_menu_slug ); + } else { + /** + * If no parent then top level if: + * - Has custom admin menu ('page') + * - CPT menu type ('cpt') + */ +// $this->_is_top_level = in_array( $this->_type, array( +// 'cpt', +// 'page' +// ) ); + } + + $this->_first_time_path = $this->get_option( $menu, 'first-path', false ); + if ( ! empty( $this->_first_time_path ) && is_string( $this->_first_time_path ) ) { + $this->_first_time_path = admin_url( $this->_first_time_path, 'admin' ); + } + } + } + + /** + * Check if top level menu. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @return bool False if submenu item. + */ + function is_top_level() { + return $this->_is_top_level; + } + + /** + * Check if the page should be override on exact URL match. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @return bool False if submenu item. + */ + function is_override_exact() { + return $this->_is_override_exact; + } + + + /** + * Get the path of the page the user should be forwarded to after first activation. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @return string + */ + function get_first_time_path() { + return $this->_first_time_path; + } + + /** + * Check if plugin's menu item is part of a custom top level menu. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @return bool + */ + function has_custom_parent() { + return ! $this->_is_top_level && is_string( $this->_parent_slug ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @return string + */ +// function slug(){ +// return $this->_menu_slug; +// } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @param string $id + * @param bool $default + * + * @return bool + */ + function is_submenu_item_visible( $id, $default = true ) { + return fs_apply_filter( + $this->_plugin_slug, + 'is_submenu_visible', + $this->get_bool_option( $this->_default_submenu_items, $id, $default ), + $id + ); + } + + /** + * Calculates admin settings menu slug. + * If plugin's menu slug is a file (e.g. CPT), uses plugin's slug as the menu slug. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @param string $page + * + * @return string + */ + function get_slug( $page = '' ) { + return ( ( false === strpos( $this->_menu_slug, '.php?' ) ) ? + $this->_menu_slug : + $this->_plugin_slug ) . ( empty( $page ) ? '' : ( '-' . $page ) ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @return string + */ + function get_parent_slug() { + return $this->_parent_slug; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @return string + */ + function get_type() { + return $this->_type; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @return bool + */ + function is_cpt() { + return ( 0 === strpos( $this->_menu_slug, 'edit.php?post_type=' ) || + // Back compatibility. + 'cpt' === $this->_type + ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @return string + */ + function get_parent_type() { + return $this->_parent_type; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @return string + */ + function get_raw_slug() { + return $this->_menu_slug; + } + + /** + * Get plugin's original menu slug. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @return string + */ + function get_original_menu_slug() { + if ( 'cpt' === $this->_type ) { + return add_query_arg( array( + 'post_type' => $this->_menu_slug + ), 'edit.php' ); + } + + if ( false === strpos( $this->_menu_slug, '.php?' ) ) { + return $this->_menu_slug; + } else { + return $this->_plugin_slug; + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @return string + */ + function get_top_level_menu_slug() { + return $this->has_custom_parent() ? + $this->get_parent_slug() : + $this->get_raw_slug(); + } + + /** + * Is user on plugin's admin activation page. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.8 + * + * @return bool + */ + function is_activation_page() { + return isset( $_GET['page'] ) && + ( ( strtolower( $this->_menu_slug ) === strtolower( $_GET['page'] ) ) || + ( strtolower( $this->_plugin_slug ) === strtolower( $_GET['page'] ) ) ); + } + + #region Submenu Override + + /** + * Override submenu's action. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.0 + * + * @param string $parent_slug + * @param string $menu_slug + * @param callable $function + * + * @return false|string If submenu exist, will return the hook name. + */ + function override_submenu_action( $parent_slug, $menu_slug, $function ) { + global $submenu; + + $menu_slug = plugin_basename( $menu_slug ); + $parent_slug = plugin_basename( $parent_slug ); + + if ( ! isset( $submenu[ $parent_slug ] ) ) { + // Parent menu not exist. + return false; + } + + $found_submenu_item = false; + foreach ( $submenu[ $parent_slug ] as $submenu_item ) { + if ( $menu_slug === $submenu_item[2] ) { + $found_submenu_item = $submenu_item; + break; + } + } + + if ( false === $found_submenu_item ) { + // Submenu item not found. + return false; + } + + // Remove current function. + $hookname = get_plugin_page_hookname( $menu_slug, $parent_slug ); + remove_all_actions( $hookname ); + + // Attach new action. + add_action( $hookname, $function ); + + return $hookname; + } + + #endregion Submenu Override + + #region Top level menu Override + + /** + * Find plugin's admin dashboard main menu item. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.2 + * + * @return string[]|false + */ + private function find_top_level_menu() { + global $menu; + + $position = - 1; + $found_menu = false; + + $menu_slug = $this->get_raw_slug(); + + $hook_name = get_plugin_page_hookname( $menu_slug, '' ); + foreach ( $menu as $pos => $m ) { + if ( $menu_slug === $m[2] ) { + $position = $pos; + $found_menu = $m; + break; + } + } + + if ( false === $found_menu ) { + return false; + } + + return array( + 'menu' => $found_menu, + 'position' => $position, + 'hook_name' => $hook_name + ); + } + + /** + * Remove all sub-menu items. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @return bool If submenu with plugin's menu slug was found. + */ + private function remove_all_submenu_items() { + global $submenu; + + $menu_slug = $this->get_raw_slug(); + + if ( ! isset( $submenu[ $menu_slug ] ) ) { + return false; + } + + $submenu[ $menu_slug ] = array(); + + return true; + } + + /** + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @return array[string]mixed + */ + function remove_menu_item() { + $this->_logger->entrance(); + + // Find main menu item. + $menu = $this->find_top_level_menu(); + + if ( false === $menu ) { + return false; + } + + // Remove it with its actions. + remove_all_actions( $menu['hook_name'] ); + + // Remove all submenu items. + $this->remove_all_submenu_items(); + + return $menu; + } + + /** + * + * @author Vova Feldman (@svovaf) + * @since 1.1.4 + * + * @param callable $function + * + * @return array[string]mixed + */ + function override_menu_item( $function ) { + $found_menu = $this->remove_menu_item(); + + if ( false === $found_menu ) { + return false; + } + + if ( ! $this->is_top_level() || ! $this->is_cpt() ) { + $menu_slug = plugin_basename( $this->get_slug() ); + + $hookname = get_plugin_page_hookname( $menu_slug, '' ); + + // Override menu action. + add_action( $hookname, $function ); + } else { + global $menu; + + // Create new top-level menu action. + $hookname = add_menu_page( + $found_menu['menu'][3], + $found_menu['menu'][0], + 'manage_options', + $this->get_slug(), + $function, + $found_menu['menu'][6], + $found_menu['position'] + ); + + // Remove original CPT menu. + unset( $menu[ $found_menu['position'] ] ); + } + + return $hookname; + } + + #endregion Top level menu Override + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-admin-notice-manager.php b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-admin-notice-manager.php new file mode 100644 index 000000000..67e0e47c5 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-admin-notice-manager.php @@ -0,0 +1,310 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.7 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Admin_Notice_Manager { + /** + * @var string + */ + protected $_slug; + /** + * @var string + */ + protected $_title; + /** + * @var array[] + */ + private $_admin_messages = array(); + /** + * @var FS_Key_Value_Storage + */ + private $_sticky_storage; + /** + * @var FS_Plugin_Manager[] + */ + private static $_instances = array(); + /** + * @var FS_Logger + */ + protected $_logger; + + /** + * @param string $slug + * @param string $title + * + * @return FS_Admin_Notice_Manager + */ + static function instance( $slug, $title = '' ) { + if ( ! isset( self::$_instances[ $slug ] ) ) { + self::$_instances[ $slug ] = new FS_Admin_Notice_Manager( $slug, $title ); + } + + return self::$_instances[ $slug ]; + } + + protected function __construct( $slug, $title = '' ) { + $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_' . $slug . '_data', WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK ); + + $this->_slug = $slug; + $this->_title = ! empty( $title ) ? $title : ''; + $this->_sticky_storage = FS_Key_Value_Storage::instance( 'admin_notices', $this->_slug ); + + if ( is_admin() ) { + if ( 0 < count( $this->_sticky_storage ) ) { + // If there are sticky notices for the current slug, add a callback + // to the AJAX action that handles message dismiss. + add_action( "wp_ajax_{$slug}_dismiss_notice_action", array( + &$this, + 'dismiss_notice_ajax_callback' + ) ); + + foreach ( $this->_sticky_storage as $id => $msg ) { + // Add admin notice. + $this->add( + $msg['message'], + $msg['title'], + $msg['type'], + true, + $msg['all'], + $msg['id'], + false + ); + } + } + } + } + + /** + * Remove sticky message by ID. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + */ + function dismiss_notice_ajax_callback() { + $this->_sticky_storage->remove( $_POST['message_id'] ); + wp_die(); + } + + /** + * Rendered sticky message dismiss JavaScript. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + */ + static function _add_sticky_dismiss_javascript() { + $params = array(); + fs_require_once_template( 'sticky-admin-notice-js.php', $params ); + } + + private static $_added_sticky_javascript = false; + + /** + * Hook to the admin_footer to add sticky message dismiss JavaScript handler. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + */ + private static function has_sticky_messages() { + if ( ! self::$_added_sticky_javascript ) { + add_action( 'admin_footer', array( 'FS_Admin_Notice_Manager', '_add_sticky_dismiss_javascript' ) ); + } + } + + /** + * Handle admin_notices by printing the admin messages stacked in the queue. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + */ + function _admin_notices_hook() { + $notice_type = 'admin_notices'; + + if ( function_exists( 'current_user_can' ) && + ! current_user_can( 'manage_options' ) + ) { + // Only show messages to admins. + return; + } + + if ( ! isset( $this->_admin_messages[ $notice_type ] ) || ! is_array( $this->_admin_messages[ $notice_type ] ) ) { + return; + } + + foreach ( $this->_admin_messages[ $notice_type ] as $id => $msg ) { + fs_require_template( 'admin-notice.php', $msg ); + + if ( $msg['sticky'] ) { + self::has_sticky_messages(); + } + } + } + + /** + * Handle all_admin_notices by printing the admin messages stacked in the queue. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + */ + function _all_admin_notices_hook() { + $notice_type = 'all_admin_notices'; + + if ( ! isset( $this->_admin_messages[ $notice_type ] ) || ! is_array( $this->_admin_messages[ $notice_type ] ) ) { + return; + } + + foreach ( $this->_admin_messages[ $notice_type ] as $id => $msg ) { + fs_require_template( 'all-admin-notice.php', $msg ); + } + } + + /** + * Enqueue common stylesheet to style admin notice. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + */ + function _enqueue_styles() { + fs_enqueue_local_style( 'fs_common', '/admin/common.css' ); + } + + /** + * Add admin message to admin messages queue, and hook to admin_notices / all_admin_notices if not yet hooked. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param string $message + * @param string $title + * @param string $type + * @param bool $is_sticky + * @param bool $all_admin + * @param string $id Message ID + * @param bool $store_if_sticky + * + * @uses add_action() + */ + function add( $message, $title = '', $type = 'success', $is_sticky = false, $all_admin = false, $id = '', $store_if_sticky = true ) { + $key = ( $all_admin ? 'all_admin_notices' : 'admin_notices' ); + + if ( ! isset( $this->_admin_messages[ $key ] ) ) { + $this->_admin_messages[ $key ] = array(); + + add_action( $key, array( &$this, "_{$key}_hook" ) ); + add_action( 'admin_enqueue_scripts', array( &$this, '_enqueue_styles' ) ); + + } + + if ( '' === $id ) { + $id = md5( $title . ' ' . $message . ' ' . $type ); + } + + $message_object = array( + 'message' => $message, + 'title' => $title, + 'type' => $type, + 'sticky' => $is_sticky, + 'id' => $id, + 'all' => $all_admin, + 'slug' => $this->_slug, + 'plugin' => $this->_title, + ); + + if ( $is_sticky && $store_if_sticky ) { + $this->_sticky_storage->{$id} = $message_object; + } + + $this->_admin_messages[ $key ][ $id ] = $message_object; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @param string $ids + */ + function remove_sticky( $ids ) { + if ( ! is_array( $ids ) ) { + $ids = array( $ids ); + } + + foreach ( $ids as $id ) { + // Remove from sticky storage. + $this->_sticky_storage->remove( $id ); + + // Remove from current admin messages. + if ( isset( $this->_admin_messages['all_admin_notices'] ) && isset( $this->_admin_messages['all_admin_notices'][ $id ] ) ) { + unset( $this->_admin_messages['all_admin_notices'][ $id ] ); + } + if ( isset( $this->_admin_messages['admin_notices'] ) && isset( $this->_admin_messages['admin_notices'][ $id ] ) ) { + unset( $this->_admin_messages['admin_notices'][ $id ] ); + } + } + } + + /** + * Check if sticky message exists by id. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param $id + * + * @return bool + */ + function has_sticky( $id ) { + return isset( $this->_sticky_storage[ $id ] ); + } + + /** + * Adds sticky admin notification. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @param string $message + * @param string $id Message ID + * @param string $title + * @param string $type + * @param bool $all_admin + */ + function add_sticky( $message, $id, $title = '', $type = 'success', $all_admin = false ) { + $this->add( $message, $title, $type, true, $all_admin, $id ); + } + + /** + * Clear all sticky messages. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.8 + */ + function clear_all_sticky() { + $this->_sticky_storage->clear_all(); + } + + /** + * Add admin message to all admin messages queue, and hook to all_admin_notices if not yet hooked. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.4 + * + * @param string $message + * @param string $title + * @param string $type + * @param bool $is_sticky + * @param string $id Message ID + */ + function add_all( $message, $title = '', $type = 'success', $is_sticky = false, $id = '' ) { + $this->add( $message, $title, $type, $is_sticky, true, $id ); + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-cache-manager.php b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-cache-manager.php new file mode 100644 index 000000000..595f49848 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-cache-manager.php @@ -0,0 +1,237 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.1.6 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Cache_Manager { + /** + * @var FS_Option_Manager + */ + private $_options; + /** + * @var FS_Logger + */ + private $_logger; + + /** + * @var FS_Cache_Manager[] + */ + private static $_MANAGERS = array(); + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.3 + * + * @param string $id + */ + private function __construct( $id ) { + $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_cach_mngr_' . $id, WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK ); + + $this->_logger->entrance(); + $this->_logger->log( 'id = ' . $id ); + + $this->_options = FS_Option_Manager::get_manager( $id, true ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @param $id + * + * @return FS_Cache_Manager + */ + static function get_manager( $id ) { + $id = strtolower( $id ); + + if ( ! isset( self::$_MANAGERS[ $id ] ) ) { + self::$_MANAGERS[ $id ] = new FS_Cache_Manager( $id ); + } + + return self::$_MANAGERS[ $id ]; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @return bool + */ + function is_empty() { + $this->_logger->entrance(); + + return $this->_options->is_empty(); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + */ + function clear() { + $this->_logger->entrance(); + + $this->_options->clear( true ); + } + + /** + * Delete cache manager from DB. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + */ + function delete() { + $this->_options->delete(); + } + + /** + * Check if there's a cached item. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @param string $key + * + * @return bool + */ + function has( $key ) { + $cache_entry = $this->_options->get_option( $key, false ); + + return ( is_object( $cache_entry ) && + isset( $cache_entry->timestamp ) && + is_numeric( $cache_entry->timestamp ) + ); + } + + /** + * Check if there's a valid cached item. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @param string $key + * + * @return bool + */ + function has_valid( $key ) { + $cache_entry = $this->_options->get_option( $key, false ); + + return ( is_object( $cache_entry ) && + isset( $cache_entry->timestamp ) && + is_numeric( $cache_entry->timestamp ) && + $cache_entry->timestamp > WP_FS__SCRIPT_START_TIME + ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @param string $key + * @param mixed $default + * + * @return mixed + */ + function get( $key, $default = null ) { + $this->_logger->entrance( 'key = ' . $key ); + + $cache_entry = $this->_options->get_option( $key, false ); + + if ( is_object( $cache_entry ) && + isset( $cache_entry->timestamp ) && + is_numeric( $cache_entry->timestamp ) + ) { + return $cache_entry->result; + } + + return $default; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @param string $key + * @param mixed $default + * + * @return mixed + */ + function get_valid( $key, $default = null ) { + $this->_logger->entrance( 'key = ' . $key ); + + $cache_entry = $this->_options->get_option( $key, false ); + + if ( is_object( $cache_entry ) && + isset( $cache_entry->timestamp ) && + is_numeric( $cache_entry->timestamp ) && + $cache_entry->timestamp > WP_FS__SCRIPT_START_TIME + ) { + return $cache_entry->result; + } + + return $default; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @param string $key + * @param mixed $value + * @param int $expiration + */ + function set( $key, $value, $expiration = WP_FS__TIME_24_HOURS_IN_SEC ) { + $this->_logger->entrance( 'key = ' . $key ); + + $cache_entry = new stdClass(); + $cache_entry->result = $value; + $cache_entry->timestamp = WP_FS__SCRIPT_START_TIME + $expiration; + $this->_options->set_option( $key, $cache_entry, true ); + } + + /** + * Get cached record expiration, or false if not cached or expired. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + * @param string $key + * + * @return bool|int + */ + function get_record_expiration( $key ) { + $this->_logger->entrance( 'key = ' . $key ); + + $cache_entry = $this->_options->get_option( $key, false ); + + if ( is_object( $cache_entry ) && + isset( $cache_entry->timestamp ) && + is_numeric( $cache_entry->timestamp ) && + $cache_entry->timestamp > WP_FS__SCRIPT_START_TIME + ) { + return $cache_entry->timestamp; + } + + return false; + } + + /** + * Purge cached item. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @param string $key + */ + function purge( $key ) { + $this->_logger->entrance( 'key = ' . $key ); + + $this->_options->unset_option( $key, true ); + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-key-value-storage.php b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-key-value-storage.php new file mode 100644 index 000000000..17f8d15f4 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-key-value-storage.php @@ -0,0 +1,295 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.7 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Key_Value_Storage implements ArrayAccess, Iterator, Countable { + /** + * @var string + */ + protected $_id; + /** + * @var string + */ + protected $_slug; + /** + * @var array + */ + protected $_data; + + /** + * @var FS_Plugin_Manager[] + */ + private static $_instances = array(); + /** + * @var FS_Logger + */ + protected $_logger; + + /** + * @param string $id + * @param string $slug + * + * @return FS_Key_Value_Storage + */ + static function instance( $id, $slug ) { + $key = $id . ':' . $slug; + if ( ! isset( self::$_instances[ $key ] ) ) { + self::$_instances[ $key ] = new FS_Key_Value_Storage( $id, $slug ); + } + + return self::$_instances[ $key ]; + } + + protected function __construct( $id, $slug ) { + $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_' . $slug . '_' . $id, WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK ); + + $this->_slug = $slug; + $this->_id = $id; + $this->load(); + } + + protected function get_option_manager() { + return FS_Option_Manager::get_manager( WP_FS__ACCOUNTS_OPTION_NAME, true ); + } + + protected function get_all_data() { + return $this->get_option_manager()->get_option( $this->_id, array() ); + } + + /** + * Load plugin data from local DB. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + */ + function load() { + $all_plugins_data = $this->get_all_data(); + $this->_data = isset( $all_plugins_data[ $this->_slug ] ) ? + $all_plugins_data[ $this->_slug ] : + array(); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @param string $key + * @param mixed $value + * @param bool $flush + */ + function store( $key, $value, $flush = true ) { + if ( $this->_logger->is_on() ) { + $this->_logger->entrance( $key . ' = ' . var_export( $value, true ) ); + } + + if ( array_key_exists( $key, $this->_data ) && $value === $this->_data[ $key ] ) { + // No need to store data if the value wasn't changed. + return; + } + + $all_data = $this->get_all_data(); + + $this->_data[ $key ] = $value; + + $all_data[ $this->_slug ] = $this->_data; + + $options_manager = $this->get_option_manager(); + $options_manager->set_option( $this->_id, $all_data, $flush ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @param bool $store + * @param string[] $exceptions Set of keys to keep and not clear. + */ + function clear_all( $store = true, $exceptions = array() ) { + $new_data = array(); + foreach ( $exceptions as $key ) { + if ( isset( $this->_data[ $key ] ) ) { + $new_data[ $key ] = $this->_data[ $key ]; + } + } + + $this->_data = $new_data; + + if ( $store ) { + $all_data = $this->get_all_data(); + $all_data[ $this->_slug ] = $this->_data; + $options_manager = $this->get_option_manager(); + $options_manager->set_option( $this->_id, $all_data, true ); + } + } + + /** + * Delete key-value storage. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + */ + function delete() { + $this->_data = array(); + + $all_data = $this->get_all_data(); + unset( $all_data[ $this->_slug ] ); + $options_manager = $this->get_option_manager(); + $options_manager->set_option( $this->_id, $all_data, true ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @param string $key + * @param bool $store + */ + function remove( $key, $store = true ) { + if ( ! array_key_exists( $key, $this->_data ) ) { + return; + } + + unset( $this->_data[ $key ] ); + + if ( $store ) { + $all_data = $this->get_all_data(); + $all_data[ $this->_slug ] = $this->_data; + $options_manager = $this->get_option_manager(); + $options_manager->set_option( $this->_id, $all_data, true ); + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @param string $key + * @param mixed $default + * + * @return bool|\FS_Plugin + */ + function get( $key, $default = false ) { + return array_key_exists( $key, $this->_data ) ? + $this->_data[ $key ] : + $default; + } + + + /* ArrayAccess + Magic Access (better for refactoring) + -----------------------------------------------------------------------------------*/ + function __set( $k, $v ) { + $this->store( $k, $v ); + } + + function __isset( $k ) { + return array_key_exists( $k, $this->_data ); + } + + function __unset( $k ) { + $this->remove( $k ); + } + + function __get( $k ) { + return $this->get( $k, null ); + } + + function offsetSet( $k, $v ) { + if ( is_null( $k ) ) { + throw new Exception( 'Can\'t append value to request params.' ); + } else { + $this->{$k} = $v; + } + } + + function offsetExists( $k ) { + return array_key_exists( $k, $this->_data ); + } + + function offsetUnset( $k ) { + unset( $this->$k ); + } + + function offsetGet( $k ) { + return $this->get( $k, null ); + } + + /** + * (PHP 5 >= 5.0.0)<br/> + * Return the current element + * + * @link http://php.net/manual/en/iterator.current.php + * @return mixed Can return any type. + */ + public function current() { + return current( $this->_data ); + } + + /** + * (PHP 5 >= 5.0.0)<br/> + * Move forward to next element + * + * @link http://php.net/manual/en/iterator.next.php + * @return void Any returned value is ignored. + */ + public function next() { + next( $this->_data ); + } + + /** + * (PHP 5 >= 5.0.0)<br/> + * Return the key of the current element + * + * @link http://php.net/manual/en/iterator.key.php + * @return mixed scalar on success, or null on failure. + */ + public function key() { + return key( $this->_data ); + } + + /** + * (PHP 5 >= 5.0.0)<br/> + * Checks if current position is valid + * + * @link http://php.net/manual/en/iterator.valid.php + * @return boolean The return value will be casted to boolean and then evaluated. + * Returns true on success or false on failure. + */ + public function valid() { + $key = key( $this->_data ); + + return ( $key !== null && $key !== false ); + } + + /** + * (PHP 5 >= 5.0.0)<br/> + * Rewind the Iterator to the first element + * + * @link http://php.net/manual/en/iterator.rewind.php + * @return void Any returned value is ignored. + */ + public function rewind() { + reset( $this->_data ); + } + + /** + * (PHP 5 >= 5.1.0)<br/> + * Count elements of an object + * + * @link http://php.net/manual/en/countable.count.php + * @return int The custom count as an integer. + * </p> + * <p> + * The return value is cast to an integer. + */ + public function count() { + return count( $this->_data ); + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-license-manager.php b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-license-manager.php new file mode 100644 index 000000000..ca27c4631 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-license-manager.php @@ -0,0 +1,101 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.6 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_License_Manager /*extends FS_Abstract_Manager*/ + { +// +// +// /** +// * @var FS_License_Manager[] +// */ +// private static $_instances = array(); +// +// static function instance( Freemius $fs ) { +// $slug = strtolower( $fs->get_slug() ); +// +// if ( ! isset( self::$_instances[ $slug ] ) ) { +// self::$_instances[ $slug ] = new FS_License_Manager( $slug, $fs ); +// } +// +// return self::$_instances[ $slug ]; +// } +// +//// private function __construct($slug) { +//// parent::__construct($slug); +//// } +// +// function entry_id() { +// return 'licenses'; +// } +// +// function sync( $id ) { +// +// } +// +// /** +// * @author Vova Feldman (@svovaf) +// * @since 1.0.5 +// * @uses FS_Api +// * +// * @param number|bool $plugin_id +// * +// * @return FS_Plugin_License[]|stdClass Licenses or API error. +// */ +// function api_get_user_plugin_licenses( $plugin_id = false ) { +// $api = $this->_fs->get_api_user_scope(); +// +// if ( ! is_numeric( $plugin_id ) ) { +// $plugin_id = $this->_fs->get_id(); +// } +// +// $result = $api->call( "/plugins/{$plugin_id}/licenses.json" ); +// +// if ( ! isset( $result->error ) ) { +// for ( $i = 0, $len = count( $result->licenses ); $i < $len; $i ++ ) { +// $result->licenses[ $i ] = new FS_Plugin_License( $result->licenses[ $i ] ); +// } +// +// $result = $result->licenses; +// } +// +// return $result; +// } +// +// function api_get_many() { +// +// } +// +// function api_activate( $id ) { +// +// } +// +// function api_deactivate( $id ) { +// +// } + + /** + * @param FS_Plugin_License[] $licenses + * + * @return bool + */ + static function has_premium_license( $licenses ) { + if ( is_array( $licenses ) ) { + foreach ( $licenses as $license ) { + if ( ! $license->is_utilized() && $license->is_features_enabled() ) { + return true; + } + } + } + + return false; + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-option-manager.php b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-option-manager.php new file mode 100644 index 000000000..19c706964 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-option-manager.php @@ -0,0 +1,302 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + /** + * 3-layer lazy options manager. + * layer 3: Memory + * layer 2: Cache (if there's any caching plugin and if WP_FS__DEBUG_SDK is FALSE) + * layer 1: Database (options table). All options stored as one option record in the DB to reduce number of DB + * queries. + * + * If load() is not explicitly called, starts as empty manager. Same thing about saving the data - you have to + * explicitly call store(). + * + * Class Freemius_Option_Manager + */ + class FS_Option_Manager { + /** + * @var string + */ + private $_id; + /** + * @var array + */ + private $_options; + /** + * @var FS_Logger + */ + private $_logger; + + /** + * @var FS_Option_Manager[] + */ + private static $_MANAGERS = array(); + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * + * @param string $id + * @param bool $load + */ + private function __construct( $id, $load = false ) { + $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_opt_mngr_' . $id, WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK ); + + $this->_logger->entrance(); + $this->_logger->log( 'id = ' . $id ); + + $this->_id = $id; + + if ( $load ) { + $this->load(); + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * + * @param $id + * @param $load + * + * @return FS_Option_Manager + */ + static function get_manager( $id, $load = false ) { + $id = strtolower( $id ); + + if ( ! isset( self::$_MANAGERS[ $id ] ) ) { + self::$_MANAGERS[ $id ] = new FS_Option_Manager( $id, $load ); + } // If load required but not yet loaded, load. + else if ( $load && ! self::$_MANAGERS[ $id ]->is_loaded() ) { + self::$_MANAGERS[ $id ]->load(); + } + + return self::$_MANAGERS[ $id ]; + } + + private function _get_option_manager_name() { +// return WP_FS__SLUG . '_' . $this->_id; + return $this->_id; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * + * @param bool $flush + */ + function load( $flush = false ) { + $this->_logger->entrance(); + + $option_name = $this->_get_option_manager_name(); + + if ( $flush || ! isset( $this->_options ) ) { + if ( isset( $this->_options ) ) { + // Clear prev options. + $this->clear(); + } + + if ( ! WP_FS__DEBUG_SDK ) { + $this->_options = wp_cache_get( $option_name, WP_FS__SLUG ); + } + +// $this->_logger->info('wp_cache_get = ' . var_export($this->_options, true)); + +// if ( is_array( $this->_options ) ) { +// $this->clear(); +// } + + $cached = true; + + if ( empty( $this->_options ) ) { + $this->_options = get_option( $option_name ); + + if ( is_string( $this->_options ) ) { + $this->_options = json_decode( $this->_options ); + } + +// $this->_logger->info('get_option = ' . var_export($this->_options, true)); + + if ( false === $this->_options ) { + $this->clear(); + } + + $cached = false; + } + + if ( ! WP_FS__DEBUG_SDK && ! $cached ) // Set non encoded cache. + { + wp_cache_set( $option_name, $this->_options, WP_FS__SLUG ); + } + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * + * @return bool + */ + function is_loaded() { + return isset( $this->_options ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * + * @return bool + */ + function is_empty() { + return ( $this->is_loaded() && false === $this->_options ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param bool $flush + */ + function clear( $flush = false ) { + $this->_logger->entrance(); + + $this->_options = array(); + + if ( $flush ) { + $this->store(); + } + } + + /** + * Delete options manager from DB. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + */ + function delete() { + delete_option( $this->_get_option_manager_name() ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param string $option + * + * @return bool + */ + function has_option( $option ) { + return array_key_exists( $option, $this->_options ); + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * + * @param string $option + * @param mixed $default + * + * @return mixed + */ + function get_option( $option, $default = null ) { + $this->_logger->entrance( 'option = ' . $option ); + + if ( is_array( $this->_options ) ) { + return isset( $this->_options[ $option ] ) ? $this->_options[ $option ] : $default; + } else if ( is_object( $this->_options ) ) { + return isset( $this->_options->{$option} ) ? $this->_options->{$option} : $default; + } + + return $default; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * + * @param string $option + * @param mixed $value + * @param bool $flush + */ + function set_option( $option, $value, $flush = false ) { + $this->_logger->entrance( 'option = ' . $option ); + + if ( ! $this->is_loaded() ) { + $this->clear(); + } + + if ( is_array( $this->_options ) ) { + $this->_options[ $option ] = $value; + } else if ( is_object( $this->_options ) ) { + $this->_options->{$option} = $value; + } + + if ( $flush ) { + $this->store(); + } + } + + /** + * Unset option. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + * + * @param string $option + * @param bool $flush + */ + function unset_option( $option, $flush = false ) { + $this->_logger->entrance( 'option = ' . $option ); + + if ( is_array( $this->_options ) ) { + if ( ! isset( $this->_options[ $option ] ) ) { + return; + } + + unset( $this->_options[ $option ] ); + + } else if ( is_object( $this->_options ) ) { + if ( ! isset( $this->_options->{$option} ) ) { + return; + } + + unset( $this->_options->{$option} ); + } + + if ( $flush ) { + $this->store(); + } + } + + /** + * Dump options to database. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.3 + */ + function store() { + $this->_logger->entrance(); + + $option_name = $this->_get_option_manager_name(); + + if ( $this->_logger->is_on() ) { + $this->_logger->info( $option_name . ' = ' . var_export( $this->_options, true ) ); + } + + // Update DB. + update_option( $option_name, $this->_options ); + + if ( ! WP_FS__DEBUG_SDK ) { + wp_cache_set( $option_name, $this->_options, WP_FS__SLUG ); + } + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-plan-manager.php b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-plan-manager.php new file mode 100644 index 000000000..ddd9015ba --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-plan-manager.php @@ -0,0 +1,162 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.6 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Plan_Manager { + /** + * @var FS_Plan_Manager + */ + private static $_instance; + + /** + * @return FS_Plan_Manager + */ + static function instance() { + if ( ! isset( self::$_instance ) ) { + self::$_instance = new FS_Plan_Manager(); + } + + return self::$_instance; + } + + private function __construct() { + } + + /** + * @param FS_Plugin_License[] $licenses + * + * @return bool + */ + function has_premium_license( $licenses ) { + if ( is_array( $licenses ) ) { + /** + * @var FS_Plugin_License[] $licenses + */ + foreach ( $licenses as $license ) { + if ( ! $license->is_utilized() && $license->is_features_enabled() ) { + return true; + } + } + } + + return false; + } + + /** + * Check if plugin has any paid plans. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @param FS_Plugin_Plan[] $plans + * + * @return bool + */ + function has_paid_plan( $plans ) { + if ( ! is_array( $plans ) || 0 === count( $plans ) ) { + return false; + } + + /** + * @var FS_Plugin_Plan[] $plans + */ + for ( $i = 0, $len = count( $plans ); $i < $len; $i ++ ) { + if ( ! $plans[ $i ]->is_free() ) { + return true; + } + } + + return false; + } + + /** + * Check if plugin has any free plan, or is it premium only. + * + * Note: If no plans configured, assume plugin is free. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.7 + * + * @param FS_Plugin_Plan[] $plans + * + * @return bool + */ + function has_free_plan( $plans ) { + if ( ! is_array( $plans ) || 0 === count( $plans ) ) { + return true; + } + + /** + * @var FS_Plugin_Plan[] $plans + */ + for ( $i = 0, $len = count( $plans ); $i < $len; $i ++ ) { + if ( $plans[ $i ]->is_free() ) { + return true; + } + } + + return false; + } + + /** + * Find all plans that have trial. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param FS_Plugin_Plan[] $plans + * + * @return FS_Plugin_Plan[] + */ + function get_trial_plans( $plans ) { + $trial_plans = array(); + + if ( is_array( $plans ) && 0 < count( $plans ) ) { + /** + * @var FS_Plugin_Plan[] $plans + */ + for ( $i = 0, $len = count( $plans ); $i < $len; $i ++ ) { + if ( $plans[ $i ]->has_trial() ) { + $trial_plans[] = $plans[ $i ]; + } + } + } + + return $trial_plans; + } + + /** + * Check if plugin has any trial plan. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.9 + * + * @param FS_Plugin_Plan[] $plans + * + * @return bool + */ + function has_trial_plan( $plans ) { + if ( ! is_array( $plans ) || 0 === count( $plans ) ) { + return true; + } + + /** + * @var FS_Plugin_Plan[] $plans + */ + for ( $i = 0, $len = count( $plans ); $i < $len; $i ++ ) { + if ( $plans[ $i ]->has_trial() ) { + return true; + } + } + + return false; + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-plugin-manager.php b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-plugin-manager.php new file mode 100644 index 000000000..b56d92da1 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/managers/class-fs-plugin-manager.php @@ -0,0 +1,154 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.6 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + class FS_Plugin_Manager { + /** + * @var string + */ + protected $_slug; + /** + * @var FS_Plugin + */ + protected $_plugin; + + /** + * @var FS_Plugin_Manager[] + */ + private static $_instances = array(); + /** + * @var FS_Logger + */ + protected $_logger; + + /** + * @param string $slug + * + * @return FS_Plugin_Manager + */ + static function instance( $slug ) { + if ( ! isset( self::$_instances[ $slug ] ) ) { + self::$_instances[ $slug ] = new FS_Plugin_Manager( $slug ); + } + + return self::$_instances[ $slug ]; + } + + protected function __construct( $slug ) { + $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_' . $slug . '_' . 'plugins', WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK ); + + $this->_slug = $slug; + $this->load(); + } + + protected function get_option_manager() { + return FS_Option_Manager::get_manager( WP_FS__ACCOUNTS_OPTION_NAME, true ); + } + + protected function get_all_plugins() { + return $this->get_option_manager()->get_option( 'plugins', array() ); + } + + /** + * Load plugin data from local DB. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + */ + function load() { + $all_plugins = $this->get_all_plugins(); + $this->_plugin = isset( $all_plugins[ $this->_slug ] ) ? + $all_plugins[ $this->_slug ] : + null; + } + + /** + * Store plugin on local DB. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param bool|FS_Plugin $plugin + * @param bool $flush + * + * @return bool|\FS_Plugin + */ + function store( $plugin = false, $flush = true ) { + $all_plugins = $this->get_all_plugins(); + + if ( false !== $plugin ) { + $this->_plugin = $plugin; + } + + $all_plugins[ $this->_slug ] = $this->_plugin; + + $options_manager = $this->get_option_manager(); + $options_manager->set_option( 'plugins', $all_plugins, $flush ); + + return $this->_plugin; + } + + /** + * Update local plugin data if different. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param \FS_Plugin $plugin + * @param bool $store + * + * @return bool True if plugin was updated. + */ + function update( FS_Plugin $plugin, $store = true ) { + if ( ! ( $this->_plugin instanceof FS_Plugin ) || + $this->_plugin->slug != $plugin->slug || + $this->_plugin->public_key != $plugin->public_key || + $this->_plugin->secret_key != $plugin->secret_key || + $this->_plugin->parent_plugin_id != $plugin->parent_plugin_id || + $this->_plugin->title != $plugin->title + ) { + $this->store( $plugin, $store ); + + return true; + } + + return false; + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @param FS_Plugin $plugin + * @param bool $store + */ + function set( FS_Plugin $plugin, $store = false ) { + $this->_plugin = $plugin; + + if ( $store ) { + $this->store(); + } + } + + /** + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return bool|\FS_Plugin + */ + function get() { + return isset( $this->_plugin ) ? + $this->_plugin : + false; + } + + + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/ArgumentNotExistException.php b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/ArgumentNotExistException.php new file mode 100644 index 000000000..911531879 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/ArgumentNotExistException.php @@ -0,0 +1,6 @@ +<?php + if ( ! class_exists( 'Freemius_InvalidArgumentException' ) ) { + exit; + } + + class Freemius_ArgumentNotExistException extends Freemius_InvalidArgumentException { } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/EmptyArgumentException.php b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/EmptyArgumentException.php new file mode 100644 index 000000000..78e34f98c --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/EmptyArgumentException.php @@ -0,0 +1,6 @@ +<?php + if ( ! class_exists( 'Freemius_InvalidArgumentException' ) ) { + exit; + } + + class Freemius_EmptyArgumentException extends Freemius_InvalidArgumentException { } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/Exception.php b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/Exception.php new file mode 100644 index 000000000..cef4cab80 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/Exception.php @@ -0,0 +1,75 @@ +<?php + /** + * Thrown when an API call returns an exception. + * + */ + class Freemius_Exception extends Exception + { + protected $_result; + protected $_type; + protected $_code; + + /** + * Make a new API Exception with the given result. + * + * @param array $result The result from the API server. + */ + public function __construct($result) + { + $this->_result = $result; + + $code = 0; + $message = 'Unknown error, please check GetResult().'; + $type = ''; + + if (isset($result['error']) && is_array($result['error'])) + { + if (isset($result['error']['code'])) + $code = $result['error']['code']; + if (isset($result['error']['message'])) + $message = $result['error']['message']; + if (isset($result['error']['type'])) + $type = $result['error']['type']; + } + + $this->_type = $type; + $this->_code = $code; + + parent::__construct($message, is_numeric($code) ? $code : 0); + } + + /** + * Return the associated result object returned by the API server. + * + * @return array The result from the API server + */ + public function getResult() + { + return $this->_result; + } + + public function getStringCode() + { + return $this->_code; + } + + public function getType() + { + return $this->_type; + } + + /** + * To make debugging easier. + * + * @return string The string representation of the error + */ + public function __toString() + { + $str = $this->getType() . ': '; + + if ($this->code != 0) + $str .= $this->getStringCode() . ': '; + + return $str . $this->getMessage(); + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/InvalidArgumentException.php b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/InvalidArgumentException.php new file mode 100644 index 000000000..967798c13 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/InvalidArgumentException.php @@ -0,0 +1,6 @@ +<?php + if ( ! class_exists( 'Freemius_Exception' ) ) { + exit; + } + + class Freemius_InvalidArgumentException extends Freemius_Exception { } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/OAuthException.php b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/OAuthException.php new file mode 100644 index 000000000..4b65873fb --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Exceptions/OAuthException.php @@ -0,0 +1,12 @@ +<?php + if ( ! class_exists( 'Freemius_Exception' ) ) { + exit; + } + + class Freemius_OAuthException extends Freemius_Exception + { + public function __construct($pResult) + { + parent::__construct($pResult); + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Freemius.php b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Freemius.php new file mode 100644 index 000000000..678445499 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/Freemius.php @@ -0,0 +1,574 @@ +<?php + /** + * Copyright 2014 Freemius, Inc. + * + * Licensed under the GPL v2 (the "License"); you may + * not use this file except in compliance with the License. You may obtain + * a copy of the License at + * + * http://choosealicense.com/licenses/gpl-v2/ + * + * 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. + */ + + require_once( dirname( __FILE__ ) . '/FreemiusBase.php' ); + + define( 'FS_SDK__USER_AGENT', 'fs-php-' . Freemius_Api_Base::VERSION ); + + if ( ! defined( 'FS_SDK__SIMULATE_NO_CURL' ) ) { + define( 'FS_SDK__SIMULATE_NO_CURL', false ); + } + + if ( ! defined( 'FS_SDK__SIMULATE_NO_API_CONNECTIVITY_CLOUDFLARE' ) ) { + define( 'FS_SDK__SIMULATE_NO_API_CONNECTIVITY_CLOUDFLARE', false ); + } + + if ( ! defined( 'FS_SDK__SIMULATE_NO_API_CONNECTIVITY_SQUID_ACL' ) ) { + define( 'FS_SDK__SIMULATE_NO_API_CONNECTIVITY_SQUID_ACL', false ); + } + + define( 'FS_SDK__HAS_CURL', ! FS_SDK__SIMULATE_NO_CURL && function_exists( 'curl_version' ) ); + + if ( ! FS_SDK__HAS_CURL ) { + $curl_version = array( 'version' => '7.0.0' ); + } else { + $curl_version = curl_version(); + } + + define( 'FS_API__PROTOCOL', version_compare( $curl_version['version'], '7.37', '>=' ) ? 'https' : 'http' ); + + if ( ! defined( 'FS_API__LOGGER_ON' ) ) { + define( 'FS_API__LOGGER_ON', false ); + } + + if ( ! defined( 'FS_API__ADDRESS' ) ) { + define( 'FS_API__ADDRESS', '://api.freemius.com' ); + } + if ( ! defined( 'FS_API__SANDBOX_ADDRESS' ) ) { + define( 'FS_API__SANDBOX_ADDRESS', '://sandbox-api.freemius.com' ); + } + + class Freemius_Api extends Freemius_Api_Base { + private static $_logger = array(); + + /** + * @param string $pScope 'app', 'developer', 'user' or 'install'. + * @param number $pID Element's id. + * @param string $pPublic Public key. + * @param string|bool $pSecret Element's secret key. + * @param bool $pSandbox Whether or not to run API in sandbox mode. + */ + public function __construct( $pScope, $pID, $pPublic, $pSecret = false, $pSandbox = false ) { + // If secret key not provided, use public key encryption. + if ( is_bool( $pSecret ) ) { + $pSecret = $pPublic; + } + + parent::Init( $pScope, $pID, $pPublic, $pSecret, $pSandbox ); + } + + public static function GetUrl( $pCanonizedPath = '', $pIsSandbox = false ) { + $address = ( $pIsSandbox ? FS_API__SANDBOX_ADDRESS : FS_API__ADDRESS ); + + if ( ':' === $address[0] ) { + $address = self::$_protocol . $address; + } + + return $address . $pCanonizedPath; + } + + #region Servers Clock Diff ------------------------------------------------------ + + /** + * @var int Clock diff in seconds between current server to API server. + */ + private static $_clock_diff = 0; + + /** + * Set clock diff for all API calls. + * + * @since 1.0.3 + * + * @param $pSeconds + */ + public static function SetClockDiff( $pSeconds ) { + self::$_clock_diff = $pSeconds; + } + + /** + * Find clock diff between current server to API server. + * + * @since 1.0.2 + * @return int Clock diff in seconds. + */ + public static function FindClockDiff() { + $time = time(); + $pong = self::Ping(); + + return ( $time - strtotime( $pong->timestamp ) ); + } + + #endregion Servers Clock Diff ------------------------------------------------------ + + /** + * @var string http or https + */ + private static $_protocol = FS_API__PROTOCOL; + + /** + * Set API connection protocol. + * + * @since 1.0.4 + */ + public static function SetHttp() { + self::$_protocol = 'http'; + } + + /** + * @since 1.0.4 + * + * @return bool + */ + public static function IsHttps() { + return ( 'https' === self::$_protocol ); + } + + /** + * Sign request with the following HTTP headers: + * Content-MD5: MD5(HTTP Request body) + * Date: Current date (i.e Sat, 14 Feb 2015 20:24:46 +0000) + * Authorization: FS {scope_entity_id}:{scope_entity_public_key}:base64encode(sha256(string_to_sign, + * {scope_entity_secret_key})) + * + * @param string $pResourceUrl + * @param array $pCurlOptions + * + * @return array + */ + function SignRequest( $pResourceUrl, $pCurlOptions ) { + $eol = "\n"; + $content_md5 = ''; + $now = ( time() - self::$_clock_diff ); + $date = date( 'r', $now ); + $content_type = ''; + + if ( isset( $pCurlOptions[ CURLOPT_POST ] ) && 0 < $pCurlOptions[ CURLOPT_POST ] ) { + $content_md5 = md5( $pCurlOptions[ CURLOPT_POSTFIELDS ] ); + $pCurlOptions[ CURLOPT_HTTPHEADER ][] = 'Content-MD5: ' . $content_md5; + $content_type = 'application/json'; + } + + $pCurlOptions[ CURLOPT_HTTPHEADER ][] = 'Date: ' . $date; + + $string_to_sign = implode( $eol, array( + $pCurlOptions[ CURLOPT_CUSTOMREQUEST ], + $content_md5, + $content_type, + $date, + $pResourceUrl + ) ); + + // If secret and public keys are identical, it means that + // the signature uses public key hash encoding. + $auth_type = ( $this->_secret !== $this->_public ) ? 'FS' : 'FSP'; + + // Add authorization header. + $pCurlOptions[ CURLOPT_HTTPHEADER ][] = 'Authorization: ' . + $auth_type . ' ' . + $this->_id . ':' . + $this->_public . ':' . + self::Base64UrlEncode( + hash_hmac( 'sha256', $string_to_sign, $this->_secret ) + ); + + return $pCurlOptions; + } + + /** + * Get API request URL signed via query string. + * + * @param string $pPath + * + * @throws Freemius_Exception + * + * @return string + */ + function GetSignedUrl( $pPath ) { + $resource = explode( '?', $this->CanonizePath( $pPath ) ); + $pResourceUrl = $resource[0]; + + $eol = "\n"; + $content_md5 = ''; + $content_type = ''; + $now = ( time() - self::$_clock_diff ); + $date = date( 'r', $now ); + + $string_to_sign = implode( $eol, array( + 'GET', + $content_md5, + $content_type, + $date, + $pResourceUrl + ) ); + + // If secret and public keys are identical, it means that + // the signature uses public key hash encoding. + $auth_type = ( $this->_secret !== $this->_public ) ? 'FS' : 'FSP'; + + return Freemius_Api::GetUrl( + $pResourceUrl . '?' . + ( 1 < count( $resource ) && ! empty( $resource[1] ) ? $resource[1] . '&' : '' ) . + http_build_query( array( + 'auth_date' => $date, + 'authorization' => $auth_type . ' ' . $this->_id . ':' . + $this->_public . ':' . + self::Base64UrlEncode( hash_hmac( + 'sha256', $string_to_sign, $this->_secret + ) ) + ) ), $this->_isSandbox ); + } + + /** + * @param resource $pCurlHandler + * @param array $pCurlOptions + * + * @return mixed + */ + private static function ExecuteRequest( &$pCurlHandler, &$pCurlOptions ) { + $start = microtime( true ); + + $result = curl_exec( $pCurlHandler ); + + if ( FS_API__LOGGER_ON ) { + $end = microtime( true ); + + $has_body = ( isset( $pCurlOptions[ CURLOPT_POST ] ) && 0 < $pCurlOptions[ CURLOPT_POST ] ); + + self::$_logger[] = array( + 'id' => count( self::$_logger ), + 'start' => $start, + 'end' => $end, + 'total' => ( $end - $start ), + 'method' => $pCurlOptions[ CURLOPT_CUSTOMREQUEST ], + 'path' => $pCurlOptions[ CURLOPT_URL ], + 'body' => $has_body ? $pCurlOptions[ CURLOPT_POSTFIELDS ] : null, + 'result' => $result, + 'code' => curl_getinfo( $pCurlHandler, CURLINFO_HTTP_CODE ), + 'backtrace' => debug_backtrace(), + ); + } + + return $result; + } + + /** + * @return array + */ + static function GetLogger() { + return self::$_logger; + } + + /** + * @param string $pCanonizedPath + * @param string $pMethod + * @param array $pParams + * @param null|resource $pCurlHandler + * @param bool $pIsSandbox + * @param null|callable $pBeforeExecutionFunction + * + * @return object[]|object|null + * + * @throws \Freemius_Exception + */ + private static function MakeStaticRequest( + $pCanonizedPath, + $pMethod = 'GET', + $pParams = array(), + $pCurlHandler = null, + $pIsSandbox = false, + $pBeforeExecutionFunction = null + ) { + if ( ! FS_SDK__HAS_CURL ) { + self::ThrowNoCurlException(); + } + + // Connectivity errors simulation. + if ( FS_SDK__SIMULATE_NO_API_CONNECTIVITY_CLOUDFLARE ) { + self::ThrowCloudFlareDDoSException(); + } else if ( FS_SDK__SIMULATE_NO_API_CONNECTIVITY_SQUID_ACL ) { + self::ThrowSquidAclException(); + } + + if ( ! $pCurlHandler ) { + $pCurlHandler = curl_init(); + } + + $opts = array( + CURLOPT_CONNECTTIMEOUT => 10, + CURLOPT_RETURNTRANSFER => true, + CURLOPT_TIMEOUT => 60, + CURLOPT_USERAGENT => FS_SDK__USER_AGENT, + ); + + if ( ! isset( $opts[ CURLOPT_HTTPHEADER ] ) || ! is_array( $opts[ CURLOPT_HTTPHEADER ] ) ) { + $opts[ CURLOPT_HTTPHEADER ] = array(); + } + + if ( 'POST' === $pMethod || 'PUT' === $pMethod ) { + if ( is_array( $pParams ) && 0 < count( $pParams ) ) { + $opts[ CURLOPT_HTTPHEADER ][] = 'Content-Type: application/json'; + $opts[ CURLOPT_POST ] = count( $pParams ); + $opts[ CURLOPT_POSTFIELDS ] = json_encode( $pParams ); + } + + $opts[ CURLOPT_RETURNTRANSFER ] = true; + } + + $opts[ CURLOPT_URL ] = Freemius_Api::GetUrl( $pCanonizedPath, $pIsSandbox ); + $opts[ CURLOPT_CUSTOMREQUEST ] = $pMethod; + + $resource = explode( '?', $pCanonizedPath ); + + // disable the 'Expect: 100-continue' behaviour. This causes CURL to wait + // for 2 seconds if the server does not support this header. + $opts[ CURLOPT_HTTPHEADER ][] = 'Expect:'; + + if ( 'https' === substr( strtolower( $pCanonizedPath ), 0, 5 ) ) { + $opts[ CURLOPT_SSL_VERIFYHOST ] = false; + $opts[ CURLOPT_SSL_VERIFYPEER ] = false; + } + + if ( false !== $pBeforeExecutionFunction && + is_callable( $pBeforeExecutionFunction ) + ) { + $opts = call_user_func( $pBeforeExecutionFunction, $resource[0], $opts ); + } + + curl_setopt_array( $pCurlHandler, $opts ); + $result = self::ExecuteRequest( $pCurlHandler, $opts ); + + /*if (curl_errno($ch) == 60) // CURLE_SSL_CACERT + { + self::errorLog('Invalid or no certificate authority found, using bundled information'); + curl_setopt($ch, CURLOPT_CAINFO, + dirname(__FILE__) . '/fb_ca_chain_bundle.crt'); + $result = curl_exec($ch); + }*/ + + // With dual stacked DNS responses, it's possible for a server to + // have IPv6 enabled but not have IPv6 connectivity. If this is + // the case, curl will try IPv4 first and if that fails, then it will + // fall back to IPv6 and the error EHOSTUNREACH is returned by the + // operating system. + if ( false === $result && empty( $opts[ CURLOPT_IPRESOLVE ] ) ) { + $matches = array(); + $regex = '/Failed to connect to ([^:].*): Network is unreachable/'; + if ( preg_match( $regex, curl_error( $pCurlHandler ), $matches ) ) { + if ( strlen( @inet_pton( $matches[1] ) ) === 16 ) { +// self::errorLog('Invalid IPv6 configuration on server, Please disable or get native IPv6 on your server.'); + $opts[ CURLOPT_IPRESOLVE ] = CURL_IPRESOLVE_V4; + curl_setopt( $pCurlHandler, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); + $result = self::ExecuteRequest( $pCurlHandler, $opts ); + } + } + } + + if ( $result === false ) { + self::ThrowCurlException( $pCurlHandler ); + } + + curl_close( $pCurlHandler ); + + if ( empty( $result ) ) { + return null; + } + + $decoded = json_decode( $result ); + + if ( is_null( $decoded ) ) { + if ( preg_match( '/Please turn JavaScript on/i', $result ) && + preg_match( '/text\/javascript/', $result ) + ) { + self::ThrowCloudFlareDDoSException( $result ); + } else if ( preg_match( '/Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect./', $result ) && + preg_match( '/squid/', $result ) + ) { + self::ThrowSquidAclException( $result ); + } else { + $decoded = (object) array( + 'error' => (object) array( + 'type' => 'Unknown', + 'message' => $result, + 'code' => 'unknown', + 'http' => 402 + ) + ); + } + } + + return $decoded; + } + + + /** + * Makes an HTTP request. This method can be overridden by subclasses if + * developers want to do fancier things or use something other than curl to + * make the request. + * + * @param string $pCanonizedPath The URL to make the request to + * @param string $pMethod HTTP method + * @param array $pParams The parameters to use for the POST body + * @param null|resource $pCurlHandler Initialized curl handle + * + * @return object[]|object|null + * + * @throws Freemius_Exception + */ + public function MakeRequest( + $pCanonizedPath, + $pMethod = 'GET', + $pParams = array(), + $pCurlHandler = null + ) { + $resource = explode( '?', $pCanonizedPath ); + + // Only sign request if not ping.json connectivity test. + $sign_request = ( '/v1/ping.json' !== strtolower( substr( $resource[0], - strlen( '/v1/ping.json' ) ) ) ); + + return self::MakeStaticRequest( + $pCanonizedPath, + $pMethod, + $pParams, + $pCurlHandler, + $this->_isSandbox, + $sign_request ? array( &$this, 'SignRequest' ) : null + ); + } + + #region Connectivity Test ------------------------------------------------------ + + /** + * If successful connectivity to the API endpoint using ping.json endpoint. + * + * - OR - + * + * Validate if ping result object is valid. + * + * @param mixed $pPong + * + * @return bool + */ + public static function Test( $pPong = null ) { + $pong = is_null( $pPong ) ? + self::Ping() : + $pPong; + + return ( + is_object( $pong ) && + isset( $pong->api ) && + 'pong' === $pong->api + ); + } + + /** + * Ping API to test connectivity. + * + * @return object + */ + public static function Ping() { + try { + $result = self::MakeStaticRequest( '/v' . FS_API__VERSION . '/ping.json' ); + } catch ( Freemius_Exception $e ) { + // Map to error object. + $result = (object) $e->getResult(); + } catch ( Exception $e ) { + // Map to error object. + $result = (object) array( + 'error' => array( + 'type' => 'Unknown', + 'message' => $e->getMessage() . ' (' . $e->getFile() . ': ' . $e->getLine() . ')', + 'code' => 'unknown', + 'http' => 402 + ) + ); + } + + return $result; + } + + #endregion Connectivity Test ------------------------------------------------------ + + #region Connectivity Exceptions ------------------------------------------------------ + + /** + * @param resource $pCurlHandler + * + * @throws Freemius_Exception + */ + private static function ThrowCurlException( $pCurlHandler ) { + $e = new Freemius_Exception( array( + 'error' => array( + 'code' => curl_errno( $pCurlHandler ), + 'message' => curl_error( $pCurlHandler ), + 'type' => 'CurlException', + ), + ) ); + + curl_close( $pCurlHandler ); + throw $e; + } + + /** + * @param string $pResult + * + * @throws Freemius_Exception + */ + private static function ThrowNoCurlException( $pResult = '' ) { + throw new Freemius_Exception( array( + 'error' => (object) array( + 'type' => 'cUrlMissing', + 'message' => $pResult, + 'code' => 'curl_missing', + 'http' => 402 + ) + ) ); + } + + /** + * @param string $pResult + * + * @throws Freemius_Exception + */ + private static function ThrowCloudFlareDDoSException( $pResult = '' ) { + throw new Freemius_Exception( array( + 'error' => (object) array( + 'type' => 'CloudFlareDDoSProtection', + 'message' => $pResult, + 'code' => 'cloudflare_ddos_protection', + 'http' => 402 + ) + ) ); + } + + /** + * @param string $pResult + * + * @throws Freemius_Exception + */ + private static function ThrowSquidAclException( $pResult = '' ) { + throw new Freemius_Exception( array( + 'error' => (object) array( + 'type' => 'SquidCacheBlock', + 'message' => $pResult, + 'code' => 'squid_cache_block', + 'http' => 402 + ) + ) ); + } + + #endregion Connectivity Exceptions ------------------------------------------------------ + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/FreemiusBase.php b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/FreemiusBase.php new file mode 100644 index 000000000..921623a03 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/FreemiusBase.php @@ -0,0 +1,178 @@ +<?php + /** + * Copyright 2014 Freemius, Inc. + * + * Licensed under the GPL v2 (the "License"); you may + * not use this file except in compliance with the License. You may obtain + * a copy of the License at + * + * http://choosealicense.com/licenses/gpl-v2/ + * + * 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. + */ + + define( 'FS_API__VERSION', '1' ); + define( 'FS_SDK__PATH', dirname( __FILE__ ) ); + define( 'FS_SDK__EXCEPTIONS_PATH', FS_SDK__PATH . '/Exceptions/' ); + + if ( ! function_exists( 'json_decode' ) ) { + throw new Exception( 'Freemius needs the JSON PHP extension.' ); + } + + // Include all exception files. + $exceptions = array( + 'Exception', + 'InvalidArgumentException', + 'ArgumentNotExistException', + 'EmptyArgumentException', + 'OAuthException' + ); + + foreach ( $exceptions as $e ) { + require FS_SDK__EXCEPTIONS_PATH . $e . '.php'; + } + + abstract class Freemius_Api_Base { + const VERSION = '1.0.4'; + const FORMAT = 'json'; + + protected $_id; + protected $_public; + protected $_secret; + protected $_scope; + protected $_isSandbox; + + /** + * @param string $pScope 'app', 'developer', 'user' or 'install'. + * @param number $pID Element's id. + * @param string $pPublic Public key. + * @param string $pSecret Element's secret key. + * @param bool $pIsSandbox Whether or not to run API in sandbox mode. + */ + public function Init( $pScope, $pID, $pPublic, $pSecret, $pIsSandbox = false ) { + $this->_id = $pID; + $this->_public = $pPublic; + $this->_secret = $pSecret; + $this->_scope = $pScope; + $this->_isSandbox = $pIsSandbox; + } + + public function IsSandbox() { + return $this->_isSandbox; + } + + function CanonizePath( $pPath ) { + $pPath = trim( $pPath, '/' ); + $query_pos = strpos( $pPath, '?' ); + $query = ''; + + if ( false !== $query_pos ) { + $query = substr( $pPath, $query_pos ); + $pPath = substr( $pPath, 0, $query_pos ); + } + + // Trim '.json' suffix. + $format_length = strlen( '.' . self::FORMAT ); + $start = $format_length * ( - 1 ); //negative + if ( substr( strtolower( $pPath ), $start ) === ( '.' . self::FORMAT ) ) { + $pPath = substr( $pPath, 0, strlen( $pPath ) - $format_length ); + } + + switch ( $this->_scope ) { + case 'app': + $base = '/apps/' . $this->_id; + break; + case 'developer': + $base = '/developers/' . $this->_id; + break; + case 'user': + $base = '/users/' . $this->_id; + break; + case 'plugin': + $base = '/plugins/' . $this->_id; + break; + case 'install': + $base = '/installs/' . $this->_id; + break; + default: + throw new Freemius_Exception( 'Scope not implemented.' ); + } + + return '/v' . FS_API__VERSION . $base . + ( ! empty( $pPath ) ? '/' : '' ) . $pPath . + ( ( false === strpos( $pPath, '.' ) ) ? '.' . self::FORMAT : '' ) . $query; + } + + abstract function MakeRequest( $pCanonizedPath, $pMethod = 'GET', $pParams = array() ); + + /** + * @param string $pPath + * @param string $pMethod + * @param array $pParams + * + * @return object[]|object|null + */ + private function _Api( $pPath, $pMethod = 'GET', $pParams = array() ) { + $pMethod = strtoupper( $pMethod ); + + try { + $result = $this->MakeRequest( $pPath, $pMethod, $pParams ); + } catch ( Freemius_Exception $e ) { + // Map to error object. + $result = (object) $e->getResult(); + } catch ( Exception $e ) { + // Map to error object. + $result = (object) array( + 'error' => array( + 'type' => 'Unknown', + 'message' => $e->getMessage() . ' (' . $e->getFile() . ': ' . $e->getLine() . ')', + 'code' => 'unknown', + 'http' => 402 + ) + ); + } + + return $result; + } + + public function Api( $pPath, $pMethod = 'GET', $pParams = array() ) { + return $this->_Api( $this->CanonizePath( $pPath ), $pMethod, $pParams ); + } + + /** + * Base64 encoding that does not need to be urlencode()ed. + * Exactly the same as base64_encode except it uses + * - instead of + + * _ instead of / + * No padded = + * + * @param string $input base64UrlEncoded string + * + * @return string + */ + protected static function Base64UrlDecode( $input ) { + return base64_decode( strtr( $input, '-_', '+/' ) ); + } + + /** + * Base64 encoding that does not need to be urlencode()ed. + * Exactly the same as base64_encode except it uses + * - instead of + + * _ instead of / + * + * @param string $input string + * + * @return string base64Url encoded string + */ + protected static function Base64UrlEncode( $input ) { + $str = strtr( base64_encode( $input ), '+/', '-_' ); + $str = str_replace( '=', '', $str ); + + return $str; + } + + } diff --git a/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/LICENSE.txt b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/LICENSE.txt new file mode 100644 index 000000000..d6a93266f --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/sdk/LICENSE.txt @@ -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/wp-content/plugins/nextgen-gallery/freemius/includes/supplements/fs-essential-functions-1.1.7.1.php b/wp-content/plugins/nextgen-gallery/freemius/includes/supplements/fs-essential-functions-1.1.7.1.php new file mode 100644 index 000000000..2f0a67aad --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/includes/supplements/fs-essential-functions-1.1.7.1.php @@ -0,0 +1,45 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.1.7 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + /** + * Find the plugin main file path based on any give file inside the plugin's folder. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.1 + * + * @param string $file Absolute path to a file inside a plugin's folder. + * + * @return string + */ + function fs_find_direct_caller_plugin_file( $file ) { + /** + * All the code below will be executed once on activation. + * If the user changes the main plugin's file name, the file_exists() + * will catch it. + */ + if ( ! function_exists( 'get_plugins' ) ) { + require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); + } + + $all_plugins = get_plugins(); + + $file_real_path = fs_normalize_path( realpath( $file ) ); + + // Get active plugin's main files real full names (might be symlinks). + foreach ( $all_plugins as $relative_path => &$data ) { + if ( 0 === strpos( $file_real_path, fs_normalize_path( dirname( realpath( WP_PLUGIN_DIR . '/' . $relative_path ) ) ) ) ) { + return $relative_path; + } + } + + return null; + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/start.php b/wp-content/plugins/nextgen-gallery/freemius/start.php new file mode 100644 index 000000000..b245c6be9 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/start.php @@ -0,0 +1,341 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + /** + * Freemius SDK Version. + * + * @var string + */ + $this_sdk_version = '1.1.8.1'; + + #region SDK Selection Logic -------------------------------------------------------------------- + + /** + * Special logic added on 1.1.6 to make sure that every Freemius powered plugin + * will ALWAYS be loaded with the newest SDK from the active Freemius powered plugins. + * + * Since Freemius SDK is backward compatible, this will make sure that all Freemius powered + * plugins will run correctly. + * + * @since 1.1.6 + */ + + global $fs_active_plugins; + + $this_sdk_relative_path = plugin_basename( dirname( __FILE__ ) ); + + if ( ! isset( $fs_active_plugins ) ) { + // Require SDK essentials. + require_once dirname( __FILE__ ) . '/includes/fs-essential-functions.php'; + + // Load all Freemius powered active plugins. + $fs_active_plugins = get_option( 'fs_active_plugins', new stdClass() ); + + if ( ! isset( $fs_active_plugins->plugins ) ) { + $fs_active_plugins->plugins = array(); + } + } + + if ( ! function_exists( 'fs_find_direct_caller_plugin_file' ) ) { + require_once dirname( __FILE__ ) . '/includes/supplements/fs-essential-functions-1.1.7.1.php'; + } + + // Update current SDK info based on the SDK path. + if ( ! isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) || + $this_sdk_version != $fs_active_plugins->plugins[ $this_sdk_relative_path ]->version + ) { + $fs_active_plugins->plugins[ $this_sdk_relative_path ] = (object) array( + 'version' => $this_sdk_version, + 'timestamp' => time(), + 'plugin_path' => plugin_basename( fs_find_direct_caller_plugin_file( __FILE__ ) ), + ); + } + + $is_current_sdk_newest = isset( $fs_active_plugins->newest ) && ( $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path ); + + if ( ! isset( $fs_active_plugins->newest ) ) { + /** + * This will be executed only once, for the first time a Freemius powered plugin is activated. + */ + fs_update_sdk_newest_version( $this_sdk_relative_path, $fs_active_plugins->plugins[ $this_sdk_relative_path ]->plugin_path ); + + $is_current_sdk_newest = true; + } else if ( version_compare( $fs_active_plugins->newest->version, $this_sdk_version, '<' ) ) { + /** + * Current SDK is newer than the newest stored SDK. + */ + fs_update_sdk_newest_version( $this_sdk_relative_path, $fs_active_plugins->plugins[ $this_sdk_relative_path ]->plugin_path ); + + if ( class_exists( 'Freemius' ) ) { + // Older SDK version was already loaded. + + if ( ! $fs_active_plugins->newest->in_activation ) { + // Re-order plugins to load this plugin first. + fs_newest_sdk_plugin_first(); + } + + // Refresh page. + if ( fs_redirect( $_SERVER['REQUEST_URI'] ) ) { + exit(); + } + } + } else { + if ( ! function_exists( 'get_plugins' ) ) { + require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); + } + + $is_newest_sdk_plugin_activate = is_plugin_active( $fs_active_plugins->newest->plugin_path ); + + if ( $is_current_sdk_newest && + ! $is_newest_sdk_plugin_activate && + ! $fs_active_plugins->newest->in_activation + ) { + // If current SDK is the newest and the plugin is NOT active, it means + // that the current plugin in activation mode. + $fs_active_plugins->newest->in_activation = true; + update_option( 'fs_active_plugins', $fs_active_plugins ); + } + + $is_newest_sdk_path_valid = ( $is_newest_sdk_plugin_activate || $fs_active_plugins->newest->in_activation ) && file_exists( fs_normalize_path( WP_PLUGIN_DIR . '/' . $this_sdk_relative_path . '/start.php' ) ); + + if ( ! $is_newest_sdk_path_valid && ! $is_current_sdk_newest ) { + // Plugin with newest SDK is no longer active, or SDK was moved to a different location. + unset( $fs_active_plugins->plugins[ $fs_active_plugins->newest->sdk_path ] ); + } + + if ( ! ( $is_newest_sdk_plugin_activate || $fs_active_plugins->newest->in_activation ) || + ! $is_newest_sdk_path_valid || + // Is newest SDK downgraded. + ( $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path && + version_compare( $fs_active_plugins->newest->version, $this_sdk_version, '>' ) ) + ) { + /** + * Plugin with newest SDK is no longer active. + * OR + * The newest SDK was in the current plugin. BUT, seems like the version of + * the SDK was downgraded to a lower SDK. + */ + // Find the active plugin with the newest SDK version and update the newest reference. + fs_fallback_to_newest_active_sdk(); + } else { + if ( $is_newest_sdk_plugin_activate && + $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path && + ( $fs_active_plugins->newest->in_activation || + ( class_exists( 'Freemius' ) && ( ! defined( 'WP_FS__SDK_VERSION' ) || version_compare( WP_FS__SDK_VERSION, $this_sdk_version, '<' ) ) ) + ) + + ) { + if ( $fs_active_plugins->newest->in_activation ) { + // Plugin no more in activation. + $fs_active_plugins->newest->in_activation = false; + update_option( 'fs_active_plugins', $fs_active_plugins ); + } + + // Reorder plugins to load plugin with newest SDK first. + if ( fs_newest_sdk_plugin_first() ) { + // Refresh page after re-order to make sure activated plugin loads newest SDK. + if ( class_exists( 'Freemius' ) ) { + if ( fs_redirect( $_SERVER['REQUEST_URI'] ) ) { + exit(); + } + } + } + } + } + } + + if ( class_exists( 'Freemius' ) ) { + // SDK was already loaded. + return; + } + + if ( version_compare( $this_sdk_version, $fs_active_plugins->newest->version, '<' ) ) { + $newest_sdk_starter = fs_normalize_path( WP_PLUGIN_DIR . '/' . $fs_active_plugins->newest->sdk_path . '/start.php' ); + + if ( file_exists( $newest_sdk_starter ) ) { + // Reorder plugins to load plugin with newest SDK first. + fs_newest_sdk_plugin_first(); + + // There's a newer SDK version, load it instead of the current one! + require_once $newest_sdk_starter; + + return; + } + } + + #endregion SDK Selection Logic -------------------------------------------------------------------- + + #region Hooks & Filters Collection -------------------------------------------------------------------- + + /** + * Freemius hooks (actions & filters) tags structure: + * + * fs_{filter/action_name}_{plugin_slug} + * + * -------------------------------------------------------- + * + * Usage with WordPress' add_action() / add_filter(): + * + * add_action('fs_{filter/action_name}_{plugin_slug}', $callable); + * + * -------------------------------------------------------- + * + * Usage with Freemius' instance add_action() / add_filter(): + * + * // No need to add 'fs_' prefix nor '_{plugin_slug}' suffix. + * my_freemius()->add_action('{action_name}', $callable); + * + * -------------------------------------------------------- + * + * Freemius filters collection: + * + * fs_connect_url_{plugin_slug} + * fs_trial_promotion_message_{plugin_slug} + * fs_is_long_term_user_{plugin_slug} + * fs_uninstall_reasons_{plugin_slug} + * fs_is_plugin_update_{plugin_slug} + * fs_api_domains_{plugin_slug} + * fs_email_template_sections_{plugin_slug} + * fs_support_forum_submenu_{plugin_slug} + * fs_support_forum_url_{plugin_slug} + * fs_connect_message_{plugin_slug} + * fs_connect_message_on_update_{plugin_slug} + * fs_uninstall_confirmation_message_{plugin_slug} + * fs_pending_activation_message_{plugin_slug} + * fs_is_submenu_visible_{plugin_slug} + * fs_plugin_icon_{plugin_slug} + * fs_show_trial_{plugin_slug} + * + * -------------------------------------------------------- + * + * Freemius actions collection: + * + * fs_after_license_loaded_{plugin_slug} + * fs_after_license_change_{plugin_slug} + * fs_after_plans_sync_{plugin_slug} + * + * fs_after_account_details_{plugin_slug} + * fs_after_account_user_sync_{plugin_slug} + * fs_after_account_plan_sync_{plugin_slug} + * fs_before_account_load_{plugin_slug} + * fs_after_account_connection_{plugin_slug} + * fs_account_property_edit_{plugin_slug} + * fs_account_email_verified_{plugin_slug} + * fs_account_page_load_before_departure_{plugin_slug} + * fs_before_account_delete_{plugin_slug} + * fs_after_account_delete_{plugin_slug} + * + * fs_sdk_version_update_{plugin_slug} + * fs_plugin_version_update_{plugin_slug} + * + * fs_initiated_{plugin_slug} + * fs_after_init_plugin_registered_{plugin_slug} + * fs_after_init_plugin_anonymous_{plugin_slug} + * fs_after_init_plugin_pending_activations_{plugin_slug} + * fs_after_init_addon_registered_{plugin_slug} + * fs_after_init_addon_anonymous_{plugin_slug} + * fs_after_init_addon_pending_activations_{plugin_slug} + * + * fs_after_premium_version_activation_{plugin_slug} + * fs_after_free_version_reactivation_{plugin_slug} + * + * fs_after_uninstall_{plugin_slug} + * fs_before_admin_menu_init_{plugin_slug} + */ + + #endregion Hooks & Filters Collection -------------------------------------------------------------------- + + if ( ! class_exists( 'Freemius' ) ) { + + if ( ! defined( 'WP_FS__SDK_VERSION' ) ) { + define( 'WP_FS__SDK_VERSION', $this_sdk_version ); + } + + // Configuration should be loaded first. + require_once dirname( __FILE__ ) . '/config.php'; + + // Logger must be loaded before any other. + require_once WP_FS__DIR_INCLUDES . '/class-fs-logger.php'; + require_once WP_FS__DIR_INCLUDES . '/debug/debug-bar-start.php'; + + require_once WP_FS__DIR_INCLUDES . '/fs-core-functions.php'; +// require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-abstract-manager.php'; + require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-option-manager.php'; + require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-cache-manager.php'; + require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-admin-notice-manager.php'; + require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-admin-menu-manager.php'; + require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-key-value-storage.php'; + require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-license-manager.php'; + require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-plan-manager.php'; + require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-plugin-manager.php'; + require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-entity.php'; + require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-scope-entity.php'; + require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-user.php'; + require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-site.php'; + require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin.php'; + require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-info.php'; + require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-tag.php'; + require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-plan.php'; + require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-pricing.php'; + require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-license.php'; + require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-subscription.php'; + require_once WP_FS__DIR_INCLUDES . '/class-fs-api.php'; + require_once WP_FS__DIR_INCLUDES . '/class-fs-plugin-updater.php'; + require_once WP_FS__DIR_INCLUDES . '/class-fs-security.php'; + require_once WP_FS__DIR_INCLUDES . '/class-freemius-abstract.php'; + require_once WP_FS__DIR_INCLUDES . '/class-freemius.php'; + + /** + * Quick shortcut to get Freemius for specified plugin. + * Used by various templates. + * + * @param string $slug + * + * @return Freemius + */ + function freemius( $slug ) { + return Freemius::instance( $slug ); + } + + /** + * @param string $slug + * @param number $plugin_id + * @param string $public_key + * @param bool $is_live Is live or test plugin. + * @param bool $is_premium Hints freemius if running the premium plugin or not. + * + * @return Freemius + */ + function fs_init( $slug, $plugin_id, $public_key, $is_live = true, $is_premium = true ) { + $fs = Freemius::instance( $slug ); + $fs->init( $plugin_id, $public_key, $is_live, $is_premium ); + + return $fs; + } + + /** + * @param array [string]string $plugin + * + * @return Freemius + * @throws Freemius_Exception + */ + function fs_dynamic_init( $plugin ) { + $fs = Freemius::instance( $plugin['slug'] ); + $fs->dynamic_init( $plugin ); + + return $fs; + } + + function fs_dump_log() { + FS_Logger::dump(); + } + } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/account.php b/wp-content/plugins/nextgen-gallery/freemius/templates/account.php new file mode 100644 index 000000000..59e22d6ef --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/account.php @@ -0,0 +1,625 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + $slug = $VARS['slug']; + /** + * @var Freemius $fs + */ + $fs = freemius( $slug ); + + /** + * @var FS_Plugin_Tag $update + */ + $update = $fs->get_update( false, false ); + + $is_paying = $fs->is_paying(); + $user = $fs->get_user(); + $site = $fs->get_site(); + $name = $user->get_name(); + $license = $fs->_get_license(); + $subscription = $fs->_get_subscription(); + $plan = $fs->get_plan(); + $is_active_subscription = ( is_object( $subscription ) && $subscription->is_active() ); + $is_paid_trial = $fs->is_paid_trial(); + $show_upgrade = ( ! $is_paying && ! $is_paid_trial ); +?> + +<div class="wrap"> +<h2 class="nav-tab-wrapper"> + <a href="<?php $fs->get_account_url() ?>" class="nav-tab nav-tab-active"><?php _efs( 'account', $slug ) ?></a> + <?php if ( $fs->has_addons() ) : ?> + <a href="<?php echo $fs->_get_admin_page_url( 'addons' ) ?>" + class="nav-tab"><?php _efs( 'add-ons', $slug ) ?></a> + <?php endif ?> + <?php if ( $fs->is_not_paying() && $fs->has_paid_plan() ) : ?> + <a href="<?php echo $fs->get_upgrade_url() ?>" class="nav-tab"><?php _efs( 'upgrade', $slug ) ?></a> + <?php if ( $fs->apply_filters( 'show_trial', true ) && ! $fs->is_trial_utilized() && $fs->has_trial_plan() ) : ?> + <a href="<?php echo $fs->get_trial_url() ?>" class="nav-tab"><?php _efs( 'free-trial', $slug ) ?></a> + <?php endif ?> + <?php endif ?> +</h2> + +<div id="poststuff"> +<div id="fs_account"> +<div class="has-sidebar has-right-sidebar"> +<div class="has-sidebar-content"> +<div class="postbox"> +<h3><?php _efs('account-details', $slug) ?></h3> + +<div class="fs-header-actions"> + <ul> + <li> + <form action="<?php echo $fs->_get_admin_page_url('account') ?>" method="POST"> + <input type="hidden" name="fs_action" value="delete_account"> + <?php wp_nonce_field('delete_account') ?> + <a href="#" onclick="if (confirm('<?php + if ($is_active_subscription) { + echo esc_attr(sprintf(__fs('delete-account-x-confirm', $slug), $plan->title)); + } else { + _efs('delete-account-confirm', $slug); + } + ?>')) this.parentNode.submit(); return false;"><i + class="dashicons dashicons-no"></i> <?php _efs('delete-account', $slug) ?></a> + </form> + </li> + <?php if ($is_paying) : ?> + <li> + • + <form action="<?php echo $fs->_get_admin_page_url('account') ?>" method="POST"> + <input type="hidden" name="fs_action" value="deactivate_license"> + <?php wp_nonce_field('deactivate_license') ?> + <a href="#" + onclick="if (confirm('<?php _efs('deactivate-license-confirm', $slug) ?>')) this.parentNode.submit(); return false;"><i + class="dashicons dashicons-admin-network"></i> <?php _efs('deactivate-license', $slug) ?> + </a> + </form> + </li> + <?php if (! $license->is_lifetime() && + $is_active_subscription + ) : ?> + <li> + • + <form action="<?php echo $fs->_get_admin_page_url('account') ?>" method="POST"> + <input type="hidden" name="fs_action" value="downgrade_account"> + <?php wp_nonce_field('downgrade_account') ?> + <a href="#" + onclick="if (confirm('<?php printf(__fs('downgrade-x-confirm', $slug), $plan->title, human_time_diff(time(), strtotime($license->expiration))) ?> <?php if (! $license->is_block_features) { + printf(__fs('after-downgrade-non-blocking', $slug), $plan->title); + } else { + printf(__fs('after-downgrade-blocking', $slug), $plan->title); + }?> <?php _efs('proceed-confirmation', $slug) ?>')) this.parentNode.submit(); return false;"><i + class="dashicons dashicons-download"></i> <?php _efs('downgrade', $slug) ?></a> + </form> + </li> + <?php endif ?> + <li> + • + <a href="<?php echo $fs->get_upgrade_url() ?>"><i + class="dashicons dashicons-grid-view"></i> <?php _efs('change-plan', $slug) ?></a> + </li> + <?php elseif ($is_paid_trial) : ?> + <li> + • + <form action="<?php echo $fs->_get_admin_page_url('account') ?>" method="POST"> + <input type="hidden" name="fs_action" value="cancel_trial"> + <?php wp_nonce_field('cancel_trial') ?> + <a href="#" + onclick="if (confirm('<?php _efs('cancel-trial-confirm') ?>')) this.parentNode.submit(); return false;"><i + class="dashicons dashicons-download"></i> <?php _efs('cancel-trial', $slug) ?></a> + </form> + </li> + <?php endif ?> + <li> + • + <form action="<?php echo $fs->_get_admin_page_url('account') ?>" method="POST"> + <input type="hidden" name="fs_action" value="<?php echo $slug ?>_sync_license"> + <?php wp_nonce_field($slug . '_sync_license') ?> + <a href="#" onclick="this.parentNode.submit(); return false;"><i + class="dashicons dashicons-image-rotate"></i> <?php _efs('sync', $slug) ?></a> + </form> + </li> + + </ul> +</div> +<div class="inside"> + <table id="fs_account_details" cellspacing="0" class="fs-key-value-table"> + <?php + $profile = array(); + $profile[] = array( + 'id' => 'user_name', + 'title' => __fs('name', $slug), + 'value' => $name + ); + // if (isset($user->email) && false !== strpos($user->email, '@')) + $profile[] = array( + 'id' => 'email', + 'title' => __fs('email', $slug), + 'value' => $user->email + ); + if (is_numeric($user->id)) { + $profile[] = array( + 'id' => 'user_id', + 'title' => __fs('user-id', $slug), + 'value' => $user->id + ); + } + + $profile[] = array( + 'id' => 'site_id', + 'title' => __fs('site-id', $slug), + 'value' => is_string($site->id) ? + $site->id : + __fs('no-id', $slug) + ); + + $profile[] = array( + 'id' => 'site_public_key', + 'title' => __fs('public-key', $slug), + 'value' => $site->public_key + ); + + $profile[] = array( + 'id' => 'site_secret_key', + 'title' => __fs('secret-key', $slug), + 'value' => ((is_string($site->secret_key)) ? + $site->secret_key : + __fs('no-secret', $slug) + ) + ); + + if ($fs->has_paid_plan()) { + if ($fs->is_trial()) { + $trial_plan = $fs->get_trial_plan(); + + $profile[] = array( + 'id' => 'plan', + 'title' => __fs('plan', $slug), + 'value' => (is_string($trial_plan->name) ? + strtoupper($trial_plan->title) : + __fs('trial', $slug)) + ); + } else { + $profile[] = array( + 'id' => 'plan', + 'title' => __fs('plan', $slug), + 'value' => is_string($site->plan->name) ? + strtoupper($site->plan->title) : + strtoupper(__fs('free', $slug)) + ); + } + } + + $profile[] = array( + 'id' => 'version', + 'title' => __fs('version', $slug), + 'value' => $fs->get_plugin_version() + ); + ?> + <?php $odd = true; + foreach ($profile as $p) : ?> + <?php + if ('plan' === $p['id'] && ! $fs->has_paid_plan()) { + // If plugin don't have any paid plans, there's no reason + // to show current plan. + continue; + } + ?> + <tr class="fs-field-<?php echo $p['id'] ?><?php if ($odd) : ?> alternate<?php endif ?>"> + <td> + <nobr><?php echo $p['title'] ?>:</nobr> + </td> + <td> + <code><?php echo htmlspecialchars($p['value']) ?></code> + <?php if ('email' === $p['id'] && ! $user->is_verified()) : ?> + <label class="fs-tag fs-warn"><?php _efs('not-verified', $slug) ?></label> + <?php endif ?> + <?php if ('plan' === $p['id']) : ?> + <?php if ($fs->is_trial()) : ?> + <label class="fs-tag fs-success"><?php _efs('trial', $slug) ?></label> + <?php endif ?> + <?php if (is_object($license) && ! $license->is_lifetime()) : ?> + <?php if (! $is_active_subscription && ! $license->is_first_payment_pending()) : ?> + <label + class="fs-tag fs-warn"><?php printf(__fs('expires-in', $slug), human_time_diff(time(), strtotime($license->expiration))) ?></label> + <?php elseif ($is_active_subscription && ! $subscription->is_first_payment_pending()) : ?> + <label + class="fs-tag fs-success"><?php printf(__fs('renews-in', $slug), human_time_diff(time(), strtotime($subscription->next_payment))) ?></label> + <?php endif ?> + <?php elseif ($fs->is_trial()) : ?> + <label + class="fs-tag fs-warn"><?php printf(__fs('expires-in', $slug), human_time_diff(time(), strtotime($site->trial_ends))) ?></label> + <?php endif ?> + <?php endif ?> + <?php if ('version' === $p['id'] && $fs->has_paid_plan()) : ?> + <?php if ($fs->is_premium()) : ?> + <label + class="fs-tag fs-<?php echo $fs->can_use_premium_code() ? 'success' : 'warn' ?>"><?php _efs('premium-version') ?></label> + <?php elseif ($fs->can_use_premium_code()) : ?> + <label class="fs-tag fs-warn"><?php _efs('free-version') ?></label> + <?php endif ?> + <?php endif ?> + </td> + <td class="fs-right"> + <?php if ('email' === $p['id'] && ! $user->is_verified()) : ?> + <form action="<?php echo $fs->_get_admin_page_url('account') ?>" method="POST"> + <input type="hidden" name="fs_action" value="verify_email"> + <?php wp_nonce_field('verify_email') ?> + <input type="submit" class="button button-small" + value="<?php _efs('verify-email', $slug) ?>"> + </form> + <?php endif ?> + <?php if ('plan' === $p['id']) : ?> + <div class="button-group"> + <?php $license = $fs->is_free_plan() ? $fs->_get_available_premium_license() : false ?> + <?php if (false !== $license && ($license->left() > 0 || ($site->is_localhost() && $license->is_free_localhost))) : ?> + <?php $premium_plan = $fs->_get_plan_by_id($license->plan_id) ?> + <form action="<?php echo $fs->_get_admin_page_url('account') ?>" + method="POST"> + <input type="hidden" name="fs_action" value="activate_license"> + <input type="hidden" name="license_id" value="<?php echo $license->id ?>"> + <?php wp_nonce_field('activate_license') ?> + <input type="submit" class="button button-primary" + value="<?php printf( + __fs( 'activate-x-plan', $slug ) . '%s', + $premium_plan->title, + ( $site->is_localhost() && $license->is_free_localhost ) ? + ' [' . __fs( 'localhost', $slug ) . ']' : + ( $license->is_single_site() ? + '' : + ' [' . ( 1 < $license->left() ? + sprintf( __fs( 'x-left', $slug ), $license->left() ) : + strtolower( __fs( 'last-license', $slug ) ) ) . ']' + ) + ) ?> "> + </form> + <?php else : ?> + <form action="<?php echo $fs->_get_admin_page_url('account') ?>" + method="POST" class="button-group"> + <input type="submit" class="button" + value="<?php _efs('sync-license', $slug) ?>"> + <input type="hidden" name="fs_action" + value="<?php echo $slug ?>_sync_license"> + <?php wp_nonce_field($slug . '_sync_license') ?> + <a href="<?php echo $fs->get_upgrade_url() ?>" + class="button<?php if ($show_upgrade) { + echo ' button-primary'; + } ?> button-upgrade"><i + class="dashicons dashicons-cart"></i> <?php ($show_upgrade) ? + _efs('upgrade', $slug) : + _efs('change-plan', $slug) + ?></a> + </form> + <?php endif ?> + </div> + <?php elseif ('version' === $p['id']) : ?> + <div class="button-group"> + <?php if ($is_paying || $fs->is_trial()) : ?> + <?php if (! $fs->is_allowed_to_install()) : ?> + <a target="_blank" class="button button-primary" + href="<?php echo $fs->_get_latest_download_local_url() ?>"><?php echo sprintf(__fs('download-x-version', $slug), $site->plan->title) . (is_object($update) ? ' [' . $update->version . ']' : '') ?></a> + <?php elseif (is_object($update)) : ?> + <a class="button button-primary" + href="<?php echo wp_nonce_url(self_admin_url('update.php?action=upgrade-plugin&plugin=' . $fs->get_plugin_basename()), 'upgrade-plugin_' . $fs->get_plugin_basename()) ?>"><?php echo __fs('install-update-now', $slug) . ' [' . $update->version . ']' ?></a> + <?php endif ?> + <?php endif; ?> + </div> + <?php + elseif (/*in_array($p['id'], array('site_secret_key', 'site_id', 'site_public_key')) ||*/ + (is_string($user->secret_key) && in_array($p['id'], array( + 'email', + 'user_name' + ))) + ) : ?> + <form action="<?php echo $fs->_get_admin_page_url('account') ?>" method="POST" + onsubmit="var val = prompt('<?php printf(__fs('what-is-your-x', $slug), $p['title']) ?>', '<?php echo $p['value'] ?>'); if (null == val || '' === val) return false; jQuery('input[name=fs_<?php echo $p['id'] ?>_<?php echo $slug ?>]').val(val); return true;"> + <input type="hidden" name="fs_action" value="update_<?php echo $p['id'] ?>"> + <input type="hidden" name="fs_<?php echo $p['id'] ?>_<?php echo $slug ?>" + value=""> + <?php wp_nonce_field('update_' . $p['id']) ?> + <input type="submit" class="button button-small" + value="<?php _ex('Edit', 'verb', 'freemius') ?>"> + </form> + <?php endif ?> + </td> + </tr> + <?php $odd = ! $odd; + endforeach ?> + </table> +</div> +</div> +<?php + $account_addons = $fs->get_account_addons(); + if (! is_array($account_addons)) { + $account_addons = array(); + } + + $installed_addons = $fs->get_installed_addons(); + $installed_addons_ids = array(); + foreach ($installed_addons as $fs_addon) { + $installed_addons_ids[] = $fs_addon->get_id(); + } + + $addons_to_show = array_unique(array_merge($installed_addons_ids, $account_addons)); +?> + <?php if (0 < count($addons_to_show)) : ?> +<div class="postbox"> +<div class=""> +<!-- <div class="inside">--> +<table id="fs_addons" class="widefat"> +<thead> +<tr> + <th><h3><?php _efs('add-ons', $slug) ?></h3></th> + <th><?php _efs('id', $slug) ?></th> + <th><?php _efs('version', $slug) ?></th> + <th><?php _efs('plan', $slug) ?></th> + <th><?php _efs('license', $slug) ?></th> + <th></th> + <?php if (defined('WP_FS__DEV_MODE') && WP_FS__DEV_MODE) : ?> + <th></th> + <?php endif ?> +</tr> +</thead> +<tbody> +<?php $odd = true; + foreach ($addons_to_show as $addon_id) : ?> + <?php + $addon = $fs->get_addon($addon_id); + $is_addon_activated = $fs->is_addon_activated($addon->slug); + $is_addon_connected = $fs->is_addon_connected($addon->slug); + + $fs_addon = $is_addon_connected ? freemius($addon->slug) : false; + if (is_object($fs_addon)) { + $is_paying = $fs_addon->is_paying(); + $user = $fs_addon->get_user(); + $site = $fs_addon->get_site(); + $license = $fs_addon->_get_license(); + $subscription = $fs_addon->_get_subscription(); + $plan = $fs_addon->get_plan(); + $is_active_subscription = (is_object($subscription) && $subscription->is_active()); + $is_paid_trial = $fs_addon->is_paid_trial(); + $show_upgrade = (! $is_paying && ! $is_paid_trial && ! $fs_addon->_has_premium_license()); + $is_current_license_expired = is_object($license) && $license->is_expired(); + } + + // var_dump( $is_paid_trial, $license, $site, $subscription ); + +?> +<tr<?php if ($odd) { + echo ' class="alternate"'; + } ?>> +<td> + <!-- Title --> + <?php echo $addon->title ?> +</td> +<?php if ($is_addon_connected) : ?> + <?php // Add-on Installed ?> + <?php $addon_site = $fs_addon->get_site(); ?> +<td> + <!-- ID --> + <?php echo $addon_site->id ?> +</td> +<td> + <!-- Version --> + <?php echo $fs_addon->get_plugin_version() ?> +</td> +<td> + <!-- Plan Title --> + <?php echo is_string($addon_site->plan->name) ? strtoupper($addon_site->plan->title) : 'FREE' ?> +</td> +<td> + <!-- Expiration --> + <?php + $tags = array(); + + if ($fs_addon->is_trial()) { + $tags[] = array('label' => __fs('trial', $slug), 'type' => 'success'); + + $tags[] = array( + 'label' => sprintf(__fs(($is_paid_trial ? 'renews-in' : 'expires-in'), $slug), human_time_diff(time(), strtotime($site->trial_ends))), + 'type' => ($is_paid_trial ? 'success' : 'warn') + ); + } else { + if (is_object($license)) { + if ($license->is_cancelled) { + $tags[] = array( + 'label' => __fs('cancelled', $slug), + 'type' => 'error' + ); + } else if ($license->is_expired()) { + $tags[] = array( + 'label' => __fs('expired', $slug), + 'type' => 'error' + ); + } else if ($license->is_lifetime()) { + $tags[] = array( + 'label' => __fs('no-expiration', $slug), + 'type' => 'success' + ); + } else if (! $is_active_subscription && ! $license->is_first_payment_pending()) { + $tags[] = array( + 'label' => sprintf(__fs('expires-in', $slug), human_time_diff(time(), strtotime($license->expiration))), + 'type' => 'warn' + ); + } else if ($is_active_subscription && ! $subscription->is_first_payment_pending()) { + $tags[] = array( + 'label' => sprintf(__fs('renews-in', $slug), human_time_diff(time(), strtotime($subscription->next_payment))), + 'type' => 'success' + ); + } + } + } + + foreach ($tags as $t) { + printf('<label class="fs-tag fs-%s">%s</label>' . "\n", $t['type'], $t['label']); + } + ?> +</td> +<?php + $buttons = array(); + if ($is_addon_activated) { + if ($is_paying) { + $buttons[] = fs_ui_get_action_button( + $slug, + 'account', + 'deactivate_license', + __fs('deactivate-license', $slug), + array('plugin_id' => $addon_id), + false + ); + } else if ($is_paid_trial) { + $buttons[] = fs_ui_get_action_button( + $slug, + 'account', + 'cancel_trial', + __fs('cancel-trial', $slug), + array('plugin_id' => $addon_id), + false, + 'dashicons dashicons-download', + __fs('cancel-trial-confirm', $slug), + 'POST' + ); + } else { + $premium_license = $fs_addon->_get_available_premium_license(); + + if (is_object($premium_license)) { + $site = $fs_addon->get_site(); + + $buttons[] = fs_ui_get_action_button( + $slug, + 'account', + 'activate_license', + sprintf(__fs('activate-x-plan', $slug), $fs_addon->get_plan_title(), ($site->is_localhost() && $premium_license->is_free_localhost) ? '[localhost]' : (1 < $premium_license->left() ? $premium_license->left() . ' left' : '')), + array( + 'plugin_id' => $addon_id, + 'license_id' => $premium_license->id, + ) + ); + } + } + + if (0 == count($buttons)) { + // Add sync license only if non of the other CTAs are visible. + $buttons[] = fs_ui_get_action_button( + $slug, + 'account', + $slug . '_sync_license', + __fs('sync-license', $slug), + array('plugin_id' => $addon_id), + false + ); + + } + } else if (! $show_upgrade) { + if ($fs->is_addon_installed($addon->slug)) { + $addon_file = $fs->get_addon_basename($addon->slug); + $buttons[] = sprintf( + '<a class="button button-primary" href="%s" title="%s" class="edit">%s</a>', + wp_nonce_url('plugins.php?action=activate&plugin=' . $addon_file, 'activate-plugin_' . $addon_file), + esc_attr(__fs('activate-this-addon', $slug)), + __fs('activate', $slug) + ); + } else { + if ($fs->is_allowed_to_install()) { + $buttons[] = sprintf( + '<a class="button button-primary" href="%s" class="edit">%s</a>', + wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=' . $addon->slug), 'install-plugin_' . $addon->slug), + __fs('install-now', $slug) + ); + } else { + $buttons[] = sprintf( + '<a target="_blank" class="button button-primary" href="%s" class="edit">%s</a>', + $fs->_get_latest_download_local_url($addon_id), + __fs('download-latest', $slug) + ); + } + } + } + + if ($show_upgrade) { + $buttons[] = sprintf('<a href="%s" class="thickbox button button-primary" aria-label="%s" data-title="%s"><i class="dashicons dashicons-cart"></i> %s</a>', + esc_url(network_admin_url('plugin-install.php?tab=plugin-information&parent_plugin_id=' . $fs->get_id() . '&plugin=' . $addon->slug . + '&TB_iframe=true&width=600&height=550')), + esc_attr(sprintf(__fs('more-information-about-x', $slug), $addon->title)), + esc_attr($addon->title), + __fs(($fs_addon->has_free_plan() ? 'upgrade' : 'purchase'), $slug) + ); + } + + $buttons_count = count($buttons); +?> + +<td> + <!-- Actions --> + <?php if ($buttons_count > 1) : ?> + <div class="button-group"> + <?php endif ?> + <?php foreach ($buttons as $button) : ?> + <?php echo $button ?> + <?php endforeach ?> + <?php if ($buttons_count > 1) : ?> + </div> + <?php endif ?> +</td> +<?php else : ?> + <?php // Add-on NOT Installed or was never connected. +?> +<td colspan="4"> + <!-- Action --> + <?php if ($fs->is_addon_installed($addon->slug)) : ?> + <?php $addon_file = $fs->get_addon_basename($addon->slug) ?> + <a class="button button-primary" + href="<?php echo wp_nonce_url('plugins.php?action=activate&plugin=' . $addon_file, 'activate-plugin_' . $addon_file) ?>" + title="<?php esc_attr(__fs('activate-this-addon', $slug)) ?>" + class="edit"><?php _efs('activate', $slug) ?></a> + <?php else : ?> + <?php if ($fs->is_allowed_to_install()) : ?> + <a class="button button-primary" + href="<?php echo wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=' . $addon->slug), 'install-plugin_' . $addon->slug) ?>"><?php _efs('install-now', $slug) ?></a> + <?php else : ?> + <a target="_blank" class="button button-primary" + href="<?php echo $fs->_get_latest_download_local_url($addon_id) ?>"><?php _efs('download-latest', $slug) ?></a> + <?php endif ?> + <?php endif ?> +</td> +<?php endif ?> + <?php if (defined('WP_FS__DEV_MODE') && WP_FS__DEV_MODE) : ?> +<td> + <!-- Optional Delete Action --> + <?php + if ($is_addon_activated) { + fs_ui_action_button( + $slug, 'account', + 'delete_account', + __fs('delete', $slug), + array('plugin_id' => $addon_id), + false + ); + } + ?> +</td> +<?php endif ?> +</tr> +<?php $odd = ! $odd; + endforeach ?> +</tbody> +</table> +</div> +</div> +<?php endif ?> + + <?php $fs->do_action('after_account_details') ?> +</div> +</div> +</div> +</div> +</div> +<?php fs_require_template('powered-by.php') ?> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/add-ons.php b/wp-content/plugins/nextgen-gallery/freemius/templates/add-ons.php new file mode 100644 index 000000000..d6a87fe35 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/add-ons.php @@ -0,0 +1,144 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + $slug = $VARS['slug']; + /** + * @var Freemius + */ + $fs = freemius( $slug ); + + $open_addon_slug = fs_request_get( 'slug' ); + + $open_addon = false; + + /** + * @var FS_Plugin[] + */ + $addons = $fs->get_addons(); + + $has_addons = ( is_array( $addons ) && 0 < count( $addons ) ); +?> + <div id="fs_addons" class="wrap"> + <h2><?php printf( __fs( 'add-ons-for-x', $slug ), $fs->get_plugin_name() ) ?></h2> + + <div id="poststuff"> + <?php if ( ! $has_addons ) : ?> + <h3><?php printf( + '%s... %s', + __fs( 'oops', $slug ), + __fs( 'add-ons-missing', $slug ) + ) ?></h3> + <?php endif ?> + <ul class="fs-cards-list"> + <?php if ( $has_addons ) : ?> + <?php foreach ( $addons as $addon ) : ?> + <?php + $open_addon = ( $open_addon || ( $open_addon_slug === $addon->slug ) ); + + $price = 0; + $plan = null; + $plans_result = $fs->get_api_site_or_plugin_scope()->get( "/addons/{$addon->id}/plans.json" ); + if ( ! isset( $plans_result->error ) ) { + $plans = $plans_result->plans; + if ( is_array( $plans ) && 0 < count( $plans ) ) { + $plan = new FS_Plugin_Plan( $plans[0] ); + $pricing_result = $fs->get_api_site_or_plugin_scope()->get( "/addons/{$addon->id}/plans/{$plan->id}/pricing.json" ); + if ( ! isset( $pricing_result->error ) ) { + // Update plan's pricing. + $plan->pricing = $pricing_result->pricing; + + if ( is_array( $plan->pricing ) && 0 < count( $plan->pricing ) ) { + $min_price = 999999; + foreach ( $plan->pricing as $pricing ) { + if ( ! is_null( $pricing->annual_price ) && $pricing->annual_price > 0 ) { + $min_price = min( $min_price, $pricing->annual_price ); + } else if ( ! is_null( $pricing->monthly_price ) && $pricing->monthly_price > 0 ) { + $min_price = min( $min_price, 12 * $pricing->monthly_price ); + } + } + + if ( $min_price < 999999 ) { + $price = $min_price; + } + } + } + } + } + ?> + <li class="fs-card fs-addon" data-slug="<?php echo $addon->slug ?>"> + <?php + echo sprintf( '<a href="%s" class="thickbox fs-overlay" aria-label="%s" data-title="%s"></a>', + esc_url( network_admin_url( 'plugin-install.php?tab=plugin-information&parent_plugin_id=' . $fs->get_id() . '&plugin=' . $addon->slug . + '&TB_iframe=true&width=600&height=550' ) ), + esc_attr( sprintf( __fs( 'more-information-about-x', $slug ), $addon->title ) ), + esc_attr( $addon->title ) + ); + ?> + <?php + if ( is_null( $addon->info ) ) { + $addon->info = new stdClass(); + } + if ( ! isset( $addon->info->card_banner_url ) ) { + $addon->info->card_banner_url = '//dashboard.freemius.com/assets/img/marketing/blueprint-300x100.jpg'; + } + if ( ! isset( $addon->info->short_description ) ) { + $addon->info->short_description = 'What\'s the one thing your add-on does really, really well?'; + } + ?> + <div class="fs-inner"> + <ul> + <li class="fs-card-banner" + style="background-image: url('<?php echo $addon->info->card_banner_url ?>');"></li> +<!-- <li class="fs-tag"></li>--> + <li class="fs-title"><?php echo $addon->title ?></li> + <li class="fs-offer"> + <span + class="fs-price"><?php echo ( 0 == $price ) ? __fs( 'free', $slug ) : ('$' . number_format( $price, 2 ) . ($plan->has_trial() ? ' - ' . __fs('trial', $slug) : '')) ?></span> + </li> + <li class="fs-description"><?php echo ! empty( $addon->info->short_description ) ? $addon->info->short_description : 'SHORT DESCRIPTION' ?></li> + <li class="fs-cta"><a class="button"><?php _efs( 'view-details', $slug ) ?></a></li> + </ul> + </div> + </li> + <?php endforeach ?> + <?php endif ?> + </ul> + </div> + </div> + <script type="text/javascript"> + (function ($) { + <?php if ( $open_addon ) : ?> + + var interval = setInterval(function () { + // Open add-on information page. + $('.fs-card[data-slug=<?php echo $open_addon_slug ?>] a').click(); + if ($('#TB_iframeContent').length > 0) { + clearInterval(interval); + interval = null; + } + }, 200); + + <?php else : ?> + + + $('.fs-card.fs-addon').mouseover(function(){ + $(this).find('.fs-cta .button').addClass('button-primary'); + }); + + $('.fs-card.fs-addon').mouseout(function(){ + $(this).find('.fs-cta .button').removeClass('button-primary'); + }); + + <?php endif ?> + })(jQuery); + </script> +<?php fs_require_template( 'powered-by.php' ) ?> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/admin-notice.php b/wp-content/plugins/nextgen-gallery/freemius/templates/admin-notice.php new file mode 100644 index 000000000..db205eb7d --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/admin-notice.php @@ -0,0 +1,46 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } +?> +<div<?php if ( ! empty( $VARS['id'] ) ) : ?> data-id="<?php echo $VARS['id'] ?>"<?php endif ?><?php if ( ! empty( $VARS['slug'] ) ) : ?> data-slug="<?php echo $VARS['slug'] ?>"<?php endif ?> + class="<?php + switch ( $VARS['type'] ) { + case 'error': + echo 'error form-invalid'; + break; + case 'promotion': + echo 'updated promotion'; + break; + case 'update': +// echo 'update-nag update'; +// break; + case 'success': + default: + echo 'updated success'; + break; + } + ?> fs-notice<?php if ( ! empty( $VARS['sticky'] ) ) { + echo ' fs-sticky'; + } ?><?php if ( ! empty( $VARS['plugin'] ) ) { + echo ' fs-has-title'; + } ?>"><?php if ( ! empty( $VARS['plugin'] ) ) : ?> + <label class="fs-plugin-title"><?php echo $VARS['plugin'] ?></label> + <?php endif ?> + <?php if ( ! empty( $VARS['sticky'] ) ) : ?> + <div class="fs-close"><i class="dashicons dashicons-no" + title="<?php _efs( 'dismiss' ) ?>"></i> <span><?php _efs( 'dismiss' ) ?></span> + </div> + <?php endif ?> + <div class="fs-notice-body"> + <?php if ( ! empty( $VARS['title'] ) ) : ?><b><?php echo $VARS['title'] ?></b> <?php endif ?> + <?php echo $VARS['message'] ?> + </div> +</div> diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/all-admin-notice.php b/wp-content/plugins/nextgen-gallery/freemius/templates/all-admin-notice.php new file mode 100644 index 000000000..a7ff579d2 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/all-admin-notice.php @@ -0,0 +1,35 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } +?> +<div class="<?php + switch ($VARS['type']) { + case 'error': + echo 'error form-invalid'; + break; + case 'update-nag': + echo 'update-nag '; + break; + case 'update': + case 'success': + default: + echo 'updated success'; + break; + } +?> fs-notice"> + <?php if ('update-nag' !== $VARS['type']) : ?><p><?php endif ?> + <?php if (!empty($VARS['title'])) : ?> + <b><?php echo $VARS['title'] ?></b> + <?php endif ?> + <?php echo $VARS['message'] ?> + <?php if ('update-nag' !== $VARS['type']) : ?></p><?php endif ?> + <?php if ($VARS['sticky']) : ?><i class="dashicons dashicons-no"></i><?php endif ?> +</div> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/checkout.php b/wp-content/plugins/nextgen-gallery/freemius/templates/checkout.php new file mode 100644 index 000000000..680fbc6e7 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/checkout.php @@ -0,0 +1,260 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + wp_enqueue_script( 'jquery' ); + wp_enqueue_script( 'json2' ); + fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.min.js' ); + fs_enqueue_local_script( 'fs-postmessage', 'postmessage.js' ); + fs_enqueue_local_style( 'fs_common', '/admin/common.css' ); + + $slug = $VARS['slug']; + $fs = freemius( $slug ); + + $timestamp = time(); + + $context_params = array( + 'plugin_id' => $fs->get_id(), + 'plugin_public_key' => $fs->get_public_key(), + 'plugin_version' => $fs->get_plugin_version(), + ); + + // Get site context secure params. + if ( $fs->is_registered() ) { + $site = $fs->get_site(); + $plugin_id = fs_request_get( 'plugin_id', $fs->get_id() ); + + if ($plugin_id != $fs->get_id()) { + if ( $fs->is_addon_activated( $plugin_id ) ) { + $fs_addon = Freemius::get_instance_by_id( $plugin_id ); + $site = $fs_addon->get_site(); + } + } + + $context_params = array_merge( $context_params, FS_Security::instance()->get_context_params( + $site, + $timestamp, + 'checkout' + ) ); + } else { + $current_user = Freemius::_get_current_wp_user(); + + // Add site and user info to the request, this information + // is NOT being stored unless the user complete the purchase + // and agrees to the TOS. + $context_params = array_merge( $context_params, array( + 'user_firstname' => $current_user->user_firstname, + 'user_lastname' => $current_user->user_lastname, + 'user_email' => $current_user->user_email, +// 'user_nickname' => $current_user->user_nicename, +// 'plugin_slug' => $slug, +// 'site_url' => get_site_url(), +// 'site_name' => get_bloginfo( 'name' ), +// 'platform_version' => get_bloginfo( 'version' ), +// 'language' => get_bloginfo( 'language' ), +// 'charset' => get_bloginfo( 'charset' ), +// 'account_url' => fs_nonce_url( $fs->_get_admin_page_url( +// 'account', +// array( 'fs_action' => 'sync_user' ) +// ), 'sync_user' ), + ) ); + + $fs_user = Freemius::_get_user_by_email( $current_user->user_email ); + + if ( is_object( $fs_user ) ) { + $context_params = array_merge( $context_params, FS_Security::instance()->get_context_params( + $fs_user, + $timestamp, + 'checkout' + ) ); + } + } + + if ( $fs->is_payments_sandbox() ) + { + // Append plugin secure token for sandbox mode authentication. + $context_params['sandbox'] = FS_Security::instance()->get_secure_token( + $fs->get_plugin(), + $timestamp, + 'checkout' + ); + + /** + * @since 1.1.7.3 Add security timestamp for sandbox even for anonymous user. + */ + if ( empty( $context_params['s_ctx_ts'] ) ) { + $context_params['s_ctx_ts'] = $timestamp; + } + } + + $return_url = fs_nonce_url( $fs->_get_admin_page_url( + 'account', + array( + 'fs_action' => $slug . '_sync_license', + 'plugin_id' => isset( $_GET['plugin_id'] ) ? $_GET['plugin_id'] : $fs->get_id() + ) + ), $slug . '_sync_license' ); + + $query_params = array_merge( $context_params, $_GET, array( + // Current plugin version. + 'plugin_version' => $fs->get_plugin_version(), + 'return_url' => $return_url, + // Admin CSS URL for style/design competability. +// 'wp_admin_css' => get_bloginfo('wpurl') . "/wp-admin/load-styles.php?c=1&load=buttons,wp-admin,dashicons", + ) ); +?> + <div class="fs-secure-notice"> + <i class="dashicons dashicons-lock"></i> + <span><b>Secure HTTPS Checkout</b> - PCI compliant, running via iframe from external domain</span> + </div> + <div id="fs_contact" class="wrap" style="margin: 40px 0 -65px -20px;"> + <div id="iframe"></div> + <script type="text/javascript"> + // http://stackoverflow.com/questions/4583703/jquery-post-request-not-ajax + jQuery(function ($) { + $.extend({ + form: function (url, data, method) { + if (method == null) method = 'POST'; + if (data == null) data = {}; + + var form = $('<form>').attr({ + method: method, + action: url + }).css({ + display: 'none' + }); + + var addData = function (name, data) { + if ($.isArray(data)) { + for (var i = 0; i < data.length; i++) { + var value = data[i]; + addData(name + '[]', value); + } + } else if (typeof data === 'object') { + for (var key in data) { + if (data.hasOwnProperty(key)) { + addData(name + '[' + key + ']', data[key]); + } + } + } else if (data != null) { + form.append($('<input>').attr({ + type : 'hidden', + name : String(name), + value: String(data) + })); + } + }; + + for (var key in data) { + if (data.hasOwnProperty(key)) { + addData(key, data[key]); + } + } + + return form.appendTo('body'); + } + }); + }); + + (function ($) { + $(function () { + + var + // Keep track of the iframe height. + iframe_height = 800, + base_url = '<?php echo WP_FS__ADDRESS ?>', + // Pass the parent page URL into the Iframe in a meaningful way (this URL could be + // passed via query string or hard coded into the child page, it depends on your needs). + src = base_url + '/checkout/?<?php echo (isset($_REQUEST['XDEBUG_SESSION']) ? 'XDEBUG_SESSION=' . $_REQUEST['XDEBUG_SESSION'] . '&' : '') . http_build_query($query_params) ?>#' + encodeURIComponent(document.location.href), + + // Append the Iframe into the DOM. + iframe = $('<iframe " src="' + src + '" width="100%" height="' + iframe_height + 'px" scrolling="no" frameborder="0" style="background: transparent;"><\/iframe>') + .appendTo('#iframe'); + + FS.PostMessage.init(base_url); + FS.PostMessage.receiveOnce('height', function (data) { + var h = data.height; + if (!isNaN(h) && h > 0 && h != iframe_height) { + iframe_height = h; + $("#iframe iframe").height(iframe_height + 'px'); + } + }); + + FS.PostMessage.receiveOnce('install', function (data) { + // Post data to activation URL. + $.form('<?php echo fs_nonce_url($fs->_get_admin_page_url('account', array( + 'fs_action' => $slug . '_activate_new', + 'plugin_id' => isset($_GET['plugin_id']) ? $_GET['plugin_id'] : $fs->get_id() + )), $slug . '_activate_new') ?>', { + user_id : data.user.id, + user_secret_key : data.user.secret_key, + user_public_key : data.user.public_key, + install_id : data.install.id, + install_secret_key: data.install.secret_key, + install_public_key: data.install.public_key + }).submit(); + }); + + FS.PostMessage.receiveOnce('pending_activation', function (data) { + $.form('<?php echo fs_nonce_url($fs->_get_admin_page_url('account', array( + 'fs_action' => $slug . '_activate_new', + 'plugin_id' => fs_request_get('plugin_id', $fs->get_id()), + 'pending_activation' => true, + )), $slug . '_activate_new') ?>', { + user_email: data.user_email + }).submit(); + }); + + FS.PostMessage.receiveOnce('get_context', function () { + console.debug('receiveOnce', 'get_context'); + + // If the user didn't connect his account with Freemius, + // once he accepts the Terms of Service and Privacy Policy, + // and then click the purchase button, the context information + // of the user will be shared with Freemius in order to complete the + // purchase workflow and activate the license for the right user. + FS.PostMessage.post('context', { + plugin_id : '<?php echo $fs->get_id() ?>', + plugin_public_key: '<?php echo $fs->get_public_key() ?>', + plugin_version : '<?php echo $fs->get_plugin_version() ?>', + plugin_slug : '<?php echo $slug ?>', + site_name : '<?php echo get_bloginfo('name') ?>', + platform_version : '<?php echo get_bloginfo('version') ?>', + language : '<?php echo get_bloginfo('language') ?>', + charset : '<?php echo get_bloginfo('charset') ?>', + return_url : '<?php echo $return_url ?>', + account_url : '<?php echo fs_nonce_url($fs->_get_admin_page_url( + 'account', + array('fs_action' => 'sync_user') + ), 'sync_user') ?>', + activation_url : '<?php echo fs_nonce_url($fs->_get_admin_page_url('', + array( + 'fs_action' => $slug . '_activate_new', + 'plugin_id' => fs_request_get('plugin_id', $fs->get_id()), + + )), + $slug . '_activate_new') ?>' + }, iframe[0]); + }); + + FS.PostMessage.receiveOnce('get_dimensions', function (data) { + console.debug('receiveOnce', 'get_dimensions'); + + FS.PostMessage.post('dimensions', { + height : $(document.body).height(), + scrollTop: $(document).scrollTop() + }, iframe[0]); + }); + }); + })(jQuery); + </script> + </div> +<?php fs_require_template( 'powered-by.php' ) ?> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/connect.php b/wp-content/plugins/nextgen-gallery/freemius/templates/connect.php new file mode 100644 index 000000000..1389c0662 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/connect.php @@ -0,0 +1,206 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.7 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + $slug = $VARS['slug']; + $fs = freemius( $slug ); + $is_pending_activation = $fs->is_pending_activation(); + + $fs->_enqueue_connect_essentials(); + + $current_user = Freemius::_get_current_wp_user(); + + $first_name = $current_user->user_firstname; + if ( empty( $first_name ) ) { + $first_name = $current_user->nickname; + } + + $site_url = get_site_url(); + $protocol_pos = strpos( $site_url, '://' ); + if ( false !== $protocol_pos ) { + $site_url = substr( $site_url, $protocol_pos + 3 ); + } + + $freemius_site_url = $fs->has_paid_plan() ? + 'https://freemius.com/wordpress/' : + // Insights platform information. + 'https://freemius.com/wordpress/usage-tracking/'; +?> +<div id="fs_connect" class="wrap<?php if ( ! $fs->enable_anonymous() || $is_pending_activation ) { + echo ' fs-anonymous-disabled'; +} ?>"> + <div class="fs-visual"> + <b class="fs-site-icon"><i class="dashicons dashicons-wordpress"></i></b> + <i class="dashicons dashicons-plus fs-first"></i> + <?php + $vars = array( 'slug' => $slug ); + fs_require_once_template( 'plugin-icon.php', $vars ); + ?> + <i class="dashicons dashicons-plus fs-second"></i> + <img class="fs-connect-logo" width="80" height="80" src="//img.freemius.com/connect-logo.png"/> + </div> + <div class="fs-content"> + <p><?php + if ( $is_pending_activation ) { + echo $fs->apply_filters( 'pending_activation_message', sprintf( + __fs( 'thanks-x', $slug ) . '<br>' . + __fs( 'pending-activation-message', $slug ), + $first_name, + '<b>' . $fs->get_plugin_name() . '</b>', + '<b>' . $current_user->user_email . '</b>' + ) ); + } else { + $filter = 'connect_message'; + $default_optin_message = 'connect-message'; + + if ( $fs->is_plugin_update() ) { + // If Freemius was added on a plugin update, set different + // opt-in message. + $default_optin_message = 'connect-message_on-update'; + + // If user customized the opt-in message on update, use + // that message. Otherwise, fallback to regular opt-in + // custom message if exist. + if ( $fs->has_filter( 'connect_message_on_update' ) ) { + $filter = 'connect_message_on_update'; + } + } + + echo $fs->apply_filters( $filter, + sprintf( + __fs( 'hey-x', $slug ) . '<br>' . + __fs( $default_optin_message, $slug ), + $first_name, + '<b>' . $fs->get_plugin_name() . '</b>', + '<b>' . $current_user->user_login . '</b>', + '<a href="' . $site_url . '" target="_blank">' . $site_url . '</a>', + '<a href="' . $freemius_site_url . '" target="_blank">freemius.com</a>' + ), + $first_name, + $fs->get_plugin_name(), + $current_user->user_login, + '<a href="' . $site_url . '" target="_blank">' . $site_url . '</a>', + '<a href="' . $freemius_site_url . '" target="_blank">freemius.com</a>' + ); + } + ?></p> + </div> + <div class="fs-actions"> + <?php if ( $fs->enable_anonymous() && ! $is_pending_activation ) : ?> + <a href="<?php echo wp_nonce_url( $fs->_get_admin_page_url( '', array( 'fs_action' => $slug . '_skip_activation' ) ), $slug . '_skip_activation' ) ?>" + class="button button-secondary" tabindex="2"><?php _efs( 'skip', $slug ) ?></a> + <?php endif ?> + + <?php $fs_user = Freemius::_get_user_by_email( $current_user->user_email ) ?> + <?php if ( is_object( $fs_user ) && ! $is_pending_activation ) : ?> + <form action="" method="POST"> + <input type="hidden" name="fs_action" value="<?php echo $slug ?>_activate_existing"> + <?php wp_nonce_field( 'activate_existing_' . $fs->get_public_key() ) ?> + <button class="button button-primary" tabindex="1" + type="submit"><?php _efs( 'opt-in-connect', $slug ) ?></button> + </form> + <?php else : ?> + <form method="post" action="<?php echo WP_FS__ADDRESS ?>/action/service/user/install/"> + <?php $params = $fs->get_opt_in_params() ?> + <?php foreach ( $params as $name => $value ) : ?> + <input type="hidden" name="<?php echo $name ?>" value="<?php echo esc_attr( $value ) ?>"> + <?php endforeach ?> + <button class="button button-primary" tabindex="1" + type="submit"><?php _efs( $is_pending_activation ? 'resend-activation-email' : 'opt-in-connect', $slug ) ?></button> + </form> + <?php endif ?> + </div><?php + + // Set core permission list items. + $permissions = array( + 'profile' => array( + 'icon-class' => 'dashicons dashicons-admin-users', + 'label' => __fs( 'permissions-profile' ), + 'desc' => __fs( 'permissions-profile_desc' ), + 'priority' => 5, + ), + 'site' => array( + 'icon-class' => 'dashicons dashicons-admin-settings', + 'label' => __fs( 'permissions-site' ), + 'desc' => __fs( 'permissions-site_desc' ), + 'priority' => 10, + ), + 'events' => array( + 'icon-class' => 'dashicons dashicons-admin-plugins', + 'label' => __fs( 'permissions-events' ), + 'desc' => __fs( 'permissions-events_desc' ), + 'priority' => 20, + ), +// 'plugins_themes' => array( +// 'icon-class' => 'dashicons dashicons-admin-settings', +// 'label' => __fs( 'permissions-plugins_themes' ), +// 'desc' => __fs( 'permissions-plugins_themes_desc' ), +// 'priority' => 30, +// ), + ); + + // Add newsletter permissions if enabled. + if ( $fs->is_permission_requested( 'newsletter' ) ) { + $permissions['newsletter'] = array( + 'icon-class' => 'dashicons dashicons-email-alt', + 'label' => __fs( 'permissions-newsletter' ), + 'desc' => __fs( 'permissions-newsletter_desc' ), + 'priority' => 15, + ); + } + + // Allow filtering of the permissions list. + $permissions = $fs->apply_filters( 'permission_list', $permissions ); + + // Sort by priority. + uasort( $permissions, 'fs_sort_by_priority' ); + + if ( ! empty( $permissions ) ) : ?> + <div class="fs-permissions"> + <a class="fs-trigger" href="#"><?php _efs( 'what-permissions', $slug ) ?></a> + <ul><?php + foreach ( $permissions as $id => $permission ) : ?> + <li id="fs-permission-<?php esc_attr_e( $id ); ?>" + class="fs-permission fs-<?php esc_attr_e( $id ); ?>"> + <i class="<?php esc_attr_e( $permission['icon-class'] ); ?>"></i> + + <div> + <span><?php esc_html_e( $permission['label'] ); ?></span> + + <p><?php esc_html_e( $permission['desc'] ); ?></p> + </div> + </li> + <?php endforeach; ?> + </ul> + </div> + <?php endif; ?> + + <div class="fs-terms"> + <a href="https://freemius.com/privacy/" target="_blank"><?php _efs( 'privacy-policy', $slug ) ?></a> + - + <a href="https://freemius.com/terms/" target="_blank"><?php _efs( 'tos', $slug ) ?></a> + </div> +</div> +<script type="text/javascript"> + (function ($) { + $('.button').on('click', function () { + // Set loading mode. + $(document.body).css({'cursor': 'wait'}); + }); + $('.button.button-primary').on('click', function () { + $(this).addClass('fs-loading'); + $(this).html('<?php _efs( $is_pending_activation ? 'sending-email' : 'activating' , $slug ) ?>...').css({'cursor': 'wait'}); + }); + $('.fs-permissions .fs-trigger').on('click', function () { + $('.fs-permissions').toggleClass('fs-open'); + }); + })(jQuery); +</script> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/contact.php b/wp-content/plugins/nextgen-gallery/freemius/templates/contact.php new file mode 100644 index 000000000..4e1f6065a --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/contact.php @@ -0,0 +1,77 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + wp_enqueue_script( 'jquery' ); + wp_enqueue_script( 'json2' ); + fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.min.js' ); + fs_enqueue_local_script( 'fs-postmessage', 'postmessage.js' ); + fs_enqueue_local_style( 'fs_checkout', '/admin/common.css' ); + + $slug = $VARS['slug']; + $fs = freemius( $slug ); + + $context_params = array( + 'plugin_id' => $fs->get_id(), + 'plugin_public_key' => $fs->get_public_key(), + 'plugin_version' => $fs->get_plugin_version(), + ); + + + // Get site context secure params. + if ( $fs->is_registered() ) { + $context_params = array_merge( $context_params, FS_Security::instance()->get_context_params( + $fs->get_site(), + time(), + 'contact' + ) ); + } + + $query_params = array_merge( $_GET, array_merge( $context_params, array( + 'plugin_version' => $fs->get_plugin_version(), + 'wp_login_url' => wp_login_url(), + 'site_url' => get_site_url(), +// 'wp_admin_css' => get_bloginfo('wpurl') . "/wp-admin/load-styles.php?c=1&load=buttons,wp-admin,dashicons", + ) ) ); +?> + <div class="fs-secure-notice"> + <i class="dashicons dashicons-lock"></i> + <span><b>Secure HTTPS contact page</b>, running via iframe from external domain</span> + </div> + <div id="fs_contact" class="wrap" style="margin: 40px 0 -65px -20px;"> + <div id="iframe"></div> + <script type="text/javascript"> + (function ($) { + $(function () { + + var + // Keep track of the iframe height. + iframe_height = 800, + base_url = '<?php echo WP_FS__ADDRESS ?>', + src = base_url + '/contact/?<?php echo http_build_query($query_params) ?>#' + encodeURIComponent(document.location.href), + + // Append the Iframe into the DOM. + iframe = $('<iframe " src="' + src + '" width="100%" height="' + iframe_height + 'px" scrolling="no" frameborder="0" style="background: transparent;"><\/iframe>') + .appendTo('#iframe'); + + FS.PostMessage.init(base_url); + FS.PostMessage.receive('height', function (data) { + var h = data.height; + if (!isNaN(h) && h > 0 && h != iframe_height) { + iframe_height = h; + $("#iframe iframe").height(iframe_height + 'px'); + } + }); + }); + })(jQuery); + </script> + </div> +<?php fs_require_template( 'powered-by.php' ) ?> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/deactivation-feedback-modal.php b/wp-content/plugins/nextgen-gallery/freemius/templates/deactivation-feedback-modal.php new file mode 100644 index 000000000..917bcade5 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/deactivation-feedback-modal.php @@ -0,0 +1,282 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.1.2 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + $slug = $VARS['slug']; + $fs = freemius( $slug ); + + $confirmation_message = $fs->apply_filters( 'uninstall_confirmation_message', '' ); + + $reasons = $VARS['reasons']; + + $reasons_list_items_html = ''; + + foreach ( $reasons as $reason ) { + $list_item_classes = 'reason' . ( ! empty( $reason['input_type'] ) ? ' has-input' : '' ); + $reasons_list_items_html .= '<li class="' . $list_item_classes . '" data-input-type="' . $reason['input_type'] . '" data-input-placeholder="' . $reason['input_placeholder'] . '"><label><span><input type="radio" name="selected-reason" value="' . $reason['id'] . '"/></span><span>' . $reason['text'] . '</span></label></li>'; + } +?> +<script type="text/javascript"> +(function ($) { + var reasonsHtml = <?php echo json_encode( $reasons_list_items_html ); ?>, + modalHtml = + '<div class="fs-modal<?php echo empty( $confirmation_message ) ? ' no-confirmation-message' : ''; ?>">' + + ' <div class="fs-modal-dialog">' + + ' <div class="fs-modal-body">' + + ' <div class="fs-modal-panel" data-panel-id="confirm"><p><?php echo $confirmation_message; ?></p></div>' + + ' <div class="fs-modal-panel active" data-panel-id="reasons"><h3><strong><?php printf( __fs( 'deactivation-share-reason' , $slug ) ); ?>:</strong></h3><ul id="reasons-list">' + reasonsHtml + '</ul></div>' + + ' </div>' + + ' <div class="fs-modal-footer">' + + ' <a href="#" class="button button-secondary button-deactivate"></a>' + + ' <a href="#" class="button button-primary button-close"><?php printf( __fs( 'deactivation-modal-button-cancel' , $slug ) ); ?></a>' + + ' </div>' + + ' </div>' + + '</div>', + $modal = $(modalHtml), + $deactivateLink = $('#the-list .deactivate > [data-slug=<?php echo $VARS['slug']; ?>].fs-slug').prev(), + selectedReasonID = false; + + $modal.appendTo($('body')); + + registerEventHandlers(); + + function registerEventHandlers() { + $deactivateLink.click(function (evt) { + evt.preventDefault(); + + showModal(); + }); + + $modal.on('input propertychange', '.reason-input input', function () { + if (!isOtherReasonSelected()) { + return; + } + + var reason = $(this).val().trim(); + + /** + * If reason is not empty, remove the error-message class of the message container + * to change the message color back to default. + */ + if (reason.length > 0) { + $('.message').removeClass('error-message'); + enableDeactivateButton(); + } + }); + + $modal.on('blur', '.reason-input input', function () { + var $userReason = $(this); + + setTimeout(function () { + if (!isOtherReasonSelected()) { + return; + } + + /** + * If reason is empty, add the error-message class to the message container + * to change the message color to red. + */ + if (0 === $userReason.val().trim().length) { + $('.message').addClass('error-message'); + disableDeactivateButton(); + } + }, 150); + }); + + $modal.on('click', '.button', function (evt) { + evt.preventDefault(); + + if ($(this).hasClass('disabled')) { + return; + } + + var _parent = $(this).parents('.fs-modal:first'); + var _this = $(this); + + if (_this.hasClass('allow-deactivate')) { + var $radio = $('input[type="radio"]:checked'); + + if (0 === $radio.length) { + // If no selected reason, just deactivate the plugin. + window.location.href = $deactivateLink.attr('href'); + return; + } + + var $selected_reason = $radio.parents('li:first'), + $input = $selected_reason.find('textarea, input[type="text"]'), + userReason = ( 0 !== $input.length ) ? $input.val().trim() : ''; + + if (isOtherReasonSelected() && ( '' === userReason )) { + return; + } + + $.ajax({ + url : ajaxurl, + method : 'POST', + data : { + 'action' : 'submit-uninstall-reason', + 'reason_id' : $radio.val(), + 'reason_info': userReason + }, + beforeSend: function () { + _parent.find('.button').addClass('disabled'); + _parent.find('.button-secondary').text('Processing...'); + }, + complete : function () { + // Do not show the dialog box, deactivate the plugin. + window.location.href = $deactivateLink.attr('href'); + } + }); + } else if (_this.hasClass('button-deactivate')) { + // Change the Deactivate button's text and show the reasons panel. + _parent.find('.button-deactivate').addClass('allow-deactivate'); + + showPanel('reasons'); + } + }); + + $modal.on('click', 'input[type="radio"]', function () { + var $selectedReasonOption = $(this); + + // If the selection has not changed, do not proceed. + if (selectedReasonID === $selectedReasonOption.val()) + return; + + selectedReasonID = $selectedReasonOption.val(); + + var _parent = $(this).parents('li:first'); + + $modal.find('.reason-input').remove(); + $modal.find('.button-deactivate').text('<?php printf( __fs( 'deactivation-modal-button-submit' , $slug ) ); ?>'); + + enableDeactivateButton(); + + if (_parent.hasClass('has-input')) { + var inputType = _parent.data('input-type'), + inputPlaceholder = _parent.data('input-placeholder'), + reasonInputHtml = '<div class="reason-input"><span class="message"></span>' + ( ( 'textfield' === inputType ) ? '<input type="text" />' : '<textarea rows="5"></textarea>' ) + '</div>'; + + _parent.append($(reasonInputHtml)); + _parent.find('input, textarea').attr('placeholder', inputPlaceholder).focus(); + + if (isOtherReasonSelected()) { + showMessage('<?php printf( __fs( 'ask-for-reason-message' , $slug ) ); ?>'); + disableDeactivateButton(); + } + } + }); + + // If the user has clicked outside the window, cancel it. + $modal.on('click', function (evt) { + var $target = $(evt.target); + + // If the user has clicked anywhere in the modal dialog, just return. + if ($target.hasClass('fs-modal-body') || $target.hasClass('fs-modal-footer')) { + return; + } + + // If the user has not clicked the close button and the clicked element is inside the modal dialog, just return. + if (!$target.hasClass('button-close') && ( $target.parents('.fs-modal-body').length > 0 || $target.parents('.fs-modal-footer').length > 0 )) { + return; + } + + closeModal(); + }); + } + + function isOtherReasonSelected() { + // Get the selected radio input element. + var $selectedReasonOption = $modal.find('input[type="radio"]:checked'), + selectedReason = $selectedReasonOption.parent().next().text().trim(); + + return ( 'Other' === selectedReason ); + } + + function showModal() { + resetModal(); + + // Display the dialog box. + $modal.addClass('active'); + + $('body').addClass('has-fs-modal'); + } + + function closeModal() { + $modal.removeClass('active'); + + $('body').removeClass('has-fs-modal'); + } + + function resetModal() { + selectedReasonID = false; + + enableDeactivateButton(); + + // Uncheck all radio buttons. + $modal.find('input[type="radio"]').prop('checked', false); + + // Remove all input fields ( textfield, textarea ). + $modal.find('.reason-input').remove(); + + $modal.find('.message').hide(); + + var $deactivateButton = $modal.find('.button-deactivate'); + + /* + * If the modal dialog has no confirmation message, that is, it has only one panel, then ensure + * that clicking the deactivate button will actually deactivate the plugin. + */ + if ($modal.hasClass('no-confirmation-message')) { + $deactivateButton.addClass('allow-deactivate'); + + showPanel('reasons'); + } else { + $deactivateButton.removeClass('allow-deactivate'); + + showPanel('confirm'); + } + } + + function showMessage(message) { + $modal.find('.message').text(message).show(); + } + + function enableDeactivateButton() { + $modal.find('.button-deactivate').removeClass('disabled'); + } + + function disableDeactivateButton() { + $modal.find('.button-deactivate').addClass('disabled'); + } + + function showPanel(panelType) { + $modal.find('.fs-modal-panel').removeClass('active '); + $modal.find('[data-panel-id="' + panelType + '"]').addClass('active'); + + updateButtonLabels(); + } + + function updateButtonLabels() { + var $deactivateButton = $modal.find('.button-deactivate'); + + // Reset the deactivate button's text. + if ('confirm' === getCurrentPanel()) { + $deactivateButton.text('<?php printf( __fs( 'deactivation-modal-button-confirm' , $slug ) ); ?>'); + } else { + $deactivateButton.text('<?php printf( __fs( 'skip-deactivate' , $slug ) ); ?>'); + } + } + + function getCurrentPanel() { + return $modal.find('.fs-modal-panel.active').attr('data-panel-id'); + } +})(jQuery); +</script> diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/debug.php b/wp-content/plugins/nextgen-gallery/freemius/templates/debug.php new file mode 100644 index 000000000..9163f1046 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/debug.php @@ -0,0 +1,250 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.1.1 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + global $fs_active_plugins; + + $fs_options = FS_Option_Manager::get_manager( WP_FS__ACCOUNTS_OPTION_NAME, true ); +?> + <h1><?php echo __fs( 'Freemius Debug' ) . ' - ' . __fs( 'SDK' ) . ' v.' . $fs_active_plugins->newest->version ?></h1> + <div> + <!-- Debugging Switch --> + <?php //$debug_mode = get_option( 'fs_debug_mode', null ) ?> + <span class="switch-label"><?php _efs( 'debugging' ) ?></span> + + <div class="switch <?php echo WP_FS__DEBUG_SDK ? 'off' : 'on' ?>"> + <div class="toggle"></div> + <span class="on"><?php _efs( 'on' ) ?></span> + <span class="off"><?php _efs( 'off' ) ?></span> + </div> + <script type="text/javascript"> + (function ($) { + $(document).ready(function () { + // Switch toggle + $('.switch').click(function () { + $(this) + .toggleClass('on') + .toggleClass('off'); + + $.post(ajaxurl, { + action: 'fs_toggle_debug_mode', + is_on : ($(this).hasClass('off') ? 1 : 0) + }, function (response) { + if (1 == response) { + // Refresh page on success. + location.reload(); + } + }); + }); + }); + }(jQuery)); + </script> + </div> + <h2><?php _efs( 'actions' ) ?></h2> + <table> + <tbody> + <tr> + <td> + <!-- Delete All Accounts --> + <form action="" method="POST"> + <input type="hidden" name="fs_action" value="restart_freemius"> + <?php wp_nonce_field( 'restart_freemius' ) ?> + <button class="button button-primary" + onclick="if (confirm('<?php _efs( 'delete-all-confirm' ) ?>')) this.parentNode.submit(); return false;"><?php _efs( 'delete-all-accounts' ) ?></button> + </form> + </td> + <td> + <!-- Clear API Cache --> + <form action="" method="POST"> + <input type="hidden" name="fs_clear_api_cache" value="true"> + <button class="button button-primary"><?php _efs( 'clear-api-cache' ) ?></button> + </form> + </td> + <td> + <!-- Sync Data with Server --> + <form action="" method="POST"> + <input type="hidden" name="background_sync" value="true"> + <button class="button button-primary"><?php _efs( 'sync-data-from-server' ) ?></button> + </form> + </td> + </tr> + </tbody> + </table> + <h2><?php _efs( 'sdk-versions' ) ?></h2> + <table id="fs_sdks" class="widefat"> + <thead> + <tr> + <th><?php _efs( 'version' ) ?></th> + <th><?php _efs( 'sdk-path' ) ?></th> + <th><?php _efs( 'plugin-path' ) ?></th> + <th><?php _efs( 'is-active' ) ?></th> + </tr> + </thead> + <tbody> + <?php foreach ( $fs_active_plugins->plugins as $sdk_path => &$data ) : ?> + <?php $is_active = ( WP_FS__SDK_VERSION == $data->version ) ?> + <tr<?php if ( $is_active ) { + echo ' style="background: #E6FFE6; font-weight: bold"'; + } ?>> + <td><?php echo $data->version ?></td> + <td><?php echo $sdk_path ?></td> + <td><?php echo $data->plugin_path ?></td> + <td><?php echo ( $is_active ) ? 'Active' : 'Inactive' ?></td> + </tr> + <?php endforeach ?> + </tbody> + </table> +<?php $plugins = $fs_options->get_option( 'plugins' ) ?> +<?php if ( is_array( $plugins ) && 0 < count( $plugins ) ) : ?> + <h2><?php _efs( 'plugins' ) ?></h2> + <table id="fs_plugins" class="widefat"> + <thead> + <tr> + <th><?php _efs( 'id' ) ?></th> + <th><?php _efs( 'slug' ) ?></th> + <th><?php _efs( 'version' ) ?></th> + <th><?php _efs( 'title' ) ?></th> + <th><?php _efs( 'api' ) ?></th> + <th><?php _efs( 'freemius-state' ) ?></th> + <th><?php _efs( 'plugin-path' ) ?></th> + <th><?php _efs( 'public-key' ) ?></th> + </tr> + </thead> + <tbody> + <?php foreach ( $plugins as $slug => $data ) : ?> + <?php $is_active = is_plugin_active( $data->file ) ?> + <?php $fs = $is_active ? freemius( $slug ) : null ?> + <tr<?php if ( $is_active ) { + echo ' style="background: #E6FFE6; font-weight: bold"'; + } ?>> + <td><?php echo $data->id ?></td> + <td><?php echo $slug ?></td> + <td><?php echo $data->version ?></td> + <td><?php echo $data->title ?></td> + <td><?php if ( $is_active ) { + echo $fs->has_api_connectivity() ? + __fs( 'connected' ) : + __fs( 'blocked' ); + } ?></td> + <td><?php if ( $is_active ) { + echo $fs->is_on() ? + __fs( 'on' ) : + __fs( 'off' ); + } ?></td> + <td><?php echo $data->file ?></td> + <td><?php echo $data->public_key ?></td> + </tr> + <?php endforeach ?> + </tbody> + </table> +<?php endif ?> +<?php + /** + * @var FS_Site[] $sites + */ + $sites = $VARS['sites']; +?> +<?php if ( is_array( $sites ) && 0 < count( $sites ) ) : ?> + <h2><?php _efs( 'plugin-installs' ) ?> / <?php _efs( 'sites' ) ?></h2> + <table id="fs_installs" class="widefat"> + <thead> + <tr> + <th><?php _efs( 'id' ) ?></th> + <th><?php _efs( 'slug' ) ?></th> + <th><?php _efs( 'plan' ) ?></th> + <th><?php _efs( 'public-key' ) ?></th> + <th><?php _efs( 'secret-key' ) ?></th> + </tr> + </thead> + <tbody> + <?php foreach ( $sites as $slug => $site ) : ?> + <tr> + <td><?php echo $site->id ?></td> + <td><?php echo $slug ?></td> + <td><?php + echo is_object( $site->plan ) ? + base64_decode( $site->plan->name ) : + '' + ?></td> + <td><?php echo $site->public_key ?></td> + <td><?php echo $site->secret_key ?></td> + </tr> + <?php endforeach ?> + </tbody> + </table> +<?php endif ?> +<?php + $addons = $VARS['addons']; +?> +<?php foreach ( $addons as $plugin_id => $plugin_addons ) : ?> + <h2><?php printf( __fs( 'addons-of-x' ), $plugin_id ) ?></h2> + <table id="fs_addons" class="widefat"> + <thead> + <tr> + <th><?php _efs( 'id' ) ?></th> + <th><?php _efs( 'title' ) ?></th> + <th><?php _efs( 'slug' ) ?></th> + <th><?php _efs( 'version' ) ?></th> + <th><?php _efs( 'public-key' ) ?></th> + <th><?php _efs( 'secret-key' ) ?></th> + </tr> + </thead> + <tbody> + <?php + /** + * @var FS_Plugin[] $plugin_addons + */ + foreach ( $plugin_addons as $addon ) : ?> + <tr> + <td><?php echo $addon->id ?></td> + <td><?php echo $addon->title ?></td> + <td><?php echo $addon->slug ?></td> + <td><?php echo $addon->version ?></td> + <td><?php echo $addon->public_key ?></td> + <td><?php echo $addon->secret_key ?></td> + </tr> + <?php endforeach ?> + </tbody> + </table> +<?php endforeach ?> +<?php + /** + * @var FS_User[] $users + */ + $users = $VARS['users']; +?> +<?php if ( is_array( $users ) && 0 < count( $users ) ) : ?> + <h2><?php _efs( 'users' ) ?></h2> + <table id="fs_users" class="widefat"> + <thead> + <tr> + <th><?php _efs( 'id' ) ?></th> + <th><?php _efs( 'name' ) ?></th> + <th><?php _efs( 'email' ) ?></th> + <th><?php _efs( 'verified' ) ?></th> + <th><?php _efs( 'public-key' ) ?></th> + <th><?php _efs( 'secret-key' ) ?></th> + </tr> + </thead> + <tbody> + <?php foreach ( $users as $user_id => $user ) : ?> + <tr> + <td><?php echo $user->id ?></td> + <td><?php echo $user->get_name() ?></td> + <td><a href="mailto:<?php esc_attr_e($user->email) ?>"><?php echo $user->email ?></a></td> + <td><?php echo json_encode( $user->is_verified ) ?></td> + <td><?php echo $user->public_key ?></td> + <td><?php echo $user->secret_key ?></td> + </tr> + <?php endforeach ?> + </tbody> + </table> +<?php endif ?> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/debug/api-calls.php b/wp-content/plugins/nextgen-gallery/freemius/templates/debug/api-calls.php new file mode 100644 index 000000000..c795c8e73 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/debug/api-calls.php @@ -0,0 +1,138 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.1.7.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + if ( class_exists( 'Freemius_Api' ) ) { + $logger = Freemius_Api::GetLogger(); + } else { + $logger = array(); + } + + $counters = array( + 'GET' => 0, + 'POST' => 0, + 'PUT' => 0, + 'DELETE' => 0 + ); + + $show_body = false; + foreach ( $logger as $log ) { + $counters[ $log['method'] ] ++; + + if ( ! is_null( $log['body'] ) ) { + $show_body = true; + } + } + + $pretty_print = $show_body && defined( 'JSON_PRETTY_PRINT' ) && version_compare( phpversion(), '5.3', '>=' ); + + $root_path_len = strlen( ABSPATH ); +?> +<h1><?php _efs( 'API' ) ?></h1> + +<h2><span>Total Time:</span><?php echo Freemius_Debug_Bar_Panel::total_time() ?></h2> + +<h2><span>Total Requests:</span><?php echo Freemius_Debug_Bar_Panel::requests_count() ?></h2> +<?php foreach ( $counters as $method => $count ) : ?> + <h2><span><?php echo $method ?>:</span><?php echo number_format( $count ) ?></h2> +<?php endforeach ?> +<table class="widefat"> + <thead> + <tr> + <th>#</th> + <th><?php _efs( 'Method' ) ?></th> + <th><?php _efs( 'Code' ) ?></th> + <th><?php _efs( 'Length' ) ?></th> + <th><?php _efs( 'Path' ) ?></th> + <?php if ( $show_body ) : ?> + <th><?php _efs( 'Body' ) ?></th> + <?php endif ?> + <th><?php _efs( 'Result' ) ?></th> + <th><?php _efs( 'Start' ) ?></th> + <th><?php _efs( 'End' ) ?></th> + </tr> + </thead> + <tbody> + <?php foreach ( $logger as $log ) : ?> + <tr> + <td><?php echo $log['id'] ?>.</td> + <td><?php echo $log['method'] ?></td> + <td><?php echo $log['code'] ?></td> + <td><?php echo number_format( 100 * $log['total'], 2 ) . ' ' . __fs( 'ms' ) ?></td> + <td> + <?php + printf( '<a href="#" onclick="jQuery(this).parent().find(\'table\').toggle(); return false;">%s</a>', + $log['path'] + ); + ?> + <table class="widefat" style="display: none"> + <tbody> + <?php for ( $i = 0, $bt = $log['backtrace'], $len = count( $bt ); $i < $len; $i ++ ) : ?> + <tr> + <td><?php echo( $len - $i ) ?></td> + <td><?php if ( isset( $bt[ $i ]['function'] ) ) { + echo ( isset( $bt[ $i ]['class'] ) ? $bt[ $i ]['class'] . $bt[ $i ]['type'] : '' ) . $bt[ $i ]['function']; + } ?></td> + <td><?php if ( isset( $bt[ $i ]['file'] ) ) { + echo substr( $bt[ $i ]['file'], $root_path_len ) . ':' . $bt[ $i ]['line']; + } ?></td> + </tr> + <?php endfor ?> + </tbody> + </table> + </td> + <?php if ( $show_body ) : ?> + <td> + <?php if ( 'GET' !== $log['method'] ) : ?> + <?php + $body = $log['body']; + printf( + '<a href="#" onclick="jQuery(this).parent().find(\'pre\').toggle(); return false;">%s</a>', + substr( $body, 0, 32 ) . ( 32 < strlen( $body ) ? '...' : '' ) + ); + if ( $pretty_print ) { + $body = json_encode( json_decode( $log['body'] ), JSON_PRETTY_PRINT ); + } + ?> + <pre style="display: none"><code><?php echo esc_html( $body ) ?></code></pre> + <?php endif ?> + </td> + <?php endif ?> + <td> + <?php + $result = $log['result']; + + $is_not_empty_result = ( is_string( $result ) && ! empty( $result ) ); + + if ( $is_not_empty_result ) { + printf( + '<a href="#" onclick="jQuery(this).parent().find(\'pre\').toggle(); return false;">%s</a>', + substr( $result, 0, 32 ) . ( 32 < strlen( $result ) ? '...' : '' ) + ); + } + + if ( $is_not_empty_result && $pretty_print ) { + $decoded = json_decode( $result ); + if ( ! is_null( $decoded ) ) { + $result = json_encode( $decoded, JSON_PRETTY_PRINT ); + } + } else { + $result = is_string( $result ) ? $result : json_encode( $result ); + } + ?> + <pre<?php if ( $is_not_empty_result ) : ?> style="display: none"<?php endif ?>><code><?php echo esc_html( $result ) ?></code></pre> + </td> + <td><?php echo number_format( 100 * ( $log['start'] - WP_FS__SCRIPT_START_TIME ), 2 ) . ' ' . __fs( 'ms' ) ?></td> + <td><?php echo number_format( 100 * ( $log['end'] - WP_FS__SCRIPT_START_TIME ), 2 ) . ' ' . __fs( 'ms' ) ?></td> + </tr> + <?php endforeach ?> + </tbody> +</table> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/debug/logger.php b/wp-content/plugins/nextgen-gallery/freemius/templates/debug/logger.php new file mode 100644 index 000000000..3fc925a0e --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/debug/logger.php @@ -0,0 +1,60 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.1.7.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + $log_book = FS_Logger::get_log(); +?> +<h1><?php _efs( 'Log' ) ?></h1> + +<table class="widefat" style="font-size: 11px;"> + <thead> + <tr> + <th>#</th> + <th><?php _efs( 'id' ) ?></th> + <th><?php _efs( 'type' ) ?></th> + <th><?php _efs( 'function' ) ?></th> + <th><?php _efs( 'message' ) ?></th> + <th><?php _efs( 'file' ) ?></th> + <th><?php _efs( 'timestamp' ) ?></th> + </tr> + </thead> + <tbody> + + <?php $i = 0; + foreach ( $log_book as $log ) : ?> + <tr<?php if ( $i % 2 ) { + echo ' class="alternate"'; + } ?>> + <td><?php echo $log['cnt'] ?>.</td> + <td><?php echo $log['logger']->get_id() ?></td> + <td><?php echo $log['type'] ?></td> + <td><b><code style="color: blue;"><?php echo $log['function'] ?></code></b></td> + <td> + <?php + printf( + '<a href="#" style="color: darkorange !important;" onclick="jQuery(this).parent().find(\'div\').toggle(); return false;"><nobr>%s</nobr></a>', + substr( $log['msg'], 0, 32 ) . ( 32 < strlen( $log['msg'] ) ? '...' : '' ) + ); + ?> + <div style="display: none;"> + <b style="color: darkorange;"><?php echo $log['msg'] ?></b> + </div> + </td> + <td><?php + if ( isset( $log['file'] ) ) { + echo substr( $log['file'], $log['logger']->get_file() ) . ':' . $log['line'] . ')'; + } + ?></td> + <td><?php echo number_format( 100 * ( $log['timestamp'] - WP_FS__SCRIPT_START_TIME ), 2 ) . ' ' . __fs( 'ms' ) ?></td> + </tr> + <?php $i ++; endforeach ?> + </tbody> +</table> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/debug/plugins-themes-sync.php b/wp-content/plugins/nextgen-gallery/freemius/templates/debug/plugins-themes-sync.php new file mode 100644 index 000000000..a7616220a --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/debug/plugins-themes-sync.php @@ -0,0 +1,68 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.1.7.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + $fs_options = FS_Option_Manager::get_manager( WP_FS__ACCOUNTS_OPTION_NAME, true ); + $all_plugins = $fs_options->get_option( 'all_plugins' ); + $all_themes = $fs_options->get_option( 'all_themes' ); +?> +<h1><?php _efs( 'plugins-themes-sync' ) ?></h1> +<table class="widefat"> + <thead> + <tr> + <th></th> + <th><?php _efs( 'total' ) ?></th> + <th><?php _efs( 'Last' ) ?></th> + </tr> + </thead> + <tbody> + <?php if ( is_object( $all_plugins ) ) : ?> + <tr> + <td><?php _efs( 'plugins' ) ?></td> + <td><?php echo count( $all_plugins->plugins ) ?></td> + <td><?php + if ( isset( $all_plugins->timestamp ) && is_numeric( $all_plugins->timestamp ) ) { + $diff = abs( WP_FS__SCRIPT_START_TIME - $all_plugins->timestamp ); + $human_diff = ( $diff < MINUTE_IN_SECONDS ) ? + $diff . ' ' . __fs( 'sec' ) : + human_time_diff( WP_FS__SCRIPT_START_TIME, $all_plugins->timestamp ); + + if ( WP_FS__SCRIPT_START_TIME < $all_plugins->timestamp ) { + printf( __fs( 'in-x' ), $human_diff ); + } else { + printf( __fs( 'x-ago' ), $human_diff ); + } + } + ?></td> + </tr> + <?php endif ?> + <?php if ( is_object( $all_themes ) ) : ?> + <tr> + <td><?php _efs( 'themes' ) ?></td> + <td><?php echo count( $all_themes->themes ) ?></td> + <td><?php + if ( isset( $all_themes->timestamp ) && is_numeric( $all_themes->timestamp ) ) { + $diff = abs( WP_FS__SCRIPT_START_TIME - $all_themes->timestamp ); + $human_diff = ( $diff < MINUTE_IN_SECONDS ) ? + $diff . ' ' . __fs( 'sec' ) : + human_time_diff( WP_FS__SCRIPT_START_TIME, $all_themes->timestamp ); + + if ( WP_FS__SCRIPT_START_TIME < $all_themes->timestamp ) { + printf( __fs( 'in-x' ), $human_diff ); + } else { + printf( __fs( 'x-ago' ), $human_diff ); + } + } + ?></td> + </tr> + <?php endif ?> + </tbody> +</table> diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/debug/scheduled-crons.php b/wp-content/plugins/nextgen-gallery/freemius/templates/debug/scheduled-crons.php new file mode 100644 index 000000000..5a9331653 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/debug/scheduled-crons.php @@ -0,0 +1,100 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.1.7.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + $fs_options = FS_Option_Manager::get_manager( WP_FS__ACCOUNTS_OPTION_NAME, true ); + $plugins = $fs_options->get_option( 'plugins' ); + $scheduled_crons = array(); + if ( is_array( $plugins ) && 0 < count( $plugins ) ) { + foreach ( $plugins as $slug => $data ) { + $fs = freemius( $slug ); + + $next_execution = $fs->next_sync_cron(); + $last_execution = $fs->last_sync_cron(); + + if ( false !== $next_execution ) { + $scheduled_crons[ $slug ][] = array( + 'name' => $fs->get_plugin_name(), + 'slug' => $slug, + 'type' => 'sync_cron', + 'last' => $last_execution, + 'next' => $next_execution, + ); + } + + $next_install_execution = $fs->next_install_sync(); + $last_install_execution = $fs->last_install_sync(); + + if ( false !== $next_install_execution || false !== $last_install_execution ) { + $scheduled_crons[ $slug ][] = array( + 'name' => $fs->get_plugin_name(), + 'slug' => $slug, + 'type' => 'install_sync', + 'last' => $last_install_execution, + 'next' => $next_install_execution, + ); + } + } + } +?> +<h1><?php _efs( 'scheduled-crons' ) ?></h1> +<table class="widefat"> + <thead> + <tr> + <th><?php _efs( 'slug' ) ?></th> + <th><?php _efs( 'plugin' ) ?></th> + <th><?php _efs( 'type' ) ?></th> + <th><?php _efs( 'Last' ) ?></th> + <th><?php _efs( 'Next' ) ?></th> + </tr> + </thead> + <tbody> + <?php foreach ( $scheduled_crons as $slug => $crons ) : ?> + <?php foreach ( $crons as $cron ) : ?> + <tr> + <td><?php echo $slug ?></td> + <td><?php echo $cron['name'] ?></td> + <td><?php echo $cron['type'] ?></td> + <td><?php + if (is_numeric($cron['last'])) { + $diff = abs( WP_FS__SCRIPT_START_TIME - $cron['last'] ); + $human_diff = ( $diff < MINUTE_IN_SECONDS ) ? + $diff . ' ' . __fs( 'sec' ) : + human_time_diff( WP_FS__SCRIPT_START_TIME, $cron['last'] ); + + if ( WP_FS__SCRIPT_START_TIME < $cron['last'] ) { + printf( __fs( 'in-x' ), $human_diff ); + } else { + printf( __fs( 'x-ago' ), $human_diff ); + } + +// echo ' ' . $cron['last']; + } + ?></td> + <td><?php + if (is_numeric($cron['next'])) { + $diff = abs( WP_FS__SCRIPT_START_TIME - $cron['next'] ); + $human_diff = ( $diff < MINUTE_IN_SECONDS ) ? + $diff . ' ' . __fs( 'sec' ) : + human_time_diff( WP_FS__SCRIPT_START_TIME, $cron['next'] ); + + if ( WP_FS__SCRIPT_START_TIME < $cron['next'] ) { + printf( __fs( 'in-x' ), $human_diff ); + } else { + printf( __fs( 'x-ago' ), $human_diff ); + } + } + ?></td> + </tr> + <?php endforeach ?> + <?php endforeach ?> + </tbody> +</table> diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/email.php b/wp-content/plugins/nextgen-gallery/freemius/templates/email.php new file mode 100644 index 000000000..1a6cf5bfc --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/email.php @@ -0,0 +1,46 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.1.1 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + $sections = $VARS['sections']; +?> +<table> + <?php + foreach ( $sections as $section_id => $section ) { + ?> + <thead> + <tr><th colspan="2" style="text-align: left; background: #333; color: #fff; padding: 5px;"><?php echo $section['title']; ?></th></tr> + </thead> + <tbody> + <?php + foreach ( $section['rows'] as $row_id => $row ) { + $col_count = count( $row ); + ?> + <tr> + <?php + if ( 1 === $col_count ) { ?> + <td style="vertical-align: top;" colspan="2"><?php echo $row[0]; ?></td> + <?php + } else { ?> + <td style="vertical-align: top;"><b><?php echo $row[0]; ?>:</b></td> + <td><?php echo $row[1]; ?></td> + <?php + } + ?> + </tr> + <?php + } + ?> + </tbody> + <?php + } + ?> +</table> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/firewall-issues-js.php b/wp-content/plugins/nextgen-gallery/freemius/templates/firewall-issues-js.php new file mode 100644 index 000000000..305c5853d --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/firewall-issues-js.php @@ -0,0 +1,60 @@ +<?php + /** + * API connectivity issues (CloudFlare's firewall) handler for handling different + * scenarios selected by the user after connectivity issue is detected, by sending + * AJAX call to the server in order to make the actual actions. + * + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.9 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } +?> +<script type="text/javascript"> + jQuery(document).ready(function ($) { + $('#fs_firewall_issue_options a.fs-resolve').click(function () { + var + error_type = $(this).attr('data-type'), + notice = $(this).parents('.fs-notice'), + slug = notice.attr('data-slug'); + + var data = { + action : slug + '_resolve_firewall_issues', + slug : slug, + error_type: error_type + }; + + if ('squid' === error_type) { + data.hosting_company = prompt('What is the name or URL of your hosting company?'); + if (null == data.hosting_company) + return false; + + if ('' === data.hosting_company) { + alert('We won\'t be able to help without knowing your hosting company.'); + return false; + } + } + + if ('retry_ping' === error_type) { + data.action = slug + '_retry_connectivity_test'; + } + + $(this).css({'cursor': 'wait'}); + + // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php + $.post(ajaxurl, data, function (response) { + if (1 == response) { + // Refresh page on success. + location.reload(); + } else if ('http' === response.substr(0, 4)) { + // Ping actually worked, redirect. + window.location = response; + } + }); + }); + }); +</script> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/plugin-icon.php b/wp-content/plugins/nextgen-gallery/freemius/templates/plugin-icon.php new file mode 100644 index 000000000..9c910d08e --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/plugin-icon.php @@ -0,0 +1,93 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.1.4 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + $slug = $VARS['slug']; + $fs = freemius( $slug ); + + /** + * @since 1.1.7.5 + */ + $local_path = $fs->apply_filters( 'plugin_icon', false ); + + if ( is_string( $local_path ) ) { + $icons = array( $local_path ); + } else { + global $fs_active_plugins; + + $img_dir = WP_FS__DIR_IMG; + + if ( 1 < count( $fs_active_plugins->plugins ) ) { + foreach ( $fs_active_plugins->plugins as $sdk_path => &$data ) { + if ( $data->plugin_path == $fs->get_plugin_basename() ) { + $img_dir = WP_PLUGIN_DIR . '/' . $sdk_path . '/assets/img'; + break; + } + } + } + + $icons = glob( fs_normalize_path( $img_dir . '/' . $slug . '.*' ) ); + if ( ! is_array( $icons ) || 0 === count( $icons ) ) { + $icon_found = false; + $local_path = fs_normalize_path( $img_dir . '/' . $slug . '.png' ); + $have_write_permissions = is_writable( fs_normalize_path( $img_dir ) ); + + if ( WP_FS__IS_LOCALHOST && $fs->is_org_repo_compliant() && $have_write_permissions ) { + /** + * IMPORTANT: THIS CODE WILL NEVER RUN AFTER THE PLUGIN IS IN THE REPO. + * + * This code will only be executed once during the testing + * of the plugin in a local environment. The plugin icon file WILL + * already exist in the assets folder when the plugin is deployed to + * the repository. + */ + $suffixes = array( + '-128x128.png', + '-128x128.jpg', + '-256x256.png', + '-256x256.jpg', + '.svg', + ); + + $base_url = 'https://plugins.svn.wordpress.org/' . $slug . '/assets/icon'; + + foreach ( $suffixes as $s ) { + $headers = get_headers( $base_url . $s ); + if ( strpos( $headers[0], '200' ) ) { + $local_path = fs_normalize_path( $img_dir . '/' . $slug . '.' . substr( $s, strpos( $s, '.' ) + 1 ) ); + fs_download_image( $base_url . $s, $local_path ); + $icon_found = true; + break; + } + } + } + + if ( ! $icon_found ) { + // No icons found, fallback to default icon. + if ( $have_write_permissions ) { + // If have write permissions, copy default icon. + copy( fs_normalize_path( $img_dir . '/plugin-icon.png' ), $local_path ); + } else { + // If doesn't have write permissions, use default icon path. + $local_path = fs_normalize_path( $img_dir . '/plugin-icon.png' ); + } + } + + $icons = array( $local_path ); + } + } + + $icon_dir = dirname( $icons[0] ); + $relative_url = fs_img_url( substr( $icons[0], strlen( $icon_dir ) ), $icon_dir ); +?> +<div class="fs-plugin-icon"> + <img src="<?php echo $relative_url ?>"/> +</div> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/plugin-info/description.php b/wp-content/plugins/nextgen-gallery/freemius/templates/plugin-info/description.php new file mode 100644 index 000000000..6aa7eda3f --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/plugin-info/description.php @@ -0,0 +1,75 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.6 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + /** + * @var FS_Plugin $plugin + */ + $plugin = $VARS['plugin']; + + if ( ! empty( $plugin->info->selling_point_0 ) || + ! empty( $plugin->info->selling_point_1 ) || + ! empty( $plugin->info->selling_point_2 ) + ) : ?> + <div class="fs-selling-points"> + <ul> + <?php for ( $i = 0; $i < 3; $i ++ ) : ?> + <?php if ( ! empty( $plugin->info->{'selling_point_' . $i} ) ) : ?> + <li><i class="dashicons dashicons-yes"></i> + + <h3><?php echo $plugin->info->{'selling_point_' . $i} ?></h3></li> + <?php endif ?> + <?php endfor ?> + </ul> + </div> + <?php endif ?> + <div> + <?php + echo wp_kses( $plugin->info->description, array( + 'a' => array( 'href' => array(), 'title' => array(), 'target' => array() ), + 'b' => array(), + 'i' => array(), + 'p' => array(), + 'blockquote' => array(), + 'h2' => array(), + 'h3' => array(), + 'ul' => array(), + 'ol' => array(), + 'li' => array() + ) ); + ?> + </div> +<?php if ( ! empty( $plugin->info->screenshots ) ) : ?> + <?php $screenshots = $plugin->info->screenshots ?> + <div class="fs-screenshots clearfix"> + <h2><?php _efs( 'screenshots', $plugin->slug ) ?></h2> + <ul> + <?php $i = 0; + foreach ( $screenshots as $s => $url ) : ?> + <?php + // Relative URLs are replaced with WordPress.org base URL + // therefore we need to set absolute URLs. + $url = 'http' . ( WP_FS__IS_HTTPS ? 's' : '' ) . ':' . $url; ?> + <li class="<?php echo ( 0 === $i % 2 ) ? 'odd' : 'even' ?>"> + <style> + #section-description .fs-screenshots <?php echo ".fs-screenshot-{$i}" ?> + { + background-image: url('<?php echo $url ?>'); + } + </style> + <a href="<?php echo $url ?>" + title="<?php printf( __fs( 'view-full-size-x', $plugin->slug ), $i ) ?>" + class="fs-screenshot-<?php echo $i ?>"></a> + </li> + <?php $i ++; endforeach ?> + </ul> + </div> +<?php endif ?> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/plugin-info/features.php b/wp-content/plugins/nextgen-gallery/freemius/templates/plugin-info/features.php new file mode 100644 index 000000000..6540ddf26 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/plugin-info/features.php @@ -0,0 +1,97 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.6 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + /** + * @var FS_Plugin $plugin + */ + $plugin = $VARS['plugin']; + + $plans = $VARS['plans']; + + $features_plan_map = array(); + foreach ( $plans as $plan ) { + foreach ( $plan->features as $feature ) { + if ( ! isset( $features_plan_map[ $feature->id ] ) ) { + $features_plan_map[ $feature->id ] = array( 'feature' => $feature, 'plans' => array() ); + } + + $features_plan_map[ $feature->id ]['plans'][ $plan->id ] = $feature; + } + + // Add support as a feature. + if ( ! empty( $plan->support_email ) || + ! empty( $plan->support_skype ) || + ! empty( $plan->support_phone ) || + true === $plan->is_success_manager + ) { + if ( ! isset( $features_plan_map['support'] ) ) { + $support_feature = new stdClass(); + $support_feature->id = 'support'; + $support_feature->title = __fs( 'Support', $plugin->slug ); + $features_plan_map[ $support_feature->id ] = array( 'feature' => $support_feature, 'plans' => array() ); + } else { + $support_feature = $features_plan_map['support']; + } + + $features_plan_map[ $support_feature->id ]['plans'][ $plan->id ] = $support_feature; + } + } + + // Add updates as a feature for all plans. + $updates_feature = new stdClass(); + $updates_feature->id = 'updates'; + $updates_feature->title = __fs( 'unlimited-updates', $plugin->slug ); + $features_plan_map[ $updates_feature->id ] = array( 'feature' => $updates_feature, 'plans' => array() ); + foreach ( $plans as $plan ) { + $features_plan_map[ $updates_feature->id ]['plans'][ $plan->id ] = $updates_feature; + } +?> +<div class="fs-features"> + <table> + <thead> + <tr> + <th></th> + <?php foreach ( $plans as $plan ) : ?> + <th> + <?php echo $plan->title ?> + <span class="fs-price"> + <?php foreach ( $plan->pricing as $pricing ) : ?> + <?php if ( 1 == $pricing->licenses ) : ?> + $<?php echo $pricing->annual_price ?> / year + <?php endif ?> + <?php endforeach ?> + </span> + </th> + <?php endforeach ?> + </tr> + </thead> + <tbody> + <?php $odd = true; + foreach ( $features_plan_map as $feature_id => $data ) : ?> + <tr class="fs-<?php echo $odd ? 'odd' : 'even' ?>"> + <td><?php echo ucfirst( $data['feature']->title ) ?></td> + <?php foreach ( $plans as $plan ) : ?> + <td> + <?php if ( isset( $data['plans'][ $plan->id ] ) ) : ?> + <?php if ( ! empty( $data['plans'][ $plan->id ]->value ) ) : ?> + <b><?php echo $data['plans'][ $plan->id ]->value ?></b> + <?php else : ?> + <i class="dashicons dashicons-yes"></i> + <?php endif ?> + <?php endif ?> + </td> + <?php endforeach ?> + </tr> + <?php $odd = ! $odd; endforeach ?> + </tbody> + </table> +</div> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/plugin-info/screenshots.php b/wp-content/plugins/nextgen-gallery/freemius/templates/plugin-info/screenshots.php new file mode 100644 index 000000000..25bfebc0f --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/plugin-info/screenshots.php @@ -0,0 +1,33 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.6 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + /** + * @var FS_Plugin $plugin + */ + $plugin = $VARS['plugin']; + + $screenshots = $VARS['screenshots']; +?> +<ol> + <?php $i = 0; + foreach ( $screenshots as $s => $url ) : ?> + <?php + // Relative URLs are replaced with WordPress.org base URL + // therefore we need to set absolute URLs. + $url = 'http' . ( WP_FS__IS_HTTPS ? 's' : '' ) . ':' . $url; ?> + <li> + <a href="<?php echo $url ?>" + title="<?php printf( __fs( 'view-full-size-x', $plugin->slug ), $i ) ?>"><img + src="<?php echo $url ?>"></a> + </li> + <?php $i ++; endforeach ?> +</ol> diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/powered-by.php b/wp-content/plugins/nextgen-gallery/freemius/templates/powered-by.php new file mode 100644 index 000000000..45b39f44c --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/powered-by.php @@ -0,0 +1,41 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.5 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + /** + * KEEP THE POWERED BY TAB AND GET ADDITIONAL - 1% - OFF THE COMMISSION + */ + + wp_enqueue_script( 'jquery' ); + wp_enqueue_script( 'json2' ); + fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.min.js' ); + fs_enqueue_local_script( 'fs-postmessage', 'postmessage.js' ); +?> + +<div id="piframe"></div> +<script type="text/javascript"> + (function ($) { + $(function () { + var + base_url = '<?php echo WP_FS__ADDRESS ?>', + piframe = $('<iframe id="fs_promo_tab" src="' + base_url + '/promotional-tab/?page=contact#' + encodeURIComponent(document.location.href) + '" height="350" width="60" frameborder="0" style=" background: transparent; position: fixed; top: 20%; right: 0;" scrolling="no"></iframe>') + .appendTo('#piframe'); + + FS.PostMessage.init(base_url); + FS.PostMessage.receive('state', function (state) { + if ('closed' === state) + $('#fs_promo_tab').css('width', '60px'); + else + $('#fs_promo_tab').css('width', '345px'); + }); + }); + })(jQuery); +</script> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/pricing.php b/wp-content/plugins/nextgen-gallery/freemius/templates/pricing.php new file mode 100644 index 000000000..1e1c198cb --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/pricing.php @@ -0,0 +1,100 @@ +<?php + /** + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.3 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + wp_enqueue_script( 'jquery' ); + wp_enqueue_script( 'json2' ); + fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.min.js' ); + fs_enqueue_local_script( 'fs-postmessage', 'postmessage.js' ); + + $slug = $VARS['slug']; + $fs = freemius( $slug ); + $timestamp = time(); + + $context_params = array( + 'plugin_id' => $fs->get_id(), + 'plugin_public_key' => $fs->get_public_key(), + 'plugin_version' => $fs->get_plugin_version(), + ); + + // Get site context secure params. + if ( $fs->is_registered() ) { + $context_params = array_merge( $context_params, FS_Security::instance()->get_context_params( + $fs->get_site(), + $timestamp, + 'upgrade' + ) ); + } + + if ( $fs->is_payments_sandbox() ) // Append plugin secure token for sandbox mode authentication.) + { + $context_params['sandbox'] = FS_Security::instance()->get_secure_token( + $fs->get_plugin(), + $timestamp, + 'checkout' + ); + } + + $query_params = array_merge( $context_params, $_GET, array( + 'next' => $fs->_get_admin_page_url( 'account', array( 'fs_action' => $slug . '_sync_license' ) ), + 'plugin_version' => $fs->get_plugin_version(), + // Billing cycle. + 'billing_cycle' => fs_request_get( 'billing_cycle', WP_FS__PERIOD_ANNUALLY ), + ) ); +?> + + <div id="fs_pricing" class="wrap" style="margin: 0 0 -65px -20px;"> + <div id="iframe"></div> + <form action="" method="POST"> + <input type="hidden" name="user_id"/> + <input type="hidden" name="user_email"/> + <input type="hidden" name="site_id"/> + <input type="hidden" name="public_key"/> + <input type="hidden" name="secret_key"/> + <input type="hidden" name="action" value="account"/> + </form> + + <script type="text/javascript"> + (function ($, undef) { + $(function () { + var + // Keep track of the iframe height. + iframe_height = 800, + base_url = '<?php echo WP_FS__ADDRESS ?>', + // Pass the parent page URL into the Iframe in a meaningful way (this URL could be + // passed via query string or hard coded into the child page, it depends on your needs). + src = base_url + '/pricing/?<?php echo http_build_query($query_params) ?>#' + encodeURIComponent(document.location.href), + + // Append the Iframe into the DOM. + iframe = $('<iframe " src="' + src + '" width="100%" height="' + iframe_height + 'px" scrolling="no" frameborder="0" style="background: transparent;"><\/iframe>') + .appendTo('#iframe'); + + FS.PostMessage.init(base_url); + + FS.PostMessage.receive('height', function (data) { + var h = data.height; + if (!isNaN(h) && h > 0 && h != iframe_height) { + iframe_height = h; + $("#iframe iframe").height(iframe_height + 'px'); + } + }); + + FS.PostMessage.receive('get_dimensions', function (data) { + FS.PostMessage.post('dimensions', { + height : $(document.body).height(), + scrollTop: $(document).scrollTop() + }, iframe[0]); + }); + }); + })(jQuery); + </script> + </div> +<?php fs_require_template( 'powered-by.php' ) ?> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/freemius/templates/sticky-admin-notice-js.php b/wp-content/plugins/nextgen-gallery/freemius/templates/sticky-admin-notice-js.php new file mode 100644 index 000000000..987b1b287 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/freemius/templates/sticky-admin-notice-js.php @@ -0,0 +1,40 @@ +<?php + /** + * Sticky admin notices JavaScript handler for dismissing notice messages + * by sending AJAX call to the server in order to remove the message from the Database. + * + * @package Freemius + * @copyright Copyright (c) 2015, Freemius, Inc. + * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License + * @since 1.0.7 + */ + + if ( ! defined( 'ABSPATH' ) ) { + exit; + } +?> +<script type="text/javascript" > + jQuery(document).ready(function($) { + $('.fs-notice.fs-sticky .fs-close').click(function(){ + var + notice = $(this).parents('.fs-notice'), + id = notice.attr('data-id'), + slug = notice.attr('data-slug'); + + notice.fadeOut('fast', function(){ + var data = { + action: slug + '_dismiss_notice_action', + slug: slug, + message_id: id + }; + + // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php + $.post(ajaxurl, data, function(response) { + + }); + + notice.remove(); + }); + }); + }); +</script> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/nggallery.php b/wp-content/plugins/nextgen-gallery/nggallery.php index 2c1f58f0e..dbc7769e6 100755 --- a/wp-content/plugins/nextgen-gallery/nggallery.php +++ b/wp-content/plugins/nextgen-gallery/nggallery.php @@ -2,13 +2,15 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); } /** - * Plugin Name: NextGEN Gallery by Photocrati - * Description: The most popular gallery plugin for WordPress and one of the most popular plugins of all time with over 12 million downloads. - * Version: 2.1.15 - * Author: Photocrati Media - * Plugin URI: http://www.nextgen-gallery.com - * Author URI: http://www.photocrati.com + * Plugin Name: NextGEN Gallery + * Description: The most popular gallery plugin for WordPress and one of the most popular plugins of all time with over 14 million downloads. + * Version: 2.1.43 + * Author: Imagely + * Plugin URI: https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/ + * Author URI: https://www.imagely.com * License: GPLv2 + * Text Domain: nggallery + * Domain Path: /products/photocrati_nextgen/modules/i18n/lang */ if (!class_exists('E_Clean_Exit')) { class E_Clean_Exit extends RuntimeException {} } @@ -159,13 +161,20 @@ class C_NextGEN_Bootstrap function is_activating() { $retval = strpos($_SERVER['REQUEST_URI'], 'plugins.php') !== FALSE && isset($_REQUEST['action']) && $_REQUEST['action'] == 'activate'; + if (!$retval && strpos($_SERVER['REQUEST_URI'], 'update.php') !== FALSE && isset($_REQUEST['action']) && $_REQUEST['action'] == 'install-plugin' && isset($_REQUEST['plugin']) && strpos($_REQUEST['plugin'], 'nextgen-gallery') === 0) { $retval = TRUE; } + if (!$retval && strpos($_SERVER['REQUEST_URI'], 'update.php') !== FALSE && isset($_REQUEST['action']) && $_REQUEST['action'] == 'activate-plugin' && isset($_REQUEST['plugin']) && strpos($_REQUEST['plugin'], 'nextgen-gallery') === 0) { $retval = TRUE; } + // Omitted for now; this was merged at the wrong time + /* if (!$retval && isset($_REQUEST['tgmpa-activate']) && $_REQUEST['tgmpa-activate'] == 'activate-plugin' && isset($_REQUEST['plugin']) && strtolower($_REQUEST['plugin']) == 'nextgen-gallery') { + $retval = TRUE; + } */ + return $retval; } @@ -576,7 +585,6 @@ class C_NextGEN_Bootstrap */ function _define_constants() { - // NextGEN by Photocrati Constants define('NGG_PLUGIN', basename($this->directory_path())); define('NGG_PLUGIN_BASENAME', plugin_basename(__FILE__)); define('NGG_PLUGIN_DIR', $this->directory_path()); @@ -587,7 +595,12 @@ class C_NextGEN_Bootstrap define('NGG_PRODUCT_URL', path_join(str_replace("\\", '/', NGG_PLUGIN_URL), 'products')); define('NGG_MODULE_URL', path_join(str_replace("\\", '/', NGG_PRODUCT_URL), 'photocrati_nextgen/modules')); define('NGG_PLUGIN_STARTED_AT', microtime()); - define('NGG_PLUGIN_VERSION', '2.1.15'); + define('NGG_PLUGIN_VERSION', '2.1.43'); + + if (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG) + define('NGG_SCRIPT_VERSION', (string)mt_rand(0, mt_getrandmax())); + else + define('NGG_SCRIPT_VERSION', NGG_PLUGIN_VERSION); if (!defined('NGG_HIDE_STRICT_ERRORS')) { define('NGG_HIDE_STRICT_ERRORS', TRUE); @@ -813,4 +826,134 @@ class C_NextGEN_Bootstrap } } +#region Freemius + +/** + * Customize the opt-in message. + * + * @author Vova Feldman (@svovaf) + * @since 2.1.32 + * + * @param string $message + * @param string $user_first_name + * @param string $plugin_title + * @param string $user_login + * @param string $site_link + * @param string $freemius_link + * + * @return string + */ +function ngg_fs_custom_connect_message( + $message, + $user_first_name, + $plugin_title, + $user_login, + $site_link, + $freemius_link +) { + return sprintf( + __fs( 'hey-x' ) . '<br>' . + __( 'Want to help make %2$s even more awesome? Allow %6$s to collect some diagnostic & usage data with %5$s. If you skip this, that\'s okay! %2$s will still work just fine.', 'nggallery' ), + $user_first_name, + '<b>' . __('NextGEN Gallery', 'nggallery') . '</b>', + '<b>' . $user_login . '</b>', + $site_link, + $freemius_link, + '<b>' . __('Imagely', 'nggallery') . '</b>' + ); +} + +/** + * Uninstall cleanup script. + */ +function ngg_fs_uninstall() { + // Your cleanup script. +} + +/** + * Create a helper function for easy SDK access. + * + * @author Vova Feldman (@svovaf) + * @since 2.1.32 + * + * @return \Freemius + */ +function ngg_fs() { + global $ngg_fs; + + $ngg_options = get_option( 'ngg_options' ); + $ngg_run_freemius = get_option('ngg_run_freemius', NULL); + + if ( false === $ngg_options ) { + // New plugin installation. + + if ( defined('WP_FS__DEV_MODE') && WP_FS__DEV_MODE ) { + // Always run Freemius in development mode for new plugin installs. + $run_freemius = true; + } else { + // Run Freemius code on 10% of the new installations. + $run_freemius = ( 1 == rand( 1, 10 ) ); + } + + update_option('ngg_run_freemius', $run_freemius); + + // Compare both bool or string 0/1 because get_option() may give us either + } else if ((is_bool($ngg_run_freemius) && $ngg_run_freemius) || '1' === $ngg_run_freemius) { + // If runFreemius was set, use the value. + $run_freemius = $ngg_run_freemius; + } else { + // Don't run Freemius for plugin updates. + $run_freemius = false; + if (is_null($ngg_run_freemius)) + update_option('ngg_run_freemius', FALSE); + } + + if ( ! $run_freemius ) { + return false; + } + + if ( ! isset( $ngg_fs ) ) { + // Include Freemius SDK. + require_once dirname( __FILE__ ) . '/freemius/start.php'; + + $ngg_fs = fs_dynamic_init( array( + 'id' => '266', + 'slug' => 'nextgen-gallery', + 'public_key' => 'pk_009356711cd548837f074e1ef60a4', + 'is_premium' => false, + 'has_addons' => false, + 'has_paid_plans' => false, + 'menu' => array( + 'slug' => 'nextgen-gallery', + 'account' => false, + 'contact' => false, + 'support' => false, + ), + 'permissions' => array( + 'newsletter' => true, + ), + ) ); + } + + /* + // Optional button override. + if ( function_exists( 'fs_override_i18n' ) ) { + fs_override_i18n( array( + 'opt-in-connect' => __('OK - I\'m in!', 'nggallery'), + ), 'nextgen-gallery' ); + } + */ + + // Hook to the custom message filter. + $ngg_fs->add_filter( 'connect_message', 'ngg_fs_custom_connect_message', 10, 6 ); + $ngg_fs->add_action( 'after_uninstall', 'ngg_fs_uninstall' ); + + return $ngg_fs; +} + +// Init Freemius. +ngg_fs(); + +#endregion Freemius + new C_NextGEN_Bootstrap(); diff --git a/wp-content/plugins/nextgen-gallery/non_pope/class.nextgen_shortcode_manager.php b/wp-content/plugins/nextgen-gallery/non_pope/class.nextgen_shortcode_manager.php index 2ae9cb3be..d73ba9a85 100644 --- a/wp-content/plugins/nextgen-gallery/non_pope/class.nextgen_shortcode_manager.php +++ b/wp-content/plugins/nextgen-gallery/non_pope/class.nextgen_shortcode_manager.php @@ -54,14 +54,48 @@ class C_NextGen_Shortcode_Manager if (defined('NGG_DISABLE_FILTER_THE_CONTENT') && NGG_DISABLE_FILTER_THE_CONTENT) return; - add_filter('the_content', array(&$this, 'deactivate_all'), -(PHP_INT_MAX-1)); + // We have to temporily enable our shortcodes before wptexturize runs, and then + // disable them again immediately afterwards + global $wp_filter; + + $filters = $wp_filter['the_content'][10]; + $wp_filter['the_content'][10] = array(); + foreach ($filters as $k=>$v) { + if ($k == 'wptexturize') { + $wp_filter['the_content'][10]['before_wptexturize'] = array( + 'function' => array(&$this, 'activate_all_for_wptexturize'), + 'accepted_args' => 1 + ); + $wp_filter['the_content'][10][$k] = $v; + $wp_filter['the_content'][10]['after_wptexturize'] = array( + 'function' => array(&$this, 'deactivate_all'), + 'accepted_args' => 1 + ); + + } + else $wp_filter['the_content'][10][$k] = $v; + } + + add_filter('the_content', array(&$this, 'deactivate_all_for_wptexturize'), -(PHP_INT_MAX-1)); add_filter('the_content', array(&$this, 'parse_content'), PHP_INT_MAX-1); + + } + + function activate_all_for_wptexturize($content) + { + $this->activate_all(); + return $content; + } + + function deactivate_all_for_wptexturize($content) + { + return $this->deactivate_all($content); } /** * Deactivates all shortcodes */ - function deactivate_all($content) + function deactivate_all($content, $increment_runlevel=TRUE) { // There is a bug in Wordpress itself: when a hook recurses any hooks meant to execute after it are discarded. // For example the following code, despite expectations, will NOT display 'bar' as bar() is never executed. @@ -76,7 +110,7 @@ class C_NextGen_Shortcode_Manager * add_action('foo', 'bar'); * do_action('foo'); */ - $this->_runlevel += 1; + if ($increment_runlevel) $this->_runlevel += 1; if ($this->_runlevel > 1 && defined('WP_DEBUG') && WP_DEBUG && !is_admin() && !$this->_has_warned) { $this->_has_warned = TRUE; diff --git a/wp-content/plugins/nextgen-gallery/non_pope/class.photocrati_installer.php b/wp-content/plugins/nextgen-gallery/non_pope/class.photocrati_installer.php index e1a07f2ee..d35ba01ab 100644 --- a/wp-content/plugins/nextgen-gallery/non_pope/class.photocrati_installer.php +++ b/wp-content/plugins/nextgen-gallery/non_pope/class.photocrati_installer.php @@ -204,7 +204,8 @@ if (!class_exists('C_Photocrati_Installer')) C_Component_Factory::$_instances = array(); foreach ($diff as $module_name) { - if (($handler = self::get_handler_instance(array_shift(explode('|', $module_name))))) { + $parts = explode('|', $module_name); + if (($handler = self::get_handler_instance(array_shift($parts)))) { if (method_exists($handler, 'install')) $handler->install($reset); } diff --git a/wp-content/plugins/nextgen-gallery/non_pope/class.photocrati_resource_manager.php b/wp-content/plugins/nextgen-gallery/non_pope/class.photocrati_resource_manager.php index d29c770e6..6e855e97d 100644 --- a/wp-content/plugins/nextgen-gallery/non_pope/class.photocrati_resource_manager.php +++ b/wp-content/plugins/nextgen-gallery/non_pope/class.photocrati_resource_manager.php @@ -54,7 +54,7 @@ class C_Photocrati_Resource_Manager if (isset($_REQUEST['page']) && !preg_match("#^(ngg|nextgen)#", $_REQUEST['page'])) $retval = FALSE; } - if (preg_match("#wp-admin/update|wp-login|wp-signup#", $_SERVER['REQUEST_URI'])) $retval = FALSE; + if (preg_match("#wp-admin/(network/)?update|wp-login|wp-signup#", $_SERVER['REQUEST_URI'])) $retval = FALSE; else if (isset($_GET['display_gallery_iframe'])) $retval = FALSE; else if (defined('WP_ADMIN') && WP_ADMIN && defined('DOING_AJAX') && DOING_AJAX) $retval = FALSE; else if (preg_match("/(js|css|xsl|xml|kml)$/", $_SERVER['REQUEST_URI'])) $retval = FALSE; diff --git a/wp-content/plugins/nextgen-gallery/pope/lib/class.component_registry.php b/wp-content/plugins/nextgen-gallery/pope/lib/class.component_registry.php index 29721c26e..01ac9ed26 100755 --- a/wp-content/plugins/nextgen-gallery/pope/lib/class.component_registry.php +++ b/wp-content/plugins/nextgen-gallery/pope/lib/class.component_registry.php @@ -792,7 +792,7 @@ class C_Component_Registry $abspath = str_replace(array('\\', '/'), DIRECTORY_SEPARATOR, $abspath); $contents = @scandir($abspath); if ($contents) foreach ($contents as $filename) { - if ($filename == '.' || $filename == '..') continue; + if ($filename == '.' || $filename == '..' || $filename == 'error_log') continue; $filename_abspath = $abspath.DIRECTORY_SEPARATOR.$filename; // Is this a subdirectory? diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ajax/module.ajax.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ajax/module.ajax.php index c2d3e949f..05a022b03 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ajax/module.ajax.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ajax/module.ajax.php @@ -17,9 +17,9 @@ class M_Ajax extends C_Base_Module 'AJAX', 'Provides AJAX functionality', '0.8', - 'http://www.photocrati.com', + 'https://www.imagely.com', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); C_NextGen_Settings::get_instance()->add_option_handler('C_Ajax_Option_Handler', array( 'ajax_slug', @@ -73,7 +73,7 @@ class M_Ajax extends C_Base_Module $settings = C_NextGen_Settings::get_instance(); $router = C_Router::get_instance(); - wp_register_script('photocrati_ajax', $router->get_static_url('photocrati-ajax#ajax.min.js'), array('jquery')); + wp_register_script('photocrati_ajax', $router->get_static_url('photocrati-ajax#ajax.min.js'), array('jquery'), NGG_SCRIPT_VERSION); $vars = array( 'url' => $settings->get('ajax_url'), diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/module.attach_to_post.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/module.attach_to_post.php index 05b5d9289..3d5ba1bba 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/module.attach_to_post.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/module.attach_to_post.php @@ -25,9 +25,9 @@ class M_Attach_To_Post extends C_Base_Module 'Attach To Post', 'Provides the "Attach to Post" interface for displaying galleries and albums', '0.11', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com', + 'https://www.imagely.com', $context ); @@ -99,6 +99,11 @@ class M_Attach_To_Post extends C_Base_Module ); } + function does_request_require_frame_communication() + { + return (strpos($_SERVER['REQUEST_URI'], 'attach_to_post') !== FALSE OR strpos($_SERVER['HTTP_REFERER'], 'attach_to_post') !== FALSE OR array_key_exists('attach_to_post', $_REQUEST)); + } + function _register_hooks() { @@ -112,10 +117,12 @@ class M_Attach_To_Post extends C_Base_Module add_action('admin_enqueue_scripts', array(&$this, 'fix_ie11'), PHP_INT_MAX-1); // Emit frame communication events - add_action('ngg_created_new_gallery', array(&$this, 'new_gallery_event')); - add_action('ngg_after_new_images_added',array(&$this, 'images_added_event')); - add_action('ngg_page_event', array(&$this, 'nextgen_page_event')); - add_action('ngg_manage_tags', array(&$this, 'manage_tags_event')); + if ($this->does_request_require_frame_communication()) { + add_action('ngg_created_new_gallery', array(&$this, 'new_gallery_event')); + add_action('ngg_after_new_images_added',array(&$this, 'images_added_event')); + add_action('ngg_page_event', array(&$this, 'nextgen_page_event')); + add_action('ngg_manage_tags', array(&$this, 'manage_tags_event')); + } // Admin-only hooks if (is_admin()) { @@ -258,14 +265,17 @@ class M_Attach_To_Post extends C_Base_Module if (preg_match("/\/wp-admin\/(post|post-new)\.php$/", $_SERVER['SCRIPT_NAME'])) { $this->_enqueue_tinymce_resources(); wp_enqueue_style( - 'ngg_attach_to_post_dialog', $router->get_static_url('photocrati-attach_to_post#attach_to_post_dialog.css') + 'ngg_attach_to_post_dialog', + $router->get_static_url('photocrati-attach_to_post#attach_to_post_dialog.css'), + FALSE, + NGG_SCRIPT_VERSION ); } elseif (isset($_REQUEST['attach_to_post']) OR (isset($_REQUEST['page']) && strpos($_REQUEST['page'], 'nggallery') !== FALSE)) { - wp_enqueue_script('iframely', $router->get_static_url('photocrati-attach_to_post#iframely.js')); - wp_enqueue_style('iframely', $router->get_static_url('photocrati-attach_to_post#iframely.css')); + wp_enqueue_script('iframely', $router->get_static_url('photocrati-attach_to_post#iframely.js'), FALSE, NGG_SCRIPT_VERSION); + wp_enqueue_style('iframely', $router->get_static_url('photocrati-attach_to_post#iframely.css'), FALSE, NGG_SCRIPT_VERSION); } } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/package.module.attach_to_post.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/package.module.attach_to_post.php index f8ace1012..0a221bded 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/package.module.attach_to_post.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/package.module.attach_to_post.php @@ -204,7 +204,7 @@ class A_Gallery_Storage_Frame_Event extends Mixin $event->pid = $image->{$image->id_field}; $event->id_field = $image->id_field; $event->thumb_url = $image->thumb_url; - C_Frame_Event_Publisher::get_instance()->add_event(array('event' => 'thumbnail_modified', 'image' => $event)); + C_Frame_Event_Publisher::get_instance('attach_to_post')->add_event(array('event' => 'thumbnail_modified', 'image' => $event)); } return $retval; } @@ -303,7 +303,7 @@ class Mixin_Attach_To_Post extends Mixin $this->mark_script('iris'); $this->mark_script('wp-color-picker'); $this->mark_script('nextgen_admin_page'); - $this->mark_script('select2'); + $this->mark_script('ngg_select2'); // Enqueue frame event publishing wp_enqueue_script('frame_event_publisher'); $this->object->mark_script('frame_event_publisher'); @@ -311,28 +311,28 @@ class Mixin_Attach_To_Post extends Mixin wp_enqueue_script('jquery-ui-tabs'); wp_enqueue_script('jquery-ui-sortable'); wp_enqueue_script('jquery-ui-tooltip'); - wp_enqueue_script('ngg_tabs', $this->get_static_url('photocrati-attach_to_post#ngg_tabs.js')); + wp_enqueue_script('ngg_tabs', $this->get_static_url('photocrati-attach_to_post#ngg_tabs.js'), FALSE, NGG_SCRIPT_VERSION); $this->object->mark_script('jquery-ui-tabs'); $this->object->mark_script('jquery-ui-sortable'); $this->object->mark_script('jquery-ui-tooltip'); $this->object->mark_script('ngg_tabs'); // Ensure select2 - wp_enqueue_style('select2'); - wp_enqueue_script('select2'); - $this->object->mark_script('select2'); + wp_enqueue_style('ngg_select2'); + wp_enqueue_script('ngg_select2'); + $this->object->mark_script('ngg_select2'); // Ensure that the Photocrati AJAX library is loaded wp_enqueue_script('photocrati_ajax'); $this->object->mark_script('photocrati_ajax'); // Enqueue logic for the Attach to Post interface as a whole - wp_enqueue_script('ngg_attach_to_post', $this->get_static_url('photocrati-attach_to_post#attach_to_post.js')); - wp_enqueue_style('ngg_attach_to_post', $this->get_static_url('photocrati-attach_to_post#attach_to_post.css')); + wp_enqueue_script('ngg_attach_to_post', $this->get_static_url('photocrati-attach_to_post#attach_to_post.js'), FALSE, NGG_SCRIPT_VERSION); + wp_enqueue_style('ngg_attach_to_post', $this->get_static_url('photocrati-attach_to_post#attach_to_post.css'), FALSE, NGG_SCRIPT_VERSION); $this->object->mark_script('ngg_attach_to_post'); // Enqueue backbone.js library, required by the Attach to Post display tab wp_enqueue_script('backbone'); // provided by WP $this->object->mark_script('backbone'); // Ensure underscore sting, a helper utility - wp_enqueue_script('underscore.string', $this->get_static_url('photocrati-attach_to_post#underscore.string.js'), array('underscore'), '2.3.0'); + wp_enqueue_script('underscore.string', $this->get_static_url('photocrati-attach_to_post#underscore.string.js'), array('underscore'), NGG_SCRIPT_VERSION); $this->object->mark_script('underscore.string'); // Enqueue the backbone app for the display tab $settings = C_NextGen_Settings::get_instance(); @@ -341,7 +341,7 @@ class Mixin_Attach_To_Post extends Mixin if ($this->object->_displayed_gallery->id()) { $display_tab_js_url .= '&id=' . $this->object->_displayed_gallery->id(); } - wp_enqueue_script('ngg_display_tab', $display_tab_js_url, array('backbone', 'underscore.string', 'photocrati_ajax')); + wp_enqueue_script('ngg_display_tab', $display_tab_js_url, array('backbone', 'underscore.string', 'photocrati_ajax'), NGG_SCRIPT_VERSION); wp_localize_script('ngg_display_tab', 'ngg_displayed_gallery_preview_url', $settings->gallery_preview_url); $this->object->mark_script('ngg_display_tab'); // TODO: for now mark Pro scripts to ensure they are enqueued properly, remove this after Pro upgrade with tagging added diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.js b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.js index e2247175b..59048f6c5 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.js +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.js @@ -20,9 +20,9 @@ getInfo: function() { return { longname: 'NextGEN Gallery', - author: 'Photocrati Media', - authorurl: 'http://www.photocrati.com', - infourl: 'http://www.nextgen-gallery.com', + author: 'Imagely', + authorurl: 'https://www.imagely.com', + infourl: 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', version: '0.1' }; }, diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.min.js b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.min.js index ae85a3318..3839b447e 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.min.js +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.min.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(7(H){1g.4=\'1V-1Q-1P\';n.1W(\'1t.m\',{v:\'1d B D 1m 1a\'});f.1s(\'f.k.9\',{H:H,1z:7(){s{1A:\'B D\',1y:\'1x 1v\',1w:\'V://U.1B.T\',1C:\'V://U.1F-1D.T\',1u:\'0.1\'}},1l:7(2,X){3 g=i;2.c.R=2.c.E;2.c.E=7(S,W){3 w=2.c.R(S,W);w.11(\'1i\',g.K);s w};2.1n(\'m\',i.C,{2:2,14:2.k.9});2.1r(\'9\',{v:\'m.v\',1q:\'m\',1p:X+\'/1I.1J\'});2.12.22+=",Q";2.12.20="Q";2.11(\'1Z\',7(e){5(e.8.23==\'24\'){5(g.Y(e.8).29(\'28\')>=0){2.M.27.25(e);3 4=e.8.26.1X(/\\d+$/);5(4)4=4.1O();3 1N=f.1M(g,{2:2,14:2.k.9,4:4});g.C(4)}}})},Y:7(l){3 A=l.13(\'L\')?l.13(\'L\'):l.1T;5(A){s A}1S{s""}},K:7(e){5(e&&e.8&&e.8.N&&e.8.N==\'1c\'){a(\'1f,15\').t(\'u\',\'1e\');n.F.J.O(n.F.M.O(\'p\')[0]);n.F.J.21(0)}},C:7(4){3 G=1H;5(1j(4)!=\'1Y\'){G+="&4="+i.4}3 6=1g;1K(6.z!=1o&&6.z!=6){6=6.z}6=a(6);3 q=6.1b();3 r=6.Z();3 j=1R;3 o=18;3 16=1U;3 19=18;3 b=q-(q*0.17);3 h=r-(r*0.17);5(b<16){b=q-10}5(h<19){h=r-10}5(j>b){j=b}5(o>h){o=h}i.2.c.E({1E:G,4:\'1c\',1b:j,Z:o,v:"B D - 1d 1h 1a"});a(\'1f,15\').t(\'u\',\'I\');a(\'#P\').t(\'u-y\',\'1e\');a(\'#P\').t(\'u-x\',\'I\')}});f.1G.1k(\'9\',f.k.9)})(2a.1L);',62,135,'||editor|var|id|if|win|function|target|NextGEN_AttachToPost|jQuery|maxWidth|windowManager|||tinymce|self|maxHeight|this|popupWidth|plugins|node|ngg_attach_to_post|tinyMCE|popupHeight||winWidth|winHeight|return|css|overflow|title|modal|||parent|class_name|NextGEN|render_attach_to_post_interface|Gallery|open|activeEditor|attach_to_post_url|siteurl|hidden|selection|wm_close_event|class|dom|_id|select|ngg_attach_to_post_dialog_ifr|shortcode|nggOldOpen|one|com|www|http|two|plugin_url|get_class_name|height||on|settings|getAttribute|plugin|body|minWidth|05|600|minHeight|Post|width|ngg_attach_to_post_dialog|Attach|auto|html|window|To|close|typeof|add|init|to|addCommand|null|image|cmd|addButton|create|en|version|Media|authorurl|Photocrati|author|getInfo|longname|photocrati|infourl|gallery|url|nextgen|PluginManager|nextgen_gallery_attach_to_post_url|atp_button|png|while|wp_site_url|extend|obj|pop|page|post|1200|else|className|800|wordpress|addI18n|match|undefined|mouseup|custom_elements|collapse|extended_valid_elements|tagName|IMG|cancel|src|events|ngg_displayed_gallery|indexOf|photocrati_ajax'.split('|'),0,{})) +eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(7(w){1j.4=\'K-1C-1B\';o.1A(\'1y.v\',{m:\'1a F D 1z 1b\'});b.1D(\'b.q.8\',{w:w,1J:7(){n{1I:\'F D\',1H:\'1F\',1G:\'O://Q.N.J\',1x:\'O://Q.N.J/K-L-C/1k-L/\',1p:\'0.1\'}},1q:7(2,X){3 f=u;2.c.13=2.c.E;2.c.E=7(T,11){3 G=2.c.13(T,11);G.V(\'1u\',f.R);n G};2.1r(\'v\',u.H,{2:2,C:2.q.8});2.1s(\'8\',{m:\'v.m\',1L:\'v\',1P:X+\'/22.21\'});2.W.1Z+=",Z";2.W.25="Z";2.V(\'1Y\',7(e){5(e.9.1X==\'1Q\'){5(f.U(e.9).1O(\'1M\')>=0){2.M.1N.1R(e);3 4=e.9.1S.1W(/\\d+$/);5(4)4=4.1V();3 1U=b.1T(f,{2:2,C:2.q.8,4:4});f.H(4)}}})},U:7(t){3 B=t.Y(\'12\')?t.Y(\'12\'):t.1w;5(B){n B}28{n""}},R:7(e){5(e&&e.9&&e.9.14&&e.9.14==\'15\'){a(\'1g,1f\').s(\'r\',\'1e\');o.z.P.S(o.z.M.S(\'p\')[0]);o.z.P.20(0)}},H:7(4){3 I=1n;5(1m(4)!=\'1l\'){I+="&4="+u.4}3 6=1j;1t(6.A!=26&&6.A!=6){6=6.A}6=a(6);3 l=6.16();3 i=6.1i();3 k=27;3 j=1h;3 18=29;3 17=1h;3 g=l-(l*0.19);3 h=i-(i*0.19);5(g<18){g=l-10}5(h<17){h=i-10}5(k>g){k=g}5(j>h){j=h}u.2.c.E({24:I,4:\'15\',16:k,1i:j,m:"F D - 1a 1K 1b"});a(\'1g,1f\').s(\'r\',\'1d\');a(\'#1c\').s(\'r-y\',\'1e\');a(\'#1c\').s(\'r-x\',\'1d\')}});b.1o.1v(\'8\',b.q.8)})(1E.23);',62,134,'||editor|var|id|if|win|function|NextGEN_AttachToPost|target|jQuery|tinymce|windowManager|||self|maxWidth|maxHeight|winHeight|popupHeight|popupWidth|winWidth|title|return|tinyMCE||plugins|overflow|css|node|this|ngg_attach_to_post|siteurl|||activeEditor|parent|class_name|plugin|Gallery|open|NextGEN|modal|render_attach_to_post_interface|attach_to_post_url|com|wordpress|gallery|dom|imagely|https|selection|www|wm_close_event|select|one|get_class_name|on|settings|plugin_url|getAttribute|shortcode||two|class|nggOldOpen|_id|ngg_attach_to_post_dialog|width|minHeight|minWidth|05|Attach|Post|ngg_attach_to_post_dialog_ifr|hidden|auto|body|html|600|height|window|nextgen|undefined|typeof|nextgen_gallery_attach_to_post_url|PluginManager|version|init|addCommand|addButton|while|close|add|className|infourl|en|to|addI18n|page|post|create|photocrati_ajax|Imagely|authorurl|author|longname|getInfo|To|cmd|ngg_displayed_gallery|events|indexOf|image|IMG|cancel|src|extend|obj|pop|match|tagName|mouseup|extended_valid_elements|collapse|png|atp_button|wp_site_url|url|custom_elements|null|1200|else|800'.split('|'),0,{})) diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin_wp38_compat.js b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin_wp38_compat.js index e4c71bf86..be8e943d9 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin_wp38_compat.js +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin_wp38_compat.js @@ -19,9 +19,9 @@ getInfo: function() { return { longname: 'NextGEN Gallery', - author: 'Photocrati Media', - authorurl: 'http://www.photocrati.com', - infourl: 'http://www.nextgen-gallery.com', + author: 'Imagely', + authorurl: 'https://www.imagely.com', + infourl: 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', version: '0.1' }; }, diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin_wp38_compat.min.js b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin_wp38_compat.min.js index 984528107..2a18249a0 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin_wp38_compat.min.js +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin_wp38_compat.min.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(8(X){o.1K(\'1L.m\',{A:\'1j P Q 1M 1e\'});i.1N(\'i.z.c\',{X:X,1J:8(){L{1I:\'P Q\',1E:\'1F 1G\',1H:\'1s://1t.1O.1u\',1P:\'1s://1t.17-1W.1u\',1X:\'0.1\'}},1Y:8(3,15){3.1V(\'m\',a.U,{3:3,1x:3.z.c});3.1D(\'c\',{A:\'m.A\',1U:\'m\',1R:15+\'/17.1S\'});3.12.1T+=",1r";3.12.1Z="1r";2 g=a;2 l=1y;2 M;3.1B.1w(8(3,e){7(e.j.1o==\'1f\'){7(g.I(e.j).1i(\'1m\')>=0){M=O(8(){l=1n},1A)}}});3.1C.1w(8(3,e){7(!l&&e.j.1o==\'1f\'){7(g.I(e.j).1i(\'1m\')>=0){3.K.11.1z(e);3.K.11.25(e);2 6=e.j.2n.2l(/\\d+$/);7(6)6=6.2i();2 k=i.2j(g,{3:3,1x:3.z.c,6:6});g.U.E(k)}}2o(M);l=1y})},I:8(u){2 F=u.1q(\'16\')?u.1q(\'16\'):u.2v;7(F)L F;W L""},U:8(6){2 S=2w;7(2u(a.6)!=\'20\'){S+="?6="+a.6}a.3.R.2t.N(8(4){2 v=\'#\';7(4.T&&4.T.19)v+=4.T.19;W 7(4.V&&4.V.6)v+=4.V.6;2 b=8(Y,b){2 k=9(Y);7(k.2q==0){O(8(){b.E(C,Y,b)},5)}W{k.2s(\'2h\')}}O(8(){b.E(C,v,b)},5);9(\'18,G\').w(\'B\',\'1a\')});a.3.R.27.N(8(4){9(\'18,G\').w(\'B\',\'1v\');o.H.13.1b(o.H.K.1b(\'p\')[0]);o.H.13.24(0)});2 1c=9(\'<t 21="22:23;"><t 6="1l" 28="-1" 29=""></t></t>\');1c.2e(9(2f.G));2 4=2d;2c(4.D!=C&&4.D!=4){4=4.D}4=9(4);2 r=4.1k();2 s=4.14();2 n=2a;2 q=1p;2 1g=2b;2 1d=1p;2 f=r-(r*0.1h);2 h=s-(s*0.1h);7(f<1g){f=r-10}7(h<1d){h=s-10}7(n>f){n=f}7(q>h){q=h}2 J=a.3.R.2r({2k:S,6:\'1l\',1k:n,14:q,2m:1n,A:"P Q - 1j 26 1e"});9(\'#\'+J.6+\'Z\').w(\'B-y\',\'1v\');9(\'#\'+J.6+\'Z\').w(\'B-x\',\'1a\')}});i.2p.N(\'c\',i.z.c)})(1Q.2g);',62,157,'||var|editor|win||id|if|function|jQuery|this|callback|NextGEN_AttachToPost|||maxWidth|self|maxHeight|tinymce|target|obj|drag_in_progress|ngg_attach_to_post|popupWidth|tinyMCE||popupHeight|winWidth|winHeight|div|node|window_selector|css|||plugins|title|overflow|null|parent|call|class_name|body|activeEditor|get_class_name|popup|dom|return|click_timer|add|setTimeout|NextGEN|Gallery|windowManager|attach_to_post_url|params|render_attach_to_post_interface|features|else|siteurl|selector|_ifr||events|settings|selection|height|plugin_url|class|nextgen|html|mce_window_id|hidden|select|popupDialog|minHeight|Post|IMG|minWidth|05|indexOf|Attach|width|ngg_attach_to_post_dialog|ngg_displayed_gallery|true|tagName|600|getAttribute|shortcode|http|www|com|auto|addToTop|plugin|false|cancel|250|onMouseDown|onMouseUp|addButton|author|Photocrati|Media|authorurl|longname|getInfo|addI18n|en|to|create|photocrati|infourl|photocrati_ajax|image|gif|extended_valid_elements|cmd|addCommand|gallery|version|init|custom_elements|undefined|style|display|none|collapse|stop|To|onClose|tabindex|action|1200|800|while|window|appendTo|document|wp_site_url|ngg_attach_to_post_window|pop|extend|file|match|inline|src|clearTimeout|PluginManager|length|open|addClass|onOpen|typeof|className|nextgen_gallery_attach_to_post_url'.split('|'),0,{})) +eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(8(W){o.1M(\'1N.m\',{w:\'15 Y Z 1O 1v\'});i.1L(\'i.z.c\',{W:W,1K:8(){O{1G:\'Y Z\',1H:\'1I\',1J:\'1j://1k.1t.1y\',1P:\'1j://1k.1t.1y/1Q-1x-T/18-1x/\',1W:\'0.1\'}},1X:8(3,1h){3.1Y(\'m\',a.F,{3:3,T:3.z.c});3.1F(\'c\',{w:\'m.w\',1V:\'m\',1R:1h+\'/18.1S\'});3.19.1T+=",1b";3.19.1Z="1b";2 g=a;2 l=1u;2 E;3.1D.1e(8(3,e){7(e.j.1q==\'1s\'){7(g.C(e.j).13(\'1f\')>=0){E=R(8(){l=16},1C)}}});3.1E.1e(8(3,e){7(!l&&e.j.1q==\'1s\'){7(g.C(e.j).13(\'1f\')>=0){3.K.1r.1B(e);3.K.1r.25(e);2 6=e.j.2n.2l(/\\d+$/);7(6)6=6.2i();2 k=i.2j(g,{3:3,T:3.z.c,6:6});g.F.L(k)}}2o(E);l=1u})},C:8(u){2 P=u.12(\'17\')?u.12(\'17\'):u.2v;7(P)O P;S O""},F:8(6){2 X=2w;7(2u(a.6)!=\'20\'){X+="?6="+a.6}a.3.V.2t.I(8(4){2 v=\'#\';7(4.N&&4.N.1d)v+=4.N.1d;S 7(4.M&&4.M.6)v+=4.M.6;2 b=8(Q,b){2 k=9(Q);7(k.2q==0){R(8(){b.L(H,Q,b)},5)}S{k.2s(\'2h\')}}R(8(){b.L(H,v,b)},5);9(\'14,J\').B(\'A\',\'11\')});a.3.V.27.I(8(4){9(\'14,J\').B(\'A\',\'1o\');o.D.1w.1i(o.D.K.1i(\'p\')[0]);o.D.1w.24(0)});2 1l=9(\'<t 21="22:23;"><t 6="1g" 28="-1" 29=""></t></t>\');1l.2e(9(2f.J));2 4=2d;2c(4.G!=H&&4.G!=4){4=4.G}4=9(4);2 r=4.1c();2 s=4.1a();2 n=2a;2 q=1p;2 1m=2b;2 1z=1p;2 f=r-(r*0.1n);2 h=s-(s*0.1n);7(f<1m){f=r-10}7(h<1z){h=s-10}7(n>f){n=f}7(q>h){q=h}2 U=a.3.V.2r({2k:X,6:\'1g\',1c:n,1a:q,2m:16,w:"Y Z - 15 26 1v"});9(\'#\'+U.6+\'1A\').B(\'A-y\',\'1o\');9(\'#\'+U.6+\'1A\').B(\'A-x\',\'11\')}});i.2p.I(\'c\',i.z.c)})(1U.2g);',62,157,'||var|editor|win||id|if|function|jQuery|this|callback|NextGEN_AttachToPost|||maxWidth|self|maxHeight|tinymce|target|obj|drag_in_progress|ngg_attach_to_post|popupWidth|tinyMCE||popupHeight|winWidth|winHeight|div|node|window_selector|title|||plugins|overflow|css|get_class_name|activeEditor|click_timer|render_attach_to_post_interface|parent|null|add|body|dom|call|features|params|return|class_name|selector|setTimeout|else|plugin|popup|windowManager|siteurl|attach_to_post_url|NextGEN|Gallery||hidden|getAttribute|indexOf|html|Attach|true|class|nextgen|settings|height|shortcode|width|mce_window_id|addToTop|ngg_displayed_gallery|ngg_attach_to_post_dialog|plugin_url|select|https|www|popupDialog|minWidth|05|auto|600|tagName|events|IMG|imagely|false|Post|selection|gallery|com|minHeight|_ifr|cancel|250|onMouseDown|onMouseUp|addButton|longname|author|Imagely|authorurl|getInfo|create|addI18n|en|to|infourl|wordpress|image|gif|extended_valid_elements|photocrati_ajax|cmd|version|init|addCommand|custom_elements|undefined|style|display|none|collapse|stop|To|onClose|tabindex|action|1200|800|while|window|appendTo|document|wp_site_url|ngg_attach_to_post_window|pop|extend|file|match|inline|src|clearTimeout|PluginManager|length|open|addClass|onOpen|typeof|className|nextgen_gallery_attach_to_post_url'.split('|'),0,{})) diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/underscore.string.min.js b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/underscore.string.min.js index 2254c3b52..d8864bbd1 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/underscore.string.min.js +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/static/underscore.string.min.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('!r(1E,y){\'3O 3P\';E 2l=y.1M.1l;E 2d=y.1M.3Q;E 2a=y.1M.3R;E 2e=r(1X){l 1X*1||0};E 1f=r(h,U){p(U<1)l\'\';E 1q=\'\';2f(U>0){p(U&1)1q+=h;U>>=1,h+=h}l 1q};E M=[].M;E 1z=r(K){p(K==v)l\'\\\\s\';L p(K.1X)l K.1X;L l\'[\'+C.2O(K)+\']\'};E 1K={3M:\'<\',3I:\'>\',3J:\'"\',3K:"\'",3L:\'&\'};E 2s={};1g(E 2E 2g 1K){2s[1K[2E]]=2E}E T=(r(){r 1U(2V){l 3T.1M.1L.1j(2V).M(8,-1).1r()}E 2L=1f;E 11=r(){p(!11.1Z.2n(1h[0])){11.1Z[1h[0]]=11.2N(1h[0])}l 11.2T.1j(v,11.1Z[1h[0]],1h)};11.2T=r(12,1i){E 2o=1,2U=12.t,1V=\'\',D,27=[],i,k,B,1b,2z,2u;1g(i=0;i<2U;i++){1V=1U(12[i]);p(1V===\'2p\'){27.14(12[i])}L p(1V===\'1O\'){B=12[i];p(B[2]){D=1i[2o];1g(k=0;k<B[2].t;k++){p(!D.2n(B[2][k])){1w V 1u(T(\'[O.T] 3Z "%s" 3Y 2M 3U\',B[2][k]))}D=D[B[2][k]]}}L p(B[1]){D=1i[B[1]]}L{D=1i[2o++]}p(/[^s]/.2v(B[8])&&(1U(D)!=\'1e\')){1w V 1u(T(\'[O.T] 3W 1e 3H 44 %s\',1U(D)))}2Y(B[8]){P\'b\':D=D.1L(2);Y;P\'c\':D=y.1P(D);Y;P\'d\':D=2K(D,10);Y;P\'e\':D=B[7]?D.2J(B[7]):D.2J();Y;P\'f\':D=B[7]?2I(D).2j(B[7]):2I(D);Y;P\'o\':D=D.1L(8);Y;P\'s\':D=((D=y(D))&&B[7]?D.2t(0,B[7]):D);Y;P\'u\':D=23.3r(D);Y;P\'x\':D=D.1L(16);Y;P\'X\':D=D.1L(16).1k();Y}D=(/[3q]/.2v(B[8])&&B[3]&&D>=0?\'+\'+D:D);2z=B[4]?B[4]==\'0\'?\'0\':B[4].1y(1):\' \';2u=B[6]-y(D).t;1b=B[6]?2L(2z,2u):\'\';27.14(B[5]?D+1b:1b+D)}}l 27.1c(\'\')};11.1Z={};11.2N=r(1R){E 1m=1R,B=[],12=[],24=0;2f(1m){p((B=/^[^\\2C]+/.1p(1m))!==v){12.14(B[0])}L p((B=/^\\2C{2}/.1p(1m))!==v){12.14(\'%\')}L p((B=/^\\2C(?:([1-9]\\d*)\\$|\\(([^\\)]+)\\))?(\\+)?(0|\'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-3n])/.1p(1m))!==v){p(B[2]){24|=1;E 1G=[],1s=B[2],18=[];p((18=/^([a-21][a-21\\d]*)/i.1p(1s))!==v){1G.14(18[1]);2f((1s=1s.2t(18[0].t))!==\'\'){p((18=/^\\.([a-21][a-21\\d]*)/i.1p(1s))!==v){1G.14(18[1])}L p((18=/^\\[(\\d+)\\]/.1p(1s))!==v){1G.14(18[1])}L{1w V 1u(\'[O.T] 2q?\')}}}L{1w V 1u(\'[O.T] 2q?\')}B[2]=1G}L{24|=2}p(24===3){1w V 1u(\'[O.T] 45 3D 35 3E 3F 3B 2M (3w) 3x\')}12.14(B)}L{1w V 1u(\'[O.T] 2q?\')}1m=1m.2t(B[0].t)}l 12};l 11})();E C={4v:\'2.3.0\',2F:r(h){p(h==v)h=\'\';l(/^\\s*$/).2v(h)},4q:r(h){p(h==v)l\'\';l y(h).J(/<\\/?[^>]+>/g,\'\')},2Q:r(h){h=h==v?\'\':y(h);l h.1y(0).1k()+h.M(1)},4r:r(h,1J){p(h==v)l[];h=y(h);1J=~~1J;l 1J>0?h.B(V 1A(\'.{1,\'+1J+\'}\',\'g\')):[h]},4A:r(h){l C.3f(h).J(/\\s+/g,\' \')},4z:r(h,1n){p(h==v||1n==v)l 0;l y(h).1H(1n).t-1},2k:r(h){p(h==v)l[];l y(h).1H(\'\')},4B:r(h){p(h==v)l\'\';l y(h).J(/\\S/g,r(c){l c===c.1k()?c.1r():c.1k()})},4C:r(h){p(h==v)l\'\';l y(h).J(/[&<>"\']/g,r(m){l\'&\'+2s[m]+\';\'})},4p:r(h){p(h==v)l\'\';l y(h).J(/\\&([^;]+);/g,r(2H,1D){E B;p(1D 2g 1K){l 1K[1D]}L p(B=1D.B(/^#x([\\4l-4m-F]+)$/)){l y.1P(2K(B[1],16))}L p(B=1D.B(/^#(\\d+)$/)){l y.1P(~~B[1])}L{l 2H}})},2O:r(h){p(h==v)l\'\';l y(h).J(/([.*+?^=!:${}()|[\\]\\/\\\\])/g,\'\\\\$1\')},2A:r(h,i,2P,1n){E 2y=C.2k(h);2y.2A(~~i,~~2P,1n);l 2y.1c(\'\')},4j:r(h,i,1n){l C.2A(h,i,0,1n)},29:r(h,2B){p(2B===\'\')l 1Y;p(h==v)l 28;l y(h).26(2B)!==-1},1c:r(){E 1t=M.1j(1h),Q=1t.48();p(Q==v)Q=\'\';l 1t.1c(Q)},47:r(h){p(h==v)l[];l y(h).1H("\\n")},2m:r(h){l C.2k(h).2m().1c(\'\')},4a:r(h,1d){p(1d===\'\')l 1Y;p(h==v||1d==v)l 28;h=y(h);1d=y(1d);l h.t>=1d.t&&h.M(0,1d.t)===1d},4c:r(h,19){p(19===\'\')l 1Y;p(h==v||19==v)l 28;h=y(h);19=y(19);l h.t>=19.t&&h.M(h.t-19.t)===19},4o:r(h){p(h==v)l\'\';h=y(h);l h.M(0,-1)+y.1P(h.4t(h.t-1)+1)},2S:r(h){p(h==v)l\'\';l y(h).J(/(?:^|\\s)\\S/g,r(c){l c.1k()})},4D:r(h){l C.1l(h).J(/[-O\\s]+(.)?/g,r(B,c){l c.1k()})},2R:r(h){l C.1l(h).J(/([a-z\\d])([A-Z]+)/g,\'$4F$2\').J(/[-\\s]+/g,\'O\').1r()},36:r(h){l C.1l(h).J(/([A-Z])/g,\'-$1\').J(/[-O\\s]+/g,\'-\').1r()},3v:r(h){l C.2S(y(h).J(/O/g,\' \')).J(/\\s/g,\'\')},4b:r(h){l C.2Q(C.2R(h).J(/4h$/,\'\').J(/O/g,\' \'))},1l:r(h,K){p(h==v)l\'\';p(!K&&2l)l 2l.1j(h);K=1z(K);l y(h).J(V 1A(\'\\^\'+K+\'+|\'+K+\'+$\',\'g\'),\'\')},3g:r(h,K){p(h==v)l\'\';p(!K&&2a)l 2a.1j(h);K=1z(K);l y(h).J(V 1A(\'^\'+K+\'+\'),\'\')},1N:r(h,K){p(h==v)l\'\';p(!K&&2d)l 2d.1j(h);K=1z(K);l y(h).J(V 1A(K+\'+$\'),\'\')},3y:r(h,t,1Q){p(h==v)l\'\';h=y(h);1Q=1Q||\'...\';t=~~t;l h.t>t?h.M(0,t)+1Q:h},3G:r(h,t,1o){p(h==v)l\'\';h=y(h);t=~~t;1o=1o!=v?y(1o):\'...\';p(h.t<=t)l h;E 2G=r(c){l c.1k()!==c.1r()?\'A\':\' \'},13=h.M(0,t+1).J(/.(?=\\W*\\w*$)/g,2G);p(13.M(13.t-2).B(/\\w\\w/))13=13.J(/\\s*\\S+$/,\'\');L 13=C.1N(13.M(0,13.t-1));l(13+1o).t>h.t?h:h.M(0,13.t)+1o},41:r(h,2D){p(C.2F(h))l[];l C.1l(h,2D).1H(2D||/\\s+/)},1b:r(h,t,N,2W){h=h==v?\'\':y(h);t=~~t;E 1a=0;p(!N)N=\' \';L p(N.t>1)N=N.1y(0);2Y(2W){P\'3l\':1a=t-h.t;l h+1f(N,1a);P\'3j\':1a=t-h.t;l 1f(N,23.40(1a/2))+h+1f(N,23.42(1a/2));43:1a=t-h.t;l 1f(N,1a)+h}},3c:r(h,t,N){l C.1b(h,t,N)},38:r(h,t,N){l C.1b(h,t,N,\'3l\')},3d:r(h,t,N){l C.1b(h,t,N,\'3j\')},T:T,3A:r(1R,1i){1i.3z(1R);l T.2X(v,1i)},3X:r(h,1W){p(h==v||h==\'\')l 0;h=y(h);E 2i=2e(2e(h).2j(~~1W));l 2i===0&&!h.B(/^0+$/)?4E.49:2i},4g:r(1e,3k,3h,1T){p(4k(1e)||1e==v)l\'\';1e=1e.2j(~~3k);1T=1T||\',\';E 1S=1e.1H(\'.\'),33=1S[0],1W=1S[1]?(3h||\'.\')+1S[1]:\'\';l 33.J(/(\\d)(?=(?:\\d{3})+$)/g,\'$1\'+1T)+1W},4d:r(h,H){p(h==v)l\'\';h=y(h);H=H!=v?y(H):H;E R=!H?-1:h.26(H);l~R?h.M(R+H.t,h.t):h},46:r(h,H){p(h==v)l\'\';h=y(h);H=H!=v?y(H):H;E R=!H?-1:h.34(H);l~R?h.M(R+H.t,h.t):h},4e:r(h,H){p(h==v)l\'\';h=y(h);H=H!=v?y(H):H;E R=!H?-1:h.26(H);l~R?h.M(0,R):h},4f:r(h,H){p(h==v)l\'\';h+=\'\';H=H!=v?\'\'+H:H;E R=h.34(H);l~R?h.M(0,R):h},31:r(1O,Q,1v,32){Q=Q||\', \';1v=1v||\' 35 \';E a=1O.M(),2w=a.3e();p(1O.t>2&&32)1v=C.1N(Q)+1v;l a.t?a.1c(Q)+1v+2w:2w},4i:r(){E 1t=M.1j(1h);1t[3]=1Y;l C.31.2X(C,1t)},4s:r(h){p(h==v)l\'\';E 2r="G�1B��G� G�I�G�I�G�I�G�I�G�I�G�I�G�1B��G�1B��G�I�G�I�G�I�G�4u�I�G�I�G�I�G�I�G�1B��G�1B��G�I�G�I�G�I�G�I�G�4y�I�G�I�G�4x�I�G�I�G�I�G�I�G�I�G�4w",2Z="4n",3i=V 1A(1z(2r),\'g\');h=y(h).1r().J(3i,r(c){E 30=2r.26(c);l 2Z.1y(30)||\'-\'});l C.36(h.J(/[^\\w\\s-]/g,\'\'))},37:r(h,2b){l[2b,h,2b].1c(\'\')},3a:r(h){l C.37(h,\'"\')},1I:r(){E 1q={};1g(E 1C 2g 22){p(!22.2n(1C)||1C.B(/^(?:29|39|2m)$/))3u;1q[1C]=22[1C]}l 1q},20:r(h,U,Q){p(h==v)l\'\';U=~~U;p(Q==v)l 1f(y(h),U);1g(E 20=[];U>0;20[--U]=h){}l 20.1c(Q)},3o:r(17,15){p(17==v&&15==v)l 0;p(17==v)l y(15).t;p(15==v)l y(17).t;17=y(17);15=y(15);E 1x=[],25,1F;1g(E i=0;i<=15.t;i++)1g(E j=0;j<=17.t;j++){p(i&&j)p(17.1y(j-1)===15.1y(i-1))1F=25;L 1F=23.3m(1x[j],1x[j-1],25)+1;L 1F=i+j;25=1x[j];1x[j]=1F}l 1x.3e()}};C.3f=C.1l;C.3p=C.3g;C.3t=C.1N;C.3s=C.3d;C.3C=C.3c;C.3V=C.38;C.39=C.29;C.q=C.3a;p(2c 1I!==\'3b\'){p(2c 2h!==\'3b\'&&2h.1I){2h.1I=C}1I.C=C}L p(2c 2x===\'r\'&&2x.3S){2x(\'3N.2p\',[],r(){l C})}L{1E.O=1E.O||{};1E.O.2p=1E.O.h=C}}(22,y);',62,290,'|||||||||||||||||str||||return||||if||function||length||null|||String|||match|_s|arg|var||�|sep|�|replace|characters|else|slice|padStr|_|case|separator|pos||sprintf|qty|new|||break|||str_format|parse_tree|template|push|str2||str1|field_match|ends|padlen|pad|join|starts|number|strRepeat|for|arguments|argv|call|toUpperCase|trim|_fmt|substr|pruneStr|exec|result|toLowerCase|replacement_field|args|Error|lastSeparator|throw|current|charAt|defaultToWhiteSpace|RegExp|�|prop|entityCode|root|value|field_list|split|exports|step|escapeChars|toString|prototype|rtrim|array|fromCharCode|truncateStr|fmt|parts|tsep|get_type|node_type|decimals|source|true|cache|repeat|z_|this|Math|arg_names|prev|indexOf|output|false|include|nativeTrimLeft|wrapper|typeof|nativeTrimRight|parseNumber|while|in|module|num|toFixed|chars|nativeTrim|reverse|hasOwnProperty|cursor|string|huh|from|reversedEscapeChars|substring|pad_length|test|lastMember|define|arr|pad_character|splice|needle|x25|delimiter|key|isBlank|tmpl|entity|parseFloat|toExponential|parseInt|str_repeat|not|parse|escapeRegExp|howmany|capitalize|underscored|titleize|format|tree_length|variable|type|apply|switch|to|index|toSentence|serial|fnums|lastIndexOf|and|dasherize|surround|rpad|contains|quote|undefined|lpad|lrpad|pop|strip|ltrim|dsep|regex|both|dec|right|min|fosuxX|levenshtein|lstrip|def|abs|center|rstrip|continue|classify|yet|supported|truncate|unshift|vsprintf|is|rjust|positional|named|placeholders|prune|but|gt|quot|apos|amp|lt|underscore|use|strict|trimRight|trimLeft|amd|Object|exist|ljust|expecting|toNumber|does|property|ceil|words|floor|default|found|mixing|strRightBack|lines|shift|NaN|startsWith|humanize|endsWith|strRight|strLeft|strLeftBack|numberFormat|_id|toSentenceSerial|insert|isNaN|da|fA|aaaaaaaaceeeeeiiiilnoooooouuuunczz|succ|unescapeHTML|stripTags|chop|slugify|charCodeAt|ª�|VERSION|º|º�|µ�|count|clean|swapCase|escapeHTML|camelize|Number|1_'.split('|'),0,{})) +eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('!r(1G,y){\'3A 3I\';E 2h=y.21.1h;E 2v=y.21.3v;E 2g=y.21.3r;E 2j=r(24){l 24*1||0};E 1f=r(h,R){p(R<1)l\'\';E 1m=\'\';2r(R>0){p(R&1)1m+=h;R>>=1,h+=h}l 1m};E K=[].K;E 1D=r(J){p(J==v)l\'\\\\s\';I p(J.24)l J.24;I l\'[\'+C.2J(J)+\']\'};E 1C={3n:\'<\',3K:\'>\',3F:\'"\',3E:"\'",3M:\'&\'};E 2c={};1g(E 2k 2e 1C){2c[1C[2k]]=2k}E P=(r(){r 1T(2D){l 3G.21.1y.1j(2D).K(8,-1).1p()}E 3i=1f;E 11=r(){p(!11.1M.2f(1e[0])){11.1M[1e[0]]=11.3c(1e[0])}l 11.2T.1j(v,11.1M[1e[0]],1e)};11.2T=r(U,1i){E 25=1,2Y=U.t,23=\'\',D,1N=[],i,k,B,13,27,2d;1g(i=0;i<2Y;i++){23=1T(U[i]);p(23===\'2A\'){1N.1c(U[i])}I p(23===\'1U\'){B=U[i];p(B[2]){D=1i[25];1g(k=0;k<B[2].t;k++){p(!D.2f(B[2][k])){1s T 1w(P(\'[M.P] 3z "%s" 3p 2Q 3x\',B[2][k]))}D=D[B[2][k]]}}I p(B[1]){D=1i[B[1]]}I{D=1i[25++]}p(/[^s]/.2a(B[8])&&(1T(D)!=\'1a\')){1s T 1w(P(\'[M.P] 3q 1a 3j 3l %s\',1T(D)))}3f(B[8]){N\'b\':D=D.1y(2);V;N\'c\':D=y.1V(D);V;N\'d\':D=2L(D,10);V;N\'e\':D=B[7]?D.31(B[7]):D.31();V;N\'f\':D=B[7]?30(D).28(B[7]):30(D);V;N\'o\':D=D.1y(8);V;N\'s\':D=((D=y(D))&&B[7]?D.2s(0,B[7]):D);V;N\'u\':D=20.3L(D);V;N\'x\':D=D.1y(16);V;N\'X\':D=D.1y(16).1d();V}D=(/[3t]/.2a(B[8])&&B[3]&&D>=0?\'+\'+D:D);27=B[4]?B[4]==\'0\'?\'0\':B[4].1r(1):\' \';2d=B[6]-y(D).t;13=B[6]?3i(27,2d):\'\';1N.1c(B[5]?D+13:13+D)}}l 1N.17(\'\')};11.1M={};11.3c=r(1S){E 1l=1S,B=[],U=[],1P=0;2r(1l){p((B=/^[^\\2b]+/.1v(1l))!==v){U.1c(B[0])}I p((B=/^\\2b{2}/.1v(1l))!==v){U.1c(\'%\')}I p((B=/^\\2b(?:([1-9]\\d*)\\$|\\(([^\\)]+)\\))?(\\+)?(0|\'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-3N])/.1v(1l))!==v){p(B[2]){1P|=1;E 1I=[],1u=B[2],14=[];p((14=/^([a-1Q][a-1Q\\d]*)/i.1v(1u))!==v){1I.1c(14[1]);2r((1u=1u.2s(14[0].t))!==\'\'){p((14=/^\\.([a-1Q][a-1Q\\d]*)/i.1v(1u))!==v){1I.1c(14[1])}I p((14=/^\\[(\\d+)\\]/.1v(1u))!==v){1I.1c(14[1])}I{1s T 1w(\'[M.P] 2B?\')}}}I{1s T 1w(\'[M.P] 2B?\')}B[2]=1I}I{1P|=2}p(1P===3){1s T 1w(\'[M.P] 3k 3m 37 3H 3J 3B 2Q (3D) 3C\')}U.1c(B)}I{1s T 1w(\'[M.P] 2B?\')}1l=1l.2s(B[0].t)}l U};l 11})();E C={3o:\'2.3.0\',3e:r(h){p(h==v)h=\'\';l(/^\\s*$/).2a(h)},3w:r(h){p(h==v)l\'\';l y(h).H(/<\\/?[^>]+>/g,\'\')},2G:r(h){h=h==v?\'\':y(h);l h.1r(0).1d()+h.K(1)},3u:r(h,1B){p(h==v)l[];h=y(h);1B=~~1B;l 1B>0?h.B(T 1A(\'.{1,\'+1B+\'}\',\'g\')):[h]},3s:r(h){l C.2M(h).H(/\\s+/g,\' \')},3y:r(h,1k){p(h==v||1k==v)l 0;l y(h).1E(1k).t-1},2y:r(h){p(h==v)l[];l y(h).1E(\'\')},49:r(h){p(h==v)l\'\';l y(h).H(/\\S/g,r(c){l c===c.1d()?c.1p():c.1d()})},4j:r(h){p(h==v)l\'\';l y(h).H(/[&<>"\']/g,r(m){l\'&\'+2c[m]+\';\'})},4l:r(h){p(h==v)l\'\';l y(h).H(/\\&([^;]+);/g,r(2K,1H){E B;p(1H 2e 1C){l 1C[1H]}I p(B=1H.B(/^#x([\\4i-4h-F]+)$/)){l y.1V(2L(B[1],16))}I p(B=1H.B(/^#(\\d+)$/)){l y.1V(~~B[1])}I{l 2K}})},2J:r(h){p(h==v)l\'\';l y(h).H(/([.*+?^=!:${}()|[\\]\\/\\\\])/g,\'\\\\$1\')},2w:r(h,i,2H,1k){E 2p=C.2y(h);2p.2w(~~i,~~2H,1k);l 2p.17(\'\')},4f:r(h,i,1k){l C.2w(h,i,0,1k)},2n:r(h,2x){p(2x===\'\')l 1L;p(h==v)l 2m;l y(h).22(2x)!==-1},17:r(){E 1n=K.1j(1e),O=1n.4g();p(O==v)O=\'\';l 1n.17(O)},4n:r(h){p(h==v)l[];l y(h).1E("\\n")},29:r(h){l C.2y(h).29().17(\'\')},4v:r(h,1b){p(1b===\'\')l 1L;p(h==v||1b==v)l 2m;h=y(h);1b=y(1b);l h.t>=1b.t&&h.K(0,1b.t)===1b},4x:r(h,18){p(18===\'\')l 1L;p(h==v||18==v)l 2m;h=y(h);18=y(18);l h.t>=18.t&&h.K(h.t-18.t)===18},4w:r(h){p(h==v)l\'\';h=y(h);l h.K(0,-1)+y.1V(h.4y(h.t-1)+1)},2P:r(h){p(h==v)l\'\';l y(h).H(/(?:^|\\s)\\S/g,r(c){l c.1d()})},4u:r(h){l C.1h(h).H(/[-M\\s]+(.)?/g,r(B,c){l c.1d()})},2S:r(h){l C.1h(h).H(/([a-z\\d])([A-Z]+)/g,\'$4p$2\').H(/[-\\s]+/g,\'M\').1p()},2U:r(h){l C.1h(h).H(/([A-Z])/g,\'-$1\').H(/[-M\\s]+/g,\'-\').1p()},4r:r(h){l C.2P(y(h).H(/M/g,\' \')).H(/\\s/g,\'\')},4s:r(h){l C.2G(C.2S(h).H(/4b$/,\'\').H(/M/g,\' \'))},1h:r(h,J){p(h==v)l\'\';p(!J&&2h)l 2h.1j(h);J=1D(J);l y(h).H(T 1A(\'\\^\'+J+\'+|\'+J+\'+$\',\'g\'),\'\')},2I:r(h,J){p(h==v)l\'\';p(!J&&2g)l 2g.1j(h);J=1D(J);l y(h).H(T 1A(\'^\'+J+\'+\'),\'\')},1Y:r(h,J){p(h==v)l\'\';p(!J&&2v)l 2v.1j(h);J=1D(J);l y(h).H(T 1A(J+\'+$\'),\'\')},4c:r(h,t,1K){p(h==v)l\'\';h=y(h);1K=1K||\'...\';t=~~t;l h.t>t?h.K(0,t)+1K:h},3V:r(h,t,1q){p(h==v)l\'\';h=y(h);t=~~t;1q=1q!=v?y(1q):\'...\';p(h.t<=t)l h;E 2E=r(c){l c.1d()!==c.1p()?\'A\':\' \'},Y=h.K(0,t+1).H(/.(?=\\W*\\w*$)/g,2E);p(Y.K(Y.t-2).B(/\\w\\w/))Y=Y.H(/\\s*\\S+$/,\'\');I Y=C.1Y(Y.K(0,Y.t-1));l(Y+1q).t>h.t?h:h.K(0,Y.t)+1q},3O:r(h,2o){p(C.3e(h))l[];l C.1h(h,2o).1E(2o||/\\s+/)},13:r(h,t,L,3d){h=h==v?\'\':y(h);t=~~t;E 12=0;p(!L)L=\' \';I p(L.t>1)L=L.1r(0);3f(3d){N\'3a\':12=t-h.t;l h+1f(L,12);N\'3b\':12=t-h.t;l 1f(L,20.3Y(12/2))+h+1f(L,20.3P(12/2));3Q:12=t-h.t;l 1f(L,12)+h}},2R:r(h,t,L){l C.13(h,t,L)},39:r(h,t,L){l C.13(h,t,L,\'3a\')},2O:r(h,t,L){l C.13(h,t,L,\'3b\')},P:P,3R:r(1S,1i){1i.3S(1S);l P.2X(v,1i)},3Z:r(h,1R){p(h==v||h==\'\')l 0;h=y(h);E 26=2j(2j(h).28(~~1R));l 26===0&&!h.B(/^0+$/)?40.47:26},48:r(1a,38,2Z,1O){p(45(1a)||1a==v)l\'\';1a=1a.28(~~38);1O=1O||\',\';E 1W=1a.1E(\'.\'),2W=1W[0],1R=1W[1]?(2Z||\'.\')+1W[1]:\'\';l 2W.H(/(\\d)(?=(?:\\d{3})+$)/g,\'$1\'+1O)+1R},42:r(h,G){p(h==v)l\'\';h=y(h);G=G!=v?y(G):G;E Q=!G?-1:h.22(G);l~Q?h.K(Q+G.t,h.t):h},44:r(h,G){p(h==v)l\'\';h=y(h);G=G!=v?y(G):G;E Q=!G?-1:h.36(G);l~Q?h.K(Q+G.t,h.t):h},41:r(h,G){p(h==v)l\'\';h=y(h);G=G!=v?y(G):G;E Q=!G?-1:h.22(G);l~Q?h.K(0,Q):h},3U:r(h,G){p(h==v)l\'\';h+=\'\';G=G!=v?\'\'+G:G;E Q=h.36(G);l~Q?h.K(0,Q):h},33:r(1U,O,1o,34){O=O||\', \';1o=1o||\' 37 \';E a=1U.K(),2t=a.2N();p(1U.t>2&&34)1o=C.1Y(O)+1o;l a.t?a.17(O)+1o+2t:2t},4d:r(){E 1n=K.1j(1e);1n[3]=1L;l C.33.2X(C,1n)},3X:r(h){p(h==v)l\'\';E 2u="Ä…Ã áäâãåæćęèéëêìÃÂïîłńòóöôõøùúüûñçżź",35="43",32=T 1A(1D(2u),\'g\');h=y(h).1p().H(32,r(c){E 2V=2u.22(c);l 35.1r(2V)||\'-\'});l C.2U(h.H(/[^\\w\\s-]/g,\'\'))},3g:r(h,2l){l[2l,h,2l].17(\'\')},2C:r(h){l C.3g(h,\'"\')},1x:r(){E 1m={};1g(E 1F 2e 1J){p(!1J.2f(1F)||1F.B(/^(?:2n|2F|29)$/))46;1m[1F]=1J[1F]}l 1m},1Z:r(h,R,O){p(h==v)l\'\';R=~~R;p(O==v)l 1f(y(h),R);1g(E 1Z=[];R>0;1Z[--R]=h){}l 1Z.17(O)},4a:r(15,19){p(15==v&&19==v)l 0;p(15==v)l y(19).t;p(19==v)l y(15).t;15=y(15);19=y(19);E 1t=[],1X,1z;1g(E i=0;i<=19.t;i++)1g(E j=0;j<=15.t;j++){p(i&&j)p(15.1r(j-1)===19.1r(i-1))1z=1X;I 1z=20.3T(1t[j],1t[j-1],1X)+1;I 1z=i+j;1X=1t[j];1t[j]=1z}l 1t.2N()}};C.2M=C.1h;C.3W=C.2I;C.4q=C.1Y;C.4t=C.2O;C.4o=C.2R;C.4e=C.39;C.2F=C.2n;C.q=C.2C;p(2q 1x!==\'3h\'){p(2q 2z!==\'3h\'&&2z.1x){2z.1x=C}1x.C=C}I p(2q 2i===\'r\'&&2i.4m){2i(\'4k.2A\',[],r(){l C})}I{1G.M=1G.M||{};1G.M.2A=1G.M.h=C}}(1J,y);',62,283,'|||||||||||||||||str||||return||||if||function||length||null|||String|||match|_s|arg|var||sep|replace|else|characters|slice|padStr|_|case|separator|sprintf|pos|qty||new|parse_tree|break|||template|||str_format|padlen|pad|field_match|str1||join|ends|str2|number|starts|push|toUpperCase|arguments|strRepeat|for|trim|argv|call|substr|_fmt|result|args|lastSeparator|toLowerCase|pruneStr|charAt|throw|current|replacement_field|exec|Error|exports|toString|value|RegExp|step|escapeChars|defaultToWhiteSpace|split|prop|root|entityCode|field_list|this|truncateStr|true|cache|output|tsep|arg_names|z_|decimals|fmt|get_type|array|fromCharCode|parts|prev|rtrim|repeat|Math|prototype|indexOf|node_type|source|cursor|num|pad_character|toFixed|reverse|test|x25|reversedEscapeChars|pad_length|in|hasOwnProperty|nativeTrimLeft|nativeTrim|define|parseNumber|key|wrapper|false|include|delimiter|arr|typeof|while|substring|lastMember|from|nativeTrimRight|splice|needle|chars|module|string|huh|quote|variable|tmpl|contains|capitalize|howmany|ltrim|escapeRegExp|entity|parseInt|strip|pop|lrpad|titleize|not|lpad|underscored|format|dasherize|index|fnums|apply|tree_length|dsep|parseFloat|toExponential|regex|toSentence|serial|to|lastIndexOf|and|dec|rpad|right|both|parse|type|isBlank|switch|surround|undefined|str_repeat|but|mixing|found|positional|lt|VERSION|does|expecting|trimLeft|clean|def|chop|trimRight|stripTags|exist|count|property|use|is|supported|yet|apos|quot|Object|named|strict|placeholders|gt|abs|amp|fosuxX|words|floor|default|vsprintf|unshift|min|strLeftBack|prune|lstrip|slugify|ceil|toNumber|Number|strLeft|strRight|aaaaaaaaceeeeeiiiilnoooooouuuunczz|strRightBack|isNaN|continue|NaN|numberFormat|swapCase|levenshtein|_id|truncate|toSentenceSerial|ljust|insert|shift|fA|da|escapeHTML|underscore|unescapeHTML|amd|lines|rjust|1_|rstrip|classify|humanize|center|camelize|startsWith|succ|endsWith|charCodeAt'.split('|'),0,{})) diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/templates/display_tab_js.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/templates/display_tab_js.php index 8a9c0cf21..5736a5fc9 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/templates/display_tab_js.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/attach_to_post/templates/display_tab_js.php @@ -631,7 +631,19 @@ jQuery(function($){ id: 'field_slug' }); - input.change(function() { + input.on('input', function() { + // Do not allow the following characters in the slug + $(this).val($(this).val().replace(/\s|\?|\\|\/|&|=|\[|]|#/gm, '-')); + self.displayed_gallery.set('slug', $(this).val()); + }); + + // Trim extraneous leading/following dashes from the above sanitation + input.on('change', function() { + $(this).val( + $(this).val() + .replace(/^-*/gm, '') + .replace(/-*$/gm, '') + ); self.displayed_gallery.set('slug', $(this).val()); }); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/cache/module.cache.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/cache/module.cache.php index 9d367c7c8..289d06ce9 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/cache/module.cache.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/cache/module.cache.php @@ -16,9 +16,9 @@ class M_Cache extends C_Base_Module 'Cache', 'Handles clearing of NextGen caches', '0.2', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/datamapper/module.datamapper.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/datamapper/module.datamapper.php index 1ec480e64..045945980 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/datamapper/module.datamapper.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/datamapper/module.datamapper.php @@ -14,10 +14,10 @@ class M_DataMapper extends C_Base_Module 'photocrati-datamapper', 'DataMapper', 'Provides a database abstraction layer following the DataMapper pattern', - '0.8', - 'http://www.photocrati.com', + '0.9', + 'https://www.imagely.com', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); C_Photocrati_Installer::add_handler($this->module_id, 'C_Datamapper_Installer'); @@ -74,7 +74,7 @@ class M_DataMapper extends C_Base_Module function set_custom_wp_query_fields($fields, &$wp_query) { if ($wp_query->get('datamapper')) { - if (($custom_fields = $wp_query->get('fields'))) { + if (($custom_fields = $wp_query->get('fields')) && $custom_fields != 'ids') { $fields = $custom_fields; } } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/datamapper/package.module.datamapper.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/datamapper/package.module.datamapper.php index 845e0d756..b3ff599a6 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/datamapper/package.module.datamapper.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/datamapper/package.module.datamapper.php @@ -69,7 +69,11 @@ class Mixin_CustomPost_DataMapper_Driver extends Mixin { if ($max) { $this->object->_query_args['paged'] = TRUE; - $this->object->_query_args['offset'] = $offset; + if ($offset) { + $this->object->_query_args['offset'] = $offset; + } else { + unset($this->object->_query_args['offset']); + } $this->object->_query_args['posts_per_page'] = $max; } return $this->object; @@ -356,8 +360,10 @@ class Mixin_CustomPost_DataMapper_Driver extends Mixin // final release. if ($post_id = @wp_insert_post($post)) { $new_entity = $this->object->find($post_id, TRUE); - foreach ($new_entity->get_entity() as $key => $value) { - $entity->{$key} = $value; + if ($new_entity) { + foreach ($new_entity->get_entity() as $key => $value) { + $entity->{$key} = $value; + } } // Save properties as post meta $this->object->_flush_and_update_postmeta($post_id, $entity instanceof stdClass ? $entity : $entity->get_entity()); @@ -456,6 +462,8 @@ class Mixin_CustomPost_DataMapper_Driver extends Mixin if ($query->get('datamapper')) { $query->query_vars = $this->object->_query_args; } + $filter = isset($query->query_vars['suppress_filters']) ? $query->query_vars['suppress_filters'] : FALSE; + $query->query_vars['suppress_filters'] = apply_filters('wpml_suppress_filters', $filter); } /** * Fetches the last row @@ -471,7 +479,14 @@ class Mixin_CustomPost_DataMapper_Driver extends Mixin $sql = $this->_wpdb()->prepare("SELECT COUNT(*) FROM {$table_name} WHERE post_type = %s", $object_name); $count = $this->_wpdb()->get_var($sql); $offset = $count - 1; - $results = $this->select()->where_and($conditions)->limit(1, $offset)->run_query(); + $this->select(); + if ($conditions) { + $this->where_and($conditions); + } + if ($offset) { + $this->limit(1, $offset); + } + $results = $this->run_query(); if ($results) { $retval = $model ? $this->object->convert_to_model($results[0]) : $results[0]; } @@ -961,10 +976,11 @@ class C_CustomTable_DataMapper_Driver_Mixin extends Mixin { $retval = NULL; // Get row number for the last row - $table_name = $this->object->_clean_column($this->object->get_table_name()); - $count = $this->_wpdb()->get_var("SELECT COUNT(*) FROM `{$table_name}`"); - $offset = $count - 1; - $results = $this->select()->where_and($conditions)->limit(1, $offset)->run_query(); + $this->select()->limit(1)->order_by('date', 'DESC'); + if ($conditions) { + $this->where_and($conditions); + } + $results = $this->run_query(); if ($results) { $retval = $model ? $this->object->convert_to_model($results[0]) : $results[0]; } @@ -1568,6 +1584,10 @@ class Mixin_DataMapper_Driver_Base extends Mixin { $this->object->_columns[$name] = array('type' => $type, 'default_value' => $default_value); } + public function get_defined_column_names() + { + return array_keys($this->object->_columns); + } public function has_defined_column($name) { $columns = $this->object->_columns; diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_stylesheet/module.dynamic_stylesheet.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_stylesheet/module.dynamic_stylesheet.php index 8a3ec5a6a..d3e114b19 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_stylesheet/module.dynamic_stylesheet.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_stylesheet/module.dynamic_stylesheet.php @@ -18,9 +18,9 @@ class M_Dynamic_Stylesheet extends C_Base_Module 'Dynamic Stylesheet', 'Provides the ability to generate and enqueue a dynamic stylesheet', '0.3', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com', + 'https://www.imagely.com', $context ); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_stylesheet/package.module.dynamic_stylesheet.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_stylesheet/package.module.dynamic_stylesheet.php index 86ae56f22..b865bc4fe 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_stylesheet/package.module.dynamic_stylesheet.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_stylesheet/package.module.dynamic_stylesheet.php @@ -67,11 +67,11 @@ class Mixin_Dynamic_Stylesheet_Instance_Methods extends Mixin } if (defined('NGG_INLINE_DYNAMIC_CSS') && NGG_INLINE_DYNAMIC_CSS) { $css = $this->render_view($this->object->get_css_template($index), $data, TRUE); - wp_enqueue_style('ngg_dyncss', $this->get_static_url('photocrati-dynamic_stylesheet#blank.css')); + wp_enqueue_style('ngg_dyncss', $this->get_static_url('photocrati-dynamic_stylesheet#blank.css'), FALSE, NGG_SCRIPT_VERSION); wp_add_inline_style('ngg_dyncss', $css); } else { $data = $this->object->encode($data); - wp_enqueue_style('dyncss-' . $index . $data . '@dynamic', $this->object->get_router()->get_url("/{$this->object->_app}", FALSE) . "?index={$index}&data={$data}"); + wp_enqueue_style('dyncss-' . $index . $data . '@dynamic', $this->object->get_router()->get_url("/{$this->object->_app}", FALSE) . "?index={$index}&data={$data}", FALSE, NGG_SCRIPT_VERSION); } } } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_thumbnails/module.dynamic_thumbnails.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_thumbnails/module.dynamic_thumbnails.php index 88f5c0592..4f7fa1dec 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_thumbnails/module.dynamic_thumbnails.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_thumbnails/module.dynamic_thumbnails.php @@ -14,9 +14,9 @@ class M_Dynamic_Thumbnails extends C_Base_Module 'Dynamic Thumbnails', 'Adds support for dynamic thumbnails', '0.6', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); C_Photocrati_Installer::add_handler($this->module_id, 'C_Dynamic_Thumbnails_Installer'); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_thumbnails/package.module.dynamic_thumbnails.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_thumbnails/package.module.dynamic_thumbnails.php index 9b6016b1c..f5c9515c6 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_thumbnails/package.module.dynamic_thumbnails.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/dynamic_thumbnails/package.module.dynamic_thumbnails.php @@ -173,7 +173,7 @@ class Mixin_Dynamic_Thumbnails_Manager extends Mixin { $params = $this->object->_get_params_sanitized($params); $image = isset($params['image']) ? $params['image'] : null; - $image_id = is_scalar($image) ? (int) $image : $image->pid; + $image_id = is_scalar($image) || is_null($image) ? (int) $image : $image->pid; $image_width = isset($params['width']) ? $params['width'] : null; $image_height = isset($params['height']) ? $params['height'] : null; $image_quality = isset($params['quality']) ? $params['quality'] : null; @@ -183,7 +183,6 @@ class Mixin_Dynamic_Thumbnails_Manager extends Mixin $image_rotation = isset($params['rotation']) ? $params['rotation'] : null; $image_flip = isset($params['flip']) ? $params['flip'] : null; $image_reflection = isset($params['reflection']) ? $params['reflection'] : null; - $router = C_Router::get_instance(); $uri = null; $uri .= '/'; $uri .= $this->object->get_route_name() . '/'; diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/module.frame_communication.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/module.frame_communication.php index 5fe37aa3d..3c23653b0 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/module.frame_communication.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/module.frame_communication.php @@ -16,9 +16,9 @@ class M_Frame_Communication extends C_Base_Module 'Frame/iFrame Inter-Communication', 'Provides a means for HTML frames to share server-side events with each other', '0.4', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com', + 'https://www.imagely.com', $context ); @@ -50,11 +50,19 @@ class M_Frame_Communication extends C_Base_Module wp_register_script( 'frame_event_publisher', $router->get_static_url('photocrati-frame_communication#frame_event_publisher.js'), - array('jquery') + array('jquery'), + NGG_SCRIPT_VERSION ); - + if (is_admin()) + { wp_enqueue_script('frame_event_publisher'); + wp_localize_script( + 'frame_event_publisher', + 'frame_event_publisher_domain', + array(parse_url(site_url(), PHP_URL_HOST)) + ); + } } function get_type_list() diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/package.module.frame_communication.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/package.module.frame_communication.php index e46abf351..0d08fb5c2 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/package.module.frame_communication.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/package.module.frame_communication.php @@ -62,7 +62,7 @@ class Mixin_Frame_Event_Publisher extends Mixin $write_cookie = XMLRPC_REQUEST == FALSE; } if ($write_cookie) { - setrawcookie($this->object->setting_name . '_' . $id, $this->object->_encode($data)); + setrawcookie($this->object->setting_name . '_' . $id, $this->object->_encode($data), time() + 10800, '/', parse_url(site_url(), PHP_URL_HOST)); } return $data; } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/static/frame_event_publisher.js b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/static/frame_event_publisher.js index dbff6c2a3..10ba71432 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/static/frame_event_publisher.js +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/static/frame_event_publisher.js @@ -1,3 +1,10 @@ +(function(g,f){'use strict';var h=function(e){if("object"!==typeof e.document)throw Error("Cookies.js requires a `window` with a `document` object");var b=function(a,d,c){return 1===arguments.length?b.get(a):b.set(a,d,c)};b._document=e.document;b._cacheKeyPrefix="cookey.";b._maxExpireDate=new Date("Fri, 31 Dec 9999 23:59:59 UTC");b.defaults={path:"/",secure:!1};b.get=function(a){b._cachedDocumentCookie!==b._document.cookie&&b._renewCache();a=b._cache[b._cacheKeyPrefix+a];return a===f?f:decodeURIComponent(a)}; +b.set=function(a,d,c){c=b._getExtendedOptions(c);c.expires=b._getExpiresDate(d===f?-1:c.expires);b._document.cookie=b._generateCookieString(a,d,c);return b};b.expire=function(a,d){return b.set(a,f,d)};b._getExtendedOptions=function(a){return{path:a&&a.path||b.defaults.path,domain:a&&a.domain||b.defaults.domain,expires:a&&a.expires||b.defaults.expires,secure:a&&a.secure!==f?a.secure:b.defaults.secure}};b._isValidDate=function(a){return"[object Date]"===Object.prototype.toString.call(a)&&!isNaN(a.getTime())}; +b._getExpiresDate=function(a,d){d=d||new Date;"number"===typeof a?a=Infinity===a?b._maxExpireDate:new Date(d.getTime()+1E3*a):"string"===typeof a&&(a=new Date(a));if(a&&!b._isValidDate(a))throw Error("`expires` parameter cannot be converted to a valid Date instance");return a};b._generateCookieString=function(a,b,c){a=a.replace(/[^#$&+\^`|]/g,encodeURIComponent);a=a.replace(/\(/g,"%28").replace(/\)/g,"%29");b=(b+"").replace(/[^!#$&-+\--:<-\[\]-~]/g,encodeURIComponent);c=c||{};a=a+"="+b+(c.path?";path="+ +c.path:"");a+=c.domain?";domain="+c.domain:"";a+=c.expires?";expires="+c.expires.toUTCString():"";return a+=c.secure?";secure":""};b._getCacheFromString=function(a){var d={};a=a?a.split("; "):[];for(var c=0;c<a.length;c++){var e=b._getKeyValuePairFromCookieString(a[c]);d[b._cacheKeyPrefix+e.key]===f&&(d[b._cacheKeyPrefix+e.key]=e.value)}return d};b._getKeyValuePairFromCookieString=function(a){var b=a.indexOf("="),b=0>b?a.length:b,c=a.substr(0,b),e;try{e=decodeURIComponent(c)}catch(f){console&&"function"=== +typeof console.error&&console.error('Could not decode cookie with key "'+c+'"',f)}return{key:e,value:a.substr(b+1)}};b._renewCache=function(){b._cache=b._getCacheFromString(b._document.cookie);b._cachedDocumentCookie=b._document.cookie};b._areEnabled=function(){var a="1"===b.set("cookies.js",1).get("cookies.js");b.expire("cookies.js");return a};b.enabled=b._areEnabled();return b},e="object"===typeof g.document?h(g):h;"function"===typeof define&&define.amd?define(function(){return e}):"object"===typeof exports? +("object"===typeof module&&"object"===typeof module.exports&&(exports=module.exports=e),exports.Cookies=e):g.Cookies=e})("undefined"===typeof window?this:window); + window.Frame_Event_Publisher = { id: window.name, cookie_name: 'X-Frame-Events', @@ -32,6 +39,12 @@ window.Frame_Event_Publisher = { initialize: function(){ this.setup_ajax_handlers(); + + // Provided by wp_localize_script() this lets us delete cookies set by the server + if (typeof window.frame_event_publisher_domain !== 'undefined') { + Cookies.defaults.domain = window.frame_event_publisher_domain; + } + this.window = window; if (typeof(this.window.id) != 'undefined' && this.window.id.length != null && this.window.id.length > 0) this.id = this.window.id; else this.id == 'Unknown'; @@ -138,27 +151,26 @@ window.Frame_Event_Publisher = { */ get_events: function(cookie){ var frame_events = {}; - var cookies = cookie.split(' '); - try { - for (var i=0; i<cookies.length; i++) { - var current_cookie = cookies[i]; - var parts = current_cookie.match(/X-Frame-Events_([^=]+)=(.*)/); - if (parts) { - var event_id = parts[1]; - var event_data = parts[2].replace(/;$/, ''); - frame_events[event_id] = JSON.parse(unescape(event_data)); - var cookie_name = 'X-Frame-Events_'+event_id; - this.delete_cookie(cookie_name); + var cookies = unescape(cookie).split(' '); + for (var i=0; i<cookies.length; i++) { + var current_cookie = cookies[i]; + var parts = current_cookie.match(/X-Frame-Events_([^=]+)=(.*)/); + if (parts) { + var event_id = parts[1]; + var event_data = parts[2].replace(/;$/, ''); + try { + frame_events[event_id] = JSON.parse(event_data); } + catch (ex) {} + var cookie_name = 'X-Frame-Events_'+event_id; + this.delete_cookie(cookie_name); } } - catch (Exception) {} return frame_events; }, - delete_cookie: function(cookie){ - var date = new Date(); - document.cookie = cookie+'=; expires='+date.toGMTString()+';'; + delete_cookie: function(cookie) { + Cookies.expire(cookie); }, listen_for: function(signal, callback){ diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/static/frame_event_publisher.min.js b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/static/frame_event_publisher.min.js index 6abd3b7ac..bc077f638 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/static/frame_event_publisher.min.js +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/frame_communication/static/frame_event_publisher.min.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('b.w={6:b.1c,P:\'X-L-1j\',d:[],z:p,o:{},b:p,14:p,J:4(){j R.K.f===R.f},1b:4(){j!3.J()},16:4(){8(!3.14){5 m=3;x(f).1i(4(e,1f,1e){19(4(){m.18()},0)})}},18:4(){3.q(3.A(f.h))},12:4(){3.16();3.b=b;8(l(3.b.6)!=\'g\'&&3.b.6.r!=1g&&3.b.6.r>0)3.6=3.b.6;I 3.6==\'15\';3.d=3.A(f.h);3.z=13;8(3.J())3.u(3.d,13);j 3.d},S:4(7){3.o[7.6]=7},q:4(a,7){8(!3.z)a=3.12();8(3.6=="15"){3.z=p;19(4(){3.q(a,7)},1d)}I{8(3.1b()){8(W.r<=1)7=b;3.N(7).S(7.w);3.1a(a,7)}I{8(W.r==0)a=3.d;3.17(a)}}},1a:4(a,7){3.N(7).q(a,7)},17:4(a){3.u(a);C(5 M U 3.o){5 7=3.o[M];B{7.u(a)}O(v){8(l(k)!="g")k.H(v);1h 3.o.M}}},N:4(7){5 n=7;B{1m(n.f!==n.K.f)n=n.K}O(v){8(l(k)!="g")k.H(v)}j n.w},u:4(a,s){8(l(s)=="g")s=p;C(5 c U a){5 9=a[c];8(!s&&!3.G(c)){8(l(k)!="g")k.H("1k "+c+":"+9.9+" 1u "+3.6);3.Q(c,a[c])}}},G:4(6){j 3.d[6]!=g},Q:4(6,9){5 t=9.F+\':\'+9.9;9.6=6;8(l(b)!="g")x(b).1y(t,9);3.d[6]=9},A:4(h){5 E={};5 D=h.1A(\' \');B{C(5 i=0;i<D.r;i++){5 11=D[i];5 y=11.1n(/X-L-Y([^=]+)=(.*)/);8(y){5 c=y[1];5 10=y[2].1o(/;$/,\'\');E[c]=1p.1r(1q(10));5 P=\'X-L-Y\'+c;3.Z(P)}}}O(1B){}j E},Z:4(h){5 V=1s 1z();f.h=h+\'=; 1v=\'+V.1x()+\';\'},1l:4(t,T){5 m=3;x(b).1t(t,4(e,9){5 F=9.F;5 c=9.6;8(!m.G(c)){T.1w(m,9);m.d[c]=9}})}};x(4($){w.q()});',62,100,'|||this|function|var|id|child|if|event|events|window|event_id|received||document|undefined|cookie||return|console|typeof|publisher|retval|children|false|broadcast|length|forced|signal|emit|ex|Frame_Event_Publisher|jQuery|parts|initialized|get_events|try|for|cookies|frame_events|context|has_received_event|log|else|is_parent|parent|Frame|index|find_parent|catch|cookie_name|trigger_event|self|register_child|callback|in|date|arguments||Events_|delete_cookie|event_data|current_cookie|initialize|true|ajax_handlers_setup|Unknown|setup_ajax_handlers|notify_children|ajax_handler|setTimeout|notify_parent|is_child|name|100|settings|xhr|null|delete|ajaxComplete|Events|Emitting|listen_for|while|match|replace|JSON|unescape|parse|new|bind|to|expires|call|toGMTString|trigger|Date|split|Exception'.split('|'),0,{})) +eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(4(g,f){\'2m 2n\';5 h=4(e){6("y"!==j e.p)1z 1B("I.Q 2l a `8` 1s a `p` y");5 b=4(a,d,c){7 1===16.t?b.14(a):b.R(a,d,c)};b.J=e.p;b.10="2k.";b.1r=W A("2i, 2j 2o 2p 23:1q:1q 2v");b.D={v:"/",w:!1};b.14=4(a){b.1F!==b.J.o&&b.1E();a=b.1o[b.10+a];7 a===f?f:1v(a)};b.R=4(a,d,c){c=b.1p(c);c.r=b.1l(d===f?-1:c.r);b.J.o=b.1C(a,d,c);7 b};b.1d=4(a,d){7 b.R(a,f,d)};b.1p=4(a){7{v:a&&a.v||b.D.v,x:a&&a.x||b.D.x,r:a&&a.r||b.D.r,w:a&&a.w!==f?a.w:b.D.w}};b.1m=4(a){7"[y A]"===2s.2h.2r.1Q(a)&&!2w(a.1j())};b.1l=4(a,d){d=d||W A;"2e"===j a?a=22===a?b.1r:W A(d.1j()+21*a):"26"===j a&&(a=W A(a));6(a&&!b.1m(a))1z 1B("`r` 27 2f 2d 2c 1I a 2a A 2q");7 a};b.1C=4(a,b,c){a=a.G(/[^#$&+\\^`|]/g,1D);a=a.G(/\\(/g,"%28").G(/\\)/g,"%29");b=(b+"").G(/[^!#$&-+\\--:<-\\[\\]-~]/g,1D);c=c||{};a=a+"="+b+(c.v?";v="+c.v:"");a+=c.x?";x="+c.x:"";a+=c.r?";r="+c.r.2K():"";7 a+=c.w?";w":""};b.1A=4(a){5 d={};a=a?a.1O("; "):[];M(5 c=0;c<a.t;c++){5 e=b.1u(a[c]);d[b.10+e.U]===f&&(d[b.10+e.U]=e.1w)}7 d};b.1u=4(a){5 b=a.2A("="),b=0>b?a.t:b,c=a.1x(0,b),e;Y{e=1v(c)}V(f){s&&"4"===j s.1t&&s.1t(\'2B 2C 2F o 1s U "\'+c+\'"\',f)}7{U:e,1w:a.1x(b+1)}};b.1E=4(){b.1o=b.1A(b.J.o);b.1F=b.J.o};b.1n=4(){5 a="1"===b.R("z.Q",1).14("z.Q");b.1d("z.Q");7 a};b.2J=b.1n();7 b},e="y"===j g.p?h(g):h;"4"===j 1i&&1i.2M?1i(4(){7 e}):"y"===j H?("y"===j 1g&&"y"===j 1g.H&&(H=1g.H=e),H.I=e):g.I=e})("q"===j 8?3:8);8.O={9:8.2z,1a:\'X-17-2g\',u:[],P:F,L:{},8:F,1y:F,1c:4(){7 1k.12.p===1k.p},1L:4(){7!3.1c()},1Z:4(){6(!3.1y){5 C=3;S(p).2t(4(e,2u,2O){1U(4(){C.1Y()},0)})}},1Y:4(){3.E(3.1e(p.o))},1X:4(){3.1Z();6(j 8.1G!==\'q\'){I.D.x=8.1G}3.8=8;6(j(3.8.9)!=\'q\'&&3.8.9.t!=2D&&3.8.9.t>0)3.9=3.8.9;15 3.9==\'20\';3.u=3.1e(p.o);3.P=1W;6(3.1c())3.T(3.u,1W);7 3.u},1M:4(k){3.L[k.9]=k},E:4(m,k){6(!3.P)m=3.1X();6(3.9=="20"){3.P=F;1U(4(){3.E(m,k)},2I)}15{6(3.1L()){6(16.t<=1)k=8;3.19(k).1M(k.O);3.1K(m,k)}15{6(16.t==0)m=3.u;3.1J(m)}}},1K:4(m,k){3.19(k).E(m,k)},1J:4(m){3.T(m);M(5 18 1H 3.L){5 k=3.L[18];Y{k.T(m)}V(K){6(j(s)!="q")s.1b(K);2N 3.L.18}}},19:4(k){5 B=k;Y{2H(B.p!==B.12.p)B=B.12}V(K){6(j(s)!="q")s.1b(K)}7 B.O},T:4(m,N){6(j(N)=="q")N=F;M(5 n 1H m){5 l=m[n];6(!N&&!3.1f(n)){6(j(s)!="q")s.1b("2G "+n+":"+l.l+" 1I "+3.9);3.1N(n,m[n])}}},1f:4(9){7 3.u[9]!=q},1N:4(9,l){5 Z=l.13+\':\'+l.l;l.9=9;6(j(8)!="q")S(8).2E(Z,l);3.u[9]=l},1e:4(o){5 1h={};5 z=2y(o).1O(\' \');M(5 i=0;i<z.t;i++){5 1V=z[i];5 11=1V.2L(/X-17-1S([^=]+)=(.*)/);6(11){5 n=11[1];5 1T=11[2].G(/;$/,\'\');Y{1h[n]=2x.2b(1T)}V(K){}5 1a=\'X-17-1S\'+n;3.1R(1a)}}7 1h},1R:4(o){I.1d(o)},25:4(Z,1P){5 C=3;S(8).24(Z,4(e,l){5 13=l.13;5 n=l.9;6(!C.1f(n)){1P.1Q(C,l);C.u[n]=l}})}};S(4($){O.E()});',62,175,'|||this|function|var|if|return|window|id||||||||||typeof|child|event|events|event_id|cookie|document|undefined|expires|console|length|received|path|secure|domain|object|cookies|Date|retval|publisher|defaults|broadcast|false|replace|exports|Cookies|_document|ex|children|for|forced|Frame_Event_Publisher|initialized|js|set|jQuery|emit|key|catch|new||try|signal|_cacheKeyPrefix|parts|parent|context|get|else|arguments|Frame|index|find_parent|cookie_name|log|is_parent|expire|get_events|has_received_event|module|frame_events|define|getTime|self|_getExpiresDate|_isValidDate|_areEnabled|_cache|_getExtendedOptions|59|_maxExpireDate|with|error|_getKeyValuePairFromCookieString|decodeURIComponent|value|substr|ajax_handlers_setup|throw|_getCacheFromString|Error|_generateCookieString|encodeURIComponent|_renewCache|_cachedDocumentCookie|frame_event_publisher_domain|in|to|notify_children|notify_parent|is_child|register_child|trigger_event|split|callback|call|delete_cookie|Events_|event_data|setTimeout|current_cookie|true|initialize|ajax_handler|setup_ajax_handlers|Unknown|1E3|Infinity||bind|listen_for|string|parameter|||valid|parse|converted|be|number|cannot|Events|prototype|Fri|31|cookey|requires|use|strict|Dec|9999|instance|toString|Object|ajaxComplete|xhr|UTC|isNaN|JSON|unescape|name|indexOf|Could|not|null|trigger|decode|Emitting|while|100|enabled|toUTCString|match|amd|delete|settings'.split('|'),0,{})) diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/module.fs.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/module.fs.php index 187a9abce..0025f9708 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/module.fs.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/module.fs.php @@ -13,9 +13,9 @@ class M_Fs extends C_Base_Module 'Filesystem', 'Provides a filesystem abstraction layer for Pope modules', '0.4', - 'http://www.photocrati.com', + 'https://www.imagely.com', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php index a8bebff23..e68cc7aa3 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php @@ -271,7 +271,7 @@ class Mixin_Fs_Instance_Methods extends Mixin } // Join the paths together $retval = implode(DIRECTORY_SEPARATOR, $retval); - if (strpos($retval, $this->get_document_root()) !== 0) { + if (strpos($retval, $this->get_document_root()) !== 0 && strtoupper(substr(PHP_OS, 0, 3)) != 'WIN') { $retval = DIRECTORY_SEPARATOR . trim($retval, '/\\'); } return $retval; diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/i18n/lang/nggallery-sv_SE.mo b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/i18n/lang/nggallery-sv_SE.mo new file mode 100644 index 0000000000000000000000000000000000000000..771688bb87e457de43920dccd16c23422b77e500 GIT binary patch literal 58381 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/i18n/lang/nggallery-sv_SE.po b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/i18n/lang/nggallery-sv_SE.po new file mode 100644 index 000000000..4422fd9f1 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/i18n/lang/nggallery-sv_SE.po @@ -0,0 +1,3238 @@ +# NextGEN Gallery base (English) .po source +# Copyright (C) 2015 Photocrati Media +# This file is distributed under the same license as the NextGEN Gallery package. +# +msgid "" +msgstr "" +"Project-Id-Version: NextGEN Gallery\n" +"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/nextgen-gallery\n" +"POT-Creation-Date: 2014-02-20 19:45-0800\n" +"PO-Revision-Date: 2015-07-28 21:02+0200\n" +"Last-Translator: Anders O Johansson\n" +"Language-Team: Anders O Johansson\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: sv_SE\n" +"X-Generator: Poedit 1.8.3\n" + +#: nggallery.php:289 +#, php-format +msgid "NextGEN Gallery %s is incompatible with this version of NextGEN Pro. Please update NextGEN Pro to version %s or higher to restore NextGEN Gallery functionality." +msgstr "NextGEN Gallery %s är oförenlig med den här versionen av NextGEN Pro. Uppdatera NextGEN Pro till version %s eller högre för att Ã¥terställa NextGEN Gallerys funktionalitet." + +#: nggallery.php:372 +#, php-format +msgid "Every %d seconds" +msgstr "Var %d:e sekund" + +#: products/photocrati_nextgen/modules/attach_to_post/adapter.attach_to_post_ajax.php:160 +#, php-format +msgid "Album: %s" +msgstr "Album: %s" + +#: products/photocrati_nextgen/modules/attach_to_post/adapter.attach_to_post_ajax.php:162 +#, php-format +msgid "Gallery: %s" +msgstr "Galleri: %s" + +#: products/photocrati_nextgen/modules/attach_to_post/adapter.attach_to_post_ajax.php:180 +msgid "Missing parameters" +msgstr "Saknade parametrar" + +#: products/photocrati_nextgen/modules/attach_to_post/adapter.attach_to_post_ajax.php:216 +msgid "Displayed gallery does not exist" +msgstr "Visat galleri existerar inte" + +#: products/photocrati_nextgen/modules/attach_to_post/adapter.attach_to_post_ajax.php:219 +msgid "Invalid request" +msgstr "Ogiltig begäran" + +#: products/photocrati_nextgen/modules/attach_to_post/class.attach_controller.php:263 +msgid "NextGEN Gallery - Attach To Post" +msgstr "NextGEN Gallery - Bifoga till inlägg" + +#: products/photocrati_nextgen/modules/attach_to_post/class.attach_controller.php:281 +msgid "Display Galleries" +msgstr "Visa gallerier" + +#: products/photocrati_nextgen/modules/attach_to_post/class.attach_controller.php:288 +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/adapter.nextgen_addgallery_controller.php:7 +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:188 +msgid "Add Gallery / Images" +msgstr "Lägg till Galleri / Bilder" + +#: products/photocrati_nextgen/modules/attach_to_post/class.attach_controller.php:295 +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:156 +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:190 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:167 +msgid "Manage Galleries" +msgid_plural "Manage Galleries" +msgstr[0] "Hantera Galleri" +msgstr[1] "Hantera Gallerier" + +#: products/photocrati_nextgen/modules/attach_to_post/class.attach_controller.php:302 +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:157 +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:192 +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:437 +msgid "Manage Albums" +msgid_plural "Manage Albums" +msgstr[0] "Hantera Album" +msgstr[1] "Hantera Album" + +#: products/photocrati_nextgen/modules/attach_to_post/class.attach_controller.php:309 +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:158 +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:194 +msgid "Manage Tags" +msgstr "Hantera Etiketter" + +#: products/photocrati_nextgen/modules/attach_to_post/mixin.attach_to_post_display_tab.php:119 +msgid "What would you like to display?" +msgstr "Vad vill du visa?" + +#: products/photocrati_nextgen/modules/attach_to_post/mixin.attach_to_post_display_tab.php:143 +msgid "Select a display type" +msgstr "Välj en visningstyp" + +#: products/photocrati_nextgen/modules/attach_to_post/mixin.attach_to_post_display_tab.php:166 +msgid "Customize the display settings" +msgstr "Anpassa inställningarna för visning" + +#: products/photocrati_nextgen/modules/attach_to_post/mixin.attach_to_post_display_tab.php:257 +msgid "No display type selected" +msgstr "Ingen vald visningstyp" + +#: products/photocrati_nextgen/modules/attach_to_post/mixin.attach_to_post_display_tab.php:275 +msgid "Sort or Exclude Images" +msgstr "Sortera eller uteslut bilder" + +#: products/photocrati_nextgen/modules/attach_to_post/module.attach_to_post.php:232 +msgid "Invalid Displayed Gallery" +msgstr "Ogiltigt visat galleri" + +#: products/photocrati_nextgen/modules/attach_to_post/module.attach_to_post.php:347 +msgid "Attach NextGEN Gallery to Post" +msgstr "Bifoga NextGEN Gallery till inlägg" + +#: products/photocrati_nextgen/modules/attach_to_post/templates/attach_to_post.php:12 +msgid "NextGEN" +msgstr "NextGEN" + +#: products/photocrati_nextgen/modules/attach_to_post/templates/display_tab.php:10 +#: products/photocrati_nextgen/modules/nextgen_admin/templates/nextgen_admin_page.php:25 +msgid "Save" +msgstr "Spara" + +#: products/photocrati_nextgen/modules/attach_to_post/templates/display_tab_js.php:615 +msgid "Sources" +msgstr "Källor" + +#: products/photocrati_nextgen/modules/attach_to_post/templates/display_tab_js.php:649 +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:366 +msgid "(optional)" +msgstr "(valfritt)" + +#: products/photocrati_nextgen/modules/attach_to_post/templates/display_tab_js.php:657 +msgid "Sets an SEO-friendly name to this gallery for URLs. Currently only in use by the Pro Lightbox." +msgstr "Ställer in ett SEO-vänligt namn pÃ¥ detta galleri för URL:er. Används för närvarande bara av Pro Lightbox." + +#: products/photocrati_nextgen/modules/attach_to_post/templates/display_tab_js.php:658 +msgid "Slug" +msgstr "Permalänk-smula" + +#: products/photocrati_nextgen/modules/attach_to_post/templates/display_tab_js.php:878 +msgid "No entities to display for this source." +msgstr "Inga objekt att visa för den här källan." + +#: products/photocrati_nextgen/modules/attach_to_post/templates/display_tab_js.php:1289 +msgid "Select a gallery" +msgstr "Välj ett galleri" + +#: products/photocrati_nextgen/modules/attach_to_post/templates/display_tab_js.php:1293 +#: products/photocrati_nextgen/modules/nextgen_gallery_display/class.displayed_gallery_source_manager.php:31 +msgid "Galleries" +msgstr "Gallerier" + +#: products/photocrati_nextgen/modules/attach_to_post/templates/display_tab_js.php:1317 +#: products/photocrati_nextgen/modules/nextgen_gallery_display/class.displayed_gallery_source_manager.php:39 +msgid "Albums" +msgstr "Album" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.custom_lightbox_form.php:31 +msgid "Code" +msgstr "Kod" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.custom_lightbox_form.php:45 +msgid "Stylesheet URL" +msgstr "URL till CSS-mall" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.custom_lightbox_form.php:59 +msgid "Javascript URL" +msgstr "URL till Javascript" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:29 +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:127 +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:252 +#: products/photocrati_nextgen/modules/ngglegacy/admin/publish.php:47 +msgid "None" +msgstr "Ingen" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:34 +msgid "jQuery Lightbox" +msgstr "jQuery Lightbox" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:81 +msgid "ltr" +msgstr "ltr" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:82 +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:147 +msgid "Loading..." +msgstr "Laddar..." + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:83 +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:140 +msgid "Previous" +msgstr "FöregÃ¥ende" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:84 +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:141 +#: products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/templates/nextgen_basic_imagebrowser.php:49 +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-caption.php:29 +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-exif.php:33 +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser.php:29 +msgid "Next" +msgstr "Nästa" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:85 +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:90 +msgid "Move" +msgstr "Flytta" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:86 +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:142 +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:169 +msgid "Close" +msgstr "Stäng" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:87 +msgid "Resize" +msgstr "Ändra storlek" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:88 +msgid "Play" +msgstr "Spela upp" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:89 +msgid "Pause" +msgstr "Pausa" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:91 +msgid "1:1" +msgstr "1:1" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:92 +msgid "Close (esc)" +msgstr "Stäng (esc)" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:93 +msgid "Pause slideshow (spacebar)" +msgstr "Pausa bildspel (mellanslag)" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:94 +msgid "Click to cancel" +msgstr "Klicka för att avbryta" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:95 +msgid "Click to bring to front" +msgstr "Klicka för att ta fram" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:96 +msgid "Expand to actual size (f)" +msgstr "Expandera till faktisk storlek (f)" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:97 +msgid "Powered by Highslide JS" +msgstr "Drivs av Highslide JS" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:98 +msgid "Play slideshow (spacebar)" +msgstr "Spela upp bildspel (mellanslag)" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:99 +msgid "Previous (arrow left)" +msgstr "FöregÃ¥ende (vänsterpil)" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:100 +msgid "Next (arrow right)" +msgstr "Nästa (högerpil)" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:101 +msgid "Image %1 of %2" +msgstr "Bild %1 av %2" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:102 +msgid "Go to the Highslide JS homepage" +msgstr "GÃ¥ till Highslide JS:s hemsida" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:103 +msgid "Click to close image, click and drag to move. Use arrow keys for next and previous." +msgstr "Klicka för att stänga bilden, klicka och dra för att flytta. Använd piltangenterna för nästa och föregÃ¥ende." + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:55 +msgid "Fancybox" +msgstr "FancyBox" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:69 +msgid "Highslide" +msgstr "Highslide" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:110 +msgid "Shutter" +msgstr "Shutter" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:121 +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:299 +msgid "L O A D I N G" +msgstr "L A D D A R" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:122 +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:300 +msgid "Click to Close" +msgstr "Klicka för att stänga" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:129 +msgid "Shutter Reloaded" +msgstr "Shutter Reloaded" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:143 +msgid "Full Size" +msgstr "Full storlek" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:144 +msgid "Fit to Screen" +msgstr "Anpassa till skärm" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:145 +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:167 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:460 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:308 +msgid "Image" +msgstr "Bild" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:146 +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:168 +#: products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/templates/nextgen_basic_imagebrowser.php:55 +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-caption.php:31 +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-exif.php:35 +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser.php:31 +msgid "of" +msgstr "av" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:165 +msgid "Next >" +msgstr "Nästa >" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:166 +msgid "< Prev" +msgstr "< FöregÃ¥ende" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:170 +msgid "This feature requires inline frames. You have iframes disabled or your browser does not support them." +msgstr "Den här funktionen kräver iframe. Du har avaktiverat iframe eller sÃ¥ stöds de inte av din webbläsare." + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:110 +msgid "Thickbox" +msgstr "Thickbox" + +#: products/photocrati_nextgen/modules/lightbox/class.lightbox_library_manager.php:180 +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:22 +#: products/photocrati_nextgen/modules/ngglegacy/admin/thumbnails-template.php:76 +msgid "Custom" +msgstr "Anpassad" + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/adapter.import_folder_form.php:7 +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/import_folder.php:6 +msgid "Import Folder" +msgstr "Importera mapp" + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/adapter.nextgen_addgallery_ajax.php:43 +msgid "No gallery name specified" +msgstr "Gallerinamn saknas" + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/adapter.nextgen_addgallery_ajax.php:57 +msgid "Failed to extract images from ZIP" +msgstr "Det gick inte att extrahera bilder frÃ¥n ZIP" + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/adapter.nextgen_addgallery_ajax.php:63 +msgid "Image generation failed" +msgstr "Bildgenerering misslyckades" + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/adapter.nextgen_addgallery_ajax.php:73 +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/adapter.nextgen_addgallery_ajax.php:159 +msgid "An unexpected error occured." +msgstr "Ett oväntat fel uppstod." + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/adapter.nextgen_addgallery_ajax.php:80 +msgid "No permissions to upload images. Try refreshing the page or ensuring that your user account has sufficient roles/privileges." +msgstr "Behörighet saknas för att ladda upp bilder. Försök att uppdatera sidan eller se till att ditt användarkonto har tillräckliga roller/behörigheter." + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/adapter.nextgen_addgallery_ajax.php:123 +msgid "Directory does not exist." +msgstr "Katalogen finns inte." + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/adapter.nextgen_addgallery_ajax.php:127 +msgid "No directory specified." +msgstr "Ingen katalog vald." + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/adapter.nextgen_addgallery_ajax.php:131 +msgid "No permissions to browse folders. Try refreshing the page or ensuring that your user account has sufficient roles/privileges." +msgstr "Behörighet saknas för att bläddra i mappar. Försök att uppdatera sidan eller se till att ditt användarkonto har tillräckliga roller/behörigheter." + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/adapter.nextgen_addgallery_ajax.php:163 +msgid "No folder specified" +msgstr "Ingen mapp vald" + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/adapter.nextgen_addgallery_ajax.php:166 +msgid "No permissions to import folders. Try refreshing the page or ensuring that your user account has sufficient roles/privileges." +msgstr "Behörighet saknas för att importera mappar. Försök att uppdatera sidan eller se till att ditt användarkonto har tillräckliga roller/behörigheter." + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/adapter.upload_images_form.php:7 +msgid "Upload Images" +msgstr "Ladda upp bilder" + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/import_folder.php:1 +msgid "Select a folder to import. The folder name will be used as the title of the gallery." +msgstr "Välj en mapp du vill importera. Mappnamnet kommer att användas som titel pÃ¥ galleriet." + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/import_folder.php:5 +msgid "Keep images in original location." +msgstr "Förvara bilderna pÃ¥ sina ursprungliga platser." + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/import_folder.php:5 +msgid "Caution: If you keep images in the original folder and later delete the gallery, the images in that folder might be deleted depending on your settings." +msgstr "Varning: Om du förvarar bilderna i originalmappen och senare tar bort galleriet, kan bilderna i den mappen raderas (väljs i inställningarna)." + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/import_folder.php:39 +msgid "Importing gallery" +msgstr "Importerar galleri" + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/import_folder.php:41 +msgid "In Progress..." +msgstr "PÃ¥gÃ¥r..." + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/import_folder.php:56 +#, php-format +msgid "Done! Successfully imported %s images" +msgstr "Klart! Importerade %s bilder" + +#: products/photocrati_nextgen/modules/attach_to_post/templates/attach_to_post.php:12 +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/upload_images.php:2 +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:154 +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:167 +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:185 +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:375 +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:432 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:456 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:285 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:314 +#: products/photocrati_nextgen/modules/ngglegacy/lib/rewrite.php:217 +#: products/photocrati_nextgen/modules/ngglegacy/lib/rewrite.php:226 +#, php-format +msgid "Gallery" +msgid_plural "Galleries" +msgstr[0] "Galleri" +msgstr[1] "Gallerier" + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/upload_images.php:4 +msgid "Create a new gallery" +msgstr "Skapa ett nytt galleri" + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/upload_images.php:13 +msgid "Your browser doesn't have Flash, Silverlight, HTML5, or HTML4 support." +msgstr "Din webbläsare saknar stöd för Flash, Silverlight, HTML5, eller HTML4." + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/upload_images.php:114 +msgid "Drag image and ZIP files here or click <strong>Add Files</strong>" +msgstr "Släpp bild- och zip-filer här eller klicka pÃ¥ <strong>Lägg till filer</strong>" + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/upload_images.php:164 +#, php-format +msgid "%s images were uploaded successfully" +msgstr "%s bilder laddades upp" + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/upload_images.php:167 +msgid "1 image was uploaded successfully" +msgstr "1 bild laddades upp" + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/upload_images.php:170 +msgid "0 images were uploaded" +msgstr "0 bilder laddades upp" + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/upload_images.php:184 +msgid "Upload complete" +msgstr "Uppladdning klar" + +#: products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/upload_images.php:206 +msgid "An unexpected error occured. This is most likely due to a server misconfiguration. Check your PHP error log or ask your hosting provider for assistance." +msgstr "Ett oväntat fel uppstod. Detta är troligast pÃ¥ grund av en felaktig konfiguration av servern. Kontrollera din PHP-fellogg eller be ditt webbhotell om hjälp." + +#: products/photocrati_nextgen/modules/nextgen_admin/class.admin_notification_manager.php:121 +msgid "Not a valid notice name" +msgstr "Inte ett giltigt meddelandenamn" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:226 +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_thumbnail_form.php:131 +msgid "Enable AJAX pagination" +msgstr "Aktivera AJAX-sidbrytning" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:238 +msgid "Override thumbnail settings" +msgstr "Anpassade miniatyrer" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:240 +msgid "This does not affect existing thumbnails; overriding the thumbnail settings will create an additional set of thumbnails. To change the size of existing thumbnails please visit 'Manage Galleries' and choose 'Create new thumbnails' for all images in the gallery." +msgstr "Detta pÃ¥verkar inte befintliga miniatyrer. Anpassade miniatyrer kommer att skapas i en egen uppsättning. Om du vill ändra storlek pÃ¥ befintliga miniatyrer, gÃ¥ till \"Hantera Gallerier\" och välj \"Skapa nya miniatyrer\" för alla bilder i galleriet." + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:248 +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:38 +msgid "Thumbnail dimensions" +msgstr "Dimensioner för miniatyr" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:274 +msgid "Thumbnail crop" +msgstr "Miniatyr-beskärning" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:310 +msgid "Override image settings" +msgstr "Anpassade bilder" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:312 +msgid "Overriding the image settings will create an additional set of images" +msgstr "Anpassade bilder kommer att skapas i en egen uppsättning" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:320 +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:83 +msgid "Image quality" +msgstr "Bildkvalitet" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:330 +msgid "Image crop" +msgstr "Bildbeskärning" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:339 +msgid "Image watermark" +msgstr "Bild-vattenstämpel" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:363 +msgid "Gallery width" +msgstr "Galleri-bredd" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:365 +msgid "An empty or 0 setting will make the gallery full width" +msgstr "Lämna tomt eller ge värdet 0 för att ge galleriet fullbredd" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:369 +msgid "Pixels" +msgstr "Pixlar" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:369 +msgid "Percent" +msgstr "Procent" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:378 +msgid "First Image" +msgstr "Första bilden" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.form.php:379 +msgid "Average" +msgstr "Average" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.nextgen_admin_page_controller.php:79 +msgid "Clear" +msgstr "Rensa" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.nextgen_admin_page_controller.php:80 +msgid "Default" +msgstr "Förvalt" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.nextgen_admin_page_controller.php:81 +msgid "Select Color" +msgstr "Välj färg" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.nextgen_admin_page_controller.php:82 +msgid "Current Color" +msgstr "Nuvarande färg" + +#: products/photocrati_nextgen/modules/nextgen_admin/class.nextgen_admin_page_controller.php:144 +msgid "Saved successfully" +msgstr "Sparades" + +#: products/photocrati_nextgen/modules/nextgen_admin/templates/field_generator/nextgen_settings_field_radio.php:16 +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/templates/nextgen_basic_singlepic_settings_radio.php:16 +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:122 +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.miscellaneous_form.php:24 +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.miscellaneous_form.php:29 +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/image_options_tab.php:40 +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/image_options_tab.php:65 +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/image_options_tab.php:191 +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/styling_tab.php:10 +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/thumbnail_options_tab.php:37 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:411 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:458 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:461 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:464 +msgid "Yes" +msgstr "Ja" + +#: products/photocrati_nextgen/modules/nextgen_admin/templates/field_generator/nextgen_settings_field_radio.php:24 +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/templates/nextgen_basic_singlepic_settings_radio.php:24 +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:123 +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.miscellaneous_form.php:23 +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.miscellaneous_form.php:28 +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/image_options_tab.php:47 +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/image_options_tab.php:72 +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/image_options_tab.php:198 +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/styling_tab.php:13 +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/thumbnail_options_tab.php:44 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:413 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:459 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:462 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:465 +msgid "No" +msgstr "Nej" + +#: products/photocrati_nextgen/modules/nextgen_basic_album/module.nextgen_basic_album.php:168 +msgid "NextGEN Basic Compact Album" +msgstr "NextGEN Basic - Kompakt Album" + +#: products/photocrati_nextgen/modules/nextgen_basic_album/module.nextgen_basic_album.php:177 +msgid "NextGEN Basic Extended Album" +msgstr "NextGEN Basic - Expanderat Album" + +#: products/photocrati_nextgen/modules/nextgen_basic_album/mixin.nextgen_basic_album_form.php:25 +msgid "Display galleries as" +msgstr "Visa gallerier som" + +#: products/photocrati_nextgen/modules/nextgen_basic_album/mixin.nextgen_basic_album_form.php:26 +msgid "How would you like galleries to be displayed?" +msgstr "Vilken visningstyp vill du använda för gallerier?" + +#: products/photocrati_nextgen/modules/nextgen_basic_album/mixin.nextgen_basic_album_form.php:28 +msgid "Galleries per page" +msgstr "Gallerier per sida" + +#: products/photocrati_nextgen/modules/nextgen_basic_album/mixin.nextgen_basic_album_form.php:47 +msgid "Items per page" +msgstr "Objekt per sida" + +#: products/photocrati_nextgen/modules/nextgen_basic_album/mixin.nextgen_basic_album_form.php:48 +msgid "Maximum number of galleries or sub-albums to appear on a single page" +msgstr "Maximalt antal gallerier eller album som ska visas pÃ¥ samma sida. Ange 0 för att visa alla." + +#: products/photocrati_nextgen/modules/nextgen_basic_album/templates/compact.php:29 +#: products/photocrati_nextgen/modules/nextgen_basic_album/templates/extended.php:15 +#: products/photocrati_nextgen/modules/ngglegacy/view/album-compact.php:45 +#: products/photocrati_nextgen/modules/ngglegacy/view/album-extend.php:31 +msgid "Photos" +msgstr "Foton" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_slideshow_form.php:47 +msgid "Interval" +msgstr "Intervall" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_slideshow_form.php:51 +msgid "# of seconds" +msgstr "antal sekunder" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_slideshow_form.php:82 +msgid "Maximum dimensions" +msgstr "Maximala dimensioner" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_slideshow_form.php:83 +msgid "Certain themes may allow images to flow over their container if this setting is too large" +msgstr "Vissa teman kan tillÃ¥ta bilder att flöda utanför sin behÃ¥llare om denna inställning är för stor" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_slideshow_form.php:100 +msgid "Show thumbnail link" +msgstr "Visa miniatyrsideslänk" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_slideshow_form.php:116 +msgid "Thumbnail link text" +msgstr "Miniatyrsideslänkens text" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_thumbnail_form.php:63 +msgid "Images per page" +msgstr "Bilder per sida" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_thumbnail_form.php:65 +msgid "0 will display all images at once" +msgstr "Ange 0 för visa alla bilder pÃ¥ en sida" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_thumbnail_form.php:83 +msgid "Number of columns to display" +msgstr "Antal kolumner för visning" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_thumbnail_form.php:87 +msgid "# of columns" +msgstr "antal kolumner" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_thumbnail_form.php:103 +msgid "Add Hidden Images" +msgstr "Lägg till dolda bilder" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_thumbnail_form.php:105 +msgid "If pagination is used this option will show all images in the modal window (Thickbox, Lightbox etc.) This increases page load." +msgstr "Om sidbrytning används, kommer detta alternativ att visa alla bilder som finns i det modala fönstret (Thickbox, Lightbox etc.) Detta ökar sidans tyngd." + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_thumbnail_form.php:114 +msgid "Use imagebrowser effect" +msgstr "Koppla till bildbläddring" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_thumbnail_form.php:116 +msgid "When active each image in the gallery will link to an imagebrowser display and lightbox effects will not be applied." +msgstr "Varje bild i galleriet länkas till bildbläddring utan Lightbox-effekter." + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_thumbnail_form.php:133 +msgid "Browse images without reloading the page." +msgstr "Bläddra bland bilder utan att ladda om sidan." + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_thumbnail_form.php:148 +msgid "Show slideshow link" +msgstr "Visa bildspelslänk" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/adapter.nextgen_basic_thumbnail_form.php:164 +msgid "Slideshow link text" +msgstr "Bildspelslänkens text" + +# Missed by NextGEN, translated string is not displayed in dropdown list for tag cloud. +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/module.nextgen_basic_gallery.php:325 +msgid "NextGEN Basic Thumbnails" +msgstr "NextGEN Basic - Miniatyrer" + +# Missed by NextGEN, translated string is not displayed in dropdown list for tag cloud. +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/module.nextgen_basic_gallery.php:335 +msgid "NextGEN Basic Slideshow" +msgstr "NextGEN Basic - Bildspel" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/module.nextgen_basic_gallery.php:366 +#, php-format +msgid "Flash slideshow support has been removed from NextGEN Gallery. Please see <a href='%s'>this blog post</a> for more information." +msgstr "Stöd för Flash-bildspel har tagits bort frÃ¥n NextGEN Gallery. Se <a href='%s'>detta blogginlägg</a> för mer information." + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/slideshow/nextgen_basic_slideshow_settings_gallery_dimensions.php:15 +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:39 +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/templates/nextgen_basic_singlepic_settings_dimensions.php:13 +#: products/photocrati_nextgen/modules/widget/templates/form_slideshow.php:65 +msgid "Width" +msgstr "Bredd" + +#: products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/slideshow/nextgen_basic_slideshow_settings_gallery_dimensions.php:23 +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:41 +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/templates/nextgen_basic_singlepic_settings_dimensions.php:20 +#: products/photocrati_nextgen/modules/widget/templates/form_slideshow.php:53 +msgid "Height" +msgstr "Höjd" + +# Missed by NextGEN, translated string is not displayed in dropdown list for tag cloud. +#: products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/module.nextgen_basic_imagebrowser.php:174 +msgid "NextGEN Basic ImageBrowser" +msgstr "NextGEN Basic - Bildbläddring" + +#: products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/templates/nextgen_basic_imagebrowser.php:41 +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-caption.php:26 +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-exif.php:30 +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser.php:26 +msgid "Back" +msgstr "Tillbaka" + +#: products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/templates/nextgen_basic_imagebrowser.php:55 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:89 +#: products/photocrati_nextgen/modules/ngglegacy/lib/rewrite.php:220 +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-caption.php:31 +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-exif.php:35 +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser.php:31 +msgid "Picture" +msgstr "Bild" + +# Missed by NextGEN, translated string is not displayed. +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:54 +msgid "Link" +msgstr "Länk" + +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:66 +msgid "Link target" +msgstr "LänkmÃ¥l" + +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:68 +msgid "Self" +msgstr "Samma ram" + +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:69 +msgid "Blank" +msgstr "Nytt fönster" + +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:70 +msgid "Parent" +msgstr "Omgivande ram" + +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:71 +msgid "Top" +msgstr "Samma fönster" + +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:95 +msgid "Display watermark" +msgstr "Visa vattenstämpel" + +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:105 +msgid "Display reflection" +msgstr "Visa reflektion" + +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:115 +msgid "Crop thumbnail" +msgstr "Beskär miniatyr" + +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:125 +msgid "Float" +msgstr "Flytande" + +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:128 +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:254 +#: products/photocrati_nextgen/modules/ngglegacy/admin/publish.php:49 +msgid "Left" +msgstr "Vänster" + +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/adapter.nextgen_basic_singlepic_form.php:129 +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:258 +#: products/photocrati_nextgen/modules/ngglegacy/admin/publish.php:53 +msgid "Right" +msgstr "Höger" + +#: products/photocrati_nextgen/modules/nextgen_basic_singlepic/module.nextgen_basic_singlepic.php:140 +msgid "NextGEN Basic SinglePic" +msgstr "NextGEN Basic - Enkelbild" + +#: products/photocrati_nextgen/modules/nextgen_basic_tagcloud/adapter.nextgen_basic_tagcloud_form.php:24 +msgid "Maximum number of tags" +msgstr "Maximalt antal etiketter" + +#: products/photocrati_nextgen/modules/nextgen_basic_tagcloud/adapter.nextgen_basic_tagcloud_form.php:46 +msgid "Display type" +msgstr "Visningstyp" + +#: products/photocrati_nextgen/modules/nextgen_basic_tagcloud/adapter.nextgen_basic_tagcloud_form.php:49 +msgid "The display type that the tagcloud will point its results to" +msgstr "Den visningstyp som etikettmolnet länkar resultaten till" + +#: products/photocrati_nextgen/modules/nextgen_basic_tagcloud/class.taxonomy_controller.php:114 +msgid "Images tagged "%s"" +msgstr "Bilder etiketterade \"%s\"" + +#: products/photocrati_nextgen/modules/nextgen_basic_tagcloud/module.nextgen_basic_tagcloud.php:163 +msgid "NextGEN Basic TagCloud" +msgstr "NextGEN Basic - Etikettmoln" + +#: products/photocrati_nextgen/modules/nextgen_basic_templates/adapter.nextgen_basic_template_form.php:46 +msgid "Template" +msgstr "Mall" + +#: products/photocrati_nextgen/modules/nextgen_basic_templates/adapter.nextgen_basic_template_form.php:47 +msgid "Use a legacy template when rendering (not recommended)." +msgstr "Använd en mall vid rendering (historiskt, rekommenderas inte)." + +# Missed by NextGEN, translated string is displayed. +#: products/photocrati_nextgen/modules/nextgen_basic_templates/adapter.nextgen_basic_template_form.php:210 +msgid "No template selected" +msgstr "Ingen mall vald" + +#: products/photocrati_nextgen/modules/nextgen_data/class.gallerystorage_driver_base.php:648 +#: products/photocrati_nextgen/modules/nextgen_data/class.ngglegacy_gallerystorage_driver.php:706 +#: products/photocrati_nextgen/modules/ngglegacy/lib/multisite.php:23 +msgid "Sorry, you have used your space allocation. Please delete some files to upload more files." +msgstr "Tyvärr har du använt ditt tilldelade utrymme. Ta bort nÃ¥gra filer för att ladda upp flera filer." + +#: products/photocrati_nextgen/modules/nextgen_data/class.gallerystorage_driver_base.php:1092 +msgid "Could not calculate resized image dimensions" +msgstr "Kunde inte beräkna den ändrade bildens dimensioner" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:154 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:135 +msgid " mm" +msgstr "mm" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:163 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:141 +msgid " sec" +msgstr "sek" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:168 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:145 +msgid "Fired" +msgstr "Fired" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:168 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:145 +msgid "Not fired" +msgstr "Not fired" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:539 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:452 +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-exif.php:46 +msgid "Aperture" +msgstr "Bländare" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:540 +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:565 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:453 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:478 +msgid "Credit" +msgstr "Erkännande" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:541 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:454 +msgid "Camera" +msgstr "Kamera" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:542 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:455 +msgid "Caption" +msgstr "Bildtext" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:543 +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:26 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-sort.php:109 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:456 +msgid "Date/Time" +msgstr "Datum/tid" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:544 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:457 +msgid "Copyright" +msgstr "Copyright" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:545 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:458 +msgid "Focal length" +msgstr "Brännvidd" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:546 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:459 +msgid "ISO" +msgstr "ISO" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:547 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:460 +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-exif.php:54 +msgid "Shutter speed" +msgstr "Slutartid" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:548 +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:707 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:461 +#: products/photocrati_nextgen/modules/widget/templates/form_gallery.php:4 +#: products/photocrati_nextgen/modules/widget/templates/form_mediarss.php:3 +#: products/photocrati_nextgen/modules/widget/templates/form_slideshow.php:3 +msgid "Title" +msgstr "Titel" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:549 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:458 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:409 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:462 +msgid "Author" +msgstr "Upphovsman" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:550 +#: products/photocrati_nextgen/modules/nextgen_gallery_display/class.displayed_gallery_source_manager.php:47 +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:51 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:175 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:463 +msgid "Tags" +msgstr "Etiketter" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:551 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:464 +msgid "Subject" +msgstr "Ämne" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:552 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:465 +msgid "Make" +msgstr "Fabrikat" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:553 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:466 +msgid "Edit Status" +msgstr "Ändra status" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:554 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:467 +msgid "Category" +msgstr "Kategori" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:555 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:468 +msgid "Keywords" +msgstr "Nyckelord" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:556 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:469 +msgid "Date Created" +msgstr "Datum skapad" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:557 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:470 +msgid "Time Created" +msgstr "Tid skapad" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:558 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:471 +msgid "Author Position" +msgstr "Upphovsmans befattning" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:559 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:472 +msgid "City" +msgstr "Ort" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:560 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:473 +msgid "Location" +msgstr "Plats" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:561 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:474 +msgid "Province/State" +msgstr "Region/Stat" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:562 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:475 +msgid "Country code" +msgstr "Landskod" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:563 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:476 +msgid "Country" +msgstr "Land" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:564 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:477 +msgid "Headline" +msgstr "Rubrik" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:566 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:479 +msgid "Source" +msgstr "Källa" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:567 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:480 +msgid "Copyright Notice" +msgstr "Copyrightmeddelande" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:568 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:481 +msgid "Contact" +msgstr "Kontakt" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:569 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:482 +msgid "Last modified" +msgstr "Senast ändrad" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:570 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:483 +msgid "Program tool" +msgstr "Program tool" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:571 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:484 +msgid "Format" +msgstr "Format" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:572 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:485 +msgid "Image Width" +msgstr "Bildbredd" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:573 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:486 +msgid "Image Height" +msgstr "Bildhöjd" + +#: products/photocrati_nextgen/modules/nextgen_data/class.nextgen_metadata.php:574 +#: products/photocrati_nextgen/modules/ngglegacy/lib/meta.php:487 +msgid "Flash" +msgstr "Fotoblixt" + +#: products/photocrati_nextgen/modules/nextgen_data/class.ngglegacy_gallerystorage_driver.php:261 +msgid "Invalid image file. Acceptable formats: JPG, GIF, and PNG." +msgstr "Ogiltig bildfil. Giltiga format: JPG, GIF och PNG." + +#: products/photocrati_nextgen/modules/nextgen_data/class.ngglegacy_gallerystorage_driver.php:693 +#, php-format +msgid "Unable to create directory %s." +msgstr "Kunde inte skapa katalog%s." + +#: products/photocrati_nextgen/modules/nextgen_data/class.ngglegacy_gallerystorage_driver.php:698 +#, php-format +msgid "Unable to write to directory %s. Is this directory writable by the server?" +msgstr "Kunde inte skapa katalogen %s. Har servern skrivrättigheter pÃ¥ katalogen?" + +#: products/photocrati_nextgen/modules/nextgen_data/class.ngglegacy_gallerystorage_driver.php:732 +#, php-format +msgid "Failed to copy database row for picture %s" +msgstr "Det gick inte att kopiera databasrad för bilden %s" + +#: products/photocrati_nextgen/modules/nextgen_data/class.ngglegacy_gallerystorage_driver.php:746 +#, php-format +msgid "Failed to get image path for %s" +msgstr "Kunde inte hitta sökväg till bild %s" + +#: products/photocrati_nextgen/modules/nextgen_data/class.ngglegacy_gallerystorage_driver.php:779 +#, php-format +msgid "Failed to copy image %1$s to %2$s" +msgstr "Det gick inte att kopiera bilden %1$s till %2$s" + +#: products/photocrati_nextgen/modules/nextgen_data/class.ngglegacy_gallerystorage_driver.php:803 +#, php-format +msgid "Copied %1$s picture(s) to gallery %2$s ." +msgstr "Kopierade %1$s bild(er) till galleri %2$s." + +#: products/photocrati_nextgen/modules/nextgen_data/class.ngglegacy_gallerystorage_driver.php:830 +msgid "Could not find image" +msgstr "Kunde inte hitta bild" + +#: products/photocrati_nextgen/modules/nextgen_data/class.ngglegacy_gallerystorage_driver.php:835 +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:385 +msgid " is not writeable" +msgstr "är inte skrivbar" + +#: products/photocrati_nextgen/modules/nextgen_data/class.ngglegacy_gallerystorage_driver.php:840 +msgid "Backup file does not exist" +msgstr "Ã…terställningsfil saknas" + +#: products/photocrati_nextgen/modules/nextgen_data/class.ngglegacy_gallerystorage_driver.php:845 +msgid "Could not restore original image" +msgstr "Kunde inte Ã¥terställa ursprungliga bilden" + +#: products/photocrati_nextgen/modules/nextgen_gallery_display/adapter.display_settings_controller.php:17 +#: products/photocrati_nextgen/modules/nextgen_gallery_display/module.nextgen_gallery_display.php:310 +#: products/photocrati_nextgen/modules/nextgen_gallery_display/module.nextgen_gallery_display.php:366 +msgid "Gallery Settings" +msgstr "Galleri-inställningar" + +#: products/photocrati_nextgen/modules/nextgen_gallery_display/class.displayed_gallery.php:74 +msgid "Source not compatible with selected display type" +msgstr "Källan är inte förenlig med vald visningstyp" + +#: products/photocrati_nextgen/modules/nextgen_gallery_display/class.displayed_gallery_renderer.php:206 +#: products/photocrati_nextgen/modules/nextgen_gallery_display/class.displayed_gallery_renderer.php:208 +#: products/photocrati_nextgen/modules/nextgen_gallery_display/class.displayed_gallery_renderer.php:212 +msgid "We cannot display this gallery" +msgstr "Vi kan inte visa detta galleri" + +#: products/photocrati_nextgen/modules/nextgen_gallery_display/class.displayed_gallery_source_manager.php:55 +msgid "Random Images" +msgstr "Slumpblandade bilder" + +#: products/photocrati_nextgen/modules/nextgen_gallery_display/class.displayed_gallery_source_manager.php:64 +msgid "Recent Images" +msgstr "Senaste bilder" + +#: products/photocrati_nextgen/modules/nextgen_gallery_display/module.nextgen_gallery_display.php:365 +msgid "NextGEN Gallery & Album Settings" +msgstr "NextGEN Gallery & Album inställningar" + +#: products/photocrati_nextgen/modules/nextgen_gallery_display/templates/alt_view_link_text.php:15 +#: products/photocrati_nextgen/modules/nextgen_gallery_display/templates/return_link_text.php:15 +msgid "link text" +msgstr "länktext" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:12 +msgid "Image Options" +msgstr "Bildalternativ" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:23 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-sort.php:106 +msgid "Image ID" +msgstr "Bild-id" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:24 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:574 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-sort.php:107 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:165 +msgid "Filename" +msgstr "Filnamn" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:25 +msgid "Alt/Title Text" +msgstr "Alt/Title" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:38 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-sort.php:110 +msgid "Ascending" +msgstr "Stigande" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:39 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-sort.php:111 +msgid "Descending" +msgstr "Fallande" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:50 +msgid "Categories" +msgstr "Kategorier" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:81 +msgid "Gallery path does not exist and could not be created" +msgstr "Galleriets sökväg saknas och kunde inte skapas" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:86 +msgid "Where would you like galleries stored?" +msgstr "Var ska gallerier sparas?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:87 +msgid "Where galleries and their images are stored" +msgstr "Sökväg för att spara gallerier" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:89 +msgid "Delete Image Files?" +msgstr "Radera bilder frÃ¥n borttagna gallerier?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:90 +msgid "When enabled, image files will be removed after a Gallery has been deleted" +msgstr "När ett galleri tas bort, kommer även dess bildfiler tas bort" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:92 +msgid "Show Related Images on Posts?" +msgstr "Visa relaterade bilder i inlägg?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:93 +msgid "When enabled, related images will be appended to each post by matching the posts tags/categories to image tags" +msgstr "Bilder kommer bifogas varje inlägg med etiketter eller kategorier som matchar bildens etiketter" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:95 +msgid "(Show Customization Settings)" +msgstr "(Visa anpassade inställningar)" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:96 +msgid "(Hide Customization Settings)" +msgstr "(Dölj anpassade inställningar)" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:97 +msgid "How should related images be match?" +msgstr "Hur ska relaterade bilder matchas?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:100 +msgid "Maximum # of related images to display" +msgstr "Maximalt antal relaterade bilder att visa" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:102 +msgid "Heading for related images" +msgstr "Rubrik för relaterade bilder" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:104 +msgid "What's the default sorting method?" +msgstr "Vilken sortering ska vara förvald?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:107 +msgid "Sort in what direction?" +msgstr "Sorteringsordning?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:110 +msgid "Automatically resize images after upload" +msgstr "Ändra storlek pÃ¥ uppladdade bilder automatiskt" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:111 +msgid "It is recommended that your images be resized to be web friendly" +msgstr "Det är rekommenderat att bilder ändras till webblämplig storlek" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:113 +msgid "What should images be resized to?" +msgstr "Vad ska bildstorleken ändras till?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:114 +msgid "After images are uploaded, they will be resized to the above dimensions and quality" +msgstr "När bilder laddas upp, kommer de ändras till ovanstÃ¥ende dimensioner och kvalitet" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:115 +msgid "Width:" +msgstr "Bredd:" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:116 +msgid "Height:" +msgstr "Höjd:" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:117 +msgid "Quality:" +msgstr "Kvalitet:" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.image_options_form.php:121 +msgid "Backup the original images?" +msgstr "Säkerhetskopiera originalbilderna?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.lightbox_manager_form.php:12 +msgid "Lightbox Effects" +msgstr "Lightbox-effekter" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.lightbox_manager_form.php:32 +msgid "What effect would you like to use?" +msgstr "Vilken effekt vill du använda?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.miscellaneous_form.php:12 +msgid "Miscellaneous" +msgstr "Övrigt" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.miscellaneous_form.php:21 +msgid "Add MediaRSS link?" +msgstr "MediaRSS-länk?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.miscellaneous_form.php:22 +msgid "When enabled, adds a MediaRSS link to your header. Third-party web services can use this to publish your galleries" +msgstr "Vid aktivering, läggs en MediaRSS-länk i din header. Tredjepart-webbtjänster kan använda detta för att publicera dina gallerier" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.miscellaneous_form.php:26 +msgid "Display galleries in feeds" +msgstr "Visa gallerier i flöden" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.miscellaneous_form.php:27 +msgid "NextGEN hides its gallery displays in feeds other than MediaRSS. This enables image galleries in feeds." +msgstr "NextGEN döljer sin gallerivisning i alla flöden utom MediaRSS. Detta aktiverar bildgallerier i flöden." + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.miscellaneous_form.php:30 +msgid "Clear image cache" +msgstr "Rensa bild-cache" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.miscellaneous_form.php:31 +msgid "" +"Completely clear the NextGEN cache of all image modifications?\n" +"\n" +"Choose [Cancel] to Stop, [OK] to proceed." +msgstr "" +"Rensa alla bildändringar i NextGEN-cachen?\n" +"\n" +"Välj [Avbryt] för att avbryta, [OK] för att fortsätta." + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.miscellaneous_form.php:36 +msgid "Permalink slug" +msgstr "Permalänk-smula" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.miscellaneous_form.php:43 +msgid "Maximum image count" +msgstr "Maximalt bildantal" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.miscellaneous_form.php:45 +msgid "This is the maximum limit of images that NextGEN will restrict itself to querying" +msgstr "Detta är den maximala antalet bilder som NextGEN kommer att söka efter" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.miscellaneous_form.php:47 +msgid "Note: This limit will not apply to slideshow widgets or random galleries if/when those galleries specify their own image limits" +msgstr "Obs: Denna gräns gäller inte bildspel eller slumpblandade gallerier om dessa gallerier har egna gräns-inställningar" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.other_options_controller.php:22 +#: products/photocrati_nextgen/modules/nextgen_other_options/module.nextgen_other_options.php:69 +msgid "Other Options" +msgstr "Andra alternativ" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.reset_form.php:7 +msgid "Reset Options" +msgstr "Ã…terställ alternativ" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.reset_form.php:15 +msgid "Reset all options to default settings" +msgstr "Ã…terställ alla alternativ till förvalda inställningar" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.reset_form.php:16 +msgid "Replace all existing options and gallery options with their default settings" +msgstr "Ersätt alla befintliga alternativ och galleri-alternativ med förvalda inställningar" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.reset_form.php:17 +msgid "Reset settings" +msgstr "Ã…terställ inställningar" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.reset_form.php:18 +msgid "" +"Reset all options to default settings?\n" +"\n" +"Choose [Cancel] to Stop, [OK] to proceed." +msgstr "" +"Ã…terställ alla alternativ till förvalda inställningar?\n" +"\n" +"Välj [Avbryt] för att avbryta, [OK] för att fortsätta." + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.roles_form.php:7 +msgid "Roles & Capabilities" +msgstr "Roller och befogenheter" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.styles_form.php:12 +msgid "Styles" +msgstr "Stilar" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.styles_form.php:18 +msgid "Enable custom CSS" +msgstr "Aktivera anpassad CSS" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.styles_form.php:20 +msgid "What stylesheet would you like to use?" +msgstr "Vilken stilmall vill du använda?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.styles_form.php:23 +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:136 +msgid "(Show Customization Options)" +msgstr "(Visa anpassade alternativ)" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.styles_form.php:24 +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:137 +msgid "(Hide Customization Options)" +msgstr "(Dölj anpassade alternativ)" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.styles_form.php:25 +msgid "File Content:" +msgstr "FilinnehÃ¥ll:" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.styles_form.php:26 +msgid "Changes you make to the contents will be saved to" +msgstr "Dina innehÃ¥llsändringar kommer att sparas till" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.styles_form.php:27 +msgid "You could edit this file if it were writable" +msgstr "Du kunde redigera den här filen om den var skrivbar" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.thumbnail_options_form.php:12 +msgid "Thumbnail Options" +msgstr "Miniatyr-alternativ" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.thumbnail_options_form.php:20 +msgid "Default thumbnail dimensions:" +msgstr "Förvald miniatyrstorlek" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.thumbnail_options_form.php:21 +msgid "When generating thumbnails, what image dimensions do you desire?" +msgstr "Dimensioner för genererade miniatyrer" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.thumbnail_options_form.php:24 +msgid "Set fix dimension?" +msgstr "Ställ in fast storlek?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.thumbnail_options_form.php:25 +msgid "Ignore the aspect ratio, no portrait thumbnails?" +msgstr "Ignorera proportionerna. (inga porträttorienterade miniatyrer)" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.thumbnail_options_form.php:27 +msgid "Adjust Thumbnail Quality?" +msgstr "Justera miniatyrens kvalitet?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.thumbnail_options_form.php:28 +msgid "When generating thumbnails, what image quality do you desire?" +msgstr "Vilken bildkvalitet vill du använda, när miniatyrer genereras?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.thumbnail_options_form.php:30 +msgid "Size List" +msgstr "Storlekslista" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.thumbnail_options_form.php:31 +msgid "List of default sizes used for thumbnails and images" +msgstr "Lista över förvalda storlekar som används för miniatyrer och bilder" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:12 +msgid "Watermarks" +msgstr "Vattenstämplar" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:41 +msgid "Using an Image" +msgstr "Använd en bild" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:42 +msgid "Using Text" +msgstr "Använd text" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:69 +msgid "An absolute or relative (to the site document root) file system path" +msgstr "En filsökväg (antingen absolut eller relativt dokumentroten)" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:71 +msgid "An absolute or relative (to the site document root) file system path or an HTTP url" +msgstr "En filsökväg (antingen absolut eller relativt dokumentroten), eller en http-url" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:74 +msgid "Image URL:" +msgstr "Bild-URL:" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:90 +msgid "Font Family:" +msgstr "Teckensnitt:" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:92 +msgid "Font Size:" +msgstr "Teckenstorlek:" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:94 +msgid "Font Color:" +msgstr "Teckenfärg:" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:97 +msgid "Text:" +msgstr "Text:" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:99 +msgid "Opacity:" +msgstr "Ogenomskinlighet:" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:126 +msgid "Please note: You can only activate the watermark under Manage Gallery. This action cannot be undone." +msgstr "Observera: Vattenstämpeln kan bara aktiveras under \"Hantera Galleri\". Denna Ã¥tgärd kan inte Ã¥ngras." + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:127 +msgid "How will you generate a watermark?" +msgstr "Hur ska du vattenstämpeln genereras?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:131 +msgid "Position:" +msgstr "Position:" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:133 +msgid "Offset:" +msgstr "Förskjutning:" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:139 +msgid "Preview of saved settings:" +msgstr "Förhandsgranska sparade inställningar:" + +#: products/photocrati_nextgen/modules/nextgen_other_options/adapter.watermarks_form.php:140 +msgid "Refresh preview image" +msgstr "Uppdatera förhandsvisningsbild" + +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/lightbox_library_tab.php:31 +msgid "What must the lightbox be applied to?" +msgstr "Vad ska effekten tillämpas pÃ¥?" + +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/lightbox_library_tab.php:35 +msgid "Only apply to NextGEN images" +msgstr "Tillämpa endast pÃ¥ NextGEN-bilder" + +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/lightbox_library_tab.php:36 +msgid "Only apply to NextGEN and WordPress images" +msgstr "Tillämpa endast pÃ¥ NextGEN- och WordPress-bilder" + +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/lightbox_library_tab.php:37 +msgid "Try to apply to all images" +msgstr "Tillämpa pÃ¥ alla bilder, om det gÃ¥r" + +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/lightbox_library_tab.php:38 +msgid "Try to apply to all images that link to image files" +msgstr "Tillämpa pÃ¥ alla länkade bilder, om det gÃ¥r" + +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/styling_tab.php:35 +msgid "Place any custom stylesheets in <strong>wp-content/ngg_styles</strong>" +msgstr "Spara anpassade stilmallar i <strong>wp-content/ngg_styles</strong>" + +# Bug in NextGEN: Both translated string and original string is displayed. +#: products/photocrati_nextgen/modules/nextgen_other_options/templates/styling_tab.php:38 +#, php-format +msgid "All stylesheets must contain a <a href='#' onclick='%s'>file header</a>" +msgstr "Alla stilmallar mÃ¥ste innehÃ¥lla ett <a href='#' onclick='%s'>filhuvud</a>" + +#: products/photocrati_nextgen/modules/nextgen_settings/module.nextgen_settings.php:76 +msgid "Related Images" +msgstr "Relaterade bilder" + +# Missed by NextGEN, translated string is not displayed. +#: products/photocrati_nextgen/modules/nextgen_settings/module.nextgen_settings.php:96 +msgid "[Show slideshow]" +msgstr "[Visa bildspel]" + +#: products/photocrati_nextgen/modules/nextgen_settings/module.nextgen_settings.php:97 +msgid "[Show thumbnails]" +msgstr "[Visa miniatyrer]" + +#: products/photocrati_nextgen/modules/nextgen_xmlrpc/module.nextgen_xmlrpc.php:428 +msgid "Sorry, you must be able to manage galleries" +msgstr "Tyvärr mÃ¥ste du kunna hantera gallerier" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:155 +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:186 +msgid "Overview" +msgstr "Översikt" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:168 +msgid "Network settings" +msgstr "Nätverksinställningar" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:276 +msgid "You do not have the correct permission" +msgstr "Du har inte rätt behörighet" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:277 +msgid "Unexpected Error" +msgstr "Oväntat fel" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:278 +msgid "A failure occurred" +msgstr "Ett fel inträffade" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:379 +msgid "<a href=\"https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/\" target=\"_blank\">Introduction</a>" +msgstr "<a href=\"https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/\" target=\"_blank\">Introduktion</a>" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:382 +msgid "<a href=\"https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery//languages\" target=\"_blank\">Languages</a>" +msgstr "<a href=\"https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery//languages\" target=\"_blank\">SprÃ¥k</a>" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:387 +msgid "Get help with NextGEN Gallery" +msgstr "FÃ¥ hjälp med NextGEN Gallery" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:391 +msgid "More Help & Info" +msgstr "Mer hjälp & information" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:393 +msgid "<a href=\"http://wordpress.org/tags/nextgen-gallery?forum_id=10\" target=\"_blank\">Support Forums</a>" +msgstr "<a href=\"http://wordpress.org/tags/nextgen-gallery?forum_id=10\" target=\"_blank\">Supportforum</a>" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:394 +msgid "FAQ" +msgstr "FrÃ¥gor och svar" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:395 +msgid "Feature request" +msgstr "Begäran om funktion" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:396 +msgid "Get your language pack" +msgstr "Hämta ditt sprÃ¥kpaket" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:397 +msgid "Contribute development" +msgstr "Bidra med utvecklingsarbete" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:398 +msgid "Download latest version" +msgstr "Ladda ner senaste versionen" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/ajax.php:288 +#, php-format +msgid "Could create image with %s x %s pixel" +msgstr "Kunde skapa bild med %s x %s pxl" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:172 +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:216 +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:239 +#: products/photocrati_nextgen/modules/ngglegacy/admin/edit-thumbnail.php:19 +#: products/photocrati_nextgen/modules/ngglegacy/admin/edit-thumbnail.php:22 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:598 +#: products/photocrati_nextgen/modules/ngglegacy/admin/publish.php:7 +#: products/photocrati_nextgen/modules/ngglegacy/admin/publish.php:10 +#: products/photocrati_nextgen/modules/ngglegacy/admin/publish.php:13 +#: products/photocrati_nextgen/modules/ngglegacy/admin/rotate.php:17 +#: products/photocrati_nextgen/modules/ngglegacy/admin/rotate.php:20 +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:10 +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:13 +msgid "Cheatin’ uh?" +msgstr "Fuskar du?" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:180 +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:209 +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:253 +msgid "Update Successfully" +msgstr "Uppdatering klar" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:227 +msgid "Album deleted" +msgstr "Album borttaget" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:423 +#: products/photocrati_nextgen/modules/ngglegacy/admin/roles.php:55 +msgid "Edit Album" +msgstr "Redigera album" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:443 +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:492 +msgid "Select album" +msgstr "Välj album" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:445 +msgid "No album selected" +msgstr "Inget album valt" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:456 +#: products/photocrati_nextgen/modules/ngglegacy/admin/edit-thumbnail.php:177 +#: products/photocrati_nextgen/modules/ngglegacy/admin/rotate.php:102 +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:112 +msgid "Update" +msgstr "Uppdatera" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:458 +msgid "Edit album" +msgstr "Redigera album" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:461 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:186 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:361 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:363 +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:226 +msgid "Delete" +msgstr "Ta bort" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:465 +msgid "Add new album" +msgstr "Lägg till nytt album" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:467 +msgid "Add" +msgstr "Lägg till" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:478 +msgid "Show / hide used galleries" +msgstr "Visa/dölj gallerier som används" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:478 +msgid "[Show all]" +msgstr "Visa allt" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:479 +msgid "Maximize the widget content" +msgstr "Maximera widget-innehÃ¥llen" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:479 +msgid "[Maximize]" +msgstr "[Maximera]" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:480 +msgid "Minimize the widget content" +msgstr "Minimera widget-innehÃ¥llen" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:480 +msgid "[Minimize]" +msgstr "[Minimera]" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:482 +msgid "After you create and select a album, you can drag and drop a gallery or another album into your new album below" +msgstr "När du skapar eller väljer ett album, kan du lägga till gallerier eller andra album genom att dra och släppa dem nedan" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:508 +msgid "Select gallery" +msgstr "Välj galleri" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:533 +msgid "Album ID" +msgstr "Album-id" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:546 +msgid "No album selected!" +msgstr "Inget album valt!" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:567 +msgid "Album name:" +msgstr "Album - namn:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:573 +msgid "Album description:" +msgstr "Album - beskrivning:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:579 +msgid "Select a preview image:" +msgstr "Välj en förhandsvisningsbild:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:592 +msgid "Page Link to" +msgstr "Sidlänk till" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:616 +msgid "There are no pages to link to" +msgstr "Det finns inga sidor att länka till" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:611 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:336 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:365 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:396 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:410 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:446 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:475 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:506 +msgid "OK" +msgstr "OK" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:613 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:338 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:367 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:398 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:412 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:448 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:477 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:508 +msgid "Cancel" +msgstr "Avbryt" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:706 +msgid "Name" +msgstr "Namn" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/album.php:708 +#: products/photocrati_nextgen/modules/ngglegacy/lib/rewrite.php:229 +msgid "Page" +msgstr "Sida" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/edit-thumbnail.php:127 +msgid "Select with the mouse the area for the new thumbnail" +msgstr "Välj med musen, ytan för den nya miniatyren" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/edit-thumbnail.php:141 +msgid "Thumbnail updated" +msgstr "Miniatyr uppdaterad" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/edit-thumbnail.php:146 +msgid "Error updating thumbnail" +msgstr "Fel vid uppdatering av miniatyr" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/edit-thumbnail.php:162 +msgid "Select the area for the thumbnail from the picture on the left." +msgstr "Välj yta för miniatyr, frÃ¥n bilden till vänster." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:44 +msgid "No valid gallery name!" +msgstr "Inget giltigt gallerinamn!" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:55 +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:83 +msgid "Directory" +msgstr "Katalog" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:55 +msgid "didn't exist. Please create first the main gallery folder " +msgstr "fanns inte. Skapa först galleriets huvudmapp" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:56 +msgid "Check this link, if you didn't know how to set the permission :" +msgstr "Kolla denna länk, om du inte vet hur du anger behörigheten:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:79 +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:88 +msgid "Unable to create directory " +msgstr "Kunde inte skapa katalog" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:83 +msgid "is not writeable !" +msgstr "är inte skrivbar!" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:92 +msgid "The server setting Safe-Mode is on !" +msgstr "Serverinställningen Safe-Mode är pÃ¥!" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:93 +msgid "If you have problems, please create directory" +msgstr "Om du har problem, vänligen skapa katalog" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:94 +msgid "and the thumbnails directory" +msgstr "och katalogen med miniatyrer" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:94 +msgid "with permission 777 manually !" +msgstr "med rättigheterna 777 manuellt!" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:119 +#, php-format +msgid "Gallery ID %1$s successfully created. You can show this gallery in your post or page with the shortcode %2$s.<br/>" +msgstr "Galleri-id %1$s har skapats. Du kan visa detta galleri i ditt inlägg eller sida med snabbkoden %2$s.<br>" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:122 +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:692 +msgid "Edit gallery" +msgstr "Redigera galleri" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:189 +msgid "Error while creating thumbnail." +msgstr "Fel uppstod vid skapande av miniatyr." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:242 +msgid "Error while resizing image." +msgstr "Fel uppstod vid ändring av bildens storlek." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:324 +msgid "Error while rotating image." +msgstr "Fel uppstod vid rotation av bilden." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:358 +msgid "Error while applying watermark to image." +msgstr "Fel uppstod vid tillämpning av vattenstämpel pÃ¥ bilden." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:382 +msgid "Object didn't contain correct data" +msgstr "Objektet innehöll inte rätt data" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:388 +msgid "File do not exists" +msgstr "Filen saknas" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:392 +msgid "Couldn't restore original image" +msgstr "Kunde inte Ã¥terställa ursprungliga bilden" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:514 +msgid "(Error : Couldn't not update data base)" +msgstr "(Fel: Kunde inte uppdatera databas)" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:521 +msgid "(Error : Couldn't not update meta data)" +msgstr "(Fel: Kunde inte uppdatera meta-data)" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:530 +msgid "(Error : Couldn't not find image)" +msgstr "(Fel: Kunde inte hitta bilden)" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:620 +msgid "Directory <strong>%s</strong> doesn`t exist!" +msgstr "Katalogen <strong>%s</strong> finns inte!" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:628 +msgid "Directory <strong>%s</strong> contains no pictures" +msgstr "Katalogen <strong>%s</strong> innehÃ¥ller inga bilder" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:644 +msgid "Database error. Could not add gallery!" +msgstr "Databasfel. Kunde inte lägga till galleriet!" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:651 +msgid "Gallery <strong>%s</strong> successfully created!" +msgid_plural "Galleries <strong>%s</strong> successfully created!" +msgstr[0] "Galleri <strong>%s</strong> har skapats!" +msgstr[1] "Gallerierna <strong>%s</strong> har skapats!" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:687 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:111 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:188 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:238 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:322 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:640 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:718 +msgid "Create new thumbnails" +msgstr "Skapa nya miniatyrer" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/functions.php:690 +#, php-format +msgid "One picture successfully added" +msgid_plural "%s pictures successfully added" +msgstr[0] "En bild har lagts till" +msgstr[1] "%s bilder har lagts till" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/install.php:20 +msgid "Sorry, NextGEN Gallery works only with a role called administrator" +msgstr "Tyvärr, NextGEN Gallery kan bara hanteras av användare med rollen administratör" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/install.php:92 +msgid "NextGEN Gallery : Tables could not created, please check your database settings" +msgstr "NextGEN Gallery: Tabeller kunde inte skapas, kontrollera databasinställningarna" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:99 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:206 +msgid "No images selected" +msgstr "Inga bilder valda" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:107 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:189 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:234 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:323 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:621 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:702 +msgid "Resize images" +msgstr "Ändra storlek pÃ¥ bilder" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:116 +#, php-format +msgid "" +"You are about to start the bulk edit for %s galleries \n" +" \n" +" 'Cancel' to stop, 'OK' to proceed." +msgstr "" +"Du hÃ¥ller pÃ¥ att starta gruppändring av %s gallerier\n" +"\n" +"'Avbryt' för att avbryta, 'OK' för att fortsätta." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:154 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:196 +msgid "Add new gallery" +msgstr "Lägg till nytt galleri" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:170 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:173 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:271 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:274 +msgid "Search Images" +msgstr "Sök bilder" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:185 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:320 +msgid "Bulk actions" +msgstr "GruppÃ¥tgärder" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:187 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:321 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:571 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:666 +msgid "Set watermark" +msgstr "Ställ in vattenstämpel" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:190 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:326 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:576 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:686 +msgid "Import metadata" +msgstr "Importera metadata" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:191 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:324 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:566 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:663 +msgid "Recover from backup" +msgstr "Ã…terställ frÃ¥n säkerhetskopia" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:193 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:335 +msgid "Apply" +msgstr "Tillämpa" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:261 +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:252 +msgid "Edit" +msgstr "Redigera" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:308 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:383 +msgid "No entries found" +msgstr "Inga träffar" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:326 +msgid "New Gallery" +msgstr "Nytt galleri" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:328 +msgid "Create a new , empty gallery below the folder" +msgstr "Skapa ett nytt, tomt galleri under mappen" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:330 +msgid "Allowed characters for file and folder names are" +msgstr "TillÃ¥tna tecken för fil- och mappnamn är" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:356 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:466 +msgid "Resize Images to" +msgstr "Ändra storlek pÃ¥ bilder till" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:360 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:470 +msgid "Width x height (in pixel). NextGEN Gallery will keep ratio size" +msgstr "Bredd x höjd (i pixlar). NextGEN Gallery kommer att behÃ¥lla proportionerna" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:384 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:494 +#: products/photocrati_nextgen/modules/ngglegacy/admin/publish.php:40 +msgid "Width x height (in pixel)" +msgstr "Bredd x höjd (i pixlar)" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:390 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:500 +msgid "Set fix dimension" +msgstr "Ställ in fast dimension" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:392 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:502 +msgid "Ignore the aspect ratio, no portrait thumbnails" +msgstr "Ignorera proportionerna (inga porträttorienterade miniatyrer)" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:455 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:572 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:155 +msgid "ID" +msgstr "ID" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:457 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:575 +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:245 +msgid "Description" +msgstr "Beskrivning" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php:459 +msgid "Page ID" +msgstr "Sid-id" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:35 +msgid "Gallery not found." +msgstr "Galleri hittades inte." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:41 +msgid "Sorry, you have no access here" +msgstr "Tyvärr, har du inte Ã¥tkomst här" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:214 +msgid "Copy image to..." +msgstr "Kopiera bild till..." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:218 +msgid "Move image to..." +msgstr "Flytta bild till..." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:222 +msgid "Add new tags" +msgstr "Lägg till etiketter" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:226 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:332 +msgid "Delete tags" +msgstr "Ta bort etiketter" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:230 +msgid "Overwrite" +msgstr "Skriv över" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:243 +#, php-format +msgid "" +"You are about to start the bulk edit for %s images \n" +" \n" +" 'Cancel' to stop, 'OK' to proceed." +msgstr "" +"Du hÃ¥ller pÃ¥ att starta gruppändring av %s bilder\n" +"\n" +"'Avbryt' för att avbryta, 'OK' för att fortsätta." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:268 +#, php-format +msgid "Search results for “%s”" +msgstr "Sökresultat för \"%s\"" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:297 +msgid "Click to toggle" +msgstr "Klicka för att växla" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:298 +msgid "Gallery settings" +msgstr "Galleri-inställningar" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:298 +msgid "Click here for more settings" +msgstr "Klicka här för fler inställningar" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:304 +msgid "Scan Folder for new images" +msgstr "Skanna mapp efter nya bilder" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:306 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:341 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:390 +msgid "Save Changes" +msgstr "Spara ändringar" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:325 +msgid "Delete images" +msgstr "Ta bort bilder" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:327 +msgid "Rotate images clockwise" +msgstr "Rotera bilder medurs" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:328 +msgid "Rotate images counter-clockwise" +msgstr "Rotera bilder moturs" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:329 +msgid "Copy to..." +msgstr "Kopiera till..." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:330 +msgid "Move to..." +msgstr "Flytta till..." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:331 +msgid "Add tags" +msgstr "Lägg till etiketter..." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:333 +msgid "Overwrite tags" +msgstr "Skriv över etiketter" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:338 +msgid "Sort gallery" +msgstr "Sortera galleri" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:406 +msgid "Enter the tags" +msgstr "Ange etiketterna" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:430 +msgid "Select the destination gallery:" +msgstr "Välj mÃ¥l-galleri:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:573 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:160 +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:266 +msgid "Thumbnail" +msgstr "Miniatyr" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:575 +msgid "Alt & Title Text" +msgstr "Alt och Title-text" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php:576 +msgid "Tags (comma separated list)" +msgstr "Etiketter (kommaseparerade)" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-sort.php:34 +msgid "Sort order changed" +msgstr "Sorteringsordningen ändrad" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-sort.php:92 +msgid "Sort Gallery" +msgstr "Sortera galleri" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-sort.php:96 +msgid "Update Sort Order" +msgstr "Uppdatera sorteringsordning" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-sort.php:99 +msgid "Back to gallery" +msgstr "Tillbaka till galleri" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-sort.php:104 +msgid "Presort" +msgstr "Försortera" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-sort.php:105 +msgid "Unsorted" +msgstr "Osorterade" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage-sort.php:108 +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:241 +msgid "Alt/Title text" +msgstr "Alt/Title" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:89 +msgid "deleted successfully" +msgstr "har tagits bort" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:105 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:114 +msgid "Operation successful. Please clear your browser cache." +msgstr "Ã…tgärden lyckades. Var vänlig och rensa webbläsarens cacheminne." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:170 +msgid "Alt & Title Text / Description" +msgstr "Alt- & Title-text / Beskrivning" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:213 +msgid "Exclude ?" +msgstr "Utesluta?" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:298 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:300 +msgid "View" +msgstr "Visa" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:308 +msgid "Show meta data" +msgstr "Visa metadata" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:309 +msgid "Meta" +msgstr "Meta" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:317 +msgid "Customize thumbnail" +msgstr "Anpassa miniatyr" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:318 +msgid "Edit thumb" +msgstr "Redigera miniatyr" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:326 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:327 +msgid "Rotate" +msgstr "Rotera" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:337 +msgid "Publish this image" +msgstr "Publicera den här bilden" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:338 +#: products/photocrati_nextgen/modules/ngglegacy/admin/publish.php:58 +msgid "Publish" +msgstr "Publicera" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:348 +msgid "Recover image from backup" +msgstr "Ã…terställ bilden frÃ¥n säkerhetskopia" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:349 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:351 +msgid "Recover" +msgstr "Ã…terställ" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:360 +msgid "Delete image" +msgstr "Ta bort bild" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:391 +msgid "Title:" +msgstr "Titel:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:397 +msgid "Description:" +msgstr "Beskrivning:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:403 +msgid "Gallery path:" +msgstr "Galleri-sökväg:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:418 +msgid "Link to page:" +msgstr "Länk till sida:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:419 +msgid "Albums will link this gallery to the selected page" +msgstr "Album kommer att länka detta galleri till den valda sidan" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:424 +msgid "Preview image:" +msgstr "Förhandsvisa bild:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:430 +msgid "Create new page:" +msgstr "Skapa ny sida:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:586 +msgid "Gallery deleted successfully " +msgstr "Galleri har tagits bort" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:657 +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:660 +msgid "Rotate images" +msgstr "Rotera bilder" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:682 +msgid "Pictures deleted successfully " +msgstr "Bilder har tagits bort" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:778 +msgid "Tags changed" +msgstr "Etiketter ändrade" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:818 +msgid "Update successful" +msgstr "Uppdatering klar" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:853 +msgid "New gallery page ID" +msgstr "ID för ny gallerisida" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:853 +msgid "created" +msgstr "skapad" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:891 +msgid "Published a new post" +msgstr "Publicerade ett nytt inlägg" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:1022 +msgid "1 item" +msgid_plural "%s items" +msgstr[0] "1 objekt" +msgstr[1] "%s objekt" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:1038 +msgid "Go to the first page" +msgstr "GÃ¥ till första sidan" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:1045 +msgid "Go to the previous page" +msgstr "GÃ¥ till föregÃ¥ende sida" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:1054 +msgid "Current page" +msgstr "Aktuell sida" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:1065 +msgid "Go to the next page" +msgstr "GÃ¥ till nästa sida" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/manage.php:1072 +msgid "Go to the last page" +msgstr "GÃ¥ till sista sidan" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:186 +msgid "No gallery" +msgstr "Inget galleri" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:198 +msgid "Select »" +msgstr "Välj»" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:229 +#: products/photocrati_nextgen/modules/widget/templates/form_gallery.php:15 +msgid "Show" +msgstr "Visa" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:230 +msgid "Hide" +msgstr "Dölj" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:235 +msgid "Image ID:" +msgstr "Bild-id" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:249 +#: products/photocrati_nextgen/modules/ngglegacy/admin/publish.php:45 +msgid "Alignment" +msgstr "Justering" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:256 +#: products/photocrati_nextgen/modules/ngglegacy/admin/publish.php:51 +msgid "Center" +msgstr "Centrera" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:262 +msgid "Size" +msgstr "Storlek" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:268 +msgid "Full size" +msgstr "Full storlek" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:270 +msgid "Singlepic" +msgstr "Singlepic" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:282 +msgid "Use as featured image" +msgstr "Använd som utvald bild" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:284 +msgid "Insert into Post" +msgstr "Infoga i inlägg" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/media-upload.php:295 +msgid "Save all changes" +msgstr "Spara alla ändringar" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:14 +msgid "NextGEN Gallery Overview" +msgstr "NextGEN Gallery - Översikt" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:84 +msgid "Welcome to NextGEN Gallery !" +msgstr "Välkommen till NextGEN Gallery!" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:85 +msgid "Do you like this Plugin?" +msgstr "Tycker du om detta tillägg?" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:87 +msgid "About" +msgstr "Om" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:90 +msgid "Server Settings" +msgstr "Serverinställningar" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:97 +msgid "NextGEN Gallery is one of the most popular WordPress plugins of all time with over 12 million downloads." +msgstr "NextGEN Gallery är en av de mest populära WordPress-tilläggen genom tiderna med över 12 miljoner nedladdningar." + +# Missed by NextGEN, translated string is displayed. +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:97 +msgid "It is developed and supported by Imagely. We'd like to offer a special thanks to Alex Rabe, who first developed the plugin and maintained it through 2011." +msgstr "Det utvecklas och stöds av Imagely. Vi vill framföra ett särskilt tack till Alex Rabe, som först utvecklade tillägget och underhöll det till och med 2011." + +# Missed by NextGEN, translated string is displayed. +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:98 +msgid "<strong>NEED HELP?</strong> If you need help or assistance please visit the <a href='http://wordpress.org/support/plugin/nextgen-gallery'>NextGEN Gallery forums on WordPress.org</a>. Please note that we actively monitor and participate in the forums, but given that NextGEN Gallery is a free product, we don't guarantee replies to support queries." +msgstr "<strong>Behöver du hjälp?</strong> Behöver du hjälp eller assistans, besök <a href='http://wordpress.org/support/plugin/nextgen-gallery'>NextGEN Gallery-forum pÃ¥ WordPress.org</a>. Observera att vi aktivt övervakar och deltar i forumen, men eftersom NextGEN Gallery är en gratisprodukt, kan vi inte garantera svar pÃ¥ alla supportfrÃ¥gor." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:99 +msgid "<strong>EXTENDING NEXTGEN?</strong> There are many third party plugins that add displays and functionality for NextGEN Gallery. See our <a href='https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery//nextgen-gallery-extension-plugins/'>Complete List of NextGEN Extension Plugins</a>." +msgstr "<strong>Utöka NextGEN?</strong> Det finns mÃ¥nga tredjepart-tillägg som lägger till visningar och funktionalitet för NextGEN Gallery. Se <a href='https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery//nextgen-gallery-extension-plugins/'>komplett lista av utökningstillägg till NextGEN</a>." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:107 +#, php-format +msgid "This plugin is primarily developed, maintained, supported and documented by <a href=\"%s\" target=\"_blank\">Imagely</a> with a lot of love & effort. Any kind of contribution would be highly appreciated. Thanks!" +msgstr "Detta tillägg utvecklas, underhÃ¥lls, stöds och dokumenteras främst av <a href=\"%s\" target=\"_blank\">Imagely</a> med en massa kärlek och insats. NÃ¥gon form av bidrag skulle verkligen uppskattas. Tack!" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:112 +msgid "Please click \"Works\" on WordPress.org" +msgstr "Klicka \"Works\" pÃ¥ WordPress.org" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:117 +msgid "Give it a good rating on WordPress.org" +msgstr "Ge det ett bra betyg pÃ¥ WordPress.org" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:122 +msgid "Visit the plugin homepage" +msgstr "Besök tilläggets hemsida" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:127 +msgid "Help translating it" +msgstr "Hjälp till att översätta det" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:149 +msgid "Graphic Library" +msgstr "Grafiskt bibliotek" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:165 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:214 +msgid "Loading…" +msgstr "Laddar …" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:165 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:214 +msgid "This widget requires JavaScript." +msgstr "Denna widget kräver JavaScript." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:178 +msgid "Thanks to all donators..." +msgstr "Tack vare alla donatorer..." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:200 +msgid "View all" +msgstr "Visa allt" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:226 +#, php-format +msgid "Newsfeed could not be loaded. Check the <a href=\"%s\">front page</a> to check for updates." +msgstr "Nyhetsflöde kunde inte laddas. Kolla <a href=\"%s\">framsida</a> för att söka efter uppdateringar." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:238 +msgid "Untitled" +msgstr "Namnlöst" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:303 +msgid "At a Glance" +msgstr "I korthet" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:320 +#: products/photocrati_nextgen/modules/ngglegacy/lib/rewrite.php:223 +msgid "Album" +msgid_plural "Albums" +msgstr[0] "Album" +msgstr[1] "Album" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:360 +msgid "Storage Space" +msgstr "Lagringsutrymme" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:364 +#, php-format +msgid "<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB</a>" +msgstr "<a href=\"%1$s\" title=\"Hantera uppladdningar\" class=\"musublink\">%2$sMB</a>" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:365 +msgid "Space Allowed" +msgstr "TillÃ¥tet utrymme" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:372 +#, php-format +msgid "<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB (%3$s%%)</a>" +msgstr "<a href=\"%1$s\" title=\"Hantera uppladdningar\" class=\"musublink\">%2$sMB (%3$s%%)</a>" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:373 +msgid "Space Used" +msgstr "Använt utrymme" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:399 +msgid "No GD support" +msgstr "Inget stöd för GD" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:431 +msgid "Not set" +msgstr "Inte inställt" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:433 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:436 +msgid "On" +msgstr "PÃ¥" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:434 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:437 +msgid "Off" +msgstr "Av" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:441 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:444 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:447 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:450 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:453 +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:456 +msgid "N/A" +msgstr "N/A" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:455 +msgid " MByte" +msgstr "MByte" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:468 +msgid "Operating System" +msgstr "Operativsystem" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:469 +msgid "Server" +msgstr "Server" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:470 +msgid "Memory usage" +msgstr "Minnesanvändning" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:471 +msgid "MYSQL Version" +msgstr "MYSQL Version" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:472 +msgid "SQL Mode" +msgstr "SQL Mode" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:473 +msgid "PHP Version" +msgstr "PHP Version" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:474 +msgid "PHP Safe Mode" +msgstr "PHP Safe Mode" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:475 +msgid "PHP Allow URL fopen" +msgstr "PHP Allow URL fopen" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:476 +msgid "PHP Memory Limit" +msgstr "PHP Memory Limit" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:477 +msgid "PHP Max Upload Size" +msgstr "PHP Max Upload Size" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:478 +msgid "PHP Max Post Size" +msgstr "PHP Max Post Size" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:479 +msgid "PCRE Backtracking Limit" +msgstr "PCRE Backtracking Limit" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:480 +msgid "PHP Max Script Execute Time" +msgstr "PHP Max Script Execute Time" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:481 +msgid "PHP Exif support" +msgstr "PHP Exif support" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:482 +msgid "PHP IPTC support" +msgstr "PHP IPTC support" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:483 +msgid "PHP XML support" +msgstr "PHP XML support" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:495 +msgid "NextGEN Gallery contains some functions which are only available under PHP 5.2. You are using the old PHP 4 version, upgrade now! It's no longer supported by the PHP group. Many shared hosting providers offer both PHP 4 and PHP 5, running simultaneously. Ask your provider if they can do this." +msgstr "NextGEN Gallery innehÃ¥ller vissa funktioner som bara finns under PHP 5.2. Du använder den gamla versionen av PHP 4, uppgradera nu! Den stöds inte längre av PHP-gruppen. MÃ¥nga webbhotell erbjuder att bÃ¥de PHP 4 och PHP 5 körs samtidigt. FrÃ¥ga din leverantör om de kan göra detta." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/publish.php:35 +msgid "Post title" +msgstr "Rubrik för inlägg" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/publish.php:37 +msgid "Enter the post title " +msgstr "Ange rubrik för inlägg" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/publish.php:42 +msgid "Size of the image" +msgstr "Storleken pÃ¥ bilden" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/publish.php:60 +msgid "Draft" +msgstr "Utkast" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/roles.php:26 +msgid "Select the lowest role which should be able to access the following capabilities. NextGEN Gallery supports the standard roles from WordPress." +msgstr "Välj den lägsta roll som ska ha Ã¥tkomst till följande funktioner. NextGEN Gallery stödjer standardroller frÃ¥n WordPress." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/roles.php:27 +msgid "For a more flexible user management you can use the" +msgstr "För att hantera användare mer flexibelt, kan du använda" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/roles.php:31 +msgid "Main NextGEN Gallery overview" +msgstr "NextGEN Gallery - Översikt" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/roles.php:35 +msgid "Use TinyMCE Button / Upload tab" +msgstr "TinyMCE-knapp / Uppladdningsflik" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/roles.php:39 +msgid "Add gallery / Upload images" +msgstr "Lägg till galleri / Ladda upp bilder" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/roles.php:43 +msgid "Manage gallery" +msgstr "Hantera galleri" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/roles.php:47 +msgid "Manage others gallery" +msgstr "Hantera andras galleri" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/roles.php:51 +msgid "Manage tags" +msgstr "Hantera etiketter" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/roles.php:59 +msgid "Change style" +msgstr "Ändra stil" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/roles.php:63 +msgid "Change options" +msgstr "Ändra alternativ" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/roles.php:67 +msgid "NextGEN Attach Interface" +msgstr "NextGEN Attach Interface" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/rotate.php:68 +msgid "Image rotated" +msgstr "Bild roterad" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/rotate.php:70 +msgid "Error rotating thumbnail" +msgstr "Fel uppstod vid rotation av miniatyr" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/rotate.php:93 +msgid "90° clockwise" +msgstr "90° medurs" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/rotate.php:94 +msgid "90° counter-clockwise" +msgstr "90° moturs" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/rotate.php:95 +msgid "Flip vertically" +msgstr "Vänd vertikalt" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/rotate.php:96 +msgid "Flip horizontally" +msgstr "Vänd horisontellt" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:29 +msgid "Meta Data" +msgstr "Metadata" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:34 +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:60 +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:85 +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:109 +msgid "Tag" +msgstr "Etikett" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:35 +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:61 +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:86 +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:110 +msgid "Value" +msgstr "Värde" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:49 +msgid "No meta data saved" +msgstr "Inga metadata sparade" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:55 +msgid "EXIF Data" +msgstr "EXIF Data" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:74 +msgid "No exif data" +msgstr "No exif data" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:81 +msgid "IPTC Data" +msgstr "IPTC Data" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/showmeta.php:105 +msgid "XMP Data" +msgstr "XMP Data" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:41 +msgid "Most popular" +msgstr "Mest populära" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:42 +msgid "Least used" +msgstr "Minst använda" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:43 +msgid "Alphabetical" +msgstr "Alfabetisk ordning" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:99 +msgid "Manage image tags" +msgstr "Hantera bild-etiketter" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:111 +msgid "Existing Tags" +msgstr "Befintliga etiketter" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:115 +msgid "Search tags" +msgstr "Sök etiketter" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:119 +msgid "Go" +msgstr "Sök" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:124 +msgid "Sort Order:" +msgstr "Sorteringsordning:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:159 +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:163 +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:176 +msgid "Previous tags" +msgstr "FöregÃ¥ende etiketter" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:172 +msgid "Next tags" +msgstr "Nästa etiketter" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:184 +msgid "Rename Tag" +msgstr "Byt namn pÃ¥ etikett" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:192 +msgid "Enter the tag to rename and its new value. You can use this feature to merge tags too. Click \"Rename\" and all posts which use this tag will be updated." +msgstr "Ange etikett och namnet den ska bytas till. Du kan använda denna funktion för att slÃ¥ ihop etiketter ocksÃ¥. Klicka pÃ¥ \"Byt namn\" och alla inlägg som använder den etiketten kommer att uppdateras." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:193 +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:241 +msgid "You can specify multiple tags to rename by separating them with commas." +msgstr "Du kan ange flera etiketter som ska byta namn genom att separera dem med kommatecken." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:197 +msgid "Tag(s) to rename:" +msgstr "Etikett att byta namn pÃ¥:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:201 +msgid "New tag name(s):" +msgstr "Nytt etikettnamn:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:204 +msgid "Rename" +msgstr "Byt namn" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:210 +msgid "Delete Tag" +msgstr "Ta bort etikett" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:218 +msgid "Enter the name of the tag to delete. This tag will be removed from all posts." +msgstr "Ange namnet pÃ¥ etikett som ska tas bort. Etiketten kommer att tas bort frÃ¥n alla inlägg." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:219 +msgid "You can specify multiple tags to delete by separating them with commas" +msgstr "Du kan ange flera etiketter som ska tas bort genom att separera dem med kommatecken" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:223 +msgid "Tag(s) to delete:" +msgstr "Etikett att ta bort:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:232 +msgid "Edit Tag Slug" +msgstr "Redigera etiketts permalänk-smula" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:240 +msgid "Enter the tag name to edit and its new slug. This will be used in tagcloud links. <a href=\"http://codex.wordpress.org/Glossary#Slug\" target=\"_blank\">Slug definition</a>" +msgstr "Ange etikett och dess nya permalänk-smula. Smulan kommer att användas i etikettmoln-länkar. <a href=\"http://codex.wordpress.org/Glossary#Slug\" target=\"_blank\">Smul-definition (en. Slug)</a>" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:245 +msgid "Tag(s) to match:" +msgstr "Etikett:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/tags.php:249 +msgid "Slug(s) to set:" +msgstr "Permalänk-smula:" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/templates/manage_gallery/gallery_create_page_field.php:3 +msgid "Main Page (no parent)" +msgstr "Huvudsida (ingen förälder)" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/templates/manage_gallery/gallery_create_page_field.php:10 +msgid "Add page" +msgstr "Lägg till sida" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/templates/manage_gallery/gallery_link_to_page_field.php:3 +msgid "Not linked" +msgstr "Inte länkad" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/templates/manage_gallery/gallery_preview_image_field.php:3 +msgid "No picture" +msgstr "Ingen bild" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/thumbnails-template.php:103 +msgid "These are maximum values" +msgstr "Dessa är maximivärden" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:33 +msgid "Update successfully" +msgstr "Uppdatering klar" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:48 +msgid "Network Options" +msgstr "Nätverksalternativ" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:54 +msgid "Gallery path" +msgstr "Galleri-sökväg" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:56 +msgid "This is the default path for all blogs. With the placeholder %BLOG_ID% you can organize the folder structure better." +msgstr "Detta är förvald sökväg för alla bloggar. Med referensen %BLOG_ID% kan du ordna mappstrukturen bättre." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:57 +#, php-format +msgid "The default setting should be %s" +msgstr "Den förvalda inställningen ska vara %s" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:61 +msgid "Enable upload quota check" +msgstr "Aktivera kontroll av uppladdningskvot" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:63 +msgid "Should work if the gallery is bellow the blog.dir" +msgstr "Skulle fungera om galleriet är under blog.dir" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:67 +msgid "Enable zip upload option" +msgstr "Aktivera alternativet zip-uppladdning" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:69 +msgid "Allow users to upload zip folders." +msgstr "LÃ¥t användare ladda upp zip-mappar." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:73 +msgid "Enable import function" +msgstr "Aktivera import-funktion" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:75 +msgid "Allow users to import images folders from the server." +msgstr "LÃ¥t användare importera bilders mappar frÃ¥n servern." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:79 +msgid "Enable style selection" +msgstr "Aktivera stilval" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:81 +msgid "Allow users to choose a style for the gallery." +msgstr "LÃ¥t användare välja en stil för galleriet." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:85 +msgid "Enable roles/capabilities" +msgstr "Aktivera roller/befogenheter" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:87 +msgid "Allow users to change the roles for other blog authors." +msgstr "TillÃ¥t användare att ändra roller för andra blogg författare." + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:91 +msgid "Default style" +msgstr "Förvald stil" + +#: products/photocrati_nextgen/modules/ngglegacy/admin/wpmu.php:108 +msgid "Choose the default style for the galleries." +msgstr "Välj förvald stil för gallerier." + +#: products/photocrati_nextgen/modules/ngglegacy/lib/core.php:214 +#, php-format +msgid "Note : Based on your server memory limit you should not upload larger images then <strong>%d x %d</strong> pixel" +msgstr "Observera: Baserat pÃ¥ din servers minnesgräns bör du inte ladda upp bilder större än <strong>%d x %d</strong> pxl" + +#: products/photocrati_nextgen/modules/ngglegacy/lib/ngg-db.php:208 +#: products/photocrati_nextgen/modules/ngglegacy/lib/ngg-db.php:209 +msgid "Album overview" +msgstr "Album - översikt" + +#: products/photocrati_nextgen/modules/ngglegacy/lib/post-thumbnail.php:68 +#: products/photocrati_nextgen/modules/ngglegacy/lib/post-thumbnail.php:69 +msgid "Set NextGEN featured image" +msgstr "Ställ in NextGEN - utvald bild" + +#: products/photocrati_nextgen/modules/ngglegacy/lib/post-thumbnail.php:326 +#: products/photocrati_nextgen/modules/ngglegacy/lib/post-thumbnail.php:327 +msgid "Set featured image" +msgstr "Ställ in utvald bild" + +#: products/photocrati_nextgen/modules/ngglegacy/lib/post-thumbnail.php:354 +msgid "Remove featured image" +msgstr "Ta bort utvald bild" + +#: products/photocrati_nextgen/modules/ngglegacy/lib/rewrite.php:215 +#: products/photocrati_nextgen/modules/widget/class.widget_slideshow.php:81 +msgid "Slideshow" +msgstr "Bildspel" + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:35 +msgid "No new tag specified!" +msgstr "Ingen ny etikett angiven!" + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:50 +msgid "No new/old valid tag specified!" +msgstr "Ingen giltig ny/gammal etikett angiven!" + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:86 +msgid "No tag renamed." +msgstr "Ingen etikett omdöpt." + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:88 +#, php-format +msgid "Renamed tag(s) «%1$s» to «%2$s»" +msgstr "Bytte namn pÃ¥ etiketter «%1$s» till «%2$s»" + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:95 +msgid "No valid new tag." +msgstr "Ingen giltig ny etikett." + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:112 +msgid "No objects (post/page) found for specified old tags." +msgstr "Inga objekt (inlägg/sidor) hittades med angivna gamla etiketter." + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:141 +msgid "No tag merged." +msgstr "Ingen etikett sammanfogad." + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:143 +#, php-format +msgid "Merge tag(s) «%1$s» to «%2$s». %3$s objects edited." +msgstr "Sammanfoga etiketter «%1$s» till «%2$s». %3$s objekt ändrade." + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:146 +msgid "Error. Not enough tags provided to rename or merge." +msgstr "Fel. Inte tillräckligt mÃ¥nga etiketter att byta namn pÃ¥ eller slÃ¥ samman." + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:165 +msgid "No tag specified!" +msgstr "Ingen etikett angiven!" + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:188 +msgid "No tag deleted." +msgstr "Ingen etikett borttagen." + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:190 +#, php-format +msgid "%1s tag(s) deleted." +msgstr "%1s etiketter borttagna." + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:208 +msgid "No new slug(s) specified!" +msgstr "Inga nya permalänkar angivna!" + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:220 +msgid "Tags number and slugs number isn't the same!" +msgstr "Antal etiketter och permalänkar överensstämmer inte!" + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:247 +msgid "No slug edited." +msgstr "Ingen permalänk-smula ändrad." + +#: products/photocrati_nextgen/modules/ngglegacy/lib/tags.php:249 +#, php-format +msgid "%s slug(s) edited." +msgstr "%s permalänkar ändrade." + +#: products/photocrati_nextgen/modules/ngglegacy/nggallery.php:60 +msgid "<strong>Translation by : </strong><a target=\"_blank\" href=\"https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery//languages/\">See here</a>" +msgstr "<strong>Översättning av:</strong> <a target=\"_blank\" href=\"https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery//languages/\">Se här</a>" + +#: products/photocrati_nextgen/modules/ngglegacy/nggallery.php:122 +msgid "Sorry, NextGEN Gallery works only with a Memory Limit of 16 MB or higher" +msgstr "Tyvärr, NextGEN Gallery fungerar endast med en minnesgräns pÃ¥ 16 MB eller högre" + +#: products/photocrati_nextgen/modules/ngglegacy/nggallery.php:148 +msgid "Picture tag" +msgstr "Bildetikett" + +#: products/photocrati_nextgen/modules/ngglegacy/nggallery.php:149 +msgid "Picture tag: %2$l." +msgstr "Bildetikett: %2$l." + +#: products/photocrati_nextgen/modules/ngglegacy/nggallery.php:150 +msgid "Separate picture tags with commas." +msgstr "Separera bildetiketter med kommatecken." + +#: products/photocrati_nextgen/modules/ngglegacy/nggallery.php:279 +msgid "Get help" +msgstr "FÃ¥ hjälp" + +#: products/photocrati_nextgen/modules/ngglegacy/nggallery.php:280 +msgid "Contribute" +msgstr "Bidra" + +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-exif.php:38 +msgid "Meta data" +msgstr "Metadata" + +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-exif.php:42 +msgid "Camera / Type" +msgstr "Kamera / typ" + +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-exif.php:50 +msgid "Focal Length" +msgstr "Brännvidd" + +#: products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-exif.php:58 +msgid "Date / Time" +msgstr "Datum / tid" + +#: products/photocrati_nextgen/modules/ngglegacy/xml/media-rss.php:50 +msgid "No galleries have been yet created." +msgstr "Inga gallerier har skapats ännu." + +#: products/photocrati_nextgen/modules/ngglegacy/xml/media-rss.php:69 +#, php-format +msgid "The gallery ID=%s does not exist." +msgstr "Galleri-id = %s finns inte." + +#: products/photocrati_nextgen/modules/ngglegacy/xml/media-rss.php:100 +msgid "No album ID has been provided as parameter" +msgstr "Inget album-id har angetts som parameter" + +#: products/photocrati_nextgen/modules/ngglegacy/xml/media-rss.php:108 +#, php-format +msgid "The album ID=%s does not exist." +msgstr "Album-id = %s finns inte." + +#: products/photocrati_nextgen/modules/ngglegacy/xml/media-rss.php:115 +msgid "Invalid MediaRSS command" +msgstr "Ogiltigt MediaRSS-kommando" + +#: products/photocrati_nextgen/modules/widget/class.widget_gallery.php:7 +msgid "Add recent or random images from the galleries" +msgstr "Lägg till senaste eller slumpblandade bilder frÃ¥n gallerierna" + +#: products/photocrati_nextgen/modules/widget/class.widget_gallery.php:8 +msgid "NextGEN Widget" +msgstr "NextGEN Widget" + +#: products/photocrati_nextgen/modules/widget/class.widget_mediarss.php:9 +msgid "Widget that displays Media RSS links for NextGEN Gallery." +msgstr "Widget som visar Media RSS-länkar för NextGEN Gallery." + +#: products/photocrati_nextgen/modules/widget/class.widget_mediarss.php:10 +msgid "NextGEN Media RSS" +msgstr "NextGEN Media RSS" + +#: products/photocrati_nextgen/modules/widget/class.widget_mediarss.php:22 +msgid "Media RSS" +msgstr "Media RSS" + +#: products/photocrati_nextgen/modules/widget/class.widget_mediarss.php:23 +msgid "Link to the main image feed" +msgstr "Länk till huvudflöde för bilder" + +#: products/photocrati_nextgen/modules/widget/class.widget_slideshow.php:7 +msgid "Show a NextGEN Gallery Slideshow" +msgstr "Visa ett NextGEN Gallery-bildspel" + +#: products/photocrati_nextgen/modules/widget/class.widget_slideshow.php:8 +msgid "NextGEN Slideshow" +msgstr "NextGEN-bildspel" + +#: products/photocrati_nextgen/modules/widget/templates/form_gallery.php:26 +msgid "Thumbnails" +msgstr "Miniatyrer" + +#: products/photocrati_nextgen/modules/widget/templates/form_gallery.php:29 +msgid "Original images" +msgstr "Ursprungliga bilder" + +#: products/photocrati_nextgen/modules/widget/templates/form_gallery.php:42 +msgid "random" +msgstr "slumpblandning" + +#: products/photocrati_nextgen/modules/widget/templates/form_gallery.php:50 +msgid "recently added" +msgstr "nyligen tillagda" + +#: products/photocrati_nextgen/modules/widget/templates/form_gallery.php:62 +msgid "Enable IE8 Web Slices" +msgstr "Aktivera IE8 WebSlices" + +#: products/photocrati_nextgen/modules/widget/templates/form_gallery.php:68 +msgid "Width x Height" +msgstr "Bredd x höjd" + +#: products/photocrati_nextgen/modules/widget/templates/form_gallery.php:87 +msgid "Select" +msgstr "Välj" + +#: products/photocrati_nextgen/modules/widget/templates/form_gallery.php:92 +msgid "All galleries" +msgstr "Alla gallerier" + +#: products/photocrati_nextgen/modules/widget/templates/form_gallery.php:95 +msgid "Only which are not listed" +msgstr "Endast de som inte listats" + +#: products/photocrati_nextgen/modules/widget/templates/form_gallery.php:98 +msgid "Only which are listed" +msgstr "Endast de som listats" + +#: products/photocrati_nextgen/modules/widget/templates/form_gallery.php:107 +msgid "Gallery ID" +msgstr "Galleri-id" + +#: products/photocrati_nextgen/modules/widget/templates/form_gallery.php:114 +msgid "Gallery IDs, separated by commas." +msgstr "Galleri-id:er, separerade med kommatecken." + +#: products/photocrati_nextgen/modules/widget/templates/form_mediarss.php:19 +msgid "Show Media RSS icon" +msgstr "Visa Media RSS-ikon" + +#: products/photocrati_nextgen/modules/widget/templates/form_mediarss.php:30 +msgid "Show the Media RSS link" +msgstr "Visa Media RSS-länken" + +#: products/photocrati_nextgen/modules/widget/templates/form_mediarss.php:36 +msgid "Text for Media RSS link" +msgstr "Text för Media RSS-länken" + +#: products/photocrati_nextgen/modules/widget/templates/form_mediarss.php:47 +msgid "Tooltip text for Media RSS link" +msgstr "Tooltip-text för Media RSS-länken" + +#: products/photocrati_nextgen/modules/widget/templates/form_slideshow.php:15 +msgid "Select Gallery" +msgstr "Välj galleri" + +#: products/photocrati_nextgen/modules/widget/templates/form_slideshow.php:23 +msgid "All images" +msgstr "Alla bilder" + +#: products/photocrati_nextgen/modules/widget/templates/form_slideshow.php:40 +msgid "Limit" +msgstr "Gränsvärde" + +#. Plugin Name of the plugin/theme +msgid "NextGEN Gallery" +msgstr "NextGEN Gallery" + +#. Plugin URI of the plugin/theme +msgid "https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/" +msgstr "https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/" + +#. Description of the plugin/theme +msgid "The most popular gallery plugin for WordPress and one of the most popular plugins of all time with over 12 million downloads." +msgstr "Det mest populära galleri-tillägget för WordPress och ett av de mest populära tillägg genom tiderna med över 12 miljoner nedladdningar." + +#. Author of the plugin/theme +msgid "Imagely" +msgstr "Imagely" + +#. Author URI of the plugin/theme +msgid "https://www.imagely.com" +msgstr "https://www.imagely.com" diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/i18n/lang/nggallery.po b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/i18n/lang/nggallery.po index e4dcde3e3..2d7821fd9 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/i18n/lang/nggallery.po +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/i18n/lang/nggallery.po @@ -8,9 +8,9 @@ msgstr "" "Project-Id-Version: NextGEN Gallery\n" "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/nextgen-gallery\n" "POT-Creation-Date: 2014-02-20 19:45-0800\n" -"PO-Revision-Date: 2015-01-15 15:04+08\n" -"Last-Translator: Photocrati Media\n" -"Language-Team: Photocrati Media\n" +"PO-Revision-Date: 2016-05-03 11:18+47\n" +"Last-Translator: Imagely\n" +"Language-Team: Imagely\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -1557,11 +1557,11 @@ msgid "A failure occurred" msgstr "" #: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:379 -msgid "<a href=\"http://www.nextgen-gallery.com\" target=\"_blank\">Introduction</a>" +msgid "<a href=\"https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/\" target=\"_blank\">Introduction</a>" msgstr "" #: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:382 -msgid "<a href=\"http://www.nextgen-gallery.com/languages\" target=\"_blank\">Languages</a>" +msgid "<a href=\"https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery//languages\" target=\"_blank\">Languages</a>" msgstr "" #: products/photocrati_nextgen/modules/ngglegacy/admin/admin.php:387 @@ -2418,11 +2418,11 @@ msgid "Server Settings" msgstr "" #: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:97 -msgid "NextGEN Gallery is one of the most popular WordPress plugins of all time with over 12 million downloads." +msgid "NextGEN Gallery is one of the most popular WordPress plugins of all time with over 14 million downloads." msgstr "" #: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:97 -msgid "It is developed and supported by Photocrati Media. We'd like to offer a special thanks to Alex Rabe, who first developed the plugin and maintained it through 2011." +msgid "It is developed and supported by Imagely. We'd like to offer a special thanks to Alex Rabe, who first developed the plugin and maintained it through 2011." msgstr "" #: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:98 @@ -2430,12 +2430,12 @@ msgid "<strong>NEED HELP?</strong> If you need help or assistance please visit msgstr "" #: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:99 -msgid "<strong>EXTENDING NEXTGEN?</strong> There are many third party plugins that add displays and functionality for NextGEN Gallery. See our <a href='http://www.nextgen-gallery.com/nextgen-gallery-extension-plugins/'>Complete List of NextGEN Extension Plugins</a>." +msgid "<strong>EXTENDING NEXTGEN?</strong> There are many third party plugins that add displays and functionality for NextGEN Gallery. See our <a href='https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery//nextgen-gallery-extension-plugins/'>Complete List of NextGEN Extension Plugins</a>." msgstr "" #: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:107 #, php-format -msgid "This plugin is primarily developed, maintained, supported and documented by <a href=\"%s\" target=\"_blank\">Photocrati Media</a> with a lot of love & effort. Any kind of contribution would be highly appreciated. Thanks!" +msgid "This plugin is primarily developed, maintained, supported and documented by <a href=\"%s\" target=\"_blank\">Imagely</a> with a lot of love & effort. Any kind of contribution would be highly appreciated. Thanks!" msgstr "" #: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:112 @@ -3021,7 +3021,7 @@ msgid "%s slug(s) edited." msgstr "" #: products/photocrati_nextgen/modules/ngglegacy/nggallery.php:60 -msgid "<strong>Translation by : </strong><a target=\"_blank\" href=\"http://www.nextgen-gallery.com/languages/\">See here</a>" +msgid "<strong>Translation by : </strong><a target=\"_blank\" href=\"https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery//languages/\">See here</a>" msgstr "" #: products/photocrati_nextgen/modules/ngglegacy/nggallery.php:122 @@ -3195,22 +3195,21 @@ msgid "Limit" msgstr "" #. Plugin Name of the plugin/theme -msgid "NextGEN Gallery by Photocrati" +msgid "NextGEN Gallery" msgstr "" #. Plugin URI of the plugin/theme -msgid "http://www.nextgen-gallery.com" +msgid "https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/" msgstr "" #. Description of the plugin/theme -msgid "The most popular gallery plugin for WordPress and one of the most popular plugins of all time with over 12 million downloads." +msgid "The most popular gallery plugin for WordPress and one of the most popular plugins of all time with over 14 million downloads." msgstr "" #. Author of the plugin/theme -msgid "Photocrati Media" +msgid "Imagely" msgstr "" #. Author URI of the plugin/theme -msgid "http://www.photocrati.com" -msgstr "" - +msgid "https://www.imagely.com" +msgstr "" \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/i18n/module.i18n.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/i18n/module.i18n.php index 203fe8a05..4a6d56134 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/i18n/module.i18n.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/i18n/module.i18n.php @@ -14,9 +14,9 @@ class M_I18N extends C_Base_Module 'Internationalization', "Adds I18N resources and methods", '0.1', - 'http://www.nextgen-gallery.com/languages/', + 'https://www.imagely.com/languages/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); } @@ -51,16 +51,23 @@ class M_I18N extends C_Base_Module load_plugin_textdomain('nggallery', false, $dir); // Hooks to register image, gallery, and album name & description with WPML - add_action('ngg_image_updated', array(&$this, 'register_image_strings')); - add_action('ngg_album_updated', array(&$this, 'register_album_strings')); - add_action('ngg_created_new_gallery', array(&$this, 'register_gallery_strings')); + add_action('ngg_image_updated', array($this, 'register_image_strings')); + add_action('ngg_album_updated', array($this, 'register_album_strings')); + add_action('ngg_created_new_gallery', array($this, 'register_gallery_strings')); // do not let WPML translate posts we use as a document store - add_filter('get_translatable_documents', array(&$this, 'wpml_translatable_documents')); + add_filter('get_translatable_documents', array($this, 'wpml_translatable_documents')); + + if (class_exists('SitePress')) + { + // Copy AttachToPost entries when duplicating posts to another language + add_action('icl_make_duplicate', array($this, 'wpml_adjust_gallery_id'), 10, 4); + add_action('save_post', array($this, 'wpml_set_gallery_language_on_save_post'), 101, 1); + } // see function comments - add_filter('ngg_displayed_gallery_cache_params', array(&$this, 'set_qtranslate_cache_parameters')); - add_filter('ngg_displayed_gallery_cache_params', array(&$this, 'set_wpml_cache_parameters')); + add_filter('ngg_displayed_gallery_cache_params', array($this, 'set_qtranslate_cache_parameters')); + add_filter('ngg_displayed_gallery_cache_params', array($this, 'set_wpml_cache_parameters')); } /** @@ -113,8 +120,10 @@ class M_I18N extends C_Base_Module $gallery = C_Gallery_Mapper::get_instance()->find($gallery_id); if ($gallery) { - icl_register_string('plugin_ngg', 'gallery_' . $gallery->{$gallery->id_field} . '_name', $gallery->title, TRUE); - icl_register_string('plugin_ngg', 'gallery_' . $gallery->{$gallery->id_field} . '_description', $gallery->galdesc, TRUE); + if (isset($gallery->title) && !empty($gallery->title)) + icl_register_string('plugin_ngg', 'gallery_' . $gallery->{$gallery->id_field} . '_name', $gallery->title, TRUE); + if (isset($gallery->galdesc) && !empty($gallery->galdesc)) + icl_register_string('plugin_ngg', 'gallery_' . $gallery->{$gallery->id_field} . '_description', $gallery->galdesc, TRUE); } } } @@ -128,8 +137,10 @@ class M_I18N extends C_Base_Module { if (function_exists('icl_register_string')) { - icl_register_string('plugin_ngg', 'pic_' . $image->{$image->id_field} . '_description', $image->description, TRUE); - icl_register_string('plugin_ngg', 'pic_' . $image->{$image->id_field} . '_alttext', $image->alttext, TRUE); + if (isset($image->description) && !empty($image->description)) + icl_register_string('plugin_ngg', 'pic_' . $image->{$image->id_field} . '_description', $image->description, TRUE); + if (isset($image->alttext) && !empty($image->alttext)) + icl_register_string('plugin_ngg', 'pic_' . $image->{$image->id_field} . '_alttext', $image->alttext, TRUE); } } @@ -142,8 +153,10 @@ class M_I18N extends C_Base_Module { if (function_exists('icl_register_string')) { - icl_register_string('plugin_ngg', 'album_' . $album->{$album->id_field} . '_name', $album->name, TRUE); - icl_register_string('plugin_ngg', 'album_' . $album->{$album->id_field} . '_description', $album->albumdesc, TRUE); + if (isset($album->name) && !empty($album->name)) + icl_register_string('plugin_ngg', 'album_' . $album->{$album->id_field} . '_name', $album->name, TRUE); + if (isset($album->albumdesc) && !empty($album->albumdesc)) + icl_register_string('plugin_ngg', 'album_' . $album->{$album->id_field} . '_description', $album->albumdesc, TRUE); } } @@ -159,7 +172,6 @@ class M_I18N extends C_Base_Module 'ngg_album', 'ngg_gallery', 'ngg_pictures', - 'displayed_gallery', 'display_type', 'gal_display_source', 'lightbox_library', @@ -172,6 +184,85 @@ class M_I18N extends C_Base_Module return $icl_post_types; } + function wpml_adjust_gallery_id($master_post_id, $lang, $post_array, $id) + { + if (!isset($post_array['post_type']) || $post_array['post_type'] == "displayed_gallery") + return; + + $re = "|preview/id--(\d+)|mi"; + if (preg_match_all($re, $post_array['post_content'], $gallery_ids)) + { + foreach($gallery_ids[1] as $index => $gallery_id) { + $translated_gallery_id = apply_filters('wpml_object_id', (int)$gallery_id, "displayed_gallery", true, $lang); + $search[$index] = "preview/id--" . $gallery_id; + $replace[$index] = "preview/id--" . $translated_gallery_id; + } + + $post_array['post_content'] = str_replace($search, $replace, $post_array['post_content']); + + $to_save = array( + 'ID' => $id, + 'post_content' => $post_array['post_content'] + ); + + add_filter('ngg_cleanup_displayed_galleries', '__return_false', 10, 1); + wp_update_post($to_save); + add_filter('ngg_cleanup_displayed_galleries', '__return_true', 11, 1); + } + } + + function wpml_set_gallery_language_on_save_post($post_id) + { + if (wp_is_post_revision($post_id)) + return; + + if (isset($_POST['icl_ajx_action']) && $_POST['icl_ajx_action'] == 'make_duplicates') + return; + + $post = get_post($post_id); + + if ($post->post_type == 'displayed_gallery') + return; + + if (preg_match_all("#<img.*http(s)?://(.*)?" . NGG_ATTACH_TO_POST_SLUG . "(=|/)preview(/|&|&)id(=|--)(\\d+).*?>#mi", $post->post_content, $matches, PREG_SET_ORDER)) + { + $mapper = C_Displayed_Gallery_Mapper::get_instance(); + foreach ($matches as $match) { + // Find the displayed gallery + $displayed_gallery_id = $match[6]; + add_filter('wpml_suppress_filters', '__return_true', 10, 1); + $displayed_gallery = $mapper->find($displayed_gallery_id, TRUE); + add_filter('wpml_suppress_filters', '__return_false', 11, 1); + if ($displayed_gallery) + { + $displayed_gallery_type = apply_filters('wpml_element_type', 'displayed_gallery'); + + // set language of this gallery + $displayed_gallery_lang = apply_filters('wpml_post_language_details', null, $displayed_gallery->ID); + $post_language = apply_filters('wpml_post_language_details', null, $post_id); + + if (!$displayed_gallery_lang || $displayed_gallery_lang['language_code'] != $post_language['language_code']) + { + if ($post_language) + { + $args = array( + 'element_id' => $displayed_gallery->ID, + 'element_type' => $displayed_gallery_type, + 'language_code' => $post_language['language_code'] + ); + do_action('wpml_set_element_language_details', $args); + } + } + + // duplicate gallery to other languages + $is_translated = apply_filters('wpml_element_has_translations', '', $displayed_gallery->ID, $displayed_gallery_type); + if (!$is_translated) + do_action('wpml_admin_make_post_duplicates', $displayed_gallery->ID); + } + } + } + } + static function translate($in, $name = null) { if (function_exists('langswitch_filter_langs_with_message')) diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/lightbox/module.lightbox.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/lightbox/module.lightbox.php index f54fae496..06a3b39c6 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/lightbox/module.lightbox.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/lightbox/module.lightbox.php @@ -16,10 +16,10 @@ class M_Lightbox extends C_Base_Module 'photocrati-lightbox', 'Lightbox', "Provides integration with several JavaScript lightbox effect libraries", - '0.14', + '0.15', 'http://leandrovieira.com/projects/jquery/lightbox/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/lightbox/package.module.lightbox.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/lightbox/package.module.lightbox.php index 704ba39d3..4b188f05f 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/lightbox/package.module.lightbox.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/lightbox/package.module.lightbox.php @@ -188,13 +188,22 @@ class C_Lightbox_Library_Manager $lightbox = $this->get($lightbox); } if (!wp_script_is('ngg_lightbox_context')) { - wp_enqueue_script('ngg_lightbox_context', $router->get_static_url('photocrati-lightbox#lightbox_context.js'), array('ngg_common', 'photocrati_ajax'), NULL, TRUE); + wp_enqueue_script('ngg_lightbox_context', $router->get_static_url('photocrati-lightbox#lightbox_context.js'), array('ngg_common', 'photocrati_ajax'), NGG_SCRIPT_VERSION, TRUE); } // Make the path to the static resources available for libraries // Shutter-Reloaded in particular depends on this $this->_add_script_data('ngg_common', 'nextgen_lightbox_settings', array('static_path' => $router->get_static_url('', 'photocrati-lightbox'), 'context' => $thumbEffectContext), TRUE, TRUE); // Enqueue lightbox resources, only if we have a configured lightbox if ($lightbox) { + // Add lightbox script data + if (isset($lightbox->values)) { + foreach ($lightbox->values as $name => $value) { + if (empty($value)) { + continue; + } + $this->_add_script_data('ngg_lightbox_context', $name, $value, TRUE); + } + } // Enqueue stylesheets for ($i = 0; $i < count($lightbox->styles); $i++) { $src = $lightbox->styles[$i]; @@ -202,7 +211,7 @@ class C_Lightbox_Library_Manager wp_enqueue_style(@array_pop(explode('wordpress#', $src))); } else { if (!empty($src)) { - wp_enqueue_style($lightbox->name . "-{$i}", $this->_handle_url($src)); + wp_enqueue_style($lightbox->name . "-{$i}", $this->_handle_url($src), FALSE, NGG_SCRIPT_VERSION); } } } @@ -215,15 +224,7 @@ class C_Lightbox_Library_Manager wp_enqueue_script($handle); } else { if (!empty($src)) { - wp_enqueue_script($handle, $this->_handle_url($src), array('ngg_lightbox_context'), NULL, TRUE); - } - } - if ($i == 0 and isset($lightbox->values)) { - foreach ($lightbox->values as $name => $value) { - if (empty($value)) { - continue; - } - $this->_add_script_data($handle, $name, $value, FALSE); + wp_enqueue_script($handle, $this->_handle_url($src), array('ngg_lightbox_context'), NGG_SCRIPT_VERSION, TRUE); } } } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/mvc/module.mvc.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/mvc/module.mvc.php index 8161b963c..92c748549 100755 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/mvc/module.mvc.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/mvc/module.mvc.php @@ -20,10 +20,10 @@ class M_MVC extends C_Base_Module "photocrati-mvc", "MVC Framework", "Provides an MVC architecture for the plugin to use", - "0.5", - "http://www.photocrati.com", + "0.6", + "https://www.imagely.com", "Photocrati Media", - "http://www.photocrati.com" + "https://www.imagely.com" ); C_NextGen_Settings::get_instance()->add_option_handler('C_Mvc_Option_Handler', array( diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/mvc/package.module.mvc.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/mvc/package.module.mvc.php index e08330a01..ab50e3c23 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/mvc/package.module.mvc.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/mvc/package.module.mvc.php @@ -53,6 +53,12 @@ class A_MVC_Fs extends Mixin if (!SCRIPT_DEBUG && !in_array($module, self::$_non_minified_modules) && strpos($path, 'min.') === FALSE && strpos($path, 'pack.') === FALSE && strpos($path, 'packed.') === FALSE && preg_match('/\\.(js|css)$/', $path) && !$filter) { $path = preg_replace('#\\.[^\\.]+$#', '.min\\0', $path); } + // In case NextGen is in a symlink we make $mod_dir relative to the NGG root and then rebuild it + // using WP_PLUGIN_DIR; without this NGG-in-symlink creates URL that reference the file abspath + if (is_link($this->object->join_paths(WP_PLUGIN_DIR, basename(NGG_PLUGIN_DIR)))) { + $mod_dir = str_replace(dirname(NGG_PLUGIN_DIR), '', $mod_dir); + $mod_dir = $this->object->join_paths(WP_PLUGIN_DIR, $mod_dir); + } // Create the absolute path to the file $path = $this->object->join_paths($mod_dir, C_NextGen_Settings::get_instance()->get('mvc_static_dirname'), $path); if ($relative) { @@ -130,11 +136,22 @@ class A_MVC_Router extends Mixin { $retval = NULL; $key = $this->object->_get_static_url_key($path, $module); - /// Have we looked up this url before? + // Have we looked up this url before? if (isset(self::$_lookups[$key])) { $retval = self::$_lookups[$key]; - } else { - $fs = C_Fs::get_instance(); + } + $fs = C_Fs::get_instance(); + // Check for a user-supplied override + if (NULL === $retval) { + $formatted_path = $fs->parse_formatted_path($path); + $abspath = $fs->join_paths($this->object->get_static_override_dir($formatted_path[1]), $formatted_path[0]); + if (@is_file($abspath)) { + $abspath = str_replace($fs->get_document_root('content'), '', $abspath); + $retval = self::$_lookups[$key] = $this->object->join_paths($this->object->get_base_url('content'), str_replace('\\', '/', $abspath)); + } + } + // We'll have to calculate the url from our own modules + if (NULL === $retval) { $path = $fs->find_static_abspath($path, $module); $original_length = strlen($path); $roots = array('plugins', 'plugins_mu', 'templates', 'stylesheets'); @@ -153,8 +170,41 @@ class A_MVC_Router extends Mixin $retval = self::$_lookups[$key] = $this->object->join_paths($this->object->get_base_url('root'), str_replace('\\', '/', $path)); } } + // For the "Sage" theme and others using the "Soil" plugin "Roots" theme was re-branded to "Sage" theme + // 2015-02-25; see https://roots.io/new-website-sage-and-the-future/ + if ((current_theme_supports('soil-relative-urls') || current_theme_supports('root-relative-urls')) && strpos($retval, '/') !== 0) { + $retval = '/' . $retval; + } return $retval; } + /** + * @param string $module_id + * + * @return string $dir + */ + public function get_static_override_dir($module_id = NULL) + { + $fs = C_Fs::get_instance(); + $dir = $fs->join_paths(WP_CONTENT_DIR, 'ngg'); + if (!@file_exists($dir)) { + wp_mkdir_p($dir); + } + $dir = $fs->join_paths($dir, 'modules'); + if (!@file_exists($dir)) { + wp_mkdir_p($dir); + } + if ($module_id) { + $dir = $fs->join_paths($dir, $module_id); + if (!@file_exists($dir)) { + wp_mkdir_p($dir); + } + $dir = $fs->join_paths($dir, 'static'); + if (!@file_exists($dir)) { + wp_mkdir_p($dir); + } + } + return $dir; + } } if (preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_addgallery_page/module.nextgen_addgallery_page.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_addgallery_page/module.nextgen_addgallery_page.php index bff58b140..16090e6bb 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_addgallery_page/module.nextgen_addgallery_page.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_addgallery_page/module.nextgen_addgallery_page.php @@ -16,9 +16,9 @@ class M_NextGen_AddGallery_Page extends C_Base_Module 'NextGEN Add Gallery Page', 'Provides admin page for adding a gallery and uploading images', '0.6', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); } @@ -66,6 +66,16 @@ class M_NextGen_AddGallery_Page extends C_Base_Module function _register_hooks() { add_action('admin_init', array(&$this, 'register_scripts')); + add_filter('ngg_non_minified_files', array($this, 'do_not_minify'), 10, 2); + } + + // plupload i18n JS should not be minified + function do_not_minify($path, $module) + { + $retval = FALSE; + if ($module == 'photocrati-nextgen_addgallery_page' && strpos($path, '/i18n/') !== FALSE) + $retval = TRUE; + return $retval; } function register_scripts() @@ -75,47 +85,63 @@ class M_NextGen_AddGallery_Page extends C_Base_Module $router = C_Router::get_instance(); wp_register_script( 'browserplus', - $router->get_static_url('photocrati-nextgen_addgallery_page#browserplus-2.4.21.min.js') + $router->get_static_url('photocrati-nextgen_addgallery_page#browserplus-2.4.21.min.js'), + FALSE, + NGG_SCRIPT_VERSION ); wp_register_script( 'ngg.plupload.moxie', - $router->get_static_url('photocrati-nextgen_addgallery_page#plupload-2.1.1/moxie.min.js') + $router->get_static_url('photocrati-nextgen_addgallery_page#plupload-2.1.1/moxie.min.js'), + FALSE, + NGG_SCRIPT_VERSION ); wp_register_script( 'ngg.plupload.full', - $router->get_static_url('photocrati-nextgen_addgallery_page#plupload-2.1.1/plupload.dev.min.js'), - array('ngg.plupload.moxie') + $router->get_static_url('photocrati-nextgen_addgallery_page#plupload-2.1.1/plupload.dev.js'), + array('ngg.plupload.moxie'), + NGG_SCRIPT_VERSION ); wp_register_script( 'ngg.plupload.queue', $router->get_static_url('photocrati-nextgen_addgallery_page#plupload-2.1.1/jquery.plupload.queue/jquery.plupload.queue.min.js'), - array('ngg.plupload.full') + array('ngg.plupload.full'), + NGG_SCRIPT_VERSION ); wp_register_style( 'ngg.plupload.queue', - $router->get_static_url('photocrati-nextgen_addgallery_page#plupload-2.1.1/jquery.plupload.queue/css/jquery.plupload.queue.css') + $router->get_static_url('photocrati-nextgen_addgallery_page#plupload-2.1.1/jquery.plupload.queue/css/jquery.plupload.queue.css'), + FALSE, + NGG_SCRIPT_VERSION ); wp_register_style( 'nextgen_addgallery_page', - $router->get_static_url('photocrati-nextgen_addgallery_page#styles.css') + $router->get_static_url('photocrati-nextgen_addgallery_page#styles.css'), + FALSE, + NGG_SCRIPT_VERSION ); wp_register_script( 'jquery.filetree', $router->get_static_url('photocrati-nextgen_addgallery_page#jquery.filetree/jquery.filetree.js'), - array('jquery') + array('jquery'), + NGG_SCRIPT_VERSION ); wp_register_style( 'jquery.filetree', - $router->get_static_url('photocrati-nextgen_addgallery_page#jquery.filetree/jquery.filetree.css') + $router->get_static_url('photocrati-nextgen_addgallery_page#jquery.filetree/jquery.filetree.css'), + FALSE, + NGG_SCRIPT_VERSION ); wp_register_script( 'nextgen_media_library_import-js', $router->get_static_url('photocrati-nextgen_addgallery_page#media-library-import.js'), - array('jquery', 'ngg_progressbar') + array('jquery', 'ngg_progressbar'), + NGG_SCRIPT_VERSION ); wp_register_style( 'nextgen_media_library_import-css', - $router->get_static_url('photocrati-nextgen_addgallery_page#media-library-import.css') + $router->get_static_url('photocrati-nextgen_addgallery_page#media-library-import.css'), + FALSE, + NGG_SCRIPT_VERSION ); } } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_addgallery_page/package.module.nextgen_addgallery_page.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_addgallery_page/package.module.nextgen_addgallery_page.php index e55d03bf3..a9c02e8ab 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_addgallery_page/package.module.nextgen_addgallery_page.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_addgallery_page/package.module.nextgen_addgallery_page.php @@ -154,8 +154,8 @@ class A_NextGen_AddGallery_Ajax extends Mixin if ($dir = urldecode($this->param('dir'))) { $fs = C_Fs::get_instance(); $root = $this->get_import_root_abspath(); - if (!(strpos($dir, '.') === 0 || strpos($dir, '/.') === 0 || strpos($dir, '\\.') === 0)) { - $browse_path = $fs->join_paths($root, $dir); + $browse_path = $fs->join_paths($root, $dir); + if (strpos(realpath($browse_path), realpath($root)) !== FALSE) { if (@file_exists($browse_path)) { $files = scandir($browse_path); natcasesort($files); @@ -197,8 +197,8 @@ class A_NextGen_AddGallery_Ajax extends Mixin try { $keep_files = $this->param('keep_location') == 'on'; $root = $this->get_import_root_abspath(); - if ($folder != '.' && $folder != '..') { - $import_path = $fs->join_paths($root, $folder); + $import_path = $fs->join_paths($root, $folder); + if (strpos(realpath($import_path), realpath($root)) !== FALSE) { $retval = $storage->import_gallery_from_fs($import_path, FALSE, !$keep_files); if (!$retval) { $retval = array('error' => 'Could not import folder. No images found.'); @@ -367,7 +367,7 @@ class A_Upload_Images_Form extends Mixin wp_enqueue_script('ngg.plupload.queue'); $i18n = $this->_find_plupload_i18n(); if (!empty($i18n)) { - wp_enqueue_script('ngg.plupload.i18n', $i18n, array('ngg.plupload.full')); + wp_enqueue_script('ngg.plupload.i18n', $i18n, array('ngg.plupload.full'), NGG_SCRIPT_VERSION); } } public function render() diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/import_folder.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/import_folder.php index cf6b5f480..5c070524d 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/import_folder.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_addgallery_page/templates/import_folder.php @@ -1,6 +1,11 @@ -<p><?php _e('Select a folder to import. The folder name will be used as the title of the gallery.', 'nggallery'); ?></p> +<p><?php _e('Select a folder to import.', 'nggallery'); ?></p> <div id="file_browser"> </div> +<p> + <label for="import_gallery_title"> + <input type="text" name="import_gallery_title" id="import_gallery_title"/> + </label> +</p> <p> <input type="checkbox" id="import_keep_location" name="keep_location" value="on" /> <label for="import_keep_location"> <?php esc_html_e('Keep images in original location.', 'nggallery'); ?> <span style="font-size: 85%"><?php esc_html_e('Caution: If you keep images in the original folder and later delete the gallery, the images in that folder might be deleted depending on your settings.', 'nggallery'); ?></span></label><br/><br/> <input type="button" id="import_button" name="import_folder" value="<?php _e('Import Folder', 'nggallery'); ?>" class="button-primary"/> diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/module.nextgen_admin.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/module.nextgen_admin.php index e57be548c..265ee4ae6 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/module.nextgen_admin.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/module.nextgen_admin.php @@ -20,9 +20,9 @@ class M_NextGen_Admin extends C_Base_Module 'NextGEN Administration', 'Provides a framework for adding Administration pages', '0.9', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); C_Photocrati_Installer::add_handler($this->module_id, 'C_NextGen_Admin_Installer'); @@ -118,16 +118,47 @@ class M_NextGen_Admin extends C_Base_Module function register_scripts() { $router = C_Router::get_instance(); - wp_register_script('gritter', $router->get_static_url('photocrati-nextgen_admin#gritter/gritter.min.js'), array('jquery')); - wp_register_style('gritter', $router->get_static_url('photocrati-nextgen_admin#gritter/css/gritter.css')); - wp_register_script('ngg_progressbar', $router->get_static_url('photocrati-nextgen_admin#ngg_progressbar.js'), array('gritter')); - wp_register_style('ngg_progressbar', $router->get_static_url('photocrati-nextgen_admin#ngg_progressbar.css'), array('gritter')); - wp_register_style('select2', $router->get_static_url('photocrati-nextgen_admin#select2/select2.css')); - wp_register_script('select2', $router->get_static_url('photocrati-nextgen_admin#select2/select2.modded.js')); + wp_register_script( + 'gritter', + $router->get_static_url('photocrati-nextgen_admin#gritter/gritter.min.js'), + array('jquery'), + NGG_SCRIPT_VERSION + ); + wp_register_style( + 'gritter', + $router->get_static_url('photocrati-nextgen_admin#gritter/css/gritter.css'), + FALSE, + NGG_SCRIPT_VERSION + ); + wp_register_script( + 'ngg_progressbar', + $router->get_static_url('photocrati-nextgen_admin#ngg_progressbar.js'), + array('gritter'), + NGG_SCRIPT_VERSION + ); + wp_register_style( + 'ngg_progressbar', + $router->get_static_url('photocrati-nextgen_admin#ngg_progressbar.css'), + array('gritter'), + NGG_SCRIPT_VERSION + ); + wp_register_style( + 'ngg_select2', + $router->get_static_url('photocrati-nextgen_admin#select2/select2.css'), + FALSE, + NGG_SCRIPT_VERSION + ); + wp_register_script( + 'ngg_select2', + $router->get_static_url('photocrati-nextgen_admin#select2/select2.modded.js'), + FALSE, + NGG_SCRIPT_VERSION + ); wp_register_script( 'jquery.nextgen_radio_toggle', $router->get_static_url('photocrati-nextgen_admin#jquery.nextgen_radio_toggle.js'), - array('jquery') + array('jquery'), + NGG_SCRIPT_VERSION ); if (preg_match("#/wp-admin/post(-new)?.php#", $_SERVER['REQUEST_URI'])) @@ -136,7 +167,12 @@ class M_NextGen_Admin extends C_Base_Module wp_enqueue_style('ngg_progressbar'); } - wp_register_style('ngg-jquery-ui', $router->get_static_url('photocrati-nextgen_admin#jquery-ui/jquery-ui-1.10.4.custom.css')); + wp_register_style( + 'ngg-jquery-ui', + $router->get_static_url('photocrati-nextgen_admin#jquery-ui/jquery-ui-1.10.4.custom.css'), + FALSE, + NGG_SCRIPT_VERSION + ); } /** diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/package.module.nextgen_admin.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/package.module.nextgen_admin.php index e0ebde188..50096bf8e 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/package.module.nextgen_admin.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/package.module.nextgen_admin.php @@ -155,7 +155,7 @@ class C_Admin_Notification_Manager { if ($this->has_displayed_notice()) { $router = C_Router::get_instance(); - wp_enqueue_script('ngg_admin_notices', $router->get_static_url('photocrati-nextgen_admin#admin_notices.js'), array(), FALSE, TRUE); + wp_enqueue_script('ngg_admin_notices', $router->get_static_url('photocrati-nextgen_admin#admin_notices.js'), FALSE, NGG_SCRIPT_VERSION, TRUE); wp_localize_script('ngg_admin_notices', 'ngg_dismiss_url', $this->_dismiss_url); } } @@ -628,20 +628,20 @@ class Mixin_NextGen_Admin_Page_Instance_Methods extends Mixin $this->object->enqueue_jquery_ui_theme(); wp_enqueue_script('photocrati_ajax'); wp_enqueue_script('jquery-ui-accordion'); - wp_enqueue_script('nextgen_display_settings_page_placeholder_stub', $this->get_static_url('photocrati-nextgen_admin#jquery.placeholder.min.js'), array('jquery'), '2.0.7', TRUE); - wp_register_script('iris', $this->get_router()->get_url('/wp-admin/js/iris.min.js', FALSE, TRUE), array('jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch')); - wp_register_script('wp-color-picker', $this->get_router()->get_url('/wp-admin/js/color-picker.js', FALSE, TRUE), array('iris')); + wp_enqueue_script('nextgen_display_settings_page_placeholder_stub', $this->get_static_url('photocrati-nextgen_admin#jquery.placeholder.min.js'), array('jquery'), NGG_SCRIPT_VERSION, TRUE); + wp_register_script('iris', $this->get_router()->get_url('/wp-admin/js/iris.min.js', FALSE, TRUE), array('jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch'), NGG_SCRIPT_VERSION); + wp_register_script('wp-color-picker', $this->get_router()->get_url('/wp-admin/js/color-picker.js', FALSE, TRUE), array('iris'), NGG_SCRIPT_VERSION); wp_localize_script('wp-color-picker', 'wpColorPickerL10n', array('clear' => __('Clear', 'nggallery'), 'defaultString' => __('Default', 'nggallery'), 'pick' => __('Select Color', 'nggallery'), 'current' => __('Current Color', 'nggallery'))); - wp_enqueue_script('nextgen_admin_page', $this->get_static_url('photocrati-nextgen_admin#nextgen_admin_page.js'), array('wp-color-picker')); - wp_enqueue_style('nextgen_admin_page', $this->get_static_url('photocrati-nextgen_admin#nextgen_admin_page.css'), array('wp-color-picker')); + wp_enqueue_script('nextgen_admin_page', $this->get_static_url('photocrati-nextgen_admin#nextgen_admin_page.js'), array('wp-color-picker'), NGG_SCRIPT_VERSION); + wp_enqueue_style('nextgen_admin_page', $this->get_static_url('photocrati-nextgen_admin#nextgen_admin_page.css'), array('wp-color-picker'), NGG_SCRIPT_VERSION); // Ensure select2 - wp_enqueue_style('select2'); - wp_enqueue_script('select2'); + wp_enqueue_style('ngg_select2'); + wp_enqueue_script('ngg_select2'); } public function enqueue_jquery_ui_theme() { $settings = C_NextGen_Settings::get_instance(); - wp_enqueue_style($settings->jquery_ui_theme, is_ssl() ? str_replace('http:', 'https:', $settings->jquery_ui_theme_url) : $settings->jquery_ui_theme_url, NULL, $settings->jquery_ui_theme_version); + wp_enqueue_style($settings->jquery_ui_theme, is_ssl() ? str_replace('http:', 'https:', $settings->jquery_ui_theme_url) : $settings->jquery_ui_theme_url, FALSE, $settings->jquery_ui_theme_version); } /** * Returns the page title diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/jquery-ui/jquery-ui-1.9.1.custom.css b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/jquery-ui/jquery-ui-1.9.1.custom.css index a999b71b1..b9d77ec02 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/jquery-ui/jquery-ui-1.9.1.custom.css +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/jquery-ui/jquery-ui-1.9.1.custom.css @@ -1808,7 +1808,7 @@ body .ui-tooltip { border-radius: 3px; } -/* Everything that follows was added by Photocrati */ +/* Everything that follows was added by Imagely */ .ui-icon { float: left; } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/ngg_progressbar.js b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/ngg_progressbar.js index e4ec1856c..23d7124af 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/ngg_progressbar.js +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/ngg_progressbar.js @@ -36,9 +36,6 @@ }, set: function(percent, text){ - // You can set the percentage of completion, as well as the text message to appear - if (typeof(text) == 'undefined') text = percent; - // You can optionally just pass in a message, and we'll assume that it's an infinite progress bar // and use 100 completion, with the message as the text if (isNaN(percent)) { @@ -46,6 +43,10 @@ percent = 100; } percent = percent + "%"; + + // You can set the percentage of completion, as well as the text message to appear + if (typeof(text) == 'undefined') text = percent; + this.status_el.animate({ width: percent }).text(text); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/ngg_progressbar.min.js b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/ngg_progressbar.min.js index a53405bea..8508887d6 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/ngg_progressbar.min.js +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/ngg_progressbar.min.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(2($){$.z=2(4){c g={s:{q:0,j:G,D:\'N L...\',I:\'J!\'},B:2(4){1.4=$.K(1.s,4);1.b=1.n(l).M({g:1,H:O,r:1.4.r,6:"<a F=\'i\'><a></a></a>",});1.v(l);8(1.4.j){1.5.w(\'.i\').E(\'j\')}1.A(1.4.q)},A:2(3,6){8(o(6)==\'m\')6=3;8(13(3)){6=3;3=Z}3=3+"%";1.x.Y({10:3}).6(6)},11:2(e){8(o(e)==\'m\')e=12;c f=1.n(l);c b=1.b;14(2(){f.X(b)},e)},h:2(9){c 7=9;W{R(7.t!==7.u.t)7=7.u}P(C){8(o(y)!="m")y.Q(C)}d 7},n:2(9){d 1.h(9).k.f},v:2(9){c p=\'#f-S-\'+1.b;1.5=$(p);8(1.5.T==0){1.5=1.h(9).k(p)}1.x=1.5.w(\'.i:V a\');1.5.U(\'z\',1);d 1.5}};g.B(4);d g}})(k);',62,67,'|this|function|percent|options|gritter_el|text|retval|if|win|div|gritter_id|var|return|delay|gritter|progressBar|find_parent|ngg_progressbar|infinite|jQuery|window|undefined|find_gritter|typeof|selector|starting_value|title|defaults|document|parent|find_gritter_el|find|status_el|console|nggProgressBar|set|init|ex|in_progress_text|addClass|class|false|sticky|finished_text|Done|extend|progress|add|In|true|catch|log|while|item|length|data|first|try|remove|animate|100|width|close|1000|isNaN|setTimeout'.split('|'),0,{})) +eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(2($){$.z=2(4){c g={s:{q:0,j:G,D:\'N L...\',I:\'J!\'},B:2(4){1.4=$.K(1.s,4);1.b=1.n(l).M({g:1,H:O,r:1.4.r,6:"<a F=\'i\'><a></a></a>",});1.v(l);8(1.4.j){1.5.w(\'.i\').E(\'j\')}1.A(1.4.q)},A:2(3,6){8(13(3)){6=3;3=Z}3=3+"%";8(o(6)==\'m\')6=3;1.x.Y({10:3}).6(6)},11:2(e){8(o(e)==\'m\')e=12;c f=1.n(l);c b=1.b;14(2(){f.X(b)},e)},h:2(9){c 7=9;W{R(7.t!==7.u.t)7=7.u}P(C){8(o(y)!="m")y.Q(C)}d 7},n:2(9){d 1.h(9).k.f},v:2(9){c p=\'#f-S-\'+1.b;1.5=$(p);8(1.5.T==0){1.5=1.h(9).k(p)}1.x=1.5.w(\'.i:V a\');1.5.U(\'z\',1);d 1.5}};g.B(4);d g}})(k);',62,67,'|this|function|percent|options|gritter_el|text|retval|if|win|div|gritter_id|var|return|delay|gritter|progressBar|find_parent|ngg_progressbar|infinite|jQuery|window|undefined|find_gritter|typeof|selector|starting_value|title|defaults|document|parent|find_gritter_el|find|status_el|console|nggProgressBar|set|init|ex|in_progress_text|addClass|class|false|sticky|finished_text|Done|extend|progress|add|In|true|catch|log|while|item|length|data|first|try|remove|animate|100|width|close|1000|isNaN|setTimeout'.split('|'),0,{})) diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/select2/select2.modded.min.js b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/select2/select2.modded.min.js index 3e5adad15..c1e98f9d7 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/select2/select2.modded.min.js +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_admin/static/select2/select2.modded.min.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(5($){if(3i $.fn.2D=="1h"){$.3a($.fn,{2D:5(c){14 j=$([0]),i=-1,l=3.1d;6N(++i<l&&(j.21=j[0]=3[i])&&c.1Z(j[0],i,j)!==1e);11 3}})}})(8F);(5($,1h){"9I g1";if(1J.4m!==1h){11}14 5C,7R,79,4A,3F,6s={x:0,y:0},$1X,68,1m={5h:9,3u:13,5m:27,fd:32,5o:37,4t:38,5Y:39,5j:40,aL:16,9Q:17,9N:18,82:33,86:34,fE:36,gY:35,4D:8,6i:46,gU:5(k){k=k.1x?k.1x:k;6k(k){2d 1m.5o:2d 1m.5Y:2d 1m.4t:2d 1m.5j:11 1l}11 1e},7W:5(e){14 k=e.1x;6k(k){2d 1m.aL:2d 1m.9Q:2d 1m.9N:11 1l}if(e.7Y)11 1l;11 1e},84:5(k){k=k.1x?k.1x:k;11 k>=gP&&k<=gQ}},8K="<1U 1t=\'6-gS-gR\'></1U>",8L={"\\h1":"A","\\h2":"A","\\he":"A","\\hh":"A","\\ha":"A","\\h9":"A","\\h6":"A","\\h8":"A","\\h7":"A","\\gM":"A","\\gL":"A","\\gp":"A","\\go":"A","\\gr":"A","\\gn":"A","\\gg":"A","\\gj":"A","\\gv":"A","\\gw":"A","\\gI":"A","\\gD":"A","\\gy":"A","\\gx":"A","\\gz":"A","\\gA":"A","\\gB":"A","\\gC":"A","\\gE":"A","\\gJ":"A","\\gK":"A","\\gH":"A","\\gF":"A","\\gG":"A","\\gk":"gl","\\gi":"8h","\\gf":"8h","\\gh":"8h","\\gm":"gs","\\gu":"gq","\\h5":"9F","\\h3":"9F","\\h4":"hg","\\hf":"B","\\hc":"B","\\hd":"B","\\gN":"B","\\gO":"B","\\gT":"B","\\gZ":"B","\\h0":"B","\\gX":"C","\\gV":"C","\\gW":"C","\\ge":"C","\\gd":"C","\\fx":"C","\\fy":"C","\\fw":"C","\\fv":"C","\\ft":"C","\\fu":"C","\\fz":"D","\\fA":"D","\\fF":"D","\\fG":"D","\\fD":"D","\\fB":"D","\\fC":"D","\\fs":"D","\\fr":"D","\\fg":"D","\\fh":"D","\\ff":"D","\\fe":"D","\\fb":"8M","\\fc":"8M","\\fi":"96","\\fp":"96","\\fq":"E","\\fo":"E","\\fm":"E","\\fk":"E","\\fl":"E","\\fH":"E","\\fI":"E","\\g3":"E","\\g4":"E","\\g2":"E","\\fZ":"E","\\g0":"E","\\g5":"E","\\g6":"E","\\gb":"E","\\gc":"E","\\ga":"E","\\g9":"E","\\g7":"E","\\g8":"E","\\fY":"E","\\fX":"E","\\fN":"E","\\fa":"E","\\fO":"E","\\fM":"E","\\fL":"E","\\fJ":"E","\\fK":"E","\\fP":"F","\\fQ":"F","\\fV":"F","\\fW":"F","\\fU":"F","\\fT":"G","\\fR":"G","\\fS":"G","\\hi":"G","\\hj":"G","\\iO":"G","\\iP":"G","\\iN":"G","\\iM":"G","\\iK":"G","\\iL":"G","\\iQ":"G","\\iR":"G","\\iW":"G","\\iX":"H","\\iV":"H","\\iU":"H","\\iS":"H","\\iT":"H","\\iJ":"H","\\iI":"H","\\iy":"H","\\iz":"H","\\ix":"H","\\iw":"H","\\ir":"H","\\iu":"H","\\iv":"I","\\iA":"I","\\iB":"I","\\iG":"I","\\iH":"I","\\iF":"I","\\iE":"I","\\iC":"I","\\iD":"I","\\iY":"I","\\iZ":"I","\\jk":"I","\\jl":"I","\\jj":"I","\\ji":"I","\\jg":"I","\\jh":"I","\\jm":"I","\\jn":"I","\\js":"J","\\jt":"J","\\jr":"J","\\jq":"J","\\jo":"K","\\jp":"K","\\jf":"K","\\je":"K","\\j4":"K","\\j5":"K","\\j3":"K","\\j2":"K","\\j0":"K","\\j1":"K","\\j6":"K","\\j7":"K","\\jc":"K","\\jd":"L","\\jb":"L","\\ja":"L","\\j8":"L","\\j9":"L","\\iq":"L","\\ip":"L","\\hG":"L","\\hH":"L","\\hF":"L","\\hE":"L","\\hC":"L","\\hD":"L","\\hI":"L","\\hJ":"L","\\hO":"L","\\hP":"L","\\hN":"hM","\\hK":"hL","\\hB":"M","\\hA":"M","\\hp":"M","\\hq":"M","\\ho":"M","\\hn":"M","\\hk":"M","\\hl":"N","\\hm":"N","\\hr":"N","\\hs":"N","\\hy":"N","\\hz":"N","\\hx":"N","\\hw":"N","\\ht":"N","\\hu":"N","\\hQ":"N","\\hR":"N","\\ic":"N","\\ie":"N","\\ib":"N","\\ia":"i8","\\i9":"ig","\\ih":"O","\\im":"O","\\io":"O","\\il":"O","\\ik":"O","\\ii":"O","\\ij":"O","\\i7":"O","\\i6":"O","\\hW":"O","\\hX":"O","\\hV":"O","\\hU":"O","\\hS":"O","\\hT":"O","\\hY":"O","\\hZ":"O","\\i4":"O","\\i5":"O","\\i3":"O","\\i2":"O","\\i0":"O","\\i1":"O","\\ju":"O","\\dA":"O","\\bt":"O","\\bw":"O","\\bl":"O","\\bk":"O","\\bm":"O","\\bn":"O","\\bp":"O","\\bx":"O","\\bI":"O","\\bK":"O","\\bF":"O","\\bz":"O","\\bB":"O","\\bD":"O","\\aY":"O","\\aW":"O","\\aU":"O","\\b3":"b5","\\b4":"b9","\\cw":"cr","\\cM":"P","\\cE":"P","\\cG":"P","\\cF":"P","\\c1":"P","\\c0":"P","\\bV":"P","\\bO":"P","\\bN":"P","\\cd":"Q","\\cc":"Q","\\cb":"Q","\\c8":"Q","\\c9":"Q","\\c7":"R","\\c6":"R","\\c4":"R","\\c5":"R","\\ca":"R","\\cg":"R","\\ch":"R","\\cf":"R","\\ce":"R","\\c3":"R","\\c2":"R","\\bS":"R","\\bT":"R","\\bR":"R","\\bQ":"R","\\bP":"R","\\bU":"S","\\bZ":"S","\\bY":"S","\\bW":"S","\\bX":"S","\\ci":"S","\\cj":"S","\\cD":"S","\\cB":"S","\\cC":"S","\\cH":"S","\\cI":"S","\\cN":"S","\\cO":"S","\\cL":"S","\\cJ":"S","\\cK":"T","\\cA":"T","\\cz":"T","\\cp":"T","\\cq":"T","\\co":"T","\\cn":"T","\\ck":"T","\\cl":"T","\\cs":"T","\\cx":"T","\\cy":"T","\\bM":"T","\\cv":"T","\\ct":"cu","\\cP":"U","\\bA":"U","\\b7":"U","\\b6":"U","\\ba":"U","\\bb":"U","\\bg":"U","\\bf":"U","\\bc":"U","\\bd":"U","\\bi":"U","\\aZ":"U","\\aS":"U","\\aV":"U","\\aX":"U","\\b1":"U","\\b0":"U","\\b2":"U","\\aT":"U","\\bh":"U","\\bL":"U","\\bC":"U","\\bj":"U","\\bE":"U","\\bJ":"U","\\bH":"U","\\by":"U","\\bo":"U","\\bq":"U","\\br":"U","\\bs":"U","\\f9":"U","\\eq":"U","\\er":"V","\\ep":"V","\\es":"V","\\et":"V","\\eh":"V","\\eg":"V","\\e5":"V","\\e6":"e4","\\e3":"W","\\cQ":"W","\\e2":"W","\\ef":"W","\\eb":"W","\\f0":"W","\\eX":"W","\\eU":"W","\\f5":"W","\\f3":"X","\\f4":"X","\\eT":"X","\\eI":"X","\\eJ":"Y","\\eH":"Y","\\eF":"Y","\\eN":"Y","\\dZ":"Y","\\de":"Y","\\df":"Y","\\dd":"Y","\\dc":"Y","\\d9":"Y","\\da":"Y","\\dh":"Y","\\dm":"Y","\\dn":"Y","\\dl":"Z","\\dk":"Z","\\di":"Z","\\d8":"Z","\\d7":"Z","\\cX":"Z","\\cR":"Z","\\cS":"Z","\\cT":"Z","\\d5":"Z","\\d6":"Z","\\d4":"Z","\\d3":"Z","\\dM":"a","\\dL":"a","\\dT":"a","\\dG":"a","\\dB":"a","\\dC":"a","\\dD":"a","\\dE":"a","\\dF":"a","\\dy":"a","\\dx":"a","\\ds":"a","\\dr":"a","\\dq":"a","\\dt":"a","\\du":"a","\\dw":"a","\\dv":"a","\\dH":"a","\\dI":"a","\\dS":"a","\\dU":"a","\\dV":"a","\\dX":"a","\\dW":"a","\\dR":"a","\\dQ":"a","\\dK":"a","\\dJ":"a","\\dN":"a","\\dP":"a","\\dO":"a","\\dp":"a","\\do":"a","\\d2":"aa","\\d1":"ae","\\d0":"ae","\\cZ":"ae","\\cY":"ao","\\cU":"au","\\cV":"av","\\cW":"av","\\dj":"ay","\\dg":"b","\\db":"b","\\dY":"b","\\eM":"b","\\eO":"b","\\eP":"b","\\eR":"b","\\eQ":"b","\\eL":"c","\\eK":"c","\\eE":"c","\\eD":"c","\\eG":"c","\\eS":"c","\\f6":"c","\\f8":"c","\\f7":"c","\\f2":"c","\\f1":"c","\\eW":"c","\\eV":"d","\\eY":"d","\\eZ":"d","\\eC":"d","\\eB":"d","\\ea":"d","\\e9":"d","\\ec":"d","\\ed":"d","\\ee":"d","\\e8":"d","\\e7":"d","\\e1":"d","\\e0":"dz","\\ev":"dz","\\eu":"e","\\ew":"e","\\ey":"e","\\eA":"e","\\ez":"e","\\ek":"e","\\ej":"e","\\ei":"e","\\eo":"e","\\bu":"e","\\bv":"e","\\bG":"e","\\b8":"e","\\fj":"e","\\lq":"e","\\oX":"e","\\oY":"e","\\oW":"e","\\oV":"e","\\oT":"e","\\oU":"e","\\oZ":"e","\\p0":"e","\\p5":"e","\\p4":"e","\\p3":"e","\\p1":"e","\\p2":"e","\\oS":"e","\\oR":"e","\\oI":"f","\\oJ":"f","\\oH":"f","\\oG":"f","\\oE":"f","\\oF":"g","\\oK":"g","\\oL":"g","\\oQ":"g","\\oP":"g","\\oO":"g","\\oM":"g","\\oN":"g","\\p6":"g","\\p7":"g","\\ps":"g","\\pr":"g","\\pq":"g","\\po":"g","\\pp":"h","\\pu":"h","\\pv":"h","\\pB":"h","\\pA":"h","\\pz":"h","\\pw":"h","\\py":"h","\\pn":"h","\\pm":"h","\\pd":"h","\\pe":"h","\\pb":"h","\\pa":"h","\\p8":"hv","\\p9":"i","\\pf":"i","\\pg":"i","\\pl":"i","\\pk":"i","\\pj":"i","\\ph":"i","\\pi":"i","\\oD":"i","\\oC":"i","\\nU":"i","\\nV":"i","\\nT":"i","\\nS":"i","\\nQ":"i","\\nR":"i","\\nW":"i","\\nX":"i","\\o2":"i","\\o1":"j","\\o0":"j","\\nY":"j","\\nZ":"j","\\nP":"j","\\nO":"k","\\nF":"k","\\nG":"k","\\nE":"k","\\nD":"k","\\nB":"k","\\nC":"k","\\nH":"k","\\nI":"k","\\nN":"k","\\pD":"k","\\nM":"k","\\nL":"k","\\nJ":"l","\\nK":"l","\\o3":"l","\\o4":"l","\\ot":"l","\\os":"l","\\oq":"l","\\om":"l","\\op":"l","\\ov":"l","\\ow":"l","\\oB":"l","\\oA":"l","\\oz":"l","\\ox":"l","\\oy":"l","\\ol":"l","\\ok":"l","\\o9":"lj","\\oa":"m","\\o8":"m","\\o7":"m","\\o5":"m","\\o6":"m","\\ob":"m","\\oc":"m","\\oj":"n","\\oh":"n","\\og":"n","\\od":"n","\\oe":"n","\\pC":"n","\\qn":"n","\\qO":"n","\\qN":"n","\\qM":"n","\\qQ":"n","\\qV":"n","\\qU":"n","\\qT":"n","\\qS":"n","\\qL":"n","\\qK":"nj","\\qD":"o","\\qC":"o","\\qB":"o","\\qz":"o","\\qX":"o","\\qE":"o","\\qF":"o","\\qJ":"o","\\qI":"o","\\qH":"o","\\qG":"o","\\qW":"o","\\r7":"o","\\r8":"o","\\r6":"o","\\r5":"o","\\qZ":"o","\\r2":"o","\\qY":"o","\\r4":"o","\\r9":"o","\\pX":"o","\\pW":"o","\\pV":"o","\\pU":"o","\\pY":"o","\\pZ":"o","\\q4":"o","\\qy":"o","\\q3":"o","\\q2":"o","\\q1":"o","\\pS":"o","\\pR":"o","\\pI":"o","\\pJ":"o","\\pE":"o","\\pF":"o","\\pK":"o","\\pQ":"o","\\pP":"o","\\pO":"o","\\pM":"oi","\\qw":"ou","\\qt":"oo","\\qk":"p","\\qj":"p","\\qb":"p","\\qa":"p","\\q9":"p","\\q7":"p","\\q8":"p","\\qd":"p","\\qi":"p","\\qh":"q","\\qg":"q","\\qe":"q","\\qf":"q","\\qc":"q","\\qs":"r","\\qu":"r","\\qv":"r","\\qr":"r","\\qq":"r","\\qm":"r","\\ql":"r","\\qo":"r","\\qp":"r","\\q6":"r","\\q5":"r","\\pN":"r","\\pL":"r","\\pG":"r","\\pH":"r","\\q0":"r","\\pT":"s","\\qx":"s","\\qA":"s","\\r0":"s","\\r1":"s","\\r3":"s","\\qR":"s","\\qP":"s","\\nz":"s","\\kQ":"s","\\kR":"s","\\kP":"s","\\kO":"s","\\kM":"s","\\kN":"s","\\kS":"s","\\kT":"s","\\kY":"t","\\kX":"t","\\kW":"t","\\kU":"t","\\kV":"t","\\kL":"t","\\kK":"t","\\kA":"t","\\kB":"t","\\kz":"t","\\ky":"t","\\kw":"t","\\kx":"t","\\kC":"t","\\kD":"t","\\kI":"kJ","\\kH":"u","\\kG":"u","\\kE":"u","\\kF":"u","\\kZ":"u","\\l0":"u","\\ln":"u","\\lo":"u","\\lm":"u","\\ll":"u","\\lh":"u","\\lk":"u","\\lp":"u","\\nA":"u","\\lw":"u","\\jv":"u","\\lv":"u","\\lu":"u","\\lr":"u","\\ls":"u","\\lg":"u","\\lf":"u","\\l5":"u","\\l6":"u","\\l4":"u","\\l3":"u","\\l1":"u","\\l2":"u","\\l7":"u","\\l8":"u","\\ld":"u","\\le":"u","\\lc":"u","\\lb":"v","\\l9":"v","\\la":"v","\\kv":"v","\\ku":"v","\\jQ":"v","\\jR":"v","\\jP":"jO","\\jM":"w","\\jN":"w","\\jS":"w","\\jT":"w","\\jY":"w","\\jX":"w","\\jW":"w","\\jU":"w","\\jV":"w","\\jL":"w","\\jK":"x","\\jA":"x","\\jB":"x","\\jz":"x","\\jy":"y","\\jw":"y","\\jx":"y","\\jC":"y","\\jD":"y","\\jI":"y","\\jJ":"y","\\jH":"y","\\jG":"y","\\jE":"y","\\jF":"y","\\jZ":"y","\\k0":"y","\\kl":"y","\\km":"y","\\kk":"z","\\kj":"z","\\kh":"z","\\ki":"z","\\kn":"z","\\ko":"z","\\kt":"z","\\ks":"z","\\kr":"z","\\kp":"z","\\kq":"z","\\kg":"z","\\kf":"z","\\k5":"\\k6","\\k4":"\\k3","\\k1":"\\k2","\\k7":"\\8E","\\k8":"\\8E","\\kd":"\\ke","\\kc":"\\8D","\\kb":"\\8D","\\k9":"\\ka","\\lx":"\\ly","\\mU":"\\mV","\\mT":"\\mS","\\mQ":"\\7v","\\mR":"\\7v","\\mW":"\\7v","\\mX":"\\n2","\\n1":"\\7w","\\n0":"\\7w","\\mY":"\\7w","\\8B":"\\8B","\\mZ":"\\mP"};$1X=$(1X);4A=(5(){14 8C=1;11 5(){11 8C++}}());5 7g(12){14 2k=$(1X.mO(\'\'));12.6u(2k);2k.6u(12);2k.3r()}5 4i(8J){5 26(a){11 8L[a]||a}11 8J.5i(/[^\\mE-\\mF]/g,26)}5 2m(25,7o){14 i=0,l=7o.1d;1N(;i<l;i=i+1){if(2s(25,7o[i]))11 i}11-1}5 8N(){14 $4v=$(8K);$4v.4T(1X.2V);14 8w={1r:$4v.1r()-$4v[0].mD,3l:$4v.3l()-$4v[0].8S};$4v.3r();11 8w}5 2s(a,b){if(a===b)11 1l;if(a===1h||b===1h)11 1e;if(a===1o||b===1o)11 1e;if(a.3f===7c)11 a+\'\'===b+\'\';if(b.3f===7c)11 b+\'\'===a+\'\';11 1e}5 6Z(4o,3e,8v){14 19,i,l;if(4o===1o||4o.1d<1)11[];19=4o.5O(3e);1N(i=0,l=19.1d;i<l;i=i+1)19[i]=8v(19[i]);11 19}5 7T(12){11 12.2I(1e)-12.1r()}5 75(12){14 5k="4F-2W-25";12.on("6o",5(){if($.7(12,5k)===1h){$.7(12,5k,12.19())}});12.on("4F",5(){14 19=$.7(12,5k);if(19!==1h&&12.19()!==19){$.7e(12,5k);12.1L("4F-2W")}})}5 9j(12){12.on("5f",5(e){14 6y=6s;if(6y===1h||6y.x!==e.9d||6y.y!==e.9i){$(e.4C).1L("5f-2X",e)}})}5 6g(5r,fn,6F){6F=6F||1h;14 4y;11 5(){14 28=1K;1J.97(4y);4y=1J.51(5(){fn.2h(6F,28)},5r)}}5 8r(9l,12){14 9h=6g(9l,5(e){12.1L("3y-8s",e)});12.on("3y",5(e){if(2m(e.4C,12.2r())>=0)9h(e)})}5 1s($el){if($el[0]===1X.69)11;1J.51(5(){14 el=$el[0],4J=$el.19().1d,3Z;$el.1s();14 9f=(el.mC>0||el.mA>0);if(9f&&el===1X.69){if(el.63){el.63(4J,4J)}1k if(el.64){3Z=el.64();3Z.aA(1e);3Z.1A()}}},0)}5 9Y(el){el=$(el)[0];14 1I=0;14 1d=0;if(\'8P\'in el){1I=el.8P;1d=el.mB-1I}1k if(\'1q\'in 1X){el.1s();14 7B=1X.1q.9n();1d=1X.1q.9n().1j.1d;7B.mG(\'7X\',-el.25.1d);1I=7B.1j.1d-1d}11{1I:1I,1d:1d}}5 1O(2p){2p.5Q();2p.4Q()}5 aH(2p){2p.5Q();2p.9M()}5 a0(e){if(!3F){14 2c=e[0].mH||1J.mM(e[0],1o);3F=$(1X.5v("1U")).1Y({8U:"mN",2Q:"-9w",23:"-9w",62:"65",9t:2c.9t,9p:2c.9p,9q:2c.9q,9r:2c.9r,9b:2c.9b,8W:2c.8W,mL:"mK"});3F.1f("1t","6-3F");$(1X.2V).48(3F)}3F.1j(e.19());11 3F.1r()}5 5l(73,8V,8R){14 3d,6A=[],6H;3d=$.4W(73.1f("1t"));if(3d){3d=\'\'+3d;$(3d.5O(/\\s+/)).2D(5(){if(3.2m("6-")===0){6A.1Q(3)}})}3d=$.4W(8V.1f("1t"));if(3d){3d=\'\'+3d;$(3d.5O(/\\s+/)).2D(5(){if(3.2m("6-")!==0){6H=8R(3);if(6H){6A.1Q(6H)}}})}73.1f("1t",6A.5p(" "))}5 6r(1j,1C,2L,2a){14 26=4i(1j.6L()).2m(4i(1C.6L())),7d=1C.1d;if(26<0){2L.1Q(2a(1j));11}2L.1Q(2a(1j.56(0,26)));2L.1Q("<45 1t=\'6-26\'>");2L.1Q(2a(1j.56(26,26+7d)));2L.1Q("</45>");2L.1Q(2a(1j.56(26+7d,1j.1d)))}5 8k(2L){14 99={\'\\\\\':\'\\',\'&\':\'&mI;\',\'<\':\'<\',\'>\':\'>\',\'"\':\'&mJ;\',"\'":\''\',"/":\'/\'};11 7c(2L).5i(/[&<>"\'\\/\\\\]/g,5(26){11 99[26]})}5 2Y(1H){14 4y,5w=1o,5r=1H.5r||n3,4p=1H.3o,1c=3;11 5(1p){1J.97(4y);4y=1J.51(5(){14 7=1H.7,3o=4p,5c=1H.5c||$.fn.6.7F.5c,93={2o:1H.2o||\'aE\',7n:1H.7n||1e,91:1H.91||1h,5J:1H.5J||"aR"},31=$.3a({},$.fn.6.7F.31,93);7=7?7.1Z(1c,1p.1C,1p.2M,1p.21):1o;3o=(3i 3o===\'5\')?3o.1Z(1c,1p.1C,1p.2M,1p.21):3o;if(5w&&3i 5w.95==="5"){5w.95()}if(1H.31){if($.2N(1H.31)){$.3a(31,1H.31.1Z(1c))}1k{$.3a(31,1H.31)}}$.3a(31,{3o:3o,5J:1H.5J,7:7,n4:5(7){14 1b=1H.1b(7,1p.2M,1p);1p.1V(1b)},9y:5(5d,5b,58){14 1b={aB:1l,5d:5d,5b:5b,58:58};1p.1V(1b)}});5w=5c.1Z(1c,31)},5r)}}5 5R(1H){14 7=1H,8f,5t,1j=5(2J){11""+2J.1j};if($.5S(7)){5t=7;7={1b:5t}}if($.2N(7)===1e){5t=7;7=5(){11 5t}}14 6O=7();if(6O.1j){1j=6O.1j;if(!$.2N(1j)){8f=6O.1j;1j=5(2J){11 2J[8f]}}}11 5(1p){14 t=1p.1C,2X={1b:[]},3X;if(t===""){1p.1V(7());11}3X=5(2A,4E){14 2F,1f;2A=2A[0];if(2A.1F){2F={};1N(1f in 2A){if(2A.nq(1f))2F[1f]=2A[1f]}2F.1F=[];$(2A.1F).2D(5(i,94){3X(94,2F.1F)});if(2F.1F.1d||1p.30(t,1j(2F),2A)){4E.1Q(2F)}}1k{if(1p.30(t,1j(2A),2A)){4E.1Q(2A)}}};$(7().1b).2D(5(i,2A){3X(2A,2X.1b)});1p.1V(2X)}}5 29(7){14 9a=$.2N(7);11 5(1p){14 t=1p.1C,2X={1b:[]};14 1y=9a?7(1p):7;if($.5S(1y)){$(1y).2j(5(){14 8c=3.1j!==1h,1j=8c?3.1j:3;if(t===""||1p.30(t,1j)){2X.1b.1Q(8c?3:{id:3,1j:3})}});1p.1V(2X)}}}5 3N(6E,90){if($.2N(6E))11 1l;if(!6E)11 1e;if(3i(6E)===\'4o\')11 1l;3b 3q 5z(90+" 8y be a 4o, 5, or nr 25")}5 2b(19,21){if($.2N(19)){14 28=9B.3J.59.1Z(1K,2);11 19.2h(21,28)}11 19}5 7h(1b){14 6z=0;$.2j(1b,5(i,2J){if(2J.1F){6z+=7h(2J.1F)}1k{6z++}});11 6z}5 a8(1z,1q,8Z,4){14 8Y=1z,6G=1e,3c,1E,i,l,3e;if(!4.3K||!4.57||4.57.1d<1)11 1h;6N(1l){1E=-1;1N(i=0,l=4.57.1d;i<l;i++){3e=4.57[i];1E=1z.2m(3e);if(1E>=0)54}if(1E<0)54;3c=1z.56(0,1E);1z=1z.56(1E+3e.1d);if(3c.1d>0){3c=4.3K.1Z(3,3c,1q);if(3c!==1h&&3c!==1o&&4.id(3c)!==1h&&4.id(3c)!==1o){6G=1e;1N(i=0,l=1q.1d;i<l;i++){if(2s(4.id(3c),4.id(1q[i]))){6G=1l;54}}if(!6G)8Z(3c)}}}if(8Y!==1z)11 1z}5 6p(){14 1c=3;$.2j(1K,5(i,12){1c[12].3r();1c[12]=1o})}5 61(83,9o){14 3f=5(){};3f.3J=3q 83;3f.3J.3f=3f;3f.3J.2w=83.3J;3f.3J=$.3a(3f.3J,9o);11 3f}5C=61(np,{1w:5(9u){14 1c=3;11 5(){9u.2h(1c,1K)}},aq:5(4){14 1b,15,3O=".6-1b";3.4=4=3.4M(4);3.id=4.id;if(4.12.7("6")!==1h&&4.12.7("6")!==1o){4.12.7("6").4d()}3.1a=3.74();3.2Z=$(\'.6-6J-9m\');if(3.2Z.1d==0){3.2Z=$("<45>",{3H:"nn","4b-nl":"nm"}).1v("6-6J-9m").4T(1X.2V)}3.7Q="ns"+(4.12.1f("id")||"nt"+4A());3.7A=3.7Q.5i(/([.])/g,\'ny\').5i(/([;&,\\-\\.\\+\\*\\~\':"\\!\\^#$%@\\[\\]\\(\\)=>\\|])/g,\'\\\\$1\');3.1a.1f("id",3.7Q);3.1a.1f("6c",4.12.1f("6c"));3.2V=$(1X.2V);5l(3.1a,3.4.12,3.4.7E);3.1a.1f("2c",4.12.1f("2c"));3.1a.1Y(2b(4.9H,3.4.12));3.1a.1v(2b(4.7l,3.4.12));3.55=3.4.12.1f("3R");3.4.12.7("6",3).1f("3R","-1").6u(3.1a).on("3n.6",1O);3.1a.7("6",3);3.1i=3.1a.1u(".6-1R");5l(3.1i,3.4.12,3.4.7D);3.1i.1v(2b(4.7k,3.4.12));3.1i.7("6",3);3.1i.on("3n",1O);3.1b=1b=3.1a.1u(3O);3.15=15=3.1a.1u("1z.6-1z");3.7q=0;3.4h=0;3.21=1o;3.7U();3.1a.on("3n",1O);9j(3.1b);3.1i.on("5f-2X",3O,3.1w(3.5K));3.1i.on("4k 9x 85",3O,3.1w(5(2p){3.7P=1l;3.5K(2p)}));3.1i.on("9x",3O,3.1w(3.aw));3.1i.on("4k 85",3O,3.1w(3.7I));3.1i.on(\'3n\',3.1w(5(2p){if(3.7P){3.7P=1e;3.3t()}}));8r(80,3.1b);3.1i.on("3y-8s",3O,3.1w(3.5V));$(3.1a).on("2W",".6-1z",5(e){e.4Q()});$(3.1i).on("2W",".6-1z",5(e){e.4Q()});if($.fn.8u){1b.8u(5(e,7t,nx,5g){14 23=1b.2K();if(5g>0&&23-5g<=0){1b.2K(0);1O(e)}1k if(5g<0&&1b.2r(0).7a-1b.2K()+5g<=1b.3l()){1b.2K(1b.2r(0).7a-1b.3l());1O(e)}})}75(15);15.on("4F-2W 1z 9T",3.1w(3.3V));15.on("1s",5(){15.1v("6-5y")});15.on("3v",5(){15.1W("6-5y")});3.1i.on("8q",3O,3.1w(5(e){if($(e.4C).5e(".6-1y-2S").1d>0){3.5K(e);3.3t(e)}}));3.1i.on("3n 8q 4B 4k 85 nw",5(e){e.4Q()});3.2t=1h;if($.2N(3.4.1T)){3.1T();3.9k()}if(4.4Y!==1o){3.15.1f("nu",4.4Y)}14 1B=4.12.24("1B");if(1B===1h)1B=1e;3.5a(!1B);14 2q=4.12.24("2q");if(2q===1h)2q=1e;3.2q(2q);68=68||8N();3.4H=4.12.24("4H");4.12.24("4H",1e);if(3.4H)3.1s();3.15.1f("2k",4.ad)},4d:5(){14 12=3.4.12,6=12.7("6"),1c=3;3.1D();if(12.1d&&12[0].8I&&1c.42){12.2j(5(){if(1c.42){3.8I("8Q",1c.42)}})}if(3.3I){3.3I.nv();3.3I=1o}3.42=1o;if(6!==1h){6.1a.3r();6.2Z.3r();6.1i.3r();12.4U().7e("6").2O(".6").24("4H",3.4H||1e);if(3.55){12.1f({3R:3.55})}1k{12.7J("3R")}12.4U()}6p.1Z(3,"1a","2Z","1i","1b","15")},4L:5(12){if(12.is("3W")){11{id:12.24("25"),1j:12.1j(),12:12.2r(),1Y:12.1f("1t"),1B:12.24("1B"),3k:2s(12.1f("3k"),"3k")||2s(12.7("3k"),1l)}}1k if(12.is("8H")){11{1j:12.1f("1P"),1F:[],12:12.2r(),1Y:12.1f("1t")}}},4M:5(4){14 12,1A,8i,4p,1c=3;12=4.12;if(12.2r(0).6D.6C()==="1A"){3.1A=1A=4.12}if(1A){$.2j(["id","3B","2Y","1p","3K","1T","7","29"],5(){if(3 in 4){3b 3q 5z("nk \'"+3+"\' is 2g ni 1N 4m a4 a3 4I a <1A> 12.")}})}4=$.3a({},{7p:5(1a,1b,1p){14 6U,id=3.4.id,2Z=3.2Z;6U=5(1b,1a,7O){14 i,l,1y,2S,1B,4P,2E,1P,5F,2P;1b=4.ag(1b,1a,1p);14 89=[];1N(i=0,l=1b.1d;i<l;i=i+1){1y=1b[i];1B=(1y.1B===1l);2S=(!1B)&&(id(1y)!==1h);4P=1y.1F&&1y.1F.1d>0;2E=$("<li></li>");2E.1v("6-1b-n9-"+7O);2E.1v("6-1y");2E.1v(2S?"6-1y-2S":"6-1y-na");if(1B){2E.1v("6-1B")}if(4P){2E.1v("6-1y-7Z-1F")}2E.1v(1c.4.af(1y));2E.1f("3H","7z");1P=$(1X.5v("1U"));1P.1v("6-1y-1P");1P.1f("id","6-1y-1P-"+4A());1P.1f("3H","3W");2P=4.at(1y,1P,1p,1c.4.2a);if(2P!==1h){1P.3w(2P);2E.48(1P)}if(4P){5F=$("<3S></3S>");5F.1v("6-1y-n8");6U(1y.1F,5F,7O+1);2E.48(5F)}2E.7("6-7",1y);89.1Q(2E[0])}1a.48(89);2Z.1j(4.8o(1b.1d))};6U(1b,1a,0)}},$.fn.6.7b,4);if(3i(4.id)!=="5"){8i=4.id;4.id=5(e){11 e[8i]}}if($.5S(4.12.7("8A"))){if("29"in 4){3b"29 n7 as n5 an n6 \'7-6-29\' 9J in 1H of 4m "+4.12.1f("id")}4.29=4.12.7("8A")}if(1A){4.1p=3.1w(5(1p){14 7={1b:[],20:1e},1C=1p.1C,1F,2e,3X;3X=5(12,4E){14 2F;if(12.is("3W")){if(1p.30(1C,12.1j(),12)){4E.1Q(1c.4L(12))}}1k if(12.is("8H")){2F=1c.4L(12);12.1F().2D(5(i,3j){3X(3j,2F.1F)});if(2F.1F.1d>0){4E.1Q(2F)}}};1F=12.1F();if(3.3Y()!==1h&&1F.1d>0){2e=3.4f();if(2e){1F=1F.2g(2e)}}1F.2D(5(i,3j){3X(3j,7.1b)});1p.1V(7)});4.id=5(e){11 e.id}}1k{if(!("1p"in 4)){if("2Y"in 4){4p=4.12.7("2Y-3o");if(4p&&4p.1d>0){4.2Y.3o=4p}4.1p=2Y.1Z(4.12,4.2Y)}1k if("7"in 4){4.1p=5R(4.7)}1k if("29"in 4){4.1p=29(4.29);if(4.3K===1h){4.3K=5(1C){11{id:$.4W(1C),1j:$.4W(1C)}}}if(4.1T===1h){4.1T=5(12,1V){14 7=[];$(6Z(12.19(),4.3e,4.6P)).2j(5(){14 5X={id:3,1j:3},29=4.29;if($.2N(29))29=29();$(29).2j(5(){if(2s(3.id,5X.id)){5X=3;11 1e}});7.1Q(5X)});1V(7)}}}}}if(3i(4.1p)!=="5"){3b"1p 5 2g 7N 1N 4m "+4.12.1f("id")}if(4.3Q===\'23\'){4.3Q=5(5u,2J){5u.nb(2J)}}1k if(4.3Q===\'6e\'){4.3Q=5(5u,2J){5u.1Q(2J)}}1k if(3i(4.3Q)!=="5"){3b"nc 3Q 3W 8y be \'23\', \'6e\' or a nh 5"}11 4},9k:5(){14 el=3.4.12,6t,1c=3;el.on("2W.6",3.1w(5(e){if(3.4.12.7("6-2W-87")!==1l){3.1T()}}));3.42=3.1w(5(){14 1B=el.24("1B");if(1B===1h)1B=1e;3.5a(!1B);14 2q=el.24("2q");if(2q===1h)2q=1e;3.2q(2q);if(3.1a){5l(3.1a,3.4.12,3.4.7E);3.1a.1v(2b(3.4.7l,3.4.12))}if(3.1i){5l(3.1i,3.4.12,3.4.7D);3.1i.1v(2b(3.4.7k,3.4.12))}});if(el.1d&&el[0].9s){el.2j(5(){3.9s("8Q",1c.42)})}6t=1J.ng||1J.nf||1J.nd;if(6t!==1h){if(3.3I){9V 3.3I;3.3I=1o}3.3I=3q 6t(5(8T){$.2j(8T,1c.42)});3.3I.ne(el.2r(0),{mz:1l,my:1e})}},8m:5(7){14 2U=$.2x("6-lT",{19:3.id(7),a5:7,1g:7});3.4.12.1L(2U);11!2U.6M()},1G:5(4N){4N=4N||{};4N=$.3a({},4N,{2o:"2W",19:3.19()});3.4.12.7("6-2W-87",1l);3.4.12.1L(4N);3.4.12.7("6-2W-87",1e);3.4.12.3n();if(3.4.ab)3.4.12.3v()},2B:5(){11 3.8l===1l},4l:5(){14 2n=3.6f&&!3.6q,1B=!2n;if(2n===3.8l)11 1e;3.1a.6b("6-1a-1B",1B);3.1D();3.8l=2n;11 1l},5a:5(2n){if(2n===1h)2n=1l;if(3.6f===2n)11;3.6f=2n;3.4.12.24("1B",!2n);3.4l()},a6:5(){3.5a(1e)},2q:5(2n){if(2n===1h)2n=1e;if(3.6q===2n)11;3.6q=2n;3.4.12.24("2q",2n);3.4l()},22:5(){11(3.1a)?3.1a.2y("6-1i-2l"):1e},3L:5(){14 $1i=3.1i,1a=3.1a,1I=1a.1I(),3l=1a.3D(1e),1r=1a.2I(1e),52=$1i.3D(1e),$1J=$(1J),7i=$1J.1r(),7f=$1J.3l(),60=$1J.9g()+7i,77=$1J.2K()+7f,5I=1I.23+3l,4X=1I.2Q,8d=5I+52<=77,8e=(1I.23-52)>=$1J.2K(),3C=$1i.2I(1e),8X=5(){11 4X+3C<=60},9c=5(){11 1I.2Q+60+1a.2I(1e)>3C},98=$1i.2y("6-1R-2C"),6a,2C,5Z,1Y,6n;if(98){2C=1l;if(!8e&&8d){5Z=1l;2C=1e}}1k{2C=1e;if(!8d&&8e){5Z=1l;2C=1l}}if(5Z){$1i.4q();1I=3.1a.1I();3l=3.1a.3D(1e);1r=3.1a.2I(1e);52=$1i.3D(1e);60=$1J.9g()+7i;77=$1J.2K()+7f;5I=1I.23+3l;4X=1I.2Q;3C=$1i.2I(1e);$1i.4U();3.4w()}if(3.4.lU){6n=$(\'.6-1b\',$1i)[0];$1i.1v(\'6-1R-4Z-1r\');$1i.1Y(\'1r\',\'\');3C=$1i.2I(1e)+(6n.7a===6n.8S?0:68.1r);3C>1r?1r=3C:3C=1r;52=$1i.3D(1e)}1k{3.1a.1W(\'6-1R-4Z-1r\')}if(3.2V.1Y(\'8U\')!==\'lS\'){6a=3.2V.1I();5I-=6a.23;4X-=6a.2Q}if(!8X()&&9c()){4X=1I.2Q+3.1a.2I(1e)-3C}1Y={2Q:4X,1r:1r};if(2C){1Y.23=1I.23-52;1Y.6e=\'4Z\';3.1a.1v("6-1R-2C");$1i.1v("6-1R-2C")}1k{1Y.23=5I;1Y.6e=\'4Z\';3.1a.1W("6-1R-2C");$1i.1W("6-1R-2C")}1Y=$.3a(1Y,2b(3.4.ai,3.4.12));$1i.1Y(1Y)},9e:5(){14 2p;if(3.22())11 1e;if(3.6f===1e||3.6q===1l)11 1e;2p=$.2x("6-4a");3.4.12.1L(2p);11!2p.6M()},7K:5(){3.1a.1W("6-1R-2C");3.1i.1W("6-1R-2C")},2l:5(){if(!3.9e())11 1e;3.4a();$1X.on("5f.8O",5(e){6s.x=e.9d;6s.y=e.9i});11 1l},4a:5(){14 3G=3.7A,3y="3y."+3G,50="50."+3G,6m="8p."+3G,2i;3.1a.1v("6-1i-2l").1v("6-1a-1S");3.7K();if(3.1i[0]!==3.2V.1F().6j()[0]){3.1i.aC().4T(3.2V)}2i=$("#6-1R-2i");if(2i.1d===0){2i=$(1X.5v("1U"));2i.1f("id","6-1R-2i").1f("1t","6-1R-2i");2i.4q();2i.4T(3.2V);2i.on("4B 4k 3n",5(e){7g(2i);14 1i=$("#6-1R"),1c;if(1i.1d>0){1c=1i.7("6");if(1c.4.7C){1c.3t({4n:1l})}1c.1D();e.5Q();e.4Q()}})}if(3.1i.3m()[0]!==2i[0]){3.1i.6u(2i)}$("#6-1R").7J("id");3.1i.1f("id","6-1R");2i.4U();3.3L();3.1i.4U();3.3L();3.1i.1v("6-1R-1S");14 7j=3;3.1a.8x().8z(1J).2j(5(){$(3).on(50+" "+3y+" "+6m,5(e){if(7j.22())7j.3L()})})},1D:5(){if(!3.22())11;14 3G=3.7A,3y="3y."+3G,50="50."+3G,6m="8p."+3G;3.1a.8x().8z(1J).2j(5(){$(3).2O(3y).2O(50).2O(6m)});3.7K();$("#6-1R-2i").4q();3.1i.7J("id");3.1i.4q();3.1a.1W("6-1i-2l").1W("6-1a-1S");3.1b.67();$1X.2O("5f.8O");3.2v();3.15.1W("6-1S");3.4.12.1L($.2x("6-1D"))},a1:5(1C){3.2l();3.15.19(1C);3.3V(1e)},2v:5(){},6S:5(){11 2b(3.4.a2,3.4.12)},8G:5(){14 1b=3.1b,1F,1E,5H,hb,5U,y,20,5W;1E=3.2R();if(1E<0)11;if(1E==0){1b.2K(0);11}1F=3.41().1u(\'.6-1y-1P\');5H=$(1F[1E]);5W=(5H.1I()||{}).23||0;hb=5W+5H.3D(1l);if(1E===1F.1d-1){20=1b.1u("li.6-20-1b");if(20.1d>0){hb=20.1I().23+20.3D(1l)}}5U=1b.1I().23+1b.3D(1e);if(hb>5U){1b.2K(1b.2K()+(hb-5U))}y=5W-1b.1I().23;if(y<0&&5H.1Y(\'62\')!=\'65\'){1b.2K(1b.2K()+y)}},41:5(){11 3.1b.1u(".6-1y-2S:2g(.6-1B):2g(.6-1n)")},8b:5(7t){14 2f=3.41(),1E=3.2R();6N(1E>-1&&1E<2f.1d){1E+=7t;14 1g=$(2f[1E]);if(1g.2y("6-1y-2S")&&!1g.2y("6-1B")&&!1g.2y("6-1n")){3.2R(1E);54}}},2R:5(1E){14 2f=3.41(),1g,7;if(1K.1d===0){11 2m(2f.4O(".6-3E")[0],2f.2r())}if(1E>=2f.1d)1E=2f.1d-1;if(1E<0)1E=0;3.5N();1g=$(2f[1E]);1g.1v("6-3E");3.15.1f("4b-lR",1g.1u(".6-1y-1P").1f("id"));3.8G();3.2Z.1j(1g.1j());7=1g.7("6-7");if(7){3.4.12.1L({2o:"6-2R",19:3.id(7),1g:7})}},5N:5(){3.1b.1u(".6-3E").1W("6-3E")},aw:5(){3.7y=1l},7I:5(){3.7y=1e},az:5(){11 3.41().1d},5K:5(2p){14 el=$(2p.4C).5e(".6-1y-2S");if(el.1d>0&&!el.is(".6-3E")){14 2f=3.41();3.2R(2f.1E(el))}1k if(el.1d==0){3.5N()}},5V:5(){14 1b=3.1b,20=1b.1u("li.6-20-1b"),7s,2M=3.4h+1,1c=3,1C=3.15.19(),21=3.21;if(20.1d===0)11;7s=20.1I().23-1b.1I().23-1b.3l();if(7s<=3.4.aG){20.1v("6-1S");3.4.1p({12:3.4.12,1C:1C,2M:2M,21:21,30:3.4.30,1V:3.1w(5(7){if(!1c.22())11;1c.4.7p.1Z(3,1b,7.1b,{1C:1C,2M:2M,21:21});1c.4x(7,1e,1e);if(7.20===1l){20.aC().4T(1b).3w(1c.4.2a(2b(1c.4.5q,1c.4.12,2M+1)));1J.51(5(){1c.5V()},10)}1k{20.3r()}1c.3L();1c.4h=2M;1c.21=7.21;3.4.12.1L({2o:"6-aF",aI:7})})})}},8a:5(){},3V:5(3z){14 15=3.15,1b=3.1b,4=3.4,7,1c=3,1z,1C=15.19(),7u=$.7(3.1a,"6-6j-1C"),7r;if(3z!==1l&&7u&&2s(1C,7u))11;$.7(3.1a,"6-6j-1C",1C);if(3z!==1l&&(3.3g===1e||!3.22())){11}5 7x(){15.1W("6-1S");1c.3L();if(1b.1u(\'.6-no-1b,.6-1q-53,.6-aK\').1d){1c.2Z.1j(1b.1j())}1k{1c.2Z.1j(1c.4.8o(1b.1u(\'.6-1y-2S:2g(".6-1n")\').1d))}}5 3A(3w){1b.3w(3w);7x()}7r=++3.7q;14 5T=3.6S();if(5T>=1){7=3.7();if($.5S(7)&&7.1d>=5T&&3N(4.6l,"6l")){3A("<li 1t=\'6-1q-53\'>"+2b(4.6l,4.12,5T)+"</li>");11}}if(15.19().1d<4.7G){if(3N(4.6V,"6V")){3A("<li 1t=\'6-no-1b\'>"+2b(4.6V,4.12,15.19(),4.7G)+"</li>")}1k{3A("")}if(3z&&3.4g)3.4g(1l);11}if(4.4Y&&15.19().1d>4.4Y){if(3N(4.6w,"6w")){3A("<li 1t=\'6-no-1b\'>"+2b(4.6w,4.12,15.19(),4.4Y)+"</li>")}1k{3A("")}11}if(4.71&&3.41().1d===0){3A("<li 1t=\'6-aK\'>"+2b(4.71,4.12)+"</li>")}15.1v("6-1S");3.5N();1z=3.8a();if(1z!=1h&&1z!=1o){15.19(1z)}3.4h=1;4.1p({12:4.12,1C:15.19(),2M:3.4h,21:1o,30:4.30,1V:3.1w(5(7){14 3T;if(7r!=3.7q){11}if(!3.22()){3.15.1W("6-1S");11}if(7.aB!==1h&&3N(4.6Q,"6Q")){3A("<li 1t=\'6-2Y-9y\'>"+2b(4.6Q,4.12,7.5d,7.5b,7.58)+"</li>");11}3.21=(7.21===1h)?1o:7.21;if(3.4.3K&&15.19()!==""){3T=3.4.3K.1Z(1c,15.19(),7.1b);if(3T!==1h&&3T!==1o&&1c.id(3T)!==1h&&1c.id(3T)!==1o){if($(7.1b).4O(5(){11 2s(1c.id(3),1c.id(3T))}).1d===0){3.4.3Q(7.1b,3T)}}}if(7.1b.1d===0&&3N(4.4u,"4u")){3A("<li 1t=\'6-no-1b\'>"+2b(4.4u,4.12,15.19())+"</li>");11}1b.67();1c.4.7p.1Z(3,1b,7.1b,{1C:15.19(),2M:3.4h,21:1o});if(7.20===1l&&3N(4.5q,"5q")){1b.48("<li 1t=\'6-20-1b\'>"+4.2a(2b(4.5q,4.12,3.4h))+"</li>");1J.51(5(){1c.5V()},10)}3.4x(7,3z);7x();3.4.12.1L({2o:"6-aF",aI:7})})})},4G:5(){3.1D()},3v:5(){if(3.4.7C)3.3t({4n:1l});3.1D();3.1a.1W("6-1a-1S");if(3.15[0]===1X.69){3.15.3v()}3.2v();3.1q.1u(".6-15-1g-1s").1W("6-15-1g-1s")},4w:5(){1s(3.15)},3t:5(1H){if(3.7y){3.7I();11}14 1E=3.2R(),3E=3.1b.1u(".6-3E"),7=3E.5e(\'.6-1y\').7("6-7");if(7){3.2R(1E);3.6W(7,1H)}1k if(1H&&1H.4n){3.1D()}},3Y:5(){14 2e;11 3.4.12.1f("2k")||3.4.12.1f("7-2k")||3.4.12.7("2k")||3.4.2k||((2e=3.4f())!==1h?2e.1j():1h)},4f:5(){if(3.1A){14 5n=3.1A.1F(\'3W\').6h();if(3.4.2e!==1h){11(3.4.2e==="6h"&&5n)||(3i 3.4.2e==="5"&&3.4.2e(3.1A))}1k if($.4W(5n.1j())===""&&5n.19()===""){11 5n}}},8n:5(){5 aP(){14 2c,6v,2z,i,l,1f;if(3.4.1r==="2O"){11 1o}1k if(3.4.1r==="12"){11 3.4.12.2I(1e)===0?\'4Z\':3.4.12.2I(1e)+\'px\'}1k if(3.4.1r==="8t"||3.4.1r==="aM"){2c=3.4.12.1f(\'2c\');if(2c!==1h){6v=2c.5O(\';\');1N(i=0,l=6v.1d;i<l;i=i+1){1f=6v[i].5i(/\\s/g,\'\');2z=1f.26(/^1r:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i);if(2z!==1o&&2z.1d>=1)11 2z[1]}}if(3.4.1r==="aM"){2c=3.4.12.1Y(\'1r\');if(2c.2m("%")>0)11 2c;11(3.4.12.2I(1e)===0?\'4Z\':3.4.12.2I(1e)+\'px\')}11 1o}1k if($.2N(3.4.1r)){11 3.4.1r()}1k{11 3.4.1r}};14 1r=aP.1Z(3);if(1r!==1o){3.1a.1Y("1r",1r)}}});7R=61(5C,{74:5(){14 1a=$(1X.5v("1U")).1f({"1t":"6-1a"}).3w(["<a 9z=\'lP:lQ(0)\' 1t=\'6-1g\' 3R=\'-1\'>"," <45 1t=\'6-4e\'>&#lV;</45><72 1t=\'6-15-1g-1D\'></72>"," <45 1t=\'6-9K\' 3H=\'7z\'><b 3H=\'7z\'></b></45>","</a>","<1P 1N=\'\' 1t=\'6-5D\'></1P>","<1z 1t=\'6-1M 6-5D\' 2o=\'1j\' 4b-lW=\'1l\' 3H=\'m1\' />","<1U 1t=\'6-1R 6-62-65\'>"," <1U 1t=\'6-15\'>"," <1P 1N=\'\' 1t=\'6-5D\'></1P>"," <1z 2o=\'1j\' 8g=\'2O\' aN=\'2O\' aQ=\'2O\' 9R=\'1e\' 1t=\'6-1z\' 3H=\'m0\' 4b-lZ=\'1l\'"," 4b-8g=\'5u\' />"," </1U>"," <3S 1t=\'6-1b\' 3H=\'lX\'>"," </3S>","</1U>"].5p(""));11 1a},4l:5(){if(3.2w.4l.2h(3,1K)){3.1M.24("1B",!3.2B())}},4a:5(){14 el,3Z,66;if(3.4.4z>=0){3.4g(1l)}3.2w.4a.2h(3,1K);if(3.3g!==1e){3.15.19(3.1M.19())}if(3.4.3M(3)){3.15.1s();el=3.15.2r(0);if(el.64){3Z=el.64();3Z.aA(1e);3Z.1A()}1k if(el.63){66=3.15.19().1d;el.63(66,66)}}if(3.15.19()===""){if(3.2t!=1h){3.15.19(3.2t);3.15.1A()}}3.1M.24("1B",1l).19("");3.3V(1l);3.4.12.1L($.2x("6-2l"))},1D:5(){if(!3.22())11;3.2w.1D.2h(3,1K);3.1M.24("1B",1e);if(3.4.3M(3)){3.1M.1s()}},1s:5(){if(3.22()){3.1D()}1k{3.1M.24("1B",1e);if(3.4.3M(3)){3.1M.1s()}}},6x:5(){11 3.1a.2y("6-1a-1S")},4G:5(){3.2w.4G.2h(3,1K);3.1M.24("1B",1e);if(3.4.3M(3)){3.1M.1s()}},4d:5(){$("1P[1N=\'"+3.1M.1f(\'id\')+"\']").1f(\'1N\',3.4.12.1f("id"));3.2w.4d.2h(3,1K);6p.1Z(3,"1q","1M")},7U:5(){14 1q,1a=3.1a,1i=3.1i,4V=4A(),6d;if(3.4.4z<0){3.4g(1e)}1k{3.4g(1l)}3.1q=1q=1a.1u(".6-1g");3.1M=1a.1u(".6-1M");1q.1u(".6-4e").1f("id","6-4e-"+4V);3.1M.1f("4b-lY","6-4e-"+4V);3.1b.1f("id","6-1b-"+4V);3.15.1f("4b-lO","6-1b-"+4V);3.1M.1f("id","9S"+4V);6d=$("1P[1N=\'"+3.4.12.1f("id")+"\']");3.4.12.1s(3.1w(5(){3.1s()}));3.1M.3m().1j(6d.1j()).1f(\'1N\',3.1M.1f(\'id\'));14 aD=3.4.12.1f("6c");3.4.12.1f("6c",(aD||6d.1j()));3.1M.1f("3R",3.55);3.15.1f("id",3.1M.1f(\'id\')+\'lN\');3.15.3m().1j($("1P[1N=\'"+3.1M.1f(\'id\')+"\']").1j()).1f(\'1N\',3.15.1f(\'id\'));3.15.on("6o",3.1w(5(e){if(!3.2B())11;if(lD==e.lE)11;if(e.1x===1m.82||e.1x===1m.86){1O(e);11}6k(e.1x){2d 1m.4t:2d 1m.5j:3.8b((e.1x===1m.4t)?-1:1);1O(e);11;2d 1m.3u:3.3t();1O(e);11;2d 1m.5h:3.3t({4n:1l});11;2d 1m.5m:3.4G(e);1O(e);11}}));3.15.on("3v",3.1w(5(e){if(1X.69===3.2V.2r(0)){1J.51(3.1w(5(){if(3.22()){3.15.1s()}}),0)}}));3.1M.on("6o",3.1w(5(e){if(!3.2B())11;if(e.1x===1m.5h||1m.7W(e)||1m.84(e)||e.1x===1m.5m){11}if(3.4.6Y===1e&&e.1x===1m.3u){1O(e);11}if(e.1x==1m.5j||e.1x==1m.4t||(e.1x==1m.3u&&3.4.6Y)){if(e.9X||e.9W||e.9U||e.7Y)11;3.2l();1O(e);11}if(e.1x==1m.6i||e.1x==1m.4D){if(3.4.aJ){3.5s()}1O(e);11}}));75(3.1M);3.1M.on("4F-2W 1z",3.1w(5(e){if(3.4.4z>=0){e.4Q();if(3.22())11;3.2l()}}));1q.on("4B 4k","72",3.1w(5(e){if(!3.2B()){11}3.5s();aH(e);3.1D();if(3.1q){3.1q.1s()}}));1q.on("4B 4k",3.1w(5(e){7g(1q);if(!3.1a.2y("6-1a-1S")){3.4.12.1L($.2x("6-1s"))}if(3.22()){3.1D()}1k if(3.2B()){3.2l()}1O(e)}));1i.on("4B 4k",3.1w(5(){if(3.4.3M(3)){3.15.1s()}}));1q.on("1s",3.1w(5(e){1O(e)}));3.1M.on("1s",3.1w(5(){if(!3.1a.2y("6-1a-1S")){3.4.12.1L($.2x("6-1s"))}3.1a.1v("6-1a-1S")})).on("3v",3.1w(5(){if(!3.22()){3.1a.1W("6-1a-1S");3.4.12.1L($.2x("6-3v"))}}));3.15.on("1s",3.1w(5(){if(!3.1a.2y("6-1a-1S")){3.4.12.1L($.2x("6-1s"))}3.1a.1v("6-1a-1S")}));3.8n();3.4.12.4q();3.4r()},5s:5(1G){14 7=3.1q.7("6-7");if(7){14 2U=$.2x("6-lC");3.4.12.1L(2U);if(2U.6M()){11}14 2e=3.4f();3.4.12.19(2e?2e.19():"");3.1q.1u(".6-4e").67();3.1q.7e("6-7");3.4r();if(1G!==1e){3.4.12.1L({2o:"6-3h",19:3.id(7),1g:7});3.1G({3h:7})}}},1T:5(){14 1n;if(3.78()){3.2u(1o);3.1D();3.4r()}1k{14 1c=3;3.4.1T.1Z(1o,3.4.12,5(1n){if(1n!==1h&&1n!==1o){1c.2u(1n);1c.1D();1c.4r();1c.2t=1c.4.2t(1n,1c.15.19())}})}},78:5(){14 2e;if(3.3Y()===1h)11 1e;11((2e=3.4f())!==1h&&2e.24("1n"))||(3.4.12.19()==="")||(3.4.12.19()===1h)||(3.4.12.19()===1o)},4M:5(){14 4=3.2w.4M.2h(3,1K),1c=3;if(4.12.2r(0).6D.6C()==="1A"){4.1T=5(12,1V){14 1n=12.1u("3W").4O(5(){11 3.1n&&!3.1B});1V(1c.4L(1n))}}1k if("7"in 4){4.1T=4.1T||5(12,1V){14 id=12.19();14 26=1o;4.1p({30:5(1C,1j,el){14 4K=2s(id,4.id(el));if(4K){26=el}11 4K},1V:!$.2N(1V)?$.9P:5(){1V(26)}})}}11 4},3Y:5(){if(3.1A){if(3.4f()===1h){11 1h}}11 3.2w.3Y.2h(3,1K)},4r:5(){14 2k=3.3Y();if(3.78()&&2k!==1h){if(3.1A&&3.4f()===1h)11;3.1q.1u(".6-4e").3w(3.4.2a(2k));3.1q.1v("6-5A");3.1a.1W("6-aO")}},4x:5(7,3z,6I){14 1n=0,1c=3,3g=1l;3.41().2D(5(i,3j){if(2s(1c.id(3j.7("6-7")),1c.4.12.19())){1n=i;11 1e}});if(6I!==1e){if(3z===1l&&1n>=0){3.2R(1n)}1k{3.2R(0)}}if(3z===1l){14 5E=3.4.4z;if(5E>=0){3.4g(7h(7.1b)>=5E)}}},4g:5(3g){if(3.3g===3g)11;3.3g=3g;3.1i.1u(".6-15").6b("6-15-6J",!3g);3.1i.1u(".6-15").6b("6-5D",!3g);$(3.1i,3.1a).6b("6-7Z-lB",3g)},6W:5(7,1H){if(!3.8m(7)){11}14 2H=3.4.12.19(),2T=3.7();3.4.12.19(3.id(7));3.2u(7);3.4.12.1L({2o:"6-1n",19:3.id(7),1g:7});3.2t=3.4.2t(7,3.15.19());3.1D();if((!1H||!1H.4n)&&3.4.3M(3)){3.1M.1s()}if(!2s(2H,3.id(7))){3.1G({44:7,3h:2T})}},2u:5(7){14 1a=3.1q.1u(".6-4e"),2P,3P;3.1q.7("6-7",7);1a.67();if(7!==1o){2P=3.4.7H(7,1a,3.4.2a)}if(2P!==1h){1a.48(2P)}3P=3.4.7L(7,1a);if(3P!==1h){1a.1v(3P)}3.1q.1W("6-5A");if(3.4.aJ&&3.3Y()!==1h){3.1a.1v("6-aO")}},19:5(){14 19,1G=1e,7=1o,1c=3,2T=3.7();if(1K.1d===0){11 3.4.12.19()}19=1K[0];if(1K.1d>1){1G=1K[1]}if(3.1A){3.1A.19(19).1u("3W").4O(5(){11 3.1n}).2D(5(i,3j){7=1c.4L(3j);11 1e});3.2u(7);3.4r();if(1G){3.1G({44:7,3h:2T})}}1k{if(!19&&19!==0){3.5s(1G);11}if(3.4.1T===1h){3b 3q 5z("ah 1Z 19() if 1T() is 2g 7N")}3.4.12.19(19);3.4.1T(3.4.12,5(7){1c.4.12.19(!7?"":1c.id(7));1c.2u(7);1c.4r();if(1G){1c.1G({44:7,3h:2T})}})}},2v:5(){3.15.19("");3.1M.19("")},7:5(25){14 7,1G=1e;if(1K.1d===0){7=3.1q.7("6-7");if(7==1h)7=1o;11 7}1k{if(1K.1d>1){1G=1K[1]}if(!25){3.5s(1G)}1k{7=3.7();3.4.12.19(!25?"":3.id(25));3.2u(25);if(1G){3.1G({44:25,3h:7})}}}}});79=61(5C,{74:5(){14 1a=$(1X.5v("1U")).1f({"1t":"6-1a 6-1a-6T"}).3w(["<3S 1t=\'6-2f\'>"," <li 1t=\'6-15-9O\'>"," <1P 1N=\'\' 1t=\'6-5D\'></1P>"," <1z 2o=\'1j\' 8g=\'2O\' aN=\'2O\' aQ=\'2O\' 9R=\'1e\' 1t=\'6-1z\'>"," </li>","</3S>","<1U 1t=\'6-1R 6-1R-6T 6-62-65\'>"," <3S 1t=\'6-1b\'>"," </3S>","</1U>"].5p(""));11 1a},4M:5(){14 4=3.2w.4M.2h(3,1K),1c=3;if(4.12.2r(0).6D.6C()==="1A"){4.1T=5(12,1V){14 7=[];12.1u("3W").4O(5(){11 3.1n&&!3.1B}).2D(5(i,3j){7.1Q(1c.4L(3j))});1V(7)}}1k if("7"in 4){4.1T=4.1T||5(12,1V){14 2G=6Z(12.19(),4.3e,4.6P);14 2z=[];4.1p({30:5(1C,1j,el){14 4K=$.lz(2G,5(id){11 2s(id,4.id(el))}).1d;if(4K){2z.1Q(el)}11 4K},1V:!$.2N(1V)?$.9P:5(){14 88=[];1N(14 i=0;i<2G.1d;i++){14 id=2G[i];1N(14 j=0;j<2z.1d;j++){14 26=2z[j];if(2s(id,4.id(26))){88.1Q(26);2z.6R(j,1);54}}}1V(88)}})}}11 4},4j:5(1g){14 1n=3.1a.1u(".6-15-1g-1s");if(1n.1d&&1g&&1g[0]==1n[0]){}1k{if(1n.1d){3.4.12.1L("1g-lA",1n)}1n.1W("6-15-1g-1s");if(1g&&1g.1d){3.1D();1g.1v("6-15-1g-1s");3.4.12.1L("1g-1n",1g)}}},4d:5(){$("1P[1N=\'"+3.15.1f(\'id\')+"\']").1f(\'1N\',3.4.12.1f("id"));3.2w.4d.2h(3,1K);6p.1Z(3,"43","1q")},7U:5(){14 5P=".6-2f",1q;3.43=3.1a.1u(".6-15-9O");3.1q=1q=3.1a.1u(5P);14 7V=3;3.1q.on("3n",".6-1a:2g(.6-1a-1B) .6-15-1g:2g(.6-3k)",5(e){7V.15[0].1s();7V.4j($(3))});3.15.1f("id","9S"+4A());3.15.3m().1j($("1P[1N=\'"+3.4.12.1f("id")+"\']").1j()).1f(\'1N\',3.15.1f(\'id\'));3.4.12.1s(3.1w(5(){3.1s()}));3.15.on("1z 9T",3.1w(5(){if(3.15.1f(\'2k\')&&3.15.19().1d==0)11;if(!3.2B())11;if(!3.22()){3.2l()}}));3.15.1f("3R",3.55);3.5M=0;3.15.on("6o",3.1w(5(e){if(!3.2B())11;++3.5M;14 1n=1q.1u(".6-15-1g-1s");14 3m=1n.3m(".6-15-1g:2g(.6-3k)");14 4s=1n.4s(".6-15-1g:2g(.6-3k)");14 4J=9Y(3.15);if(1n.1d&&(e.1x==1m.5o||e.1x==1m.5Y||e.1x==1m.4D||e.1x==1m.6i||e.1x==1m.3u)){14 3s=1n;if(e.1x==1m.5o&&3m.1d){3s=3m}1k if(e.1x==1m.5Y){3s=4s.1d?4s:1o}1k if(e.1x===1m.4D){if(3.6B(1n.6h())){3.15.1r(10);3s=3m.1d?3m:4s}}1k if(e.1x==1m.6i){if(3.6B(1n.6h())){3.15.1r(10);3s=4s.1d?4s:1o}}1k if(e.1x==1m.3u){3s=1o}3.4j(3s);1O(e);if(!3s||!3s.1d){3.2l()}11}1k if(((e.1x===1m.4D&&3.5M==1)||e.1x==1m.5o)&&(4J.1I==0&&!4J.1d)){3.4j(1q.1u(".6-15-1g:2g(.6-3k)").6j());1O(e);11}1k{3.4j(1o)}if(3.22()){6k(e.1x){2d 1m.4t:2d 1m.5j:3.8b((e.1x===1m.4t)?-1:1);1O(e);11;2d 1m.3u:3.3t();1O(e);11;2d 1m.5h:3.3t({4n:1l});3.1D();11;2d 1m.5m:3.4G(e);1O(e);11}}if(e.1x===1m.5h||1m.7W(e)||1m.84(e)||e.1x===1m.4D||e.1x===1m.5m){11}if(e.1x===1m.3u){if(3.4.6Y===1e){11}1k if(e.9X||e.9W||e.9U||e.7Y){11}}3.2l();if(e.1x===1m.82||e.1x===1m.86){1O(e)}if(e.1x===1m.3u){1O(e)}}));3.15.on("4F",3.1w(5(e){3.5M=0;3.5x()}));3.15.on("3v",3.1w(5(e){3.1a.1W("6-1a-1S");3.15.1W("6-5y");3.4j(1o);if(!3.22())3.2v();e.9M();3.4.12.1L($.2x("6-3v"))}));3.1a.on("3n",5P,3.1w(5(e){if(!3.2B())11;if($(e.4C).5e(".6-15-1g").1d>0){11}3.4j(1o);3.5L();if(!3.1a.2y("6-1a-1S")){3.4.12.1L($.2x("6-1s"))}3.2l();3.4w();e.5Q()}));3.1a.on("1s",5P,3.1w(5(){if(!3.2B())11;if(!3.1a.2y("6-1a-1S")){3.4.12.1L($.2x("6-1s"))}3.1a.1v("6-1a-1S");3.1i.1v("6-1R-1S");3.5L()}));3.8n();3.4.12.4q();3.2v()},4l:5(){if(3.2w.4l.2h(3,1K)){3.15.24("1B",!3.2B())}},1T:5(){14 7;if(3.4.12.19()===""&&3.4.12.1j()===""){3.2u([]);3.1D();3.2v()}if(3.1A||3.4.12.19()!==""){14 1c=3;3.4.1T.1Z(1o,3.4.12,5(7){if(7!==1h&&7!==1o){1c.2u(7);1c.1D();1c.2v()}})}},2v:5(){14 2k=3.3Y(),3U=3.9Z();if(2k!==1h&&3.4S().1d===0&&3.15.2y("6-5y")===1e){3.15.19(2k).1v("6-5A");3.15.1r(3U>0?3U:3.1a.1Y("1r"))}1k{3.15.19("").1r(10)}},5L:5(){if(3.15.2y("6-5A")){3.15.19("").1W("6-5A")}},4a:5(){3.5L();3.5x();3.2w.4a.2h(3,1K);3.4w();if(3.15.19()===""){if(3.2t!=1h){3.15.19(3.2t);3.15.1A()}}3.3V(1l);if(3.4.3M(3)){3.15.1s()}3.4.12.1L($.2x("6-2l"))},1D:5(){if(!3.22())11;3.2w.1D.2h(3,1K)},1s:5(){3.1D();3.15.1s()},6x:5(){11 3.15.2y("6-5y")},2u:5(7){14 2G=[],2X=[],1c=3;$(7).2j(5(){if(2m(1c.id(3),2G)<0){2G.1Q(1c.id(3));2X.1Q(3)}});7=2X;3.1q.1u(".6-15-1g").3r();$(7).2j(5(){1c.7S(3)});1c.4x()},8a:5(){14 1z=3.15.19();1z=3.4.a9.1Z(3,1z,3.7(),3.1w(3.6W),3.4);if(1z!=1o&&1z!=1h){3.15.19(1z);if(1z.1d>0){3.2l()}}},6W:5(7,1H){if(!3.8m(7)||7.1j===""){11}3.7S(7);3.4.12.1L({2o:"1n",19:3.id(7),1g:7});3.2t=3.4.2t(7,3.15.19());3.2v();3.3V();if(3.1A||!3.4.5B)3.4x(7,1e,3.4.5B===1l);if(3.4.5B){3.1D();3.15.1r(10)}1k{if(3.az()>0){3.15.1r(10);3.5x();if(3.6S()>0&&3.19().1d>=3.6S()){3.3V(1l)}1k{if(3.2t!=1h){3.15.19(3.2t);3.3V();3.15.1A()}}3.3L()}1k{3.1D();3.15.1r(10)}}3.1G({44:7});if(!1H||!1H.4n)3.4w()},4G:5(){3.1D();3.4w()},7S:5(7){14 81=!7.3k,9A=$("<li 1t=\'6-15-1g\'>"+" <1U></1U>"+" <a 9z=\'#\' 1t=\'6-15-1g-1D\' 3R=\'-1\'></a>"+"</li>"),9E=$("<li 1t=\'6-15-1g 6-3k\'>"+"<1U></1U>"+"</li>");14 1g=81?9A:9E,id=3.id(7),19=3.4S(),2P,3P;2P=3.4.7H(7,1g.1u("1U"),3.4.2a);if(2P!=1h){1g.1u("1U").lF($("<1U></1U>").3w(2P))}3P=3.4.7L(7,1g.1u("1U"));if(3P!=1h){1g.1v(3P)}if(81){1g.1u(".6-15-1g-1D").on("4B",1O).on("3n lG",3.1w(5(e){if(!3.2B())11;3.6B($(e.4C));3.1q.1u(".6-15-1g-1s").1W("6-15-1g-1s");1O(e);3.1D();3.4w()})).on("1s",3.1w(5(){if(!3.2B())11;3.1a.1v("6-1a-1S");3.1i.1v("6-1R-1S")}))}1g.7("6-7",7);1g.lL(3.43);19.1Q(id);3.4c(19)},6B:5(1n){14 19=3.4S(),7,1E;1n=1n.5e(".6-15-1g");if(1n.1d===0){3b"al lM: "+1n+". lK be .6-15-1g"}7=1n.7("6-7");if(!7){11}14 2U=$.2x("6-lJ");2U.19=3.id(7);2U.1g=7;3.4.12.1L(2U);if(2U.6M()){11 1e}6N((1E=2m(3.id(7),19))>=0){19.6R(1E,1);3.4c(19);if(3.1A)3.4x()}1n.3r();3.4.12.1L({2o:"6-3h",19:3.id(7),1g:7});3.1G({3h:7});11 1l},4x:5(7,3z,6I){14 19=3.4S(),2f=3.1b.1u(".6-1y"),4P=3.1b.1u(".6-1y-7Z-1F"),1c=3;2f.2D(5(i,1g){14 id=1c.id(1g.7("6-7"));if(2m(id,19)>=0){1g.1v("6-1n");1g.1u(".6-1y-2S").1v("6-1n")}});4P.2D(5(i,1g){if(!1g.is(\'.6-1y-2S\')&&1g.1u(".6-1y-2S:2g(.6-1n)").1d===0){1g.1v("6-1n")}});if(3.2R()==-1&&6I!==1e&&3.4.5B===1l){1c.2R(0)}if(!3.4.3K&&!2f.4O(\'.6-1y:2g(.6-1n)\').1d>0){if(!7||7&&!7.20&&3.1b.1u(".6-no-1b").1d===0){if(3N(1c.4.4u,"4u")){3.1b.48("<li 1t=\'6-no-1b\'>"+2b(1c.4.4u,1c.4.12,1c.15.19())+"</li>")}}}},9Z:5(){11 3.1q.1r()-7T(3.15)},5x:5(){14 6X,2Q,3U,8j,3x,70=7T(3.15);6X=a0(3.15)+10;2Q=3.15.1I().2Q;3U=3.1q.1r();8j=3.1q.1I().2Q;3x=3U-(2Q-8j)-70;if(3x<6X){3x=3U-70}if(3x<40){3x=3U-70}if(3x<=0){3x=6X}3.15.1r(lH.lI(3x))},4S:5(){14 19;if(3.1A){19=3.1A.19();11 19===1o?[]:19}1k{19=3.4.12.19();11 6Z(19,3.4.3e,3.4.6P)}},4c:5(19){14 4R;if(3.1A){3.1A.19(19)}1k{4R=[];$(19).2j(5(){if(2m(3,4R)<0)4R.1Q(3)});3.4.12.19(4R.1d===0?"":4R.5p(3.4.3e))}},6K:5(2H,49){14 49=49.59(0),2H=2H.59(0);1N(14 i=0;i<49.1d;i++){1N(14 j=0;j<2H.1d;j++){if(2s(3.4.id(49[i]),3.4.id(2H[j]))){49.6R(i,1);if(i>0){i--}2H.6R(j,1);j--}}}11{44:49,3h:2H}},19:5(19,1G){14 2T,1c=3;if(1K.1d===0){11 3.4S()}2T=3.7();if(!2T.1d)2T=[];if(!19&&19!==0){3.4.12.19("");3.2u([]);3.2v();if(1G){3.1G({44:3.7(),3h:2T})}11}3.4c(19);if(3.1A){3.4.1T(3.1A,3.1w(3.2u));if(1G){3.1G(3.6K(2T,3.7()))}}1k{if(3.4.1T===1h){3b 3q 5z("19() ah be m2 if 1T() is 2g 7N")}3.4.1T(3.4.12,5(7){14 2G=$.7M(7,1c.id);1c.4c(2G);1c.2u(7);1c.2v();if(1G){1c.1G(1c.6K(2T,1c.7()))}})}3.2v()},ac:5(){if(3.1A){3b 3q 5z("m3 of mp is 2g mq a4 a3 4I <1A>. mo 4I <1z 2o=\'6J\'/> mn.")}3.15.1r(0);3.43.4q()},a7:5(){14 19=[],1c=3;3.43.4U();3.43.4T(3.43.2w());3.5x();3.1q.1u(".6-15-1g").2j(5(){19.1Q(1c.4.id($(3).7("6-7")))});3.4c(19);3.1G()},7:5(5G,1G){14 1c=3,2G,2H;if(1K.1d===0){11 3.1q.1F(".6-15-1g").7M(5(){11 $(3).7("6-7")}).2r()}1k{2H=3.7();if(!5G){5G=[]}2G=$.7M(5G,5(e){11 1c.4.id(e)});3.4c(2G);3.2u(5G);3.2v();if(1G){3.1G(3.6K(2H,3.7()))}}}});$.fn.6=5(){14 28=9B.3J.59.1Z(1K,0),4,6,3p,25,3B,ar=["19","4d","22","2l","1D","1s","6x","1a","1i","ac","a7","5a","a6","2q","3L","7","15"],ap=["22","6x","1a","1i"],am=["19","7"],7m={15:"a1"};3.2j(5(){if(28.1d===0||3i(28[0])==="a5"){4=28.1d===0?{}:$.3a({},28[0]);4.12=$(3);if(4.12.2r(0).6D.6C()==="1A"){3B=4.12.24("3B")}1k{3B=4.3B||1e;if("29"in 4){4.3B=3B=1l}}6=3B?3q 1J.4m["1t"].6T():3q 1J.4m["1t"].9v();6.aq(4)}1k if(3i(28[0])==="4o"){if(2m(28[0],ar)<0){3b"mk 3p: "+28[0]}25=1h;6=$(3).7("6");if(6===1h)11;3p=28[0];if(3p==="1a"){25=6.1a}1k if(3p==="1i"){25=6.1i}1k{if(7m[3p])3p=7m[3p];25=6[3p].2h(6,28.59(1))}if(2m(28[0],ap)>=0||(2m(28[0],am)>=0&&28.1d==1)){11 1e}}1k{3b"al 1K 4I 6 ml: "+28}});11(25===1h)?3:25};$.fn.6.7b={1r:"8t",aG:0,5B:1l,6Y:1l,9H:{},ai:{},7l:"",7k:"",at:5(1y,1a,1p,2a){14 2L=[];6r(3.1j(1y),1p.1C,2L,2a);11 2L.5p("")},6P:5(19){11 $.4W(19)},7H:5(7,1a,2a){11 7?2a(3.1j(7)):1h},ag:5(1b,1a,1p){11 1b},af:5(7){11 7.1Y},7L:5(7,1a){11 1h},4z:0,7G:0,4Y:1o,a2:0,id:5(e){11 e==1h?1o:e.id},1j:5(e){if(e&&3.7&&3.7.1j){if($.2N(3.7.1j)){11 3.7.1j(e)}1k{11 e[3.7.1j]}}1k{11 e.1j}},30:5(1C,1j){11 4i(\'\'+1j).6L().2m(4i(\'\'+1C).6L())>=0},3e:",",57:[],a9:a8,2a:8k,ab:1e,7C:1e,7E:5(c){11 c},7D:5(c){11 1o},2t:5(mr,ms){11 1h},ad:\'\',3Q:\'23\',3M:5(ak){14 aj=((\'mx\'in 1J)||(mw.mv>0));if(!aj){11 1l}if(ak.4.4z<0){11 1e}11 1l}};$.fn.6.76=[];$.fn.6.76[\'en\']={8o:5(2z){if(2z===1){11"mt 1y is 9G, mu 9C 4I 1A it."}11 2z+" 1b mj 9G, 9I mi 9J m8 9K m9 4I m7."},4u:5(){11"m6 2z m4"},6Q:5(5d,5b,58){11"ax m5"},6V:5(1z,5E){14 n=5E-1z.1d;11"9L 9C "+n+" or 20 7X"+(n==1?"":"s")},6w:5(1z,9D){14 n=1z.1d-9D;11"9L 9V "+n+" 7X"+(n==1?"":"s")},6l:5(53){11"ma mb mg 1A "+53+" 2J"+(53==1?"":"s")},5q:5(mh){11"ax 20 mf��"},71:5(){11"me��"}};$.3a($.fn.6.7b,$.fn.6.76[\'en\']);$.fn.6.7F={5c:$.2Y,31:{2o:"aE",7n:1e,5J:"aR"}};1J.4m={1p:{2Y:2Y,5R:5R,29:29},mc:{6g:6g,6r:6r,2a:8k,4i:4i},"1t":{"md":5C,"9v":7R,"6T":79}}}(8F));',62,1684,'|||this|opts|function|select2|data||||||||||||||||||||||||||||||||||||||||||||||||||||||||return|element||var|search||||val|container|results|self|length|false|attr|choice|undefined|dropdown|text|else|true|KEY|selected|null|query|selection|width|focus|class|find|addClass|bind|which|result|input|select|disabled|term|close|index|children|triggerChange|options|offset|window|arguments|trigger|focusser|for|killEvent|label|push|drop|active|initSelection|div|callback|removeClass|document|css|call|more|context|opened|top|prop|value|match||args|tags|escapeMarkup|evaluate|style|case|placeholderOption|choices|not|apply|mask|each|placeholder|open|indexOf|enabled|type|event|readonly|get|equal|nextSearchTerm|updateSelection|clearSearch|parent|Event|hasClass|matches|datum|isInterfaceEnabled|above|each2|node|group|ids|old|outerWidth|item|scrollTop|markup|page|isFunction|off|formatted|left|highlight|selectable|oldData|evt|body|change|filtered|ajax|liveRegion|matcher|params|||||||||extend|throw|token|classes|separator|constructor|showSearchInput|removed|typeof|elm|locked|height|prev|click|url|method|new|remove|selectedChoice|selectHighlighted|ENTER|blur|html|searchWidth|scroll|initial|render|multiple|dropWidth|outerHeight|highlighted|sizer|cid|role|propertyObserver|prototype|createSearchChoice|positionDropdown|shouldFocusInput|checkFormatter|resultsSelector|cssClass|createSearchChoicePosition|tabindex|ul|def|maxWidth|updateResults|option|process|getPlaceholder|range||findHighlightableChoices|_sync|searchContainer|added|span|||append|current|opening|aria|setVal|destroy|chosen|getPlaceholderOption|showSearch|resultsPage|stripDiacritics|selectChoice|touchstart|enableInterface|Select2|noFocus|string|ajaxUrl|hide|setPlaceholder|next|UP|formatNoMatches|template|focusSearch|postprocessResults|timeout|minimumResultsForSearch|nextUid|mousedown|target|BACKSPACE|collection|keyup|cancel|autofocus|to|pos|is_match|optionToData|prepareOpts|details|filter|compound|stopPropagation|unique|getVal|appendTo|show|idSuffix|trim|dropLeft|maximumInputLength|auto|resize|setTimeout|dropHeight|limit|break|elementTabIndex|substring|tokenSeparators|errorThrown|slice|enable|textStatus|transport|jqXHR|closest|mousemove|deltaY|TAB|replace|DOWN|key|syncCssClasses|ESC|firstOption|LEFT|join|formatLoadMore|quietMillis|clear|tmp|list|createElement|handler|resizeSearch|focused|Error|default|closeOnSelect|AbstractSelect2|offscreen|min|innerContainer|values|child|dropTop|dataType|highlightUnderEvent|clearPlaceholder|keydowns|removeHighlight|split|selector|preventDefault|local|isArray|maxSelSize|rb|loadMoreIfNeeded|topOffset|obj|RIGHT|changeDirection|viewPortRight|clazz|display|setSelectionRange|createTextRange|none|len|empty|scrollBarDimensions|activeElement|bodyOffset|toggleClass|title|elementLabel|bottom|_enabled|debounce|first|DELETE|last|switch|formatSelectionTooBig|orient|resultsListNode|keydown|cleanupJQueryElements|_readonly|markMatch|lastMousePosition|observer|before|attrs|formatInputTooLong|isFocused|lastpos|count|replacements|unselect|toLowerCase|tagName|formatter|ctx|dupe|adapted|noHighlightUpdate|hidden|buildChangeDetails|toUpperCase|isDefaultPrevented|while|dataItem|transformVal|formatAjaxError|splice|getMaximumSelectionSize|multi|populate|formatInputTooShort|onSelect|minimumWidth|openOnEnter|splitVal|sideBorderPadding|formatSearching|abbr|dest|createContainer|installKeyUpChangeEvent|locales|viewportBottom|isPlaceholderOptionSelected|MultiSelect2|scrollHeight|defaults|String|tl|removeData|windowHeight|reinsertElement|countResults|windowWidth|that|dropdownCssClass|containerCssClass|methodsMap|cache|array|populateResults|queryCount|queryNumber|below|delta|lastTerm|u03B9|u03C5|postRender|_touchMoved|presentation|containerEventName|sel|selectOnBlur|adaptDropdownCssClass|adaptContainerCssClass|ajaxDefaults|minimumInputLength|formatSelection|clearTouchMoved|removeAttr|clearDropdownAlignmentPreference|formatSelectionCssClass|map|defined|depth|_touchEvent|containerId|SingleSelect2|addSelectedChoice|getSideBorderPadding|initContainer|_this|isControl|character|metaKey|with||enableChoice|PAGE_UP|SuperClass|isFunctionKey|touchend|PAGE_DOWN|triggered|ordered|nodes|tokenize|moveHighlight|isObject|enoughRoomBelow|enoughRoomAbove|dataText|autocomplete|AE|idKey|containerLeft|defaultEscapeMarkup|enabledInterface|triggerSelect|initContainerWidth|formatMatches|orientationchange|mouseup|installDebouncedScroll|debounced|copy|mousewheel|transform|dim|parents|must|add|select2Tags|u03C9|counter|u03A5|u0399|jQuery|ensureHighlightVisible|optgroup|detachEvent|str|MEASURE_SCROLLBAR_TEMPLATE|DIACRITICS|DZ|measureScrollbar|select2Event|selectionStart|onpropertychange|adapter|clientHeight|mutations|position|src|textTransform|enoughRoomOnRight|original|selectCallback|formatterName|jsonpCallback||deprecated|childDatum|abort|Dz|clearTimeout|aboveNow|replace_map|isFunc|letterSpacing|enoughRoomOnLeft|pageX|shouldOpen|isVisible|scrollLeft|notify|pageY|installFilteredMouseMove|monitorSource|threshold|accessible|createRange|methods|fontFamily|fontStyle|fontWeight|attachEvent|fontSize|func|single|10000px|touchmove|error|href|enabledItem|Array|enter|max|disabledItem|AV|available|containerCss|use|and|arrow|Please|stopImmediatePropagation|ALT|field|noop|CTRL|spellcheck|s2id_autogen|paste|shiftKey|delete|ctrlKey|altKey|getCursorInfo|getMaxSearchWidth|measureTextWidth|externalSearch|maximumSelectionSize|attached|when|object|disable|onSortEnd|defaultTokenizer|tokenizer||blurOnChange|onSortStart|searchInputPlaceholder||formatResultCssClass|sortResults|cannot|dropdownCss|supportsTouchEvents|instance|Invalid|propertyMethods|||valueMethods|init|allowedMethods||formatResult|||touchMoved|Loading||countSelectableResults|collapse|hasError|detach|originalTitle|GET|loaded|loadMorePadding|killEventImmediately|items|allowClear|searching|SHIFT|resolve|autocorrect|allowclear|resolveContainerWidth|autocapitalize|json|u01D7|u01D3|uA74C|u01D5|uA74A|u01D9|u019F|u01DB|u016E|u1EE6|u0170|u01A2|uA74E|OI|u00DA|u00D9|u1E17|OO|u00DB|u0168|u1E7A|u016C||u016A|u1E78|u0214|u00DC|u1EEA|u1EDA|u1EDC|u1EE0|u1EDE|u1EE4|u1EE2|u1E72|u0172|u1E76|u020E|u1EBD|u0113|u01A0|u1ECC|u1EF0|u00D8|uFF35|u01FE|u01AF|u0186|u1EE8|u01EC|u1E15|u1EEC|u1ED8|u1EEE|u01EA|u0216|u023E|uA754|uA752|uA782|uA7A6|uA75A|u024C|u2C64|u24C8|uA750|u015A|u1E64|u1E9E|uFF33|u2C63|u01A4|u1E5E|u0156|u0154|u1E58|uFF32|u24C7|uA758|u024A|u0158|uA756|uFF31|u24C6|u1E5C|u1E5A|u0210|u0212|u015C|u1E60|u1E70|u1E6E||u0162|u021A|u0164|u1E6C|OU|u0166|uA728|TZ|uA786|u0222|u01AC|u01AE|u1E6A|uFF34|u1E66|u1E62|u0160|uFF30|u1E56|u1E54|u1E68|u0218|uA784|u24C9|uA7A8|u24C5|u015E|u2C7E|u24CA|uFF37|u1E92|u1E94|u01B5|uA737|uA739|uA73B|u017D|uA735|u01E3|u01FD|u00E6|uA733|uA762|u2C6B|u0224|u2C7F|u017B|u1E90|u1EF6|u1EF4|uFF42|u0178|u1E8E|u1EF8|u0232|u24D1|u01B3|u0179|uA73D|uFF3A|u24CF|u024E|u1EFE|u0250|u2C65|u1EB1|u0103|u0101|u1EAF|u1EB5|u0227|u1EB3|u00E3|u1EA9||u020C|u00E1|u00E2|u1EA7|u1EA5|u1EAB|u00E0|u01E1|u00E4|u1EAD|u1EA1|uFF41|u24D0|u1EB7|u0105|u1E01|u0203|u0201|u01DF|u1E9A|u1EA3|u00E5|u01CE|u01FB|u1E03|u0176|u01F3|uA77A|u1E80|u24CC|VY|u0245|uA760|u0257|u0256|u1E13|u1E11|u0174|u1E0F|u0111|u018C|u1E82|uA75E|u01B2|u1EC5|u1EBF|u1EC1||||u1EC3|uFF36|u0244|u24CB|u1E7C|u1E7E|u24D4|u01C6|uFF45||u00E8|u00EA|u00E9|u1E0D|u010F|u0109|u0107|u1EF2|u010B|uFF39|u1E8C|u24CE|uFF43|u24D2|u1E05|u00DD|u1E07|u0180|u0253|u0183|u010D|u1E8A|u1E88|u24D3|u2184|u1E84|uFF44|u1E0B|u1E86|uA73F|u023C|u24CD|uFF38|u2C72|u00E7|u0188|u1E09|u1E74|u1E1C|u01F1|u01C4|SPACE|uA779|u0189|u018B|u018A|u01F2|u0115|u00C9|u00CA|u00C8||uFF25|u01C5|u24BA|u0110|u1E0E|u023B|uA73E|u0187|u1E08|u010C|u00C7|u24B9|uFF24|u1E10|u1E12|u1E0C|HOME|u1E0A|u010E|u1EC0|u1EBE|u0190|u018E|u1E1A|u1E18|u0228|u0118|u24BB|uFF26|uFF27|u01F4|u24BC|uA77B|u1E1E|u0191|u1EC6|u1EB8|u0112|u1E14|strict|u1EBC|u1EC4|u1EC2|u1E16|u0114|u0204|u0206|u011A|u1EBA|u0116|u00CB|u010A|u0108|u01FC|u1EB2|u01E2|u00C6|u0226|uA732|AA|uA734|u1EB4|u1EB0|u0102|AU|u1EAE|AO||uA736|u01E0|u00C4|u01FA|u00C5|u01CD|u0200|u0202|u1EA0|u1EA2|u1EAC|u023A|u2C6F|u0104|u01DE|u1EB6|u1E00|u0100|u00C3|u1E04|u1E06|112|123|scrollbar|measure|u0243|isArrow|uFF23|u0106|u24B8|END|u0182|u0181|u24B6|uFF21|uA73A|uA73C|uA738|u1EA4|u1EA8|u1EAA|u1EA6|u00C2||uFF22|u1E02|u00C0|u24B7|AY|u00C1|u011C|u1E20|u019C|u24C3|uFF2E|u2C6E|u1E42|u1E3E|u1E40|u01F8|u0143|u0145|u1E4A||u1E46|u0147|u00D1|u1E44|uFF2D|u24C2|u023D|u2C62|u0141|u1E3A|u013B|u1E3C|u2C60|uA748|u01C8|Lj|LJ|u01C7|uA746|uA780|u1E48|u0220|u014C|u1E50|u1E4E|u022C|u00D5|u1E4C|u1E52|u014E|u1ECE|u0150|u022A|u00D6|u022E|u0230|u1ED4|u1ED6|NJ|u01CB|u01CA|uA7A4|u019D||uA790||Nj|u24C4|u1ED2|u1ED0|u00D4|u00D3|uFF2F||u00D2|u1E38|u1E36|u2C75|||uA78D|u24BE|u2C67|u0126|u1E28|u1E2A|uFF29|u00CC|u012C|u0130|u012A|u0128|u00CD|u00CE|u1E24|u021E|u01E4|u0193|u0122|u01E6|u011E|u0120|uA7A0|uA77D|u1E22|u1E26|u0124|uFF28|uA77E|u24BD|u00CF|u1E2E|u2C69|uA740|u0198|u1E34|u1E32|u0136|uA742|uA744|u0139|u013D|u013F|uFF2C|uA7A2|u24C1|u01E8|u1E30|u1ECA|u012E|u020A|u0208|u1EC8|u01CF|u1E2C|u0197|u24C0|uFF2B|u0248|u0134|u24BF|uFF2A|u01D1|u1EE7|uFF59|u1EF3|u24E8|u1E8D|uFF58|u1E8B|u00FD|u0177|u1EF7|u1E99|u00FF|u1E8F|u1EF9|u0233|u24E7|u2C73|u24E6|uFF57|vy|uA761|uA75F|u028C|u1E81|u1E83|u1E98|u1E89|u1E85|u1E87|u0175|u1EF5|u01B4|u0389|u0397|u0395|u0388|u0386|u0391|u038A|u03AA|u038F|u03A9|u03AB|u038E|u038C|u039F|uA763|u2C6C|u017A|u1E91|uFF5A|u24E9|u024F|u1EFF|u017C|u017E|u0225|u0240|u01B6|u1E95|u1E93|u028B|u1E7F|u01AD|u0288|u0167|u1E6F|u0163|u1E71|u2C66|uA787|u00F9|u00FA|uFF55|u24E4|uA729|tz|u021B|u1E6D|u023F|uA7A9|u015F|u0219|u1E63|u1E69|uA785|u1E9B|u1E97|u0165|u1E6B|uFF54|u24E3|u00FB|u0169|u1EF1|u1EE5|u1EED|u1EEF|u1EEB|u1EE9|u1E73|u0173|uFF56|u1E7D|u24E5|u0289|u1E77|u1E75|u01B0|u0217|u00FC|||u01DC|u016D|u1E7B|u1E79|u016B|u01D8|u0117|u01D4|u0215||u0171|u016F|u01DA|u03AC|u03B1|grep|deselected|searchbox|clearing|229|keyCode|replaceWith|dblclick|Math|floor|removing|Must|insertBefore|argument|_search|owns|javascript|void|activedescendant|static|selecting|dropdownAutoWidth|160|haspopup|listbox|labelledby|expanded|combobox|button|called|Sorting|found|failed|No|navigate|down|keys|You|can|util|abstract|Searching�|results�|only|pageNumber|up|are|Unknown|plugin||instead|Attach|elements|supported|selectedObject|currentSearchTerm|One|press|msMaxTouchPoints|navigator|ontouchstart|subtree|attributes|offsetHeight|selectionEnd|offsetWidth|clientWidth|u0000|u007E|moveStart|currentStyle|amp|quot|nowrap|whiteSpace|getComputedStyle|absolute|createTextNode|u03C3|u03AF|u03CA|u03B7|u03AE|u03AD|u03B5|u0390|u03CC|u03B0|u03C2|u03CB|u03CD|u03BF|100|success|both|attribute|specified|sub|dept|unselectable|unshift|invalid|MozMutationObserver|observe|WebKitMutationObserver|MutationObserver|custom|allowed||Option|live|polite|status||Object|hasOwnProperty|falsy|s2id_|autogen|maxlength|disconnect|focusin|deltaX|_|u1E67|u01D6|u0137|u1E35|u1E33|u01E9|uFF4B|u1E31|u0199|u2C6A|u24DB|uFF4C|uA7A3|uA745|uA741|u24DA|u0249|u1ECB|u012F|u020B|u0209|u1EC9|u01D0|u1E2D|u0268|u0135|u01F0|uFF4A|u24D9|u0131|u0140|u013A|u1E41|u1E43|u1E3F|uFF4D|u01C9|u24DC|u0271|u026F|u0144|u00F1||u01F9|uFF4E||u24DD|uA747|uA781|u013C|||u1E3D|u1E39||u1E37|u013E||u1E3B|u017F|u2C61|uA749|u026B|u019A|u0142|u1E2F|u00EF|uA77C|u24D6|u0192|u1E1F|u24D5|uFF46|uFF47|u01F5|u0121|u01E7|u011F|u1E21|u011D|u01DD|u025B|u0207|u1EB9|u0205|u011B|u00EB|u1EBB|u1EC7|u0229|u1E1B|u0247|u1E19|u0119|u1E1D|u0123|u01E5|u0195|u24D8|u0265|u2C76||u0127|u2C68|uFF49|u00EC|u012B|u012D|u0129|u00EE|u00ED|u1E96|u1E2B|uA77F|u24D7|u1D79|uA7A1|u0260||uFF48|u0125|u1E25||u1E29|u021F|u1E27|u1E23|u1E45|uA743|u00F8|u01FF|uA75B|uA7A7|u01EB|u01ED|u0254|u027D|u01A3|u024D|u0275|uA74D|uA74B|u1ED9|u1ECD|u24E2|u020D|u01D2|u0151|u1ECF|u020F|u01A1|uA783|u1EE3|u1EDF|u1EE1|u1EDD|u1E5F|u0157|u1D7D|uA751|u01A5|u1E57|u1E55|uA759|uA753|u024B|uA757|uFF51|u24E0|uA755|uFF50|u24DF|u0213|u0211|u0148|u1E5B|u1E5D|u0159|u1E59|u24E1|uA74F|uFF52|u0155|u0223|uFF53|u1EDB|u00F3|u00DF|u00F2|uFF4F|u24DE|u1ED3|u1ED1|u1E4D|u00F5|u1ED5|u1ED7|u01CC|uA7A5|u1E4B|u0146|u1E47|u0161|u1E49|u1E61|uA791|u0149|u0272|u019E|u022D|u00F4|u0231|u014F|u015B|u1E65|u022F|u015D|u00F6|u1E53|u1E51|u1E4F|u014D|u022B'.split('|'),0,{})) +eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(5($){if(3m $.fn.2E=="1h"){$.2Z($.fn,{2E:5(c){14 j=$([0]),i=-1,l=3.1d;6H(++i<l&&(j.24=j[0]=3[i])&&c.20(j[0],i,j)!==1e);11 3}})}})(8y);(5($,1h){"aA jn";if(1I.49!==1h){11}14 5e,7Q,7P,4J,3W,6s={x:0,y:0},$1W,67,1m={5x:9,3z:13,5l:27,jj:32,5q:37,4f:38,5M:39,5t:40,at:16,ak:17,al:18,8h:33,84:34,ix:36,iI:35,4L:8,6d:46,iT:5(k){k=k.1v?k.1v:k;6c(k){2d 1m.5q:2d 1m.5M:2d 1m.4f:2d 1m.5t:11 1l}11 1e},8m:5(e){14 k=e.1v;6c(k){2d 1m.at:2d 1m.ak:2d 1m.al:11 1l}if(e.85)11 1l;11 1e},8g:5(k){k=k.1v?k.1v:k;11 k>=iX&&k<=iW}},8J="<1X 1s=\'6-iR-iQ\'></1X>",8E={"\\iM":"A","\\iP":"A","\\hj":"A","\\fT":"A","\\fU":"A","\\fW":"A","\\fV":"A","\\fQ":"A","\\fJ":"A","\\fL":"A","\\fM":"A","\\fO":"A","\\fN":"A","\\fX":"A","\\g6":"A","\\g0":"A","\\fZ":"A","\\g1":"A","\\g2":"A","\\g3":"A","\\fI":"A","\\fH":"A","\\fk":"A","\\fo":"A","\\fj":"A","\\fe":"A","\\fC":"A","\\fB":"A","\\fG":"A","\\fA":"A","\\fy":"A","\\fx":"A","\\gd":"A","\\ge":"gW","\\gU":"8j","\\gT":"8j","\\gO":"8j","\\gN":"gP","\\gQ":"h1","\\hd":"9G","\\hc":"9G","\\he":"ha","\\h9":"B","\\h6":"B","\\h8":"B","\\h7":"B","\\gL":"B","\\go":"B","\\gr":"B","\\gu":"B","\\gs":"C","\\gn":"C","\\gm":"C","\\gh":"C","\\gg":"C","\\gf":"C","\\gi":"C","\\gj":"C","\\gl":"C","\\gk":"C","\\gv":"C","\\gw":"D","\\gG":"D","\\gF":"D","\\gH":"D","\\gI":"D","\\gK":"D","\\gJ":"D","\\gE":"D","\\gD":"D","\\gy":"D","\\gx":"D","\\gA":"D","\\gB":"D","\\gC":"9u","\\gz":"9u","\\gp":"9s","\\gM":"9s","\\h5":"E","\\h3":"E","\\h4":"E","\\hg":"E","\\hh":"E","\\hf":"E","\\h2":"E","\\gR":"E","\\gS":"E","\\gZ":"E","\\h0":"E","\\gY":"E","\\gX":"E","\\gV":"E","\\fw":"E","\\fv":"E","\\ft":"E","\\fu":"E","\\fz":"E","\\fF":"E","\\fE":"E","\\fD":"E","\\fs":"E","\\fr":"E","\\fg":"E","\\fh":"E","\\ff":"E","\\fb":"E","\\fc":"E","\\fd":"F","\\fi":"F","\\fp":"F","\\fq":"F","\\fm":"F","\\fl":"G","\\g4":"G","\\g5":"G","\\gb":"G","\\gc":"G","\\ga":"G","\\g9":"G","\\g7":"G","\\g8":"G","\\fY":"G","\\fK":"G","\\fP":"G","\\fR":"G","\\fS":"G","\\hi":"H","\\iO":"H","\\iN":"H","\\iK":"H","\\iL":"H","\\iV":"H","\\iU":"H","\\iS":"H","\\iJ":"H","\\iy":"H","\\iz":"H","\\iw":"H","\\ir":"H","\\iu":"I","\\iv":"I","\\iA":"I","\\iB":"I","\\iG":"I","\\iH":"I","\\iF":"I","\\iE":"I","\\iC":"I","\\iD":"I","\\iY":"I","\\iZ":"I","\\jk":"I","\\jl":"I","\\ji":"I","\\jg":"I","\\jh":"I","\\jm":"I","\\js":"I","\\jt":"J","\\jr":"J","\\jq":"J","\\jo":"J","\\jp":"K","\\jf":"K","\\je":"K","\\j4":"K","\\j5":"K","\\j3":"K","\\j2":"K","\\j0":"K","\\j1":"K","\\j6":"K","\\j7":"K","\\jc":"K","\\jd":"K","\\jb":"L","\\ja":"L","\\j8":"L","\\j9":"L","\\iq":"L","\\ip":"L","\\hG":"L","\\hH":"L","\\hF":"L","\\hE":"L","\\hC":"L","\\hD":"L","\\hI":"L","\\hJ":"L","\\hO":"L","\\hP":"L","\\hN":"L","\\hM":"hK","\\hL":"hB","\\hA":"M","\\hp":"M","\\hq":"M","\\ho":"M","\\hn":"M","\\hk":"M","\\hl":"M","\\hm":"N","\\hr":"N","\\hs":"N","\\hy":"N","\\hz":"N","\\fa":"N","\\hx":"N","\\hw":"N","\\ht":"N","\\hu":"N","\\hQ":"N","\\hR":"N","\\ic":"N","\\ie":"N","\\ib":"N","\\ia":"i8","\\i9":"ig","\\ih":"O","\\im":"O","\\io":"O","\\il":"O","\\ik":"O","\\ii":"O","\\ij":"O","\\i7":"O","\\i6":"O","\\hW":"O","\\hX":"O","\\hV":"O","\\hU":"O","\\hS":"O","\\hT":"O","\\hY":"O","\\hZ":"O","\\i4":"O","\\i5":"O","\\i3":"O","\\i2":"O","\\i0":"O","\\i1":"O","\\ju":"O","\\ef":"O","\\c1":"O","\\c2":"O","\\c3":"O","\\c0":"O","\\bZ":"O","\\bW":"O","\\bX":"O","\\bY":"O","\\c4":"O","\\c5":"O","\\cb":"O","\\cc":"O","\\cd":"O","\\ca":"O","\\c9":"O","\\c6":"O","\\c7":"O","\\c8":"bV","\\bU":"bH","\\bI":"bJ","\\bG":"P","\\bF":"P","\\bC":"P","\\bD":"P","\\bE":"P","\\bK":"P","\\bL":"P","\\bR":"P","\\bS":"P","\\bT":"Q","\\bQ":"Q","\\bP":"Q","\\bM":"Q","\\bN":"Q","\\bO":"R","\\ce":"R","\\cf":"R","\\cG":"R","\\cH":"R","\\cI":"R","\\cF":"R","\\cE":"R","\\cB":"R","\\cC":"R","\\cD":"R","\\cJ":"R","\\cK":"R","\\cQ":"R","\\cR":"R","\\cS":"R","\\cP":"S","\\cO":"S","\\cL":"S","\\cM":"S","\\cN":"S","\\cA":"S","\\cz":"S","\\cl":"S","\\cn":"S","\\co":"S","\\ck":"S","\\bB":"S","\\cg":"S","\\ch":"S","\\ci":"S","\\cp":"S","\\cq":"T","\\cw":"T","\\cx":"T","\\cy":"T","\\cv":"T","\\cu":"T","\\cr":"T","\\cs":"T","\\ct":"T","\\cT":"T","\\aZ":"T","\\aY":"T","\\aX":"T","\\aW":"T","\\b1":"b2","\\b5":"U","\\b4":"U","\\aV":"U","\\bA":"U","\\bs":"U","\\br":"U","\\bq":"U","\\b7":"U","\\bu":"U","\\bz":"U","\\by":"U","\\bx":"U","\\bv":"U","\\bw":"U","\\bn":"U","\\bm":"U","\\bc":"U","\\b8":"U","\\bh":"U","\\bi":"U","\\bo":"U","\\bj":"U","\\bk":"U","\\bl":"U","\\bg":"U","\\bf":"U","\\b9":"U","\\ba":"U","\\bb":"U","\\bd":"U","\\bt":"U","\\bp":"U","\\aS":"U","\\aU":"V","\\aT":"V","\\b6":"V","\\b3":"V","\\b0":"V","\\cj":"V","\\f9":"V","\\er":"es","\\eq":"W","\\ep":"W","\\ej":"W","\\ek":"W","\\eo":"W","\\et":"W","\\eu":"W","\\eA":"W","\\eB":"W","\\ez":"X","\\ey":"X","\\ev":"X","\\ew":"X","\\ei":"Y","\\eh":"Y","\\e7":"Y","\\e8":"Y","\\e6":"Y","\\e5":"Y","\\e2":"Y","\\e3":"Y","\\e4":"Y","\\e9":"Y","\\ea":"Y","\\cU":"Y","\\eg":"Y","\\ee":"Y","\\ed":"Z","\\eb":"Z","\\ec":"Z","\\eC":"Z","\\eD":"Z","\\eZ":"Z","\\f0":"Z","\\eY":"Z","\\eX":"Z","\\eV":"Z","\\eW":"Z","\\f1":"Z","\\f2":"Z","\\f7":"a","\\f8":"a","\\f6":"a","\\f5":"a","\\f3":"a","\\f4":"a","\\eU":"a","\\eT":"a","\\eJ":"a","\\eK":"a","\\eI":"a","\\eH":"a","\\eE":"a","\\eF":"a","\\eG":"a","\\eL":"a","\\eM":"a","\\eR":"a","\\eS":"a","\\eQ":"a","\\eP":"a","\\eN":"a","\\eO":"a","\\e1":"a","\\e0":"a","\\dh":"a","\\di":"a","\\dg":"a","\\df":"a","\\dc":"a","\\dd":"a","\\de":"a","\\dj":"a","\\dk":"a","\\dp":"aa","\\dq":"ae","\\do":"ae","\\dn":"ae","\\dl":"ao","\\dm":"au","\\db":"av","\\da":"av","\\d0":"ay","\\d1":"b","\\cZ":"b","\\cY":"b","\\cV":"b","\\cW":"b","\\cX":"b","\\d2":"b","\\d3":"b","\\d8":"c","\\d9":"c","\\d7":"c","\\d6":"c","\\d4":"c","\\d5":"c","\\dr":"c","\\ds":"c","\\dQ":"c","\\dR":"c","\\dP":"c","\\dO":"c","\\dL":"d","\\dM":"d","\\dN":"d","\\dS":"d","\\dT":"d","\\dY":"d","\\dZ":"d","\\dX":"d","\\dW":"d","\\dU":"d","\\dV":"d","\\dK":"d","\\dJ":"d","\\dy":"dz","\\dA":"dz","\\dx":"e","\\dw":"e","\\dt":"e","\\du":"e","\\dv":"e","\\dB":"e","\\dC":"e","\\dH":"e","\\dI":"e","\\dG":"e","\\dF":"e","\\dD":"e","\\dE":"e","\\gq":"e","\\lp":"e","\\oX":"e","\\oY":"e","\\oW":"e","\\oV":"e","\\oT":"e","\\oU":"e","\\oZ":"e","\\p0":"e","\\p5":"e","\\p4":"e","\\p3":"e","\\p1":"e","\\p2":"e","\\oS":"e","\\oR":"e","\\oI":"f","\\oJ":"f","\\oH":"f","\\oG":"f","\\oE":"f","\\oF":"g","\\oK":"g","\\oL":"g","\\oQ":"g","\\oP":"g","\\oO":"g","\\oM":"g","\\oN":"g","\\p6":"g","\\p7":"g","\\ps":"g","\\pr":"g","\\pq":"g","\\po":"g","\\pp":"h","\\pu":"h","\\pv":"h","\\pB":"h","\\pA":"h","\\pz":"h","\\pw":"h","\\py":"h","\\pn":"h","\\pm":"h","\\pd":"h","\\pe":"h","\\pb":"h","\\pa":"h","\\p8":"hv","\\p9":"i","\\pf":"i","\\pg":"i","\\pl":"i","\\pk":"i","\\pj":"i","\\ph":"i","\\pi":"i","\\oD":"i","\\oC":"i","\\nT":"i","\\nU":"i","\\nS":"i","\\nR":"i","\\nP":"i","\\nQ":"i","\\nV":"i","\\nW":"i","\\o1":"i","\\o0":"j","\\nZ":"j","\\nX":"j","\\nY":"j","\\nO":"j","\\nN":"k","\\nE":"k","\\nF":"k","\\nD":"k","\\nC":"k","\\nA":"k","\\nB":"k","\\nG":"k","\\nH":"k","\\nM":"k","\\pD":"k","\\nK":"k","\\nI":"k","\\nJ":"l","\\o2":"l","\\o3":"l","\\os":"l","\\ot":"l","\\oq":"l","\\op":"l","\\ol":"l","\\om":"l","\\ov":"l","\\ow":"l","\\oB":"l","\\oA":"l","\\oz":"l","\\ox":"l","\\oy":"l","\\ok":"l","\\oj":"l","\\o8":"lj","\\o9":"m","\\o7":"m","\\o6":"m","\\o4":"m","\\o5":"m","\\oa":"m","\\ob":"m","\\oh":"n","\\og":"n","\\oe":"n","\\oc":"n","\\od":"n","\\pC":"n","\\r5":"n","\\r0":"n","\\qX":"n","\\r4":"n","\\qG":"n","\\qB":"n","\\qC":"n","\\qJ":"n","\\qO":"n","\\qL":"n","\\qH":"nj","\\qN":"o","\\qM":"o","\\qK":"o","\\qP":"o","\\qR":"o","\\qQ":"o","\\qI":"o","\\qA":"o","\\qz":"o","\\qD":"o","\\qE":"o","\\qU":"o","\\qF":"o","\\qT":"o","\\r7":"o","\\r6":"o","\\r8":"o","\\r2":"o","\\qZ":"o","\\r1":"o","\\r3":"o","\\qS":"o","\\pW":"o","\\pV":"o","\\pT":"o","\\pU":"o","\\pY":"o","\\pZ":"o","\\q4":"o","\\qy":"o","\\q0":"o","\\q1":"o","\\pS":"o","\\pR":"o","\\pI":"o","\\pJ":"o","\\pH":"o","\\pF":"o","\\pL":"o","\\pQ":"o","\\pP":"o","\\pO":"o","\\pM":"oi","\\qp":"ou","\\qs":"oo","\\qt":"p","\\qk":"p","\\qj":"p","\\qb":"p","\\q9":"p","\\q7":"p","\\q8":"p","\\qc":"p","\\qd":"p","\\qi":"q","\\qh":"q","\\qg":"q","\\qe":"q","\\qf":"q","\\qa":"r","\\qu":"r","\\qv":"r","\\qw":"r","\\qr":"r","\\qq":"r","\\qm":"r","\\ql":"r","\\qn":"r","\\qo":"r","\\q6":"r","\\q5":"r","\\pN":"r","\\pK":"r","\\pE":"r","\\pG":"r","\\q2":"s","\\q3":"s","\\pX":"s","\\qx":"s","\\qV":"s","\\qW":"s","\\qY":"s","\\nL":"s","\\ny":"s","\\kQ":"s","\\kR":"s","\\kP":"s","\\kO":"s","\\kM":"s","\\kN":"s","\\kS":"s","\\kT":"s","\\kY":"t","\\kX":"t","\\kW":"t","\\kU":"t","\\kV":"t","\\kL":"t","\\kK":"t","\\kA":"t","\\kB":"t","\\kz":"t","\\ky":"t","\\kw":"t","\\kx":"t","\\kC":"t","\\kD":"t","\\kI":"kJ","\\kH":"u","\\kG":"u","\\kE":"u","\\kF":"u","\\kZ":"u","\\l0":"u","\\lm":"u","\\ln":"u","\\ll":"u","\\lk":"u","\\lg":"u","\\lh":"u","\\lo":"u","\\nz":"u","\\jv":"u","\\lv":"u","\\lu":"u","\\ls":"u","\\lq":"u","\\lr":"u","\\lf":"u","\\le":"u","\\l5":"u","\\l6":"u","\\l4":"u","\\l3":"u","\\l1":"u","\\l2":"u","\\l7":"u","\\l8":"u","\\ld":"u","\\lc":"u","\\lb":"u","\\l9":"v","\\la":"v","\\kv":"v","\\ku":"v","\\jQ":"v","\\jR":"v","\\jP":"v","\\jO":"jM","\\jN":"w","\\jS":"w","\\jT":"w","\\jY":"w","\\jX":"w","\\jW":"w","\\jU":"w","\\jV":"w","\\jL":"w","\\jK":"w","\\jA":"x","\\jB":"x","\\jz":"x","\\jy":"x","\\jw":"y","\\jx":"y","\\jC":"y","\\jD":"y","\\jI":"y","\\jJ":"y","\\jH":"y","\\jG":"y","\\jE":"y","\\jF":"y","\\jZ":"y","\\k0":"y","\\kl":"y","\\km":"y","\\kk":"y","\\kj":"z","\\kh":"z","\\ki":"z","\\kn":"z","\\ko":"z","\\kt":"z","\\ks":"z","\\kr":"z","\\kp":"z","\\kq":"z","\\kg":"z","\\kf":"z","\\k5":"z","\\k6":"\\k4","\\k3":"\\k1","\\k2":"\\k7","\\k8":"\\8r","\\kd":"\\8r","\\ke":"\\kc","\\kb":"\\8N","\\k9":"\\8N","\\ka":"\\lw","\\lx":"\\mT","\\mU":"\\mS","\\mR":"\\mP","\\mQ":"\\7N","\\mV":"\\7N","\\mW":"\\7N","\\n1":"\\n0","\\mZ":"\\7L","\\mX":"\\7L","\\mY":"\\7L","\\8G":"\\8G","\\mO":"\\mN"};$1W=$(1W);4J=(5(){14 8H=1;11 5(){11 8H++}}());5 72(12){14 2m=$(1W.mD(\'\'));12.6i(2m);2m.6i(12);2m.3p()}5 4k(8D){5 29(a){11 8E[a]||a}11 8D.5f(/[^\\mE-\\mC]/g,29)}5 2k(25,7Z){14 i=0,l=7Z.1d;1N(;i<l;i=i+1){if(2x(25,7Z[i]))11 i}11-1}5 94(){14 $4n=$(8J);$4n.51(1W.2V);14 8O={1r:$4n.1r()-$4n[0].mB,3l:$4n.3l()-$4n[0].9i};$4n.3p();11 8O}5 2x(a,b){if(a===b)11 1l;if(a===1h||b===1h)11 1e;if(a===1o||b===1o)11 1e;if(a.2W===7J)11 a+\'\'===b+\'\';if(b.2W===7J)11 b+\'\'===a+\'\';11 1e}5 6g(4t,3e,8P){14 19,i,l;if(4t===1o||4t.1d<1)11[];19=4t.6t(3e);1N(i=0,l=19.1d;i<l;i=i+1)19[i]=8P(19[i]);11 19}5 87(12){11 12.2S(1e)-12.1r()}5 77(12){14 5i="4R-2Y-25";12.on("5T",5(){if($.7(12,5i)===1h){$.7(12,5i,12.19())}});12.on("4R",5(){14 19=$.7(12,5i);if(19!==1h&&12.19()!==19){$.7m(12,5i);12.1L("4R-2Y")}})}5 8U(12){12.on("5G",5(e){14 6O=6s;if(6O===1h||6O.x!==e.9m||6O.y!==e.9l){$(e.4P).1L("5G-31",e)}})}5 6E(54,fn,6e){6e=6e||1h;14 4V;11 5(){14 26=1H;1I.9g(4V);4V=1I.4W(5(){fn.2g(6e,26)},54)}}5 98(8M,12){14 8K=6E(8M,5(e){12.1L("3r-99",e)});12.on("3r",5(e){if(2k(e.4P,12.2w())>=0)8K(e)})}5 1t($el){if($el[0]===1W.6A)11;1I.4W(5(){14 el=$el[0],52=$el.19().1d,41;$el.1t();14 8B=(el.mz>0||el.mA>0);if(8B&&el===1W.6A){if(el.5S){el.5S(52,52)}1k if(el.5U){41=el.5U();41.am(1e);41.1A()}}},0)}5 9O(el){el=$(el)[0];14 1K=0;14 1d=0;if(\'8L\'in el){1K=el.8L;1d=el.mF-1K}1k if(\'1q\'in 1W){el.1t();14 7W=1W.1q.8Q();1d=1W.1q.8Q().1j.1d;7W.mG(\'7X\',-el.25.1d);1K=7W.1j.1d-1d}11{1K:1K,1d:1d}}5 1P(2o){2o.5W();2o.4G()}5 aQ(2o){2o.5W();2o.aj()}5 9U(e){if(!3W){14 2c=e[0].mL||1I.mM(e[0],1o);3W=$(1W.5k("1X")).1Y({8Y:"mK",2O:"-8t",23:"-8t",5Z:"61",8p:2c.8p,8q:2c.8q,8z:2c.8z,8u:2c.8u,8x:2c.8x,8w:2c.8w,mJ:"mH"});3W.1f("1s","6-3W");$(1W.2V).4g(3W)}3W.1j(e.19());11 3W.1r()}5 57(7T,8I,9v){14 3c,6V=[],6Q;3c=$.4N(7T.1f("1s"));if(3c){3c=\'\'+3c;$(3c.6t(/\\s+/)).2E(5(){if(3.2k("6-")===0){6V.1O(3)}})}3c=$.4N(8I.1f("1s"));if(3c){3c=\'\'+3c;$(3c.6t(/\\s+/)).2E(5(){if(3.2k("6-")!==0){6Q=9v(3);if(6Q){6V.1O(6Q)}}})}7T.1f("1s",6V.5g(" "))}5 6D(1j,1C,2Q,2e){14 29=4k(1j.6j()).2k(4k(1C.6j())),7U=1C.1d;if(29<0){2Q.1O(2e(1j));11}2Q.1O(2e(1j.5F(0,29)));2Q.1O("<4x 1s=\'6-29\'>");2Q.1O(2e(1j.5F(29,29+7U)));2Q.1O("</4x>");2Q.1O(2e(1j.5F(29+7U,1j.1d)))}5 7O(2Q){14 9k={\'\\\\\':\'\\',\'&\':\'&mI;\',\'<\':\'<\',\'>\':\'>\',\'"\':\'&n2;\',"\'":\''\',"/":\'/\'};11 7J(2Q).5f(/[&<>"\'\\/\\\\]/g,5(29){11 9k[29]})}5 2U(1J){14 4V,5C=1o,54=1J.54||n3,4i=1J.3k,1c=3;11 5(1p){1I.9g(4V);4V=1I.4W(5(){14 7=1J.7,3k=4i,5r=1J.5r||$.fn.6.7M.5r,9e={2q:1J.2q||\'aP\',7K:1J.7K||1e,9d:1J.9d||1h,5y:1J.5y||"9M"},3f=$.2Z({},$.fn.6.7M.3f,9e);7=7?7.20(1c,1p.1C,1p.2J,1p.24):1o;3k=(3m 3k===\'5\')?3k.20(1c,1p.1C,1p.2J,1p.24):3k;if(5C&&3m 5C.9f==="5"){5C.9f()}if(1J.3f){if($.2G(1J.3f)){$.2Z(3f,1J.3f.20(1c))}1k{$.2Z(3f,1J.3f)}}$.2Z(3f,{3k:3k,5y:1J.5y,7:7,np:5(7){14 1b=1J.1b(7,1p.2J,1p);1p.1V(1b)},aR:5(5I,5B,5E){14 1b={aG:1l,5I:5I,5B:5B,5E:5E};1p.1V(1b)}});5C=5r.20(1c,3f)},54)}}5 6w(1J){14 7=1J,7w,53,1j=5(2K){11""+2K.1j};if($.6z(7)){53=7;7={1b:53}}if($.2G(7)===1e){53=7;7=5(){11 53}}14 6o=7();if(6o.1j){1j=6o.1j;if(!$.2G(1j)){7w=6o.1j;1j=5(2K){11 2K[7w]}}}11 5(1p){14 t=1p.1C,31={1b:[]},3S;if(t===""){1p.1V(7());11}3S=5(2A,4Q){14 2F,1f;2A=2A[0];if(2A.1F){2F={};1N(1f in 2A){if(2A.nq(1f))2F[1f]=2A[1f]}2F.1F=[];$(2A.1F).2E(5(i,9r){3S(9r,2F.1F)});if(2F.1F.1d||1p.3g(t,1j(2F),2A)){4Q.1O(2F)}}1k{if(1p.3g(t,1j(2A),2A)){4Q.1O(2A)}}};$(7().1b).2E(5(i,2A){3S(2A,31.1b)});1p.1V(31)}}5 28(7){14 9n=$.2G(7);11 5(1p){14 t=1p.1C,31={1b:[]};14 1z=9n?7(1p):7;if($.6z(1z)){$(1z).2i(5(){14 7v=3.1j!==1h,1j=7v?3.1j:3;if(t===""||1p.3g(t,1j)){31.1b.1O(7v?3:{id:3,1j:3})}});1p.1V(31)}}}5 3N(5K,9c){if($.2G(5K))11 1l;if(!5K)11 1e;if(3m(5K)===\'4t\')11 1l;2X 3u 5s(9c+" 8X be a 4t, 5, or nn 25")}5 2b(19,24){if($.2G(19)){14 26=a0.3F.5u.20(1H,2);11 19.2g(24,26)}11 19}5 7j(1b){14 68=0;$.2i(1b,5(i,2K){if(2K.1F){68+=7j(2K.1F)}1k{68++}});11 68}5 9E(1y,1q,8Z,4){14 8W=1y,6K=1e,3b,1D,i,l,3e;if(!4.3P||!4.58||4.58.1d<1)11 1h;6H(1l){1D=-1;1N(i=0,l=4.58.1d;i<l;i++){3e=4.58[i];1D=1y.2k(3e);if(1D>=0)5z}if(1D<0)5z;3b=1y.5F(0,1D);1y=1y.5F(1D+3e.1d);if(3b.1d>0){3b=4.3P.20(3,3b,1q);if(3b!==1h&&3b!==1o&&4.id(3b)!==1h&&4.id(3b)!==1o){6K=1e;1N(i=0,l=1q.1d;i<l;i++){if(2x(4.id(3b),4.id(1q[i]))){6K=1l;5z}}if(!6K)8Z(3b)}}}if(8W!==1y)11 1y}5 5P(){14 1c=3;$.2i(1H,5(i,12){1c[12].3p();1c[12]=1o})}5 6M(7G,8V){14 2W=5(){};2W.3F=3u 7G;2W.3F.2W=2W;2W.3F.2r=7G.3F;2W.3F=$.2Z(2W.3F,8V);11 2W}5e=6M(nm,{1x:5(8S){14 1c=3;11 5(){8S.2g(1c,1H)}},9Z:5(4){14 1b,15,3E=".6-1b";3.4=4=3.4O(4);3.id=4.id;if(4.12.7("6")!==1h&&4.12.7("6")!==1o){4.12.7("6").4u()}3.1a=3.75();3.3a=$(\'.6-6B-8T\');if(3.3a.1d==0){3.3a=$("<4x>",{3X:"nk","42-nl":"nr"}).1w("6-6B-8T").51(1W.2V)}3.7F="ns"+(4.12.1f("id")||"nx"+4J());3.7l=3.7F.5f(/([.])/g,\'nw\').5f(/([;&,\\-\\.\\+\\*\\~\':"\\!\\^#$%@\\[\\]\\(\\)=>\\|])/g,\'\\\\$1\');3.1a.1f("id",3.7F);3.1a.1f("6Z",4.12.1f("6Z"));3.2V=$(1W.2V);57(3.1a,3.4.12,3.4.7x);3.1a.1f("2c",4.12.1f("2c"));3.1a.1Y(2b(4.ad,3.4.12));3.1a.1w(2b(4.7A,3.4.12));3.5J=3.4.12.1f("3Q");3.4.12.7("6",3).1f("3Q","-1").6i(3.1a).on("3h.6",1P);3.1a.7("6",3);3.1i=3.1a.1u(".6-1S");57(3.1i,3.4.12,3.4.7I);3.1i.1w(2b(4.7z,3.4.12));3.1i.7("6",3);3.1i.on("3h",1P);3.1b=1b=3.1a.1u(3E);3.15=15=3.1a.1u("1y.6-1y");3.7b=0;3.4v=0;3.24=1o;3.8o();3.1a.on("3h",1P);8U(3.1b);3.1i.on("5G-31",3E,3.1x(3.6p));3.1i.on("4c 90 7C",3E,3.1x(5(2o){3.7E=1l;3.6p(2o)}));3.1i.on("90",3E,3.1x(3.8s));3.1i.on("4c 7C",3E,3.1x(3.7g));3.1i.on(\'3h\',3.1x(5(2o){if(3.7E){3.7E=1e;3.3B()}}));98(80,3.1b);3.1i.on("3r-99",3E,3.1x(3.5Q));$(3.1a).on("2Y",".6-1y",5(e){e.4G()});$(3.1i).on("2Y",".6-1y",5(e){e.4G()});if($.fn.9a){1b.9a(5(e,7k,nv,5v){14 23=1b.2T();if(5v>0&&23-5v<=0){1b.2T(0);1P(e)}1k if(5v<0&&1b.2w(0).7i-1b.2T()+5v<=1b.3l()){1b.2T(1b.2w(0).7i-1b.3l());1P(e)}})}77(15);15.on("4R-2Y 1y 9N",3.1x(3.3O));15.on("1t",5(){15.1w("6-5j")});15.on("3y",5(){15.1U("6-5j")});3.1i.on("96",3E,3.1x(5(e){if($(e.4P).59(".6-1z-2M").1d>0){3.6p(e);3.3B(e)}}));3.1i.on("3h 96 4E 4c 7C nt",5(e){e.4G()});3.2v=1h;if($.2G(3.4.1T)){3.1T();3.9b()}if(4.4Y!==1o){3.15.1f("nu",4.4Y)}14 1B=4.12.22("1B");if(1B===1h)1B=1e;3.5p(!1B);14 2p=4.12.22("2p");if(2p===1h)2p=1e;3.2p(2p);67=67||94();3.4B=4.12.22("4B");4.12.22("4B",1e);if(3.4B)3.1t();3.15.1f("2m",4.9C)},4u:5(){14 12=3.4.12,6=12.7("6"),1c=3;3.1E();if(12.1d&&12[0].95&&1c.4s){12.2i(5(){if(1c.4s){3.95("9o",1c.4s)}})}if(3.3R){3.3R.ni();3.3R=1o}3.4s=1o;if(6!==1h){6.1a.3p();6.3a.3p();6.1i.3p();12.50().7m("6").2I(".6").22("4B",3.4B||1e);if(3.5J){12.1f({3Q:3.5J})}1k{12.7e("3Q")}12.50()}5P.20(3,"1a","3a","1i","1b","15")},4F:5(12){if(12.is("3H")){11{id:12.22("25"),1j:12.1j(),12:12.2w(),1Y:12.1f("1s"),1B:12.22("1B"),3j:2x(12.1f("3j"),"3j")||2x(12.7("3j"),1l)}}1k if(12.is("91")){11{1j:12.1f("1Q"),1F:[],12:12.2w(),1Y:12.1f("1s")}}},4O:5(4){14 12,1A,8n,4i,1c=3;12=4.12;if(12.2w(0).6x.6T()==="1A"){3.1A=1A=4.12}if(1A){$.2i(["id","3t","2U","1p","3P","1T","7","28"],5(){if(3 in 4){2X 3u 5s("nh \'"+3+"\' is 2f n8 1N 49 9X 9W 4z a <1A> 12.")}})}4=$.2Z({},{7o:5(1a,1b,1p){14 6r,id=3.4.id,3a=3.3a;6r=5(1b,1a,7D){14 i,l,1z,2M,1B,4y,2D,1Q,5w,2L;1b=4.a8(1b,1a,1p);14 8e=[];1N(i=0,l=1b.1d;i<l;i=i+1){1z=1b[i];1B=(1z.1B===1l);2M=(!1B)&&(id(1z)!==1h);4y=1z.1F&&1z.1F.1d>0;2D=$("<li></li>");2D.1w("6-1b-n9-"+7D);2D.1w("6-1z");2D.1w(2M?"6-1z-2M":"6-1z-n7");if(1B){2D.1w("6-1B")}if(4y){2D.1w("6-1z-88-1F")}2D.1w(1c.4.a9(1z));2D.1f("3X","74");1Q=$(1W.5k("1X"));1Q.1w("6-1z-1Q");1Q.1f("id","6-1z-1Q-"+4J());1Q.1f("3X","3H");2L=4.a7(1z,1Q,1p,1c.4.2e);if(2L!==1h){1Q.3C(2L);2D.4g(1Q)}if(4y){5w=$("<3G></3G>");5w.1w("6-1z-n6");6r(1z.1F,5w,7D+1);2D.4g(5w)}2D.7("6-7",1z);8e.1O(2D[0])}1a.4g(8e);3a.1j(4.7V(1b.1d))};6r(1b,1a,0)}},$.fn.6.7S,4);if(3m(4.id)!=="5"){8n=4.id;4.id=5(e){11 e[8n]}}if($.6z(4.12.7("93"))){if("28"in 4){2X"28 n4 as n5 an na \'7-6-28\' aw in 1J of 49 "+4.12.1f("id")}4.28=4.12.7("93")}if(1A){4.1p=3.1x(5(1p){14 7={1b:[],1Z:1e},1C=1p.1C,1F,2a,3S;3S=5(12,4Q){14 2F;if(12.is("3H")){if(1p.3g(1C,12.1j(),12)){4Q.1O(1c.4F(12))}}1k if(12.is("91")){2F=1c.4F(12);12.1F().2E(5(i,3o){3S(3o,2F.1F)});if(2F.1F.1d>0){4Q.1O(2F)}}};1F=12.1F();if(3.3V()!==1h&&1F.1d>0){2a=3.4d();if(2a){1F=1F.2f(2a)}}1F.2E(5(i,3o){3S(3o,7.1b)});1p.1V(7)});4.id=5(e){11 e.id}}1k{if(!("1p"in 4)){if("2U"in 4){4i=4.12.7("2U-3k");if(4i&&4i.1d>0){4.2U.3k=4i}4.1p=2U.20(4.12,4.2U)}1k if("7"in 4){4.1p=6w(4.7)}1k if("28"in 4){4.1p=28(4.28);if(4.3P===1h){4.3P=5(1C){11{id:$.4N(1C),1j:$.4N(1C)}}}if(4.1T===1h){4.1T=5(12,1V){14 7=[];$(6g(12.19(),4.3e,4.5L)).2i(5(){14 6X={id:3,1j:3},28=4.28;if($.2G(28))28=28();$(28).2i(5(){if(2x(3.id,6X.id)){6X=3;11 1e}});7.1O(6X)});1V(7)}}}}}if(3m(4.1p)!=="5"){2X"1p 5 2f 81 1N 49 "+4.12.1f("id")}if(4.3J===\'23\'){4.3J=5(55,2K){55.nb(2K)}}1k if(4.3J===\'6q\'){4.3J=5(55,2K){55.1O(2K)}}1k if(3m(4.3J)!=="5"){2X"ng 3J 3H 8X be \'23\', \'6q\' or a nf 5"}11 4},9b:5(){14 el=3.4.12,6I,1c=3;el.on("2Y.6",3.1x(5(e){if(3.4.12.7("6-2Y-8f")!==1l){3.1T()}}));3.4s=3.1x(5(){14 1B=el.22("1B");if(1B===1h)1B=1e;3.5p(!1B);14 2p=el.22("2p");if(2p===1h)2p=1e;3.2p(2p);if(3.1a){57(3.1a,3.4.12,3.4.7x);3.1a.1w(2b(3.4.7A,3.4.12))}if(3.1i){57(3.1i,3.4.12,3.4.7I);3.1i.1w(2b(3.4.7z,3.4.12))}});if(el.1d&&el[0].9p){el.2i(5(){3.9p("9o",1c.4s)})}6I=1I.ne||1I.nc||1I.nd;if(6I!==1h){if(3.3R){aC 3.3R;3.3R=1o}3.3R=3u 6I(5(9t){$.2i(9t,1c.4s)});3.3R.my(el.2w(0),{mx:1l,lS:1e})}},8d:5(7){14 30=$.2y("6-lT",{19:3.id(7),a4:7,1g:7});3.4.12.1L(30);11!30.6N()},1G:5(4D){4D=4D||{};4D=$.2Z({},4D,{2q:"2Y",19:3.19()});3.4.12.7("6-2Y-8f",1l);3.4.12.1L(4D);3.4.12.7("6-2Y-8f",1e);3.4.12.3h();if(3.4.9F)3.4.12.3y()},2B:5(){11 3.8a===1l},4m:5(){14 2l=3.6J&&!3.5V,1B=!2l;if(2l===3.8a)11 1e;3.1a.6f("6-1a-1B",1B);3.1E();3.8a=2l;11 1l},5p:5(2l){if(2l===1h)2l=1l;if(3.6J===2l)11;3.6J=2l;3.4.12.22("1B",!2l);3.4m()},9P:5(){3.5p(1e)},2p:5(2l){if(2l===1h)2l=1e;if(3.5V===2l)11;3.5V=2l;3.4.12.22("2p",2l);3.4m()},21:5(){11(3.1a)?3.1a.2z("6-1i-2h"):1e},3K:5(){14 $1i=3.1i,1a=3.1a,1K=1a.1K(),3l=1a.3I(1e),1r=1a.2S(1e),4M=$1i.3I(1e),$1I=$(1I),7s=$1I.1r(),7p=$1I.3l(),5O=$1I.8v()+7s,73=$1I.2T()+7p,5H=1K.23+3l,4C=1K.2O,86=5H+4M<=73,8i=(1K.23-4M)>=$1I.2T(),3s=$1i.2S(1e),97=5(){11 4C+3s<=5O},9w=5(){11 1K.2O+5O+1a.2S(1e)>3s},8F=$1i.2z("6-1S-2C"),70,2C,5N,1Y,63;if(8F){2C=1l;if(!8i&&86){5N=1l;2C=1e}}1k{2C=1e;if(!86&&8i){5N=1l;2C=1l}}if(5N){$1i.43();1K=3.1a.1K();3l=3.1a.3I(1e);1r=3.1a.2S(1e);4M=$1i.3I(1e);5O=$1I.8v()+7s;73=$1I.2T()+7p;5H=1K.23+3l;4C=1K.2O;3s=$1i.2S(1e);$1i.50();3.4q()}if(3.4.lR){63=$(\'.6-1b\',$1i)[0];$1i.1w(\'6-1S-4S-1r\');$1i.1Y(\'1r\',\'\');3s=$1i.2S(1e)+(63.7i===63.9i?0:67.1r);3s>1r?1r=3s:3s=1r;4M=$1i.3I(1e)}1k{3.1a.1U(\'6-1S-4S-1r\')}if(3.2V.1Y(\'8Y\')!==\'lQ\'){70=3.2V.1K();5H-=70.23;4C-=70.2O}if(!97()&&9w()){4C=1K.2O+3.1a.2S(1e)-3s}1Y={2O:4C,1r:1r};if(2C){1Y.23=1K.23-4M;1Y.6q=\'4S\';3.1a.1w("6-1S-2C");$1i.1w("6-1S-2C")}1k{1Y.23=5H;1Y.6q=\'4S\';3.1a.1U("6-1S-2C");$1i.1U("6-1S-2C")}1Y=$.2Z(1Y,2b(3.4.ac,3.4.12));$1i.1Y(1Y)},9q:5(){14 2o;if(3.21())11 1e;if(3.6J===1e||3.5V===1l)11 1e;2o=$.2y("6-44");3.4.12.1L(2o);11!2o.6N()},7d:5(){3.1a.1U("6-1S-2C");3.1i.1U("6-1S-2C")},2h:5(){if(!3.9q())11 1e;3.44();$1W.on("5G.8A",5(e){6s.x=e.9m;6s.y=e.9l});11 1l},44:5(){14 3Y=3.7l,3r="3r."+3Y,4T="4T."+3Y,6l="9h."+3Y,2n;3.1a.1w("6-1i-2h").1w("6-1a-1R");3.7d();if(3.1i[0]!==3.2V.1F().69()[0]){3.1i.9z().51(3.2V)}2n=$("#6-1S-2n");if(2n.1d===0){2n=$(1W.5k("1X"));2n.1f("id","6-1S-2n").1f("1s","6-1S-2n");2n.43();2n.51(3.2V);2n.on("4E 4c 3h",5(e){72(2n);14 1i=$("#6-1S"),1c;if(1i.1d>0){1c=1i.7("6");if(1c.4.7y){1c.3B({4a:1l})}1c.1E();e.5W();e.4G()}})}if(3.1i.3n()[0]!==2n[0]){3.1i.6i(2n)}$("#6-1S").7e("id");3.1i.1f("id","6-1S");2n.50();3.3K();3.1i.50();3.3K();3.1i.1w("6-1S-1R");14 78=3;3.1a.8R().9j(1I).2i(5(){$(3).on(4T+" "+3r+" "+6l,5(e){if(78.21())78.3K()})})},1E:5(){if(!3.21())11;14 3Y=3.7l,3r="3r."+3Y,4T="4T."+3Y,6l="9h."+3Y;3.1a.8R().9j(1I).2i(5(){$(3).2I(3r).2I(4T).2I(6l)});3.7d();$("#6-1S-2n").43();3.1i.7e("id");3.1i.43();3.1a.1U("6-1i-2h").1U("6-1a-1R");3.1b.6n();$1W.2I("5G.8A");3.2s();3.15.1U("6-1R");3.4.12.1L($.2y("6-1E"))},a1:5(1C){3.2h();3.15.19(1C);3.3O(1e)},2s:5(){},5R:5(){11 2b(3.4.ab,3.4.12)},8C:5(){14 1b=3.1b,1F,1D,5c,hb,6F,y,1Z,6P;1D=3.2P();if(1D<0)11;if(1D==0){1b.2T(0);11}1F=3.3M().1u(\'.6-1z-1Q\');5c=$(1F[1D]);6P=(5c.1K()||{}).23||0;hb=6P+5c.3I(1l);if(1D===1F.1d-1){1Z=1b.1u("li.6-1Z-1b");if(1Z.1d>0){hb=1Z.1K().23+1Z.3I(1l)}}6F=1b.1K().23+1b.3I(1e);if(hb>6F){1b.2T(1b.2T()+(hb-6F))}y=6P-1b.1K().23;if(y<0&&5c.1Y(\'5Z\')!=\'61\'){1b.2T(1b.2T()+y)}},3M:5(){11 3.1b.1u(".6-1z-2M:2f(.6-1B):2f(.6-1n)")},8l:5(7k){14 2j=3.3M(),1D=3.2P();6H(1D>-1&&1D<2j.1d){1D+=7k;14 1g=$(2j[1D]);if(1g.2z("6-1z-2M")&&!1g.2z("6-1B")&&!1g.2z("6-1n")){3.2P(1D);5z}}},2P:5(1D){14 2j=3.3M(),1g,7;if(1H.1d===0){11 2k(2j.4K(".6-3D")[0],2j.2w())}if(1D>=2j.1d)1D=2j.1d-1;if(1D<0)1D=0;3.6Y();1g=$(2j[1D]);1g.1w("6-3D");3.15.1f("42-lO",1g.1u(".6-1z-1Q").1f("id"));3.8C();3.3a.1j(1g.1j());7=1g.7("6-7");if(7){3.4.12.1L({2q:"6-2P",19:3.id(7),1g:7})}},6Y:5(){3.1b.1u(".6-3D").1U("6-3D")},8s:5(){3.7n=1l},7g:5(){3.7n=1e},9I:5(){11 3.3M().1d},6p:5(2o){14 el=$(2o.4P).59(".6-1z-2M");if(el.1d>0&&!el.is(".6-3D")){14 2j=3.3M();3.2P(2j.1D(el))}1k if(el.1d==0){3.6Y()}},5Q:5(){14 1b=3.1b,1Z=1b.1u("li.6-1Z-1b"),7f,2J=3.4v+1,1c=3,1C=3.15.19(),24=3.24;if(1Z.1d===0)11;7f=1Z.1K().23-1b.1K().23-1b.3l();if(7f<=3.4.ag){1Z.1w("6-1R");3.4.1p({12:3.4.12,1C:1C,2J:2J,24:24,3g:3.4.3g,1V:3.1x(5(7){if(!1c.21())11;1c.4.7o.20(3,1b,7.1b,{1C:1C,2J:2J,24:24});1c.45(7,1e,1e);if(7.1Z===1l){1Z.9z().51(1b).3C(1c.4.2e(2b(1c.4.5D,1c.4.12,2J+1)));1I.4W(5(){1c.5Q()},10)}1k{1Z.3p()}1c.3K();1c.4v=2J;1c.24=7.24;3.4.12.1L({2q:"6-aN",aO:7})})})}},8b:5(){},3O:5(3q){14 15=3.15,1b=3.1b,4=3.4,7,1c=3,1y,1C=15.19(),7h=$.7(3.1a,"6-69-1C"),7c;if(3q!==1l&&7h&&2x(1C,7h))11;$.7(3.1a,"6-69-1C",1C);if(3q!==1l&&(3.3d===1e||!3.21())){11}5 71(){15.1U("6-1R");1c.3K();if(1b.1u(\'.6-no-1b,.6-1q-5b,.6-aJ\').1d){1c.3a.1j(1b.1j())}1k{1c.3a.1j(1c.4.7V(1b.1u(\'.6-1z-2M:2f(".6-1n")\').1d))}}5 3x(3C){1b.3C(3C);71()}7c=++3.7b;14 6a=3.5R();if(6a>=1){7=3.7();if($.6z(7)&&7.1d>=6a&&3N(4.6R,"6R")){3x("<li 1s=\'6-1q-5b\'>"+2b(4.6R,4.12,6a)+"</li>");11}}if(15.19().1d<4.82){if(3N(4.6u,"6u")){3x("<li 1s=\'6-no-1b\'>"+2b(4.6u,4.12,15.19(),4.82)+"</li>")}1k{3x("")}if(3q&&3.4l)3.4l(1l);11}if(4.4Y&&15.19().1d>4.4Y){if(3N(4.6C,"6C")){3x("<li 1s=\'6-no-1b\'>"+2b(4.6C,4.12,15.19(),4.4Y)+"</li>")}1k{3x("")}11}if(4.7Y&&3.3M().1d===0){3x("<li 1s=\'6-aJ\'>"+2b(4.7Y,4.12)+"</li>")}15.1w("6-1R");3.6Y();1y=3.8b();if(1y!=1h&&1y!=1o){15.19(1y)}3.4v=1;4.1p({12:4.12,1C:15.19(),2J:3.4v,24:1o,3g:4.3g,1V:3.1x(5(7){14 3Z;if(7c!=3.7b){11}if(!3.21()){3.15.1U("6-1R");11}if(7.aG!==1h&&3N(4.6m,"6m")){3x("<li 1s=\'6-2U-aR\'>"+2b(4.6m,4.12,7.5I,7.5B,7.5E)+"</li>");11}3.24=(7.24===1h)?1o:7.24;if(3.4.3P&&15.19()!==""){3Z=3.4.3P.20(1c,15.19(),7.1b);if(3Z!==1h&&3Z!==1o&&1c.id(3Z)!==1h&&1c.id(3Z)!==1o){if($(7.1b).4K(5(){11 2x(1c.id(3),1c.id(3Z))}).1d===0){3.4.3J(7.1b,3Z)}}}if(7.1b.1d===0&&3N(4.4w,"4w")){3x("<li 1s=\'6-no-1b\'>"+2b(4.4w,4.12,15.19())+"</li>");11}1b.6n();1c.4.7o.20(3,1b,7.1b,{1C:15.19(),2J:3.4v,24:1o});if(7.1Z===1l&&3N(4.5D,"5D")){1b.4g("<li 1s=\'6-1Z-1b\'>"+4.2e(2b(4.5D,4.12,3.4v))+"</li>");1I.4W(5(){1c.5Q()},10)}3.45(7,3q);71();3.4.12.1L({2q:"6-aN",aO:7})})})},4X:5(){3.1E()},3y:5(){if(3.4.7y)3.3B({4a:1l});3.1E();3.1a.1U("6-1a-1R");if(3.15[0]===1W.6A){3.15.3y()}3.2s();3.1q.1u(".6-15-1g-1t").1U("6-15-1g-1t")},4q:5(){1t(3.15)},3B:5(1J){if(3.7n){3.7g();11}14 1D=3.2P(),3D=3.1b.1u(".6-3D"),7=3D.59(\'.6-1z\').7("6-7");if(7){3.2P(1D);3.66(7,1J)}1k if(1J&&1J.4a){3.1E()}},3V:5(){14 2a;11 3.4.12.1f("2m")||3.4.12.1f("7-2m")||3.4.12.7("2m")||3.4.2m||((2a=3.4d())!==1h?2a.1j():1h)},4d:5(){if(3.1A){14 5A=3.1A.1F(\'3H\').65();if(3.4.2a!==1h){11(3.4.2a==="65"&&5A)||(3m 3.4.2a==="5"&&3.4.2a(3.1A))}1k if($.4N(5A.1j())===""&&5A.19()===""){11 5A}}},8c:5(){5 aq(){14 2c,5Y,2u,i,l,1f;if(3.4.1r==="2I"){11 1o}1k if(3.4.1r==="12"){11 3.4.12.2S(1e)===0?\'4S\':3.4.12.2S(1e)+\'px\'}1k if(3.4.1r==="af"||3.4.1r==="aH"){2c=3.4.12.1f(\'2c\');if(2c!==1h){5Y=2c.6t(\';\');1N(i=0,l=5Y.1d;i<l;i=i+1){1f=5Y[i].5f(/\\s/g,\'\');2u=1f.29(/^1r:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i);if(2u!==1o&&2u.1d>=1)11 2u[1]}}if(3.4.1r==="aH"){2c=3.4.12.1Y(\'1r\');if(2c.2k("%")>0)11 2c;11(3.4.12.2S(1e)===0?\'4S\':3.4.12.2S(1e)+\'px\')}11 1o}1k if($.2G(3.4.1r)){11 3.4.1r()}1k{11 3.4.1r}};14 1r=aq.20(3);if(1r!==1o){3.1a.1Y("1r",1r)}}});7Q=6M(5e,{75:5(){14 1a=$(1W.5k("1X")).1f({"1s":"6-1a"}).3C(["<a 9H=\'lP:lU(0)\' 1s=\'6-1g\' 3Q=\'-1\'>"," <4x 1s=\'6-4j\'>&#lV;</4x><76 1s=\'6-15-1g-1E\'></76>"," <4x 1s=\'6-ar\' 3X=\'74\'><b 3X=\'74\'></b></4x>","</a>","<1Q 1N=\'\' 1s=\'6-5d\'></1Q>","<1y 1s=\'6-1M 6-5d\' 2q=\'1j\' 42-m0=\'1l\' 3X=\'lZ\' />","<1X 1s=\'6-1S 6-5Z-61\'>"," <1X 1s=\'6-15\'>"," <1Q 1N=\'\' 1s=\'6-5d\'></1Q>"," <1y 2q=\'1j\' 7q=\'2I\' aI=\'2I\' aK=\'2I\' ai=\'1e\' 1s=\'6-1y\' 3X=\'lY\' 42-lW=\'1l\'"," 42-7q=\'55\' />"," </1X>"," <3G 1s=\'6-1b\' 3X=\'lX\'>"," </3G>","</1X>"].5g(""));11 1a},4m:5(){if(3.2r.4m.2g(3,1H)){3.1M.22("1B",!3.2B())}},44:5(){14 el,41,64;if(3.4.4H>=0){3.4l(1l)}3.2r.44.2g(3,1H);if(3.3d!==1e){3.15.19(3.1M.19())}if(3.4.3L(3)){3.15.1t();el=3.15.2w(0);if(el.5U){41=el.5U();41.am(1e);41.1A()}1k if(el.5S){64=3.15.19().1d;el.5S(64,64)}}if(3.15.19()===""){if(3.2v!=1h){3.15.19(3.2v);3.15.1A()}}3.1M.22("1B",1l).19("");3.3O(1l);3.4.12.1L($.2y("6-2h"))},1E:5(){if(!3.21())11;3.2r.1E.2g(3,1H);3.1M.22("1B",1e);if(3.4.3L(3)){3.1M.1t()}},1t:5(){if(3.21()){3.1E()}1k{3.1M.22("1B",1e);if(3.4.3L(3)){3.1M.1t()}}},6v:5(){11 3.1a.2z("6-1a-1R")},4X:5(){3.2r.4X.2g(3,1H);3.1M.22("1B",1e);if(3.4.3L(3)){3.1M.1t()}},4u:5(){$("1Q[1N=\'"+3.1M.1f(\'id\')+"\']").1f(\'1N\',3.4.12.1f("id"));3.2r.4u.2g(3,1H);5P.20(3,"1q","1M")},8o:5(){14 1q,1a=3.1a,1i=3.1i,4Z=4J(),6W;if(3.4.4H<0){3.4l(1e)}1k{3.4l(1l)}3.1q=1q=1a.1u(".6-1g");3.1M=1a.1u(".6-1M");1q.1u(".6-4j").1f("id","6-4j-"+4Z);3.1M.1f("42-lN","6-4j-"+4Z);3.1b.1f("id","6-1b-"+4Z);3.15.1f("42-lM","6-1b-"+4Z);3.1M.1f("id","9J"+4Z);6W=$("1Q[1N=\'"+3.4.12.1f("id")+"\']");3.4.12.1t(3.1x(5(){3.1t()}));3.1M.3n().1j(6W.1j()).1f(\'1N\',3.1M.1f(\'id\'));14 aE=3.4.12.1f("6Z");3.4.12.1f("6Z",(aE||6W.1j()));3.1M.1f("3Q",3.5J);3.15.1f("id",3.1M.1f(\'id\')+\'lC\');3.15.3n().1j($("1Q[1N=\'"+3.1M.1f(\'id\')+"\']").1j()).1f(\'1N\',3.15.1f(\'id\'));3.15.on("5T",3.1x(5(e){if(!3.2B())11;if(lD==e.lB)11;if(e.1v===1m.8h||e.1v===1m.84){1P(e);11}6c(e.1v){2d 1m.4f:2d 1m.5t:3.8l((e.1v===1m.4f)?-1:1);1P(e);11;2d 1m.3z:3.3B();1P(e);11;2d 1m.5x:3.3B({4a:1l});11;2d 1m.5l:3.4X(e);1P(e);11}}));3.15.on("3y",3.1x(5(e){if(1W.6A===3.2V.2w(0)){1I.4W(3.1x(5(){if(3.21()){3.15.1t()}}),0)}}));3.1M.on("5T",3.1x(5(e){if(!3.2B())11;if(e.1v===1m.5x||1m.8m(e)||1m.8g(e)||e.1v===1m.5l){11}if(3.4.6S===1e&&e.1v===1m.3z){1P(e);11}if(e.1v==1m.5t||e.1v==1m.4f||(e.1v==1m.3z&&3.4.6S)){if(e.9S||e.9R||e.9Q||e.85)11;3.2h();1P(e);11}if(e.1v==1m.6d||e.1v==1m.4L){if(3.4.aM){3.5a()}1P(e);11}}));77(3.1M);3.1M.on("4R-2Y 1y",3.1x(5(e){if(3.4.4H>=0){e.4G();if(3.21())11;3.2h()}}));1q.on("4E 4c","76",3.1x(5(e){if(!3.2B()){11}3.5a();aQ(e);3.1E();if(3.1q){3.1q.1t()}}));1q.on("4E 4c",3.1x(5(e){72(1q);if(!3.1a.2z("6-1a-1R")){3.4.12.1L($.2y("6-1t"))}if(3.21()){3.1E()}1k if(3.2B()){3.2h()}1P(e)}));1i.on("4E 4c",3.1x(5(){if(3.4.3L(3)){3.15.1t()}}));1q.on("1t",3.1x(5(e){1P(e)}));3.1M.on("1t",3.1x(5(){if(!3.1a.2z("6-1a-1R")){3.4.12.1L($.2y("6-1t"))}3.1a.1w("6-1a-1R")})).on("3y",3.1x(5(){if(!3.21()){3.1a.1U("6-1a-1R");3.4.12.1L($.2y("6-3y"))}}));3.15.on("1t",3.1x(5(){if(!3.1a.2z("6-1a-1R")){3.4.12.1L($.2y("6-1t"))}3.1a.1w("6-1a-1R")}));3.8c();3.4.12.43();3.4e()},5a:5(1G){14 7=3.1q.7("6-7");if(7){14 30=$.2y("6-lA");3.4.12.1L(30);if(30.6N()){11}14 2a=3.4d();3.4.12.19(2a?2a.19():"");3.1q.1u(".6-4j").6n();3.1q.7m("6-7");3.4e();if(1G!==1e){3.4.12.1L({2q:"6-3i",19:3.id(7),1g:7});3.1G({3i:7})}}},1T:5(){14 1n;if(3.7a()){3.2t(1o);3.1E();3.4e()}1k{14 1c=3;3.4.1T.20(1o,3.4.12,5(1n){if(1n!==1h&&1n!==1o){1c.2t(1n);1c.1E();1c.4e();1c.2v=1c.4.2v(1n,1c.15.19())}})}},7a:5(){14 2a;if(3.3V()===1h)11 1e;11((2a=3.4d())!==1h&&2a.22("1n"))||(3.4.12.19()==="")||(3.4.12.19()===1h)||(3.4.12.19()===1o)},4O:5(){14 4=3.2r.4O.2g(3,1H),1c=3;if(4.12.2w(0).6x.6T()==="1A"){4.1T=5(12,1V){14 1n=12.1u("3H").4K(5(){11 3.1n&&!3.1B});1V(1c.4F(1n))}}1k if("7"in 4){4.1T=4.1T||5(12,1V){14 id=12.19();14 29=1o;4.1p({3g:5(1C,1j,el){14 4U=2x(id,4.id(el));if(4U){29=el}11 4U},1V:!$.2G(1V)?$.9L:5(){1V(29)}})}}11 4},3V:5(){if(3.1A){if(3.4d()===1h){11 1h}}11 3.2r.3V.2g(3,1H)},4e:5(){14 2m=3.3V();if(3.7a()&&2m!==1h){if(3.1A&&3.4d()===1h)11;3.1q.1u(".6-4j").3C(3.4.2e(2m));3.1q.1w("6-56");3.1a.1U("6-aF")}},45:5(7,3q,6U){14 1n=0,1c=3,3d=1l;3.3M().2E(5(i,3o){if(2x(1c.id(3o.7("6-7")),1c.4.12.19())){1n=i;11 1e}});if(6U!==1e){if(3q===1l&&1n>=0){3.2P(1n)}1k{3.2P(0)}}if(3q===1l){14 5m=3.4.4H;if(5m>=0){3.4l(7j(7.1b)>=5m)}}},4l:5(3d){if(3.3d===3d)11;3.3d=3d;3.1i.1u(".6-15").6f("6-15-6B",!3d);3.1i.1u(".6-15").6f("6-5d",!3d);$(3.1i,3.1a).6f("6-88-ly",3d)},66:5(7,1J){if(!3.8d(7)){11}14 2N=3.4.12.19(),2R=3.7();3.4.12.19(3.id(7));3.2t(7);3.4.12.1L({2q:"6-1n",19:3.id(7),1g:7});3.2v=3.4.2v(7,3.15.19());3.1E();if((!1J||!1J.4a)&&3.4.3L(3)){3.1M.1t()}if(!2x(2N,3.id(7))){3.1G({4o:7,3i:2R})}},2t:5(7){14 1a=3.1q.1u(".6-4j"),2L,3U;3.1q.7("6-7",7);1a.6n();if(7!==1o){2L=3.4.7u(7,1a,3.4.2e)}if(2L!==1h){1a.4g(2L)}3U=3.4.7t(7,1a);if(3U!==1h){1a.1w(3U)}3.1q.1U("6-56");if(3.4.aM&&3.3V()!==1h){3.1a.1w("6-aF")}},19:5(){14 19,1G=1e,7=1o,1c=3,2R=3.7();if(1H.1d===0){11 3.4.12.19()}19=1H[0];if(1H.1d>1){1G=1H[1]}if(3.1A){3.1A.19(19).1u("3H").4K(5(){11 3.1n}).2E(5(i,3o){7=1c.4F(3o);11 1e});3.2t(7);3.4e();if(1G){3.1G({4o:7,3i:2R})}}1k{if(!19&&19!==0){3.5a(1G);11}if(3.4.1T===1h){2X 3u 5s("ah 20 19() if 1T() is 2f 81")}3.4.12.19(19);3.4.1T(3.4.12,5(7){1c.4.12.19(!7?"":1c.id(7));1c.2t(7);1c.4e();if(1G){1c.1G({4o:7,3i:2R})}})}},2s:5(){3.15.19("");3.1M.19("")},7:5(25){14 7,1G=1e;if(1H.1d===0){7=3.1q.7("6-7");if(7==1h)7=1o;11 7}1k{if(1H.1d>1){1G=1H[1]}if(!25){3.5a(1G)}1k{7=3.7();3.4.12.19(!25?"":3.id(25));3.2t(25);if(1G){3.1G({4o:25,3i:7})}}}}});7P=6M(5e,{75:5(){14 1a=$(1W.5k("1X")).1f({"1s":"6-1a 6-1a-60"}).3C(["<3G 1s=\'6-2j\'>"," <li 1s=\'6-15-9K\'>"," <1Q 1N=\'\' 1s=\'6-5d\'></1Q>"," <1y 2q=\'1j\' 7q=\'2I\' aI=\'2I\' aK=\'2I\' ai=\'1e\' 1s=\'6-1y\'>"," </li>","</3G>","<1X 1s=\'6-1S 6-1S-60 6-5Z-61\'>"," <3G 1s=\'6-1b\'>"," </3G>","</1X>"].5g(""));11 1a},4O:5(){14 4=3.2r.4O.2g(3,1H),1c=3;if(4.12.2w(0).6x.6T()==="1A"){4.1T=5(12,1V){14 7=[];12.1u("3H").4K(5(){11 3.1n&&!3.1B}).2E(5(i,3o){7.1O(1c.4F(3o))});1V(7)}}1k if("7"in 4){4.1T=4.1T||5(12,1V){14 2H=6g(12.19(),4.3e,4.5L);14 2u=[];4.1p({3g:5(1C,1j,el){14 4U=$.lz(2H,5(id){11 2x(id,4.id(el))}).1d;if(4U){2u.1O(el)}11 4U},1V:!$.2G(1V)?$.9L:5(){14 79=[];1N(14 i=0;i<2H.1d;i++){14 id=2H[i];1N(14 j=0;j<2u.1d;j++){14 29=2u[j];if(2x(id,4.id(29))){79.1O(29);2u.6h(j,1);5z}}}1V(79)}})}}11 4},4h:5(1g){14 1n=3.1a.1u(".6-15-1g-1t");if(1n.1d&&1g&&1g[0]==1n[0]){}1k{if(1n.1d){3.4.12.1L("1g-lE",1n)}1n.1U("6-15-1g-1t");if(1g&&1g.1d){3.1E();1g.1w("6-15-1g-1t");3.4.12.1L("1g-1n",1g)}}},4u:5(){$("1Q[1N=\'"+3.15.1f(\'id\')+"\']").1f(\'1N\',3.4.12.1f("id"));3.2r.4u.2g(3,1H);5P.20(3,"4r","1q")},8o:5(){14 5X=".6-2j",1q;3.4r=3.1a.1u(".6-15-9K");3.1q=1q=3.1a.1u(5X);14 8k=3;3.1q.on("3h",".6-1a:2f(.6-1a-1B) .6-15-1g:2f(.6-3j)",5(e){8k.15[0].1t();8k.4h($(3))});3.15.1f("id","9J"+4J());3.15.3n().1j($("1Q[1N=\'"+3.4.12.1f("id")+"\']").1j()).1f(\'1N\',3.15.1f(\'id\'));3.4.12.1t(3.1x(5(){3.1t()}));3.15.on("1y 9N",3.1x(5(){if(3.15.1f(\'2m\')&&3.15.19().1d==0)11;if(!3.2B())11;if(!3.21()){3.2h()}}));3.15.1f("3Q",3.5J);3.62=0;3.15.on("5T",3.1x(5(e){if(!3.2B())11;++3.62;14 1n=1q.1u(".6-15-1g-1t");14 3n=1n.3n(".6-15-1g:2f(.6-3j)");14 48=1n.48(".6-15-1g:2f(.6-3j)");14 52=9O(3.15);if(1n.1d&&(e.1v==1m.5q||e.1v==1m.5M||e.1v==1m.4L||e.1v==1m.6d||e.1v==1m.3z)){14 3A=1n;if(e.1v==1m.5q&&3n.1d){3A=3n}1k if(e.1v==1m.5M){3A=48.1d?48:1o}1k if(e.1v===1m.4L){if(3.6L(1n.65())){3.15.1r(10);3A=3n.1d?3n:48}}1k if(e.1v==1m.6d){if(3.6L(1n.65())){3.15.1r(10);3A=48.1d?48:1o}}1k if(e.1v==1m.3z){3A=1o}3.4h(3A);1P(e);if(!3A||!3A.1d){3.2h()}11}1k if(((e.1v===1m.4L&&3.62==1)||e.1v==1m.5q)&&(52.1K==0&&!52.1d)){3.4h(1q.1u(".6-15-1g:2f(.6-3j)").69());1P(e);11}1k{3.4h(1o)}if(3.21()){6c(e.1v){2d 1m.4f:2d 1m.5t:3.8l((e.1v===1m.4f)?-1:1);1P(e);11;2d 1m.3z:3.3B();1P(e);11;2d 1m.5x:3.3B({4a:1l});3.1E();11;2d 1m.5l:3.4X(e);1P(e);11}}if(e.1v===1m.5x||1m.8m(e)||1m.8g(e)||e.1v===1m.4L||e.1v===1m.5l){11}if(e.1v===1m.3z){if(3.4.6S===1e){11}1k if(e.9S||e.9R||e.9Q||e.85){11}}3.2h();if(e.1v===1m.8h||e.1v===1m.84){1P(e)}if(e.1v===1m.3z){1P(e)}}));3.15.on("4R",3.1x(5(e){3.62=0;3.5o()}));3.15.on("3y",3.1x(5(e){3.1a.1U("6-1a-1R");3.15.1U("6-5j");3.4h(1o);if(!3.21())3.2s();e.aj();3.4.12.1L($.2y("6-3y"))}));3.1a.on("3h",5X,3.1x(5(e){if(!3.2B())11;if($(e.4P).59(".6-15-1g").1d>0){11}3.4h(1o);3.6b();if(!3.1a.2z("6-1a-1R")){3.4.12.1L($.2y("6-1t"))}3.2h();3.4q();e.5W()}));3.1a.on("1t",5X,3.1x(5(){if(!3.2B())11;if(!3.1a.2z("6-1a-1R")){3.4.12.1L($.2y("6-1t"))}3.1a.1w("6-1a-1R");3.1i.1w("6-1S-1R");3.6b()}));3.8c();3.4.12.43();3.2s()},4m:5(){if(3.2r.4m.2g(3,1H)){3.15.22("1B",!3.2B())}},1T:5(){14 7;if(3.4.12.19()===""&&3.4.12.1j()===""){3.2t([]);3.1E();3.2s()}if(3.1A||3.4.12.19()!==""){14 1c=3;3.4.1T.20(1o,3.4.12,5(7){if(7!==1h&&7!==1o){1c.2t(7);1c.1E();1c.2s()}})}},2s:5(){14 2m=3.3V(),3T=3.9T();if(2m!==1h&&3.4I().1d===0&&3.15.2z("6-5j")===1e){3.15.19(2m).1w("6-56");3.15.1r(3T>0?3T:3.1a.1Y("1r"))}1k{3.15.19("").1r(10)}},6b:5(){if(3.15.2z("6-56")){3.15.19("").1U("6-56")}},44:5(){3.6b();3.5o();3.2r.44.2g(3,1H);3.4q();if(3.15.19()===""){if(3.2v!=1h){3.15.19(3.2v);3.15.1A()}}3.3O(1l);if(3.4.3L(3)){3.15.1t()}3.4.12.1L($.2y("6-2h"))},1E:5(){if(!3.21())11;3.2r.1E.2g(3,1H)},1t:5(){3.1E();3.15.1t()},6v:5(){11 3.15.2z("6-5j")},2t:5(7){14 2H=[],31=[],1c=3;$(7).2i(5(){if(2k(1c.id(3),2H)<0){2H.1O(1c.id(3));31.1O(3)}});7=31;3.1q.1u(".6-15-1g").3p();$(7).2i(5(){1c.89(3)});1c.45()},8b:5(){14 1y=3.15.19();1y=3.4.9D.20(3,1y,3.7(),3.1x(3.66),3.4);if(1y!=1o&&1y!=1h){3.15.19(1y);if(1y.1d>0){3.2h()}}},66:5(7,1J){if(!3.8d(7)||7.1j===""){11}3.89(7);3.4.12.1L({2q:"1n",19:3.id(7),1g:7});3.2v=3.4.2v(7,3.15.19());3.2s();3.3O();if(3.1A||!3.4.5h)3.45(7,1e,3.4.5h===1l);if(3.4.5h){3.1E();3.15.1r(10)}1k{if(3.9I()>0){3.15.1r(10);3.5o();if(3.5R()>0&&3.19().1d>=3.5R()){3.3O(1l)}1k{if(3.2v!=1h){3.15.19(3.2v);3.3O();3.15.1A()}}3.3K()}1k{3.1E();3.15.1r(10)}}3.1G({4o:7});if(!1J||!1J.4a)3.4q()},4X:5(){3.1E();3.4q()},89:5(7){14 83=!7.3j,9x=$("<li 1s=\'6-15-1g\'>"+" <1X></1X>"+" <a 9H=\'#\' 1s=\'6-15-1g-1E\' 3Q=\'-1\'></a>"+"</li>"),9B=$("<li 1s=\'6-15-1g 6-3j\'>"+"<1X></1X>"+"</li>");14 1g=83?9x:9B,id=3.id(7),19=3.4I(),2L,3U;2L=3.4.7u(7,1g.1u("1X"),3.4.2e);if(2L!=1h){1g.1u("1X").lF($("<1X></1X>").3C(2L))}3U=3.4.7t(7,1g.1u("1X"));if(3U!=1h){1g.1w(3U)}if(83){1g.1u(".6-15-1g-1E").on("4E",1P).on("3h lK",3.1x(5(e){if(!3.2B())11;3.6L($(e.4P));3.1q.1u(".6-15-1g-1t").1U("6-15-1g-1t");1P(e);3.1E();3.4q()})).on("1t",3.1x(5(){if(!3.2B())11;3.1a.1w("6-1a-1R");3.1i.1w("6-1S-1R")}))}1g.7("6-7",7);1g.lL(3.4r);19.1O(id);3.4b(19)},6L:5(1n){14 19=3.4I(),7,1D;1n=1n.59(".6-15-1g");if(1n.1d===0){2X"a6 lJ: "+1n+". lI be .6-15-1g"}7=1n.7("6-7");if(!7){11}14 30=$.2y("6-lG");30.19=3.id(7);30.1g=7;3.4.12.1L(30);if(30.6N()){11 1e}6H((1D=2k(3.id(7),19))>=0){19.6h(1D,1);3.4b(19);if(3.1A)3.45()}1n.3p();3.4.12.1L({2q:"6-3i",19:3.id(7),1g:7});3.1G({3i:7});11 1l},45:5(7,3q,6U){14 19=3.4I(),2j=3.1b.1u(".6-1z"),4y=3.1b.1u(".6-1z-88-1F"),1c=3;2j.2E(5(i,1g){14 id=1c.id(1g.7("6-7"));if(2k(id,19)>=0){1g.1w("6-1n");1g.1u(".6-1z-2M").1w("6-1n")}});4y.2E(5(i,1g){if(!1g.is(\'.6-1z-2M\')&&1g.1u(".6-1z-2M:2f(.6-1n)").1d===0){1g.1w("6-1n")}});if(3.2P()==-1&&6U!==1e&&3.4.5h===1l){1c.2P(0)}if(!3.4.3P&&!2j.4K(\'.6-1z:2f(.6-1n)\').1d>0){if(!7||7&&!7.1Z&&3.1b.1u(".6-no-1b").1d===0){if(3N(1c.4.4w,"4w")){3.1b.4g("<li 1s=\'6-no-1b\'>"+2b(1c.4.4w,1c.4.12,1c.15.19())+"</li>")}}}},9T:5(){11 3.1q.1r()-87(3.15)},5o:5(){14 6k,2O,3T,7r,3w,6G=87(3.15);6k=9U(3.15)+10;2O=3.15.1K().2O;3T=3.1q.1r();7r=3.1q.1K().2O;3w=3T-(2O-7r)-6G;if(3w<6k){3w=3T-6G}if(3w<40){3w=3T-6G}if(3w<=0){3w=6k}3.15.1r(lH.m1(3w))},4I:5(){14 19;if(3.1A){19=3.1A.19();11 19===1o?[]:19}1k{19=3.4.12.19();11 6g(19,3.4.3e,3.4.5L)}},4b:5(19){14 4A;if(3.1A){3.1A.19(19)}1k{4A=[];$(19).2i(5(){if(2k(3,4A)<0)4A.1O(3)});3.4.12.19(4A.1d===0?"":4A.5g(3.4.3e))}},6y:5(2N,4p){14 4p=4p.5u(0),2N=2N.5u(0);1N(14 i=0;i<4p.1d;i++){1N(14 j=0;j<2N.1d;j++){if(2x(3.4.id(4p[i]),3.4.id(2N[j]))){4p.6h(i,1);if(i>0){i--}2N.6h(j,1);j--}}}11{4o:4p,3i:2N}},19:5(19,1G){14 2R,1c=3;if(1H.1d===0){11 3.4I()}2R=3.7();if(!2R.1d)2R=[];if(!19&&19!==0){3.4.12.19("");3.2t([]);3.2s();if(1G){3.1G({4o:3.7(),3i:2R})}11}3.4b(19);if(3.1A){3.4.1T(3.1A,3.1x(3.2t));if(1G){3.1G(3.6y(2R,3.7()))}}1k{if(3.4.1T===1h){2X 3u 5s("19() ah be m2 if 1T() is 2f 81")}3.4.1T(3.4.12,5(7){14 2H=$.7B(7,1c.id);1c.4b(2H);1c.2t(7);1c.2s();if(1G){1c.1G(1c.6y(2R,1c.7()))}})}3.2s()},a3:5(){if(3.1A){2X 3u 5s("mo of mp is 2f mn 9X 9W 4z <1A>. ml 4z <1y 2q=\'6B\'/> mj.")}3.15.1r(0);3.4r.43()},a2:5(){14 19=[],1c=3;3.4r.50();3.4r.51(3.4r.2r());3.5o();3.1q.1u(".6-15-1g").2i(5(){19.1O(1c.4.id($(3).7("6-7")))});3.4b(19);3.1G()},7:5(5n,1G){14 1c=3,2H,2N;if(1H.1d===0){11 3.1q.1F(".6-15-1g").7B(5(){11 $(3).7("6-7")}).2w()}1k{2N=3.7();if(!5n){5n=[]}2H=$.7B(5n,5(e){11 1c.4.id(e)});3.4b(2H);3.2t(5n);3.2s();if(1G){3.1G(3.6y(2N,3.7()))}}}});$.fn.6=5(){14 26=a0.3F.5u.20(1H,0),4,6,3v,25,3t,9V=["19","4u","21","2h","1E","1t","6v","1a","1i","a3","a2","5p","9P","2p","3K","7","15"],9Y=["21","6v","1a","1i"],a5=["19","7"],7H={15:"a1"};3.2i(5(){if(26.1d===0||3m(26[0])==="a4"){4=26.1d===0?{}:$.2Z({},26[0]);4.12=$(3);if(4.12.2w(0).6x.6T()==="1A"){3t=4.12.22("3t")}1k{3t=4.3t||1e;if("28"in 4){4.3t=3t=1l}}6=3t?3u 1I.49["1s"].60():3u 1I.49["1s"].ax();6.9Z(4)}1k if(3m(26[0])==="4t"){if(2k(26[0],9V)<0){2X"mk 3v: "+26[0]}25=1h;6=$(3).7("6");if(6===1h)11;3v=26[0];if(3v==="1a"){25=6.1a}1k if(3v==="1i"){25=6.1i}1k{if(7H[3v])3v=7H[3v];25=6[3v].2g(6,26.5u(1))}if(2k(26[0],9Y)>=0||(2k(26[0],a5)>=0&&26.1d==1)){11 1e}}1k{2X"a6 1H 4z 6 mq: "+26}});11(25===1h)?3:25};$.fn.6.7S={1r:"af",ag:0,5h:1l,6S:1l,ad:{},ac:{},7A:"",7z:"",a7:5(1z,1a,1p,2e){14 2Q=[];6D(3.1j(1z),1p.1C,2Q,2e);11 2Q.5g("")},5L:5(19){11 $.4N(19)},7u:5(7,1a,2e){11 7?2e(3.1j(7)):1h},a8:5(1b,1a,1p){11 1b},a9:5(7){11 7.1Y},7t:5(7,1a){11 1h},4H:0,82:0,4Y:1o,ab:0,id:5(e){11 e==1h?1o:e.id},1j:5(e){if(e&&3.7&&3.7.1j){if($.2G(3.7.1j)){11 3.7.1j(e)}1k{11 e[3.7.1j]}}1k{11 e.1j}},3g:5(1C,1j){11 4k(\'\'+1j).6j().2k(4k(\'\'+1C).6j())>=0},3e:",",58:[],9D:9E,2e:7O,9F:1e,7y:1e,7x:5(c){11 c},7I:5(c){11 1o},2v:5(mr,mw){11 1h},9C:\'\',3J:\'23\',3L:5(9A){14 9y=((\'mv\'in 1I)||(mu.ms>0));if(!9y){11 1l}if(9A.4.4H<0){11 1e}11 1l}};$.fn.6.7R=[];$.fn.6.7R[\'en\']={7V:5(2u){if(2u===1){11"mt 1z is aB, mi aL 4z 1A it."}11 2u+" 1b mh aB, aA m7 aw m8 ar m6 4z m5."},4w:5(){11"m3 2u m4"},6m:5(5I,5B,5E){11"az m9"},6u:5(1y,5m){14 n=5m-1y.1d;11"ap aL "+n+" or 1Z 7X"+(n==1?"":"s")},6C:5(1y,aD){14 n=1y.1d-aD;11"ap aC "+n+" 7X"+(n==1?"":"s")},6R:5(5b){11"ma mf mg 1A "+5b+" 2K"+(5b==1?"":"s")},5D:5(me){11"az 1Z 1b…"},7Y:5(){11"md…"}};$.2Z($.fn.6.7S,$.fn.6.7R[\'en\']);$.fn.6.7M={5r:$.2U,3f:{2q:"aP",7K:1e,5y:"9M"}};1I.49={1p:{2U:2U,6w:6w,28:28},mb:{6E:6E,6D:6D,2e:7O,4k:4k},"1s":{"mc":5e,"ax":7Q,"60":7P}}}(8y));',62,1683,'|||this|opts|function|select2|data||||||||||||||||||||||||||||||||||||||||||||||||||||||||return|element||var|search||||val|container|results|self|length|false|attr|choice|undefined|dropdown|text|else|true|KEY|selected|null|query|selection|width|class|focus|find|which|addClass|bind|input|result|select|disabled|term|index|close|children|triggerChange|arguments|window|options|offset|trigger|focusser|for|push|killEvent|label|active|drop|initSelection|removeClass|callback|document|div|css|more|call|opened|prop|top|context|value|args||tags|match|placeholderOption|evaluate|style|case|escapeMarkup|not|apply|open|each|choices|indexOf|enabled|placeholder|mask|event|readonly|type|parent|clearSearch|updateSelection|matches|nextSearchTerm|get|equal|Event|hasClass|datum|isInterfaceEnabled|above|node|each2|group|isFunction|ids|off|page|item|formatted|selectable|old|left|highlight|markup|oldData|outerWidth|scrollTop|ajax|body|constructor|throw|change|extend|evt|filtered|||||||||liveRegion|token|classes|showSearchInput|separator|params|matcher|click|removed|locked|url|height|typeof|prev|elm|remove|initial|scroll|dropWidth|multiple|new|method|searchWidth|render|blur|ENTER|selectedChoice|selectHighlighted|html|highlighted|resultsSelector|prototype|ul|option|outerHeight|createSearchChoicePosition|positionDropdown|shouldFocusInput|findHighlightableChoices|checkFormatter|updateResults|createSearchChoice|tabindex|propertyObserver|process|maxWidth|cssClass|getPlaceholder|sizer|role|cid|def||range|aria|hide|opening|postprocessResults|||next|Select2|noFocus|setVal|touchstart|getPlaceholderOption|setPlaceholder|UP|append|selectChoice|ajaxUrl|chosen|stripDiacritics|showSearch|enableInterface|template|added|current|focusSearch|searchContainer|_sync|string|destroy|resultsPage|formatNoMatches|span|compound|to|unique|autofocus|dropLeft|details|mousedown|optionToData|stopPropagation|minimumResultsForSearch|getVal|nextUid|filter|BACKSPACE|dropHeight|trim|prepareOpts|target|collection|keyup|auto|resize|is_match|timeout|setTimeout|cancel|maximumInputLength|idSuffix|show|appendTo|pos|tmp|quietMillis|list|default|syncCssClasses|tokenSeparators|closest|clear|limit|child|offscreen|AbstractSelect2|replace|join|closeOnSelect|key|focused|createElement|ESC|min|values|resizeSearch|enable|LEFT|transport|Error|DOWN|slice|deltaY|innerContainer|TAB|dataType|break|firstOption|textStatus|handler|formatLoadMore|errorThrown|substring|mousemove|dropTop|jqXHR|elementTabIndex|formatter|transformVal|RIGHT|changeDirection|viewPortRight|cleanupJQueryElements|loadMoreIfNeeded|getMaximumSelectionSize|setSelectionRange|keydown|createTextRange|_readonly|preventDefault|selector|attrs|display|multi|none|keydowns|resultsListNode|len|first|onSelect|scrollBarDimensions|count|last|maxSelSize|clearPlaceholder|switch|DELETE|ctx|toggleClass|splitVal|splice|before|toUpperCase|minimumWidth|orient|formatAjaxError|empty|dataItem|highlightUnderEvent|bottom|populate|lastMousePosition|split|formatInputTooShort|isFocused|local|tagName|buildChangeDetails|isArray|activeElement|hidden|formatInputTooLong|markMatch|debounce|rb|sideBorderPadding|while|observer|_enabled|dupe|unselect|clazz|isDefaultPrevented|lastpos|topOffset|adapted|formatSelectionTooBig|openOnEnter|toLowerCase|noHighlightUpdate|replacements|elementLabel|obj|removeHighlight|title|bodyOffset|postRender|reinsertElement|viewportBottom|presentation|createContainer|abbr|installKeyUpChangeEvent|that|ordered|isPlaceholderOptionSelected|queryCount|queryNumber|clearDropdownAlignmentPreference|removeAttr|below|clearTouchMoved|lastTerm|scrollHeight|countResults|delta|containerEventName|removeData|_touchMoved|populateResults|windowHeight|autocomplete|containerLeft|windowWidth|formatSelectionCssClass|formatSelection|isObject|dataText|adaptContainerCssClass|selectOnBlur|dropdownCssClass|containerCssClass|map|touchend|depth|_touchEvent|containerId|SuperClass|methodsMap|adaptDropdownCssClass|String|cache|u03C5|ajaxDefaults|u03B9|defaultEscapeMarkup|MultiSelect2|SingleSelect2|locales|defaults|dest|tl|formatMatches|sel|character|formatSearching|array||defined|minimumInputLength|enableChoice|PAGE_DOWN|metaKey|enoughRoomBelow|getSideBorderPadding|with|addSelectedChoice|enabledInterface|tokenize|initContainerWidth|triggerSelect|nodes|triggered|isFunctionKey|PAGE_UP|enoughRoomAbove|AE|_this|moveHighlight|isControl|idKey|initContainer|fontSize|fontFamily|u0399|touchMoved|10000px|fontWeight|scrollLeft|textTransform|letterSpacing|jQuery|fontStyle|select2Event|isVisible|ensureHighlightVisible|str|DIACRITICS|aboveNow|u03C9|counter|src|MEASURE_SCROLLBAR_TEMPLATE|notify|selectionStart|threshold|u03A5|dim|transform|createRange|parents|func|accessible|installFilteredMouseMove|methods|original|must|position|selectCallback|touchmove|optgroup||select2Tags|measureScrollbar|detachEvent|mouseup|enoughRoomOnRight|installDebouncedScroll|debounced|mousewheel|monitorSource|formatterName|jsonpCallback|deprecated|abort|clearTimeout|orientationchange|clientHeight|add|replace_map|pageY|pageX|isFunc|onpropertychange|attachEvent|shouldOpen|childDatum|Dz|mutations|DZ|adapter|enoughRoomOnLeft|enabledItem|supportsTouchEvents|detach|instance|disabledItem|searchInputPlaceholder|tokenizer|defaultTokenizer|blurOnChange|AV|href|countSelectableResults|s2id_autogen|field|noop|json|paste|getCursorInfo|disable|shiftKey|ctrlKey|altKey|getMaxSearchWidth|measureTextWidth|allowedMethods|attached|when|valueMethods|init|Array|externalSearch|onSortEnd|onSortStart|object|propertyMethods|Invalid|formatResult|sortResults|formatResultCssClass||maximumSelectionSize|dropdownCss|containerCss||copy|loadMorePadding|cannot|spellcheck|stopImmediatePropagation|CTRL|ALT|collapse|||Please|resolveContainerWidth|arrow||SHIFT|||and|single||Loading|use|available|delete|max|originalTitle|allowclear|hasError|resolve|autocorrect|searching|autocapitalize|enter|allowClear|loaded|items|GET|killEventImmediately|error|u0244|uFF36|u24CB|u00D9|uA786|u023E|u01AE|u01AC|u01B2|uA728|TZ|u1E7E|uFF35|u24CA|u1E7C|u016A|u0170|u1EF0|u1EE4|u1E72|u016E|u0172||u1EEC|u1EEE|u01D3|u0214|u01AF|u1EEA|u1EE8|u1EE6|u01D9|u0216|u1E74|u1E78|u0168|u00DB|u1E76|u1E7A|u01D7|u01D5|u01DB|u00DC|u016C|u00DA|u0218|u1E54|u1E56|u01A4|uFF30|u24C5|OO|u0222|OU|u2C63|uA750|uA758|u024A|u24C7|uA756|uFF31|uA752|uA754|u24C6|uA74E|OI|u1EDE|u1EE2|u1ECC|u1EE0|u1EDA|u020E|u01A0|u1EDC|u1ED8|u01EA|uA74A|uA74C|u01A2|u019F|u0186|u01EC|u00D8|u01FE|uFF32|u0154|u015E|u2C7E|uA7A8|uA75E|u1E68|u0160||u1E66|u1E62|uA784|u24C9|u0162|u1E70|u1E6E|u021A|u1E6C|uFF34|u1E6A|u0164|u1E60|u015C|u1E5C|u0156|u1E5E|u1E5A|u0212|u1E58|u0158|u0210|u024C|u2C64|u1E9E|u015A|u1E64|uFF33|u24C8|uA75A|uA7A6|uA782|u0166|u01B3|u1E05|u1E07|u0180|u1E03|uFF42|uA73D|u24D1|u0183|u0253|u010B|u010D|u0109|u0107|u24D2|uFF43|uA73B|uA739|u1EB7|u1E01|u0105|u1EAD|u1EA1|u0201|u0203|u2C65|u0250|uA735|uA737|u01E3|u01FD|uA733|u00E6|u00E7|u1E09|u00E8|u00E9|u00EA|uFF45|u24D4|u01F3||u01C6|u1EC1|u1EBF|u1E15|u1E17|u0113|u1EBD|u1EC5|u1EC3|uA77A|u0257|u24D3|uFF44|u1E0B|u2184|uA73F|u0188|u023C|u010F|u1E0D|u018C|u0256|u0111|u1E0F|u1E11|u1E13|u01CE|u01FB|u0232|u1E8E|u0178|u1EF8|u0176|u1EF2|u00DD|u1EF6|u1EF4|uFF3A|u0179|u24CF|u1EFE|u020C|u024E|uFF39|u24CE|u1E80|u1E82||||u0174|uFF37|u24CC|uA760|VY|u1E86|u1E84|u1E8A|u1E8C||uFF38|u24CD|u1E88|u2C72|u1E90|u017B|u0103|u1EB1|u1EAF|u0101|u00E3|u1EAB|u1EA9|u1EB5|u1EB3|u1EA3|u00E5|u01DF|u00E4|u0227|u01E1|u1EA5|u1EA7|u0224|u2C7F|u01B5|u1E94|u017D|u1E92|u2C6B|uA762|u00E1|u00E2|u00E0|u1E9A|u24D0|uFF41|u0245|u1E44|u0190|u018E|u24BB|u0202|u1E1A|u0118|u1E18|uFF26|u0200|u01FA|u24BC|uA77B||u01CD|u1E1E|u0191|u1E1C|u0228|u1EBA|u011A|u00CB|u0116|u023A|u0104|u0204|u1E00|u1EAC|u1EA0|u1EC6|u1EB8|u0206|u1EB6|u00C5|u1EA2|u1EA8|u0193|u00C3|u0100|u1EB0|u0102|uA7A0|u1EAA|uA77D|uA77E|u00C1|u00C2|u1EA4|u1EA6|u1EAE|u01E4|u0226|u1EB2|u01E0|u00C4|u01DE|uFF27|u01F4|u1EB4|u01E6|u0122|u0120|u011E|u011C|u1E20|u2C6F|uA732|u010C|u010A|u0108|u00C7|u1E08|u023B|u0187|u0106|uFF23|u0243|u01F2|u0115|u0182|u24B8||u0181|uA73E|u24B9|u018A|u018B|u01C4|u0189|uA779|u01F1|u0110|u1E0E|u1E0A|uFF24|u010E|u1E0C|u1E12|u1E10|u1E06|u01C5|uA734|u01E2|AO|uA736|u1EC4|u1EC2|u01FC|u00C6|u0114|AA|u1E16|u1E14|u1EBC|u0112|AU|u1EBE|uFF25|u00C8|u24BA|uFF22|u1E04|u1E02|u24B7|AY||uA73A|uA738|uA73C|u1EC0|u00C9|u00CA|u24BD|u00C0|u2C6E|u019C|u24C3|u1E42|u1E40|uFF2D|u1E3E|uFF2E|u01F8|u0145|u1E4A||u1E46|u0147|u0143|u00D1|u24C2|Lj|u0141|u023D|u1E3A|u1E3C|u1E38|u013B|u2C62|u2C60|LJ|u01C8|u01C7|uA780|uA748|uA746|u1E48|u0220|u014C|u1E50|u1E4E|u022C|u00D5|u1E4C|u1E52|u014E|u1ECE|u0150|u022A|u00D6|u022E|u0230|u1ED4|u1ED6|NJ|u01CB|u01CA|uA7A4|u019D||uA790||Nj|u24C4|u1ED2|u1ED0|u00D4|u00D3|uFF2F||u00D2|u1E36|u013D|uA78D|||u24BE|uFF29|u2C75|HOME|u0126|u2C67|u00CC|u00CD|u0130|u00CF|u012C|u012A|u00CE|u0128|END|u1E2A|u1E22|u1E26|u24B6|u0124|uFF28|uFF21|scrollbar|measure|u1E28|isArrow|u1E24|u021E|123|112|u1E2E|u1EC8|u0198|u2C69|u1E34|u0136|u01E8|u1E32|uA740|uA742|u013F|u0139|uFF2C|u24C1|uA744|uA7A2|u1E30|uFF2B|u1ECA|u012E|u020A|SPACE|u01CF|u0208|u1E2C|strict|u0248|u24C0|u0134|uFF2A|u0197|u24BF|u01D1|u01DA|u24E8|uFF59|u1E8D|u1E8B|u24E7|uFF58|u1EF3|u00FD|u00FF|u1EF7|u1E8F|u0233|u0177|u1EF9|u2C73|u1E89|vy|u24E6|uA761|u028C|u028B|uA75F|uFF57|u1E81|u1E85|u1E98|u1E87|u0175|u1E83|u1E99|u1EF5|u0395|u0389|u0388|u0391|uA763|u0386|u0397|u038A|u03AB|u038F|u038E|u039F|u03AA|u038C|u2C6C|u0240|uFF5A|u017A|u24E9|u1EFF|u01B4|u024F|u1E91|u017C|u01B6|u0225|u1E95|u1E93|u017E|u1E7F|u1E7D|u01AD|u0288|u0167|u1E6F|u0163|u1E71|u2C66|uA787|u00F9|u00FA|uFF55|u24E4|uA729|tz|u021B|u1E6D|u023F|uA7A9|u015F|u0219|u1E63|u1E69|uA785|u1E9B|u1E97|u0165|u1E6B|uFF54|u24E3|u00FB|u0169|u1EF1|u1EE5|u1EED|u1EEF|u1EEB|u1EE9|u1E73|u0173|u24E5|uFF56|u0289|u1E75|u1E77|u01B0|u0217|u00FC|u01DC|||u016D|u1E7B|u1E79|u016B|u01D8|u0117|u01D4|u0215|u0171||u016F|u1EE7|u03A9|u03AC|searchbox|grep|clearing|keyCode|_search|229|deselected|replaceWith|removing|Math|Must|argument|dblclick|insertBefore|owns|labelledby|activedescendant|javascript|static|dropdownAutoWidth|subtree|selecting|void|160|expanded|listbox|combobox|button|haspopup|floor|called|No|found|navigate|keys|up|down|failed|You|util|abstract|Searching|pageNumber|can|only|are|press|instead|Unknown|Attach||supported|Sorting|elements|plugin|selectedObject|msMaxTouchPoints|One|navigator|ontouchstart|currentSearchTerm|attributes|observe|offsetWidth|offsetHeight|clientWidth|u007E|createTextNode|u0000|selectionEnd|moveStart|nowrap|amp|whiteSpace|absolute|currentStyle|getComputedStyle|u03C3|u03C2|u03B7|u03AF|u03AE|u03B5|u03B1|u03AD|u03CA|u0390|u03CB|u03B0|u03CD|u03BF|u03CC|quot|100|specified|both|sub|unselectable|allowed|dept|attribute|unshift|WebKitMutationObserver|MozMutationObserver|MutationObserver|custom|invalid|Option|disconnect||status|live|Object|falsy||success|hasOwnProperty|polite|s2id_|focusin|maxlength|deltaX|_|autogen|u1E67|u01D6|u0137|u1E35|u1E33|u01E9|uFF4B|u1E31|u0199|u2C6A|uA7A3|u24DB|uA745|u0161|uA741|u24DA|u0249|u1ECB|u012F|u020B|u0209|u1EC9|u01D0|u1E2D|u0268|u0135|u01F0|uFF4A|u24D9|u0131|uFF4C|u0140|u1E41|u1E43|u1E3F|uFF4D|u01C9|u24DC|u0271|u026F|u0144|u00F1|u01F9||uFF4E|u24DD||uA747|uA781|u013C|u1E3D|||u1E39|u1E37||u013A|u013E||u1E3B|u017F|u2C61|uA749|u026B|u019A|u0142|u1E2F|u00EF|uA77C|u24D6|u0192|u1E1F|u24D5|uFF46|uFF47|u01F5|u0121|u01E7|u011F|u1E21|u011D|u01DD|u025B|u0207|u1EB9|u0205|u011B|u00EB|u1EBB|u1EC7|u0229|u1E1B|u0247|u1E19|u0119|u1E1D|u0123|u01E5|u0195|u24D8|u0265|u2C76||u0127|u2C68|uFF49|u00EC|u012B|u012D|u0129|u00EE|u00ED|u1E96|u1E2B|uA77F|u24D7|u1D79|uA7A1|u0260||uFF48|u0125|u1E25||u1E29|u021F|u1E27|u1E23|u1E45|uA743|uA7A7|u01FF|uA783|u00F8|u01EB|u01ED|uA75B|u0254|u01A3|u027D|u0275|uA74D|uA74B|u1ED9|u1ECD|u020D|u020F|u01D2|u0151|u00DF|u01A1|u1EDD|u1EDF|u1EE3|u24E2|uFF53|u1EDB|u024D|u1E5F|u1D7D|uA751|u01A5|u24E1|u1E57|uA753|uA755|uA757|uA759|u024B|uFF51|u24E0|u1E55|uFF50|u1E5B|u0213|u1E5D|u0157|u0223|u0211|u0159|uA74F|u24DF|uFF52|u0155|u1E59|u015B|u1EE1|u1ED5|u1ED7|u019E|u0272|u00F5|u1E4D|u1E4F|u1E49|u01CC|u1ED1|u0149|u00F2|uA7A5|uFF4F|u24DE|uA791|u00F3|u1ED3|u00F4|u1ECF|u014D|u022D|u1E65|u015D|u0146|u1E61|u0231|u1E47|u00F6|u022F|u022B|u1E4B|u0148|u1E53|u1E51|u014F'.split('|'),0,{})) diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/module.nextgen_basic_album.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/module.nextgen_basic_album.php index cf3281da2..366265fa0 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/module.nextgen_basic_album.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/module.nextgen_basic_album.php @@ -19,9 +19,9 @@ class M_NextGen_Basic_Album extends C_Base_Module 'NextGEN Basic Album', "Provides support for NextGEN's Basic Album", '0.10', - 'http://nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); C_Photocrati_Installer::add_handler($this->module_id, 'C_NextGen_Basic_Album_Installer'); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/package.module.nextgen_basic_album.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/package.module.nextgen_basic_album.php index fef48d0de..4d7921140 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/package.module.nextgen_basic_album.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/package.module.nextgen_basic_album.php @@ -80,6 +80,7 @@ class A_NextGen_Album_Breadcrumbs extends Mixin $found = $this->find_gallery_parent($gallery_id, $album->sortorder, $found); if ($found) { $found[] = $album; + break; } } } @@ -310,7 +311,7 @@ class A_NextGen_Basic_Album_Controller extends Mixin_NextGen_Basic_Pagination } elseif (isset($displayed_gallery->display_settings['original_settings']) && isset($displayed_gallery->display_settings['original_settings']['original_album_entities'])) { $original_album_entities = $displayed_gallery->display_settings['original_settings']['original_album_entities']; } - $breadcrumbs = $this->object->render_legacy_template_breadcrumbs($displayed_gallery, $original_album_entities, $displayed_gallery->conatiner_ids); + $breadcrumbs = $this->object->render_legacy_template_breadcrumbs($displayed_gallery, $original_album_entities, $displayed_gallery->container_ids); if (!empty($breadcrumbs)) { $html = $breadcrumbs . $html; } @@ -419,12 +420,12 @@ class A_NextGen_Basic_Album_Controller extends Mixin_NextGen_Basic_Pagination public function enqueue_frontend_resources($displayed_gallery) { $this->call_parent('enqueue_frontend_resources', $displayed_gallery); - wp_enqueue_style('nextgen_basic_album_style', $this->object->get_static_url('photocrati-nextgen_basic_album#nextgen_basic_album.css')); - wp_enqueue_style('nextgen_pagination_style', $this->get_static_url('photocrati-nextgen_pagination#style.css')); - wp_enqueue_script('jquery.dotdotdot', $this->object->get_static_url('photocrati-nextgen_basic_album#jquery.dotdotdot-1.5.7-packed.js'), array('jquery')); + wp_enqueue_style('nextgen_basic_album_style', $this->object->get_static_url('photocrati-nextgen_basic_album#nextgen_basic_album.css'), FALSE, NGG_SCRIPT_VERSION); + wp_enqueue_style('nextgen_pagination_style', $this->get_static_url('photocrati-nextgen_pagination#style.css'), FALSE, NGG_SCRIPT_VERSION); + wp_enqueue_script('jquery.dotdotdot', $this->object->get_static_url('photocrati-nextgen_basic_album#jquery.dotdotdot-1.5.7-packed.js'), array('jquery'), NGG_SCRIPT_VERSION); $ds = $displayed_gallery->display_settings; if (!empty($ds['enable_breadcrumbs']) && $ds['enable_breadcrumbs'] || !empty($ds['original_settings']['enable_breadcrumbs']) && $ds['original_settings']['enable_breadcrumbs']) { - wp_enqueue_style('nextgen_basic_album_breadcrumbs_style', $this->object->get_static_url('photocrati-nextgen_basic_album#breadcrumbs.css')); + wp_enqueue_style('nextgen_basic_album_breadcrumbs_style', $this->object->get_static_url('photocrati-nextgen_basic_album#breadcrumbs.css'), FALSE, NGG_SCRIPT_VERSION); } $this->enqueue_ngg_styles(); } @@ -573,7 +574,7 @@ class A_NextGen_Basic_Extended_Album_Form extends Mixin_NextGen_Basic_Album_Form */ public function enqueue_static_resources() { - wp_enqueue_script('nextgen_basic_extended_albums_settings_script', $this->object->get_static_url('photocrati-nextgen_basic_album#extended_settings.js'), array('jquery.nextgen_radio_toggle')); + wp_enqueue_script('nextgen_basic_extended_albums_settings_script', $this->object->get_static_url('photocrati-nextgen_basic_album#extended_settings.js'), array('jquery.nextgen_radio_toggle'), NGG_SCRIPT_VERSION); $atp = C_Attach_Controller::get_instance(); if ($atp != null) { $atp->mark_script('nextgen_basic_extended_albums_settings_script'); @@ -600,7 +601,7 @@ class A_NextGen_Basic_Compact_Album_Form extends Mixin_NextGen_Basic_Album_Form */ public function enqueue_static_resources() { - wp_enqueue_script('nextgen_basic_compact_albums_settings_script', $this->object->get_static_url('photocrati-nextgen_basic_album#compact_settings.js'), array('jquery.nextgen_radio_toggle')); + wp_enqueue_script('nextgen_basic_compact_albums_settings_script', $this->object->get_static_url('photocrati-nextgen_basic_album#compact_settings.js'), array('jquery.nextgen_radio_toggle'), NGG_SCRIPT_VERSION); $atp = C_Attach_Controller::get_instance(); if ($atp != null) { $atp->mark_script('nextgen_basic_compact_albums_settings_script'); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/static/breadcrumbs.css b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/static/breadcrumbs.css index 281e78c86..9d7d5049d 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/static/breadcrumbs.css +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/static/breadcrumbs.css @@ -5,7 +5,7 @@ padding: .5em 0 .5em 0; } -.ngg-breadcrumbs li { +ul.ngg-breadcrumbs > li { float: left; padding: 0 .3em 0 .15em; margin: 0; diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/static/breadcrumbs.min.css b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/static/breadcrumbs.min.css index 0f65feaa8..6aaaadbba 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/static/breadcrumbs.min.css +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/static/breadcrumbs.min.css @@ -1 +1 @@ -.ngg-breadcrumbs{list-style:none;overflow:hidden;margin:0;padding:.5em 0 .5em 0}.ngg-breadcrumbs li{float:left;padding:0 .3em 0 .15em;margin:0;vertical-align:middle;border:0;list-style-type:none}.ngg-breadcrumbs .ngg-breadcrumb-divisor{margin:0;padding:0 0 0 .15em} \ No newline at end of file +.ngg-breadcrumbs{list-style:none;overflow:hidden;margin:0;padding:.5em 0 .5em 0}ul.ngg-breadcrumbs>li{float:left;padding:0 .3em 0 .15em;margin:0;vertical-align:middle;border:0;list-style-type:none}.ngg-breadcrumbs .ngg-breadcrumb-divisor{margin:0;padding:0 0 0 .15em} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/module.nextgen_basic_gallery.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/module.nextgen_basic_gallery.php index ffdfa4526..deeff0ca7 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/module.nextgen_basic_gallery.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/module.nextgen_basic_gallery.php @@ -26,9 +26,9 @@ class M_NextGen_Basic_Gallery extends C_Base_Module 'NextGEN Basic Gallery', "Provides NextGEN Gallery's basic thumbnail/slideshow integrated gallery", '0.13', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); C_Photocrati_Installer::add_handler($this->module_id, 'C_NextGen_Basic_Gallery_Installer'); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/package.module.nextgen_basic_gallery.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/package.module.nextgen_basic_gallery.php index f0af7289d..bd882b4a4 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/package.module.nextgen_basic_gallery.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/package.module.nextgen_basic_gallery.php @@ -96,7 +96,7 @@ class A_NextGen_Basic_Gallery_Mapper extends Mixin $this->object->_set_default_value($entity, 'settings', 'disable_pagination', 0); // Alternative view support $this->object->_set_default_value($entity, 'settings', 'show_slideshow_link', $settings->galShowSlide ? 1 : 0); - $this->object->_Set_default_value($entity, 'settings', 'slideshow_link_text', $settings->galTextSlide); + $this->object->_set_default_value($entity, 'settings', 'slideshow_link_text', $settings->galTextSlide); // override thumbnail settings $this->object->_set_default_value($entity, 'settings', 'override_thumbnail_settings', 0); $this->object->_set_default_value($entity, 'settings', 'thumbnail_quality', '100'); @@ -239,11 +239,10 @@ class A_NextGen_Basic_Slideshow_Controller extends Mixin */ public function enqueue_frontend_resources($displayed_gallery) { - $resource = defined('SCRIPT_DEBUG') ? 'jquery.cycle.all.min.js' : 'jquery.cycle.all.js'; - wp_register_script('jquery-cycle', $this->get_static_url("photocrati-nextgen_basic_gallery#slideshow/{$resource}"), array('jquery')); + wp_register_script('jquery-cycle', $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/jquery.cycle.all.js'), array('jquery'), NGG_SCRIPT_VERSION); wp_enqueue_script('jquery-cycle'); - wp_enqueue_style('nextgen_basic_slideshow_style', $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/nextgen_basic_slideshow.css')); - wp_enqueue_script('waitforimages', $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/jquery.waitforimages.js'), array('jquery')); + wp_enqueue_style('nextgen_basic_slideshow_style', $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/nextgen_basic_slideshow.css'), FALSE, NGG_SCRIPT_VERSION); + wp_enqueue_script('waitforimages', $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/jquery.waitforimages.js'), array('jquery'), NGG_SCRIPT_VERSION); $this->call_parent('enqueue_frontend_resources', $displayed_gallery); $this->enqueue_ngg_styles(); } @@ -268,7 +267,7 @@ class A_NextGen_Basic_Slideshow_Form extends Mixin_Display_Type_Form } public function enqueue_static_resources() { - wp_enqueue_script('nextgen_basic_slideshow_settings-js', $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/nextgen_basic_slideshow_settings.js'), array('jquery.nextgen_radio_toggle')); + wp_enqueue_script('nextgen_basic_slideshow_settings-js', $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/nextgen_basic_slideshow_settings.js'), array('jquery.nextgen_radio_toggle'), NGG_SCRIPT_VERSION); $atp = C_Attach_Controller::get_instance(); if ($atp != null) { $atp->mark_script('nextgen_basic_slideshow_settings-js'); @@ -325,8 +324,8 @@ class A_NextGen_Basic_Thumbnail_Form extends Mixin_Display_Type_Form */ public function enqueue_static_resources() { - wp_enqueue_style('nextgen_basic_thumbnails_settings', $this->object->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/nextgen_basic_thumbnails_settings.css'), false); - wp_enqueue_script('nextgen_basic_thumbnails_settings', $this->object->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/nextgen_basic_thumbnails_settings.js'), array('jquery.nextgen_radio_toggle')); + wp_enqueue_style('nextgen_basic_thumbnails_settings', $this->object->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/nextgen_basic_thumbnails_settings.css'), FALSE, NGG_SCRIPT_VERSION); + wp_enqueue_script('nextgen_basic_thumbnails_settings', $this->object->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/nextgen_basic_thumbnails_settings.js'), array('jquery.nextgen_radio_toggle'), NGG_SCRIPT_VERSION); $atp = C_Attach_Controller::get_instance(); if ($atp != null) { $atp->mark_script('nextgen_basic_thumbnails_settings'); @@ -534,11 +533,11 @@ class A_NextGen_Basic_Thumbnails_Controller extends Mixin public function enqueue_frontend_resources($displayed_gallery) { $this->call_parent('enqueue_frontend_resources', $displayed_gallery); - wp_enqueue_style('nextgen_basic_thumbnails_style', $this->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/nextgen_basic_thumbnails.css')); + wp_enqueue_style('nextgen_basic_thumbnails_style', $this->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/nextgen_basic_thumbnails.css'), FALSE, NGG_SCRIPT_VERSION); if ($displayed_gallery->display_settings['ajax_pagination']) { - wp_enqueue_script('nextgen-basic-thumbnails-ajax-pagination', $this->object->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/ajax_pagination.js')); + wp_enqueue_script('nextgen-basic-thumbnails-ajax-pagination', $this->object->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/ajax_pagination.js'), FALSE, NGG_SCRIPT_VERSION); } - wp_enqueue_style('nextgen_pagination_style', $this->get_static_url('photocrati-nextgen_pagination#style.css')); + wp_enqueue_style('nextgen_pagination_style', $this->get_static_url('photocrati-nextgen_pagination#style.css'), FALSE, NGG_SCRIPT_VERSION); $this->enqueue_ngg_styles(); } /** diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/slideshow/index.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/slideshow/index.php index e6788f772..8b97dee12 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/slideshow/index.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/slideshow/index.php @@ -3,7 +3,7 @@ <?php if ($show_thumbnail_link) { ?> <!-- Thumbnails Link --> <div class="slideshowlink"> - <a href='<?php echo esc_attr($thumbnail_link); ?>'><?php esc_html_e($thumbnail_link_text); ?></a> + <a href='<?php echo esc_attr($thumbnail_link); ?>'><?php echo esc_html($thumbnail_link_text); ?></a> </div> <?php } ?> diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/thumbnails/index.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/thumbnails/index.php index 76fbd572d..95aee3d14 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/thumbnails/index.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/thumbnails/index.php @@ -9,7 +9,7 @@ $this->start_element('nextgen_gallery.gallery_container', 'container', $displaye <?php if (!empty($slideshow_link)): ?> <div class="slideshowlink"> - <a href='<?php echo esc_attr($slideshow_link) ?>'><?php echo $slideshow_link_text ?></a> + <a href='<?php echo esc_attr($slideshow_link) ?>'><?php echo esc_html($slideshow_link_text) ?></a> </div> <?php endif ?> diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/module.nextgen_basic_imagebrowser.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/module.nextgen_basic_imagebrowser.php index 62f0cbcf1..66f31b846 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/module.nextgen_basic_imagebrowser.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/module.nextgen_basic_imagebrowser.php @@ -20,9 +20,9 @@ class M_NextGen_Basic_ImageBrowser extends C_Base_Module 'NextGEN Basic ImageBrowser', 'Provides the NextGEN Basic ImageBrowser Display Type', '0.10', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); C_Photocrati_Installer::add_handler($this->module_id, 'C_NextGen_Basic_ImageBrowser_Installer'); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/package.module.nextgen_basic_imagebrowser.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/package.module.nextgen_basic_imagebrowser.php index 719d77794..ec20d7bce 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/package.module.nextgen_basic_imagebrowser.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/package.module.nextgen_basic_imagebrowser.php @@ -148,7 +148,7 @@ class A_NextGen_Basic_ImageBrowser_Controller extends Mixin public function enqueue_frontend_resources($displayed_gallery) { $this->call_parent('enqueue_frontend_resources', $displayed_gallery); - wp_enqueue_style('nextgen_basic_imagebrowser_style', $this->get_static_url('photocrati-nextgen_basic_imagebrowser#style.css')); + wp_enqueue_style('nextgen_basic_imagebrowser_style', $this->get_static_url('photocrati-nextgen_basic_imagebrowser#style.css'), FALSE, NGG_SCRIPT_VERSION); $this->enqueue_ngg_styles(); } } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_singlepic/module.nextgen_basic_singlepic.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_singlepic/module.nextgen_basic_singlepic.php index 398b908e2..e8dbada93 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_singlepic/module.nextgen_basic_singlepic.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_singlepic/module.nextgen_basic_singlepic.php @@ -18,9 +18,9 @@ class M_NextGen_Basic_Singlepic extends C_Base_Module 'NextGen Basic Singlepic', 'Provides a singlepic gallery for NextGEN Gallery', '0.11', - 'http://www.photocrati.com', + 'https://www.imagely.com', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); C_Photocrati_Installer::add_handler($this->module_id, 'C_NextGen_Basic_SinglePic_Installer'); @@ -92,7 +92,9 @@ class M_NextGen_Basic_Singlepic extends C_Base_Module $router = C_Router::get_instance(); wp_enqueue_style( 'nextgen_basic_singlepic_style', - $router->get_static_url(NGG_BASIC_SINGLEPIC . '#nextgen_basic_singlepic.css') + $router->get_static_url(NGG_BASIC_SINGLEPIC . '#nextgen_basic_singlepic.css'), + FALSE, + NGG_SCRIPT_VERSION ); } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_singlepic/package.module.nextgen_basic_singlepic.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_singlepic/package.module.nextgen_basic_singlepic.php index ba1b57da9..093a0e301 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_singlepic/package.module.nextgen_basic_singlepic.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_singlepic/package.module.nextgen_basic_singlepic.php @@ -138,7 +138,7 @@ class A_NextGen_Basic_Singlepic_Controller extends Mixin public function enqueue_frontend_resources($displayed_gallery) { $this->call_parent('enqueue_frontend_resources', $displayed_gallery); - wp_enqueue_style('nextgen_basic_singlepic_style', $this->get_static_url('photocrati-nextgen_basic_singlepic#nextgen_basic_singlepic.css')); + wp_enqueue_style('nextgen_basic_singlepic_style', $this->get_static_url('photocrati-nextgen_basic_singlepic#nextgen_basic_singlepic.css'), FALSE, NGG_SCRIPT_VERSION); $this->enqueue_ngg_styles(); } } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_singlepic/templates/nextgen_basic_singlepic.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_singlepic/templates/nextgen_basic_singlepic.php index d235d2a47..f44f83286 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_singlepic/templates/nextgen_basic_singlepic.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_singlepic/templates/nextgen_basic_singlepic.php @@ -62,7 +62,7 @@ $this->start_element('nextgen_gallery.image', 'item', $image); ?> - <a href="<?php echo esc_attr($settings['link']); ?>" + <a href="<?php echo esc_url($settings['link']); ?>" title="<?php echo esc_attr($image->description)?>" data-src="<?php echo esc_attr($storage->get_image_url($image)); ?>" data-thumbnail="<?php echo esc_attr($storage->get_image_url($image, 'thumb')); ?>" diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_tagcloud/module.nextgen_basic_tagcloud.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_tagcloud/module.nextgen_basic_tagcloud.php index beabeaba8..833ee35bd 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_tagcloud/module.nextgen_basic_tagcloud.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_tagcloud/module.nextgen_basic_tagcloud.php @@ -18,9 +18,9 @@ class M_NextGen_Basic_Tagcloud extends C_Base_Module 'NextGen Basic Tagcloud', 'Provides a tagcloud for NextGEN Gallery', '0.11', - 'http://www.photocrati.com', + 'https://www.imagely.com', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); C_Photocrati_Installer::add_handler($this->module_id, 'C_NextGen_Basic_Tagcloud_Installer'); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_tagcloud/package.module.nextgen_basic_tagcloud.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_tagcloud/package.module.nextgen_basic_tagcloud.php index cbc32d0d8..9d3fa0e7e 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_tagcloud/package.module.nextgen_basic_tagcloud.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_tagcloud/package.module.nextgen_basic_tagcloud.php @@ -49,7 +49,7 @@ class A_NextGen_Basic_Tagcloud_Controller extends Mixin public function enqueue_frontend_resources($displayed_gallery) { $this->call_parent('enqueue_frontend_resources', $displayed_gallery); - wp_enqueue_style('photocrati-nextgen_basic_tagcloud-style', $this->get_static_url('photocrati-nextgen_basic_tagcloud#nextgen_basic_tagcloud.css')); + wp_enqueue_style('photocrati-nextgen_basic_tagcloud-style', $this->get_static_url('photocrati-nextgen_basic_tagcloud#nextgen_basic_tagcloud.css'), FALSE, NGG_SCRIPT_VERSION); $this->enqueue_ngg_styles(); } } @@ -66,7 +66,7 @@ class A_NextGen_Basic_Tagcloud_Form extends Mixin_Display_Type_Form public function enqueue_static_resources() { $path = 'photocrati-nextgen_basic_tagcloud#settings.css'; - wp_enqueue_style('nextgen_basic_tagcloud_settings-css', $this->get_static_url($path)); + wp_enqueue_style('nextgen_basic_tagcloud_settings-css', $this->get_static_url($path), FALSE, NGG_SCRIPT_VERSION); $atp = C_Attach_Controller::get_instance(); if (!is_null($atp)) { $atp->mark_script($path); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_templates/module.nextgen_basic_templates.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_templates/module.nextgen_basic_templates.php index 6de4c0fdd..8b3c32445 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_templates/module.nextgen_basic_templates.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_templates/module.nextgen_basic_templates.php @@ -16,9 +16,9 @@ class M_NextGen_Basic_Templates extends C_Base_Module 'NextGen Basic Templates', 'Provides a NextGen-Legacy compatible thumbnail gallery for NextGEN Gallery', '0.5', - 'http://www.photocrati.com', + 'https://www.imagely.com', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_templates/package.module.nextgen_basic_templates.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_templates/package.module.nextgen_basic_templates.php index ff477ae93..8a8140346 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_templates/package.module.nextgen_basic_templates.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_templates/package.module.nextgen_basic_templates.php @@ -147,14 +147,22 @@ class A_NextGen_Basic_Template_Form extends Mixin } else { $return['pagination'] = NULL; } - $return['next'] = $params['next']; - $return['prev'] = $params['prev']; + if (!empty($params['next'])) { + $return['next'] = $params['next']; + } else { + $return['next'] = FALSE; + } + if (!empty($params['prev'])) { + $return['prev'] = $params['prev']; + } else { + $return['prev'] = FALSE; + } return $return; } public function enqueue_static_resources() { - wp_enqueue_style('ngg_template_settings', $this->get_static_url('photocrati-nextgen_basic_templates#ngg_template_settings.css')); - wp_enqueue_script('ngg_template_settings', $this->get_static_url('photocrati-nextgen_basic_templates#ngg_template_settings.js'), array('select2'), $this->module_version, TRUE); + wp_enqueue_style('ngg_template_settings', $this->get_static_url('photocrati-nextgen_basic_templates#ngg_template_settings.css'), FALSE, NGG_SCRIPT_VERSION); + wp_enqueue_script('ngg_template_settings', $this->get_static_url('photocrati-nextgen_basic_templates#ngg_template_settings.js'), array('ngg_select2'), NGG_SCRIPT_VERSION, TRUE); wp_localize_script('ngg_template_settings', 'ngg_template_settings', array('placeholder_text' => __('No template selected'))); $atp = C_Attach_Controller::get_instance(); if ($atp != null) { diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/module.nextgen_data.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/module.nextgen_data.php index b5510df59..da2a541b7 100755 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/module.nextgen_data.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/module.nextgen_data.php @@ -16,9 +16,9 @@ class M_NextGen_Data extends C_Base_Module 'NextGEN Data Tier', "Provides a data tier for NextGEN gallery based on the DataMapper module", '0.10', - 'http://www.photocrati.com', + 'https://www.imagely.com', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); C_Photocrati_Installer::add_handler($this->module_id, 'C_NextGen_Data_Installer'); @@ -103,5 +103,20 @@ class M_NextGen_Data extends C_Base_Module return $order_by; } + + static function strip_html($data, $just_scripts=FALSE) + { + $retval = $data; + + if (!$just_scripts) + $retval = wp_strip_all_tags($retval, TRUE); + else { + $retval = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $retval ); + $retval= preg_replace('/[\r\n\t ]+/', ' ', $retval); + } + $retval = preg_replace("/\son[^=]+=/", '', $retval); + + return $retval; + } } new M_NextGen_Data(); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/package.module.nextgen_data.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/package.module.nextgen_data.php index 68e63857b..67ac96a18 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/package.module.nextgen_data.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/package.module.nextgen_data.php @@ -226,14 +226,20 @@ class Mixin_NextGen_Gallery_Validation { // If a title is present, we can auto-populate some other properties if ($this->object->title) { + // Strip html + $this->object->title = M_NextGen_Data::strip_html($this->object->title, TRUE); + $sanitized_title = str_replace(' ', '-', $this->object->title); + if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { + $sanitized_title = remove_accents($sanitized_title); + } // If no name is present, use the title to generate one if (!$this->object->name) { - $this->object->name = sanitize_file_name(sanitize_title($this->object->title)); - $this->object->name = apply_filters('ngg_gallery_name', $this->object->name); + $this->object->name = apply_filters('ngg_gallery_name', sanitize_file_name($sanitized_title)); } // If no slug is set, use the title to generate one if (!$this->object->slug) { - $this->object->slug = nggdb::get_unique_slug(sanitize_title($this->object->title), 'gallery'); + $this->object->slug = preg_replace('|[^a-z0-9 \\-~+_.#=!&;,/:%@$\\|*\'()\\x80-\\xff]|i', '', $sanitized_title); + $this->object->slug = nggdb::get_unique_slug($this->object->slug, 'gallery'); } } // Set what will be the path to the gallery @@ -241,6 +247,9 @@ class Mixin_NextGen_Gallery_Validation $storage = C_Gallery_Storage::get_instance(); $this->object->path = $storage->get_upload_relpath($this->object); unset($storage); + } else { + $this->object->path = M_NextGen_Data::strip_html($this->object->path); + $this->object->path = str_replace(array('"', '\'\'', '>', '<'), array('', '', '', ''), $this->object->path); } $this->object->validates_presence_of('title'); $this->object->validates_presence_of('name'); @@ -313,7 +322,7 @@ class C_Gallery_Mapper extends C_CustomTable_DataMapper_Driver // Define the columns $this->define_column('gid', 'BIGINT', 0); $this->define_column('name', 'VARCHAR(255)'); - $this->define_column('slug', 'VARCHAR(255'); + $this->define_column('slug', 'VARCHAR(255)'); $this->define_column('path', 'TEXT'); $this->define_column('title', 'TEXT'); $this->define_column('pageid', 'INT', 0); @@ -351,6 +360,36 @@ class Mixin_Gallery_Mapper extends Mixin } public function _save_entity($entity) { + // A bug in NGG 2.1.24 allowed galleries to be created with spaces in the directory name, unreplaced by dashes + // This causes a few problems everywhere, so we here allow users a way to fix those galleries by just re-saving + if (FALSE !== strpos($entity->path, ' ')) { + $storage = C_Gallery_Storage::get_instance(); + $abspath = $storage->get_gallery_abspath($entity->{$entity->id_field}); + $pre_path = $entity->path; + $entity->path = str_replace(' ', '-', $entity->path); + $new_abspath = str_replace($pre_path, $entity->path, $abspath); + // Begin adding -1, -2, etc until we have a safe target: rename() will overwrite existing directories + if (@file_exists($new_abspath)) { + $max_count = 100; + $count = 0; + $corrected_abspath = $new_abspath; + while (@file_exists($corrected_abspath) && $count <= $max_count) { + $count++; + $corrected_abspath = $new_abspath . '-' . $count; + } + $new_abspath = $corrected_abspath; + $entity->path = $entity->path . '-' . $count; + } + @rename($abspath, $new_abspath); + } + $slug = $entity->slug; + $entity->slug = str_replace(' ', '-', $entity->slug); + // Note: we do the following to mimic the behaviour of esc_url so that slugs are always valid in URLs after escaping + $entity->slug = preg_replace('|[^a-z0-9 \\-~+_.#=!&;,/:%@$\\|*\'()\\x80-\\xff]|i', '', $entity->slug); + if ($slug != $entity->slug) { + // creating new slug for the gallery + $entity->slug = nggdb::get_unique_slug($entity->slug, 'gallery'); + } $retval = $this->call_parent('_save_entity', $entity); if ($retval) { do_action('ngg_created_new_gallery', $entity->{$entity->id_field}); @@ -1179,7 +1218,7 @@ class Mixin_GalleryStorage_Driver_Base extends Mixin } return $retval; } - public function import_gallery_from_fs($abspath, $gallery_id = FALSE, $move_files = TRUE) + public function import_gallery_from_fs($abspath, $gallery_id = FALSE, $create_new_gallerypath = TRUE, $gallery_title = NULL, $filenames = array()) { $retval = FALSE; if (@file_exists($abspath)) { @@ -1197,7 +1236,13 @@ class Mixin_GalleryStorage_Driver_Base extends Mixin if (is_dir($file_abspath) && $i === 0) { $files[] = $file_abspath; } elseif ($this->is_image_file($file_abspath)) { - $files[] = $file_abspath; + if ($filenames && array_search($file_abspath, $filenames) !== FALSE) { + $files[] = $file_abspath; + } else { + if (!$filenames) { + $files[] = $file_abspath; + } + } } } if (!empty($files)) { @@ -1205,13 +1250,13 @@ class Mixin_GalleryStorage_Driver_Base extends Mixin $gallery_mapper = C_Gallery_Mapper::get_instance(); // Sometimes users try importing a directory, which actually has all images under another directory if (is_dir($files[0])) { - return $this->import_gallery_from_fs($files[0], $gallery_id, $move_files); + return $this->import_gallery_from_fs($files[0], $gallery_id, $create_new_gallerypath, $gallery_title, $filenames); } // If no gallery has been specified, then use the directory name as the gallery name if (!$gallery_id) { // Create the gallery - $gallery = $gallery_mapper->create(array('title' => M_I18n::mb_basename($abspath))); - if (!$move_files) { + $gallery = $gallery_mapper->create(array('title' => $gallery_title ? $gallery_title : M_I18n::mb_basename($abspath))); + if (!$create_new_gallerypath) { $gallery->path = str_ireplace(ABSPATH, '', $abspath); } // Save the gallery @@ -1227,7 +1272,7 @@ class Mixin_GalleryStorage_Driver_Base extends Mixin continue; } $image = null; - if ($move_files) { + if ($create_new_gallerypath) { $image = $this->object->upload_base64_image($gallery_id, file_get_contents($file_abspath), str_replace(' ', '_', M_I18n::mb_basename($file_abspath))); } else { // Create the database record ... TODO cleanup, some duplication here from upload_base64_image @@ -1722,6 +1767,13 @@ class Mixin_NextGen_Gallery_Image_Validation extends Mixin { public function validation() { + // Additional checks... + if (isset($this->object->description)) { + $this->object->description = M_NextGen_Data::strip_html($this->object->description, TRUE); + } + if (isset($this->object->alttext)) { + $this->object->alttext = M_NextGen_Data::strip_html($this->object->alttext, TRUE); + } $this->validates_presence_of('galleryid', 'filename', 'alttext', 'exclude', 'sortorder', 'imagedate'); $this->validates_numericality_of('galleryid'); $this->validates_numericality_of($this->id()); @@ -2565,7 +2617,7 @@ class C_NextGen_Metadata extends C_Component $meta['make'] = $exif['Make']; } if (!empty($exif['ImageDescription'])) { - $meta['title'] = utf8_encode($exif['ImageDescription']); + $meta['title'] = $this->utf8_encode($exif['ImageDescription']); } if (!empty($exif['Orientation'])) { $meta['Orientation'] = $exif['Orientation']; @@ -2575,19 +2627,19 @@ class C_NextGen_Metadata extends C_Component if (isset($this->exif_data['WINXP'])) { $exif = $this->exif_data['WINXP']; if (!empty($exif['Title']) && empty($meta['title'])) { - $meta['title'] = utf8_encode($exif['Title']); + $meta['title'] = $this->utf8_encode($exif['Title']); } if (!empty($exif['Author'])) { - $meta['author'] = utf8_encode($exif['Author']); + $meta['author'] = $this->utf8_encode($exif['Author']); } if (!empty($exif['Keywords'])) { - $meta['tags'] = utf8_encode($exif['Keywords']); + $meta['tags'] = $this->utf8_encode($exif['Keywords']); } if (!empty($exif['Subject'])) { - $meta['subject'] = utf8_encode($exif['Subject']); + $meta['subject'] = $this->utf8_encode($exif['Subject']); } if (!empty($exif['Comments'])) { - $meta['caption'] = utf8_encode($exif['Comments']); + $meta['caption'] = $this->utf8_encode($exif['Comments']); } } $this->exif_array = $meta; @@ -2640,7 +2692,7 @@ class C_NextGen_Metadata extends C_Component $meta = array(); foreach ($iptcTags as $key => $value) { if (isset($this->iptc_data[$key])) { - $meta[$value] = trim(utf8_encode(implode(', ', $this->iptc_data[$key]))); + $meta[$value] = trim($this->utf8_encode(implode(', ', $this->iptc_data[$key]))); } } $this->iptc_array = $meta; @@ -2887,6 +2939,33 @@ class C_NextGen_Metadata extends C_Component { $this->sanitize = true; } + /** + * Wrapper to utf8_encode() that avoids double encoding + * + * Regex adapted from http://www.w3.org/International/questions/qa-forms-utf-8.en.php + * to determine if the given string is already UTF-8. mb_detect_encoding() is not + * always available and is limited in accuracy + * + * @param string $str + * @return string + */ + public function utf8_encode($str) + { + $is_utf8 = preg_match('%^(?: + [\\x09\\x0A\\x0D\\x20-\\x7E] # ASCII + | [\\xC2-\\xDF][\\x80-\\xBF] # non-overlong 2-byte + | \\xE0[\\xA0-\\xBF][\\x80-\\xBF] # excluding overlongs + | [\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2} # straight 3-byte + | \\xED[\\x80-\\x9F][\\x80-\\xBF] # excluding surrogates + | \\xF0[\\x90-\\xBF][\\x80-\\xBF]{2} # planes 1-3 + | [\\xF1-\\xF3][\\x80-\\xBF]{3} # planes 4-15 + | \\xF4[\\x80-\\x8F][\\x80-\\xBF]{2} # plane 16 + )*$%xs', $str); + if (!$is_utf8) { + utf8_encode($str); + } + return $str; + } } class Mixin_NggLegacy_GalleryStorage_Driver extends Mixin { @@ -3049,9 +3128,8 @@ class Mixin_NggLegacy_GalleryStorage_Driver extends Mixin $image_abspath = $this->object->get_image_abspath($image, $size, $check_existance); } if ($image_abspath) { - // encode the filename: because filesystems will let you name things like%@this.jpg + // Use multibyte pathinfo() in case of UTF8 gallery or file names $parts = M_I18n::mb_pathinfo($image_abspath); - $parts['basename'] = rawurlencode($parts['basename']); $image_abspath = $parts['dirname'] . DIRECTORY_SEPARATOR . $parts['basename']; $doc_root = $fs->get_document_root('gallery'); if ($doc_root != null) { @@ -3064,6 +3142,12 @@ class Mixin_NggLegacy_GalleryStorage_Driver extends Mixin $request_uri = $image_abspath; } $request_uri = '/' . ltrim(str_replace('\\', '/', $request_uri), '/'); + // Because like%@this.jpg is a valid directory and filename + $request_uri = explode('/', $request_uri); + foreach ($request_uri as $ndx => $segment) { + $request_uri[$ndx] = rawurlencode($segment); + } + $request_uri = implode('/', $request_uri); $retval = $router->remove_url_segment('/index.php', $router->get_url($request_uri, FALSE, 'gallery')); } return apply_filters('ngg_get_image_url', $retval, $image, $size); @@ -3277,6 +3361,7 @@ class Mixin_NggLegacy_GalleryStorage_Driver extends Mixin $image->meta_data['height'] = $size_meta['height']; } $retval = $this->object->_image_mapper->save($image); + do_action('ngg_generated_image', $image, $size, $params); if ($retval == 0) { $retval = false; } @@ -3367,6 +3452,8 @@ class Mixin_NggLegacy_GalleryStorage_Driver extends Mixin $image = $this->object->_image_mapper->find($image); } if ($image) { + $image_id = $image->{$image->id_field}; + do_action('ngg_delete_image', $image_id, $size); // Delete only a particular image size if ($size) { $abspath = $this->object->get_image_abspath($image, $size); @@ -3525,6 +3612,8 @@ class Mixin_NggLegacy_GalleryStorage_Driver extends Mixin echo sprintf(__('Unable to write to directory %s. Is this directory writable by the server?', 'nggallery'), esc_html($gallery_abspath)); return $new_image_pids; } + $old_gallery_ids = array(); + $image_pid_map = array(); foreach ($images as $image) { if ($this->object->is_current_user_over_quota()) { throw new E_NoSpaceAvailableException(__('Sorry, you have used your space allocation. Please delete some files to upload more files.', 'nggallery')); @@ -3533,6 +3622,7 @@ class Mixin_NggLegacy_GalleryStorage_Driver extends Mixin if (is_numeric($image)) { $image = $this->object->_image_mapper->find($image); } + $old_gallery_ids[] = $image->galleryid; $old_pid = $image->{$image_key}; // update the DB if requested $new_image = clone $image; @@ -3602,6 +3692,13 @@ class Mixin_NggLegacy_GalleryStorage_Driver extends Mixin } } $new_image_pids[] = $new_pid; + $image_pid_map[$old_pid] = $new_pid; + } + $old_gallery_ids = array_unique($old_gallery_ids); + if ($move) { + do_action('ngg_moved_images', $images, $old_gallery_ids, $gallery_id); + } else { + do_action('ngg_copied_images', $image_pid_map, $old_gallery_ids, $gallery_id); } $title = '<a href="' . admin_url() . 'admin.php?page=nggallery-manage-gallery&mode=edit&gid=' . $gallery_id . '" >'; $title .= $gallery->title; @@ -3635,6 +3732,7 @@ class Mixin_NggLegacy_GalleryStorage_Driver extends Mixin } $this->object->generate_image_clone($backup_abspath, $this->object->get_image_abspath($image, $named_size), $this->object->get_image_size_params($image, $named_size)); } + do_action('ngg_recovered_image', $image); // Reimport all metadata $retval = $this->object->_image_mapper->reimport_metadata($image); } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/module.nextgen_gallery_display.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/module.nextgen_gallery_display.php index b28a205c3..f0b2ef747 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/module.nextgen_gallery_display.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/module.nextgen_gallery_display.php @@ -23,9 +23,9 @@ class M_Gallery_Display extends C_Base_Module 'Gallery Display', 'Provides the ability to display gallery of images', '0.13', - 'http://www.photocrati.com', + 'https://www.imagely.com', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); C_Photocrati_Installer::add_handler($this->module_id, 'C_Display_Type_Installer'); @@ -176,16 +176,21 @@ class M_Gallery_Display extends C_Base_Module } /** - * Deletes any displayed galleries that are no longer associated with - * a post/page + * Deletes any displayed galleries that are no longer associated with a post/page + * * @global array $displayed_galleries_to_cleanup * @param int $post_id */ function cleanup_displayed_galleries($post_id) { + if (!apply_filters('ngg_cleanup_displayed_galleries', true, $post_id)) + return; + global $displayed_galleries_to_cleanup; $mapper = C_Displayed_Gallery_Mapper::get_instance(); - foreach ($displayed_galleries_to_cleanup as $id) $mapper->destroy($id); + foreach ($displayed_galleries_to_cleanup as $id) { + $mapper->destroy($id); + } } /** @@ -207,8 +212,13 @@ class M_Gallery_Display extends C_Base_Module $fs = C_Fs::get_instance(); $abspath = $fs->find_static_abspath('photocrati-nextgen_gallery_display#fontawesome/font-awesome.css'); if ($abspath) { + $router = C_Router::get_instance(); $file_content = file_get_contents($abspath); - $file_content = str_replace('../fonts/fontawesome-webfont.woff', site_url('/?ngg_serve_fontawesome_woff=1'), $file_content); + $file_content = str_replace('../fonts/fontawesome-webfont.eot', $router->get_static_url($this->module_id . '#fonts/fontawesome-webfont.eot'), $file_content); + $file_content = str_replace('../fonts/fontawesome-webfont.svg', $router->get_static_url($this->module_id . '#fonts/fontawesome-webfont.svg'), $file_content); + $file_content = str_replace('../fonts/fontawesome-webfont.ttf', $router->get_static_url($this->module_id . '#fonts/fontawesome-webfont.ttf'), $file_content); + $file_content = str_replace('../fonts/fontawesome-webfont.woff2', $router->get_static_url($this->module_id . '#fonts/fontawesome-webfont.woff2'), $file_content); + $file_content = str_replace('../fonts/fontawesome-webfont.woff', site_url('/?ngg_serve_fontawesome_woff=1'), $file_content); header('Content-Type: text/css'); echo $file_content; throw new E_Clean_Exit(); @@ -221,10 +231,15 @@ class M_Gallery_Display extends C_Base_Module if (!wp_style_is('fontawesome', 'registered')) { if (strpos(strtolower($_SERVER['SERVER_SOFTWARE']), 'microsoft-iis') !== FALSE) { - wp_register_style('fontawesome', site_url('/?ngg_serve_fontawesome_css=1')); + wp_register_style('fontawesome', site_url('/?ngg_serve_fontawesome_css=1'), FALSE, NGG_SCRIPT_VERSION); } else { $router = C_Router::get_instance(); - wp_register_style('fontawesome', $router->get_static_url('photocrati-nextgen_gallery_display#fontawesome/font-awesome.css')); + wp_register_style( + 'fontawesome', + $router->get_static_url('photocrati-nextgen_gallery_display#fontawesome/font-awesome.css'), + FALSE, + NGG_SCRIPT_VERSION + ); } } @@ -359,22 +374,38 @@ class M_Gallery_Display extends C_Base_Module wp_register_script( 'nextgen_gallery_display_settings', $router->get_static_url('photocrati-nextgen_gallery_display#nextgen_gallery_display_settings.js'), - array('jquery-ui-accordion', 'jquery-ui-tooltip') + array('jquery-ui-accordion', 'jquery-ui-tooltip'), + NGG_SCRIPT_VERSION ); wp_register_style( 'nextgen_gallery_display_settings', - $router->get_static_url('photocrati-nextgen_gallery_display#nextgen_gallery_display_settings.css') + $router->get_static_url('photocrati-nextgen_gallery_display#nextgen_gallery_display_settings.css'), + FALSE, + NGG_SCRIPT_VERSION ); if (apply_filters('ngg_load_frontend_logic', TRUE, $this->module_id)) { wp_register_style( 'nextgen_gallery_related_images', - $router->get_static_url('photocrati-nextgen_gallery_display#nextgen_gallery_related_images.css') + $router->get_static_url('photocrati-nextgen_gallery_display#nextgen_gallery_related_images.css'), + FALSE, + NGG_SCRIPT_VERSION + ); + wp_register_script( + 'ngg_common', + $router->get_static_url('photocrati-nextgen_gallery_display#common.js'), + array('jquery', 'photocrati_ajax'), + NGG_SCRIPT_VERSION, + TRUE + ); + wp_register_style( + 'ngg_trigger_buttons', + $router->get_static_url('photocrati-nextgen_gallery_display#trigger_buttons.css'), + FALSE, + NGG_SCRIPT_VERSION ); - wp_register_script('ngg_common', $router->get_static_url('photocrati-nextgen_gallery_display#common.js'), array('jquery', 'photocrati_ajax'), NGG_PLUGIN_VERSION, TRUE); - wp_register_style('ngg_trigger_buttons', $router->get_static_url('photocrati-nextgen_gallery_display#trigger_buttons.css')); } } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/package.module.nextgen_gallery_display.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/package.module.nextgen_gallery_display.php index a107e77c9..6543a050b 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/package.module.nextgen_gallery_display.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/package.module.nextgen_gallery_display.php @@ -256,7 +256,7 @@ class Mixin_Display_Type_Controller extends Mixin // This script provides common JavaScript among all display types wp_enqueue_script('ngg_common'); // Enqueue the display type library - wp_enqueue_script($displayed_gallery->display_type, $this->object->_get_js_lib_url($displayed_gallery)); + wp_enqueue_script($displayed_gallery->display_type, $this->object->_get_js_lib_url($displayed_gallery), FALSE, NGG_SCRIPT_VERSION); // Add "galleries = {};" $this->object->_add_script_data('ngg_common', 'galleries', new stdClass(), TRUE, FALSE); // Add "galleries.gallery_1 = {};" @@ -271,7 +271,7 @@ class Mixin_Display_Type_Controller extends Mixin { $settings = C_NextGen_Settings::get_instance(); if ((!is_multisite() || is_multisite() && $settings->wpmuStyle) && $settings->activateCSS) { - wp_enqueue_style('nggallery', C_NextGen_Style_Manager::get_instance()->get_selected_stylesheet_url()); + wp_enqueue_style('nggallery', C_NextGen_Style_Manager::get_instance()->get_selected_stylesheet_url(), FALSE, NGG_SCRIPT_VERSION); } } public function get_render_mode() diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fontawesome/font-awesome.css b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fontawesome/font-awesome.css index 24fcc04c4..e46304e9a 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fontawesome/font-awesome.css +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fontawesome/font-awesome.css @@ -1,4 +1,2178 @@ /*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.6.1 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.3.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-genderless:before,.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"} \ No newline at end of file + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../fonts/fontawesome-webfont.eot?v=4.6.1'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.1') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.6.1') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.6.1') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.6.1') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.6.1#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #fff; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: "\f000"; +} +.fa-music:before { + content: "\f001"; +} +.fa-search:before { + content: "\f002"; +} +.fa-envelope-o:before { + content: "\f003"; +} +.fa-heart:before { + content: "\f004"; +} +.fa-star:before { + content: "\f005"; +} +.fa-star-o:before { + content: "\f006"; +} +.fa-user:before { + content: "\f007"; +} +.fa-film:before { + content: "\f008"; +} +.fa-th-large:before { + content: "\f009"; +} +.fa-th:before { + content: "\f00a"; +} +.fa-th-list:before { + content: "\f00b"; +} +.fa-check:before { + content: "\f00c"; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} +.fa-search-plus:before { + content: "\f00e"; +} +.fa-search-minus:before { + content: "\f010"; +} +.fa-power-off:before { + content: "\f011"; +} +.fa-signal:before { + content: "\f012"; +} +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} +.fa-trash-o:before { + content: "\f014"; +} +.fa-home:before { + content: "\f015"; +} +.fa-file-o:before { + content: "\f016"; +} +.fa-clock-o:before { + content: "\f017"; +} +.fa-road:before { + content: "\f018"; +} +.fa-download:before { + content: "\f019"; +} +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} +.fa-inbox:before { + content: "\f01c"; +} +.fa-play-circle-o:before { + content: "\f01d"; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} +.fa-refresh:before { + content: "\f021"; +} +.fa-list-alt:before { + content: "\f022"; +} +.fa-lock:before { + content: "\f023"; +} +.fa-flag:before { + content: "\f024"; +} +.fa-headphones:before { + content: "\f025"; +} +.fa-volume-off:before { + content: "\f026"; +} +.fa-volume-down:before { + content: "\f027"; +} +.fa-volume-up:before { + content: "\f028"; +} +.fa-qrcode:before { + content: "\f029"; +} +.fa-barcode:before { + content: "\f02a"; +} +.fa-tag:before { + content: "\f02b"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-bookmark:before { + content: "\f02e"; +} +.fa-print:before { + content: "\f02f"; +} +.fa-camera:before { + content: "\f030"; +} +.fa-font:before { + content: "\f031"; +} +.fa-bold:before { + content: "\f032"; +} +.fa-italic:before { + content: "\f033"; +} +.fa-text-height:before { + content: "\f034"; +} +.fa-text-width:before { + content: "\f035"; +} +.fa-align-left:before { + content: "\f036"; +} +.fa-align-center:before { + content: "\f037"; +} +.fa-align-right:before { + content: "\f038"; +} +.fa-align-justify:before { + content: "\f039"; +} +.fa-list:before { + content: "\f03a"; +} +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} +.fa-indent:before { + content: "\f03c"; +} +.fa-video-camera:before { + content: "\f03d"; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} +.fa-pencil:before { + content: "\f040"; +} +.fa-map-marker:before { + content: "\f041"; +} +.fa-adjust:before { + content: "\f042"; +} +.fa-tint:before { + content: "\f043"; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} +.fa-share-square-o:before { + content: "\f045"; +} +.fa-check-square-o:before { + content: "\f046"; +} +.fa-arrows:before { + content: "\f047"; +} +.fa-step-backward:before { + content: "\f048"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-times-circle-o:before { + content: "\f05c"; +} +.fa-check-circle-o:before { + content: "\f05d"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-calendar:before { + content: "\f073"; +} +.fa-random:before { + content: "\f074"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-retweet:before { + content: "\f079"; +} +.fa-shopping-cart:before { + content: "\f07a"; +} +.fa-folder:before { + content: "\f07b"; +} +.fa-folder-open:before { + content: "\f07c"; +} +.fa-arrows-v:before { + content: "\f07d"; +} +.fa-arrows-h:before { + content: "\f07e"; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} +.fa-twitter-square:before { + content: "\f081"; +} +.fa-facebook-square:before { + content: "\f082"; +} +.fa-camera-retro:before { + content: "\f083"; +} +.fa-key:before { + content: "\f084"; +} +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} +.fa-comments:before { + content: "\f086"; +} +.fa-thumbs-o-up:before { + content: "\f087"; +} +.fa-thumbs-o-down:before { + content: "\f088"; +} +.fa-star-half:before { + content: "\f089"; +} +.fa-heart-o:before { + content: "\f08a"; +} +.fa-sign-out:before { + content: "\f08b"; +} +.fa-linkedin-square:before { + content: "\f08c"; +} +.fa-thumb-tack:before { + content: "\f08d"; +} +.fa-external-link:before { + content: "\f08e"; +} +.fa-sign-in:before { + content: "\f090"; +} +.fa-trophy:before { + content: "\f091"; +} +.fa-github-square:before { + content: "\f092"; +} +.fa-upload:before { + content: "\f093"; +} +.fa-lemon-o:before { + content: "\f094"; +} +.fa-phone:before { + content: "\f095"; +} +.fa-square-o:before { + content: "\f096"; +} +.fa-bookmark-o:before { + content: "\f097"; +} +.fa-phone-square:before { + content: "\f098"; +} +.fa-twitter:before { + content: "\f099"; +} +.fa-facebook-f:before, +.fa-facebook:before { + content: "\f09a"; +} +.fa-github:before { + content: "\f09b"; +} +.fa-unlock:before { + content: "\f09c"; +} +.fa-credit-card:before { + content: "\f09d"; +} +.fa-feed:before, +.fa-rss:before { + content: "\f09e"; +} +.fa-hdd-o:before { + content: "\f0a0"; +} +.fa-bullhorn:before { + content: "\f0a1"; +} +.fa-bell:before { + content: "\f0f3"; +} +.fa-certificate:before { + content: "\f0a3"; +} +.fa-hand-o-right:before { + content: "\f0a4"; +} +.fa-hand-o-left:before { + content: "\f0a5"; +} +.fa-hand-o-up:before { + content: "\f0a6"; +} +.fa-hand-o-down:before { + content: "\f0a7"; +} +.fa-arrow-circle-left:before { + content: "\f0a8"; +} +.fa-arrow-circle-right:before { + content: "\f0a9"; +} +.fa-arrow-circle-up:before { + content: "\f0aa"; +} +.fa-arrow-circle-down:before { + content: "\f0ab"; +} +.fa-globe:before { + content: "\f0ac"; +} +.fa-wrench:before { + content: "\f0ad"; +} +.fa-tasks:before { + content: "\f0ae"; +} +.fa-filter:before { + content: "\f0b0"; +} +.fa-briefcase:before { + content: "\f0b1"; +} +.fa-arrows-alt:before { + content: "\f0b2"; +} +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} +.fa-cloud:before { + content: "\f0c2"; +} +.fa-flask:before { + content: "\f0c3"; +} +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} +.fa-paperclip:before { + content: "\f0c6"; +} +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} +.fa-square:before { + content: "\f0c8"; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} +.fa-list-ul:before { + content: "\f0ca"; +} +.fa-list-ol:before { + content: "\f0cb"; +} +.fa-strikethrough:before { + content: "\f0cc"; +} +.fa-underline:before { + content: "\f0cd"; +} +.fa-table:before { + content: "\f0ce"; +} +.fa-magic:before { + content: "\f0d0"; +} +.fa-truck:before { + content: "\f0d1"; +} +.fa-pinterest:before { + content: "\f0d2"; +} +.fa-pinterest-square:before { + content: "\f0d3"; +} +.fa-google-plus-square:before { + content: "\f0d4"; +} +.fa-google-plus:before { + content: "\f0d5"; +} +.fa-money:before { + content: "\f0d6"; +} +.fa-caret-down:before { + content: "\f0d7"; +} +.fa-caret-up:before { + content: "\f0d8"; +} +.fa-caret-left:before { + content: "\f0d9"; +} +.fa-caret-right:before { + content: "\f0da"; +} +.fa-columns:before { + content: "\f0db"; +} +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} +.fa-envelope:before { + content: "\f0e0"; +} +.fa-linkedin:before { + content: "\f0e1"; +} +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} +.fa-comment-o:before { + content: "\f0e5"; +} +.fa-comments-o:before { + content: "\f0e6"; +} +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} +.fa-sitemap:before { + content: "\f0e8"; +} +.fa-umbrella:before { + content: "\f0e9"; +} +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} +.fa-lightbulb-o:before { + content: "\f0eb"; +} +.fa-exchange:before { + content: "\f0ec"; +} +.fa-cloud-download:before { + content: "\f0ed"; +} +.fa-cloud-upload:before { + content: "\f0ee"; +} +.fa-user-md:before { + content: "\f0f0"; +} +.fa-stethoscope:before { + content: "\f0f1"; +} +.fa-suitcase:before { + content: "\f0f2"; +} +.fa-bell-o:before { + content: "\f0a2"; +} +.fa-coffee:before { + content: "\f0f4"; +} +.fa-cutlery:before { + content: "\f0f5"; +} +.fa-file-text-o:before { + content: "\f0f6"; +} +.fa-building-o:before { + content: "\f0f7"; +} +.fa-hospital-o:before { + content: "\f0f8"; +} +.fa-ambulance:before { + content: "\f0f9"; +} +.fa-medkit:before { + content: "\f0fa"; +} +.fa-fighter-jet:before { + content: "\f0fb"; +} +.fa-beer:before { + content: "\f0fc"; +} +.fa-h-square:before { + content: "\f0fd"; +} +.fa-plus-square:before { + content: "\f0fe"; +} +.fa-angle-double-left:before { + content: "\f100"; +} +.fa-angle-double-right:before { + content: "\f101"; +} +.fa-angle-double-up:before { + content: "\f102"; +} +.fa-angle-double-down:before { + content: "\f103"; +} +.fa-angle-left:before { + content: "\f104"; +} +.fa-angle-right:before { + content: "\f105"; +} +.fa-angle-up:before { + content: "\f106"; +} +.fa-angle-down:before { + content: "\f107"; +} +.fa-desktop:before { + content: "\f108"; +} +.fa-laptop:before { + content: "\f109"; +} +.fa-tablet:before { + content: "\f10a"; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} +.fa-circle-o:before { + content: "\f10c"; +} +.fa-quote-left:before { + content: "\f10d"; +} +.fa-quote-right:before { + content: "\f10e"; +} +.fa-spinner:before { + content: "\f110"; +} +.fa-circle:before { + content: "\f111"; +} +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} +.fa-github-alt:before { + content: "\f113"; +} +.fa-folder-o:before { + content: "\f114"; +} +.fa-folder-open-o:before { + content: "\f115"; +} +.fa-smile-o:before { + content: "\f118"; +} +.fa-frown-o:before { + content: "\f119"; +} +.fa-meh-o:before { + content: "\f11a"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-keyboard-o:before { + content: "\f11c"; +} +.fa-flag-o:before { + content: "\f11d"; +} +.fa-flag-checkered:before { + content: "\f11e"; +} +.fa-terminal:before { + content: "\f120"; +} +.fa-code:before { + content: "\f121"; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} +.fa-location-arrow:before { + content: "\f124"; +} +.fa-crop:before { + content: "\f125"; +} +.fa-code-fork:before { + content: "\f126"; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} +.fa-question:before { + content: "\f128"; +} +.fa-info:before { + content: "\f129"; +} +.fa-exclamation:before { + content: "\f12a"; +} +.fa-superscript:before { + content: "\f12b"; +} +.fa-subscript:before { + content: "\f12c"; +} +.fa-eraser:before { + content: "\f12d"; +} +.fa-puzzle-piece:before { + content: "\f12e"; +} +.fa-microphone:before { + content: "\f130"; +} +.fa-microphone-slash:before { + content: "\f131"; +} +.fa-shield:before { + content: "\f132"; +} +.fa-calendar-o:before { + content: "\f133"; +} +.fa-fire-extinguisher:before { + content: "\f134"; +} +.fa-rocket:before { + content: "\f135"; +} +.fa-maxcdn:before { + content: "\f136"; +} +.fa-chevron-circle-left:before { + content: "\f137"; +} +.fa-chevron-circle-right:before { + content: "\f138"; +} +.fa-chevron-circle-up:before { + content: "\f139"; +} +.fa-chevron-circle-down:before { + content: "\f13a"; +} +.fa-html5:before { + content: "\f13b"; +} +.fa-css3:before { + content: "\f13c"; +} +.fa-anchor:before { + content: "\f13d"; +} +.fa-unlock-alt:before { + content: "\f13e"; +} +.fa-bullseye:before { + content: "\f140"; +} +.fa-ellipsis-h:before { + content: "\f141"; +} +.fa-ellipsis-v:before { + content: "\f142"; +} +.fa-rss-square:before { + content: "\f143"; +} +.fa-play-circle:before { + content: "\f144"; +} +.fa-ticket:before { + content: "\f145"; +} +.fa-minus-square:before { + content: "\f146"; +} +.fa-minus-square-o:before { + content: "\f147"; +} +.fa-level-up:before { + content: "\f148"; +} +.fa-level-down:before { + content: "\f149"; +} +.fa-check-square:before { + content: "\f14a"; +} +.fa-pencil-square:before { + content: "\f14b"; +} +.fa-external-link-square:before { + content: "\f14c"; +} +.fa-share-square:before { + content: "\f14d"; +} +.fa-compass:before { + content: "\f14e"; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} +.fa-gbp:before { + content: "\f154"; +} +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} +.fa-file:before { + content: "\f15b"; +} +.fa-file-text:before { + content: "\f15c"; +} +.fa-sort-alpha-asc:before { + content: "\f15d"; +} +.fa-sort-alpha-desc:before { + content: "\f15e"; +} +.fa-sort-amount-asc:before { + content: "\f160"; +} +.fa-sort-amount-desc:before { + content: "\f161"; +} +.fa-sort-numeric-asc:before { + content: "\f162"; +} +.fa-sort-numeric-desc:before { + content: "\f163"; +} +.fa-thumbs-up:before { + content: "\f164"; +} +.fa-thumbs-down:before { + content: "\f165"; +} +.fa-youtube-square:before { + content: "\f166"; +} +.fa-youtube:before { + content: "\f167"; +} +.fa-xing:before { + content: "\f168"; +} +.fa-xing-square:before { + content: "\f169"; +} +.fa-youtube-play:before { + content: "\f16a"; +} +.fa-dropbox:before { + content: "\f16b"; +} +.fa-stack-overflow:before { + content: "\f16c"; +} +.fa-instagram:before { + content: "\f16d"; +} +.fa-flickr:before { + content: "\f16e"; +} +.fa-adn:before { + content: "\f170"; +} +.fa-bitbucket:before { + content: "\f171"; +} +.fa-bitbucket-square:before { + content: "\f172"; +} +.fa-tumblr:before { + content: "\f173"; +} +.fa-tumblr-square:before { + content: "\f174"; +} +.fa-long-arrow-down:before { + content: "\f175"; +} +.fa-long-arrow-up:before { + content: "\f176"; +} +.fa-long-arrow-left:before { + content: "\f177"; +} +.fa-long-arrow-right:before { + content: "\f178"; +} +.fa-apple:before { + content: "\f179"; +} +.fa-windows:before { + content: "\f17a"; +} +.fa-android:before { + content: "\f17b"; +} +.fa-linux:before { + content: "\f17c"; +} +.fa-dribbble:before { + content: "\f17d"; +} +.fa-skype:before { + content: "\f17e"; +} +.fa-foursquare:before { + content: "\f180"; +} +.fa-trello:before { + content: "\f181"; +} +.fa-female:before { + content: "\f182"; +} +.fa-male:before { + content: "\f183"; +} +.fa-gittip:before, +.fa-gratipay:before { + content: "\f184"; +} +.fa-sun-o:before { + content: "\f185"; +} +.fa-moon-o:before { + content: "\f186"; +} +.fa-archive:before { + content: "\f187"; +} +.fa-bug:before { + content: "\f188"; +} +.fa-vk:before { + content: "\f189"; +} +.fa-weibo:before { + content: "\f18a"; +} +.fa-renren:before { + content: "\f18b"; +} +.fa-pagelines:before { + content: "\f18c"; +} +.fa-stack-exchange:before { + content: "\f18d"; +} +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} +.fa-arrow-circle-o-left:before { + content: "\f190"; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} +.fa-dot-circle-o:before { + content: "\f192"; +} +.fa-wheelchair:before { + content: "\f193"; +} +.fa-vimeo-square:before { + content: "\f194"; +} +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} +.fa-plus-square-o:before { + content: "\f196"; +} +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-pied-piper:before { + content: "\f1a7"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-spoon:before { + content: "\f1b1"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa-file-word-o:before { + content: "\f1c2"; +} +.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} +.fa-file-code-o:before { + content: "\f1c9"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa-ra:before, +.fa-rebel:before { + content: "\f1d0"; +} +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-circle-thin:before { + content: "\f1db"; +} +.fa-header:before { + content: "\f1dc"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-sliders:before { + content: "\f1de"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bell-slash-o:before { + content: "\f1f7"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-eyedropper:before { + content: "\f1fb"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-area-chart:before { + content: "\f1fe"; +} +.fa-pie-chart:before { + content: "\f200"; +} +.fa-line-chart:before { + content: "\f201"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-cc:before { + content: "\f20a"; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} +.fa-meanpath:before { + content: "\f20c"; +} +.fa-buysellads:before { + content: "\f20d"; +} +.fa-connectdevelop:before { + content: "\f20e"; +} +.fa-dashcube:before { + content: "\f210"; +} +.fa-forumbee:before { + content: "\f211"; +} +.fa-leanpub:before { + content: "\f212"; +} +.fa-sellsy:before { + content: "\f213"; +} +.fa-shirtsinbulk:before { + content: "\f214"; +} +.fa-simplybuilt:before { + content: "\f215"; +} +.fa-skyatlas:before { + content: "\f216"; +} +.fa-cart-plus:before { + content: "\f217"; +} +.fa-cart-arrow-down:before { + content: "\f218"; +} +.fa-diamond:before { + content: "\f219"; +} +.fa-ship:before { + content: "\f21a"; +} +.fa-user-secret:before { + content: "\f21b"; +} +.fa-motorcycle:before { + content: "\f21c"; +} +.fa-street-view:before { + content: "\f21d"; +} +.fa-heartbeat:before { + content: "\f21e"; +} +.fa-venus:before { + content: "\f221"; +} +.fa-mars:before { + content: "\f222"; +} +.fa-mercury:before { + content: "\f223"; +} +.fa-intersex:before, +.fa-transgender:before { + content: "\f224"; +} +.fa-transgender-alt:before { + content: "\f225"; +} +.fa-venus-double:before { + content: "\f226"; +} +.fa-mars-double:before { + content: "\f227"; +} +.fa-venus-mars:before { + content: "\f228"; +} +.fa-mars-stroke:before { + content: "\f229"; +} +.fa-mars-stroke-v:before { + content: "\f22a"; +} +.fa-mars-stroke-h:before { + content: "\f22b"; +} +.fa-neuter:before { + content: "\f22c"; +} +.fa-genderless:before { + content: "\f22d"; +} +.fa-facebook-official:before { + content: "\f230"; +} +.fa-pinterest-p:before { + content: "\f231"; +} +.fa-whatsapp:before { + content: "\f232"; +} +.fa-server:before { + content: "\f233"; +} +.fa-user-plus:before { + content: "\f234"; +} +.fa-user-times:before { + content: "\f235"; +} +.fa-hotel:before, +.fa-bed:before { + content: "\f236"; +} +.fa-viacoin:before { + content: "\f237"; +} +.fa-train:before { + content: "\f238"; +} +.fa-subway:before { + content: "\f239"; +} +.fa-medium:before { + content: "\f23a"; +} +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b"; +} +.fa-optin-monster:before { + content: "\f23c"; +} +.fa-opencart:before { + content: "\f23d"; +} +.fa-expeditedssl:before { + content: "\f23e"; +} +.fa-battery-4:before, +.fa-battery-full:before { + content: "\f240"; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241"; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242"; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243"; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244"; +} +.fa-mouse-pointer:before { + content: "\f245"; +} +.fa-i-cursor:before { + content: "\f246"; +} +.fa-object-group:before { + content: "\f247"; +} +.fa-object-ungroup:before { + content: "\f248"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-sticky-note-o:before { + content: "\f24a"; +} +.fa-cc-jcb:before { + content: "\f24b"; +} +.fa-cc-diners-club:before { + content: "\f24c"; +} +.fa-clone:before { + content: "\f24d"; +} +.fa-balance-scale:before { + content: "\f24e"; +} +.fa-hourglass-o:before { + content: "\f250"; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251"; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252"; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253"; +} +.fa-hourglass:before { + content: "\f254"; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255"; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256"; +} +.fa-hand-scissors-o:before { + content: "\f257"; +} +.fa-hand-lizard-o:before { + content: "\f258"; +} +.fa-hand-spock-o:before { + content: "\f259"; +} +.fa-hand-pointer-o:before { + content: "\f25a"; +} +.fa-hand-peace-o:before { + content: "\f25b"; +} +.fa-trademark:before { + content: "\f25c"; +} +.fa-registered:before { + content: "\f25d"; +} +.fa-creative-commons:before { + content: "\f25e"; +} +.fa-gg:before { + content: "\f260"; +} +.fa-gg-circle:before { + content: "\f261"; +} +.fa-tripadvisor:before { + content: "\f262"; +} +.fa-odnoklassniki:before { + content: "\f263"; +} +.fa-odnoklassniki-square:before { + content: "\f264"; +} +.fa-get-pocket:before { + content: "\f265"; +} +.fa-wikipedia-w:before { + content: "\f266"; +} +.fa-safari:before { + content: "\f267"; +} +.fa-chrome:before { + content: "\f268"; +} +.fa-firefox:before { + content: "\f269"; +} +.fa-opera:before { + content: "\f26a"; +} +.fa-internet-explorer:before { + content: "\f26b"; +} +.fa-tv:before, +.fa-television:before { + content: "\f26c"; +} +.fa-contao:before { + content: "\f26d"; +} +.fa-500px:before { + content: "\f26e"; +} +.fa-amazon:before { + content: "\f270"; +} +.fa-calendar-plus-o:before { + content: "\f271"; +} +.fa-calendar-minus-o:before { + content: "\f272"; +} +.fa-calendar-times-o:before { + content: "\f273"; +} +.fa-calendar-check-o:before { + content: "\f274"; +} +.fa-industry:before { + content: "\f275"; +} +.fa-map-pin:before { + content: "\f276"; +} +.fa-map-signs:before { + content: "\f277"; +} +.fa-map-o:before { + content: "\f278"; +} +.fa-map:before { + content: "\f279"; +} +.fa-commenting:before { + content: "\f27a"; +} +.fa-commenting-o:before { + content: "\f27b"; +} +.fa-houzz:before { + content: "\f27c"; +} +.fa-vimeo:before { + content: "\f27d"; +} +.fa-black-tie:before { + content: "\f27e"; +} +.fa-fonticons:before { + content: "\f280"; +} +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-credit-card-alt:before { + content: "\f283"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-pause-circle-o:before { + content: "\f28c"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stop-circle-o:before { + content: "\f28e"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-percent:before { + content: "\f295"; +} +.fa-gitlab:before { + content: "\f296"; +} +.fa-wpbeginner:before { + content: "\f297"; +} +.fa-wpforms:before { + content: "\f298"; +} +.fa-envira:before { + content: "\f299"; +} +.fa-universal-access:before { + content: "\f29a"; +} +.fa-wheelchair-alt:before { + content: "\f29b"; +} +.fa-question-circle-o:before { + content: "\f29c"; +} +.fa-blind:before { + content: "\f29d"; +} +.fa-audio-description:before { + content: "\f29e"; +} +.fa-volume-control-phone:before { + content: "\f2a0"; +} +.fa-braille:before { + content: "\f2a1"; +} +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: "\f2a4"; +} +.fa-glide:before { + content: "\f2a5"; +} +.fa-glide-g:before { + content: "\f2a6"; +} +.fa-signing:before, +.fa-sign-language:before { + content: "\f2a7"; +} +.fa-low-vision:before { + content: "\f2a8"; +} +.fa-viadeo:before { + content: "\f2a9"; +} +.fa-viadeo-square:before { + content: "\f2aa"; +} +.fa-snapchat:before { + content: "\f2ab"; +} +.fa-snapchat-ghost:before { + content: "\f2ac"; +} +.fa-snapchat-square:before { + content: "\f2ad"; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fontawesome/font-awesome.min.css b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fontawesome/font-awesome.min.css index b34d29d5c..703ec6184 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fontawesome/font-awesome.min.css +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fontawesome/font-awesome.min.css @@ -1,4 +1,5 @@ /*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.6.1 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.3.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-genderless:before,.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"} \ No newline at end of file + */ + @font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.6.1');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.1') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.6.1') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.6.1') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.6.1') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.6.1#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fonts/FontAwesome.otf b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fonts/FontAwesome.otf index f7936cc1e789eea5438d576d6b12de20191da09d..59853bcda7308254f58c2d74053f3ba55c21b9fb 100644 GIT binary patch delta 71718 zcmX?bm-WR#_Im%25Pt?Ph6V;^1_fs~H-)6gFI@}_3~Lw|&)#<pa13IQVbEk?JlDg( zz+m7XtZ&p|R29j<cy12^14BY`ZeoFBN8?=v#`7`^49qMUsfj6Uv;Pz@FkVt%U|=xI z$Vg4(XXa{UV7wH;z`&rAky}zBpec5Sf$>re0|S>)ZeoRQ0n?NK1_s7E8yFZE*zyu{ zQ*8y6l^7WB>|kJE;VsB7E@5D1U|?W;aDst>L1FS40a@`yjK3B${aVcYLz1PNhq;@F zrR(=p8BWGYf|3FTjQlbNnu6<O85p;52r+eT))Z7?sXxSbjPDfRIlfDL*Z6Mn-Q#=2 z_l)lq-#flfeBbzf@%`gx;%DRM;^*TR;uqtW;+NxB;#cF>;@9Ih;y2^B;<w{>;&<cs z;`ieZ;t%7G;*aA`;!oqx;?LtR;xFT`;;-Xx;&0>c;_u_1#6OLH7XLi{Mf}V7SMjgo z-^#y-{{a7ydj1pq=lQSk-{QZ=|A_w?|117?{Ga&0@&DrgC%`1YCcq`YCm<vsCLkps zC!i#tCZHvtCtxICDc~UBF5o8+Di9-(ERZEoC{Q6#FVH5?D=<Z1w!k8Rl>!?CwhQbN zI4W>P;IhCifrkPw1l|jL6Zk90B4{jVm!6YYT%224oS9s_IZ|{JUwyo(i9x)niDA5{ ziBY_%iE+HCiAlVviD|s4iCMg<iFv%KiAB7riDkU0sX@G{sbRdSsZqSCsd2oisY$%4 zscF2asad?Ksd>DqsYSf0sb##WnL)g%nPI%CnNhr{nQ^?SnMu5<nQ6SKnOVH4nR&da znMJ&*nPr-hnL(P7S-oMrsku>_5lErANxZ4KX}qbqS-h#adAzB)MZBrGWxT0{LA<Gj zVZ5n@QM{>zalEO8NxZ3rX}qb0S-h!*dAzBGMZBqnWxT1SLA<G@VZ5oOQM{?8alEOe zNxZ40X}qbWS-h#GdAzBmMVgU$YH41kn~{Y9gfgs;H#0DbH#0DfH#0DSh?zntvv@ND z^LR4@i+D2w%Xl+GgLpGT!+0}8qj)nz<9IVelXx>j(|9vOvv@N@^LR5ui+D3b%Xl** zgLpF|!+0|zqj)nT<9IV8lXx>D(|9u@vv@Nj^LR5Oi+D35ORyD=2BmrRnQlgoh7hh1 zgffOu5Z5?DT;pg45j2NT77z+*j3b2S1fiTElnaD%1yfEC?>a#&a)Mao1hS~!&BzI2 zlM}=yCx}f>5SyGJHaS6Ta)Q|81hL5pVv`fZCMQ?t{DR7&%=C;B1((FKR0a3Myp&1> zBLhP-Jq5>{90jmcu|iR5acWUnYKop)eqM=V`D6zbw)#U%42%ps3`q=W3}p;;44n*< z8D=odX1LGrg5eFr2Zo;ve;FAW*%`SRwHWmn%@}<ca~KO4>lxb^yBQ}jPG_9WIG=F^ z;~K^dj8_<MFg|5sXX0iOU@~H|XL4l<V~S<UVk%%NVVcOaglPrS4yMD*V$8bCmdwq} z-OQ7ir!&uEu3yHyig^?BHs)Q-N10DDpJl$p{E_)53o8o`i!h5Mi!6&Giz<sgiv^1v zO9;ybmaQxoSgx_$WqHW*i<OHto;8g%mvsv3Ox9<tuUJ2`{$*oj(_+(SGiLK<3uG%} zYiGN{c9UI+U6Wmx-H6?c-HP3Ty^Vb~`x5pQ>}%OCvj5;<sORA35aN*JkmFF|(B?4X z@Z<>Mh~S9fNa9H2$mS^EDCMZ+sN-19v6|xn$1_f8&Opvs&Th_r&O@9RIqz|P<ow3@ zkBgg2jZ2%$iYu8bpR0pwHrFDqrCjT{j&YskdcyUZ>jT$UZboiRZe4C;ZVPT3ZYOSc zZh!6w?i%h1+*7#g=W{RS-om|;dq4Lh?w8zOd6;<wdBk~Sc$9hcc^r8Xd75~7cxLe| z<XO+NpXU_Md7djgH+k;yJmLAvE5mEe>%tqz8^@c<o5Nek+t0g*cQfxk-t)Y-c<=K* z=6%WghL3|!icgErjL(VBozIUilrNGmmam*|BHt{&rF?7nHt-#&=R3xCjqg3*XTHDu z9Q?fe!u%5aviwT?2K;vXKK#M_k^D*g+583kW&Cygt^B?G6Zxm}&*xvvzmb1C|5^UW z{9gpP1o#C+1(XCd1@r_=1gr$?1e^st1Y!k>1nLE*2&@!XCvZUEioiXA=K}8qz6<;j zWE2z;R1!26v=MX_^b)N17Yq@M6-*M$6wDJW7OW8L5}YHrPVj)>CBgfGF9kmf{u5#r z;t-M)(h@Qgau*5{N*BrzDikUcsut=Nnk+P1Xra&wp-n<Ng!Ty?5jr7sR_Kb*9ihiU zFNNL-eHHpC^iP;om|Iv-SX5X_SYB95*ihI(*k3qYI88W5xLUYNcxJuu9N`7RON2KG z9}qq#d|mi~@C)I0!rz7eim-_AiU^BHh{%g*i0Fz~iMWe|h{TKJh?Iy_i`0uWi?oaM ziA)ulB{E-RiO2?#JtD_NE{og{xhL{U<eSJpQ8rN?Q4vuYQ58`gQ6o_^Q5#W5Q8!U< z(NNJC(L~X7(IU}W(GJl`qEd53SBP#B-6pzQ^nmD5(Nm(DT;Ek>e}$;Z@=a%qVH6RZ z$0hUg0DBOZoD8dj9oP5iveT>C85Qb(h<x8BEAyMdhwJB*KPG2oxkVMZxPKq`-SNBQ z_kr)KvU1-`G-SPGSIMs8lH+FkZv0*JyXbdgdG6oFzeRtG{x+89uB@%C<Q7xl68&!S zU5ZQQ$AL7ie<2gNWY`@h$bL6r7yh+MR{n<w`}b+G!hiluVG+LdTZB#c&vy%1nI8xA z>bZV}B+AOLJA6-;{Vu}J_rvD*o9}P_*l@G!$#Sz9%5u-+`W*stHMg;>9Cu{`7q^A% z?+|uwD_MDNPmq&CTxEYu`5ofP^?k}|QAaLsHg{Qh?>Mg0Y}^U5>$u%z<$s67adC^< z%l?=mW-t4_o=Y@L_PeR9+;<TT*~;45$rse6+&pEu*|KH1ZMc44(c}6ak|_KAN-P(* zG1qSqZCUPhD^{%IR^$2|qQb?!E^kE!w+oj%H@gEDcc$$3nX;>7<+#}lxwzSzxTepJ zWmFQ0m*o~!k>%FqlKI(SDJ#R)pd-sY`P>5edQUEHUoLs>s+yWA?h~?q(*C4<7v%aO z3xa=SSz9MgX`d`TW%74D*}Z#PWV!RXzK5_t3GOnkpd**Ko4LME<@zrATlBlJ+|Mhj zvfSSlzq3!~;)d#-JmtHdEcbP;GFdrpb`37>VA<~yY)84i%S3+{w0$dA|9#T;$*k{X z|Aff=R?y}Wom)GzQto#M8z}bVe}~+b<rdZ8;{Gk6og({MyPWIwYjy)JZSD}R-yyoP z-$U%Uxc^=ewU_-RB9<vDC%o+YX|7*a;$&rh`?KwC?7HnP{d)@AB-!r?Y~Nk~o@TAh zi?Pf3?koFi3fm>we>!Ya=g(YVwn%DG(~|aua=%u5=VM*dzj*m-DZbxde{cT1`S({4 z{oRr4``7QAzdLeqPXQ%JcGshU7v&~@)3B~TEGzTVfz3o#hV1~G3zt0K6<L`d3~b3< z5nM8C49wgIwrxAWeTD10NCy}9cU{@v?7tPcMRmEjEx5jmuvl<$XROHMo*^s8oh2*7 z&hR}%)J2wC)K8Y1JzJLhhsbvk?w?a+SQdz0<@){b_e0j-vy8d^h-k}xpT+k5;qQlg zWVzpg(&%?PS?=#;T=lZX&X*rg=i<H;bi^f^i+e%$0ohJjZZ$4%6)tXeT`um^{<7Tc z9$eg_pJjiuPv-i_#Vz{P^r50RmmK$F=gY=&+%LG~{)GGpnIrp+Oa4#DpO9wRUm`JF z->rW$eb@MH`$BG3)Z~b8so(DUzb$`T|K^kX&GLJ4yq13bH`)Gqb<-PWq->AhlzESX z`|;(=kGbPy|A{!rewXHw{}J*hWU}mcWf1E}$ObNME7|XQT%aT^qQ}K8!_vV0V`caE z$y`4~zE9@*&M7Oy-tb+d`@4wnEbi|n-@jaw{Vwud<cG+2PyvwhFRwdCx~8V1wN^g9 zDnBVsO6J#epF~CnH*MMPB093%*<3%atd-?HAsZRV+S=OQ)GXE9-!!pR?uYCj+3(M| zK<PT|M;hzIiTzV1OK}@JI~#Mmf9Luw{N}gA5{~c1)1M|XI@ZguGH|!cHa2uOmT+;i z*4MXGSAF-D<%a1JJ<Ii*?K_)4*Y5|vAAFzAwU_Hph_>vHkng8tzfb4-{^0wA7Fq7^ zvCFu)#ag+zMZXKEzyB@pTR>g?x4`!d+3y1H-+vd7<750TE6dCsC;KM^5=`G!eye~C zbmo%#&i0$lR~BRtNN|rVcUVF~SXjcg0|&N!e=a-ugLa_q_wMhp+`r?$OZ@iyp7fhj zKIXTzv%il^O=VThgd&da?(QzB(g|~`=lAq>_exJ!NM}@(&yoEuDJ##-Hl2(6`!+6l z?gB1(Zr1s-+^&IvuJYWXlhtOr)N@bn`0g+J`||h8tP@+B`<tXer3-iE%-XM9Gv~^4 zv+Hni|DN()g!}ts+218>AScPM{(hY6`vO^Swi~kYe?z`c<C6O!!uI`|EJ)2C5w^u# z@_$4?qTfrtACk>xkCm14wv;{1_I=&=s_!>s<+)j>*H=%flIH%-#pP4a_2-J{J6Uc~ z8`-_Ga@_UPXSd9e=Kd}6eG2#2nOxifTt7vAUkTvi7X3Y?hU@#3@5-{=tJ%KW$o{^< z_M2Z#?Ki*tzYuorAI*PMf2jUx=Ke0gwE|So%5h%|JnAaPEyLEped)-NOWfZ(z8~P; z#PwZ-o5hifI}yYX{Vpy0r#|gRn#6Y<uE<D<?;NtAG$R2@G#s*$dn3O~aQy%!9d34W zE|8O6U6%d1_s0s+-<Q<B-(dee`$r?|cOJIy`oGVxb}x#Z7b`b^`{Lc*Qr``~pJDyZ z!uBJPdx7lt8C=|%7V#-5@eOr#_5Bqb-(;)$X4cQ@>FMr~UfI85vWuSN<UBnyTN|#w zA>U18e}=?zaksT~b+pO<DfvBxwXv<Gp<YVnmqRYsgb6);6XbrBe4oNPb;6`+)1_os z4}9M*%bmuhJ)Jw1(WE|E_WKkuKTzf=`L4yqEea|fN@Ty6aV2qavv*8tpV&I_Z`98y ziJ~RtO&L<$lVuHMxij+eGQOK|aeo*2J_UxkMQyl#m;5ead&2d-<aY_XJ){~c`Ch`t z{e8+lS?)Q~lc)6dO_pCYb@rmAQrwSTd>7dJUA$fz6vMx(ey_VB``h@p`sMG!n(}Rv zn);i1IGUO|T3h6~Yi0jkVKb5ab){C8`zqJ(DZi&c@|x6lX)d|%^;~;ozl(5d$^NnV z{pR<ZKQ@1CzQ6hX=7$ZpF{m(+<IdsYJInPa?MIqF7k4+Pj6lKmA|Nieq3ri5IkMc7 zxbEG%XMs*~f8UZL`&^crEr?5w`@0ONb^_%z`9D{_D@>n|#;8><dPkPqO4deJp8LCi zEHk(03R&*&rl90<3PgMtNtON1Da-wP-R~-pPq~*&nX`DA)Uv9@MN{N{$6f!O@O}Od zMyX#@*#0p7PWV0lcbvT(pO($7H{bPTr%Y;TvN_{*3q*6XPnYHPR^j?C#rAvh?@8Qj zQ)Id0WMzIe)U$zNL|*1s!}mh24A~!3xItDjbBq4a`hM^Cy+2xiw0^_s@ArOafy6<y zJoi$r@9H35nS4JW`{&9$uHPoyto74dXU~zEGjaCx>2lnxb1RFc7D*QsHC9&2bAQ*C z{ocX-dy5tq_ji7^55M`jzlVHJvE<5={c}YHTv$)h<N9$WQTF?kSgt=;*tuCdCQt61 zEIn;n--IdhbEZz8-8b+16dx{${w0lz%Vu#*UzpCQRR6=~`<w4?e%Q$KIdaMTIsmFC zSsk*uxPMDI%AS$scI1Lrp4nX7%=KJ9MZR~-et#vqm+Q9(_jj}PqQBYGzq7M($IAXz z<o?di)y=);yN)dP_fT0m?z{{+kfN2}tz?;HI2goael(<W{T7k=#UR7Mz{bsX^ZOae z-l?5aTPI6SYHgg*B>lUDt){NAwq4%p_npa6hKi=UWo3Rje2<dlTe@iW;;Hge7qu;~ zn9E%^eNO9a>DhB8&X_LG{e22!_xCB>b#>k4GwQg7y1$D|Z_i+qk6ZcOIqJK)=68Nj z(?tU09d6Owx4D{{xo>k<YOZ|yb|ot~Reayf_5Fq{cir^z?)rMk*x35|?(*q%lHA|B zf5(20{oU=y#m)FVlZ!i@OO*Tj9<J{W+!JK^geEH*iPryhkYQQQy&#dR`+E@=D1C!+ zB&RGiZ+3&L$Zk**A?jz;#EJbA`zA?p|Bd<^)!N$L+R-A({aeIAmb++4_vR%_xM$4h zo?kbEo85(ryStu?Th!)G)OV)ud{W=}_Izi$bw}=&)t=u>zxkxNe{<^S{O0`4sq<>G ztC4^U`wA{?w(o@?OBuUCNiS8FTU++W6dhS^wo|g)-`%+Wg|PoNhPM2;-MGFdaB+Ws zBnxt`2uM9B!0Iy@rRu-i$?~!L?u|V8y_QRk`}dyjCBHkqZ^@S9UM>6m0C(;8>s&Lr ze=GiG=kA|4QJ#Csq)Ah_OQx62ua|3^I;~@x^fc~@%C`KeC6dKc7gaBn<`yj|DJhUs zV=E|Gv`n5`m+SWwV=itzuG5LK+@O{ksNu%_+vPW?N_FA>F(ocemizY>b{j74--_RD zxxOoMCvt&2#LZeccS++CY3>)Ya@^mqu+5#xtt$H~gk6)1o4t^WThx*Z)bM84m(}5t z<6dw}`g??IVQFb$Vd=u9->tvPewY1jy>ww|q1^QPEJkqw(eEYS_k-#pP}9ETkI3Xk zV{zN>Q?7x_)5oAd1cl2KaLjQlJ~Uk@E63d_ThGPq!}VQ+nR~9>_j*}wDLq;4?{%{B z+*4X7%1u9?#i(8Xd&(M6F%BuvzMFi%^4;Wz2smY$$gmywZo<qxd-lZX)8&6M|9HbX zWy<%0@3G%oq`14gySur+`*Hnn`!0XsyX>Lw3d}OBPTZZ7IwrMFYMIe8t7+zM`R^4H zzgKXBS`)uxzn|pdQ?QU>GydK$%gvrKziG)5IqvTw^}nY47GdWu{(cbbkq}T}3r~I! z1~;tw{d?v6Mp<t5--^FgezX5}0Y$-NE;;TW*5BWLfBVCl`}_LemES9Wujh{C`n`pF z9oJ$mZfmaJA>7|xzN>s!`R>9k`rSsB`?tV*_3r}QzrZbEk$O;jLxg=DH`~=S`R4N9 zPyRk5+R)k5+#t=pJ$-$Ae0q9({QC6m+t;t(F2@}*H)Kt`{11^oQ&@d=-$=PF&CQNc ze@K02>Hf~r`JF|ssj;U?I<brUyPxcDmfs@ZS=d*A{V4KXgt-wEVc(~G7pecA#l^k) z`<2z-ML;C?_rqK(xPO3JK{M*-cTb-#xpU|A>D}||XGn6_*L9aqub12zJH38>_l)V1 z+<&Zpzy1C8kM;KrT-=Rw=e5t5o<FaD>RkCBA>T{5*==NNYucI`<o>Mr<H*YWNAmai z-<7}D|2F&lTlKq{F1HNp0XFWYmim?^?$e;8`90&i1NRiUEqxRGlG->D+hRMqrMP8S zi$%Xn$a1T2$*>-<=HmXoip$^`cdzXCBeJ)+I~#i&CpJsAOyrjNd7zUEM5b|ZFIZ64 zDa$R@&&4hJf=dn*o!`r3xfyT#s$%|iocp(^3>y<8H)HooS!V9<SGeTrx!EdfYpUeA zMOScfi>~96<F0D0uCJHlo;;;*;zV$FLyo&bmYw^z!|x1kmm@)!xFH>+?;<%|+-!QX zU%2GCn_DMO?vX$9Lx*)*&(z7>?3v37*2;ZnU|YLv*;;w-?y1t>4cle8rDjf^I<rsi z`TTRIHr?mo){*_bhKsv?`s}H5CeP!T-}_y3<}4|0(ckQ@?!Vb8qNe7x%T;ox`TiDj z_{}Aql{;}pp*;5<S-wVDQEneDQSRRf|9n}$KVtiy@XME#TRNhoA~#b$BPl#yQ<_`U zs*ClHF#C+ECDn5qxaZEC`IW1-Ql6W&Wbs$oMT_LQe|LX>$@RUPyM^m}{SjI2->$!v ze=GlX<^Ep6roqLnE?ZeUb1pagZ~hNz-}&XZe_sJLvDSY-4@xtsvfrn0vwi3P@ZmeZ zJh#m622pPL*4FmsCaL1@s=rmZe{*XY{$}~j{KnurH@C5IyRmfHZ|~l|7J2UO?^Aw) zT3&u!-0|t_!6|zC`t<sE?(ZqGiVsb{a(_2r?EY@T&2B5p&F;v>%@)GNU02^-Hlv=K z?ZCE#FnR9pBA_}k_Io!ss0Ynmo-O~oioK?#rAChXkI0WHtW^t}mMxd!{yBvWR7`?8 zv~oHs0l#H`YfJss=4Sh@$;G`%*1KGY+f+f(<l(okj~;#fRu8Ijz=aQ}l;RK;VBlb2 z;1>POmj0cMje7y8u;>1++x~q<w-h&P@uD@gYo#GNrZ9r&DIi^Gzu7mianIzE=Wd_e zI#Hhcd)4=KAQy>nf1mO_1f+};T*Pt9$*>&A=Hh1W2en<cfEs|BiQ(JVCCRVMESbms zTP^pu=x?Uq`qJE@oAMW>MWv=hr9gFqG9;+U2gXylS!8}|{hlnta*Yin4|0AM7x(wA zvV5Rk6!&)#wsqVK${4#r-I*zq51MP#w=qp&W?*1sU@&E1uw-C3%)s!SfpIDW<8%hb znGB4x85rj>FwSRST*$z<m4R_P1LGeCCKCoG9|oqc49wCD%-#&l3mKSSGO(C3u!JzM z%wu4A&A@8Sz`B`%^)CaPCIj0F2Dax69P$ht{S2Iv44j$_oDmFM%nV#f3|vbXxIWf1 za0fGR_cCyQV&GZLz{}6T>(9V@g@G@dfv=K*Z#M(~QU-x22Eix>!B_^tr3^xS3_=ST zghd&In;Ar+8AM$eM6WQ2ZDA0f%pks>LHrSe1RsNh0)s>VgG3{P#8w80e+-gI43du+ zq~sW+j2NVLFi5vD$OJIRax=)LG04_2)XUCbkUhd6`-MSHj6qJGLC&2)E{;L2ltFG8 zgWL-Sc|`{KI0pG<1_dbwg+c~}4-AU742q8!l<XOl3K^7cGblSVC~sy^k!4V6WKem- zpz@nRRhU6_0)v_dgW6XH^-u;4Mg~o32F>LRS_ur=rVQHm8FXwJbb1(cPB7>)FzD8A zWY9BY(DP@|+sdH#lR;mKK|hnhfQ`XGp21)-gP}iz(Q5`{VFnW&2Gd#w(`gK5Obll3 z3}&Yp%&i&Bn;FcHF<2BcSg|o!r7~FeFxVI}*kmx+Ol7c@Vz52TV8_c~Ka;`!41<F) zgTo63$9e`QCI+Y349@cyT)G%s7csc)s%LP2#^B+^;IW#)<2Qq+2ZJ9!gI@=O-(d!S zRtEoQ2LEpi{y!M}e=+#~VF=j95X8q26wMH{gCS%RL#QP~7#~B}42G};3}L$%!uc2? z6c{2s7^1c@L`yM5Z(xWqW{COE5WAis&YU6cJVSgsLwqSid^1D*YKHjp3<)9(32F@W z3C0WwjtmJ`7!soy61y0ZDj1U47?QOalBYAI@G+#+F{GL>q^@O1Tfva_mm%GcA$>kW zMgT*`Z-z`KhRit(nV%T40vNLT7_#jcvad7bbTH(6VaT1tko$`vPmv+diy^O`A#WN( z-YSN?eGGZ`8S*6<^3@sg%^33Q8S>vV6x7Qx6qGX*G%ys*Vkp?kP#Dfon7~kYnW1Pt zL(wya;vR<LK8E5648;!_N{kpv{1{3eFqGbBD4WPoK98Y%FGGbcL&XAyN_B?HN`}h2 z3{~|E)r}0*`x$B&8EP^ZYECoM$}`llGt>n#)V*S;cVMXZVQ64wXqd#%@S34fouM(I zo}qCLL*o^OCJTn94u<9ghUUo(%{LjEe=xKNGqm(Gw7h0$oyyR<k)ic9Lz_24+iHfk z#|-T$4DI_EI;<Hw@)<ggFmy^XbmlU2`7m_dV(6a7&|}TebD5zxoT0CTp+AqIe+$C| z5rzqg3=`HeOnAgFQJrC;FT=zVhDk;YlYTJNPxWP(zL8-@B*RQrhM5}~W?3=JTEQ^8 zo?-SphS}#C=DcT^$Hp)(fnnZGhWVTf^CKDNFJqYhnPI^Jh6Vo^7XD#amcp=nD#MC+ zhLt7^D=QgRu`#UjVp!F}u)3RJjV!~O7>2b%4D0wA)^B6jV8O8ABf~~NhK*Sa8|N`> ze9o}(E5oMxnGBoF88%O3*nEd!%Oi%ZM;W$xGHh>V*#4DaM+L)94~Cul8FuL~?ABt~ z!^5y=2E$%UhP{Oh`#2f)EoV4zgW-@E!{Kg*qqz)6zcCzJ$8emJ;rJnj6I=`@+89on zGn`UqIQ5g^^jC&6&l%3XVmN2VaIS~p+&hNzml!U{FkCv%a9N_B;mTr$tJVxx4>Me| zV7OMna6N<JhAG3184NcA7;e5`xV4et_5_AIehhauGTg0UxWA0y!4HN<X$+6D86I0P zJke!%D#GwIkKyT6hG!}a&s-Uv=Q2Eh#PGt0;l*}_mmUnS>KI<@F}(iI@TQXC&0B`I z*BRb<FuY&N@F9ocV;sZBPYm^+9x!}f%<yF!!;f-?UkMEVBN-XaFfwgrWR_%P-o(hF z$H;P-k@XQHTOK3ZD@OKyM)p;V>@OHO^cXos89CoDaz!w5Enwtc$jIZz$ZN*PugECC z$0*RqC|JoTc!yEs0i&ojqv&f!aYjb*eT<T`8Kn#urIi__gBYdfGs-wH%GP%>$}M7) zKg*~P#;EX<Q8AQJv58UfE2EMgqtZr3<u*o@E=JWXM%4|BYO;)Kiy769GOE2{RC~v$ z_JL7dmr?y3qsBQ#O;<+EQ;b@B7`53LwbL23XEJKvXVl4O)Tv`MPGU4Z!)UUU(NvVt zREN>jiP1EI(KMOSbTgxw4x_n8J)^~8MvEVemJy6r1&r20jMmYNHgb$MUW_*Nj5d21 zZ5}b&S~A+zFxr<gI(%Yuyu;{h#psgC==zq?Z9SvAFQfZ$Mh`7UkLiqFg^b>Aj6O_^ zJ{^p{EsTE88U2?t2IMma+A;=(Fb2(F4Ay20z0MeRpD{e0F}#g2{61rZ9AkZiJ7dIb z#z+yy$is|LT#Ql0j8WSdqXihF*DyxkWQ<wQ7`u=$PM<NZf-ydfF@6POf*xZcBV(c; zW70y#<Rr%A8ph;ljLBOWlW#GmBr&FDFs7L^rtN1;mt{;}z?dPzn6Z~Ja}r~gHe<Fb zV~##!&Sl2j4~%&q84G+F3wAOV#y(^$;bbh?!C1PCv1~JAg(YL<V#ccdjMe8EYiby4 zgBff8G1f6K)-f^Gu`t%LG1hS~)^Rb`@i5l$G1dt%)(J7zi7?iQG1f^i)=4qe$uQQ* z{r%tlokfOK{yPifWH&nn0UxfvCNjSm*!X0AUFB1V;+kAyr^C*^LiV@FUD?Tt?JStS z&zk(ePRj20{{>~=^SS<*`~VG}{0^DN^~dCo2|IXb2r}dI!vr)R1)6*KVe-R--HVIw zZ+-XoD?bgs?_iv)Z@)n5_x~SLeu#X}=aTvDperlGa=?y@Zvo%;7%s-i&+IjoC&~U2 zVY?*z`^wKLY(IH^^03aIzi7n@DZT||jNi*-zh`kV`%E@)ka76VCHpgy{pXbLjjVsx ze&>?qQ|SIa<(J5JcG+Jd-={EF$o>qm<(kMP&$r+=sD(4-yU5Qe-`%-Z%C26^CG*Rn zb8@vqQN0V7-1l19jji!T^4~=^h!%oIJ=j1a-}3*id~f37TM)q|!_L6`OXRnR==TuW zxm>?nz8CzCo!lb-ljYAl*81tQTW3r2eUFq~Df^38bY=GR;(ob5T~~gW{)lFs*HpEz zL^^}(N9gYc)|Tlr+h$6yn7(-FcL%QTk+L!@g+Eq^P7ZgpltELmXxVoMuHXM7xYD_p z(<d)?w5ku|+Q=ox_g(WlFKAp>1k^eIKIMBP*AEfzOs-#3{!V$w^>2y{OT#0sbS|0S z4Uf3~i2R)Lkn4xYACXM1?;_t#L<?oVcgV{8IxvAthRxx-u&ly@vhV$}Kd1bdBHF-J zA<NRh^-JWB2#n45y;Jtbl<!*txPFGP=yS1x2bL$tIBC=`lKm?p!*XDeELZ|fU8C&x zO|t(&*q~|Qy8@TYZw48b0|8u^GCxCDLby=W@-3Jt!?J|&JFg5IAF~Ww`>#0BC5=le z=gR$-`7ZNR_OHrc)!#<DzVCi2`&;I>%y(n1@Be=P`wn7S%Pv_mb?#jG?=s(IerEj4 zV4XX6>XIc=e82zql`&41cb2M$iXfZ!dlv|P--R#^Ebx05$Yc~#cYWXWeb?_@-;u3> z8VF8usj@#ni4IIn5&83L%J=nLzd<9w&{@sjCH22c*df!Kph04``CM|Rv$?*Pd@uRF zPxiaWYFn;Vvhv7Afzq$Y1F%7Vu0SV7e_YAtf~y4$`h&*aeu#WOz$H@P!}U`{^n3en zmhUCM!@sM^1#h!zNDN8{o^EwGk>k6V=41gEHqINeppn?`H)JQvyC|h@;QF2@EB9CA z=M+)U@IPppL+-B#xNG|T8W%XrfJgVfiyV+;{yyb(Ajp$fzAJJ4zVe-)>j#MS2gLdn z@?DARU&wcUP!IdN5-4NcmgS3*{WayMNdD&eF2;=BiCn)xqjMtPMHs=|4^U<VO<4Vy z@^g!57uWYGKdvBABEL06qYLuezTf0(D_Fi;{+Guuk$)cSe@%X!IL|ftfu^X$L9Ty3 zY`>W<8$Oo%9>S%tpp3CX_WKm(^vV2gQVQC#-<NTHpYliK`zEgM#Xok6PMguWpl;gl z{O?{8KXmeBCwsZM)z6guHRUtc&nXXN6=i>zu<`vC`CjtF<h#g^E#FHRyT6zG*z#TE zhspO6=3gSeO1>}W`u*j1Ns8?EB(5JOuSJz*ziTci`+ntnNUAL3UKw^7=3lRWY!I#P zsj07#{@uY=Q!{;bk9<G-;_p|!U*P)g_x&>0;@?+T+u471|4A3!+_1T3@^?1@smolm zeuuDD_SDr@O8>TEtE`(jw?}@~_mJ-wCM&wDYh2*^zU2F5uKB;GuvYfe)>cXX3}M?i zdHV`*I=L*{DEqxg_It=q*~vNX(tZa(fp5q4`{plR(M63VvkRqvPx%qT_T5<aPsr~n z?B92Cfu<QHzO%{x2>B5*Z|;QUjf*AuvbcVje4hgHr-;R`FF(Fq;`;t2Pxkkh=@VlZ zMU<X%O`hC0agzLZ&~(>#FRtHTeq1r-Le?|+hr7CxDp&XSkl$Z!%YOgzJ%oM6^vTmF z$p8NIV}U8xg0f#%zK2|vooww9!BWVzglqD24+X352C~!oCQg<AvE};}*7?(>FIXh? zT|`V-_WNns?(b8CH~4UUUn={ZmFu_IZ&8WwlD`#y2jBV~DgC`tcJe<DZJqDDvfstO z3q+c{lo!76Tkf~qcSG49Au(LvPs@JK<PzQ>!}|P3iRhf#S>KP!P7e1}=G(xf%k?M3 znCnjnyYPi$lRG?Bn67e7Ugzmi-wf8c05s|dNs%JoMXrGYR)qP7$oDTwvfr<;C~|>` z3fVs)qFX?07$Ndk1X77`{k(Ec7Bst*&h_^S`*)FFS1{|4KmQk$$*>&w9>VxN7F4c= zFn_=DGkl8Z_Yn4vpj8szuV{bQ;>!LW!uGxEcii{5-(A1Ee#iZe``sn?J0$zOEZ>4C zP$@3L{Qb)JrLvi_u}hLRmB`8b=8NMxoy{e~@`-)Zq9t2)f+o4V<0h~7GGsKK{Lo87 z9A<0x_mJ;bKm*R8M9aK#vY59PhokI|EB><HT9ZAzjTyTp*LX`yu9jgrz}WqB3Uit) z-=F_r9w_57r%itCZNkf^Aj9fj&iHG}cULZuh$GV}uE}~nT8s&kBYhM=oN6DddSlrs zpy@8T@9Vzve)s;q>icm}G2H!K^t<qPk?$A4!x*qaK<K2b@ckd(mvM=H-^a!FON0eP zeb0h$|4sQPEc!$EhsYmc_CF#&CyRbx#`Q;p{fCGcgz;D8_Y~2;B7a4Gim-hzlLZ^` zeM-Q05z*fwpmiz=65mDGeu}U_coPf~x&Da!6=4%ru=p<WLxc@v@nP8?B5Z%Bd|%21 zHRtD)pCT|b`4%iFTUaJEIp0^2MY#U|fyonn<?CCy8XCJBO1P#^>7FM2vPpK@RPfkb zlkD^<-{;Ae@8McFzk9y)cOj_EDFiLNfPn$3x{*sb@<79)dEE=7zZ*7kErMui1nFHM z{apykc-hDWQ4-iLo1N30Q^F<OAi{89^{Vbw(x=*GA?^@%vuBuW@2AY0$Hn(uGmi@t zIvHG(^Zl&3ZMgUp61jefe7`I^d7a<QkQ-bUzo*>b;`>vtB*XfWvAa>0S%#%YhP9zu zR^hkEcW<umWwMN*0p0JJ;7DQynKk8?$nPoa|3rR@i2fA$De~I{w4mp^$sZB6?^C>Q za!o$xFRL++>(3T%b|n)NCHX%laiCdHlkbXL-%Y@k8{c=$1+t9YGVBe^llcQYjALcx z|B0}Fx0IDj=VJ4bmH#F3{jTia5SiZ%+FT01Mc(K<_!0P>Tc~@btnh}PnZHs+g$pJ( z2TWoT-Y{7-P+#IV^UI&6Z-4CmB=o)b`^6v0->?6k{Qar$kI6xSW&&Tj7IlN*ft~{g zcvOXdOr8-K=Jh2mwkJ;dcjND-s`lSa^8FU9!avrue^+mrmB+C-rt@Dwsg%bA<%|G1 z-$Ji0@9Iun3BJGeiudP~33dOPBAoDBh-Jd#N3)(t3on>#6ciOGoKVExXZ<_xUuK<q zOGZOlNuGa>TeEjLhwy?bGgiI@zxluS|C;i>|F`aUk>3K}1%<l5bN`U|KJDl9?;^tM zWY{iz7ZJ7oHRU$j_L<Aq703&pn|wUTP(*m$x@EP?<E3SOHp;O4|GrX|LwMd~j$j?$ z)m-1#c6?vk^?j|J@Vd$N!Quu%T$|Q?FOX$TEhw3iEd6^Yo3l%g^Y@*ye2H8#ERVj6 zGJ-6e`+Xww9U0d8?<-{|*9EIHt>&7%JXlX6h->5e?*+1Tm1VW1J(5#?&;7li_4nNG zJ14&lj;v3T{Uh?-Tvp~cgQaYvtd8vWDInf221{8VE*+R$gQaYRYz!Av?LQGq*<T_c zr9Y;KR&s&${}r*6{V4)c@?#2%E~xznF%H6m83*D0h8y=|iYJSU?2johf)BJj2h_e{ z{yyb<iRgDOt{+!eAmm(G&>SYKgXmn@A6Ho3K?uGq*&iamN<_oCzF(cp5h_=2E1S;s zJ0wCjOZNMhpCO`<bsJm0Z(*I-+SJ!9?Jg_-=SnWu_o=dS-@&32`=(5ml3`u&rzApl z!Gf~yUb3K-MN6v}l}wfEYi{aomaeL9t*e*+qy9&Y^}8jzCfDDPX0E?T(|bQdRAs+g zvHwv2qt03f>J=Q6<@>I=PWF4quaNKH7W+!s?;^}UMSg`8$o`u0M?@6VgZeY&&y?RL z-%WmB`F(};cSt%H`|IyZx#rBOsgjrZ?ZCcV_Io?1fAswU*LRa_(L&j7&{Du8P`?S* zkOxihe*Z6~@cpptH@0WbzSsY*XZ<mmHO!4!^n1o+-!OR@8&LnNLiRhm?Drd7%s;36 z63GWGe)ygw`;=>PPnfb{7D)89s2i93zbouNr~KF=s=x*6u}%41UnbQ3y`JmW6yX5j z37|fksF$pq@Pf%V!qiy;zL&{PW)9a-O^CG4(N&WY4*0$Pd*$!S@9V!?aLMsO>ebi3 zOdy`0Y#koYWG_2;PPjUw_v9ntmOK@*r?|eS|2+6zggJdOdxQc=Rx?6gI8>HL>Gx!B z+3$@%+eN=ia(%xkJ2^TcS!x*<E2xPqQX%_Y#H;)}r!0sed_#Cg`s8yFijM5Y&d%Sb za0%ZqcE0>r{^u3;5?Q&QSJ-CF>TI7S-__UG)h9g}w9szPp2?H@rglz~?3~&%rKz7| zPFnKhWa+<GyeG>?I@f>S&-HW4_bDG`|A5w1iLigy<of<f7QE&Qv;w19_PfX*kv}5e zMc9tWf_hiKMc56wK+Cwk*K<KuaebfieF~_}@mu8kGOphuY{x)3Y03sr9DMHsHF21K zrGsXr7J`~=-=nzr7C?n%*e-u}YLfjK^*xGfA=l5S?<`yj-}_|0^U1KWG0U(8e}~F} zX0h*ZN&bxb8^yY$X#SLSQed^e|NoYeVH04SEEJ_tA0_L<CBy0vC;Mm0MXn!H*sMUs zt_*7fOdy5}s^Xq3$c}CqHn#88Tz{j!N6G$-`Wf|Il1mb_`h^v;`sHubcNSTYGkrk4 zPpG;@AmuEwf9t>Z$%2B6dB<;d(M6!<|M#eRS-#)3-(SkgurV>u{BcmUsAx+0I_dAV zvg@YIUs5CwGP;;c@@J#WZ(h+;pp_gopn6GFhRuiZyWXz_%rY#KWmqnQBLBD5cPoiv zuD?}(t0eAl{RB}<iZ*vIS@Inu@m-SZ&+;G3C4Mabv7D9fPd(U#r@t1|Gyi)2QyrxL zZ`IE#iDItbR==$z?r{BB{%5(wpXGm+-{F${ZuQ%064%eFpH-}&=KqynBHyntc7F%c z%%H|vDtOHeTMF0rdM@_wD?nbK!WIKsf5HA;k4yfy2>bUdr$rUGBDhdA{hh*=p_#X0 zo&0x^@3Xn!s-k3NSZaS5iB`2#)z`}z8nV{cSAB2gntV0dQQ#0)OZ{~D@1DOszk}e5 z$!amWA_`o;MSQq~y6<xdFOXqn`MK@;Ij+euF{*)vT;I!nm;KQBq5a*E>zN_z^!kZa zRZ`z4{5IRcC4Awn>;l>EQ%?U3`99?`Xc)vq^a<DZ5ccn@K#Om`Px)yg`dddi&^|#f zrXVk>M5>$p3D@MKF+TMQTnl8smwdnSz2v*d_mb}>mt}uV`EDX=!}TXbkL$ZhqU`JM zSF|B4&>Gu6Q(m*X$^JHB|1I)M1Z0H?*a{Q&pCW%uL>0Kc-{4{dP1Z5Xu&n(tMKs~J z%5S#cY`;|!IKDIX%l>9$|E;nOv`R4Hy9&p5#_tR2Wq&iWZTqhBo$Wi@ca?1%zZq*} zzcaFbS4jY^_S^Pbh2uA)rR;Y`w(rlsZ{+%|%og=M`?u|P+uzxHIKC_Q%l=ko|D7H6 z+xE9@)bDJL-^!M<-<8?+{LcPv``h+=b`-~N<r>-V%Ix2>_k6egZoB7uHph467_KE; zzwZ8s1+8tX|1JAnRsy_cL0VSwx7v5L?>bzPzhy!2yDXTk_FL^chpgmxu-I=|FdHN$ z!3EYP`&;(A1lM=9?`o{yv%h<bD$6e6l3|(rGaZx+RX>6f;qu?hC4Q@aS1;z0R8<8f z!Ck+1P2&1t^}~u);Jc!QsIn}mANuR&_uE{|lPAPQh)?AD{`QBR9G?uUcRAx}8P)^L z;Ew*}A94EnF|t{UO5}dZ|5f<DTK3v?*2Rlvu30O!wsuYNBDvo?zwcuG8NzmX$MN&> z5Z#jl<24u$POgeq36GJ@T3jr5&4IOK@#^n7vWphW|CIkJ&$@W=j5TYeK&^a-a>fHP zY+}qZY~DXkihj@F`U{pX&YF=aotafvTq6Hh{;xc1@%I?nY=}w4i@wTEeiyG)|5bMJ zV)<*=SQjmxxf*1cgAD6wxM4p-K!!P7V_j67H4|i1ZApndXb^_=X9#ql5mck@`o4>G zQ3*^%vAm-L*s83>5bv^<Ecyy{w8D2A@JNLWn*(F__bldmZcu}_TlUYCA5->D?oRNI zI41jJ$`4TK8zuX*{YOcw?9YWizjVp+{brY8ea1LLhV>cq&nZ8ybjki~|MjI+mJgJ9 zUjH-!WuBi?z6+wQuKPZb3$$KKOICg|OJXQzH+VpCG8g0I$V6+VXxYir615qFCLc=F z*7%+wEC0twi|h9l6|UEy(a>L4>_ENkXf9B{;+M$x`<<Yk=B3GkNfP4Uw{gv#G;{h4 z`R|jzSAVbguJQew^mje3$xcay3cvr)l>M$*_Pw7go$I%WC}g1+WGG1nv{-EN=_E({ z?(ZVMSiY+;{s{T5!n{)U#}(1vbAH?ZUh&)K_f_fNSAVbg?(==lZ+rPy-_^g1eHZ#} zaGN99z0B4|>iZhm@2#?vEt3_PoMb0QCwuEGDErj{GwH|v@3Er4U2gqW|1Pck-4sLj z<h{v~AbmHIFDWemh1_?MPEfI7Dq2}v^ZlqSTV?I6x$@tG*yqli^_6S#sgy`DA1<~X zTNiIyB)@1=&+gJq9DKk3e}5@E**w*q@#^IIRCUIwlb5Hu*3XpvzUB1yE2qD2fvj;} zeR?%$6!Y|VlkXxBw#au8=I@7PMZfoQofiAv&Gpyh`xnvgSH5rgeTDtB*!L^nul&Bk z{@3J(2uQ_`kiR9OAVncR!8C;53)ciu`}50MF7HmR?_18*%bxz8&h>i>`_GcUa8n_M zb%U(y<@!D4M+r<dOz{tq(^q7Fi@atll=a>&`$y#UcPTFK?Xtf`*u!PhxsJ;&0IeAX z6^fm*KlOfX7X7ZI_FMekZ#U`RB_>?oOW3|^pZ?AJoA;>v=E*zLxEZHSKANV&wu|eR z2+Op|@6!|*O(qMZt2yifr=ag%vY-*aZ+}$3Z~D{xr}>X6Xi*np#j{)t=8ESD#S5wz z_JUVCr+}(|P<G_w`tAKYvne6rcjlDu-g4hX*uV2}{n7b;{r8?9fj<JjU;n=6hmPF8 zDL<#g$$kfQp|xedZ{qqj<%b9|pKrl}??<`5CyFjv(!Hf<$=|A<l@i5VlaHm#r%&Sg zZuQ-gm2W}z_oG}tbD%1ITYa~bDCPoH#S)+zyqHV!x7BaUqN47kB}I}ytNvDktL92p z(3tlwP(3z<xlwkt=%kLx?GxpGn|u#poz&Xc-z5F#$`6t6A#7HY12dE*d}Y6f{4rts zZNgsEma;+aS4cM3Pmv!cag%#8v=|*GZ_iMvR{#w`WXgg%m@>Z^zE2S@_$eX=8~+6D zTljvB>ldnsobZZ?T=JlSojB;WiO$;|sM{v0bK)FwzWd4|Z<|;owYYgv+ak!W3E_;@ z{Y#dwmQvw^jJvOt{blk!UG}fZ5?SaX8BmMkne2B>P;My9bY@ML{j+7s<eix^_3Yr5 z2lLMmkP`6vPn729zbW4(!5ay%v_L_lH!)lbeoO%^hm&Dv_$d2t%6Ad=BeLK%Yw(uo z_m$tRWWP^2Aj=Hu<ct2E@@LBTDQrJPeoYbmJ!P_A7MBs~>e0UtnZFQK-<NXzo+9(R z;rkTuI4Y<SwS~EHa%I-!xS#&tXME57Uc)HED)_zm71xgyJ7m8HeAkd&uuk^mk8Ll% zi=6$wmFqNUI^)L_a94r(m&wl%QFU3+48r#fvL&*<Tyoz_ev3tN{hRXVlIV94A5fF( zkI0WpqK_trWNQR{p9bm=vPE;rgW_|7tPd9(Xe@mJC|Udz`5wa9{XGOkGylBuYl`S% zuDtw7(+lOM7f#C0lUmHBX!>xW?26?r^-JaIm$oclA@zMN*W`2Afz02nWhblU$lE1y zwU_NI0}qRofg186LZG2$VY^=<KSlCoe@^)`MbtGY(8V?I$ffTdT)(EUz<JlWgePsT z$kAo2|3059l<WI$E@8X5iSL`{%Y9!cE5p*m@_jy+uu~|PaMSnQTo4IizwZlWK~pN} zTtBCXeqaCl{P)T~lHY4&<u-#hV*Q>XS}gnB?B(b0D&Nhe_&`fvy+KP~e~5g)E&KiW zcfs!|-$lNAeizaEE@J#$L^yncaQK4nx3pzN4Y}lmryuyfjjK#nz5-M|q~#mNbjd9! zo*9!ZC7eIudmL9^Wp71=)MV~FIcDMT36nMR)cKxpfu!VqbA9LhEhjfQC{L??`hnaO zcf*uIj^E2bLH<|d`vlqVTiArd7c9S%+qgnL_PfM)iNx<p(!${rUa+la`)<#*Wc!T0 zd!-h2EN)#Ww|e)SBS)q9X3D0@c7F%C{kH7)W8Ve8r+ydt&ih@&9qx4h1H#ukzEAme z1?+Tln9~_$CqK<ItQYn_@Ka<p`{C#7=N**a_?_uH+q&;u(%(hcg#8zMXTBQwn^Ruc ze?moPMMtIF){;d*u~Nd<JBnM2>&xWUX3tBGk;<-(DJzx}_Mfn;Yq?>X)OV3CQDOfD zN2`ux@0Odmuy64qDPjKud+YWVZI|nv*)waV)akO*DSPE6unTWL@ZEoMXTB`Au>XN* zE_rYOOkS67tb4uVyWDrK@0{P|<oW*o2Q3q2?EZO$`R5fG)(4{9>=|6F-Ryh|WLOzM z6Ofac3%nTTPWCGh3ki|sQ}}*@i}|O>YtaoUZAEgwx3EEaupyux?Ds2dJL=9a59gBq zeFb&A0V*T^%jCzF*<7G5Oy5thm)~2yPh*_Cq@c<Klukk8c_z$1N`9J%e%~M~_akHm zC_nuPVgG6J`-|vzi{Ap@4Sq|={g}c&kqcA^P7W-TU^JebRVZH{!v*TVSIB<f&Xvyf z;|pjG<jQw@*`Fb723&tbyk&og$gnH`btfGlg^$Z`m%j>s6`Z+1?R8(-p9((}zPtQ( z`Mw0S01i|RF{Xo-@yf6)_$e}*>-(4QUqm&zeqUjWo8g|HwrRo=`R`lUzL#;y{|#ZU zmzDdi1d*A~CI9`3sw|(v0@?4Gvfy&!3TV3MyNHOzWRW6E5iPFYTR;`=pDWvCe{W$2 z6&v!C<BL?-RJeX#vF4iGS)^3|ec`DWvwuc|#y|9zeoy#58MHi@`N!<<PeeO9T6^01 z+xxpF_V)GlP3)S`-rwHS+S$R;&7QwSw6CqZwWE`xo4up6t+#zbM}POkzTW=c37viI z97&r+yE@vt+k4u3JNtV3diwgi`?~r&d)vD}8Wxm@c67A$cJy`hch&dz_4W2n=;~|l z@91vp1W7-15bbPl>ul|9?QNgX)8E@ap?6~E#LoV<u6B-Y_N^VF?QQL?t!@1vFmcj^ z_I9~$_Dz#S+uPe(yX0EC+WNZsyZZb4C-zM2nb_F_((_a7`$f^;Wxv&bhy0Frmn&>* znmuz)&!O{DyQ}I~RnC_C&Nkya&$jQ8QiscTWUZH*Fk|li{7W1OGc-NBrKTq(Oo*3` zPiU)8lJC|$n@}g0?=m-hLLEm|dU;&1)bEJzJn`Sz>f~zb>Pp(O^6DH);%;%|?}_a1 zmWte&-7UYiW>G-5)JpyDN~^l1dJ?*m>!oU&stYH`{f<BXTm8Fz$oDd-?-pF&!J|XJ z*UNpM@}oonJm?Ia#yY)I_K!WAV}VPk1*l%Na5;FjK>m+CbW&^bxne~Z&_<O%A>U_% z_K{6thwMlIrFqfcqTl6yGkzDBVcGEgu<Um^!|x*BIc0wfeiu>vE+WIS^Sg+}cM;)9 z3c^MTlO;-&`2!Vls~0Vo-@b6`PATCD3nqJ%$cncqeCPho8vUJn)21n#r28jyclFB) zPjZ-CRiex^Nn!H55?P%thu_R9X-TT`!jlwia?H})!#RF8{B}3_eeU-LDd9E+%Oy5e zv89PIQo?}>lOL9-uzbJ6l|GrHbeR)43;p^6n$!X%Z*V5M!uEa3Zxc~XuI|5A*wtiF zcZc%*ssG-?^<4y%X_zZyzb~Eqrc|1>TDFv{aWYR?GxLHn#>xF<%Q=5?f8X={;rA7c zlg-NQEevH?Z^`^p|L!Q%{e9K<hSNW7zONGAfzpSO7q0mI{CmOgE#Hr-%57?yxp@A( zuH(}W#WSkP?wP-K;e3wY_Va$bpZ&f|>i){}dk)Gq&o8{W^()8e=`0D1iuIu@-OZ(b z@BZ!K_1nHeZh7(ISZ9?kiz2D=nZ=tX$$dZi@q5AdE#IF@3GdL7mHSip@3ClSJ1D8P z_H|6??eFcI&@-`fVn<(FXFJELOwsoCmfp4rZ4<jD_4oDnPwJe|HlekrrM-h=Wt?bx zM{{4>q_#=jlPB~|=%3ut-!h@4yS}-tonvdFXnR{zPs^m1iJem>^!HDg(lx1NVry?x zdppOGBGJy)rjF*mrry>`y%T#UPU)N6Ii+J_OJ^&`sW#EpmbNCj#;%qLlcXk2nlMFf zO3&oB7OA6CMSEIXTbnwYI-C2uCU#AlIB`nvl%C1$J*^y|rW&Zp6~g#)%J-1^A5*@E zFt3#T6(ahbUsmpS$X}E5vOlh{hj3|s4`KVr^?Qo8?CBV;@0#C*xPDDJ#r1tkBWSo+ zhV8+3LGaRx-wxmr+X>*|Tq)3&?%yJ!ptTt3T)#_Xel~nB`Q8p1E*JgYF8kxlO4&bO z*q6)7{8IQXA_{7Li2Vk&$bO56rpo>iVdMLL2ectHq+qgZ#RkXkEZ<GOvwRl;&ESCg zq%Ge~UPDBfe=YfbMf7_vc)T}P_B+dOleM71<4&&cpjk_n1E6ls752$0mEL+2xIn%Y zmR;~m`a3V<cW=;w77@`OBA}kR$?uTgSALiL5t05=lE(ErWCGXZnU(tN6S+Y9!&gnd zSg9fPJ)0|4_PfaK+uuXJZ}~1FeD;^hZxhk)b+Wf63s$+<6m!W5uLTv)wS9FH>g9jW zP5Ev7JMDLfl<?U<<-Z+%m;BcFEhq<Sfy?~}VH3Xp-BR{@2iK2~<FZk*n<rE;F*=EY zr=@<Hd>2^&Y9|PP-}_xeIDf<UTe70U>o54p3YTw4=lXF))GZ*uP44%7Hc0E{dmNW= z{sw64=0vrAnsE7s2iLN-<$sH4d-+KHxbpo8*LPSO=MNX#tSytaZI}9P`&;zUZ(}*( z^%s6iCH%J63zW}|$xKR5;>gN#H;tD5y#>_#5zgNLZUB7W!glIiTImV-)X!gYzOzVw zx96JdUnA-*D*Ju!cVRtH!$vguy9mhXps7#cJPR4tgzqAv!s{Y_JO8%(E%G~B`Zu%F zp6^`p!g)L9^~~#=E0?&a<j78`#S<4#Umz!(Z!vjwjSN$n#pDw;+T1rmz65Q`&$pQT zzs4mzZ%1csS52*y_X6+Dk#fT8BD&gGe+PGcms0-jBmJG}%jyju<%RPs7M^&w;gt0E zE#UU?Ow7PklNElR&?xJDlk4XMQQ_wSlRInmjGsODE^<cul=P1)?B|Z3I4>vsKH<W# z05|#H_t}NNCoEXJYvyX{U7IU1SIbXduz2EPX^_4rwYtp0-vcHK)>#L?Pgs-p&^=n} z_ZD{HXAi#5l$HA_0&>9jE$pW@yjyreZsX@wU%#_}+JxA`N=;U{9}=s-nWLP3gPO4` zCim1SF|FS)d3~LcoACJ!KSi?Hg!>DAJAW7XZTCA`>NjXb%XO|RT*A{=fW~Qs`!{@_ z@^^yhcc$zwX&>cEPo%v&CG~v^_*8@GEB=bGMRQHosJE`~FZgcDzNvrb%(e44gwJp2 zoH?s&ru6C43pVeSpU}lByne&?;I7Z#rM~+}@%<LL&n49Tz5mzD?^A?58fCwya{cLI z`yTi^kX3lc^!ka_RZ_wp->1kL7<^yF_50uVe+JK<$Ub}a{onV0-$l7tr`J!au9B*1 z0qqj`4bt?Zi%qzG$M+I0&~P%;@F~A$e(x8KkYQ#0Df0asmx00Wf4~2+3h$_|uWqf9 z7LKT@o;bZ;-ryN){qz>luEj~9U5noXzX!5{oU(%JM;F`g!0&-zdyT*=rJfmphKj4J zq`voy3GV=n_kyed4=_)VVXbHRDGIiSwZ6Xkdn*@6GwYu&_7tukUF;xNes7U|A`9}u zvuEE$!3M&No6xm`OZdfG(BLIFNWex0fX1wazn|j*x!b_tdy6b6Ai&Ns<N^oPk1kNK zv4h<FU6iXHZdwoAG`a5`hrX+R7w(+$U3S)Yp;>e1&6&0Hd*E-A?~HmgyO(~O)3b2x zcQv8z@4LUduDNx$Y2mKrOQ-CfKY4%I{O=r7gzu`aZ9u62AzNe-gLuOC)z>zBU-oCN z=(I@!bEnK~pVl#@y{?Hv_^tZdhRKf`YFNQ$Opb5VVFinA?ryASWVx$;w_!3*vkS{z z?R^cCgPL{4?zXRMnAX@+THaIJQ$4S)hC}$S``U)d6PtBdKvI+UH_NjM-xXiiF!^4y z5evxH$wDn<P}4hFTJ(R{%dllLE|6i%Wd0#?I$8Fo#19M6-{Sj~zJz}l|7-i#RsuBG z3K{|Z`kUeV>dB_9CQ{PhdAPm@ez*V5|K07B{Iu26x2%!kTX0gAapmN?R<ZhM&=l4b zQP5%s&?JP&-z%akxqePzff9Vb|Nj<A=lb5yCBs@R!*Ub4Y)Ixe0~=_yP~)FQi9c2B z(5=R-b<=0J9+drA#r~u5M<Z<c(1HbJ-@(f<L8~%1af!(M6#2eX_PfXr(1y5xpCW%n zME{!nHgS-Z`+emy*LRb@CVxu4H*x))@}orb_ml;)Y(J;`_##>;`}@md+23E-leqqf z)N`@(MajyrGXE+U1#RvJEw5}jDElKMM|N^Vn|?BA8PE4{F7R%+@4vzD`*g0#dHEAc z8YPPxt4j){AcqaGeP;!oHX!jG41RwH?R5mN6w;CX5yJkRl?x;w@%#Jt@2q?a!0@}~ z7tq-X%#-i8WphPx{S5gdA{xfEadJqzm1QIspTcjJ@1eg#W!Mt_nS2lZZTdX~)F2R= z{XOJ&2t+XWx6$`tVJ8ORCI%VS4WMfGF4yF>?JBHZT*873ldrbBayl{mPWhhlJy3SC zQimJ2PQ#&4r<Hcn!ZHn$^E-^{7c$tda5@+&_dV%%GHb}eE4eqMg>@RPUs-YRp!|3B z?`o_E53IU+T?#ZL_7dz=8TJOy_@>uy;qN-X?KaCT-8^g8zVBVK-hm}4@p9k&?S6ZI z7yq3l{gkV=r>3V?{<n^c;&1)m?x0~`xnEb<Hgd`HDS(<OjNh|lzw3a8RApGdKNkJd z{c|nr59QPBmt_BdP6s*tN15$U_usXwzquU_Xnj|du8^JV(5a#KTjaY*L)rH)-%Y^# z9Kl;Jg?hdl{|NbR+;jRgsCstz74lO=bT4R+_~iP|BBo}B$)7s4n1%frCd+hrGYc<f zn4I3F%Or4M^3<-rgzvnd@eELN=Q}58xuJ(_s;uz44Ki#CzAxqaW5SjaSyhrE|NRcT z@b`cakU*GYPFkA$ADurstZ8XEj$u-N!7EgR-);D@<@c8Fil8P9dkEK`Ex$8Gh2LG6 zT;8p0<i+*F<cG)~6L#Tu8-9xX`yvWj-txnQP58S3M2a1hHw3;5{}THy`n~VF0ORDn z-40CGWhejd4gpc2J$kmF1;sx^Km)p<40a8)sOzlk4-v5+B0s165n=x>BKE_CJ%sD; z70~MF-y)zu{sVT}k1KXullSyU*RSRJ9Rg{FeGh@O!hVWmiyp|mlDbju_nPl(SU09R ztqha?XYySPG?i<|#RnR*{q;pbw)+~_cL7<E2R>ZiLqsdNeu}U_3BCp0*SJoXcgm*9 z7JwF0K+i8p=lTPhIQagY%LLT;1Rca8^Q*q$*OvlWEK)y1*2*F)<y-K3%6G=^>ffhm zzWpxpZpHU0^S(2F7kMYN`s=*!+!^1+esg{oR{0|A)$l{mT=YWxevjF5ufDUhKK}ji zx6W5~;e!eX*o7A=tX|W*TDprpAtfs!J$7lZ#N-XV!V<y<72<ZBE;}Xt`Qgd$O!B=y z*+rGugqaj3U+=XPe90yAtKrvmQDLTr-wbTR0s@oe`(!*t95lW^W(N(<zvKcrRaihk z=C{N5iL$>#*sEsN%mwX`V-x0Ru$2WZVg34J)pwDfD&JW;Wo6hN{1g$D`RQN|K8?m; zb7>zJqipy0j^7;LIezVZY52nQvC#L7?>l~$eP^-!Cfq9=I=Q<)kg;#_-TolPrIQUN z<S+?OojhlPw7qcX^p08GbGtZXSTD%@su#5Z&3dy5_u7MYSj(^;h~)w=RQSFFyo(yN zEcgK^ftVC={SaZ9$~F1f1WnZ`Tz{tgoH7L@VgPE3K~@bOs0GFKcVSrtH5s;4#>sjU z)mW;etEwl5PgJZw#5HmHba@$8HW^kn*6GtH&YmMB^K0k#pzl1g-zWT*5cU5a;r~10 zcLaz&{yXCM_lWNi$60?C{W1H_Bm1}Pr_pyFS-u6|g+S*BhzNmNqTS#Gd{0*R`}Zu_ z-CUqOkfJNu`zOxo>y!H){ym(vuW#1Ge(CQ<Y{Kt<*H2;pCGuy=ZZ6QcT%7E`DaKsC zLw=jEr$?6;70C;K{~h%^iZvu;s*Q`(_bx8Sn^X77pJszL<3*s1y*C@L%7gmtr+*rL zxBf2veHvr;_ulWC-!;Ea_`dgh!1oD|8BQ(u#M|%l-vfUy`o8!#_vE-qQ)I!dj2k~S zzgvD60}beCeAoEi^L^KMzwc9CaZP5OJgNS>hU^ce@0Q;szWXzFf4BUu`n~xF%Xh)= zcfVUQ|I+-)E&4nExB72`--W+3f7^o&6|n#A@ICX>qg3B>a>{C~%kv^vIZFSQQ25R8 zTk5yex8DrkCBEw%`ObKFvi$Gd?-Fd?-~X}qRrHk?Nqv7C3)*eT^quK9(|0KRUC;EL z@i!Cucgr8E6=Z*`)cd~Z`-Sfley4p;`~K_uBBAc@t7X{SzNZP_kzt+tlUa0k+lH16 za(_L#*?v#>VZyFZ^_%f`>hEpRzx#eCd`||gCHW4b`@So`@(VvG|2_J9Fza`o-y**) zFaM5`7T)tm^Y@+Kcm8Pp(foer_njY_KOC*Uul>IFhq?UE@89`Ef2V#={hjtZ^>^y; zwC}0EQ@^KuPyL?C#`j&b`@6{N?<Syi&aXksvU_AN9RVkXGTF%yQ~l~=W#wglH?Z|{ zfd&VCK%>T>7?k@nh5ft8Ptf^MKN*ZcI}NmD>$zgM{?>oL^5e>PYp$PHN@e-})`N%W zthv5l5iOGa_a8Kr!Fc+|70}wJE23AqK!+!>f{zUXA7uhsnf!eTOkMYnE6hKx)Ps+@ z03Elqm+PMh`!Vpc<qhB!jTN$>$&BwJKS662MJ&FXh%M*(_2s9C%<l&FpHo(^<@)ob zLKal6vw_Bc4v2y_bR0+nb$Ta2^VZ*b8CHk#@77#DLP}+Sh_DpN{;l^0J0B##2a*;7 z%l`zqe*w6e<Rv?~W||#S6W8QD)4WxGnth+~+xokT(7f;We!lyDSGeH&$6v~#zwiAk z{(g^bfefplsPKl#O4GHug$sVW*=o2a$O~_n95P)e?E7iZwC@z*4Z;_;atUwv&I(#K zASZE1R`|mAGhD(Oe!F~E`<|ory;AynqAY0RO1%u*VaCleY=@a;*j|f$&*1v~|NDRF z1bS*tbwPpr_gAu$&rGiePgw-bP&TdSVl61B&PkQZoC#_$e*gc6ffYJs{_Q&hc*Z=D zt3vj>JJ<JRT+XuJLw<xf%T8W0!<5fi7POkyS@uWBZ;;UQ85U-sLEvAYO*6klWLO%e z%6^B=ILdXi|7rfC`g_ywZ++keb5p=`;oG@>hJ0VjHF?HNYxNpg`OUJhNeua)r(}NT zi^69wie>r!{{KB?r7Yv*uQLnle_R12!VvHf#`iK=k%D@z?_0iWfyY)>$o`q~J><0= z*LTop%kL`(xL*Gb`7`CN?C%h5$bj$fE8u0RSD;F?L2a|&A=(GHzGD{xEsT|6Rrqeg z_(SCT71>`Raz7(PCzX};mr9qGwYQYX|GB~L;pgY!;dkPkjjSQp<nOc0>gRJ!nbbdV zlH9?g2RGi6es%YIBi9V+ncwGf-8uG3`qiE9ja)OOXMCT_b@$jS>3auLLyyY0PMXv{ zMcP*O@06d}q9AkRG}#yQEbLjZU}4t+9u?4jr|+7eCNyX~8dMyE7Cb^~i=R_|i-=Z$ zR+vE=4JLm@McDp|$gnP0%k?*;lk4<3*`Fcb)43+Eovq;<!u9XUcQLLXTYiHU-tzse z|Fs1?QU0A%_Pg?T;qMjSg{{B>!q0?%{VV~EU@`v|-=pU)JD=;ow*t5MTrQKP=2$U4 zn;bevneo@;$~kI`&n7RJ;|QLyKEU<eOZNL0(YZA<tK?*UE%+Y7Hn(Qx_Xe)X-{;7y z?vwpl!UCFtTflB2E5n-bJA|!jR?RNZYUFOvRtnI<-^R(ta}7*D`>a4t{{7{93A>x@ zPm$jxRa~HQXbNO`aHH%`6Va;Lno7CfCBMJ0EtmZr(mA<*u0eej7pSWO3ZL&HLfzjV zgKEnuze~P{fEEJ?e+EtT&65@W`fG}x==bR4@8^Cu?U!5O-eT({bt`U<nSs=IRq)&f zc!SG#Rj%(HT&LOBbgU^|CMW#c(_A@KL0Un1<5_e0(t?hxEUDk|?AHtSJ6TBye+Ewv zew}PNPp=-b|LXVuL@v<k=qsSrhu^2H0Zname-{zn%OL!(p;7kdm782*-&17G54c_{ zkozP5Jwf)n1pD{gW#6s8n|u$I`Z0ywMz*!BtE)|JQ)%L|Xz4PpBSDuIEu1uMp8OxR z?+LO$)Yu#5Eo@mNy-M~H=#;v|f|OEu;k^t!>}_p5t<r{Eli$q~&soOx-QjzN+z)wn z;eQR+mL0fwUy5%5XvBESchK6cGSD)vEzF?47#FlJ_V<gJ_xE_&(`?{j=-(obWq*sv z{ATzyh5d)fuPxuxWxZv7Go1eZOm+c$%uZJB=aKJQL?_!<i7|qYeN(81jm<%;^pNAA zZ7`r#dI%^A7+1<d#z#d&7jwyZ{}4IN_VuBuqP)z{hQCupK?}YcWkCzRPlIMQGrk|; z`kf&s^Si;A>u<^TjiAK5Rd)4hc2JMx_x~@l-(9(Wipa1YfMlCLChU*7>ho4)7;?#h z*%0Pm5q7KnPS*?M{?7kCOZMk{_Up^`U%4aobIMPVIN9G**uI;|%KzO0T9N)|3LDt< z-$jngeh-pO1<xeGcmMpG^4mnzTZIccx247Pv*dS)=-&`?$ZXf|DJ&qi3Rs%&yB&BZ z1}Hf)o|FY`6e)pi6q$0`bMnarDon1jlTR&hsyC8#;gbJ7MdsIo?=G@FTos^sYWD9U zGHec@bp)X5^Jjy$Y@=)p*LOQ;x97I(_c&1U77_j)`a|S9lF3H0!W=HPvcISN-SXW9 zwDNUIHmJ<|5n{(B+`_v0J7@x){f~$Y%L4GKl-IvS>b2RI%Yv4(Tsa3`prZX<<n=jO zVXhGH(v~ai!tJg<rmT*W{e1;Afm^UDgzHbpJg(nczITDA(xEN`4QKy^_H&S$j3SWL zKA@f&Xw%Nm1>dt|ogo7bE7^M{PMFp=p&rzLlo0-QU_$@2{)s&t-;I7xVFNWFon=8o zq5EaO>vR1MVgC+VZY=zB0cfdsgE80dE5A+HGorvP%5Mk2P0FI8@~8}{KPK#xWWS5B z{Z{<W_M82?(s!lrY?C2}=~>D`Ip0HKxE3q`uSNx(O9Lt`rho>*dt|#oBjQtpe>ODA z{xI1uEBvkDyFQoj&xYS2?84s~{)&K>1wqCwgnu^t6A{b)9xuC^O@?K`_ocGGO&-hs zHUZ_AE9~FDfb&bX%x{L(-$BbYx>tV>`938Zgl@^M76NT_5MBf7mtRpA?e1Rvd&_CL z-(Ob$E;-HW&Gvie_b;p$zCYyBX8Ucz=AC`|j|rRboyi{;X<G`fdCm4c<a-J0cauLR z-r1+wzMHVU{{E25jqN)~(`mNvC8xiCS<U)=%jxdb-BO^bi65Yye~gp87f08BpDxQ+ z3ff{BBAUYW{mP#yzpt>TaQzZV<@$Z)$CU3^QbBE~?^Ax6D1auBK*N=w<>sK3t)PWZ zprx%>zF%RB0VRbi?B7ecer!>Y{ab(IR~6%qUs23I*}t2Jp5^)jKJfI1Y>VvV_9^k8 zohC4`dbl7TMAwX8QOrM{|F|Mr2kH{n$@2aA|6TD{)c0Q5?<JxhpeC0GSj-VD_R~bv z9n=kS=i>YKA8hH5Tg*S%f0c+%X`dX=1+xWY2~@$1AGaXpL(Z|R$2`aqdbnj%fAhpv zxxJCoxIj)=_~RDH3137ZwjTs@e{K<V2h~=f*=fe^?;_wu`t@8twyfp)-Y)y|%J&D5 z)%f7OT|dFSw4VoRxqfV6Gx2s$`|d0IV@iOI>^kqu52Su<`7SK`U9<bO_V*BP(D29i zEG{8X76C6*j|1(s6a95%0;sT);`(<bjq7j71g`9#UqoHF<bGZGo(|ehuw3@vmCniL zOBL$({bSJ<{T{~k-47I2-KW2coc^8+s(zTiXUQgm%3YJSTz{{0a{UT92Xbd9*WW9( zTtBaT7nc23-@W_0$?l(1Uatl%zJLAW%4_ByDc?mzL5D$o-z_WmJ>|Q}TCP7+I=Oy^ zoC9@D!FK-+`S}DiVI%iFj7z@$`<B^PWI@fWe^bDlLgju;IWD_|3w-3NDQMFrct^oc z&_-*}3d&iszeIkB%#sE5e5WvezX9rGPGJVAJ}_JMm&nhM*`N-2$oDCc-=}<U`#$Bz zvvQ%+-|M+n%F6umg9?RwpCVks@MF<;CDBWhotBB#+spn9`57W=FDt{c=}(*JrNASu z(Oj-a0xx~P#`Q1aSA{6(WY&7wZZ2UbhUr`~ER+7UiQ0o2u_2=0_sGf#uVnasP4>sK z-$|k`WPb~&tNrHxo*^qIT+r~H|HJ$50`h#IA(fvZq6%CKeuD~TMj19O&@xi4A10#T zSsEr^TP7lYl?${-1G&F4<<FEovXhpZ$o&?1#n=s6EdBiec)t^<(!C=3-BtFdh}d`6 z$$`t)MSxajid+Q+u?TqII@k9SQP3=y-1p~P;PXL$g?x7bHJT5}{tW^3twOLb3+o0| z<)984*eq|Z$?hux*j+%|a1Y5&p0`4Z)dsv?Z0`ys&flPeVt<63;F|n!g&Vi2Y$Df> zkngdwC%7hSuXL+71r5`0kv+jxA^RgFPWG<|+a%eaB08WYvmvIS)cZZe`}>w3Cf`GZ zy1$2j_BBos-tqIwj}TECP<KCsO}L_57BuL|ZqFsW<GV<r?DvrGA#6Haa^FQ_xqgRy z4*{(U7h(T##oHOQU}}n}a0TcPYB}K@tGML93xXQ9!WG|>WaWf+{1ah&$~F1zN||~K zE_q0w6jZMw;oBhBP5}*5K<Y)1l<>dR4L?MFuza5+>&o?A<olQJlR&4fe)p5rW^bC* zGDYrt3EOvlS^3`(DOavvQ~sEIpCl`+$iVRT3mZb+&o5wge?`96gUoQ{g6eq7C0yjd zfXp?R!0?vKmFv%x9}tD#r@RIkSfI+_$^~T`a5H>A&-J_IHw!z$2B=HEi~La$mHFB5 zOXPbU*LM*y(3-WM4WJpsf8YgFbxPp<-wVDk{w^~8yU35i?;?}GgGXq#f(9_ZiwMW9 zocv>zEaSb&Vyl(w&vO0w!!Gmdz|WPU!f~KOo$F$jCT%PQ?FV&~6}|`B4*H#$>-%C^ z;kfVdT*CJ%>g&r&rT$j23)g)&kev?NeEYqUOE~Vk8kg|B1=D6OTnuVJg6$SOG~<WC zcacfoMM0H4%=Yy^ul!ge`dgs!w@U19j>##jr`Dh45*GR$2y(^uf1;VPNDcs5FYNW5 znM=6w`(oMe@mz50VU`Pffvn&9U5yKBxkC4M5ylxZY{kq!?*7=jUiR1NKe0iw|3b`V ze}#M(=K8Mrn@NT>hH-}syBhP4zu#p=zpF^gg6bm)&>7s{rDY`}_kxz_{{bD%%^@rK z14K)3O-@;3rnMea?11xj_xBPRR<G|_%s)kbM2Y@U{Gs?=N>=iR;twU(3;Vb#WGC-k zBgwdL^7S>wjFFSM*S2zkx*gydlF5_Sy7Dy2vhpc>-z5tw@g_f9E6o@*`R`iAdJpjF zuk6;c-%I{}`96v3=a=6lY|}w)@RIKwpiMu&MPAFW9C*F@wNUr#?(ZSpuR#eW<hAhY z?^{lbcFR`CvUGzwLn4r3LHIkUR5$=S$T%TP{<YXTE;-@Xi@97j`5wuV@BE#r82{TZ zAgU&`Dx!!(`1_AmCH5n0Hl4gACH(q(iY!=_+}{)I!rz0kQhZ&c6hWsbPTsjr(fl{d z_mF_HA10@Ngq;5V<a-Ec;^O-g7*Dvm;fMG4xu?0l+a`T?ko^tX|1QHN+|V$YbG;hV zU9QQ7>&2L=8zy_KS7PE}n4G=dq`tag?)R48%f2uB9w@tb>Qd>YiyJHF%70(_d)fEq zxvW2V&A-cV{n_$k%XbIaAKKq-PlGD=ZcsTH0@`Nt6SNWT`$jJBA6MAE^Klu=%ANir z;te^@^|#1(B~S;2l|l5oF{qO-`+Z6b*T4S@${64N2w(;sOCkC_-dOf`i8ko$yp`XV z%C76lUy&jG`wCk|eqKh8{PMq3STlN7=B<<dewb_Jigi8m%YRN`<?H@#{Ui6gQ2KY9 z@2|hB3CXYqe>eWk_FYK$i13mNvcgBchs&}F-}r6wU6y^z<g^V6Zh>5D=Wdifuqz{6 zUiirO`&<>hwQ_w0tUso)@%^6iUFf^mckAzN-_^c1f432mVGV_vc18Hd1zF)M-@|1= zMzL*~ynBPZdLY-DxtkzHeZS9D*;6Ce4>1VT0~UewfWK$TPX4vQU0_bx(z5Trzk3V) zDE;m&T(EMo`$iqc4U<bYIxq<rOy06FtNyphcSTu|f(qH6S43@O=Wwxq*Wd!3nEJgN zw1OKVq9uC{v`T%7=y#Xz)46`Td^eK?4d4BC0nMv@cln+sE5`@!&`Nw4VEn#|OT^;) z;vbJio7T5(+$8l~gdJ>({VeBYo^l^Pu>N}Y;~i+9jOAU4?>e?zGQag?e(Qlwfxc@g zF{5sN_lz0eCw-qJaWUa`-h(ENb6hY3{J0!l=dJdWd;OZVe(i>qjnd!KCZF9TDPkro z|7QyOPsX2&pnY31;Jxvazid)t2lb5_jJYN&ZdOtUozhSx`~9%264&qlphnbpk=H`s zx4eG+-Q>5(YvBz)rpT~5B+E{owpo)8(h|s?nm4ORPWZ*-Gn<W>zbna3X56A7y<zgi z{wY(X_!NGZ$gm|au9jg-V3uKB@au|b_hh>*L5$BQPu!wWzo6`w@Aun6-7;*qf8Y9k zOZb5d+r^*#qRYQa<b9X4e#`OJ<~RT0-_p`DzggJ6>;As|eYx!SO>7|2mTmpY`m#Cl zbIT@VH)s5I`+G&=`y)2t3*Rk%_JjA9_5E7#z3;N@FU9YQqThYE{zUzVlK3tq`vXk- za(z^l_^w^g_51km;}YMG|33a*n@jS?!XJvFpe<nEp_+dtLNu#>1Zn+#{QGf<-^afn z2Nhu-KYsV+lKc_%Ckm{Safc{)QyN$!vkXh`53sEu)e;~(zWZ=Vs(u7%1UUevH5jD# z`@-)aTO+t2wle=b_`MO?#UDRPeD~!7xlsb-0+8O1st}D4AlLr?(eU`Y+jr0J&fj-^ z@8_C)Z)>Q~Pv-A?zXyNc%Q#(z?FIAq<=+J-+ibJb02QM@LcpyIjUNr5M#mKI?;$@L zzH11d_!T0<%8)Gk^U6Pypvg10DQOvkPP+UZ^4*;6`u6>IUw!YAjg{5eZ+Sgl?zcI+ z@U`C|pc^09g-__oPJX&gN#u$e*Y7Xvb(8C-x5;(&_jmP6f1f&8db?768<+5_=@TYT zpCQEuK9Yge;d==DNQPfqeohhnTk`!1+ZirB+0$%Rvfue-<$qtvhOYAhO<RC^!k|Nh zz%*m`_ov|AI`gk7KSd%zHTxr3Q1uSlSc|+D_PdB!80hMXdhp#9(8G`VxqgWJ+#(tR zY8!?iC_b5AQ@_8I{Q*9M0wn!2ge3%Y*iHy&bJDNk?^_u`ha44u-^%>`259*9v#w}Q zQ+reE_tji8=5)!|d{6vs`Q7q&;w+A;p1SWVxh78OpVIaHRMq#c-_c!jexKs_A<`w< z)6~)2@_jYeOpuNr#=oC^fA+^1q@(uxO0G$h`lfdMm{aw`@{i@5KXW*~Z~YalAR7hh zSL4|bRkFiQ;&;3Z+tlA%zi$;f_<hUoEl`f|gvkeXNO-YvfmVQk)7`%x{}wOa+P%0~ z5`2V@Hkai0#q&h>?CHK6wfDEscR>jUhu?hN4%Zy6b${o(c8x=L!EeFuf{}YIyQ3l{ zg)=5A?$nP5HP{)}fO@^4?k(H*6<ohW*r1))-~Ycyfal&og@(w33fZ3}L9&0Zn9G9J z1cP?)iWYMHyaHKo3_7#p=M_;+uD@5jL30<~-@)CN$qRORN?UXN1RZL!WZ}$3)8s+( z8Z)>+T^r`r-<M8i+!gE|!Sy}w*MskQ%s(9=8Rhq{@4rC#6Pi)df2T|QNdJ+Jlu;VL zFH`_EYH!IN{yF9Q9LDbNw`3>x?<z|9E%JTcuPX4|2AF1Ulm)Ghs4gjKl<R12>ICgT zpE#pl{`+*UKdb(%LdwOfeysXFovUJQ+w!T4B^OOyG<&J^kCG0qKP8~Sl__A`Oh6^9 z3FG9z-C5k)TpZuszduxv&ElGTe78F9_ZwWS-?w~M7FCul<(m9wx3$z-u74qre&sLF zi0wbnD9x`B1(3A$9=y_3d#p8Vxc-Icas3KOl>HSF3pxS&`xKC7(1!Ag?~}f}e);b9 zz2$ou<K$C&W(a9<{bp0)I>*+T(Vg0p&Effd;^dOOYL?yKvwmlN&-=muJ^Y90_iCZ< zqTl;}7=14juK6|LhjNhYZ!<RGJ!)LPJ^vW73)lSM|9<p42iJFTf7!|V_u7JPWe`{4 zdi6(G>-$96-&!hMzXHAsgC?oixh4zm^Jnsxot&~SF4daryEFUujCJ4DzMFnekmCFM zcR|@Ni|<z7RlZv>cK;G%{w4NnUy$r?d$xu{WxKPtaD1<|=KAO_`}c|#*KbM4Z1Z<j zw(km0Qyn(S|1s3!QdQylVbAuPG4D51z;74n-z?uJPL|p4sspmUW<lBaf8VVie79lz zq5Qpp`Nw;)IkOgUeZTj8+jkDGPyVvMw>|j2&6;a+)BbSHiL%NnT;I2tJ(pDh(ZBC~ zpTzaufsOA^{erUZprLQB@0mYBzGpH{{=DDROO5L<=l6A7zcp1rr*ClmF45xpEdpkT zfb>~gbA1o_(F+P85r5e~z2CXMzhL`5|GVFJkMC3ELHiMZihMT(pK>-i^FS<bknC@F zwzc0ySih^X8BD%>AeP5m_PY|>n%^R<zn#q|+Z?ox|1Qk+r@rmG|8KAF-rt{o*ZY3_ zyVq~~@8+Q4j(NWgzw3SH`>rSKEyL3POGLElyVq~S6ThS8aD1QeTaR5h_;)9Ja#B}U zlKl5>5a0Xv1op11tnM7?ZuZ|9J*>jMllLApHuwG>!?t04*LvySli7v4zw3RUz}B^O zOZO(}-~H^u-rx1UPiFf*ZRU56GmE~r&;1^*|LC{cIu7Bjla&vduzisQ-7hma@{lrg ziU@RU0_+B*Ut9iwb_#4eAkPOHo%s&-JR5_^gUK@vY1c!hlu*^P{}K6HBDz)fdk71Z z;8XZL<vZJt4d2<mPx<;?<vY{&jo<mdi^%@^^PO4t-yC%=;eQR^y|{kf_|5(O7*}VL zd~GLdFZ;A<-<`O=*Ra3mdh+Yv_gF4A;lB>won=9W!3?SA{|+-)ME3J{X4z(#S-%W_ zcYTlL`tB@iB*XIZ`!TMrCi&V9);{)WQ@=ZLv4f1NVSCTT_g#eRXUS`IuJ2x4zqb4q z0Tp~ETtBaTui*MCVgeeLso?q(VgeczsNniN#RRmwOqlDt2&ku-9VA;15whm`Q}X=^ z*pQzlKSY9LAzDBw>1RlgEW{)@?+VxgVXog(zTX3x$Mz$${Ck+}_u}sXvcH8PrZipX zk<I;?c$^E=c4qsf1X39$E5maCdw{IW??#BCl;37e$GKL@urBQZjU=7o`fkGf{g$j~ zdR~4;dj9hD>z1!r|6Pwu?z_o%bJ^cpjJf`TF8tY|BRkpdh$7QBuE~i<3Yjxy87E&n zA|`f)>$}OHDWDxhzqecldAyJ7`<9N$e~%O}&6k~=e^fc@x5#(q?+Pcra~yhbeBZ_I zBIkazz7p#Gp7-74>eI7v&!(TNKRw}G+o9=a8;<p#J$vr%_dMbCS2q08{$4AZ)mUB8 z&@f?IgWUHL_G#0mO_(M<Z)#PR{BJ{c;dZ47ldm5A%Up3aVe*w@x0skXCa*s(FaCSV z_lWQI$F6;6yLRp6cgK5ozkj^bS}rvC+;KU^zmwk_w_^M;S?xqTBirWI6TOTAtPBgD zv4NH%iO8^l_Ww?nJT;H`yExb69j8`ug4W*6;OdlZoSbrc2?wYy<YGL%ax&MMhWaz# zjTwLa`)<rE!^){G`lIB#$zKtfUr9ejzMFum1eYHRM1L;+ZL#LN!QaK-Em<#q&lUZd z`TN<q@2Y<@zdvXFF7-W4^vAD1Q$K#^|MTm|RMzjizfTtZEu#IS@UQ51k=Lv;zeE3C z68*X5yYb&G;2nRi-`T%={4o0N^8N64d&bG4XOAgHaD89)!{)of51a4HL<-Vn|Lg)y z0?Et%I3f039&|d~<ez7CB^5w3d(PjVei!_1{GIuG>38Pu6Te4%XJOo|b&iu!^fzcT zTidhmY`4Fg-~R6PUGdI$PsYv0=UEt8e}4ErfpN0=g<$sY;^3>KCih$jk@+10I`H3* zi}~lo?~S6<+Zra-N&ha9VR^vj!8Q5E1v$A;*(sCzCr*_6{^^Iv<f*+g+NMkL{j2{y z1)^=T!9@wCP}#{|7iDv%%gV4k_+G+3W7_0t6Xf~6@8>!#!*&342S-VetjuqP?<H(A znx{2PkgK0i*V)+gN96Z6iPqNkrY5OxvXD{dA0od$O>LghIemiU^a+!u&5-&IatUZm z;QM~AZjfOzYzKadi++=xeDR_zleO&R4;K|!e~W;o#04%LV^wG^``$nK#wBghm9i}V z<bMmY{x$q14_ce{i|e~J<7DB>-{pT#*%QBI*Mjob-yhETvG?5e`QO>+_s*}K)v|K; zf||KPlew;_v&{24`DU`ol^7)r1_p!3fStd&+Ppc0#TZU7v<Fv*GzaJQ^evdOibI%* zL16OwD|)^LYz(vWXT_(M_k75nn01n)n_ZZbL+QflNmI_}tSDacTkd1V=Bl|RQ<@f( z?ykA8Y|n%#{q60Q9Ks;uOO?)>&e}e0W#hq#+c|_89GoVrT~%Q=U~!o2b5((*gM)F+ z<ov6aEKCdv0+Ux?O=K2em@t{|ng_E3OULAhYx<lVj0_Cj?7|#Oll!h!G6^tF=D4mU z8^FTA@V<Tiht(4n^esG5{kHOp?{`a^`y9dz3=AxjeXp;D82tCTnOXyb!<7x+ZBPB? zzs><_uCx4j{IU8w+mE^5S%kocohp215xz6o<Ayu$H(BNH9H3gnMoL&?^4uFzjCUsQ zxREWT^4;pYj<4!>cKPqce=0?rdwv)1`CXRBAsjK;_NJ1A0+;vqmS47@CP^k})z|kk zKR15gFZ^I~-pwBKrCi1<t@e7!H%7NcL`eOS{C@uT`5%(|_D!6+TQ2g<o!rOL!Z$!O zoPX+nXnyzoz6;z<@@AZ@b?aE*Z;|g?eqH&#R~ED+=f{@sCL$I;L%xGXUH_Emas8T- zDEp%%mh0aXc2IE)I+mkEkL#xhMD(u+`*)L{Q|`(BsRy0J!r0v?%iK8G?6xLj(By>M z()FNy(Z83l`R<E6A@|*c?Rzbk{P!i_L)fikr*}+iohtvk`-eX3cZnVB-^+i$WG$Gx zvU;_&7uO$?pIbU)|3Z!Y9&-A72^fWdx;t0CPX>)0FXoc}WAgne*Y_`{|EYY}l>L!% z`cKMtP1#>6r+<I>{*>$YmY-ibm}R46C;z@}W(^u<pCZHd|M%tZmxaDpJg<;_4mz;! zz)um;-<N(*`#tUVB@q36+V@M}FMXc|qe0@6-R>OKE11$Zc~ak04!%Ut*_q%omA-%Z zF2XFs^6q=B=x^2EJik4Se}_s#E~T4nbk~9vbRXjC$+>rx>NjwG-}imlcjxbmzYEIo zE%-U*dkEv{m9osguKWxE*AY|LzHj3K?KA5D4XbYitv)p7`WK=to6e;pdm4Orj?6EH z8ZIBM7|`^`k13nDzFz^2CO9z5uqFJs5(gfI7U_O}R_eRscSq0}I>lVS9e+DY{C&Xo zTio%xV=<TH9j@;n5zlV*-y%}KOV}n&mcFO&_dQb<bSj$Nck%B$-SXd~en+x?XOsOd z$@M$sd#c3dOUqt<7nJ&5q9gmK<OgVi;kWX4<=?K~*MWCa@O{@@SoW)XMe`&f8TR~H z!WSm@-K%EYFq!Lqw1e=4-zMKR7ZiUF`#$YE*LTBRuWPn&@GUU?c;!3OclYnf-&MaG z{$}{@_<hB9S)m^aZ@x!NyZSxoN7{F;uixc_zdxAVeLqH?qv5+o^mnJL$G^*Pd_VKu zM0DQo@ZTlBJ%8`b<q)3WFq!2+IMeqBlVcvJ3voDPx0L5h%AT0Lx_tE{4v-0xA0&x> zlimB>Am_W=Z?5lRpo}TQ`suRlWVVO3g1@IckzrZ5xnPOV&qWVFtD+`%KJ*5i_IBlA zH1CY>i!Obid<BFSF;3Qhq+9<)_Q&n-Ph@|{vwUYUe)gL|?(ZYE-wehEzggrxWLU1T z^L>})`Y9qh4YZ!zME3g^*m9KbCZH20Wx2ku=lcESdkEW{npxi)xIow6^)*dwmHU4A z_hr`BNt4^BNE>l|5BdHDbSx|Qq|Z{WUsHaCh}y{3)wMS_OuqX_)&rD8K-;LW_mP%x zK?VbUPx-OMluH48c*l<^S7n)hP5%B-^!L=czf*n}{GKZPeeGnm$001BVXMitj}1UW zdRu;leBZ*@{oVW5%kLe`GORqm#6;VFGuZ#u_^tLkfa7<>Z|&bAn#$5%p~t^-$I0h@ zXUhG~nERcH<2!d&`telh=Df<xNcr${hjt&>b8wgB<<o~(ukU{}`9Q$@-$Dz2%g!>N zoXPQ<b?MUJmC}pWt-rcUe&>}Xhx;~ioSsy)x;|LCprEBbU;f~C_s@^M>$QDnYd`4J z@>`YTd&l=81=&CUyT6zIPACI4@JoJ#d@m6$5Z(YfU^z(kw+WlN?C(jxqkgCS?yHjj zQT;~t#T(i0p8m4GO|-av_r2lzo_&^8?+ur50f_PE`*$lYwjUDTFMPl7LqZ;O07wKE zW6bvmE|EWwj{5H}-@mYFaCvKij$Qqd0*b~j<y_yteE$OO!u%1z*?a$?`Tff6+261H z4nFx^6*QK|(I7lS_{QYBPYk4cxzgk1g?Ci;RrS}(*>wiiRZCSLt-H}FCwybF%2P`w z;Te--pJuWvfNJ3H{gY2Ty(9Uf<TQA&Wy<#{%;~bL|7`(}(SN_mHF@W=c!_B6`C^AR z$AyB{=}p=4J)=y9_5Bvc$*Rv&m>Oj#cRyDLQCprja(%xk`y=~D_V;C6lO0}&@_&CR z`+f0`&EJ<W|GM;jne61G7b()er+`XWk?)zHLl_UpGXDzszD)LC$R82b#L3rQs4}jc z{O5%wceZTKic~qiA1focCfmO>WSY!1x#;CgXsdzyRS_r|t^a=i`<x%#-`6vCf8W9U zbIQ*q(cg1^c(DIwt^CdQJMZ@q>EE+{XMNB8zTo?U?;v{Ccg^?SAxGrDr+$xR{Vw=h z>bKMN-^tQ{Y=6K0{rZpXAKUM*f4}}=`@{eHuJ31lc<pQ3*s@9fZzdbxg6}J~e^>nO z{$2BXD&vo@-`&60=X`f({&o8Yt7!A&+V19Nj<htp`Vi?5+vyw9<sm{%P2IIqnmK}w zd}nG~Exr0X(}W{O<flyTp4l{o<M;9Jo}zn`H%CP#Cr3tYPTsp`^X5HrKjg*sCU1_6 zf{5+e3ljU@|D8uPrXV?`Ty8>TZ+V5(@1WmVzxC>W&-p$3ch+~k??Ll==k?E(OP-&< zdAHQrg9py8T~%AMQ0~s*?+oj|^Gvw#{ftE4v}u#4b$l<3l2|co<$`t6dp9RVMI|Ri zMkR0FBmX;QhtKcz-+9}=Gp64OmRz`S<;=CxXAg#X%76crE4ozHj7yI1`<)HndB5v@ z7y0fE>H;%%f3H9OJ^Q=fcc1Ti-?P6TXZ~gXLtC_Ea(#D8Ge=I2M?;KsjK{Q9Ir0#p zmX_}NNi7^vdtSCLmtOv|f6pHINt3##w@l*rJ^Q<X==U71@6W_QWcDY~<dTf6D!KmZ z-s&o;-{!x4eoOo=`(5_i`@6(<^Vz*~`ew;x&M98EC0Oe4&YeeAEUhn}CwF1@i&dZc zkAGhv(K}_zq^TX>0}~~d&R9BUrS#Ty8HtG*8HtIRYqxgE|F+*0`n&y8$IG0H(USA# zEuFqx`pC}MVEOOIe?%$BMsQ8Geb>RM!1Y~IPlk0D<K&a?W^w%%Ii1dRnz8$I`sB3t z2K7t7o8SFz@q_idMfY8y?(d1;`M)RpU<K2OcfTim=l`B4{QiJ&9K-iJGAz$Te{cGI z=dbUN6~D6Cg>x8wC;UDBeGAw3P2Vj<zbF3n{hi46E1TteBAakH!|#OOiR|AuTZ;bm zWfy*Y;QJlR-*<kS|5*9UiS2jdpOqkOo4;F3X8Isvv;}ko!jqo@^M3sJ?!nmoedqV| z?-JkBzej)1|Gt>{*Qy^gL?3>4=6WFi`}Ge8(Ffn1xhC6wD3qU6wr%!z{qJJmYq$5E z`abEqn9z@1-_5^&Sl{wpT=*ix<Xs;um;@RofBs;>q}4E4=i^c)L59hfJ{p4r**@tr zu`*0H`=k%zrG1K1``vW!;CCUf^WRxPXPAC}D8o{BKzNDp5gC^LNYUPwzQ+1`4&fz} zZ+_Ba623B-{j;{L@RG)veKY3GnKx(UvK7-grmvXQxlDT5iq5+E^1^#2`+hcLTr#=- zv$E2f2aAlu<qv!}5&aSR`@#44&^2;Khs_q69S&dT^uX^5$kZdBH8~c3&-%IUdp6_d zx1VzvxqeUC_)B}&cdj#xo1?zoWUT)^1vGYa8dT7Pd@lj*76$F#+5#5X@?C`a`xeky zE+VyD-$f?K{<;FX6Ph*Qx4GzdbM^x{SJO7g{nq)e!@42OaaEY~Uz2%UGQSumaQ*xO zTGsb-3j53Od-mJq{+9eJbdvo(<*x{geEofj=s%GkQ-0Qq{5Cl&``v_%ZzgzUz;_|8 z@9wff-Oxc8cUj^6A7oe^zApnELTbz<16dxYBfC;INA~ZP-&;f-xP%=ScyEyX9l{dG zC2V-WO%}p&;DXV@@ee>u(9yu4>yhQW*+4f@$)9GQJ9FmT$@kT{#m!`YOp*C@K-2<s zy0e+Au${s8DgUmBPClzH%WWph_ox1Miws);<7D3-R`Q?*t;p#=BHuM-f1Y9gzT^82 z*55b2TXe`OL~yN?WuCn7$5!U=>|B$>e!8$i)-uofSs^p2jPb{m@6tbbK|6yU$o>@3 z{?5ep)8Q}scP6gMYQIX{t7Q9ndV6|%C3`!2yZX9*g#0d%_+BN;x_!a29lNFYzOU^3 z9`M`Zd)9Za??#ip2X%fA{PsOtsQdfMA7S4Y{m%cs^6vM3;dKm?Pyfo|3TycO{`(<z z;c$k@w!bBq92zEv{nj^F>+rq*xBrRXIdXhIB);eVcE0rPJ73RtpZ*))Ic2{)eqZ-{ z-S@NK9ryh>_gzFd=Ro@8CBKuHCNWHA|D$Hv$k6zMNz@@S#-UCA`y{q&Eh)QfrG*t7 zew%%tCu;Zo@(p&-#+s);I-Z7p*ZT48yOxj)Th@0i;T@Ah|7eKa_&e=ymFREz-^{<6 zf6HrI9K4k%C%j|w#6K<q!Z*I#fDg~Jk^inGCcI<v!$0~=!Z#)h{8iQh?IgQ&=ts@o zA7Z<{gYNPAaq-x9r#(N!K|D|c|JE;FQ3aFlXJjXb{Iy{f)#Uo_HhJpbAYR1vioZfs zC%^ft$=_MFu}p?FqFiXU4BG?Yg2__<PS#Iw`YxJsqFbsv^|))R+#k&zR^fu~@5aBG zzVrOPEcaX6^oM!*_ktgstbE^Bei!*3Ec>J6M~G-W_{wPTrLc1AzhC*TF8lq*?<*+6 z-%VbNeg|J*Ecd;I>+ck{4_v=R*uHzpevg&~ks{xtx%j@<uk8LFEGxsV06Ma(1+>g$ zz3iWm@8+PRj6QIAgVdk?HN~6#yQl2w@6lX8MA)Hb%KTFJQ?g6;d&G|tknIs54(Jw) z)u5vQWmq4a{@yM7N9~6?>-Wm<r=YAz&^^mHAxD;ijw)@I{Vo{E_DAiHdb8~JN+@IU z+yAoMF<d_yz6*U9{Laoem51>rw*uGS`rn`haMoN?UoyI||9EwC?)iC)+jSTjZ!t1` zlbz1V%y_o``zz3#7wA0yDd1gbKd1bhB3j4wcM3}#Xcb=_=rV~vpgU>Ve=C9x$^5PO z{mpOo?-RKugO&)fe^>nd<~#cz8#z!RAaXFP?E8`f%TN6%xi0%-&hd%6bJv5G_<YaV z45EbBPf?T=7U=k4!uDs{A7{~k-Qf?Wo3k+TOK@=Xb@z7l$@TX3^!4;jT-~v-ekO<T z`YF?6SQsZTHcWrR!YCWfqA;;#Vna`5PiJ>$PgiG0S7%oThcJsnXMIO)XH{oiXH7>n zhp<CK^WpB@Q<rlHb8!3?_^T;8YuT*jvzBuR3vjHzwEWDx6KkEe`|nBM5awW+(mb_g zYBNaT^k`N_ResR?^k=RgR+GLze;}(UJH3~cu~P&jcwP3#t<Q#^&x4L!7yhm&J6)BH z(VOx2^g=d94Vjs;-|N0xe`o!^;CtJ3*&p-1Pp<>3``e%>JAFADqb1Y7hUpL480A2x z;Kj=RwlDi7a$WX&7FVjQ@P6=h1;0i9ToL_!<@*&-{3dd-3g7=7@;ij}cgU|P?0>KP zm?Aop>-!#AdC)-XQ_vc9Pys8{{ap;iPL&mYv*9ObGskyJuJ0nhr+l~M`VFB#JW=5} z8`jCP{S5d%LsahfneS(y#r;2#d7vXJKx>X=SRL%RzE78(Ud_&^sH>>(L*)B5P>Jos z^<&C+AuiBihd)f%{<8l*EV{h8XkMPQ&G*BypcC1h9HyUUXH-g3ROl`}Y4&}yoUoI_ zZ^b{UqAo!z)~!3T;?kufc^Mf&c`ovNGePScr~H8U+xxr7_bZ@f_F&HoJN;epJ598H zLS08=({HQa))K$PO}M^`vwgSvZOz&`Y4Z0ruIX+ZjD7WxnE0N><qgvQT}1d7*nq#F zn_T{g+?D+Ux$Q#khe!@6&#jOZ{`RAxQ?#eOy{BFJ`&BOa-*bP@V>M*|4x(BoP5~JV zo;?0>g?&cz^!f?lG^|?oOX4%vPuNuw|4e?1fDYn0*gV~flW`8`kDBkvKOTSYW1Rks zld+%wdm7hwy`Q=eEK)GNnTv4`N6+_~?@Hg>7^mBFGhXF>!1YVy`!ZQGuBEcm^>`Rt zSih@tE#;bihKEsG9(1b+<Ld7vjk4cMm}S5_8h^O`zViL|ACr@EzbmE-@-j*|IdXkJ z`Mu!#^zS>4$$hV2|6}6&`^xX%f83=06#fwZBmSfCN8u0gAL2g><v<5gd6q9M7n=9I z?8mC_H9uB;uN1Bj-Z4Fym(h<&xMKQ7UdB{~-&3}4Kl`1hOolb4e9hVI+l9KfZ~Lwb z+CZbbZM*RI1JjlH7@PSx8RnR#v?R49bx8^fGECpV$0*Ol(J=i2A7dor_32vtj9(I$ z%F1=Kn{k0R0D6D>F8uw<cc(9}zI%M{1UCYNzQ_Fb|E~Sr>g0Ec<KNGHpCbJC!H-+t zD?|_aPfCmrZ3+oK-Lg$i*ok5Lp6LhW(|@Fi?kd?D5mcTU9=<U9kesk0!}J0H#@~X! zr+jz(zU_P5kCyL#zwN(!3Qf-zWRzig@nCv~AY&1eNW=8sf{by_O$<L6AFwZ9(Y`|Z zd(dxtcHxeOL!E~vACmiB&Nd;hCpTA0SgFBYn_ak(;dc;w-@N&K^QTYmoFOgT(a_%c z`!l<6Xu|YqLX3)v2?{rkUc4sHw^8<qg6yCAAMBrg1$`De@;T!3FWJw+H-ukI|1ZSo z%XnkDuP|dCsKGFOw=m;J_Q_>G6~Av|oW4ec@jh=Fmkir~W*N38GOS-kr}v67dJ4Xl z<@=5*d`Fbgit+VyaWO`@`USF}ME&E+_bJ}xLf^AMr@>4SzO$9<JF6^*@SESV-{n{j z$%3|&-9g<__E+Tl7SLf{U%s#75`N>Y!X<p?dlDDlcX6)o;9bhhKc|2;@tewq$;$tn z@>k>-SNHdP*|)NwE0n~43w#&&E%06V$8D|e#y^&Q=M(xq^?TpX1>bvx<7C(-{T2~j zH)G3+N52`8B38?1&+mM+MoQRj`gt)%M*-n^b#>i+b@E-)x~EQ)5{{cLBhI*hO@^iZ z`&7p1d&C)C1m?=hupIiXEc4s$`&?O2`63{}C<$5`_(S9w*Y}cNSH72sJOGXNiT?fq zTB*tQ{mb_$i>KR2Flw_emi;O6XUgK~c@m5gOi{AaJ0uvjBx|_7uaj-)sqbl!|NZB; z2kU_#yEW$0-`B}bKP|ziBw7PHq+Irg{dc<`_Mok#Gq^+^G*15_!PqGGEC0LYcahVp zznchkf47uj+5KIA!s!X$^+C-P;VaWSBpHnuy{7M$Wb|W9oz5l2sKnhm5j1!-dGdEX z+3EUHjG{URWuF>I2s=H8UZS$)yLXVRHk-PvzO4M~@2RriL%_EuYlAOOo?aluC@OzY zmIKL@XHQxAzQ=HV7cB#=O8@RHJAI-Qqa+KsRM;ZL*u@804E$Z>d)Rl~?>mLMr`t<2 ziidlDpCbHg1!#CCQ1*Aok1K()Kd$@^36%ZL%_ZEzV8r$3()TZ-KZM!VuUN5O{=4X( zX}?9;(^uqekdtAl`?DobR`?_Xy0%9SMqJZZNHgk%c!0KR2p^a*UG~Q|7LZo9^c8vQ z<$j2;2^VO9P2^k92-=+aLj-hk>y*>quZR@<1f5zb`p1T?wyvqRUH*6P-@mMXrhHcd z9i7z8Za7^<hEZ8pwwwLWmG4Tj|F+1mEeMkRz2&<(*Y_{%KTW=uAb8-+z|O!tJwb*s zPe+Dz@e9UpuVq+EA2R>^`*VZncNVRuzq!Bfkp0g6=Gk{<xgT9(-&wSu{^t3<WBOMa z#(f-5zEAwM_PZ+M^v$x28K7LaU0RMYhS3PLxEQ>g2h`$#VDM=Mw?WMu&<*xkT*ALU z{F?G>iYTbM{l1KAdY?R_V?Arbk11?2zZm{r5&iDT^(*AN2)pp_5C1~gSIUYRa>>d3 zGG&`IzklIEsb5!oxc*%M?fhXmAS&~dflat|0;tAi7p_S7cjfyuE;-Pu;A^sc-&aC6 z0)iV?j9X>c*N8m$HD!kA((el26_)M!EwU^%^|wetRKa(J-_xxX7zISG%YIe(?R4z7 zhV*ZZ-%bIF3g5TOPLEe$lxDgvJH1AM(M{^Q?DziP6aO%Nm;e1u`uDd#jKAf7_y3*< zQg=szQKf#tcU~^Yey9VW^Qu6Xegtr-$bP>m>kK;HQp6d;MCbpU@^^|TcuQS3yKCUl zi}IjG>ou-!_KQaYUFH9XfUazr;tZ<A!ACgC{ARceni%fmYLxBZ`aOmH_Z1cu&_1Ag zkt?9{-|x!G{9=G?GXR~GJA+H+*Qf6@g{H``zWdGf9ee`%`(J#b^=ESqg=}e=(9zpj z-yByTUlX6D8)fd~Ze_0-|C^!Ms?ws}xrd`CBDpJBy12ToxI@13H%sMjW-!T81!A*s z<hRc)SuXv(pKa~(C2Q*^$@k7W^!;7`Jl3@nmoHf>y`Am*+VA<_*}mU9BR}(6--Wv4 z9Np}{9loy<{jOvCo#nUEA-Sa<8uJpQ|GZ*L$;?Y_mH%BM^UIMnuYF<RO6l*r*(Ue( zP3n=K{r=GRZ!@oRoSwdA^%?2o$Gdut%RlUSF#XPo?>dLyerMSKU7JHVVA=Khc{lHZ zR$sGot(RfD!~Dbd=NHjGoNR^Fxn;BEzuW%K{m%7!((T`?IDQ1Nd3|5~oA3LS-_GBg zIcC?FPc4`JarpO7QS<M~zgfQL{8s#4-tk+%=C@|yZ`JQyzXKoqjyUi;b?<lKt>4Ah ze3#~U_cK!Tk2~A<Wq(}0cm3&G^Jf*uk8oeM=pTE27yX#<d;bpuj-Q@?u84l$mGXU) z{r5$3%UTNO<xBtm%~n=ZUN%Agz;D0xza!@Sj{6?^`|WqWKP=n-uyLIF-nQ}kj_<3a z_<pR6;M(4#%*e~A5h?p)<!_PiB|mg_M<0yblC&r4d**M!ZRuN<?2mY_yQlg@<l!GW z-%Et1PgY^nVmYLK`rY&cDvUPFf(i?!|5IT!WOSIWugYkmBB-!{Vd>Pi8hK$s1%`l* zu8yu2xt^xx?pA5vwA^rcVF3mPh3PG-j4JXV`M#Rco;qotvh3u78I>z*<rg;ecQi@~ zb2KopOh2m1Xu~SZ;K0B#ol%XkpA{lHL5)#`+l_(g$cimn<%Agor|(r`l+tui5MXGI z?{4pw5_VAFVCb8&XwouikTW{EJ33qBdzzcOTcm{<6a=RKRb%uL5C*BAux!erNz*xm z6&hHk2dXoQuqbdaG)&J>XY>?hVPN3sW_Q#7&6@O^U;6jK-|gSEWv3reXS7%R-SPW? z{P*^sB9H(({p0c3ec!8omp(Q8UZVEK@v6{tJ`G0M#H;@uzMuWsEh@}$fMIprs*?F~ z^UDe+B}!NQE||l%b=l;(^W}xF{&!fkV8*J|QZj5G&WH+gFf*(!os%S2t~QTt>%zHf z<%L-+9Ath5dx=Js#-wJ;2`fl26lAA0L`s7srnhP^s__c3G33o!QnN~0n1!KX`Zf(l z6&7KTFK%ft`Y;=E$xYYLWRz6^Nvd1jdH?<n2wSPkf7ki#D4N0cTj~2NR$&&7=?R*Q zhC(b14R6@4ZA<rwD9DOxloxhjnZ8hyQCI)_;`QlA*BpvD6niNA(C+WizoQNxd~Ez( zv*mE`caGm2-xq-nO8D(?IR4Pa^Fc?1rk~Sf42W=bk<W^Fw%|MW&sU<`zccLk&A|F& z#h*o@zl{%mS31Nd+|a<p!oeZ%TWQaCbGD11cy5tkU{YFezf1JpH`d>|?B4^w8;XKr zpMk-Fp{TN<L{6BYgQ;nHjuxXtJ%fV)0|NuYiM#Cc7q%D4|6cVYO|-DAtyIqH_+2(( zh6yPS3=9HbsUPufqQVR;93bU8zB6q9&A|F^)pvbSVFm#g2L=X)-wbSazkSTU`>-nh zp2{Z7puhkYW%@pqRhvzifrWvAfu-R$$M40g7ul8^XZ<eCw#1)x`gbixc_RS_ko50l zHem(<2L>hv21_IBC#=6`{9X(ZVPRnSK85Yx)7yru5Q7w^J7_bCi3l`+%slvA<Ir!7 zJ>PZMLC%|=rp;(opD4h{$iTp0^gEqB{1~e+3j+hln;`+L!U_=P@7F*0zJFxf8+h<2 z>-Rb~VW@^>+d9h^$S?e!%D#METh(Iuh2Jl*3r}QVU{GXWC}kH80C~QFVeY)O{Y#`_ z;@@3M+2$--Ibpf9upq?n@6$PT7!@)U6&(y27#Oy*3o|e|a5OM5e2-$=rnT)2>rW20 zrOVnY=gTi-7iQpK082TPvI#RVF>p9AFw9-Esegm?_g=O|@vI<uP(W_~?h9ADB%XEq zcaJ}O?82@f_XJL_)nSw}X9BSW8A^VyW*2sBU|?VnWO&FvscRDG+(%Z8KO1+k3xgtr zfrFtuhV?fq8%*;79YzxYSJ2(&3=HosunP+cFfb@i(`7Uj14Wqv!vXg7t&7rT$O&_S zf{-C#y1Oo85<A#7hJ@+sbQ!Da9U4IX4tUPS_haRcE#Ea}edh$7V3hh@=U2{mo$tH9 ziwM{Jto_OL{h{o#vJHDSZP+9CbLn?YQQ-;OQhPJyD%o1v+FQEhs}xrEu<l<!{kZ)1 z&%ZUlKa^cwwqZ9&vCOX(-|fFIlKsuZ+R)Y5+#qew_I-}*RO#;~-*aT$*y@|wCrz2y zJEeD`e11_}b-J`|)V`aqu04FaacyhnBKhz0xPEB$igt8&c6Q4Bp8SV}wY9yay+zuN zt)+G1r0JJlOq(U&vcUFx*#xOc6DLiQyT&$kN=s9p{Py2kU%wl$PVAr5KS}xq+oXvt zE%HAE_JG{M!P?T<+S)8_$tLXaeNMgXH0kfg-*aSzJKWg7Zt0uSGf_UjIIcPk>=t?9 z0FZMwt!>R*DEECH*LT<N8lql*biux9l=ft6Zk;qqzNh!h4-?jjJrgHPl)lO~X<}=$ zyv$FI-_oK7r({lyldfQEZH0u=njY5eYbWlTEHA@e@nc4$tl*E8Kk6TveV=Fa_QlTc z#@}BHO|LLulo#3mMTX7xC$H%3imj>5B^?EYa>7B|R~s<OGBWM|GX0bxqcW3&$n^Jy zjLP-<ztqi~-?~D2_qJ*CH^|RcVJ%7vsPUF|4V}9oO<s5bN8;wP)Ayym>)d+zUF77R z(!@1#s}pAjI7odL`6(YM`+eo_DYw5zfG&*tIR$hCrtk(CHnE=$qQV#cuKMf9`dhIF zbT0CDMQPy;KC<#ZLUOpi-{Ru<v+C~$(Oa_L{bWOa)yc3qh?>7{m|50S*C6@F?Dv0G z;T;XKtil^+Oz)ZBFp~o`Hkl2&r44e(rtrOAOCSeqYT4X+^Icz7PI%vxNi9t_XS{BK zXnEm#(~lW3s?^`&`pv8*vE{edwck45nSTp%{Ox4>t@&FN$x%=zJ(OWB5QR7ZWWPj% zEW~O_zTf|$+p2}QKpVrRd<PBI3*Y|%x+2D$>t{%!tnmKRv7imC!uP*V5i{o!-v2Yi z4!osN7{rBg{%rYGa-K{0{^SRmqPALG!u!41h3~6!y@p@sDZKxC2v;K4ca!f*KP|s2 zf=+k<jaa*UH~%r`yVh^n?^@rdeHRh_*DyWTn9+jsZ^L&k@E*SDtBe`d>rG|lh5t2# z$;u%*uJXcv8{Wz$a((yzF87<~yXa5V@ABWZz-I)1SNpE}qwc%f_qX3ggzq&7?{D~( z@UvI+chYZ#-&Mb3e~URj_^v4@e81uQ{O@kxEx%iR7rJKpTSZQIf5VRxzj;M}#Q#3| z{p6qc@0GIOUB5e?{60O@gi(Xnk?Z@{@0-6na>)zdYna|?!dR;N8*~o+_gGnG8MZ|- ztcyfJi`jq2_xu+4E%dwicd3N(XVC7o-)X<ozH`V<S2JbQ<^)|O13EKEdU~WOqZTiC zAmAUf44eP=WwO)zO&JU9L45_r?{1K@Qba_*-<OU2zC!l<ec1@<h|-GOO!<t&h<HtD zjfm~*lH^xrl+KIzzCsp!!rspimUUdy?aUaZloxZ!{|;f_w`ktVwest>?A!iM`tAPj zbGX*ZuiLtB`&;RE`@YYaUSq~6ZF7?A#}qLr!S|g}_KyhYL^hG%SN>f2aph0QpDV0? zuB?;=PYtXD-S@|KfcfW?pHiYf`@ZK-zi!5;6n>2B@06cY*g=|qi^#Ah1j+t!XUnh2 zEL$M|o%c8IpOil-ziYqOf<ofY-9L9hTTDT>M}M#VUHe^v>nHC|UXU`@1!ZezEtdk_ zE@ts_$#-+c=>g`9_n0EMrt4cUURU^j0(8}^Hy7ycXA#jGvY^{S*L|=0UG;mN+|Mau zH>S&4GP>2Dkd^2Az7n)GcglAWMj7@7@V#s-zrTLp{Co5FuX5i{$bSF&d-M0rzrV`= zox%oMP6WDLLq47B&lFK4BX7vc^Zfvs^L@&9G1>2&prd`fxrDDb{Okjr%lAO`H)!kC zchFv|Jv$r9x61zx_}$N%IQ^_8qcGF+hUpJ285QcyV5;PVuQxnif9uFmx$k*g!mk^? z%X7&KUvB_yDCzzk`#tt|x0_dWexTg%`9D-x=hT-^D+3*tJxTU^5!-{`BCLPhK^q&` zCdqy;VH1Ad@LTq`H|siYr}?(hAVYY#zL$OX`)>U`ca{A2NVfU&rp%cx|NZNa%<0)y zjNFdG&l^Bj!E}F*{eDDNjt_KS=q=grWwM~t6F6nNzfS?JE9?F)BK#B7xp$WRHAPHC zHui^tX!4}o^kiw_Z_}4sG3qh?oPN!U(Oya9`(n^7YKuX;!1%te{LS;-;rr?D_V>R# z-2ZO>{q%PS#_5{Yj8~<8Px;RAUH-ekqVGIEOuq95d}sNw_&bl)cQ&Ev|Ew9sna-9> z7qejuV&s^fVZ*4&Bjn)pJL3DoEAqku4bx}aFlK=iu-P(t39mHy&DJFPJN>)s@9^(I z&T_(MOQt8<GAhb&IlKtDsrlRBx7?q^-%Rmx?=ycJ|LFOxAT4atF@26Lqn6-rk?*nJ zIljmINc<l2-R64`<Md;;jAqQ=Ik~3)vt?8TGgR#uYgm7Ud@o^~KF^L(AwY{u=GTGS zpfi+~uz%P3&i9+|x0d{$mfKuEM1F;U7Q|?A{bOPOt@Rr$BlmmB&navgT%gr3|3Xx_ zex$H{U-rG|d(ro0@_av*e9vQ?&Tr2cEPhNjl&z+9(k%J!RqU(F=V#05vSn3#KQ_J6 zp0Sf<lk8>L=`0S6t}OEZLfEJKI50}+{BF4U{o6_zmOVFwy1%o2m-x>1o&P(>Z??Do zD}M=p=hA!!zD|qjJDc#s4bxj47@e4QIZQw4z?jH$h->onsq#Nm*n}G<OgD36RA+j) zVS2nHqXg5ThUt}#j9N@T9i}gJWIV~3GCkjkQHm*X!}M+^#tWcflj+gUj1er;$}Y=J z-|Eb`PUyGDck`O>vcFQl%L;YNa4-lLOwVv()Dhh9TVLik2kQj3CwCXDzauYPFnzHL zqY{_!hSdAFD_%$o7fe6x!l=L`ykYul7e-Si;ezQ3u8d9`2H%rpSYDJfPET@Ww2(8B z{jvPJ0oU&xf0lnYlKtTbVLN^|0-Z!_FnxzBW2|~d+4o7`*{#28WPE2Ye4h24z4T7u zclONhGH&15zq730`~ExE`d#mZri;2U>aecbuNmPp-NlX3QvRxJ7K^Y}gDS&!5DSG6 zzUs&@eTExjbkcd*?`G?_aeX)YzFAh7f#cQ#FjwZc+wUWyH`o7W|INOE?R(32c94?w zqQBYLghLafE~I~FWB(-kN%p&-jp&B&wp{5q*?yOQpTPBdHYPDW(4Db}?YE)~n-t^p z!|sgz@|(Z&{O0+t_apc_!_)6d-wi$sb$@q|VHNxG{qT1y;ri)u9*hNy`=_7xV6<Tp zuAk2B$*5A#09wBP^NQ#k$owPM_rtR66J>=Xu7GyPi?Ef+%KaAkF2I$SA^+z}sO)zJ zF3@pBqR=ylr~IA*J@xndD_Q7)!d9|#X1CN&mlKZouKrt%_4`hCkQqDKK?jk3f5A0r z4(Ns|`M)Bevfo$!oWk^sYx;3d#<}&Nvm$>pepgTZuKt_xJ7YHpfmz=(L9<Un-^)PM zCeV2|!d*v%CmoSt7p@Q$Rytx~VR5gROOgmmcoJB#q2c$#vXHv~CD(JY3VR*7XTh5B zolRDF(vf@j?pZv2n#fhmB`MtPBJ=asM$z?L_bfn*Dv_itEG_O9b4gZIf_(Qq?fbb! z>#BDr&y@V_dX)A1es<w*574Yt*N*QZGi85IfehJotNa#W7jAW#{@ROCIviwv*Ab98 zVArq;ce_Ab#PLI2h9y^2xLf7B2%B)%3ef2d5ChqTyIsB?mSqFoA^At-w+Jg=A{XQL zD{p^Xddd9bir8<F?^&|j{k<7^7=3>We;59q1s;Z60BXX(>X+pW!r2Wn9Djdwh?ag2 z{jK@k<ah8o^?AD0Rw=*PzdJ~LcmKXXR*kKys-?bO9(3&<tMKxM=@WbyRaJyHH>{8S z&G!6viS%#K$q%R5z6*Uwa=Rg49LG8*I$~;=^mm@=S9};1>V?xARQ3IT%g+9-!y%mA zu<&=*cemg6-?M5tgqJsbUtRgV@_R$}_q7}{KMw!l5JgmUt5>!)uaN(({(EIZc~9}Q z3dxG;3+fk2e?Q0e{ef&cml#wfxT2H)p2ziFo(ptN6KFPA6Fk(-oX#coU1oZMFJp|_ z_i3QR?xVTn|A=VIf)--Tmi-}en%z)V`{$Gn*#!~cJxh(#@B1=JGKI=c|K-bQ$2fPo zr5~d+UpHhrgYn0d2eK8i)0_Pm)#6fQznA<jDF-bcE@3y|`d#vU2HR1te^bPqxW2<T zQ1fl)`Xls5i1n7{Z^2!^Wu%XAeV2*(E@<;s{)f;HVb<TX9A$r)<jDRLk@?l2&Gn}q ze3qV~tcb;QUVlbE!|z(M!Lr{a*p702FZ(U=J>qxJOS#{Z{zYhWffa&Bni+pg`Ci1u z{A-E~>w}BaJNy|H6ar)yAjyNqq<4XHF0%|P16b8Qe?~nn11`{>m)~0)Wv74hXVj4R zt|c2F3p%1thUIwqjqf5tKc;;5kQM$kT`Pdm(huR?A5(spID*e4fO-4-;WgiDzAr5L zev#v!(C<Ir<z$6l{pO4M&17RG_xs9kX;I-%-`C2@3%~i^Dtomo{ml21(>DY#>IZ*% z{pslUMO<gDes`4puK9cNcVW;LOOSg-zKaO;d>8&9^1TS`a?nt^@cjcmT))0tlr^~g zn|0@Jfr*l(Cv%P@@BKdM`(%mtvUg-zh4&wrE*r>bDDa(IR`~vbGqQiC{4o&)iG~I; zDsTzkKk!dPtXKB?k?A#ojD9A5pjCG(6S+XwiGwDieu;b+{w@k`&ZmM3mhYgU^D=Oj z5x)0er7Sq;o(D1-)CbG53GaLGU4s4P)JJQs?d1@@_uxC5{deWG?>dXVx32#l{yli> z_m-94ouj^+Ykud4x=?uUgTGV$z5OmH3k#gTQ@)=S{oX2jtt|cY_mi^6e#^d6kxTb> zD6^3U2iUy_zpnfV5w&qxu-;q#)u&_M7jd1w_T8~wc01Sa%-@;ck8pkGll|`S+ricr zOA@<z>$}2l#qZ^^zZJeKe9!!zg_+)Ff=>Su0jKMqBEJMgze{{K0mZ7xcT2YC`XH@w z-(x}dsm1+{{azva{5k7y%iktUDYDaLgBcC$wYk78-yb61w{yv`=l*0A{k`k^uKF2e z-Su^nadF=d%1VCs{q4*8d)N2%vfiLIDiZ8j-w*#@_`T-$#iHL!N`Dvs&dL3~h~xK% zl<$jw@B02i`um>m9p6j7Z&@w>T>_fDcCr8V{p|}fY)9Pmx&__SXGnhE^?lcO$$BnH znO~RxG=g$YIv4a5gI^)v3%I^($^QA_DEs3F`%$hxSN?>6RCIrz1<EF%HSe(e=>%Fu zBKG~#?`hws{l0VrG>6BxfDiSeF=iRo)!zkWWqz$<i%Ct5k(c?kialmy>MpsT#qv93 ze@L_K+PHC-ybNm?`>xcDF>;^_R~~-1{P`c$o$w1`oF=OKU8tc<hLz*HkkIn)LNY8b zz6%LgOn)1~SkAa(dTJ=6Kc{fT57X~btin5{?+j&>u3ymoS{sz$v0zSF88(I2!u1Ux zInnRYvj3+1m;$1IZ21!++AS;d^8x5Y#%Nh6|Hl-TZrRs=uYjhC{)n&%?{BE*V*4e+ zBJ-00)O$l_g4)(1-?zN}?mOl6Yta2lQ<#5(j@#bI6~-n1E9AF`==U$*_sjkcVRM(2 z|NZ6n7k2QP_%Cepx#YfwWJ8uz?*kp+vtRb#mER?zpo?O!aZRraW0X<(uEKTv<jnPZ z<i9ulo&uTU;rqT4ROEh#+cJGm7-J6OlIfb^j4}1!Rk&u&>gk;+Z*h;ccyZmDHBxJ5 ztXaHRj_>=*1)v+$*kylQIsFTCUetF`2>cA`mzDYL06OB<2Xx0W=!|#JEpk`#L5EcT zo+2vqyWxij+ZE8UeBT>nzs~@5wyt~!9c6S`)`#o+GSCr!zpwwD!up4g?f3Pc)BlGv zy4Ei&`*Hbu$oCsujNRWuDnLgPwsZZy0$T8=X!`K$_qAM$x#WLb`Edno`jiS;Hol(k z#lPdqer*0;^8E&vP&edET+n%>!gcLjf49i|daz6OhslpEqJOshn8GH!@5dIlA6x!y z*(D27Df;Kik10Q{u<<SU%_YP7rn6r5$ID;uMSD8?x_adPO#VKFby98Z<Z9`H`jR4f zncqF^xeL>m*UJ4!{awr2Hg#IZbm_ITR;-dg{p*P6pEvA3R{fsG`s3x#C!&8g{A2v# z`@4X(dFJf4Inrz9Em|YrA;U6Fw6C+bvq$dF#_x+*`<t73o21Li8!H>+f8Y4C_=nVA zzIxWpr+>`+dAnbVZ=>uFUQy6h>Ax6!xY+o9Ed1TKWbeL+lO^A?Vh*g@m-L<CyZW}2 z?O9v<H*Y$4VRQPm@6ns@AO7xh=iVcs#|N%&x&B?_H}9IJRegunFZ(XL;k)vd@8!F` z=kES~cmK5g{VSW+-anqSapAU-$HGh8KmFAZ7Ghvv5UBrA^jltZ+R~cc*{xZvcEP<l z9H60R27%t<Z6)ibFPXYx#nc5H!c3A3ObRlrwqgxSXYF3qx~BDJa7Rv8aePVU^unom zE1DK??EcOuTDEQd%|k65M_a!O8hc751m^k8k&Bz|a-ecOhs>`;v4z{xZ-%sR1h)PL zOCQZUF-NX`$MlN_=C0@XnfL35=+}qV8XBh7ii&2p-_7cs(Kl1RX!gp=wbJ{xY}_R; z%pg65p<zSe>Wpb}Qx`3ruuS^<;qQ5(wcqFe{=Ho9cglCmr{8U}zf1g9<@nho^IKE2 zZDM_QZCk_KnmIMIC(P-Z)jF|dVohgtbJg^+>19(n=C;mko*-A>FtN0~va+nNth=JE zwxhnKzKNq}arfdSQWGZi^h}UHGwssOIoBpE=~>#cvSDxHisacH3yW42Oe~mKQQTV2 z(bnGGE?w1`*H&BI+1c6A)luGC)>qa$b<)&{)B5MHT|0S84@ZA@U!RmP6N4ZF!{y#b z^EdC<wQtg+=Ce(w3$BH1s?S*%RneZ>S=kX(-NezwCd|TMz`&4S6W)_FA@y<C4UZ$g zr+qK{{lE10dVdb#Nel`M3|Fdd)m+HaYSPRyi4V^6OO1_>iIq4sdH=LSZRzFNMY(w# z!Uq@_7&!8}^7<>MR8Q$R+Bv6vQ`Fp?vXGPlhh{Gh&@>zaN0aAdlbsRu9FTOdIqqr2 zl}-*}h6xM~3|;Nr9UW4eJ6AW)%bM0cwRK8Md1qNid1qH|XJ2P82WVnOfT3<qUVkNs zqrkwy(B9VFF5SAIa&dl3QA<H?M`>zxLSB6&hcKf6Ljyx=UU$L7qS+3Y;?C4_bWWPk zJyE)-ySP}Yeo9^aq`JO}31!`79hGy-`s-Ucn%mlHE2SXrC~YjSud3$|W^iG!V5pv4 z-P_XI+S*;yUsY3GTU}pKJE5+-y|t}nV&&AT_PWlxuG-GuoZqc~^L%UP5N1$ekYG67 zd3w#N!#~U`e^~VWu$Z+n_;lv!zV8hE->tv%bbROJ5N4<c89lROM*9poVMdmQ42G$5 zCeCe}#PNIiFCWo`OC~QXklT_lQ=vVjW^dLJ?<E}l(<aPcBxS2E`b~Cj-@=L0r(Z5v zYtwJj-q_OE(p*-WUX$F+A<WRgkianeR?X|^qa5F4A?BvFgD13D81}_4QY$s&=&Y&f zs*@J3XJKGqVraQjc{l$$N7u~R-7}?Sem=1jZQnHG+tzIyOP4KeE|n^oP~P7l=UtQ) zR1?XuUR4w{BgDecGP!kX+tdlS*4(<hh(mY^mr<+7^!kOZb2~V`$#%1UlZ_6n(VlIS zJUM-4*&>ebuA!neH9fsm@>Lh6UR$=Gql<mVyt$L+)=!$(FPY+0WZh)R@hdz<bWhiw z?%f?-o<+ae19D3nS|+qFYCPL^w(cxPH~a5(KSf2q>wg#iE%aOex4~}+t^ZpXbU`sl z{JYS1efjSde}zT+DyRJxFK<n#Q|d^XUo)-qJ73Q{jxP3#J(s#Kc5(b(@H<*Gx=yh( zdO>~h)T!UqC#}8Id#U?!4@Vb!f6nCJ##K!mf8@Rgitgy!*}J2Mqno`cs8hKmyS=Es zyL^h(`m&evuW*2@7wrOF;n%mKe?{MlzKJE1%chrc2rDo!HZW}P`7Y$v|8-Hwcaf?4 zCmfxyvU}R@oz>@i_VjP<Th}#nRewca@zjdVHuZ0>uKUi%vASbT`<f1p?(Uv$xi0o^ zvR$CHr|sX*$#&Mvte@NR+vT^@Z@1stzx!N%*WLK-`Ca+9*>|V;lV(rroXcVUmqWDH z(<9!qk3*P)frEj;rBCg6%;m=K?B5-}v)n5J<u@h<hC|i6H5ZtEKPTJJ)!5l2*Z19C zv}s{|{nFYc9H1FO0fx@K-FtiXa`doGoj7gs<f)4%E}k)Y)}&eW)2pWT^mX_3^nE`k zJGFmW|KtfA!U~Kb3=6(9{AT#hsP<ji{<loxZwde30?r*<>$lgh;kfYIO0=uHyGyQz zy{EgoTmHM)?eDT@zH4sVR<X5ud+p?o?(WHb2WIV`x37NDcfEw~a*p3+Z2kz={SoT? zBQ%RchGoG{(chAnf6Jcut+MUA;??hhAHH*bXPn$NrF~ilM@LV4Pp4c}V}0GEn#r|` zYZtdoX`I?Lt(7C9E21+(uBWHAxS^=IRI)y+F0Lby<A+R%XpFO(ze|T_hsXBXvmBjM zx~5K(TJUhs+k>;~?=Si8@SCOKH#-O4kCnf?zMC<2%WyI<%dmba5`E@$)xf~f(ZJxU z)3aw+t~`_b+bH(T@v4D=lcRyb6{ly<u7bp7%dlP({Vwp^@BHsiGA#9TWLP%L{af(+ z&hN}WY#cw{{51Jd^u6uh73qIhey`m5{q*nM;N4%RPk*2CQ)G4hkCN{qr%y9>gZQUU zgO})qe4ldqH1jVJ&~e5;;(u`d;rtW-C;ktd{=xYp9wZK;<xhiGc**}!`Flk)o9(-w z?4J_Ip@yr$^Bg})*jI4<Q1KRx<^mtNC;ywxQT96<`^JS!x9pPoKCNE%=M)z3>gzXu zY|yVe`u*ikiRkxoE;;QDvag{_%zq20tN#`NiTwQXR|K>V_MgaQ&_domu3sV@Tzrt> z?O4!49?<FRBHuYdH_v<*0gVO!l3{Q7H3f9A;om8sB}}ohqV?Y`WMzIF(Bl&R^D87# zR)*anmP`28?=7IAX?D<l2+{A;WWSq$c9#4&kOn#&M)*%RmkhhZ1ljK<?5kwu`6^{W zEke;o*`HHDcM%EykzsG})|7<`{}TB*<(~)}n&^)ypo@4xqV-V4!hd8q8h(Xn%KoYU zB3mKLEW?ufqfzwVlwVU=XVh0utdeeS>g;HdF9zQj1iEA|oa_6U?`OUT|B0BHy`g%| zOv&%A*H+J*y`grE<nP!Y1*|`WKsO3;@cpfy2|5SKn~O13migzE?}D<Yzl(UY{r31R z5w7bjU;onix5WP69@5^wMNYGQ&-l*Z@LLnKMS36CpDpaaHGeZW{LYYrNP2vi*#Gjf zyzb@i65-!Hq#@>H{ARfJT~i*k3H<wE*&inC-!;E8T>G8@YDLeK1uskkh5dIC*x}=# zt~Y3e9wgfRy<P;|0|re;2(O#IK$y`XK!$_i`%<nSB7a2Kg&8^=z$bsR3o~XgfZ_xs zs3^ejUF6>sHsJ*t4Bszu2|I8&fW}VPg%>ac{1*AXjEh}ZkwM|N$ge4EAh`vyqM$J? z1r7$#NSLAk!*3Bb(Dj8PqQZ<E^$Z|6ur(lAMh1uPpm7pWkO_%gY{E-31HOx}rE`ga zE^9svx+`7;WLF~BzbT-76ZKr*ExG=R{1OormSb=DKINat-zh&teop~KJG;#9hCd>r zKc;|Ida{E=MgM|EQ<iaoE}s6e5*#}9-QPt(V`bgnJwUS-kns8r3m;I}K!v7&k}yb( zi14JPLBfm<tTLPoKc|R7!>K{!HzdFu1VHQh7y>jvi5JuzV^C7~E%FZ(mQnB!WO8Bn zF7j7|O_-~m3mk+hObsCQpdeVl=l~8>2AA(5zeGTR$_fosRVJq2B0ojg7RZVUGckb! zj>(1Lw+KiVgA>DFksnh;g&C9-K%<4i3=RsQ!AK?t0Z_<^fTMs36f5k)Dhx`XuoL+= zMO3(6fq@02&H-c{$mI$Q4vn&6!YT|4zVG8=7v^Hn_%}riG&n5G)BqZ41gT+UVEHA& zCOnxtE0GJdIQ}<i_1+)Q#(+l9NmZ6y!V{x(6S+h|PWvbFT_lm~hX~jYU?P!=jV}rm zlUqciW$WdBnEW#Nen3{{*MaY1T)#}%K;a<zN05E@l!HrGuKe!v-A7{O%B2UV>;~`R zpYnYcXjz~LvkYs+_bH;SRZUebEuf(TiI$eCrm9ws?>*mp*nhA2E&|?qEB|}TKaob+ zM(}QVkzXd?!80)+i>9z0xVmb?hI)CB4XhhBth#ytv?T3E%=ggWp5GO2eHR6-$9Qw_ zr^eOqY2TB-w|^HAu9ab*|6`r#y5eQI6Xkl^n|j)$f9w8M_^!(~VM<R=zx>LHi<hpK zs{EcQx~_O}-UPXh7LW@0-=g2;*(OZt?&*^k?pQHl@uGE7GQYilTZsPVaje(+JxQ+n zw@&wOo;7mcS=iIB-YB^#{e0iyYx3Vue6RR@g8gUQZy!;G0=4#Tso!6!)xXPsSC#s% z`u@B8_b=6Q-5=V&70CT&VGmp8wZw8F$8VKsrmnvQq<#xLbp5U}P44c*vrG3c;}EX> z&C33>=sUZp@Iou+a4oq%^*<*4h-RBIt-fob^n><O@%B;y2@$ppavki#wGUg*MmvJm zDfC^DmHENICY+Sa^<yPy!S|aJ-?P6reV_Ne>3jAM;qPylf4=*^TlBa50gdm{-;Jcc z8@>B3{ayZ`++R=jA3fjSiT*ay_$~cgK2+|f7yEbl(09M3e;Y}C&ldZB<M*uZvwq+B zeZBto?B8I<_u0Q^f4~0y#`js@XMevg_d~cv^!LZ#mw#{k{YmckLAKxDe((6c@%zUg zLf?0MpY#2j{P%-w-#>l7{CmzHA^Gobeo95kKHyp@tG$-%ALxYZE9XGl5z`^dXn%nY z;r@4}mJ4*2_8)MyS||(Re>eFK+G5zr^$Vu{x5;-Ac0N$q02-hAo+&#UbP&ktpHohQ z24lX9fLOxs8)VoH{JJ9gL*#D=>)$DC|3rR<z&SE3TYrg&{-|d&;QCX~cCEnmfVs4} zYnVfU{GWPr*&p?6^Fp`BAFSYz`StbBmlWCh@48&VLJUS+!iyMkW&eDUVdZ8!IB)y* zc?UUudsd5n-z^)To*pm%>&ibC(Qfwd{#@U4x#Wc3H+(n$zVYt&B+wo9V!}cU-~G8j zg1KB!aXCI^u0N~(Mu-+QRTURV70fAK(j@mi&i;GC@A-cirT$G}`@#4<;rsmW^>Nqb zZptci{T306??`A(lKa=h*1Dx*+jgm6Q)GTIi2j?x_Wk$wsPA*XN8gtFUd8r3+WLFc z@43H!OYwm<{Z`BREgJrtQSR?6w(#$aS>Hv!t4aNemig@<`cH}N>i5v^lHX;&OCIC^ z>6HxqF8N#b>hDkvxby0f-1jj1k^3cWj=uqHmtH?Q|8O<OO<B+;_XlO5J)R+#L1VMt zce!MKEjleK!}5o%;``Iz%fEa6_W92D9fX&E_ni0rDF^7d&3V6{eqa9E^SjS)zTY6c z{I_St@24CxtZ_1I40pNs61je{d>2{$UBtWoyNLF8k>4!f5#jG8t3kIMt^Ph`_4kt1 zuR$fgi16bQ;o~KsJq}#`{oP#?<j=M24)Bor&9@p<5}q#kUduIka#z<RxdRRBqr#+q z3$9+xF8mlIe0q1dkKFGr_QH<BmLfUfM?Zcu{PAFIDe5RJlqzC3<dXX<!uGv>8`tK> zHF+!Kf1mokhqZKJ-HKIG-%HrP*K)}TUoHU|A^+QfeRVGD4@Zz7NI*^xZ1wSyRkCv5 zMOeIii{oPCg)f)P%*mRRDg9eWQS-NOvwTlmTX*aCM_j*4*gaQx?}`IC;QNW+dsu%n z-8A^l2D(*sCfDNb`b85L%Y)p@_``#B^12Bd)=PcwV*f6w_?_vuRC#%4TZNqP>5?;X zP8)5c6B6o6)8vJZm#j$$pA#w#-ffTtDviM->fPTT$$l>Z1ss_CE+YK-f$-}GzgWHt z%AVXC=_~(NW%Z9G?84t4e6QsK3CR6fvif`d5|Fnb+&1>|&hm~5Ir~4FtZ_}rS+UZ8 zUD%RS=dCW5|9)Kd;*q15HgBxRUM%-r?{^~W_bKc@kn}ED{ZoZq_%+CEP@ouEL|7%s z3x9vmS6kat`~4BuA2;^J84*(xrGG2^X8X<lTk(6I>`xcA@AV8XZhW05fBlCB>x5-} z%a=?2Xk-7b@SF47Z~11qIqcshelvV$_$^Ue+tpDkC;a-sog|BWhSGcsKvmlE{59Z- zgYTTOtG|nY?oyfbUF3T&C<s=s{tmj*c>kVXM}Lcmo;o#o)^Yjo&mXXUXIp;z<99Bp zp9bIW%KlMh`&-ZPy_t1dUe3fE=~!9Cv)b>{<hNIW)*616{cg+kT~Yq~Ot!Yh?t%s> z;rliE2h8s#%eAp*OwO2<EvLQhR@`Ul?;<~=MMKy<b_JZNmHYkdw;pRtZFNVrv~T3z zliQbW-aJ?SyZKetANjvqMB@vSlPl$ZfB9{~+SXXzUN7wtySx7E^%IMaFO&bi?Yji) zq?xn(W=n%2L;iQo&lb@OY`>XRS@R02Qj(>9N3s8|Rb>6Mn$0EX$R&B<`+HV_4wE^} z_Gi)e7}ltHS-THNT{?Q?;_O)+ZL{Qr@7MhJF7um1)PU{#sqc!c`xdR)e^^TR{+^2w zCtRn=3Gd&tZrQ@EJEXqXr)2+5VfTv+@%4+?c~b8C9`;o;RxVl~_g&_@5bO67Y^%8B z{~E9dBu50*%Kd(B##$E{)*3F&2U<P{YACD$CpnR8vY=ab%0SKbdeA8t!EB4U<g?j5 z7kO=skozq$?K`vTcS-4=PHc&wbuSjpT-o2JamoGI#`e8_({E+g->zV;2;28-vfsb6 ze-}&oE@<~z?$3pv3t7)b+itRw{yA0V=K)Y>=a0x`uJ4iT>&w<;&yo9m@w*Z0gr>&c zM(ICCFLSMCFOik|;m@{Z!?H~?<WGMOVeOmJJ8h~|2$uodUlBI{&~3*W<lE=<%%3N9 zh3n^))qk(BCDy0qC)LSkZ0p)^K<WzDuVA(<8_Tm7%m29ecOmO>%Qb3hpzYnir+oM3 z`swmrBpOmowR{(mVHE%^Li>5-yP)j89qEzN<-c3}wPXD*%=TUN$2-=&(|4@jCw+Q% zgl}V4Q)iR>Z;3zKS(ma2zkByXhjq{N9h>$`pWGMe+tgLx)Y&XAeD62MpQ75psev_t zlInj{SrZykbK|A|da)H0Oqo+E|EK>4KWpaF(k<JhE*?E}K~DJH@?}j`3+2Bb|6RrU zy_|jWZ_yvi8n?-HPU)OFRqEuf1E=?coFw<1<4+muQnue(KUr8oo$e`8r*<AVBllBM z=4XTGrzaQRFOjeR@Iw_^?kwtFIANjOca9&0tP|$-&YLIoT|oEaZ~hr_-&sqwZvW<x z{>`jy|C^yu-s1NMl^+hQ-x&(Eum5J2{>`mv`kSLd{x^TEk@9bTsfxbx{&KnR{C}pf z9=8rWsw6FZ@3;JKj^C`m70kETo{g0M(f>z)HEa99%0tpW>%G{Z<=AR)@LGfK2Y4j= zeah-=a5?rn1eBk@hkO?iemY0^Y0giP?}D;d4*5FE|2en%HTx<sTh4IxX;3)^E}s3^ zh0o4e%@!?tXiIdM-0xg=uV$}mZ#n%xEUfu0h2?qDf0Ll4n();*_1}-n3O}E7;qbAG zTQ`?wEs^`K{X35JhY0(RDeRE)Jyur!&vy1jDRI+drGG2@X8X<YTj6`2?9U{&$2X2Y zSRnuW2Meq4)0}x%r(C}#CH#EO_gwbx0-9fb3sqEtO7BB)9;=<DGc#LibL6+j_$~30 zZfNZ4YLNe4!2Vt7H*5WOp5MxHkUm%T50TYu->3W$5zS^3zB=cJ$ZC*JAOfIGThHgL z2A{;RW%X)snDm0q{RfwOtHBp-xyybR$zPr-EBw7g_;-m6E5|QhQQ_}j?k1Zb(3h^R z?(C?R|2~twpDR{Y?l&uY)ppi*Y1;K?6{TZkb0+3Y%ai}!{Fj6Ek19Lp?x&vyY~Q&) z-u}+ET>ioL=d81iPd;@@>bonu@b8k(aksR$$<5A6o0KLk{5|J)&LmM#kyYJM-BK(6 zTkrQX)-$yMyF8>r*e-q7zxv&rb@SZKOSemZFZ?YndUkiLM}2#BTciAMliy!hlPl|! z3**6M<?O!MlV-|)m-xPo_4u;IC$3A&{4W0fTNG659N3)|HBat)%%4T9r+<PjBVWZO z_h&V`;_q74-%)JBzuzRMROJ=OtNvzYy}<sv=cgQN+pLaRv!#A*kom13`quzbVtzlt z{$1$14C|r=D`%{d{=SFp<jx2`-};b9Kl$G&*=)k!zkE+&+p%@wx@GdN(@sQOls>$F z&AvtQ-xa@~Vl`k7Zw;%9lr#JNoK^Vuo1of=<N#^D?{N#tem?l_!T9~|_bBF{Z-14D z&IR4M_IIro*Kbbtsst{%?|c6q0G;S6%{FJ|0<ND2zVBn7Gi&A?`Cp5^^N7yws-00^ zCH-5Gt*)WDp-ujG;h#Az)vc8+Rg$f9TIROQ{$226j>NRKhRJo(zm?dkYwN1J<Zb_j zvNrWKPi&Ec>^=N0%{F`HjM+W%JAOR+9`MJWwSMBXmg&;pdDv!5n>2lb{P(~gwmbhk zV6E<%SvOnyyA<0L(3Z!EllmriP2u2M09yZJ^5fHY&+lu$dweee9cL%<J?i^`@3B85 zznd`sTK4m*s9|KdvD|O7?`yyFvt3x;(lB3sbLsq~K&kz|H;Q&l?3mCof#c2Y6Q95H zOMRDd{m%TGb*tR0l-Mas(!Y0Uae)@leV4N4`u^#=KKu8uKa8vm6Q;FJm;SE9Hf`F( zsr3`&Cr;^}-ZquvkGc%Y#)q=MKnJ(N_Z@?-vNZwSX|h)qM4B-F`1t*>==aB5-_^gX zevkal$Q5$f;(IXH)Xu4`{Y^V8B_=g=)-*SAw6`0n|F)3+$t4C-tMOg+d&GA}uF%8g z--EfPbxvuW08%@#p|hqQtk_unx25#&=f93Vl>Kf38PMbVzA{^e)q(Le=t8`oB|l3< zwY9%*{k{2j=<m=!B|pIMvh(ZLziqzT{5AP&^3&w6$@gVktlvX^g^2zU`F>OOkI3uS zzqfwh{5|x0=#P>=VCZ~VTl>4sZ=0VcKTTLc8zk#x*cq6ACVux41syUEKHpvVw}^>J z^5);Gf3N<&`uFPBuYZSp4}ScZwVNHpWqtH}wkT+!(WA$klfQ#id|$1t{XOJ&Fl#rv zu`z2mJ4oO6#orf$4wz^CKD!-y_|cD*>ED?H%f8Qh@b0_+y9Y<US1NyJssGOON@&7& zmhUbPAAI-!&i3GY(07*Z?=0WFA3XRT@SXMHckk~k!fS6G_$mKmz39Hgtr6jgi4oyj z6Zh}ix^=&t3`<jw=>Ehl;o*r%;ULldAklwIx<nOBOcfPOAAbA#@X@!gk4zNhWLO$| zL={ZGpOJlNqA2(8K$qxu-QNQB-vxi`{nq;}_*?L|?r**Cg1-g7>wVYzF7RFOyB@^& z?|Q!lzYF}<`>p$1@HdDCsS^0ED<{m%!SG%0yWn?$?|SmWtqlzSB05BWPyU_!JNfry zIbjEehToHZCx1`=KKc9P?;v^-hz3c@|1|h<QS|r8rr-75zbF1aE%p84_gAvNFZRe? z`fl+(Vbk|SY2g+Ihwq8s{ZgF2Tgv|^{&NvzauP^0$Oe$1a>7j=4j>ajobQuCmw<z; zZDL{gJ@3aU(eL8FBYw}n`}>&m?_<9=TK*RQ9U=dRk?pwacHL=S9Bw*Ezd3#jN!9<p z_<ic{Dc>)A_xNsl_q*5^u&LW3FR9JU<GA~sf7jt|so$bszMEKn_mKX6;rrC@Q@&sP zE|m10!|j#4utjmhv@_dZ9>2%|S`xAJd%=gzZQrYY1b?p*`tJ9=`bW_BYGIq7B0o7n z*J3ApkN@8Hz5jQ@_xRs^pzCUX$N%oH|K0aJ;dlJ^KKY-PEZ_OxtN#}G&9AQhoBubz z`up$v-v!>k|IRNjeCNmfzXhU&`&_o^I&yUX7FPS6_&f2p@P}?W-K#DMg%R<FdlSC1 zIll4zE>-fd$=O*#RZUCN-90I(+jC3u^g4;n$!EK_Z2ms~`vQrNs&6&Vxo-grOrKFN zv3Ya%+2k$1=YO9s;dJ@Yl<yLYU!Rct&USV0w)m%@A*Ua!-~5#ME^=A+m+`Lv(Z?>A zjE!AfjEyh3JbrxX(qp;rS-<~_uJ%sPu?lmG*RAqx-5)OTJ@|LfioEWaygbRKro6nE z?z|O}QM+9)I$!x6{5x0zBGNQPB5y@^{jL=&_UyiR@$%(;`z8D)YR_@oZgn7i)#}r8 z*Y8_(E{vo5ne%tG?`qF3cgvkSurFtBI!Dy^|DwO$f2;mh{p}8-zpH+C|L*=>6-I-^ z<$eTww@{Fc_$}fCTA}d#_j4Jx9lxJ^e<Hj<_<{_ZEO@O;J)4<}OTC%=pV{nxihl_I z5&BW|qu__|51}8$azAFXKXkunBKJ4s-yYH2-02I-<o{^?kYFuYShs4m)R_YZ&a7Nf zU$#*0`}N<azF+@-igm%l71LKqpE(fbm0g=tQY!yP<BtSuS!r&4t~B3|l`^a*d!qLW zfo4{O6NDGYuwGLU?cUSfE%&|N|A+nebw5>}eoxu-_{6~veLdSHgcG`Y|0MLYR&|%x zNp0$SU%ATSkMF-;iL$-F6Mw{%9Q~g8!%t%S`TN`M^l|KAPw4vH(*4_{tE;}JxU25F zV8_n9Y)1~^1<}7*m42s}r}%uANc`abT_xx2xuq9-Id-xCncBlDoKV(XS1om^tNvB% zI`4hD-%bAr>{a#o&HG#L_oh$<o9|A)cl~s-`R<;1?K|)G3;i6z3-<oG&0f<})F36C z@UrK->~DiD+TU&eD13MQBlF$%k32`$fv%n&x$n&1%fE|$Z~o5tz4H6+zupp{+t6SC zEdS2;Q>pyRYsT)^Kl8uy{j7h@{LAyFxahk2oJH9g#W`7-tBTjGTeND8+^j&+hKfJl ze>7tgzJL62Lt^@ZA6`GycWvkRzW2`}(Oqr3ns&+s)v>m9HTF-En%pySO0V4E=}F(6 z6u;~K)_5;j-%=1>E8WsIanj_~yCzMQzx12!xA?~2QqtY*adB<U@$$1gSzCMB8(XAX zT6-sV%GcMN`|XnaTVFx-x2ELu<^u(_QZ21*EzQwuCN|2s{ANx4E%94QDrQ3Llvug* zvsfqgOl@zGYUylk?v!(@+4|e{JL7Nt@7n5;)2FOFK2v(q#MYMP)R5LjdH3%u-$m2D zi%aj>Ghym(`Renm6T14RPLiHHv8$;^ezwPVr)}SLzcak6|E?ujKPhJM45>*ICr+BY zHMec5-1+a!>%WVB7ngb<_Q&t{uiwA^_<`u}zkc}r@caG?MuWuVUW-9b)=T38)nvZ} zLCbvRbp4+8o9nm3@2u}D{@6%d_#X8=<~!H-wECY_DH8VIwSIGd7yoVe?6=b0-}MHY ze(QE|{H_0^DXRZlG4!|XZ%?T|A>Z%(VgKRiDfhkVNBHlQl;5%6*>t}9Oa6ZPQ=3(W z&FHtS=%3!g@3Oy5dVg2{X8-Lf`A73F^LLx3?~WV38$Of#A@RNByWx+l--bUlIR4%! z7yWJhTl%;3Z|mRI-=%*`f4BZ_{ayMyh_1K(E&W~kw>5Z9P=@W~pRM0{g?@3a{!#i? zc!O}kFX`V?M1M^BA^IceheNA;>ko(D>E9Rpe)r+K&u`67zbBRdE=m31yi<9{W2YOx zryKuvGXCxS`@`?B-_yQleYdOma_H7~L5>$qGY@u432&ITBXhUu1d|EzR=)+xezR2k zX85q9{yW=uc@K%2?}4n}g%|BQ(=D}rZ{LZ^sR8}JS$donH9Yw)@!k2z?%!G+zx^!& ze=}DtQfRBKoc4XK#P7AgC;b-sbNRc`@82B1uYXtke*AaY4>4&_g8$AX!+N{?#&@nx zSsB)=GORM9zm2{t{!V%LyP}7qtE;<98gv)*AJsq2^?yo#@cohbkzXp`HFH+?OzH2H z-_ss`SNd)w@2d2hKl!(~^zY2y0pA(FTl|)g*Z$7q@!hWNdl*M|_ttK?3E#uceYbo4 zormMQ#dnGCAXS;t-^IW4C%b-;|GxjPf#~<?znQ+*{&x9pA-C1devy^5zG-flz5Mrh zhwqxdr~W=BRsZ|=Z>`@`f5$t@g<gM@`&|0gwS`;G%YS$KZt<Pvd)@b$QhW=3x19QE z^1a|EfBDn*jNPCMS*^A+*K_@NE&5$1<GZxycW$|j4>x>%E%n{|xBSW9X1`^AJNgIx z7Le<ysp+nf{=@zI*6-<mn9SwBGkoX!ZuQ;jyYAWFLBDN(oBhtJ|IPoqI4{imH&=Ba zN0Cvvo}ScilM5=}ZN3YBH#~OaJBwWCcc$<BdEfb^zrXl?^n3RAtKZq=|5&sAX7%_j z=>1zv`gh20=kF@tqvd5->e(i&?OnG{%Jrv+sB58hk*A#gca7ij-#LDpo#I%3?bX`* z(%+eGyZvU7m-%^2=C`)!cZT}?-$i!5mOJ^|{kza_-S6hw90|4>$wtz@+1yTj=aB!= z^D|cTd+4O^w%_Hy2S|VS|8DnN{&(mk`M)`AeBW1s4&+Pb`kn<sA~K*WxWSiT{t98A zGi%lyIT<#G@1b1ZJ7oWbOaR@HEAsmb=tdPb1JIeeB0o#M3(M9oh~irKREACBE%SG| z?}D=4;o;u$GQVE1d+!fFE%$v1+i&IXhDqP^qP|!9e_!YGeb#sV@68(yZ{53V8^^D9 zu`5m|w0HjI`jeq95%JFU-f!J(^UC1pqVQbr8s{s&Utj+HYMcMT*zKto%OA}BuCsdM zw~61Ge`J1;nD)EF;djt)iQo0&9N*p8PVe7;T3&`#g8g*(es4Lx-&4MPXZg<HRrWpY zJHwBf@66wYzB7FLboV=x(9F-@H9tT4&h(@9JM(w`?~H9Tg!fm-uvRvRPM$JpcJ>;M zZuYwA4U?OC8~d6&TUuIMCA_@sBh1q|(v0;gbfmTQ=4~*MH(PJN&+Cl)`H1UT^>?#x zH6CxD&(Yi6)72x_zNoA>r>(9trL{kwqnmw-*L<HPep|GTnOt+c>hL(=O%g}q`){S+ znWVoneO<WqgZ!H<kB(it#?js1-`gwqC+Ej+(V4UA=G0HGm{&QWp~1^b!s{$+UweCR zn{-oSYkj?Zd3jsyw1%^u5}sbHZLJ+`t@Tp%(;6nV%Jp`#HcXq=Hbr{!gudQh`3Vya zAD%Gbq@P5~#EBh~q^C}sIBlBzvSoF%S|<6Nk~n*o^+$G)=<Vw3xmV<JFD9N0Js5h> zXRGT<j#bWfvuvcTt*dig<b#T}e1iixx_*@Z+|RbMd&|rj-CJ|z|1q)^*Ophx|FvN+ zT~@QCzEy5-!?fAc=k)eU%v*NkSWgef)2H8g_kI_Z{x15RC(`h#{4;~Szj;81UkgY6 z<~1~w6W;&D$mq8~#BUL46N^RLo#lTRvL9M}eDe;u{X0)BzaV|?WKrx+`JHh~{k)`p z%l&5j&G1`Zt}tqPr*!`0`qcKiny5vM6FNESwy)^eBn`TB*yOwM_lWOdzm2~e{f^K! zO!M@R_wvaw>on)+WN+;L-D4%y#g@J$?PT%krX{8Ac}?~0$@Nq6IeOSSrxZ=BlUw1s z)%RfN!O&BQ7jrpsF5jrRC4KA0tW}rgFRnbb_29vS2e+PFd68q~<=HoGN#*>wDe8X4 zVYmJ!j;-nn3x6}#ODp|mDNDDMZ|Z1k>1^z3>Z_YrJ)v%9=F+JgtM9*<^FaFbi^|kT z@)z^YBwqIAXqzyhbE5Rj88fF(mlwWYF>m3FxfOFbz(uak_oj2@-zWW${qFmH<@YY3 z@1MWF{QmU&<L~Dl3g4Gu<3BF?xBT~~KXKo8{@(fBt#W!!?Xnz>-}PK?zhC*i>4%y0 z53}#R-zzq+l3%sCWKnJn$M@v#?4spM)%tx}e44dWrj&39@9%G#(!Z^Ld;fR7*-NvQ zW_tZLsV}TAoZYf;E{E{_1#>oTUwVo|c>mJVvmV#X=lCP{!(a5rL-r4v-z$E9{{7{* z|L=m|k#gU66|kQ99`#+PyIbnJPJQEV{sQ^m!tB4pTmF=X{LzsTzW>MT$KJ~Cp5NEY zO=_52Kedsg`<&|&bGh&3-%D7#e~W(j&Ls8Mq)haC;P<$V-=+KIew(rXzViF&?(gwZ zps~CkA>T!QfbM$#@?C`SBzT0L*@x@<QrX`kuh|M^y|;sU#^0s5ytm8#7O7_smrdu& z;cAp+2W@tJE&9EgOI=p3muu!+`M*=XZ$ai)fR-PN%KU2hH6@*k?XSq65Yg`?{*X2A zC5XKf-$7eN5Dux5t&sg;5+wWQin;8ME7n~9ru->U;`$!L^=nF%?63OQ-?c@jPw$>z zKjU}6_W)2O7BGEA_x$?llCeAMr<Zrv)l2>k0KxA8pnU*=zXN^;{tozFA^Sbxd*Jtg z-+?pg=XXz^F1d3j>%Z*ZtKlZgu!{e<APO-mcBcfys6PRJ0wjJHd@leQwdMDg8TIw^ zyJt+7{4wRn6jqtvnSTS6xIjCH*%_FBgnVBn`#lkIsHzNGgO02WOT+hS*&qDht7U)j z=YVd$l3`8wz8ADhWD4_-DL+C);}a%KO_KksTqFBanY}S7p)Fqe*A<qhTu4`&eNU2= z|6RiJ+xWNWZ_(ez-|IKXeh>R@^xf!tm@k(a7vF;K>|CI&qs%gF7iCzki~d&puE;vK zvS@0N^q(oG*>t(SOUlZ7|GC0$$R+=Kini=`U9Kfdrp}!U8Yfc(UF`WU^`ExrpD8u6 zKc=w%xbh=J^v{*=A-|{m4*4^Mt*EH6vQqxH;%~+89I}$%L3F*fENFI78FZM^Z18rX zA6riUxN`c(7SJ^T>`y?at5r@f?JaNq^XGS$#GgOkyQ(KucUQMa{uTK>g|)b;y0}nE z=2ruI*|hRG^>QuKrnk?Ko;<myf3p0KKi|84{Q2EAyJdFw>`9WK`|DU2Pno@VsZ=@_ z`+|n~Rnz5Ue%1f^EiL-v%I_*xncrNXL#?V<|9ttiQS`@_@3|16Ex&VF>$$!si2ebw zWLUnjgXKVjH=q{pk15}m$!?RCVR<07P4?dxF?U&cnO_d<^^+Q=waWbfZPe@RpU^cy z+E!ME^#J?ymT3(W<^D|hK83Zny{)HBx}I;rf-=URBHypb{uBY7HX6Y79fH37QT@K@ zPcx{Y_IuOsZ@<I8^Zj=E9{ihAuJCudLyS*AeM5a?e>KN9+5VbY4YPY!_N|z(Y{GYk z4c|3yerNm6#!-LnQtK7zAI(2hzi;~fO&+uZTjYnx_bHIWqrOl1zJu$#NWI7du)X%6 zi@%}7pD914OqKoq^^fZJ&3~HZy4k^Q*!=rzpX}fI-`z57?-;v(fs)+!x1xWZu>Y9y zeGlu8$LxQm{N4>ZDr~oCH~Wt%zjyzc@*6DvW6CdXQ84GvV}#<zEI&Z<^)QW~lMNlp z8Sl!l#W2gTt^L&}I`w;o&3DG%))Ri0P5Q0-TiE*dERH!_H&59leRqAVUXy%VaJr@Y zZw8Lv3~mu&nbPqo_r6=D$=B~L`7W6AJtp_NuieAn!u6qTRxygYHf}b~)-E?RCH7s} zx@5Za;R7bWop;M`|7}{o{kQ4%-zFTtozL7hekJ`~@4Mf3mG7Is7s-Fm`o7{j^Y`3I z-;F>wAbjVPVY%?#|FZ1&g<OBa|GgLeeew5^-xt3h`Cj;w`*-2@y{td^*nSuO-V44! zvgD`88?Enw-=}{s5$gWF<@=WJyqmt8eE;%&i}3#M3%UMs{JtXkitWH_*80_K2eesV zu}#l%uwWIwzv?$zQIWzCg`lD(tG=^2+++Pc`L~#;PiLmTyfu4sealq2@6~LnpnJW7 z|A@1dw{*<yl>4q(%WC>3<T1PO{wtGM=k`vRI8W+_5c}lD?nXKL?;@`+vwgRFcJaH@ zcg`>Qzjft)JC(7X?x~)YB>m&_-;4F4zrQ?WyEuh)Ztvv&c~U>v*k?9Qsq2@sSh(l| z>-Xh<=CGAFb<XRMJJ`g^x8S$I_n_|<-<7|6$^LW`{mx|c<Tq1rL`iD8+;5qezrBwC zj-B}VM~=kzM~<wP=REG-J9qBhU5|4Xff1R}#d3dG?^O0z)VEhk{^s~I_jgRoZx6rU z()GHMo6;f{2TA{CGBWzjWV6%#T$X%GZhLmN)b9)5fBv5G!~2KN_n+UVe7~@!eRcCH zxif3FpSvj~^J~%XXwkdp&fUFt&co8e!^6VT<J>*DpZk7)7uC`E?cEY89s1jQ(kmVL znpxe8X3d;Ab5ZxqS`NSC-$l!wOF#cEy5Pidd5~cJ%-UHs-K8}(939^iMJ+te-Mb5N zHN;R$dA<cdTEAcV!T<f0&;=Q`GMQh|->(Qi5WaBXXQk+O-S0);7k$tB!8L=U`-ehz z+8=(ozx-^AzDsYvdF1l%#lMAq+x{->|NXG<_q6YBzvq6Rtoi-mZ}uNzPrloK;`qVK zF8tv4j{4sTe=V!qexz{x`uRP8?YnXQcQyO(vU1<&{?_<C@w>|J<I;cndVa6}BNYC} z2((1@w+QIy!ztfIm{+rObIGtDm>~P(i_CWh_Mal4#dhFjaNxbFqTj(gVA*8Y6TUB% zmHFY2#`U{IhLhoY$#*F(P>W^Z&tKmQ>wl^)Wb9rj!|J<)S%!`G=UdU=c7K$Xe0TjW z!*=<=>Kj)RHaf|FH~sTS^!I}AT)*dk=leb9yU=&zC*O^qe>Z*f?!d=A@Afs%mgr{h z?(FN4>Sq7G@wd_M1K(YL--7os|1|$l{iFJ$`TOhdXTFDjKmJ`yzMFl*RMu|xzx(R{ z)QSEn|0DfF`bYVX@*iOO`^E1&e>?tO`CU)`_nP0ztlyp0e|vxW9V`9&#P9y!{l8EA zKJmT(cmMYj-_yQ_eCPb`|62b0X3+5{2Y##nKJq*0_akXgX%bS-xEg$G6YJ!k=S9Ci z{IQnx?`t;w-`cEybpFbV{;K|7E%UoR@n<#b-*@aXESu+v{t^B2@5hSYk6C}dWB={* zokR3r_3!H6KmMF&{rMVnc>;K`#S~B%6tWuWyU2Hw)89?LpOyV7@?(kUYc8?ZT-o0z z$$mf2^_%6l$WIpbDJ_$l<h0ptaaDg8`Mw0aBKSLKMey$>Q`qKBn=yZJy_AitAy@H? z@_7w%e`KrKZ*hG;&-It(x5#%E_7z}u3#f8n|Gt(>?)R0S;Kfl3%D(U7f-aNh`0z6y zbh2<r)5N--##YJ3*4D;)sox_1-m$OVyX@HF!yMlkcJKMld{O!vo5Qk;VfUqHa;@Wn zEQnHI`>k8=_S^8coUgn>Ow?~CcWGs|?@W2>cYkwBL)Sli=YD_pJJSmJ?|<0N@A=K7 zuuJ~8+{p{S4ZrJ3zt#rLY$b7hzv3_Z`-&Eqwl=$K)OY6Z4AJt%hYOBn@8$UU?zaeA z{lvzpt#Ta`CU#Abo;abmZ-V^yE8jy{r%sqSZJN}y`qpWU6F|57h<snzDJ#QL_j8u$ zHUHxda-ebfh2JN3vtK)Y{HpwScd_4&zZHHf{C0xK{Py@I^24>8{kzk5u&Dfx<lj>8 ziH_Ibb$?9yuK#_)cU{Kr@47OqSHA1M`L6rvyDqZ~Tka1pQDrkTCAojA*uK~6%6@12 zuJ~Q?J3ELzf4U%gxBSZ7J>4r;u3Xu@CwFDoey{beb2+}7T>ftM?YoEc_x|q*zY~7< zMKwp)#LCwtFG$!@%h5S`a@S<()hp+(o+>|e<>XZpR&iV`*ynC7^<7u&yZLX9@3Oyj z*T{W8p8I>o_txL%rGL--UH#kUcZY?1{qM-U-#Wi-e<w=)F8%KP+xvT&+^<z^-vhtv zeb@aSDF3}r>^oc5cP8(ba>eVSr)Csq6gR~z&fwVPw%E!-%DmV*#!ap`V@mY85{{-B zv)X4#ce5{9JZ<4D`O~k~d}sR3CiQ)a*mvXD@4Cj{#pH_D$4tp6&M0Y&UYx;kQEB6E zf#3BaQolt~e+#%O$`xl!jagR=HfAQ+nCS~=$v^%szVo~8cVj8O-&4Mylwn!$eLv%R z8P*-lGOTy%M8ETBzxmDcn@3CQH_vbGH(K9$zVp0(^POAnckTDJqThY1zQ_Ja{;ntY z`_TJ>`{$+3o&L`BT~)68yGr+(G`ZiazWdIp-@EU-?B?&L-%WoTeXsvx{>S{c&F{&- zC;aaJ&ZPEz$8R~g?>m0WeisS-%`Eks={K9>Z*95m-`d^Y$K@97>R#I|wWjd9DX4j# z``bDq^4=ewA1l6Ff9G4d`>9;nmipa$q`n({=lU-8U1z==UliBRknbYQKSREM5q%~5 zBSh?#?2mep?^{F_xUxW7%t2d`r+hDI<9hwQMD(TX9}%&avY?f+SH6D{wc+}6MUU&p zl|<PeS7N#TTw(ta0@esRHSyP#?<I`gpaXB)xPEW>ULyMA%J&p5f7w4*w7C9UQQ_iS zkk0j8gb{Rg189j1+uiRXqB1|-*fM^f?X0hySUJ5`vTpj^=DE_}>$v95ojhZ@{PdX< z=XTEJ_$~5%Dc9=uf+bnfpyLeKyg&=i{(#mSgIT|)uxAw%Ww*<l{+-P#!?uR)PZnrn zYR2~?T)#7xa>@Ok!v4LJ>-!Y;k6aKYWZ4eruJ|dS{gRA7wtTNI0Ub-rEW_ULa|&n! zD_a@Yk)TWRv)I0~|J7pkn|2`Xq;#V!+sOkvPE3>k&i+%2br#zy*-Jr3T;yebrT*O_ z+S%3JDV>$SbWMkR_79Veb<0+*>yup9x2m8oWAz^siN1`2oQw{RANr?7A9Jl(v2NXp zybQS?B7aPv+<FlI`<FkKqFEjJg;`+JGWrTu^{rd|!$hKQ-Ku5lI@Wb8%jwAAkog_+ zbF1jFnftaJm;P?erYHM-6W4cZw&VMf0%pp;_+!BOU4l*RhcD}Q&O(*Dzj>s8TZ6hQ ziCn*}*?#k=SpMcLlvn%X3sS|m0KB?%%J(gd_24SvSMiT2qQ57xo&G+B_4_2YpCR9S zM0-JV%9A-JwKh#?l>UACJCp41Ng(1jTTNYKZHIjD?~;zjzQ&2ok}VUbv`v-%ewxku z_Y~IOx7ljy8*AG^^55HJp)$6=&wOu_o!T}<`g<wc%o$T>_RHV-euwq@q<S`()Kuy3 zCCE~@*=Eg{I<rsy@b{9wsU1^WCriSd0&(VTwpr6b<{bWB!V1cqLNaVD--Q^z$*^iM z|GfL7T(s-=UeKJe=66lj-<m(WMZ4L1e((LR@m+)U_v(MgMSpx}|2_G4{baot->-bX z3Ys>)^8M<I7vCrUp3M5=JNpmN@lMBnANzjn_c7M*lfNGm{TcOp(RaT;(to6XFZ%8G zH|lTH_eH<`en`u8v;UC(zUaH(&nWPf%j{e~0>5iB|9J786|`jb4f}V;-wv$59e=D7 z{r-l%8_HGu{ay6?kMH$A{;dD8f%R`R`|rKq_xxt~&G3Wc4<~Ck`yY-!oZt;kd%y1i zN&f&T<NGc0y`Ia5>)({`Q$V+nO!+=Vs2eQucM511%J(V4P7IB*->2*bpIx<^>lf(M z+c2(;TynxI8?=925fzqU(B=AV!d70<SY0nKyt2OG-xir)4Xn)#ZFRNZeL<I<%%3-P z_H_AQThh5$Cr_I&W2V$!liycF!?@&xWf(x00WSFME5laQDf{{7CDCs7Zg#cbCz|r7 z<}9w1{Q2WA7whkPzq&=g-}~3i3X=SO?^ieL-*-QLh&HT>?{3KX9rfpjME8#*_Fvz` zK=So}*Zk}L`Qs<o;<-~-H7%D^`+h?7chrv`5Y>_(<*YxF*!ULwu=~D>@yC|e%s)V@ zoxhiSH~C${{?qdJ1JN8e%SsdJ-zi<ct#AHjeAo3_;yZ`ocYEvap*;_KE=_v4l0%>U z&&}@-M8B8(6!~4k{$t8&(H}N{RKLIZ)BLBt`H$-FH-Bt?3$Oppb4p1r*gMO{RO)x? z_o&}?-#bB9E8qOieqC-}*Szj|^X7HW<5Bs|e*L?O?RP8b@15VHzT16IeVBDC__X|~ zFYCYad>57iUG>)rZypK%Q27qI_D}lzgde8gUw)VVF2ej{`cGET-xGd|e4kLy_CuKE z_k`cV-zTvB?D``j`uk-!+i#KYFWG;Hu>3XoE%MU@q~fp1Z{eRNY~Q8-7K%1BH8se| z{MKM=XqqxjUWVlc`?M)jrpc{l`vJ-ZY2WR?r~S77!S{U%YxipQX;YdS<Yj(qu>XDi z>y_y5!tYwFKeX7scmCEA{q6f*i?tradr&TV*Ym6;*icJPPfM@{%d?($<z!fHu-!d- z_O3kNf`;$xGOSGBwS>OQ%F6sK|02WE_nlAp!7q`YDWcDQJAOC$J^MSW*>_g+@BF^M zXMAV*J@Y%u@1XCOehYnX)%xyh@!j^f=XXJl?%!_T#lJ`E$_d~2{_wX^{ddmab>D@5 zw{QqQ`2GIRX3_6|esB8z>O1dugE`;V{@y6@neF%W@3&cnZ+wsF{1G6-@>S+Xr}X!f zzxn0AUw!}kdlLs}r0eu|lb=&of4?Pr`nx-q3~SskX3@zRWto}HibWcwnhpKGpKZ|H z`kP@&nZ%5&s<f;+j*gb*u4d`N;#u`e8|9nl=U*;7SM{AoGLfz7H&3BQzH@WAL}6ob zO`&vib5CE3eAbMr4KvnESs=0XJHv*T{okKyPSaSZxFmCO+1knLCa+z)U|lmu=6B`q zV)@@iq`!-N7hAseyR!Vc$!p6%H`smpuIeoN;|i#IBKiCL_w#=w|49Bm{~JtCe<{hx zS1<QB1hkdM`up48Z~s{TvHlIGzrX!q{XJ1u{+Gz#DWdRYLBFSb54%?OW5f4M#`E99 ze+GOHW0ql^_cL9zbW!fKoX$V&<r3c$zt^l-J8664Cdrm%HA@R;addZe|Ed1IUM_iY zWLsv=@8;i`5(z2o9-HDf)yJP}-@f^~=XX<y@0upR=lnkKo3T<e(#}cpyX<c{)+49x zu6ri^J@mWbZ^PeVh8Y&YzVe`Zaaf<fIs9GxyNcAq^1B(A<-RLV&iLcl9=I+1Si59b zUtf2h^r4+w4^NQa{$qFF%7&F?3nhO?{fHHPcl*}6x7N2cG_9>QHE!FymH%7MF7sPW z^mpiQ!|#UQL$546zwxmAZ~5=?tWJ6fzd3#jOZ`6Zz2kSs_k-VszH@H7@>~uqnHua~ z;w%lyZz|tQew_Xu`yHCsek=j6oczAzy9o0ymhVr3WV?Txu&Z(XHo499eacT2(eF;b zeZGtRwvg*)|E=?z-KYMysHJ>UZC}NV#_tT4673Tvbxx9=I;DT|MEMOn7c5*ji(~ep z4b#?1pS_Y07?)PzpD*u{ZJhF(U&{S9*J}3FtLN=sDR*VdyTjj=r2eq{2oe2`aT&qy z{}ao8%$@P0_<IE7_a)!!zXxvr@oE+G4<;FwlcEpnFI;^1!0n=`sjI7*=|$Iv@;`R} z6%(D>IkjzyTu)C&U;Cu?iLL#Te{6otW$k8PT#-3DRN61SvA9~ko4vcM^EasHz4P~e z*3OwW=cmbaUz%2TUoPW&(Sz?6ZGTKye~15h*IC^y)sZ_rVr#|fnw4!^7Ob7U={v`+ z?@}Dy*S;q|tpDC8*Y*9|Z@%yHtPL|JP41TJo<4ncq1+GVKVGa$<G-^Pe`k>TqyAe< z)Zq8T?*hL+_crx4_ccrQbhFLQJQ{U*>y@pMU-PbVbenz;)&4$N?&q05Pei+wzB~Uu z@uOR=xuL0BuDhYBwO8)@sXuk!S%2GiOD)Kpm@#kqv`LkV%hqtz^Zi))z2bY`Z@%w& z-*<e^6Z&cPeeG4yVx8|3UmyR@f8smO3E}#NA3Z-diGH{HKDX!hT-Kkj--#+a8vGWN z3;!W;knOwVY0KZt@_#P<;1!)$Gpj=G_XD<u#<r$b`9BB#cCwaM&CXda{e3=Y&E1rV z@`vuQe&6oPRxzt)uH5$=w)(lVX3dlTdF}_l==a&bL%wVLo+0;p0b4~)O@;j54tC)+ z3>C9#=E;GML|Mf4ecJbs?^@qy%YQfM676pP-u7GLyRDq?`i2Cy@3Ox$I)6uXOLcer zp72}dx0&2Nw(mOMFUo%R`7Xx=6VL?-c!C6^p(^UXUzFwh{r~qA8MaT1Kc{?m<@)jW zx2|ZWVPsx|Tx(5DXN`1L)|4sP^1m(iq`dd~uE^o~UAyYL%6Cht@0N4Et6co9EqCU- z;->fCE%tCsS-ob;8tGZHI$LMSuV{E0nJHBq_S>!@S+2FHGpVAIqrR@JvnnQLT8wmU zSyyAde05!OeOzlfN3lhnnTeFi470@+audrZ$IY(eXq>*FYv!(9({@SES<qQOLw;Um zZ_>mfj%mpUe%lpGeK-E4Dmr`ir0Fx{ckf<y=DgJTf-}*(<%+qAin@}Q7I7>tnvtC; zm06cvTr5{u)RVNNh-1F&chBFRqO<2roH1Sg&6@+?MZU{QeV45d`!1sOMy{Ca4j0E| zr_I_bQYy*X&Q5Z7xH#&j&u*O~jid{-(CGH}(C>*--xICBhyGUmt_soko#!|2x!<P0 z?WKO(d;B*2&GVZVVF2F`&F<CTuYk8n$TD_+F9GcjE|FyhU7gy;RsUlOO9trjfGK@k zpuyihF0g>i&jT{Q6Dq($qF+rPDtdFtHOl^*@_n*wH@i2N{NE|RrWD8`i-0s&fCrbp zZv|~k*~;~O%Xg92-$kyM3w3|r%H{W6<i&T9Y>=b~c;nBz?;^tgbL+p0{0^B1I@Ts+ zp6revjG~5y-|M-aK4rc4efd1upW)xHfQ}n7;d0{o%@yY7>mui2XJ`D|R4P_hPB>+v zA(y;xi>tBhMy~IydykyDEO-9a%_rZjr2b6*Eiz9Q<N(p{VZV*O8~qOZ9roMkx6$t~ zkhbq8T;BygfY-RygO<I0@8tR+_kF8q=y!Sj?|i>`p5`w|ZY|9(%b%FMyzGPhP1PO0 zIXMcaEU8%nnqTOfB)?|HoDFqrIKHRd5q0|xx+&M-x88Sl4q+*+`~}HvWqD=!6Ovby zeV0=E^jqfmZv&3Psf%ltN>85D(>Gau&5YR_>eqnA^S<Ab^{xjWlH>h7<TuOr5TPC! zj{m|bzvle7BAU^aRbHLR5my?YA1R%aH*J2YeB)%+;)V5V)=I6C-Mc+MZlT=l%r)if zx;TEE`7R<F%@rBHd`GEV_1diY89nQI*36&1mSe}l?aTK{uUgSizEFN@Gwb5g=~<al zf9$>&iZ0$=ek6J^$C`R~$2s=W!b>u<I$E;jcP&3S|LCLx6F2N`Ina6_dP7)?M!jLW zZP@Bvo44)QxMl6c<C$Bsw)jm<%H;TM_FGc*cVNlyq~999=S%!f{mq?M)sQwTNAkPL z?<=gO(-ze&lAb!HcfwS8;gs*q-+5St*L>erFso~3*Q`#-ZuZ{Z?%wY1?s^`j@BH6c zFMnq~AirpL*^%f)924v7`f8<T&gh#sU0yh4_o4+yN_KO6XAb+#digiMv~W&qOING( zv{h>+u9Fr{*|npwY^(gPlB4q%?c(?q{@p}$VMED`66waKPS8s8=HEQOw=b*hsqLxl zmF!~c?CkFB?(XJM`py5F)%iDbn0$Rn^n#$>B^<5OXLQVzuC426t(T83DGOQ@&GDQ0 zz;{;X@B9-d^-Pp*$jNHWkdBF)x*$<LW>H{yNlbC{{Gi>%99ieDR$Z4~yQXi_YWbM_ z(DJ~Ru-3HbNnsqqA<+}Jr0<sQ@9*yEmlsZXH~s1Qn+LLEk`v-mlQLWV*Cuh4%v)Ap zzg&93!b!8{%6~WeF8T3$;G*wI-!;C^mk<v5p8B18#hhsyYF0_|E%>$NHRBKQ7e7PZ zG5^}~Geq>efZBV|N=-HO-vZaUzL#@-_vHFr2s(W0(s#(^+*Y<m?l$s1&XGaCS*4b8 zec#4qCF>*m-So!eb2sEpUOI5%JD1dV{(9N#T(JAQ<$ibkO&0xg{m=F4>h8kX)so+B ze%s8hUfMl-w&aiNKd!U>Trb12RJ3|_VRuzEXsNA)fx$!9v&P%hB`;lCy5xK9_uAQW zx|deZmIQUy0%Ta)z6UYNuzGy=VgC8;*F@2^?JJWit6H0@<+MVQe#<LMxh~eLe>ino zPtR1jSv}p|eKQxlpZ|Wrdya{#Caqd6^`q*Kjc99gOKVqWcTbnx)cBOi@zPcf#py2c zO>G_RolOn#&2bI!9KW?vehdBf`t2zFo73s`caD==zVlt*y00XEm3(jKg!Xo+&NlUM z6RCn3<txtZe|2b<+|&)zxAt%3=;`h5>8+QVP}bT0JN!56cZTl~-+jOHd@ubTxlXQc z;iA4p(%%gqIQ};N&77`Ntsvjq$-4RC)eU#0r_5>Vm@Gf1<?3(FN~!NYKjtgQ{%-g^ z<$Kf*+wT<(-;00D|DGtc;d|NdxbN4$|M|W}_?GaspEWWp=S8EMq8g*+vVZGk|JKj` zt;dnkT%S5QSNgX^+IN-j4ByR8e$W1{eNTSo;$>5oNuQn&8z%p=?XQaH^55*=JqxGG zO{mYGTqpfo<TqQO-){za;aeSjtc$;!ANj8L-CF8<_iu^stiRjjgtw(<bhKv3|2`V_ z+wb?s-<za<AO7z0+vfYhiL3jY<(k-k^Hn?j-uByAI<9<m{g&_2-}P_zPL>zGwzccG z>47Ba-<&?b1GVIZcl~z%&hlH}yVv*m-^0JJ{a$-qZqE7X7w4Ym5Wdwvvv1<eNgRj2 zGk<5_@Lf>)!tu(+^YRnBSf|dII#r%eA^Up>qYUe|@1e{;FaP{3nwM8sR4JboKh1Y% z&Ue4xf)bU>YLaq0J9|3orGMvc_!IJ)wWp=Er$st8DJ!~JzByuJ?B2TXpLHevlpbg8 zXz%Wjj*ia;NrY^QI@tPSuD8S=zb@AB*p%=N`H+t7v4^C8gs}adk<A*}nwT6Z6}mlf zzZ|#~{{749ABzufo3M8E<gJpIe;7{M*s!T+h2(Fw?{?W6($*v`tC##;^j(8>dS&^< zGHKV}aiV$i%U89oZCy8c-GUW;eSN)seZQ5yt4m~T2%4IllaSTozbdJ>v!|oC^Lx|p zSrY40Cv<+#OJn^R_~W|h{*J`$;nE>p39)@4(|?yp^k&A?Rj*R}9wG5N^oMcDUjGGA zg_5zwb%FDuzsvl7D)GDZhedtij=*`b#gb8l)qcxkzR&s-E%AHa_b=I717;@VO2+0i z`mTxpUjO@y#G*y3X0DZ9zO=b!q5Suv-x}NVHf5|$k^HXq+iqFTjMT1V$*%|3&0V}| z@<z$s-}9&L?%&(7M-nu{{LAHg3Zo3mhVLrO-yeVX5S=h#!i0&x&A#uhT`J!&zrJdI z-MqycmabdA_It@6Ly51yBUzg!e3wj`0~)cPJn@gv&*0Kc@=F&lTeM=qkC?xAC7Swo z^iGprxV&@1Liq_j{e2UpCjBY=#ZbRUZuQ(Xv)0aRX_5F5@b|>&-`w8?epj+KP6TcF znDg|&wE6PWCQh6-U23k*cdMFZa^DjkeRuj^um7F<yFbT_`I8neky_HSxNg4O_d~x! zeqZ~Z`1_x<w^wVOkNj_e@0F}mTN@@eNLLz$HI&OYwzf3XOI5!5Z8fVv?zgAiZ~fn5 zzd3#zapa|>Cx%NEO)8#QE_d}e_jk_UBHuY}Il6j#yLzR6Uiv8do%R0N?~>mYrM~k= ze&;lLAXooA$o{+0Z>8_dzwLiB{<i(C_gmq&zdgqvrk|mrOBXI&`rYQc%x{_BHif07 zg@vUHmmVrTkg`c`Q%cyv5NQx!{s+?;(aw&RNvwQ->Xp6={yh0z^oL+MWA}IQpW6E` zf0y_!^PKtDx*txWm+P+NpOZ@~Nvw)*;#e3qH8@D>cS-$k%irF=D}Gn}w)*b<z2tkr zckAzA-^=&xX{y*EH(~qCZSyyAEC}?S>MQ;G;O~;(?Z5Z_R^Izt=#7&6Z{`o*MI*m! zNPpM-F0$`C(+BxCU-o_%`mQYXJK=kv=y&Fd?@Z}m<oYtZGcu)qF9`eN{d?<gCb^FJ z3py7_&+K9Sp7UMi<M;Zs?-Qg#zTXjT_^$5uJ?Xd5gS)@wFaOrq|67;id&los(QnsY zKHVTcXWOK^JEWeJJ`KMrm*L>$Yh4;r<5!-P!jYa)>>VwYG$VCkrrdYA)!#Kf9{n!X zSzTY)QX8QBThv4~m?Lr9p{$eAd<#Ig2jBS-|EP1?vOV8>zTXwT@N3<V`exDJ3BUD! zoBvLd6MpeK>9_uOv+s%D6G27V_vCF`TWUAU*A_J9cI0x*$jO?RDgE2vH~VkN-`c<R zzO(%n`feyMeBrynced|B-}N@NZmM1{zjES==}TvG%!`>487cMK?fZApCC)SK?WBG? zy8Kr8t)VN|$W~k1(_1V5J^K3k@AU`2`${e9Ufj7@uA3$OOXSDkS9e1W{nnbG#qs^| z7tx%y;QCxS-=c6YC+URLMJw{;g|8f4{ay3T#M>OgFOm(_Ty;u0Y8EvuTPF4L;)Yub z<qpl-v2F1_j`b0<eEp=p-~DbWs>$^)giZK@n(V(2lnZcWL6zj5`d?w+S6!BsVfp_< zLNr#fDyL1Zq^UnKqp)alfnu@FZ{gp3`LC1;ikga~)BCqBZj#TLpg3pe_xZAYllv!6 z+3{Pj`J~kHRkN4KEtp%gNP5DA?%sa+&W#-#H%hJR-92lS+;{FnuXcVHl>W~4!cTd( z{H&bb=nSdUj?~Unxvu{HuKxOkb7wD-Uc9ENK;HYe;FLJ2rvB!>X1R^#7kr+TbIk0R z+*m91ed_lKq6%CJQCzcR*pirkKKU*v`#ZYxx2Bu%?;wtnsCK(hDennB{XTMSjSZa* zDLG4Xq%&fRQsni%$IUjEs%folt(A*W(o<E4FKj4m&2QzXY;UZqlyd*>m|wrMMJ{_m zmE+;{+h*;MUa+96eSv)Wca9yuMZO0}e-GdMU1a`uZu$QC3wjo8-%__l`asQ<RrBR{ zPWtY+{JhlM#u=6Ua`_VrCl*fo&9KAZL-ZGp)|ss{XWjoETlrdQbJXHYx%AwEbm^vs zzW!$U{?ijqot8S-e!XOmoWpms-<ltOd(?M=S9t9C75;tY8m>m!9}=Q5idETdawW}u ziJ66kQwkMev7lI3)L1B;0gi?235s)eeV;GeKe-PS3j&~6SUG2j+=6-43#BJa039FL z0f~ja-LqE9edjv#Y8NOL*q?)AA-gv^Q!2GHr6aW-5)F&y&Rz(M1p!bj^fmW`W5N4b z1uPb({47wAUBHJQ7A%utby&vsU4-kq2sdafmWKyS^2)F=h{&+L7F{RIc#w&Kk%5;% znjwH;T|L7lhHVVH7@je_V)(-FgOP_(kWrLTl2L_GlTnY+h|!GEiZPTikFkWYp0R~- zCgWVjg^V8<zcBt}{LjS9#Kk1RB+I17WX=@C6v>ppl){w5RKQfqRK?W6)WbB1X*$y! zrbWz}%+|~f%r4A9%n{77%n8gX%o)rL%q`5F%)QL@Q<!Hm&t+c7yp;J43p0xViwKJ( zi!4hbOCd`cO9x92%Vd_hEQ?r{v8-Y_z;cF_n^lBWnpKI_lhv0sfi;aapS75^g0+!# z6YD=V7B&txAvOs%SvDm$O*TU|Q#LC$CpLFBZ?+J&ShhsAG`4KEVzy~)bJ+H?9b-Gq zcAo7e+s}Hof9!1ReC)#PlI-&AI_!q*x$I@^RqXZbZR~yQ)7a;;uVmlJ{*wI%2S0}} zhZ=`DhYN=nM*v4UM>a<ZM+HYc$3%`*99ubdaXjPr#>vYm#%asx&gsjU$l1o(%Q=;E zHs^fK#hfcS*K=;=yv_N5^F8NR&Ocl{T%ueGT)JF#T=h;|UR;4(QCx{!>0G&7&0OtV z%eannUF5pW^_yFqTbf&yTZ`L(+k)GUJA%8Mdm8sv?tR>+xo>da;eNpVkB5s#hDVi0 zhsTu1ipQSEjmMkEk0+idl_#I4l&6-bg{On3k7o|gI-V0ek9c15eB$}W^M_ZISC7}7 zH;Ol&H<dTDp0|LvoVSLzk++9;7Vk3NO}qzqkMf@5z0P}w_bKly-uJxUdH?gV@Nw}e z@|p2j^9Ayy^Of;6^L6k|;+w@ck8dg8YQ9Z;JNfqWUE#aM_nx1HUy@&g-;CdrKbk*@ zKaD?+znH(Azl(n^{|5e@{QLM1^Pl0r$bW<X4*z5RSN!kz>pu&y2#5)22v`ZY3U~<w z2t*2`2;>PA3seYn3QQDOB(PavkHA@hO9IyfZVS8=_$kOJ$Sx=@s3@o{XeekZXeH<% z=ppDY7%mtsm?)Sbm@il?SSeU1*do{^*e^ImaHilg!F7Ur1<wfH7JMc6N${T#uaJn4 zq>!wTl8}awo{&wwkfV^lP>4{pP@+(}P=QdXP?b=VP`A)Tp=m;kgw_k~5jrY#N$94~ zeW52puY^7d{Sf*q%p}Y%EG#T9tSYP{Y$R+W>?#~694nk8oFQBwTrONI+$!89JVAJh z@J!)(!i$C13GWm>D11ivy6_|6=fa<a|B7&k2#ZLG$cw0mXo}S99hLoI^Zm{DH$QCT z_#C;sLC61k$8nv`=HeFpH6@+v-xT(LQ)E~Uh*op`oFZ1u^+V+J6<KV{X~C;$kIT*k zowqB(2+H)oKud+vxxNd^zGgGvlKJIukc;gP+jrOB3%*DE7L)rO@muV-lk4vVf7qn7 z*(z&mE9JevH_M)8x8#!3X8XbR+x7c`-x1%%<i1CI7yIt|eZdblDQ<REE^d8UIc{}X zdG1SGGOP)CveWxw7{%+KLoZMLe);=lR&Gl!IqvVqzeT@`{x+85W>e$h7X1yr80CBS zchJQpvERGDN65~dIdd+zjjS9un>`nI2-oi`y0YJ|*l}?iaplT#XXNE&aO-f%b34e& zbF*2?a*KXX;QD>wcgOFJ-v`{d<bO{2v*j2U<iguO&C~a%GK$;VaCz%-ahJ<}7fF=; zE)vVdJ-2pdCD<gn-y&=oc`Me*e-}vwUFFWrX2iv<E-S|^3O`NWiEFw?ETcpHC0TAZ zFD~xN+67$Pfn2^^^4#HEa@@VLZL&RF+^nsw?M=;6&HYUiTjjVxTP?W1pXbtsocs40 zyvm0g<j7~Tt7W+_aQ%_}{*3E~EbGM9rv7H>rsjKGKhplBP2=L$;QAe+#l;=W_5F&H zEO)f5JojQQ#fPQ~Wx35{*ciCy&aAEEZs7u12+`Wy)ZW@E&n>FY#jV37cbbhmY+J$s zZY9~@Q@9T#Yzvd)o_;Bov8|r_J8TKS?+nnv<=->7=hV!q;*R3#<`(Veg01Z7;Nk}D zPh{kF2?}!I){*67bCc!H<&xuWohTQ%*PrW8+MhIMuv2|y_wH?x<(^qPm;1NKcM<M- zS$XboSs4z7<Fa$OE^~3S$H;QCC2?`fur_d)R87xKV2rGv1v33R_!3~ycq2EPtt>a& zL@s%5_W4}gGAswahky=zX8sZK>x#4Nul=BFEHk+N#{Z0C-4~&?*+u$~$z9n$ChRVo zwf05I{fz&cz*@5CtL&o1@;~Z-G<>%KMNMs`oHtu#?aaCIr|o394Y`bExs9Ejzfa*Z zcD`KySpMe~_7YIs8pv`NElKV!D&m&@liB?z^G~J}_a@mjT-?!IF5GNQT->nn%)_87 zlh$#`fd@Cab-84IHCW1~bLoImo!f8z@A|);w#Y5pGIRHy?_IKf0j0^Ya^FL2e*1qH z`kf;ElnXS#R3rb}&`IsL(QjoZsqbrK<$hgZ15Fv5bA8{!{=J!t+n5WqXqr2X>)(|L zT+=ruGK$tu<eJPS_uY>DH^*<w--kkfAC%^nVQ1i8A^T?v(v9a+a=5tLWy|((aaYc) zohx_Rnv0uFO_m#!pSXWyb^plxks-zXy##a_w4m%Co8NChle&LwzQ6hX=KDl0P{E=l zD=+iw0n2w)Sy0jh<sW(OUst}fEtCB#!qzgqAc@hrp6$CHmpnJya!}Ir1}$E3l;t+Q z?EF}c`*-Z`Zf;O$bBo@W70Zz2{;v3aCf9F8ZuV|2?u$o{UgU<{qan%to&CEax9C(Z zZUfmLQ~rn)adG>~{z&_g)*{PYA}i1RdrCbQ_t%FHzj9k~{SaZX;^O|^E&FH7k1cz- ze#>q769QUT{zpVx_D9I?Eo{eRe{A`&Wdj#?M&5S@+39nW8CB}p!V(g~<hiS6)y(0Z zIai+hyM*jdEB1AHD>CGMi(KUTUdpv%o%~O$om|}C#by6m)ySrE^~?UX+AYhiXlkm+ zoy7%OuEWgzJL9**_ZhO>-@AKdxvOes&5`E@FV+La`_G0NF7T3j?n_64T)5?Y(tgW! zrTTF+u~+p@?$*^0WCSffn8C%&ExKHm8#FS`4Z5XdGZ#1O^y!mk&ynH=oqz7|Jp<JE z0<9_%frZW?E^bFqSHN9X-aC%#S4cJ&w-47(5z*<6VvJ(-mGkl^lr%~fgAcj<69NhZ zHg3`1?CIax**?jBH~qd@mixEJC(u#pkzAnj5Cmoan3&6cpUK9(pG%ILy|1Oebz<w! zsJ~GXON!=CStrFk=lfJyx$jrLUtyg%v2V&`DQ;2F6~LhTf4_ThahG+Mm2h#-ku?Nm z%kQl9Tz{tgnIdtA>j#Je%{&~G<rY0E%RP_l_Z9XaE;(*<+1Fs7o|fhQF+~iPRY0Tu z1+v_~Fa3rLI)VouzhC-(>HD<r)4pHg{=Q}P_mb}&-}gvyi)w*#<ZsKLO27Hpeuw<_ zy=!{%=!_YYr%sqGIcd6m8l$KlXdwr9$-p(P?;_0HU#-7$Ma%uR_${*fw}905nX;FT z9Q-QB{T;02yU66-`cj7QY6rBgp4&(EyW)3SP}-c_{@q`e`?tjJDeRMEe~PeO0-a|D zy6I!`ZcQ1BAlct1*<8O{vvQy10+n~%#-JRpEz1p>FAd>ln<&d|B`e2mBl`_hk4^b* z#>H(28bO_YJdIJkK3Vp=2zOIUOOrfkspof=?+UWq->tZ;xwwmpx|5d_af{0Qa?s-X zE%Lot_PdC`EH|j=j*N8X;{HD2_XHoV-xI!1;07IUu>cgE3qWZJbR^l7%b>GdXLJ3T z!p<!U${e0tKTO!yaoceH4$<S{{=NQp<?qVh>$$zZi=@gjc5}B*`o4sVdrr&j`sv(| z(??`}gRBi<ubNpi_xl}LZsvDf+~4bD<+RzFS|&}A2OVyvFDv(&4SeMwcsa;qQ3FL2 zZdcGDktW|K$#ToEJoqjs`&~trd-~L#-pTS4`+NGOJJ=hV+S-~Mo9iY2u>M)fYWU+0 z`*hh1M#*FquGidWKtUt|Is|IUcM<Mq;C@G`?22{VbLGB=u+5#xT~*yuU(c=Z{etYz zE2q0b$JMNqmHEx^eF|t>hHwV=cjG(y?S1l78hWam>%(j%+M1i%8oL_1n)+KNadc0% zF;tlROIN;rCpg(haq%s!UQ{wwu6SyGTV(}zeSLLnm2_40#Od|&+%vcsx!H}lxY@p^ zRsCl9F7P`>`nT6_mEV@X=lq`cUHrGz_nhyJ+>TtoL)c7YL6<6U{|@<aMHJLXkoz5C z!u36bjr+R>*Y}rP-@CbgPuT~GXI-xEiJ%5UJ@;+dA0ph}vt?IsJ9F)g^p)ja2a>mj z%y~`u?k4-)j|+6;8Z-BIBd%u#-1E3(ejNbkokXthJzU%~>gIRPm?6o%WJ&ktq9xqy zg|ggLld7lJa|g-(zQP8+ZT@=_r0V=(@_ot=lkc~=L>^Sga*KhcS`)!@tqE-3WsoLX zxmV1ayt#bkZ>R4wBxY^gJY}2ocbD%fzg2#_aDy!V6=KK5eO4AsiF$Bx&zU`G`gCsj zsr3z$s-=JL4Ez25ciC_AZ`$8Y<bVESn;c^#RlmHJwPfdk`eUH&5ZZUwo|d1~Ke4aB zmjhC0I(*Ogp7Gt`yAbG#2W~&E-`(6+vM;#gxkW>`xR(@lCl?iQ*Uc#JuB+pgVRc~R z1}*vH{=Q1~cggn>b~jmW_GOC}EtC7ewro*Jfjl?pYO3#txLWF`gV__mAL6QS1#ws_ zD;tZ7q>82%&8?K<HkP%L1(l{Epp4J`9aKn6`96hPi|cm@_xJVRLAM*N=N4Tj%f_w3 z_1%OUyg}vH6mHf<i)OA_E5-et{Wm-J@BiO}WVyflei!}D{5`N!e$(Csr%y|PrlMxb zaZl==*fmMs^hd|{|MlO$vCfz=W6oSDzVDmAf90MudGeHrQzU<|{#eHP<j?8fmEU>3 zvvUVtaLFraZK#y{y^_6g?xMC8(wB~2;AW2om$!#xy+L6Qb@6wR?;;`v-2XzFxnKpC zw=DNWF3{EMa@^Os<hUnJ>YqGC3Zy(smb<>FD7m|63HOpEo4c13aWjH^%f0FM#~=R^ zZpzJXD4kIvT~b<C-XPDd0@}61ohVmSUS3vN^hIA{+KlNlXH4T*u!Q@!^rZ4x@w4L> zB`@k*G-=^vj*08KxHVjyR8_7xevo^9>RgZXq{&nJr*?7wyu$YQ^2_f`^1nR3M|1Ig zPp=0Z^ZZ@pSBPk#Ecb5{aJlhaUsnFR3AoVUW-pvwvba&MW73q)$<p7Ix#YRO_kivm z<o?9P%+0>8d`eM~9QW(*99-NBX3BDly0ZPQ`l-eG+l=jZ)n6@ES4HlaisZ~}x#?vS zi;JaVOM((h<hT$2X8$d7;<vT*@3i0bWxoYez2&*TgIB%$KEVA)#F&fw`xR?0ZcuLq zwEmvkn(N0E?jKh~4Y}mF7krWBW}7psrb?cBZS9(p#d6%;K3v>CK_wCBl2;e-`I0OZ zvfrl&ac|35o0yo9nUJ_HW9!y+>$b{qC)ob}_~&1WR5$zYr0*LozngQ{e|P#lgSBG% z{Kf^+(`WQeo+i)zy`L+c>*tp5T3p<s->bN|wPn+}Vz@wMFeq-hCrs~~F;fcE2ImH~ zpni+6f1kqr{e|ob?#Gv%jk#ev>_9YV`kDKCs_f5@AX)B9-#Nd>U;C~i{hj}Ia>NID z?(dg=Py1d!?e`^EWy;OG<2SqLcX3(n@2=mKzbk)t{qFi(`MdIOSMHO0_nzclDa*$F zeai1C+*RMNf_4b}zQWqt+QA**a8Q1F)s)I<RU8eICbx1=0F|2)WVs!<es5vt&Sz8l zVb1zpDCaldtKVYM+%2HOa}ucV?3gUw-(L?pOPBkctPGn2w~wqG_jeO6Iqu(A*bTY3 zzi;_|1!O{_EF>Rp`Mw3jWxvA3&DfpJ#mvpJ;X8X88}|>JA2#3LaI>j$aet2mm5|2Y zZ*p<}y~6(6n44Ykq3Kud-zwi#K+!pc`#1Y{c2LUC1T9Pe)gkrV-}|_JPU+y{j?dU4 zpSyNZ#XjkM3+Jumo;-2dB>8D`rp%o_hvV8o?rA+e3uj4RXPZ2+xw%W8d)9B!ndQB5 z&2t;)*3ahP{$30^m|TQAor^^Vbfbz77d!WN+3(s?-?an2%j$fRTh9%Or_)^AlRG9$ zb63cUa{mzdA;KLbTkoyK#XV7WnXDZ5%sEouMc6?rp(e^r<YxWO#>L&r(c0SF-UPai zt*Vy$yGV{K_e`#@4^0)hf0wYUadH1F5q0F^{sUgi_QRU{dq|ut_YV;rS?=#QWWTTb zUd1i?oBs#vcYZeR?;@wai*SQFq|j0UbTbz-_xE~GlM#Zaa2J+Tmo&;Z7Ej2ZR|yIw zkyP1KS?&qnPEVRH-`CsI+b6~S9b6)FF93BixPOZza&a#J-KWF-eF|v1A9rn5rc~xk z?m5zPW^;d^!nTh4x5IY_?qBm6pUSZLFw3w_<`(_U`<wfB4_kdxH#htDj(V=s+}+<r zz9(~W|L*qVlIND|1K(T&ivO9i;8XFqf6M-sYiQ`Im|7>vE!_>;JHfJh+iiJn(eG1a zxwS#(;B&Li?U_Aujx?ytcvF^*`zI)~a<k2uU0c~B&&~dQrYv`JQ%7qn_e3r^?zPfu z*Kq#;mFRMRuhg?~|K@o6Tl~98#P@yN-=S;kzn5_T{=cB?dp{R<QDbpsrQC1z-)h|7 zdA{p@XZ}9tI}i77)!&~=elL}(>*fC5&c(*fwr<6wDO2($Wyo_&|CRtPE&eSb&;2{* zx5{^=@8RD=xY^E~@OPL0F47|kswksn<+%UI{*mRDasKVV25QOA=Kdc0JC>V)fssLo zff;mHIUI8^u!GqD|1)sHSzK@yGh6ax7RLC^&8$j{+>aO-7>XDi7+4vMCU0Pi6Zqu! zDehC=r@BvlpXPm9_i5i`KK2xWPY#~~J|%oA_|))e!lwnFHcT#JPm<uj!+)Fq7XMBD z8~oS#ukl~y-U7bzykPQ0R%ynF$ro9JCtGuHs(=Mq7(44seT?JzZN4%vgWbk(+TX?i z<jBiLrTZryFlTJt?82eK%)-gQz_2-o+klCMje&uC@&evH9Bd2>V7E_B;akn9Fj;`V z03^i0&cL8Nxr2X(B3lCk=w1sD76z#W83Cd}_OLQAFtAN_6p$7KiGX+<3=9k)nssun zfcfMJd@QaUKNx~QdO+$yG&%;U2Ho5a(g~6SnFPWhHVA|DO+LseJ$ZouizSE$QVGH! zHb^D=R)`Nkd=3T%2M`U?$;!Zx3X*5r!N9;d*^yIx@&SH!E-^L+23~ds1{wCrj-22t zSU}!ag&7Fa48kBMu`@6PfenBL5jz8eE68AwJUat}0*Hq3K{Oi!g9=PNjAm!}{~v0$ z0viKEHVXrT21pJh&d$IP#sJ|!e89%Q-~!^aHZZ7z3}gj`eFH=e#0OajmjBP73W^sH z9~6EdF)(gm;0Mv{lP|KWvIH<NO_?0Ws97(_U<FPm3=Av`+zk3qHY<Y=gEy4Th9u6; z5XcY<73W~!VOR%cb24x-?1Hkn8AKV5K-qi@att>am>C$ssVk1*JCx1HAjTL9V%M{9 zGB7dlF=m4}ESwC?3`&fZP&Nxp5ep{+D}xH-Y^XRJk~llVBF6ntaSjFvrbH;4lR<<D zW)3%l7E>=&oR7hVX}fcNL1j^9dPa$Y3twVcs)BoBUP`5ck%6JvWEB-fIX8d55FbY; zEB_ET*N6cBppdZCqT<Z_JOvXyGd;t}H<&IknoVBG9BA#v;LqU45W?WY;K<;_V8!6i z5W?Wb;K~re5WwKi5X2C|5XO+oP{dHokjaqGkjJ3FV8WosV8)=wV7S?l#f@?D6;^2g Dbr^Lk delta 41884 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 z�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 diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fonts/fontawesome-webfont.eot b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fonts/fontawesome-webfont.eot index 33b2bb80055cc480e797de704925acaba4ba7d7d..96f92f9b83bfd1008a197f059e4806ae25327125 100755 GIT binary patch literal 75220 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 literal 60767 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	AP6I%I8ea)obehR<*4~3l7oHpr$ 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 diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fonts/fontawesome-webfont.svg b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fonts/fontawesome-webfont.svg index 1ee89d436..5a5f0ecd4 100755 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fonts/fontawesome-webfont.svg +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fonts/fontawesome-webfont.svg @@ -1,6 +1,6 @@ <?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" > -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"> +<svg xmlns="http://www.w3.org/2000/svg"> <metadata></metadata> <defs> <font id="fontawesomeregular" horiz-adv-x="1536" > @@ -169,7 +169,7 @@ <glyph unicode="" horiz-adv-x="1792" d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" /> <glyph unicode="" d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" /> <glyph unicode="" horiz-adv-x="1664" d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" /> -<glyph unicode="" d="M394 184q-8 -9 -20 3q-13 11 -4 19q8 9 20 -3q12 -11 4 -19zM352 245q9 -12 0 -19q-8 -6 -17 7t0 18q9 7 17 -6zM291 305q-5 -7 -13 -2q-10 5 -7 12q3 5 13 2q10 -5 7 -12zM322 271q-6 -7 -16 3q-9 11 -2 16q6 6 16 -3q9 -11 2 -16zM451 159q-4 -12 -19 -6q-17 4 -13 15 t19 7q16 -5 13 -16zM514 154q0 -11 -16 -11q-17 -2 -17 11q0 11 16 11q17 2 17 -11zM572 164q2 -10 -14 -14t-18 8t14 15q16 2 18 -9zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 27.5v239q0 97 -52 142q57 6 102.5 18t94 39 t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103 q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -103t0.5 -68q0 -22 -11 -33.5t-22 -13t-33 -1.5 h-224q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="" d="M519 336q4 6 -3 13q-9 7 -14 2q-4 -6 3 -13q9 -7 14 -2zM491 377q-5 7 -12 4q-6 -4 0 -12q7 -8 12 -5q6 4 0 13zM450 417q2 4 -5 8q-7 2 -8 -2q-3 -5 4 -8q8 -2 9 2zM471 394q2 1 1.5 4.5t-3.5 5.5q-6 7 -10 3t1 -11q6 -6 11 -2zM557 319q2 7 -9 11q-9 3 -13 -4 q-2 -7 9 -11q9 -3 13 4zM599 316q0 8 -12 8q-10 0 -10 -8t11 -8t11 8zM638 323q-2 7 -13 5t-9 -9q2 -8 12 -6t10 10zM1280 640q0 212 -150 362t-362 150t-362 -150t-150 -362q0 -167 98 -300.5t252 -185.5q18 -3 26.5 5t8.5 20q0 52 -1 95q-6 -1 -15.5 -2.5t-35.5 -2t-48 4 t-43.5 20t-29.5 41.5q-23 59 -57 74q-2 1 -4.5 3.5l-8 8t-7 9.5t4 7.5t19.5 3.5q6 0 15 -2t30 -15.5t33 -35.5q16 -28 37.5 -42t43.5 -14t38 3.5t30 9.5q7 47 33 69q-49 6 -86 18.5t-73 39t-55.5 76t-19.5 119.5q0 79 53 137q-24 62 5 136q19 6 54.5 -7.5t60.5 -29.5l26 -16 q58 17 128 17t128 -17q11 7 28.5 18t55.5 26t57 9q29 -74 5 -136q53 -58 53 -137q0 -57 -14 -100.5t-35.5 -70t-53.5 -44.5t-62.5 -26t-68.5 -12q35 -31 35 -95q0 -40 -0.5 -89t-0.5 -51q0 -12 8.5 -20t26.5 -5q154 52 252 185.5t98 300.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> <glyph unicode="" horiz-adv-x="1664" d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" /> <glyph unicode="" d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5z" /> <glyph unicode="" horiz-adv-x="1408" d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5 q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174 q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" /> @@ -178,7 +178,7 @@ <glyph unicode="" d="M1280 343q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5 t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5q6 -2 30 -11t33 -12.5 t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> <glyph unicode="" horiz-adv-x="1664" d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" /> <glyph unicode="" horiz-adv-x="1024" d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" /> -<glyph unicode="" d="M1536 640q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5 q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23 q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -89t0.5 -54q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -40 7t-13 30q0 3 0.5 76.5t0.5 134.5q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 119 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24 q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-85 13.5q-45 -113 -8 -204q-79 -87 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-39 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5 t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -88.5t0.5 -54.5q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103zM291 305q3 7 -7 12 q-10 3 -13 -2q-3 -7 7 -12q9 -6 13 2zM322 271q7 5 -2 16q-10 9 -16 3q-7 -5 2 -16q10 -10 16 -3zM352 226q9 7 0 19q-8 13 -17 6q-9 -5 0 -18t17 -7zM394 184q8 8 -4 19q-12 12 -20 3q-9 -8 4 -19q12 -12 20 -3zM451 159q3 11 -13 16q-15 4 -19 -7t13 -15q15 -6 19 6z M514 154q0 13 -17 11q-16 0 -16 -11q0 -13 17 -11q16 0 16 11zM572 164q-2 11 -18 9q-16 -3 -14 -15t18 -8t14 14z" /> <glyph unicode="" horiz-adv-x="1664" d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 t316.5 -131.5t131.5 -316.5z" /> <glyph unicode="" horiz-adv-x="1920" d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" /> <glyph unicode="" horiz-adv-x="1408" d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 q187 -186 294 -425.5t120 -501.5z" /> @@ -219,8 +219,8 @@ <glyph unicode="" horiz-adv-x="1792" d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" /> <glyph unicode="" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> <glyph unicode="" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" /> -<glyph unicode="" d="M829 318q0 -76 -58.5 -112.5t-139.5 -36.5q-41 0 -80.5 9.5t-75.5 28.5t-58 53t-22 78q0 46 25 80t65.5 51.5t82 25t84.5 7.5q20 0 31 -2q2 -1 23 -16.5t26 -19t23 -18t24.5 -22t19 -22.5t17 -26t9 -26.5t4.5 -31.5zM755 863q0 -60 -33 -99.5t-92 -39.5q-53 0 -93 42.5 t-57.5 96.5t-17.5 106q0 61 32 104t92 43q53 0 93.5 -45t58 -101t17.5 -107zM861 1120l88 64h-265q-85 0 -161 -32t-127.5 -98t-51.5 -153q0 -93 64.5 -154.5t158.5 -61.5q22 0 43 3q-13 -29 -13 -54q0 -44 40 -94q-175 -12 -257 -63q-47 -29 -75.5 -73t-28.5 -95 q0 -43 18.5 -77.5t48.5 -56.5t69 -37t77.5 -21t76.5 -6q60 0 120.5 15.5t113.5 46t86 82.5t33 117q0 49 -20 89.5t-49 66.5t-58 47.5t-49 44t-20 44.5t15.5 42.5t37.5 39.5t44 42t37.5 59.5t15.5 82.5q0 60 -22.5 99.5t-72.5 90.5h83zM1152 672h128v64h-128v128h-64v-128 h-128v-64h128v-160h64v160zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> -<glyph unicode="" horiz-adv-x="1664" d="M735 740q0 -36 32 -70.5t77.5 -68t90.5 -73.5t77 -104t32 -142q0 -90 -48 -173q-72 -122 -211 -179.5t-298 -57.5q-132 0 -246.5 41.5t-171.5 137.5q-37 60 -37 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 42 -47.5 74t-15.5 73q0 36 21 85q-46 -4 -68 -4 q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q77 66 182.5 98t217.5 32h418l-138 -88h-131q74 -63 112 -133t38 -160q0 -72 -24.5 -129.5t-59 -93t-69.5 -65t-59.5 -61.5t-24.5 -66zM589 836q38 0 78 16.5t66 43.5q53 57 53 159q0 58 -17 125t-48.5 129.5 t-84.5 103.5t-117 41q-42 0 -82.5 -19.5t-65.5 -52.5q-47 -59 -47 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26zM591 -37q58 0 111.5 13t99 39t73 73t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -48 2 q-53 0 -105 -7t-107.5 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -70 35 -123.5t91.5 -83t119 -44t127.5 -14.5zM1401 839h213v-108h-213v-219h-105v219h-212v108h212v217h105v-217z" /> +<glyph unicode="" d="M917 631q0 26 -6 64h-362v-132h217q-3 -24 -16.5 -50t-37.5 -53t-66.5 -44.5t-96.5 -17.5q-99 0 -169 71t-70 171t70 171t169 71q92 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585 h109v110h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="" horiz-adv-x="2304" d="M1437 623q0 -208 -87 -370.5t-248 -254t-369 -91.5q-149 0 -285 58t-234 156t-156 234t-58 285t58 285t156 234t234 156t285 58q286 0 491 -192l-199 -191q-117 113 -292 113q-123 0 -227.5 -62t-165.5 -168.5t-61 -232.5t61 -232.5t165.5 -168.5t227.5 -62 q83 0 152.5 23t114.5 57.5t78.5 78.5t49 83t21.5 74h-416v252h692q12 -63 12 -122zM2304 745v-210h-209v-209h-210v209h-209v210h209v209h210v-209h209z" /> <glyph unicode="" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" /> <glyph unicode="" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" /> <glyph unicode="" horiz-adv-x="1024" d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> @@ -362,7 +362,7 @@ <glyph unicode="" d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> <glyph unicode="" horiz-adv-x="1792" d="M1280 640q0 37 -30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54zM1792 640q0 -96 -1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58t-69.5 123 q-14 65 -21.5 147.5t-8.5 136.5t-1 150t1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150z" /> <glyph unicode="" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" /> -<glyph unicode="" horiz-adv-x="1408" d="M928 135v-151l-707 -1v151zM1169 481v-701l-1 -35v-1h-1132l-35 1h-1v736h121v-618h928v618h120zM241 393l704 -65l-13 -150l-705 65zM309 709l683 -183l-39 -146l-683 183zM472 1058l609 -360l-77 -130l-609 360zM832 1389l398 -585l-124 -85l-399 584zM1285 1536 l121 -697l-149 -26l-121 697z" /> +<glyph unicode="" d="M1289 -96h-1118v480h-160v-640h1438v640h-160v-480zM347 428l33 157l783 -165l-33 -156zM450 802l67 146l725 -339l-67 -145zM651 1158l102 123l614 -513l-102 -123zM1048 1536l477 -641l-128 -96l-477 641zM330 65v159h800v-159h-800z" /> <glyph unicode="" d="M1362 110v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5zM1078 643q0 124 -90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5 t90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5zM1362 1003v165q0 28 -20 48.5t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165q0 -29 20 -49t49 -20h174q29 0 49 20t20 49zM1536 1211v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139v1142q0 81 58 139 t139 58h1142q81 0 139 -58t58 -139z" /> <glyph unicode="" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" /> <glyph unicode="" d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> @@ -399,7 +399,7 @@ <glyph unicode="" d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> <glyph unicode="" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> <glyph unicode="" horiz-adv-x="1664" d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 16 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" /> -<glyph unicode="" d="M1254 899q16 85 -21 132q-52 65 -187 45q-17 -3 -41 -12.5t-57.5 -30.5t-64.5 -48.5t-59.5 -70t-44.5 -91.5q80 7 113.5 -16t26.5 -99q-5 -52 -52 -143q-43 -78 -71 -99q-44 -32 -87 14q-23 24 -37.5 64.5t-19 73t-10 84t-8.5 71.5q-23 129 -34 164q-12 37 -35.5 69 t-50.5 40q-57 16 -127 -25q-54 -32 -136.5 -106t-122.5 -102v-7q16 -8 25.5 -26t21.5 -20q21 -3 54.5 8.5t58 10.5t41.5 -30q11 -18 18.5 -38.5t15 -48t12.5 -40.5q17 -46 53 -187q36 -146 57 -197q42 -99 103 -125q43 -12 85 -1.5t76 31.5q131 77 250 237 q104 139 172.5 292.5t82.5 226.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="" d="M1292 898q10 216 -161 222q-231 8 -312 -261q44 19 82 19q85 0 74 -96q-4 -57 -74 -167t-105 -110q-43 0 -82 169q-13 54 -45 255q-30 189 -160 177q-59 -7 -164 -100l-81 -72l-81 -72l52 -67q76 52 87 52q57 0 107 -179q15 -55 45 -164.5t45 -164.5q68 -179 164 -179 q157 0 383 294q220 283 226 444zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> <glyph unicode="" horiz-adv-x="1152" d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" /> <glyph unicode="" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" /> <glyph unicode="" horiz-adv-x="2176" d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40 t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29 q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" /> @@ -410,9 +410,9 @@ <glyph unicode="" horiz-adv-x="2048" d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" /> <glyph unicode="" horiz-adv-x="2304" d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" /> <glyph unicode="" d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" /> -<glyph unicode="" horiz-adv-x="1280" d="M981 197q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -49 2q-53 0 -104.5 -7t-107 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -56 23.5 -102t61 -75.5t87 -50t100 -29t101.5 -8.5q58 0 111.5 13t99 39t73 73t27.5 109zM864 1055 q0 59 -17 125.5t-48 129t-84 103.5t-117 41q-42 0 -82.5 -19.5t-66.5 -52.5q-46 -59 -46 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q37 0 77.5 16.5t65.5 43.5q53 56 53 159zM752 1536h417l-137 -88h-132q75 -63 113 -133t38 -160q0 -72 -24.5 -129.5 t-59.5 -93t-69.5 -65t-59 -61.5t-24.5 -66q0 -36 32 -70.5t77 -68t90.5 -73.5t77.5 -104t32 -142q0 -91 -49 -173q-71 -122 -209.5 -179.5t-298.5 -57.5q-132 0 -246.5 41.5t-172.5 137.5q-36 59 -36 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 41 -47.5 73.5 t-15.5 73.5q0 40 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q76 66 182 98t218 32z" /> -<glyph unicode="" horiz-adv-x="2304" d="M1509 107q0 -14 -12 -29q-52 -59 -147.5 -83t-196.5 -24q-252 0 -346 107q-12 15 -12 29q0 17 12 29.5t29 12.5q15 0 30 -12q58 -49 125.5 -66t159.5 -17t160 17t127 66q15 12 30 12q17 0 29 -12.5t12 -29.5zM978 498q0 -61 -43 -104t-104 -43q-60 0 -104.5 43.5 t-44.5 103.5q0 61 44 105t105 44t104 -44t43 -105zM1622 498q0 -61 -43 -104t-104 -43q-60 0 -104.5 43.5t-44.5 103.5q0 61 44 105t105 44t104 -44t43 -105zM415 793q-39 27 -88 27q-66 0 -113 -47t-47 -113q0 -72 54 -121q53 141 194 254zM2020 382q0 222 -249 387 q-128 85 -291.5 126.5t-331.5 41.5t-331.5 -41.5t-292.5 -126.5q-249 -165 -249 -387t249 -387q129 -85 292.5 -126.5t331.5 -41.5t331.5 41.5t291.5 126.5q249 165 249 387zM2137 660q0 66 -47 113t-113 47q-50 0 -93 -30q140 -114 192 -256q61 48 61 126zM1993 1335 q0 49 -34.5 83.5t-82.5 34.5q-49 0 -83.5 -34.5t-34.5 -83.5q0 -48 34.5 -82.5t83.5 -34.5q48 0 82.5 34.5t34.5 82.5zM2220 660q0 -65 -33 -122t-89 -90q5 -35 5 -66q0 -139 -79 -255.5t-208 -201.5q-140 -92 -313.5 -136.5t-354.5 -44.5t-355 44.5t-314 136.5 q-129 85 -208 201.5t-79 255.5q0 36 6 71q-53 33 -83.5 88.5t-30.5 118.5q0 100 71 171.5t172 71.5q91 0 159 -60q265 170 638 177l144 456q10 29 40 29q24 0 384 -90q24 55 74 88t110 33q82 0 141 -59t59 -142t-59 -141.5t-141 -58.5q-83 0 -141.5 58.5t-59.5 140.5 l-339 80l-125 -395q349 -15 603 -179q71 63 163 63q101 0 172 -71.5t71 -171.5z" /> -<glyph unicode="" d="M950 393q7 7 17.5 7t17.5 -7t7 -18t-7 -18q-65 -64 -208 -64h-1h-1q-143 0 -207 64q-8 7 -8 18t8 18q7 7 17.5 7t17.5 -7q49 -51 172 -51h1h1q122 0 173 51zM671 613q0 -37 -26 -64t-63 -27t-63 27t-26 64t26 63t63 26t63 -26t26 -63zM1214 1049q-29 0 -50 21t-21 50 q0 30 21 51t50 21q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21zM1216 1408q132 0 226 -94t94 -227v-894q0 -133 -94 -227t-226 -94h-896q-132 0 -226 94t-94 227v894q0 133 94 227t226 94h896zM1321 596q35 14 57 45.5t22 70.5q0 51 -36 87.5t-87 36.5q-60 0 -98 -48 q-151 107 -375 115l83 265l206 -49q1 -50 36.5 -85t84.5 -35q50 0 86 35.5t36 85.5t-36 86t-86 36q-36 0 -66 -20.5t-45 -53.5l-227 54q-9 2 -17.5 -2.5t-11.5 -14.5l-95 -302q-224 -4 -381 -113q-36 43 -93 43q-51 0 -87 -36.5t-36 -87.5q0 -37 19.5 -67.5t52.5 -45.5 q-7 -25 -7 -54q0 -98 74 -181.5t201.5 -132t278.5 -48.5q150 0 277.5 48.5t201.5 132t74 181.5q0 27 -6 54zM971 702q37 0 63 -26t26 -63t-26 -64t-63 -27t-63 27t-26 64t26 63t63 26z" /> +<glyph unicode="" d="M768 750h725q12 -67 12 -128q0 -217 -91 -387.5t-259.5 -266.5t-386.5 -96q-157 0 -299 60.5t-245 163.5t-163.5 245t-60.5 299t60.5 299t163.5 245t245 163.5t299 60.5q300 0 515 -201l-209 -201q-123 119 -306 119q-129 0 -238.5 -65t-173.5 -176.5t-64 -243.5 t64 -243.5t173.5 -176.5t238.5 -65q87 0 160 24t120 60t82 82t51.5 87t22.5 78h-436v264z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26 t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q-19 5 -25 -16l-69 -312q-180 -7 -309 -97q-35 37 -87 37 q-50 0 -85 -35t-35 -84q0 -35 18.5 -64t49.5 -44q-6 -27 -6 -56q0 -142 140 -243t337 -101q198 0 338 101t140 243q0 32 -7 57q30 15 48 43.5t18 63.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191 t348 71t348 -71t286 -191t191 -286t71 -348z" /> +<glyph unicode="" d="M939 407q13 -13 0 -26q-53 -53 -171 -53t-171 53q-13 13 0 26q5 6 13 6t13 -6q42 -42 145 -42t145 42q5 6 13 6t13 -6zM676 563q0 -31 -23 -54t-54 -23t-54 23t-23 54q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1014 563q0 -31 -23 -54t-54 -23t-54 23t-23 54 q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1229 666q0 42 -30 72t-73 30q-42 0 -73 -31q-113 78 -267 82l54 243l171 -39q1 -32 23.5 -54t53.5 -22q32 0 54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5q-48 0 -69 -43l-189 42q-17 5 -21 -13l-60 -268q-154 -6 -265 -83 q-30 32 -74 32q-43 0 -73 -30t-30 -72q0 -30 16 -55t42 -38q-5 -25 -5 -48q0 -122 120 -208.5t289 -86.5q170 0 290 86.5t120 208.5q0 25 -6 49q25 13 40.5 37.5t15.5 54.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> <glyph unicode="" d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103 t385.5 -103t279.5 -279.5t103 -385.5z" /> <glyph unicode="" horiz-adv-x="1920" d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" /> <glyph unicode="" d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" /> @@ -454,12 +454,12 @@ <glyph unicode="" horiz-adv-x="1792" d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546 q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" /> <glyph unicode="" horiz-adv-x="2048" d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94 q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55 t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97q14 -16 29.5 -34t34.5 -40t29 -34q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5 t-85 -189.5z" /> <glyph unicode="" horiz-adv-x="1792" d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5 t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" /> -<glyph unicode="" horiz-adv-x="1792" d="M1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348q0 222 101 414.5t276.5 317t390.5 155.5v-260q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 q0 230 -145.5 406t-366.5 221v260q215 -31 390.5 -155.5t276.5 -317t101 -414.5z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1760 640q0 -176 -68.5 -336t-184 -275.5t-275.5 -184t-336 -68.5t-336 68.5t-275.5 184t-184 275.5t-68.5 336q0 213 97 398.5t265 305.5t374 151v-228q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5 t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v228q206 -31 374 -151t265 -305.5t97 -398.5z" /> <glyph unicode="" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" /> <glyph unicode="" horiz-adv-x="1792" d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251 l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162 q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33 q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5 t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> <glyph unicode="" d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85 q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392 q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072 q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> <glyph unicode="" horiz-adv-x="1792" d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58 q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47 q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171 v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" /> -<glyph unicode="" d="M825 547l343 588h-150q-21 -39 -63.5 -118.5t-68 -128.5t-59.5 -118.5t-60 -128.5h-3q-21 48 -44.5 97t-52 105.5t-46.5 92t-54 104.5t-49 95h-150l323 -589v-435h134v436zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="" d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> <glyph unicode="" horiz-adv-x="1280" d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5 t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153 t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" /> <glyph unicode="" horiz-adv-x="1792" d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5 q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20 t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5 t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" /> <glyph unicode="" horiz-adv-x="2048" d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25 q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5 q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109 q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" /> @@ -483,13 +483,13 @@ <glyph unicode="" horiz-adv-x="2048" d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19 t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" /> <glyph unicode="" horiz-adv-x="2048" d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121 q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" /> <glyph unicode="" horiz-adv-x="1792" d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5 t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38 h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" /> -<glyph unicode="" horiz-adv-x="1792" d="M1112 1090q0 159 -237 159h-70q-32 0 -59.5 -21.5t-34.5 -52.5l-63 -276q-2 -5 -2 -16q0 -24 17 -39.5t41 -15.5h53q69 0 128.5 13t112.5 41t83.5 81.5t30.5 126.5zM1716 938q0 -265 -220 -428q-219 -161 -612 -161h-61q-32 0 -59 -21.5t-34 -52.5l-73 -316 q-8 -36 -40.5 -61.5t-69.5 -25.5h-213q-31 0 -53 20t-22 51q0 10 13 65h151q34 0 64 23.5t38 56.5l73 316q8 33 37.5 57t63.5 24h61q390 0 607 160t217 421q0 129 -51 207q183 -92 183 -335zM1533 1123q0 -264 -221 -428q-218 -161 -612 -161h-60q-32 0 -59.5 -22t-34.5 -53 l-73 -315q-8 -36 -40 -61.5t-69 -25.5h-214q-31 0 -52.5 19.5t-21.5 51.5q0 8 2 20l300 1301q8 36 40.5 61.5t69.5 25.5h444q68 0 125 -4t120.5 -15t113.5 -30t96.5 -50.5t77.5 -74t49.5 -103.5t18.5 -136z" /> -<glyph unicode="" horiz-adv-x="1792" d="M602 949q19 -61 31 -123.5t17 -141.5t-14 -159t-62 -145q-21 81 -67 157t-95.5 127t-99 90.5t-78.5 57.5t-33 19q-62 34 -81.5 100t14.5 128t101 81.5t129 -14.5q138 -83 238 -177zM927 1236q11 -25 20.5 -46t36.5 -100.5t42.5 -150.5t25.5 -179.5t0 -205.5t-47.5 -209.5 t-105.5 -208.5q-51 -72 -138 -72q-54 0 -98 31q-57 40 -69 109t28 127q60 85 81 195t13 199.5t-32 180.5t-39 128t-22 52q-31 63 -8.5 129.5t85.5 97.5q34 17 75 17q47 0 88.5 -25t63.5 -69zM1248 567q-17 -160 -72 -311q-17 131 -63 246q25 174 -5 361q-27 178 -94 342 q114 -90 212 -211q9 -37 15 -80q26 -179 7 -347zM1520 1440q9 -17 23.5 -49.5t43.5 -117.5t50.5 -178t34 -227.5t5 -269t-47 -300t-112.5 -323.5q-22 -48 -66 -75.5t-95 -27.5q-39 0 -74 16q-67 31 -92.5 100t4.5 136q58 126 90 257.5t37.5 239.5t-3.5 213.5t-26.5 180.5 t-38.5 138.5t-32.5 90t-15.5 32.5q-34 65 -11.5 135.5t87.5 104.5q37 20 81 20q49 0 91.5 -25.5t66.5 -70.5z" /> +<glyph unicode="" d="M1519 890q18 -84 -4 -204q-87 -444 -565 -444h-44q-25 0 -44 -16.5t-24 -42.5l-4 -19l-55 -346l-2 -15q-5 -26 -24.5 -42.5t-44.5 -16.5h-251q-21 0 -33 15t-9 36q9 56 26.5 168t26.5 168t27 167.5t27 167.5q5 37 43 37h131q133 -2 236 21q175 39 287 144q102 95 155 246 q24 70 35 133q1 6 2.5 7.5t3.5 1t6 -3.5q79 -59 98 -162zM1347 1172q0 -107 -46 -236q-80 -233 -302 -315q-113 -40 -252 -42q0 -1 -90 -1l-90 1q-100 0 -118 -96q-2 -8 -85 -530q-1 -10 -12 -10h-295q-22 0 -36.5 16.5t-11.5 38.5l232 1471q5 29 27.5 48t51.5 19h598 q34 0 97.5 -13t111.5 -32q107 -41 163.5 -123t56.5 -196z" /> +<glyph unicode="" horiz-adv-x="1792" d="M441 864q32 0 52 -26q266 -364 362 -774h-446q-127 441 -367 749q-12 16 -3 33.5t29 17.5h373zM1000 507q-49 -199 -125 -393q-79 310 -256 594q40 221 44 449q211 -340 337 -650zM1099 1216q235 -324 384.5 -698.5t184.5 -773.5h-451q-41 665 -553 1472h435zM1792 640 q0 -424 -101 -812q-67 560 -359 1083q-25 301 -106 584q-4 16 5.5 28.5t25.5 12.5h359q21 0 38.5 -13t22.5 -33q115 -409 115 -850z" /> <glyph unicode="" horiz-adv-x="2304" d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27 q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128 q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> <glyph unicode="" horiz-adv-x="2304" d="M671 603h-13q-47 0 -47 -32q0 -22 20 -22q17 0 28 15t12 39zM1066 639h62v3q1 4 0.5 6.5t-1 7t-2 8t-4.5 6.5t-7.5 5t-11.5 2q-28 0 -36 -38zM1606 603h-12q-48 0 -48 -32q0 -22 20 -22q17 0 28 15t12 39zM1925 629q0 41 -30 41q-19 0 -31 -20t-12 -51q0 -42 28 -42 q20 0 32.5 20t12.5 52zM480 770h87l-44 -262h-56l32 201l-71 -201h-39l-4 200l-34 -200h-53l44 262h81l2 -163zM733 663q0 -6 -4 -42q-16 -101 -17 -113h-47l1 22q-20 -26 -58 -26q-23 0 -37.5 16t-14.5 42q0 39 26 60.5t73 21.5q14 0 23 -1q0 3 0.5 5.5t1 4.5t0.5 3 q0 20 -36 20q-29 0 -59 -10q0 4 7 48q38 11 67 11q74 0 74 -62zM889 721l-8 -49q-22 3 -41 3q-27 0 -27 -17q0 -8 4.5 -12t21.5 -11q40 -19 40 -60q0 -72 -87 -71q-34 0 -58 6q0 2 7 49q29 -8 51 -8q32 0 32 19q0 7 -4.5 11.5t-21.5 12.5q-43 20 -43 59q0 72 84 72 q30 0 50 -4zM977 721h28l-7 -52h-29q-2 -17 -6.5 -40.5t-7 -38.5t-2.5 -18q0 -16 19 -16q8 0 16 2l-8 -47q-21 -7 -40 -7q-43 0 -45 47q0 12 8 56q3 20 25 146h55zM1180 648q0 -23 -7 -52h-111q-3 -22 10 -33t38 -11q30 0 58 14l-9 -54q-30 -8 -57 -8q-95 0 -95 95 q0 55 27.5 90.5t69.5 35.5q35 0 55.5 -21t20.5 -56zM1319 722q-13 -23 -22 -62q-22 2 -31 -24t-25 -128h-56l3 14q22 130 29 199h51l-3 -33q14 21 25.5 29.5t28.5 4.5zM1506 763l-9 -57q-28 14 -50 14q-31 0 -51 -27.5t-20 -70.5q0 -30 13.5 -47t38.5 -17q21 0 48 13 l-10 -59q-28 -8 -50 -8q-45 0 -71.5 30.5t-26.5 82.5q0 70 35.5 114.5t91.5 44.5q26 0 61 -13zM1668 663q0 -18 -4 -42q-13 -79 -17 -113h-46l1 22q-20 -26 -59 -26q-23 0 -37 16t-14 42q0 39 25.5 60.5t72.5 21.5q15 0 23 -1q2 7 2 13q0 20 -36 20q-29 0 -59 -10q0 4 8 48 q38 11 67 11q73 0 73 -62zM1809 722q-14 -24 -21 -62q-23 2 -31.5 -23t-25.5 -129h-56l3 14q19 104 29 199h52q0 -11 -4 -33q15 21 26.5 29.5t27.5 4.5zM1950 770h56l-43 -262h-53l3 19q-23 -23 -52 -23q-31 0 -49.5 24t-18.5 64q0 53 27.5 92t64.5 39q31 0 53 -29z M2061 640q0 148 -72.5 273t-198 198t-273.5 73q-181 0 -328 -110q127 -116 171 -284h-50q-44 150 -158 253q-114 -103 -158 -253h-50q44 168 171 284q-147 110 -328 110q-148 0 -273.5 -73t-198 -198t-72.5 -273t72.5 -273t198 -198t273.5 -73q181 0 328 110 q-120 111 -165 264h50q46 -138 152 -233q106 95 152 233h50q-45 -153 -165 -264q147 -110 328 -110q148 0 273.5 73t198 198t72.5 273zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> <glyph unicode="" horiz-adv-x="2304" d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42 q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604 v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569 q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73 t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" /> <glyph unicode="" horiz-adv-x="2304" d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260 l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279 v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040 q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168 q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5 t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21 h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5 t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" /> -<glyph unicode="" horiz-adv-x="2304" d="M322 689h-15q-19 0 -19 18q0 28 19 85q5 15 15 19.5t28 4.5q77 0 77 -49q0 -41 -30.5 -59.5t-74.5 -18.5zM664 528q-47 0 -47 29q0 62 123 62l3 -3q-5 -88 -79 -88zM1438 687h-15q-19 0 -19 19q0 28 19 85q5 15 14.5 19t28.5 4q77 0 77 -49q0 -41 -30.5 -59.5 t-74.5 -18.5zM1780 527q-47 0 -47 30q0 62 123 62l3 -3q-5 -89 -79 -89zM373 894h-128q-8 0 -14.5 -4t-8.5 -7.5t-7 -12.5q-3 -7 -45 -190t-42 -192q0 -7 5.5 -12.5t13.5 -5.5h62q25 0 32.5 34.5l15 69t32.5 34.5q47 0 87.5 7.5t80.5 24.5t63.5 52.5t23.5 84.5 q0 36 -14.5 61t-41 36.5t-53.5 15.5t-62 4zM719 798q-38 0 -74 -6q-2 0 -8.5 -1t-9 -1.5l-7.5 -1.5t-7.5 -2t-6.5 -3t-6.5 -4t-5 -5t-4.5 -7t-4 -9q-9 -29 -9 -39t9 -10q5 0 21.5 5t19.5 6q30 8 58 8q74 0 74 -36q0 -11 -10 -14q-8 -2 -18 -3t-21.5 -1.5t-17.5 -1.5 q-38 -4 -64.5 -10t-56.5 -19.5t-45.5 -39t-15.5 -62.5q0 -38 26 -59.5t64 -21.5q24 0 45.5 6.5t33 13t38.5 23.5q-3 -7 -3 -15t5.5 -13.5t12.5 -5.5h56q1 1 7 3.5t7.5 3.5t5 3.5t5 5.5t2.5 8l45 194q4 13 4 30q0 81 -145 81zM1247 793h-74q-22 0 -39 -23q-5 -7 -29.5 -51 t-46.5 -81.5t-26 -38.5l-5 4q0 77 -27 166q-1 5 -3.5 8.5t-6 6.5t-6.5 5t-8.5 3t-8.5 1.5t-9.5 1t-9 0.5h-10h-8.5q-38 0 -38 -21l1 -5q5 -53 25 -151t25 -143q2 -16 2 -24q0 -19 -30.5 -61.5t-30.5 -58.5q0 -13 40 -13q61 0 76 25l245 415q10 20 10 26q0 9 -8 9zM1489 892 h-129q-18 0 -29 -23q-6 -13 -46.5 -191.5t-40.5 -190.5q0 -20 43 -20h7.5h9h9t9.5 1t8.5 2t8.5 3t6.5 4.5t5.5 6t3 8.5l21 91q2 10 10.5 17t19.5 7q47 0 87.5 7t80.5 24.5t63.5 52.5t23.5 84q0 36 -14.5 61t-41 36.5t-53.5 15.5t-62 4zM1835 798q-26 0 -74 -6 q-38 -6 -48 -16q-7 -8 -11 -19q-8 -24 -8 -39q0 -10 8 -10q1 0 41 12q30 8 58 8q74 0 74 -36q0 -12 -10 -14q-4 -1 -57 -7q-38 -4 -64.5 -10t-56.5 -19.5t-45.5 -39t-15.5 -62.5t26 -58.5t64 -21.5q24 0 45 6t34 13t38 24q-3 -15 -3 -16q0 -5 2 -8.5t6.5 -5.5t8 -3.5 t10.5 -2t9.5 -0.5h9.5h8q42 0 48 25l45 194q3 15 3 31q0 81 -145 81zM2157 889h-55q-25 0 -33 -40q-10 -44 -36.5 -167t-42.5 -190v-5q0 -16 16 -18h1h57q10 0 18.5 6.5t10.5 16.5l83 374h-1l1 5q0 7 -5.5 12.5t-13.5 5.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048 q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> +<glyph unicode="" horiz-adv-x="2304" d="M745 630q0 -37 -25.5 -61.5t-62.5 -24.5q-29 0 -46.5 16t-17.5 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM1530 779q0 -42 -22 -57t-66 -15l-32 -1l17 107q2 11 13 11h18q22 0 35 -2t25 -12.5t12 -30.5zM1881 630q0 -36 -25.5 -61t-61.5 -25q-29 0 -47 16 t-18 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM513 801q0 59 -38.5 85.5t-100.5 26.5h-160q-19 0 -21 -19l-65 -408q-1 -6 3 -11t10 -5h76q20 0 22 19l18 110q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM822 489l41 261q1 6 -3 11t-10 5h-76 q-14 0 -17 -33q-27 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q28 0 58 12t48 32q-4 -12 -4 -21q0 -16 13 -16h69q19 0 22 19zM1269 752q0 5 -4 9.5t-9 4.5h-77q-11 0 -18 -10l-106 -156l-44 150q-5 16 -22 16h-75q-5 0 -9 -4.5t-4 -9.5q0 -2 19.5 -59 t42 -123t23.5 -70q-82 -112 -82 -120q0 -13 13 -13h77q11 0 18 10l255 368q2 2 2 7zM1649 801q0 59 -38.5 85.5t-100.5 26.5h-159q-20 0 -22 -19l-65 -408q-1 -6 3 -11t10 -5h82q12 0 16 13l18 116q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM1958 489 l41 261q1 6 -3 11t-10 5h-76q-14 0 -17 -33q-26 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q29 0 59 12t47 32q0 -1 -2 -9t-2 -12q0 -16 13 -16h69q19 0 22 19zM2176 898v1q0 14 -13 14h-74q-11 0 -13 -11l-65 -416l-1 -2q0 -5 4 -9.5t10 -4.5h66 q19 0 21 19zM392 764q-5 -35 -26 -46t-60 -11l-33 -1l17 107q2 11 13 11h19q40 0 58 -11.5t12 -48.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> <glyph unicode="" horiz-adv-x="2304" d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109 q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118 q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151 q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31 q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> <glyph unicode="" horiz-adv-x="2048" d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5 l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5 l418 363q10 8 23.5 7t21.5 -11z" /> <glyph unicode="" horiz-adv-x="2048" d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128 q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161 q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" /> @@ -523,7 +523,7 @@ <glyph unicode="" horiz-adv-x="2048" d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832 q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" /> <glyph unicode="" horiz-adv-x="2048" d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126.5t-103.5 132.5t-108.5 126t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5 t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 -113t151.5 -153t139 -167.5t133.5 -153.5t149.5 -113 t172.5 -43.5q102 0 168.5 61.5t66.5 162.5q0 95 -64.5 159t-159.5 64q-30 0 -81.5 -18.5t-68.5 -18.5q-20 0 -35.5 15t-15.5 35q0 18 8.5 57t8.5 59q0 159 -107.5 263t-266.5 104q-58 0 -111.5 -18.5t-84 -40.5t-55.5 -40.5t-33 -18.5q-15 0 -25.5 10.5t-10.5 25.5 q0 19 25 46q59 67 147 103.5t182 36.5q191 0 318 -125.5t127 -315.5q0 -37 -4 -66q57 15 115 15z" /> <glyph unicode="" horiz-adv-x="1664" d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" /> -<glyph unicode="" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" /> +<glyph unicode="" horiz-adv-x="1664" d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" /> <glyph unicode="" horiz-adv-x="2048" d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20 l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" /> <glyph unicode="" horiz-adv-x="2048" d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83 q19 19 45 19t45 -19l83 -83zM237 19q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -82l83 82q19 19 45 19t45 -19l83 -82l64 64v293l-210 314q-17 26 -7 56.5t40 40.5l177 58v299h128v128h256v128h256v-128h256v-128h128v-299l177 -58q30 -10 40 -40.5t-7 -56.5l-210 -314 v-293l19 18q19 19 45 19t45 -19l83 -82l83 82q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83zM640 1152v-128l384 128l384 -128v128h-128v128h-512v-128h-128z" /> <glyph unicode="" d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14 t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 20.5t7.5 20.5q2 7 7.5 10.5t7.5 6.5 q2 9 4 27zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 61 4.5 118t19 125.5t37.5 123.5t63.5 103.5t93.5 74.5l-90 220h214q-22 64 -22 128q0 12 2 32q-194 40 -194 96q0 57 210 99q17 62 51.5 134t70.5 114q32 37 76 37q30 0 84 -31t84 -31t84 31 t84 31q44 0 76 -37q36 -42 70.5 -114t51.5 -134q210 -42 210 -99q0 -56 -194 -96q7 -81 -20 -160h214l-82 -225q63 -33 107.5 -96.5t65.5 -143.5t29 -151.5t8 -148.5z" /> @@ -531,18 +531,18 @@ <glyph unicode="" d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12 q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 -44.5t91 -66.5t33 -88.5zM1024 896v-384 q0 -26 -19 -45t-45 -19h-64v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384h-64q-26 0 -45 19t-19 45v384q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM928 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5 t158.5 -65.5t65.5 -158.5z" /> <glyph unicode="" horiz-adv-x="1792" d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221 q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124 t127 -344z" /> <glyph unicode="" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292 q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" /> -<glyph unicode="" horiz-adv-x="1792" d="M1280 1504q0 14 9 23t23 9h416q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-419 -420q87 -104 129.5 -236.5t30.5 -276.5q-22 -250 -200.5 -431t-428.5 -206q-163 -17 -314 39.5t-256.5 162t-162 256.5t-39.5 314q25 250 206 428.5 t431 200.5q144 12 276.5 -30.5t236.5 -129.5l419 419h-261q-14 0 -23 9t-9 23v64zM704 -128q117 0 223.5 45.5t184 123t123 184t45.5 223.5t-45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123 t223.5 -45.5z" /> +<glyph unicode="" d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-382 -383q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5 q203 0 359 -126l382 382h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> <glyph unicode="" horiz-adv-x="1280" d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5 t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -273zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> <glyph unicode="" d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> <glyph unicode="" horiz-adv-x="1792" d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l-111 112v-134q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9 t-9 23v288q0 26 19 45t45 19h288q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-133l106 -107l86 94q9 10 22 10.5t23 -7.5l48 -44q10 -8 10.5 -21.5t-8.5 -23.5l-90 -99l57 -56q158 126 359 126t359 -126l255 254h-134q-14 0 -23 9t-9 23v64zM832 256q185 0 316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> <glyph unicode="" horiz-adv-x="1792" d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23 t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM576 512q115 0 218 57q-154 165 -154 391 q0 224 154 391q-103 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1152 128v260q-137 15 -256 94q-119 -79 -256 -94v-260h512zM1216 512q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5q-115 0 -218 -57q154 -167 154 -391 q0 -226 -154 -391q103 -57 218 -57z" /> <glyph unicode="" horiz-adv-x="1920" d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230 q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -74 93 -169q182 -9 328 -124l255 254h-134q-14 0 -23 9 t-9 23v64zM1024 704q0 20 -4 58q-162 -25 -271 -150t-109 -292q0 -20 4 -58q162 25 271 150t109 292zM128 704q0 -168 111 -294t276 -149q-3 29 -3 59q0 210 135 369.5t338 196.5q-53 120 -163.5 193t-245.5 73q-185 0 -316.5 -131.5t-131.5 -316.5zM1088 -128 q185 0 316.5 131.5t131.5 316.5q0 168 -111 294t-276 149q3 -29 3 -59q0 -210 -135 -369.5t-338 -196.5q53 -120 163.5 -193t245.5 -73z" /> <glyph unicode="" horiz-adv-x="2048" d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23 t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q146 97 320 97q201 0 359 -126l255 254h-134q-14 0 -23 9 t-9 23v64zM896 391q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM128 704q0 -185 131.5 -316.5t316.5 -131.5q117 0 218 57q-154 167 -154 391t154 391q-101 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5zM1216 256q185 0 316.5 131.5t131.5 316.5 t-131.5 316.5t-316.5 131.5q-117 0 -218 -57q154 -167 154 -391t-154 -391q101 -57 218 -57z" /> -<glyph unicode="" horiz-adv-x="1792" d="M1728 1536q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-229 -230l156 -156q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-156 157l-99 -100q87 -104 129.5 -236.5t30.5 -276.5q-22 -250 -200.5 -431t-428.5 -206q-163 -17 -314 39.5 t-256.5 162t-162 256.5t-39.5 314q25 250 206 428.5t431 200.5q144 12 276.5 -30.5t236.5 -129.5l99 99l-156 156q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l156 -156l229 229h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM1280 448q0 117 -45.5 223.5t-123 184t-184 123 t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5z" /> +<glyph unicode="" d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-213 -214l140 -140q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-140 141l-78 -79q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5 t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5q203 0 359 -126l78 78l-172 172q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l172 -172l213 213h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> <glyph unicode="" horiz-adv-x="1280" d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22 t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5 t131.5 -316.5t316.5 -131.5z" /> -<glyph unicode="" horiz-adv-x="2048" d="M2029 685q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-131q-12 -119 -67 -226t-139 -183.5t-196.5 -121.5t-234.5 -45q-180 0 -330.5 91t-234.5 247 t-74 337q8 162 94 300t226.5 219.5t302.5 85.5q166 4 310.5 -71.5t235.5 -208.5t107 -296h131v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM640 128q104 0 198.5 40.5t163.5 109.5t109.5 163.5 t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" /> +<glyph unicode="" horiz-adv-x="2048" d="M1901 621q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-132q-24 -217 -187.5 -364.5t-384.5 -147.5q-167 0 -306 87t-212 236t-54 319q15 133 88 245.5 t188 182t249 80.5q155 12 292 -52.5t224 -186t103 -271.5h132v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM576 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5 t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> <glyph unicode="" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> -<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1280" d="M1024 576q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1152 576q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123 t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5z" /> <glyph unicode="" horiz-adv-x="1792" /> <glyph unicode="" horiz-adv-x="1792" /> <glyph unicode="" d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" /> @@ -555,11 +555,131 @@ <glyph unicode="" d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" /> <glyph unicode="" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56 t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" /> <glyph unicode="" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47 t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" /> -<glyph unicode="" horiz-adv-x="1792" d="M1792 204v-209h-642v209h134v926h-6l-314 -1135h-243l-310 1135h-8v-926h135v-209h-538v209h69q21 0 43 19.5t22 37.5v881q0 18 -22 40t-43 22h-69v209h672l221 -821h6l223 821h670v-209h-71q-19 0 -41 -22t-22 -40v-881q0 -18 21.5 -37.5t41.5 -19.5h71z" /> -<glyph unicode="" horiz-adv-x="1792" /> -<glyph unicode="" horiz-adv-x="1792" /> -<glyph unicode="" horiz-adv-x="1792" /> -<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" d="M597 1115v-1173q0 -25 -12.5 -42.5t-36.5 -17.5q-17 0 -33 8l-465 233q-21 10 -35.5 33.5t-14.5 46.5v1140q0 20 10 34t29 14q14 0 44 -15l511 -256q3 -3 3 -5zM661 1014l534 -866l-534 266v600zM1792 996v-1054q0 -25 -14 -40.5t-38 -15.5t-47 13l-441 220zM1789 1116 q0 -3 -256.5 -419.5t-300.5 -487.5l-390 634l324 527q17 28 52 28q14 0 26 -6l541 -270q4 -2 4 -6z" /> +<glyph unicode="" d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" /> +<glyph unicode="" horiz-adv-x="2296" d="M478 -139q-8 -16 -27 -34.5t-37 -25.5q-25 -9 -51.5 3.5t-28.5 31.5q-1 22 40 55t68 38q23 4 34 -21.5t2 -46.5zM1819 -139q7 -16 26 -34.5t38 -25.5q25 -9 51.5 3.5t27.5 31.5q2 22 -39.5 55t-68.5 38q-22 4 -33 -21.5t-2 -46.5zM1867 -30q13 -27 56.5 -59.5t77.5 -41.5 q45 -13 82 4.5t37 50.5q0 46 -67.5 100.5t-115.5 59.5q-40 5 -63.5 -37.5t-6.5 -76.5zM428 -30q-13 -27 -56 -59.5t-77 -41.5q-45 -13 -82 4.5t-37 50.5q0 46 67.5 100.5t115.5 59.5q40 5 63 -37.5t6 -76.5zM1158 1094h1q-41 0 -76 -15q27 -8 44 -30.5t17 -49.5 q0 -35 -27 -60t-65 -25q-52 0 -80 43q-5 -23 -5 -42q0 -74 56 -126.5t135 -52.5q80 0 136 52.5t56 126.5t-56 126.5t-136 52.5zM1462 1312q-99 109 -220.5 131.5t-245.5 -44.5q27 60 82.5 96.5t118 39.5t121.5 -17t99.5 -74.5t44.5 -131.5zM2212 73q8 -11 -11 -42 q7 -23 7 -40q1 -56 -44.5 -112.5t-109.5 -91.5t-118 -37q-48 -2 -92 21.5t-66 65.5q-687 -25 -1259 0q-23 -41 -66.5 -65t-92.5 -22q-86 3 -179.5 80.5t-92.5 160.5q2 22 7 40q-19 31 -11 42q6 10 31 1q14 22 41 51q-7 29 2 38q11 10 39 -4q29 20 59 34q0 29 13 37 q23 12 51 -16q35 5 61 -2q18 -4 38 -19v73q-11 0 -18 2q-53 10 -97 44.5t-55 87.5q-9 38 0 81q15 62 93 95q2 17 19 35.5t36 23.5t33 -7.5t19 -30.5h13q46 -5 60 -23q3 -3 5 -7q10 1 30.5 3.5t30.5 3.5q-15 11 -30 17q-23 40 -91 43q0 6 1 10q-62 2 -118.5 18.5t-84.5 47.5 q-32 36 -42.5 92t-2.5 112q16 126 90 179q23 16 52 4.5t32 -40.5q0 -1 1.5 -14t2.5 -21t3 -20t5.5 -19t8.5 -10q27 -14 76 -12q48 46 98 74q-40 4 -162 -14l47 46q61 58 163 111q145 73 282 86q-20 8 -41 15.5t-47 14t-42.5 10.5t-47.5 11t-43 10q595 126 904 -139 q98 -84 158 -222q85 -10 121 9h1q5 3 8.5 10t5.5 19t3 19.5t3 21.5l1 14q3 28 32 40t52 -5q73 -52 91 -178q7 -57 -3.5 -113t-42.5 -91q-28 -32 -83.5 -48.5t-115.5 -18.5v-10q-71 -2 -95 -43q-14 -5 -31 -17q11 -1 32 -3.5t30 -3.5q1 4 5 8q16 18 60 23h13q5 18 19 30t33 8 t36 -23t19 -36q79 -32 93 -95q9 -40 1 -81q-12 -53 -56 -88t-97 -44q-10 -2 -17 -2q0 -49 -1 -73q20 15 38 19q26 7 61 2q28 28 51 16q14 -9 14 -37q33 -16 59 -34q27 13 38 4q10 -10 2 -38q28 -30 41 -51q23 8 31 -1zM1937 1025q0 -29 -9 -54q82 -32 112 -132 q4 37 -9.5 98.5t-41.5 90.5q-20 19 -36 17t-16 -20zM1859 925q35 -42 47.5 -108.5t-0.5 -124.5q67 13 97 45q13 14 18 28q-3 64 -31 114.5t-79 66.5q-15 -15 -52 -21zM1822 921q-30 0 -44 1q42 -115 53 -239q21 0 43 3q16 68 1 135t-53 100zM258 839q30 100 112 132 q-9 25 -9 54q0 18 -16.5 20t-35.5 -17q-28 -29 -41.5 -90.5t-9.5 -98.5zM294 737q29 -31 97 -45q-13 58 -0.5 124.5t47.5 108.5v0q-37 6 -52 21q-51 -16 -78.5 -66t-31.5 -115q9 -17 18 -28zM471 683q14 124 73 235q-19 -4 -55 -18l-45 -19v1q-46 -89 -20 -196q25 -3 47 -3z M1434 644q8 -38 16.5 -108.5t11.5 -89.5q3 -18 9.5 -21.5t23.5 4.5q40 20 62 85.5t23 125.5q-24 2 -146 4zM1152 1285q-116 0 -199 -82.5t-83 -198.5q0 -117 83 -199.5t199 -82.5t199 82.5t83 199.5q0 116 -83 198.5t-199 82.5zM1380 646q-106 2 -211 0v1q-1 -27 2.5 -86 t13.5 -66q29 -14 93.5 -14.5t95.5 10.5q9 3 11 39t-0.5 69.5t-4.5 46.5zM1112 447q8 4 9.5 48t-0.5 88t-4 63v1q-212 -3 -214 -3q-4 -20 -7 -62t0 -83t14 -46q34 -15 101 -16t101 10zM718 636q-16 -59 4.5 -118.5t77.5 -84.5q15 -8 24 -5t12 21q3 16 8 90t10 103 q-69 -2 -136 -6zM591 510q3 -23 -34 -36q132 -141 271.5 -240t305.5 -154q172 49 310.5 146t293.5 250q-33 13 -30 34l3 9v1v-1q-17 2 -50 5.5t-48 4.5q-26 -90 -82 -132q-51 -38 -82 1q-5 6 -9 14q-7 13 -17 62q-2 -5 -5 -9t-7.5 -7t-8 -5.5t-9.5 -4l-10 -2.5t-12 -2 l-12 -1.5t-13.5 -1t-13.5 -0.5q-106 -9 -163 11q-4 -17 -10 -26.5t-21 -15t-23 -7t-36 -3.5q-2 0 -3 -0.5t-3 -0.5h-3q-179 -17 -203 40q-2 -63 -56 -54q-47 8 -91 54q-12 13 -20 26q-17 29 -26 65q-58 -6 -87 -10q1 -2 4 -10zM507 -118q3 14 3 30q-17 71 -51 130t-73 70 q-41 12 -101.5 -14.5t-104.5 -80t-39 -107.5q35 -53 100 -93t119 -42q51 -2 94 28t53 79zM510 53q23 -63 27 -119q195 113 392 174q-98 52 -180.5 120t-179.5 165q-6 -4 -29 -13q0 -2 -1 -5t-1 -4q31 -18 22 -37q-12 -23 -56 -34q-10 -13 -29 -24h-1q-2 -83 1 -150 q19 -34 35 -73zM579 -113q532 -21 1145 0q-254 147 -428 196q-76 -35 -156 -57q-8 -3 -16 0q-65 21 -129 49q-208 -60 -416 -188h-1v-1q1 0 1 1zM1763 -67q4 54 28 120q14 38 33 71l-1 -1q3 77 3 153q-15 8 -30 25q-42 9 -56 33q-9 20 22 38q-2 4 -2 9q-16 4 -28 12 q-204 -190 -383 -284q198 -59 414 -176zM2155 -90q5 54 -39 107.5t-104 80t-102 14.5q-38 -11 -72.5 -70.5t-51.5 -129.5q0 -16 3 -30q10 -49 53 -79t94 -28q54 2 119 42t100 93z" /> +<glyph unicode="" horiz-adv-x="2304" d="M1524 -25q0 -68 -48 -116t-116 -48t-116.5 48t-48.5 116t48.5 116.5t116.5 48.5t116 -48.5t48 -116.5zM775 -25q0 -68 -48.5 -116t-116.5 -48t-116 48t-48 116t48 116.5t116 48.5t116.5 -48.5t48.5 -116.5zM0 1469q57 -60 110.5 -104.5t121 -82t136 -63t166 -45.5 t200 -31.5t250 -18.5t304 -9.5t372.5 -2.5q139 0 244.5 -5t181 -16.5t124 -27.5t71 -39.5t24 -51.5t-19.5 -64t-56.5 -76.5t-89.5 -91t-116 -104.5t-139 -119q-185 -157 -286 -247q29 51 76.5 109t94 105.5t94.5 98.5t83 91.5t54 80.5t13 70t-45.5 55.5t-116.5 41t-204 23.5 t-304 5q-168 -2 -314 6t-256 23t-204.5 41t-159.5 51.5t-122.5 62.5t-91.5 66.5t-68 71.5t-50.5 69.5t-40 68t-36.5 59.5z" /> +<glyph unicode="" horiz-adv-x="1792" d="M896 1472q-169 0 -323 -66t-265.5 -177.5t-177.5 -265.5t-66 -323t66 -323t177.5 -265.5t265.5 -177.5t323 -66t323 66t265.5 177.5t177.5 265.5t66 323t-66 323t-177.5 265.5t-265.5 177.5t-323 66zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348 t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM496 704q16 0 16 -16v-480q0 -16 -16 -16h-32q-16 0 -16 16v480q0 16 16 16h32zM896 640q53 0 90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-114q0 -14 -9 -23 t-23 -9h-64q-14 0 -23 9t-9 23v114q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5zM896 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM544 928v-96 q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5v-96q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 146 -103 249t-249 103t-249 -103t-103 -249zM1408 192v512q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-512 q0 -26 19 -45t45 -19h896q26 0 45 19t19 45z" /> +<glyph unicode="" horiz-adv-x="2304" d="M1920 1024v-768h-1664v768h1664zM2048 448h128v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288zM2304 832v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113 v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160q53 0 90.5 -37.5t37.5 -90.5z" /> +<glyph unicode="" horiz-adv-x="2304" d="M256 256v768h1280v-768h-1280zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> +<glyph unicode="" horiz-adv-x="2304" d="M256 256v768h896v-768h-896zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> +<glyph unicode="" horiz-adv-x="2304" d="M256 256v768h512v-768h-512zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> +<glyph unicode="" horiz-adv-x="2304" d="M2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23 v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> +<glyph unicode="" horiz-adv-x="1280" d="M1133 493q31 -30 14 -69q-17 -40 -59 -40h-382l201 -476q10 -25 0 -49t-34 -35l-177 -75q-25 -10 -49 0t-35 34l-191 452l-312 -312q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v1504q0 42 40 59q12 5 24 5q27 0 45 -19z" /> +<glyph unicode="" horiz-adv-x="1024" d="M832 1408q-320 0 -320 -224v-416h128v-128h-128v-544q0 -224 320 -224h64v-128h-64q-272 0 -384 146q-112 -146 -384 -146h-64v128h64q320 0 320 224v544h-128v128h128v416q0 224 -320 224h-64v128h64q272 0 384 -146q112 146 384 146h64v-128h-64z" /> +<glyph unicode="" horiz-adv-x="2048" d="M2048 1152h-128v-1024h128v-384h-384v128h-1280v-128h-384v384h128v1024h-128v384h384v-128h1280v128h384v-384zM1792 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 -128v128h-128v-128h128zM1664 0v128h128v1024h-128v128h-1280v-128h-128v-1024h128v-128 h1280zM1920 -128v128h-128v-128h128zM1280 896h384v-768h-896v256h-384v768h896v-256zM512 512h640v512h-640v-512zM1536 256v512h-256v-384h-384v-128h640z" /> +<glyph unicode="" horiz-adv-x="2304" d="M2304 768h-128v-640h128v-384h-384v128h-896v-128h-384v384h128v128h-384v-128h-384v384h128v640h-128v384h384v-128h896v128h384v-384h-128v-128h384v128h384v-384zM2048 1024v-128h128v128h-128zM1408 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 256 v128h-128v-128h128zM1536 384h-128v-128h128v128zM384 384h896v128h128v640h-128v128h-896v-128h-128v-640h128v-128zM896 -128v128h-128v-128h128zM2176 -128v128h-128v-128h128zM2048 128v640h-128v128h-384v-384h128v-384h-384v128h-384v-128h128v-128h896v128h128z" /> +<glyph unicode="" d="M1024 288v-416h-928q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68v-928h-416q-40 0 -68 -28t-28 -68zM1152 256h381q-15 -82 -65 -132l-184 -184q-50 -50 -132 -65v381z" /> +<glyph unicode="" d="M1400 256h-248v-248q29 10 41 22l185 185q12 12 22 41zM1120 384h288v896h-1280v-1280h896v288q0 40 28 68t68 28zM1536 1312v-1024q0 -40 -20 -88t-48 -76l-184 -184q-28 -28 -76 -48t-88 -20h-1024q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68 z" /> +<glyph unicode="" horiz-adv-x="2304" d="M1951 538q0 -26 -15.5 -44.5t-38.5 -23.5q-8 -2 -18 -2h-153v140h153q10 0 18 -2q23 -5 38.5 -23.5t15.5 -44.5zM1933 751q0 -25 -15 -42t-38 -21q-3 -1 -15 -1h-139v129h139q3 0 8.5 -0.5t6.5 -0.5q23 -4 38 -21.5t15 -42.5zM728 587v308h-228v-308q0 -58 -38 -94.5 t-105 -36.5q-108 0 -229 59v-112q53 -15 121 -23t109 -9l42 -1q328 0 328 217zM1442 403v113q-99 -52 -200 -59q-108 -8 -169 41t-61 142t61 142t169 41q101 -7 200 -58v112q-48 12 -100 19.5t-80 9.5l-28 2q-127 6 -218.5 -14t-140.5 -60t-71 -88t-22 -106t22 -106t71 -88 t140.5 -60t218.5 -14q101 4 208 31zM2176 518q0 54 -43 88.5t-109 39.5v3q57 8 89 41.5t32 79.5q0 55 -41 88t-107 36q-3 0 -12 0.5t-14 0.5h-455v-510h491q74 0 121.5 36.5t47.5 96.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90 t90 38h2048q52 0 90 -38t38 -90z" /> +<glyph unicode="" horiz-adv-x="2304" d="M858 295v693q-106 -41 -172 -135.5t-66 -211.5t66 -211.5t172 -134.5zM1362 641q0 117 -66 211.5t-172 135.5v-694q106 41 172 135.5t66 211.5zM1577 641q0 -159 -78.5 -294t-213.5 -213.5t-294 -78.5q-119 0 -227.5 46.5t-187 125t-125 187t-46.5 227.5q0 159 78.5 294 t213.5 213.5t294 78.5t294 -78.5t213.5 -213.5t78.5 -294zM1960 634q0 139 -55.5 261.5t-147.5 205.5t-213.5 131t-252.5 48h-301q-176 0 -323.5 -81t-235 -230t-87.5 -335q0 -171 87 -317.5t236 -231.5t323 -85h301q129 0 251.5 50.5t214.5 135t147.5 202.5t55.5 246z M2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1664 -96v1088q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5zM1792 992v-1088q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113 zM1408 1376v-160h-128v160q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h160v-128h-160q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113z" /> +<glyph unicode="" horiz-adv-x="2304" d="M1728 1088l-384 -704h768zM448 1088l-384 -704h768zM1269 1280q-14 -40 -45.5 -71.5t-71.5 -45.5v-1291h608q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1344q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h608v1291q-40 14 -71.5 45.5t-45.5 71.5h-491q-14 0 -23 9t-9 23v64 q0 14 9 23t23 9h491q21 57 70 92.5t111 35.5t111 -35.5t70 -92.5h491q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-491zM1088 1264q33 0 56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5zM2176 384q0 -73 -46.5 -131t-117.5 -91 t-144.5 -49.5t-139.5 -16.5t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81zM896 384q0 -73 -46.5 -131t-117.5 -91t-144.5 -49.5t-139.5 -16.5 t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81z" /> +<glyph unicode="" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-77 -29 -149 -92.5 t-129.5 -152.5t-92.5 -210t-35 -253h1024q0 132 -35 253t-92.5 210t-129.5 152.5t-149 92.5q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" /> +<glyph unicode="" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -66 9 -128h1006q9 61 9 128zM1280 -128q0 130 -34 249.5t-90.5 208t-126.5 152t-146 94.5h-230q-76 -31 -146 -94.5t-126.5 -152t-90.5 -208t-34 -249.5h1024z" /> +<glyph unicode="" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -206 85 -384h854q85 178 85 384zM1223 192q-54 141 -145.5 241.5t-194.5 142.5h-230q-103 -42 -194.5 -142.5t-145.5 -241.5h910z" /> +<glyph unicode="" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-137 -51 -244 -196 h700q-107 145 -244 196q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" /> +<glyph unicode="" d="M1504 -64q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472zM130 0q3 55 16 107t30 95t46 87t53.5 76t64.5 69.5t66 60t70.5 55t66.5 47.5t65 43q-43 28 -65 43t-66.5 47.5t-70.5 55t-66 60t-64.5 69.5t-53.5 76t-46 87 t-30 95t-16 107h1276q-3 -55 -16 -107t-30 -95t-46 -87t-53.5 -76t-64.5 -69.5t-66 -60t-70.5 -55t-66.5 -47.5t-65 -43q43 -28 65 -43t66.5 -47.5t70.5 -55t66 -60t64.5 -69.5t53.5 -76t46 -87t30 -95t16 -107h-1276zM1504 1536q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9 h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472z" /> +<glyph unicode="" d="M768 1152q-53 0 -90.5 -37.5t-37.5 -90.5v-128h-32v93q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-429l-32 30v172q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-224q0 -47 35 -82l310 -296q39 -39 39 -102q0 -26 19 -45t45 -19h640q26 0 45 19t19 45v25 q0 41 10 77l108 436q10 36 10 77v246q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-32h-32v125q0 40 -25 72.5t-64 40.5q-14 2 -23 2q-46 0 -79 -33t-33 -79v-128h-32v122q0 51 -32.5 89.5t-82.5 43.5q-5 1 -13 1zM768 1280q84 0 149 -50q57 34 123 34q59 0 111 -27 t86 -76q27 7 59 7q100 0 170 -71.5t70 -171.5v-246q0 -51 -13 -108l-109 -436q-6 -24 -6 -71q0 -80 -56 -136t-136 -56h-640q-84 0 -138 58.5t-54 142.5l-308 296q-76 73 -76 175v224q0 99 70.5 169.5t169.5 70.5q11 0 16 -1q6 95 75.5 160t164.5 65q52 0 98 -21 q72 69 174 69z" /> +<glyph unicode="" horiz-adv-x="1792" d="M880 1408q-46 0 -79 -33t-33 -79v-656h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528v-256l-154 205q-38 51 -102 51q-53 0 -90.5 -37.5t-37.5 -90.5q0 -43 26 -77l384 -512q38 -51 102 -51h688q34 0 61 22t34 56l76 405q5 32 5 59v498q0 46 -33 79t-79 33t-79 -33 t-33 -79v-272h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528h-32v656q0 46 -33 79t-79 33zM880 1536q68 0 125.5 -35.5t88.5 -96.5q19 4 42 4q99 0 169.5 -70.5t70.5 -169.5v-17q105 6 180.5 -64t75.5 -175v-498q0 -40 -8 -83l-76 -404q-14 -79 -76.5 -131t-143.5 -52 h-688q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 106 75 181t181 75q78 0 128 -34v434q0 99 70.5 169.5t169.5 70.5q23 0 42 -4q31 61 88.5 96.5t125.5 35.5z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1073 -128h-177q-163 0 -226 141q-23 49 -23 102v5q-62 30 -98.5 88.5t-36.5 127.5q0 38 5 48h-261q-106 0 -181 75t-75 181t75 181t181 75h113l-44 17q-74 28 -119.5 93.5t-45.5 145.5q0 106 75 181t181 75q46 0 91 -17l628 -239h401q106 0 181 -75t75 -181v-668 q0 -88 -54 -157.5t-140 -90.5l-339 -85q-92 -23 -186 -23zM1024 583l-155 -71l-163 -74q-30 -14 -48 -41.5t-18 -60.5q0 -46 33 -79t79 -33q26 0 46 10l338 154q-49 10 -80.5 50t-31.5 90v55zM1344 272q0 46 -33 79t-79 33q-26 0 -46 -10l-290 -132q-28 -13 -37 -17 t-30.5 -17t-29.5 -23.5t-16 -29t-8 -40.5q0 -50 31.5 -82t81.5 -32q20 0 38 9l352 160q30 14 48 41.5t18 60.5zM1112 1024l-650 248q-24 8 -46 8q-53 0 -90.5 -37.5t-37.5 -90.5q0 -40 22.5 -73t59.5 -47l526 -200v-64h-640q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5 t90.5 -37.5h535l233 106v198q0 63 46 106l111 102h-69zM1073 0q82 0 155 19l339 85q43 11 70 45.5t27 78.5v668q0 53 -37.5 90.5t-90.5 37.5h-308l-136 -126q-36 -33 -36 -82v-296q0 -46 33 -77t79 -31t79 35t33 81v208h32v-208q0 -70 -57 -114q52 -8 86.5 -48.5t34.5 -93.5 q0 -42 -23 -78t-61 -53l-310 -141h91z" /> +<glyph unicode="" horiz-adv-x="2048" d="M1151 1536q61 0 116 -28t91 -77l572 -781q118 -159 118 -359v-355q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v177l-286 143h-546q-80 0 -136 56t-56 136v32q0 119 84.5 203.5t203.5 84.5h420l42 128h-686q-100 0 -173.5 67.5t-81.5 166.5q-65 79 -65 182v32 q0 80 56 136t136 56h959zM1920 -64v355q0 157 -93 284l-573 781q-39 52 -103 52h-959q-26 0 -45 -19t-19 -45q0 -32 1.5 -49.5t9.5 -40.5t25 -43q10 31 35.5 50t56.5 19h832v-32h-832q-26 0 -45 -19t-19 -45q0 -44 3 -58q8 -44 44 -73t81 -29h640h91q40 0 68 -28t28 -68 q0 -15 -5 -30l-64 -192q-10 -29 -35 -47.5t-56 -18.5h-443q-66 0 -113 -47t-47 -113v-32q0 -26 19 -45t45 -19h561q16 0 29 -7l317 -158q24 -13 38.5 -36t14.5 -50v-197q0 -26 19 -45t45 -19h384q26 0 45 19t19 45z" /> +<glyph unicode="" horiz-adv-x="2048" d="M816 1408q-48 0 -79.5 -34t-31.5 -82q0 -14 3 -28l150 -624h-26l-116 482q-9 38 -39.5 62t-69.5 24q-47 0 -79 -34t-32 -81q0 -11 4 -29q3 -13 39 -161t68 -282t32 -138v-227l-307 230q-34 26 -77 26q-52 0 -89.5 -36.5t-37.5 -88.5q0 -67 56 -110l507 -379 q34 -26 76 -26h694q33 0 59 20.5t34 52.5l100 401q8 30 10 88t9 86l116 478q3 12 3 26q0 46 -33 79t-80 33q-38 0 -69 -25.5t-40 -62.5l-99 -408h-26l132 547q3 14 3 28q0 47 -32 80t-80 33q-38 0 -68.5 -24t-39.5 -62l-145 -602h-127l-164 682q-9 38 -39.5 62t-68.5 24z M1461 -256h-694q-85 0 -153 51l-507 380q-50 38 -78.5 94t-28.5 118q0 105 75 179t180 74q25 0 49.5 -5.5t41.5 -11t41 -20.5t35 -23t38.5 -29.5t37.5 -28.5l-123 512q-7 35 -7 59q0 93 60 162t152 79q14 87 80.5 144.5t155.5 57.5q83 0 148 -51.5t85 -132.5l103 -428 l83 348q20 81 85 132.5t148 51.5q87 0 152.5 -54t82.5 -139q93 -10 155 -78t62 -161q0 -30 -7 -57l-116 -477q-5 -22 -5 -67q0 -51 -13 -108l-101 -401q-19 -75 -79.5 -122.5t-137.5 -47.5z" /> +<glyph unicode="" horiz-adv-x="1792" d="M640 1408q-53 0 -90.5 -37.5t-37.5 -90.5v-512v-384l-151 202q-41 54 -107 54q-52 0 -89 -38t-37 -90q0 -43 26 -77l384 -512q38 -51 102 -51h718q22 0 39.5 13.5t22.5 34.5l92 368q24 96 24 194v217q0 41 -28 71t-68 30t-68 -28t-28 -68h-32v61q0 48 -32 81.5t-80 33.5 q-46 0 -79 -33t-33 -79v-64h-32v90q0 55 -37 94.5t-91 39.5q-53 0 -90.5 -37.5t-37.5 -90.5v-96h-32v570q0 55 -37 94.5t-91 39.5zM640 1536q107 0 181.5 -77.5t74.5 -184.5v-220q22 2 32 2q99 0 173 -69q47 21 99 21q113 0 184 -87q27 7 56 7q94 0 159 -67.5t65 -161.5 v-217q0 -116 -28 -225l-92 -368q-16 -64 -68 -104.5t-118 -40.5h-718q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 105 74.5 180.5t179.5 75.5q71 0 130 -35v547q0 106 75 181t181 75zM768 128v384h-32v-384h32zM1024 128v384h-32v-384h32zM1280 128v384h-32 v-384h32z" /> +<glyph unicode="" d="M1288 889q60 0 107 -23q141 -63 141 -226v-177q0 -94 -23 -186l-85 -339q-21 -86 -90.5 -140t-157.5 -54h-668q-106 0 -181 75t-75 181v401l-239 628q-17 45 -17 91q0 106 75 181t181 75q80 0 145.5 -45.5t93.5 -119.5l17 -44v113q0 106 75 181t181 75t181 -75t75 -181 v-261q27 5 48 5q69 0 127.5 -36.5t88.5 -98.5zM1072 896q-33 0 -60.5 -18t-41.5 -48l-74 -163l-71 -155h55q50 0 90 -31.5t50 -80.5l154 338q10 20 10 46q0 46 -33 79t-79 33zM1293 761q-22 0 -40.5 -8t-29 -16t-23.5 -29.5t-17 -30.5t-17 -37l-132 -290q-10 -20 -10 -46 q0 -46 33 -79t79 -33q33 0 60.5 18t41.5 48l160 352q9 18 9 38q0 50 -32 81.5t-82 31.5zM128 1120q0 -22 8 -46l248 -650v-69l102 111q43 46 106 46h198l106 233v535q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-640h-64l-200 526q-14 37 -47 59.5t-73 22.5 q-53 0 -90.5 -37.5t-37.5 -90.5zM1180 -128q44 0 78.5 27t45.5 70l85 339q19 73 19 155v91l-141 -310q-17 -38 -53 -61t-78 -23q-53 0 -93.5 34.5t-48.5 86.5q-44 -57 -114 -57h-208v32h208q46 0 81 33t35 79t-31 79t-77 33h-296q-49 0 -82 -36l-126 -136v-308 q0 -53 37.5 -90.5t90.5 -37.5h668z" /> +<glyph unicode="" horiz-adv-x="1973" d="M857 992v-117q0 -13 -9.5 -22t-22.5 -9h-298v-812q0 -13 -9 -22.5t-22 -9.5h-135q-13 0 -22.5 9t-9.5 23v812h-297q-13 0 -22.5 9t-9.5 22v117q0 14 9 23t23 9h793q13 0 22.5 -9.5t9.5 -22.5zM1895 995l77 -961q1 -13 -8 -24q-10 -10 -23 -10h-134q-12 0 -21 8.5 t-10 20.5l-46 588l-189 -425q-8 -19 -29 -19h-120q-20 0 -29 19l-188 427l-45 -590q-1 -12 -10 -20.5t-21 -8.5h-135q-13 0 -23 10q-9 10 -9 24l78 961q1 12 10 20.5t21 8.5h142q20 0 29 -19l220 -520q10 -24 20 -51q3 7 9.5 24.5t10.5 26.5l221 520q9 19 29 19h141 q13 0 22 -8.5t10 -20.5z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1042 833q0 88 -60 121q-33 18 -117 18h-123v-281h162q66 0 102 37t36 105zM1094 548l205 -373q8 -17 -1 -31q-8 -16 -27 -16h-152q-20 0 -28 17l-194 365h-155v-350q0 -14 -9 -23t-23 -9h-134q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h294q128 0 190 -24q85 -31 134 -109 t49 -180q0 -92 -42.5 -165.5t-115.5 -109.5q6 -10 9 -16zM896 1376q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM1792 640 q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> +<glyph unicode="" horiz-adv-x="1792" d="M605 303q153 0 257 104q14 18 3 36l-45 82q-6 13 -24 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13t-23.5 -14.5t-28.5 -13.5t-33.5 -9.5t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78 q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-148 0 -246 -96.5t-98 -240.5q0 -146 97 -241.5t247 -95.5zM1235 303q153 0 257 104q14 18 4 36l-45 82q-8 14 -25 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13t-23.5 -14.5t-28.5 -13.5t-33.5 -9.5 t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-147 0 -245.5 -96.5t-98.5 -240.5q0 -146 97 -241.5t247 -95.5zM896 1376 q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191 t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71z" /> +<glyph unicode="" horiz-adv-x="2048" d="M736 736l384 -384l-384 -384l-672 672l672 672l168 -168l-96 -96l-72 72l-480 -480l480 -480l193 193l-289 287zM1312 1312l672 -672l-672 -672l-168 168l96 96l72 -72l480 480l-480 480l-193 -193l289 -287l-96 -96l-384 384z" /> +<glyph unicode="" horiz-adv-x="1792" d="M717 182l271 271l-279 279l-88 -88l192 -191l-96 -96l-279 279l279 279l40 -40l87 87l-127 128l-454 -454zM1075 190l454 454l-454 454l-271 -271l279 -279l88 88l-192 191l96 96l279 -279l-279 -279l-40 40l-87 -88zM1792 640q0 -182 -71 -348t-191 -286t-286 -191 t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> +<glyph unicode="" horiz-adv-x="2304" d="M651 539q0 -39 -27.5 -66.5t-65.5 -27.5q-39 0 -66.5 27.5t-27.5 66.5q0 38 27.5 65.5t66.5 27.5q38 0 65.5 -27.5t27.5 -65.5zM1805 540q0 -39 -27.5 -66.5t-66.5 -27.5t-66.5 27.5t-27.5 66.5t27.5 66t66.5 27t66.5 -27t27.5 -66zM765 539q0 79 -56.5 136t-136.5 57 t-136.5 -56.5t-56.5 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM1918 540q0 80 -56.5 136.5t-136.5 56.5q-79 0 -136 -56.5t-57 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM850 539q0 -116 -81.5 -197.5t-196.5 -81.5q-116 0 -197.5 82t-81.5 197 t82 196.5t197 81.5t196.5 -81.5t81.5 -196.5zM2004 540q0 -115 -81.5 -196.5t-197.5 -81.5q-115 0 -196.5 81.5t-81.5 196.5t81.5 196.5t196.5 81.5q116 0 197.5 -81.5t81.5 -196.5zM1040 537q0 191 -135.5 326.5t-326.5 135.5q-125 0 -231 -62t-168 -168.5t-62 -231.5 t62 -231.5t168 -168.5t231 -62q191 0 326.5 135.5t135.5 326.5zM1708 1110q-254 111 -556 111q-319 0 -573 -110q117 0 223 -45.5t182.5 -122.5t122 -183t45.5 -223q0 115 43.5 219.5t118 180.5t177.5 123t217 50zM2187 537q0 191 -135 326.5t-326 135.5t-326.5 -135.5 t-135.5 -326.5t135.5 -326.5t326.5 -135.5t326 135.5t135 326.5zM1921 1103h383q-44 -51 -75 -114.5t-40 -114.5q110 -151 110 -337q0 -156 -77 -288t-209 -208.5t-287 -76.5q-133 0 -249 56t-196 155q-47 -56 -129 -179q-11 22 -53.5 82.5t-74.5 97.5 q-80 -99 -196.5 -155.5t-249.5 -56.5q-155 0 -287 76.5t-209 208.5t-77 288q0 186 110 337q-9 51 -40 114.5t-75 114.5h365q149 100 355 156.5t432 56.5q224 0 421 -56t348 -157z" /> +<glyph unicode="" horiz-adv-x="1280" d="M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5 t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 30 -31 73t31 74l267 267l72 72q-203 21 -317 94 q-39 25 -61.5 41.5t-42.5 37t-26.5 38.5t-4.5 40.5t15 49.5q10 20 28 35t42 22t56 -2t65 -35q5 -4 15 -11t43 -24.5t69 -30.5t92 -24t113 -11q91 0 174 25.5t120 50.5l38 25q33 26 65 35t56 2t42 -22t28 -35z" /> +<glyph unicode="" d="M927 956q0 -66 -46.5 -112.5t-112.5 -46.5t-112.5 46.5t-46.5 112.5t46.5 112.5t112.5 46.5t112.5 -46.5t46.5 -112.5zM1141 593q-10 20 -28 32t-47.5 9.5t-60.5 -27.5q-10 -8 -29 -20t-81 -32t-127 -20t-124 18t-86 36l-27 18q-31 25 -60.5 27.5t-47.5 -9.5t-28 -32 q-22 -45 -2 -74.5t87 -73.5q83 -53 226 -67l-51 -52q-142 -142 -191 -190q-22 -22 -22 -52.5t22 -52.5l9 -9q22 -22 52.5 -22t52.5 22l191 191q114 -115 191 -191q22 -22 52.5 -22t52.5 22l9 9q22 22 22 52.5t-22 52.5l-191 190l-52 52q141 14 225 67q67 44 87 73.5t-2 74.5 zM1092 956q0 134 -95 229t-229 95t-229 -95t-95 -229t95 -229t229 -95t229 95t95 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="" horiz-adv-x="1720" d="M1565 1408q65 0 110 -45.5t45 -110.5v-519q0 -176 -68 -336t-182.5 -275t-274 -182.5t-334.5 -67.5q-176 0 -335.5 67.5t-274.5 182.5t-183 275t-68 336v519q0 64 46 110t110 46h1409zM861 344q47 0 82 33l404 388q37 35 37 85q0 49 -34.5 83.5t-83.5 34.5q-47 0 -82 -33 l-323 -310l-323 310q-35 33 -81 33q-49 0 -83.5 -34.5t-34.5 -83.5q0 -51 36 -85l405 -388q33 -33 81 -33z" /> +<glyph unicode="" horiz-adv-x="2304" d="M1494 -103l-295 695q-25 -49 -158.5 -305.5t-198.5 -389.5q-1 -1 -27.5 -0.5t-26.5 1.5q-82 193 -255.5 587t-259.5 596q-21 50 -66.5 107.5t-103.5 100.5t-102 43q0 5 -0.5 24t-0.5 27h583v-50q-39 -2 -79.5 -16t-66.5 -43t-10 -64q26 -59 216.5 -499t235.5 -540 q31 61 140 266.5t131 247.5q-19 39 -126 281t-136 295q-38 69 -201 71v50l513 -1v-47q-60 -2 -93.5 -25t-12.5 -69q33 -70 87 -189.5t86 -187.5q110 214 173 363q24 55 -10 79.5t-129 26.5q1 7 1 25v24q64 0 170.5 0.5t180 1t92.5 0.5v-49q-62 -2 -119 -33t-90 -81 l-213 -442q13 -33 127.5 -290t121.5 -274l441 1017q-14 38 -49.5 62.5t-65 31.5t-55.5 8v50l460 -4l1 -2l-1 -44q-139 -4 -201 -145q-526 -1216 -559 -1291h-49z" /> +<glyph unicode="" horiz-adv-x="1792" d="M949 643q0 -26 -16.5 -45t-41.5 -19q-26 0 -45 16.5t-19 41.5q0 26 17 45t42 19t44 -16.5t19 -41.5zM964 585l350 581q-9 -8 -67.5 -62.5t-125.5 -116.5t-136.5 -127t-117 -110.5t-50.5 -51.5l-349 -580q7 7 67 62t126 116.5t136 127t117 111t50 50.5zM1611 640 q0 -201 -104 -371q-3 2 -17 11t-26.5 16.5t-16.5 7.5q-13 0 -13 -13q0 -10 59 -44q-74 -112 -184.5 -190.5t-241.5 -110.5l-16 67q-1 10 -15 10q-5 0 -8 -5.5t-2 -9.5l16 -68q-72 -15 -146 -15q-199 0 -372 105q1 2 13 20.5t21.5 33.5t9.5 19q0 13 -13 13q-6 0 -17 -14.5 t-22.5 -34.5t-13.5 -23q-113 75 -192 187.5t-110 244.5l69 15q10 3 10 15q0 5 -5.5 8t-10.5 2l-68 -15q-14 72 -14 139q0 206 109 379q2 -1 18.5 -12t30 -19t17.5 -8q13 0 13 12q0 6 -12.5 15.5t-32.5 21.5l-20 12q77 112 189 189t244 107l15 -67q2 -10 15 -10q5 0 8 5.5 t2 10.5l-15 66q71 13 134 13q204 0 379 -109q-39 -56 -39 -65q0 -13 12 -13q11 0 48 64q111 -75 187.5 -186t107.5 -241l-56 -12q-10 -2 -10 -16q0 -5 5.5 -8t9.5 -2l57 13q14 -72 14 -140zM1696 640q0 163 -63.5 311t-170.5 255t-255 170.5t-311 63.5t-311 -63.5 t-255 -170.5t-170.5 -255t-63.5 -311t63.5 -311t170.5 -255t255 -170.5t311 -63.5t311 63.5t255 170.5t170.5 255t63.5 311zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191 t191 -286t71 -348z" /> +<glyph unicode="" horiz-adv-x="1792" d="M893 1536q240 2 451 -120q232 -134 352 -372l-742 39q-160 9 -294 -74.5t-185 -229.5l-276 424q128 159 311 245.5t383 87.5zM146 1131l337 -663q72 -143 211 -217t293 -45l-230 -451q-212 33 -385 157.5t-272.5 316t-99.5 411.5q0 267 146 491zM1732 962 q58 -150 59.5 -310.5t-48.5 -306t-153 -272t-246 -209.5q-230 -133 -498 -119l405 623q88 131 82.5 290.5t-106.5 277.5zM896 942q125 0 213.5 -88.5t88.5 -213.5t-88.5 -213.5t-213.5 -88.5t-213.5 88.5t-88.5 213.5t88.5 213.5t213.5 88.5z" /> +<glyph unicode="" horiz-adv-x="1792" d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5 q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31.5 -10.5t-46.5 -1q-60 -95 -144.5 -135.5t-209.5 -29.5 q74 -61 162.5 -82.5t168.5 -6t154.5 52t128 87.5t80.5 104q43 91 39 192.5t-37.5 188.5t-78.5 125q87 -38 137 -79.5t77 -112.5q15 170 -57.5 343t-209.5 284q265 -77 412 -279.5t151 -517.5q2 -127 -40.5 -255t-123.5 -238t-189 -196t-247.5 -135.5t-288.5 -49.5z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1493 1308q-165 110 -359 110q-155 0 -293 -73t-240 -200q-75 -93 -119.5 -218t-48.5 -266v-42q4 -141 48.5 -266t119.5 -218q102 -127 240 -200t293 -73q194 0 359 110q-121 -108 -274.5 -168t-322.5 -60q-29 0 -43 1q-175 8 -333 82t-272 193t-181 281t-67 339 q0 182 71 348t191 286t286 191t348 71h3q168 -1 320.5 -60.5t273.5 -167.5zM1792 640q0 -192 -77 -362.5t-213 -296.5q-104 -63 -222 -63q-137 0 -255 84q154 56 253.5 233t99.5 405q0 227 -99 404t-253 234q119 83 254 83q119 0 226 -65q135 -125 210.5 -295t75.5 -361z " /> +<glyph unicode="" horiz-adv-x="1792" d="M1792 599q0 -56 -7 -104h-1151q0 -146 109.5 -244.5t257.5 -98.5q99 0 185.5 46.5t136.5 130.5h423q-56 -159 -170.5 -281t-267.5 -188.5t-321 -66.5q-187 0 -356 83q-228 -116 -394 -116q-237 0 -237 263q0 115 45 275q17 60 109 229q199 360 475 606 q-184 -79 -427 -354q63 274 283.5 449.5t501.5 175.5q30 0 45 -1q255 117 433 117q64 0 116 -13t94.5 -40.5t66.5 -76.5t24 -115q0 -116 -75 -286q101 -182 101 -390zM1722 1239q0 83 -53 132t-137 49q-108 0 -254 -70q121 -47 222.5 -131.5t170.5 -195.5q51 135 51 216z M128 2q0 -86 48.5 -132.5t134.5 -46.5q115 0 266 83q-122 72 -213.5 183t-137.5 245q-98 -205 -98 -332zM632 715h728q-5 142 -113 237t-251 95q-144 0 -251.5 -95t-112.5 -237z" /> +<glyph unicode="" horiz-adv-x="2048" d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23 v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> +<glyph unicode="" horiz-adv-x="1792" d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34 h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12 83.5 6.5t67 -17t54 -35t43 -48t34.5 -56.5l468 100 q-68 175 -180 287z" /> +<glyph unicode="" d="M1401 -11l-6 -6q-113 -114 -259 -175q-154 -64 -317 -64q-165 0 -317 64q-148 63 -259 175q-113 112 -175 258q-42 103 -54 189q-4 28 48 36q51 8 56 -20q1 -1 1 -4q18 -90 46 -159q50 -124 152 -226q98 -98 226 -152q132 -56 276 -56q143 0 276 56q128 55 225 152l6 6 q10 10 25 6q12 -3 33 -22q36 -37 17 -58zM929 604l-66 -66l63 -63q21 -21 -7 -49q-17 -17 -32 -17q-10 0 -19 10l-62 61l-66 -66q-5 -5 -15 -5q-15 0 -31 16l-2 2q-18 15 -18 29q0 7 8 17l66 65l-66 66q-16 16 14 45q18 18 31 18q6 0 13 -5l65 -66l65 65q18 17 48 -13 q27 -27 11 -44zM1400 547q0 -118 -46 -228q-45 -105 -126 -186q-80 -80 -187 -126t-228 -46t-228 46t-187 126q-82 82 -125 186q-15 32 -15 40h-1q-9 27 43 44q50 16 60 -12q37 -99 97 -167h1v339v2q3 136 102 232q105 103 253 103q147 0 251 -103t104 -249 q0 -147 -104.5 -251t-250.5 -104q-58 0 -112 16q-28 11 -13 61q16 51 44 43l14 -3q14 -3 32.5 -6t30.5 -3q104 0 176 71.5t72 174.5q0 101 -72 171q-71 71 -175 71q-107 0 -178 -80q-64 -72 -64 -160v-413q110 -67 242 -67q96 0 185 36.5t156 103.5t103.5 155t36.5 183 q0 198 -141 339q-140 140 -339 140q-200 0 -340 -140q-53 -53 -77 -87l-2 -2q-8 -11 -13 -15.5t-21.5 -9.5t-38.5 3q-21 5 -36.5 16.5t-15.5 26.5v680q0 15 10.5 26.5t27.5 11.5h877q30 0 30 -55t-30 -55h-811v-483h1q40 42 102 84t108 61q109 46 231 46q121 0 228 -46 t187 -126q81 -81 126 -186q46 -112 46 -229zM1369 1128q9 -8 9 -18t-5.5 -18t-16.5 -21q-26 -26 -39 -26q-9 0 -16 7q-106 91 -207 133q-128 56 -276 56q-133 0 -262 -49q-27 -10 -45 37q-9 25 -8 38q3 16 16 20q130 57 299 57q164 0 316 -64q137 -58 235 -152z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 -0.5h-5.5h-4.5t-3 0.5t-2 1.5l-1.5 3q-6 16 47 40t103 30 q46 7 108 1t76 -24zM1364 618q0 -31 13.5 -64t32 -58t37.5 -46t33 -32l13 -11l-227 -224q-40 37 -79 75.5t-58 58.5l-19 20q-11 11 -25 33q-38 -59 -97.5 -102.5t-127.5 -63.5t-140 -23t-137.5 21t-117.5 65.5t-83 113t-31 162.5q0 84 28 154t72 116.5t106.5 83t122.5 57 t130 34.5t119.5 18.5t99.5 6.5v127q0 65 -21 97q-34 53 -121 53q-6 0 -16.5 -1t-40.5 -12t-56 -29.5t-56 -59.5t-48 -96l-294 27q0 60 22 119t67 113t108 95t151.5 65.5t190.5 24.5q100 0 181 -25t129.5 -61.5t81 -83t45 -86t12.5 -73.5v-589zM692 597q0 -86 70 -133 q66 -44 139 -22q84 25 114 123q14 45 14 101v162q-59 -2 -111 -12t-106.5 -33.5t-87 -71t-32.5 -114.5z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1536 1280q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128zM1152 1376v-288q0 -14 9 -23t23 -9 h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 1376v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM1536 -128v1024h-1408v-1024h1408zM896 448h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224 v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1152 416v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23 t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47 t47 -113v-96h128q52 0 90 -38t38 -90z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1111 151l-46 -46q-9 -9 -22 -9t-23 9l-188 189l-188 -189q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22t9 23l189 188l-189 188q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l188 -188l188 188q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23l-188 -188l188 -188q9 -10 9 -23t-9 -22z M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1303 572l-512 -512q-10 -9 -23 -9t-23 9l-288 288q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l220 -220l444 444q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47 t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> +<glyph unicode="" horiz-adv-x="1792" d="M448 1536q26 0 45 -19t19 -45v-891l536 429q17 14 40 14q26 0 45 -19t19 -45v-379l536 429q17 14 40 14q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h384z" /> +<glyph unicode="" horiz-adv-x="1024" d="M512 448q66 0 128 15v-655q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v655q61 -15 128 -15zM512 1536q212 0 362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362t150 362t362 150zM512 1312q14 0 23 9t9 23t-9 23t-23 9q-146 0 -249 -103t-103 -249 q0 -14 9 -23t23 -9t23 9t9 23q0 119 84.5 203.5t203.5 84.5z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1745 1239q10 -10 10 -23t-10 -23l-141 -141q-28 -28 -68 -28h-1344q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h576v64q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-64h512q40 0 68 -28zM768 320h256v-512q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v512zM1600 768 q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1344q-40 0 -68 28l-141 141q-10 10 -10 23t10 23l141 141q28 28 68 28h512v192h256v-192h576z" /> +<glyph unicode="" horiz-adv-x="2048" d="M2020 1525q28 -20 28 -53v-1408q0 -20 -11 -36t-29 -23l-640 -256q-24 -11 -48 0l-616 246l-616 -246q-10 -5 -24 -5q-19 0 -36 11q-28 20 -28 53v1408q0 20 11 36t29 23l640 256q24 11 48 0l616 -246l616 246q32 13 60 -6zM736 1390v-1270l576 -230v1270zM128 1173 v-1270l544 217v1270zM1920 107v1270l-544 -217v-1270z" /> +<glyph unicode="" horiz-adv-x="1792" d="M512 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472q0 20 17 28l480 256q7 4 15 4zM1760 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472 q0 20 17 28l480 256q7 4 15 4zM640 1536q8 0 14 -3l512 -256q18 -10 18 -29v-1472q0 -13 -9.5 -22.5t-22.5 -9.5q-8 0 -14 3l-512 256q-18 10 -18 29v1472q0 13 9.5 22.5t22.5 9.5z" /> +<glyph unicode="" horiz-adv-x="1792" d="M640 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 640q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-110 0 -211 18q-173 -173 -435 -229q-52 -10 -86 -13q-12 -1 -22 6t-13 18q-4 15 20 37q5 5 23.5 21.5t25.5 23.5t23.5 25.5t24 31.5t20.5 37 t20 48t14.5 57.5t12.5 72.5q-146 90 -229.5 216.5t-83.5 269.5q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" /> +<glyph unicode="" horiz-adv-x="1792" d="M640 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 -53 -37.5 -90.5t-90.5 -37.5 t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5 t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51 t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 130 71 248.5t191 204.5t286 136.5t348 50.5t348 -50.5t286 -136.5t191 -204.5t71 -248.5z" /> +<glyph unicode="" horiz-adv-x="1024" d="M512 345l512 295v-591l-512 -296v592zM0 640v-591l512 296zM512 1527v-591l-512 -296v591zM512 936l512 295v-591z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1709 1018q-10 -236 -332 -651q-333 -431 -562 -431q-142 0 -240 263q-44 160 -132 482q-72 262 -157 262q-18 0 -127 -76l-77 98q24 21 108 96.5t130 115.5q156 138 241 146q95 9 153 -55.5t81 -203.5q44 -287 66 -373q55 -249 120 -249q51 0 154 161q101 161 109 246 q13 139 -109 139q-57 0 -121 -26q120 393 459 382q251 -8 236 -326z" /> +<glyph unicode="" d="M0 1408h1536v-1536h-1536v1536zM1085 293l-221 631l221 297h-634l221 -297l-221 -631l317 -304z" /> +<glyph unicode="" d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72 h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 1 -9.5 2.5t-2.5 3t1 7.5t1 12v520h-275 l-23 -101l83 -22q23 -7 23 -27v-370q0 -14 -6 -18.5t-20 -6.5l-70 -9v-86h352z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1792 690q0 -58 -29.5 -105.5t-79.5 -72.5q12 -46 12 -96q0 -155 -106.5 -287t-290.5 -208.5t-400 -76.5t-399.5 76.5t-290 208.5t-106.5 287q0 47 11 94q-51 25 -82 73.5t-31 106.5q0 82 58 140.5t141 58.5q85 0 145 -63q218 152 515 162l116 521q3 13 15 21t26 5 l369 -81q18 37 54 59.5t79 22.5q62 0 106 -43.5t44 -105.5t-44 -106t-106 -44t-105.5 43.5t-43.5 105.5l-334 74l-104 -472q300 -9 519 -160q58 61 143 61q83 0 141 -58.5t58 -140.5zM418 491q0 -62 43.5 -106t105.5 -44t106 44t44 106t-44 105.5t-106 43.5q-61 0 -105 -44 t-44 -105zM1228 136q11 11 11 26t-11 26q-10 10 -25 10t-26 -10q-41 -42 -121 -62t-160 -20t-160 20t-121 62q-11 10 -26 10t-25 -10q-11 -10 -11 -25.5t11 -26.5q43 -43 118.5 -68t122.5 -29.5t91 -4.5t91 4.5t122.5 29.5t118.5 68zM1225 341q62 0 105.5 44t43.5 106 q0 61 -44 105t-105 44q-62 0 -106 -43.5t-44 -105.5t44 -106t106 -44z" /> +<glyph unicode="" horiz-adv-x="1792" d="M69 741h1q16 126 58.5 241.5t115 217t167.5 176t223.5 117.5t276.5 43q231 0 414 -105.5t294 -303.5q104 -187 104 -442v-188h-1125q1 -111 53.5 -192.5t136.5 -122.5t189.5 -57t213 -3t208 46.5t173.5 84.5v-377q-92 -55 -229.5 -92t-312.5 -38t-316 53 q-189 73 -311.5 249t-124.5 372q-3 242 111 412t325 268q-48 -60 -78 -125.5t-46 -159.5h635q8 77 -8 140t-47 101.5t-70.5 66.5t-80.5 41t-75 20.5t-56 8.5l-22 1q-135 -5 -259.5 -44.5t-223.5 -104.5t-176 -140.5t-138 -163.5z" /> +<glyph unicode="" horiz-adv-x="2304" d="M0 32v608h2304v-608q0 -66 -47 -113t-113 -47h-1984q-66 0 -113 47t-47 113zM640 256v-128h384v128h-384zM256 256v-128h256v128h-256zM2144 1408q66 0 113 -47t47 -113v-224h-2304v224q0 66 47 113t113 47h1984z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1549 857q55 0 85.5 -28.5t30.5 -83.5t-34 -82t-91 -27h-136v-177h-25v398h170zM1710 267l-4 -11l-5 -10q-113 -230 -330.5 -366t-474.5 -136q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71q244 0 454.5 -124t329.5 -338l2 -4l8 -16 q-30 -15 -136.5 -68.5t-163.5 -84.5q-6 -3 -479 -268q384 -183 799 -366zM896 -234q250 0 462.5 132.5t322.5 357.5l-287 129q-72 -140 -206 -222t-292 -82q-151 0 -280 75t-204 204t-75 280t75 280t204 204t280 75t280 -73.5t204 -204.5l280 143q-116 208 -321 329 t-443 121q-119 0 -232.5 -31.5t-209 -87.5t-176.5 -137t-137 -176.5t-87.5 -209t-31.5 -232.5t31.5 -232.5t87.5 -209t137 -176.5t176.5 -137t209 -87.5t232.5 -31.5z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1427 827l-614 386l92 151h855zM405 562l-184 116v858l1183 -743zM1424 697l147 -95v-858l-532 335zM1387 718l-500 -802h-855l356 571z" /> +<glyph unicode="" horiz-adv-x="1792" d="M640 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1152 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1664 496v-752h-640v320q0 80 -56 136t-136 56t-136 -56t-56 -136v-320h-640v752q0 16 16 16h96 q16 0 16 -16v-112h128v624q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h16v393q-32 19 -32 55q0 26 19 45t45 19t45 -19t19 -45q0 -36 -32 -55v-9h272q16 0 16 -16v-224q0 -16 -16 -16h-272v-128h16q16 0 16 -16v-112h128 v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-624h128v112q0 16 16 16h96q16 0 16 -16z" /> +<glyph unicode="" horiz-adv-x="2304" d="M2288 731q16 -8 16 -27t-16 -27l-320 -192q-8 -5 -16 -5q-9 0 -16 4q-16 10 -16 28v128h-858q37 -58 83 -165q16 -37 24.5 -55t24 -49t27 -47t27 -34t31.5 -26t33 -8h96v96q0 14 9 23t23 9h320q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v96h-96 q-32 0 -61 10t-51 23.5t-45 40.5t-37 46t-33.5 57t-28.5 57.5t-28 60.5q-23 53 -37 81.5t-36 65t-44.5 53.5t-46.5 17h-360q-22 -84 -91 -138t-157 -54q-106 0 -181 75t-75 181t75 181t181 75q88 0 157 -54t91 -138h104q24 0 46.5 17t44.5 53.5t36 65t37 81.5q19 41 28 60.5 t28.5 57.5t33.5 57t37 46t45 40.5t51 23.5t61 10h107q21 57 70 92.5t111 35.5q80 0 136 -56t56 -136t-56 -136t-136 -56q-62 0 -111 35.5t-70 92.5h-107q-17 0 -33 -8t-31.5 -26t-27 -34t-27 -47t-24 -49t-24.5 -55q-46 -107 -83 -165h1114v128q0 18 16 28t32 -1z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1150 774q0 -56 -39.5 -95t-95.5 -39h-253v269h253q56 0 95.5 -39.5t39.5 -95.5zM1329 774q0 130 -91.5 222t-222.5 92h-433v-896h180v269h253q130 0 222 91.5t92 221.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348 t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> +<glyph unicode="" horiz-adv-x="2304" d="M1645 438q0 59 -34 106.5t-87 68.5q-7 -45 -23 -92q-7 -24 -27.5 -38t-44.5 -14q-12 0 -24 3q-31 10 -45 38.5t-4 58.5q23 71 23 143q0 123 -61 227.5t-166 165.5t-228 61q-134 0 -247 -73t-167 -194q108 -28 188 -106q22 -23 22 -55t-22 -54t-54 -22t-55 22 q-75 75 -180 75q-106 0 -181 -74.5t-75 -180.5t75 -180.5t181 -74.5h1046q79 0 134.5 55.5t55.5 133.5zM1798 438q0 -142 -100.5 -242t-242.5 -100h-1046q-169 0 -289 119.5t-120 288.5q0 153 100 267t249 136q62 184 221 298t354 114q235 0 408.5 -158.5t196.5 -389.5 q116 -25 192.5 -118.5t76.5 -214.5zM2048 438q0 -175 -97 -319q-23 -33 -64 -33q-24 0 -43 13q-26 17 -32 48.5t12 57.5q71 104 71 233t-71 233q-18 26 -12 57t32 49t57.5 11.5t49.5 -32.5q97 -142 97 -318zM2304 438q0 -244 -134 -443q-23 -34 -64 -34q-23 0 -42 13 q-26 18 -32.5 49t11.5 57q108 164 108 358q0 195 -108 357q-18 26 -11.5 57.5t32.5 48.5q26 18 57 12t49 -33q134 -198 134 -442z" /> +<glyph unicode="" d="M1500 -13q0 -89 -63 -152.5t-153 -63.5t-153.5 63.5t-63.5 152.5q0 90 63.5 153.5t153.5 63.5t153 -63.5t63 -153.5zM1267 268q-115 -15 -192.5 -102.5t-77.5 -205.5q0 -74 33 -138q-146 -78 -379 -78q-109 0 -201 21t-153.5 54.5t-110.5 76.5t-76 85t-44.5 83 t-23.5 66.5t-6 39.5q0 19 4.5 42.5t18.5 56t36.5 58t64 43.5t94.5 18t94 -17.5t63 -41t35.5 -53t17.5 -49t4 -33.5q0 -34 -23 -81q28 -27 82 -42t93 -17l40 -1q115 0 190 51t75 133q0 26 -9 48.5t-31.5 44.5t-49.5 41t-74 44t-93.5 47.5t-119.5 56.5q-28 13 -43 20 q-116 55 -187 100t-122.5 102t-72 125.5t-20.5 162.5q0 78 20.5 150t66 137.5t112.5 114t166.5 77t221.5 28.5q120 0 220 -26t164.5 -67t109.5 -94t64 -105.5t19 -103.5q0 -46 -15 -82.5t-36.5 -58t-48.5 -36t-49 -19.5t-39 -5h-8h-32t-39 5t-44 14t-41 28t-37 46t-24 70.5 t-10 97.5q-15 16 -59 25.5t-81 10.5l-37 1q-68 0 -117.5 -31t-70.5 -70t-21 -76q0 -24 5 -43t24 -46t53 -51t97 -53.5t150 -58.5q76 -25 138.5 -53.5t109 -55.5t83 -59t60.5 -59.5t41 -62.5t26.5 -62t14.5 -63.5t6 -62t1 -62.5z" /> +<glyph unicode="" d="M704 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1152 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103 t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 t73 -273t198 -198t273 -73zM864 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192z" /> +<glyph unicode="" d="M1088 352v576q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" /> +<glyph unicode="" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 t73 -273t198 -198t273 -73zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h576q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-576z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1757 128l35 -313q3 -28 -16 -50q-19 -21 -48 -21h-1664q-29 0 -48 21q-19 22 -16 50l35 313h1722zM1664 967l86 -775h-1708l86 775q3 24 21 40.5t43 16.5h256v-128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v128h384v-128q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5v128h256q25 0 43 -16.5t21 -40.5zM1280 1152v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" /> +<glyph unicode="" horiz-adv-x="2048" d="M1920 768q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-15l-115 -662q-8 -46 -44 -76t-82 -30h-1280q-46 0 -82 30t-44 76l-115 662h-15q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5h1792zM485 -32q26 2 43.5 22.5t15.5 46.5l-32 416q-2 26 -22.5 43.5 t-46.5 15.5t-43.5 -22.5t-15.5 -46.5l32 -416q2 -25 20.5 -42t43.5 -17h5zM896 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1280 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1632 27l32 416 q2 26 -15.5 46.5t-43.5 22.5t-46.5 -15.5t-22.5 -43.5l-32 -416q-2 -26 15.5 -46.5t43.5 -22.5h5q25 0 43.5 17t20.5 42zM476 1244l-93 -412h-132l101 441q19 88 89 143.5t160 55.5h167q0 26 19 45t45 19h384q26 0 45 -19t19 -45h167q90 0 160 -55.5t89 -143.5l101 -441 h-132l-93 412q-11 44 -45.5 72t-79.5 28h-167q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45h-167q-45 0 -79.5 -28t-45.5 -72z" /> +<glyph unicode="" horiz-adv-x="1792" d="M991 512l64 256h-254l-64 -256h254zM1759 1016l-56 -224q-7 -24 -31 -24h-327l-64 -256h311q15 0 25 -12q10 -14 6 -28l-56 -224q-5 -24 -31 -24h-327l-81 -328q-7 -24 -31 -24h-224q-16 0 -26 12q-9 12 -6 28l78 312h-254l-81 -328q-7 -24 -31 -24h-225q-15 0 -25 12 q-9 12 -6 28l78 312h-311q-15 0 -25 12q-9 12 -6 28l56 224q7 24 31 24h327l64 256h-311q-15 0 -25 12q-10 14 -6 28l56 224q5 24 31 24h327l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h254l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h311 q15 0 25 -12q9 -12 6 -28z" /> +<glyph unicode="" d="M841 483l148 -148l-149 -149zM840 1094l149 -149l-148 -148zM710 -130l464 464l-306 306l306 306l-464 464v-611l-255 255l-93 -93l320 -321l-320 -321l93 -93l255 255v-611zM1429 640q0 -209 -32 -365.5t-87.5 -257t-140.5 -162.5t-181.5 -86.5t-219.5 -24.5 t-219.5 24.5t-181.5 86.5t-140.5 162.5t-87.5 257t-32 365.5t32 365.5t87.5 257t140.5 162.5t181.5 86.5t219.5 24.5t219.5 -24.5t181.5 -86.5t140.5 -162.5t87.5 -257t32 -365.5z" /> +<glyph unicode="" horiz-adv-x="1024" d="M596 113l173 172l-173 172v-344zM596 823l173 172l-173 172v-344zM628 640l356 -356l-539 -540v711l-297 -296l-108 108l372 373l-372 373l108 108l297 -296v711l539 -540z" /> +<glyph unicode="" d="M1280 256q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM512 1024q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5 t112.5 -271.5zM1440 1344q0 -20 -13 -38l-1056 -1408q-19 -26 -51 -26h-160q-26 0 -45 19t-19 45q0 20 13 38l1056 1408q19 26 51 26h160q26 0 45 -19t19 -45zM768 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" /> +<glyph unicode="" horiz-adv-x="1792" d="M104 830l792 -1015l-868 630q-18 13 -25 34.5t0 42.5l101 308v0zM566 830h660l-330 -1015v0zM368 1442l198 -612h-462l198 612q8 23 33 23t33 -23zM1688 830l101 -308q7 -21 0 -42.5t-25 -34.5l-868 -630l792 1015v0zM1688 830h-462l198 612q8 23 33 23t33 -23z" /> +<glyph unicode="" horiz-adv-x="1792" d="M384 704h160v224h-160v-224zM1221 372v92q-104 -36 -243 -38q-135 -1 -259.5 46.5t-220.5 122.5l1 -96q88 -80 212 -128.5t272 -47.5q129 0 238 49zM640 704h640v224h-640v-224zM1792 736q0 -187 -99 -352q89 -102 89 -229q0 -157 -129.5 -268t-313.5 -111 q-122 0 -225 52.5t-161 140.5q-19 -1 -57 -1t-57 1q-58 -88 -161 -140.5t-225 -52.5q-184 0 -313.5 111t-129.5 268q0 127 89 229q-99 165 -99 352q0 209 120 385.5t326.5 279.5t449.5 103t449.5 -103t326.5 -279.5t120 -385.5z" /> +<glyph unicode="" d="M515 625v-128h-252v128h252zM515 880v-127h-252v127h252zM1273 369v-128h-341v128h341zM1273 625v-128h-672v128h672zM1273 880v-127h-672v127h672zM1408 20v1240q0 8 -6 14t-14 6h-32l-378 -256l-210 171l-210 -171l-378 256h-32q-8 0 -14 -6t-6 -14v-1240q0 -8 6 -14 t14 -6h1240q8 0 14 6t6 14zM553 1130l185 150h-406zM983 1130l221 150h-406zM1536 1260v-1240q0 -62 -43 -105t-105 -43h-1240q-62 0 -105 43t-43 105v1240q0 62 43 105t105 43h1240q62 0 105 -43t43 -105z" /> +<glyph unicode="" horiz-adv-x="1792" d="M896 720q-104 196 -160 278q-139 202 -347 318q-34 19 -70 36q-89 40 -94 32t34 -38l39 -31q62 -43 112.5 -93.5t94.5 -116.5t70.5 -113t70.5 -131q9 -17 13 -25q44 -84 84 -153t98 -154t115.5 -150t131 -123.5t148.5 -90.5q153 -66 154 -60q1 3 -49 37q-53 36 -81 57 q-77 58 -179 211t-185 310zM549 177q-76 60 -132.5 125t-98 143.5t-71 154.5t-58.5 186t-52 209t-60.5 252t-76.5 289q273 0 497.5 -36t379 -92t271 -144.5t185.5 -172.5t110 -198.5t56 -199.5t12.5 -198.5t-9.5 -173t-20 -143.5t-13 -107l323 -327h-104l-281 285 q-22 -2 -91.5 -14t-121.5 -19t-138 -6t-160.5 17t-167.5 59t-179 111z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1374 879q-6 26 -28.5 39.5t-48.5 7.5q-261 -62 -401 -62t-401 62q-26 6 -48.5 -7.5t-28.5 -39.5t7.5 -48.5t39.5 -28.5q194 -46 303 -58q-2 -158 -15.5 -269t-26.5 -155.5t-41 -115.5l-9 -21q-10 -25 1 -49t36 -34q9 -4 23 -4q44 0 60 41l8 20q54 139 71 259h42 q17 -120 71 -259l8 -20q16 -41 60 -41q14 0 23 4q25 10 36 34t1 49l-9 21q-28 71 -41 115.5t-26.5 155.5t-15.5 269q109 12 303 58q26 6 39.5 28.5t7.5 48.5zM1024 1024q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z M1600 640q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5zM896 1408q-156 0 -298 -61t-245 -164t-164 -245t-61 -298t61 -298 t164 -245t245 -164t298 -61t298 61t245 164t164 245t61 298t-61 298t-164 245t-245 164t-298 61zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> +<glyph unicode="" d="M1438 723q34 -35 29 -82l-44 -551q-4 -42 -34.5 -70t-71.5 -28q-6 0 -9 1q-44 3 -72.5 36.5t-25.5 77.5l35 429l-143 -8q55 -113 55 -240q0 -216 -148 -372l-137 137q91 101 91 235q0 145 -102.5 248t-247.5 103q-134 0 -236 -92l-137 138q120 114 284 141l264 300 l-149 87l-181 -161q-33 -30 -77 -27.5t-73 35.5t-26.5 77t34.5 73l239 213q26 23 60 26.5t64 -14.5l488 -283q36 -21 48 -68q17 -67 -26 -117l-205 -232l371 20q49 3 83 -32zM1240 1180q-74 0 -126 52t-52 126t52 126t126 52t126.5 -52t52.5 -126t-52.5 -126t-126.5 -52z M613 -62q106 0 196 61l139 -139q-146 -116 -335 -116q-148 0 -273.5 73t-198.5 198t-73 273q0 188 116 336l139 -139q-60 -88 -60 -197q0 -145 102.5 -247.5t247.5 -102.5z" /> +<glyph unicode="" d="M880 336v-160q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v160q0 14 9 23t23 9h160q14 0 23 -9t9 -23zM1136 832q0 -50 -15 -90t-45.5 -69t-52 -44t-59.5 -36q-32 -18 -46.5 -28t-26 -24t-11.5 -29v-32q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v68q0 35 10.5 64.5 t24 47.5t39 35.5t41 25.5t44.5 21q53 25 75 43t22 49q0 42 -43.5 71.5t-95.5 29.5q-56 0 -95 -27q-29 -20 -80 -83q-9 -12 -25 -12q-11 0 -19 6l-108 82q-10 7 -12 20t5 23q122 192 349 192q129 0 238.5 -89.5t109.5 -214.5zM768 1280q-130 0 -248.5 -51t-204 -136.5 t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5 t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="" horiz-adv-x="1408" d="M366 1225q-64 0 -110 45.5t-46 110.5q0 64 46 109.5t110 45.5t109.5 -45.5t45.5 -109.5q0 -65 -45.5 -110.5t-109.5 -45.5zM917 583q0 -50 -30 -67.5t-63.5 -6.5t-47.5 34l-367 438q-7 12 -14 15.5t-11 1.5l-3 -3q-7 -8 4 -21l122 -139l1 -354l-161 -457 q-67 -192 -92 -234q-16 -26 -28 -32q-50 -26 -103 -1q-29 13 -41.5 43t-9.5 57q2 17 197 618l5 416l-85 -164l35 -222q4 -24 -1 -42t-14 -27.5t-19 -16t-17 -7.5l-7 -2q-19 -3 -34.5 3t-24 16t-14 22t-7.5 19.5t-2 9.5l-46 299l211 381q23 34 113 34q75 0 107 -40l424 -521 q7 -5 14 -17l3 -3l-1 -1q7 -13 7 -29zM514 433q43 -113 88.5 -225t69.5 -168l24 -55q36 -93 42 -125q11 -70 -36 -97q-35 -22 -66 -16t-51 22t-29 35h-1q-6 16 -8 25l-124 351zM1338 -159q31 -49 31 -57q0 -5 -3 -7q-9 -5 -14.5 0.5t-15.5 26t-16 30.5q-114 172 -423 661 q3 -1 7 1t7 4l3 2q11 9 11 17z" /> +<glyph unicode="" horiz-adv-x="2304" d="M504 542h171l-1 265zM1530 641q0 87 -50.5 140t-146.5 53h-54v-388h52q91 0 145 57t54 138zM956 1018l1 -756q0 -14 -9.5 -24t-23.5 -10h-216q-14 0 -23.5 10t-9.5 24v62h-291l-55 -81q-10 -15 -28 -15h-267q-21 0 -30.5 18t3.5 35l556 757q9 14 27 14h332q14 0 24 -10 t10 -24zM1783 641q0 -193 -125.5 -303t-324.5 -110h-270q-14 0 -24 10t-10 24v756q0 14 10 24t24 10h268q200 0 326 -109t126 -302zM1939 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5 t-7.5 60t-20 91.5t-41 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2123 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-45 -108t-74 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5 h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2304 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66 104.5t41 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96 t9.5 -70.5z" /> +<glyph unicode="" horiz-adv-x="1408" d="M617 -153q0 11 -13 58t-31 107t-20 69q-1 4 -5 26.5t-8.5 36t-13.5 21.5q-15 14 -51 14q-23 0 -70 -5.5t-71 -5.5q-34 0 -47 11q-6 5 -11 15.5t-7.5 20t-6.5 24t-5 18.5q-37 128 -37 255t37 255q1 4 5 18.5t6.5 24t7.5 20t11 15.5q13 11 47 11q24 0 71 -5.5t70 -5.5 q36 0 51 14q9 8 13.5 21.5t8.5 36t5 26.5q2 9 20 69t31 107t13 58q0 22 -43.5 52.5t-75.5 42.5q-20 8 -45 8q-34 0 -98 -18q-57 -17 -96.5 -40.5t-71 -66t-46 -70t-45.5 -94.5q-6 -12 -9 -19q-49 -107 -68 -216t-19 -244t19 -244t68 -216q56 -122 83 -161q63 -91 179 -127 l6 -2q64 -18 98 -18q25 0 45 8q32 12 75.5 42.5t43.5 52.5zM776 760q-26 0 -45 19t-19 45.5t19 45.5q37 37 37 90q0 52 -37 91q-19 19 -19 45t19 45t45 19t45 -19q75 -75 75 -181t-75 -181q-21 -19 -45 -19zM957 579q-27 0 -45 19q-19 19 -19 45t19 45q112 114 112 272 t-112 272q-19 19 -19 45t19 45t45 19t45 -19q150 -150 150 -362t-150 -362q-18 -19 -45 -19zM1138 398q-27 0 -45 19q-19 19 -19 45t19 45q90 91 138.5 208t48.5 245t-48.5 245t-138.5 208q-19 19 -19 45t19 45t45 19t45 -19q109 -109 167 -249t58 -294t-58 -294t-167 -249 q-18 -19 -45 -19z" /> +<glyph unicode="" horiz-adv-x="2176" d="M192 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 352 q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 864 q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 1376q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 192q0 -80 -56 -136 t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 1216q0 -80 -56 -136t-136 -56 t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 192q0 -80 -56 -136t-136 -56t-136 56 t-56 136t56 136t136 56t136 -56t56 -136zM1664 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136 t56 136t136 56t136 -56t56 -136zM2176 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z" /> +<glyph unicode="" horiz-adv-x="1792" d="M128 -192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM320 0q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM365 365l256 -256l-90 -90l-256 256zM704 384q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45z M1411 704q0 -59 -11.5 -108.5t-37.5 -93.5t-44 -67.5t-53 -64.5q-31 -35 -45.5 -54t-33.5 -50t-26.5 -64t-7.5 -74q0 -159 -112.5 -271.5t-271.5 -112.5q-26 0 -45 19t-19 45t19 45t45 19q106 0 181 75t75 181q0 57 11.5 105.5t37 91t43.5 66.5t52 63q40 46 59.5 72 t37.5 74.5t18 103.5q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM896 576q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45 t45 19t45 -19t19 -45zM1184 704q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 93 -65.5 158.5t-158.5 65.5q-92 0 -158 -65.5t-66 -158.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 146 103 249t249 103t249 -103t103 -249zM1578 993q10 -25 -1 -49t-36 -34q-9 -4 -23 -4 q-19 0 -35.5 11t-23.5 30q-68 178 -224 295q-21 16 -25 42t12 47q17 21 43 25t47 -12q183 -137 266 -351zM1788 1074q9 -25 -1.5 -49t-35.5 -34q-11 -4 -23 -4q-44 0 -60 41q-92 238 -297 393q-22 16 -25.5 42t12.5 47q16 22 42 25.5t47 -12.5q235 -175 341 -449z" /> +<glyph unicode="" horiz-adv-x="2304" d="M1032 576q-59 2 -84 55q-17 34 -48 53.5t-68 19.5q-53 0 -90.5 -37.5t-37.5 -90.5q0 -56 36 -89l10 -8q34 -31 82 -31q37 0 68 19.5t48 53.5q25 53 84 55zM1600 704q0 56 -36 89l-10 8q-34 31 -82 31q-37 0 -68 -19.5t-48 -53.5q-25 -53 -84 -55q59 -2 84 -55 q17 -34 48 -53.5t68 -19.5q53 0 90.5 37.5t37.5 90.5zM1174 925q-17 -35 -55 -48t-73 4q-62 31 -134 31q-51 0 -99 -17q3 0 9.5 0.5t9.5 0.5q92 0 170.5 -50t118.5 -133q17 -36 3.5 -73.5t-49.5 -54.5q-18 -9 -39 -9q21 0 39 -9q36 -17 49.5 -54.5t-3.5 -73.5 q-40 -83 -118.5 -133t-170.5 -50h-6q-16 2 -44 4l-290 27l-239 -120q-14 -7 -29 -7q-40 0 -57 35l-160 320q-11 23 -4 47.5t29 37.5l209 119l148 267q17 155 91.5 291.5t195.5 236.5q31 25 70.5 21.5t64.5 -34.5t21.5 -70t-34.5 -65q-70 -59 -117 -128q123 84 267 101 q40 5 71.5 -19t35.5 -64q5 -40 -19 -71.5t-64 -35.5q-84 -10 -159 -55q46 10 99 10q115 0 218 -50q36 -18 49 -55.5t-5 -73.5zM2137 1085l160 -320q11 -23 4 -47.5t-29 -37.5l-209 -119l-148 -267q-17 -155 -91.5 -291.5t-195.5 -236.5q-26 -22 -61 -22q-45 0 -74 35 q-25 31 -21.5 70t34.5 65q70 59 117 128q-123 -84 -267 -101q-4 -1 -12 -1q-36 0 -63.5 24t-31.5 60q-5 40 19 71.5t64 35.5q84 10 159 55q-46 -10 -99 -10q-115 0 -218 50q-36 18 -49 55.5t5 73.5q17 35 55 48t73 -4q62 -31 134 -31q51 0 99 17q-3 0 -9.5 -0.5t-9.5 -0.5 q-92 0 -170.5 50t-118.5 133q-17 36 -3.5 73.5t49.5 54.5q18 9 39 9q-21 0 -39 9q-36 17 -49.5 54.5t3.5 73.5q40 83 118.5 133t170.5 50h6h1q14 -2 42 -4l291 -27l239 120q14 7 29 7q40 0 57 -35z" /> +<glyph unicode="" horiz-adv-x="1792" d="M1056 704q0 -26 19 -45t45 -19t45 19t19 45q0 146 -103 249t-249 103t-249 -103t-103 -249q0 -26 19 -45t45 -19t45 19t19 45q0 93 66 158.5t158 65.5t158 -65.5t66 -158.5zM835 1280q-117 0 -223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5q0 -26 19 -45t45 -19t45 19 t19 45q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -55 -18 -103.5t-37.5 -74.5t-59.5 -72q-34 -39 -52 -63t-43.5 -66.5t-37 -91t-11.5 -105.5q0 -106 -75 -181t-181 -75q-26 0 -45 -19t-19 -45t19 -45t45 -19q159 0 271.5 112.5t112.5 271.5q0 41 7.5 74 t26.5 64t33.5 50t45.5 54q35 41 53 64.5t44 67.5t37.5 93.5t11.5 108.5q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5zM591 561l226 -226l-579 -579q-12 -12 -29 -12t-29 12l-168 168q-12 12 -12 29t12 29zM1612 1524l168 -168q12 -12 12 -29t-12 -30l-233 -233 l-26 -25l-71 -71q-66 153 -195 258l91 91l207 207q13 12 30 12t29 -12z" /> +<glyph unicode="" d="M866 1021q0 -27 -13 -94q-11 -50 -31.5 -150t-30.5 -150q-2 -11 -4.5 -12.5t-13.5 -2.5q-20 -2 -31 -2q-58 0 -84 49.5t-26 113.5q0 88 35 174t103 124q28 14 51 14q28 0 36.5 -16.5t8.5 -47.5zM1352 597q0 14 -39 75.5t-52 66.5q-21 8 -34 8q-91 0 -226 -77l-2 2 q3 22 27.5 135t24.5 178q0 233 -242 233q-24 0 -68 -6q-94 -17 -168.5 -89.5t-111.5 -166.5t-37 -189q0 -146 80.5 -225t227.5 -79q25 0 25 -3t-1 -5q-4 -34 -26 -117q-14 -52 -51.5 -101t-82.5 -49q-42 0 -42 47q0 24 10.5 47.5t25 39.5t29.5 28.5t26 20t11 8.5q0 3 -7 10 q-24 22 -58.5 36.5t-65.5 14.5q-35 0 -63.5 -34t-41 -75t-12.5 -75q0 -88 51.5 -142t138.5 -54q82 0 155 53t117.5 126t65.5 153q6 22 15.5 66.5t14.5 66.5q3 12 14 18q118 60 227 60q48 0 127 -18q1 -1 4 -1q5 0 9.5 4.5t4.5 8.5zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="" horiz-adv-x="1535" d="M744 1231q0 24 -2 38.5t-8.5 30t-21 23t-37.5 7.5q-39 0 -78 -23q-105 -58 -159 -190.5t-54 -269.5q0 -44 8.5 -85.5t26.5 -80.5t52.5 -62.5t81.5 -23.5q4 0 18 -0.5t20 0t16 3t15 8.5t7 16q16 77 48 231.5t48 231.5q19 91 19 146zM1498 575q0 -7 -7.5 -13.5t-15.5 -6.5 l-6 1q-22 3 -62 11t-72 12.5t-63 4.5q-167 0 -351 -93q-15 -8 -21 -27q-10 -36 -24.5 -105.5t-22.5 -100.5q-23 -91 -70 -179.5t-112.5 -164.5t-154.5 -123t-185 -47q-135 0 -214.5 83.5t-79.5 219.5q0 53 19.5 117t63 116.5t97.5 52.5q38 0 120 -33.5t83 -61.5 q0 -1 -16.5 -12.5t-39.5 -31t-46 -44.5t-39 -61t-16 -74q0 -33 16.5 -53t48.5 -20q45 0 85 31.5t66.5 78t48 105.5t32.5 107t16 90v9q0 2 -3.5 3.5t-8.5 1.5h-10t-10 -0.5t-6 -0.5q-227 0 -352 122.5t-125 348.5q0 108 34.5 221t96 210t156 167.5t204.5 89.5q52 9 106 9 q374 0 374 -360q0 -98 -38 -273t-43 -211l3 -3q101 57 182.5 88t167.5 31q22 0 53 -13q19 -7 80 -102.5t61 -116.5z" /> +<glyph unicode="" horiz-adv-x="1664" d="M831 863q32 0 59 -18l222 -148q61 -40 110 -97l146 -170q40 -46 29 -106l-72 -413q-6 -32 -29.5 -53.5t-55.5 -25.5l-527 -56l-352 -32h-9q-39 0 -67.5 28t-28.5 68q0 37 27 64t65 32l260 32h-448q-41 0 -69.5 30t-26.5 71q2 39 32 65t69 26l442 1l-521 64q-41 5 -66 37 t-19 73q6 35 34.5 57.5t65.5 22.5h10l481 -60l-351 94q-38 10 -62 41.5t-18 68.5q6 36 33 58.5t62 22.5q6 0 20 -2l448 -96l217 -37q1 0 3 -0.5t3 -0.5q23 0 30.5 23t-12.5 36l-186 125q-35 23 -42 63.5t18 73.5q27 38 76 38zM761 661l186 -125l-218 37l-5 2l-36 38 l-238 262q-1 1 -2.5 3.5t-2.5 3.5q-24 31 -18.5 70t37.5 64q31 23 68 17.5t64 -33.5l142 -147l-4 -4t-5 -4q-32 -45 -23 -99t55 -85zM1648 1115l15 -266q4 -73 -11 -147l-48 -219q-12 -59 -67 -87l-106 -54q2 62 -39 109l-146 170q-53 61 -117 103l-222 148q-34 23 -76 23 q-51 0 -88 -37l-235 312q-25 33 -18 73.5t41 63.5q33 22 71.5 14t62.5 -40l266 -352l-262 455q-21 35 -10.5 75t47.5 59q35 18 72.5 6t57.5 -46l241 -420l-136 337q-15 35 -4.5 74t44.5 56q37 19 76 6t56 -51l193 -415l101 -196q8 -15 23 -17.5t27 7.5t11 26l-12 224 q-2 41 26 71t69 31q39 0 67 -28.5t30 -67.5z" /> +<glyph unicode="" horiz-adv-x="1792" d="M335 180q-2 0 -6 2q-86 57 -168.5 145t-139.5 180q-21 30 -21 69q0 9 2 19t4 18t7 18t8.5 16t10.5 17t10 15t12 15.5t11 14.5q184 251 452 365q-110 198 -110 211q0 19 17 29q116 64 128 64q18 0 28 -16l124 -229q92 19 192 19q266 0 497.5 -137.5t378.5 -369.5 q20 -31 20 -69t-20 -69q-91 -142 -218.5 -253.5t-278.5 -175.5q110 -198 110 -211q0 -20 -17 -29q-116 -64 -127 -64q-19 0 -29 16l-124 229l-64 119l-444 820l7 7q-58 -24 -99 -47q3 -5 127 -234t243 -449t119 -223q0 -7 -9 -9q-13 -3 -72 -3q-57 0 -60 7l-456 841 q-39 -28 -82 -68q24 -43 214 -393.5t190 -354.5q0 -10 -11 -10q-14 0 -82.5 22t-72.5 28l-106 197l-224 413q-44 -53 -78 -106q2 -3 18 -25t23 -34l176 -327q0 -10 -10 -10zM1165 282l49 -91q273 111 450 385q-180 277 -459 389q67 -64 103 -148.5t36 -176.5 q0 -106 -47 -200.5t-132 -157.5zM848 896q0 -20 14 -34t34 -14q86 0 147 -61t61 -147q0 -20 14 -34t34 -14t34 14t14 34q0 126 -89 215t-215 89q-20 0 -34 -14t-14 -34zM1214 961l-9 4l7 -7z" /> +<glyph unicode="" horiz-adv-x="1280" d="M1050 430q0 -215 -147 -374q-148 -161 -378 -161q-232 0 -378 161q-147 159 -147 374q0 147 68 270.5t189 196.5t268 73q96 0 182 -31q-32 -62 -39 -126q-66 28 -143 28q-167 0 -280.5 -123t-113.5 -291q0 -170 112.5 -288.5t281.5 -118.5t281 118.5t112 288.5 q0 89 -32 166q66 13 123 49q41 -98 41 -212zM846 619q0 -192 -79.5 -345t-238.5 -253l-14 -1q-29 0 -62 5q83 32 146.5 102.5t99.5 154.5t58.5 189t30 192.5t7.5 178.5q0 69 -3 103q55 -160 55 -326zM791 947v-2q-73 214 -206 440q88 -59 142.5 -186.5t63.5 -251.5z M1035 744q-83 0 -160 75q218 120 290 247q19 37 21 56q-42 -94 -139.5 -166.5t-204.5 -97.5q-35 54 -35 113q0 37 17 79t43 68q46 44 157 74q59 16 106 58.5t74 100.5q74 -105 74 -253q0 -109 -24 -170q-32 -77 -88.5 -130.5t-130.5 -53.5z" /> +<glyph unicode="" d="M1050 495q0 78 -28 147q-41 -25 -85 -34q22 -50 22 -114q0 -117 -77 -198.5t-193 -81.5t-193.5 81.5t-77.5 198.5q0 115 78 199.5t193 84.5q53 0 98 -19q4 43 27 87q-60 21 -125 21q-154 0 -257.5 -108.5t-103.5 -263.5t103.5 -261t257.5 -106t257.5 106.5t103.5 260.5z M872 850q2 -24 2 -71q0 -63 -5 -123t-20.5 -132.5t-40.5 -130t-68.5 -106t-100.5 -70.5q21 -3 42 -3h10q219 139 219 411q0 116 -38 225zM872 850q-4 80 -44 171.5t-98 130.5q92 -156 142 -302zM1207 955q0 102 -51 174q-41 -86 -124 -109q-69 -19 -109 -53.5t-40 -99.5 q0 -40 24 -77q74 17 140.5 67t95.5 115q-4 -52 -74.5 -111.5t-138.5 -97.5q52 -52 110 -52q51 0 90 37t60 90q17 43 17 117zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" /> +<glyph unicode="" d="M1279 388q0 22 -22 27q-67 15 -118 59t-80 108q-7 19 -7 25q0 15 19.5 26t43 17t43 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-12 0 -32 -8t-31 -8q-4 0 -12 2q5 95 5 114q0 79 -17 114q-36 78 -103 121.5t-152 43.5q-199 0 -275 -165q-17 -35 -17 -114q0 -19 5 -114 q-4 -2 -14 -2q-12 0 -32 7.5t-30 7.5q-21 0 -38.5 -12t-17.5 -32q0 -21 19.5 -35.5t43 -20.5t43 -17t19.5 -26q0 -6 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -46 137 -68q2 -5 6 -26t11.5 -30.5t23.5 -9.5q12 0 37.5 4.5t39.5 4.5q35 0 67 -15t54 -32.5t57.5 -32.5 t76.5 -15q43 0 79 15t57.5 32.5t53.5 32.5t67 15q14 0 39.5 -4t38.5 -4q16 0 23 10t11 30t6 25q137 22 137 68zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" /> +<glyph unicode="" horiz-adv-x="1664" d="M848 1408q134 1 240.5 -68.5t163.5 -192.5q27 -58 27 -179q0 -47 -9 -191q14 -7 28 -7q18 0 51 13.5t51 13.5q29 0 56 -18t27 -46q0 -32 -31.5 -54t-69 -31.5t-69 -29t-31.5 -47.5q0 -15 12 -43q37 -82 102.5 -150t144.5 -101q28 -12 80 -23q28 -6 28 -35 q0 -70 -219 -103q-7 -11 -11 -39t-14 -46.5t-33 -18.5q-20 0 -62 6.5t-64 6.5q-37 0 -62 -5q-32 -5 -63 -22.5t-58 -38t-58 -40.5t-76 -33.5t-99 -13.5q-52 0 -96.5 13.5t-75 33.5t-57.5 40.5t-58 38t-62 22.5q-26 5 -63 5q-24 0 -65.5 -7.5t-58.5 -7.5q-25 0 -35 18.5 t-14 47.5t-11 40q-219 33 -219 103q0 29 28 35q52 11 80 23q78 32 144.5 101t102.5 150q12 28 12 43q0 28 -31.5 47.5t-69.5 29.5t-69.5 31.5t-31.5 52.5q0 27 26 45.5t55 18.5q15 0 48 -13t53 -13q18 0 32 7q-9 142 -9 190q0 122 27 180q64 137 172 198t264 63z" /> +<glyph unicode="" d="M1280 388q0 22 -22 27q-67 14 -118 58t-80 109q-7 14 -7 25q0 15 19.5 26t42.5 17t42.5 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-11 0 -31 -8t-32 -8q-4 0 -12 2q5 63 5 115q0 78 -17 114q-36 78 -102.5 121.5t-152.5 43.5q-198 0 -275 -165q-18 -38 -18 -115 q0 -38 6 -114q-10 -2 -15 -2q-11 0 -31.5 8t-30.5 8q-20 0 -37.5 -12.5t-17.5 -32.5q0 -21 19.5 -35.5t42.5 -20.5t42.5 -17t19.5 -26q0 -11 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -47 138 -69q2 -5 6 -26t11 -30.5t23 -9.5q13 0 38.5 5t38.5 5q35 0 67.5 -15 t54.5 -32.5t57.5 -32.5t76.5 -15q43 0 79 15t57.5 32.5t54 32.5t67.5 15q13 0 39 -4.5t39 -4.5q15 0 22.5 9.5t11.5 31t5 24.5q138 22 138 69zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" /> +<glyph unicode="" horiz-adv-x="1792" /> <glyph unicode="" horiz-adv-x="1792" /> </font> </defs></svg> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fonts/fontawesome-webfont.ttf b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fonts/fontawesome-webfont.ttf index ed9372f8ea0fbaa04f42630a48887e4b38945345..86784df961f954a23a3a5afa57f07ebee0396192 100755 GIT binary patch delta 36082 zcmaE}lf7d$XFUTW0|NseLjwadLxP)Ih;P>Z-UbE+hBpih3^ML6u5L`17+4q>7&#ai z7!>@2^^H1=s+1WR7&RCe7!s0m6AR|*mt0|BVC-OEU}j2BEH3!}pMjZyfu)Cmfq^4E zr!vjs!_^W729_xdOk#5~QWI17+LyO8Fi9IQFff>9WTe(7@-uTyWnhxdU|?WS$;d6K z&|V?l%)lhw!@$5*l9QjD$kb=3!oZ})z`(#YBR8?4fSHd;hJndo2FO8qiMgqU(_0J~ zm<)C>Ffi8?<QJES9=Bm;U@|dbV371FPfbeu#}v-Pz~l?^6dMBr*t-m8Y!{tpU|?W4 z?QdcOatXs_qje2nDLw`U1__W90}}%y10&NC21bzo8JHLt7?|077$-2WGB8XwV$2l( z!@vyIA;ZAJ_<(_dp@hMKftA5z@+QUvflq#);y&els{7RUY2K%GpY}}_VoDSE<nSrr zQ^Kc$PYs_Yd|L2n!{iF46cPS6{IB_6@xSDM!T+598UIt>B@B#{3z^F{yD@VLvPv;9 zu%&Gd5%J?^W8nJVz*f0=h4MyL<_5N3n`1Ns`FR^y7+4z^WEmJ3&BR0}D_TlTzG7j? z+Q81h+AvwjvYoYot%0>+@;u9E)*9A&)|SctEU&XRu(7c=Oul6m4OM4l-OdU&XYw)Y z2sV(H*cdmf*u3Xvt@_`<#<p3)!;6)TLEwJ_+lR>+zOz6Hfq^xLHD@!IUl23Xe}>I* zf!y4T4V$xK$~o#e85sUIuz?)K&cM$g&LGdA&Y;6!#L&nv5#&g9HFh>}F$igHrfvpd ziJPgZtFeiTi9`5uj3&xTBIY0wGe#2z1qM+OA#pJ?QxkPQCOt-VHFZ5^Gh-t;MsYbt zBQtX|b3JBL6LU3lGckF_dNU(&J0@{4b}>;AK4uWfCMqIkZYIPiD8i<!sHA2pXkuop zXe7qO&ce>g%EHbm&dScl#?H#7&&1Bo$jr_m#>B|X#=*)K&BV>g!o<y~$HQgIB*w%f z!qoKd%D;$zSB}gQ5@ci(Hqp`M5LaSi<!0vQV-wQi5zy9A;A5|sGW7CLH<geTc9)d0 z>apTh_7RqqFqP4EuvJrL6cn0ugppxo`5%Y!l`G4c50tND3}9ntXJun&*JEd9;ox9q zF=Sz3Vqs-w5@uv)V&`CIb7yB^W@l$%W)TqJXJ=vOU}1E<!l?7_%9Z8+zM3!#@R(>b zGBa|@OIh<XvT}2<+p$QC$;hy?>5H*RnkKvXTiJQBNec)F3bKpIv3c29`CEpYstB;i zJ7^>^@dz-RFmf}sBV4m`b4ywyt0o5n!~f;rI1FKkVMt-fW+-N;VrXLM0OdFqAyE+q zb~ZIr6EoAv)~Ob0Z0c$ZrY1tdkhp`zA(Vzvkf>!77c)0uR}vL5H!@daXA?7H(q~-6 zn0W5r?HAHgj3$=RiH@57s=6{+>T0paVg*c#WOP;iH60S8E!DXu-%6EAl#+h&@AkP+ zW-cyfW-d-;c1|ufc1|u8PEHO^P9Y->9v%)(ULHqg0e%iaerG`eK>;f!0Ra{T)`oNc z=3o5%FW;9{LWp^?ZK5ulgqeSHXnA;aA*Y6fgp?Gwf-Yxaba?sXvpEX(sVqVgtiFsB ze_v!w{8P`)%FN2n$|l9i&B?~f&85c9!^_SprNY6@!^y$TBf!ndBF4hT&dbEj%OuLp z#4N$F`CkqrBV)s+yk17e=FNTi8H^kZO#d5L|FPC?{#Q`J&&I&|zk#)Sb4^1y3v2QJ z1~%TwH(K)87#ROIurqA-Y3=2!XNG4YX$Ex$a|Q-R6Lm#VV?JhOB{dT>V<T~MHDx6> z0Wo7EGgV_#Wm9EQWl>{MWArr6JeBR=w42P*2BBujJw3@Wwi!877d&{dVCiYb$lTn# zyu3U{A>_o!R4%2~B4J`yuiST{&pI{b;lD!<FO`GT<uSD)r4j~EVfcSBCj)CNgEE6Y z0|TQ76N|EviW-xEkeQ0Hf;hXHvJxMoh#aG_ksY(SqN$>os;IK4vZ=DEv8k~r>)dt! z_Fb6z@57Ojk|T@)QyJyX9xq*AeX*+QVs&tLl(W1k+rI>+Ej-N07cX7Bc!??h!oS_y zK`I%w7zK`$9N1r2bM?>F8a>wtKjlC6_8>JEFETJ}Hkfvnov~r_zqu-mpwMJsuGy?H z-&KQkGJ7z~+sQ@8&ol0x>~vxe8w1n-wQO~hSx!y^F&kJLHZM3?%*>duS>&uSBWn@^ z1C!ilpL1+X;G&SdesjbHEfyvQ=E*HrZZoP(PPn?5@#1EdYf7AKpn8t^*JPdhacm6C z{~MTpZJu!dGYjMA%`H!MGcuZNc6hdlkquONF#q5D<N0zX#uu9xypm^PRGNI?&38tn z$vfVDW>lKI=G}h~`5sJu_|2%adBsOLc33Jo^COk1o{fR~KLhJmHU<WE25ts^24Mzq z25ANcRz*Q&K}A7jRdZH$Msr3mW@cpPWHeP2W##<6XaVcI1%HARnfVp}MmRHFb^iM$ zjVUedCga_Pf69M1F)Ji6KKR?f)SxqW=^Q4hN&nVPWZG8!_kT5W_22pgrp8|j=g((g z06Bm2ncuC9tO2Zztcy2?{hiFj*f9Ck{~sVfJ23s7`hw99#AIOlJKctnF@TMcnVo_8 z@AOHGjDBp4%xnjk|89TA$QaDXShwAZnUR%|9psmvYz*7oSQu}!GdHlD-mb#KD9y~O z^Phq3%5)cg#@EdISnIbN2{3*GMI?JIi~DvxA;u0y7PjxK-rIKxGhSq?S7tDV)F+^- zfSr#~SxH?DRGF~zF|vz;vWOg`xR|k#u#hlX!OzOWwfcFWj#?-;OOLX)I<JCUlXa$a zj<ksnx1|xk4Zlmm+(&nQA!iHbrW<S=|2_*RSl(G_c5*Kdd#pqPpM<l?X7k(Tn;F#@ zr5WqDCrC4ja?~?|@-6E_)&>Sp3rSH-6l=Z^faMEj2Bxb#+y1S;HTU0>bCs3n7-i-% z>Ri8Ay}j{vL&NRH@JVrQifsRUnBF<t-u$=v07wC&6{F0#%9AI{o9_SnalgsHBPK|d z0n{S-&%n-5&&I$Yz#z$>#Nfve$H2fS#?Gdou4Zm#1PTdrGb0rdHYHHGZNv&<n3x%f znVYC7v8$;Ii;IXEnVG05E3vDqu`{!Q@-L{~6lW6^VKFvRF*Q-QV^k4fVq;N&W^x4< zF&1|L0lR<i>;weZgxCx!D-7Aph5lVO@iH~_V%%@)Wn$uG`r9o<rD?1E36P+wnbcij zHrFkU$|go`s`6}%5=W0QO0dhRFs4m+3}qCqXDk%px3l9HU}G~hWV_;JVxp>M5~T_< z#w5tlO(lwrQCe5k#MH~w$dFa^-wF08RX0OrD}HI&zEh|A6eRgAcmJF6Z_9_iz7LE( zj5&-xAQq?{#|nxRaBarVAjzQ25Xg`S2^%G7*ch3c8L5iYL&HW495|-X&`|~jkGVJ~ z#&CoWs1OE+4@T*`nwQt~jVUiLs{pIkIW1O!fB*FC^mH9`8G|77bsKFh`NCOds~L6W z6?E%$6%0i83bNSD%9qp8wo#B`{jhS?2R2E0Mq}i}$T*#s*VL4kmyJzJi*1^`o}Rpd zuC4-<cGt3z_hb32uArmqpsTILD)jFQo3Db6mYfl<q<GcZwN;W5yoQWVkc)D7RkOWK zozYc{`916Z?dNP6;{_R~Z`bo@)Mc($_^-hBfb}|qBDkD~Bmq+sAr*5`HU?1<IVJ@= zCQ}mzbyG1GA+`sd&;K3xx8UD_=beWb1J2$3cQ<YITSk_*tJD77y?c%^;1E;829RXu zb4G^^R~d^x$Uo8jx8PaR+tq1ltKT*~V@%L}BLCrEFQ}C+{GWmC9UH^;dqIpRStGeY z1s*4(GBX>yI<qpPAZBH!$;eeOS3*Q<b_FAQD${l3Kw}bN{QU2Pfldsg#XsSHdzibB zLSVZ<B%>TN8w10C2DbmxO=1}HK+PWpw*Rc(x37v}yvxNZ`JadF`SzZ4#_5dgk^dQ4 zSF!%xu9eAH%~H?A!1<qn^*tK{gF1sNI8iYvDl4(^GcvRDF={g^shQg`o10lPikX9& zsb=POjAG(q>LToH>}>2J%IZq&Y|P+BskyKnBdAd-F2~6FUPvtbpOTKG8Y_!A6RW!9 zZ&3+mPGun#PFA(%*7WrSX{Hj~jLa-7{xkLJ1MU@eM@6LwF$FVn|GOzB%lv{>SC%PE zsoo&Fkhv<P;-8D6l<>c0{8EZ?q81Md?pvrbiK}PEPj|CtV`gNw-kja|GDw4okuibe z?>8<*G1mREYEr_QOF)IbI;cQlV_@K75Mq#I&|qL-G!kbJR%BvUGc#snV`pMEGZ(5C z76J)zG72y=F@j|jjl{%-7<Vd&FmfgQbE^NqBP7DS#L&loqXx_6hp!p6mH*jl{$pUt zNOk^qM>3E_Sb#BIRGGDyIYH{*lz(ZAI~h#`l>f~>eu&YGQReQGe`^@~|LyrJ{I8H{ zCbRnA1OFoa)i4<_aWm>NN()Fzi7@?3-@YfGaXV){H-k8XGJ_REFhd?gE5m$-bqqTh zPJ+@an=-h>Gd2=a6=73m2StXF93!g;lDLVQHlq?dGn<$-qmezM9g`6#N3#l>frUZs zEKw1Vh&h|6h&7`T16VmfqdG{MO;kjVQJhV*9wcMVs0x-N!YC1lS;D3!V5`|hKz5rm z@-aePD285^FugQZl~p!Ul~H9D)X`B8Wa1VQlagSJH&&5VF;bPOSN*lZ*KUC@lOrPs zn~w;S5F?L}fEaUF5~HamNQ94B+QlQ))k?-jh=tcxnDGz?t1mZumJX|+H!Fv_E@Kd{ zFE=~Gf5tjryZItuLxOl%Fb$D%1sNi1BM36&F0U6iSgDgRQ~gg*RxNc!K_+ft4Hfnx zACn&pCO$qU91JEtOl7Ku3Not3iWORNjM>~QqAOL5!2CXIQ{jIZY+S;599+yyiH{gr z*|-!nay+fwBt&>P1sFxSIJxFb6X0ZJDr#XV;NazAEU<uT;VnVaqUk0f!YIHZz_^By zkNaN&6Dy}Mqp-3VV>Y)q<Ne=Yx3Gdp28Qh(HH@)bjN#jtwK4XHfpa|v!*+|gjAxix z7#KMIZs%CY$i)n5urshUu>P4YwS;j_J-h-@2RC+$%}*g)CaRFDzW&ty{4V=}R0 zGBy%tR8&&4Wi&A}W>8=d0AbbxQffkc4tzrYn(CrwUww6Tc69XYtEH#sFxLJ1%_k(p z_cxufh>`u@&wqXYezG>GN&QOzi88YNYn*es6rx%Zq^pjx4s6b^21a(64u<JjOBt^) zF)(d+SjMQt1a>vsKi0q7vsN%FFtRW({%70Xx02C;k%@tA`-N4EW{e20STi_-@-&iH z*u}*}_!-%h^cg|jW<G?c%+=LQ>>16B<QdIzdhcovC#N2#6jzTQsyF@CK*ZNv1$#FX zr+=^Ya7l6MadP(h!~G5Rw%;0v_?oMj-e&-HM40}wO#ifo@kBkSrOMvGQpaG);0P*< zMcBcf0l8gK6cS&yjLK{b%1SCs=5|cxW-Maj#-=7_){I7CvW$vQPl|(L4TRZqg@ym! z;*{pp<>K1;?-tnh7Kwj5?=JuMYLYPjq-Slj8HLsfw16cT)pq)Gap`hObN+UK#m>K< zOu51)!vAhTBz8UkMeKu{|8A~h)LPa0u$!Bw@$)o@;7*7&f8HX;?TmGdrBR?!CkB=V zmIelP25|;Z^A3`*L}2k_B*)0Y07*Vz&FzR(_Uh_v#&#svn1TWnE<JgExY%~Z^^7an z>RA{V{&%r6u$D0hF^DqAfJ=K&t6521RgV!oU}7ZBC??LyBq+kBq^`;+!obeS2x?<9 ziZO*sN(c)4(-)N$5$2O){Lk#bB=+|eOSX)G_&;|h$-n<~{#7x$2rBdOFv+s8ME}l~ zROWcer7zA>A|k{8pMg33&pgI@E+)6%k0j-J?=U}Q{<GhmsfvkThV9=cCU7?sGMEJF z^)R4T|B8alXjT3%2DFNvWz{bR(2$=5L&$$NjwP)B86XvfK7$K`FT)>3Hbx;(>s^)6 zh|z}8oiUIxjxmR^oN*K5LB<=5FBtza@h~v3@-ecrsi~`(nVX5Rf;tsu=HSsPb1>V~ z1T=C5QDbTXQp0Gh#4g7u3aVk$L2YPbP{Z0>kCEMuNsf^bG%zIwF_A@;k5OHZ(cG*a zG<GF!1|?0*&BV>b#l%gO)Inoi=4R%0Ok(23V&Y=rc8um~>T2pH=6Vo~=4N8zB67^) zpyq`dJGhOZ$D*zRYGjxj+cDcS+A)fYiHos;`b46jHisOeIH)0FY{v+4yto)hf=#(z zgxw5csi+vpYIZSkGe!{*3Gy4e93w~?WG5TDlDe3<k-3=~tC_i)sfijpAIJhVGjl^V zbv{Or4s$ksMpHI%a7f89nuA=-pacpABQsMIW;J$GHZgIqxEiY+qnf%Yn=&6`JxEBE zO-x)2)Iu_6V;5r=V-Yt~F;}x^G!@ljRA*yn19k4y`8br>)cKg%mDrS&+0-FoYU*t4 zV$5cyps?ZtjR=BF5fe9qxL1TtR1DnOQU;AKvZ#VogY>bnD~lSbg2IB`%(Na9sA}eF zrXX1{Rx>?DP`HRd+{t*4LrqB1l!-A&T3n3Pgk4Qo(v*=YSXxZXk~dsQ*Q?z?L;qJ1 zZy1EB$8?fWQ(0QcOwB}wwZK21px{CB=Njq!+Oj~VPaMMRjL{8d1`%R^1OFZo4>t_k z&B(+m%u&xK$tTUu$t@!*$15(QEF~nu&2AdO&B@8{$E2ht!^*42$IQf~$;Hnv?!stS zD5D_CA>bu$#mvma!p<sfXkesKrEi-yu~S6LMA43iDVWhT$tF~Vk(Hf=iHVWfO59V3 zT~t9P-^N{nPmo)SlaWP0hnH1GO^L~$kCTHZ!nB@?ol!(cN?AsnPf<#mn~Ot+SNz{s z&LBA!X&Dg(KV?Z?XE|P0W(#9}FF8IfZc#A-xu5&wf;bh0Wu!G^U3evxRr!t0SvYs` zSqrP^>Pbm5-{cTvX66;t&|#GL_u$2{WiOVQWo0t5bICT!bF#4h`^3S_!gPg+g^i6{ zsqNp4dI3#Kej#RNE>_n=%&IMn;>*@Biq2MKW)^hfm$ERHXJujMVq)WD=iw0G5N64; zWZ{t$kYQqCVcaaiWTvmf!y(9NCCeDdEa;-HSsB5q++=1P#w*Tp_-NA7L^g3Ic}^Z3 zE@4I{X5mmK5vJ6C>wE$@I2;`=Twr8mS->K}CtT0S%+IgI$0^Swz;kBvF{T98hzcz= zS3zd3Fk`c(ZUI$xPDx=gCsr0?Q6zSRv?C|4vZ7utD{H6{5}U<|pF>w#*+^Sl*ef%0 zO6ILxU1u9lHjUh0cev%n1uY8Qn3(jnBqcQsn3!h=iwVhd*K=`-$;xta@rm%sa`4Eo zva|4eGI6<@s%hIP3aWBR3b6_?voNwUa<geLv#~HK%BvJu)R_v1%Q8v{NboW9G3m*$ z2<cgwdh&Ac^K$Sp*Zun*(#0jr%qPLm$0s8pXi{fcpsb+C#Kok^%EQRY$igDTDkQ<7 zCa7Sqp=s*IS<hrB!Oz0ZD#ODmBOt`f$t5Ev%E7!|R#G8FwOUq~rA({UidTV;&mmQS zpNp}$hS{afFhxO9R)|Gdwz^xM&#G06jb9+eQP8m_pM_7DF*2K3U9DGGh@C^E*@lU! zd1*=M(xs&(|J0b67^TbD`53vGJ)C#3L_`QPGK+)+vDWi5ov<#K<X{sLm?F#6B+lD= z%-rzMOkPn=Mn)!f#waZ{bv6!OLskwpR%Rw9Mn+B%L1AuYCPqO^drl5LUS3%hHWsG8 zEqns*W!yZb*=D8zOiVU+>@5myO*#@;IGNZOg@nbqdAWm~mClNaPBv5)V`dhWv1wq` zH*-=`Wc01~;Sl7M5D{WwW#QNtXWe6#ZOX%4?k2!zXv4%502<``@65@_x|aboqhZa! z03Jp$F*9O;j-oKivGOn)8_BWoF|)I=+p+2~v$Lt_v9o?j=txZL_*<OVk&w{wH_9@* zz4P!{Ms-HZ8{L<uC+ae5x#!gQ?o5@fkB?1oQ{(ZU^>5>fe|PTeZ7OzgQPkH4=}H9a zO=LB+iS#zs5a(m%5?9c-@CZ!Jahw}vToRua7+_;8FTl(sAZKFiWgTK3$N(B6WPo<w z_!;CGv>EIfycyCN${83K6j<1p1cby`6jaQF1enxR6j;QB1eod}eR=^QGhri9K@n|6 zB~w8YV-_PZQ4uzFc*{wT(bR-VfkjAwiA6z$NkB+g6x?eu12uO+4JbHIO@WP3&_qpH zQHf1dP(;jF(a4NN^WVCEXYRMO+-Edl3}Q3^vHs@525FN1ZGny46bT3@2naA%XL&2j zf*V${%7Nf1f^+}o|BL%K|J=DtVBzLn&0zZ6zdPrc6V#;sG)SqbNijD_sj(htx&QAB znsrAYBTRq&1pa}He<0xCZK`Y~SOjX36$x4?n=*UDEnrLpS@`cAxE-Dl+uR%rVNE)B z?oS^R1IV6#AQChk2pV4E1dYBiGl+w`27-!$jK+e>Xx=vkcjrXwQD>lJ8I8o)8-6yh zGc+^^@%=aeatylzpAaL1w`rWyj{{C|aZc<GPI0E*EDV1cm>K>aU~FJi0IB-p03w+d z{A)1vUI0?Y3|73r8{{5l5CL_RG~7|3J`2cxP`d<a7EDx<5yP>9j0~&{Obw>qsLnuh zBQwKa2Brhvrf6>Xn}F&_Mg>s*VPF6`sGfnD0o6q!Y|6wrh`E7<fno>MgM$s(MdUk( ziGh{m5UPhn6P6$XxAH+j#30U~4eyo_6*e6BoxzM0MfFZN9RM1*W@V{nV_=X0b)DGR zlof@=*!UUQ)YO?7*+66Krh+Espe8>{uDqb2*1x8cTp|)1B@MXu|2rWp#lxea!NVgh z#Q0WDUE`mMqye`#mxu)8k$)$ISp~INA7}}(3NwH^pA5_mYzz#l3=E74qJqYv%7P+_ z#-hp!>THV2rp5}Ug36}Gf+k?LxS67{D6_-A0}Ty~4h|0gJ`@!E`{3Zf=+Myc?|_2? zqd-9cqkscz!-Ibb4SydzXqYsq;Q^CE1LFcP6OsuS{xfiZIslOQl6p{KsLx=|U=8jd zDhnD5Dw-;aDhh&ftfHu*sUoYWv8ke{v8kY`vZ$)5v7oZ4qNuW<u_&vlvM8gXAQ*yZ zMi5h!gQ20}U&C*Pe+>-{j18;|j1B)88h$b~G_Wx=H2j9p{}>n>{xtk+U~c%!P|wux zw}FM>Kf}KUmWDr2Z7d9o4N&ll0mNWoXlVEYW&LGf1ZDgNCQxPrX#lN(0F6{~f_x>< zpv<7opv|DqV9a38;LPC85YE8Bh~zC)&k5Em!~DpI>`!G;V^u|jXBkaF%9KGRgDEIz zKtW_Is%Xjy_ASUS4gVS-US@7!1o<57@4pNUzZx1ESQ{D|em5{TG&KBaXlP(!01NyB zh10)=`Ud6(W`@5|%^;mjAOpaBa1esL{~JVrv^F#}{B8IP<}orbK}-PgKz)AL5(7cd zN)1Lq<N{4lQHf1l5tMY<Ss4B#XjoWiusUd1{7cZVsBd7b<u}@46vU|TF99NKq46id z!XwCNhY>%dJcq7bU}NA1PvIzwn%Og&se&V3(8LT>j`M?t>5yz>t@t6!vy<oFCq{+e z49pD{j3+c?cE}`X{9%CE&B*YBi)Sa#+<NAQ-wccj8Wzk8{xE1H$n22OfVu*dT0vt` z4V<8b6Wk0E4C)My3?U3D3=9k+Z0u~>jHbp$;$miSwwSRPtDrKZk1i_5D9@;%YRbmW zre*@}IqEU$Gpg}1iO4aTo2i<pship{g8HefN@~iAf|CVhgzMSo%Zqbx&78@_A<io& z&dk%@&CJax{yX!Dk8@6?X@{m3qX*Ne<kXz1s+`nhgA5s&`t3<NI!W8>Q<*)(oGcxJ zoS21J|5-A=_KI&n8SOJMQDtT7VPaixq{PD5$jI`5(d6G5D^KeJegQ^C#X=Kyj-*{l z9QEwR1w8yrOl%qf2_*>u8f+|mX0EKv9L{>?PRxw|m^_)yP)6;*Q#jzTVP)WEkYdnd zuw!6g6y#$R5mPZyQx`O25CBa;>oJ*{2&pKrFq-HwDJv?mFo}u?u^1~F*)f444r%pA zy%=*;R!a+0QcG4AWAxmApXQg}oEtlrk&n@ik&j6xf5+$Mf0sA>ySaWHqt-e`-Nvsw z@);wL{mH1#v{iHOtG#<)?bZD2rO9~l-=Tk>=ElywSw5eUZ|>ZGKHXoJB`o@PZP)65 zw^yaEe8bF!;vZp9rTCwL9h8efZ8U2J2G+^1cgWW>iYl8Tnoib?qM+ex=!zA#24UXc z2Y7{rd08BIg&X3WeuHa$76+%ee+_WC1>gn&NH77U462327oj+g(Qd&4kTD>`8seNl zYU3C{PWfNYzyT_rnHX3ZOc`t$LK$)y7&sXfIT;lh`54&+6~XO1@Qekh)n}|IsK=-d z8xmBsV>A*IhbdtJje01ti7-M2s!UBl6Cp<8axARq0&EBVH83;$1eK8t^^9Bj>@}Fc z4X$6{1`$(&hCSauQBZq_@wI4DO_C_%YY^wJy_3GalRnFY*uKdvllx-bic&IIgnWcp zGE$1%eluVbWpViHz;xiR19O9hJ>Rdd;PxY!VCCks*8sEXE#2KM!7KrNkokWSJxiPv z6`e{vxqB{d+r_S^$i8da#U5^~qL6}#fejRrx(vPy42%Ly>|#QK#;BoY%_tybuEr#& z3>_(kg&3n9vuVAeh#Zr+9HR&uJ0G*CqKO`px*ns68EeDU1q-f1LIvE0Nr3ZN!J+iG z%XdPt+aCtE;t9UO;^M*}9t(`e+VJo9zx=GMfBFA@3xS5B!2}~K<HW2i#)*uqU@n;W zTW=#<zv)v;%co8Cvh0c)itMOd21v4n`Vds<kmg5iMnw^EMKeK=zm)lyMKSzUkM6Mt ze;7EK-*LJW_V_&W=_zy}-Y-sew!fU4-fygzm#^RWz6n&qf~GoQ(PPYDjU|HW!GrfW zVhHMbW<5rAWj;oB498<}dnj{QsHNHV^k?bY&4_V&y%0Da&TZQChp+dfme$E$)I{Zu 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%0AS!PgvWi~a@V`LPE?<oQuB+jg+4mvZO1vKRa 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	OGB8+x91F$`3`%Sb3`*<_5X=TT zRStw99s#W#0AXp6Cqe2#`q>#696&1}rd#Y`l(S=CW@cbu28n^>KtTm^FPLUv;0Ead zVO9nP9ViWQ6Ua;kb_NEW=~MPFCUAgcK)R>@*~7S+Re_y>L3sL_y^M0;K@bLp=@<4g z8p}$uGccsEF)&1OfbPO(V9)~T01b?@Gcc%6SJ=lmg9BtUNOt;xeT-uI3``(%SwSJj zz`z7j%?_d)7(lmgvq9yUI2a%y!#bUHKchJ>NSNaXLkK9o*rzM*V-!~fnE(n;kjWrn zkP;9Eu|XJQGUxQb9gNb`-|S`NhykesVURdT9s5@BEdn6_GH@_3IDo`K`dAql(m?WT zJHVqpV0n-n*p-l*2SDmU;-I^=_}Cd3WT$V~#wY^1VhALv3bO^O3mmfS3=BbFQ=ulX zGcdS<Y=f!+1ukg*6QmzZvoSEJz|_NNkXoqOifjxF*(?kU8X!4#NKA*pq7Q5c8v}z2 zNRqXIL7kI<ff*F_91RdJgZLoB!1DhYRM{FB7(skckb=a(xPgHmM6*wR$fQ-T!@$5m zFKolWz_5UUff2M<XaxfUQwsw_J<|gQ2Id$@revvLU|{oLU|<JbW;TI=fpZQ61Lqe8 z2CfPQ25uh)2JRmW3_L3s7<fAv82HXGF!29iU=Ucrz#yo?z#w>lfk9{j1A}k?1B37% z1_qHO3=E<Q3=E=M7#PGN7#PG&7#Jiv7#JizFfd3?VPKHTVPKHj!BEd2?ZLnx)4{+X z8^FLIr^CP?H-mve-iLufVFLq$q6h<n;t>W0r4R-NWfukpl>qSR?+j`w3=A5eNZP}| zpjpDeprygUpmm3VLC1iBL05!<LH7p(gI)pygWeAY2K@#G2K_q>3<f3)3<gIS7!0>C zFc@uMU@&fBU@!@(XJ9bd!oXnaz`$U-fPumE1_Ohc0|SFu4FiMO9R>#T3<d`C6ATO% zIt&aJ4GatxR~Q&9a~K#buP`uJbuchk^Dr=2KVV?6nZUqcJAr}0E{1`@o`r$IzJr0m z{s#ktLk0tb!yN_&#{dQf#~Ta`P8AFc&Jqj^&MgcK&U+XbT<UWe7+hHx7+h~KFu3hu zU~ms$U~vD#z~ITlz~H%tfx#<+fx-I>1A{LM1A}i11B0Ir1B2fJ1_r+`3=IAk7#IQ? z7#IRhFfas$FfarjU|<N+VPFXAVPFXMVPFW}!N3sGz`zh1z`zh8z`zjkhk+qVgMlGB zhJhh^1p`A&1Or2TtOx@`>=p)wI2Q&`)yojShk+rXhk+r<gMlGgfPo=Jg@GZJhk+rr zfPo?P0|P_a69$I#1_p-o6ATQQISdS$4;UD-QWzMrbr=}3zc4W5EMQ>BO<-Wi^I>4f z&tYIFSi!(hc!GhUn1O+zcn$+Yi3tNk$r%QQ(hLTM>K2B2h8h(HhMETq47DZ<47Dd1 z80ywAFx2m0U}$*2z|d&Jz|gpXfuT8vfuY5MfuZFG14HW>28K2c28Ol?3=Hil3=AE6 z7#KRAFfeqRFfjDIVPNRpz`)Qqfq|hvhk;>&3j@Q1CkzY|D;O9i889$R%3)xbw1R<Q z(h~-T$qEb%lUwQ;7$(1AV3?x8z%V6+fnll$1H;rM3=Gpe7#OBEFfh!hVPKf)z`!so zgMnez9R`Nkdl(qz9ARLXTfx9EuZDqPz6=Ay`~wUO3o;lO7M3tDEDB&?SagDcVQ~xt z!{Rdx3`;r~7?w6LFs#_Zz_40}fnkjU1H)PY28Oj;7#P;^FfgpEU&6q!-iCo;{S^j= z4LJ-98(A0_HqK#S*!Y2gVUr63!=@Pw44d9CFl?@2VAvwTz_4Ws1H)Do28OL23=G>G z7#OzwU|`sOgMnd(2m`~8ISdRtXD~4Al3`%j^#Or*pJ8Cwvx0$PZwdp$J`Dzj{cji; z4!mGsIAp-UP=9Cx1H<7428JUp3=BseFfbf7VPH6Vhk@bP4hDu35ey6`IT#pD_AoG< z{KCL+>I4JB=@|?Rr++XooaJF)IJ<^{;oJlUhVu*z4ChZUFkD!|z;Mxpf#Ko;28K%t z3=EeRFfd$JVPLqtgn{7-3j@QI00xGuE({D;w=ghVt6*Tb&cIO5aJ_|r;YI=j!;Lcx z3^ywn7;fHSV7QgTz;NpV1H)|t28P>f7#QwEFfiPCz`$^~g@NH72Lr>sISdT<4Hy{i zA7Nm4aD{>4VG9GpqYeg!#}*6>kN+?*Jek43@bm!#!?PO<49^W17+$b2FueG~!0_?| z1H-Ei3=FS7FfhD%!@%(NMLh$<yDtn3@Bc6`e3D^c_`<`$@MQ)A!&e^$hOciJ7`|07 zFns&M!0>$y1H%sy28JIM3=BUHFfjZUU|{%N!@%%|hk@Zw0t3UJEes5QIT#rJ#xOAa z<6&U<7sJ5tKZAjhm4$(k&4q!H-GhOVLxF*jV+#W#X95Ew=L-f#t_%i7?)nf0M(!^R zj65|AjJyF1jC^+(7zG*_7zMsCFbXL!FbefBFbZ2RFbY3mU=*ogU=;bmz$m(gfl(}g zfl*w9fl>Sh1Ea(l21dyX42)7M7#L+V7#L-yFfht$FfhtKVPKStU|^KHz`!W~gMm>| zgn?1<3<IN53<IOm0R~3p2nNP_6$J)HwLJ`s8a51!nhO{hwO24O>MmelG&sS)Xz0Sg zXk@^^Xw<;K2)ZxZ_y+@{$q@!d(<KayW+e=a<}nP67Bd(aEfW|RtsEE_tsXEiT3=yc zw9#N-v|GWzXrIHt=qSLz=p?|v=nTS77#Lk9Ffh7KU|@9H!NBM~fuWw!;{XGrX9feK zmktA?w+aKJ_Xh?>p9}^@-w6zi{u3A&13oY?1{p9g22EjL3@%_`44K2g7`lOhF-(Pl zF>D0`V|WV#WB3OK#>fx`#>g8Cj8R({7^4js7^BZHFve;yFvfmhV2pplz?d+DfiaPT zficO3fiY<b17q?J2F8>F^$d)uTNoJAH5eE(7#J8cRxmJT9${e2`N6=Lw}pYRD1?Er zq=kX8%!YxnoP~k0{0{?TB?ALv<sAmbY6b?z>In>tH4+SrwI>)D>sS~V>rxmP>uxYG z);|E<+`+)uxPXDNNq~W|*@S_yMTUW~Re*u9?EwR0`ws@jjwK9?o%Kr?7`u2F7<&#d zF!stYF!r8cVC-vQVC?T;V4TFlz&NRcfpKyL1LKqe2F9s542;u67#OF2U|^hS!@xMJ zg@JK)4FlsG9|p!b9~c<t_AoHci(z1#Z^6L0pn-vL;R*)EMQ<1wm#8o>F8RX1xby%6 z<FW}1jLTUV7?&qNa6OoDhJkU#90tafQy3UmIWRD;R$yRUBg4SBW(ou2nm-JTYbzKS z*U2z2uG_-Exb6=F<5nF8#;tc47`F#7Fm8Xsz__D?fpI4b1LMvq42-)(7#Md|Ffi_V z!N9nC4+G<#Jq(O{MHm?OPGDf%w}XLke+L8O0TTwsgCz`%he8<Y84n9EFdja_z<6W^ z1LM&c2F7DG42;KX7#L6dU|>8Yz`%Gqhk^0T1O~=)91M)-9xyPTzrnzGF@S;b;t>YM zOF0aTmwzxYUU|d7c=ZVb<Fx_?#_Jgjj5ie+7;m0nV7zsLf$??&1LK_(2F5#o7#Qy! zU|_ueg@N&54g=$(9tOt84fPC+Pc|?xKHbB>_)La@@!1Rp#^)XkjL#o1Fus_;!1&UG zf$>!Y1LLa|42-XJ7#Lq?FfhJJU|@V(!NB-Vgn{v02?OK%7zW1o8yFZrY++#hc!7cO zlMe&q=K==CFB2FTzp5}We!auM_|1iZ@!J&!#_tmt7=PShVElQ5f$>)X1LLpy6AX;M z3m6!Ge_&wzGlPNgZw>?FKNAMV|1%hv7#bLu7$-0=F`Z#xVzFRgV%@^P#6E+8iPM6C ziQ9#Ni6?}CiMNJ<iEjo2lYj>Uli&gdCZP!oOu`cwm_%kUFo{lKU=o{yAL|fO0F`HC zU|?E0ebr$`-+Cp6CI)5(Mix#676vtjB~Ugig9^hbD4UHzjNu)W&Calhkp;@;V31&3 z24!<Hh%oMhvbh<w7%xHDd<-^>f1vCW3}Q?cQ1(d%113KZTY-g>;S>W0QyqxI!pU%& zfs3gP!oJDOAjLFc`m`gAhKy#@PaI(kRCHtTXYgYPVenyaWN>1zV(@1OVQ^z`Wr$!1 zVDM)MVhEW&;V7f{^w^_}Dy(J<dJKl!+m15kGMbh$q%tTlI5HG46fr0;7%~_!C@>f> zSTa~Km@=3!Sb^CJ3`PtF42BG54A~5+45<tS(-n?0x-u@^o_3ruf~B5WhFO+bj#-{r zfmxARiCLLhg;|wZjai*pgISYVi&>jlhgp|dk6EADfZ34Qh}oFggxQqYjM<#og4vSU zirJdkhS`?cj@h2sf!UGSiP@Rih1r$ajoF>qgV~eWi`kpmhuN3ekJ+C&fH{ykh&h-! zggKNsj5(Y+f;o~oin%_TIfglwIgUA=Ie|HmIf*%$IfXfuIgL4;IfFTqIg2@)Ifpry zIgdG?xq!Klxrn)#xrDitxs17-xq`Wpxr(`(xrVuxxsJJ>xq-Qnxrw=%xrMovxsAD< zxr4crxr@1*xre!zxsSP@c>?o9=1I(x8K$t8=4BcfI2wTH?PpFiiV4=U#G9HJfCxhn zVFV(KL4*m2Fa;52Ai^9(SbzvimUvTBkPcIj4pWd0Q;-f*kPcIj4pWd0Q;-f*kPcIj z4l|GrGms85kPb7D4l@&$_<B<_kQOtL7Bi3*GmsWDOO`YvGXoF-(qe7|Vu7@ngDf!z z=`aWBFbC-{2k9^eSz-aQ!~&$l0%VB=NQVVThXqK71xSYlNQVVThXqK7Wj#oXB}j`U zNQ)&%izP^lB}j`UNQ)&%i=_oinvr=bDB#?TEWiQiW(2az%)p2x-ps%lM3_LOO`)_I zNYETaSbzvimUuHm0}x>dB0%~K>p>a~O+b885CPI+2-0E*(qahGVg%A+1kz#z(qaVC zVFc1)1kzyy(qRPBVFc1)WC^hw631>vj)qXa5tKHD(onb7J3<}nXa<!qhtd{M8fKs) zl<x$kouRY~ly-&CPSCJ%f?DhZwb%)2u@lr{Cy2e?Mov(RouC#wK`nNITI>Y1*a>Q} U6VzfSsKrjM42<DC{}>q<0L!T!TL1t6 delta 8108 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 HTm}XJV@;%u diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fonts/fontawesome-webfont.woff b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fonts/fontawesome-webfont.woff index 8b280b98fa2fa261aa4b0f8fd061f772073ef83e..c7faa19c46c61d1ce393cc88178694b62b264ab8 100755 GIT binary patch literal 89076 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 XkNK?aKhrF(by*AyjNv^07#SD<G4oQG delta 71471 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 diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fonts/fontawesome-webfont.woff2 b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/static/fonts/fontawesome-webfont.woff2 index 3311d585145b1cc1b9581e914acbb32d8542b4f5..cab8571d588e7c3abc482f2c24fe407dad189ad3 100644 GIT binary patch literal 70728 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�Tyu?T?RLwOq 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%0Axi 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 E07R94YybcN literal 56780 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 diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/templates/related.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/templates/related.php index 843a32aca..ee3f4c9c5 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/templates/related.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/templates/related.php @@ -1,11 +1,8 @@ <div class="ngg-related-gallery"> - <?php foreach ($images as $image) { ?> - - <?php + <?php foreach ($images as $image) { $controller = C_Display_Type_Controller::get_instance(); $effect_code = $controller->get_effect_code($gallery->displayed_gallery); ?> - <a href="<?php echo $image->imageURL; ?>" title="<?php echo stripslashes(M_I18N::translate($image->description, 'pic_' . $image->pid . '_description')); ?>" <?php echo $effect_code; ?>> diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_other_options/module.nextgen_other_options.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_other_options/module.nextgen_other_options.php index e6c8bc895..9e01c4138 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_other_options/module.nextgen_other_options.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_other_options/module.nextgen_other_options.php @@ -17,9 +17,9 @@ class M_NextGen_Other_Options extends C_Base_Module 'Other Options', 'NextGEN Gallery Others Options Page', '0.8', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_other_options/package.module.nextgen_other_options.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_other_options/package.module.nextgen_other_options.php index 6202082ab..f6aed2120 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_other_options/package.module.nextgen_other_options.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_other_options/package.module.nextgen_other_options.php @@ -306,6 +306,10 @@ Choose [Cancel] to Stop, [OK] to proceed.', 'nggallery'), 'slug_field' => $this- if ($settings['router_param_slug'] != $this->object->get_model()->router_param_slug) { C_Photocrati_Transient_Manager::flush('displayed_gallery_rendering'); } + // Do not allow this field to ever be unset + if (empty($settings['maximum_entity_count']) || (int) $settings['maximum_entity_count'] <= 0) { + $settings['maximum_entity_count'] = 500; + } // Save both setting groups $this->object->get_model()->set($settings)->save(); $local_settings->save(); @@ -317,8 +321,8 @@ class A_Other_Options_Controller extends Mixin public function enqueue_backend_resources() { $this->call_parent('enqueue_backend_resources'); - wp_enqueue_script('nextgen_settings_page', $this->get_static_url('photocrati-nextgen_other_options#nextgen_settings_page.js'), array('jquery-ui-accordion', 'jquery-ui-tooltip', 'wp-color-picker', 'jquery.nextgen_radio_toggle')); - wp_enqueue_style('nextgen_settings_page', $this->get_static_url('photocrati-nextgen_other_options#nextgen_settings_page.css')); + wp_enqueue_script('nextgen_settings_page', $this->get_static_url('photocrati-nextgen_other_options#nextgen_settings_page.js'), array('jquery-ui-accordion', 'jquery-ui-tooltip', 'wp-color-picker', 'jquery.nextgen_radio_toggle'), NGG_SCRIPT_VERSION); + wp_enqueue_style('nextgen_settings_page', $this->get_static_url('photocrati-nextgen_other_options#nextgen_settings_page.css'), FALSE, NGG_SCRIPT_VERSION); } public function get_page_title() { @@ -369,7 +373,9 @@ Choose [Cancel] to Stop, [OK] to proceed.', 'nggallery')), TRUE); foreach ($roles as $role) { $role = get_role($role); foreach ($capabilities as $capability) { - $role->remove_cap($capability); + if (!is_null($role)) { + $role->remove_cap($capability); + } } } // Some installations of NextGen that upgraded from 1.9x to 2.0x have duplicates installed, diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pagination/module.nextgen_pagination.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pagination/module.nextgen_pagination.php index 64bda4c26..c76b67adb 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pagination/module.nextgen_pagination.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pagination/module.nextgen_pagination.php @@ -13,9 +13,9 @@ class M_NextGen_Pagination extends C_Base_Module "Pagination", "Provides pagination for display types", '0.3', - "http://www.nextgen-gallery.com", + "https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/", "Photocrati Media", - "http://www.photocrati.com" + "https://www.imagely.com" ); } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/module.nextgen_pro_upgrade.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/module.nextgen_pro_upgrade.php index 4b9d14a3b..42fb370d8 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/module.nextgen_pro_upgrade.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/module.nextgen_pro_upgrade.php @@ -15,9 +15,9 @@ class M_NextGen_Pro_Upgrade extends C_Base_Module 'NextGEN Pro Page', 'NextGEN Gallery Pro Upgrade Page', '0.4', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/package.module.nextgen_pro_upgrade.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/package.module.nextgen_pro_upgrade.php index 47ad40de6..11cc52974 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/package.module.nextgen_pro_upgrade.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/package.module.nextgen_pro_upgrade.php @@ -24,7 +24,7 @@ class A_NextGen_Pro_Upgrade_Controller extends Mixin public function enqueue_backend_resources() { $this->call_parent('enqueue_backend_resources'); - wp_enqueue_style('nextgen_pro_upgrade_page', $this->get_static_url('photocrati-nextgen_pro_upgrade#style.css')); + wp_enqueue_style('nextgen_pro_upgrade_page', $this->get_static_url('photocrati-nextgen_pro_upgrade#style.css'), FALSE, NGG_SCRIPT_VERSION); } public function get_page_title() { diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/index.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/index.php index 013154eda..1f5b1c4bd 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/index.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/index.php @@ -12,7 +12,7 @@ <li>for both NextGEN Gallery and NextGEN Pro.</li> </ul> - <a href='http://www.nextgen-gallery.com/nextgen-pro' target='_blank'> + <a href='https://www.imagely.com/wordpress-gallery-plugin/nextgen-pro/' target='_blank'> <img src='<?php print $btn_url; ?>' alt='Learn More' title='Learn More'/> </a> </div> diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/plus.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/plus.php index 2fcf88d8c..ebd8ca9c8 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/plus.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/plus.php @@ -6,11 +6,11 @@ <h2><?php echo $description; ?></h2> <h2>LEARN MORE:</h2> - <a href='http://www.nextgen-gallery.com/nextgen-plus' target='_blank' class="button-primary" id="nextgen_pro_upgrade_first_link"> + <a href='https://www.imagely.com/wordpress-gallery-plugin/nextgen-plus/' target='_blank' class="button-primary" id="nextgen_pro_upgrade_first_link"> NextGEN Plus (Displays Only) </a> - <a href='http://www.nextgen-gallery.com/nextgen-pro' target='_blank' class="button-primary"> + <a href='https://www.imagely.com/wordpress-gallery-plugin/nextgen-pro/' target='_blank' class="button-primary"> NextGEN Pro (Displays + Ecommerce) </a> diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/pro.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/pro.php index c2fce1f4e..069e66509 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/pro.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/pro.php @@ -5,7 +5,7 @@ <h2><?php echo $description; ?></h2> - <a href='http://www.nextgen-gallery.com/nextgen-pro' target='_blank' class="button-primary"> + <a href='https://www.imagely.com/wordpress-gallery-plugin/nextgen-pro/' target='_blank' class="button-primary"> Learn More About NextGEN Pro </a> diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_settings/module.nextgen_settings.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_settings/module.nextgen_settings.php index 13edac3b6..4ffbd9786 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_settings/module.nextgen_settings.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_settings/module.nextgen_settings.php @@ -18,9 +18,9 @@ class M_NextGen_Settings extends C_Base_Module 'NextGEN Gallery Settings', 'Provides central management for NextGEN Gallery settings', '0.9', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); C_Photocrati_Installer::add_handler($this->module_id, 'C_NextGen_Settings_Installer'); @@ -112,7 +112,7 @@ class C_NextGen_Settings_Installer 'wmPos' => 'botRight', // Postion 'wmXpos' => 5, // X Pos 'wmYpos' => 5, // Y Pos - 'wmType' => 0, // Type : 'image' / 'text' + 'wmType' => 'image', // Type : 'image' / 'text' 'wmPath' => '', // Path to image 'wmFont' => 'arial.ttf', // Font type 'wmSize' => 10, // Font Size diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_xmlrpc/module.nextgen_xmlrpc.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_xmlrpc/module.nextgen_xmlrpc.php index 817a39b16..038f9b0fc 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_xmlrpc/module.nextgen_xmlrpc.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_xmlrpc/module.nextgen_xmlrpc.php @@ -14,9 +14,9 @@ class M_NextGen_XmlRpc extends C_Base_Module 'NextGEN Gallery XML-RPC', 'Provides an XML-RPC API for NextGEN Gallery', '0.4', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/admin.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/admin.php index f7bd8cbf1..cae614760 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/admin.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/admin.php @@ -265,7 +265,7 @@ class nggAdminPanel{ // used to retrieve the uri of some module resources $router = C_Router::get_instance(); - wp_register_script('ngg-ajax', NGGALLERY_URLPATH . 'admin/js/ngg.ajax.js', array('jquery'), '1.4.1'); + wp_register_script('ngg-ajax', NGGALLERY_URLPATH . 'admin/js/ngg.ajax.js', array('jquery'), NGG_SCRIPT_VERSION); wp_localize_script('ngg-ajax', 'nggAjaxSetup', array( 'url' => admin_url('admin-ajax.php'), 'action' => 'ngg_ajax_operation', @@ -276,7 +276,7 @@ class nggAdminPanel{ 'error' => __('Unexpected Error', 'nggallery'), 'failure' => __('A failure occurred', 'nggallery') ) ); - wp_register_script('ngg-progressbar', NGGALLERY_URLPATH .'admin/js/ngg.progressbar.js', array('jquery'), '2.0.1'); + wp_register_script('ngg-progressbar', NGGALLERY_URLPATH .'admin/js/ngg.progressbar.js', array('jquery'), NGG_SCRIPT_VERSION); // Enqueue the new Gritter-based progress bars wp_enqueue_style('ngg_progressbar'); @@ -293,7 +293,7 @@ class nggAdminPanel{ wp_enqueue_script( 'ngg-progressbar' ); wp_enqueue_script( 'jquery-ui-dialog' ); wp_enqueue_script( 'jquery-ui-sortable' ); - wp_register_script('shutter', $router->get_static_url('photocrati-lightbox#shutter/shutter.js'), false ,'1.3.2'); + wp_register_script('shutter', $router->get_static_url('photocrati-lightbox#shutter/shutter.js'), false, NGG_SCRIPT_VERSION); wp_localize_script('shutter', 'shutterSettings', array( 'msgLoading' => __('L O A D I N G', 'nggallery'), 'msgClose' => __('Click to Close', 'nggallery'), @@ -302,13 +302,13 @@ class nggAdminPanel{ wp_enqueue_script( 'shutter' ); // includes tooltip styling - wp_enqueue_style('nextgen_admin_page', $router->get_static_url('photocrati-nextgen_admin#nextgen_admin_page.css')); + wp_enqueue_style('nextgen_admin_page', $router->get_static_url('photocrati-nextgen_admin#nextgen_admin_page.css'), FALSE, NGG_SCRIPT_VERSION); break; case "nggallery-manage-album" : wp_enqueue_script( 'jquery-ui-dialog' ); wp_enqueue_script( 'jquery-ui-sortable' ); - wp_enqueue_script( 'select2' ); - wp_enqueue_style('select2'); + wp_enqueue_script( 'ngg_select2' ); + wp_enqueue_style('ngg_select2'); break; } } @@ -329,9 +329,9 @@ class nggAdminPanel{ global $ngg; // load the icon for the navigation menu - wp_enqueue_style( 'nggmenu', NGGALLERY_URLPATH .'admin/css/menu.css', array() ); - wp_register_style( 'nggadmin', NGGALLERY_URLPATH .'admin/css/nggadmin.css', false, '2.8.1', 'screen' ); - wp_register_style( 'ngg-jqueryui', NGGALLERY_URLPATH .'admin/css/jquery.ui.css', false, '1.8.5', 'screen' ); + wp_enqueue_style( 'nggmenu', NGGALLERY_URLPATH .'admin/css/menu.css', false, NGG_SCRIPT_VERSION ); + wp_register_style( 'nggadmin', NGGALLERY_URLPATH .'admin/css/nggadmin.css', false, NGG_SCRIPT_VERSION, 'screen' ); + wp_register_style( 'ngg-jqueryui', NGGALLERY_URLPATH .'admin/css/jquery.ui.css', false, NGG_SCRIPT_VERSION, 'screen' ); // no need to go on if it's not a plugin page if( !isset($_GET['page']) ) @@ -351,14 +351,14 @@ class nggAdminPanel{ break; case "nggallery-manage-gallery" : wp_enqueue_script('jquery-ui-tooltip'); - wp_enqueue_style('shutter', $router->get_static_url('photocrati-lightbox#shutter/shutter.css'), false, '1.3.2', 'screen'); + wp_enqueue_style('shutter', $router->get_static_url('photocrati-lightbox#shutter/shutter.css'), false, NGG_SCRIPT_VERSION, 'screen'); case "nggallery-roles" : case "nggallery-manage-album" : $this->enqueue_jquery_ui_theme(); wp_enqueue_style( 'nggadmin' ); break; case "nggallery-tags" : - wp_enqueue_style( 'nggtags', NGGALLERY_URLPATH .'admin/css/tags-admin.css', false, '2.6.1', 'screen' ); + wp_enqueue_style( 'nggtags', NGGALLERY_URLPATH .'admin/css/tags-admin.css', false, NGG_SCRIPT_VERSION, 'screen' ); break; } } @@ -375,10 +375,10 @@ class nggAdminPanel{ switch ($screen) { case 'toplevel_page_' . NGGFOLDER : - $link = __('<a href="http://www.nextgen-gallery.com" target="_blank">Introduction</a>', 'nggallery'); + $link = __('<a href="https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/" target="_blank">Introduction</a>', 'nggallery'); break; case "{$i18n}_page_nggallery-about" : - $link = __('<a href="http://www.nextgen-gallery.com/languages" target="_blank">Languages</a>', 'nggallery'); + $link = __('<a href="https://www.imagely.com/languages/" target="_blank">Languages</a>', 'nggallery'); break; } @@ -392,7 +392,7 @@ class nggAdminPanel{ $help .= __('<a href="http://wordpress.org/tags/nextgen-gallery?forum_id=10" target="_blank">Support Forums</a>', 'nggallery'); $help .= ' | <a href="http://www.nextgen-gallery.com/faq/" target="_blank">' . __('FAQ', 'nggallery') . '</a>'; $help .= ' | <a href="https://bitbucket.org/photocrati/nextgen-gallery/issues" target="_blank">' . __('Feature request', 'nggallery') . '</a>'; - $help .= ' | <a href="http://www.nextgen-gallery.com/languages" target="_blank">' . __('Get your language pack', 'nggallery') . '</a>'; + $help .= ' | <a href="https://www.imagely.com/languages/" target="_blank">' . __('Get your language pack', 'nggallery') . '</a>'; $help .= ' | <a href="https://bitbucket.org/photocrati/nextgen-gallery" target="_blank">' . __('Contribute development', 'nggallery') . '</a>'; $help .= ' | <a href="http://wordpress.org/extend/plugins/nextgen-gallery" target="_blank">' . __('Download latest version', 'nggallery') . '</a>'; $help .= "</div>\n"; diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/ajax.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/ajax.php index f311f8243..84e98357d 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/ajax.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/ajax.php @@ -11,8 +11,6 @@ add_action('wp_ajax_ngg_ajax_operation', 'ngg_ajax_operation' ); */ function ngg_ajax_operation() { - global $wpdb; - // if nonce is not correct it returns -1 check_ajax_referer( "ngg-ajax" ); @@ -77,8 +75,6 @@ add_action('wp_ajax_createNewThumb', 'createNewThumb'); function createNewThumb() { - global $ngg; - // check for correct capability if ( !is_user_logged_in() ) die('-1'); @@ -87,8 +83,7 @@ function createNewThumb() { if ( !current_user_can('NextGEN Manage gallery') ) die('-1'); - $id = (int) $_POST['id']; - $picture = nggdb::find_image( $id ); + $id = (int) $_POST['id']; $x = round( $_POST['x'] * $_POST['rr'], 0); $y = round( $_POST['y'] * $_POST['rr'], 0); @@ -96,8 +91,7 @@ function createNewThumb() { $h = round( $_POST['h'] * $_POST['rr'], 0); $crop_frame = array('x' => $x, 'y' => $y, 'width' => $w, 'height' => $h); - $registry = C_Component_Registry::get_instance(); - $storage = C_Gallery_Storage::get_instance(); + $storage = C_Gallery_Storage::get_instance(); // XXX NextGEN Legacy wasn't handling watermarks or reflections at this stage, so we're forcefully disabling them to maintain compatibility $params = array('watermark' => false, 'reflection' => false, 'crop' => true, 'crop_frame' => $crop_frame); @@ -130,8 +124,6 @@ function ngg_rotateImage() { // include the ngg function include_once (dirname (__FILE__). '/functions.php'); - $ngg_options = get_option('ngg_options'); - $id = (int) $_POST['id']; $result = '-1'; @@ -160,7 +152,6 @@ function ngg_rotateImage() { header('HTTP/1.1 500 Internal Server Error'); die( $result ); - } add_action('wp_ajax_ngg_dashboard', 'ngg_ajax_dashboard'); @@ -178,150 +169,10 @@ function ngg_ajax_dashboard() { switch ( $_GET['jax'] ) { - case 'ngg_lastdonators' : - ngg_overview_donators(); - break; - case 'dashboard_primary' : ngg_overview_news(); break; - - case 'dashboard_plugins' : - ngg_related_plugins(); - break; - } - die(); -} - -add_action( 'wp_ajax_ngg_rebuild_unique_slugs', 'ngg_ajax_rebuild_unique_slugs' ); -/** - * This rebuild the slugs for albums, galleries and images as ajax routine, max 50 elements per request - * - * @since 1.7.0 - * @return string '1' - */ -function ngg_ajax_rebuild_unique_slugs() { - global $wpdb; - - // check for correct NextGEN capability - if ( !current_user_can('NextGEN Change options') ) - die('No access'); - - $action = $_POST['_action']; - $offset = (int) $_POST['offset']; - - switch ($action) { - case 'images': - $images = $wpdb->get_results("SELECT * FROM $wpdb->nggpictures ORDER BY pid ASC LIMIT $offset, 50", OBJECT_K); - if ( is_array($images) ) { - foreach ($images as $image) { - //slug must be unique, we use the alttext for that - $image->slug = nggdb::get_unique_slug( sanitize_title( $image->alttext ), 'image', $image->pid ); - $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggpictures SET image_slug= '%s' WHERE pid = '%d'" , $image->slug, $image->pid ) ); - } - } - break; - case 'gallery': - $galleries = $wpdb->get_results("SELECT * FROM $wpdb->nggallery ORDER BY gid ASC LIMIT $offset, 50", OBJECT_K); - if ( is_array($galleries) ) { - foreach ($galleries as $gallery) { - //slug must be unique, we use the title for that - $gallery->slug = nggdb::get_unique_slug( sanitize_title( $gallery->title ), 'gallery', $gallery->gid ); - $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggallery SET slug= '%s' WHERE gid = '%d'" , $gallery->slug, $gallery->gid ) ); - } - } - break; - case 'album': - $albumlist = $wpdb->get_results("SELECT * FROM $wpdb->nggalbum ORDER BY id ASC LIMIT $offset, 50", OBJECT_K); - if ( is_array($albumlist) ) { - foreach ($albumlist as $album) { - //slug must be unique, we use the name for that - $album->slug = nggdb::get_unique_slug( sanitize_title( $album->name ), 'album', $album->id ); - $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggalbum SET slug= '%s' WHERE id = '%d'" , $album->slug, $album->id ) ); - } - } - break; - } - - die(1); -} -add_action('wp_ajax_ngg_image_check', 'ngg_ajax_image_check'); -/** - * Test for various image resolution - * - * @since 1.7.3 - * @return result - */ -function ngg_ajax_image_check() { - - // check for correct NextGEN capability - if ( !current_user_can('NextGEN Upload images') ) - die('No access'); - - if ( !defined('ABSPATH') ) - die('No access'); - - $step = (int) $_POST['step']; - - // build the test sizes - $sizes = array(); - $sizes[1] = array ( 'width' => 800, 'height' => 600); - $sizes[2] = array ( 'width' => 1024, 'height' => 768); - $sizes[3] = array ( 'width' => 1280, 'height' => 960); // 1MP - $sizes[4] = array ( 'width' => 1600, 'height' => 1200); // 2MP - $sizes[5] = array ( 'width' => 2016, 'height' => 1512); // 3MP - $sizes[6] = array ( 'width' => 2272, 'height' => 1704); // 4MP - $sizes[7] = array ( 'width' => 2560, 'height' => 1920); // 5MP - $sizes[8] = array ( 'width' => 2848, 'height' => 2136); // 6MP - $sizes[9] = array ( 'width' => 3072, 'height' => 2304); // 7MP - $sizes[10] = array ( 'width' => 3264, 'height' => 2448); // 8MP - $sizes[11] = array ( 'width' => 4048, 'height' => 3040); // 12MP - - if ( $step < 1 || $step > 11 ) - die('No vaild value'); - - // let's test each image size - $temp = imagecreatetruecolor ($sizes[$step]['width'], $sizes[$step]['height'] ); - imagedestroy ($temp); - - $result = array ('stat' => 'ok', 'message' => sprintf(__('Could create image with %s x %s pixel', 'nggallery'), $sizes[$step]['width'], $sizes[$step]['height'] ) ); - - header('Content-Type: application/json; charset=' . get_option('blog_charset'), true); - echo json_encode($result); die(); } - -add_action('wp_ajax_ngg_test_head_footer', 'ngg_ajax_test_head_footer'); -/** - * Check for the header / footer, parts taken from Matt Martz (http://sivel.net/) - * - * @see https://gist.github.com/378450 - * @since 1.7.3 - * @return result - */ -function ngg_ajax_test_head_footer() { - - // Build the url to call, NOTE: uses home_url and thus requires WordPress 3.0 - $url = add_query_arg( array( 'test-head' => '', 'test-footer' => '' ), home_url() ); - // Perform the HTTP GET ignoring SSL errors - $response = wp_remote_get( $url, array( 'sslverify' => false ) ); - // Grab the response code and make sure the request was sucessful - $code = (int) wp_remote_retrieve_response_code( $response ); - if ( $code == 200 ) { - global $head_footer_errors; - $head_footer_errors = array(); - - // Strip all tabs, line feeds, carriage returns and spaces - $html = preg_replace( '/[\t\r\n\s]/', '', wp_remote_retrieve_body( $response ) ); - - // Check to see if we found the existence of wp_head - if ( ! strstr( $html, '<!--wp_head-->' ) ) - die('Missing the call to wp_head() in your theme, contact the theme author'); - // Check to see if we found the existence of wp_footer - if ( ! strstr( $html, '<!--wp_footer-->' ) ) - die('Missing the call to wp_footer() in your theme, contact the theme author'); - } - die('success'); -} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/album.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/album.php index 2aec6ccf3..7948ff4dc 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/album.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/album.php @@ -459,7 +459,7 @@ function showDialog() { <?php if ($album && $this->currentID){ ?> <input class="button-primary" type="submit" name="update" value="<?php esc_attr_e('Update', 'nggallery'); ?>"/> <?php if(nggGallery::current_user_can( 'NextGEN Edit album settings' )) { ?> - <input class="button-secondary" type="submit" name="showThickbox" value="<?php esc_attr_e( 'Edit album', 'nggallery'); ?>" onclick="showDialog(); return false;" /> + <input class="button-secondary" type="submit" name="showThickbox" value="<?php esc_attr_e( 'Edit Album', 'nggallery'); ?>" onclick="showDialog(); return false;" /> <?php } ?> <?php if(nggGallery::current_user_can( 'NextGEN Add/Delete album' )) { ?> <input class="button-secondary action "type="submit" name="delete" value="<?php esc_attr_e('Delete', 'nggallery'); ?>" onclick="javascript:check=confirm('<?php echo esc_js('Delete album ?','nggallery'); ?>');if(check==false) return false;"/> diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/functions.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/functions.php index ff20a82d1..0ee22f7f2 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/functions.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/functions.php @@ -28,7 +28,7 @@ class nggAdmin{ $storage = C_Gallery_Storage::get_instance(); // get the current user ID - get_currentuserinfo(); + wp_get_current_user(); //cleanup pathname $name = sanitize_file_name( sanitize_title($title) ); @@ -581,7 +581,7 @@ class nggAdmin{ global $wpdb, $user_ID; // get the current user ID - get_currentuserinfo(); + wp_get_current_user(); $created_msg = ''; @@ -690,7 +690,7 @@ class nggAdmin{ if ( !current_user_can('NextGEN Manage others gallery') ) { // get the current user ID - get_currentuserinfo(); + wp_get_current_user(); if ( $user_ID != $check_ID) return false; diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/install.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/install.php index 6b9050511..eb7e4adb2 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/install.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/install.php @@ -110,9 +110,9 @@ function ngg_remove_capability($capability){ $check_order = array("subscriber", "contributor", "author", "editor", "administrator"); foreach ($check_order as $role) { - $role = get_role($role); - $role->remove_cap($capability) ; + if (!is_null($role)) + $role->remove_cap($capability) ; } } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php index 1b586f1a2..1bd18fa38 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/manage-galleries.php @@ -14,7 +14,7 @@ function nggallery_manage_gallery_main() { $start = ( $_GET['paged'] - 1 ) * $items_per_page; - if (!empty($_GET['order']) && in_array($_GET['order'], array('DESC', 'ASC'))) + if (!empty($_GET['order']) && in_array(strtoupper($_GET['order']), array('DESC', 'ASC'))) $order = $_GET['order']; else $order = apply_filters('ngg_manage_galleries_items_order', 'ASC'); @@ -180,7 +180,7 @@ function nggallery_manage_gallery_main() { <input type="submit" value="<?php _e( 'Search Images', 'nggallery' ); ?>" class="button" /> </p> </form> - <form id="editgalleries" class="nggform" method="POST" action="<?php echo $ngg->manage_page->base_page . '&paged=' . esc_attr($_GET['paged']); ?>" accept-charset="utf-8"> + <form id="editgalleries" class="nggform" method="POST" action="<?php echo nextgen_esc_url($ngg->manage_page->base_page . '&orderby=' . $orderby . '&order=' . $order . '&paged=' . $_GET['paged']); ?>" accept-charset="utf-8"> <?php wp_nonce_field('ngg_bulkgallery') ?> <input type="hidden" name="page" value="manage-galleries" /> @@ -452,7 +452,7 @@ class _NGG_Galleries_List_Table extends WP_List_Table { $sortable[$id] = $data; } - return array( $columns, $hidden, $sortable ); + return array( $columns, $hidden, $sortable, null ); } // define the columns to display, the syntax is 'internal name' => 'display name' diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php index ade592ac5..2947798b0 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/manage-images.php @@ -187,6 +187,14 @@ jQuery(function (){ //prevent the browser to follow the link return false; }); + + // If too many of these are generated the cookie becomes so large servers will reject HTTP requests + // Wait some time for other listeners to catch this event and then purge it from the browser + Frame_Event_Publisher.listen_for('attach_to_post:thumbnail_modified', function(data) { + setTimeout(function() { + Frame_Event_Publisher.delete_cookie("X-Frame-Events_" + data.id); + }, 400); + }); }); function checkAll(form) @@ -281,7 +289,10 @@ jQuery(document).ready( function($) { jQuery('.iedit').mouseover( function(e){ jQuery(this).parent().find('.row-actions').css('visibility', 'hidden'); - jQuery(this).next('.row_actions:first').find('.row-actions:first').css('visibility', 'visible'); + jQuery(this).next('.row_actions:first').find('.row-actions:first').css({ + 'visibility': 'visible', + 'left': 0 // WP 4.4 compatibility; it assigns left:-9999em by default to row-actions + }); } ); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/manage.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/manage.php index 30e6e4945..e683e9d5b 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/manage.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/manage.php @@ -77,13 +77,13 @@ class nggManageGallery { check_admin_referer('ngg_delpicture'); $image = $nggdb->find_image( $this->pid ); if ($image) { + do_action('ngg_delete_picture', $this->pid, $image); if ($ngg->options['deleteImg']) { $storage = $storage = C_Gallery_Storage::get_instance(); $storage->delete_image($this->pid); } $mapper = C_Image_Mapper::get_instance(); $result = $mapper->destroy($this->pid); - do_action('ngg_delete_picture', $this->pid); if ($result) nggGallery::show_message( __('Picture','nggallery').' \''.$this->pid.'\' '.__('deleted successfully','nggallery') ); @@ -581,8 +581,16 @@ class nggManageGallery { $deleted = FALSE; $mapper = C_Gallery_Mapper::get_instance(); foreach ($_POST['doaction'] as $id) { - if ($mapper->destroy($id, TRUE)) - $deleted = TRUE; + + $gallery = $mapper->find($id); + if ($gallery->path == '../' || FALSE !== strpos($gallery->path, '/../')) + { + nggGallery::show_message(sprintf(__('One or more "../" in Gallery paths could be unsafe and NextGen Gallery will not delete gallery %s automatically', 'nggallery'), $gallery->{$gallery->id_field})); + } + else { + if ($mapper->destroy($id, TRUE)) + $deleted = TRUE; + } } if ($deleted) @@ -672,11 +680,11 @@ class nggManageGallery { foreach ( $_POST['doaction'] as $imageID ) { $image = $nggdb->find_image( $imageID ); if ($image) { + do_action('ngg_delete_picture', $image->pid, $image); if ($ngg->options['deleteImg']) { $storage = C_Gallery_Storage::get_instance(); $storage->delete_image($image->pid); } - do_action('ngg_delete_picture', $image->pid); $delete_pic = C_Image_Mapper::get_instance()->destroy($image->pid); } } @@ -787,7 +795,7 @@ class nggManageGallery { check_admin_referer('ngg_updategallery'); if ( nggGallery::current_user_can( 'NextGEN Edit gallery options' ) && !isset ($_GET['s']) ) { - $tags = array('<a>', '<abbr>', '<acronym>', '<address>', '<b>', '<base>', '<basefont>', '<big>', '<blockquote>', '<br>', '<br/>', '<caption>', '<center>', '<cite>', '<code>', '<col>', '<colgroup>', '<dd>', '<del>', '<dfn>', '<dir>', '<div>', '<dl>', '<dt>', '<em>', '<fieldset>', '<font>', '<h1>', '<h2>', '<h3>', '<h4>', '<h5>', '<h6>', '<hr>', '<i>', '<img>', '<ins>', '<label>', '<legend>', '<li>', '<menu>', '<noframes>', '<noscript>', '<ol>', '<optgroup>', '<option>', '<p>', '<pre>', '<q>', '<s>', '<samp>', '<select>', '<small>', '<span>', '<strike>', '<strong>', '<sub>', '<sup>', '<table>', '<tbody>', '<td>', '<tfoot>', '<th>', '<thead>', '<tr>', '<tt>', '<u>', '<ul>'); + $tags = array('<a>', '<abbr>', '<acronym>', '<address>', '<b>', '<base>', '<basefont>', '<big>', '<blockquote>', '<br>', '<br/>', '<caption>', '<center>', '<cite>', '<code>', '<col>', '<colgroup>', '<dd>', '<del>', '<dfn>', '<dir>', '<div>', '<dl>', '<dt>', '<em>', '<fieldset>', '<font>', '<h1>', '<h2>', '<h3>', '<h4>', '<h5>', '<h6>', '<hr>', '<i>', '<img>', '<ins>', '<label>', '<legend>', '<li>', '<menu>', '<noframes>', '<noscript>', '<ol>', '<optgroup>', '<option>', '<p>', '<pre>', '<q>', '<s>', '<samp>', '<select>', '<small>', '<span>', '<strike>', '<strong>', '<sub>', '<sup>', '<table>', '<tbody>', '<td>', '<tfoot>', '<th>', '<thead>', '<tr>', '<tt>', '<u>', '<ul>'); $fields = array('title', 'galdesc'); // Sanitize fields @@ -808,6 +816,9 @@ class nggManageGallery { $mapper->save($entity); } + if ($entity->path == '../' || FALSE !== strpos($entity->path, '/../')) + nggGallery::show_message(sprintf(__('One or more "../" in Gallery paths could be unsafe and NextGen Gallery will not delete this gallery automatically', 'nggallery'), $entity->{$entity->id_field})); + wp_cache_delete($this->gid, 'ngg_gallery'); } @@ -917,7 +928,7 @@ class nggManageGallery { { $updated = 0; - if (!$this->can_user_manage_gallery()) $updated; + if (!$this->can_user_manage_gallery()) return $updated; if (isset($_POST['images']) && is_array($_POST['images'])) { $image_mapper = C_Image_Mapper::get_instance(); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/overview.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/overview.php index e43394d29..121331e1d 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/overview.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/admin/overview.php @@ -1,5 +1,6 @@ <?php -if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); } + +if (preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); } /** * nggallery_admin_overview() @@ -7,12 +8,12 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You * Add the admin overview the dashboard style * @return mixed content */ -function nggallery_admin_overview() { +function nggallery_admin_overview() +{ ?> <div class="wrap ngg-wrap"> - <?php screen_icon( 'nextgen-gallery' ); ?> - <h2><?php _e('NextGEN Gallery Overview', 'nggallery') ?></h2> - <?php if (version_compare(PHP_VERSION, '5.0.0', '<')) ngg_check_for_PHP5(); ?> + <?php screen_icon('nextgen-gallery'); ?> + <h2><?php _e('NextGEN Gallery Overview', 'nggallery'); ?></h2> <div id="dashboard-widgets-container" class="ngg-overview"> <div id="dashboard-widgets" class="metabox-holder"> <div id="post-body"> @@ -29,471 +30,326 @@ function nggallery_admin_overview() { </div> </div> <script type="text/javascript"> - //<![CDATA[ - var ajaxWidgets, ajaxPopulateWidgets; - - jQuery(document).ready( function($) { - // These widgets are sometimes populated via ajax - ajaxWidgets = [ - 'dashboard_primary', - 'dashboard_plugins' - ]; - - ajaxPopulateWidgets = function(el) { - show = function(id, i) { - var p, e = $('#' + id + ' div.inside:visible').find('.widget-loading'); - if ( e.length ) { - p = e.parent(); - setTimeout( function(){ - p.load('admin-ajax.php?action=ngg_dashboard&jax=' + id, '', function() { - p.hide().slideDown('normal', function(){ - $(this).css('display', ''); - if ( 'dashboard_plugins' == id && $.isFunction(tb_init) ) - tb_init('#dashboard_plugins a.thickbox'); - }); - }); - }, i * 500 ); - } - }; - if ( el ) { - el = el.toString(); - if ( $.inArray(el, ajaxWidgets) != -1 ) - show(el, 0); - } else { - $.each( ajaxWidgets, function(i) { - show(this, i); - }); - } - }; - ajaxPopulateWidgets(); - } ); - - jQuery(document).ready( function($) { - // postboxes setup + jQuery(document).ready(function($) { postboxes.add_postbox_toggles('ngg-overview'); }); - //]]> </script> <?php } -/** - * Load the meta boxes - * - */ -add_meta_box('dashboard_right_now', __('Welcome to NextGEN Gallery !', 'nggallery'), 'ngg_overview_right_now', 'ngg_overview', 'left', 'core'); -add_meta_box('ngg_meta_box', __('Do you like this Plugin?', 'nggallery'), 'ngg_likeThisMetaBox', 'ngg_overview', 'right', 'core'); -//add_meta_box('dashboard_primary', __('Latest News', 'nggallery'), 'ngg_widget_overview_news', 'ngg_overview', 'left', 'core'); -add_meta_box('ngg_about_meta_box', __('About', 'nggallery'), 'ngg_AboutMetaBox', 'ngg_overview', 'left', 'core'); -//add_meta_box('ngg_lastdonators', __('Recent donators', 'nggallery'), 'ngg_widget_overview_donators', 'ngg_overview', 'right', 'core'); -if ( !is_multisite() || is_super_admin() ) { - add_meta_box('ngg_server', __('Server Settings', 'nggallery'), 'ngg_overview_server', 'ngg_overview', 'right', 'core'); -} - -function ngg_AboutMetaBox() +class C_NGG_Admin_Overview { - ?> - <div id="poststuff"> - <p><?php _e("NextGEN Gallery is one of the most popular WordPress plugins of all time with over 12 million downloads.", 'nggallery'); _e(" It is developed and supported by Photocrati Media. We'd like to offer a special thanks to Alex Rabe, who first developed the plugin and maintained it through 2011.", 'nggallery'); ?></p> - <p><?php _e("<strong>NEED HELP?</strong> If you need help or assistance please visit the <a href='http://wordpress.org/support/plugin/nextgen-gallery'>NextGEN Gallery forums on WordPress.org</a>. Please note that we actively monitor and participate in the forums, but given that NextGEN Gallery is a free product, we don't guarantee replies to support queries.", 'nggallery'); ?></p> - <p><?php _e("<strong>EXTENDING NEXTGEN?</strong> There are many third party plugins that add displays and functionality for NextGEN Gallery. See our <a href='http://www.nextgen-gallery.com/nextgen-gallery-extension-plugins/'>Complete List of NextGEN Extension Plugins</a>.", 'nggallery'); ?></p> - </div> -<?php -} - -function ngg_likeThisMetaBox() { - - echo '<p>'; - echo sprintf(__('This plugin is primarily developed, maintained, supported and documented by <a href="%s" target="_blank">Photocrati Media</a> with a lot of love & effort. Any kind of contribution would be highly appreciated. Thanks!', 'nggallery'), 'http://www.photocrati.com/'); - echo '</p><ul>'; - - $url = 'http://wordpress.org/plugins/nextgen-gallery/' ; - echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/icon-rating.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>"; - _e('Please click "Works" on WordPress.org', 'nggallery'); - echo "</a></li>"; - - $url = 'http://wordpress.org/plugins/nextgen-gallery/' ; - echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/icon-rating.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>"; - _e('Give it a good rating on WordPress.org', 'nggallery'); - echo "</a></li>"; - - $url = 'http://www.nextgen-gallery.com'; - echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/nextgen.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>"; - _e("Visit the plugin homepage", 'nggallery'); - echo "</a></li>"; - - $url = 'http://www.nextgen-gallery.com/languages/'; - echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/icon-translate.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>"; - _e("Help translating it", 'nggallery'); - echo "</a></li>"; - - echo '</ul>'; - - echo ' + public function __construct() + { + /** + * Load the meta boxes + * + */ + add_meta_box( + 'dashboard_right_now', + __('Welcome to NextGEN Gallery !', 'nggallery'), + array($this, 'overview_metabox'), + 'ngg_overview', + 'left', + 'core' + ); + + add_meta_box( + 'ngg_meta_box', + __('Do you like this Plugin?', 'nggallery'), + array($this, 'sharing_metabox'), + 'ngg_overview', + 'right', + 'core' + ); + + add_meta_box( + 'ngg_about_meta_box', + __('About', 'nggallery'), + array($this, 'about_metabox'), + 'ngg_overview', + 'left', + 'core' + ); + + if (!is_multisite() || is_super_admin()) + { + add_meta_box( + 'ngg_server', + __('Server Settings', 'nggallery'), + array($this, 'server_metabox'), + 'ngg_overview', + 'right', + 'core' + ); + } + } + + public function sharing_metabox() + { + echo '<p>'; + echo sprintf(__('This plugin is primarily developed, maintained, supported and documented by <a href="%s" target="_blank">Imagely</a> with a lot of love & effort. Any kind of contribution would be highly appreciated. Thanks!', 'nggallery'), 'https://www.imagely.com/'); + echo '</p><ul>'; + + $url = 'http://wordpress.org/plugins/nextgen-gallery/' ; + echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/icon-rating.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>"; + _e('Please click "Works" on WordPress.org', 'nggallery'); + echo "</a></li>"; + + $url = 'http://wordpress.org/plugins/nextgen-gallery/' ; + echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/icon-rating.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>"; + _e('Give it a good rating on WordPress.org', 'nggallery'); + echo "</a></li>"; + + $url = 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/'; + echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/nextgen.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>"; + _e("Visit the plugin homepage", 'nggallery'); + echo "</a></li>"; + + $url = 'https://www.imagely.com/languages/'; + echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/icon-translate.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>"; + _e("Help translating it", 'nggallery'); + echo "</a></li>"; + + echo '</ul>'; + + echo ' <div class="social" style="text-align:center;margin:15px 0 10px 0;"><span class="social" style="margin-right:5px;"><a target="_blank" href="http://twitter.com/NextGENGallery"><img title="Follow NextGEN on Twitter" alt="Twitter" src="' . NGGALLERY_URLPATH . 'admin/images/twitter.png"></a></span><span class="social" style="margin-right:5px;"><a target="_blank" href="http://www.facebook.com/NextGENGallery"><img title="Like NextGEN on Facebook" alt="Facebook" src="' . NGGALLERY_URLPATH . 'admin/images/facebook.png"></a></span><span class="social"><a target="_blank" href="http://plus.google.com/101643895780935290171"><img title="Add NextGEN to your circles" alt="GooglePlus" src="' . NGGALLERY_URLPATH . 'admin/images/googleplus.png"></a></span></div>'; -} + } -/** - * Show the server settings in a dashboard widget - * - * @return void - */ -function ngg_overview_server() { - ?> - <div id="dashboard_server_settings" class="dashboard-widget-holder wp_dashboard_empty"> - <div class="ngg-dashboard-widget"> - <div class="dashboard-widget-content"> - <ul class="settings"> - <?php ngg_get_serverinfo(); ?> - </ul> - <p><strong><?php _e('Graphic Library', 'nggallery'); ?></strong></p> - <ul class="settings"> - <?php ngg_gd_info(); ?> - </ul> - </div> + /** + * Show a summary of the used images + * + * @return void + */ + public function overview_metabox() + { + global $wpdb; + $images = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggpictures") ); + $galleries = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggallery") ); + $albums = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggalbum") ); + ?> + <style type='text/css'> + #ngg_overview_right_now p { + padding: 0 0 6px 10px; + margin: 0; + } + #ngg_overview_right_now table { + margin-left: 10px; + } + #ngg_overview_right_now td { + padding: 4px; + } + #ngg_overview_right_now td:first-child { + font-size: 16px; + } + </style> + <div class="table table_content" id='ngg_overview_right_now'> + <p><?php _e('At a Glance', 'nggallery'); ?></p> + <table> + <tbody> + <tr class="first"> + <td class="first b"><a href="admin.php?page=ngg_addgallery"><?php echo $images; ?></a></td> + <td class="t"><a href="admin.php?page=ngg_addgallery"><?php echo _n( 'Image', 'Images', $images, 'nggallery' ); ?></a></td> + <td class="b"></td> + <td class="last"></td> + </tr> + <tr> + <td class="first b"><a href="admin.php?page=nggallery-manage-gallery"><?php echo $galleries; ?></a></td> + <td class="t"><a href="admin.php?page=nggallery-manage-gallery"><?php echo _n( 'Gallery', 'Galleries', $galleries, 'nggallery' ); ?></a></td> + <td class="b"></td> + <td class="last"></td> + </tr> + <tr> + <td class="first b"><a href="admin.php?page=nggallery-manage-album"><?php echo $albums; ?></a></td> + <td class="t"><a href="admin.php?page=nggallery-manage-album"><?php echo _n( 'Album', 'Albums', $albums, 'nggallery' ); ?></a></td> + <td class="b"></td> + <td class="last"></td> + </tr> + </tbody> + </table> </div> - </div> -<?php -} - -/** - * Show the most recent donators - * - * @return void - */ -function ngg_widget_overview_donators() { - echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading…' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>'; -} - -function ngg_overview_donators() { - global $ngg; - - $i = 0; - $list = ''; - - $supporter = nggAdminPanel::get_remote_array($ngg->donators); - - // Ensure that this is a array - if ( !is_array($supporter) ) - return _e('Thanks to all donators...', 'nggallery'); - - $supporter = array_reverse($supporter); + <div class="versions" style="padding-top:14px"> + <br class="clear" /> + </div> + <?php + if (is_multisite()) + $this->dashboard_quota(); + } - foreach ($supporter as $name => $url) { - $i++; - if ($url) - $list .= "<li><a href=\"$url\">$name</a></li>\n"; - else - $list .= "<li>$name</li>"; - if ($i > 4) - break; + public function about_metabox() + { + ?> + <div id="poststuff"> + <p><?php _e("NextGEN Gallery is one of the most popular WordPress plugins of all time with over 14 million downloads.", 'nggallery'); _e("It is developed and supported by Imagely. We'd like to offer a special thanks to Alex Rabe, who first developed the plugin and maintained it through 2011.", 'nggallery'); ?></p> + <p><?php _e("<strong>NEED HELP?</strong> If you need help or assistance please visit the <a href='http://wordpress.org/support/plugin/nextgen-gallery'>NextGEN Gallery forums on WordPress.org</a>. Please note that we actively monitor and participate in the forums, but given that NextGEN Gallery is a free product, we don't guarantee replies to support queries.", 'nggallery'); ?></p> + <p><?php _e("<strong>EXTENDING NEXTGEN?</strong> There are many third party plugins that add displays and functionality for NextGEN Gallery. See our <a href='http://www.nextgen-gallery.com/nextgen-gallery-extension-plugins/'>Complete List of NextGEN Extension Plugins</a>.", 'nggallery'); ?></p> + </div> + <?php } - ?> - <div id="dashboard_server_settings" class="dashboard-widget-holder"> - <div class="ngg-dashboard-widget"> - <div class="dashboard-widget-content"> - <ul class="settings"> - <?php echo $list; ?> - </ul> - <p class="textright"> - <a class="button" href="admin.php?page=nggallery-about#donators"><?php _e('View all', 'nggallery'); ?></a> - </p> + /** + * Show the server settings in a dashboard widget + * + * @return void + */ + public function server_metabox() + { + ?> + <div id="dashboard_server_settings" class="dashboard-widget-holder wp_dashboard_empty"> + <div class="ngg-dashboard-widget"> + <div class="dashboard-widget-content"> + <ul class="settings"> + <?php $this->server_info(); ?> + </ul> + <p><strong><?php _e('Graphic Library', 'nggallery'); ?></strong></p> + <ul class="settings"> + <?php $this->gd_info(); ?> + </ul> + </div> </div> </div> - </div> -<?php -} - -/** - * Show the latest NextGEN Gallery news - * - * @return void - */ -function ngg_widget_overview_news() { - echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading…' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>'; -} -function ngg_overview_news(){ - - ?> - <div class="rss-widget"> <?php - $rss = @fetch_feed( 'http://feeds.feedburner.com/nextgen-gallery' ); - - if ( is_object($rss) ) { - - if ( is_wp_error($rss) ) { - echo '<p>' . sprintf(__('Newsfeed could not be loaded. Check the <a href="%s">front page</a> to check for updates.', 'nggallery'), 'http://www.nextgen-gallery.com/') . '</p>'; - return; - } - - echo '<ul>'; - foreach ( $rss->get_items(0, 3) as $item ) { - $link = $item->get_link(); - while ( stristr($link, 'http') != $link ) - $link = substr($link, 1); - $link = nextgen_esc_url(strip_tags($link)); - $title = esc_attr(strip_tags($item->get_title())); - if ( empty($title) ) - $title = __('Untitled'); - - $desc = str_replace( array("\n", "\r"), ' ', esc_attr( strip_tags( @html_entity_decode( $item->get_description(), ENT_QUOTES, get_option('blog_charset') ) ) ) ); - $desc = wp_html_excerpt( $desc, 360 ); - - // Append ellipsis. Change existing [...] to […]. - if ( '[...]' == substr( $desc, -5 ) ) - $desc = substr( $desc, 0, -5 ) . '[…]'; - elseif ( '[…]' != substr( $desc, -10 ) ) - $desc .= ' […]'; - - $desc = esc_html( $desc ); - - $date = $item->get_date(); - $diff = ''; - - if ( $date ) { + } - $diff = human_time_diff( strtotime($date, time()) ); + /** + * Show up some server infor's + * @author GamerZ (http://www.lesterchan.net) + * + * @return void + */ + public function server_info() + { + global $wpdb, $ngg; + // Get MYSQL Version + $sqlversion = $wpdb->get_var("SELECT VERSION() AS version"); + // GET SQL Mode + $mysqlinfo = $wpdb->get_results("SHOW VARIABLES LIKE 'sql_mode'"); + if (is_array($mysqlinfo)) $sql_mode = $mysqlinfo[0]->Value; + if (empty($sql_mode)) $sql_mode = __('Not set', 'nggallery'); + // Get PHP Safe Mode + if(ini_get('safe_mode')) $safe_mode = __('On', 'nggallery'); + else $safe_mode = __('Off', 'nggallery'); + // Get PHP allow_url_fopen + if(ini_get('allow_url_fopen')) $allow_url_fopen = __('On', 'nggallery'); + else $allow_url_fopen = __('Off', 'nggallery'); + // Get PHP Max Upload Size + if (function_exists('wp_max_upload_size')) $upload_max = strval(round( (int) wp_max_upload_size() / (1024 * 1024) )) . 'M'; + else if(ini_get('upload_max_filesize')) $upload_max = ini_get('upload_max_filesize'); + else $upload_max = __('N/A', 'nggallery'); + // Get PHP Output buffer Size + if(ini_get('pcre.backtrack_limit')) $backtrack_limit = ini_get('pcre.backtrack_limit'); + else $backtrack_limit = __('N/A', 'nggallery'); + // Get PHP Max Post Size + if(ini_get('post_max_size')) $post_max = ini_get('post_max_size'); + else $post_max = __('N/A', 'nggallery'); + // Get PHP Max execution time + if(ini_get('max_execution_time')) $max_execute = ini_get('max_execution_time'); + else $max_execute = __('N/A', 'nggallery'); + // Get PHP Memory Limit + if(ini_get('memory_limit')) $memory_limit = $ngg->memory_limit; + else $memory_limit = __('N/A', 'nggallery'); + // Get actual memory_get_usage + if (function_exists('memory_get_usage')) $memory_usage = round(memory_get_usage() / 1024 / 1024, 2) . __(' MByte', 'nggallery'); + else $memory_usage = __('N/A', 'nggallery'); + // required for EXIF read + if (is_callable('exif_read_data')) $exif = __('Yes', 'nggallery'). " ( V" . substr(phpversion('exif'),0,4) . ")" ; + else $exif = __('No', 'nggallery'); + // required for meta data + if (is_callable('iptcparse')) $iptc = __('Yes', 'nggallery'); + else $iptc = __('No', 'nggallery'); + // required for meta data + if (is_callable('xml_parser_create')) $xml = __('Yes', 'nggallery'); + else $xml = __('No', 'nggallery'); - if ( $date_stamp = strtotime( $date ) ) - $date = ' <span class="rss-date">' . date_i18n( get_option( 'date_format' ), $date_stamp ) . '</span>'; - else - $date = ''; - } - ?> - <li><a class="rsswidget" title="" target="_blank" href='<?php echo $link; ?>'><?php echo $title; ?></a> - <span class="rss-date"><?php echo $date; ?></span> - <div class="rssSummary"><strong><?php echo $diff; ?></strong> - <?php echo $desc; ?></div></li> - <?php - } - echo '</ul>'; - } ?> - </div> -<?php -} + <li><?php _e('Operating System', 'nggallery'); ?> : <span><?php echo PHP_OS; ?> (<?php echo (PHP_INT_SIZE * 8) ?> Bit)</span></li> + <li><?php _e('Server', 'nggallery'); ?> : <span><?php echo $_SERVER["SERVER_SOFTWARE"]; ?></span></li> + <li><?php _e('Memory usage', 'nggallery'); ?> : <span><?php echo $memory_usage; ?></span></li> + <li><?php _e('MYSQL Version', 'nggallery'); ?> : <span><?php echo $sqlversion; ?></span></li> + <li><?php _e('SQL Mode', 'nggallery'); ?> : <span><?php echo $sql_mode; ?></span></li> + <li><?php _e('PHP Version', 'nggallery'); ?> : <span><?php echo PHP_VERSION; ?></span></li> + <li><?php _e('PHP Safe Mode', 'nggallery'); ?> : <span><?php echo $safe_mode; ?></span></li> + <li><?php _e('PHP Allow URL fopen', 'nggallery'); ?> : <span><?php echo $allow_url_fopen; ?></span></li> + <li><?php _e('PHP Memory Limit', 'nggallery'); ?> : <span><?php echo $memory_limit; ?></span></li> + <li><?php _e('PHP Max Upload Size', 'nggallery'); ?> : <span><?php echo $upload_max; ?></span></li> + <li><?php _e('PHP Max Post Size', 'nggallery'); ?> : <span><?php echo $post_max; ?></span></li> + <li><?php _e('PCRE Backtracking Limit', 'nggallery'); ?> : <span><?php echo $backtrack_limit; ?></span></li> + <li><?php _e('PHP Max Script Execute Time', 'nggallery'); ?> : <span><?php echo $max_execute; ?>s</span></li> + <li><?php _e('PHP Exif support', 'nggallery'); ?> : <span><?php echo $exif; ?></span></li> + <li><?php _e('PHP IPTC support', 'nggallery'); ?> : <span><?php echo $iptc; ?></span></li> + <li><?php _e('PHP XML support', 'nggallery'); ?> : <span><?php echo $xml; ?></span></li> + <?php + } -/** - * Show a summary of the used images - * - * @return void - */ -function ngg_overview_right_now() { - global $wpdb; - $images = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggpictures") ); - $galleries = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggallery") ); - $albums = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggalbum") ); - ?> - <style type='text/css'> - #ngg_overview_right_now p { - padding: 0 0 6px 10px; - margin: 0; - } - #ngg_overview_right_now table { - margin-left: 10px; - } - #ngg_overview_right_now td { - padding: 4px; - } - #ngg_overview_right_now td:first-child { - font-size: 16px; + /** + * Show GD Library version information + * + * @return void + */ + function gd_info() + { + if (function_exists("gd_info")) + { + $info = gd_info(); + $keys = array_keys($info); + for($i=0; $i<count($keys); $i++) { + if(is_bool($info[$keys[$i]])) + echo "<li> " . $keys[$i] ." : <span>" . ($info[$keys[$i]] ? __('Yes', 'nggallery') : __('No', 'nggallery')) . "</span></li>\n"; + else + echo "<li> " . $keys[$i] ." : <span>" . $info[$keys[$i]] . "</span></li>\n"; + } } - </style> - <div class="table table_content" id='ngg_overview_right_now'> - <p><?php _e('At a Glance', 'nggallery'); ?></p> - <table> - <tbody> - <tr class="first"> - <td class="first b"><a href="admin.php?page=ngg_addgallery"><?php echo $images; ?></a></td> - <td class="t"><a href="admin.php?page=ngg_addgallery"><?php echo _n( 'Image', 'Images', $images, 'nggallery' ); ?></a></td> - <td class="b"></td> - <td class="last"></td> - </tr> - <tr> - <td class="first b"><a href="admin.php?page=nggallery-manage-gallery"><?php echo $galleries; ?></a></td> - <td class="t"><a href="admin.php?page=nggallery-manage-gallery"><?php echo _n( 'Gallery', 'Galleries', $galleries, 'nggallery' ); ?></a></td> - <td class="b"></td> - <td class="last"></td> - </tr> - <tr> - <td class="first b"><a href="admin.php?page=nggallery-manage-album"><?php echo $albums; ?></a></td> - <td class="t"><a href="admin.php?page=nggallery-manage-album"><?php echo _n( 'Album', 'Albums', $albums, 'nggallery' ); ?></a></td> - <td class="b"></td> - <td class="last"></td> - </tr> - </tbody> - </table> - </div> - <div class="versions" style="padding-top:14px"> - <br class="clear" /> - </div> - <?php - if ( is_multisite() ) - ngg_dashboard_quota(); -} - -// Display File upload quota on dashboard -function ngg_dashboard_quota() { - - if ( get_site_option( 'upload_space_check_disabled' ) ) - return; - - if ( !wpmu_enable_function('wpmuQuotaCheck') ) - return; - - $settings = C_NextGen_Settings::get_instance(); - $fs = C_Fs::get_instance(); - $dir = $fs->join_paths($fs->get_document_root('content'), $settings->gallerypath); - - $quota = get_space_allowed(); - $used = get_dirsize( $dir ) / 1024 / 1024; - - if ( $used > $quota ) - $percentused = '100'; - else - $percentused = ( $used / $quota ) * 100; - $used_color = ( $percentused < 70 ) ? ( ( $percentused >= 40 ) ? 'waiting' : 'approved' ) : 'spam'; - $used = round( $used, 2 ); - $percentused = number_format( $percentused ); - - ?> - <p class="sub musub" style="position:static" ><?php _e( 'Storage Space' ); ?></p> - <div class="table table_content musubtable"> - <table> - <tr class="first"> - <td class="first b b-posts"><?php printf( __( '<a href="%1$s" title="Manage Uploads" class="musublink">%2$sMB</a>' ), nextgen_esc_url( admin_url( 'admin.php?page=nggallery-manage-gallery' ) ), $quota ); ?></td> - <td class="t posts"><?php _e( 'Space Allowed' ); ?></td> - </tr> - </table> - </div> - <div class="table table_discussion musubtable"> - <table> - <tr class="first"> - <td class="b b-comments"><?php printf( __( '<a href="%1$s" title="Manage Uploads" class="musublink">%2$sMB (%3$s%%)</a>' ), nextgen_esc_url( admin_url( 'admin.php?page=nggallery-manage-gallery' ) ), $used, $percentused ); ?></td> - <td class="last t comments <?php echo $used_color;?>"><?php _e( 'Space Used' );?></td> - </tr> - </table> - </div> - <br class="clear" /> -<?php -} - -/** - * Show GD Library version information - * - * @return void - */ -function ngg_gd_info() { - - if(function_exists("gd_info")){ - $info = gd_info(); - $keys = array_keys($info); - for($i=0; $i<count($keys); $i++) { - if(is_bool($info[$keys[$i]])) - echo "<li> " . $keys[$i] ." : <span>" . ngg_gd_yesNo($info[$keys[$i]]) . "</span></li>\n"; - else - echo "<li> " . $keys[$i] ." : <span>" . $info[$keys[$i]] . "</span></li>\n"; + else { + echo '<h4>'.__('No GD support', 'nggallery').'!</h4>'; } } - else { - echo '<h4>'.__('No GD support', 'nggallery').'!</h4>'; - } -} -/** - * Return localized Yes or no - * - * @param bool $bool - * @return return 'Yes' | 'No' - */ -function ngg_gd_yesNo( $bool ){ - if($bool) - return __('Yes', 'nggallery'); - else - return __('No', 'nggallery'); -} + // Display File upload quota on dashboard + function dashboard_quota() + { + if ( get_site_option( 'upload_space_check_disabled' ) ) + return; + if ( !wpmu_enable_function('wpmuQuotaCheck') ) + return; -/** - * Show up some server infor's - * @author GamerZ (http://www.lesterchan.net) - * - * @return void - */ -function ngg_get_serverinfo() { + $settings = C_NextGen_Settings::get_instance(); + $fs = C_Fs::get_instance(); + $dir = $fs->join_paths($fs->get_document_root('content'), $settings->gallerypath); - global $wpdb, $ngg; - // Get MYSQL Version - $sqlversion = $wpdb->get_var("SELECT VERSION() AS version"); - // GET SQL Mode - $mysqlinfo = $wpdb->get_results("SHOW VARIABLES LIKE 'sql_mode'"); - if (is_array($mysqlinfo)) $sql_mode = $mysqlinfo[0]->Value; - if (empty($sql_mode)) $sql_mode = __('Not set', 'nggallery'); - // Get PHP Safe Mode - if(ini_get('safe_mode')) $safe_mode = __('On', 'nggallery'); - else $safe_mode = __('Off', 'nggallery'); - // Get PHP allow_url_fopen - if(ini_get('allow_url_fopen')) $allow_url_fopen = __('On', 'nggallery'); - else $allow_url_fopen = __('Off', 'nggallery'); - // Get PHP Max Upload Size - if (function_exists('wp_max_upload_size')) $upload_max = strval(round( (int) wp_max_upload_size() / (1024 * 1024) )) . 'M'; - else if(ini_get('upload_max_filesize')) $upload_max = ini_get('upload_max_filesize'); - else $upload_max = __('N/A', 'nggallery'); - // Get PHP Output buffer Size - if(ini_get('pcre.backtrack_limit')) $backtrack_limit = ini_get('pcre.backtrack_limit'); - else $backtrack_limit = __('N/A', 'nggallery'); - // Get PHP Max Post Size - if(ini_get('post_max_size')) $post_max = ini_get('post_max_size'); - else $post_max = __('N/A', 'nggallery'); - // Get PHP Max execution time - if(ini_get('max_execution_time')) $max_execute = ini_get('max_execution_time'); - else $max_execute = __('N/A', 'nggallery'); - // Get PHP Memory Limit - if(ini_get('memory_limit')) $memory_limit = $ngg->memory_limit; - else $memory_limit = __('N/A', 'nggallery'); - // Get actual memory_get_usage - if (function_exists('memory_get_usage')) $memory_usage = round(memory_get_usage() / 1024 / 1024, 2) . __(' MByte', 'nggallery'); - else $memory_usage = __('N/A', 'nggallery'); - // required for EXIF read - if (is_callable('exif_read_data')) $exif = __('Yes', 'nggallery'). " ( V" . substr(phpversion('exif'),0,4) . ")" ; - else $exif = __('No', 'nggallery'); - // required for meta data - if (is_callable('iptcparse')) $iptc = __('Yes', 'nggallery'); - else $iptc = __('No', 'nggallery'); - // required for meta data - if (is_callable('xml_parser_create')) $xml = __('Yes', 'nggallery'); - else $xml = __('No', 'nggallery'); + $quota = get_space_allowed(); + $used = get_dirsize( $dir ) / 1024 / 1024; - ?> - <li><?php _e('Operating System', 'nggallery'); ?> : <span><?php echo PHP_OS; ?> (<?php echo (PHP_INT_SIZE * 8) ?> Bit)</span></li> - <li><?php _e('Server', 'nggallery'); ?> : <span><?php echo $_SERVER["SERVER_SOFTWARE"]; ?></span></li> - <li><?php _e('Memory usage', 'nggallery'); ?> : <span><?php echo $memory_usage; ?></span></li> - <li><?php _e('MYSQL Version', 'nggallery'); ?> : <span><?php echo $sqlversion; ?></span></li> - <li><?php _e('SQL Mode', 'nggallery'); ?> : <span><?php echo $sql_mode; ?></span></li> - <li><?php _e('PHP Version', 'nggallery'); ?> : <span><?php echo PHP_VERSION; ?></span></li> - <li><?php _e('PHP Safe Mode', 'nggallery'); ?> : <span><?php echo $safe_mode; ?></span></li> - <li><?php _e('PHP Allow URL fopen', 'nggallery'); ?> : <span><?php echo $allow_url_fopen; ?></span></li> - <li><?php _e('PHP Memory Limit', 'nggallery'); ?> : <span><?php echo $memory_limit; ?></span></li> - <li><?php _e('PHP Max Upload Size', 'nggallery'); ?> : <span><?php echo $upload_max; ?></span></li> - <li><?php _e('PHP Max Post Size', 'nggallery'); ?> : <span><?php echo $post_max; ?></span></li> - <li><?php _e('PCRE Backtracking Limit', 'nggallery'); ?> : <span><?php echo $backtrack_limit; ?></span></li> - <li><?php _e('PHP Max Script Execute Time', 'nggallery'); ?> : <span><?php echo $max_execute; ?>s</span></li> - <li><?php _e('PHP Exif support', 'nggallery'); ?> : <span><?php echo $exif; ?></span></li> - <li><?php _e('PHP IPTC support', 'nggallery'); ?> : <span><?php echo $iptc; ?></span></li> - <li><?php _e('PHP XML support', 'nggallery'); ?> : <span><?php echo $xml; ?></span></li> -<?php -} + if ( $used > $quota ) + $percentused = '100'; + else + $percentused = ( $used / $quota ) * 100; + $used_color = ( $percentused < 70 ) ? ( ( $percentused >= 40 ) ? 'waiting' : 'approved' ) : 'spam'; + $used = round( $used, 2 ); + $percentused = number_format( $percentused ); -/** - * Inform about the end of PHP4 - * - * @return void - */ -function ngg_check_for_PHP5() { - ?> - <div class="updated"> - <p><?php _e('NextGEN Gallery contains some functions which are only available under PHP 5.2. You are using the old PHP 4 version, upgrade now! It\'s no longer supported by the PHP group. Many shared hosting providers offer both PHP 4 and PHP 5, running simultaneously. Ask your provider if they can do this.', 'nggallery'); ?></p> - </div> -<?php + ?> + <p class="sub musub" style="position:static" ><?php _e( 'Storage Space' ); ?></p> + <div class="table table_content musubtable"> + <table> + <tr class="first"> + <td class="first b b-posts"><?php printf( __( '<a href="%1$s" title="Manage Uploads" class="musublink">%2$sMB</a>' ), nextgen_esc_url( admin_url( 'admin.php?page=nggallery-manage-gallery' ) ), $quota ); ?></td> + <td class="t posts"><?php _e( 'Space Allowed' ); ?></td> + </tr> + </table> + </div> + <div class="table table_discussion musubtable"> + <table> + <tr class="first"> + <td class="b b-comments"><?php printf( __( '<a href="%1$s" title="Manage Uploads" class="musublink">%2$sMB (%3$s%%)</a>' ), nextgen_esc_url( admin_url( 'admin.php?page=nggallery-manage-gallery' ) ), $used, $percentused ); ?></td> + <td class="last t comments <?php echo $used_color;?>"><?php _e( 'Space Used' );?></td> + </tr> + </table> + </div> + <br class="clear" /> + <?php + } } +$NGG_Admin_Overview = new C_NGG_Admin_Overview(); \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/css/nggallery.css b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/css/nggallery.css index 13046decd..84fae55fd 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/css/nggallery.css +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/css/nggallery.css @@ -1,8 +1,8 @@ /* CSS Name: Default Styles Description: NextGEN Default Gallery Stylesheet -Author: Photocrati Media -Version: 2.12 +Author: Imagely +Version: 2.13 This stylesheet is provided to allow users the ability of overriding the default styles for all display types */ \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/media-rss.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/media-rss.php index 3f7c2eb84..59933c93c 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/media-rss.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/media-rss.php @@ -139,7 +139,7 @@ class nggMediaRss { * Get the XML <generator> node */ function get_generator_mrss_node($indent = "\t\t") { - return $indent . "<generator><![CDATA[NextGEN Gallery [http://nextgen-gallery.com]]]></generator>\n"; + return $indent . "<generator><![CDATA[NextGEN Gallery [https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/]]]></generator>\n"; } /** diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/meta.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/meta.php index bac934098..3bcf4e101 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/meta.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/meta.php @@ -157,7 +157,7 @@ class nggMeta{ if (!empty($exif['Make'])) $meta['make'] = $exif['Make']; if (!empty($exif['ImageDescription'])) - $meta['title'] = utf8_encode($exif['ImageDescription']); + $meta['title'] = $exif['ImageDescription']; if (!empty($exif['Orientation'])) $meta['Orientation'] = $exif['Orientation']; } @@ -167,15 +167,15 @@ class nggMeta{ $exif = $this->exif_data['WINXP']; if (!empty($exif['Title']) && empty($meta['title'])) - $meta['title'] = utf8_encode($exif['Title']); + $meta['title'] = $this->utf8_encode($exif['Title']); if (!empty($exif['Author'])) - $meta['author'] = utf8_encode($exif['Author']); + $meta['author'] = $this->utf8_encode($exif['Author']); if (!empty($exif['Keywords'])) - $meta['tags'] = utf8_encode($exif['Keywords']); + $meta['tags'] = $this->utf8_encode($exif['Keywords']); if (!empty($exif['Subject'])) - $meta['subject'] = utf8_encode($exif['Subject']); + $meta['subject'] = $this->utf8_encode($exif['Subject']); if (!empty($exif['Comments'])) - $meta['caption'] = utf8_encode($exif['Comments']); + $meta['caption'] = $this->utf8_encode($exif['Comments']); } $this->exif_array = $meta; @@ -256,7 +256,7 @@ class nggMeta{ $meta = array(); foreach ($iptcTags as $key => $value) { if (isset ( $this->iptc_data[$key] ) ) - $meta[$value] = trim(utf8_encode(implode(", ", $this->iptc_data[$key]))); + $meta[$value] = trim($this->utf8_encode(implode(", ", $this->iptc_data[$key]))); } $this->iptc_array = $meta; @@ -577,4 +577,32 @@ class nggMeta{ function sanitize () { $this->sanitize = true; } + + /** + * Wrapper to utf8_encode() that avoids double encoding + * + * Regex adapted from http://www.w3.org/International/questions/qa-forms-utf-8.en.php + * to determine if the given string is already UTF-8. mb_detect_encoding() is not + * always available and is limited in accuracy + * + * @param string $str + * @return string + */ + function utf8_encode($str) + { + $is_utf8 = preg_match( + '%^(?: + [\x09\x0A\x0D\x20-\x7E] # ASCII + | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte + | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs + | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte + | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates + | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 + | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 + | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 + )*$%xs', $str); + if (!$is_utf8) + utf8_encode($str); + return $str; + } } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/ngg-db.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/ngg-db.php index 296e846d2..ab6d9909b 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/ngg-db.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/ngg-db.php @@ -498,7 +498,7 @@ class nggdb * @param $pids array of picture_ids * @return An array of nggImage objects representing the images */ - function find_images_in_list( $pids, $exclude = false, $order = 'ASC' ) { + static function find_images_in_list( $pids, $exclude = false, $order = 'ASC' ) { global $wpdb; $result = array(); @@ -762,8 +762,9 @@ class nggdb return false; // build the final query - $query = "SELECT t.*, tt.* FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid WHERE 1=1 $search ORDER BY tt.pid ASC $limit_by"; - $result = $wpdb->get_results($query); + $query = "SELECT `tt`.`pid` FROM `{$wpdb->nggallery}` AS `t` INNER JOIN `{$wpdb->nggpictures}` AS `tt` ON `t`.`gid` = `tt`.`galleryid` WHERE 1=1 {$search} ORDER BY `tt`.`pid` ASC {$limit_by}"; + + $result = $wpdb->get_col($query); // TODO: Currently we didn't support a proper pagination $this->paged['total_objects'] = $this->paged['objects_per_page'] = intval ( $wpdb->get_var( "SELECT FOUND_ROWS()" ) ); @@ -771,8 +772,10 @@ class nggdb // Return the object from the query result if ($result) { - foreach ($result as $image) { - $images[] = new nggImage( $image ); + $images = array(); + $mapper = C_Image_Mapper::get_instance(); + foreach ($result as $image_id) { + $images[] = $mapper->find($image_id); } return $images; } @@ -897,9 +900,11 @@ class nggdb $old_values = $serializer->unserialize( $old_values ); $meta = array_merge( (array)$old_values, (array)$new_values ); - $meta = $serializer->serialize($meta); + $serialized_meta = $serializer->serialize($meta); + + $result = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->nggpictures SET meta_data = %s WHERE pid = %d", $serialized_meta, $id) ); - $result = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->nggpictures SET meta_data = %s WHERE pid = %d", $meta, $id) ); + do_action('ngg_updated_image_meta', $id, $meta); wp_cache_delete($id, 'ngg_image'); @@ -946,7 +951,7 @@ class nggdb $query = array(); $query[] = "SELECT {$field}, SUBSTR({$field}, %d) AS 'i' FROM {$table}"; $query[] = "WHERE ({$field} LIKE '{$slug}-%%' AND CONVERT(SUBSTR({$field}, %d), SIGNED) BETWEEN 1 AND %d) OR {$field} = %s"; - $query[] = "ORDER BY i DESC LIMIT 1"; + $query[] = "ORDER BY CAST(i AS SIGNED INTEGER) DESC LIMIT 1"; $query = $wpdb->prepare(implode(" ", $query), strlen("{$slug}-")+1, strlen("{$slug}-")+1, PHP_INT_MAX, $slug); // If the above query returns a result, it means that the slug is already taken diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/shortcodes.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/shortcodes.php index 6ef2a7ad4..524b141cc 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/shortcodes.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/shortcodes.php @@ -21,7 +21,7 @@ class NextGEN_shortcodes { // convert the old shortcode - add_filter('the_content', array(&$this, 'convert_shortcode')); + add_filter('the_content', array('NextGEN_shortcodes', 'convert_shortcode')); // ngglegacy display types use globals. These globals need to be reset // at the start of every loop @@ -42,7 +42,7 @@ class NextGEN_shortcodes { * @param string $content Content to search for shortcodes * @return string Content with new shortcodes. */ - function convert_shortcode($content) { + static function convert_shortcode($content) { $ngg_options = nggGallery::get_option('ngg_options'); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/tags.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/tags.php index 666f6601b..31b1f3d20 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/tags.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/lib/tags.php @@ -324,13 +324,17 @@ class nggTags { $term_ids = $wpdb->get_col( $wpdb->prepare("SELECT term_id FROM $wpdb->terms WHERE slug IN ($sluglist) ORDER BY term_id ASC ", NULL)); $picids = get_objects_in_term($term_ids, 'ngg_tag'); - //Now lookup in the database if ($mode == 'RAND') - $pictures = nggdb::find_images_in_list($picids, true, 'RAND' ); - else - $pictures = nggdb::find_images_in_list($picids, true, 'ASC'); + shuffle($picids); - return $pictures; + // Now lookup in the database + $mapper = C_Image_Mapper::get_instance(); + $images = array(); + foreach ($picids as $image_id) { + $images[] = $mapper->find($image_id); + } + + return $images; } /** diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/module.ngglegacy.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/module.ngglegacy.php index ef82f8ca9..b369b7cc0 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/module.ngglegacy.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/module.ngglegacy.php @@ -23,9 +23,9 @@ class M_NggLegacy extends C_Base_Module 'NextGEN Legacy', 'Embeds the original version of NextGEN 1.9.3 by Alex Rabe', '0.14', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); C_Photocrati_Installer::add_handler($this->module_id, 'C_NggLegacy_Installer'); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/nggallery.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/nggallery.php index 3f625126f..ce5d97d25 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/nggallery.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/nggallery.php @@ -8,7 +8,6 @@ class nggLoader var $version = NGG_PLUGIN_VERSION; var $dbversion = '1.8.1'; var $minimum_WP = '3.6.1'; - var $donators = 'http://www.nextgen-gallery.com/donators.php'; var $options = ''; var $manage_page; var $add_PHP5_notice = false; @@ -21,7 +20,7 @@ class nggLoader return; // Determine plugin basename based on whether NGG is being used in - // it's legacy form, or as a Photocrati Gallery + // it's legacy form, or as a Photocrati-theme Gallery if (defined('NGG_PLUGIN_BASENAME')) $this->plugin_name = NGG_PLUGIN_BASENAME; else $this->plugin_name = basename(dirname(__FILE__)).'/'.basename(__FILE__); @@ -57,7 +56,7 @@ class nggLoader global $nggRewrite; // All credits to the tranlator - $this->translator = '<p class="hint">'. __('<strong>Translation by : </strong><a target="_blank" href="http://www.nextgen-gallery.com/languages/">See here</a>', 'nggallery') . '</p>'; + $this->translator = '<p class="hint">'. __('<strong>Translation by : </strong><a target="_blank" href="https://www.imagely.com/wordpress-gallery-plugin/nextgen-pro/">See here</a>', 'nggallery') . '</p>'; // Content Filters add_filter('ngg_gallery_name', 'sanitize_title'); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/static/default.css b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/static/default.css index ef2ec1782..8f56f1cbe 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/static/default.css +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/static/default.css @@ -1,8 +1,8 @@ /* CSS Name: Default Styles Description: NextGEN Default Gallery Stylesheet -Author: Photocrati Media -Version: 2.12 +Author: Imagely +Version: 2.13 These are the default NextGEN rules and are loaded on each page. */ diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-caption.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-caption.php index 803e27c40..8f1a9bc16 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-caption.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-caption.php @@ -35,3 +35,8 @@ Follow variables are useable : </div> <?php endif; ?> +<script type='text/javascript'> + jQuery(function($) { + new NggPaginatedGallery('<?php echo $displayed_gallery->id() ?>', '.ngg-imagebrowser'); + }); +</script> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-exif.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-exif.php index 216b3c3d1..fbe93c20d 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-exif.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser-exif.php @@ -20,7 +20,7 @@ Please note : A Image resize or watermarking operation will remove all meta info ?> <?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($image)) : ?> -<div class="ngg-imagebrowser" id="<?php echo $image->anchor ?>"> +<div class="ngg-imagebrowser" id="<?php echo $image->anchor ?>" data-nextgen-gallery-id="<?php echo $displayed_gallery->id(); ?>"> <h3><?php echo $image->alttext ?></h3> @@ -65,3 +65,8 @@ Please note : A Image resize or watermarking operation will remove all meta info </div> <?php endif; ?> +<script type='text/javascript'> + jQuery(function($) { + new NggPaginatedGallery('<?php echo $displayed_gallery->id() ?>', '.ngg-imagebrowser'); + }); +</script> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser.php index 379b27a7d..a41547f06 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/imagebrowser.php @@ -16,7 +16,7 @@ Follow variables are useable : ?> <?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($image)) : ?> -<div class="ngg-imagebrowser" id="<?php echo $image->anchor ?>"> +<div class="ngg-imagebrowser" id="<?php echo $image->anchor ?>" data-nextgen-gallery-id="<?php echo $displayed_gallery->id(); ?>"> <h3><?php echo $image->alttext ?></h3> @@ -35,3 +35,8 @@ Follow variables are useable : </div> <?php endif; ?> +<script type='text/javascript'> + jQuery(function($) { + new NggPaginatedGallery('<?php echo $displayed_gallery->id() ?>', '.ngg-imagebrowser'); + }); +</script> \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/singlepic.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/singlepic.php index f00f2b8cd..0d2b9f997 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/singlepic.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/ngglegacy/view/singlepic.php @@ -27,5 +27,5 @@ Please note : A Image resize or watermarking operation will remove all meta info alt="<?php echo esc_attr($image->alttext); ?>" title="<?php echo esc_attr($image->alttext); ?>"/> </a> -<?php if (!empty ($image->caption)) : ?><span><?php echo $image->caption ?></span><?php endif; ?> +<?php if (!empty ($image->description)) : ?><span><?php echo $image->description ?></span><?php endif; ?> <?php endif; ?> diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/router/module.router.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/router/module.router.php index f86e776ea..53862fb65 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/router/module.router.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/router/module.router.php @@ -14,9 +14,9 @@ class M_Router extends C_Base_Module 'Router for Pope', 'Provides routing capabilities for Pope modules', '0.7', - 'http://www.photocrati.com', + 'https://www.imagely.com', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); C_Photocrati_Installer::add_handler($this->module_id, 'C_Router_Installer'); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/router/package.module.router.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/router/package.module.router.php index 4f7bb0df2..ee78d6b38 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/router/package.module.router.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/router/package.module.router.php @@ -286,7 +286,7 @@ class C_Router extends C_Component public function initialize() { parent::initialize(); - $this->_request_method = $_SERVER['REQUEST_METHOD']; + $this->_request_method = !empty($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : null; } static function &get_instance($context = False) { @@ -340,11 +340,11 @@ class Mixin_Routing_App extends Mixin $patterns = $this->object->_rewrite_patterns; // Assign rewrite definition $definition = array('dst' => $dst, 'redirect' => $redirect, 'stop' => $stop); - // We treat wildcards much differently then normal rewrites + // We treat wildcards much differently than normal rewrites if (preg_match('/\\{[\\.\\\\*]/', $src)) { $pattern = str_replace('{*}', '(.*?)', $src); $pattern = str_replace('{.*}', '(.*?)', $pattern); - $pattern = str_replace('{\\w}', '([\\w-_]*)', $pattern); + $pattern = str_replace('{\\w}', '([^/]*)', $pattern); $pattern = str_replace('{\\d}', '(\\d*)', $pattern); $src = '#' . (strpos($src, '/') === 0 ? '^' : '') . $pattern . '/?$#'; $definition['wildcards'] = TRUE; @@ -446,9 +446,11 @@ class Mixin_Routing_App extends Mixin { $redirect = FALSE; static $stop_processing = FALSE; - // Get the request uri if not provided + // Get the request uri if not provided, if provided decode it if (!$request_uri) { $request_uri = $this->object->get_app_request_uri(); + } else { + $request_uri = urldecode($request_uri); } // ensure that rewrite patterns array exists if (!is_array($this->object->_rewrite_patterns)) { diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/security/module.security.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/security/module.security.php index 5e98e8bb0..8de617bad 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/security/module.security.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/security/module.security.php @@ -15,9 +15,9 @@ class M_Security extends C_Base_Module 'Security', 'Provides utilities to check for credentials and security', '0.2', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); if (isset($GLOBALS['_COOKIE_NG_COPY'])) { diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/simplehtmldom/module.simple_html_dom.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/simplehtmldom/module.simple_html_dom.php index f53b6a38c..476d4b19f 100755 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/simplehtmldom/module.simple_html_dom.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/simplehtmldom/module.simple_html_dom.php @@ -17,9 +17,9 @@ class M_Simple_Html_Dom extends C_Base_Module 'Simple HTML Dom', 'Provides the simple_html_dom utility for other modules to use', '1.5', - 'http://www.photocrati.com', + 'https://www.imagely.com', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/third_party_compat/module.third_party_compat.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/third_party_compat/module.third_party_compat.php index 5bacec08f..9f562ce3c 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/third_party_compat/module.third_party_compat.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/third_party_compat/module.third_party_compat.php @@ -15,9 +15,9 @@ class M_Third_Party_Compat extends C_Base_Module 'Third Party Compatibility', "Adds Third party compatibility hacks, adjustments, and modifications", '0.4', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); // the following constants were renamed for 2.0.41; keep them declared for compatibility sake until diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/validation/module.validation.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/validation/module.validation.php index 0eb133432..5dde561e9 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/validation/module.validation.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/validation/module.validation.php @@ -15,9 +15,9 @@ class M_Validation extends C_Base_Module 'Validation', 'Provides validation support for objects', '0.1', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/widget/module.widget.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/widget/module.widget.php index 77b4cc50e..e3bfd88d1 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/widget/module.widget.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/widget/module.widget.php @@ -16,9 +16,9 @@ class M_Widget extends C_Base_Module 'Widget', 'Handles clearing of NextGen Widgets', '0.5', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/widget/package.module.widget.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/widget/package.module.widget.php index c175be566..059ebbc37 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/widget/package.module.widget.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/widget/package.module.widget.php @@ -110,8 +110,8 @@ class C_Widget_Gallery extends WP_Widget public function widget($args, $instance) { $router = C_Router::get_instance(); - wp_enqueue_style('nextgen_widgets_style', $router->get_static_url('photocrati-widget#widgets.css')); - wp_enqueue_style('nextgen_basic_thumbnails_style', $router->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/nextgen_basic_thumbnails.css')); + wp_enqueue_style('nextgen_widgets_style', $router->get_static_url('photocrati-widget#widgets.css'), FALSE, NGG_SCRIPT_VERSION); + wp_enqueue_style('nextgen_basic_thumbnails_style', $router->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/nextgen_basic_thumbnails.css'), FALSE, NGG_SCRIPT_VERSION); // these are handled by extract() but I want to silence my IDE warnings that these vars don't exist $before_widget = NULL; $before_title = NULL; @@ -250,8 +250,8 @@ class C_Widget_Slideshow extends WP_Widget public function widget($args, $instance) { $router = C_Router::get_instance(); - wp_enqueue_style('nextgen_widgets_style', $router->get_static_url('photocrati-widget#widgets.css')); - wp_enqueue_style('nextgen_basic_slideshow_style', $router->get_static_url('photocrati-nextgen_basic_gallery#slideshow/nextgen_basic_slideshow.css')); + wp_enqueue_style('nextgen_widgets_style', $router->get_static_url('photocrati-widget#widgets.css'), FALSE, NGG_SCRIPT_VERSION); + wp_enqueue_style('nextgen_basic_slideshow_style', $router->get_static_url('photocrati-nextgen_basic_gallery#slideshow/nextgen_basic_slideshow.css'), FALSE, NGG_SCRIPT_VERSION); // these are handled by extract() but I want to silence my IDE warnings that these vars don't exist $before_widget = NULL; $before_title = NULL; diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/wordpress_routing/module.wordpress_routing.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/wordpress_routing/module.wordpress_routing.php index a28d13b72..ab568cef6 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/wordpress_routing/module.wordpress_routing.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/wordpress_routing/module.wordpress_routing.php @@ -18,9 +18,9 @@ class M_WordPress_Routing extends C_Base_Module 'WordPress Routing', "Integrates the MVC module's routing implementation with WordPress", '0.6', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/wpcli/module.wpcli.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/wpcli/module.wpcli.php index 65c1ba2c2..78513049b 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/wpcli/module.wpcli.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/wpcli/module.wpcli.php @@ -14,9 +14,9 @@ class M_WPCLI extends C_Base_Module 'WP-CLI Integration', "Provides additional commands for WP-CLI (https://github.com/wp-cli/wp-cli", '0.1', - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); } diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/product.photocrati_nextgen.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/product.photocrati_nextgen.php index 765d9c837..c4fa752bd 100755 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/product.photocrati_nextgen.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/product.photocrati_nextgen.php @@ -89,12 +89,12 @@ class P_Photocrati_NextGen extends C_Base_Product { parent::define( 'photocrati-nextgen', - 'Photocrati NextGEN', - 'Photocrati NextGEN', + 'NextGen Gallery', + 'NextGen Gallery', NGG_PLUGIN_VERSION, - 'http://www.nextgen-gallery.com', + 'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/', 'Photocrati Media', - 'http://www.photocrati.com' + 'https://www.imagely.com' ); $module_path = implode(DIRECTORY_SEPARATOR, array(dirname(__FILE__), 'modules')); diff --git a/wp-content/plugins/nextgen-gallery/readme.txt b/wp-content/plugins/nextgen-gallery/readme.txt index 5a8fe18a1..309908d5c 100644 --- a/wp-content/plugins/nextgen-gallery/readme.txt +++ b/wp-content/plugins/nextgen-gallery/readme.txt @@ -1,73 +1,66 @@ === NextGEN Gallery === -Contributors: photocrati +Contributors: photocrati, imagely Tags: nextgen, nextgen gallery, gallery, galleries, image, images, image gallery, photo, photos, photo gallery, picture, pictures, picture gallery, album, albums, photo albums, image album, media, media gallery, thumbnails, thumbnail gallery, thumbnail galleries, slideshow, slideshows, slideshow gallery, slideshow galleries, fancybox, lightbox, responsive, responsive gallery, responsive galleries, wordpress responsive gallery, nextcellent, wordpress gallery plugin, wordpress photo gallery plugin, wp gallery, wp gallery plugins, best gallery plugin, free photo gallery, singlepic, image captions imagebrowser, watermarks, watermarking, photography, photographer -Requires at least: 3.6.1 -Stable tag: 2.1.15 -Tested up to: 4.3.0 +Requires at least: 4.0.0 +Stable tag: 2.1.43 +Tested up to: 4.5.2 License: GPLv2 -The most popular WordPress gallery plugin and one of the most popular plugins of all time with over 13 million downloads. +The most popular WordPress gallery plugin and one of the most popular plugins of all time with over 14 million downloads. == Description == = WordPress Gallery Plugin = -NextGEN Gallery is the most popular **WordPress gallery plugin**, and one of the most popular WordPress plugins of all time, with over 13 million downloads. +NextGEN Gallery has been the industry's standard **WordPress gallery plugin** since 2007 and continues to receive over 1.5 million new downloads per year. It's great for general use, but powerful enough for the most demanding photographers, visual artists, and imaging professionals. -It provides a powerful engine for uploading and managing galleries of images, with the ability to batch upload, import meta data, add/delete/rearrange/sort images, edit thumbnails, group galleries into albums, and more. It also provides two front-end display styles (slideshows and thumbnail galleries), both of which come with a wide array of options for controlling size, style, timing, transitions, controls, lightbox effects, and more. +On the back end, NextGEN offers a complete WordPress gallery management system with the ability to batch upload, import meta data, add/delete/rearrange/sort images, edit thumbnails, group galleries into albums, and more. -*The NextGEN Gallery WordPress gallery plugin is now proudly maintained by <a href='http://www.photocrati.com'>Photocrati Media</a>. Special thanks to Alex Rabe who created and maintained NextGEN from 2007 through 2011.* +On the front end, the free version of NextGEN provides two main display styles (slideshows and thumbnail galleries) and two album styles (compact and extended), all of which come with a wide array of options for controlling size, style, timing, transitions, controls, lightbox effects, and more. -**NEXTGEN GALLERY 2.0: MAJOR UPDATE IN JULY 2013.** *We released a major update and overhaul to NextGEN Gallery in July 2013. NextGEN Gallery 2.0 presents a completely reworked interface, both for the central options panel and for adding galleries to pages and posts. It's dramatically more powerful and flexible.* +Learn more about <a href="https://www.imagely.com/wordpress-gallery-plugin/" target="_blank">NextGEN WordPress Gallery Plugin features.</a> -**INTRODUCING NEXTGEN GALLERY PRO.** *Along with NextGEN 2.0, we're happy to announce a "Pro" upgrade to NextGEN. NextGEN Pro offers 6 new gallery displays, including Pro Masonry, Pro Filmstrip, Pro Film, Pro Thumbnail Grid, Pro Slideshow, and Pro Blogstyle galleries. It also includes a responsive, fullscreen, mobile-friendly Pro Lightbox with commenting and social sharing for individual images within galleries. And it includes premium one-on-one email support for both NextGEN Gallery and NextGEN Pro.* +**Demos**<br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/basic-thumbnail-gallery/" target="_blank">Basic Thumbnail Gallery Demo</a><br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/basic-slideshow-gallery/" target="_blank">Basic Slideshow Demo</a><br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/basic-compact-album/" target="_blank">Basic Compact Album</a><br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/basic-extended-album/" target="_blank">Basic List Album</a><br> -**<a href="http://www.nextgen-gallery.com/nextgen-pro">LEARN MORE ABOUT NEXTGEN PRO</a>** +**INTRODUCING NEXTGEN GALLERY PRO.** NextGEN Plus and NextGEN Pro are premium WordPress gallery plugin extensions for NextGEN Gallery that add new gallery displays, lightboxes, ecommerce, proofing, and pro support. Learn more about <a href="https://www.imagely.com/wordpress-gallery-plugin/" target="_blank">NextGEN Plus and NextGEN Pro plugin features.</a> +**Demos**<br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/pro-mosaic-gallery/" target="_blank">Pro Mosaic Gallery</a><br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/pro-masonry-gallery/" target="_blank">Pro Masonry Gallery</a><br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/pro-filmstrip-gallery/" target="_blank">Pro Filmstrip Gallery</a><br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/pro-film-gallery/" target="_blank">Pro Film Gallery</a><br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/pro-slideshow-gallery/" target="_blank">Pro Slideshow Gallery</a><br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/pro-thumbnail-gallery/" target="_blank">Pro Thumbnail Gallery</a><br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/pro-blogstyle-gallery/" target="_blank">Pro Blog Style Gallery</a><br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/pro-grid-album/" target="_blank">Pro Grid Albums</a><br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/pro-list-album/" target="_blank">Pro List Album</a><br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/pro-lightbox-demo/" target="_blank">Pro Lightbox Demo</a> (full screen and responsive with commenting, social sharing, and deep linking for individual images)<br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/pro-proofing-demo/" target="_blank">Pro Proofing Demo</a><br> +*<a href="https://www.imagely.com/wordpress-gallery-plugin/pro-ecommerce-demo/" target="_blank">Pro Ecommerce Demo</a><br> -= NextGEN WordPress Gallery Plugin Features = += About Imagely = +NextGEN Gallery is maintained by Imagely. We're the WordPress photography experts. In addition to NextGEN Gallery, NextGEN Plus, and NextGEN Pro, we also make Genesis WordPress themes for photographers, provide managed WordPress hosting for photographers, and run the WordPress Photography Podcast. -*Upload Galleries* - -* Our WordPress gallery plugin offers diverse and powerful functionality for getting images from your desktop to your website. You can easily upload batches of images via a standard WordPress-style uploader, or upload images via zip file or FTP. NextGEN will automatically import your images meta data. - -*Manage Galleries* - -* Centralized gallery management. Enjoy a single location where you can see and manage all your galleries. -* Edit galleries. Add or exclude images, change gallery title and description, reorder of images, resize thumbnails. -* Thumbnail Management. Turn thumbnail cropping on and off, customize how individual thumbnails are cropped, and bulk resize thumbnails across one or more galleries. -* Edit Individual Images. Edit meta data and image tags, rotate images, and exclude images. -* Watermarks. Quickly add watermarks to batches or galleries of images. -* Albums. Create and organize collections of galleries, and display them in either compact or extended format. - -*Display Galleries* - -* Multiple Gallery Types. Choose between two main display styles: Slideshow and Thumbnail, and allow visitors to toggle between the two. Or display Imagebrowser galleries and Singlepics. -* Slideshow Galleries. Choose from a vast array of options for slideshows, including slideshow size, transition style, speed, image order, and optional navigation bar. -* Thumbnail Galleries. Choose from a wide range of options to customize thumbnail galleries, including 5 different lightboxes for individual images, optional thumbnail cropping and editing, thumbnail styles, captions, and more. -* Single Image Displays. Display and format single images. -* Work with Options Panel or Shortcodes. - -= NextGEN WordPress Gallery Plugin Community & Extensions = - -NextGEN has been the dominant WordPress gallery plugin for years. As a result, there is large and great community of users and developers, as well as a large number of dedicated extension plugins. For a list of extension plugins, just search for NextGEN in the WordPress.org plugin repository, or visit our <a href="http://www.nextgen-gallery.com/nextgen-gallery-extension-plugins/">Complete List of NextGEN Extension Plugins</a>. - -= NextGEN WordPress Gallery Plugin Resources = - -*Visit the NextGEN <a href="http://www.nextgen-gallery.com" target="_blank">WordPress Gallery Plugin</a> official homepage<br> -*Visit the <a href="http://www.nextgen-gallery.com/nextgen-pro" target="_blank">NextGEN Pro official landing page</a><br> -*See <a href="http://www.nextgen-gallery.com/help/" target="_blank">NextGEN Gallery Documentation</a><br> -*Get <a href="http://wordpress.org/tags/nextgen-gallery?forum_id=10" target="_blank">NextGEN Support</a> via the WordPress.org forums<br> -*Get <a href="http://www.nextgen-gallery.com/languages/" target="_blank">Translations</a> for your own language<br> -*See <a href="http://www.photocrati.com/wordpress-photography-themes" target="_blank">WordPress Photography Themes</a> by the same author<br> -*Follow NextGEN Gallery on <a title="Follow NextGEN Gallery on Facebook" href="http://www.facebook.com/NextGENGallery" target="_blank">Facebook</a>, <a title="Follow NextGEN Gallery on Twitter" href="http://twitter.com/NextGENGallery" target="_blank">Twitter</a>, and <a title="Follow NextGEN Gallery on Google +" href="http://plus.google.com/101643895780935290171" target="_blank">Google +</a><br> - +Learn more or connect with us:<br> +*<a href="https://www.imagely.com/" target="_blank">Imagely Website</a><br> +*<a href="https://www.imagely.com/wordpress-photography-themes/" target="_blank">Genesis WordPress Themes for Photographers</a><br> +*<a href="https://www.imagely.com/hosting/" target="_blank">Managed WordPress Hosting for Photographers</a><br> +*<a href="https://www.imagely.com/podcast/" target="_blank">The WordPress Photography Podcast</a><br> +*<a href="https://www.imagely.com/docs/nextgen-gallery/" target="_blank">NextGEN Gallery Documentation</a><br> +*<a href="https://twitter.com/imagely" target="_blank">Imagely on Twitter</a><br> +*<a href="https://facebook.com/getimagely" target="_blank">Imagely on Facebook</a><br> +*<a href="https://instagram.com/imagely" target="_blank">Imagely on Instagram</a><br> == Credits == Copyright:<br> -Photocrati Media 2012-2013<br> +Imagely 2016 +Photocrati Media 2012-2016<br> Alex Rabe 2007-2011 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. @@ -76,21 +69,17 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY 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 -** Please note ** - -NextGEN Gallery's flash slideshow option is powered by the JW Image Rotator from Long Tail Video. The Image Rotator is provided free as part of our plugin package thanks to a special arrangement with Long Tail Video. Over time, we will be moving away from reliance on this file. For more information, see the Long Tail Video website: http://www.longtailvideo.com. - == Installation == INSTALLATION: The easiest way to enjoy NextGEN Gallery is to login to you WordPress dashboard, go to Plugins >> Add New, search for NextGEN Gallery, and click to install. You can also download the zip file from this page and upload it from the Plugins >> Add New > Upload page. -HOW TO USE: Just go to a page or post and click the NextGEN Gallery icon. From our Attach to Post interface, you can create, manage, customize, and display your galleries. You can also manage your galleries and gallery settings from the central options area under the "Gallery" tab on your dashboard menu. +HOW TO USE: Just go to a page or post and click the NextGEN Gallery icon. From our Attach to Post interface, you can create, manage, customize, and display your galleries. You can also manage your galleries and gallery settings from the central options area under the "Gallery" tab on your dashboard menu. -DOCUMENTATION: See <a href="http://www.nextgen-gallery.com/help/" target="_blank">NextGEN Gallery Documentation</a>. +DOCUMENTATION: See <a href="https://www.imagely.com/docs/nextgen-gallery/" target="_blank">NextGEN Gallery Documentation</a>. -That's it ... have fun! For more information, feel free to visit the official website for the NextGEN Gallery <a href="http://www.nextgen-gallery.com" target="_blank">WordPress Gallery Plugin</a>. +That's it ... have fun! For more information, feel free to visit the official website for the NextGEN Gallery <a href="https://www.imagely.com/wordpress-gallery-plugin" target="_blank">WordPress Gallery Plugin</a>. -http://www.youtube.com/watch?v=Le_ZsNSuIvM +https://www.youtube.com/watch?v=qwNr5ZNGavo == Screenshots == @@ -106,26 +95,25 @@ http://www.youtube.com/watch?v=Le_ZsNSuIvM == Shortcode == -NextGEN Gallery 2.0 introduces our new Attach to Post interface, which means you never need to work with shortcodes again if you would prefer not too. +NextGEN Gallery 2.x introduces our new Attach to Post interface, which means you never need to work with shortcodes again if you would prefer not too. -If you do want to work with shortcodes, we've also introduce a new, more powerful, and more flexible shortcode system with NextGEN Gallery 2.0. +If you do want to work with shortcodes, we've also introduce a new, more powerful, and more flexible shortcode system with NextGEN Gallery 2.0. -**<a href="http://www.nextgen-gallery.com/nextgen-gallery-shortcodes">Learn About NextGEN Gallery 2.0 Shortcodes</a>** +**<a href="https://www.imagely.com/docs/nextgen-gallery-shortcodes/">Learn About NextGEN Gallery Shortcodes</a>** -Legacy shortcodes? For reference, we're also maintaining documentation on NextGEN Legacy shortcodes used in NextGEN 1.9.x and earlier. <a href="http://www.nextgen-gallery.com/shortcodes">See more on Legacy shortcodes</a>. - -For more information, feel free to visit the official website for the NextGEN Gallery <a href="http://www.nextgen-gallery.com" target="_blank">WordPress Gallery Plugin</a>. +For more information, feel free to visit the official website for the NextGEN Gallery <a href="https://www.imagely.com/wordpress-gallery-plugin/" target="_blank">WordPress Gallery Plugin</a>. == Frequently Asked Questions == = Why are my galleries not opening up in a lightbox after I move my site? = -This is often due to the URL paths to the CSS and JavaScript files used by the Lightbox Effects not being changed to relevant addresses based on the new site. This article will help sort out this issue if that is the case: <a href="http://www.nextgen-gallery.com/galleries-opening-lightbox/" target="_blank">Why are my galleries not opening up in a lightbox?</a>. +This is often due to the URL paths to the CSS and JavaScript files used by the Lightbox Effects not being changed to relevant addresses based on the new site. This article will help sort out this issue if that is the case: <a href="https://www.imagely.com/docs/galleries-opening-lightbox/" target="_blank">Why are my galleries not opening up in a lightbox?</a>. + = Do you have documentation or tutorials? = -Yes. See <a href="http://www.nextgen-gallery.com/help/" target="_blank">NextGEN Gallery Documentation</a>. +Yes. See <a href="https://www.imagely.com/docs/nextgen-gallery/" target="_blank">NextGEN Gallery Documentation</a>. = Will NextGEN Gallery work with my theme? = @@ -139,7 +127,7 @@ No, NextGEN Gallery uses Javascript (J-Query) based displays to ensure compatibi = Are the galleries mobile friendly? = -Yes, since we use Javascript rather than flash, NextGEN Gallery is compatible with Android, iOS, and Blackberry. As of July 2013, all galleries are responsive. NextGEN Pro also includes a full screen, responsive Pro Lightbox with mobile gesture support. +Yes, since we use Javascript rather than flash, NextGEN Gallery is compatible with Android, iOS, and Blackberry. As of July 2013, all galleries are responsive. NextGEN Pro also includes a full screen, responsive Pro Lightbox with mobile gesture support. = What is the difference between a gallery and an album? = @@ -189,16 +177,86 @@ Since the captions are fully HTML capable, you can add external links and any ot = Is NextGEN Gallery available in foreign languages? = -Yes, the NextGEN Gallery WordPress gallery plugin has been translated into dozens of languages - <a href="http://www.nextgen-gallery.com/languages/" target="_blank">click here to find out more.</a> +Yes, the NextGEN Gallery WordPress gallery plugin has been translated into dozens of languages - <a href="https://www.imagely.com/languages/" target="_blank">click here to find out more.</a> = More Information = -For more information, feel free to visit the official website for the NextGEN Gallery <a href="http://www.nextgen-gallery.com" target="_blank">WordPress Gallery Plugin</a>. +For more information, feel free to visit the official website for the NextGEN Gallery <a href="https://www.imagely.com/wordpress-gallery-plugin" target="_blank">WordPress Gallery Plugin</a>. == Changelog == += V2.1.43 - 05.25.2016 = +* NEW: Added Freemius integration +* NEW: Added actions actions ngg_updated_image_meta, ngg_recovered_image, ngg_generated_image, ngg_moved_images, and ngg_copied_images +* NEW: Added patch from WPML copyping ATP galleries to new language pages when duplicating a page to a new language +* Changed: Moved 'ngg_delete_picture' action to before the image has been removed +* Changed: Now prevent maximum_entity_count from being set to 0 or lower in Other Options +* Changed: Updated "Roots" relative url support to re-branded "Soil" relative url +* Changed: Updated branding so all publicly visible instances of "Photocrati" are now "Imagely" +* Changed: Upgraded FontAwesome to 4.6.1 +* Fixed: Album breadcrumbs when used with legacy templates +* Fixed: Compatibility with added WP role objects without a remove_cap() method +* Fixed: Default watermark setting causing images to be watermarked by text even though "image" is shown chosen on "Other Options" +* Fixed: Navigating to albums with UTF8 characters in their name +* Fixed: Replaced use of get_currentuserinfo() with wp_get_current_user() + += V2.1.33 - 04.25.2016 = +* Fixed: Compatibility with themes and plugins which enqueue underscore.js in the head of the document +* Fixed: Ensure that shutter reloaded can find it's image assets + += V2.1.31 - 04.05.2016 = +* NEW: Added constant NGG_SCRIPT_VERSION that is either the plugin version or rand() should SCRIPT_DEBUG be on +* NEW: Added warning when saving galleries and refuse to automatically delete galleries with one or more "../" in their path. +* Changed: ATP slug field disallow several characters (spaces, ?, |, &, [, ]) by replacing them with dashes as they are typed +* Changed: Made get_static_url() look in the WP_CONTENT/ngg/(module_name)/static directory for CSS/JS overrides +* Fixed: Bug introduced in 2.1.24 allowing gallery paths & slugs to contain spaces; galleries must be "saved" once to correct them +* Fixed: Compatibility with WPML String Translation when uploading images without title or description +* Fixed: Made get_image_url() encode gallery directory names 'because%this%is' a valid directory +* Fixed: Manage Galleries > Search results not saving when edited +* Fixed: Provided imagebrowser legacy templates not using AJAX pagination when enabled +* Fixed: Resource manager breaking the layout of the Multisite Plugin Activation page +* Fixed: Static url generation when the nextgen-gallery directory is a symlink outside of the WordPress roots + += V2.1.27 - 03.16.2016 = +* Fixed: Formatting issues with changelog + += V2.1.26 - 03.15.2016 = +* Fixed: Removed unnecessary whitespace from "Related images" template that caused issues with some themes +* Fixed: Detection of parents from grand-child-albums when generating breadcrumbs +* Fixed: C_Router->initialize() generating warnings with WP-CLI or the WP-CLI-Cron +* Fixed: Added Roots-theme relative-url support to C_MVC_Router->get_static_url() +* Fixed: nggdb::get_unique_slug() not generating unique slugs +* Fixed: Album breadcrumbs CSS compatibility with certain themes +* Fixed: C_Gallery->validation() not working properly when sanitizing gallery title using UTF-8 +* Fixed: NGG's cross-frame-communication cookies not being purged +* Fixed: Updated C_Dynamic_Thumbnails_Manager->get_uri_from_params() with user-submitted patch +* Fixed: Updated C_CustomPost_DataMapper_Driver->_save_entity() with user-submitted patch +* Fixed: Cleaned up overview.php's readability and removed some now-long-unused code from legacy's ajax.php + += V2.1.23 - 01.05.2015 = +* Secured: XSS vulnerabilities in Manage Gallery pages +* Secured: Ability to browse and import gallery folders + += V2.1.19 - 12.23.2015 = +* Fixed: PHP warning about incorrect usage of parse_url() + += V2.1.18 - 12.21.2015 = +* NEW: Added text domain and domain path to plugin header +* NEW: Add the ability to specify gallery title with import_gallery_from_fs() method +* NEW: Swedish (sv_SE) translation (thanks Anders O Johansson) +* Changed: Updated FontAwesome to version 4.5 +* Changed: Handle for bundled version select2 is now called 'ngg_select2' +* Fixed: Removed redundant translatable strings (thanks Rene Wolf) +* Fixed: Loading non-WOFF fonts on IIS servers +* Fixed: Attempt to load non-existing minified translation files for Plupload +* Fixed: Order direction not honored on Manage Galleries page +* Fixed: _NGG_Galleries_List_Table compatibility with WordPress 4.3+ +* Fixed: Double-UTF8-encoding of image metadata +* Fixed: Don't use interframe communication outside of the Insert Gallery Window +* Fixed: Problem deleting interframe communication cookies + = V2.1.15 - 09.09.2015 = * Secured: Image uploads * Fixed: Don't use esc_attr_e() to prevent translation issues diff --git a/wp-content/plugins/nextgen-gallery/wpml-config.xml b/wp-content/plugins/nextgen-gallery/wpml-config.xml new file mode 100644 index 000000000..dc7268b5e --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/wpml-config.xml @@ -0,0 +1,5 @@ +<wpml-config> +<custom-types> + <custom-type translate="1">displayed_gallery</custom-type> +</custom-types> +</wpml-config> \ No newline at end of file -- GitLab