Livemesh SiteOrigin Widgets - Version 2.8

Version Description

  • Updated - Freemius SDK 2.4.2 with license activation enhancements, beta programs and other features and bug fixes.
Download this release

Release Info

Developer livemesh
Plugin Icon 128x128 Livemesh SiteOrigin Widgets
Version 2.8
Comparing to
See all releases

Code changes from version 2.7.0 to 2.8

Files changed (64) hide show
  1. admin/views/documentation.php +4 -0
  2. freemius/assets/css/admin/account.css +1 -2
  3. freemius/assets/css/admin/add-ons.css +2 -3
  4. freemius/assets/css/admin/affiliation.css +1 -2
  5. freemius/assets/css/admin/checkout.css +0 -1
  6. freemius/assets/css/admin/common.css +2 -3
  7. freemius/assets/css/admin/connect.css +1 -2
  8. freemius/assets/css/admin/debug.css +0 -1
  9. freemius/assets/css/admin/dialog-boxes.css +2 -3
  10. freemius/assets/css/admin/gdpr-optin-notice.css +0 -1
  11. freemius/assets/css/admin/plugins.css +0 -1
  12. freemius/assets/css/customizer.css +1 -2
  13. freemius/assets/js/nojquery.ba-postmessage.min.js +12 -1
  14. freemius/config.php +4 -1
  15. freemius/includes/class-freemius.php +924 -151
  16. freemius/includes/class-fs-api.php +1 -1
  17. freemius/includes/class-fs-logger.php +2 -2
  18. freemius/includes/class-fs-plugin-updater.php +49 -6
  19. freemius/includes/class-fs-storage.php +1 -0
  20. freemius/includes/customizer/class-fs-customizer-support-section.php +2 -2
  21. freemius/includes/entities/class-fs-payment.php +2 -2
  22. freemius/includes/entities/class-fs-plugin-license.php +7 -0
  23. freemius/includes/entities/class-fs-site.php +21 -1
  24. freemius/includes/entities/class-fs-user.php +0 -17
  25. freemius/includes/fs-essential-functions.php +37 -20
  26. freemius/includes/fs-plugin-info-dialog.php +36 -23
  27. freemius/includes/i18n.php +2 -0
  28. freemius/includes/managers/class-fs-admin-menu-manager.php +6 -1
  29. freemius/includes/sdk/FreemiusBase.php +1 -1
  30. freemius/includes/sdk/FreemiusWordPress.php +20 -12
  31. freemius/includes/supplements/fs-essential-functions-1.1.7.1.php +1 -1
  32. freemius/languages/freemius-cs_CZ.mo +0 -0
  33. freemius/languages/freemius-da_DK.mo +0 -0
  34. freemius/languages/freemius-en.mo +0 -0
  35. freemius/languages/freemius-es_ES.mo +0 -0
  36. freemius/languages/freemius-fr_FR.mo +0 -0
  37. freemius/languages/freemius-he_IL.mo +0 -0
  38. freemius/languages/freemius-hu_HU.mo +0 -0
  39. freemius/languages/freemius-it_IT.mo +0 -0
  40. freemius/languages/freemius-ja.mo +0 -0
  41. freemius/languages/freemius-nl_NL.mo +0 -0
  42. freemius/languages/freemius-ru_RU.mo +0 -0
  43. freemius/languages/freemius-ta.mo +0 -0
  44. freemius/languages/freemius-zh_CN.mo +0 -0
  45. freemius/languages/freemius.pot +471 -407
  46. freemius/start.php +530 -522
  47. freemius/templates/account.php +89 -27
  48. freemius/templates/account/partials/addon.php +2 -2
  49. freemius/templates/account/payments.php +1 -1
  50. freemius/templates/add-ons.php +2 -2
  51. freemius/templates/auto-installation.php +1 -1
  52. freemius/templates/connect.php +59 -46
  53. freemius/templates/forms/affiliation.php +28 -5
  54. freemius/templates/forms/deactivation/form.php +18 -14
  55. freemius/templates/forms/license-activation.php +13 -9
  56. freemius/templates/forms/optout.php +17 -10
  57. freemius/templates/forms/subscription-cancellation.php +1 -1
  58. freemius/templates/forms/trial-start.php +1 -1
  59. freemius/templates/partials/index.php +2 -0
  60. freemius/templates/pricing.php +208 -176
  61. freemius/templates/secure-https-header.php +1 -1
  62. livemesh-siteorigin-widgets.php +2 -2
  63. plugin.php +2 -2
  64. readme.txt +5 -2
admin/views/documentation.php CHANGED
@@ -1322,6 +1322,10 @@ else {
1322
 
1323
  <h2>Change Log for the Premium Version</h2>
1324
  <br>
 
 
 
 
1325
  <h3>2.7.0</h3>
1326
  <ul>
1327
  <li>Updated - Move to new domain livemeshwp.com</li>
1322
 
1323
  <h2>Change Log for the Premium Version</h2>
1324
  <br>
1325
+ <h3>2.8</h3>
1326
+ <ul>
1327
+ <li>Updated - Freemius SDK 2.4.2 with license activation enhancements, beta programs and other features and bug fixes.</li>
1328
+ </ul>
1329
  <h3>2.7.0</h3>
1330
  <ul>
1331
  <li>Updated - Move to new domain livemeshwp.com</li>
freemius/assets/css/admin/account.css CHANGED
@@ -1,2 +1 @@
1
- label.fs-tag,span.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,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}#fs_account .postbox,#fs_account .widefat{max-width:800px}#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 h3 .dashicons{width:26px;height:26px;font-size:1.3em}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .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}#fs_account_details .button-group{float:right}.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 code{line-height:28px}.fs-key-value-table var,.fs-key-value-table code,.fs-key-value-table input[type="text"]{color:#0073AA;font-size:16px;background:none}.fs-key-value-table input[type="text"]{width:100%;font-weight:bold}.fs-field-beta_program label{margin-left:7px}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_sites .fs-scrollable-table .fs-table-body{max-height:200px;overflow:auto;border:1px solid #e5e5e5}#fs_sites .fs-scrollable-table .fs-table-body>table.widefat{border:none !important}#fs_sites .fs-scrollable-table .fs-main-column{width:100%}#fs_sites .fs-scrollable-table .fs-site-details td:first-of-type{text-align:right;color:grey;width:1px}#fs_sites .fs-scrollable-table .fs-site-details td:last-of-type{text-align:right}#fs_sites .fs-scrollable-table .fs-install-details table tr td{width:1px;white-space:nowrap}#fs_sites .fs-scrollable-table .fs-install-details table tr td:last-of-type{width:auto}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons thead{white-space:nowrap}#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}#fs_billing_address{width:100%}#fs_billing_address tr td{width:50%;padding:5px}#fs_billing_address tr:first-of-type td{padding-top:0}#fs_billing_address span{font-weight:bold}#fs_billing_address input,#fs_billing_address select{display:block;width:100%;margin-top:5px}#fs_billing_address input::-moz-placeholder,#fs_billing_address select::-moz-placeholder{color:transparent;opacity:1}#fs_billing_address input:-ms-input-placeholder,#fs_billing_address select:-ms-input-placeholder{color:transparent}#fs_billing_address input::-webkit-input-placeholder,#fs_billing_address select::-webkit-input-placeholder{color:transparent}#fs_billing_address input.fs-read-mode,#fs_billing_address select.fs-read-mode{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode td span{display:none}#fs_billing_address.fs-read-mode input,#fs_billing_address.fs-read-mode select{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode input::-moz-placeholder,#fs_billing_address.fs-read-mode select::-moz-placeholder{color:#ccc;opacity:1}#fs_billing_address.fs-read-mode input:-ms-input-placeholder,#fs_billing_address.fs-read-mode select:-ms-input-placeholder{color:#ccc}#fs_billing_address.fs-read-mode input::-webkit-input-placeholder,#fs_billing_address.fs-read-mode select::-webkit-input-placeholder{color:#ccc}#fs_billing_address button{display:block;width:100%}
2
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlCQUF5QixtQkFBbUIsV0FBVyxxQkFBcUIsa0JBQWtCLFlBQVksZUFBZSxpQkFBaUIsdUJBQXVCLENBQUMseUNBQXlDLGtCQUFrQixDQUFDLHlDQUF5QyxrQkFBa0IsQ0FBQywrQ0FBK0Msa0JBQWtCLENBQUMsMkNBQTJDLGtCQUFrQixDQUFDLDBDQUEwQyxlQUFlLENBQUMsZUFBZSxnQkFBZ0Isa0JBQWtCLGtCQUFrQixnQkFBZ0IsK0JBQStCLENBQUMsMEJBQTBCLFdBQVcsWUFBWSxlQUFlLENBQUMsd0JBQXdCLGdCQUFnQixhQUFhLFdBQVcsQ0FBQyx1QkFBdUIscUJBQXFCLENBQUMsK0JBQStCLGtCQUFrQixTQUFTLFdBQVcsZUFBZSxDQUFDLGtDQUFrQyxRQUFRLENBQUMsa0NBQWtDLFVBQVUsQ0FBQyx1Q0FBdUMsb0JBQW9CLENBQUMsb0NBQW9DLG9CQUFvQixDQUFDLGtDQUFrQyxXQUFXLENBQUMsb0NBQW9DLFVBQVUsVUFBVSxDQUFDLG9CQUFvQixVQUFVLENBQUMseUJBQXlCLG9CQUFvQixDQUFDLHNDQUFzQyxnQkFBZ0IsQ0FBQywyQ0FBMkMsZ0JBQWdCLENBQUMsMkNBQTJDLGFBQWEsQ0FBQyxtQ0FBbUMsZ0JBQWdCLENBQUMsOEJBQThCLGtCQUFrQixDQUFDLDhDQUE4QyxZQUFZLENBQUMseUJBQXlCLGdCQUFnQixDQUFDLHdGQUF3RixjQUFjLGVBQWUsZUFBZSxDQUFDLHVDQUF1QyxXQUFXLGdCQUFnQixDQUFDLDZCQUE2QixlQUFlLENBQUMsYUFBYSxtQkFBbUIsV0FBVyxxQkFBcUIsa0JBQWtCLFlBQVksZUFBZSxpQkFBaUIsdUJBQXVCLENBQUMscUJBQXFCLGtCQUFrQixDQUFDLHdCQUF3QixrQkFBa0IsQ0FBQyxzQkFBc0Isa0JBQWtCLENBQUMsOENBQThDLGlCQUFpQixjQUFjLHdCQUF3QixDQUFDLDREQUE0RCxzQkFBc0IsQ0FBQywrQ0FBK0MsVUFBVSxDQUFDLGlFQUFpRSxpQkFBaUIsV0FBVyxTQUFTLENBQUMsZ0VBQWdFLGdCQUFnQixDQUFDLCtEQUErRCxVQUFVLGtCQUFrQixDQUFDLDRFQUE0RSxVQUFVLENBQUMsY0FBYyxZQUFZLGdCQUFnQixlQUFlLENBQUMsY0FBYyxxQkFBcUIsQ0FBQyxpQkFBaUIsa0JBQWtCLENBQUMsb0RBQW9ELGdCQUFnQixnQkFBZ0IsQ0FBQyxrREFBa0QsZ0JBQWdCLENBQUMsY0FBYyxnQkFBZ0IsQ0FBQyxvQkFBb0IsVUFBVSxDQUFDLDBCQUEwQixVQUFVLFdBQVcsQ0FBQyx3Q0FBd0MsYUFBYSxDQUFDLHlCQUF5QixnQkFBZ0IsQ0FBQyxxREFBcUQsY0FBYyxXQUFXLGNBQWMsQ0FBQyx5RkFBeUYsa0JBQWtCLFNBQVMsQ0FBQyxpR0FBaUcsaUJBQWlCLENBQUMsMkdBQTJHLGlCQUFpQixDQUFDLCtFQUErRSx5QkFBeUIsV0FBVyw4QkFBOEIsZUFBZSxlQUFlLENBQUMseUNBQXlDLFlBQVksQ0FBQywrRUFBK0UseUJBQXlCLFdBQVcsOEJBQThCLGVBQWUsZUFBZSxDQUFDLG1IQUFtSCxXQUFXLFNBQVMsQ0FBQywySEFBMkgsVUFBVSxDQUFDLHFJQUFxSSxVQUFVLENBQUMsMkJBQTJCLGNBQWMsVUFBVSxDQUFDIiwiZmlsZSI6ImFjY291bnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsibGFiZWwuZnMtdGFnLHNwYW4uZnMtdGFne2JhY2tncm91bmQ6I2ZmYmEwMDtjb2xvcjojZmZmO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlci1yYWRpdXM6M3B4O3BhZGRpbmc6NXB4O2ZvbnQtc2l6ZToxMXB4O2xpbmUtaGVpZ2h0OjExcHg7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9bGFiZWwuZnMtdGFnLmZzLXdhcm4sc3Bhbi5mcy10YWcuZnMtd2FybntiYWNrZ3JvdW5kOiNmZmJhMDB9bGFiZWwuZnMtdGFnLmZzLWluZm8sc3Bhbi5mcy10YWcuZnMtaW5mb3tiYWNrZ3JvdW5kOiMwMGEwZDJ9bGFiZWwuZnMtdGFnLmZzLXN1Y2Nlc3Msc3Bhbi5mcy10YWcuZnMtc3VjY2Vzc3tiYWNrZ3JvdW5kOiM0NmI0NTB9bGFiZWwuZnMtdGFnLmZzLWVycm9yLHNwYW4uZnMtdGFnLmZzLWVycm9ye2JhY2tncm91bmQ6I2RjMzIzMn0jZnNfYWNjb3VudCAucG9zdGJveCwjZnNfYWNjb3VudCAud2lkZWZhdHttYXgtd2lkdGg6ODAwcHh9I2ZzX2FjY291bnQgaDN7Zm9udC1zaXplOjEuM2VtO3BhZGRpbmc6MTJweCAxNXB4O21hcmdpbjowIDAgMTJweCAwO2xpbmUtaGVpZ2h0OjEuNDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRjFGMUYxfSNmc19hY2NvdW50IGgzIC5kYXNoaWNvbnN7d2lkdGg6MjZweDtoZWlnaHQ6MjZweDtmb250LXNpemU6MS4zZW19I2ZzX2FjY291bnQgaS5kYXNoaWNvbnN7Zm9udC1zaXplOjEuMmVtO2hlaWdodDoxLjJlbTt3aWR0aDoxLjJlbX0jZnNfYWNjb3VudCAuZGFzaGljb25ze3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0jZnNfYWNjb3VudCAuZnMtaGVhZGVyLWFjdGlvbnN7cG9zaXRpb246YWJzb2x1dGU7dG9wOjE3cHg7cmlnaHQ6MTVweDtmb250LXNpemU6MC45ZW19I2ZzX2FjY291bnQgLmZzLWhlYWRlci1hY3Rpb25zIHVse21hcmdpbjowfSNmc19hY2NvdW50IC5mcy1oZWFkZXItYWN0aW9ucyBsaXtmbG9hdDpsZWZ0fSNmc19hY2NvdW50IC5mcy1oZWFkZXItYWN0aW9ucyBsaSBmb3Jte2Rpc3BsYXk6aW5saW5lLWJsb2NrfSNmc19hY2NvdW50IC5mcy1oZWFkZXItYWN0aW9ucyBsaSBhe3RleHQtZGVjb3JhdGlvbjpub25lfSNmc19hY2NvdW50X2RldGFpbHMgLmJ1dHRvbi1ncm91cHtmbG9hdDpyaWdodH0ucnRsICNmc19hY2NvdW50IC5mcy1oZWFkZXItYWN0aW9uc3tsZWZ0OjE1cHg7cmlnaHQ6YXV0b30uZnMta2V5LXZhbHVlLXRhYmxle3dpZHRoOjEwMCV9LmZzLWtleS12YWx1ZS10YWJsZSBmb3Jte2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5mcy1rZXktdmFsdWUtdGFibGUgdHIgdGQ6Zmlyc3QtY2hpbGR7dGV4dC1hbGlnbjpyaWdodH0uZnMta2V5LXZhbHVlLXRhYmxlIHRyIHRkOmZpcnN0LWNoaWxkIG5vYnJ7Zm9udC13ZWlnaHQ6Ym9sZH0uZnMta2V5LXZhbHVlLXRhYmxlIHRyIHRkOmZpcnN0LWNoaWxkIGZvcm17ZGlzcGxheTpibG9ja30uZnMta2V5LXZhbHVlLXRhYmxlIHRyIHRkLmZzLXJpZ2h0e3RleHQtYWxpZ246cmlnaHR9LmZzLWtleS12YWx1ZS10YWJsZSB0ci5mcy1vZGR7YmFja2dyb3VuZDojZWJlYmVifS5mcy1rZXktdmFsdWUtdGFibGUgdGQsLmZzLWtleS12YWx1ZS10YWJsZSB0aHtwYWRkaW5nOjEwcHh9LmZzLWtleS12YWx1ZS10YWJsZSBjb2Rle2xpbmUtaGVpZ2h0OjI4cHh9LmZzLWtleS12YWx1ZS10YWJsZSB2YXIsLmZzLWtleS12YWx1ZS10YWJsZSBjb2RlLC5mcy1rZXktdmFsdWUtdGFibGUgaW5wdXRbdHlwZT1cInRleHRcIl17Y29sb3I6IzAwNzNBQTtmb250LXNpemU6MTZweDtiYWNrZ3JvdW5kOm5vbmV9LmZzLWtleS12YWx1ZS10YWJsZSBpbnB1dFt0eXBlPVwidGV4dFwiXXt3aWR0aDoxMDAlO2ZvbnQtd2VpZ2h0OmJvbGR9LmZzLWZpZWxkLWJldGFfcHJvZ3JhbSBsYWJlbHttYXJnaW4tbGVmdDo3cHh9bGFiZWwuZnMtdGFne2JhY2tncm91bmQ6I2ZmYmEwMDtjb2xvcjojZmZmO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlci1yYWRpdXM6M3B4O3BhZGRpbmc6NXB4O2ZvbnQtc2l6ZToxMXB4O2xpbmUtaGVpZ2h0OjExcHg7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9bGFiZWwuZnMtdGFnLmZzLXdhcm57YmFja2dyb3VuZDojZmZiYTAwfWxhYmVsLmZzLXRhZy5mcy1zdWNjZXNze2JhY2tncm91bmQ6IzQ2YjQ1MH1sYWJlbC5mcy10YWcuZnMtZXJyb3J7YmFja2dyb3VuZDojZGMzMjMyfSNmc19zaXRlcyAuZnMtc2Nyb2xsYWJsZS10YWJsZSAuZnMtdGFibGUtYm9keXttYXgtaGVpZ2h0OjIwMHB4O292ZXJmbG93OmF1dG87Ym9yZGVyOjFweCBzb2xpZCAjZTVlNWU1fSNmc19zaXRlcyAuZnMtc2Nyb2xsYWJsZS10YWJsZSAuZnMtdGFibGUtYm9keT50YWJsZS53aWRlZmF0e2JvcmRlcjpub25lICFpbXBvcnRhbnR9I2ZzX3NpdGVzIC5mcy1zY3JvbGxhYmxlLXRhYmxlIC5mcy1tYWluLWNvbHVtbnt3aWR0aDoxMDAlfSNmc19zaXRlcyAuZnMtc2Nyb2xsYWJsZS10YWJsZSAuZnMtc2l0ZS1kZXRhaWxzIHRkOmZpcnN0LW9mLXR5cGV7dGV4dC1hbGlnbjpyaWdodDtjb2xvcjpncmV5O3dpZHRoOjFweH0jZnNfc2l0ZXMgLmZzLXNjcm9sbGFibGUtdGFibGUgLmZzLXNpdGUtZGV0YWlscyB0ZDpsYXN0LW9mLXR5cGV7dGV4dC1hbGlnbjpyaWdodH0jZnNfc2l0ZXMgLmZzLXNjcm9sbGFibGUtdGFibGUgLmZzLWluc3RhbGwtZGV0YWlscyB0YWJsZSB0ciB0ZHt3aWR0aDoxcHg7d2hpdGUtc3BhY2U6bm93cmFwfSNmc19zaXRlcyAuZnMtc2Nyb2xsYWJsZS10YWJsZSAuZnMtaW5zdGFsbC1kZXRhaWxzIHRhYmxlIHRyIHRkOmxhc3Qtb2YtdHlwZXt3aWR0aDphdXRvfSNmc19hZGRvbnMgaDN7Ym9yZGVyOm5vbmU7bWFyZ2luLWJvdHRvbTowO3BhZGRpbmc6NHB4IDVweH0jZnNfYWRkb25zIHRke3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0jZnNfYWRkb25zIHRoZWFke3doaXRlLXNwYWNlOm5vd3JhcH0jZnNfYWRkb25zIHRkOmZpcnN0LWNoaWxkLCNmc19hZGRvbnMgdGg6Zmlyc3QtY2hpbGR7dGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0OmJvbGR9I2ZzX2FkZG9ucyB0ZDpsYXN0LWNoaWxkLCNmc19hZGRvbnMgdGg6bGFzdC1jaGlsZHt0ZXh0LWFsaWduOnJpZ2h0fSNmc19hZGRvbnMgdGh7Zm9udC13ZWlnaHQ6Ym9sZH0jZnNfYmlsbGluZ19hZGRyZXNze3dpZHRoOjEwMCV9I2ZzX2JpbGxpbmdfYWRkcmVzcyB0ciB0ZHt3aWR0aDo1MCU7cGFkZGluZzo1cHh9I2ZzX2JpbGxpbmdfYWRkcmVzcyB0cjpmaXJzdC1vZi10eXBlIHRke3BhZGRpbmctdG9wOjB9I2ZzX2JpbGxpbmdfYWRkcmVzcyBzcGFue2ZvbnQtd2VpZ2h0OmJvbGR9I2ZzX2JpbGxpbmdfYWRkcmVzcyBpbnB1dCwjZnNfYmlsbGluZ19hZGRyZXNzIHNlbGVjdHtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7bWFyZ2luLXRvcDo1cHh9I2ZzX2JpbGxpbmdfYWRkcmVzcyBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciwjZnNfYmlsbGluZ19hZGRyZXNzIHNlbGVjdDo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjp0cmFuc3BhcmVudDtvcGFjaXR5OjF9I2ZzX2JpbGxpbmdfYWRkcmVzcyBpbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIsI2ZzX2JpbGxpbmdfYWRkcmVzcyBzZWxlY3Q6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOnRyYW5zcGFyZW50fSNmc19iaWxsaW5nX2FkZHJlc3MgaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsI2ZzX2JpbGxpbmdfYWRkcmVzcyBzZWxlY3Q6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6dHJhbnNwYXJlbnR9I2ZzX2JpbGxpbmdfYWRkcmVzcyBpbnB1dC5mcy1yZWFkLW1vZGUsI2ZzX2JpbGxpbmdfYWRkcmVzcyBzZWxlY3QuZnMtcmVhZC1tb2Rle2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjojNzc3O2JvcmRlci1ib3R0b206MXB4IGRhc2hlZCAjY2NjO3BhZGRpbmctbGVmdDowO2JhY2tncm91bmQ6bm9uZX0jZnNfYmlsbGluZ19hZGRyZXNzLmZzLXJlYWQtbW9kZSB0ZCBzcGFue2Rpc3BsYXk6bm9uZX0jZnNfYmlsbGluZ19hZGRyZXNzLmZzLXJlYWQtbW9kZSBpbnB1dCwjZnNfYmlsbGluZ19hZGRyZXNzLmZzLXJlYWQtbW9kZSBzZWxlY3R7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2NvbG9yOiM3Nzc7Ym9yZGVyLWJvdHRvbToxcHggZGFzaGVkICNjY2M7cGFkZGluZy1sZWZ0OjA7YmFja2dyb3VuZDpub25lfSNmc19iaWxsaW5nX2FkZHJlc3MuZnMtcmVhZC1tb2RlIGlucHV0OjotbW96LXBsYWNlaG9sZGVyLCNmc19iaWxsaW5nX2FkZHJlc3MuZnMtcmVhZC1tb2RlIHNlbGVjdDo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjojY2NjO29wYWNpdHk6MX0jZnNfYmlsbGluZ19hZGRyZXNzLmZzLXJlYWQtbW9kZSBpbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIsI2ZzX2JpbGxpbmdfYWRkcmVzcy5mcy1yZWFkLW1vZGUgc2VsZWN0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjojY2NjfSNmc19iaWxsaW5nX2FkZHJlc3MuZnMtcmVhZC1tb2RlIGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLCNmc19iaWxsaW5nX2FkZHJlc3MuZnMtcmVhZC1tb2RlIHNlbGVjdDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjojY2NjfSNmc19iaWxsaW5nX2FkZHJlc3MgYnV0dG9ue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX1cbiJdfQ== */
1
+ label.fs-tag,span.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,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}.fs-notice[data-id="license_not_whitelabeled"].success,.fs-notice[data-id="license_whitelabeled"].success{color:inherit;border-left-color:#00a0d2}.fs-notice[data-id="license_not_whitelabeled"].success label.fs-plugin-title,.fs-notice[data-id="license_whitelabeled"].success label.fs-plugin-title{display:none}#fs_account .postbox,#fs_account .widefat{max-width:800px}#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 h3 .dashicons{width:26px;height:26px;font-size:1.3em}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .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}#fs_account_details .button-group{float:right}.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 code{line-height:28px}.fs-key-value-table var,.fs-key-value-table code,.fs-key-value-table input[type="text"]{color:#0073AA;font-size:16px;background:none}.fs-key-value-table input[type="text"]{width:100%;font-weight:bold}.fs-field-beta_program label{margin-left:7px}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_sites .fs-scrollable-table .fs-table-body{max-height:200px;overflow:auto;border:1px solid #e5e5e5}#fs_sites .fs-scrollable-table .fs-table-body>table.widefat{border:none !important}#fs_sites .fs-scrollable-table .fs-main-column{width:100%}#fs_sites .fs-scrollable-table .fs-site-details td:first-of-type{text-align:right;color:grey;width:1px}#fs_sites .fs-scrollable-table .fs-site-details td:last-of-type{text-align:right}#fs_sites .fs-scrollable-table .fs-install-details table tr td{width:1px;white-space:nowrap}#fs_sites .fs-scrollable-table .fs-install-details table tr td:last-of-type{width:auto}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons thead{white-space:nowrap}#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}#fs_billing_address{width:100%}#fs_billing_address tr td{width:50%;padding:5px}#fs_billing_address tr:first-of-type td{padding-top:0}#fs_billing_address span{font-weight:bold}#fs_billing_address input,#fs_billing_address select{display:block;width:100%;margin-top:5px}#fs_billing_address input::-moz-placeholder,#fs_billing_address select::-moz-placeholder{color:transparent;opacity:1}#fs_billing_address input:-ms-input-placeholder,#fs_billing_address select:-ms-input-placeholder{color:transparent}#fs_billing_address input::-webkit-input-placeholder,#fs_billing_address select::-webkit-input-placeholder{color:transparent}#fs_billing_address input.fs-read-mode,#fs_billing_address select.fs-read-mode{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode td span{display:none}#fs_billing_address.fs-read-mode input,#fs_billing_address.fs-read-mode select{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode input::-moz-placeholder,#fs_billing_address.fs-read-mode select::-moz-placeholder{color:#ccc;opacity:1}#fs_billing_address.fs-read-mode input:-ms-input-placeholder,#fs_billing_address.fs-read-mode select:-ms-input-placeholder{color:#ccc}#fs_billing_address.fs-read-mode input::-webkit-input-placeholder,#fs_billing_address.fs-read-mode select::-webkit-input-placeholder{color:#ccc}#fs_billing_address button{display:block;width:100%}
 
freemius/assets/css/admin/add-ons.css CHANGED
@@ -1,3 +1,2 @@
1
- .fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}#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{-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>ul>li{list-style:none;line-height:18px;padding:0 15px;width:100%;display:block;-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%;-webkit-transition:all,0.15s;transition:all,0.15s}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-card-banner .fs-badge.fs-installed-addon-badge{font-size:1.02em;line-height:1.3em}#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;-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,#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button-group{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}}
2
- #TB_window,#TB_window iframe{width:821px !important}#plugin-information .fyi{width:266px !important}#plugin-information #section-holder{margin-right:299px}#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;-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;-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}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .button,#plugin-information .fs-dropdown .button-group .button{position:relative;width:auto;top:0;right:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .button:focus,#plugin-information .fs-dropdown .button-group .button:focus{z-index:10}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .fs-dropdown-arrow,#plugin-information .fs-dropdown .button-group .fs-dropdown-arrow{border-top:6px solid white;border-right:4px solid transparent;border-left:4px solid transparent;top:12px;position:relative}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active:not(.up) .button:not(.fs-dropdown-arrow-button),#plugin-information .fs-dropdown.active:not(.up) .button:not(.fs-dropdown-arrow-button){border-bottom-left-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active:not(.up) .fs-dropdown-arrow-button,#plugin-information .fs-dropdown.active:not(.up) .fs-dropdown-arrow-button{border-bottom-right-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active.up .button:not(.fs-dropdown-arrow-button),#plugin-information .fs-dropdown.active.up .button:not(.fs-dropdown-arrow-button){border-top-left-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active.up .fs-dropdown-arrow-button,#plugin-information .fs-dropdown.active.up .fs-dropdown-arrow-button{border-top-right-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list,#plugin-information .fs-dropdown .fs-dropdown-list{position:absolute;right:-1px;top:100%;margin-left:auto;padding:3px 0;border:1px solid #bfbfbf;background-color:#fff;z-index:1;width:230px;text-align:left;-webkit-box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li,#plugin-information .fs-dropdown .fs-dropdown-list li{margin:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li a,#plugin-information .fs-dropdown .fs-dropdown-list li a{display:block;padding:5px 10px;text-decoration:none;text-shadow:none}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li:hover,#plugin-information .fs-dropdown .fs-dropdown-list li:hover{background-color:#0074a3;color:#fff}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li:hover a,#plugin-information .fs-dropdown .fs-dropdown-list li:hover a{color:#fff}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown:not(.up) .fs-dropdown-list,#plugin-information .fs-dropdown:not(.up) .fs-dropdown-list{border-radius:3px 0 3px 3px}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.up .fs-dropdown-list,#plugin-information .fs-dropdown.up .fs-dropdown-list{border-radius:3px 3px 0 3px}#plugin-information .fs-dropdown .button-group{width:100%}#plugin-information .fs-dropdown .button-group .button{float:none;font-size:14px;font-weight:normal;text-transform:none}#plugin-information .fs-dropdown .fs-dropdown-list{margin-top:1px}#plugin-information .fs-dropdown.up .fs-dropdown-list{top:auto;bottom:100%;margin-bottom:2px}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group{text-align:center;display:table}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group .button{display:table-cell}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group .button:not(.fs-dropdown-arrow-button){left:1px;width:100%}#plugin-information-footer>.button,#plugin-information-footer .fs-dropdown{position:relative;top:3px}#plugin-information-footer>.button.left,#plugin-information-footer .fs-dropdown.left{float:left}#plugin-information-footer>.right,#plugin-information-footer .fs-dropdown{float:right}@media screen and (max-width: 961px){#fs_addons .fs-cards-list .fs-card{height:265px}}
3
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFkZC1vbnMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVUsa0JBQWtCLFNBQVMsUUFBUSxtQkFBbUIsWUFBWSx5QkFBeUIsaUJBQWlCLDBCQUEyRixpQkFBaUIsZUFBZSxrREFBaUcseUNBQXlDLENBQUMsMEJBQTBCLGVBQWUsQ0FBQyxtQ0FBbUMsV0FBVyxhQUFhLFlBQVksVUFBVSxxQkFBcUIsZUFBZSxnQkFBZ0Isc0JBQXNCLGVBQWUsaUJBQWlCLENBQUMsK0NBQStDLGtCQUFrQixPQUFPLFFBQVEsU0FBUyxNQUFNLFNBQVMsQ0FBQyw2Q0FBNkMsc0JBQXNCLGdCQUFnQixZQUFZLGlCQUFpQixDQUFDLGdEQUEySCw2QkFBNkIscUJBQXFCLE9BQU8sUUFBUSxNQUFNLGlCQUFpQixDQUFDLG1EQUFtRCxnQkFBZ0IsaUJBQWlCLGVBQWUsV0FBVyxjQUFjLDhCQUF5RCxxQkFBcUIsQ0FBQyw2REFBNkQsVUFBVSxTQUFTLGNBQWMsY0FBYyxhQUFhLDJCQUEyQiwwQkFBMEIsNkJBQXdHLG9CQUFvQixDQUFDLGdHQUFnRyxpQkFBaUIsaUJBQWlCLENBQUMsdURBQXVELGtCQUFrQixZQUFZLGdCQUFnQixXQUFXLG1CQUFtQix1QkFBdUIsZ0JBQWdCLENBQUMsdURBQXVELGVBQWUsQ0FBQyw2REFBNkQseUJBQXlCLDZCQUE2QiwwQkFBMEIsa0JBQWtCLFVBQVUsQ0FBQyxxREFBcUQsa0JBQWtCLFNBQVMsVUFBVSx1QkFBdUIsY0FBYyxpQkFBaUIsK0NBQTJGLHVDQUF1Qyx5QkFBeUIsZ0JBQWdCLGdCQUFnQixDQUFDLGdJQUFnSSxrQkFBa0IsVUFBVSxVQUFVLENBQUMscUNBQXFDLHFEQUFxRCx5QkFBeUIsaUJBQWlCLGVBQWUsQ0FBQyxzREFBc0QsVUFBVSxDQUFDLDBIQUEwSCxhQUFhLENBQUMsQ0FBQztBQUN0M0YsNkJBQTZCLHNCQUFzQixDQUFDLHlCQUF5QixzQkFBc0IsQ0FBQyxvQ0FBb0Msa0JBQWtCLENBQUMsaVpBQWlaLFVBQVUsQ0FBQyw0REFBNEQsb0JBQW9CLDRCQUE0QixDQUFDLCtEQUErRCxRQUFRLENBQUMsa0VBQWtFLFVBQVUsNEJBQTRCLENBQUMsOEVBQThFLGNBQWMsY0FBYyxzQkFBc0IsaUJBQWlCLFdBQVcsa0JBQWtCLENBQUMscUVBQXFFLDBCQUEwQixDQUFDLCtEQUErRCxXQUFXLGNBQWMsVUFBVSxDQUFDLDREQUE0RCxnQkFBZ0IsUUFBUSxDQUFDLCtEQUErRCxZQUFZLGFBQWEsV0FBVyxtQkFBbUIsK0JBQTJELHNCQUFzQixDQUFDLGlFQUFpRSxjQUFjLFdBQVcsWUFBWSxpQkFBaUIsK0NBQTJGLHVDQUF1QyxxQkFBcUIsQ0FBQyxtRUFBbUUsaUJBQWlCLENBQUMsZ0RBQWdELGFBQWEsNEJBQTRCLENBQUMsNERBQTRELGFBQWEsYUFBYSxjQUFjLENBQUMsMEVBQTBFLDRCQUE0QixDQUFDLG1GQUFtRixlQUFlLGtCQUFrQixlQUFlLGVBQWUsQ0FBQyx5RkFBeUYseUJBQXlCLFlBQVksdUJBQXVCLGtCQUFrQixVQUFVLFdBQVcsWUFBWSwyQkFBMkIsWUFBWSxrQkFBa0IsZ0JBQWdCLGVBQWUsQ0FBQyxrR0FBa0csZUFBZSxtQkFBbUIsMkJBQTJCLENBQUMsNEVBQTRFLG1CQUFtQixTQUFTLGlCQUFpQixhQUFhLENBQUMseUxBQXlMLFlBQVksQ0FBQywwRUFBMEUsbUJBQW1CLFlBQVksQ0FBQyxpRUFBaUUsV0FBVyxrQkFBa0IsaUJBQWlCLHlCQUF5QixlQUFlLENBQUMsK0RBQStELGtCQUFrQixDQUFDLDZEQUE2RCxpQkFBaUIsQ0FBQyw0SkFBNEosa0JBQWtCLGNBQWMsaUJBQWlCLG1CQUFtQix5QkFBeUIsbUJBQW1CLFlBQVkscUJBQXFCLENBQUMsNkVBQTZFLG9CQUFvQixZQUFZLHNCQUFzQixDQUFDLDJFQUEyRSxlQUFlLENBQUMsNkVBQTZFLFdBQVcsa0JBQWtCLENBQUMsOEVBQThFLGlCQUFpQixDQUFDLG1EQUFtRCxrQkFBa0IsQ0FBQyw0Q0FBNEMsV0FBVyxpQkFBaUIsd0JBQXdCLENBQUMscURBQXFELGNBQWMsQ0FBQyw0REFBNEQsY0FBYyxtQkFBbUIsY0FBYyxpQkFBaUIsQ0FBQyxxREFBcUQsMEJBQTBCLGVBQWUsa0JBQWtCLFlBQVksYUFBYSxDQUFDLGlFQUFpRSxnQkFBZ0IsV0FBVyxjQUFjLGlCQUFpQixDQUFDLCtEQUErRCxrQkFBa0IsQ0FBQyxxREFBcUQsV0FBVyxZQUFZLGNBQWMsQ0FBQyx1SUFBdUksa0JBQWtCLFdBQVcsTUFBTSxPQUFPLENBQUMsbUpBQW1KLFVBQVUsQ0FBQyw2SkFBNkosMkJBQTJCLG1DQUFtQyxrQ0FBa0MsU0FBUyxpQkFBaUIsQ0FBQyx5TUFBeU0sMkJBQTJCLENBQUMsK0tBQStLLDRCQUE0QixDQUFDLDZMQUE2TCx3QkFBd0IsQ0FBQyxtS0FBbUsseUJBQXlCLENBQUMsK0hBQStILGtCQUFrQixXQUFXLFNBQVMsaUJBQWlCLGNBQWMseUJBQXlCLHNCQUFzQixVQUFVLFlBQVksZ0JBQWdCLHVIQUEyTyw4R0FBOEcsQ0FBQyxxSUFBcUksUUFBUSxDQUFDLHlJQUF5SSxjQUFjLGlCQUFpQixxQkFBcUIsZ0JBQWdCLENBQUMsaUpBQWlKLHlCQUF5QixVQUFVLENBQUMscUpBQXFKLFVBQVUsQ0FBQyxpSkFBc04sMkJBQTJCLENBQUMscUlBQTBNLDJCQUEyQixDQUFDLCtDQUErQyxVQUFVLENBQUMsdURBQXVELFdBQVcsZUFBZSxtQkFBbUIsbUJBQW1CLENBQUMsbURBQW1ELGNBQWMsQ0FBQyxzREFBc0QsU0FBUyxZQUFZLGlCQUFpQixDQUFDLDJFQUEyRSxrQkFBa0IsYUFBYSxDQUFDLG1GQUFtRixrQkFBa0IsQ0FBQyxrSEFBa0gsU0FBUyxVQUFVLENBQUMsMkVBQTJFLGtCQUFrQixPQUFPLENBQUMscUZBQXFGLFVBQVUsQ0FBQywwRUFBMEUsV0FBVyxDQUFDLHFDQUFxQyxtQ0FBbUMsWUFBWSxDQUFDLENBQUMiLCJmaWxlIjoiYWRkLW9ucy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZnMtYmFkZ2V7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7cmlnaHQ6MDtiYWNrZ3JvdW5kOiM3MWFlMDA7Y29sb3I6d2hpdGU7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3BhZGRpbmc6NXB4IDEwcHg7LW1vei1ib3JkZXItcmFkaXVzOjNweCAwIDAgM3B4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHggMCAwIDNweDtib3JkZXItcmFkaXVzOjNweCAwIDAgM3B4O2ZvbnQtd2VpZ2h0OmJvbGQ7Ym9yZGVyLXJpZ2h0OjA7LW1vei1ib3gtc2hhZG93OjAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4zKTstd2Via2l0LWJveC1zaGFkb3c6MCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjMpO2JveC1zaGFkb3c6MCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjMpfSNmc19hZGRvbnMgLmZzLWNhcmRzLWxpc3R7bGlzdC1zdHlsZTpub25lfSNmc19hZGRvbnMgLmZzLWNhcmRzLWxpc3QgLmZzLWNhcmR7ZmxvYXQ6bGVmdDtoZWlnaHQ6MTUycHg7d2lkdGg6MzEwcHg7cGFkZGluZzowO21hcmdpbjowIDAgMzBweCAzMHB4O2ZvbnQtc2l6ZToxNHB4O2xpc3Qtc3R5bGU6bm9uZTtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246cmVsYXRpdmV9I2ZzX2FkZG9ucyAuZnMtY2FyZHMtbGlzdCAuZnMtY2FyZCAuZnMtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDt0b3A6MDt6LWluZGV4Ojl9I2ZzX2FkZG9ucyAuZnMtY2FyZHMtbGlzdCAuZnMtY2FyZCAuZnMtaW5uZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX0jZnNfYWRkb25zIC5mcy1jYXJkcy1saXN0IC5mcy1jYXJkIC5mcy1pbm5lcj51bHstbW96LXRyYW5zaXRpb246YWxsLDAuMTVzOy1vLXRyYW5zaXRpb246YWxsLDAuMTVzOy1tcy10cmFuc2l0aW9uOmFsbCwwLjE1czstd2Via2l0LXRyYW5zaXRpb246YWxsLDAuMTVzO3RyYW5zaXRpb246YWxsLDAuMTVzO2xlZnQ6MDtyaWdodDowO3RvcDowO3Bvc2l0aW9uOmFic29sdXRlfSNmc19hZGRvbnMgLmZzLWNhcmRzLWxpc3QgLmZzLWNhcmQgLmZzLWlubmVyPnVsPmxpe2xpc3Qtc3R5bGU6bm9uZTtsaW5lLWhlaWdodDoxOHB4O3BhZGRpbmc6MCAxNXB4O3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jazstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9I2ZzX2FkZG9ucyAuZnMtY2FyZHMtbGlzdCAuZnMtY2FyZCAuZnMtaW5uZXIgLmZzLWNhcmQtYmFubmVye3BhZGRpbmc6MDttYXJnaW46MDtsaW5lLWhlaWdodDowO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMHB4O2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7LW1vei10cmFuc2l0aW9uOmFsbCwwLjE1czstby10cmFuc2l0aW9uOmFsbCwwLjE1czstbXMtdHJhbnNpdGlvbjphbGwsMC4xNXM7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCwwLjE1czt0cmFuc2l0aW9uOmFsbCwwLjE1c30jZnNfYWRkb25zIC5mcy1jYXJkcy1saXN0IC5mcy1jYXJkIC5mcy1pbm5lciAuZnMtY2FyZC1iYW5uZXIgLmZzLWJhZGdlLmZzLWluc3RhbGxlZC1hZGRvbi1iYWRnZXtmb250LXNpemU6MS4wMmVtO2xpbmUtaGVpZ2h0OjEuM2VtfSNmc19hZGRvbnMgLmZzLWNhcmRzLWxpc3QgLmZzLWNhcmQgLmZzLWlubmVyIC5mcy10aXRsZXttYXJnaW46MTBweCAwIDAgMDtoZWlnaHQ6MThweDtvdmVyZmxvdzpoaWRkZW47Y29sb3I6IzAwMDt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmb250LXdlaWdodDpib2xkfSNmc19hZGRvbnMgLmZzLWNhcmRzLWxpc3QgLmZzLWNhcmQgLmZzLWlubmVyIC5mcy1vZmZlcntmb250LXNpemU6MC45ZW19I2ZzX2FkZG9ucyAuZnMtY2FyZHMtbGlzdCAuZnMtY2FyZCAuZnMtaW5uZXIgLmZzLWRlc2NyaXB0aW9ue2JhY2tncm91bmQtY29sb3I6I2Y5ZjlmOTtwYWRkaW5nOjEwcHggMTVweCAxMDBweCAxNXB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNlZWU7bWFyZ2luOjAgMCAxMHB4IDA7Y29sb3I6Izc3N30jZnNfYWRkb25zIC5mcy1jYXJkcy1saXN0IC5mcy1jYXJkIC5mcy1pbm5lciAuZnMtdGFne3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O3JpZ2h0OjBweDtiYWNrZ3JvdW5kOmdyZWVueWVsbG93O2Rpc3BsYXk6YmxvY2s7cGFkZGluZzoycHggMTBweDstbW96LWJveC1zaGFkb3c6MXB4IDFweCAxcHggcmdiYSgwLDAsMCwwLjMpOy13ZWJraXQtYm94LXNoYWRvdzoxcHggMXB4IDFweCByZ2JhKDAsMCwwLDAuMyk7Ym94LXNoYWRvdzoxcHggMXB4IDFweCByZ2JhKDAsMCwwLDAuMyk7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtc2l6ZTowLjllbTtmb250LXdlaWdodDpib2xkfSNmc19hZGRvbnMgLmZzLWNhcmRzLWxpc3QgLmZzLWNhcmQgLmZzLWlubmVyIC5mcy1jdGEgLmJ1dHRvbiwjZnNfYWRkb25zIC5mcy1jYXJkcy1saXN0IC5mcy1jYXJkIC5mcy1pbm5lciAuZnMtY3RhIC5idXR0b24tZ3JvdXB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjExMnB4O3JpZ2h0OjEwcHh9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpeyNmc19hZGRvbnMgLmZzLWNhcmRzLWxpc3QgLmZzLWNhcmQ6aG92ZXIgLmZzLW92ZXJsYXl7Ym9yZGVyOjJweCBzb2xpZCAjMjlhYmUxO21hcmdpbi1sZWZ0Oi0xcHg7bWFyZ2luLXRvcDotMXB4fSNmc19hZGRvbnMgLmZzLWNhcmRzLWxpc3QgLmZzLWNhcmQ6aG92ZXIgLmZzLWlubmVyIHVse3RvcDotMTAwcHh9I2ZzX2FkZG9ucyAuZnMtY2FyZHMtbGlzdCAuZnMtY2FyZDpob3ZlciAuZnMtaW5uZXIgLmZzLXRpdGxlLCNmc19hZGRvbnMgLmZzLWNhcmRzLWxpc3QgLmZzLWNhcmQ6aG92ZXIgLmZzLWlubmVyIC5mcy1vZmZlcntjb2xvcjojMjlhYmUxfX1cbiNUQl93aW5kb3csI1RCX3dpbmRvdyBpZnJhbWV7d2lkdGg6ODIxcHggIWltcG9ydGFudH0jcGx1Z2luLWluZm9ybWF0aW9uIC5meWl7d2lkdGg6MjY2cHggIWltcG9ydGFudH0jcGx1Z2luLWluZm9ybWF0aW9uICNzZWN0aW9uLWhvbGRlcnttYXJnaW4tcmlnaHQ6Mjk5cHh9I3BsdWdpbi1pbmZvcm1hdGlvbiAjc2VjdGlvbi1kZXNjcmlwdGlvbiBoMiwjcGx1Z2luLWluZm9ybWF0aW9uICNzZWN0aW9uLWRlc2NyaXB0aW9uIGgzLCNwbHVnaW4taW5mb3JtYXRpb24gI3NlY3Rpb24tZGVzY3JpcHRpb24gcCwjcGx1Z2luLWluZm9ybWF0aW9uICNzZWN0aW9uLWRlc2NyaXB0aW9uIGIsI3BsdWdpbi1pbmZvcm1hdGlvbiAjc2VjdGlvbi1kZXNjcmlwdGlvbiBpLCNwbHVnaW4taW5mb3JtYXRpb24gI3NlY3Rpb24tZGVzY3JpcHRpb24gYmxvY2txdW90ZSwjcGx1Z2luLWluZm9ybWF0aW9uICNzZWN0aW9uLWRlc2NyaXB0aW9uIGxpLCNwbHVnaW4taW5mb3JtYXRpb24gI3NlY3Rpb24tZGVzY3JpcHRpb24gdWwsI3BsdWdpbi1pbmZvcm1hdGlvbiAjc2VjdGlvbi1kZXNjcmlwdGlvbiBvbHtjbGVhcjpub25lfSNwbHVnaW4taW5mb3JtYXRpb24gI3NlY3Rpb24tZGVzY3JpcHRpb24gLmZzLXNlbGxpbmctcG9pbnRze3BhZGRpbmctYm90dG9tOjEwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZH0jcGx1Z2luLWluZm9ybWF0aW9uICNzZWN0aW9uLWRlc2NyaXB0aW9uIC5mcy1zZWxsaW5nLXBvaW50cyB1bHttYXJnaW46MH0jcGx1Z2luLWluZm9ybWF0aW9uICNzZWN0aW9uLWRlc2NyaXB0aW9uIC5mcy1zZWxsaW5nLXBvaW50cyB1bCBsaXtwYWRkaW5nOjA7bGlzdC1zdHlsZTpub25lIG91dHNpZGUgbm9uZX0jcGx1Z2luLWluZm9ybWF0aW9uICNzZWN0aW9uLWRlc2NyaXB0aW9uIC5mcy1zZWxsaW5nLXBvaW50cyB1bCBsaSBpLmRhc2hpY29uc3tjb2xvcjojNzFhZTAwO2ZvbnQtc2l6ZTozZW07dmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjMwcHg7ZmxvYXQ6bGVmdDttYXJnaW46MCAwIDAgLTE1cHh9I3BsdWdpbi1pbmZvcm1hdGlvbiAjc2VjdGlvbi1kZXNjcmlwdGlvbiAuZnMtc2VsbGluZy1wb2ludHMgdWwgbGkgaDN7bWFyZ2luOjFlbSAzMHB4ICFpbXBvcnRhbnR9I3BsdWdpbi1pbmZvcm1hdGlvbiAjc2VjdGlvbi1kZXNjcmlwdGlvbiAuZnMtc2NyZWVuc2hvdHM6YWZ0ZXJ7Y29udGVudDpcIlwiO2Rpc3BsYXk6dGFibGU7Y2xlYXI6Ym90aH0jcGx1Z2luLWluZm9ybWF0aW9uICNzZWN0aW9uLWRlc2NyaXB0aW9uIC5mcy1zY3JlZW5zaG90cyB1bHtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjB9I3BsdWdpbi1pbmZvcm1hdGlvbiAjc2VjdGlvbi1kZXNjcmlwdGlvbiAuZnMtc2NyZWVuc2hvdHMgdWwgbGl7d2lkdGg6MjI1cHg7aGVpZ2h0OjIyNXB4O2Zsb2F0OmxlZnQ7bWFyZ2luLWJvdHRvbToyMHB4Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveH0jcGx1Z2luLWluZm9ybWF0aW9uICNzZWN0aW9uLWRlc2NyaXB0aW9uIC5mcy1zY3JlZW5zaG90cyB1bCBsaSBhe2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXI6MXB4IHNvbGlkOy1tb3otYm94LXNoYWRvdzoxcHggMXB4IDFweCByZ2JhKDAsMCwwLDAuMik7LXdlYmtpdC1ib3gtc2hhZG93OjFweCAxcHggMXB4IHJnYmEoMCwwLDAsMC4yKTtib3gtc2hhZG93OjFweCAxcHggMXB4IHJnYmEoMCwwLDAsMC4yKTtiYWNrZ3JvdW5kLXNpemU6Y292ZXJ9I3BsdWdpbi1pbmZvcm1hdGlvbiAjc2VjdGlvbi1kZXNjcmlwdGlvbiAuZnMtc2NyZWVuc2hvdHMgdWwgbGkub2Rke21hcmdpbi1yaWdodDoyMHB4fSNwbHVnaW4taW5mb3JtYXRpb24gLnBsdWdpbi1pbmZvcm1hdGlvbi1wcmljaW5ne21hcmdpbjotMTZweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkfSNwbHVnaW4taW5mb3JtYXRpb24gLnBsdWdpbi1pbmZvcm1hdGlvbi1wcmljaW5nIC5mcy1wbGFuIGgze21hcmdpbi10b3A6MDtwYWRkaW5nOjIwcHg7Zm9udC1zaXplOjE2cHh9I3BsdWdpbi1pbmZvcm1hdGlvbiAucGx1Z2luLWluZm9ybWF0aW9uLXByaWNpbmcgLmZzLXBsYW4gLm5hdi10YWItd3JhcHBlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkfSNwbHVnaW4taW5mb3JtYXRpb24gLnBsdWdpbi1pbmZvcm1hdGlvbi1wcmljaW5nIC5mcy1wbGFuIC5uYXYtdGFiLXdyYXBwZXIgLm5hdi10YWJ7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzowIDEwcHg7Zm9udC1zaXplOjAuOWVtfSNwbHVnaW4taW5mb3JtYXRpb24gLnBsdWdpbi1pbmZvcm1hdGlvbi1wcmljaW5nIC5mcy1wbGFuIC5uYXYtdGFiLXdyYXBwZXIgLm5hdi10YWIgbGFiZWx7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOmdyZWVuO2JhY2tncm91bmQ6Z3JlZW55ZWxsb3c7cG9zaXRpb246YWJzb2x1dGU7bGVmdDotMXB4O3JpZ2h0Oi0xcHg7Ym90dG9tOjEwMCU7Ym9yZGVyOjFweCBzb2xpZCBkYXJrZ3JlZW47cGFkZGluZzoycHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjAuOWVtO2xpbmUtaGVpZ2h0OjFlbX0jcGx1Z2luLWluZm9ybWF0aW9uIC5wbHVnaW4taW5mb3JtYXRpb24tcHJpY2luZyAuZnMtcGxhbiAubmF2LXRhYi13cmFwcGVyIC5uYXYtdGFiLm5hdi10YWItYWN0aXZle2N1cnNvcjpkZWZhdWx0O2JhY2tncm91bmQ6I2ZmZmVlYztib3JkZXItYm90dG9tLWNvbG9yOiNmZmZlZWN9I3BsdWdpbi1pbmZvcm1hdGlvbiAucGx1Z2luLWluZm9ybWF0aW9uLXByaWNpbmcgLmZzLXBsYW4uZnMtc2luZ2xlLWN5Y2xlIGgze2JhY2tncm91bmQ6I2ZmZmVlYzttYXJnaW46MDtwYWRkaW5nLWJvdHRvbTowO2NvbG9yOiMwMDczYWF9I3BsdWdpbi1pbmZvcm1hdGlvbiAucGx1Z2luLWluZm9ybWF0aW9uLXByaWNpbmcgLmZzLXBsYW4uZnMtc2luZ2xlLWN5Y2xlIC5uYXYtdGFiLXdyYXBwZXIsI3BsdWdpbi1pbmZvcm1hdGlvbiAucGx1Z2luLWluZm9ybWF0aW9uLXByaWNpbmcgLmZzLXBsYW4uZnMtc2luZ2xlLWN5Y2xlIC5mcy1iaWxsaW5nLWZyZXF1ZW5jeXtkaXNwbGF5Om5vbmV9I3BsdWdpbi1pbmZvcm1hdGlvbiAucGx1Z2luLWluZm9ybWF0aW9uLXByaWNpbmcgLmZzLXBsYW4gLmZzLXByaWNpbmctYm9keXtiYWNrZ3JvdW5kOiNmZmZlZWM7cGFkZGluZzoyMHB4fSNwbHVnaW4taW5mb3JtYXRpb24gLnBsdWdpbi1pbmZvcm1hdGlvbi1wcmljaW5nIC5mcy1wbGFuIC5idXR0b257d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDpib2xkO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXNpemU6MS4xZW19I3BsdWdpbi1pbmZvcm1hdGlvbiAucGx1Z2luLWluZm9ybWF0aW9uLXByaWNpbmcgLmZzLXBsYW4gbGFiZWx7d2hpdGUtc3BhY2U6bm93cmFwfSNwbHVnaW4taW5mb3JtYXRpb24gLnBsdWdpbi1pbmZvcm1hdGlvbi1wcmljaW5nIC5mcy1wbGFuIHZhcntmb250LXN0eWxlOm5vcm1hbH0jcGx1Z2luLWluZm9ybWF0aW9uIC5wbHVnaW4taW5mb3JtYXRpb24tcHJpY2luZyAuZnMtcGxhbiAuZnMtYmlsbGluZy1mcmVxdWVuY3ksI3BsdWdpbi1pbmZvcm1hdGlvbiAucGx1Z2luLWluZm9ybWF0aW9uLXByaWNpbmcgLmZzLXBsYW4gLmZzLWFubnVhbC1kaXNjb3VudHt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmJsb2NrO2ZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luLWJvdHRvbToxMHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtiYWNrZ3JvdW5kOiNGM0YzRjM7cGFkZGluZzoycHg7Ym9yZGVyOjFweCBzb2xpZCAjY2NjfSNwbHVnaW4taW5mb3JtYXRpb24gLnBsdWdpbi1pbmZvcm1hdGlvbi1wcmljaW5nIC5mcy1wbGFuIC5mcy1hbm51YWwtZGlzY291bnR7dGV4dC10cmFuc2Zvcm06bm9uZTtjb2xvcjpncmVlbjtiYWNrZ3JvdW5kOmdyZWVueWVsbG93fSNwbHVnaW4taW5mb3JtYXRpb24gLnBsdWdpbi1pbmZvcm1hdGlvbi1wcmljaW5nIC5mcy1wbGFuIHVsLmZzLXRyaWFsLXRlcm1ze2ZvbnQtc2l6ZTowLjllbX0jcGx1Z2luLWluZm9ybWF0aW9uIC5wbHVnaW4taW5mb3JtYXRpb24tcHJpY2luZyAuZnMtcGxhbiB1bC5mcy10cmlhbC10ZXJtcyBpe2Zsb2F0OmxlZnQ7bWFyZ2luOjAgMCAwIC0xNXB4fSNwbHVnaW4taW5mb3JtYXRpb24gLnBsdWdpbi1pbmZvcm1hdGlvbi1wcmljaW5nIC5mcy1wbGFuIHVsLmZzLXRyaWFsLXRlcm1zIGxpe21hcmdpbjoxMHB4IDAgMCAwfSNwbHVnaW4taW5mb3JtYXRpb24gI3NlY3Rpb24tZmVhdHVyZXMgLmZzLWZlYXR1cmVze21hcmdpbjotMjBweCAtMjZweH0jcGx1Z2luLWluZm9ybWF0aW9uICNzZWN0aW9uLWZlYXR1cmVzIHRhYmxle3dpZHRoOjEwMCU7Ym9yZGVyLXNwYWNpbmc6MDtib3JkZXItY29sbGFwc2U6c2VwYXJhdGV9I3BsdWdpbi1pbmZvcm1hdGlvbiAjc2VjdGlvbi1mZWF0dXJlcyB0YWJsZSB0aGVhZCB0aHtwYWRkaW5nOjEwcHggMH0jcGx1Z2luLWluZm9ybWF0aW9uICNzZWN0aW9uLWZlYXR1cmVzIHRhYmxlIHRoZWFkIC5mcy1wcmljZXtjb2xvcjojNzFhZTAwO2ZvbnQtd2VpZ2h0Om5vcm1hbDtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246Y2VudGVyfSNwbHVnaW4taW5mb3JtYXRpb24gI3NlY3Rpb24tZmVhdHVyZXMgdGFibGUgdGJvZHkgdGR7Ym9yZGVyLXRvcDoxcHggc29saWQgI2NjYztwYWRkaW5nOjEwcHggMDt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDBweDtjb2xvcjojNzFhZTAwfSNwbHVnaW4taW5mb3JtYXRpb24gI3NlY3Rpb24tZmVhdHVyZXMgdGFibGUgdGJvZHkgdGQ6Zmlyc3QtY2hpbGR7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOmF1dG87Y29sb3I6aW5oZXJpdDtwYWRkaW5nLWxlZnQ6MjZweH0jcGx1Z2luLWluZm9ybWF0aW9uICNzZWN0aW9uLWZlYXR1cmVzIHRhYmxlIHRib2R5IHRyLmZzLW9kZCB0ZHtiYWNrZ3JvdW5kOiNmZWZlZmV9I3BsdWdpbi1pbmZvcm1hdGlvbiAjc2VjdGlvbi1mZWF0dXJlcyAuZGFzaGljb25zLXllc3t3aWR0aDozMHB4O2hlaWdodDozMHB4O2ZvbnQtc2l6ZTozMHB4fSNmc19hZGRvbnMgLmZzLWNhcmRzLWxpc3QgLmZzLWNhcmQgLmZzLWlubmVyIC5mcy1kcm9wZG93biAuYnV0dG9uLWdyb3VwIC5idXR0b24sI3BsdWdpbi1pbmZvcm1hdGlvbiAuZnMtZHJvcGRvd24gLmJ1dHRvbi1ncm91cCAuYnV0dG9ue3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOmF1dG87dG9wOjA7cmlnaHQ6MH0jZnNfYWRkb25zIC5mcy1jYXJkcy1saXN0IC5mcy1jYXJkIC5mcy1pbm5lciAuZnMtZHJvcGRvd24gLmJ1dHRvbi1ncm91cCAuYnV0dG9uOmZvY3VzLCNwbHVnaW4taW5mb3JtYXRpb24gLmZzLWRyb3Bkb3duIC5idXR0b24tZ3JvdXAgLmJ1dHRvbjpmb2N1c3t6LWluZGV4OjEwfSNmc19hZGRvbnMgLmZzLWNhcmRzLWxpc3QgLmZzLWNhcmQgLmZzLWlubmVyIC5mcy1kcm9wZG93biAuYnV0dG9uLWdyb3VwIC5mcy1kcm9wZG93bi1hcnJvdywjcGx1Z2luLWluZm9ybWF0aW9uIC5mcy1kcm9wZG93biAuYnV0dG9uLWdyb3VwIC5mcy1kcm9wZG93bi1hcnJvd3tib3JkZXItdG9wOjZweCBzb2xpZCB3aGl0ZTtib3JkZXItcmlnaHQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjRweCBzb2xpZCB0cmFuc3BhcmVudDt0b3A6MTJweDtwb3NpdGlvbjpyZWxhdGl2ZX0jZnNfYWRkb25zIC5mcy1jYXJkcy1saXN0IC5mcy1jYXJkIC5mcy1pbm5lciAuZnMtZHJvcGRvd24uYWN0aXZlOm5vdCgudXApIC5idXR0b246bm90KC5mcy1kcm9wZG93bi1hcnJvdy1idXR0b24pLCNwbHVnaW4taW5mb3JtYXRpb24gLmZzLWRyb3Bkb3duLmFjdGl2ZTpub3QoLnVwKSAuYnV0dG9uOm5vdCguZnMtZHJvcGRvd24tYXJyb3ctYnV0dG9uKXtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9I2ZzX2FkZG9ucyAuZnMtY2FyZHMtbGlzdCAuZnMtY2FyZCAuZnMtaW5uZXIgLmZzLWRyb3Bkb3duLmFjdGl2ZTpub3QoLnVwKSAuZnMtZHJvcGRvd24tYXJyb3ctYnV0dG9uLCNwbHVnaW4taW5mb3JtYXRpb24gLmZzLWRyb3Bkb3duLmFjdGl2ZTpub3QoLnVwKSAuZnMtZHJvcGRvd24tYXJyb3ctYnV0dG9ue2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9I2ZzX2FkZG9ucyAuZnMtY2FyZHMtbGlzdCAuZnMtY2FyZCAuZnMtaW5uZXIgLmZzLWRyb3Bkb3duLmFjdGl2ZS51cCAuYnV0dG9uOm5vdCguZnMtZHJvcGRvd24tYXJyb3ctYnV0dG9uKSwjcGx1Z2luLWluZm9ybWF0aW9uIC5mcy1kcm9wZG93bi5hY3RpdmUudXAgLmJ1dHRvbjpub3QoLmZzLWRyb3Bkb3duLWFycm93LWJ1dHRvbil7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowfSNmc19hZGRvbnMgLmZzLWNhcmRzLWxpc3QgLmZzLWNhcmQgLmZzLWlubmVyIC5mcy1kcm9wZG93bi5hY3RpdmUudXAgLmZzLWRyb3Bkb3duLWFycm93LWJ1dHRvbiwjcGx1Z2luLWluZm9ybWF0aW9uIC5mcy1kcm9wZG93bi5hY3RpdmUudXAgLmZzLWRyb3Bkb3duLWFycm93LWJ1dHRvbntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfSNmc19hZGRvbnMgLmZzLWNhcmRzLWxpc3QgLmZzLWNhcmQgLmZzLWlubmVyIC5mcy1kcm9wZG93biAuZnMtZHJvcGRvd24tbGlzdCwjcGx1Z2luLWluZm9ybWF0aW9uIC5mcy1kcm9wZG93biAuZnMtZHJvcGRvd24tbGlzdHtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMXB4O3RvcDoxMDAlO21hcmdpbi1sZWZ0OmF1dG87cGFkZGluZzozcHggMDtib3JkZXI6MXB4IHNvbGlkICNiZmJmYmY7YmFja2dyb3VuZC1jb2xvcjojZmZmO3otaW5kZXg6MTt3aWR0aDoyMzBweDt0ZXh0LWFsaWduOmxlZnQ7LW1vei1ib3gtc2hhZG93OjBweCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLDBweCA0cHggNXB4IDBweCByZ2JhKDAsMCwwLDAuMTQpLDBweCAxcHggMTBweCAwcHggcmdiYSgwLDAsMCwwLjEyKTstd2Via2l0LWJveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsMCwwLDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwwLDAsMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsMCwwLDAuMTIpO2JveC1zaGFkb3c6MHB4IDJweCA0cHggLTFweCByZ2JhKDAsMCwwLDAuMiksMHB4IDRweCA1cHggMHB4IHJnYmEoMCwwLDAsMC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsMCwwLDAuMTIpfSNmc19hZGRvbnMgLmZzLWNhcmRzLWxpc3QgLmZzLWNhcmQgLmZzLWlubmVyIC5mcy1kcm9wZG93biAuZnMtZHJvcGRvd24tbGlzdCBsaSwjcGx1Z2luLWluZm9ybWF0aW9uIC5mcy1kcm9wZG93biAuZnMtZHJvcGRvd24tbGlzdCBsaXttYXJnaW46MH0jZnNfYWRkb25zIC5mcy1jYXJkcy1saXN0IC5mcy1jYXJkIC5mcy1pbm5lciAuZnMtZHJvcGRvd24gLmZzLWRyb3Bkb3duLWxpc3QgbGkgYSwjcGx1Z2luLWluZm9ybWF0aW9uIC5mcy1kcm9wZG93biAuZnMtZHJvcGRvd24tbGlzdCBsaSBhe2Rpc3BsYXk6YmxvY2s7cGFkZGluZzo1cHggMTBweDt0ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LXNoYWRvdzpub25lfSNmc19hZGRvbnMgLmZzLWNhcmRzLWxpc3QgLmZzLWNhcmQgLmZzLWlubmVyIC5mcy1kcm9wZG93biAuZnMtZHJvcGRvd24tbGlzdCBsaTpob3ZlciwjcGx1Z2luLWluZm9ybWF0aW9uIC5mcy1kcm9wZG93biAuZnMtZHJvcGRvd24tbGlzdCBsaTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDc0YTM7Y29sb3I6I2ZmZn0jZnNfYWRkb25zIC5mcy1jYXJkcy1saXN0IC5mcy1jYXJkIC5mcy1pbm5lciAuZnMtZHJvcGRvd24gLmZzLWRyb3Bkb3duLWxpc3QgbGk6aG92ZXIgYSwjcGx1Z2luLWluZm9ybWF0aW9uIC5mcy1kcm9wZG93biAuZnMtZHJvcGRvd24tbGlzdCBsaTpob3ZlciBhe2NvbG9yOiNmZmZ9I2ZzX2FkZG9ucyAuZnMtY2FyZHMtbGlzdCAuZnMtY2FyZCAuZnMtaW5uZXIgLmZzLWRyb3Bkb3duOm5vdCgudXApIC5mcy1kcm9wZG93bi1saXN0LCNwbHVnaW4taW5mb3JtYXRpb24gLmZzLWRyb3Bkb3duOm5vdCgudXApIC5mcy1kcm9wZG93bi1saXN0ey1tb3otYm9yZGVyLXJhZGl1czozcHggMCAzcHggM3B4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHggMCAzcHggM3B4O2JvcmRlci1yYWRpdXM6M3B4IDAgM3B4IDNweH0jZnNfYWRkb25zIC5mcy1jYXJkcy1saXN0IC5mcy1jYXJkIC5mcy1pbm5lciAuZnMtZHJvcGRvd24udXAgLmZzLWRyb3Bkb3duLWxpc3QsI3BsdWdpbi1pbmZvcm1hdGlvbiAuZnMtZHJvcGRvd24udXAgLmZzLWRyb3Bkb3duLWxpc3R7LW1vei1ib3JkZXItcmFkaXVzOjNweCAzcHggMCAzcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweCAzcHggMCAzcHg7Ym9yZGVyLXJhZGl1czozcHggM3B4IDAgM3B4fSNwbHVnaW4taW5mb3JtYXRpb24gLmZzLWRyb3Bkb3duIC5idXR0b24tZ3JvdXB7d2lkdGg6MTAwJX0jcGx1Z2luLWluZm9ybWF0aW9uIC5mcy1kcm9wZG93biAuYnV0dG9uLWdyb3VwIC5idXR0b257ZmxvYXQ6bm9uZTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZX0jcGx1Z2luLWluZm9ybWF0aW9uIC5mcy1kcm9wZG93biAuZnMtZHJvcGRvd24tbGlzdHttYXJnaW4tdG9wOjFweH0jcGx1Z2luLWluZm9ybWF0aW9uIC5mcy1kcm9wZG93bi51cCAuZnMtZHJvcGRvd24tbGlzdHt0b3A6YXV0bztib3R0b206MTAwJTttYXJnaW4tYm90dG9tOjJweH0jcGx1Z2luLWluZm9ybWF0aW9uLndwLWNvcmUtdWkgLmZzLXByaWNpbmctYm9keSAuZnMtZHJvcGRvd24gLmJ1dHRvbi1ncm91cHt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OnRhYmxlfSNwbHVnaW4taW5mb3JtYXRpb24ud3AtY29yZS11aSAuZnMtcHJpY2luZy1ib2R5IC5mcy1kcm9wZG93biAuYnV0dG9uLWdyb3VwIC5idXR0b257ZGlzcGxheTp0YWJsZS1jZWxsfSNwbHVnaW4taW5mb3JtYXRpb24ud3AtY29yZS11aSAuZnMtcHJpY2luZy1ib2R5IC5mcy1kcm9wZG93biAuYnV0dG9uLWdyb3VwIC5idXR0b246bm90KC5mcy1kcm9wZG93bi1hcnJvdy1idXR0b24pe2xlZnQ6MXB4O3dpZHRoOjEwMCV9I3BsdWdpbi1pbmZvcm1hdGlvbi1mb290ZXI+LmJ1dHRvbiwjcGx1Z2luLWluZm9ybWF0aW9uLWZvb3RlciAuZnMtZHJvcGRvd257cG9zaXRpb246cmVsYXRpdmU7dG9wOjNweH0jcGx1Z2luLWluZm9ybWF0aW9uLWZvb3Rlcj4uYnV0dG9uLmxlZnQsI3BsdWdpbi1pbmZvcm1hdGlvbi1mb290ZXIgLmZzLWRyb3Bkb3duLmxlZnR7ZmxvYXQ6bGVmdH0jcGx1Z2luLWluZm9ybWF0aW9uLWZvb3Rlcj4ucmlnaHQsI3BsdWdpbi1pbmZvcm1hdGlvbi1mb290ZXIgLmZzLWRyb3Bkb3due2Zsb2F0OnJpZ2h0fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MXB4KXsjZnNfYWRkb25zIC5mcy1jYXJkcy1saXN0IC5mcy1jYXJke2hlaWdodDoyNjVweH19XG4iXX0= */
1
+ .fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}#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>ul>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-card-banner .fs-badge.fs-installed-addon-badge{font-size:1.02em;line-height:1.3em}#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,#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button-group{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}}
2
+ #TB_window,#TB_window iframe{width:821px !important}#plugin-information .fyi{width:266px !important}#plugin-information #section-holder{margin-right:299px}#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 iframe{max-width:100%}#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}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .button,#plugin-information .fs-dropdown .button-group .button{position:relative;width:auto;top:0;right:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .button:focus,#plugin-information .fs-dropdown .button-group .button:focus{z-index:10}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .fs-dropdown-arrow,#plugin-information .fs-dropdown .button-group .fs-dropdown-arrow{border-top:6px solid white;border-right:4px solid transparent;border-left:4px solid transparent;top:12px;position:relative}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active:not(.up) .button:not(.fs-dropdown-arrow-button),#plugin-information .fs-dropdown.active:not(.up) .button:not(.fs-dropdown-arrow-button){border-bottom-left-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active:not(.up) .fs-dropdown-arrow-button,#plugin-information .fs-dropdown.active:not(.up) .fs-dropdown-arrow-button{border-bottom-right-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active.up .button:not(.fs-dropdown-arrow-button),#plugin-information .fs-dropdown.active.up .button:not(.fs-dropdown-arrow-button){border-top-left-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active.up .fs-dropdown-arrow-button,#plugin-information .fs-dropdown.active.up .fs-dropdown-arrow-button{border-top-right-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list,#plugin-information .fs-dropdown .fs-dropdown-list{position:absolute;right:-1px;top:100%;margin-left:auto;padding:3px 0;border:1px solid #bfbfbf;background-color:#fff;z-index:1;width:230px;text-align:left;-moz-box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);-webkit-box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li,#plugin-information .fs-dropdown .fs-dropdown-list li{margin:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li a,#plugin-information .fs-dropdown .fs-dropdown-list li a{display:block;padding:5px 10px;text-decoration:none;text-shadow:none}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li:hover,#plugin-information .fs-dropdown .fs-dropdown-list li:hover{background-color:#0074a3;color:#fff}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li:hover a,#plugin-information .fs-dropdown .fs-dropdown-list li:hover a{color:#fff}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown:not(.up) .fs-dropdown-list,#plugin-information .fs-dropdown:not(.up) .fs-dropdown-list{-moz-border-radius:3px 0 3px 3px;-webkit-border-radius:3px 0 3px 3px;border-radius:3px 0 3px 3px}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.up .fs-dropdown-list,#plugin-information .fs-dropdown.up .fs-dropdown-list{-moz-border-radius:3px 3px 0 3px;-webkit-border-radius:3px 3px 0 3px;border-radius:3px 3px 0 3px}#plugin-information .fs-dropdown .button-group{width:100%}#plugin-information .fs-dropdown .button-group .button{float:none;font-size:14px;font-weight:normal;text-transform:none}#plugin-information .fs-dropdown .fs-dropdown-list{margin-top:1px}#plugin-information .fs-dropdown.up .fs-dropdown-list{top:auto;bottom:100%;margin-bottom:2px}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group{text-align:center;display:table}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group .button{display:table-cell}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group .button:not(.fs-dropdown-arrow-button){left:1px;width:100%}#plugin-information-footer>.button,#plugin-information-footer .fs-dropdown{position:relative;top:3px}#plugin-information-footer>.button.left,#plugin-information-footer .fs-dropdown.left{float:left}#plugin-information-footer>.right,#plugin-information-footer .fs-dropdown{float:right}@media screen and (max-width: 961px){#fs_addons .fs-cards-list .fs-card{height:265px}}
 
freemius/assets/css/admin/affiliation.css CHANGED
@@ -1,2 +1 @@
1
- @charset "UTF-8";#fs_affiliation_content_wrapper #messages{margin-top:25px}#fs_affiliation_content_wrapper h3{font-size:24px;padding:0;margin-left:0}#fs_affiliation_content_wrapper ul li{-webkit-box-sizing:border-box;box-sizing:border-box;list-style-type:none}#fs_affiliation_content_wrapper ul li:before{content:'✓';margin-right:10px;font-weight:bold}#fs_affiliation_content_wrapper p:not(.description),#fs_affiliation_content_wrapper li,#fs_affiliation_content_wrapper label{font-size:16px !important;line-height:26px !important}#fs_affiliation_content_wrapper .button{margin-top:20px;margin-bottom:7px;line-height:35px;height:40px;font-size:16px}#fs_affiliation_content_wrapper .button#cancel_button{margin-right:5px}#fs_affiliation_content_wrapper form .input-container{margin-bottom:15px}#fs_affiliation_content_wrapper form .input-container .input-label{font-weight:bold;display:block;width:100%}#fs_affiliation_content_wrapper form .input-container.input-container-text label,#fs_affiliation_content_wrapper form .input-container.input-container-text input,#fs_affiliation_content_wrapper form .input-container.input-container-text textarea{display:block}#fs_affiliation_content_wrapper form .input-container #add_domain,#fs_affiliation_content_wrapper form .input-container .remove-domain{text-decoration:none;display:inline-block;margin-top:3px}#fs_affiliation_content_wrapper form .input-container #add_domain:focus,#fs_affiliation_content_wrapper form .input-container .remove-domain:focus{-webkit-box-shadow:none;box-shadow:none}#fs_affiliation_content_wrapper form .input-container #add_domain.disabled,#fs_affiliation_content_wrapper form .input-container .remove-domain.disabled{color:#aaa;cursor:default}#fs_affiliation_content_wrapper form #extra_domains_container .description{margin-top:0;position:relative;top:-4px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container{margin-bottom:15px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container .domain{display:inline-block;margin-right:5px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container .domain:last-of-type{margin-bottom:0}
2
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFmZmlsaWF0aW9uLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUIsMENBQTBDLGVBQWUsQ0FBQyxtQ0FBbUMsZUFBZSxVQUFVLGFBQWEsQ0FBQyxzQ0FBaUUsOEJBQThCLHNCQUFzQixvQkFBb0IsQ0FBQyw2Q0FBNkMsWUFBWSxrQkFBa0IsZ0JBQWdCLENBQUMsNkhBQTZILDBCQUEwQiwyQkFBMkIsQ0FBQyx3Q0FBd0MsZ0JBQWdCLGtCQUFrQixpQkFBaUIsWUFBWSxjQUFjLENBQUMsc0RBQXNELGdCQUFnQixDQUFDLHNEQUFzRCxrQkFBa0IsQ0FBQyxtRUFBbUUsaUJBQWlCLGNBQWMsVUFBVSxDQUFDLHNQQUFzUCxhQUFhLENBQUMsdUlBQXVJLHFCQUFxQixxQkFBcUIsY0FBYyxDQUFDLG1KQUFtSix3QkFBQSxlQUFlLENBQUMseUpBQXlKLFdBQVcsY0FBYyxDQUFDLDJFQUEyRSxhQUFhLGtCQUFrQixRQUFRLENBQUMsNEZBQTRGLGtCQUFrQixDQUFDLG9HQUFvRyxxQkFBcUIsZ0JBQWdCLENBQUMsaUhBQWlILGVBQWUsQ0FBQyIsImZpbGUiOiJhZmZpbGlhdGlvbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7I2ZzX2FmZmlsaWF0aW9uX2NvbnRlbnRfd3JhcHBlciAjbWVzc2FnZXN7bWFyZ2luLXRvcDoyNXB4fSNmc19hZmZpbGlhdGlvbl9jb250ZW50X3dyYXBwZXIgaDN7Zm9udC1zaXplOjI0cHg7cGFkZGluZzowO21hcmdpbi1sZWZ0OjB9I2ZzX2FmZmlsaWF0aW9uX2NvbnRlbnRfd3JhcHBlciB1bCBsaXstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7bGlzdC1zdHlsZS10eXBlOm5vbmV9I2ZzX2FmZmlsaWF0aW9uX2NvbnRlbnRfd3JhcHBlciB1bCBsaTpiZWZvcmV7Y29udGVudDon4pyTJzttYXJnaW4tcmlnaHQ6MTBweDtmb250LXdlaWdodDpib2xkfSNmc19hZmZpbGlhdGlvbl9jb250ZW50X3dyYXBwZXIgcDpub3QoLmRlc2NyaXB0aW9uKSwjZnNfYWZmaWxpYXRpb25fY29udGVudF93cmFwcGVyIGxpLCNmc19hZmZpbGlhdGlvbl9jb250ZW50X3dyYXBwZXIgbGFiZWx7Zm9udC1zaXplOjE2cHggIWltcG9ydGFudDtsaW5lLWhlaWdodDoyNnB4ICFpbXBvcnRhbnR9I2ZzX2FmZmlsaWF0aW9uX2NvbnRlbnRfd3JhcHBlciAuYnV0dG9ue21hcmdpbi10b3A6MjBweDttYXJnaW4tYm90dG9tOjdweDtsaW5lLWhlaWdodDozNXB4O2hlaWdodDo0MHB4O2ZvbnQtc2l6ZToxNnB4fSNmc19hZmZpbGlhdGlvbl9jb250ZW50X3dyYXBwZXIgLmJ1dHRvbiNjYW5jZWxfYnV0dG9ue21hcmdpbi1yaWdodDo1cHh9I2ZzX2FmZmlsaWF0aW9uX2NvbnRlbnRfd3JhcHBlciBmb3JtIC5pbnB1dC1jb250YWluZXJ7bWFyZ2luLWJvdHRvbToxNXB4fSNmc19hZmZpbGlhdGlvbl9jb250ZW50X3dyYXBwZXIgZm9ybSAuaW5wdXQtY29udGFpbmVyIC5pbnB1dC1sYWJlbHtmb250LXdlaWdodDpib2xkO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX0jZnNfYWZmaWxpYXRpb25fY29udGVudF93cmFwcGVyIGZvcm0gLmlucHV0LWNvbnRhaW5lci5pbnB1dC1jb250YWluZXItdGV4dCBsYWJlbCwjZnNfYWZmaWxpYXRpb25fY29udGVudF93cmFwcGVyIGZvcm0gLmlucHV0LWNvbnRhaW5lci5pbnB1dC1jb250YWluZXItdGV4dCBpbnB1dCwjZnNfYWZmaWxpYXRpb25fY29udGVudF93cmFwcGVyIGZvcm0gLmlucHV0LWNvbnRhaW5lci5pbnB1dC1jb250YWluZXItdGV4dCB0ZXh0YXJlYXtkaXNwbGF5OmJsb2NrfSNmc19hZmZpbGlhdGlvbl9jb250ZW50X3dyYXBwZXIgZm9ybSAuaW5wdXQtY29udGFpbmVyICNhZGRfZG9tYWluLCNmc19hZmZpbGlhdGlvbl9jb250ZW50X3dyYXBwZXIgZm9ybSAuaW5wdXQtY29udGFpbmVyIC5yZW1vdmUtZG9tYWlue3RleHQtZGVjb3JhdGlvbjpub25lO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi10b3A6M3B4fSNmc19hZmZpbGlhdGlvbl9jb250ZW50X3dyYXBwZXIgZm9ybSAuaW5wdXQtY29udGFpbmVyICNhZGRfZG9tYWluOmZvY3VzLCNmc19hZmZpbGlhdGlvbl9jb250ZW50X3dyYXBwZXIgZm9ybSAuaW5wdXQtY29udGFpbmVyIC5yZW1vdmUtZG9tYWluOmZvY3Vze2JveC1zaGFkb3c6bm9uZX0jZnNfYWZmaWxpYXRpb25fY29udGVudF93cmFwcGVyIGZvcm0gLmlucHV0LWNvbnRhaW5lciAjYWRkX2RvbWFpbi5kaXNhYmxlZCwjZnNfYWZmaWxpYXRpb25fY29udGVudF93cmFwcGVyIGZvcm0gLmlucHV0LWNvbnRhaW5lciAucmVtb3ZlLWRvbWFpbi5kaXNhYmxlZHtjb2xvcjojYWFhO2N1cnNvcjpkZWZhdWx0fSNmc19hZmZpbGlhdGlvbl9jb250ZW50X3dyYXBwZXIgZm9ybSAjZXh0cmFfZG9tYWluc19jb250YWluZXIgLmRlc2NyaXB0aW9ue21hcmdpbi10b3A6MDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTRweH0jZnNfYWZmaWxpYXRpb25fY29udGVudF93cmFwcGVyIGZvcm0gI2V4dHJhX2RvbWFpbnNfY29udGFpbmVyIC5leHRyYS1kb21haW4taW5wdXQtY29udGFpbmVye21hcmdpbi1ib3R0b206MTVweH0jZnNfYWZmaWxpYXRpb25fY29udGVudF93cmFwcGVyIGZvcm0gI2V4dHJhX2RvbWFpbnNfY29udGFpbmVyIC5leHRyYS1kb21haW4taW5wdXQtY29udGFpbmVyIC5kb21haW57ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0OjVweH0jZnNfYWZmaWxpYXRpb25fY29udGVudF93cmFwcGVyIGZvcm0gI2V4dHJhX2RvbWFpbnNfY29udGFpbmVyIC5leHRyYS1kb21haW4taW5wdXQtY29udGFpbmVyIC5kb21haW46bGFzdC1vZi10eXBle21hcmdpbi1ib3R0b206MH1cbiJdfQ== */
1
+ @charset "UTF-8";#fs_affiliation_content_wrapper #messages{margin-top:25px}#fs_affiliation_content_wrapper h3{font-size:24px;padding:0;margin-left:0}#fs_affiliation_content_wrapper ul li{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;list-style-type:none}#fs_affiliation_content_wrapper ul li:before{content:'✓';margin-right:10px;font-weight:bold}#fs_affiliation_content_wrapper p:not(.description),#fs_affiliation_content_wrapper li,#fs_affiliation_content_wrapper label{font-size:16px !important;line-height:26px !important}#fs_affiliation_content_wrapper .button{margin-top:20px;margin-bottom:7px;line-height:35px;height:40px;font-size:16px}#fs_affiliation_content_wrapper .button#cancel_button{margin-right:5px}#fs_affiliation_content_wrapper form .input-container{margin-bottom:15px}#fs_affiliation_content_wrapper form .input-container .input-label{font-weight:bold;display:block;width:100%}#fs_affiliation_content_wrapper form .input-container.input-container-text label,#fs_affiliation_content_wrapper form .input-container.input-container-text input,#fs_affiliation_content_wrapper form .input-container.input-container-text textarea{display:block}#fs_affiliation_content_wrapper form .input-container #add_domain,#fs_affiliation_content_wrapper form .input-container .remove-domain{text-decoration:none;display:inline-block;margin-top:3px}#fs_affiliation_content_wrapper form .input-container #add_domain:focus,#fs_affiliation_content_wrapper form .input-container .remove-domain:focus{box-shadow:none}#fs_affiliation_content_wrapper form .input-container #add_domain.disabled,#fs_affiliation_content_wrapper form .input-container .remove-domain.disabled{color:#aaa;cursor:default}#fs_affiliation_content_wrapper form #extra_domains_container .description{margin-top:0;position:relative;top:-4px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container{margin-bottom:15px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container .domain{display:inline-block;margin-right:5px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container .domain:last-of-type{margin-bottom:0}
 
freemius/assets/css/admin/checkout.css CHANGED
@@ -1,2 +1 @@
1
  @media screen and (max-width: 782px){#wpbody-content{padding-bottom:0 !important}}
2
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNoZWNrb3V0LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQ0FBcUMsZ0JBQWdCLDJCQUEyQixDQUFDLENBQUMiLCJmaWxlIjoiY2hlY2tvdXQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzgycHgpeyN3cGJvZHktY29udGVudHtwYWRkaW5nLWJvdHRvbTowICFpbXBvcnRhbnR9fVxuIl19 */
1
  @media screen and (max-width: 782px){#wpbody-content{padding-bottom:0 !important}}
 
freemius/assets/css/admin/common.css CHANGED
@@ -1,3 +1,2 @@
1
- .fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}.theme-browser .theme .fs-premium-theme-badge-container{position:absolute;right:0;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge{position:relative;top:0;margin-top:10px;text-align:center}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-premium-theme-badge{font-size:1.1em}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-beta-theme-badge{background:#00a0d2}.fs-switch{position:relative;display:inline-block;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);background:#ececec;-webkit-box-shadow:0 0 4px rgba(0,0,0,0.1),inset 0 1px 3px 0 rgba(0,0,0,0.1);box-shadow:0 0 4px rgba(0,0,0,0.1),inset 0 1px 3px 0 rgba(0,0,0,0.1);cursor:pointer}.fs-switch span{display:inline-block;width:35px;text-transform:uppercase}.fs-switch .fs-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-color:#fff;background-image:-webkit-gradient(linear, left top, left bottom, from(bottom), color-stop(#ececec), to(#fff));background-image:linear-gradient(top, bottom, #ececec, #fff);-webkit-box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.5);box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.5);z-index:999;-webkit-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1)}.fs-switch.fs-off .fs-toggle{left:2%}.fs-switch.fs-on .fs-toggle{left:54%}.fs-switch.fs-round{top:8px;padding:4px 25px;border-radius:24px}.fs-switch.fs-round .fs-toggle{top:0;width:24px;height:24px;border-radius:24px}.fs-switch.fs-round.fs-off .fs-toggle{left:-1px}.fs-switch.fs-round.fs-on{background:#0085ba}.fs-switch.fs-round.fs-on .fs-toggle{left:25px}.fs-switch.fs-small.fs-round{padding:1px 19px}.fs-switch.fs-small.fs-round .fs-toggle{top:0;width:18px;height:18px;border-radius:18px}.fs-switch.fs-small.fs-round.fs-on .fs-toggle{left:19px}.fs-switch-feedback{margin-left:10px}.fs-switch-feedback.success{color:#71ae00}.rtl .fs-switch-feedback{margin-left:0;margin-right:10px}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media (max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}
2
- .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;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}.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;-webkit-box-shadow:0 2px 2px rgba(6,113,6,0.3);box-shadow:0 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)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width: 500px){#fs_promo_tab{display:none}}@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'}.fs-submenu-item.pricing.upgrade-mode{color:greenyellow}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{border:0;width:20px;height:20px;margin-right:5px;vertical-align:sub;display:inline-block;background:url("/wp-admin/images/wpspin_light-2x.gif");background-size:contain;margin-bottom:-2px}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{border:0;background-color:#d54e21;padding:10px;color:#f9f9f9;margin-top:10px}
3
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1vbi5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVSxrQkFBa0IsU0FBUyxRQUFRLG1CQUFtQixZQUFZLHlCQUF5QixpQkFBaUIsMEJBQTJGLGlCQUFpQixlQUFlLGtEQUFpRyx5Q0FBeUMsQ0FBQyx3REFBd0Qsa0JBQWtCLFFBQVEsS0FBSyxDQUFDLGtFQUFrRSxrQkFBa0IsTUFBTSxnQkFBZ0IsaUJBQWlCLENBQUMseUZBQXlGLGVBQWUsQ0FBQyxzRkFBc0Ysa0JBQWtCLENBQUMsV0FBVyxrQkFBa0IscUJBQXFCLFdBQVcsNENBQTRDLFlBQVksd0JBQXdCLHNCQUFzQixpQ0FBaUMsbUJBQW1CLDZFQUFBLHFFQUFxRSxjQUFjLENBQUMsZ0JBQWdCLHFCQUFxQixXQUFXLHdCQUF3QixDQUFDLHNCQUFzQixrQkFBa0IsUUFBUSxXQUFXLFlBQVksc0JBQXNCLGlDQUFpQyxrQkFBa0IsZ0JBQWdCLHNCQUFzQixBQUFzViw4R0FBNkQsQUFBN0QsNkRBQTZELHlEQUFBLGlEQUFpRCxZQUFZLHdEQUFvTiwrQ0FBK0MsQ0FBQyw2QkFBNkIsT0FBTyxDQUFDLDRCQUE0QixRQUFRLENBQUMsb0JBQW9CLFFBQVEsaUJBQWlCLGtCQUFxRSxDQUFDLCtCQUErQixNQUFNLFdBQVcsWUFBWSxrQkFBcUUsQ0FBQyxzQ0FBc0MsU0FBUyxDQUFDLDBCQUEwQixrQkFBa0IsQ0FBQyxxQ0FBcUMsU0FBUyxDQUFDLDZCQUE2QixnQkFBZ0IsQ0FBQyx3Q0FBd0MsTUFBTSxXQUFXLFlBQVksa0JBQXFFLENBQUMsOENBQThDLFNBQVMsQ0FBQyxvQkFBb0IsZ0JBQWdCLENBQUMsNEJBQTRCLGFBQWEsQ0FBQyx5QkFBeUIsY0FBYyxpQkFBaUIsQ0FBQyxVQUFVLGNBQWMsV0FBVyxDQUFDLHNCQUFzQix5QkFBeUIsQ0FBQywwQkFBMEIsc0JBQXNCLHNCQUFzQixDQUFDLENBQUM7QUFDaGdHLFdBQVcsaUJBQWlCLENBQUMsd0JBQXdCLDZCQUE2QixDQUFDLG1CQUFtQixXQUFXLENBQUMscUJBQXFCLGdDQUFnQyxtQ0FBbUMsQ0FBQywyQkFBMkIsY0FBYyxXQUFXLENBQUMscUJBQXFCLGVBQWUsV0FBVyxXQUFXLENBQUMsMkJBQTJCLFVBQVUsQ0FBQyx1QkFBdUIsZUFBZSxvQkFBb0IsQ0FBQyxpQ0FBaUMsMkJBQTJCLFdBQVcsaUJBQWlCLGtCQUFrQixTQUFTLFlBQVksV0FBVywwQkFBMkYsVUFBVSxlQUFlLGlCQUFpQixXQUFXLENBQUMsb0VBQW9FLHdCQUF3QixDQUFDLDBCQUEwQixVQUFVLENBQUMsa0JBQWtCLGVBQWUsU0FBUyxXQUFXLFFBQVEsbUJBQW1CLGtCQUFrQixZQUFZLGFBQWEsK0NBQTJGLHVDQUF1QyxhQUFhLHdCQUF3QixDQUFDLHdCQUF3QixVQUFVLHlCQUF5QixDQUFDLHNDQUFzQyxZQUFZLG9CQUFvQixDQUFDLHFDQUFxQyxrQkFBa0IsU0FBUyxDQUFDLENBQUMscUNBQXFDLGtCQUFrQixZQUFZLENBQUMsQ0FBQyxxQ0FBcUMsY0FBYyxZQUFZLENBQUMsQ0FBQyxxQ0FBcUMsa0JBQWtCLE9BQU8sU0FBUyxpQkFBaUIsQ0FBQyxDQUFDLG1DQUFtQyxnQkFBZ0IsYUFBYSxDQUFDLHdDQUF3QyxlQUFlLENBQUMsc0NBQXNDLGlCQUFpQixDQUFDLG9DQUFvQyxhQUFhLENBQUMsb0NBQW9DLHdCQUF3QixDQUFDLGlCQUFpQixTQUFTLFdBQVcsWUFBWSxpQkFBaUIsbUJBQW1CLHFCQUFxQix1REFBdUQsd0JBQXdCLGtCQUFrQixDQUFDLG9CQUFvQixlQUFlLENBQUMsNkJBQTZCLFNBQVMseUJBQXlCLGFBQWEsY0FBYyxlQUFlLENBQUMiLCJmaWxlIjoiY29tbW9uLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mcy1iYWRnZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtyaWdodDowO2JhY2tncm91bmQ6IzcxYWUwMDtjb2xvcjp3aGl0ZTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7cGFkZGluZzo1cHggMTBweDstbW96LWJvcmRlci1yYWRpdXM6M3B4IDAgMCAzcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweCAwIDAgM3B4O2JvcmRlci1yYWRpdXM6M3B4IDAgMCAzcHg7Zm9udC13ZWlnaHQ6Ym9sZDtib3JkZXItcmlnaHQ6MDstbW96LWJveC1zaGFkb3c6MCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjMpOy13ZWJraXQtYm94LXNoYWRvdzowIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMyk7Ym94LXNoYWRvdzowIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMyl9LnRoZW1lLWJyb3dzZXIgLnRoZW1lIC5mcy1wcmVtaXVtLXRoZW1lLWJhZGdlLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowfS50aGVtZS1icm93c2VyIC50aGVtZSAuZnMtcHJlbWl1bS10aGVtZS1iYWRnZS1jb250YWluZXIgLmZzLWJhZGdle3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDowO21hcmdpbi10b3A6MTBweDt0ZXh0LWFsaWduOmNlbnRlcn0udGhlbWUtYnJvd3NlciAudGhlbWUgLmZzLXByZW1pdW0tdGhlbWUtYmFkZ2UtY29udGFpbmVyIC5mcy1iYWRnZS5mcy1wcmVtaXVtLXRoZW1lLWJhZGdle2ZvbnQtc2l6ZToxLjFlbX0udGhlbWUtYnJvd3NlciAudGhlbWUgLmZzLXByZW1pdW0tdGhlbWUtYmFkZ2UtY29udGFpbmVyIC5mcy1iYWRnZS5mcy1iZXRhLXRoZW1lLWJhZGdle2JhY2tncm91bmQ6IzAwYTBkMn0uZnMtc3dpdGNoe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbG9yOiNjY2M7dGV4dC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMjU1LDI1NSwyNTUsMC44KTtoZWlnaHQ6MThweDtwYWRkaW5nOjZweCA2cHggNXB4IDZweDtib3JkZXI6MXB4IHNvbGlkICNjY2M7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMik7YmFja2dyb3VuZDojZWNlY2VjO2JveC1zaGFkb3c6MCAwIDRweCByZ2JhKDAsMCwwLDAuMSksaW5zZXQgMCAxcHggM3B4IDAgcmdiYSgwLDAsMCwwLjEpO2N1cnNvcjpwb2ludGVyfS5mcy1zd2l0Y2ggc3BhbntkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDozNXB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0uZnMtc3dpdGNoIC5mcy10b2dnbGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjFweDt3aWR0aDozN3B4O2hlaWdodDoyNXB4O2JvcmRlcjoxcHggc29saWQgI2NjYztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4zKTtib3JkZXItcmFkaXVzOjRweDtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwLCAjZWNlY2VjKSwgY29sb3Itc3RvcCgxLCAjZmZmKSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNlY2VjZWMsICNmZmYpO2JhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZWNlY2VjLCAjZmZmKTtiYWNrZ3JvdW5kLWltYWdlOi1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjZWNlY2VjLCAjZmZmKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNlY2VjZWMsICNmZmYpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvcCwgYm90dG9tLCAjZWNlY2VjLCAjZmZmKTtib3gtc2hhZG93Omluc2V0IDAgMXB4IDAgMCByZ2JhKDI1NSwyNTUsMjU1LDAuNSk7ei1pbmRleDo5OTk7LW1vei10cmFuc2l0aW9uOjAuNHMgY3ViaWMtYmV6aWVyKDAuNTQsIDEuNiwgMC41LCAxKTstby10cmFuc2l0aW9uOjAuNHMgY3ViaWMtYmV6aWVyKDAuNTQsIDEuNiwgMC41LCAxKTstbXMtdHJhbnNpdGlvbjowLjRzIGN1YmljLWJlemllcigwLjU0LCAxLjYsIDAuNSwgMSk7LXdlYmtpdC10cmFuc2l0aW9uOjAuNHMgY3ViaWMtYmV6aWVyKDAuNTQsIDEuNiwgMC41LCAxKTt0cmFuc2l0aW9uOjAuNHMgY3ViaWMtYmV6aWVyKDAuNTQsIDEuNiwgMC41LCAxKX0uZnMtc3dpdGNoLmZzLW9mZiAuZnMtdG9nZ2xle2xlZnQ6MiV9LmZzLXN3aXRjaC5mcy1vbiAuZnMtdG9nZ2xle2xlZnQ6NTQlfS5mcy1zd2l0Y2guZnMtcm91bmR7dG9wOjhweDtwYWRkaW5nOjRweCAyNXB4Oy1tb3otYm9yZGVyLXJhZGl1czoyNHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czoyNHB4O2JvcmRlci1yYWRpdXM6MjRweH0uZnMtc3dpdGNoLmZzLXJvdW5kIC5mcy10b2dnbGV7dG9wOjA7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDstbW96LWJvcmRlci1yYWRpdXM6MjRweDstd2Via2l0LWJvcmRlci1yYWRpdXM6MjRweDtib3JkZXItcmFkaXVzOjI0cHh9LmZzLXN3aXRjaC5mcy1yb3VuZC5mcy1vZmYgLmZzLXRvZ2dsZXtsZWZ0Oi0xcHh9LmZzLXN3aXRjaC5mcy1yb3VuZC5mcy1vbntiYWNrZ3JvdW5kOiMwMDg1YmF9LmZzLXN3aXRjaC5mcy1yb3VuZC5mcy1vbiAuZnMtdG9nZ2xle2xlZnQ6MjVweH0uZnMtc3dpdGNoLmZzLXNtYWxsLmZzLXJvdW5ke3BhZGRpbmc6MXB4IDE5cHh9LmZzLXN3aXRjaC5mcy1zbWFsbC5mcy1yb3VuZCAuZnMtdG9nZ2xle3RvcDowO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7LW1vei1ib3JkZXItcmFkaXVzOjE4cHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjE4cHg7Ym9yZGVyLXJhZGl1czoxOHB4fS5mcy1zd2l0Y2guZnMtc21hbGwuZnMtcm91bmQuZnMtb24gLmZzLXRvZ2dsZXtsZWZ0OjE5cHh9LmZzLXN3aXRjaC1mZWVkYmFja3ttYXJnaW4tbGVmdDoxMHB4fS5mcy1zd2l0Y2gtZmVlZGJhY2suc3VjY2Vzc3tjb2xvcjojNzFhZTAwfS5ydGwgLmZzLXN3aXRjaC1mZWVkYmFja3ttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDoxMHB4fSNmc19mcmFtZXtsaW5lLWhlaWdodDowO2ZvbnQtc2l6ZTowfS5mcy1mdWxsLXNpemUtd3JhcHBlcnttYXJnaW46NDBweCAwIC02NXB4IC0yMHB4fUBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCl7LmZzLWZ1bGwtc2l6ZS13cmFwcGVye21hcmdpbjowIDAgLTY1cHggLTEwcHh9fVxuLmZzLW5vdGljZXtwb3NpdGlvbjpyZWxhdGl2ZX0uZnMtbm90aWNlLmZzLWhhcy10aXRsZXttYXJnaW4tYm90dG9tOjMwcHggIWltcG9ydGFudH0uZnMtbm90aWNlLnN1Y2Nlc3N7Y29sb3I6Z3JlZW59LmZzLW5vdGljZS5wcm9tb3Rpb257Ym9yZGVyLWNvbG9yOiMwMGEwZDIgIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNmMmZjZmYgIWltcG9ydGFudH0uZnMtbm90aWNlIC5mcy1ub3RpY2UtYm9keXttYXJnaW46LjVlbSAwO3BhZGRpbmc6MnB4fS5mcy1ub3RpY2UgLmZzLWNsb3Nle2N1cnNvcjpwb2ludGVyO2NvbG9yOiNhYWE7ZmxvYXQ6cmlnaHR9LmZzLW5vdGljZSAuZnMtY2xvc2U6aG92ZXJ7Y29sb3I6IzY2Nn0uZnMtbm90aWNlIC5mcy1jbG9zZT4qe21hcmdpbi10b3A6N3B4O2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5mcy1ub3RpY2UgbGFiZWwuZnMtcGx1Z2luLXRpdGxle2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjMpO2NvbG9yOiNmZmY7cGFkZGluZzoycHggMTBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtib3R0b206YXV0bztyaWdodDphdXRvOy1tb3otYm9yZGVyLXJhZGl1czowIDAgM3B4IDNweDstd2Via2l0LWJvcmRlci1yYWRpdXM6MCAwIDNweCAzcHg7Ym9yZGVyLXJhZGl1czowIDAgM3B4IDNweDtsZWZ0OjEwcHg7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6Ym9sZDtjdXJzb3I6YXV0b31kaXYuZnMtbm90aWNlLnVwZGF0ZWQsZGl2LmZzLW5vdGljZS5zdWNjZXNzLGRpdi5mcy1ub3RpY2UucHJvbW90aW9ue2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH0ucnRsIC5mcy1ub3RpY2UgLmZzLWNsb3Nle2Zsb2F0OmxlZnR9LmZzLXNlY3VyZS1ub3RpY2V7cG9zaXRpb246Zml4ZWQ7dG9wOjMycHg7bGVmdDoxNjBweDtyaWdodDowO2JhY2tncm91bmQ6I2ViZmRlYjtwYWRkaW5nOjEwcHggMjBweDtjb2xvcjpncmVlbjt6LWluZGV4Ojk5OTk7LW1vei1ib3gtc2hhZG93OjAgMnB4IDJweCByZ2JhKDYsMTEzLDYsMC4zKTstd2Via2l0LWJveC1zaGFkb3c6MCAycHggMnB4IHJnYmEoNiwxMTMsNiwwLjMpO2JveC1zaGFkb3c6MCAycHggMnB4IHJnYmEoNiwxMTMsNiwwLjMpO29wYWNpdHk6MC45NTtmaWx0ZXI6YWxwaGEob3BhY2l0eT05NSl9LmZzLXNlY3VyZS1ub3RpY2U6aG92ZXJ7b3BhY2l0eToxO2ZpbHRlcjphbHBoYShvcGFjaXR5PTEwMCl9LmZzLXNlY3VyZS1ub3RpY2UgYS5mcy1zZWN1cml0eS1wcm9vZntjb2xvcjpncmVlbjt0ZXh0LWRlY29yYXRpb246bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCl7LmZzLXNlY3VyZS1ub3RpY2V7bGVmdDozNnB4fX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCl7LmZzLXNlY3VyZS1ub3RpY2V7ZGlzcGxheTpub25lfX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MDBweCl7I2ZzX3Byb21vX3RhYntkaXNwbGF5Om5vbmV9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc4MnB4KXsuZnMtc2VjdXJlLW5vdGljZXtsZWZ0OjA7dG9wOjQ2cHg7dGV4dC1hbGlnbjpjZW50ZXJ9fXNwYW4uZnMtc3VibWVudS1pdGVtLmZzLXN1YjpiZWZvcmV7Y29udGVudDonXFwyMUIzJztwYWRkaW5nOjAgNXB4fS5ydGwgc3Bhbi5mcy1zdWJtZW51LWl0ZW0uZnMtc3ViOmJlZm9yZXtjb250ZW50OidcXDIxQjInfS5mcy1zdWJtZW51LWl0ZW0ucHJpY2luZy51cGdyYWRlLW1vZGV7Y29sb3I6Z3JlZW55ZWxsb3d9LmZzLXN1Ym1lbnUtaXRlbS5wcmljaW5nLnRyaWFsLW1vZGV7Y29sb3I6IzgzZTJmZn0jYWRtaW5tZW51IC51cGRhdGUtcGx1Z2lucy5mcy10cmlhbHtiYWNrZ3JvdW5kLWNvbG9yOiMwMGI5ZWJ9LmZzLWFqYXgtc3Bpbm5lcntib3JkZXI6MDt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O21hcmdpbi1yaWdodDo1cHg7dmVydGljYWwtYWxpZ246c3ViO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JhY2tncm91bmQ6dXJsKFwiL3dwLWFkbWluL2ltYWdlcy93cHNwaW5fbGlnaHQtMnguZ2lmXCIpO2JhY2tncm91bmQtc2l6ZTpjb250YWluO21hcmdpbi1ib3R0b206LTJweH0ud3JhcC5mcy1zZWN0aW9uIGgye3RleHQtYWxpZ246bGVmdH0ucGx1Z2lucyBwLmZzLXVwZ3JhZGUtbm90aWNle2JvcmRlcjowO2JhY2tncm91bmQtY29sb3I6I2Q1NGUyMTtwYWRkaW5nOjEwcHg7Y29sb3I6I2Y5ZjlmOTttYXJnaW4tdG9wOjEwcHh9XG4iXX0= */
1
+ .fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}.theme-browser .theme .fs-premium-theme-badge-container{position:absolute;right:0;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge{position:relative;top:0;margin-top:10px;text-align:center}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-premium-theme-badge{font-size:1.1em}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-beta-theme-badge{background:#00a0d2}.fs-switch{position:relative;display:inline-block;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);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}.fs-switch span{display:inline-block;width:35px;text-transform:uppercase}.fs-switch .fs-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-color:#fff;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #ececec), color-stop(1, #fff));background-image:-webkit-linear-gradient(top, #ececec, #fff);background-image:-moz-linear-gradient(top, #ececec, #fff);background-image:-ms-linear-gradient(top, #ececec, #fff);background-image:-o-linear-gradient(top, #ececec, #fff);background-image:linear-gradient(top, bottom, #ececec, #fff);box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.5);z-index:999;-moz-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-o-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-ms-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-webkit-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1)}.fs-switch.fs-off .fs-toggle{left:2%}.fs-switch.fs-on .fs-toggle{left:54%}.fs-switch.fs-round{top:8px;padding:4px 25px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round .fs-toggle{top:0;width:24px;height:24px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round.fs-off .fs-toggle{left:-1px}.fs-switch.fs-round.fs-on{background:#0085ba}.fs-switch.fs-round.fs-on .fs-toggle{left:25px}.fs-switch.fs-small.fs-round{padding:1px 19px}.fs-switch.fs-small.fs-round .fs-toggle{top:0;width:18px;height:18px;-moz-border-radius:18px;-webkit-border-radius:18px;border-radius:18px}.fs-switch.fs-small.fs-round.fs-on .fs-toggle{left:19px}.fs-switch-feedback{margin-left:10px}.fs-switch-feedback.success{color:#71ae00}.rtl .fs-switch-feedback{margin-left:0;margin-right:10px}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media (max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}
2
+ .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}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}.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;-moz-box-shadow:0 2px 2px rgba(6,113,6,0.3);-webkit-box-shadow:0 2px 2px rgba(6,113,6,0.3);box-shadow:0 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)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width: 1250px){#fs_promo_tab{display:none}}@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'}.fs-submenu-item.pricing.upgrade-mode{color:greenyellow}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{border:0;width:20px;height:20px;margin-right:5px;vertical-align:sub;display:inline-block;background:url("/wp-admin/images/wpspin_light-2x.gif");background-size:contain;margin-bottom:-2px}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{border:0;background-color:#d54e21;padding:10px;color:#f9f9f9;margin-top:10px}
 
freemius/assets/css/admin/connect.css CHANGED
@@ -1,2 +1 @@
1
- #fs_connect{width:480px;-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{-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 .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key .fs-sites-list-container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#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;-webkit-transition:background 0.5s ease;transition:background 0.5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{text-align:center;margin-top:0}#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 .fs-switch{float:right}#fs_connect .fs-permissions ul li .fs-permission-description{margin-left:55px}#fs_connect .fs-permissions ul li .fs-permission-description span{font-weight:bold;text-transform:uppercase;color:#23282d}#fs_connect .fs-permissions ul li .fs-permission-description 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-freemium-licensing{padding:8px;background:#777;color:#fff}#fs_connect .fs-freemium-licensing p{text-align:center;display:block;margin:0;padding:0}#fs_connect .fs-freemium-licensing a{color:#C2EEFF;text-decoration:underline}#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}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{-webkit-box-shadow:none;box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:rgba(0,0,0,0.8);color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;border-radius:5px;-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right}.fs-tooltip-trigger .fs-tooltip::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,0.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}#fs_marketing_optin{display:none;margin-top:10px;border:1px solid #ccc;padding:10px;line-height:1.5em}#fs_marketing_optin .fs-message{display:block;margin-bottom:5px;font-size:1.05em;font-weight:600}#fs_marketing_optin.error{border:1px solid #d3135a;background:#fee}#fs_marketing_optin.error .fs-message{color:#d3135a}#fs_marketing_optin .fs-input-container{margin-top:5px}#fs_marketing_optin .fs-input-container label{margin-top:5px;display:block}#fs_marketing_optin .fs-input-container label input{float:left;margin:1px 0 0 0}#fs_marketing_optin .fs-input-container label:first-child{display:block;margin-bottom:2px}#fs_marketing_optin .fs-input-label{display:block;margin-left:20px}#fs_marketing_optin .fs-input-label .underlined{text-decoration:underline}.rtl #fs_marketing_optin .fs-input-container label input{float:right}.rtl #fs_marketing_optin .fs-input-label{margin-left:0;margin-right:20px}.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 .fs-permission-description{margin-right:55px;margin-left:0}.rtl #fs_connect .fs-permissions ul li .fs-switch{float:left}.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}#fs_theme_connect_wrapper{position:fixed;top:0;height:100%;width:100%;z-index:99990;background:rgba(0,0,0,0.75);text-align:center;overflow-y:auto}#fs_theme_connect_wrapper:before{content:"";display:inline-block;vertical-align:middle;height:100%}#fs_theme_connect_wrapper>button.close{color:white;cursor:pointer;height:40px;width:40px;position:absolute;right:0;border:0;background-color:transparent;top:32px}#fs_theme_connect_wrapper #fs_connect{top:0;text-align:left;display:inline-block;vertical-align:middle;margin-top:52px;margin-bottom:20px}#fs_theme_connect_wrapper #fs_connect .fs-terms{background:rgba(140,140,140,0.64)}#fs_theme_connect_wrapper #fs_connect .fs-terms,#fs_theme_connect_wrapper #fs_connect .fs-terms a{color:#c5c5c5}.wp-pointer-content #fs_connect{margin:0;-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}
2
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbm5lY3QuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksWUFBWSwrQ0FBMkYsdUNBQXVDLGFBQWEsQ0FBQyxxQ0FBcUMsWUFBaUMsd0JBQXdCLGdCQUFnQixXQUFXLGtCQUFrQixDQUFDLENBQUMsd0JBQXdCLGdCQUFnQixpQkFBaUIsQ0FBQyxrQ0FBa0MsZ0JBQWdCLGNBQWMseUJBQXlCLCtDQUEyRix1Q0FBdUMsa0JBQWtCLFlBQVksa0JBQWtCLENBQUMsMEJBQTBCLFNBQVMsVUFBVSxlQUFlLENBQUMsc0NBQXNDLGtCQUFrQixZQUFZLHVCQUF1QixDQUFDLDRDQUE0QyxVQUFVLENBQUMsaURBQWlELGtCQUFrQixRQUFRLFNBQVMsQ0FBQyw0REFBNEQsY0FBYyxDQUFDLHFDQUFxQyxrQkFBa0IsWUFBWSxZQUFZLHNCQUFzQixpQkFBaUIsaUJBQWlCLHlCQUF5QixvQkFBb0IsQ0FBQyx5Q0FBeUMsaUJBQWlCLGNBQWMsQ0FBQyx3QkFBd0Isa0JBQWtCLGtCQUFrQixDQUFDLGdDQUFnQyxtQkFBbUIsaUJBQWlCLFlBQVksZUFBZSxlQUFlLENBQUMsMkNBQTJDLGVBQWUsaUJBQWlCLGlCQUFpQixDQUFDLCtDQUErQyxtQkFBbUIsaUJBQWlCLENBQUMscURBQXFELGdCQUFnQixDQUFDLGdFQUFnRSxVQUFVLENBQUMsaURBQWlELFdBQVcsQ0FBQyxxRUFBcUUsVUFBVSxDQUFDLDRCQUE0QixrQkFBa0IsbUJBQW1CLHdDQUFvSiwrQkFBK0IsQ0FBQyx3REFBd0Qsa0JBQWtCLFlBQVksQ0FBQyx3Q0FBd0MsZ0JBQWdCLHFCQUFxQixrQkFBa0IsYUFBYSxDQUFDLCtCQUErQixTQUFTLGdCQUFnQixRQUFRLENBQUMsa0NBQWtDLGtCQUFrQixDQUFDLDZDQUE2QyxlQUFlLENBQUMsOENBQThDLFdBQVcsZUFBZSxXQUFXLFdBQVcsQ0FBQyw2Q0FBNkMsV0FBVyxDQUFDLDZEQUE2RCxnQkFBZ0IsQ0FBQyxrRUFBa0UsaUJBQWlCLHlCQUF5QixhQUFhLENBQUMsK0RBQStELGdCQUFnQixDQUFDLG9DQUFvQyxlQUFlLENBQUMsdUNBQXVDLFlBQVksMEJBQTBCLENBQUMscUNBQXFDLDRCQUE0QixlQUFlLENBQUMsd0NBQXdDLFlBQVksQ0FBQywrQkFBK0IsWUFBWSxXQUFXLENBQUMsQ0FBQyxtQ0FBbUMsWUFBWSxnQkFBZ0IsVUFBVSxDQUFDLHFDQUFxQyxrQkFBa0IsY0FBYyxTQUFTLFNBQVMsQ0FBQyxxQ0FBcUMsY0FBYyx5QkFBeUIsQ0FBQyx1QkFBdUIsYUFBYSxjQUFjLG1CQUFtQixZQUFZLGlCQUFpQixDQUFDLHFDQUFxQyxrQkFBa0IsVUFBVSxRQUFRLENBQUMsd0NBQXdDLGtCQUFrQixXQUFXLFFBQVEsQ0FBQyx1Q0FBdUMsa0JBQWtCLFNBQVMsU0FBUyxpQkFBaUIsQ0FBQyxxSUFBcUksV0FBVyxXQUFXLENBQUMsNENBQTRDLGVBQWUsbUJBQW1CLFdBQVcsV0FBVyxZQUFZLFdBQVcsQ0FBQyx1Q0FBdUMsa0JBQWtCLFFBQVEsZUFBZSxpQkFBaUIsVUFBVSxDQUFDLGdEQUFnRCxRQUFRLENBQUMsaURBQWlELFFBQVEsQ0FBQyxvSEFBb0gsc0JBQXNCLFlBQVksZUFBZSxDQUFDLHNCQUFzQixrQkFBa0IsaUJBQWlCLFlBQVksMkJBQTJCLENBQUMsOENBQThDLFVBQVUsQ0FBQyx3QkFBd0Isb0JBQW9CLENBQUMsZ0NBQWdDLGdCQUFnQixzQkFBc0IsV0FBVyxDQUFDLGtDQUFrQyxvQkFBb0IsQ0FBQyx3Q0FBd0Msd0JBQUEsZUFBZSxDQUFDLDJDQUEyQyxnQkFBZ0IsQ0FBQyxzREFBc0QsY0FBYyxTQUFTLENBQUMsNEVBQTRFLGdCQUFnQixDQUFDLGlHQUFpRyxZQUFZLENBQUMseURBQXlELGFBQWEsYUFBYSxDQUFDLGtFQUFrRSwwQkFBMEIsZUFBZSxDQUFDLG9CQUFvQixpQkFBaUIsQ0FBQywyQkFBMkIsV0FBVyxDQUFDLGdDQUFnQyxVQUFVLGtCQUFrQiw0Q0FBb0ssb0NBQW9DLGtCQUFrQiwyQkFBMkIsV0FBVywyQkFBMkIsZUFBZSxhQUFhLGVBQWUsWUFBWSxrQkFBa0IsT0FBTyxRQUFRLGtCQUFtRSwrQ0FBMkYsdUNBQXVDLGtCQUFrQixpQkFBaUIsZUFBZSxDQUFDLHFDQUFxQyxnQkFBZ0IsQ0FBQyx1Q0FBdUMsWUFBWSxjQUFjLFFBQVEsU0FBUyxtQkFBbUIsMkJBQTJCLGlFQUFpRSxrQkFBa0IsU0FBUyxTQUFTLENBQUMsNENBQTRDLFdBQVcsU0FBUyxDQUFDLHNDQUFzQyxtQkFBbUIsU0FBUyxDQUFDLG9CQUFvQixhQUFhLGdCQUFnQixzQkFBc0IsYUFBYSxpQkFBaUIsQ0FBQyxnQ0FBZ0MsY0FBYyxrQkFBa0IsaUJBQWlCLGVBQWUsQ0FBQywwQkFBMEIseUJBQXlCLGVBQWUsQ0FBQyxzQ0FBc0MsYUFBYSxDQUFDLHdDQUF3QyxjQUFjLENBQUMsOENBQThDLGVBQWUsYUFBYSxDQUFDLG9EQUFvRCxXQUFXLGdCQUFnQixDQUFDLDBEQUEwRCxjQUFjLGlCQUFpQixDQUFDLG9DQUFvQyxjQUFjLGdCQUFnQixDQUFDLGdEQUFnRCx5QkFBeUIsQ0FBQyx5REFBeUQsV0FBVyxDQUFDLHlDQUF5QyxjQUFjLGlCQUFpQixDQUFDLDZCQUE2QixrQkFBa0Isa0JBQWtCLENBQUMsZ0RBQWdELGVBQWUsaUJBQWlCLGlCQUFpQixDQUFDLDBEQUEwRCxpQkFBaUIsQ0FBQyxxRUFBcUUsVUFBVSxDQUFDLHNEQUFzRCxVQUFVLENBQUMsa0VBQWtFLGtCQUFrQixhQUFhLENBQUMsa0RBQWtELFVBQVUsQ0FBQyxtREFBbUQsV0FBVyxDQUFDLDBDQUEwQyxXQUFXLFNBQVMsQ0FBQyw2Q0FBNkMsV0FBVyxTQUFTLENBQUMsMEJBQTBCLGVBQWUsTUFBTSxZQUFZLFdBQVcsY0FBYyw0QkFBNEIsa0JBQWtCLGVBQWUsQ0FBQyxpQ0FBaUMsV0FBVyxxQkFBcUIsc0JBQXNCLFdBQVcsQ0FBQyx1Q0FBdUMsWUFBWSxlQUFlLFlBQVksV0FBVyxrQkFBa0IsUUFBUSxTQUFTLDZCQUE2QixRQUFRLENBQUMsc0NBQXNDLE1BQU0sZ0JBQWdCLHFCQUFxQixzQkFBc0IsZ0JBQWdCLGtCQUFrQixDQUFDLGdEQUFnRCxpQ0FBaUMsQ0FBQyxrR0FBa0csYUFBYSxDQUFDLGdDQUFnQyxTQUFTLHdCQUE2QyxlQUFlLENBQUMsdUNBQXVDLFNBQVMsQ0FBQyxvREFBb0QsMkJBQTJCLENBQUMsMERBQTBELDJCQUEyQixDQUFDLHVEQUF1RCx3QkFBd0IsQ0FBQyw2REFBNkQsd0JBQXdCLENBQUMscURBQXFELDBCQUEwQixDQUFDLDJEQUEyRCwwQkFBMEIsQ0FBQyxzREFBc0QseUJBQXlCLENBQUMsNERBQTRELHlCQUF5QixDQUFDIiwiZmlsZSI6ImNvbm5lY3QuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI2ZzX2Nvbm5lY3R7d2lkdGg6NDgwcHg7LW1vei1ib3gtc2hhZG93OjBweCAxcHggMnB4IHJnYmEoMCwwLDAsMC4zKTstd2Via2l0LWJveC1zaGFkb3c6MHB4IDFweCAycHggcmdiYSgwLDAsMCwwLjMpO2JveC1zaGFkb3c6MHB4IDFweCAycHggcmdiYSgwLDAsMCwwLjMpO21hcmdpbjoyMHB4IDB9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpeyNmc19jb25uZWN0ey1tb3otYm94LXNoYWRvdzpub25lOy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTt3aWR0aDphdXRvO21hcmdpbjowIDAgMCAtMTBweH19I2ZzX2Nvbm5lY3QgLmZzLWNvbnRlbnR7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6MTVweCAyMHB4fSNmc19jb25uZWN0IC5mcy1jb250ZW50IC5mcy1lcnJvcntiYWNrZ3JvdW5kOnNub3c7Y29sb3I6I2QzMTM1YTtib3JkZXI6MXB4IHNvbGlkICNkMzEzNWE7LW1vei1ib3gtc2hhZG93OjAgMXB4IDFweCAwIHJnYmEoMCwwLDAsMC4xKTstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMXB4IDAgcmdiYSgwLDAsMCwwLjEpO2JveC1zaGFkb3c6MCAxcHggMXB4IDAgcmdiYSgwLDAsMCwwLjEpO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6NXB4O21hcmdpbi1ib3R0b206MTBweH0jZnNfY29ubmVjdCAuZnMtY29udGVudCBwe21hcmdpbjowO3BhZGRpbmc6MDtmb250LXNpemU6MS4yZW19I2ZzX2Nvbm5lY3QgLmZzLWxpY2Vuc2Uta2V5LWNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoyODBweDttYXJnaW46MTBweCBhdXRvIDAgYXV0b30jZnNfY29ubmVjdCAuZnMtbGljZW5zZS1rZXktY29udGFpbmVyIGlucHV0e3dpZHRoOjEwMCV9I2ZzX2Nvbm5lY3QgLmZzLWxpY2Vuc2Uta2V5LWNvbnRhaW5lciAuZGFzaGljb25ze3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1cHg7cmlnaHQ6NXB4fSNmc19jb25uZWN0LnJlcXVpcmUtbGljZW5zZS1rZXkgLmZzLXNpdGVzLWxpc3QtY29udGFpbmVyIHRke2N1cnNvcjpwb2ludGVyfSNmc19jb25uZWN0ICNkZWxlZ2F0ZV90b19zaXRlX2FkbWluc3ttYXJnaW4tcmlnaHQ6MTVweDtmbG9hdDpyaWdodDtoZWlnaHQ6MjZweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bGluZS1oZWlnaHQ6MzdweDtmb250LXdlaWdodDpib2xkO2JvcmRlci1ib3R0b206MXB4IGRhc2hlZDt0ZXh0LWRlY29yYXRpb246bm9uZX0jZnNfY29ubmVjdCAjZGVsZWdhdGVfdG9fc2l0ZV9hZG1pbnMucnRse21hcmdpbi1sZWZ0OjE1cHg7bWFyZ2luLXJpZ2h0OjB9I2ZzX2Nvbm5lY3QgLmZzLWFjdGlvbnN7cGFkZGluZzoxMHB4IDIwcHg7YmFja2dyb3VuZDojQzBDN0NBfSNmc19jb25uZWN0IC5mcy1hY3Rpb25zIC5idXR0b257cGFkZGluZzowIDEwcHggMXB4O2xpbmUtaGVpZ2h0OjM1cHg7aGVpZ2h0OjM3cHg7Zm9udC1zaXplOjE2cHg7bWFyZ2luLWJvdHRvbTowfSNmc19jb25uZWN0IC5mcy1hY3Rpb25zIC5idXR0b24gLmRhc2hpY29uc3tmb250LXNpemU6MzdweDttYXJnaW4tbGVmdDotOHB4O21hcmdpbi1yaWdodDoxMnB4fSNmc19jb25uZWN0IC5mcy1hY3Rpb25zIC5idXR0b24uYnV0dG9uLXByaW1hcnl7cGFkZGluZy1yaWdodDoxNXB4O3BhZGRpbmctbGVmdDoxNXB4fSNmc19jb25uZWN0IC5mcy1hY3Rpb25zIC5idXR0b24uYnV0dG9uLXByaW1hcnk6YWZ0ZXJ7Y29udGVudDonIFxcMjc5Qyd9I2ZzX2Nvbm5lY3QgLmZzLWFjdGlvbnMgLmJ1dHRvbi5idXR0b24tcHJpbWFyeS5mcy1sb2FkaW5nOmFmdGVye2NvbnRlbnQ6Jyd9I2ZzX2Nvbm5lY3QgLmZzLWFjdGlvbnMgLmJ1dHRvbi5idXR0b24tc2Vjb25kYXJ5e2Zsb2F0OnJpZ2h0fSNmc19jb25uZWN0LmZzLWFub255bW91cy1kaXNhYmxlZCAuZnMtYWN0aW9ucyAuYnV0dG9uLmJ1dHRvbi1wcmltYXJ5e3dpZHRoOjEwMCV9I2ZzX2Nvbm5lY3QgLmZzLXBlcm1pc3Npb25ze3BhZGRpbmc6MTBweCAyMHB4O2JhY2tncm91bmQ6I0ZFRkVGRTstbW96LXRyYW5zaXRpb246YmFja2dyb3VuZCAwLjVzIGVhc2U7LW8tdHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDAuNXMgZWFzZTstbXMtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDAuNXMgZWFzZTstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZCAwLjVzIGVhc2U7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDAuNXMgZWFzZX0jZnNfY29ubmVjdCAuZnMtcGVybWlzc2lvbnMgLmZzLWxpY2Vuc2Utc3luYy1kaXNjbGFpbWVye3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi10b3A6MH0jZnNfY29ubmVjdCAuZnMtcGVybWlzc2lvbnMgLmZzLXRyaWdnZXJ7Zm9udC1zaXplOjAuOWVtO3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6YmxvY2t9I2ZzX2Nvbm5lY3QgLmZzLXBlcm1pc3Npb25zIHVse2hlaWdodDowO292ZXJmbG93OmhpZGRlbjttYXJnaW46MH0jZnNfY29ubmVjdCAuZnMtcGVybWlzc2lvbnMgdWwgbGl7bWFyZ2luLWJvdHRvbToxMnB4fSNmc19jb25uZWN0IC5mcy1wZXJtaXNzaW9ucyB1bCBsaTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0jZnNfY29ubmVjdCAuZnMtcGVybWlzc2lvbnMgdWwgbGkgaS5kYXNoaWNvbnN7ZmxvYXQ6bGVmdDtmb250LXNpemU6NDBweDt3aWR0aDo0MHB4O2hlaWdodDo0MHB4fSNmc19jb25uZWN0IC5mcy1wZXJtaXNzaW9ucyB1bCBsaSAuZnMtc3dpdGNoe2Zsb2F0OnJpZ2h0fSNmc19jb25uZWN0IC5mcy1wZXJtaXNzaW9ucyB1bCBsaSAuZnMtcGVybWlzc2lvbi1kZXNjcmlwdGlvbnttYXJnaW4tbGVmdDo1NXB4fSNmc19jb25uZWN0IC5mcy1wZXJtaXNzaW9ucyB1bCBsaSAuZnMtcGVybWlzc2lvbi1kZXNjcmlwdGlvbiBzcGFue2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOiMyMzI4MmR9I2ZzX2Nvbm5lY3QgLmZzLXBlcm1pc3Npb25zIHVsIGxpIC5mcy1wZXJtaXNzaW9uLWRlc2NyaXB0aW9uIHB7bWFyZ2luOjJweCAwIDAgMH0jZnNfY29ubmVjdCAuZnMtcGVybWlzc2lvbnMuZnMtb3BlbntiYWNrZ3JvdW5kOiNmZmZ9I2ZzX2Nvbm5lY3QgLmZzLXBlcm1pc3Npb25zLmZzLW9wZW4gdWx7aGVpZ2h0OmF1dG87bWFyZ2luOjIwcHggMjBweCAxMHB4IDIwcHh9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDc5cHgpeyNmc19jb25uZWN0IC5mcy1wZXJtaXNzaW9uc3tiYWNrZ3JvdW5kOiNmZmZ9I2ZzX2Nvbm5lY3QgLmZzLXBlcm1pc3Npb25zIC5mcy10cmlnZ2Vye2Rpc3BsYXk6bm9uZX0jZnNfY29ubmVjdCAuZnMtcGVybWlzc2lvbnMgdWx7aGVpZ2h0OmF1dG87bWFyZ2luOjIwcHh9fSNmc19jb25uZWN0IC5mcy1mcmVlbWl1bS1saWNlbnNpbmd7cGFkZGluZzo4cHg7YmFja2dyb3VuZDojNzc3O2NvbG9yOiNmZmZ9I2ZzX2Nvbm5lY3QgLmZzLWZyZWVtaXVtLWxpY2Vuc2luZyBwe3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjA7cGFkZGluZzowfSNmc19jb25uZWN0IC5mcy1mcmVlbWl1bS1saWNlbnNpbmcgYXtjb2xvcjojQzJFRUZGO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9I2ZzX2Nvbm5lY3QgLmZzLXZpc3VhbHtwYWRkaW5nOjEycHg7bGluZS1oZWlnaHQ6MDtiYWNrZ3JvdW5kOiNmYWZhZmE7aGVpZ2h0OjgwcHg7cG9zaXRpb246cmVsYXRpdmV9I2ZzX2Nvbm5lY3QgLmZzLXZpc3VhbCAuZnMtc2l0ZS1pY29ue3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MjBweDt0b3A6MTBweH0jZnNfY29ubmVjdCAuZnMtdmlzdWFsIC5mcy1jb25uZWN0LWxvZ297cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MjBweDt0b3A6MTBweH0jZnNfY29ubmVjdCAuZnMtdmlzdWFsIC5mcy1wbHVnaW4taWNvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjUwJTttYXJnaW4tbGVmdDotNDBweH0jZnNfY29ubmVjdCAuZnMtdmlzdWFsIC5mcy1wbHVnaW4taWNvbiwjZnNfY29ubmVjdCAuZnMtdmlzdWFsIC5mcy1zaXRlLWljb24sI2ZzX2Nvbm5lY3QgLmZzLXZpc3VhbCBpbWcsI2ZzX2Nvbm5lY3QgLmZzLXZpc3VhbCBvYmplY3R7d2lkdGg6ODBweDtoZWlnaHQ6ODBweH0jZnNfY29ubmVjdCAuZnMtdmlzdWFsIC5kYXNoaWNvbnMtd29yZHByZXNze2ZvbnQtc2l6ZTo2NHB4O2JhY2tncm91bmQ6IzAxNzQ5YTtjb2xvcjojZmZmO3dpZHRoOjY0cHg7aGVpZ2h0OjY0cHg7cGFkZGluZzo4cHh9I2ZzX2Nvbm5lY3QgLmZzLXZpc3VhbCAuZGFzaGljb25zLXBsdXN7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtmb250LXNpemU6MzBweDttYXJnaW4tdG9wOi0xMHB4O2NvbG9yOiNiYmJ9I2ZzX2Nvbm5lY3QgLmZzLXZpc3VhbCAuZGFzaGljb25zLXBsdXMuZnMtZmlyc3R7bGVmdDoyOCV9I2ZzX2Nvbm5lY3QgLmZzLXZpc3VhbCAuZGFzaGljb25zLXBsdXMuZnMtc2Vjb25ke2xlZnQ6NjUlfSNmc19jb25uZWN0IC5mcy12aXN1YWwgLmZzLXBsdWdpbi1pY29uLCNmc19jb25uZWN0IC5mcy12aXN1YWwgLmZzLWNvbm5lY3QtbG9nbywjZnNfY29ubmVjdCAuZnMtdmlzdWFsIC5mcy1zaXRlLWljb257Ym9yZGVyOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6MXB4O2JhY2tncm91bmQ6I2ZmZn0jZnNfY29ubmVjdCAuZnMtdGVybXN7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjAuODVlbTtwYWRkaW5nOjVweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wNSl9I2ZzX2Nvbm5lY3QgLmZzLXRlcm1zLCNmc19jb25uZWN0IC5mcy10ZXJtcyBhe2NvbG9yOiM5OTl9I2ZzX2Nvbm5lY3QgLmZzLXRlcm1zIGF7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmZzLW11bHRpc2l0ZS1vcHRpb25zLWNvbnRhaW5lcnttYXJnaW4tdG9wOjEwcHg7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6NXB4fS5mcy1tdWx0aXNpdGUtb3B0aW9ucy1jb250YWluZXIgYXt0ZXh0LWRlY29yYXRpb246bm9uZX0uZnMtbXVsdGlzaXRlLW9wdGlvbnMtY29udGFpbmVyIGE6Zm9jdXN7Ym94LXNoYWRvdzpub25lfS5mcy1tdWx0aXNpdGUtb3B0aW9ucy1jb250YWluZXIgYS5zZWxlY3RlZHtmb250LXdlaWdodDpib2xkfS5mcy1tdWx0aXNpdGUtb3B0aW9ucy1jb250YWluZXIuZnMtYXBwbHktb24tYWxsLXNpdGVze2JvcmRlcjowIG5vbmU7cGFkZGluZzowfS5mcy1tdWx0aXNpdGUtb3B0aW9ucy1jb250YWluZXIuZnMtYXBwbHktb24tYWxsLXNpdGVzIC5mcy1hbGwtc2l0ZXMtb3B0aW9uc3tib3JkZXItc3BhY2luZzowfS5mcy1tdWx0aXNpdGUtb3B0aW9ucy1jb250YWluZXIuZnMtYXBwbHktb24tYWxsLXNpdGVzIC5mcy1hbGwtc2l0ZXMtb3B0aW9ucyB0ZDpub3QoOmZpcnN0LWNoaWxkKXtkaXNwbGF5Om5vbmV9LmZzLW11bHRpc2l0ZS1vcHRpb25zLWNvbnRhaW5lciAuZnMtc2l0ZXMtbGlzdC1jb250YWluZXJ7ZGlzcGxheTpub25lO292ZXJmbG93OmF1dG99LmZzLW11bHRpc2l0ZS1vcHRpb25zLWNvbnRhaW5lciAuZnMtc2l0ZXMtbGlzdC1jb250YWluZXIgdGFibGUgdGR7Ym9yZGVyLXRvcDoxcHggc29saWQgI2NjYztwYWRkaW5nOjRweCAycHh9LmZzLXRvb2x0aXAtdHJpZ2dlcntwb3NpdGlvbjpyZWxhdGl2ZX0uZnMtdG9vbHRpcC10cmlnZ2VyOm5vdChhKXtjdXJzb3I6aGVscH0uZnMtdG9vbHRpcC10cmlnZ2VyIC5mcy10b29sdGlwe29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbjstbW96LXRyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UtaW4tb3V0Oy1vLXRyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UtaW4tb3V0Oy1tcy10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlLWluLW91dDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UtaW4tb3V0O3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjgpO2NvbG9yOiNmZmY7Zm9udC1mYW1pbHk6J2FyaWFsJywgc2VyaWY7Zm9udC1zaXplOjEycHg7cGFkZGluZzoxMHB4O3otaW5kZXg6OTk5OTk5O2JvdHRvbToxMDAlO21hcmdpbi1ib3R0b206NXB4O2xlZnQ6MDtyaWdodDowOy1tb3otYm9yZGVyLXJhZGl1czo1cHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDtib3JkZXItcmFkaXVzOjVweDstbW96LWJveC1zaGFkb3c6MXB4IDFweCAxcHggcmdiYSgwLDAsMCwwLjIpOy13ZWJraXQtYm94LXNoYWRvdzoxcHggMXB4IDFweCByZ2JhKDAsMCwwLDAuMik7Ym94LXNoYWRvdzoxcHggMXB4IDFweCByZ2JhKDAsMCwwLDAuMik7bGluZS1oZWlnaHQ6MS4zZW07Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LWFsaWduOmxlZnR9LnJ0bCAuZnMtdG9vbHRpcC10cmlnZ2VyIC5mcy10b29sdGlwe3RleHQtYWxpZ246cmlnaHR9LmZzLXRvb2x0aXAtdHJpZ2dlciAuZnMtdG9vbHRpcDo6YWZ0ZXJ7Y29udGVudDonICc7ZGlzcGxheTpibG9jazt3aWR0aDowO2hlaWdodDowO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6NXB4IDVweCAwIDVweDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjgpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO2xlZnQ6MjFweH0ucnRsIC5mcy10b29sdGlwLXRyaWdnZXIgLmZzLXRvb2x0aXA6OmFmdGVye3JpZ2h0OjIxcHg7bGVmdDphdXRvfS5mcy10b29sdGlwLXRyaWdnZXI6aG92ZXIgLmZzLXRvb2x0aXB7dmlzaWJpbGl0eTp2aXNpYmxlO29wYWNpdHk6MX0jZnNfbWFya2V0aW5nX29wdGlue2Rpc3BsYXk6bm9uZTttYXJnaW4tdG9wOjEwcHg7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6MTBweDtsaW5lLWhlaWdodDoxLjVlbX0jZnNfbWFya2V0aW5nX29wdGluIC5mcy1tZXNzYWdle2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTo1cHg7Zm9udC1zaXplOjEuMDVlbTtmb250LXdlaWdodDo2MDB9I2ZzX21hcmtldGluZ19vcHRpbi5lcnJvcntib3JkZXI6MXB4IHNvbGlkICNkMzEzNWE7YmFja2dyb3VuZDojZmVlfSNmc19tYXJrZXRpbmdfb3B0aW4uZXJyb3IgLmZzLW1lc3NhZ2V7Y29sb3I6I2QzMTM1YX0jZnNfbWFya2V0aW5nX29wdGluIC5mcy1pbnB1dC1jb250YWluZXJ7bWFyZ2luLXRvcDo1cHh9I2ZzX21hcmtldGluZ19vcHRpbiAuZnMtaW5wdXQtY29udGFpbmVyIGxhYmVse21hcmdpbi10b3A6NXB4O2Rpc3BsYXk6YmxvY2t9I2ZzX21hcmtldGluZ19vcHRpbiAuZnMtaW5wdXQtY29udGFpbmVyIGxhYmVsIGlucHV0e2Zsb2F0OmxlZnQ7bWFyZ2luOjFweCAwIDAgMH0jZnNfbWFya2V0aW5nX29wdGluIC5mcy1pbnB1dC1jb250YWluZXIgbGFiZWw6Zmlyc3QtY2hpbGR7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjJweH0jZnNfbWFya2V0aW5nX29wdGluIC5mcy1pbnB1dC1sYWJlbHtkaXNwbGF5OmJsb2NrO21hcmdpbi1sZWZ0OjIwcHh9I2ZzX21hcmtldGluZ19vcHRpbiAuZnMtaW5wdXQtbGFiZWwgLnVuZGVybGluZWR7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ucnRsICNmc19tYXJrZXRpbmdfb3B0aW4gLmZzLWlucHV0LWNvbnRhaW5lciBsYWJlbCBpbnB1dHtmbG9hdDpyaWdodH0ucnRsICNmc19tYXJrZXRpbmdfb3B0aW4gLmZzLWlucHV0LWxhYmVse21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjIwcHh9LnJ0bCAjZnNfY29ubmVjdCAuZnMtYWN0aW9uc3twYWRkaW5nOjEwcHggMjBweDtiYWNrZ3JvdW5kOiNDMEM3Q0F9LnJ0bCAjZnNfY29ubmVjdCAuZnMtYWN0aW9ucyAuYnV0dG9uIC5kYXNoaWNvbnN7Zm9udC1zaXplOjM3cHg7bWFyZ2luLWxlZnQ6LThweDttYXJnaW4tcmlnaHQ6MTJweH0ucnRsICNmc19jb25uZWN0IC5mcy1hY3Rpb25zIC5idXR0b24uYnV0dG9uLXByaW1hcnk6YWZ0ZXJ7Y29udGVudDonIFxcMDAwYmInfS5ydGwgI2ZzX2Nvbm5lY3QgLmZzLWFjdGlvbnMgLmJ1dHRvbi5idXR0b24tcHJpbWFyeS5mcy1sb2FkaW5nOmFmdGVye2NvbnRlbnQ6Jyd9LnJ0bCAjZnNfY29ubmVjdCAuZnMtYWN0aW9ucyAuYnV0dG9uLmJ1dHRvbi1zZWNvbmRhcnl7ZmxvYXQ6bGVmdH0ucnRsICNmc19jb25uZWN0IC5mcy1wZXJtaXNzaW9ucyB1bCBsaSAuZnMtcGVybWlzc2lvbi1kZXNjcmlwdGlvbnttYXJnaW4tcmlnaHQ6NTVweDttYXJnaW4tbGVmdDowfS5ydGwgI2ZzX2Nvbm5lY3QgLmZzLXBlcm1pc3Npb25zIHVsIGxpIC5mcy1zd2l0Y2h7ZmxvYXQ6bGVmdH0ucnRsICNmc19jb25uZWN0IC5mcy1wZXJtaXNzaW9ucyB1bCBsaSBpLmRhc2hpY29uc3tmbG9hdDpyaWdodH0ucnRsICNmc19jb25uZWN0IC5mcy12aXN1YWwgLmZzLXNpdGUtaWNvbntyaWdodDoyMHB4O2xlZnQ6YXV0b30ucnRsICNmc19jb25uZWN0IC5mcy12aXN1YWwgLmZzLWNvbm5lY3QtbG9nb3tyaWdodDphdXRvO2xlZnQ6MjBweH0jZnNfdGhlbWVfY29ubmVjdF93cmFwcGVye3Bvc2l0aW9uOmZpeGVkO3RvcDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7ei1pbmRleDo5OTk5MDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC43NSk7dGV4dC1hbGlnbjpjZW50ZXI7b3ZlcmZsb3cteTphdXRvfSNmc190aGVtZV9jb25uZWN0X3dyYXBwZXI6YmVmb3Jle2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7aGVpZ2h0OjEwMCV9I2ZzX3RoZW1lX2Nvbm5lY3Rfd3JhcHBlcj5idXR0b24uY2xvc2V7Y29sb3I6d2hpdGU7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO2JvcmRlcjowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7dG9wOjMycHh9I2ZzX3RoZW1lX2Nvbm5lY3Rfd3JhcHBlciAjZnNfY29ubmVjdHt0b3A6MDt0ZXh0LWFsaWduOmxlZnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi10b3A6NTJweDttYXJnaW4tYm90dG9tOjIwcHh9I2ZzX3RoZW1lX2Nvbm5lY3Rfd3JhcHBlciAjZnNfY29ubmVjdCAuZnMtdGVybXN7YmFja2dyb3VuZDpyZ2JhKDE0MCwxNDAsMTQwLDAuNjQpfSNmc190aGVtZV9jb25uZWN0X3dyYXBwZXIgI2ZzX2Nvbm5lY3QgLmZzLXRlcm1zLCNmc190aGVtZV9jb25uZWN0X3dyYXBwZXIgI2ZzX2Nvbm5lY3QgLmZzLXRlcm1zIGF7Y29sb3I6I2M1YzVjNX0ud3AtcG9pbnRlci1jb250ZW50ICNmc19jb25uZWN0e21hcmdpbjowOy1tb3otYm94LXNoYWRvdzpub25lOy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0uZnMtb3B0LWluLXBvaW50ZXIgLndwLXBvaW50ZXItY29udGVudHtwYWRkaW5nOjB9LmZzLW9wdC1pbi1wb2ludGVyLndwLXBvaW50ZXItdG9wIC53cC1wb2ludGVyLWFycm93e2JvcmRlci1ib3R0b20tY29sb3I6I2RmZGZkZn0uZnMtb3B0LWluLXBvaW50ZXIud3AtcG9pbnRlci10b3AgLndwLXBvaW50ZXItYXJyb3ctaW5uZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZmFmYWZhfS5mcy1vcHQtaW4tcG9pbnRlci53cC1wb2ludGVyLWJvdHRvbSAud3AtcG9pbnRlci1hcnJvd3tib3JkZXItdG9wLWNvbG9yOiNkZmRmZGZ9LmZzLW9wdC1pbi1wb2ludGVyLndwLXBvaW50ZXItYm90dG9tIC53cC1wb2ludGVyLWFycm93LWlubmVye2JvcmRlci10b3AtY29sb3I6I2ZhZmFmYX0uZnMtb3B0LWluLXBvaW50ZXIud3AtcG9pbnRlci1sZWZ0IC53cC1wb2ludGVyLWFycm93e2JvcmRlci1yaWdodC1jb2xvcjojZGZkZmRmfS5mcy1vcHQtaW4tcG9pbnRlci53cC1wb2ludGVyLWxlZnQgLndwLXBvaW50ZXItYXJyb3ctaW5uZXJ7Ym9yZGVyLXJpZ2h0LWNvbG9yOiNmYWZhZmF9LmZzLW9wdC1pbi1wb2ludGVyLndwLXBvaW50ZXItcmlnaHQgLndwLXBvaW50ZXItYXJyb3d7Ym9yZGVyLWxlZnQtY29sb3I6I2RmZGZkZn0uZnMtb3B0LWluLXBvaW50ZXIud3AtcG9pbnRlci1yaWdodCAud3AtcG9pbnRlci1hcnJvdy1pbm5lcntib3JkZXItbGVmdC1jb2xvcjojZmFmYWZhfVxuIl19 */
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 .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key .fs-sites-list-container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#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-license-sync-disclaimer{text-align:center;margin-top:0}#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 .fs-switch{float:right}#fs_connect .fs-permissions ul li .fs-permission-description{margin-left:55px}#fs_connect .fs-permissions ul li .fs-permission-description span{font-weight:bold;text-transform:uppercase;color:#23282d}#fs_connect .fs-permissions ul li .fs-permission-description p{margin:2px 0 0 0}#fs_connect .fs-permissions.fs-open{background:#fff}#fs_connect .fs-permissions.fs-open ul{overflow:initial;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-freemium-licensing{padding:8px;background:#777;color:#fff}#fs_connect .fs-freemium-licensing p{text-align:center;display:block;margin:0;padding:0}#fs_connect .fs-freemium-licensing a{color:#C2EEFF;text-decoration:underline}#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}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:rgba(0,0,0,0.8);color:#fff !important;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:-17px;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-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);line-height:1.3em;font-weight:bold;text-align:left;text-transform:none !important}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right;left:auto;right:-17px}.fs-tooltip-trigger .fs-tooltip::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,0.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}#fs_marketing_optin{display:none;margin-top:10px;border:1px solid #ccc;padding:10px;line-height:1.5em}#fs_marketing_optin .fs-message{display:block;margin-bottom:5px;font-size:1.05em;font-weight:600}#fs_marketing_optin.error{border:1px solid #d3135a;background:#fee}#fs_marketing_optin.error .fs-message{color:#d3135a}#fs_marketing_optin .fs-input-container{margin-top:5px}#fs_marketing_optin .fs-input-container label{margin-top:5px;display:block}#fs_marketing_optin .fs-input-container label input{float:left;margin:1px 0 0 0}#fs_marketing_optin .fs-input-container label:first-child{display:block;margin-bottom:2px}#fs_marketing_optin .fs-input-label{display:block;margin-left:20px}#fs_marketing_optin .fs-input-label .underlined{text-decoration:underline}.rtl #fs_marketing_optin .fs-input-container label input{float:right}.rtl #fs_marketing_optin .fs-input-label{margin-left:0;margin-right:20px}.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 .fs-permission-description{margin-right:55px;margin-left:0}.rtl #fs_connect .fs-permissions ul li .fs-switch{float:left}.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}#fs_theme_connect_wrapper{position:fixed;top:0;height:100%;width:100%;z-index:99990;background:rgba(0,0,0,0.75);text-align:center;overflow-y:auto}#fs_theme_connect_wrapper:before{content:"";display:inline-block;vertical-align:middle;height:100%}#fs_theme_connect_wrapper>button.close{color:white;cursor:pointer;height:40px;width:40px;position:absolute;right:0;border:0;background-color:transparent;top:32px}#fs_theme_connect_wrapper #fs_connect{top:0;text-align:left;display:inline-block;vertical-align:middle;margin-top:52px;margin-bottom:20px}#fs_theme_connect_wrapper #fs_connect .fs-terms{background:rgba(140,140,140,0.64)}#fs_theme_connect_wrapper #fs_connect .fs-terms,#fs_theme_connect_wrapper #fs_connect .fs-terms a{color:#c5c5c5}.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}#license_issues_link{display:block;text-align:center;font-size:0.9em;margin-top:10px}
 
freemius/assets/css/admin/debug.css CHANGED
@@ -1,2 +1 @@
1
  .fs-switch-label{font-size:20px;line-height:31px;margin:0 5px}#fs_log_book table{font-family:Consolas,Monaco,monospace;font-size:12px}#fs_log_book table th{color:#ccc}#fs_log_book table tr{background:#232525}#fs_log_book table tr.alternate{background:#2b2b2b}#fs_log_book table tr td.fs-col--logger{color:#5a7435}#fs_log_book table tr td.fs-col--type{color:#ffc861}#fs_log_book table tr td.fs-col--function{color:#a7b7b1;font-weight:bold}#fs_log_book table tr td.fs-col--message,#fs_log_book table tr td.fs-col--message a{color:#9a73ac !important}#fs_log_book table tr td.fs-col--file{color:#d07922}#fs_log_book table tr td.fs-col--timestamp{color:#6596be}
2
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRlYnVnLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUIsZUFBZSxpQkFBaUIsWUFBWSxDQUFDLG1CQUFtQixzQ0FBc0MsY0FBYyxDQUFDLHNCQUFzQixVQUFVLENBQUMsc0JBQXNCLGtCQUFrQixDQUFDLGdDQUFnQyxrQkFBa0IsQ0FBQyx3Q0FBd0MsYUFBYSxDQUFDLHNDQUFzQyxhQUFhLENBQUMsMENBQTBDLGNBQWMsZ0JBQWdCLENBQUMsb0ZBQW9GLHdCQUF3QixDQUFDLHNDQUFzQyxhQUFhLENBQUMsMkNBQTJDLGFBQWEsQ0FBQyIsImZpbGUiOiJkZWJ1Zy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZnMtc3dpdGNoLWxhYmVse2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjMxcHg7bWFyZ2luOjAgNXB4fSNmc19sb2dfYm9vayB0YWJsZXtmb250LWZhbWlseTpDb25zb2xhcyxNb25hY28sbW9ub3NwYWNlO2ZvbnQtc2l6ZToxMnB4fSNmc19sb2dfYm9vayB0YWJsZSB0aHtjb2xvcjojY2NjfSNmc19sb2dfYm9vayB0YWJsZSB0cntiYWNrZ3JvdW5kOiMyMzI1MjV9I2ZzX2xvZ19ib29rIHRhYmxlIHRyLmFsdGVybmF0ZXtiYWNrZ3JvdW5kOiMyYjJiMmJ9I2ZzX2xvZ19ib29rIHRhYmxlIHRyIHRkLmZzLWNvbC0tbG9nZ2Vye2NvbG9yOiM1YTc0MzV9I2ZzX2xvZ19ib29rIHRhYmxlIHRyIHRkLmZzLWNvbC0tdHlwZXtjb2xvcjojZmZjODYxfSNmc19sb2dfYm9vayB0YWJsZSB0ciB0ZC5mcy1jb2wtLWZ1bmN0aW9ue2NvbG9yOiNhN2I3YjE7Zm9udC13ZWlnaHQ6Ym9sZH0jZnNfbG9nX2Jvb2sgdGFibGUgdHIgdGQuZnMtY29sLS1tZXNzYWdlLCNmc19sb2dfYm9vayB0YWJsZSB0ciB0ZC5mcy1jb2wtLW1lc3NhZ2UgYXtjb2xvcjojOWE3M2FjICFpbXBvcnRhbnR9I2ZzX2xvZ19ib29rIHRhYmxlIHRyIHRkLmZzLWNvbC0tZmlsZXtjb2xvcjojZDA3OTIyfSNmc19sb2dfYm9vayB0YWJsZSB0ciB0ZC5mcy1jb2wtLXRpbWVzdGFtcHtjb2xvcjojNjU5NmJlfVxuIl19 */
1
  .fs-switch-label{font-size:20px;line-height:31px;margin:0 5px}#fs_log_book table{font-family:Consolas,Monaco,monospace;font-size:12px}#fs_log_book table th{color:#ccc}#fs_log_book table tr{background:#232525}#fs_log_book table tr.alternate{background:#2b2b2b}#fs_log_book table tr td.fs-col--logger{color:#5a7435}#fs_log_book table tr td.fs-col--type{color:#ffc861}#fs_log_book table tr td.fs-col--function{color:#a7b7b1;font-weight:bold}#fs_log_book table tr td.fs-col--message,#fs_log_book table tr td.fs-col--message a{color:#9a73ac !important}#fs_log_book table tr td.fs-col--file{color:#d07922}#fs_log_book table tr td.fs-col--timestamp{color:#6596be}
 
freemius/assets/css/admin/dialog-boxes.css CHANGED
@@ -1,3 +1,2 @@
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 .dashicons{vertical-align:middle}.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%;-webkit-box-sizing:border-box;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.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal.fs-success .fs-modal-header{border-bottom-color:#46b450}.fs-modal.fs-success .fs-modal-body{background-color:#f7fff7}.fs-modal.fs-warn .fs-modal-header{border-bottom-color:#ffb900}.fs-modal.fs-warn .fs-modal-body{background-color:#fff8e5}.fs-modal.fs-error .fs-modal-header{border-bottom-color:#dc3232}.fs-modal.fs-error .fs-modal-body{background-color:#ffeaea}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-header{border-bottom:#eeeeee solid 1px;background:#fbfbfb;padding:15px 20px;position:relative;margin-bottom:-10px}.fs-modal .fs-modal-header h4{margin:0;padding:0;text-transform:uppercase;font-size:1.2em;font-weight:bold;color:#cacaca;text-shadow:1px 1px 1px #fff;letter-spacing:0.6px;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{position:absolute;right:10px;top:12px;cursor:pointer;color:#bbb;border-radius:20px;padding:3px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{color:#fff;background:#aaa}.fs-modal .fs-modal-header .fs-close .dashicons,.fs-modal .fs-modal-header .fs-close:hover .dashicons{text-decoration:none}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px;line-height:1.5em}.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>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{right:auto;left:20px}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .reason-input,.fs-modal.fs-modal-deactivation-feedback .internal-message{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width: 650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label{float:left}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0 !important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{margin-top:0;line-height:1.5em}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-subscription-cancellation .fs-price-increase-warning{color:red;font-weight:bold;padding:0 25px;margin-bottom:0}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:left;top:5px;position:relative}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:right}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{display:block;margin-left:24px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{margin-left:0;margin-right:24px}.fs-modal.fs-modal-license-activation .fs-modal-body input.fs-license-key{width:100%}.fs-license-options-container table,.fs-license-options-container table select,.fs-license-options-container table .fs-available-license-key{width:100%}.fs-license-options-container table td:first-child{width:1%}.fs-license-options-container table .fs-other-license-key-container label{position:relative;top:6px;float:left;margin-right:5px}.fs-license-options-container table .fs-other-license-key-container div{overflow:hidden;width:auto;height:30px;display:block;top:2px;position:relative}.fs-license-options-container table .fs-other-license-key-container div input{margin:0}.fs-sites-list-container td{cursor:pointer}.fs-modal.fs-modal-user-change .fs-modal-body input#fs_other_email_address{width:100%}.fs-user-change-options-container table{width:100%;border-collapse:collapse}.fs-user-change-options-container table tr{display:block;margin-bottom:2px}.fs-user-change-options-container table .fs-email-address-container td{display:inline-block}.fs-user-change-options-container table .fs-email-address-container input[type="radio"]{margin-bottom:0;margin-top:0}.fs-user-change-options-container table .fs-other-email-address-container{width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div{display:table;width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div label,.fs-user-change-options-container table .fs-other-email-address-container>div>div{display:table-cell}.fs-user-change-options-container table .fs-other-email-address-container>div label{width:1%;padding-left:3px;padding-right:3px}.fs-user-change-options-container table .fs-other-email-address-container>div>div{width:auto}.fs-user-change-options-container table .fs-other-email-address-container>div>div input{width:100%}.fs-modal.fs-modal-developer-license-debug-mode .fs-modal-body input.fs-license-or-user-key{width:100%}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{-webkit-box-shadow:none;box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-modal.fs-modal-license-key-resend .email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend.fs-freemium input.email-address{width:300px}.fs-modal.fs-modal-license-key-resend.fs-freemium label{display:block;margin-bottom:10px}.fs-modal.fs-modal-license-key-resend.fs-premium input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{float:right;margin-left:7px}@media (max-width: 650px){.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{margin-top:2px}}
2
- .rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-right:7px;margin-left:0}a.show-license-resend-modal{margin-top:4px;display:inline-block}.fs-ajax-loader{position:relative;width:170px;height:20px;margin:auto}.fs-ajax-loader .fs-ajax-loader-bar{position:absolute;top:0;background-color:#0074a3;width:20px;height:20px;-webkit-animation-name:bounce_ajaxLoader;animation-name:bounce_ajaxLoader;-webkit-animation-duration:1.5s;animation-duration:1.5s;animation-iteration-count:infinite;-o-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-webkit-animation-direction:normal;animation-direction:normal;-webkit-transform:0.3;transform:0.3}.fs-ajax-loader .fs-ajax-loader-bar-1{left:0px;animation-delay:0.6s;-o-animation-delay:0.6s;-ms-animation-delay:0.6s;-webkit-animation-delay:0.6s;-moz-animation-delay:0.6s}.fs-ajax-loader .fs-ajax-loader-bar-2{left:19px;animation-delay:0.75s;-o-animation-delay:0.75s;-ms-animation-delay:0.75s;-webkit-animation-delay:0.75s;-moz-animation-delay:0.75s}.fs-ajax-loader .fs-ajax-loader-bar-3{left:38px;animation-delay:0.9s;-o-animation-delay:0.9s;-ms-animation-delay:0.9s;-webkit-animation-delay:0.9s;-moz-animation-delay:0.9s}.fs-ajax-loader .fs-ajax-loader-bar-4{left:57px;animation-delay:1.05s;-o-animation-delay:1.05s;-ms-animation-delay:1.05s;-webkit-animation-delay:1.05s;-moz-animation-delay:1.05s}.fs-ajax-loader .fs-ajax-loader-bar-5{left:76px;animation-delay:1.2s;-o-animation-delay:1.2s;-ms-animation-delay:1.2s;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s}.fs-ajax-loader .fs-ajax-loader-bar-6{left:95px;animation-delay:1.35s;-o-animation-delay:1.35s;-ms-animation-delay:1.35s;-webkit-animation-delay:1.35s;-moz-animation-delay:1.35s}.fs-ajax-loader .fs-ajax-loader-bar-7{left:114px;animation-delay:1.5s;-o-animation-delay:1.5s;-ms-animation-delay:1.5s;-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s}.fs-ajax-loader .fs-ajax-loader-bar-8{left:133px;animation-delay:1.65s;-o-animation-delay:1.65s;-ms-animation-delay:1.65s;-webkit-animation-delay:1.65s;-moz-animation-delay:1.65s}@-webkit-keyframes bounce_ajaxLoader{0%{-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@keyframes bounce_ajaxLoader{0%{-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}.fs-modal-auto-install #request-filesystem-credentials-form h2,.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;padding:10px 10px 5px 10px;width:300px;max-width:100%}.fs-modal-auto-install #request-filesystem-credentials-form>div,.fs-modal-auto-install #request-filesystem-credentials-form label,.fs-modal-auto-install #request-filesystem-credentials-form fieldset{width:300px;max-width:100%;margin:0 auto;display:block}.button-primary.warn{-webkit-box-shadow:0 1px 0 #d2593c;box-shadow:0 1px 0 #d2593c;text-shadow:0 -1px 1px #d2593c,1px 0 1px #d2593c,0 1px 1px #d2593c,-1px 0 1px #d2593c;background:#f56a48;border-color:#ec6544 #d2593c #d2593c}.button-primary.warn:hover{background:#fd6d4a;border-color:#d2593c}.button-primary.warn:focus{-webkit-box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796;box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796}.button-primary.warn:active{background:#dd6041;border-color:#d2593c;-webkit-box-shadow:inset 0 2px 0 #d2593c;box-shadow:inset 0 2px 0 #d2593c}.button-primary.warn.disabled{color:#f5b3a1 !important;background:#e76444 !important;border-color:#d85e40 !important;text-shadow:0 -1px 0 rgba(0,0,0,0.1) !important}
3
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRpYWxvZy1ib3hlcy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVSxlQUFlLGNBQWMsWUFBWSxXQUFXLE1BQU0sZUFBZSxhQUFhLDBCQUEwQixDQUFDLHFCQUFxQixxQkFBcUIsQ0FBQywyQkFBMkIsdUJBQXVCLGtCQUFrQixTQUFTLG1CQUFtQixvQkFBb0IsVUFBVSxlQUFlLFdBQVcsQ0FBQywwQkFBMEIsMkJBQTJCLGlCQUFpQiw4QkFBQSxzQkFBc0Isa0JBQWtCLG1CQUFtQixVQUFVLENBQUMscURBQXFELGVBQWUsQ0FBQyxDQUFDLGlCQUFpQixhQUFhLENBQUMsd0JBQXdCLGFBQWEsQ0FBQyxrQ0FBa0MsT0FBTyxDQUFDLHNDQUFzQywyQkFBMkIsQ0FBQyxvQ0FBb0Msd0JBQXdCLENBQUMsbUNBQW1DLDJCQUEyQixDQUFDLGlDQUFpQyx3QkFBd0IsQ0FBQyxvQ0FBb0MsMkJBQTJCLENBQUMsa0NBQWtDLHdCQUF3QixDQUFDLG9EQUFvRCxTQUFTLG1CQUFtQixZQUFZLENBQUMsMkJBQTJCLGdDQUFnQyxtQkFBbUIsa0JBQWtCLGtCQUFrQixtQkFBbUIsQ0FBQyw4QkFBOEIsU0FBUyxVQUFVLHlCQUF5QixnQkFBZ0IsaUJBQWlCLGNBQWMsNkJBQTZCLHFCQUFxQixrQ0FBa0MsQ0FBQyxxQ0FBcUMsa0JBQWtCLFdBQVcsU0FBUyxlQUFlLFdBQVcsbUJBQXNFLFlBQVksd0NBQW9KLCtCQUErQixDQUFDLDJDQUEyQyxXQUFXLGVBQWUsQ0FBQyxzR0FBc0csb0JBQW9CLENBQUMseUJBQXlCLGVBQWUsQ0FBQywyQkFBMkIsY0FBYyxDQUFDLDRCQUE0QixlQUFlLGlCQUFpQixDQUFDLDZCQUE2QixlQUFlLENBQUMsZ0NBQWdDLGlCQUFpQixlQUFlLFlBQVksQ0FBQywyQkFBMkIsNkJBQTZCLGdCQUFnQixDQUFDLG1DQUFtQyxZQUFZLENBQUMsK0NBQStDLFFBQVEsQ0FBQyx5Q0FBeUMsU0FBUyxZQUFZLENBQUMsdUNBQXVDLFlBQVksQ0FBQywwQ0FBMEMsV0FBVyxTQUFTLENBQUMsa0JBQWtCLGVBQWUsQ0FBQyxrSEFBa0gscUJBQXFCLENBQUMsa1FBQWtRLFVBQVUsQ0FBQywwRkFBMEYsc0JBQXNCLFlBQVksWUFBWSxDQUFDLDBCQUEwQiw2REFBNkQsa0JBQWtCLENBQUMsMEpBQTBKLGdCQUFnQixDQUFDLG1FQUFtRSxhQUFhLENBQUMsd0VBQXdFLG1CQUFtQixlQUFlLENBQUMsQ0FBQyxtRUFBbUUsVUFBVSxDQUFDLHlEQUF5RCx1QkFBdUIsQ0FBQyw0REFBNEQsYUFBYSxpQkFBaUIsQ0FBQywrQkFBK0IsWUFBWSxDQUFDLHdFQUF3RSxVQUFVLGlCQUFpQixlQUFlLGVBQWUsQ0FBQyxpRkFBaUYsV0FBVyxRQUFRLGlCQUFpQixDQUFDLHNGQUFzRixXQUFXLENBQUMsZ0ZBQWdGLGNBQWMsZ0JBQWdCLENBQUMscUZBQXFGLGNBQWMsaUJBQWlCLENBQUMsMEVBQTBFLFVBQVUsQ0FBQyw2SUFBNkksVUFBVSxDQUFDLG1EQUFtRCxRQUFRLENBQUMsMEVBQTBFLGtCQUFrQixRQUFRLFdBQVcsZ0JBQWdCLENBQUMsd0VBQXdFLGdCQUFnQixXQUFXLFlBQVksY0FBYyxRQUFRLGlCQUFpQixDQUFDLDhFQUE4RSxRQUFRLENBQUMsNEJBQTRCLGNBQWMsQ0FBQywyRUFBMkUsVUFBVSxDQUFDLHdDQUF3QyxXQUFXLHdCQUF3QixDQUFDLDJDQUEyQyxjQUFjLGlCQUFpQixDQUFDLHVFQUF1RSxvQkFBb0IsQ0FBQyx3RkFBd0YsZ0JBQWdCLFlBQVksQ0FBQywwRUFBMEUsVUFBVSxDQUFDLDhFQUE4RSxjQUFjLFVBQVUsQ0FBQyxzS0FBc0ssa0JBQWtCLENBQUMsb0ZBQW9GLFNBQVMsaUJBQWlCLGlCQUFpQixDQUFDLGtGQUFrRixVQUFVLENBQUMsd0ZBQXdGLFVBQVUsQ0FBQyw0RkFBNEYsVUFBVSxDQUFDLGdDQUFnQyxnQkFBZ0Isc0JBQXNCLFdBQVcsQ0FBQyxrQ0FBa0Msb0JBQW9CLENBQUMsd0NBQXdDLHdCQUFBLGVBQWUsQ0FBQywyQ0FBMkMsZ0JBQWdCLENBQUMsc0RBQXNELGNBQWMsU0FBUyxDQUFDLDRFQUE0RSxnQkFBZ0IsQ0FBQyxpR0FBaUcsWUFBWSxDQUFDLHlEQUF5RCxhQUFhLGFBQWEsQ0FBQyxrRUFBa0UsMEJBQTBCLGVBQWUsQ0FBQywrREFBK0QsZ0JBQWdCLGlCQUFpQixDQUFDLHNFQUFzRSxXQUFXLENBQUMsd0RBQXdELGNBQWMsa0JBQWtCLENBQUMscUVBQXFFLFVBQVUsQ0FBQyxtRUFBbUUsWUFBWSxlQUFlLENBQUMsMEJBQTBCLG1FQUFtRSxjQUFjLENBQUMsQ0FBQztBQUM3a1Asb0dBQW9HLGlCQUFpQixlQUFlLENBQUMsNEVBQTRFLFdBQVcsaUJBQWlCLGFBQWEsQ0FBQyw0QkFBNEIsZUFBZSxvQkFBb0IsQ0FBQyxnQkFBZ0Isa0JBQWtCLFlBQVksWUFBWSxXQUFXLENBQUMsb0NBQW9DLGtCQUFrQixNQUFNLHlCQUF5QixXQUFXLFlBQVkseUNBQXlDLGlDQUFnSixnQ0FBZ0Msd0JBQTRHLG1DQUFtQyxzQ0FBc0MsdUNBQXVDLDJDQUEyQyx3Q0FBd0MsbUNBQW1DLDJCQUF3SCxzQkFBNEUsYUFBYSxDQUFDLHNDQUFzQyxTQUFTLHFCQUFxQix3QkFBd0IseUJBQXlCLDZCQUE2Qix5QkFBeUIsQ0FBQyxzQ0FBc0MsVUFBVSxzQkFBc0IseUJBQXlCLDBCQUEwQiw4QkFBOEIsMEJBQTBCLENBQUMsc0NBQXNDLFVBQVUscUJBQXFCLHdCQUF3Qix5QkFBeUIsNkJBQTZCLHlCQUF5QixDQUFDLHNDQUFzQyxVQUFVLHNCQUFzQix5QkFBeUIsMEJBQTBCLDhCQUE4QiwwQkFBMEIsQ0FBQyxzQ0FBc0MsVUFBVSxxQkFBcUIsd0JBQXdCLHlCQUF5Qiw2QkFBNkIseUJBQXlCLENBQUMsc0NBQXNDLFVBQVUsc0JBQXNCLHlCQUF5QiwwQkFBMEIsOEJBQThCLDBCQUEwQixDQUFDLHNDQUFzQyxXQUFXLHFCQUFxQix3QkFBd0IseUJBQXlCLDZCQUE2Qix5QkFBeUIsQ0FBQyxzQ0FBc0MsV0FBVyxzQkFBc0IseUJBQXlCLDBCQUEwQiw4QkFBOEIsMEJBQTBCLENBQUMscUNBQWdnQyxHQUF3RSwyQkFBMkIsbUJBQW1CLHdCQUF3QixDQUFDLEtBQWdGLDZCQUE2QixxQkFBcUIscUJBQXFCLENBQUMsQ0FBQyw2QkFBNkIsR0FBd0UsMkJBQTJCLG1CQUFtQix3QkFBd0IsQ0FBQyxLQUFnRiw2QkFBNkIscUJBQXFCLHFCQUFxQixDQUFDLENBQUMsMEtBQTBLLFlBQVksQ0FBQyw0T0FBNE8sd0JBQXdCLDJCQUEyQixZQUFZLGNBQWMsQ0FBQyx1TUFBdU0sWUFBWSxlQUFlLGNBQWMsYUFBYSxDQUFDLHFCQUFxQixtQ0FBQSwyQkFBMkIsc0ZBQXNGLG1CQUFtQixvQ0FBb0MsQ0FBQywyQkFBMkIsbUJBQW1CLG9CQUFvQixDQUFDLDJCQUEyQix1REFBQSw4Q0FBOEMsQ0FBQyw0QkFBNEIsbUJBQW1CLHFCQUFxQix5Q0FBQSxnQ0FBZ0MsQ0FBQyw4QkFBOEIseUJBQXlCLDhCQUE4QixnQ0FBZ0MsK0NBQStDLENBQUMiLCJmaWxlIjoiZGlhbG9nLWJveGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mcy1tb2RhbHtwb3NpdGlvbjpmaXhlZDtvdmVyZmxvdzphdXRvO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7dG9wOjA7ei1pbmRleDoxMDAwMDA7ZGlzcGxheTpub25lO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpfS5mcy1tb2RhbCAuZGFzaGljb25ze3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZnMtbW9kYWwgLmZzLW1vZGFsLWRpYWxvZ3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0yOThweDtwYWRkaW5nLWJvdHRvbTozMHB4O3RvcDotMTAwJTt6LWluZGV4OjEwMDAwMTt3aWR0aDo1OTZweH1AbWVkaWEgKG1heC13aWR0aDogNjUwcHgpey5mcy1tb2RhbCAuZnMtbW9kYWwtZGlhbG9ne21hcmdpbi1sZWZ0Oi01MCU7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctcmlnaHQ6MTBweDt3aWR0aDoxMDAlfS5mcy1tb2RhbCAuZnMtbW9kYWwtZGlhbG9nIC5mcy1tb2RhbC1wYW5lbD5oMz5zdHJvbmd7Zm9udC1zaXplOjEuM2VtfX0uZnMtbW9kYWwuYWN0aXZle2Rpc3BsYXk6YmxvY2t9LmZzLW1vZGFsLmFjdGl2ZTpiZWZvcmV7ZGlzcGxheTpibG9ja30uZnMtbW9kYWwuYWN0aXZlIC5mcy1tb2RhbC1kaWFsb2d7dG9wOjEwJX0uZnMtbW9kYWwuZnMtc3VjY2VzcyAuZnMtbW9kYWwtaGVhZGVye2JvcmRlci1ib3R0b20tY29sb3I6IzQ2YjQ1MH0uZnMtbW9kYWwuZnMtc3VjY2VzcyAuZnMtbW9kYWwtYm9keXtiYWNrZ3JvdW5kLWNvbG9yOiNmN2ZmZjd9LmZzLW1vZGFsLmZzLXdhcm4gLmZzLW1vZGFsLWhlYWRlcntib3JkZXItYm90dG9tLWNvbG9yOiNmZmI5MDB9LmZzLW1vZGFsLmZzLXdhcm4gLmZzLW1vZGFsLWJvZHl7YmFja2dyb3VuZC1jb2xvcjojZmZmOGU1fS5mcy1tb2RhbC5mcy1lcnJvciAuZnMtbW9kYWwtaGVhZGVye2JvcmRlci1ib3R0b20tY29sb3I6I2RjMzIzMn0uZnMtbW9kYWwuZnMtZXJyb3IgLmZzLW1vZGFsLWJvZHl7YmFja2dyb3VuZC1jb2xvcjojZmZlYWVhfS5mcy1tb2RhbCAuZnMtbW9kYWwtYm9keSwuZnMtbW9kYWwgLmZzLW1vZGFsLWZvb3Rlcntib3JkZXI6MDtiYWNrZ3JvdW5kOiNmZWZlZmU7cGFkZGluZzoyMHB4fS5mcy1tb2RhbCAuZnMtbW9kYWwtaGVhZGVye2JvcmRlci1ib3R0b206I2VlZWVlZSBzb2xpZCAxcHg7YmFja2dyb3VuZDojZmJmYmZiO3BhZGRpbmc6MTVweCAyMHB4O3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1ib3R0b206LTEwcHh9LmZzLW1vZGFsIC5mcy1tb2RhbC1oZWFkZXIgaDR7bWFyZ2luOjA7cGFkZGluZzowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXNpemU6MS4yZW07Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojY2FjYWNhO3RleHQtc2hhZG93OjFweCAxcHggMXB4ICNmZmY7bGV0dGVyLXNwYWNpbmc6MC42cHg7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZH0uZnMtbW9kYWwgLmZzLW1vZGFsLWhlYWRlciAuZnMtY2xvc2V7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDt0b3A6MTJweDtjdXJzb3I6cG9pbnRlcjtjb2xvcjojYmJiOy1tb3otYm9yZGVyLXJhZGl1czoyMHB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czoyMHB4O2JvcmRlci1yYWRpdXM6MjBweDtwYWRkaW5nOjNweDstbW96LXRyYW5zaXRpb246YWxsIDAuMnMgZWFzZS1pbi1vdXQ7LW8tdHJhbnNpdGlvbjphbGwgMC4ycyBlYXNlLWluLW91dDstbXMtdHJhbnNpdGlvbjphbGwgMC4ycyBlYXNlLWluLW91dDstd2Via2l0LXRyYW5zaXRpb246YWxsIDAuMnMgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbjphbGwgMC4ycyBlYXNlLWluLW91dH0uZnMtbW9kYWwgLmZzLW1vZGFsLWhlYWRlciAuZnMtY2xvc2U6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiNhYWF9LmZzLW1vZGFsIC5mcy1tb2RhbC1oZWFkZXIgLmZzLWNsb3NlIC5kYXNoaWNvbnMsLmZzLW1vZGFsIC5mcy1tb2RhbC1oZWFkZXIgLmZzLWNsb3NlOmhvdmVyIC5kYXNoaWNvbnN7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmZzLW1vZGFsIC5mcy1tb2RhbC1ib2R5e2JvcmRlci1ib3R0b206MH0uZnMtbW9kYWwgLmZzLW1vZGFsLWJvZHkgcHtmb250LXNpemU6MTRweH0uZnMtbW9kYWwgLmZzLW1vZGFsLWJvZHkgaDJ7Zm9udC1zaXplOjIwcHg7bGluZS1oZWlnaHQ6MS41ZW19LmZzLW1vZGFsIC5mcy1tb2RhbC1ib2R5PmRpdnttYXJnaW4tdG9wOjEwcHh9LmZzLW1vZGFsIC5mcy1tb2RhbC1ib2R5PmRpdiBoMntmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToyMHB4O21hcmdpbi10b3A6MH0uZnMtbW9kYWwgLmZzLW1vZGFsLWZvb3Rlcntib3JkZXItdG9wOiNlZWVlZWUgc29saWQgMXB4O3RleHQtYWxpZ246cmlnaHR9LmZzLW1vZGFsIC5mcy1tb2RhbC1mb290ZXI+LmJ1dHRvbnttYXJnaW46MCA3cHh9LmZzLW1vZGFsIC5mcy1tb2RhbC1mb290ZXI+LmJ1dHRvbjpmaXJzdC1jaGlsZHttYXJnaW46MH0uZnMtbW9kYWwgLmZzLW1vZGFsLXBhbmVsPi5ub3RpY2UuaW5saW5le21hcmdpbjowO2Rpc3BsYXk6bm9uZX0uZnMtbW9kYWwgLmZzLW1vZGFsLXBhbmVsOm5vdCguYWN0aXZlKXtkaXNwbGF5Om5vbmV9LnJ0bCAuZnMtbW9kYWwgLmZzLW1vZGFsLWhlYWRlciAuZnMtY2xvc2V7cmlnaHQ6YXV0bztsZWZ0OjIwcHh9Ym9keS5oYXMtZnMtbW9kYWx7b3ZlcmZsb3c6aGlkZGVufS5mcy1tb2RhbC5mcy1tb2RhbC1kZWFjdGl2YXRpb24tZmVlZGJhY2sgLnJlYXNvbi1pbnB1dCwuZnMtbW9kYWwuZnMtbW9kYWwtZGVhY3RpdmF0aW9uLWZlZWRiYWNrIC5pbnRlcm5hbC1tZXNzYWdle21hcmdpbjozcHggMCAzcHggMjJweH0uZnMtbW9kYWwuZnMtbW9kYWwtZGVhY3RpdmF0aW9uLWZlZWRiYWNrIC5yZWFzb24taW5wdXQgaW5wdXQsLmZzLW1vZGFsLmZzLW1vZGFsLWRlYWN0aXZhdGlvbi1mZWVkYmFjayAucmVhc29uLWlucHV0IHRleHRhcmVhLC5mcy1tb2RhbC5mcy1tb2RhbC1kZWFjdGl2YXRpb24tZmVlZGJhY2sgLmludGVybmFsLW1lc3NhZ2UgaW5wdXQsLmZzLW1vZGFsLmZzLW1vZGFsLWRlYWN0aXZhdGlvbi1mZWVkYmFjayAuaW50ZXJuYWwtbWVzc2FnZSB0ZXh0YXJlYXt3aWR0aDoxMDAlfS5mcy1tb2RhbC5mcy1tb2RhbC1kZWFjdGl2YXRpb24tZmVlZGJhY2sgbGkucmVhc29uLmhhcy1pbnRlcm5hbC1tZXNzYWdlIC5pbnRlcm5hbC1tZXNzYWdle2JvcmRlcjoxcHggc29saWQgI2NjYztwYWRkaW5nOjdweDtkaXNwbGF5Om5vbmV9QG1lZGlhIChtYXgtd2lkdGg6IDY1MHB4KXsuZnMtbW9kYWwuZnMtbW9kYWwtZGVhY3RpdmF0aW9uLWZlZWRiYWNrIGxpLnJlYXNvbiBsaS5yZWFzb257bWFyZ2luLWJvdHRvbToxMHB4fS5mcy1tb2RhbC5mcy1tb2RhbC1kZWFjdGl2YXRpb24tZmVlZGJhY2sgbGkucmVhc29uIGxpLnJlYXNvbiAucmVhc29uLWlucHV0LC5mcy1tb2RhbC5mcy1tb2RhbC1kZWFjdGl2YXRpb24tZmVlZGJhY2sgbGkucmVhc29uIGxpLnJlYXNvbiAuaW50ZXJuYWwtbWVzc2FnZXttYXJnaW4tbGVmdDoyOXB4fS5mcy1tb2RhbC5mcy1tb2RhbC1kZWFjdGl2YXRpb24tZmVlZGJhY2sgbGkucmVhc29uIGxpLnJlYXNvbiBsYWJlbHtkaXNwbGF5OnRhYmxlfS5mcy1tb2RhbC5mcy1tb2RhbC1kZWFjdGl2YXRpb24tZmVlZGJhY2sgbGkucmVhc29uIGxpLnJlYXNvbiBsYWJlbD5zcGFue2Rpc3BsYXk6dGFibGUtY2VsbDtmb250LXNpemU6MS4zZW19fS5mcy1tb2RhbC5mcy1tb2RhbC1kZWFjdGl2YXRpb24tZmVlZGJhY2sgLmFub255bW91cy1mZWVkYmFjay1sYWJlbHtmbG9hdDpsZWZ0fS5mcy1tb2RhbC5mcy1tb2RhbC1kZWFjdGl2YXRpb24tZmVlZGJhY2sgLmZzLW1vZGFsLXBhbmVse21hcmdpbi10b3A6MCAhaW1wb3J0YW50fS5mcy1tb2RhbC5mcy1tb2RhbC1kZWFjdGl2YXRpb24tZmVlZGJhY2sgLmZzLW1vZGFsLXBhbmVsIGgze21hcmdpbi10b3A6MDtsaW5lLWhlaWdodDoxLjVlbX0jdGhlLWxpc3QgLmRlYWN0aXZhdGU+LmZzLXNsdWd7ZGlzcGxheTpub25lfS5mcy1tb2RhbC5mcy1tb2RhbC1zdWJzY3JpcHRpb24tY2FuY2VsbGF0aW9uIC5mcy1wcmljZS1pbmNyZWFzZS13YXJuaW5ne2NvbG9yOnJlZDtmb250LXdlaWdodDpib2xkO3BhZGRpbmc6MCAyNXB4O21hcmdpbi1ib3R0b206MH0uZnMtbW9kYWwuZnMtbW9kYWwtc3Vic2NyaXB0aW9uLWNhbmNlbGxhdGlvbiB1bC5zdWJzY3JpcHRpb24tYWN0aW9ucyBsYWJlbCBpbnB1dHtmbG9hdDpsZWZ0O3RvcDo1cHg7cG9zaXRpb246cmVsYXRpdmV9LnJ0bCAuZnMtbW9kYWwuZnMtbW9kYWwtc3Vic2NyaXB0aW9uLWNhbmNlbGxhdGlvbiB1bC5zdWJzY3JpcHRpb24tYWN0aW9ucyBsYWJlbCBpbnB1dHtmbG9hdDpyaWdodH0uZnMtbW9kYWwuZnMtbW9kYWwtc3Vic2NyaXB0aW9uLWNhbmNlbGxhdGlvbiB1bC5zdWJzY3JpcHRpb24tYWN0aW9ucyBsYWJlbCBzcGFue2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWxlZnQ6MjRweH0ucnRsIC5mcy1tb2RhbC5mcy1tb2RhbC1zdWJzY3JpcHRpb24tY2FuY2VsbGF0aW9uIHVsLnN1YnNjcmlwdGlvbi1hY3Rpb25zIGxhYmVsIHNwYW57bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MjRweH0uZnMtbW9kYWwuZnMtbW9kYWwtbGljZW5zZS1hY3RpdmF0aW9uIC5mcy1tb2RhbC1ib2R5IGlucHV0LmZzLWxpY2Vuc2Uta2V5e3dpZHRoOjEwMCV9LmZzLWxpY2Vuc2Utb3B0aW9ucy1jb250YWluZXIgdGFibGUsLmZzLWxpY2Vuc2Utb3B0aW9ucy1jb250YWluZXIgdGFibGUgc2VsZWN0LC5mcy1saWNlbnNlLW9wdGlvbnMtY29udGFpbmVyIHRhYmxlIC5mcy1hdmFpbGFibGUtbGljZW5zZS1rZXl7d2lkdGg6MTAwJX0uZnMtbGljZW5zZS1vcHRpb25zLWNvbnRhaW5lciB0YWJsZSB0ZDpmaXJzdC1jaGlsZHt3aWR0aDoxJX0uZnMtbGljZW5zZS1vcHRpb25zLWNvbnRhaW5lciB0YWJsZSAuZnMtb3RoZXItbGljZW5zZS1rZXktY29udGFpbmVyIGxhYmVse3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDo2cHg7ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6NXB4fS5mcy1saWNlbnNlLW9wdGlvbnMtY29udGFpbmVyIHRhYmxlIC5mcy1vdGhlci1saWNlbnNlLWtleS1jb250YWluZXIgZGl2e292ZXJmbG93OmhpZGRlbjt3aWR0aDphdXRvO2hlaWdodDozMHB4O2Rpc3BsYXk6YmxvY2s7dG9wOjJweDtwb3NpdGlvbjpyZWxhdGl2ZX0uZnMtbGljZW5zZS1vcHRpb25zLWNvbnRhaW5lciB0YWJsZSAuZnMtb3RoZXItbGljZW5zZS1rZXktY29udGFpbmVyIGRpdiBpbnB1dHttYXJnaW46MH0uZnMtc2l0ZXMtbGlzdC1jb250YWluZXIgdGR7Y3Vyc29yOnBvaW50ZXJ9LmZzLW1vZGFsLmZzLW1vZGFsLXVzZXItY2hhbmdlIC5mcy1tb2RhbC1ib2R5IGlucHV0I2ZzX290aGVyX2VtYWlsX2FkZHJlc3N7d2lkdGg6MTAwJX0uZnMtdXNlci1jaGFuZ2Utb3B0aW9ucy1jb250YWluZXIgdGFibGV7d2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2V9LmZzLXVzZXItY2hhbmdlLW9wdGlvbnMtY29udGFpbmVyIHRhYmxlIHRye2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbToycHh9LmZzLXVzZXItY2hhbmdlLW9wdGlvbnMtY29udGFpbmVyIHRhYmxlIC5mcy1lbWFpbC1hZGRyZXNzLWNvbnRhaW5lciB0ZHtkaXNwbGF5OmlubGluZS1ibG9ja30uZnMtdXNlci1jaGFuZ2Utb3B0aW9ucy1jb250YWluZXIgdGFibGUgLmZzLWVtYWlsLWFkZHJlc3MtY29udGFpbmVyIGlucHV0W3R5cGU9XCJyYWRpb1wiXXttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDowfS5mcy11c2VyLWNoYW5nZS1vcHRpb25zLWNvbnRhaW5lciB0YWJsZSAuZnMtb3RoZXItZW1haWwtYWRkcmVzcy1jb250YWluZXJ7d2lkdGg6MTAwJX0uZnMtdXNlci1jaGFuZ2Utb3B0aW9ucy1jb250YWluZXIgdGFibGUgLmZzLW90aGVyLWVtYWlsLWFkZHJlc3MtY29udGFpbmVyPmRpdntkaXNwbGF5OnRhYmxlO3dpZHRoOjEwMCV9LmZzLXVzZXItY2hhbmdlLW9wdGlvbnMtY29udGFpbmVyIHRhYmxlIC5mcy1vdGhlci1lbWFpbC1hZGRyZXNzLWNvbnRhaW5lcj5kaXYgbGFiZWwsLmZzLXVzZXItY2hhbmdlLW9wdGlvbnMtY29udGFpbmVyIHRhYmxlIC5mcy1vdGhlci1lbWFpbC1hZGRyZXNzLWNvbnRhaW5lcj5kaXY+ZGl2e2Rpc3BsYXk6dGFibGUtY2VsbH0uZnMtdXNlci1jaGFuZ2Utb3B0aW9ucy1jb250YWluZXIgdGFibGUgLmZzLW90aGVyLWVtYWlsLWFkZHJlc3MtY29udGFpbmVyPmRpdiBsYWJlbHt3aWR0aDoxJTtwYWRkaW5nLWxlZnQ6M3B4O3BhZGRpbmctcmlnaHQ6M3B4fS5mcy11c2VyLWNoYW5nZS1vcHRpb25zLWNvbnRhaW5lciB0YWJsZSAuZnMtb3RoZXItZW1haWwtYWRkcmVzcy1jb250YWluZXI+ZGl2PmRpdnt3aWR0aDphdXRvfS5mcy11c2VyLWNoYW5nZS1vcHRpb25zLWNvbnRhaW5lciB0YWJsZSAuZnMtb3RoZXItZW1haWwtYWRkcmVzcy1jb250YWluZXI+ZGl2PmRpdiBpbnB1dHt3aWR0aDoxMDAlfS5mcy1tb2RhbC5mcy1tb2RhbC1kZXZlbG9wZXItbGljZW5zZS1kZWJ1Zy1tb2RlIC5mcy1tb2RhbC1ib2R5IGlucHV0LmZzLWxpY2Vuc2Utb3ItdXNlci1rZXl7d2lkdGg6MTAwJX0uZnMtbXVsdGlzaXRlLW9wdGlvbnMtY29udGFpbmVye21hcmdpbi10b3A6MTBweDtib3JkZXI6MXB4IHNvbGlkICNjY2M7cGFkZGluZzo1cHh9LmZzLW11bHRpc2l0ZS1vcHRpb25zLWNvbnRhaW5lciBhe3RleHQtZGVjb3JhdGlvbjpub25lfS5mcy1tdWx0aXNpdGUtb3B0aW9ucy1jb250YWluZXIgYTpmb2N1c3tib3gtc2hhZG93Om5vbmV9LmZzLW11bHRpc2l0ZS1vcHRpb25zLWNvbnRhaW5lciBhLnNlbGVjdGVke2ZvbnQtd2VpZ2h0OmJvbGR9LmZzLW11bHRpc2l0ZS1vcHRpb25zLWNvbnRhaW5lci5mcy1hcHBseS1vbi1hbGwtc2l0ZXN7Ym9yZGVyOjAgbm9uZTtwYWRkaW5nOjB9LmZzLW11bHRpc2l0ZS1vcHRpb25zLWNvbnRhaW5lci5mcy1hcHBseS1vbi1hbGwtc2l0ZXMgLmZzLWFsbC1zaXRlcy1vcHRpb25ze2JvcmRlci1zcGFjaW5nOjB9LmZzLW11bHRpc2l0ZS1vcHRpb25zLWNvbnRhaW5lci5mcy1hcHBseS1vbi1hbGwtc2l0ZXMgLmZzLWFsbC1zaXRlcy1vcHRpb25zIHRkOm5vdCg6Zmlyc3QtY2hpbGQpe2Rpc3BsYXk6bm9uZX0uZnMtbXVsdGlzaXRlLW9wdGlvbnMtY29udGFpbmVyIC5mcy1zaXRlcy1saXN0LWNvbnRhaW5lcntkaXNwbGF5Om5vbmU7b3ZlcmZsb3c6YXV0b30uZnMtbXVsdGlzaXRlLW9wdGlvbnMtY29udGFpbmVyIC5mcy1zaXRlcy1saXN0LWNvbnRhaW5lciB0YWJsZSB0ZHtib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjO3BhZGRpbmc6NHB4IDJweH0uZnMtbW9kYWwuZnMtbW9kYWwtbGljZW5zZS1rZXktcmVzZW5kIC5lbWFpbC1hZGRyZXNzLWNvbnRhaW5lcntvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1yaWdodDoycHh9LmZzLW1vZGFsLmZzLW1vZGFsLWxpY2Vuc2Uta2V5LXJlc2VuZC5mcy1mcmVlbWl1bSBpbnB1dC5lbWFpbC1hZGRyZXNze3dpZHRoOjMwMHB4fS5mcy1tb2RhbC5mcy1tb2RhbC1saWNlbnNlLWtleS1yZXNlbmQuZnMtZnJlZW1pdW0gbGFiZWx7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjEwcHh9LmZzLW1vZGFsLmZzLW1vZGFsLWxpY2Vuc2Uta2V5LXJlc2VuZC5mcy1wcmVtaXVtIGlucHV0LmVtYWlsLWFkZHJlc3N7d2lkdGg6MTAwJX0uZnMtbW9kYWwuZnMtbW9kYWwtbGljZW5zZS1rZXktcmVzZW5kLmZzLXByZW1pdW0gLmJ1dHRvbi1jb250YWluZXJ7ZmxvYXQ6cmlnaHQ7bWFyZ2luLWxlZnQ6N3B4fUBtZWRpYSAobWF4LXdpZHRoOiA2NTBweCl7LmZzLW1vZGFsLmZzLW1vZGFsLWxpY2Vuc2Uta2V5LXJlc2VuZC5mcy1wcmVtaXVtIC5idXR0b24tY29udGFpbmVye21hcmdpbi10b3A6MnB4fX1cbi5ydGwgLmZzLW1vZGFsLmZzLW1vZGFsLWxpY2Vuc2Uta2V5LXJlc2VuZCAuZnMtbW9kYWwtYm9keSAuaW5wdXQtY29udGFpbmVyPi5lbWFpbC1hZGRyZXNzLWNvbnRhaW5lcntwYWRkaW5nLWxlZnQ6MnB4O3BhZGRpbmctcmlnaHQ6MH0ucnRsIC5mcy1tb2RhbC5mcy1tb2RhbC1saWNlbnNlLWtleS1yZXNlbmQgLmZzLW1vZGFsLWJvZHkgLmJ1dHRvbi1jb250YWluZXJ7ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6N3B4O21hcmdpbi1sZWZ0OjB9YS5zaG93LWxpY2Vuc2UtcmVzZW5kLW1vZGFse21hcmdpbi10b3A6NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5mcy1hamF4LWxvYWRlcntwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxNzBweDtoZWlnaHQ6MjBweDttYXJnaW46YXV0b30uZnMtYWpheC1sb2FkZXIgLmZzLWFqYXgtbG9hZGVyLWJhcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDc0YTM7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJvdW5jZV9hamF4TG9hZGVyOy1tb3otYW5pbWF0aW9uLW5hbWU6Ym91bmNlX2FqYXhMb2FkZXI7LW1zLWFuaW1hdGlvbi1uYW1lOmJvdW5jZV9hamF4TG9hZGVyOy1vLWFuaW1hdGlvbi1uYW1lOmJvdW5jZV9hamF4TG9hZGVyO2FuaW1hdGlvbi1uYW1lOmJvdW5jZV9hamF4TG9hZGVyOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjEuNXM7LW1vei1hbmltYXRpb24tZHVyYXRpb246MS41czstbXMtYW5pbWF0aW9uLWR1cmF0aW9uOjEuNXM7LW8tYW5pbWF0aW9uLWR1cmF0aW9uOjEuNXM7YW5pbWF0aW9uLWR1cmF0aW9uOjEuNXM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTstby1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOy1tcy1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTstbW96LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7LXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOm5vcm1hbDstbW96LWFuaW1hdGlvbi1kaXJlY3Rpb246bm9ybWFsOy1tcy1hbmltYXRpb24tZGlyZWN0aW9uOm5vcm1hbDstby1hbmltYXRpb24tZGlyZWN0aW9uOm5vcm1hbDthbmltYXRpb24tZGlyZWN0aW9uOm5vcm1hbDstbW96LXRyYW5zZm9ybTowLjM7LW8tdHJhbnNmb3JtOjAuMzstbXMtdHJhbnNmb3JtOjAuMzstd2Via2l0LXRyYW5zZm9ybTowLjM7dHJhbnNmb3JtOjAuM30uZnMtYWpheC1sb2FkZXIgLmZzLWFqYXgtbG9hZGVyLWJhci0xe2xlZnQ6MHB4O2FuaW1hdGlvbi1kZWxheTowLjZzOy1vLWFuaW1hdGlvbi1kZWxheTowLjZzOy1tcy1hbmltYXRpb24tZGVsYXk6MC42czstd2Via2l0LWFuaW1hdGlvbi1kZWxheTowLjZzOy1tb3otYW5pbWF0aW9uLWRlbGF5OjAuNnN9LmZzLWFqYXgtbG9hZGVyIC5mcy1hamF4LWxvYWRlci1iYXItMntsZWZ0OjE5cHg7YW5pbWF0aW9uLWRlbGF5OjAuNzVzOy1vLWFuaW1hdGlvbi1kZWxheTowLjc1czstbXMtYW5pbWF0aW9uLWRlbGF5OjAuNzVzOy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjAuNzVzOy1tb3otYW5pbWF0aW9uLWRlbGF5OjAuNzVzfS5mcy1hamF4LWxvYWRlciAuZnMtYWpheC1sb2FkZXItYmFyLTN7bGVmdDozOHB4O2FuaW1hdGlvbi1kZWxheTowLjlzOy1vLWFuaW1hdGlvbi1kZWxheTowLjlzOy1tcy1hbmltYXRpb24tZGVsYXk6MC45czstd2Via2l0LWFuaW1hdGlvbi1kZWxheTowLjlzOy1tb3otYW5pbWF0aW9uLWRlbGF5OjAuOXN9LmZzLWFqYXgtbG9hZGVyIC5mcy1hamF4LWxvYWRlci1iYXItNHtsZWZ0OjU3cHg7YW5pbWF0aW9uLWRlbGF5OjEuMDVzOy1vLWFuaW1hdGlvbi1kZWxheToxLjA1czstbXMtYW5pbWF0aW9uLWRlbGF5OjEuMDVzOy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjEuMDVzOy1tb3otYW5pbWF0aW9uLWRlbGF5OjEuMDVzfS5mcy1hamF4LWxvYWRlciAuZnMtYWpheC1sb2FkZXItYmFyLTV7bGVmdDo3NnB4O2FuaW1hdGlvbi1kZWxheToxLjJzOy1vLWFuaW1hdGlvbi1kZWxheToxLjJzOy1tcy1hbmltYXRpb24tZGVsYXk6MS4yczstd2Via2l0LWFuaW1hdGlvbi1kZWxheToxLjJzOy1tb3otYW5pbWF0aW9uLWRlbGF5OjEuMnN9LmZzLWFqYXgtbG9hZGVyIC5mcy1hamF4LWxvYWRlci1iYXItNntsZWZ0Ojk1cHg7YW5pbWF0aW9uLWRlbGF5OjEuMzVzOy1vLWFuaW1hdGlvbi1kZWxheToxLjM1czstbXMtYW5pbWF0aW9uLWRlbGF5OjEuMzVzOy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjEuMzVzOy1tb3otYW5pbWF0aW9uLWRlbGF5OjEuMzVzfS5mcy1hamF4LWxvYWRlciAuZnMtYWpheC1sb2FkZXItYmFyLTd7bGVmdDoxMTRweDthbmltYXRpb24tZGVsYXk6MS41czstby1hbmltYXRpb24tZGVsYXk6MS41czstbXMtYW5pbWF0aW9uLWRlbGF5OjEuNXM7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6MS41czstbW96LWFuaW1hdGlvbi1kZWxheToxLjVzfS5mcy1hamF4LWxvYWRlciAuZnMtYWpheC1sb2FkZXItYmFyLTh7bGVmdDoxMzNweDthbmltYXRpb24tZGVsYXk6MS42NXM7LW8tYW5pbWF0aW9uLWRlbGF5OjEuNjVzOy1tcy1hbmltYXRpb24tZGVsYXk6MS42NXM7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6MS42NXM7LW1vei1hbmltYXRpb24tZGVsYXk6MS42NXN9QC1tb3ota2V5ZnJhbWVzIGJvdW5jZV9hamF4TG9hZGVyezAley1tb3otdHJhbnNmb3JtOnNjYWxlKDEpOy1vLXRyYW5zZm9ybTpzY2FsZSgxKTstbXMtdHJhbnNmb3JtOnNjYWxlKDEpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDc0YTN9MTAwJXstbW96LXRyYW5zZm9ybTpzY2FsZSgwLjMpOy1vLXRyYW5zZm9ybTpzY2FsZSgwLjMpOy1tcy10cmFuc2Zvcm06c2NhbGUoMC4zKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjMpO3RyYW5zZm9ybTpzY2FsZSgwLjMpO2JhY2tncm91bmQtY29sb3I6I2ZmZn19QC1tcy1rZXlmcmFtZXMgYm91bmNlX2FqYXhMb2FkZXJ7MCV7LW1vei10cmFuc2Zvcm06c2NhbGUoMSk7LW8tdHJhbnNmb3JtOnNjYWxlKDEpOy1tcy10cmFuc2Zvcm06c2NhbGUoMSk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpO2JhY2tncm91bmQtY29sb3I6IzAwNzRhM30xMDAley1tb3otdHJhbnNmb3JtOnNjYWxlKDAuMyk7LW8tdHJhbnNmb3JtOnNjYWxlKDAuMyk7LW1zLXRyYW5zZm9ybTpzY2FsZSgwLjMpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDAuMyk7dHJhbnNmb3JtOnNjYWxlKDAuMyk7YmFja2dyb3VuZC1jb2xvcjojZmZmfX1ALW8ta2V5ZnJhbWVzIGJvdW5jZV9hamF4TG9hZGVyezAley1tb3otdHJhbnNmb3JtOnNjYWxlKDEpOy1vLXRyYW5zZm9ybTpzY2FsZSgxKTstbXMtdHJhbnNmb3JtOnNjYWxlKDEpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDc0YTN9MTAwJXstbW96LXRyYW5zZm9ybTpzY2FsZSgwLjMpOy1vLXRyYW5zZm9ybTpzY2FsZSgwLjMpOy1tcy10cmFuc2Zvcm06c2NhbGUoMC4zKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjMpO3RyYW5zZm9ybTpzY2FsZSgwLjMpO2JhY2tncm91bmQtY29sb3I6I2ZmZn19QC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZV9hamF4TG9hZGVyezAley1tb3otdHJhbnNmb3JtOnNjYWxlKDEpOy1vLXRyYW5zZm9ybTpzY2FsZSgxKTstbXMtdHJhbnNmb3JtOnNjYWxlKDEpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDc0YTN9MTAwJXstbW96LXRyYW5zZm9ybTpzY2FsZSgwLjMpOy1vLXRyYW5zZm9ybTpzY2FsZSgwLjMpOy1tcy10cmFuc2Zvcm06c2NhbGUoMC4zKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjMpO3RyYW5zZm9ybTpzY2FsZSgwLjMpO2JhY2tncm91bmQtY29sb3I6I2ZmZn19QGtleWZyYW1lcyBib3VuY2VfYWpheExvYWRlcnswJXstbW96LXRyYW5zZm9ybTpzY2FsZSgxKTstby10cmFuc2Zvcm06c2NhbGUoMSk7LW1zLXRyYW5zZm9ybTpzY2FsZSgxKTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7YmFja2dyb3VuZC1jb2xvcjojMDA3NGEzfTEwMCV7LW1vei10cmFuc2Zvcm06c2NhbGUoMC4zKTstby10cmFuc2Zvcm06c2NhbGUoMC4zKTstbXMtdHJhbnNmb3JtOnNjYWxlKDAuMyk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMC4zKTt0cmFuc2Zvcm06c2NhbGUoMC4zKTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9fS5mcy1tb2RhbC1hdXRvLWluc3RhbGwgI3JlcXVlc3QtZmlsZXN5c3RlbS1jcmVkZW50aWFscy1mb3JtIGgyLC5mcy1tb2RhbC1hdXRvLWluc3RhbGwgI3JlcXVlc3QtZmlsZXN5c3RlbS1jcmVkZW50aWFscy1mb3JtIC5yZXF1ZXN0LWZpbGVzeXN0ZW0tY3JlZGVudGlhbHMtYWN0aW9uLWJ1dHRvbnN7ZGlzcGxheTpub25lfS5mcy1tb2RhbC1hdXRvLWluc3RhbGwgI3JlcXVlc3QtZmlsZXN5c3RlbS1jcmVkZW50aWFscy1mb3JtIGlucHV0W3R5cGU9cGFzc3dvcmRdLC5mcy1tb2RhbC1hdXRvLWluc3RhbGwgI3JlcXVlc3QtZmlsZXN5c3RlbS1jcmVkZW50aWFscy1mb3JtIGlucHV0W3R5cGU9ZW1haWxdLC5mcy1tb2RhbC1hdXRvLWluc3RhbGwgI3JlcXVlc3QtZmlsZXN5c3RlbS1jcmVkZW50aWFscy1mb3JtIGlucHV0W3R5cGU9dGV4dF17LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7cGFkZGluZzoxMHB4IDEwcHggNXB4IDEwcHg7d2lkdGg6MzAwcHg7bWF4LXdpZHRoOjEwMCV9LmZzLW1vZGFsLWF1dG8taW5zdGFsbCAjcmVxdWVzdC1maWxlc3lzdGVtLWNyZWRlbnRpYWxzLWZvcm0+ZGl2LC5mcy1tb2RhbC1hdXRvLWluc3RhbGwgI3JlcXVlc3QtZmlsZXN5c3RlbS1jcmVkZW50aWFscy1mb3JtIGxhYmVsLC5mcy1tb2RhbC1hdXRvLWluc3RhbGwgI3JlcXVlc3QtZmlsZXN5c3RlbS1jcmVkZW50aWFscy1mb3JtIGZpZWxkc2V0e3dpZHRoOjMwMHB4O21heC13aWR0aDoxMDAlO21hcmdpbjowIGF1dG87ZGlzcGxheTpibG9ja30uYnV0dG9uLXByaW1hcnkud2Fybntib3gtc2hhZG93OjAgMXB4IDAgI2QyNTkzYzt0ZXh0LXNoYWRvdzowIC0xcHggMXB4ICNkMjU5M2MsMXB4IDAgMXB4ICNkMjU5M2MsMCAxcHggMXB4ICNkMjU5M2MsLTFweCAwIDFweCAjZDI1OTNjO2JhY2tncm91bmQ6I2Y1NmE0ODtib3JkZXItY29sb3I6I2VjNjU0NCAjZDI1OTNjICNkMjU5M2N9LmJ1dHRvbi1wcmltYXJ5Lndhcm46aG92ZXJ7YmFja2dyb3VuZDojZmQ2ZDRhO2JvcmRlci1jb2xvcjojZDI1OTNjfS5idXR0b24tcHJpbWFyeS53YXJuOmZvY3Vze2JveC1zaGFkb3c6MCAxcHggMCAjZGQ2MDQxLDAgMCAycHggMXB4ICNlNGE3OTZ9LmJ1dHRvbi1wcmltYXJ5Lndhcm46YWN0aXZle2JhY2tncm91bmQ6I2RkNjA0MTtib3JkZXItY29sb3I6I2QyNTkzYztib3gtc2hhZG93Omluc2V0IDAgMnB4IDAgI2QyNTkzY30uYnV0dG9uLXByaW1hcnkud2Fybi5kaXNhYmxlZHtjb2xvcjojZjViM2ExICFpbXBvcnRhbnQ7YmFja2dyb3VuZDojZTc2NDQ0ICFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOiNkODVlNDAgIWltcG9ydGFudDt0ZXh0LXNoYWRvdzowIC0xcHggMCByZ2JhKDAsMCwwLDAuMSkgIWltcG9ydGFudH1cbiJdfQ== */
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 .dashicons{vertical-align:middle}.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.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal.fs-success .fs-modal-header{border-bottom-color:#46b450}.fs-modal.fs-success .fs-modal-body{background-color:#f7fff7}.fs-modal.fs-warn .fs-modal-header{border-bottom-color:#ffb900}.fs-modal.fs-warn .fs-modal-body{background-color:#fff8e5}.fs-modal.fs-error .fs-modal-header{border-bottom-color:#dc3232}.fs-modal.fs-error .fs-modal-body{background-color:#ffeaea}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-header{border-bottom:#eeeeee solid 1px;background:#fbfbfb;padding:15px 20px;position:relative;margin-bottom:-10px}.fs-modal .fs-modal-header h4{margin:0;padding:0;text-transform:uppercase;font-size:1.2em;font-weight:bold;color:#cacaca;text-shadow:1px 1px 1px #fff;letter-spacing:0.6px;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{position:absolute;right:10px;top:12px;cursor:pointer;color:#bbb;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;padding:3px;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{color:#fff;background:#aaa}.fs-modal .fs-modal-header .fs-close .dashicons,.fs-modal .fs-modal-header .fs-close:hover .dashicons{text-decoration:none}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px;line-height:1.5em}.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>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{right:auto;left:20px}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .reason-input,.fs-modal.fs-modal-deactivation-feedback .internal-message{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width: 650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label{float:left}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0 !important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{margin-top:0;line-height:1.5em}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-subscription-cancellation .fs-price-increase-warning{color:red;font-weight:bold;padding:0 25px;margin-bottom:0}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:left;top:5px;position:relative}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:right}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{display:block;margin-left:24px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{margin-left:0;margin-right:24px}.fs-modal.fs-modal-license-activation .fs-modal-body input.fs-license-key{width:100%}.fs-license-options-container table,.fs-license-options-container table select,.fs-license-options-container table .fs-available-license-key{width:100%}.fs-license-options-container table td:first-child{width:1%}.fs-license-options-container table .fs-other-license-key-container label{position:relative;top:6px;float:left;margin-right:5px}.fs-license-options-container table .fs-other-license-key-container div{overflow:hidden;width:auto;height:30px;display:block;top:2px;position:relative}.fs-license-options-container table .fs-other-license-key-container div input{margin:0}.fs-sites-list-container td{cursor:pointer}.fs-modal.fs-modal-user-change .fs-modal-body input#fs_other_email_address{width:100%}.fs-user-change-options-container table{width:100%;border-collapse:collapse}.fs-user-change-options-container table tr{display:block;margin-bottom:2px}.fs-user-change-options-container table .fs-email-address-container td{display:inline-block}.fs-user-change-options-container table .fs-email-address-container input[type="radio"]{margin-bottom:0;margin-top:0}.fs-user-change-options-container table .fs-other-email-address-container{width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div{display:table;width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div label,.fs-user-change-options-container table .fs-other-email-address-container>div>div{display:table-cell}.fs-user-change-options-container table .fs-other-email-address-container>div label{width:1%;padding-left:3px;padding-right:3px}.fs-user-change-options-container table .fs-other-email-address-container>div>div{width:auto}.fs-user-change-options-container table .fs-other-email-address-container>div>div input{width:100%}.fs-modal.fs-modal-developer-license-debug-mode .fs-modal-body input.fs-license-or-user-key{width:100%}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-modal.fs-modal-license-key-resend .email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend.fs-freemium input.email-address{width:300px}.fs-modal.fs-modal-license-key-resend.fs-freemium label{display:block;margin-bottom:10px}.fs-modal.fs-modal-license-key-resend.fs-premium input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{float:right;margin-left:7px}@media (max-width: 650px){.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{margin-top:2px}}
2
+ .rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-right:7px;margin-left:0}a.show-license-resend-modal{margin-top:4px;display:inline-block}.fs-ajax-loader{position:relative;width:170px;height:20px;margin:auto}.fs-ajax-loader .fs-ajax-loader-bar{position:absolute;top:0;background-color:#0074a3;width:20px;height:20px;-webkit-animation-name:bounce_ajaxLoader;-moz-animation-name:bounce_ajaxLoader;-ms-animation-name:bounce_ajaxLoader;-o-animation-name:bounce_ajaxLoader;animation-name:bounce_ajaxLoader;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s;animation-duration:1.5s;animation-iteration-count:infinite;-o-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-webkit-animation-direction:normal;-moz-animation-direction:normal;-ms-animation-direction:normal;-o-animation-direction:normal;animation-direction:normal;-moz-transform:0.3;-o-transform:0.3;-ms-transform:0.3;-webkit-transform:0.3;transform:0.3}.fs-ajax-loader .fs-ajax-loader-bar-1{left:0px;animation-delay:0.6s;-o-animation-delay:0.6s;-ms-animation-delay:0.6s;-webkit-animation-delay:0.6s;-moz-animation-delay:0.6s}.fs-ajax-loader .fs-ajax-loader-bar-2{left:19px;animation-delay:0.75s;-o-animation-delay:0.75s;-ms-animation-delay:0.75s;-webkit-animation-delay:0.75s;-moz-animation-delay:0.75s}.fs-ajax-loader .fs-ajax-loader-bar-3{left:38px;animation-delay:0.9s;-o-animation-delay:0.9s;-ms-animation-delay:0.9s;-webkit-animation-delay:0.9s;-moz-animation-delay:0.9s}.fs-ajax-loader .fs-ajax-loader-bar-4{left:57px;animation-delay:1.05s;-o-animation-delay:1.05s;-ms-animation-delay:1.05s;-webkit-animation-delay:1.05s;-moz-animation-delay:1.05s}.fs-ajax-loader .fs-ajax-loader-bar-5{left:76px;animation-delay:1.2s;-o-animation-delay:1.2s;-ms-animation-delay:1.2s;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s}.fs-ajax-loader .fs-ajax-loader-bar-6{left:95px;animation-delay:1.35s;-o-animation-delay:1.35s;-ms-animation-delay:1.35s;-webkit-animation-delay:1.35s;-moz-animation-delay:1.35s}.fs-ajax-loader .fs-ajax-loader-bar-7{left:114px;animation-delay:1.5s;-o-animation-delay:1.5s;-ms-animation-delay:1.5s;-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s}.fs-ajax-loader .fs-ajax-loader-bar-8{left:133px;animation-delay:1.65s;-o-animation-delay:1.65s;-ms-animation-delay:1.65s;-webkit-animation-delay:1.65s;-moz-animation-delay:1.65s}@-moz-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-ms-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-o-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-webkit-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}.fs-modal-auto-install #request-filesystem-credentials-form h2,.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;padding:10px 10px 5px 10px;width:300px;max-width:100%}.fs-modal-auto-install #request-filesystem-credentials-form>div,.fs-modal-auto-install #request-filesystem-credentials-form label,.fs-modal-auto-install #request-filesystem-credentials-form fieldset{width:300px;max-width:100%;margin:0 auto;display:block}.button-primary.warn{box-shadow:0 1px 0 #d2593c;text-shadow:0 -1px 1px #d2593c,1px 0 1px #d2593c,0 1px 1px #d2593c,-1px 0 1px #d2593c;background:#f56a48;border-color:#ec6544 #d2593c #d2593c}.button-primary.warn:hover{background:#fd6d4a;border-color:#d2593c}.button-primary.warn:focus{box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796}.button-primary.warn:active{background:#dd6041;border-color:#d2593c;box-shadow:inset 0 2px 0 #d2593c}.button-primary.warn.disabled{color:#f5b3a1 !important;background:#e76444 !important;border-color:#d85e40 !important;text-shadow:0 -1px 0 rgba(0,0,0,0.1) !important}
 
freemius/assets/css/admin/gdpr-optin-notice.css CHANGED
@@ -1,2 +1 @@
1
  .fs-notice[data-id^="gdpr_optin_actions"] .underlined{text-decoration:underline}.fs-notice[data-id^="gdpr_optin_actions"] ul .button,.fs-notice[data-id^="gdpr_optin_actions"] ul .action-description{vertical-align:middle}.fs-notice[data-id^="gdpr_optin_actions"] ul .action-description{display:inline-block;margin-left:3px}
2
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdkcHItb3B0aW4tbm90aWNlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0QseUJBQXlCLENBQUMsc0hBQXNILHFCQUFxQixDQUFDLGlFQUFpRSxxQkFBcUIsZUFBZSxDQUFDIiwiZmlsZSI6ImdkcHItb3B0aW4tbm90aWNlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mcy1ub3RpY2VbZGF0YS1pZF49XCJnZHByX29wdGluX2FjdGlvbnNcIl0gLnVuZGVybGluZWR7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uZnMtbm90aWNlW2RhdGEtaWRePVwiZ2Rwcl9vcHRpbl9hY3Rpb25zXCJdIHVsIC5idXR0b24sLmZzLW5vdGljZVtkYXRhLWlkXj1cImdkcHJfb3B0aW5fYWN0aW9uc1wiXSB1bCAuYWN0aW9uLWRlc2NyaXB0aW9ue3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZnMtbm90aWNlW2RhdGEtaWRePVwiZ2Rwcl9vcHRpbl9hY3Rpb25zXCJdIHVsIC5hY3Rpb24tZGVzY3JpcHRpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6M3B4fVxuIl19 */
1
  .fs-notice[data-id^="gdpr_optin_actions"] .underlined{text-decoration:underline}.fs-notice[data-id^="gdpr_optin_actions"] ul .button,.fs-notice[data-id^="gdpr_optin_actions"] ul .action-description{vertical-align:middle}.fs-notice[data-id^="gdpr_optin_actions"] ul .action-description{display:inline-block;margin-left:3px}
 
freemius/assets/css/admin/plugins.css CHANGED
@@ -1,2 +1 @@
1
  label.fs-tag,span.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,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}.wp-list-table.plugins .plugin-title span.fs-tag{display:inline-block;margin-left:5px;line-height:10px}
2
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsdWdpbnMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlCQUF5QixtQkFBbUIsV0FBVyxxQkFBcUIsa0JBQWtCLFlBQVksZUFBZSxpQkFBaUIsdUJBQXVCLENBQUMseUNBQXlDLGtCQUFrQixDQUFDLHlDQUF5QyxrQkFBa0IsQ0FBQywrQ0FBK0Msa0JBQWtCLENBQUMsMkNBQTJDLGtCQUFrQixDQUFDLGlEQUFpRCxxQkFBcUIsZ0JBQWdCLGdCQUFnQixDQUFDIiwiZmlsZSI6InBsdWdpbnMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsibGFiZWwuZnMtdGFnLHNwYW4uZnMtdGFne2JhY2tncm91bmQ6I2ZmYmEwMDtjb2xvcjojZmZmO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlci1yYWRpdXM6M3B4O3BhZGRpbmc6NXB4O2ZvbnQtc2l6ZToxMXB4O2xpbmUtaGVpZ2h0OjExcHg7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9bGFiZWwuZnMtdGFnLmZzLXdhcm4sc3Bhbi5mcy10YWcuZnMtd2FybntiYWNrZ3JvdW5kOiNmZmJhMDB9bGFiZWwuZnMtdGFnLmZzLWluZm8sc3Bhbi5mcy10YWcuZnMtaW5mb3tiYWNrZ3JvdW5kOiMwMGEwZDJ9bGFiZWwuZnMtdGFnLmZzLXN1Y2Nlc3Msc3Bhbi5mcy10YWcuZnMtc3VjY2Vzc3tiYWNrZ3JvdW5kOiM0NmI0NTB9bGFiZWwuZnMtdGFnLmZzLWVycm9yLHNwYW4uZnMtdGFnLmZzLWVycm9ye2JhY2tncm91bmQ6I2RjMzIzMn0ud3AtbGlzdC10YWJsZS5wbHVnaW5zIC5wbHVnaW4tdGl0bGUgc3Bhbi5mcy10YWd7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6NXB4O2xpbmUtaGVpZ2h0OjEwcHh9XG4iXX0= */
1
  label.fs-tag,span.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,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}.wp-list-table.plugins .plugin-title span.fs-tag{display:inline-block;margin-left:5px;line-height:10px}
 
freemius/assets/css/customizer.css CHANGED
@@ -1,2 +1 @@
1
- #fs_customizer_upsell .fs-customizer-plan{padding:10px 20px 20px 20px;border-radius:3px;background:#fff}#fs_customizer_upsell .fs-customizer-plan h2{position:relative;margin:0;line-height:2em;text-transform:uppercase}#fs_customizer_upsell .fs-customizer-plan h2 .button-link{top:-2px}#fs_customizer_upsell .fs-feature{position:relative}#fs_customizer_upsell .dashicons-yes{color:#0085ba;font-size:2em;vertical-align:bottom;margin-left:-7px;margin-right:10px}.rtl #fs_customizer_upsell .dashicons-yes{margin-left:10px;margin-right:-7px}#fs_customizer_upsell .dashicons-editor-help{color:#bbb;cursor:help}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{opacity:0;visibility:hidden;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:#000;color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;border-radius:5px;-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{text-align:right}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#000 transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{right:21px;left:auto}#fs_customizer_upsell .dashicons-editor-help:hover .fs-feature-desc{visibility:visible;opacity:1}#fs_customizer_upsell .button-primary{display:block;text-align:center;margin-top:10px}#fs_customizer_support{display:block !important}#fs_customizer_support .button{float:right}#fs_customizer_support .button-group{width:100%;display:block;margin-top:10px}#fs_customizer_support .button-group .button{float:none;width:50%;text-align:center}#customize-theme-controls #accordion-section-freemius_upsell{border-top:1px solid #0085ba !important;border-bottom:1px solid #0085ba !important}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title{color:#fff;background-color:#0085ba;border-left:4px solid #0085ba;-webkit-transition:.15s background-color ease-in-out, .15s border-color ease-in-out;transition:.15s background-color ease-in-out, .15s border-color ease-in-out;outline:none;border-bottom:none !important}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title:hover{background-color:#008ec2;border-left-color:#0073aa}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title:after{color:#fff}#customize-theme-controls #accordion-section-freemius_upsell .rtl h3.accordion-section-title{border-left:none;border-right:4px solid #0085ba}#customize-theme-controls #accordion-section-freemius_upsell .rtl h3.accordion-section-title:hover{border-right-color:#0073aa}
2
- /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImN1c3RvbWl6ZXIuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBDQUEwQyw0QkFBNEIsa0JBQWtCLGVBQWUsQ0FBQyw2Q0FBNkMsa0JBQWtCLFNBQVMsZ0JBQWdCLHdCQUF3QixDQUFDLDBEQUEwRCxRQUFRLENBQUMsa0NBQWtDLGlCQUFpQixDQUFDLHFDQUFxQyxjQUFjLGNBQWMsc0JBQXNCLGlCQUFpQixpQkFBaUIsQ0FBQywwQ0FBMEMsaUJBQWlCLGlCQUFpQixDQUFDLDZDQUE2QyxXQUFXLFdBQVcsQ0FBQyw4REFBOEQsVUFBVSxrQkFBa0IsNENBQW9LLG9DQUFvQyxrQkFBa0IsZ0JBQWdCLFdBQVcsMkJBQTJCLGVBQWUsYUFBYSxlQUFlLFlBQVksa0JBQWtCLE9BQU8sUUFBUSxrQkFBbUUsK0NBQTJGLHVDQUF1QyxrQkFBa0IsaUJBQWlCLGVBQWUsQ0FBQyxtRUFBbUUsZ0JBQWdCLENBQUMscUVBQXFFLFlBQVksY0FBYyxRQUFRLFNBQVMsbUJBQW1CLDJCQUEyQixzREFBc0Qsa0JBQWtCLFNBQVMsU0FBUyxDQUFDLDBFQUEwRSxXQUFXLFNBQVMsQ0FBQyxvRUFBb0UsbUJBQW1CLFNBQVMsQ0FBQyxzQ0FBc0MsY0FBYyxrQkFBa0IsZUFBZSxDQUFDLHVCQUF1Qix3QkFBd0IsQ0FBQywrQkFBK0IsV0FBVyxDQUFDLHFDQUFxQyxXQUFXLGNBQWMsZUFBZSxDQUFDLDZDQUE2QyxXQUFXLFVBQVUsaUJBQWlCLENBQUMsNkRBQTZELHdDQUF3QywwQ0FBMEMsQ0FBQyx3RkFBd0YsV0FBVyx5QkFBeUIsOEJBQThCLG9GQUFBLDRFQUE0RSxhQUFhLDZCQUE2QixDQUFDLDhGQUE4Rix5QkFBeUIseUJBQXlCLENBQUMsOEZBQThGLFVBQVUsQ0FBQyw2RkFBNkYsaUJBQWlCLDhCQUE4QixDQUFDLG1HQUFtRywwQkFBMEIsQ0FBQyIsImZpbGUiOiJjdXN0b21pemVyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNmc19jdXN0b21pemVyX3Vwc2VsbCAuZnMtY3VzdG9taXplci1wbGFue3BhZGRpbmc6MTBweCAyMHB4IDIwcHggMjBweDtib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kOiNmZmZ9I2ZzX2N1c3RvbWl6ZXJfdXBzZWxsIC5mcy1jdXN0b21pemVyLXBsYW4gaDJ7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0jZnNfY3VzdG9taXplcl91cHNlbGwgLmZzLWN1c3RvbWl6ZXItcGxhbiBoMiAuYnV0dG9uLWxpbmt7dG9wOi0ycHh9I2ZzX2N1c3RvbWl6ZXJfdXBzZWxsIC5mcy1mZWF0dXJle3Bvc2l0aW9uOnJlbGF0aXZlfSNmc19jdXN0b21pemVyX3Vwc2VsbCAuZGFzaGljb25zLXllc3tjb2xvcjojMDA4NWJhO2ZvbnQtc2l6ZToyZW07dmVydGljYWwtYWxpZ246Ym90dG9tO21hcmdpbi1sZWZ0Oi03cHg7bWFyZ2luLXJpZ2h0OjEwcHh9LnJ0bCAjZnNfY3VzdG9taXplcl91cHNlbGwgLmRhc2hpY29ucy15ZXN7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6LTdweH0jZnNfY3VzdG9taXplcl91cHNlbGwgLmRhc2hpY29ucy1lZGl0b3ItaGVscHtjb2xvcjojYmJiO2N1cnNvcjpoZWxwfSNmc19jdXN0b21pemVyX3Vwc2VsbCAuZGFzaGljb25zLWVkaXRvci1oZWxwIC5mcy1mZWF0dXJlLWRlc2N7b3BhY2l0eTowO3Zpc2liaWxpdHk6aGlkZGVuOy1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7LW8tdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7LW1zLXRyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UtaW4tb3V0Oy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDojMDAwO2NvbG9yOiNmZmY7Zm9udC1mYW1pbHk6J2FyaWFsJywgc2VyaWY7Zm9udC1zaXplOjEycHg7cGFkZGluZzoxMHB4O3otaW5kZXg6OTk5OTk5O2JvdHRvbToxMDAlO21hcmdpbi1ib3R0b206NXB4O2xlZnQ6MDtyaWdodDowOy1tb3otYm9yZGVyLXJhZGl1czo1cHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDtib3JkZXItcmFkaXVzOjVweDstbW96LWJveC1zaGFkb3c6MXB4IDFweCAxcHggcmdiYSgwLDAsMCwwLjIpOy13ZWJraXQtYm94LXNoYWRvdzoxcHggMXB4IDFweCByZ2JhKDAsMCwwLDAuMik7Ym94LXNoYWRvdzoxcHggMXB4IDFweCByZ2JhKDAsMCwwLDAuMik7bGluZS1oZWlnaHQ6MS4zZW07Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LWFsaWduOmxlZnR9LnJ0bCAjZnNfY3VzdG9taXplcl91cHNlbGwgLmRhc2hpY29ucy1lZGl0b3ItaGVscCAuZnMtZmVhdHVyZS1kZXNje3RleHQtYWxpZ246cmlnaHR9I2ZzX2N1c3RvbWl6ZXJfdXBzZWxsIC5kYXNoaWNvbnMtZWRpdG9yLWhlbHAgLmZzLWZlYXR1cmUtZGVzYzo6YWZ0ZXJ7Y29udGVudDonICc7ZGlzcGxheTpibG9jazt3aWR0aDowO2hlaWdodDowO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6NXB4IDVweCAwIDVweDtib3JkZXItY29sb3I6IzAwMCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtsZWZ0OjIxcHh9LnJ0bCAjZnNfY3VzdG9taXplcl91cHNlbGwgLmRhc2hpY29ucy1lZGl0b3ItaGVscCAuZnMtZmVhdHVyZS1kZXNjOjphZnRlcntyaWdodDoyMXB4O2xlZnQ6YXV0b30jZnNfY3VzdG9taXplcl91cHNlbGwgLmRhc2hpY29ucy1lZGl0b3ItaGVscDpob3ZlciAuZnMtZmVhdHVyZS1kZXNje3Zpc2liaWxpdHk6dmlzaWJsZTtvcGFjaXR5OjF9I2ZzX2N1c3RvbWl6ZXJfdXBzZWxsIC5idXR0b24tcHJpbWFyeXtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi10b3A6MTBweH0jZnNfY3VzdG9taXplcl9zdXBwb3J0e2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH0jZnNfY3VzdG9taXplcl9zdXBwb3J0IC5idXR0b257ZmxvYXQ6cmlnaHR9I2ZzX2N1c3RvbWl6ZXJfc3VwcG9ydCAuYnV0dG9uLWdyb3Vwe3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjEwcHh9I2ZzX2N1c3RvbWl6ZXJfc3VwcG9ydCAuYnV0dG9uLWdyb3VwIC5idXR0b257ZmxvYXQ6bm9uZTt3aWR0aDo1MCU7dGV4dC1hbGlnbjpjZW50ZXJ9I2N1c3RvbWl6ZS10aGVtZS1jb250cm9scyAjYWNjb3JkaW9uLXNlY3Rpb24tZnJlZW1pdXNfdXBzZWxse2JvcmRlci10b3A6MXB4IHNvbGlkICMwMDg1YmEgIWltcG9ydGFudDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMDA4NWJhICFpbXBvcnRhbnR9I2N1c3RvbWl6ZS10aGVtZS1jb250cm9scyAjYWNjb3JkaW9uLXNlY3Rpb24tZnJlZW1pdXNfdXBzZWxsIGgzLmFjY29yZGlvbi1zZWN0aW9uLXRpdGxle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDA4NWJhO2JvcmRlci1sZWZ0OjRweCBzb2xpZCAjMDA4NWJhO3RyYW5zaXRpb246LjE1cyBiYWNrZ3JvdW5kLWNvbG9yIGVhc2UtaW4tb3V0LCAuMTVzIGJvcmRlci1jb2xvciBlYXNlLWluLW91dDtvdXRsaW5lOm5vbmU7Ym9yZGVyLWJvdHRvbTpub25lICFpbXBvcnRhbnR9I2N1c3RvbWl6ZS10aGVtZS1jb250cm9scyAjYWNjb3JkaW9uLXNlY3Rpb24tZnJlZW1pdXNfdXBzZWxsIGgzLmFjY29yZGlvbi1zZWN0aW9uLXRpdGxlOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzAwOGVjMjtib3JkZXItbGVmdC1jb2xvcjojMDA3M2FhfSNjdXN0b21pemUtdGhlbWUtY29udHJvbHMgI2FjY29yZGlvbi1zZWN0aW9uLWZyZWVtaXVzX3Vwc2VsbCBoMy5hY2NvcmRpb24tc2VjdGlvbi10aXRsZTphZnRlcntjb2xvcjojZmZmfSNjdXN0b21pemUtdGhlbWUtY29udHJvbHMgI2FjY29yZGlvbi1zZWN0aW9uLWZyZWVtaXVzX3Vwc2VsbCAucnRsIGgzLmFjY29yZGlvbi1zZWN0aW9uLXRpdGxle2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLXJpZ2h0OjRweCBzb2xpZCAjMDA4NWJhfSNjdXN0b21pemUtdGhlbWUtY29udHJvbHMgI2FjY29yZGlvbi1zZWN0aW9uLWZyZWVtaXVzX3Vwc2VsbCAucnRsIGgzLmFjY29yZGlvbi1zZWN0aW9uLXRpdGxlOmhvdmVye2JvcmRlci1yaWdodC1jb2xvcjojMDA3M2FhfVxuIl19 */
1
+ #fs_customizer_upsell .fs-customizer-plan{padding:10px 20px 20px 20px;border-radius:3px;background:#fff}#fs_customizer_upsell .fs-customizer-plan h2{position:relative;margin:0;line-height:2em;text-transform:uppercase}#fs_customizer_upsell .fs-customizer-plan h2 .button-link{top:-2px}#fs_customizer_upsell .fs-feature{position:relative}#fs_customizer_upsell .dashicons-yes{color:#0085ba;font-size:2em;vertical-align:bottom;margin-left:-7px;margin-right:10px}.rtl #fs_customizer_upsell .dashicons-yes{margin-left:10px;margin-right:-7px}#fs_customizer_upsell .dashicons-editor-help{color:#bbb;cursor:help}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:#000;color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-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);line-height:1.3em;font-weight:bold;text-align:left}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{text-align:right}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#000 transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{right:21px;left:auto}#fs_customizer_upsell .dashicons-editor-help:hover .fs-feature-desc{visibility:visible;opacity:1}#fs_customizer_upsell .button-primary{display:block;text-align:center;margin-top:10px}#fs_customizer_support{display:block !important}#fs_customizer_support .button{float:right}#fs_customizer_support .button-group{width:100%;display:block;margin-top:10px}#fs_customizer_support .button-group .button{float:none;width:50%;text-align:center}#customize-theme-controls #accordion-section-freemius_upsell{border-top:1px solid #0085ba !important;border-bottom:1px solid #0085ba !important}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title{color:#fff;background-color:#0085ba;border-left:4px solid #0085ba;transition:.15s background-color ease-in-out, .15s border-color ease-in-out;outline:none;border-bottom:none !important}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title:hover{background-color:#008ec2;border-left-color:#0073aa}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title:after{color:#fff}#customize-theme-controls #accordion-section-freemius_upsell .rtl h3.accordion-section-title{border-left:none;border-right:4px solid #0085ba}#customize-theme-controls #accordion-section-freemius_upsell .rtl h3.accordion-section-title:hover{border-right-color:#0073aa}
 
freemius/assets/js/nojquery.ba-postmessage.min.js CHANGED
@@ -1 +1,12 @@
1
- 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}target.postMessage(message,targetUrl.replace(/([^:]+:\/\/[^\/]+).*/,"$1"))};this[receiveBinding]=function(callback,sourceOrigin,delay){if(currentMsgCallback){unsetMessageCallback(currentMsgCallback);currentMsgCallback=null}if(!callback){return false}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}target.location=targetUrl.replace(/#.*$/,"")+"#"+ +new Date+cacheBust+++"&"+message};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}
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * nojquery-postmessage by Jeff Lee
3
+ * a non-jQuery fork of:
4
+ *
5
+ * jQuery postMessage - v0.5 - 9/11/2009
6
+ * http://benalman.com/projects/jquery-postmessage-plugin/
7
+ *
8
+ * Copyright (c) 2009 "Cowboy" Ben Alman
9
+ * Dual licensed under the MIT and GPL licenses.
10
+ * http://benalman.com/about/license/
11
+ */
12
+ function NoJQueryPostMessageMixin(g,a){var b,h,e,d,f,c=1;if(window.postMessage){if(window.addEventListener){b=function(i){window.addEventListener("message",i,false)};h=function(i){window.removeEventListener("message",i,false)}}else{b=function(i){window.attachEvent("onmessage",i)};h=function(i){window.detachEvent("onmessage",i)}}this[g]=function(i,k,j){if(!k){return}j.postMessage(i,k.replace(/([^:]+:\/\/[^\/]+).*/,"$1"))};this[a]=function(k,j,i){if(e){h(e);e=null}if(!k){return false}e=b(function(l){switch(Object.prototype.toString.call(j)){case"[object String]":if(j!==l.origin){return false}break;case"[object Function]":if(j(l.origin)){return false}break}k(l)})}}else{this[g]=function(i,k,j){if(!k){return}j.location=k.replace(/#.*$/,"")+"#"+(+new Date)+(c++)+"&"+i};this[a]=function(k,j,i){if(d){clearInterval(d);d=null}if(k){i=typeof j==="number"?j:typeof i==="number"?i:100;d=setInterval(function(){var m=document.location.hash,l=/^#?\d+&/;if(m!==f&&l.test(m)){f=m;k({data:m.replace(l,"")})}},i)}}}return this};
freemius/config.php CHANGED
@@ -385,4 +385,7 @@
385
 
386
  if ( ! defined( 'WP_FS__DEMO_MODE' ) ) {
387
  define( 'WP_FS__DEMO_MODE', false );
388
- }
 
 
 
385
 
386
  if ( ! defined( 'WP_FS__DEMO_MODE' ) ) {
387
  define( 'WP_FS__DEMO_MODE', false );
388
+ }
389
+ if ( ! defined( 'FS_SDK__SSLVERIFY' ) ) {
390
+ define( 'FS_SDK__SSLVERIFY', false );
391
+ }
freemius/includes/class-freemius.php CHANGED
@@ -351,6 +351,14 @@
351
  */
352
  private $is_whitelabeled;
353
 
 
 
 
 
 
 
 
 
354
  #region Uninstall Reasons IDs
355
 
356
  const REASON_NO_LONGER_NEEDED = 1;
@@ -369,6 +377,21 @@
369
  const REASON_DIDNT_WORK_AS_EXPECTED = 14;
370
  const REASON_TEMPORARY_DEACTIVATION = 15;
371
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
372
  #endregion
373
 
374
  /* Ctor
@@ -816,7 +839,11 @@
816
  return false;
817
  }
818
 
819
- if ( ! $is_tabs_visibility_check && $this->show_settings_with_tabs() ) {
 
 
 
 
820
  /**
821
  * wp.org themes are limited to a single submenu item, and
822
  * sub-submenu items are most likely not allowed (never verified).
@@ -1457,7 +1484,10 @@
1457
  if ( $this->is_plugin() &&
1458
  ! isset( $this->_storage->is_plugin_new_install )
1459
  ) {
1460
- $this->_storage->is_plugin_new_install = false;
 
 
 
1461
  }
1462
  }
1463
 
@@ -1480,6 +1510,13 @@
1480
  -1 < settings.url.indexOf('admin-ajax.php') &&
1481
  ! ( settings.url.indexOf( '<?php echo $admin_param ?>' ) > 0 )
1482
  ) {
 
 
 
 
 
 
 
1483
  if (settings.url.indexOf('?') > 0) {
1484
  settings.url += '&';
1485
  } else {
@@ -1487,7 +1524,6 @@
1487
  }
1488
 
1489
  settings.url += '<?php echo $admin_param ?>=true';
1490
-
1491
  }
1492
  });
1493
  })(jQuery);
@@ -1505,7 +1541,7 @@
1505
  ?>
1506
  <script type="text/javascript">
1507
  (function ($) {
1508
- $('.fs-submenu-item.wp-support-forum').parent().attr('target', '_blank');
1509
  })(jQuery);
1510
  </script>
1511
  <?php
@@ -1601,6 +1637,7 @@
1601
  }
1602
 
1603
  add_action( 'init', array( &$this, '_maybe_add_gdpr_optin_ajax_handler') );
 
1604
  }
1605
 
1606
  if ( $this->is_plugin() ) {
@@ -1632,7 +1669,7 @@
1632
 
1633
  add_action( 'admin_init', array( &$this, '_redirect_on_clicked_menu_link' ), WP_FS__LOWEST_PRIORITY );
1634
 
1635
- if ( $this->is_theme() ) {
1636
  add_action( 'admin_init', array( &$this, '_add_tracking_links' ) );
1637
  }
1638
 
@@ -1644,6 +1681,7 @@
1644
  $this->add_ajax_action( 'update_billing', array( &$this, '_update_billing_ajax_action' ) );
1645
  $this->add_ajax_action( 'start_trial', array( &$this, '_start_trial_ajax_action' ) );
1646
  $this->add_ajax_action( 'set_data_debug_mode', array( &$this, '_set_data_debug_mode' ) );
 
1647
 
1648
  if ( $this->_is_network_active && fs_is_network_admin() ) {
1649
  $this->add_ajax_action( 'network_activate', array( &$this, '_network_activate_ajax_action' ) );
@@ -2006,6 +2044,10 @@
2006
  * @since 2.0.0
2007
  */
2008
  function _hook_action_links_and_register_account_hooks() {
 
 
 
 
2009
  $this->_add_tracking_links();
2010
 
2011
  if ( self::is_plugins_page() && $this->is_plugin() ) {
@@ -2186,6 +2228,12 @@
2186
  );
2187
 
2188
  $store_option = true;
 
 
 
 
 
 
2189
  }
2190
 
2191
  if ( empty( $id_slug_type_path_map[ $module_id ]['path'] ) ||
@@ -4259,7 +4307,7 @@
4259
  )
4260
  ),
4261
  sprintf(
4262
- '<a href="%s" target="_blank"><b>%s</b></a> - %s',
4263
  sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
4264
  $install_previous_title,
4265
  $install_previous_desc
@@ -4366,7 +4414,7 @@
4366
  )
4367
  ),
4368
  sprintf(
4369
- '<a href="%s" target="_blank"><b>%s</b></a> - %s',
4370
  sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
4371
  $install_previous_title,
4372
  $install_previous_desc
@@ -4887,10 +4935,12 @@
4887
  } else {
4888
  $is_network_admin = fs_is_network_admin();
4889
 
4890
- if (
 
 
 
4891
  $this->_parent->is_registered() &&
4892
  ! $this->is_registered() &&
4893
- $this->has_free_plan() &&
4894
  /**
4895
  * If not registered for add-on and the following conditions for the add-on are met, activate add-on account.
4896
  * * Network active and in network admin - network activate add-on account.
@@ -4904,16 +4954,40 @@
4904
  */
4905
  ( $this->is_network_active() || ! $is_network_admin )
4906
  ) {
4907
- // If parent plugin activated, automatically install add-on for the user.
4908
- $this->_activate_addon_account(
4909
- $this->_parent,
4910
- ( $this->is_network_active() && $is_network_admin ) ?
4911
- true :
4912
- get_current_blog_id()
4913
- );
4914
- } else if ( ! $this->_parent->is_registered() && $this->is_registered() ) {
4915
- // If add-on activated and parent not, automatically install parent for the user.
4916
- $this->activate_parent_account( $this->_parent );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4917
  }
4918
 
4919
  // @todo This should be only executed on activation. It should be migrated to register_activation_hook() together with other activation related logic.
@@ -5415,7 +5489,10 @@
5415
  * @return bool
5416
  */
5417
  function is_extensions_tracking_allowed() {
5418
- return (true === $this->_storage->get( 'is_extensions_tracking_allowed', true ) );
 
 
 
5419
  }
5420
 
5421
  /**
@@ -5458,10 +5535,12 @@
5458
  * @author Leo Fajardo (@leorw)
5459
  * @since 2.3.2
5460
  *
5461
- * @param bool $is_enabled
5462
  */
5463
- private function update_extensions_tracking_flag( $is_enabled ) {
5464
- $this->_storage->store( 'is_extensions_tracking_allowed', $is_enabled );
 
 
5465
  }
5466
 
5467
  /**
@@ -5601,6 +5680,7 @@
5601
  $this->_anonymous_mode = $this->get_bool_option( $plugin_info, 'anonymous_mode', false );
5602
  }
5603
  $this->_permissions = $this->get_option( $plugin_info, 'permissions', array() );
 
5604
 
5605
  if ( ! empty( $plugin_info['trial'] ) ) {
5606
  $this->_trial_days = $this->get_numeric_option(
@@ -6789,8 +6869,6 @@
6789
  */
6790
  function _sync_cron_method( array $blog_ids, $current_blog_id = null ) {
6791
  if ( $this->is_registered() ) {
6792
- $this->sync_user_beta_mode();
6793
-
6794
  if ( $this->has_paid_plan() ) {
6795
  // Initiate background plan sync.
6796
  $this->_sync_license( true, false, $current_blog_id );
@@ -7078,6 +7156,8 @@
7078
  * @since 1.0.7
7079
  */
7080
  function _admin_init_action() {
 
 
7081
  /**
7082
  * Automatically redirect to connect/activation page after plugin activation.
7083
  *
@@ -7090,12 +7170,16 @@
7090
  /**
7091
  * Don't redirect if activating multiple plugins at once (bulk activation).
7092
  */
7093
- } else {
7094
  $this->_redirect_on_activation_hook();
7095
  return;
7096
  }
7097
  }
7098
 
 
 
 
 
7099
  if ( fs_request_is_action( $this->get_unique_affix() . '_skip_activation' ) ) {
7100
  check_admin_referer( $this->get_unique_affix() . '_skip_activation' );
7101
 
@@ -7126,7 +7210,7 @@
7126
  )
7127
  ) {
7128
  if ( ! $this->is_pending_activation() ) {
7129
- if ( ! $this->_menu->is_activation_page( $this->show_opt_in_on_themes_page() ) ) {
7130
  /**
7131
  * If a user visits any other admin page before activating the premium-only theme with a valid
7132
  * license, reactivate the previous theme.
@@ -7157,7 +7241,8 @@
7157
  }
7158
 
7159
  if ( $this->is_plugin_new_install() || $this->is_only_premium() ) {
7160
- if ( ! $this->_anonymous_mode ) {
 
7161
  // Show notice for new plugin installations.
7162
  $this->_admin_notices->add(
7163
  sprintf(
@@ -7208,6 +7293,10 @@
7208
  * @return bool
7209
  */
7210
  private function should_add_sticky_optin_notice() {
 
 
 
 
7211
  if ( fs_is_network_admin() ) {
7212
  if ( ! $this->_is_network_active ) {
7213
  return false;
@@ -7660,7 +7749,10 @@
7660
  * @author Leo Fajardo (@leorw)
7661
  * @since 1.2.2
7662
  */
7663
- if ( is_plugin_active( $other_version_basename ) ) {
 
 
 
7664
  deactivate_plugins( $other_version_basename );
7665
  }
7666
  }
@@ -7769,8 +7861,17 @@
7769
  $this->_storage->is_plugin_new_install = empty( $this->_storage->plugin_last_version );
7770
  }
7771
 
 
 
 
 
 
 
 
 
 
7772
  if ( ! $this->_anonymous_mode &&
7773
- $this->has_api_connectivity( WP_FS__DEV_MODE ) &&
7774
  ! $this->_isAutoInstall
7775
  ) {
7776
  // Store hint that the plugin was just activated to enable auto-redirection to settings.
@@ -7803,11 +7904,20 @@
7803
  return;
7804
  }
7805
 
7806
- $license = $this->get_addon_active_parent_license();
7807
  if ( ! is_object( $license ) ) {
7808
  return;
7809
  }
7810
 
 
 
 
 
 
 
 
 
 
7811
  if ( ! $this->is_registered() ) {
7812
  // Opt in with a license key.
7813
  $this->opt_in(
@@ -7830,7 +7940,6 @@
7830
  }
7831
  }
7832
 
7833
-
7834
  /**
7835
  * @author Leo Fajardo (@leorw)
7836
  * @since 2.3.0
@@ -7846,12 +7955,21 @@
7846
 
7847
  $license = ( ! is_null( $license ) ) ?
7848
  $license :
7849
- $this->get_addon_active_parent_license();
7850
 
7851
  if ( ! is_object( $license ) ) {
7852
  return;
7853
  }
7854
 
 
 
 
 
 
 
 
 
 
7855
  if ( ! $this->is_network_registered() ) {
7856
  $sites = $this->get_sites_for_network_level_optin();
7857
 
@@ -7915,16 +8033,217 @@
7915
  }
7916
 
7917
  /**
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7918
  * @author Leo Fajardo (@leorw)
7919
  * @since 2.3.0
7920
  *
 
 
 
7921
  * @return FS_Plugin_License
7922
  */
7923
- private function get_addon_active_parent_license() {
7924
  $parent_licenses_endpoint = "/plugins/{$this->get_id()}/parent_licenses.json?filter=activatable";
7925
- $parent_instance = $this->get_parent_instance();
7926
 
7927
- $foreign_licenses = $parent_instance->get_foreign_licenses_info(
 
 
 
 
 
 
 
 
 
 
7928
  self::get_all_licenses( $this->get_parent_id() )
7929
  );
7930
 
@@ -7938,7 +8257,7 @@
7938
  $parent_licenses_endpoint = add_query_arg( $foreign_licenses, $parent_licenses_endpoint );
7939
  }
7940
 
7941
- $result = $parent_instance->get_current_or_network_user_api_scope()->get( $parent_licenses_endpoint, true );
7942
 
7943
  if (
7944
  ! $this->is_api_result_object( $result, 'licenses' ) ||
@@ -7948,9 +8267,24 @@
7948
  return null;
7949
  }
7950
 
7951
- $license = new FS_Plugin_License( $result->licenses[ 0 ] );
7952
 
7953
- return $license;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7954
  }
7955
 
7956
  /**
@@ -8703,12 +9037,25 @@
8703
  'is_uninstalled' => false,
8704
  );
8705
 
8706
- $plugins_update_data[] = $new_plugin;
8707
  $network_plugins_cache->plugins[ $basename ] = $new_plugin;
8708
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8709
  if ( isset( $site_active_plugins[ $basename ] ) ) {
8710
  $site_active_plugins_cache->plugins[ $basename ] = $new_plugin;
8711
- $site_active_plugins_cache->plugins[ $basename ]['is_active'] = true;
8712
  }
8713
  }
8714
  }
@@ -10108,6 +10455,10 @@
10108
 
10109
  $class_name = '';
10110
 
 
 
 
 
10111
  switch ( $option_name ) {
10112
  case 'plugins':
10113
  case 'themes':
@@ -10392,6 +10743,18 @@
10392
  return ( is_object( $this->_site ) && $this->_site->is_tracking_allowed() );
10393
  }
10394
 
 
 
 
 
 
 
 
 
 
 
 
 
10395
  /**
10396
  * @author Vova Feldman (@svovaf)
10397
  * @since 1.0.4
@@ -12675,6 +13038,10 @@
12675
  * @since 1.2.0
12676
  */
12677
  function _add_license_activation() {
 
 
 
 
12678
  if ( ! $this->is_user_admin() ) {
12679
  // Only admins can activate a license.
12680
  return;
@@ -12733,7 +13100,9 @@
12733
  return;
12734
  }
12735
 
12736
- if ( empty( $this->get_installs_ids_with_foreign_licenses() ) ) {
 
 
12737
  // Handle user change only when the parent product or one of its add-ons is activated with a foreign license.
12738
  return;
12739
  }
@@ -12791,19 +13160,74 @@
12791
  }
12792
 
12793
  /**
12794
- * @author Leo Fajardo (@leorw)
12795
- * @since 2.3.0
 
 
12796
  */
12797
- function _add_beta_mode_update_handler() {
 
 
 
 
12798
  if ( ! $this->is_user_admin() ) {
12799
- return;
 
12800
  }
12801
 
12802
- if ( ! $this->is_premium() ) {
12803
- return;
 
 
 
 
 
 
 
 
 
 
12804
  }
12805
 
12806
- $this->add_ajax_action( 'set_beta_mode', array( &$this, '_set_beta_mode_ajax_handler' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12807
  }
12808
 
12809
  /**
@@ -12826,26 +13250,25 @@
12826
  self::shoot_ajax_failure();
12827
  }
12828
 
12829
- $user = $this->get_api_user_scope()->call(
12830
  '',
12831
  'put',
12832
  array(
12833
- 'plugin_id' => $this->get_id(),
12834
  'is_beta' => ( 'true' == $is_beta ),
12835
  'fields' => 'is_beta'
12836
  )
12837
  );
12838
 
12839
- if ( ! $this->is_api_result_entity( $user ) ) {
12840
  self::shoot_ajax_failure(
12841
- FS_Api::is_api_error_object( $user ) ?
12842
- $user->error->message :
12843
  fs_text_inline( "An unknown error has occurred while trying to set the user's beta mode.", 'unknown-error-occurred', $this->get_slug() )
12844
  );
12845
  }
12846
 
12847
- $this->_user->is_beta = $user->is_beta;
12848
- $this->_store_user();
12849
 
12850
  self::shoot_ajax_response( array( 'success' => true ) );
12851
  }
@@ -12869,18 +13292,30 @@
12869
  exit;
12870
  }
12871
 
 
 
 
 
12872
  $result = $this->activate_license(
12873
  $license_key,
12874
- fs_is_network_admin() ?
12875
- fs_request_get( 'sites', array(), 'post' ) :
12876
- array(),
12877
  fs_request_get_bool( 'is_marketing_allowed', null ),
12878
  fs_request_get( 'blog_id', null ),
12879
  fs_request_get( 'module_id', null, 'post' ),
12880
  fs_request_get( 'user_id', null ),
12881
- fs_request_get_bool( 'is_extensions_tracking_allowed', true )
12882
  );
12883
 
 
 
 
 
 
 
 
 
 
 
12884
  echo json_encode( $result );
12885
 
12886
  exit;
@@ -12967,6 +13402,46 @@
12967
  }
12968
 
12969
  /**
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12970
  * A helper method to activate migrated licenses. If the product is network activated and integrated, the method will network activate the license.
12971
  *
12972
  * @author Vova Feldman (@svovaf)
@@ -12975,6 +13450,8 @@
12975
  * @param string $license_key
12976
  * @param null|bool $is_marketing_allowed
12977
  * @param null|number $plugin_id
 
 
12978
  *
12979
  * @return array {
12980
  * @var bool $success
@@ -12987,17 +13464,19 @@
12987
  function activate_migrated_license(
12988
  $license_key,
12989
  $is_marketing_allowed = null,
12990
- $plugin_id = null
 
 
12991
  ) {
12992
  $this->_logger->entrance();
12993
 
12994
  $result = $this->activate_license(
12995
  $license_key,
12996
- $this->is_network_active() ?
12997
  $this->get_sites_for_network_level_optin() :
12998
- array(),
12999
  $is_marketing_allowed,
13000
- null,
13001
  $plugin_id
13002
  );
13003
 
@@ -13007,6 +13486,56 @@
13007
  return $result;
13008
  }
13009
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13010
  /**
13011
  * The implementation of this method was previously in `_activate_license_ajax_action()`.
13012
  *
@@ -13033,13 +13562,18 @@
13033
  $blog_id = null,
13034
  $plugin_id = null,
13035
  $license_owner_id = null,
13036
- $is_extensions_tracking_allowed = true
13037
  ) {
13038
  $this->_logger->entrance();
13039
 
13040
  $license_key = trim( $license_key );
13041
 
13042
- if ( ! fs_is_network_admin() ) {
 
 
 
 
 
13043
  // If the license activation is executed outside the context of a network admin, ignore the sites collection.
13044
  $sites = array();
13045
  }
@@ -13068,8 +13602,17 @@
13068
  $user = $fs->get_current_or_network_user();
13069
  }
13070
 
 
 
 
 
 
 
 
 
 
13071
  if ( is_object( $user ) ) {
13072
- if ( fs_is_network_admin() && ! $has_valid_blog_id ) {
13073
  // If no specific blog ID was provided, activate the license for all sites in the network.
13074
  $blog_2_install_map = array();
13075
  $site_ids = array();
@@ -13108,16 +13651,6 @@
13108
  }
13109
  }
13110
  } else {
13111
- if ( $has_valid_blog_id ) {
13112
- /**
13113
- * If a specific blog ID was provided, activate the license only for the install that is
13114
- * associated with the given blog ID.
13115
- *
13116
- * @author Leo Fajardo (@leorw)
13117
- */
13118
- $fs->switch_to_blog( $blog_id );
13119
- }
13120
-
13121
  if ( $fs->is_registered() ) {
13122
  $params = array(
13123
  'license_key' => $fs->apply_filters( 'license_key', $license_key )
@@ -13172,13 +13705,19 @@
13172
  if ( empty( $error ) ) {
13173
  $fs->network_upgrade_mode_completed();
13174
 
 
 
 
 
 
 
13175
  $fs->_sync_license( true, $has_valid_blog_id );
13176
 
13177
  $this->maybe_sync_install_user();
13178
 
13179
  $next_page = $fs->is_addon() ?
13180
  $fs->get_parent_instance()->get_account_url() :
13181
- $fs->get_account_url();
13182
  }
13183
  } else {
13184
  $next_page = $fs->opt_in(
@@ -13196,7 +13735,7 @@
13196
  if ( isset( $next_page->error ) ) {
13197
  $error = $next_page->error;
13198
  } else {
13199
- if ( fs_is_network_admin() ) {
13200
  /**
13201
  * Get the list of sites that were just opted-in (and license activated).
13202
  * This is an optimization for the next part below saving some DB queries.
@@ -14310,7 +14849,12 @@
14310
  * @return bool
14311
  */
14312
  function is_user_in_admin() {
14313
- return is_admin() && ! self::is_ajax() && ! self::is_cron();
 
 
 
 
 
14314
  }
14315
 
14316
  /**
@@ -14622,9 +15166,18 @@
14622
  if ( function_exists( 'get_sites' ) ) {
14623
  // For WP 4.6 and above.
14624
  return get_sites( $args );
14625
- } else if ( function_exists( 'wp_get_sites' ) ) {
14626
  // For WP 3.7 to WP 4.5.
14627
- return wp_get_sites( $args );
 
 
 
 
 
 
 
 
 
14628
  } else {
14629
  // For WP 3.6 and below.
14630
  return get_blog_list( 0, 'all' );
@@ -14801,7 +15354,7 @@
14801
  * @return bool Since 2.3.1 returns if a switch was made.
14802
  */
14803
  function switch_to_blog( $blog_id, FS_Site $install = null ) {
14804
- if ( $blog_id == $this->_context_is_network_or_blog_id ) {
14805
  return false;
14806
  }
14807
 
@@ -15930,19 +16483,6 @@
15930
  );
15931
  }
15932
 
15933
- /**
15934
- * @author Leo Fajardo (@leorw)
15935
- * @since 2.3.0
15936
- */
15937
- private function sync_user_beta_mode() {
15938
- $user = $this->get_api_user_scope()->get( '/?plugin_id=' . $this->get_id() . '&fields=is_beta' );
15939
-
15940
- if ( $this->is_api_result_entity( $user ) ) {
15941
- $this->_user->is_beta = $user->is_beta;
15942
- $this->_store_user();
15943
- }
15944
- }
15945
-
15946
  /**
15947
  * @author Vova Feldman (@svovaf)
15948
  * @since 1.1.7.4
@@ -16188,6 +16728,8 @@
16188
  'http' => 402
16189
  );
16190
 
 
 
16191
  return $result;
16192
  }
16193
 
@@ -16628,9 +17170,7 @@
16628
  $this->disable_opt_in_notice_and_lock_user();
16629
  }
16630
 
16631
- if ( ! is_null( $is_extensions_tracking_allowed ) ) {
16632
- $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
16633
- }
16634
 
16635
  return $this->setup_account(
16636
  $this->_user,
@@ -16675,9 +17215,7 @@
16675
  $this->disable_opt_in_notice_and_lock_user();
16676
  }
16677
 
16678
- if ( ! is_null( $is_extensions_tracking_allowed ) ) {
16679
- $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
16680
- }
16681
 
16682
  $sites = array();
16683
  foreach ( $site_ids as $site_id ) {
@@ -16720,9 +17258,7 @@
16720
  $this->disable_opt_in_notice_and_lock_user();
16721
  }
16722
 
16723
- if ( ! is_null( $is_extensions_tracking_allowed ) ) {
16724
- $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
16725
- }
16726
 
16727
  $install_ids = array();
16728
 
@@ -16833,7 +17369,7 @@
16833
  */
16834
  $license_key = fs_request_get( 'license_secret_key' );
16835
 
16836
- $this->update_extensions_tracking_flag( fs_request_get_bool( 'is_extensions_tracking_allowed', true ) );
16837
 
16838
  $this->install_with_current_user( $license_key );
16839
  }
@@ -17034,10 +17570,15 @@
17034
  * @author Vova Feldman (@svovaf)
17035
  * @since 1.0.6
17036
  *
17037
- * @param Freemius $parent_fs
17038
- * @param bool|int|null $network_level_or_blog_id True for network level opt-in and integer for opt-in for specified blog in the network.
 
17039
  */
17040
- private function _activate_addon_account( Freemius $parent_fs, $network_level_or_blog_id = null ) {
 
 
 
 
17041
  if ( $this->is_registered() ) {
17042
  // Already activated.
17043
  return;
@@ -17076,6 +17617,10 @@
17076
  }
17077
  }
17078
 
 
 
 
 
17079
  // Activate add-on with parent plugin credentials.
17080
  $result = $parent_fs->get_api_site_scope()->call(
17081
  "/addons/{$this->_plugin->id}/installs.json",
@@ -17084,16 +17629,25 @@
17084
  );
17085
 
17086
  if ( ! $this->is_api_result_object( $result, 'installs' ) ) {
17087
- $error_message = FS_Api::is_api_error_object( $result ) ?
17088
- $result->error->message :
17089
- $this->get_text_inline( 'An unknown error has occurred.', 'unknown-error' );
 
 
 
 
 
 
 
 
17090
 
17091
- $this->_admin_notices->add(
17092
- sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
17093
- $this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $error_message . '</b>',
17094
- $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
17095
- 'error'
17096
- );
 
17097
 
17098
  return;
17099
  }
@@ -17126,21 +17680,29 @@
17126
 
17127
  if ( ! fs_is_network_admin() ) {
17128
  // Try to activate premium license.
17129
- $this->_activate_license( true );
17130
- } else {
17131
- $license_id = fs_request_get( 'license_id' );
17132
 
17133
- if ( is_object( $this->_site ) &&
17134
- FS_Plugin_License::is_valid_id( $license_id ) &&
17135
- $license_id == $this->_site->license_id
17136
- ) {
17137
- // License is already activated.
17138
- return;
17139
  }
 
 
 
 
 
17140
 
17141
- $premium_license = FS_Plugin_License::is_valid_id( $license_id ) ?
17142
- $this->_get_license_by_id( $license_id ) :
17143
- $this->_get_available_premium_license();
 
 
 
 
 
 
 
 
 
17144
 
17145
  if ( is_object( $premium_license ) ) {
17146
  $this->maybe_network_activate_addon_license( $premium_license );
@@ -19438,9 +20000,11 @@
19438
  *
19439
  * @author Vova Feldman (@svovaf)
19440
  * @since 1.2.1
 
 
19441
  */
19442
- function has_active_valid_license() {
19443
- return self::is_active_valid_license( $this->_license );
19444
  }
19445
 
19446
  /**
@@ -19532,15 +20096,16 @@
19532
  * @since 2.1.3
19533
  *
19534
  * @param FS_Plugin_License $license
 
19535
  *
19536
  * @return bool
19537
  */
19538
- private static function is_active_valid_license( $license ) {
19539
  return (
19540
  is_object( $license ) &&
19541
  FS_Plugin_License::is_valid_id( $license->id ) &&
19542
  $license->is_active() &&
19543
- $license->is_valid()
19544
  );
19545
  }
19546
 
@@ -19594,6 +20159,22 @@
19594
  );
19595
  }
19596
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19597
  /**
19598
  * Check if user is a trial or have feature enabled license.
19599
  *
@@ -20040,6 +20621,20 @@
20040
  }
20041
  }
20042
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20043
  if ( $this->is_addon() || $this->has_addons() ) {
20044
  /**
20045
  * Purge the valid user licenses cache so that when the "Account" or the "Add-Ons" page is loaded,
@@ -20186,6 +20781,13 @@
20186
  }
20187
 
20188
  if ( 'none' !== $plan_change ) {
 
 
 
 
 
 
 
20189
  $this->do_action( 'after_license_change', $plan_change, $this->get_plan() );
20190
  }
20191
  }
@@ -20726,7 +21328,7 @@
20726
 
20727
  if ( $this->has_secret_key() ) {
20728
  $endpoint = add_query_arg( 'type', 'all', $endpoint );
20729
- } else if ( $this->is_registered() && $this->_user->is_beta() ) {
20730
  $endpoint = add_query_arg( 'type', 'beta', $endpoint );
20731
  }
20732
 
@@ -20909,7 +21511,7 @@
20909
  */
20910
  private function get_latest_download_link( $label, $plugin_id = false ) {
20911
  return sprintf(
20912
- '<a target="_blank" href="%s">%s</a>',
20913
  $this->_get_latest_download_local_url( $plugin_id ),
20914
  $label
20915
  );
@@ -20980,7 +21582,7 @@
20980
  $this->get_text_inline( 'Version %s was released.', 'version-x-released' ) . ' ' . $this->get_text_inline( 'Please download %s.', 'please-download-x' ),
20981
  $update->version,
20982
  sprintf(
20983
- '<a href="%s" target="_blank">%s</a>',
20984
  $this->get_account_url( 'download_latest' ),
20985
  sprintf(
20986
  /* translators: %s: plan name (e.g. latest "Professional" version) */
@@ -21467,7 +22069,7 @@
21467
  $this->get_plugin_title(),
21468
  fs_strip_url_protocol( get_site_url( $blog_id ) ),
21469
  sprintf(
21470
- '<a href="%s" target="_blank">%s</a>',
21471
  'https://freemius.com',
21472
  'freemius.com'
21473
  )
@@ -21566,6 +22168,18 @@
21566
 
21567
  if ( is_object( $fs ) ) {
21568
  $fs->_activate_license();
 
 
 
 
 
 
 
 
 
 
 
 
21569
  }
21570
 
21571
  return;
@@ -21788,6 +22402,26 @@
21788
 
21789
  $this->_handle_account_edits();
21790
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21791
  $this->do_action( 'account_page_load_before_departure' );
21792
  }
21793
 
@@ -21924,6 +22558,86 @@
21924
  }
21925
  }
21926
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21927
  #----------------------------------------------------------------------------------
21928
  #region Contact Us
21929
  #----------------------------------------------------------------------------------
@@ -22152,6 +22866,43 @@
22152
  $this->get_api_plugin_scope();
22153
  }
22154
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22155
  /**
22156
  * Show trial promotional notice (if any trial exist).
22157
  *
@@ -22675,6 +23426,14 @@
22675
  return;
22676
  }
22677
 
 
 
 
 
 
 
 
 
22678
  if ( fs_is_network_admin() ) {
22679
  if ( ! $this->_is_network_active ) {
22680
  // Don't add tracking links when browsing the network WP Admin and the plugin is not network active.
@@ -22705,14 +23464,18 @@
22705
  return;
22706
  }
22707
 
22708
- if ( $this->is_registered() && $this->is_tracking_allowed() ) {
22709
- if ( ! $this->is_enable_anonymous() ) {
22710
- // If opted in and tracking is allowed, don't allow to opt out if anonymous mode is disabled.
22711
- return;
22712
- }
 
 
 
22713
 
22714
- if ( ! $this->is_free_plan() ) {
22715
- // Don't allow to opt out if running in paid plan.
 
22716
  return;
22717
  }
22718
  }
@@ -22792,7 +23555,7 @@
22792
  if ( ! empty( $this->_dynamically_added_top_level_page_hook_name ) ) {
22793
  if ( $this->is_network_registered() ) {
22794
  $page = 'account';
22795
- } else if ( $this->is_network_anonymous() ) {
22796
  $this->maybe_set_slug_and_network_menu_exists_flag();
22797
  }
22798
  }
@@ -22827,10 +23590,12 @@
22827
  * @since 1.0.3
22828
  */
22829
  function _redirect_on_activation_hook() {
22830
- $url = $this->get_after_plugin_activation_redirect_url();
 
22831
 
22832
- if ( is_string( $url ) ) {
22833
- fs_redirect( $url );
 
22834
  }
22835
  }
22836
 
@@ -22870,7 +23635,7 @@
22870
 
22871
  foreach ( $this->_action_links as $new_links ) {
22872
  foreach ( $new_links as $link ) {
22873
- $before_deactivate[ $link['key'] ] = '<a href="' . $link['href'] . '"' . ( $link['external'] ? ' target="_blank"' : '' ) . '>' . $link['label'] . '</a>';
22874
  }
22875
  }
22876
 
@@ -22990,7 +23755,7 @@
22990
  '';
22991
 
22992
  return sprintf(
22993
- ' %s: <ol><li>%s.</li>%s<li>%s (<a href="%s" target="_blank">%s</a>).</li></ol>',
22994
  $this->get_text_inline( 'Please follow these steps to complete the upgrade', 'follow-steps-to-complete-upgrade' ),
22995
  ( empty( $activate_license_string ) ? '' : $activate_license_string . '</li><li>' ) .
22996
  $this->get_latest_download_link( sprintf(
@@ -23243,6 +24008,14 @@
23243
  */
23244
  function set_plugin_upgrade_complete() {
23245
  $this->_storage->plugin_upgrade_mode = false;
 
 
 
 
 
 
 
 
23246
  }
23247
 
23248
  #endregion
351
  */
352
  private $is_whitelabeled;
353
 
354
+ /**
355
+ * @author Leo Fajardo (@leorw)
356
+ * @since 2.4.0
357
+ *
358
+ * @var bool
359
+ */
360
+ private $_is_bundle_license_auto_activation_enabled = false;
361
+
362
  #region Uninstall Reasons IDs
363
 
364
  const REASON_NO_LONGER_NEEDED = 1;
377
  const REASON_DIDNT_WORK_AS_EXPECTED = 14;
378
  const REASON_TEMPORARY_DEACTIVATION = 15;
379
 
380
+ /**
381
+ * @author Leo Fajardo (@leorw)
382
+ * @since 2.3.1
383
+ *
384
+ * @var boolean|null
385
+ */
386
+ private $_use_external_pricing = null;
387
+ /**
388
+ * @author Leo Fajardo (@leorw)
389
+ * @since 2.4.2
390
+ *
391
+ * @var string|null
392
+ */
393
+ private $_pricing_js_path = null;
394
+
395
  #endregion
396
 
397
  /* Ctor
839
  return false;
840
  }
841
 
842
+ if (
843
+ ! $is_tabs_visibility_check &&
844
+ $this->is_org_repo_compliant() &&
845
+ $this->show_settings_with_tabs()
846
+ ) {
847
  /**
848
  * wp.org themes are limited to a single submenu item, and
849
  * sub-submenu items are most likely not allowed (never verified).
1484
  if ( $this->is_plugin() &&
1485
  ! isset( $this->_storage->is_plugin_new_install )
1486
  ) {
1487
+ $this->_storage->is_plugin_new_install = (
1488
+ ! is_plugin_active( $this->_plugin_basename ) &&
1489
+ empty( $this->_storage->plugin_last_version )
1490
+ );
1491
  }
1492
  }
1493
 
1510
  -1 < settings.url.indexOf('admin-ajax.php') &&
1511
  ! ( settings.url.indexOf( '<?php echo $admin_param ?>' ) > 0 )
1512
  ) {
1513
+ if (
1514
+ 'string' === typeof settings.data &&
1515
+ settings.data.indexOf( 'action=heartbeat' ) > 0
1516
+ ) {
1517
+ return;
1518
+ }
1519
+
1520
  if (settings.url.indexOf('?') > 0) {
1521
  settings.url += '&';
1522
  } else {
1524
  }
1525
 
1526
  settings.url += '<?php echo $admin_param ?>=true';
 
1527
  }
1528
  });
1529
  })(jQuery);
1541
  ?>
1542
  <script type="text/javascript">
1543
  (function ($) {
1544
+ $('.fs-submenu-item.wp-support-forum').parent().attr( { target: '_blank', rel: 'noopener noreferrer' } );
1545
  })(jQuery);
1546
  </script>
1547
  <?php
1637
  }
1638
 
1639
  add_action( 'init', array( &$this, '_maybe_add_gdpr_optin_ajax_handler') );
1640
+ add_action( 'init', array( &$this, '_maybe_add_pricing_ajax_handler' ) );
1641
  }
1642
 
1643
  if ( $this->is_plugin() ) {
1669
 
1670
  add_action( 'admin_init', array( &$this, '_redirect_on_clicked_menu_link' ), WP_FS__LOWEST_PRIORITY );
1671
 
1672
+ if ( $this->is_theme() && ! $this->is_migration() ) {
1673
  add_action( 'admin_init', array( &$this, '_add_tracking_links' ) );
1674
  }
1675
 
1681
  $this->add_ajax_action( 'update_billing', array( &$this, '_update_billing_ajax_action' ) );
1682
  $this->add_ajax_action( 'start_trial', array( &$this, '_start_trial_ajax_action' ) );
1683
  $this->add_ajax_action( 'set_data_debug_mode', array( &$this, '_set_data_debug_mode' ) );
1684
+ $this->add_ajax_action( 'toggle_whitelabel_mode', array( &$this, '_toggle_whitelabel_mode_ajax_handler' ) );
1685
 
1686
  if ( $this->_is_network_active && fs_is_network_admin() ) {
1687
  $this->add_ajax_action( 'network_activate', array( &$this, '_network_activate_ajax_action' ) );
2044
  * @since 2.0.0
2045
  */
2046
  function _hook_action_links_and_register_account_hooks() {
2047
+ if ( $this->is_migration() ) {
2048
+ return;
2049
+ }
2050
+
2051
  $this->_add_tracking_links();
2052
 
2053
  if ( self::is_plugins_page() && $this->is_plugin() ) {
2228
  );
2229
 
2230
  $store_option = true;
2231
+ } else if (
2232
+ isset( $id_slug_type_path_map[ $module_id ]['slug'] ) &&
2233
+ $slug !== $id_slug_type_path_map[ $module_id ]['slug']
2234
+ ) {
2235
+ $id_slug_type_path_map[ $module_id ]['slug'] = $slug;
2236
+ $store_option = true;
2237
  }
2238
 
2239
  if ( empty( $id_slug_type_path_map[ $module_id ]['path'] ) ||
4307
  )
4308
  ),
4309
  sprintf(
4310
+ '<a href="%s" target="_blank" rel="noopener noreferrer"><b>%s</b></a> - %s',
4311
  sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
4312
  $install_previous_title,
4313
  $install_previous_desc
4414
  )
4415
  ),
4416
  sprintf(
4417
+ '<a href="%s" target="_blank" rel="noopener noreferrer"><b>%s</b></a> - %s',
4418
  sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
4419
  $install_previous_title,
4420
  $install_previous_desc
4935
  } else {
4936
  $is_network_admin = fs_is_network_admin();
4937
 
4938
+ if ( ! $this->_parent->is_registered() && $this->is_registered() ) {
4939
+ // If add-on activated and parent not, automatically install parent for the user.
4940
+ $this->activate_parent_account( $this->_parent );
4941
+ } else if (
4942
  $this->_parent->is_registered() &&
4943
  ! $this->is_registered() &&
 
4944
  /**
4945
  * If not registered for add-on and the following conditions for the add-on are met, activate add-on account.
4946
  * * Network active and in network admin - network activate add-on account.
4954
  */
4955
  ( $this->is_network_active() || ! $is_network_admin )
4956
  ) {
4957
+ $premium_license = null;
4958
+
4959
+ if (
4960
+ ! $this->has_free_plan() &&
4961
+ $this->is_bundle_license_auto_activation_enabled() &&
4962
+ $this->_parent->is_activated_with_bundle_license()
4963
+ ) {
4964
+ /**
4965
+ * If the add-on has no free plan, try to activate the account only when there's a bundle license.
4966
+ *
4967
+ * @author Leo Fajardo (@leorw)
4968
+ * @since 2.4.0
4969
+ */
4970
+ $bundle_license = $this->get_active_parent_license( $this->_parent->_get_license()->secret_key, false );
4971
+
4972
+ if (
4973
+ is_object( $bundle_license ) &&
4974
+ ! empty( $bundle_license->products ) &&
4975
+ in_array( $this->get_id(), $bundle_license->products )
4976
+ ) {
4977
+ $premium_license = $bundle_license;
4978
+ }
4979
+ }
4980
+
4981
+ if ( $this->has_free_plan() || is_object( $premium_license) ) {
4982
+ // If parent plugin activated, automatically install add-on for the user.
4983
+ $this->_activate_addon_account(
4984
+ $this->_parent,
4985
+ ( $this->is_network_active() && $is_network_admin ) ?
4986
+ true :
4987
+ get_current_blog_id(),
4988
+ $premium_license
4989
+ );
4990
+ }
4991
  }
4992
 
4993
  // @todo This should be only executed on activation. It should be migrated to register_activation_hook() together with other activation related logic.
5489
  * @return bool
5490
  */
5491
  function is_extensions_tracking_allowed() {
5492
+ return ( true === $this->apply_filters(
5493
+ 'is_extensions_tracking_allowed',
5494
+ $this->_storage->get( 'is_extensions_tracking_allowed', null )
5495
+ ) );
5496
  }
5497
 
5498
  /**
5535
  * @author Leo Fajardo (@leorw)
5536
  * @since 2.3.2
5537
  *
5538
+ * @param bool|null $is_enabled
5539
  */
5540
+ function update_extensions_tracking_flag( $is_enabled ) {
5541
+ if ( is_bool( $is_enabled ) ) {
5542
+ $this->_storage->store( 'is_extensions_tracking_allowed', $is_enabled );
5543
+ }
5544
  }
5545
 
5546
  /**
5680
  $this->_anonymous_mode = $this->get_bool_option( $plugin_info, 'anonymous_mode', false );
5681
  }
5682
  $this->_permissions = $this->get_option( $plugin_info, 'permissions', array() );
5683
+ $this->_is_bundle_license_auto_activation_enabled = $this->get_option( $plugin_info, 'bundle_license_auto_activation', false );
5684
 
5685
  if ( ! empty( $plugin_info['trial'] ) ) {
5686
  $this->_trial_days = $this->get_numeric_option(
6869
  */
6870
  function _sync_cron_method( array $blog_ids, $current_blog_id = null ) {
6871
  if ( $this->is_registered() ) {
 
 
6872
  if ( $this->has_paid_plan() ) {
6873
  // Initiate background plan sync.
6874
  $this->_sync_license( true, false, $current_blog_id );
7156
  * @since 1.0.7
7157
  */
7158
  function _admin_init_action() {
7159
+ $is_migration = $this->is_migration();
7160
+
7161
  /**
7162
  * Automatically redirect to connect/activation page after plugin activation.
7163
  *
7170
  /**
7171
  * Don't redirect if activating multiple plugins at once (bulk activation).
7172
  */
7173
+ } else if ( ! $is_migration ) {
7174
  $this->_redirect_on_activation_hook();
7175
  return;
7176
  }
7177
  }
7178
 
7179
+ if ( $is_migration ) {
7180
+ return;
7181
+ }
7182
+
7183
  if ( fs_request_is_action( $this->get_unique_affix() . '_skip_activation' ) ) {
7184
  check_admin_referer( $this->get_unique_affix() . '_skip_activation' );
7185
 
7210
  )
7211
  ) {
7212
  if ( ! $this->is_pending_activation() ) {
7213
+ if ( ! $this->is_activation_page() ) {
7214
  /**
7215
  * If a user visits any other admin page before activating the premium-only theme with a valid
7216
  * license, reactivate the previous theme.
7241
  }
7242
 
7243
  if ( $this->is_plugin_new_install() || $this->is_only_premium() ) {
7244
+ if ( ! $this->_anonymous_mode &&
7245
+ ( ! $this->is_addon() || ! $this->_parent->is_anonymous() ) ) {
7246
  // Show notice for new plugin installations.
7247
  $this->_admin_notices->add(
7248
  sprintf(
7293
  * @return bool
7294
  */
7295
  private function should_add_sticky_optin_notice() {
7296
+ if ( $this->is_addon() && $this->_parent->is_anonymous() ) {
7297
+ return false;
7298
+ }
7299
+
7300
  if ( fs_is_network_admin() ) {
7301
  if ( ! $this->_is_network_active ) {
7302
  return false;
7749
  * @author Leo Fajardo (@leorw)
7750
  * @since 1.2.2
7751
  */
7752
+ if (
7753
+ is_plugin_active( $other_version_basename ) &&
7754
+ $this->apply_filters( 'deactivate_on_activation', true )
7755
+ ) {
7756
  deactivate_plugins( $other_version_basename );
7757
  }
7758
  }
7861
  $this->_storage->is_plugin_new_install = empty( $this->_storage->plugin_last_version );
7862
  }
7863
 
7864
+ /**
7865
+ * Also flush when activating the premium version so that even if Freemius was off before, the API
7866
+ * connectivity test can be run again.
7867
+ *
7868
+ * @author Leo Fajardo (@leorw)
7869
+ * @since 2.2.3.1
7870
+ */
7871
+ $has_api_connectivity = $this->has_api_connectivity( WP_FS__DEV_MODE || $is_premium_version_activation );
7872
+
7873
  if ( ! $this->_anonymous_mode &&
7874
+ $has_api_connectivity &&
7875
  ! $this->_isAutoInstall
7876
  ) {
7877
  // Store hint that the plugin was just activated to enable auto-redirection to settings.
7904
  return;
7905
  }
7906
 
7907
+ $license = $this->get_active_parent_license();
7908
  if ( ! is_object( $license ) ) {
7909
  return;
7910
  }
7911
 
7912
+ if (
7913
+ $this->is_bundle_license_auto_activation_enabled() &&
7914
+ ! empty( $license->products )
7915
+ ) {
7916
+ $this->activate_bundle_license( $license );
7917
+
7918
+ return;
7919
+ }
7920
+
7921
  if ( ! $this->is_registered() ) {
7922
  // Opt in with a license key.
7923
  $this->opt_in(
7940
  }
7941
  }
7942
 
 
7943
  /**
7944
  * @author Leo Fajardo (@leorw)
7945
  * @since 2.3.0
7955
 
7956
  $license = ( ! is_null( $license ) ) ?
7957
  $license :
7958
+ $this->get_active_parent_license();
7959
 
7960
  if ( ! is_object( $license ) ) {
7961
  return;
7962
  }
7963
 
7964
+ if (
7965
+ $this->is_bundle_license_auto_activation_enabled() &&
7966
+ ! empty( $license->products )
7967
+ ) {
7968
+ $this->activate_bundle_license( $license );
7969
+
7970
+ return;
7971
+ }
7972
+
7973
  if ( ! $this->is_network_registered() ) {
7974
  $sites = $this->get_sites_for_network_level_optin();
7975
 
8033
  }
8034
 
8035
  /**
8036
+ * Tries to activate a bundle license for all supported products if the current product is activated with a bundle license. This is called after activating an available license (not via the license activation dialog but by clicking on a license activation button) for a product via its "Account" page.
8037
+ *
8038
+ * @author Leo Fajardo (@leorw)
8039
+ * @since 2.4.0
8040
+ *
8041
+ * @param FS_Plugin_License $license
8042
+ * @param array $sites
8043
+ * @param int $blog_id
8044
+ */
8045
+ private function maybe_activate_bundle_license( FS_Plugin_License $license = null, $sites = array(), $blog_id = 0 ) {
8046
+ if ( ! is_object( $license ) && $this->has_active_valid_license() ) {
8047
+ $license = $this->_license;
8048
+ }
8049
+
8050
+ if ( ! is_object( $license ) ) {
8051
+ return;
8052
+ }
8053
+
8054
+ $parent_license = ( ! empty( $license->products ) ) ?
8055
+ $license :
8056
+ $this->get_active_parent_license( $license->secret_key );
8057
+
8058
+ if ( is_object( $parent_license ) ) {
8059
+ $this->activate_bundle_license( $parent_license, $sites, $blog_id );
8060
+ }
8061
+ }
8062
+
8063
+ /**
8064
+ * Try to activate a bundle license for all the bundle products installed on the site.
8065
+ * (1) If a child product install already has a license, the bundle license won't be activated.
8066
+ * (2) On multi-site networks, if the attempt to activate the bundle license is triggered from the network admin, the bundle license activation will only work for non-delegated sites and only if none of them is associated with a license. Even if one of the sites has the product installed with a license key, skip the bundle license activation for the product.
8067
+ * (3) On multi-site networks, if the attempt to activate the bundle license is triggered from a site-level admin, only activate the license if the product is site-level activated or delegated, and the product installation is not yet associated with a license.
8068
+ *
8069
+ * @author Leo Fajardo (@leorw)
8070
+ * @since 2.4.0
8071
+ *
8072
+ * @param FS_Plugin_License $license
8073
+ * @param array $sites
8074
+ * @param int $current_blog_id
8075
+ */
8076
+ private function activate_bundle_license( $license, $sites = array(), $current_blog_id = 0 ) {
8077
+ $is_network_admin = fs_is_network_admin();
8078
+
8079
+ $installs_by_blog_map = array();
8080
+ $site_info_by_blog_map = array();
8081
+
8082
+ /**
8083
+ * Try to activate the license for all supported products.
8084
+ *
8085
+ * @author Leo Fajardo
8086
+ */
8087
+ foreach ( $license->products as $product_id ) {
8088
+ $fs = self::get_instance_by_id( $product_id );
8089
+
8090
+ if ( ! is_object( $fs ) ) {
8091
+ continue;
8092
+ }
8093
+
8094
+ if ( ! $fs->has_paid_plan() ) {
8095
+ continue;
8096
+ }
8097
+
8098
+ if (
8099
+ ! $fs->is_addon() &&
8100
+ ! FS_Plan_Manager::instance()->has_paid_plan( $fs->_plans )
8101
+ ) {
8102
+ /**
8103
+ * The parent product can be free-only but can have its `has_paid_plan` flag set to `true` when
8104
+ * there is a context bundle.
8105
+ */
8106
+ continue;
8107
+ }
8108
+
8109
+ if ( $current_blog_id > 0 ) {
8110
+ $fs->switch_to_blog( $current_blog_id );
8111
+ }
8112
+
8113
+ if ( $fs->has_active_valid_license() ) {
8114
+ continue;
8115
+ }
8116
+
8117
+ if ( ! $is_network_admin || $current_blog_id > 0 ) {
8118
+ if ( $fs->is_network_active() && ! $fs->is_delegated_connection( $current_blog_id ) ) {
8119
+ // Do not try to activate the license in the site level if the product is network active and the connection was not delegated.
8120
+ continue;
8121
+ }
8122
+ } else {
8123
+ if ( ! $fs->is_network_active() ) {
8124
+ // Do not try to activate the license in the network level if the product is not network active.
8125
+ continue;
8126
+ }
8127
+
8128
+ if ( $fs->is_network_delegated_connection() ) {
8129
+ // Do not try to activate the license in the network level if the activation has been delegated to site admins.
8130
+ continue;
8131
+ }
8132
+
8133
+ $has_install_with_license = false;
8134
+
8135
+ // Collection of sites that have an install entity that is not activated with a license or non-delegated sites that have no install entity, or both types of site.
8136
+ $filtered_sites = array();
8137
+
8138
+ if ( empty( $sites ) ) {
8139
+ $all_sites = self::get_sites();
8140
+
8141
+ foreach ( $all_sites as $site ) {
8142
+ $sites[] = array( 'blog_id' => self::get_site_blog_id( $site ) );
8143
+ }
8144
+ } else {
8145
+ // Populate the map here to avoid calling `$fs->get_site_info( $site );` in the other `for` loop below.
8146
+ foreach ( $sites as $site ) {
8147
+ if ( ! isset( $site['blog_id'] ) || ! is_numeric( $site['blog_id'] ) ) {
8148
+ continue;
8149
+ }
8150
+
8151
+ $site_info_by_blog_map[ $site['blog_id'] ] = $site;
8152
+ }
8153
+ }
8154
+
8155
+ foreach ( $sites as $site ) {
8156
+ if ( ! isset( $site['blog_id'] ) || ! is_numeric( $site['blog_id'] ) ) {
8157
+ continue;
8158
+ }
8159
+
8160
+ $blog_id = $site['blog_id'];
8161
+
8162
+ if ( ! isset( $installs_by_blog_map[ $blog_id ] ) ) {
8163
+ $installs_by_blog_map[ $blog_id ] = self::get_all_sites( $fs->get_module_type(), $blog_id );
8164
+ }
8165
+
8166
+ $installs = $installs_by_blog_map[ $blog_id ];
8167
+ $install = null;
8168
+
8169
+ if ( isset( $installs[ $fs->get_slug() ] ) ) {
8170
+ $install = $installs[ $fs->get_slug() ];
8171
+
8172
+ if (
8173
+ is_object( $install ) &&
8174
+ (
8175
+ ! FS_Site::is_valid_id( $install->id ) ||
8176
+ ! FS_User::is_valid_id( $install->user_id ) ||
8177
+ ! FS_Plugin_Plan::is_valid_id( $install->plan_id )
8178
+ )
8179
+ ) {
8180
+ $install = null;
8181
+ }
8182
+ }
8183
+
8184
+ if (
8185
+ is_object( $install ) &&
8186
+ FS_Plugin_License::is_valid_id( $install->license_id )
8187
+ ) {
8188
+ $has_install_with_license = true;
8189
+ break;
8190
+ }
8191
+
8192
+ if ( $fs->is_site_delegated_connection( $blog_id ) ) {
8193
+ // Site activation delegated, don't activate bundle license on the site in the network admin.
8194
+ continue;
8195
+ }
8196
+
8197
+ if ( ! isset( $site_info_by_blog_map[ $blog_id ] ) ) {
8198
+ $site_info_by_blog_map[ $blog_id ] = $fs->get_site_info( $site );
8199
+ }
8200
+
8201
+ $filtered_sites[] = $site_info_by_blog_map[ $blog_id ];
8202
+ }
8203
+
8204
+ if ( $has_install_with_license || empty( $filtered_sites ) ) {
8205
+ // Do not try to activate the license at the network level if there's any install with a license or there's no site to activate the license on.
8206
+ continue;
8207
+ }
8208
+
8209
+ $sites = $filtered_sites;
8210
+ }
8211
+
8212
+ $fs->activate_migrated_license(
8213
+ $license->secret_key,
8214
+ null,
8215
+ null,
8216
+ $sites,
8217
+ ( $current_blog_id > 0 ? $current_blog_id : null )
8218
+ );
8219
+ }
8220
+ }
8221
+
8222
+ /**
8223
+ * Returns a parent license that can be activated for the context product.
8224
+ *
8225
  * @author Leo Fajardo (@leorw)
8226
  * @since 2.3.0
8227
  *
8228
+ * @param string|null $license_key
8229
+ * @param bool $flush
8230
+ *
8231
  * @return FS_Plugin_License
8232
  */
8233
+ function get_active_parent_license( $license_key = null, $flush = true ) {
8234
  $parent_licenses_endpoint = "/plugins/{$this->get_id()}/parent_licenses.json?filter=activatable";
 
8235
 
8236
+ $fs = $this;
8237
+
8238
+ if ( $this->is_addon() ) {
8239
+ $parent_instance = $this->get_parent_instance();
8240
+
8241
+ if ( is_object( $parent_instance ) && $parent_instance->is_registered() ) {
8242
+ $fs = $parent_instance;
8243
+ }
8244
+ }
8245
+
8246
+ $foreign_licenses = $fs->get_foreign_licenses_info(
8247
  self::get_all_licenses( $this->get_parent_id() )
8248
  );
8249
 
8257
  $parent_licenses_endpoint = add_query_arg( $foreign_licenses, $parent_licenses_endpoint );
8258
  }
8259
 
8260
+ $result = $fs->get_current_or_network_user_api_scope()->get( $parent_licenses_endpoint, $flush );
8261
 
8262
  if (
8263
  ! $this->is_api_result_object( $result, 'licenses' ) ||
8267
  return null;
8268
  }
8269
 
8270
+ $parent_license = null;
8271
 
8272
+ if ( empty( $license_key ) ) {
8273
+ $parent_license = $result->licenses[0];
8274
+ } else {
8275
+ foreach ( $result->licenses as $license ) {
8276
+ if ( $license_key === $license->secret_key ) {
8277
+ $parent_license = $license;
8278
+ break;
8279
+ }
8280
+ }
8281
+ }
8282
+
8283
+ if ( ! is_null( $parent_license ) ) {
8284
+ $parent_license = new FS_Plugin_License( $parent_license );
8285
+ }
8286
+
8287
+ return $parent_license;
8288
  }
8289
 
8290
  /**
9037
  'is_uninstalled' => false,
9038
  );
9039
 
 
9040
  $network_plugins_cache->plugins[ $basename ] = $new_plugin;
9041
 
9042
+ $is_site_level_active = (
9043
+ isset( $site_active_plugins[ $basename ] ) &&
9044
+ $site_active_plugins[ $basename ]['is_active']
9045
+ );
9046
+
9047
+ /**
9048
+ * If not network active, set the activity status based on the site-level plugin status.
9049
+ */
9050
+ if ( ! $new_plugin['is_active'] ) {
9051
+ $new_plugin['is_active'] = $is_site_level_active;
9052
+ }
9053
+
9054
+ $plugins_update_data[] = $new_plugin;
9055
+
9056
  if ( isset( $site_active_plugins[ $basename ] ) ) {
9057
  $site_active_plugins_cache->plugins[ $basename ] = $new_plugin;
9058
+ $site_active_plugins_cache->plugins[ $basename ]['is_active'] = $is_site_level_active;
9059
  }
9060
  }
9061
  }
10455
 
10456
  $class_name = '';
10457
 
10458
+ if ( fs_starts_with( $option_name, WP_FS__MODULE_TYPE_THEME . '_' ) ) {
10459
+ $option_name = str_replace( WP_FS__MODULE_TYPE_THEME . '_', '', $option_name );
10460
+ }
10461
+
10462
  switch ( $option_name ) {
10463
  case 'plugins':
10464
  case 'themes':
10743
  return ( is_object( $this->_site ) && $this->_site->is_tracking_allowed() );
10744
  }
10745
 
10746
+ /**
10747
+ * @author Leo Fajardo (@leorw)
10748
+ * @since 2.4.0
10749
+ *
10750
+ * @return bool
10751
+ */
10752
+ function is_bundle_license_auto_activation_enabled() {
10753
+ return $this->is_addon() ?
10754
+ ( is_object( $this->_parent ) && $this->_parent->is_bundle_license_auto_activation_enabled() ) :
10755
+ $this->_is_bundle_license_auto_activation_enabled;
10756
+ }
10757
+
10758
  /**
10759
  * @author Vova Feldman (@svovaf)
10760
  * @since 1.0.4
13038
  * @since 1.2.0
13039
  */
13040
  function _add_license_activation() {
13041
+ if ( $this->is_migration() ) {
13042
+ return;
13043
+ }
13044
+
13045
  if ( ! $this->is_user_admin() ) {
13046
  // Only admins can activate a license.
13047
  return;
13100
  return;
13101
  }
13102
 
13103
+ $installs_ids_with_foreign_licenses = $this->get_installs_ids_with_foreign_licenses();
13104
+
13105
+ if ( empty( $installs_ids_with_foreign_licenses ) ) {
13106
  // Handle user change only when the parent product or one of its add-ons is activated with a foreign license.
13107
  return;
13108
  }
13160
  }
13161
 
13162
  /**
13163
+ * @author Edgar Melkonyan
13164
+ * @since 2.4.1
13165
+ *
13166
+ * @throws Freemius_Exception
13167
  */
13168
+ function _toggle_whitelabel_mode_ajax_handler() {
13169
+ $this->_logger->entrance();
13170
+
13171
+ $this->check_ajax_referer( 'toggle_whitelabel_mode' );
13172
+
13173
  if ( ! $this->is_user_admin() ) {
13174
+ // Only for admins.
13175
+ self::shoot_ajax_failure();
13176
  }
13177
 
13178
+ $license = $this->get_api_user_scope()->call(
13179
+ "/licenses/{$this->_site->license_id}.json",
13180
+ 'put',
13181
+ array( 'is_whitelabeled' => ! $this->_license->is_whitelabeled )
13182
+ );
13183
+
13184
+ if ( ! $this->is_api_result_entity( $license ) ) {
13185
+ self::shoot_ajax_failure(
13186
+ FS_Api::is_api_error_object( $license ) ?
13187
+ $license->error->message :
13188
+ fs_text_inline( "An unknown error has occurred while trying to toggle the license's white-label mode.", 'unknown-error-occurred', $this->get_slug() )
13189
+ );
13190
  }
13191
 
13192
+ $this->_license->is_whitelabeled = $license->is_whitelabeled;
13193
+ $this->_store_licenses();
13194
+
13195
+ $this->_sync_license();
13196
+
13197
+ if ( ! $license->is_whitelabeled ) {
13198
+ $this->_admin_notices->remove_sticky( 'license_whitelabeled' );
13199
+ } else {
13200
+ $this->_admin_notices->add_sticky(
13201
+ sprintf(
13202
+ $this->get_text_inline(
13203
+ 'Your %s license was flagged as white-labeled to hide sensitive information from the WP Admin (e.g. your email, license key, prices, billing address & invoices). If you ever wish to revert it back, you can easily do it through your %s. If this was a mistake you can also %s.',
13204
+ 'license_whitelabeled'
13205
+ ),
13206
+ "<strong>{$this->get_plugin_title()}</strong>",
13207
+ sprintf( '<a href="https://users.freemius.com" target="_blank">%s</a>', $this->get_text_inline( 'User Dashboard', 'user-dashboard' ) ),
13208
+ sprintf( '<a href="#" class="fs-toggle-whitelabel-mode">%s</a>', $this->get_text_inline( 'revert it now', 'revert-it-now' ) )
13209
+ ),
13210
+ 'license_whitelabeled'
13211
+ );
13212
+ }
13213
+
13214
+ self::shoot_ajax_response( array( 'success' => true ) );
13215
+ }
13216
+
13217
+ /**
13218
+ * @author Leo Fajardo (@leorw)
13219
+ * @since 2.3.0
13220
+ */
13221
+ function _add_beta_mode_update_handler() {
13222
+ if ( ! $this->is_user_admin() ) {
13223
+ return;
13224
+ }
13225
+
13226
+ if ( ! $this->is_premium() ) {
13227
+ return;
13228
+ }
13229
+
13230
+ $this->add_ajax_action( 'set_beta_mode', array( &$this, '_set_beta_mode_ajax_handler' ) );
13231
  }
13232
 
13233
  /**
13250
  self::shoot_ajax_failure();
13251
  }
13252
 
13253
+ $site = $this->get_api_site_scope()->call(
13254
  '',
13255
  'put',
13256
  array(
 
13257
  'is_beta' => ( 'true' == $is_beta ),
13258
  'fields' => 'is_beta'
13259
  )
13260
  );
13261
 
13262
+ if ( ! $this->is_api_result_entity( $site ) ) {
13263
  self::shoot_ajax_failure(
13264
+ FS_Api::is_api_error_object( $site ) ?
13265
+ $site->error->message :
13266
  fs_text_inline( "An unknown error has occurred while trying to set the user's beta mode.", 'unknown-error-occurred', $this->get_slug() )
13267
  );
13268
  }
13269
 
13270
+ $this->_site->is_beta = $site->is_beta;
13271
+ $this->_store_site();
13272
 
13273
  self::shoot_ajax_response( array( 'success' => true ) );
13274
  }
13292
  exit;
13293
  }
13294
 
13295
+ $sites = fs_is_network_admin() ?
13296
+ fs_request_get( 'sites', array(), 'post' ) :
13297
+ array();
13298
+
13299
  $result = $this->activate_license(
13300
  $license_key,
13301
+ $sites,
 
 
13302
  fs_request_get_bool( 'is_marketing_allowed', null ),
13303
  fs_request_get( 'blog_id', null ),
13304
  fs_request_get( 'module_id', null, 'post' ),
13305
  fs_request_get( 'user_id', null ),
13306
+ fs_request_get_bool( 'is_extensions_tracking_allowed', null )
13307
  );
13308
 
13309
+ if (
13310
+ $result['success'] &&
13311
+ $this->is_bundle_license_auto_activation_enabled()
13312
+ ) {
13313
+ $license = new FS_Plugin_License();
13314
+ $license->secret_key = $license_key;
13315
+
13316
+ $this->maybe_activate_bundle_license( $license, $sites );
13317
+ }
13318
+
13319
  echo json_encode( $result );
13320
 
13321
  exit;
13402
  }
13403
 
13404
  /**
13405
+ * @author Leo Fajardo (@leorw)
13406
+ * @since 2.3.2.14
13407
+ */
13408
+ function starting_migration() {
13409
+ if ( ! empty( $this->_storage->license_migration ) ) {
13410
+ // Do not overwrite the data if already set.
13411
+ return;
13412
+ }
13413
+
13414
+ $this->_storage->license_migration = array(
13415
+ 'is_migrating' => true,
13416
+ 'start_timestamp' => time()
13417
+ );
13418
+ }
13419
+
13420
+ /**
13421
+ * @author Leo Fajardo (@leorw)
13422
+ * @since 2.3.2.14
13423
+ */
13424
+ function is_migration() {
13425
+ if ( $this->is_addon() ) {
13426
+ return $this->get_parent_instance()->is_migration();
13427
+ }
13428
+
13429
+ if ( empty( $this->_storage->license_migration ) ) {
13430
+ return false;
13431
+ }
13432
+
13433
+ if ( ! $this->_storage->license_migration['is_migrating'] ) {
13434
+ return false;
13435
+ }
13436
+
13437
+ return (
13438
+ // Return `true` if the migration is within 5 minutes from the starting time.
13439
+ ( time() - $this->_storage->license_migration['start_timestamp'] ) <= WP_FS__TIME_5_MIN_IN_SEC
13440
+ );
13441
+ }
13442
+
13443
+ /**
13444
+ *
13445
  * A helper method to activate migrated licenses. If the product is network activated and integrated, the method will network activate the license.
13446
  *
13447
  * @author Vova Feldman (@svovaf)
13450
  * @param string $license_key
13451
  * @param null|bool $is_marketing_allowed
13452
  * @param null|number $plugin_id
13453
+ * @param array $sites
13454
+ * @param int $blog_id
13455
  *
13456
  * @return array {
13457
  * @var bool $success
13464
  function activate_migrated_license(
13465
  $license_key,
13466
  $is_marketing_allowed = null,
13467
+ $plugin_id = null,
13468
+ $sites = array(),
13469
+ $blog_id = null
13470
  ) {
13471
  $this->_logger->entrance();
13472
 
13473
  $result = $this->activate_license(
13474
  $license_key,
13475
+ ( empty( $sites ) && is_null( $blog_id ) && $this->is_network_active() ) ?
13476
  $this->get_sites_for_network_level_optin() :
13477
+ $sites,
13478
  $is_marketing_allowed,
13479
+ $blog_id,
13480
  $plugin_id
13481
  );
13482
 
13486
  return $result;
13487
  }
13488
 
13489
+ /**
13490
+ * @author Leo Fajardo (@leorw)
13491
+ * @since 2.3.1
13492
+ *
13493
+ * @return string
13494
+ */
13495
+ function get_pricing_js_path() {
13496
+ if ( ! isset( $this->_pricing_js_path ) ) {
13497
+ $pricing_js_path = $this->apply_filters( 'freemius_pricing_js_path', '' );
13498
+
13499
+ if ( empty( $pricing_js_path ) ) {
13500
+ global $fs_active_plugins;
13501
+
13502
+ foreach ( $fs_active_plugins->plugins as $sdk_path => $data ) {
13503
+ if ( $data->plugin_path == $this->get_plugin_basename() ) {
13504
+ $plugin_or_theme_root_dir = ( $this->is_plugin() ? WP_PLUGIN_DIR : get_theme_root( get_stylesheet() ) );
13505
+
13506
+ $pricing_js_path = $plugin_or_theme_root_dir
13507
+ . '/'
13508
+ // The basename will be `plugins`, `themes`, or the basename of a custom plugins or themes directory.
13509
+ . str_replace( '../' . basename( $plugin_or_theme_root_dir ) . '/', '', $sdk_path )
13510
+ . '/includes/freemius-pricing/freemius-pricing.js';
13511
+
13512
+ break;
13513
+ }
13514
+ }
13515
+ }
13516
+
13517
+ $this->_pricing_js_path = $pricing_js_path;
13518
+ }
13519
+
13520
+ return $this->_pricing_js_path;
13521
+ }
13522
+
13523
+ /**
13524
+ * @author Leo Fajardo (@leorw)
13525
+ * @since 2.3.1
13526
+ *
13527
+ * @return bool
13528
+ */
13529
+ function should_use_external_pricing() {
13530
+ if ( is_null( $this->_use_external_pricing ) ) {
13531
+ $pricing_js_path = $this->get_pricing_js_path();
13532
+
13533
+ $this->_use_external_pricing = ( empty( $pricing_js_path ) || ! file_exists( $pricing_js_path ) );
13534
+ }
13535
+
13536
+ return $this->_use_external_pricing;
13537
+ }
13538
+
13539
  /**
13540
  * The implementation of this method was previously in `_activate_license_ajax_action()`.
13541
  *
13562
  $blog_id = null,
13563
  $plugin_id = null,
13564
  $license_owner_id = null,
13565
+ $is_extensions_tracking_allowed = null
13566
  ) {
13567
  $this->_logger->entrance();
13568
 
13569
  $license_key = trim( $license_key );
13570
 
13571
+ $is_network_activation_or_migration = (
13572
+ fs_is_network_admin() ||
13573
+ ( ! empty( $sites ) && $this->is_migration() )
13574
+ );
13575
+
13576
+ if ( ! $is_network_activation_or_migration ) {
13577
  // If the license activation is executed outside the context of a network admin, ignore the sites collection.
13578
  $sites = array();
13579
  }
13602
  $user = $fs->get_current_or_network_user();
13603
  }
13604
 
13605
+ if ( $has_valid_blog_id ) {
13606
+ /**
13607
+ * If a specific blog ID was provided, activate the license only on the specific blog that is associated with the given blog ID.
13608
+ *
13609
+ * @author Leo Fajardo (@leorw)
13610
+ */
13611
+ $fs->switch_to_blog( $blog_id );
13612
+ }
13613
+
13614
  if ( is_object( $user ) ) {
13615
+ if ( $is_network_activation_or_migration && ! $has_valid_blog_id ) {
13616
  // If no specific blog ID was provided, activate the license for all sites in the network.
13617
  $blog_2_install_map = array();
13618
  $site_ids = array();
13651
  }
13652
  }
13653
  } else {
 
 
 
 
 
 
 
 
 
 
13654
  if ( $fs->is_registered() ) {
13655
  $params = array(
13656
  'license_key' => $fs->apply_filters( 'license_key', $license_key )
13705
  if ( empty( $error ) ) {
13706
  $fs->network_upgrade_mode_completed();
13707
 
13708
+ $fs->_user = $user;
13709
+
13710
+ if ( fs_is_network_admin() && ! $has_valid_blog_id ) {
13711
+ $fs->_site = $fs->get_network_install();
13712
+ }
13713
+
13714
  $fs->_sync_license( true, $has_valid_blog_id );
13715
 
13716
  $this->maybe_sync_install_user();
13717
 
13718
  $next_page = $fs->is_addon() ?
13719
  $fs->get_parent_instance()->get_account_url() :
13720
+ $fs->get_after_activation_url( 'after_connect_url' );
13721
  }
13722
  } else {
13723
  $next_page = $fs->opt_in(
13735
  if ( isset( $next_page->error ) ) {
13736
  $error = $next_page->error;
13737
  } else {
13738
+ if ( $is_network_activation_or_migration ) {
13739
  /**
13740
  * Get the list of sites that were just opted-in (and license activated).
13741
  * This is an optimization for the next part below saving some DB queries.
14849
  * @return bool
14850
  */
14851
  function is_user_in_admin() {
14852
+ return (
14853
+ is_admin() &&
14854
+ ! self::is_ajax() &&
14855
+ ! self::is_cron() &&
14856
+ ( 'admin-post.php' !== self::get_current_page() )
14857
+ );
14858
  }
14859
 
14860
  /**
15166
  if ( function_exists( 'get_sites' ) ) {
15167
  // For WP 4.6 and above.
15168
  return get_sites( $args );
15169
+ } else if ( function_exists( 'wp_' . 'get_sites' ) ) {
15170
  // For WP 3.7 to WP 4.5.
15171
+ /**
15172
+ * This is a hack suggested previously proposed by the TRT. Our SDK is compliant with older WP versions and we'd like to keep it that way.
15173
+ *
15174
+ * @todo Remove this hack once this false-positive error is removed from the Theme Sniffer.
15175
+ *
15176
+ * @since 2.3.3
15177
+ * @author Vova Feldman (@svovaf)
15178
+ */
15179
+ $fn = 'wp_' . 'get_sites';
15180
+ return $fn( $args );
15181
  } else {
15182
  // For WP 3.6 and below.
15183
  return get_blog_list( 0, 'all' );
15354
  * @return bool Since 2.3.1 returns if a switch was made.
15355
  */
15356
  function switch_to_blog( $blog_id, FS_Site $install = null ) {
15357
+ if ( ! is_numeric( $blog_id ) || $blog_id == $this->_context_is_network_or_blog_id ) {
15358
  return false;
15359
  }
15360
 
16483
  );
16484
  }
16485
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16486
  /**
16487
  * @author Vova Feldman (@svovaf)
16488
  * @since 1.1.7.4
16728
  'http' => 402
16729
  );
16730
 
16731
+ $this->maybe_modify_api_curl_error_message( $result );
16732
+
16733
  return $result;
16734
  }
16735
 
17170
  $this->disable_opt_in_notice_and_lock_user();
17171
  }
17172
 
17173
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
 
 
17174
 
17175
  return $this->setup_account(
17176
  $this->_user,
17215
  $this->disable_opt_in_notice_and_lock_user();
17216
  }
17217
 
17218
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
 
 
17219
 
17220
  $sites = array();
17221
  foreach ( $site_ids as $site_id ) {
17258
  $this->disable_opt_in_notice_and_lock_user();
17259
  }
17260
 
17261
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
 
 
17262
 
17263
  $install_ids = array();
17264
 
17369
  */
17370
  $license_key = fs_request_get( 'license_secret_key' );
17371
 
17372
+ $this->update_extensions_tracking_flag( fs_request_get_bool( 'is_extensions_tracking_allowed', null ) );
17373
 
17374
  $this->install_with_current_user( $license_key );
17375
  }
17570
  * @author Vova Feldman (@svovaf)
17571
  * @since 1.0.6
17572
  *
17573
+ * @param Freemius $parent_fs
17574
+ * @param bool|int|null $network_level_or_blog_id True for network level opt-in and integer for opt-in for specified blog in the network.
17575
+ * @param FS_Plugin_License $bundle_license Since 2.4.0. If provided, this license will be activated for the add-on.
17576
  */
17577
+ private function _activate_addon_account(
17578
+ Freemius $parent_fs,
17579
+ $network_level_or_blog_id = null,
17580
+ FS_Plugin_License $bundle_license = null
17581
+ ) {
17582
  if ( $this->is_registered() ) {
17583
  // Already activated.
17584
  return;
17617
  }
17618
  }
17619
 
17620
+ if ( is_object( $bundle_license ) ) {
17621
+ $params['license_key'] = $bundle_license->secret_key;
17622
+ }
17623
+
17624
  // Activate add-on with parent plugin credentials.
17625
  $result = $parent_fs->get_api_site_scope()->call(
17626
  "/addons/{$this->_plugin->id}/installs.json",
17629
  );
17630
 
17631
  if ( ! $this->is_api_result_object( $result, 'installs' ) ) {
17632
+ if ( is_object( $bundle_license ) ) {
17633
+ /**
17634
+ * When a license object is provided, it's an attempt by the SDK to activate a bundle license and not a user-initiated action, therefore, do not show any admin notice to avoid confusion (e.g.: the notice will show up just above the opt-in link). If the license activation fails, the admin will see an opt-in link instead.
17635
+ *
17636
+ * @author Leo Fajardo (@leorw)
17637
+ * @since 2.4.0
17638
+ */
17639
+ } else {
17640
+ $error_message = FS_Api::is_api_error_object( $result ) ?
17641
+ $result->error->message :
17642
+ $this->get_text_inline( 'An unknown error has occurred.', 'unknown-error' );
17643
 
17644
+ $this->_admin_notices->add(
17645
+ sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
17646
+ $this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $error_message . '</b>',
17647
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
17648
+ 'error'
17649
+ );
17650
+ }
17651
 
17652
  return;
17653
  }
17680
 
17681
  if ( ! fs_is_network_admin() ) {
17682
  // Try to activate premium license.
17683
+ $this->_activate_license( true, $bundle_license );
 
 
17684
 
17685
+ if ( is_object( $bundle_license ) ) {
17686
+ $this->maybe_activate_bundle_license( $bundle_license );
 
 
 
 
17687
  }
17688
+ } else {
17689
+ if ( is_object( $bundle_license ) ) {
17690
+ $premium_license = $bundle_license;
17691
+ } else {
17692
+ $license_id = fs_request_get( 'license_id' );
17693
 
17694
+ if ( is_object( $this->_site ) &&
17695
+ FS_Plugin_License::is_valid_id( $license_id ) &&
17696
+ $license_id == $this->_site->license_id
17697
+ ) {
17698
+ // License is already activated.
17699
+ return;
17700
+ }
17701
+
17702
+ $premium_license = FS_Plugin_License::is_valid_id( $license_id ) ?
17703
+ $this->_get_license_by_id( $license_id ) :
17704
+ $this->_get_available_premium_license();
17705
+ }
17706
 
17707
  if ( is_object( $premium_license ) ) {
17708
  $this->maybe_network_activate_addon_license( $premium_license );
20000
  *
20001
  * @author Vova Feldman (@svovaf)
20002
  * @since 1.2.1
20003
+ *
20004
+ * @param bool $check_expiration
20005
  */
20006
+ function has_active_valid_license( $check_expiration = true ) {
20007
+ return self::is_active_valid_license( $this->_license, $check_expiration );
20008
  }
20009
 
20010
  /**
20096
  * @since 2.1.3
20097
  *
20098
  * @param FS_Plugin_License $license
20099
+ * @param bool $check_expiration
20100
  *
20101
  * @return bool
20102
  */
20103
+ private static function is_active_valid_license( $license, $check_expiration = true ) {
20104
  return (
20105
  is_object( $license ) &&
20106
  FS_Plugin_License::is_valid_id( $license->id ) &&
20107
  $license->is_active() &&
20108
+ ( ! $check_expiration || $license->is_valid() )
20109
  );
20110
  }
20111
 
20159
  );
20160
  }
20161
 
20162
+ /**
20163
+ * Checks if the product is activated with a bundle license.
20164
+ *
20165
+ * @author Leo Fajardo (@leorw)
20166
+ * @since 2.4.0
20167
+ *
20168
+ * @return bool
20169
+ */
20170
+ function is_activated_with_bundle_license() {
20171
+ if ( ! $this->has_features_enabled_license() ) {
20172
+ return false;
20173
+ }
20174
+
20175
+ return FS_Plugin_License::is_valid_id( $this->_license->parent_license_id );
20176
+ }
20177
+
20178
  /**
20179
  * Check if user is a trial or have feature enabled license.
20180
  *
20621
  }
20622
  }
20623
 
20624
+ if ( ! $this->is_addon() &&
20625
+ $this->_site->is_beta() !== $site->is_beta
20626
+ ) {
20627
+ // Beta flag updated.
20628
+ $this->_site = $site;
20629
+
20630
+ $this->_store_site(
20631
+ true,
20632
+ $is_site_level_sync ?
20633
+ null :
20634
+ $this->get_network_install_blog_id()
20635
+ );
20636
+ }
20637
+
20638
  if ( $this->is_addon() || $this->has_addons() ) {
20639
  /**
20640
  * Purge the valid user licenses cache so that when the "Account" or the "Add-Ons" page is loaded,
20781
  }
20782
 
20783
  if ( 'none' !== $plan_change ) {
20784
+ if (
20785
+ ! is_object( $this->_license ) ||
20786
+ ! $this->_license->is_whitelabeled
20787
+ ) {
20788
+ $this->_admin_notices->remove_sticky( 'license_whitelabeled' );
20789
+ }
20790
+
20791
  $this->do_action( 'after_license_change', $plan_change, $this->get_plan() );
20792
  }
20793
  }
21328
 
21329
  if ( $this->has_secret_key() ) {
21330
  $endpoint = add_query_arg( 'type', 'all', $endpoint );
21331
+ } else if ( is_object( $this->_site ) && $this->_site->is_beta() ) {
21332
  $endpoint = add_query_arg( 'type', 'beta', $endpoint );
21333
  }
21334
 
21511
  */
21512
  private function get_latest_download_link( $label, $plugin_id = false ) {
21513
  return sprintf(
21514
+ '<a target="_blank" rel="noopener" href="%s">%s</a>',
21515
  $this->_get_latest_download_local_url( $plugin_id ),
21516
  $label
21517
  );
21582
  $this->get_text_inline( 'Version %s was released.', 'version-x-released' ) . ' ' . $this->get_text_inline( 'Please download %s.', 'please-download-x' ),
21583
  $update->version,
21584
  sprintf(
21585
+ '<a href="%s" target="_blank" rel="noopener">%s</a>',
21586
  $this->get_account_url( 'download_latest' ),
21587
  sprintf(
21588
  /* translators: %s: plan name (e.g. latest "Professional" version) */
22069
  $this->get_plugin_title(),
22070
  fs_strip_url_protocol( get_site_url( $blog_id ) ),
22071
  sprintf(
22072
+ '<a href="%s" target="_blank" rel="noopener">%s</a>',
22073
  'https://freemius.com',
22074
  'freemius.com'
22075
  )
22168
 
22169
  if ( is_object( $fs ) ) {
22170
  $fs->_activate_license();
22171
+
22172
+ /**
22173
+ * Remove the product ID from `$_REQUEST` so that the syncing of the license for the other products will work properly.
22174
+ *
22175
+ * @author Leo Fajardo (@leorw)
22176
+ * @since 2.4.0
22177
+ */
22178
+ unset( $_REQUEST['plugin_id'] );
22179
+
22180
+ if ( $this->is_bundle_license_auto_activation_enabled() ) {
22181
+ $fs->maybe_activate_bundle_license( null, array(), is_numeric( $blog_id ) ? $blog_id : 0 );
22182
+ }
22183
  }
22184
 
22185
  return;
22402
 
22403
  $this->_handle_account_edits();
22404
 
22405
+ if (
22406
+ is_object( $this->_license ) &&
22407
+ $this->_license->user_id == $this->_user->id &&
22408
+ ! $this->is_whitelabeled( true )
22409
+ ) {
22410
+ $this->_admin_notices->add(
22411
+ sprintf(
22412
+ $this->get_text_inline( "Is this your client's site? %s if you wish to hide sensitive info like your email, license key, prices, billing address & invoices from the WP Admin.", 'license_not_whitelabeled' ),
22413
+ sprintf(
22414
+ '<a href="#" class="fs-toggle-whitelabel-mode">%s</a>',
22415
+ $this->get_text_inline( 'Click here', 'click-here' )
22416
+ )
22417
+ ),
22418
+ '',
22419
+ 'success',
22420
+ false,
22421
+ 'license_not_whitelabeled'
22422
+ );
22423
+ }
22424
+
22425
  $this->do_action( 'account_page_load_before_departure' );
22426
  }
22427
 
22558
  }
22559
  }
22560
 
22561
+ /**
22562
+ * @author Leo Fajardo (@leorw)
22563
+ * @since 2.3.1
22564
+ */
22565
+ function _maybe_add_pricing_ajax_handler() {
22566
+ if ( ! $this->should_use_external_pricing() ) {
22567
+ $this->add_ajax_action( 'pricing_ajax_action', array( &$this, '_fs_pricing_ajax_action_handler' ) );
22568
+ }
22569
+ }
22570
+
22571
+ /**
22572
+ * @author Leo Fajardo (@leorw)
22573
+ * @since 2.3.1
22574
+ */
22575
+ function _fs_pricing_ajax_action_handler() {
22576
+ $this->check_ajax_referer( 'pricing_ajax_action' );
22577
+
22578
+ $result = null;
22579
+ $pricing_action = fs_request_get( 'pricing_action' );
22580
+
22581
+ switch ( $pricing_action ) {
22582
+ case 'fetch_pricing_data':
22583
+ $params = array(
22584
+ 'is_enriched' => true,
22585
+ 'trial' => fs_request_get_bool( 'trial' ),
22586
+ 'sandbox' => fs_request_get( 'sandbox' ),
22587
+ 's_ctx_type' => fs_request_get( 's_ctx_type' ),
22588
+ 's_ctx_id' => fs_request_get( 's_ctx_id' ),
22589
+ 's_ctx_ts' => fs_request_get( 's_ctx_ts' ),
22590
+ 's_ctx_secure' => fs_request_get( 's_ctx_secure' ),
22591
+ );
22592
+
22593
+ $bundle_id = $this->get_bundle_id();
22594
+ $bundle_public_key = $this->get_bundle_public_key();
22595
+
22596
+ $has_bundle_context = ( FS_Plugin::is_valid_id( $bundle_id ) && ! empty( $bundle_public_key ) );
22597
+
22598
+ if ( ! $has_bundle_context ) {
22599
+ $api = $this->get_api_plugin_scope();
22600
+ } else {
22601
+ $api = FS_Api::instance(
22602
+ $bundle_id,
22603
+ 'plugin',
22604
+ $bundle_id,
22605
+ $bundle_public_key,
22606
+ ! $this->is_live(),
22607
+ false,
22608
+ $this->get_sdk_version()
22609
+ );
22610
+
22611
+ $params['plugin_id'] = $this->get_id();
22612
+ $params['plugin_public_key'] = $this->get_public_key();
22613
+ }
22614
+
22615
+ $result = $api->get( 'pricing.json?' . http_build_query( $params ) );
22616
+ break;
22617
+ case 'start_trial':
22618
+ $result = $this->opt_in(
22619
+ false,
22620
+ false,
22621
+ false,
22622
+ false,
22623
+ false,
22624
+ fs_request_get( 'plan_id' )
22625
+ );
22626
+ }
22627
+
22628
+ if ( is_object( $result ) && $this->is_api_error( $result ) ) {
22629
+ $this->_logger->api_error( $result );
22630
+
22631
+ self::shoot_ajax_failure(
22632
+ isset( $result->error ) ?
22633
+ ( is_string( $result->error ) ? $result->error : $result->error->message ) :
22634
+ var_export( $result, true )
22635
+ );
22636
+ }
22637
+
22638
+ $this->shoot_ajax_success( $result );
22639
+ }
22640
+
22641
  #----------------------------------------------------------------------------------
22642
  #region Contact Us
22643
  #----------------------------------------------------------------------------------
22866
  $this->get_api_plugin_scope();
22867
  }
22868
 
22869
+ /**
22870
+ * @author Leo Fajardo (@leorw)
22871
+ * @since 2.2.3.1
22872
+ *
22873
+ * @param object $result
22874
+ */
22875
+ private function maybe_modify_api_curl_error_message( $result ) {
22876
+ if (
22877
+ 'cUrlMissing' !== $result->error->type &&
22878
+ ( 'CurlException' !== $result->error->type || CURLE_COULDNT_CONNECT != $result->error->code ) &&
22879
+ ( 'HttpRequestFailed' !== $result->error->type || false === strpos( $result->error->message, 'cURL error ' . CURLE_COULDNT_CONNECT ) )
22880
+ ) {
22881
+ return;
22882
+ }
22883
+
22884
+ $result->error->message = $this->esc_html_inline( 'We use PHP cURL library for the API calls, which is a very common library and usually installed and activated out of the box. Unfortunately, cURL is not activated (or disabled) on your server.', 'curl-missing-message' ) .
22885
+ ' ' .
22886
+ $this->esc_html_inline(
22887
+ sprintf(
22888
+ 'Please contact your hosting provider and ask them to whitelist %s for external connection.',
22889
+ implode(
22890
+ ', ',
22891
+ $this->apply_filters( 'api_domains', array(
22892
+ 'api.freemius.com',
22893
+ 'wp.freemius.com'
22894
+ ) )
22895
+ )
22896
+ ),
22897
+ 'connectivity-whitelist'
22898
+ ) .
22899
+ ' ' .
22900
+ sprintf(
22901
+ $this->esc_html_inline( 'Once you are done, deactivate the %s and activate it again.', 'connectivity-reactivate-module' ),
22902
+ $this->get_module_type()
22903
+ );
22904
+ }
22905
+
22906
  /**
22907
  * Show trial promotional notice (if any trial exist).
22908
  *
23426
  return;
23427
  }
23428
 
23429
+ if (
23430
+ $this->is_addon() &&
23431
+ ! $this->is_only_premium() &&
23432
+ $this->_parent->is_anonymous()
23433
+ ) {
23434
+ return;
23435
+ }
23436
+
23437
  if ( fs_is_network_admin() ) {
23438
  if ( ! $this->_is_network_active ) {
23439
  // Don't add tracking links when browsing the network WP Admin and the plugin is not network active.
23464
  return;
23465
  }
23466
 
23467
+ if (
23468
+ $this->is_activation_mode() &&
23469
+ $this->is_premium() &&
23470
+ ! $this->is_registered()
23471
+ ) {
23472
+ // If not yet registered and running the premium code base, a license activation link will already be shown.
23473
+ return;
23474
+ }
23475
 
23476
+ if ( $this->is_registered() && $this->is_tracking_allowed() ) {
23477
+ if ( ! $this->is_premium() && ! $this->is_enable_anonymous() ) {
23478
+ // If opted in and tracking is allowed, don't allow to opt out if not premium and anonymous mode is disabled.
23479
  return;
23480
  }
23481
  }
23555
  if ( ! empty( $this->_dynamically_added_top_level_page_hook_name ) ) {
23556
  if ( $this->is_network_registered() ) {
23557
  $page = 'account';
23558
+ } else if ( $this->is_pending_activation() || $this->is_network_anonymous() ) {
23559
  $this->maybe_set_slug_and_network_menu_exists_flag();
23560
  }
23561
  }
23590
  * @since 1.0.3
23591
  */
23592
  function _redirect_on_activation_hook() {
23593
+ if ( $this->apply_filters( 'redirect_on_activation', true ) ) {
23594
+ $url = $this->get_after_plugin_activation_redirect_url();
23595
 
23596
+ if ( is_string( $url ) ) {
23597
+ fs_redirect( $url );
23598
+ }
23599
  }
23600
  }
23601
 
23635
 
23636
  foreach ( $this->_action_links as $new_links ) {
23637
  foreach ( $new_links as $link ) {
23638
+ $before_deactivate[ $link['key'] ] = '<a href="' . $link['href'] . '"' . ( $link['external'] ? ' target="_blank" rel="noopener"' : '' ) . '>' . $link['label'] . '</a>';
23639
  }
23640
  }
23641
 
23755
  '';
23756
 
23757
  return sprintf(
23758
+ ' %s: <ol><li>%s.</li>%s<li>%s (<a href="%s" target="_blank" rel="noopener">%s</a>).</li></ol>',
23759
  $this->get_text_inline( 'Please follow these steps to complete the upgrade', 'follow-steps-to-complete-upgrade' ),
23760
  ( empty( $activate_license_string ) ? '' : $activate_license_string . '</li><li>' ) .
23761
  $this->get_latest_download_link( sprintf(
24008
  */
24009
  function set_plugin_upgrade_complete() {
24010
  $this->_storage->plugin_upgrade_mode = false;
24011
+
24012
+ $license_migration = ! empty( $this->_storage->license_migration ) ?
24013
+ $this->_storage->license_migration :
24014
+ array();
24015
+
24016
+ $license_migration['is_migrating'] = false;
24017
+
24018
+ $this->_storage->license_migration = $license_migration;
24019
  }
24020
 
24021
  #endregion
freemius/includes/class-fs-api.php CHANGED
@@ -287,7 +287,7 @@
287
  $this->_logger->warn( 'Fallback to cached API result: ' . var_export( $cached_result, true ) );
288
  }
289
  } else {
290
- if ( is_object( $result ) && 404 == $result->error->http ) {
291
  /**
292
  * If the response code is 404, cache the result for half of the `$expiration`.
293
  *
287
  $this->_logger->warn( 'Fallback to cached API result: ' . var_export( $cached_result, true ) );
288
  }
289
  } else {
290
+ if ( is_object( $result ) && isset( $result->error->http ) && 404 == $result->error->http ) {
291
  /**
292
  * If the response code is 404, cache the result for half of the `$expiration`.
293
  *
freemius/includes/class-fs-logger.php CHANGED
@@ -142,7 +142,7 @@
142
  return $this->_file_start;
143
  }
144
 
145
- private function _log( &$message, $type = 'log', $wrapper ) {
146
  if ( ! $this->is_on() ) {
147
  return;
148
  }
@@ -688,4 +688,4 @@ KEY `type` (`type` ASC))" );
688
  }
689
 
690
  #endregion
691
- }
142
  return $this->_file_start;
143
  }
144
 
145
+ private function _log( &$message, $type, $wrapper = false ) {
146
  if ( ! $this->is_on() ) {
147
  return;
148
  }
688
  }
689
 
690
  #endregion
691
+ }
freemius/includes/class-fs-plugin-updater.php CHANGED
@@ -542,23 +542,66 @@
542
  }
543
  }
544
 
 
 
 
545
  if ( is_object( $this->_update_details ) ) {
 
 
 
 
546
  if ( ! isset( $transient_data->response ) ) {
547
  $transient_data->response = array();
548
  }
549
 
550
  // Add plugin to transient data.
551
- $transient_data->response[ $this->_fs->premium_plugin_basename() ] = $this->_fs->is_plugin() ?
552
  $this->_update_details :
553
  (array) $this->_update_details;
554
- } else if ( isset( $transient_data->response ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
555
  /**
556
- * Ensure that there's no update data for the plugin to prevent upgrading the premium version to the latest free version.
557
  *
558
- * @author Leo Fajardo (@leorw)
559
- * @since 2.3.0
560
  */
561
- unset( $transient_data->response[ $this->_fs->premium_plugin_basename() ] );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
562
  }
563
 
564
  $slug = $this->_fs->get_slug();
542
  }
543
  }
544
 
545
+ // Alias.
546
+ $basename = $this->_fs->premium_plugin_basename();
547
+
548
  if ( is_object( $this->_update_details ) ) {
549
+ if ( isset( $transient_data->no_update ) ) {
550
+ unset( $transient_data->no_update[ $basename ] );
551
+ }
552
+
553
  if ( ! isset( $transient_data->response ) ) {
554
  $transient_data->response = array();
555
  }
556
 
557
  // Add plugin to transient data.
558
+ $transient_data->response[ $basename ] = $this->_fs->is_plugin() ?
559
  $this->_update_details :
560
  (array) $this->_update_details;
561
+ } else {
562
+ if ( isset( $transient_data->response ) ) {
563
+ /**
564
+ * Ensure that there's no update data for the plugin to prevent upgrading the premium version to the latest free version.
565
+ *
566
+ * @author Leo Fajardo (@leorw)
567
+ * @since 2.3.0
568
+ */
569
+ unset( $transient_data->response[ $basename ] );
570
+ }
571
+
572
+ if ( ! isset( $transient_data->no_update ) ) {
573
+ $transient_data->no_update = array();
574
+ }
575
+
576
  /**
577
+ * Add product to no_update transient data to properly integrate with WP 5.5 auto-updates UI.
578
  *
579
+ * @since 2.4.1
580
+ * @link https://make.wordpress.org/core/2020/07/30/recommended-usage-of-the-updates-api-to-support-the-auto-updates-ui-for-plugins-and-themes-in-wordpress-5-5/
581
  */
582
+ $transient_data->no_update[ $basename ] = $this->_fs->is_plugin() ?
583
+ (object) array(
584
+ 'id' => $basename,
585
+ 'slug' => $this->_fs->get_slug(),
586
+ 'plugin' => $basename,
587
+ 'new_version' => $this->_fs->get_plugin_version(),
588
+ 'url' => '',
589
+ 'package' => '',
590
+ 'icons' => array(),
591
+ 'banners' => array(),
592
+ 'banners_rtl' => array(),
593
+ 'tested' => '',
594
+ 'requires_php' => '',
595
+ 'compatibility' => new stdClass(),
596
+ ) :
597
+ array(
598
+ 'theme' => $basename,
599
+ 'new_version' => $this->_fs->get_plugin_version(),
600
+ 'url' => '',
601
+ 'package' => '',
602
+ 'requires' => '',
603
+ 'requires_php' => '',
604
+ );
605
  }
606
 
607
  $slug = $this->_fs->get_slug();
freemius/includes/class-fs-storage.php CHANGED
@@ -371,6 +371,7 @@
371
  * sites in the network.
372
  */
373
  'is_network_activation' => 0,
 
374
 
375
  // When network activated, then network level.
376
  'install_timestamp' => 1,
371
  * sites in the network.
372
  */
373
  'is_network_activation' => 0,
374
+ 'license_migration' => 0,
375
 
376
  // When network activated, then network level.
377
  'install_timestamp' => 1,
freemius/includes/customizer/class-fs-customizer-support-section.php CHANGED
@@ -87,10 +87,10 @@
87
  <div class="button-group">
88
  <# } #>
89
  <# if ( data.contact ) { #>
90
- <a class="button" href="{{ data.contact.url }}" target="_blank">{{ data.contact.label }} </a>
91
  <# } #>
92
  <# if ( data.support ) { #>
93
- <a class="button" href="{{ data.support.url }}" target="_blank">{{ data.support.label }} </a>
94
  <# } #>
95
  <# if ( data.contact && data.support ) { #>
96
  </div>
87
  <div class="button-group">
88
  <# } #>
89
  <# if ( data.contact ) { #>
90
+ <a class="button" href="{{ data.contact.url }}" target="_blank" rel="noopener noreferrer">{{ data.contact.label }} </a>
91
  <# } #>
92
  <# if ( data.support ) { #>
93
+ <a class="button" href="{{ data.support.url }}" target="_blank" rel="noopener noreferrer">{{ data.support.label }} </a>
94
  <# } #>
95
  <# if ( data.contact && data.support ) { #>
96
  </div>
freemius/includes/entities/class-fs-payment.php CHANGED
@@ -158,8 +158,8 @@
158
  // Lazy load.
159
  self::$CURRENCY_2_SYMBOL = array(
160
  self::CURRENCY_USD => '$',
161
- self::CURRENCY_GBP => '£',
162
- self::CURRENCY_EUR => '',
163
  );
164
  }
165
 
158
  // Lazy load.
159
  self::$CURRENCY_2_SYMBOL = array(
160
  self::CURRENCY_USD => '$',
161
+ self::CURRENCY_GBP => '&pound;',
162
+ self::CURRENCY_EUR => '&euro;',
163
  );
164
  }
165
 
freemius/includes/entities/class-fs-plugin-license.php CHANGED
@@ -50,6 +50,13 @@
50
  * @var number
51
  */
52
  public $parent_license_id;
 
 
 
 
 
 
 
53
  /**
54
  * @var number
55
  */
50
  * @var number
51
  */
52
  public $parent_license_id;
53
+ /**
54
+ * @author Leo Fajardo (@leorw)
55
+ * @since 2.4.0
56
+ *
57
+ * @var array
58
+ */
59
+ public $products;
60
  /**
61
  * @var number
62
  */
freemius/includes/entities/class-fs-site.php CHANGED
@@ -102,6 +102,14 @@
102
  * @var bool
103
  */
104
  public $is_uninstalled = false;
 
 
 
 
 
 
 
 
105
 
106
  /**
107
  * @param stdClass|bool $site
@@ -171,6 +179,7 @@
171
  // WPEngine staging.
172
  fs_ends_with( $subdomain, '.staging.wpengine.com' ) ||
173
  fs_ends_with( $subdomain, '.dev.wpengine.com' ) ||
 
174
  // Pantheon
175
  ( fs_ends_with( $subdomain, 'pantheonsite.io' ) &&
176
  ( fs_starts_with( $subdomain, 'test-' ) || fs_starts_with( $subdomain, 'dev-' ) ) ) ||
@@ -179,7 +188,9 @@
179
  // Kinsta
180
  ( fs_starts_with( $subdomain, 'staging-' ) && ( fs_ends_with( $subdomain, '.kinsta.com' ) || fs_ends_with( $subdomain, '.kinsta.cloud' ) ) ) ||
181
  // DesktopServer
182
- fs_ends_with( $subdomain, '.dev.cc' )
 
 
183
  );
184
  }
185
 
@@ -230,4 +241,13 @@
230
  function is_tracking_prohibited() {
231
  return ! $this->is_tracking_allowed();
232
  }
 
 
 
 
 
 
 
 
 
233
  }
102
  * @var bool
103
  */
104
  public $is_uninstalled = false;
105
+ /**
106
+ * @author Edgar Melkonyan
107
+ *
108
+ * @since 2.4.2
109
+ *
110
+ * @var bool
111
+ */
112
+ public $is_beta;
113
 
114
  /**
115
  * @param stdClass|bool $site
179
  // WPEngine staging.
180
  fs_ends_with( $subdomain, '.staging.wpengine.com' ) ||
181
  fs_ends_with( $subdomain, '.dev.wpengine.com' ) ||
182
+ fs_ends_with( $subdomain, '.wpengine.com' ) ||
183
  // Pantheon
184
  ( fs_ends_with( $subdomain, 'pantheonsite.io' ) &&
185
  ( fs_starts_with( $subdomain, 'test-' ) || fs_starts_with( $subdomain, 'dev-' ) ) ) ||
188
  // Kinsta
189
  ( fs_starts_with( $subdomain, 'staging-' ) && ( fs_ends_with( $subdomain, '.kinsta.com' ) || fs_ends_with( $subdomain, '.kinsta.cloud' ) ) ) ||
190
  // DesktopServer
191
+ fs_ends_with( $subdomain, '.dev.cc' ) ||
192
+ // Pressable
193
+ fs_ends_with( $subdomain, '.mystagingwebsite.com' )
194
  );
195
  }
196
 
241
  function is_tracking_prohibited() {
242
  return ! $this->is_tracking_allowed();
243
  }
244
+
245
+ /**
246
+ * @author Edgar Melkonyan
247
+ *
248
+ * @return bool
249
+ */
250
+ function is_beta() {
251
+ return ( isset( $this->is_beta ) && true === $this->is_beta );
252
+ }
253
  }
freemius/includes/entities/class-fs-user.php CHANGED
@@ -31,13 +31,6 @@
31
  */
32
  public $is_verified;
33
  /**
34
- * @author Leo Fajardo (@leorw)
35
- * @since 2.3.0
36
- *
37
- * @var bool
38
- */
39
- public $is_beta;
40
- /**
41
  * @var string|null
42
  */
43
  public $customer_id;
@@ -63,16 +56,6 @@
63
  return ( isset( $this->is_verified ) && true === $this->is_verified );
64
  }
65
 
66
- /**
67
- * @author Leo Fajardo (@leorw)
68
- * @since 2.3.0
69
- *
70
- * @return bool
71
- */
72
- function is_beta() {
73
- return ( isset( $this->is_beta ) && true === $this->is_beta );
74
- }
75
-
76
  static function get_type() {
77
  return 'user';
78
  }
31
  */
32
  public $is_verified;
33
  /**
 
 
 
 
 
 
 
34
  * @var string|null
35
  */
36
  public $customer_id;
56
  return ( isset( $this->is_verified ) && true === $this->is_verified );
57
  }
58
 
 
 
 
 
 
 
 
 
 
 
59
  static function get_type() {
60
  return 'user';
61
  }
freemius/includes/fs-essential-functions.php CHANGED
@@ -380,45 +380,62 @@
380
  global $fs_active_plugins;
381
 
382
  /**
383
- * @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).
384
  *
385
  * @link https://github.com/Freemius/wordpress-sdk/issues/26
386
  */
387
 
388
  $newest_sdk_plugin_path = $fs_active_plugins->newest->plugin_path;
389
 
390
- $active_plugins = get_option( 'active_plugins', array() );
391
- $newest_sdk_plugin_key = array_search( $newest_sdk_plugin_path, $active_plugins );
392
- if ( 0 === $newest_sdk_plugin_key ) {
393
- // if it's 0 it's the first plugin already, no need to continue
394
- return false;
395
- } else if ( is_numeric( $newest_sdk_plugin_key ) ) {
396
- // Remove plugin from its current position.
397
- array_splice( $active_plugins, $newest_sdk_plugin_key, 1 );
398
 
399
- // Set it to be included first.
400
- array_unshift( $active_plugins, $newest_sdk_plugin_path );
401
 
402
- update_option( 'active_plugins', $active_plugins );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
403
 
404
  return true;
405
- } else if ( is_multisite() && false === $newest_sdk_plugin_key ) {
 
 
406
  // Plugin is network active.
407
  $network_active_plugins = get_site_option( 'active_sitewide_plugins', array() );
408
 
409
- if (isset($network_active_plugins[$newest_sdk_plugin_path])) {
410
- reset($network_active_plugins);
411
- if ( $newest_sdk_plugin_path === key($network_active_plugins) ) {
412
  // Plugin is already activated first on the network level.
413
  return false;
414
- } else if ( is_numeric( $newest_sdk_plugin_key ) ) {
415
- $time = $network_active_plugins[$newest_sdk_plugin_path];
416
 
417
  // Remove plugin from its current position.
418
- unset($network_active_plugins[$newest_sdk_plugin_path]);
419
 
420
  // Set it to be included first.
421
- $network_active_plugins = array($newest_sdk_plugin_path => $time) + $network_active_plugins;
422
 
423
  update_site_option( 'active_sitewide_plugins', $network_active_plugins );
424
 
380
  global $fs_active_plugins;
381
 
382
  /**
383
+ * @todo Multi-site network activated plugin are always loaded prior to site plugins so if there's 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).
384
  *
385
  * @link https://github.com/Freemius/wordpress-sdk/issues/26
386
  */
387
 
388
  $newest_sdk_plugin_path = $fs_active_plugins->newest->plugin_path;
389
 
390
+ $active_plugins = get_option( 'active_plugins', array() );
391
+ $updated_active_plugins = array( $newest_sdk_plugin_path );
 
 
 
 
 
 
392
 
393
+ $plugin_found = false;
394
+ $is_first_path = true;
395
 
396
+ foreach ( $active_plugins as $key => $plugin_path ) {
397
+ if ( $plugin_path === $newest_sdk_plugin_path ) {
398
+ if ( $is_first_path ) {
399
+ // if it's the first plugin already, no need to continue
400
+ return false;
401
+ }
402
+
403
+ $plugin_found = true;
404
+
405
+ // Skip the plugin (it is already added as the 1st item of $updated_active_plugins).
406
+ continue;
407
+ }
408
+
409
+ $updated_active_plugins[] = $plugin_path;
410
+
411
+ if ( $is_first_path ) {
412
+ $is_first_path = false;
413
+ }
414
+ }
415
+
416
+ if ( $plugin_found ) {
417
+ update_option( 'active_plugins', $updated_active_plugins );
418
 
419
  return true;
420
+ }
421
+
422
+ if ( is_multisite() ) {
423
  // Plugin is network active.
424
  $network_active_plugins = get_site_option( 'active_sitewide_plugins', array() );
425
 
426
+ if ( isset( $network_active_plugins[ $newest_sdk_plugin_path ] ) ) {
427
+ reset( $network_active_plugins );
428
+ if ( $newest_sdk_plugin_path === key( $network_active_plugins ) ) {
429
  // Plugin is already activated first on the network level.
430
  return false;
431
+ } else {
432
+ $time = $network_active_plugins[ $newest_sdk_plugin_path ];
433
 
434
  // Remove plugin from its current position.
435
+ unset( $network_active_plugins[ $newest_sdk_plugin_path ] );
436
 
437
  // Set it to be included first.
438
+ $network_active_plugins = array( $newest_sdk_plugin_path => $time ) + $network_active_plugins;
439
 
440
  update_site_option( 'active_sitewide_plugins', $network_active_plugins );
441
 
freemius/includes/fs-plugin-info-dialog.php CHANGED
@@ -260,14 +260,20 @@
260
  if ( $has_valid_blog_id ) {
261
  restore_current_blog();
262
  }
 
263
 
264
- if ( is_object( $fs_addon ) ) {
265
- $data->has_purchased_license = $fs_addon->has_active_valid_license();
266
- } else {
267
- $account_addons = $this->_fs->get_account_addons();
268
- if ( ! empty( $account_addons ) && in_array( $selected_addon->id, $account_addons ) ) {
269
- $data->has_purchased_license = true;
270
- }
 
 
 
 
 
271
  }
272
  }
273
 
@@ -577,7 +583,7 @@
577
 
578
  $has_installed_version = ( 'install' !== $this->status['status'] );
579
 
580
- if ( ! $api->has_paid_plan ) {
581
  /**
582
  * Free-only add-on.
583
  *
@@ -880,9 +886,11 @@
880
  $classes[] = 'disabled';
881
  }
882
 
 
 
883
  return sprintf(
884
  '<a %s class="button %s">%s</a>',
885
- empty( $href ) ? '' : 'href="' . $href . '" target="' . $target . '"',
886
  implode( ' ', $classes ),
887
  $label
888
  );
@@ -1201,7 +1209,7 @@
1201
 
1202
  $(document).ready(function () {
1203
  var $plan = $('.plugin-information-pricing .fs-plan[data-plan-id=<?php echo $plan->id ?>]');
1204
- $plan.find('input[type=radio]').live('click', function () {
1205
  _updateCtaUrl(
1206
  $plan.attr('data-plan-id'),
1207
  $(this).val(),
@@ -1367,6 +1375,7 @@
1367
  if ( ! empty( $api->slug ) && true == $api->is_wp_org_compliant ) {
1368
  ?>
1369
  <li><a target="_blank"
 
1370
  href="https://wordpress.org/plugins/<?php echo $api->slug; ?>/"><?php fs_esc_html_echo_inline( 'WordPress.org Plugin Page', 'wp-org-plugin-page', $api->slug ) ?>
1371
  &#187;</a>
1372
  </li>
@@ -1375,6 +1384,7 @@
1375
  if ( ! empty( $api->homepage ) ) {
1376
  ?>
1377
  <li><a target="_blank"
 
1378
  href="<?php echo esc_url( $api->homepage ); ?>"><?php fs_esc_html_echo_inline( 'Plugin Homepage', 'plugin-homepage', $api->slug ) ?>
1379
  &#187;</a>
1380
  </li>
@@ -1383,6 +1393,7 @@
1383
  if ( ! empty( $api->donate_link ) && empty( $api->contributors ) ) {
1384
  ?>
1385
  <li><a target="_blank"
 
1386
  href="<?php echo esc_url( $api->donate_link ); ?>"><?php fs_esc_html_echo_inline( 'Donate to this plugin', 'donate-to-plugin', $api->slug ) ?>
1387
  &#187;</a>
1388
  </li>
@@ -1426,18 +1437,19 @@
1426
  );
1427
  ?>
1428
  <div class="counter-container">
1429
- <span class="counter-label"><a
1430
- href="https://wordpress.org/support/view/plugin-reviews/<?php echo $api->slug; ?>?filter=<?php echo $key; ?>"
1431
- target="_blank"
1432
- title="<?php echo esc_attr( sprintf(
1433
- /* translators: %s: # of stars (e.g. 5 stars) */
1434
- fs_text_inline( 'Click to see reviews that provided a rating of %s', 'click-to-reviews', $api->slug ),
1435
- $stars_label
1436
- ) ) ?>"><?php echo $stars_label ?></a></span>
 
1437
  <span class="counter-back">
1438
- <span class="counter-bar" style="width: <?php echo absint(92 * $_rating); ?>px;"></span>
1439
- </span>
1440
- <span class="counter-count"><?php echo number_format_i18n( $ratecount ); ?></span>
1441
  </div>
1442
  <?php
1443
  }
@@ -1458,13 +1470,14 @@
1458
  if ( empty( $contrib_profile ) ) {
1459
  echo "<li><img src='https://wordpress.org/grav-redirect.php?user={$contrib_username}&amp;s=36' width='18' height='18' />{$contrib_username}</li>";
1460
  } else {
1461
- echo "<li><a href='{$contrib_profile}' target='_blank'><img src='https://wordpress.org/grav-redirect.php?user={$contrib_username}&amp;s=36' width='18' height='18' />{$contrib_username}</a></li>";
1462
  }
1463
  }
1464
  ?>
1465
  </ul>
1466
  <?php if ( ! empty( $api->donate_link ) ) { ?>
1467
  <a target="_blank"
 
1468
  href="<?php echo esc_url( $api->donate_link ); ?>"><?php fs_echo_inline( 'Donate to this plugin', 'donate-to-plugin', $api->slug ) ?>
1469
  &#187;</a>
1470
  <?php } ?>
@@ -1628,4 +1641,4 @@
1628
  iframe_footer();
1629
  exit;
1630
  }
1631
- }
260
  if ( $has_valid_blog_id ) {
261
  restore_current_blog();
262
  }
263
+ }
264
 
265
+ /**
266
+ * Check if there's a purchased license in case the add-on can only be installed/downloaded as part of a purchased bundle.
267
+ *
268
+ * @author Leo Fajardo (@leorw)
269
+ * @since 2.4.1
270
+ */
271
+ if ( is_object( $fs_addon ) ) {
272
+ $data->has_purchased_license = $fs_addon->has_active_valid_license();
273
+ } else {
274
+ $account_addons = $this->_fs->get_account_addons();
275
+ if ( ! empty( $account_addons ) && in_array( $selected_addon->id, $account_addons ) ) {
276
+ $data->has_purchased_license = true;
277
  }
278
  }
279
 
583
 
584
  $has_installed_version = ( 'install' !== $this->status['status'] );
585
 
586
+ if ( ! $api->has_paid_plan && ! $api->has_purchased_license ) {
587
  /**
588
  * Free-only add-on.
589
  *
886
  $classes[] = 'disabled';
887
  }
888
 
889
+ $rel = ( '_blank' === $target ) ? ' rel="noopener noreferrer"' : '';
890
+
891
  return sprintf(
892
  '<a %s class="button %s">%s</a>',
893
+ empty( $href ) ? '' : 'href="' . $href . '" target="' . $target . '"' . $rel,
894
  implode( ' ', $classes ),
895
  $label
896
  );
1209
 
1210
  $(document).ready(function () {
1211
  var $plan = $('.plugin-information-pricing .fs-plan[data-plan-id=<?php echo $plan->id ?>]');
1212
+ $plan.find('input[type=radio]').on('click', function () {
1213
  _updateCtaUrl(
1214
  $plan.attr('data-plan-id'),
1215
  $(this).val(),
1375
  if ( ! empty( $api->slug ) && true == $api->is_wp_org_compliant ) {
1376
  ?>
1377
  <li><a target="_blank"
1378
+ rel="noopener noreferrer"
1379
  href="https://wordpress.org/plugins/<?php echo $api->slug; ?>/"><?php fs_esc_html_echo_inline( 'WordPress.org Plugin Page', 'wp-org-plugin-page', $api->slug ) ?>
1380
  &#187;</a>
1381
  </li>
1384
  if ( ! empty( $api->homepage ) ) {
1385
  ?>
1386
  <li><a target="_blank"
1387
+ rel="noopener noreferrer"
1388
  href="<?php echo esc_url( $api->homepage ); ?>"><?php fs_esc_html_echo_inline( 'Plugin Homepage', 'plugin-homepage', $api->slug ) ?>
1389
  &#187;</a>
1390
  </li>
1393
  if ( ! empty( $api->donate_link ) && empty( $api->contributors ) ) {
1394
  ?>
1395
  <li><a target="_blank"
1396
+ rel="noopener noreferrer"
1397
  href="<?php echo esc_url( $api->donate_link ); ?>"><?php fs_esc_html_echo_inline( 'Donate to this plugin', 'donate-to-plugin', $api->slug ) ?>
1398
  &#187;</a>
1399
  </li>
1437
  );
1438
  ?>
1439
  <div class="counter-container">
1440
+ <span class="counter-label"><a
1441
+ href="https://wordpress.org/support/view/plugin-reviews/<?php echo $api->slug; ?>?filter=<?php echo $key; ?>"
1442
+ target="_blank"
1443
+ rel="noopener noreferrer"
1444
+ title="<?php echo esc_attr( sprintf(
1445
+ /* translators: %s: # of stars (e.g. 5 stars) */
1446
+ fs_text_inline( 'Click to see reviews that provided a rating of %s', 'click-to-reviews', $api->slug ),
1447
+ $stars_label
1448
+ ) ) ?>"><?php echo $stars_label ?></a></span>
1449
  <span class="counter-back">
1450
+ <span class="counter-bar" style="width: <?php echo absint(92 * $_rating); ?>px;"></span>
1451
+ </span>
1452
+ <span class="counter-count"><?php echo number_format_i18n( $ratecount ); ?></span>
1453
  </div>
1454
  <?php
1455
  }
1470
  if ( empty( $contrib_profile ) ) {
1471
  echo "<li><img src='https://wordpress.org/grav-redirect.php?user={$contrib_username}&amp;s=36' width='18' height='18' />{$contrib_username}</li>";
1472
  } else {
1473
+ echo "<li><a href='{$contrib_profile}' target='_blank' rel='noopener noreferrer'><img src='https://wordpress.org/grav-redirect.php?user={$contrib_username}&amp;s=36' width='18' height='18' />{$contrib_username}</a></li>";
1474
  }
1475
  }
1476
  ?>
1477
  </ul>
1478
  <?php if ( ! empty( $api->donate_link ) ) { ?>
1479
  <a target="_blank"
1480
+ rel="noopener noreferrer"
1481
  href="<?php echo esc_url( $api->donate_link ); ?>"><?php fs_echo_inline( 'Donate to this plugin', 'donate-to-plugin', $api->slug ) ?>
1482
  &#187;</a>
1483
  <?php } ?>
1641
  iframe_footer();
1642
  exit;
1643
  }
1644
+ }
freemius/includes/i18n.php CHANGED
@@ -98,6 +98,8 @@
98
  'error' => _fs_text( 'Error' ),
99
  'failed-finding-main-path' => _fs_text( 'Freemius SDK couldn\'t find the plugin\'s main file. Please contact sdk@freemius.com with the current error.' ),
100
  'learn-more' => _fs_text( 'Learn more' ),
 
 
101
 
102
  #region Affiliation
103
  'affiliation' => _fs_text( 'Affiliation' ),
98
  'error' => _fs_text( 'Error' ),
99
  'failed-finding-main-path' => _fs_text( 'Freemius SDK couldn\'t find the plugin\'s main file. Please contact sdk@freemius.com with the current error.' ),
100
  'learn-more' => _fs_text( 'Learn more' ),
101
+ 'license_not_whitelabeled' => _fs_text( "Is this your client's site? %s if you wish to hide sensitive info like your billing address and invoices from the WP Admin."),
102
+ 'license_whitelabeled' => _fs_text( 'Your %s license was flagged as white-labeled to hide sensitive information from the WP Admin (e.g. your billing address and invoices). If you ever wish to revert it back, you can easily do it through your %s. If this was a mistake you can also %s.'),
103
 
104
  #region Affiliation
105
  'affiliation' => _fs_text( 'Affiliation' ),
freemius/includes/managers/class-fs-admin-menu-manager.php CHANGED
@@ -703,7 +703,12 @@
703
  $menu['parent_slug'] :
704
  'admin.php';
705
 
706
- return admin_url( $parent_slug . '?page=' . $menu['menu'][2] );
 
 
 
 
 
707
  }
708
 
709
  /**
703
  $menu['parent_slug'] :
704
  'admin.php';
705
 
706
+ return admin_url(
707
+ $parent_slug .
708
+ ( false === strpos( $parent_slug, '?' ) ? '?' : '&' ) .
709
+ 'page=' .
710
+ $menu['menu'][2]
711
+ );
712
  }
713
 
714
  /**
freemius/includes/sdk/FreemiusBase.php CHANGED
@@ -137,7 +137,7 @@
137
  } catch ( Exception $e ) {
138
  // Map to error object.
139
  $result = (object) array(
140
- 'error' => array(
141
  'type' => 'Unknown',
142
  'message' => $e->getMessage() . ' (' . $e->getFile() . ': ' . $e->getLine() . ')',
143
  'code' => 'unknown',
137
  } catch ( Exception $e ) {
138
  // Map to error object.
139
  $result = (object) array(
140
+ 'error' => (object) array(
141
  'type' => 'Unknown',
142
  'message' => $e->getMessage() . ' (' . $e->getFile() . ': ' . $e->getLine() . ')',
143
  'code' => 'unknown',
freemius/includes/sdk/FreemiusWordPress.php CHANGED
@@ -59,6 +59,10 @@
59
  }
60
  }
61
 
 
 
 
 
62
  $curl_version = FS_SDK__HAS_CURL ?
63
  curl_version() :
64
  array( 'version' => '7.37' );
@@ -228,10 +232,13 @@
228
  $now = ( time() - self::$_clock_diff );
229
  $date = date( 'r', $now );
230
 
231
- if ( in_array( $pMethod, array( 'POST', 'PUT' ) ) && ! empty( $pPostParams ) ) {
232
- $content_md5 = md5( $pPostParams );
233
- $content_type = 'application/json';
234
- }
 
 
 
235
 
236
  $string_to_sign = implode( $eol, array(
237
  $pMethod,
@@ -380,10 +387,11 @@
380
  }
381
 
382
  if ( in_array( $pMethod, array( 'POST', 'PUT' ) ) ) {
383
- if ( is_array( $pParams ) && 0 < count( $pParams ) ) {
384
- $pWPRemoteArgs['headers']['Content-type'] = 'application/json';
385
- $pWPRemoteArgs['body'] = json_encode( $pParams );
386
- }
 
387
  }
388
 
389
  $request_url = self::GetUrl( $pCanonizedPath, $pIsSandbox );
@@ -397,7 +405,7 @@
397
  }
398
 
399
  if ( 'https' === substr( strtolower( $request_url ), 0, 5 ) ) {
400
- $pWPRemoteArgs['sslverify'] = false;
401
  }
402
 
403
  if ( false !== $pBeforeExecutionFunction &&
@@ -570,7 +578,7 @@
570
  } catch ( Exception $e ) {
571
  // Map to error object.
572
  $result = (object) array(
573
- 'error' => array(
574
  'type' => 'Unknown',
575
  'message' => $e->getMessage() . ' (' . $e->getFile() . ': ' . $e->getLine() . ')',
576
  'code' => 'unknown',
@@ -649,7 +657,7 @@
649
  $message = ( 1 < count( $parts ) ) ? $parts[1] : $message;
650
 
651
  $e = new Freemius_Exception( array(
652
- 'error' => array(
653
  'code' => $code,
654
  'message' => $message,
655
  'type' => 'CurlException',
@@ -657,7 +665,7 @@
657
  ) );
658
  } else {
659
  $e = new Freemius_Exception( array(
660
- 'error' => array(
661
  'code' => $pError->get_error_code(),
662
  'message' => $pError->get_error_message(),
663
  'type' => 'WPRemoteException',
59
  }
60
  }
61
 
62
+ if ( ! defined( 'FS_SDK__SSLVERIFY' ) ) {
63
+ define( 'FS_SDK__SSLVERIFY', false );
64
+ }
65
+
66
  $curl_version = FS_SDK__HAS_CURL ?
67
  curl_version() :
68
  array( 'version' => '7.37' );
232
  $now = ( time() - self::$_clock_diff );
233
  $date = date( 'r', $now );
234
 
235
+ if ( in_array( $pMethod, array( 'POST', 'PUT' ) ) ) {
236
+ $content_type = 'application/json';
237
+
238
+ if ( ! empty( $pPostParams ) ) {
239
+ $content_md5 = md5( $pPostParams );
240
+ }
241
+ }
242
 
243
  $string_to_sign = implode( $eol, array(
244
  $pMethod,
387
  }
388
 
389
  if ( in_array( $pMethod, array( 'POST', 'PUT' ) ) ) {
390
+ $pWPRemoteArgs['headers']['Content-type'] = 'application/json';
391
+
392
+ if ( is_array( $pParams ) && 0 < count( $pParams ) ) {
393
+ $pWPRemoteArgs['body'] = json_encode( $pParams );
394
+ }
395
  }
396
 
397
  $request_url = self::GetUrl( $pCanonizedPath, $pIsSandbox );
405
  }
406
 
407
  if ( 'https' === substr( strtolower( $request_url ), 0, 5 ) ) {
408
+ $pWPRemoteArgs['sslverify'] = FS_SDK__SSLVERIFY;
409
  }
410
 
411
  if ( false !== $pBeforeExecutionFunction &&
578
  } catch ( Exception $e ) {
579
  // Map to error object.
580
  $result = (object) array(
581
+ 'error' => (object) array(
582
  'type' => 'Unknown',
583
  'message' => $e->getMessage() . ' (' . $e->getFile() . ': ' . $e->getLine() . ')',
584
  'code' => 'unknown',
657
  $message = ( 1 < count( $parts ) ) ? $parts[1] : $message;
658
 
659
  $e = new Freemius_Exception( array(
660
+ 'error' => (object) array(
661
  'code' => $code,
662
  'message' => $message,
663
  'type' => 'CurlException',
665
  ) );
666
  } else {
667
  $e = new Freemius_Exception( array(
668
+ 'error' => (object) array(
669
  'code' => $pError->get_error_code(),
670
  'message' => $pError->get_error_message(),
671
  'type' => 'WPRemoteException',
freemius/includes/supplements/fs-essential-functions-1.1.7.1.php CHANGED
@@ -32,7 +32,7 @@
32
 
33
  // Get active plugin's main files real full names (might be symlinks).
34
  foreach ( $all_plugins as $relative_path => $data ) {
35
- if ( 0 === strpos( $file_real_path, fs_normalize_path( dirname( realpath( WP_PLUGIN_DIR . '/' . $relative_path ) ) ) ) ) {
36
  if ( '.' !== dirname( trailingslashit( $relative_path ) ) ) {
37
  return $relative_path;
38
  }
32
 
33
  // Get active plugin's main files real full names (might be symlinks).
34
  foreach ( $all_plugins as $relative_path => $data ) {
35
+ if ( 0 === strpos( $file_real_path, fs_normalize_path( dirname( realpath( WP_PLUGIN_DIR . '/' . $relative_path ) ) . '/' ) ) ) {
36
  if ( '.' !== dirname( trailingslashit( $relative_path ) ) ) {
37
  return $relative_path;
38
  }
freemius/languages/freemius-cs_CZ.mo CHANGED
Binary file
freemius/languages/freemius-da_DK.mo CHANGED
Binary file
freemius/languages/freemius-en.mo CHANGED
Binary file
freemius/languages/freemius-es_ES.mo CHANGED
Binary file
freemius/languages/freemius-fr_FR.mo CHANGED
Binary file
freemius/languages/freemius-he_IL.mo CHANGED
Binary file
freemius/languages/freemius-hu_HU.mo CHANGED
Binary file
freemius/languages/freemius-it_IT.mo CHANGED
Binary file
freemius/languages/freemius-ja.mo CHANGED
Binary file
freemius/languages/freemius-nl_NL.mo CHANGED
Binary file
freemius/languages/freemius-ru_RU.mo CHANGED
Binary file
freemius/languages/freemius-ta.mo CHANGED
Binary file
freemius/languages/freemius-zh_CN.mo ADDED
Binary file
freemius/languages/freemius.pot CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2019 freemius
2
  # This file is distributed under the same license as the freemius package.
3
  msgid ""
4
  msgstr ""
@@ -16,771 +16,795 @@ msgstr ""
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
 
19
- #: includes/class-freemius.php:1881, templates/account.php:873
20
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
21
  msgstr ""
22
 
23
- #: includes/class-freemius.php:1888
24
  msgid "Would you like to proceed with the update?"
25
  msgstr ""
26
 
27
- #: includes/class-freemius.php:2096
28
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
29
  msgstr ""
30
 
31
- #: includes/class-freemius.php:2098
32
  msgid "Error"
33
  msgstr ""
34
 
35
- #: includes/class-freemius.php:2492
36
  msgid "I found a better %s"
37
  msgstr ""
38
 
39
- #: includes/class-freemius.php:2494
40
  msgid "What's the %s's name?"
41
  msgstr ""
42
 
43
- #: includes/class-freemius.php:2500
44
  msgid "It's a temporary %s. I'm just debugging an issue."
45
  msgstr ""
46
 
47
- #: includes/class-freemius.php:2502
48
  msgid "Deactivation"
49
  msgstr ""
50
 
51
- #: includes/class-freemius.php:2503
52
  msgid "Theme Switch"
53
  msgstr ""
54
 
55
- #: includes/class-freemius.php:2512, templates/forms/resend-key.php:24, templates/forms/user-change.php:29
56
  msgid "Other"
57
  msgstr ""
58
 
59
- #: includes/class-freemius.php:2520
60
  msgid "I no longer need the %s"
61
  msgstr ""
62
 
63
- #: includes/class-freemius.php:2527
64
  msgid "I only needed the %s for a short period"
65
  msgstr ""
66
 
67
- #: includes/class-freemius.php:2533
68
  msgid "The %s broke my site"
69
  msgstr ""
70
 
71
- #: includes/class-freemius.php:2540
72
  msgid "The %s suddenly stopped working"
73
  msgstr ""
74
 
75
- #: includes/class-freemius.php:2550
76
  msgid "I can't pay for it anymore"
77
  msgstr ""
78
 
79
- #: includes/class-freemius.php:2552
80
  msgid "What price would you feel comfortable paying?"
81
  msgstr ""
82
 
83
- #: includes/class-freemius.php:2558
84
  msgid "I don't like to share my information with you"
85
  msgstr ""
86
 
87
- #: includes/class-freemius.php:2579
88
  msgid "The %s didn't work"
89
  msgstr ""
90
 
91
- #: includes/class-freemius.php:2589
92
  msgid "I couldn't understand how to make it work"
93
  msgstr ""
94
 
95
- #: includes/class-freemius.php:2597
96
  msgid "The %s is great, but I need specific feature that you don't support"
97
  msgstr ""
98
 
99
- #: includes/class-freemius.php:2599
100
  msgid "What feature?"
101
  msgstr ""
102
 
103
- #: includes/class-freemius.php:2603
104
  msgid "The %s is not working"
105
  msgstr ""
106
 
107
- #: includes/class-freemius.php:2605
108
  msgid "Kindly share what didn't work so we can fix it for future users..."
109
  msgstr ""
110
 
111
- #: includes/class-freemius.php:2609
112
  msgid "It's not what I was looking for"
113
  msgstr ""
114
 
115
- #: includes/class-freemius.php:2611
116
  msgid "What you've been looking for?"
117
  msgstr ""
118
 
119
- #: includes/class-freemius.php:2615
120
  msgid "The %s didn't work as expected"
121
  msgstr ""
122
 
123
- #: includes/class-freemius.php:2617
124
  msgid "What did you expect?"
125
  msgstr ""
126
 
127
- #: includes/class-freemius.php:3472, templates/debug.php:20
128
  msgid "Freemius Debug"
129
  msgstr ""
130
 
131
- #: includes/class-freemius.php:4224
132
  msgid "I don't know what is cURL or how to install it, help me!"
133
  msgstr ""
134
 
135
- #: includes/class-freemius.php:4226
136
  msgid "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."
137
  msgstr ""
138
 
139
- #: includes/class-freemius.php:4233
140
  msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
141
  msgstr ""
142
 
143
- #: includes/class-freemius.php:4338
144
  msgid "Yes - do your thing"
145
  msgstr ""
146
 
147
- #: includes/class-freemius.php:4343
148
  msgid "No - just deactivate"
149
  msgstr ""
150
 
151
- #: includes/class-freemius.php:4388, includes/class-freemius.php:4882, includes/class-freemius.php:6111, includes/class-freemius.php:12933, includes/class-freemius.php:13571, includes/class-freemius.php:17006, includes/class-freemius.php:17094, includes/class-freemius.php:17260, includes/class-freemius.php:19492, includes/class-freemius.php:19833, includes/class-freemius.php:19843, includes/class-freemius.php:20507, includes/class-freemius.php:21413, includes/class-freemius.php:21546, includes/class-freemius.php:21690, templates/add-ons.php:57
152
  msgctxt "exclamation"
153
  msgid "Oops"
154
  msgstr ""
155
 
156
- #: includes/class-freemius.php:4457
157
  msgid "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."
158
  msgstr ""
159
 
160
- #: includes/class-freemius.php:4879
161
  msgctxt "addonX cannot run without pluginY"
162
  msgid "%s cannot run without %s."
163
  msgstr ""
164
 
165
- #: includes/class-freemius.php:4880
166
  msgctxt "addonX cannot run..."
167
  msgid "%s cannot run without the plugin."
168
  msgstr ""
169
 
170
- #: includes/class-freemius.php:5053, includes/class-freemius.php:5078, includes/class-freemius.php:20578
171
  msgid "Unexpected API error. Please contact the %s's author with the following error."
172
  msgstr ""
173
 
174
- #: includes/class-freemius.php:5777
175
  msgid "Premium %s version was successfully activated."
176
  msgstr ""
177
 
178
- #: includes/class-freemius.php:5789, includes/class-freemius.php:7682
179
  msgctxt "Used to express elation, enthusiasm, or triumph (especially in electronic communication)."
180
  msgid "W00t"
181
  msgstr ""
182
 
183
- #: includes/class-freemius.php:5804
184
  msgid "You have a %s license."
185
  msgstr ""
186
 
187
- #: includes/class-freemius.php:5808, includes/class-freemius.php:16405, includes/class-freemius.php:16416, includes/class-freemius.php:19744, includes/class-freemius.php:20094, includes/class-freemius.php:20163, includes/class-freemius.php:20328
188
  msgctxt "interjection expressing joy or exuberance"
189
  msgid "Yee-haw"
190
  msgstr ""
191
 
192
- #: includes/class-freemius.php:6094
193
  msgid "%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."
194
  msgstr ""
195
 
196
- #: includes/class-freemius.php:6098
197
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
198
  msgstr ""
199
 
200
- #: includes/class-freemius.php:6107, templates/add-ons.php:186, templates/account/partials/addon.php:381
201
  msgid "More information about %s"
202
  msgstr ""
203
 
204
- #: includes/class-freemius.php:6108
205
  msgid "Purchase License"
206
  msgstr ""
207
 
208
- #: includes/class-freemius.php:7047, templates/connect.php:171
209
  msgid "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 %s."
210
  msgstr ""
211
 
212
- #: includes/class-freemius.php:7051
213
  msgid "start the trial"
214
  msgstr ""
215
 
216
- #: includes/class-freemius.php:7052, templates/connect.php:175
217
  msgid "complete the install"
218
  msgstr ""
219
 
220
- #: includes/class-freemius.php:7164
221
  msgid "You are just one step away - %s"
222
  msgstr ""
223
 
224
- #: includes/class-freemius.php:7167
225
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
226
  msgid "Complete \"%s\" Activation Now"
227
  msgstr ""
228
 
229
- #: includes/class-freemius.php:7245
230
  msgid "We made a few tweaks to the %s, %s"
231
  msgstr ""
232
 
233
- #: includes/class-freemius.php:7249
234
  msgid "Opt in to make \"%s\" better!"
235
  msgstr ""
236
 
237
- #: includes/class-freemius.php:7681
238
  msgid "The upgrade of %s was successfully completed."
239
  msgstr ""
240
 
241
- #: includes/class-freemius.php:9908, includes/class-fs-plugin-updater.php:1044, includes/class-fs-plugin-updater.php:1239, includes/class-fs-plugin-updater.php:1246, templates/auto-installation.php:32
242
  msgid "Add-On"
243
  msgstr ""
244
 
245
- #: includes/class-freemius.php:9910, templates/account.php:343, templates/account.php:351, templates/debug.php:358, templates/debug.php:549
246
  msgid "Plugin"
247
  msgstr ""
248
 
249
- #: includes/class-freemius.php:9911, templates/account.php:344, templates/account.php:352, templates/debug.php:358, templates/debug.php:549, templates/forms/deactivation/form.php:71
250
  msgid "Theme"
251
  msgstr ""
252
 
253
- #: includes/class-freemius.php:12843
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
  msgid "An unknown error has occurred while trying to set the user's beta mode."
255
  msgstr ""
256
 
257
- #: includes/class-freemius.php:12904
258
  msgid "Invalid new user ID or email address."
259
  msgstr ""
260
 
261
- #: includes/class-freemius.php:12934, includes/class-freemius.php:21645
262
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
263
  msgstr ""
264
 
265
- #: includes/class-freemius.php:12935, includes/class-freemius.php:21646
266
  msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
267
  msgstr ""
268
 
269
- #: includes/class-freemius.php:12942, includes/class-freemius.php:21653
270
  msgid "Change Ownership"
271
  msgstr ""
272
 
273
- #: includes/class-freemius.php:13438
274
  msgid "Invalid site details collection."
275
  msgstr ""
276
 
277
- #: includes/class-freemius.php:13558
278
  msgid "We couldn't find your email address in the system, are you sure it's the right address?"
279
  msgstr ""
280
 
281
- #: includes/class-freemius.php:13560
282
  msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
283
  msgstr ""
284
 
285
- #: includes/class-freemius.php:13834
286
  msgid "Account is pending activation."
287
  msgstr ""
288
 
289
- #: includes/class-freemius.php:13946, templates/forms/premium-versions-upgrade-handler.php:47
290
  msgid "Buy a license now"
291
  msgstr ""
292
 
293
- #: includes/class-freemius.php:13958, templates/forms/premium-versions-upgrade-handler.php:46
294
  msgid "Renew your license now"
295
  msgstr ""
296
 
297
- #: includes/class-freemius.php:13962
298
  msgid "%s to access version %s security & feature updates, and support."
299
  msgstr ""
300
 
301
- #: includes/class-freemius.php:16387
302
  msgid "%s activation was successfully completed."
303
  msgstr ""
304
 
305
- #: includes/class-freemius.php:16401
306
  msgid "Your account was successfully activated with the %s plan."
307
  msgstr ""
308
 
309
- #: includes/class-freemius.php:16412, includes/class-freemius.php:20159
310
  msgid "Your trial has been successfully started."
311
  msgstr ""
312
 
313
- #: includes/class-freemius.php:17004, includes/class-freemius.php:17092, includes/class-freemius.php:17258
314
  msgid "Couldn't activate %s."
315
  msgstr ""
316
 
317
- #: includes/class-freemius.php:17005, includes/class-freemius.php:17093, includes/class-freemius.php:17259
318
  msgid "Please contact us with the following message:"
319
  msgstr ""
320
 
321
- #: includes/class-freemius.php:17089, templates/forms/data-debug-mode.php:162
322
  msgid "An unknown error has occurred."
323
  msgstr ""
324
 
325
- #: includes/class-freemius.php:17616, includes/class-freemius.php:22589
326
  msgid "Upgrade"
327
  msgstr ""
328
 
329
- #: includes/class-freemius.php:17622
330
  msgid "Start Trial"
331
  msgstr ""
332
 
333
- #: includes/class-freemius.php:17624
334
  msgid "Pricing"
335
  msgstr ""
336
 
337
- #: includes/class-freemius.php:17704, includes/class-freemius.php:17706
338
  msgid "Affiliation"
339
  msgstr ""
340
 
341
- #: includes/class-freemius.php:17734, includes/class-freemius.php:17736, templates/account.php:191, templates/debug.php:324
342
  msgid "Account"
343
  msgstr ""
344
 
345
- #: includes/class-freemius.php:17750, includes/class-freemius.php:17752, includes/customizer/class-fs-customizer-support-section.php:60
346
  msgid "Contact Us"
347
  msgstr ""
348
 
349
- #: includes/class-freemius.php:17763, includes/class-freemius.php:17765, includes/class-freemius.php:22603, templates/account.php:119, templates/account/partials/addon.php:44
350
  msgid "Add-Ons"
351
  msgstr ""
352
 
353
- #: includes/class-freemius.php:17799
354
  msgctxt "ASCII arrow left icon"
355
  msgid "&#x2190;"
356
  msgstr ""
357
 
358
- #: includes/class-freemius.php:17799
359
  msgctxt "ASCII arrow right icon"
360
  msgid "&#x27a4;"
361
  msgstr ""
362
 
363
- #: includes/class-freemius.php:17801, templates/pricing.php:103
364
  msgctxt "noun"
365
  msgid "Pricing"
366
  msgstr ""
367
 
368
- #: includes/class-freemius.php:18014, includes/customizer/class-fs-customizer-support-section.php:67
369
  msgid "Support Forum"
370
  msgstr ""
371
 
372
- #: includes/class-freemius.php:18988
373
  msgid "Your email has been successfully verified - you are AWESOME!"
374
  msgstr ""
375
 
376
- #: includes/class-freemius.php:18989
377
  msgctxt "a positive response"
378
  msgid "Right on"
379
  msgstr ""
380
 
381
- #: includes/class-freemius.php:19493
382
  msgid "seems like the key you entered doesn't match our records."
383
  msgstr ""
384
 
385
- #: includes/class-freemius.php:19517
386
  msgid "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
387
  msgstr ""
388
 
389
- #: includes/class-freemius.php:19735
390
  msgid "Your %s Add-on plan was successfully upgraded."
391
  msgstr ""
392
 
393
- #: includes/class-freemius.php:19737
394
  msgid "%s Add-on was successfully purchased."
395
  msgstr ""
396
 
397
- #: includes/class-freemius.php:19740
398
  msgid "Download the latest version"
399
  msgstr ""
400
 
401
- #: includes/class-freemius.php:19826
402
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
403
  msgstr ""
404
 
405
- #: includes/class-freemius.php:19832, includes/class-freemius.php:19842, includes/class-freemius.php:20287, includes/class-freemius.php:20376
406
  msgid "Error received from the server:"
407
  msgstr ""
408
 
409
- #: includes/class-freemius.php:19842
410
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
411
  msgstr ""
412
 
413
- #: includes/class-freemius.php:20056, includes/class-freemius.php:20292, includes/class-freemius.php:20347, includes/class-freemius.php:20454
414
  msgctxt "something somebody says when they are thinking about what you have just said."
415
  msgid "Hmm"
416
  msgstr ""
417
 
418
- #: includes/class-freemius.php:20069
419
  msgid "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."
420
  msgstr ""
421
 
422
- #: includes/class-freemius.php:20070, templates/account.php:121, templates/add-ons.php:250, templates/account/partials/addon.php:46
423
  msgctxt "trial period"
424
  msgid "Trial"
425
  msgstr ""
426
 
427
- #: includes/class-freemius.php:20075
428
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
429
  msgstr ""
430
 
431
- #: includes/class-freemius.php:20079, includes/class-freemius.php:20138
432
  msgid "Please contact us here"
433
  msgstr ""
434
 
435
- #: includes/class-freemius.php:20090
436
  msgid "Your plan was successfully activated."
437
  msgstr ""
438
 
439
- #: includes/class-freemius.php:20091
440
  msgid "Your plan was successfully upgraded."
441
  msgstr ""
442
 
443
- #: includes/class-freemius.php:20108
444
  msgid "Your plan was successfully changed to %s."
445
  msgstr ""
446
 
447
- #: includes/class-freemius.php:20124
448
  msgid "Your license has expired. You can still continue using the free %s forever."
449
  msgstr ""
450
 
451
- #: includes/class-freemius.php:20126
452
  msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
453
  msgstr ""
454
 
455
- #: includes/class-freemius.php:20134
456
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
457
  msgstr ""
458
 
459
- #: includes/class-freemius.php:20147
460
  msgid "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."
461
  msgstr ""
462
 
463
- #: includes/class-freemius.php:20173
464
  msgid "Your free trial has expired. You can still continue using all our free features."
465
  msgstr ""
466
 
467
- #: includes/class-freemius.php:20175
468
  msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
469
  msgstr ""
470
 
471
- #: includes/class-freemius.php:20283
472
  msgid "It looks like the license could not be activated."
473
  msgstr ""
474
 
475
- #: includes/class-freemius.php:20325
476
  msgid "Your license was successfully activated."
477
  msgstr ""
478
 
479
- #: includes/class-freemius.php:20351
480
  msgid "It looks like your site currently doesn't have an active license."
481
  msgstr ""
482
 
483
- #: includes/class-freemius.php:20375
484
  msgid "It looks like the license deactivation failed."
485
  msgstr ""
486
 
487
- #: includes/class-freemius.php:20404
488
  msgid "Your %s license was successfully deactivated."
489
  msgstr ""
490
 
491
- #: includes/class-freemius.php:20405
492
  msgid "Your license was successfully deactivated, you are back to the %s plan."
493
  msgstr ""
494
 
495
- #: includes/class-freemius.php:20408
496
  msgid "O.K"
497
  msgstr ""
498
 
499
- #: includes/class-freemius.php:20461
500
  msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
501
  msgstr ""
502
 
503
- #: includes/class-freemius.php:20470
504
  msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
505
  msgstr ""
506
 
507
- #: includes/class-freemius.php:20512
508
  msgid "You are already running the %s in a trial mode."
509
  msgstr ""
510
 
511
- #: includes/class-freemius.php:20523
512
  msgid "You already utilized a trial before."
513
  msgstr ""
514
 
515
- #: includes/class-freemius.php:20537
516
  msgid "Plan %s do not exist, therefore, can't start a trial."
517
  msgstr ""
518
 
519
- #: includes/class-freemius.php:20548
520
  msgid "Plan %s does not support a trial period."
521
  msgstr ""
522
 
523
- #: includes/class-freemius.php:20559
524
  msgid "None of the %s's plans supports a trial period."
525
  msgstr ""
526
 
527
- #: includes/class-freemius.php:20609
528
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
529
  msgstr ""
530
 
531
- #: includes/class-freemius.php:20645
532
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
533
  msgstr ""
534
 
535
- #: includes/class-freemius.php:20664
536
  msgid "Your %s free trial was successfully cancelled."
537
  msgstr ""
538
 
539
- #: includes/class-freemius.php:20980
540
  msgid "Version %s was released."
541
  msgstr ""
542
 
543
- #: includes/class-freemius.php:20980
544
  msgid "Please download %s."
545
  msgstr ""
546
 
547
- #: includes/class-freemius.php:20987
548
  msgid "the latest %s version here"
549
  msgstr ""
550
 
551
- #: includes/class-freemius.php:20992
552
  msgid "New"
553
  msgstr ""
554
 
555
- #: includes/class-freemius.php:20997
556
  msgid "Seems like you got the latest release."
557
  msgstr ""
558
 
559
- #: includes/class-freemius.php:20998
560
  msgid "You are all good!"
561
  msgstr ""
562
 
563
- #: includes/class-freemius.php:21301
564
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
565
  msgstr ""
566
 
567
- #: includes/class-freemius.php:21441
568
  msgid "Site successfully opted in."
569
  msgstr ""
570
 
571
- #: includes/class-freemius.php:21442, includes/class-freemius.php:22299
572
  msgid "Awesome"
573
  msgstr ""
574
 
575
- #: includes/class-freemius.php:21458, templates/forms/optout.php:41
576
  msgid "We appreciate your help in making the %s better by letting us track some usage data."
577
  msgstr ""
578
 
579
- #: includes/class-freemius.php:21459
580
  msgid "Thank you!"
581
  msgstr ""
582
 
583
- #: includes/class-freemius.php:21466
584
  msgid "We will no longer be sending any usage data of %s on %s to %s."
585
  msgstr ""
586
 
587
- #: includes/class-freemius.php:21612
588
  msgid "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."
589
  msgstr ""
590
 
591
- #: includes/class-freemius.php:21618
592
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
593
  msgstr ""
594
 
595
- #: includes/class-freemius.php:21623
596
  msgid "%s is the new owner of the account."
597
  msgstr ""
598
 
599
- #: includes/class-freemius.php:21625
600
  msgctxt "as congratulations"
601
  msgid "Congrats"
602
  msgstr ""
603
 
604
- #: includes/class-freemius.php:21661
605
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
606
  msgstr ""
607
 
608
- #: includes/class-freemius.php:21673
609
  msgid "Please provide your full name."
610
  msgstr ""
611
 
612
- #: includes/class-freemius.php:21678
613
  msgid "Your name was successfully updated."
614
  msgstr ""
615
 
616
- #: includes/class-freemius.php:21739
617
  msgid "You have successfully updated your %s."
618
  msgstr ""
619
 
620
- #: includes/class-freemius.php:21879
 
 
 
 
 
 
 
 
621
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
622
  msgstr ""
623
 
624
- #: includes/class-freemius.php:21880
625
  msgctxt "advance notice of something that will need attention."
626
  msgid "Heads up"
627
  msgstr ""
628
 
629
- #: includes/class-freemius.php:22339
630
  msgctxt "exclamation"
631
  msgid "Hey"
632
  msgstr ""
633
 
634
- #: includes/class-freemius.php:22339
635
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
636
  msgstr ""
637
 
638
- #: includes/class-freemius.php:22347
639
  msgid "No commitment for %s days - cancel anytime!"
640
  msgstr ""
641
 
642
- #: includes/class-freemius.php:22348
643
  msgid "No credit card required"
644
  msgstr ""
645
 
646
- #: includes/class-freemius.php:22355, templates/forms/trial-start.php:53
647
  msgctxt "call to action"
648
  msgid "Start free trial"
649
  msgstr ""
650
 
651
- #: includes/class-freemius.php:22432
652
  msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
653
  msgstr ""
654
 
655
- #: includes/class-freemius.php:22441
656
  msgid "Learn more"
657
  msgstr ""
658
 
659
- #: includes/class-freemius.php:22627, templates/account.php:507, templates/account.php:657, templates/connect.php:179, templates/connect.php:455, templates/forms/license-activation.php:27, templates/account/partials/addon.php:321
660
  msgid "Activate License"
661
  msgstr ""
662
 
663
- #: includes/class-freemius.php:22628, templates/account.php:601, templates/account.php:656, templates/account/partials/addon.php:322, templates/account/partials/site.php:271
664
  msgid "Change License"
665
  msgstr ""
666
 
667
- #: includes/class-freemius.php:22737, templates/account/partials/site.php:169
668
  msgid "Opt Out"
669
  msgstr ""
670
 
671
- #: includes/class-freemius.php:22739, includes/class-freemius.php:22745, templates/account/partials/site.php:49, templates/account/partials/site.php:169
672
  msgid "Opt In"
673
  msgstr ""
674
 
675
- #: includes/class-freemius.php:22973
676
  msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
677
  msgstr ""
678
 
679
- #: includes/class-freemius.php:22981
680
  msgid "Activate %s features"
681
  msgstr ""
682
 
683
- #: includes/class-freemius.php:22994
684
  msgid "Please follow these steps to complete the upgrade"
685
  msgstr ""
686
 
687
- #: includes/class-freemius.php:22998
688
  msgid "Download the latest %s version"
689
  msgstr ""
690
 
691
- #: includes/class-freemius.php:23002
692
  msgid "Upload and activate the downloaded version"
693
  msgstr ""
694
 
695
- #: includes/class-freemius.php:23004
696
  msgid "How to upload and activate?"
697
  msgstr ""
698
 
699
- #: includes/class-freemius.php:23138
700
  msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
701
  msgstr ""
702
 
703
- #: includes/class-freemius.php:23299
704
  msgid "Auto installation only works for opted-in users."
705
  msgstr ""
706
 
707
- #: includes/class-freemius.php:23309, includes/class-freemius.php:23342, includes/class-fs-plugin-updater.php:1218, includes/class-fs-plugin-updater.php:1232
708
  msgid "Invalid module ID."
709
  msgstr ""
710
 
711
- #: includes/class-freemius.php:23318, includes/class-fs-plugin-updater.php:1254
712
  msgid "Premium version already active."
713
  msgstr ""
714
 
715
- #: includes/class-freemius.php:23325
716
  msgid "You do not have a valid license to access the premium version."
717
  msgstr ""
718
 
719
- #: includes/class-freemius.php:23332
720
  msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
721
  msgstr ""
722
 
723
- #: includes/class-freemius.php:23350, includes/class-fs-plugin-updater.php:1253
724
  msgid "Premium add-on version already installed."
725
  msgstr ""
726
 
727
- #: includes/class-freemius.php:23700
728
  msgid "View paid features"
729
  msgstr ""
730
 
731
- #: includes/class-freemius.php:24022
732
  msgid "Thank you so much for using %s and its add-ons!"
733
  msgstr ""
734
 
735
- #: includes/class-freemius.php:24023
736
  msgid "Thank you so much for using %s!"
737
  msgstr ""
738
 
739
- #: includes/class-freemius.php:24029
740
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
741
  msgstr ""
742
 
743
- #: includes/class-freemius.php:24033
744
  msgid "Thank you so much for using our products!"
745
  msgstr ""
746
 
747
- #: includes/class-freemius.php:24034
748
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
749
  msgstr ""
750
 
751
- #: includes/class-freemius.php:24053
752
  msgid "%s and its add-ons"
753
  msgstr ""
754
 
755
- #: includes/class-freemius.php:24062
756
  msgid "Products"
757
  msgstr ""
758
 
759
- #: includes/class-freemius.php:24069, templates/connect.php:280
760
  msgid "Yes"
761
  msgstr ""
762
 
763
- #: includes/class-freemius.php:24070, templates/connect.php:281
764
  msgid "send me security & feature updates, educational content and offers."
765
  msgstr ""
766
 
767
- #: includes/class-freemius.php:24071, templates/connect.php:286
768
  msgid "No"
769
  msgstr ""
770
 
771
- #: includes/class-freemius.php:24073, templates/connect.php:288
772
  msgid "do %sNOT%s send me security & feature updates, educational content and offers."
773
  msgstr ""
774
 
775
- #: includes/class-freemius.php:24083
776
  msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
777
  msgstr ""
778
 
779
- #: includes/class-freemius.php:24085, templates/connect.php:295
780
  msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
781
  msgstr ""
782
 
783
- #: includes/class-freemius.php:24367
784
  msgid "License key is empty."
785
  msgstr ""
786
 
@@ -808,599 +832,607 @@ msgstr ""
808
  msgid "Important Upgrade Notice:"
809
  msgstr ""
810
 
811
- #: includes/class-fs-plugin-updater.php:1283
812
  msgid "Installing plugin: %s"
813
  msgstr ""
814
 
815
- #: includes/class-fs-plugin-updater.php:1324
816
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
817
  msgstr ""
818
 
819
- #: includes/class-fs-plugin-updater.php:1506
820
  msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
821
  msgstr ""
822
 
823
- #: includes/fs-plugin-info-dialog.php:535
824
  msgid "Purchase More"
825
  msgstr ""
826
 
827
- #: includes/fs-plugin-info-dialog.php:536, templates/account/partials/addon.php:385
828
  msgctxt "verb"
829
  msgid "Purchase"
830
  msgstr ""
831
 
832
- #: includes/fs-plugin-info-dialog.php:540
833
  msgid "Start my free %s"
834
  msgstr ""
835
 
836
- #: includes/fs-plugin-info-dialog.php:738
837
  msgid "Install Free Version Update Now"
838
  msgstr ""
839
 
840
- #: includes/fs-plugin-info-dialog.php:739, templates/account.php:590
841
  msgid "Install Update Now"
842
  msgstr ""
843
 
844
- #: includes/fs-plugin-info-dialog.php:748
845
  msgid "Install Free Version Now"
846
  msgstr ""
847
 
848
- #: includes/fs-plugin-info-dialog.php:749, templates/add-ons.php:323, templates/auto-installation.php:111, templates/account/partials/addon.php:365, templates/account/partials/addon.php:418
849
  msgid "Install Now"
850
  msgstr ""
851
 
852
- #: includes/fs-plugin-info-dialog.php:765
853
  msgctxt "as download latest version"
854
  msgid "Download Latest Free Version"
855
  msgstr ""
856
 
857
- #: includes/fs-plugin-info-dialog.php:766, templates/account.php:99, templates/add-ons.php:37, templates/account/partials/addon.php:25
858
  msgctxt "as download latest version"
859
  msgid "Download Latest"
860
  msgstr ""
861
 
862
- #: includes/fs-plugin-info-dialog.php:781, templates/add-ons.php:329, templates/account/partials/addon.php:356, templates/account/partials/addon.php:412
863
  msgid "Activate this add-on"
864
  msgstr ""
865
 
866
- #: includes/fs-plugin-info-dialog.php:783, templates/connect.php:452
867
  msgid "Activate Free Version"
868
  msgstr ""
869
 
870
- #: includes/fs-plugin-info-dialog.php:784, templates/account.php:123, templates/add-ons.php:330, templates/account/partials/addon.php:48
871
  msgid "Activate"
872
  msgstr ""
873
 
874
- #: includes/fs-plugin-info-dialog.php:994
875
  msgctxt "Plugin installer section title"
876
  msgid "Description"
877
  msgstr ""
878
 
879
- #: includes/fs-plugin-info-dialog.php:995
880
  msgctxt "Plugin installer section title"
881
  msgid "Installation"
882
  msgstr ""
883
 
884
- #: includes/fs-plugin-info-dialog.php:996
885
  msgctxt "Plugin installer section title"
886
  msgid "FAQ"
887
  msgstr ""
888
 
889
- #: includes/fs-plugin-info-dialog.php:997, templates/plugin-info/description.php:55
890
  msgid "Screenshots"
891
  msgstr ""
892
 
893
- #: includes/fs-plugin-info-dialog.php:998
894
  msgctxt "Plugin installer section title"
895
  msgid "Changelog"
896
  msgstr ""
897
 
898
- #: includes/fs-plugin-info-dialog.php:999
899
  msgctxt "Plugin installer section title"
900
  msgid "Reviews"
901
  msgstr ""
902
 
903
- #: includes/fs-plugin-info-dialog.php:1000
904
  msgctxt "Plugin installer section title"
905
  msgid "Other Notes"
906
  msgstr ""
907
 
908
- #: includes/fs-plugin-info-dialog.php:1015
909
  msgctxt "Plugin installer section title"
910
  msgid "Features & Pricing"
911
  msgstr ""
912
 
913
- #: includes/fs-plugin-info-dialog.php:1025
914
  msgid "Plugin Install"
915
  msgstr ""
916
 
917
- #: includes/fs-plugin-info-dialog.php:1097
918
  msgctxt "e.g. Professional Plan"
919
  msgid "%s Plan"
920
  msgstr ""
921
 
922
- #: includes/fs-plugin-info-dialog.php:1123
923
  msgctxt "e.g. the best product"
924
  msgid "Best"
925
  msgstr ""
926
 
927
- #: includes/fs-plugin-info-dialog.php:1129, includes/fs-plugin-info-dialog.php:1149
928
  msgctxt "as every month"
929
  msgid "Monthly"
930
  msgstr ""
931
 
932
- #: includes/fs-plugin-info-dialog.php:1132
933
  msgctxt "as once a year"
934
  msgid "Annual"
935
  msgstr ""
936
 
937
- #: includes/fs-plugin-info-dialog.php:1135
938
  msgid "Lifetime"
939
  msgstr ""
940
 
941
- #: includes/fs-plugin-info-dialog.php:1149, includes/fs-plugin-info-dialog.php:1151, includes/fs-plugin-info-dialog.php:1153
942
  msgctxt "e.g. billed monthly"
943
  msgid "Billed %s"
944
  msgstr ""
945
 
946
- #: includes/fs-plugin-info-dialog.php:1151
947
  msgctxt "as once a year"
948
  msgid "Annually"
949
  msgstr ""
950
 
951
- #: includes/fs-plugin-info-dialog.php:1153
952
  msgctxt "as once a year"
953
  msgid "Once"
954
  msgstr ""
955
 
956
- #: includes/fs-plugin-info-dialog.php:1159
957
  msgid "Single Site License"
958
  msgstr ""
959
 
960
- #: includes/fs-plugin-info-dialog.php:1161
961
  msgid "Unlimited Licenses"
962
  msgstr ""
963
 
964
- #: includes/fs-plugin-info-dialog.php:1163
965
  msgid "Up to %s Sites"
966
  msgstr ""
967
 
968
- #: includes/fs-plugin-info-dialog.php:1173, templates/plugin-info/features.php:82
969
  msgctxt "as monthly period"
970
  msgid "mo"
971
  msgstr ""
972
 
973
- #: includes/fs-plugin-info-dialog.php:1180, templates/plugin-info/features.php:80
974
  msgctxt "as annual period"
975
  msgid "year"
976
  msgstr ""
977
 
978
- #: includes/fs-plugin-info-dialog.php:1234
979
  msgctxt "noun"
980
  msgid "Price"
981
  msgstr ""
982
 
983
- #: includes/fs-plugin-info-dialog.php:1282
984
  msgid "Save %s"
985
  msgstr ""
986
 
987
- #: includes/fs-plugin-info-dialog.php:1292
988
  msgid "No commitment for %s - cancel anytime"
989
  msgstr ""
990
 
991
- #: includes/fs-plugin-info-dialog.php:1295
992
  msgid "After your free %s, pay as little as %s"
993
  msgstr ""
994
 
995
- #: includes/fs-plugin-info-dialog.php:1306
996
  msgid "Details"
997
  msgstr ""
998
 
999
- #: includes/fs-plugin-info-dialog.php:1310, templates/account.php:110, templates/debug.php:201, templates/debug.php:238, templates/debug.php:455, templates/account/partials/addon.php:36
1000
  msgctxt "product version"
1001
  msgid "Version"
1002
  msgstr ""
1003
 
1004
- #: includes/fs-plugin-info-dialog.php:1317
1005
  msgctxt "as the plugin author"
1006
  msgid "Author"
1007
  msgstr ""
1008
 
1009
- #: includes/fs-plugin-info-dialog.php:1324
1010
  msgid "Last Updated"
1011
  msgstr ""
1012
 
1013
- #: includes/fs-plugin-info-dialog.php:1329, templates/account.php:476
1014
  msgctxt "x-ago"
1015
  msgid "%s ago"
1016
  msgstr ""
1017
 
1018
- #: includes/fs-plugin-info-dialog.php:1338
1019
  msgid "Requires WordPress Version"
1020
  msgstr ""
1021
 
1022
- #: includes/fs-plugin-info-dialog.php:1339
1023
  msgid "%s or higher"
1024
  msgstr ""
1025
 
1026
- #: includes/fs-plugin-info-dialog.php:1346
1027
  msgid "Compatible up to"
1028
  msgstr ""
1029
 
1030
- #: includes/fs-plugin-info-dialog.php:1354
1031
  msgid "Downloaded"
1032
  msgstr ""
1033
 
1034
- #: includes/fs-plugin-info-dialog.php:1358
1035
  msgid "%s time"
1036
  msgstr ""
1037
 
1038
- #: includes/fs-plugin-info-dialog.php:1360
1039
  msgid "%s times"
1040
  msgstr ""
1041
 
1042
- #: includes/fs-plugin-info-dialog.php:1370
1043
  msgid "WordPress.org Plugin Page"
1044
  msgstr ""
1045
 
1046
- #: includes/fs-plugin-info-dialog.php:1378
1047
  msgid "Plugin Homepage"
1048
  msgstr ""
1049
 
1050
- #: includes/fs-plugin-info-dialog.php:1386, includes/fs-plugin-info-dialog.php:1468
1051
  msgid "Donate to this plugin"
1052
  msgstr ""
1053
 
1054
- #: includes/fs-plugin-info-dialog.php:1393
1055
  msgid "Average Rating"
1056
  msgstr ""
1057
 
1058
- #: includes/fs-plugin-info-dialog.php:1400
1059
  msgid "based on %s"
1060
  msgstr ""
1061
 
1062
- #: includes/fs-plugin-info-dialog.php:1404
1063
  msgid "%s rating"
1064
  msgstr ""
1065
 
1066
- #: includes/fs-plugin-info-dialog.php:1406
1067
  msgid "%s ratings"
1068
  msgstr ""
1069
 
1070
- #: includes/fs-plugin-info-dialog.php:1421
1071
  msgid "%s star"
1072
  msgstr ""
1073
 
1074
- #: includes/fs-plugin-info-dialog.php:1423
1075
  msgid "%s stars"
1076
  msgstr ""
1077
 
1078
- #: includes/fs-plugin-info-dialog.php:1434
1079
  msgid "Click to see reviews that provided a rating of %s"
1080
  msgstr ""
1081
 
1082
- #: includes/fs-plugin-info-dialog.php:1447
1083
  msgid "Contributors"
1084
  msgstr ""
1085
 
1086
- #: includes/fs-plugin-info-dialog.php:1476, includes/fs-plugin-info-dialog.php:1478
1087
  msgid "Warning"
1088
  msgstr ""
1089
 
1090
- #: includes/fs-plugin-info-dialog.php:1476
1091
  msgid "This plugin has not been tested with your current version of WordPress."
1092
  msgstr ""
1093
 
1094
- #: includes/fs-plugin-info-dialog.php:1478
1095
  msgid "This plugin has not been marked as compatible with your version of WordPress."
1096
  msgstr ""
1097
 
1098
- #: includes/fs-plugin-info-dialog.php:1497
1099
  msgid "Paid add-on must be deployed to Freemius."
1100
  msgstr ""
1101
 
1102
- #: includes/fs-plugin-info-dialog.php:1498
1103
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1104
  msgstr ""
1105
 
1106
- #: includes/fs-plugin-info-dialog.php:1519
1107
  msgid "Newer Version (%s) Installed"
1108
  msgstr ""
1109
 
1110
- #: includes/fs-plugin-info-dialog.php:1520
1111
  msgid "Newer Free Version (%s) Installed"
1112
  msgstr ""
1113
 
1114
- #: includes/fs-plugin-info-dialog.php:1527
1115
  msgid "Latest Version Installed"
1116
  msgstr ""
1117
 
1118
- #: includes/fs-plugin-info-dialog.php:1528
1119
  msgid "Latest Free Version Installed"
1120
  msgstr ""
1121
 
1122
- #: templates/account.php:100, templates/forms/subscription-cancellation.php:96, templates/account/partials/addon.php:26, templates/account/partials/site.php:311
1123
  msgid "Downgrading your plan"
1124
  msgstr ""
1125
 
1126
- #: templates/account.php:101, templates/forms/subscription-cancellation.php:97, templates/account/partials/addon.php:27, templates/account/partials/site.php:312
1127
  msgid "Cancelling the subscription"
1128
  msgstr ""
1129
 
1130
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
1131
- #: templates/account.php:103, templates/forms/subscription-cancellation.php:99, templates/account/partials/site.php:314
1132
  msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1133
  msgstr ""
1134
 
1135
- #: templates/account.php:104, templates/forms/subscription-cancellation.php:100, templates/account/partials/addon.php:30, templates/account/partials/site.php:315
1136
  msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1137
  msgstr ""
1138
 
1139
- #: templates/account.php:105, templates/forms/subscription-cancellation.php:106, templates/account/partials/addon.php:31
1140
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1141
  msgstr ""
1142
 
1143
- #: templates/account.php:106, templates/forms/subscription-cancellation.php:101, templates/account/partials/addon.php:32, templates/account/partials/site.php:316
1144
  msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1145
  msgstr ""
1146
 
1147
- #: templates/account.php:107, templates/forms/subscription-cancellation.php:102, templates/account/partials/addon.php:33, templates/account/partials/site.php:317
1148
  msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1149
  msgstr ""
1150
 
1151
  #. translators: %s: Plan title (e.g. "Professional")
1152
- #: templates/account.php:109, templates/account/partials/activate-license-button.php:31, templates/account/partials/addon.php:35
1153
  msgid "Activate %s Plan"
1154
  msgstr ""
1155
 
1156
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1157
- #: templates/account.php:112, templates/account/partials/addon.php:38, templates/account/partials/site.php:291
1158
  msgid "Auto renews in %s"
1159
  msgstr ""
1160
 
1161
  #. translators: %s: Time period (e.g. Expires in "2 months")
1162
- #: templates/account.php:114, templates/account/partials/addon.php:40, templates/account/partials/site.php:293
1163
  msgid "Expires in %s"
1164
  msgstr ""
1165
 
1166
- #: templates/account.php:115
1167
  msgctxt "as synchronize license"
1168
  msgid "Sync License"
1169
  msgstr ""
1170
 
1171
- #: templates/account.php:116, templates/account/partials/addon.php:41
1172
  msgid "Cancel Trial"
1173
  msgstr ""
1174
 
1175
- #: templates/account.php:117, templates/account/partials/addon.php:42
1176
  msgid "Change Plan"
1177
  msgstr ""
1178
 
1179
- #: templates/account.php:118, templates/account/partials/addon.php:43
1180
  msgctxt "verb"
1181
  msgid "Upgrade"
1182
  msgstr ""
1183
 
1184
- #: templates/account.php:120, templates/account/partials/addon.php:45, templates/account/partials/site.php:318
1185
  msgctxt "verb"
1186
  msgid "Downgrade"
1187
  msgstr ""
1188
 
1189
- #: templates/account.php:122, templates/add-ons.php:246, templates/plugin-info/features.php:72, templates/account/partials/addon.php:47, templates/account/partials/site.php:33
1190
  msgid "Free"
1191
  msgstr ""
1192
 
1193
- #: templates/account.php:124, templates/debug.php:371, includes/customizer/class-fs-customizer-upsell-control.php:110, templates/account/partials/addon.php:49
1194
  msgctxt "as product pricing plan"
1195
  msgid "Plan"
1196
  msgstr ""
1197
 
1198
- #: templates/account.php:125
1199
  msgid "Bundle Plan"
1200
  msgstr ""
1201
 
1202
- #: templates/account.php:199
1203
  msgid "Free Trial"
1204
  msgstr ""
1205
 
1206
- #: templates/account.php:210
1207
  msgid "Account Details"
1208
  msgstr ""
1209
 
1210
- #: templates/account.php:217, templates/forms/data-debug-mode.php:33
1211
  msgid "Start Debug"
1212
  msgstr ""
1213
 
1214
- #: templates/account.php:219
1215
  msgid "Stop Debug"
1216
  msgstr ""
1217
 
1218
- #: templates/account.php:226
1219
  msgid "Billing & Invoices"
1220
  msgstr ""
1221
 
1222
- #: templates/account.php:237
1223
  msgid "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?"
1224
  msgstr ""
1225
 
1226
- #: templates/account.php:239
1227
  msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1228
  msgstr ""
1229
 
1230
- #: templates/account.php:242
1231
  msgid "Delete Account"
1232
  msgstr ""
1233
 
1234
- #: templates/account.php:254, templates/account/partials/addon.php:231, templates/account/partials/deactivate-license-button.php:35
1235
  msgid "Deactivate License"
1236
  msgstr ""
1237
 
1238
- #: templates/account.php:277, templates/forms/subscription-cancellation.php:125
1239
  msgid "Are you sure you want to proceed?"
1240
  msgstr ""
1241
 
1242
- #: templates/account.php:277, templates/account/partials/addon.php:255
1243
  msgid "Cancel Subscription"
1244
  msgstr ""
1245
 
1246
- #: templates/account.php:306, templates/account/partials/addon.php:340
1247
  msgctxt "as synchronize"
1248
  msgid "Sync"
1249
  msgstr ""
1250
 
1251
- #: templates/account.php:321, templates/debug.php:505
1252
  msgid "Name"
1253
  msgstr ""
1254
 
1255
- #: templates/account.php:327, templates/debug.php:506
1256
  msgid "Email"
1257
  msgstr ""
1258
 
1259
- #: templates/account.php:334, templates/debug.php:369, templates/debug.php:555
1260
  msgid "User ID"
1261
  msgstr ""
1262
 
1263
- #: templates/account.php:352, templates/account.php:670, templates/account.php:715, templates/debug.php:236, templates/debug.php:363, templates/debug.php:452, templates/debug.php:504, templates/debug.php:553, templates/debug.php:632, templates/account/payments.php:35, templates/debug/logger.php:21
1264
  msgid "ID"
1265
  msgstr ""
1266
 
1267
- #: templates/account.php:359
1268
  msgid "Site ID"
1269
  msgstr ""
1270
 
1271
- #: templates/account.php:362
1272
  msgid "No ID"
1273
  msgstr ""
1274
 
1275
- #: templates/account.php:367, templates/debug.php:243, templates/debug.php:372, templates/debug.php:456, templates/debug.php:508, templates/account/partials/site.php:227
1276
  msgid "Public Key"
1277
  msgstr ""
1278
 
1279
- #: templates/account.php:373, templates/debug.php:373, templates/debug.php:457, templates/debug.php:509, templates/account/partials/site.php:239
1280
  msgid "Secret Key"
1281
  msgstr ""
1282
 
1283
- #: templates/account.php:376
1284
  msgctxt "as secret encryption key missing"
1285
  msgid "No Secret"
1286
  msgstr ""
1287
 
1288
- #: templates/account.php:403, templates/account/partials/site.php:120, templates/account/partials/site.php:122
1289
  msgid "Trial"
1290
  msgstr ""
1291
 
1292
- #: templates/account.php:430, templates/debug.php:561, templates/account/partials/site.php:260
1293
  msgid "License Key"
1294
  msgstr ""
1295
 
1296
- #: templates/account.php:461
1297
  msgid "Join the Beta program"
1298
  msgstr ""
1299
 
1300
- #: templates/account.php:467
1301
  msgid "not verified"
1302
  msgstr ""
1303
 
1304
- #: templates/account.php:476, templates/account/partials/addon.php:190
1305
  msgid "Expired"
1306
  msgstr ""
1307
 
1308
- #: templates/account.php:536
1309
  msgid "Premium version"
1310
  msgstr ""
1311
 
1312
- #: templates/account.php:538
1313
  msgid "Free version"
1314
  msgstr ""
1315
 
1316
- #: templates/account.php:550
1317
  msgid "Verify Email"
1318
  msgstr ""
1319
 
1320
- #: templates/account.php:564
1321
  msgid "Download %s Version"
1322
  msgstr ""
1323
 
1324
- #: templates/account.php:580
1325
  msgid "Download Paid Version"
1326
  msgstr ""
1327
 
1328
- #: templates/account.php:598, templates/account.php:853, templates/account/partials/site.php:248, templates/account/partials/site.php:270
1329
  msgctxt "verb"
1330
  msgid "Show"
1331
  msgstr ""
1332
 
1333
- #: templates/account.php:613
1334
  msgid "What is your %s?"
1335
  msgstr ""
1336
 
1337
- #: templates/account.php:621, templates/account/billing.php:21
1338
  msgctxt "verb"
1339
  msgid "Edit"
1340
  msgstr ""
1341
 
1342
- #: templates/account.php:625, templates/forms/user-change.php:27
1343
  msgid "Change User"
1344
  msgstr ""
1345
 
1346
- #: templates/account.php:649
1347
  msgid "Sites"
1348
  msgstr ""
1349
 
1350
- #: templates/account.php:662
1351
  msgid "Search by address"
1352
  msgstr ""
1353
 
1354
- #: templates/account.php:671, templates/debug.php:366
1355
  msgid "Address"
1356
  msgstr ""
1357
 
1358
- #: templates/account.php:672
1359
  msgid "License"
1360
  msgstr ""
1361
 
1362
- #: templates/account.php:673
1363
  msgid "Plan"
1364
  msgstr ""
1365
 
1366
- #: templates/account.php:718
1367
  msgctxt "as software license"
1368
  msgid "License"
1369
  msgstr ""
1370
 
1371
- #: templates/account.php:847
1372
  msgctxt "verb"
1373
  msgid "Hide"
1374
  msgstr ""
1375
 
1376
- #: templates/account.php:869, templates/forms/data-debug-mode.php:31
1377
  msgid "Processing"
1378
  msgstr ""
1379
 
1380
- #: templates/account.php:872
1381
  msgid "Get updates for bleeding edge Beta versions of %s."
1382
  msgstr ""
1383
 
1384
- #: templates/account.php:930
1385
  msgid "Cancelling %s"
1386
  msgstr ""
1387
 
1388
- #: templates/account.php:930, templates/account.php:947, templates/forms/subscription-cancellation.php:27, templates/forms/deactivation/form.php:133
1389
  msgid "trial"
1390
  msgstr ""
1391
 
1392
- #: templates/account.php:945, templates/forms/deactivation/form.php:150
1393
  msgid "Cancelling %s..."
1394
  msgstr ""
1395
 
1396
- #: templates/account.php:948, templates/forms/subscription-cancellation.php:28, templates/forms/deactivation/form.php:134
1397
  msgid "subscription"
1398
  msgstr ""
1399
 
1400
- #: templates/account.php:962
1401
  msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1402
  msgstr ""
1403
 
 
 
 
 
 
 
 
 
1404
  #: templates/add-ons.php:38
1405
  msgid "View details"
1406
  msgstr ""
@@ -1423,7 +1455,7 @@ msgctxt "installed add-on"
1423
  msgid "Installed"
1424
  msgstr ""
1425
 
1426
- #: templates/admin-notice.php:13, templates/forms/license-activation.php:220, templates/forms/resend-key.php:77
1427
  msgctxt "as close a window"
1428
  msgid "Dismiss"
1429
  msgstr ""
@@ -1478,84 +1510,92 @@ msgstr ""
1478
  msgid "Agree & Activate License"
1479
  msgstr ""
1480
 
1481
- #: templates/connect.php:189
1482
- msgid "Thanks for purchasing %s! To get started, please enter your license key:"
1483
  msgstr ""
1484
 
1485
- #: templates/connect.php:196
1486
  msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s."
1487
  msgstr ""
1488
 
1489
- #: templates/connect.php:197
1490
  msgid "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
1491
  msgstr ""
1492
 
1493
- #: templates/connect.php:203
1494
  msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1495
  msgstr ""
1496
 
1497
- #: templates/connect.php:204
1498
  msgid "Never miss an important update - opt in to our security & feature updates notifications, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1499
  msgstr ""
1500
 
1501
- #: templates/connect.php:238
1502
  msgid "We're excited to introduce the Freemius network-level integration."
1503
  msgstr ""
1504
 
1505
- #: templates/connect.php:241
1506
  msgid "During the update process we detected %d site(s) that are still pending license activation."
1507
  msgstr ""
1508
 
1509
- #: templates/connect.php:243
1510
  msgid "If you'd like to use the %s on those sites, please enter your license key below and click the activation button."
1511
  msgstr ""
1512
 
1513
- #: templates/connect.php:245
1514
  msgid "%s's paid features"
1515
  msgstr ""
1516
 
1517
- #: templates/connect.php:250
1518
  msgid "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page."
1519
  msgstr ""
1520
 
1521
- #: templates/connect.php:252
1522
  msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1523
  msgstr ""
1524
 
1525
- #: templates/connect.php:261, templates/forms/data-debug-mode.php:35, templates/forms/license-activation.php:49
1526
  msgid "License key"
1527
  msgstr ""
1528
 
1529
- #: templates/connect.php:264, templates/forms/license-activation.php:22
1530
  msgid "Can't find your license key?"
1531
  msgstr ""
1532
 
1533
- #: templates/connect.php:323, templates/connect.php:694, templates/forms/deactivation/retry-skip.php:20
1534
  msgctxt "verb"
1535
  msgid "Skip"
1536
  msgstr ""
1537
 
1538
- #: templates/connect.php:326
1539
  msgid "Delegate to Site Admins"
1540
  msgstr ""
1541
 
1542
- #: templates/connect.php:326
1543
  msgid "If you click it, this decision will be delegated to the sites administrators."
1544
  msgstr ""
1545
 
1546
- #: templates/connect.php:364
 
 
 
 
1547
  msgid "Your Profile Overview"
1548
  msgstr ""
1549
 
1550
- #: templates/connect.php:365
1551
  msgid "Name and email address"
1552
  msgstr ""
1553
 
1554
- #: templates/connect.php:372
 
 
 
 
1555
  msgid "Your Site Overview"
1556
  msgstr ""
1557
 
1558
- #: templates/connect.php:373
1559
  msgid "Site URL, WP version, PHP info"
1560
  msgstr ""
1561
 
@@ -1563,64 +1603,84 @@ msgstr ""
1563
  msgid "Admin Notices"
1564
  msgstr ""
1565
 
1566
- #: templates/connect.php:380, templates/connect.php:396
1567
  msgid "Updates, announcements, marketing, no spam"
1568
  msgstr ""
1569
 
1570
- #: templates/connect.php:386
1571
- msgid "Current %s Events"
1572
  msgstr ""
1573
 
1574
- #: templates/connect.php:387
1575
- msgid "Activation, deactivation and uninstall"
1576
  msgstr ""
1577
 
1578
- #: templates/connect.php:395
 
 
 
 
1579
  msgid "Newsletter"
1580
  msgstr ""
1581
 
1582
- #: templates/connect.php:403
1583
  msgid "Plugins & Themes"
1584
  msgstr ""
1585
 
1586
- #: templates/connect.php:404
 
 
 
 
 
 
 
 
1587
  msgid "Title, slug, version, and is active"
1588
  msgstr ""
1589
 
1590
- #: templates/connect.php:420, templates/forms/license-activation.php:41
1591
- msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
 
 
 
 
 
 
 
 
1592
  msgstr ""
1593
 
1594
- #: templates/connect.php:425
1595
  msgid "What permissions are being granted?"
1596
  msgstr ""
1597
 
1598
- #: templates/connect.php:451
1599
  msgid "Don't have a license key?"
1600
  msgstr ""
1601
 
1602
- #: templates/connect.php:454
1603
  msgid "Have a license key?"
1604
  msgstr ""
1605
 
1606
- #: templates/connect.php:462
1607
  msgid "Privacy Policy"
1608
  msgstr ""
1609
 
1610
- #: templates/connect.php:464
1611
  msgid "License Agreement"
1612
  msgstr ""
1613
 
1614
- #: templates/connect.php:464
1615
  msgid "Terms of Service"
1616
  msgstr ""
1617
 
1618
- #: templates/connect.php:853
1619
  msgctxt "as in the process of sending an email"
1620
  msgid "Sending email"
1621
  msgstr ""
1622
 
1623
- #: templates/connect.php:854
1624
  msgctxt "as activating plugin"
1625
  msgid "Activating"
1626
  msgstr ""
@@ -2053,135 +2113,135 @@ msgstr ""
2053
  msgid "Apply to become an affiliate"
2054
  msgstr ""
2055
 
2056
- #: templates/forms/affiliation.php:104
2057
  msgid "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
2058
  msgstr ""
2059
 
2060
- #: templates/forms/affiliation.php:119
2061
  msgid "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information."
2062
  msgstr ""
2063
 
2064
- #: templates/forms/affiliation.php:122
2065
  msgid "Your affiliation account was temporarily suspended."
2066
  msgstr ""
2067
 
2068
- #: templates/forms/affiliation.php:125
2069
  msgid "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days."
2070
  msgstr ""
2071
 
2072
- #: templates/forms/affiliation.php:128
2073
  msgid "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
2074
  msgstr ""
2075
 
2076
- #: templates/forms/affiliation.php:141
2077
  msgid "Like the %s? Become our ambassador and earn cash ;-)"
2078
  msgstr ""
2079
 
2080
- #: templates/forms/affiliation.php:142
2081
  msgid "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
2082
  msgstr ""
2083
 
2084
- #: templates/forms/affiliation.php:145
2085
  msgid "Program Summary"
2086
  msgstr ""
2087
 
2088
- #: templates/forms/affiliation.php:147
2089
  msgid "%s commission when a customer purchases a new license."
2090
  msgstr ""
2091
 
2092
- #: templates/forms/affiliation.php:149
2093
  msgid "Get commission for automated subscription renewals."
2094
  msgstr ""
2095
 
2096
- #: templates/forms/affiliation.php:152
2097
  msgid "%s tracking cookie after the first visit to maximize earnings potential."
2098
  msgstr ""
2099
 
2100
- #: templates/forms/affiliation.php:155
2101
  msgid "Unlimited commissions."
2102
  msgstr ""
2103
 
2104
- #: templates/forms/affiliation.php:157
2105
  msgid "%s minimum payout amount."
2106
  msgstr ""
2107
 
2108
- #: templates/forms/affiliation.php:158
2109
  msgid "Payouts are in USD and processed monthly via PayPal."
2110
  msgstr ""
2111
 
2112
- #: templates/forms/affiliation.php:159
2113
  msgid "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
2114
  msgstr ""
2115
 
2116
- #: templates/forms/affiliation.php:162
2117
  msgid "Affiliate"
2118
  msgstr ""
2119
 
2120
- #: templates/forms/affiliation.php:165, templates/forms/resend-key.php:23
2121
  msgid "Email address"
2122
  msgstr ""
2123
 
2124
- #: templates/forms/affiliation.php:169
2125
  msgid "Full name"
2126
  msgstr ""
2127
 
2128
- #: templates/forms/affiliation.php:173
2129
  msgid "PayPal account email address"
2130
  msgstr ""
2131
 
2132
- #: templates/forms/affiliation.php:177
2133
  msgid "Where are you going to promote the %s?"
2134
  msgstr ""
2135
 
2136
- #: templates/forms/affiliation.php:179
2137
  msgid "Enter the domain of your website or other websites from where you plan to promote the %s."
2138
  msgstr ""
2139
 
2140
- #: templates/forms/affiliation.php:181
2141
  msgid "Add another domain"
2142
  msgstr ""
2143
 
2144
- #: templates/forms/affiliation.php:185
2145
  msgid "Extra Domains"
2146
  msgstr ""
2147
 
2148
- #: templates/forms/affiliation.php:186
2149
  msgid "Extra domains where you will be marketing the product from."
2150
  msgstr ""
2151
 
2152
- #: templates/forms/affiliation.php:196
2153
  msgid "Promotion methods"
2154
  msgstr ""
2155
 
2156
- #: templates/forms/affiliation.php:199
2157
  msgid "Social media (Facebook, Twitter, etc.)"
2158
  msgstr ""
2159
 
2160
- #: templates/forms/affiliation.php:203
2161
  msgid "Mobile apps"
2162
  msgstr ""
2163
 
2164
- #: templates/forms/affiliation.php:207
2165
  msgid "Website, email, and social media statistics (optional)"
2166
  msgstr ""
2167
 
2168
- #: templates/forms/affiliation.php:210
2169
  msgid "Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential)."
2170
  msgstr ""
2171
 
2172
- #: templates/forms/affiliation.php:214
2173
  msgid "How will you promote us?"
2174
  msgstr ""
2175
 
2176
- #: templates/forms/affiliation.php:217
2177
  msgid "Please provide details on how you intend to promote %s (please be as specific as possible)."
2178
  msgstr ""
2179
 
2180
- #: templates/forms/affiliation.php:223, templates/forms/resend-key.php:22
2181
  msgid "Cancel"
2182
  msgstr ""
2183
 
2184
- #: templates/forms/affiliation.php:225
2185
  msgid "Become an affiliate"
2186
  msgstr ""
2187
 
@@ -2209,7 +2269,11 @@ msgstr ""
2209
  msgid "Update License"
2210
  msgstr ""
2211
 
2212
- #: templates/forms/license-activation.php:181
 
 
 
 
2213
  msgid "Associate with the license owner's account."
2214
  msgstr ""
2215
 
@@ -2255,7 +2319,7 @@ msgstr ""
2255
  msgid "Plugins & themes tracking"
2256
  msgstr ""
2257
 
2258
- #: templates/forms/optout.php:256
2259
  msgid "Saved"
2260
  msgstr ""
2261
 
@@ -2467,19 +2531,19 @@ msgstr ""
2467
  msgid "switching"
2468
  msgstr ""
2469
 
2470
- #: templates/forms/deactivation/form.php:365
2471
  msgid "Submit & %s"
2472
  msgstr ""
2473
 
2474
- #: templates/forms/deactivation/form.php:386
2475
  msgid "Kindly tell us the reason so we can improve."
2476
  msgstr ""
2477
 
2478
- #: templates/forms/deactivation/form.php:511
2479
  msgid "Yes - %s"
2480
  msgstr ""
2481
 
2482
- #: templates/forms/deactivation/form.php:518
2483
  msgid "Skip & %s"
2484
  msgstr ""
2485
 
1
+ # Copyright (C) 2021 freemius
2
  # This file is distributed under the same license as the freemius package.
3
  msgid ""
4
  msgstr ""
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
 
19
+ #: includes/class-freemius.php:1919, templates/account.php:912
20
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
21
  msgstr ""
22
 
23
+ #: includes/class-freemius.php:1926
24
  msgid "Would you like to proceed with the update?"
25
  msgstr ""
26
 
27
+ #: includes/class-freemius.php:2138
28
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
29
  msgstr ""
30
 
31
+ #: includes/class-freemius.php:2140
32
  msgid "Error"
33
  msgstr ""
34
 
35
+ #: includes/class-freemius.php:2540
36
  msgid "I found a better %s"
37
  msgstr ""
38
 
39
+ #: includes/class-freemius.php:2542
40
  msgid "What's the %s's name?"
41
  msgstr ""
42
 
43
+ #: includes/class-freemius.php:2548
44
  msgid "It's a temporary %s. I'm just debugging an issue."
45
  msgstr ""
46
 
47
+ #: includes/class-freemius.php:2550
48
  msgid "Deactivation"
49
  msgstr ""
50
 
51
+ #: includes/class-freemius.php:2551
52
  msgid "Theme Switch"
53
  msgstr ""
54
 
55
+ #: includes/class-freemius.php:2560, templates/forms/resend-key.php:24, templates/forms/user-change.php:29
56
  msgid "Other"
57
  msgstr ""
58
 
59
+ #: includes/class-freemius.php:2568
60
  msgid "I no longer need the %s"
61
  msgstr ""
62
 
63
+ #: includes/class-freemius.php:2575
64
  msgid "I only needed the %s for a short period"
65
  msgstr ""
66
 
67
+ #: includes/class-freemius.php:2581
68
  msgid "The %s broke my site"
69
  msgstr ""
70
 
71
+ #: includes/class-freemius.php:2588
72
  msgid "The %s suddenly stopped working"
73
  msgstr ""
74
 
75
+ #: includes/class-freemius.php:2598
76
  msgid "I can't pay for it anymore"
77
  msgstr ""
78
 
79
+ #: includes/class-freemius.php:2600
80
  msgid "What price would you feel comfortable paying?"
81
  msgstr ""
82
 
83
+ #: includes/class-freemius.php:2606
84
  msgid "I don't like to share my information with you"
85
  msgstr ""
86
 
87
+ #: includes/class-freemius.php:2627
88
  msgid "The %s didn't work"
89
  msgstr ""
90
 
91
+ #: includes/class-freemius.php:2637
92
  msgid "I couldn't understand how to make it work"
93
  msgstr ""
94
 
95
+ #: includes/class-freemius.php:2645
96
  msgid "The %s is great, but I need specific feature that you don't support"
97
  msgstr ""
98
 
99
+ #: includes/class-freemius.php:2647
100
  msgid "What feature?"
101
  msgstr ""
102
 
103
+ #: includes/class-freemius.php:2651
104
  msgid "The %s is not working"
105
  msgstr ""
106
 
107
+ #: includes/class-freemius.php:2653
108
  msgid "Kindly share what didn't work so we can fix it for future users..."
109
  msgstr ""
110
 
111
+ #: includes/class-freemius.php:2657
112
  msgid "It's not what I was looking for"
113
  msgstr ""
114
 
115
+ #: includes/class-freemius.php:2659
116
  msgid "What you've been looking for?"
117
  msgstr ""
118
 
119
+ #: includes/class-freemius.php:2663
120
  msgid "The %s didn't work as expected"
121
  msgstr ""
122
 
123
+ #: includes/class-freemius.php:2665
124
  msgid "What did you expect?"
125
  msgstr ""
126
 
127
+ #: includes/class-freemius.php:3520, templates/debug.php:20
128
  msgid "Freemius Debug"
129
  msgstr ""
130
 
131
+ #: includes/class-freemius.php:4272
132
  msgid "I don't know what is cURL or how to install it, help me!"
133
  msgstr ""
134
 
135
+ #: includes/class-freemius.php:4274
136
  msgid "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."
137
  msgstr ""
138
 
139
+ #: includes/class-freemius.php:4281
140
  msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
141
  msgstr ""
142
 
143
+ #: includes/class-freemius.php:4386
144
  msgid "Yes - do your thing"
145
  msgstr ""
146
 
147
+ #: includes/class-freemius.php:4391
148
  msgid "No - just deactivate"
149
  msgstr ""
150
 
151
+ #: includes/class-freemius.php:4436, includes/class-freemius.php:4930, includes/class-freemius.php:6191, includes/class-freemius.php:13368, includes/class-freemius.php:14110, includes/class-freemius.php:17542, includes/class-freemius.php:17647, includes/class-freemius.php:17822, includes/class-freemius.php:20056, includes/class-freemius.php:20414, includes/class-freemius.php:20424, includes/class-freemius.php:21109, includes/class-freemius.php:22015, includes/class-freemius.php:22148, includes/class-freemius.php:22304, templates/add-ons.php:57
152
  msgctxt "exclamation"
153
  msgid "Oops"
154
  msgstr ""
155
 
156
+ #: includes/class-freemius.php:4505
157
  msgid "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."
158
  msgstr ""
159
 
160
+ #: includes/class-freemius.php:4927
161
  msgctxt "addonX cannot run without pluginY"
162
  msgid "%s cannot run without %s."
163
  msgstr ""
164
 
165
+ #: includes/class-freemius.php:4928
166
  msgctxt "addonX cannot run..."
167
  msgid "%s cannot run without the plugin."
168
  msgstr ""
169
 
170
+ #: includes/class-freemius.php:5127, includes/class-freemius.php:5152, includes/class-freemius.php:21180
171
  msgid "Unexpected API error. Please contact the %s's author with the following error."
172
  msgstr ""
173
 
174
+ #: includes/class-freemius.php:5857
175
  msgid "Premium %s version was successfully activated."
176
  msgstr ""
177
 
178
+ #: includes/class-freemius.php:5869, includes/class-freemius.php:7774
179
  msgctxt "Used to express elation, enthusiasm, or triumph (especially in electronic communication)."
180
  msgid "W00t"
181
  msgstr ""
182
 
183
+ #: includes/class-freemius.php:5884
184
  msgid "You have a %s license."
185
  msgstr ""
186
 
187
+ #: includes/class-freemius.php:5888, includes/class-freemius.php:16947, includes/class-freemius.php:16958, includes/class-freemius.php:20325, includes/class-freemius.php:20689, includes/class-freemius.php:20758, includes/class-freemius.php:20930
188
  msgctxt "interjection expressing joy or exuberance"
189
  msgid "Yee-haw"
190
  msgstr ""
191
 
192
+ #: includes/class-freemius.php:6174
193
  msgid "%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."
194
  msgstr ""
195
 
196
+ #: includes/class-freemius.php:6178
197
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
198
  msgstr ""
199
 
200
+ #: includes/class-freemius.php:6187, templates/add-ons.php:186, templates/account/partials/addon.php:381
201
  msgid "More information about %s"
202
  msgstr ""
203
 
204
+ #: includes/class-freemius.php:6188
205
  msgid "Purchase License"
206
  msgstr ""
207
 
208
+ #: includes/class-freemius.php:7125, templates/connect.php:171
209
  msgid "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 %s."
210
  msgstr ""
211
 
212
+ #: includes/class-freemius.php:7129
213
  msgid "start the trial"
214
  msgstr ""
215
 
216
+ #: includes/class-freemius.php:7130, templates/connect.php:175
217
  msgid "complete the install"
218
  msgstr ""
219
 
220
+ #: includes/class-freemius.php:7249
221
  msgid "You are just one step away - %s"
222
  msgstr ""
223
 
224
+ #: includes/class-freemius.php:7252
225
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
226
  msgid "Complete \"%s\" Activation Now"
227
  msgstr ""
228
 
229
+ #: includes/class-freemius.php:7334
230
  msgid "We made a few tweaks to the %s, %s"
231
  msgstr ""
232
 
233
+ #: includes/class-freemius.php:7338
234
  msgid "Opt in to make \"%s\" better!"
235
  msgstr ""
236
 
237
+ #: includes/class-freemius.php:7773
238
  msgid "The upgrade of %s was successfully completed."
239
  msgstr ""
240
 
241
+ #: includes/class-freemius.php:10255, includes/class-fs-plugin-updater.php:1087, includes/class-fs-plugin-updater.php:1282, includes/class-fs-plugin-updater.php:1289, templates/auto-installation.php:32
242
  msgid "Add-On"
243
  msgstr ""
244
 
245
+ #: includes/class-freemius.php:10257, templates/account.php:394, templates/account.php:402, templates/debug.php:358, templates/debug.php:549
246
  msgid "Plugin"
247
  msgstr ""
248
 
249
+ #: includes/class-freemius.php:10258, templates/account.php:395, templates/account.php:403, templates/debug.php:358, templates/debug.php:549, templates/forms/deactivation/form.php:71
250
  msgid "Theme"
251
  msgstr ""
252
 
253
+ #: includes/class-freemius.php:13188
254
+ msgid "An unknown error has occurred while trying to toggle the license's white-label mode."
255
+ msgstr ""
256
+
257
+ #: includes/class-freemius.php:13202
258
+ msgid "Your %s license was flagged as white-labeled to hide sensitive information from the WP Admin (e.g. your email, license key, prices, billing address & invoices). If you ever wish to revert it back, you can easily do it through your %s. If this was a mistake you can also %s."
259
+ msgstr ""
260
+
261
+ #: includes/class-freemius.php:13207
262
+ msgid "User Dashboard"
263
+ msgstr ""
264
+
265
+ #: includes/class-freemius.php:13208
266
+ msgid "revert it now"
267
+ msgstr ""
268
+
269
+ #: includes/class-freemius.php:13266
270
  msgid "An unknown error has occurred while trying to set the user's beta mode."
271
  msgstr ""
272
 
273
+ #: includes/class-freemius.php:13339
274
  msgid "Invalid new user ID or email address."
275
  msgstr ""
276
 
277
+ #: includes/class-freemius.php:13369, includes/class-freemius.php:22259
278
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
279
  msgstr ""
280
 
281
+ #: includes/class-freemius.php:13370, includes/class-freemius.php:22260
282
  msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
283
  msgstr ""
284
 
285
+ #: includes/class-freemius.php:13377, includes/class-freemius.php:22267
286
  msgid "Change Ownership"
287
  msgstr ""
288
 
289
+ #: includes/class-freemius.php:13977
290
  msgid "Invalid site details collection."
291
  msgstr ""
292
 
293
+ #: includes/class-freemius.php:14097
294
  msgid "We couldn't find your email address in the system, are you sure it's the right address?"
295
  msgstr ""
296
 
297
+ #: includes/class-freemius.php:14099
298
  msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
299
  msgstr ""
300
 
301
+ #: includes/class-freemius.php:14373
302
  msgid "Account is pending activation."
303
  msgstr ""
304
 
305
+ #: includes/class-freemius.php:14485, templates/forms/premium-versions-upgrade-handler.php:47
306
  msgid "Buy a license now"
307
  msgstr ""
308
 
309
+ #: includes/class-freemius.php:14497, templates/forms/premium-versions-upgrade-handler.php:46
310
  msgid "Renew your license now"
311
  msgstr ""
312
 
313
+ #: includes/class-freemius.php:14501
314
  msgid "%s to access version %s security & feature updates, and support."
315
  msgstr ""
316
 
317
+ #: includes/class-freemius.php:16929
318
  msgid "%s activation was successfully completed."
319
  msgstr ""
320
 
321
+ #: includes/class-freemius.php:16943
322
  msgid "Your account was successfully activated with the %s plan."
323
  msgstr ""
324
 
325
+ #: includes/class-freemius.php:16954, includes/class-freemius.php:20754
326
  msgid "Your trial has been successfully started."
327
  msgstr ""
328
 
329
+ #: includes/class-freemius.php:17540, includes/class-freemius.php:17645, includes/class-freemius.php:17820
330
  msgid "Couldn't activate %s."
331
  msgstr ""
332
 
333
+ #: includes/class-freemius.php:17541, includes/class-freemius.php:17646, includes/class-freemius.php:17821
334
  msgid "Please contact us with the following message:"
335
  msgstr ""
336
 
337
+ #: includes/class-freemius.php:17642, templates/forms/data-debug-mode.php:162
338
  msgid "An unknown error has occurred."
339
  msgstr ""
340
 
341
+ #: includes/class-freemius.php:18178, includes/class-freemius.php:23340
342
  msgid "Upgrade"
343
  msgstr ""
344
 
345
+ #: includes/class-freemius.php:18184
346
  msgid "Start Trial"
347
  msgstr ""
348
 
349
+ #: includes/class-freemius.php:18186
350
  msgid "Pricing"
351
  msgstr ""
352
 
353
+ #: includes/class-freemius.php:18266, includes/class-freemius.php:18268
354
  msgid "Affiliation"
355
  msgstr ""
356
 
357
+ #: includes/class-freemius.php:18296, includes/class-freemius.php:18298, templates/account.php:242, templates/debug.php:324
358
  msgid "Account"
359
  msgstr ""
360
 
361
+ #: includes/class-freemius.php:18312, includes/class-freemius.php:18314, includes/customizer/class-fs-customizer-support-section.php:60
362
  msgid "Contact Us"
363
  msgstr ""
364
 
365
+ #: includes/class-freemius.php:18325, includes/class-freemius.php:18327, includes/class-freemius.php:23354, templates/account.php:121, templates/account/partials/addon.php:44
366
  msgid "Add-Ons"
367
  msgstr ""
368
 
369
+ #: includes/class-freemius.php:18361
370
  msgctxt "ASCII arrow left icon"
371
  msgid "&#x2190;"
372
  msgstr ""
373
 
374
+ #: includes/class-freemius.php:18361
375
  msgctxt "ASCII arrow right icon"
376
  msgid "&#x27a4;"
377
  msgstr ""
378
 
379
+ #: includes/class-freemius.php:18363, templates/pricing.php:109
380
  msgctxt "noun"
381
  msgid "Pricing"
382
  msgstr ""
383
 
384
+ #: includes/class-freemius.php:18576, includes/customizer/class-fs-customizer-support-section.php:67
385
  msgid "Support Forum"
386
  msgstr ""
387
 
388
+ #: includes/class-freemius.php:19550
389
  msgid "Your email has been successfully verified - you are AWESOME!"
390
  msgstr ""
391
 
392
+ #: includes/class-freemius.php:19551
393
  msgctxt "a positive response"
394
  msgid "Right on"
395
  msgstr ""
396
 
397
+ #: includes/class-freemius.php:20057
398
  msgid "seems like the key you entered doesn't match our records."
399
  msgstr ""
400
 
401
+ #: includes/class-freemius.php:20081
402
  msgid "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
403
  msgstr ""
404
 
405
+ #: includes/class-freemius.php:20316
406
  msgid "Your %s Add-on plan was successfully upgraded."
407
  msgstr ""
408
 
409
+ #: includes/class-freemius.php:20318
410
  msgid "%s Add-on was successfully purchased."
411
  msgstr ""
412
 
413
+ #: includes/class-freemius.php:20321
414
  msgid "Download the latest version"
415
  msgstr ""
416
 
417
+ #: includes/class-freemius.php:20407
418
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
419
  msgstr ""
420
 
421
+ #: includes/class-freemius.php:20413, includes/class-freemius.php:20423, includes/class-freemius.php:20889, includes/class-freemius.php:20978
422
  msgid "Error received from the server:"
423
  msgstr ""
424
 
425
+ #: includes/class-freemius.php:20423
426
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
427
  msgstr ""
428
 
429
+ #: includes/class-freemius.php:20651, includes/class-freemius.php:20894, includes/class-freemius.php:20949, includes/class-freemius.php:21056
430
  msgctxt "something somebody says when they are thinking about what you have just said."
431
  msgid "Hmm"
432
  msgstr ""
433
 
434
+ #: includes/class-freemius.php:20664
435
  msgid "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."
436
  msgstr ""
437
 
438
+ #: includes/class-freemius.php:20665, templates/account.php:123, templates/add-ons.php:250, templates/account/partials/addon.php:46
439
  msgctxt "trial period"
440
  msgid "Trial"
441
  msgstr ""
442
 
443
+ #: includes/class-freemius.php:20670
444
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
445
  msgstr ""
446
 
447
+ #: includes/class-freemius.php:20674, includes/class-freemius.php:20733
448
  msgid "Please contact us here"
449
  msgstr ""
450
 
451
+ #: includes/class-freemius.php:20685
452
  msgid "Your plan was successfully activated."
453
  msgstr ""
454
 
455
+ #: includes/class-freemius.php:20686
456
  msgid "Your plan was successfully upgraded."
457
  msgstr ""
458
 
459
+ #: includes/class-freemius.php:20703
460
  msgid "Your plan was successfully changed to %s."
461
  msgstr ""
462
 
463
+ #: includes/class-freemius.php:20719
464
  msgid "Your license has expired. You can still continue using the free %s forever."
465
  msgstr ""
466
 
467
+ #: includes/class-freemius.php:20721
468
  msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
469
  msgstr ""
470
 
471
+ #: includes/class-freemius.php:20729
472
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
473
  msgstr ""
474
 
475
+ #: includes/class-freemius.php:20742
476
  msgid "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."
477
  msgstr ""
478
 
479
+ #: includes/class-freemius.php:20768
480
  msgid "Your free trial has expired. You can still continue using all our free features."
481
  msgstr ""
482
 
483
+ #: includes/class-freemius.php:20770
484
  msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
485
  msgstr ""
486
 
487
+ #: includes/class-freemius.php:20885
488
  msgid "It looks like the license could not be activated."
489
  msgstr ""
490
 
491
+ #: includes/class-freemius.php:20927
492
  msgid "Your license was successfully activated."
493
  msgstr ""
494
 
495
+ #: includes/class-freemius.php:20953
496
  msgid "It looks like your site currently doesn't have an active license."
497
  msgstr ""
498
 
499
+ #: includes/class-freemius.php:20977
500
  msgid "It looks like the license deactivation failed."
501
  msgstr ""
502
 
503
+ #: includes/class-freemius.php:21006
504
  msgid "Your %s license was successfully deactivated."
505
  msgstr ""
506
 
507
+ #: includes/class-freemius.php:21007
508
  msgid "Your license was successfully deactivated, you are back to the %s plan."
509
  msgstr ""
510
 
511
+ #: includes/class-freemius.php:21010
512
  msgid "O.K"
513
  msgstr ""
514
 
515
+ #: includes/class-freemius.php:21063
516
  msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
517
  msgstr ""
518
 
519
+ #: includes/class-freemius.php:21072
520
  msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
521
  msgstr ""
522
 
523
+ #: includes/class-freemius.php:21114
524
  msgid "You are already running the %s in a trial mode."
525
  msgstr ""
526
 
527
+ #: includes/class-freemius.php:21125
528
  msgid "You already utilized a trial before."
529
  msgstr ""
530
 
531
+ #: includes/class-freemius.php:21139
532
  msgid "Plan %s do not exist, therefore, can't start a trial."
533
  msgstr ""
534
 
535
+ #: includes/class-freemius.php:21150
536
  msgid "Plan %s does not support a trial period."
537
  msgstr ""
538
 
539
+ #: includes/class-freemius.php:21161
540
  msgid "None of the %s's plans supports a trial period."
541
  msgstr ""
542
 
543
+ #: includes/class-freemius.php:21211
544
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
545
  msgstr ""
546
 
547
+ #: includes/class-freemius.php:21247
548
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
549
  msgstr ""
550
 
551
+ #: includes/class-freemius.php:21266
552
  msgid "Your %s free trial was successfully cancelled."
553
  msgstr ""
554
 
555
+ #: includes/class-freemius.php:21582
556
  msgid "Version %s was released."
557
  msgstr ""
558
 
559
+ #: includes/class-freemius.php:21582
560
  msgid "Please download %s."
561
  msgstr ""
562
 
563
+ #: includes/class-freemius.php:21589
564
  msgid "the latest %s version here"
565
  msgstr ""
566
 
567
+ #: includes/class-freemius.php:21594
568
  msgid "New"
569
  msgstr ""
570
 
571
+ #: includes/class-freemius.php:21599
572
  msgid "Seems like you got the latest release."
573
  msgstr ""
574
 
575
+ #: includes/class-freemius.php:21600
576
  msgid "You are all good!"
577
  msgstr ""
578
 
579
+ #: includes/class-freemius.php:21903
580
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
581
  msgstr ""
582
 
583
+ #: includes/class-freemius.php:22043
584
  msgid "Site successfully opted in."
585
  msgstr ""
586
 
587
+ #: includes/class-freemius.php:22044, includes/class-freemius.php:23050
588
  msgid "Awesome"
589
  msgstr ""
590
 
591
+ #: includes/class-freemius.php:22060, templates/forms/optout.php:41
592
  msgid "We appreciate your help in making the %s better by letting us track some usage data."
593
  msgstr ""
594
 
595
+ #: includes/class-freemius.php:22061
596
  msgid "Thank you!"
597
  msgstr ""
598
 
599
+ #: includes/class-freemius.php:22068
600
  msgid "We will no longer be sending any usage data of %s on %s to %s."
601
  msgstr ""
602
 
603
+ #: includes/class-freemius.php:22226
604
  msgid "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."
605
  msgstr ""
606
 
607
+ #: includes/class-freemius.php:22232
608
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
609
  msgstr ""
610
 
611
+ #: includes/class-freemius.php:22237
612
  msgid "%s is the new owner of the account."
613
  msgstr ""
614
 
615
+ #: includes/class-freemius.php:22239
616
  msgctxt "as congratulations"
617
  msgid "Congrats"
618
  msgstr ""
619
 
620
+ #: includes/class-freemius.php:22275
621
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
622
  msgstr ""
623
 
624
+ #: includes/class-freemius.php:22287
625
  msgid "Please provide your full name."
626
  msgstr ""
627
 
628
+ #: includes/class-freemius.php:22292
629
  msgid "Your name was successfully updated."
630
  msgstr ""
631
 
632
+ #: includes/class-freemius.php:22353
633
  msgid "You have successfully updated your %s."
634
  msgstr ""
635
 
636
+ #: includes/class-freemius.php:22412
637
+ msgid "Is this your client's site? %s if you wish to hide sensitive info like your email, license key, prices, billing address & invoices from the WP Admin."
638
+ msgstr ""
639
+
640
+ #: includes/class-freemius.php:22415
641
+ msgid "Click here"
642
+ msgstr ""
643
+
644
+ #: includes/class-freemius.php:22513
645
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
646
  msgstr ""
647
 
648
+ #: includes/class-freemius.php:22514
649
  msgctxt "advance notice of something that will need attention."
650
  msgid "Heads up"
651
  msgstr ""
652
 
653
+ #: includes/class-freemius.php:23090
654
  msgctxt "exclamation"
655
  msgid "Hey"
656
  msgstr ""
657
 
658
+ #: includes/class-freemius.php:23090
659
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
660
  msgstr ""
661
 
662
+ #: includes/class-freemius.php:23098
663
  msgid "No commitment for %s days - cancel anytime!"
664
  msgstr ""
665
 
666
+ #: includes/class-freemius.php:23099
667
  msgid "No credit card required"
668
  msgstr ""
669
 
670
+ #: includes/class-freemius.php:23106, templates/forms/trial-start.php:53
671
  msgctxt "call to action"
672
  msgid "Start free trial"
673
  msgstr ""
674
 
675
+ #: includes/class-freemius.php:23183
676
  msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
677
  msgstr ""
678
 
679
+ #: includes/class-freemius.php:23192
680
  msgid "Learn more"
681
  msgstr ""
682
 
683
+ #: includes/class-freemius.php:23378, templates/account.php:558, templates/account.php:708, templates/connect.php:179, templates/connect.php:461, templates/forms/license-activation.php:27, templates/account/partials/addon.php:321
684
  msgid "Activate License"
685
  msgstr ""
686
 
687
+ #: includes/class-freemius.php:23379, templates/account.php:652, templates/account.php:707, templates/account/partials/addon.php:322, templates/account/partials/site.php:271
688
  msgid "Change License"
689
  msgstr ""
690
 
691
+ #: includes/class-freemius.php:23500, templates/account/partials/site.php:169
692
  msgid "Opt Out"
693
  msgstr ""
694
 
695
+ #: includes/class-freemius.php:23502, includes/class-freemius.php:23508, templates/account/partials/site.php:49, templates/account/partials/site.php:169
696
  msgid "Opt In"
697
  msgstr ""
698
 
699
+ #: includes/class-freemius.php:23738
700
  msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
701
  msgstr ""
702
 
703
+ #: includes/class-freemius.php:23746
704
  msgid "Activate %s features"
705
  msgstr ""
706
 
707
+ #: includes/class-freemius.php:23759
708
  msgid "Please follow these steps to complete the upgrade"
709
  msgstr ""
710
 
711
+ #: includes/class-freemius.php:23763
712
  msgid "Download the latest %s version"
713
  msgstr ""
714
 
715
+ #: includes/class-freemius.php:23767
716
  msgid "Upload and activate the downloaded version"
717
  msgstr ""
718
 
719
+ #: includes/class-freemius.php:23769
720
  msgid "How to upload and activate?"
721
  msgstr ""
722
 
723
+ #: includes/class-freemius.php:23903
724
  msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
725
  msgstr ""
726
 
727
+ #: includes/class-freemius.php:24072
728
  msgid "Auto installation only works for opted-in users."
729
  msgstr ""
730
 
731
+ #: includes/class-freemius.php:24082, includes/class-freemius.php:24115, includes/class-fs-plugin-updater.php:1261, includes/class-fs-plugin-updater.php:1275
732
  msgid "Invalid module ID."
733
  msgstr ""
734
 
735
+ #: includes/class-freemius.php:24091, includes/class-fs-plugin-updater.php:1297
736
  msgid "Premium version already active."
737
  msgstr ""
738
 
739
+ #: includes/class-freemius.php:24098
740
  msgid "You do not have a valid license to access the premium version."
741
  msgstr ""
742
 
743
+ #: includes/class-freemius.php:24105
744
  msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
745
  msgstr ""
746
 
747
+ #: includes/class-freemius.php:24123, includes/class-fs-plugin-updater.php:1296
748
  msgid "Premium add-on version already installed."
749
  msgstr ""
750
 
751
+ #: includes/class-freemius.php:24473
752
  msgid "View paid features"
753
  msgstr ""
754
 
755
+ #: includes/class-freemius.php:24795
756
  msgid "Thank you so much for using %s and its add-ons!"
757
  msgstr ""
758
 
759
+ #: includes/class-freemius.php:24796
760
  msgid "Thank you so much for using %s!"
761
  msgstr ""
762
 
763
+ #: includes/class-freemius.php:24802
764
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
765
  msgstr ""
766
 
767
+ #: includes/class-freemius.php:24806
768
  msgid "Thank you so much for using our products!"
769
  msgstr ""
770
 
771
+ #: includes/class-freemius.php:24807
772
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
773
  msgstr ""
774
 
775
+ #: includes/class-freemius.php:24826
776
  msgid "%s and its add-ons"
777
  msgstr ""
778
 
779
+ #: includes/class-freemius.php:24835
780
  msgid "Products"
781
  msgstr ""
782
 
783
+ #: includes/class-freemius.php:24842, templates/connect.php:275
784
  msgid "Yes"
785
  msgstr ""
786
 
787
+ #: includes/class-freemius.php:24843, templates/connect.php:276
788
  msgid "send me security & feature updates, educational content and offers."
789
  msgstr ""
790
 
791
+ #: includes/class-freemius.php:24844, templates/connect.php:281
792
  msgid "No"
793
  msgstr ""
794
 
795
+ #: includes/class-freemius.php:24846, templates/connect.php:283
796
  msgid "do %sNOT%s send me security & feature updates, educational content and offers."
797
  msgstr ""
798
 
799
+ #: includes/class-freemius.php:24856
800
  msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
801
  msgstr ""
802
 
803
+ #: includes/class-freemius.php:24858, templates/connect.php:290
804
  msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
805
  msgstr ""
806
 
807
+ #: includes/class-freemius.php:25140
808
  msgid "License key is empty."
809
  msgstr ""
810
 
832
  msgid "Important Upgrade Notice:"
833
  msgstr ""
834
 
835
+ #: includes/class-fs-plugin-updater.php:1326
836
  msgid "Installing plugin: %s"
837
  msgstr ""
838
 
839
+ #: includes/class-fs-plugin-updater.php:1367
840
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
841
  msgstr ""
842
 
843
+ #: includes/class-fs-plugin-updater.php:1549
844
  msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
845
  msgstr ""
846
 
847
+ #: includes/fs-plugin-info-dialog.php:541
848
  msgid "Purchase More"
849
  msgstr ""
850
 
851
+ #: includes/fs-plugin-info-dialog.php:542, templates/account/partials/addon.php:385
852
  msgctxt "verb"
853
  msgid "Purchase"
854
  msgstr ""
855
 
856
+ #: includes/fs-plugin-info-dialog.php:546
857
  msgid "Start my free %s"
858
  msgstr ""
859
 
860
+ #: includes/fs-plugin-info-dialog.php:744
861
  msgid "Install Free Version Update Now"
862
  msgstr ""
863
 
864
+ #: includes/fs-plugin-info-dialog.php:745, templates/account.php:641
865
  msgid "Install Update Now"
866
  msgstr ""
867
 
868
+ #: includes/fs-plugin-info-dialog.php:754
869
  msgid "Install Free Version Now"
870
  msgstr ""
871
 
872
+ #: includes/fs-plugin-info-dialog.php:755, templates/add-ons.php:323, templates/auto-installation.php:111, templates/account/partials/addon.php:365, templates/account/partials/addon.php:418
873
  msgid "Install Now"
874
  msgstr ""
875
 
876
+ #: includes/fs-plugin-info-dialog.php:771
877
  msgctxt "as download latest version"
878
  msgid "Download Latest Free Version"
879
  msgstr ""
880
 
881
+ #: includes/fs-plugin-info-dialog.php:772, templates/account.php:101, templates/add-ons.php:37, templates/account/partials/addon.php:25
882
  msgctxt "as download latest version"
883
  msgid "Download Latest"
884
  msgstr ""
885
 
886
+ #: includes/fs-plugin-info-dialog.php:787, templates/add-ons.php:329, templates/account/partials/addon.php:356, templates/account/partials/addon.php:412
887
  msgid "Activate this add-on"
888
  msgstr ""
889
 
890
+ #: includes/fs-plugin-info-dialog.php:789, templates/connect.php:458
891
  msgid "Activate Free Version"
892
  msgstr ""
893
 
894
+ #: includes/fs-plugin-info-dialog.php:790, templates/account.php:125, templates/add-ons.php:330, templates/account/partials/addon.php:48
895
  msgid "Activate"
896
  msgstr ""
897
 
898
+ #: includes/fs-plugin-info-dialog.php:1002
899
  msgctxt "Plugin installer section title"
900
  msgid "Description"
901
  msgstr ""
902
 
903
+ #: includes/fs-plugin-info-dialog.php:1003
904
  msgctxt "Plugin installer section title"
905
  msgid "Installation"
906
  msgstr ""
907
 
908
+ #: includes/fs-plugin-info-dialog.php:1004
909
  msgctxt "Plugin installer section title"
910
  msgid "FAQ"
911
  msgstr ""
912
 
913
+ #: includes/fs-plugin-info-dialog.php:1005, templates/plugin-info/description.php:55
914
  msgid "Screenshots"
915
  msgstr ""
916
 
917
+ #: includes/fs-plugin-info-dialog.php:1006
918
  msgctxt "Plugin installer section title"
919
  msgid "Changelog"
920
  msgstr ""
921
 
922
+ #: includes/fs-plugin-info-dialog.php:1007
923
  msgctxt "Plugin installer section title"
924
  msgid "Reviews"
925
  msgstr ""
926
 
927
+ #: includes/fs-plugin-info-dialog.php:1008
928
  msgctxt "Plugin installer section title"
929
  msgid "Other Notes"
930
  msgstr ""
931
 
932
+ #: includes/fs-plugin-info-dialog.php:1023
933
  msgctxt "Plugin installer section title"
934
  msgid "Features & Pricing"
935
  msgstr ""
936
 
937
+ #: includes/fs-plugin-info-dialog.php:1033
938
  msgid "Plugin Install"
939
  msgstr ""
940
 
941
+ #: includes/fs-plugin-info-dialog.php:1105
942
  msgctxt "e.g. Professional Plan"
943
  msgid "%s Plan"
944
  msgstr ""
945
 
946
+ #: includes/fs-plugin-info-dialog.php:1131
947
  msgctxt "e.g. the best product"
948
  msgid "Best"
949
  msgstr ""
950
 
951
+ #: includes/fs-plugin-info-dialog.php:1137, includes/fs-plugin-info-dialog.php:1157
952
  msgctxt "as every month"
953
  msgid "Monthly"
954
  msgstr ""
955
 
956
+ #: includes/fs-plugin-info-dialog.php:1140
957
  msgctxt "as once a year"
958
  msgid "Annual"
959
  msgstr ""
960
 
961
+ #: includes/fs-plugin-info-dialog.php:1143
962
  msgid "Lifetime"
963
  msgstr ""
964
 
965
+ #: includes/fs-plugin-info-dialog.php:1157, includes/fs-plugin-info-dialog.php:1159, includes/fs-plugin-info-dialog.php:1161
966
  msgctxt "e.g. billed monthly"
967
  msgid "Billed %s"
968
  msgstr ""
969
 
970
+ #: includes/fs-plugin-info-dialog.php:1159
971
  msgctxt "as once a year"
972
  msgid "Annually"
973
  msgstr ""
974
 
975
+ #: includes/fs-plugin-info-dialog.php:1161
976
  msgctxt "as once a year"
977
  msgid "Once"
978
  msgstr ""
979
 
980
+ #: includes/fs-plugin-info-dialog.php:1167
981
  msgid "Single Site License"
982
  msgstr ""
983
 
984
+ #: includes/fs-plugin-info-dialog.php:1169
985
  msgid "Unlimited Licenses"
986
  msgstr ""
987
 
988
+ #: includes/fs-plugin-info-dialog.php:1171
989
  msgid "Up to %s Sites"
990
  msgstr ""
991
 
992
+ #: includes/fs-plugin-info-dialog.php:1181, templates/plugin-info/features.php:82
993
  msgctxt "as monthly period"
994
  msgid "mo"
995
  msgstr ""
996
 
997
+ #: includes/fs-plugin-info-dialog.php:1188, templates/plugin-info/features.php:80
998
  msgctxt "as annual period"
999
  msgid "year"
1000
  msgstr ""
1001
 
1002
+ #: includes/fs-plugin-info-dialog.php:1242
1003
  msgctxt "noun"
1004
  msgid "Price"
1005
  msgstr ""
1006
 
1007
+ #: includes/fs-plugin-info-dialog.php:1290
1008
  msgid "Save %s"
1009
  msgstr ""
1010
 
1011
+ #: includes/fs-plugin-info-dialog.php:1300
1012
  msgid "No commitment for %s - cancel anytime"
1013
  msgstr ""
1014
 
1015
+ #: includes/fs-plugin-info-dialog.php:1303
1016
  msgid "After your free %s, pay as little as %s"
1017
  msgstr ""
1018
 
1019
+ #: includes/fs-plugin-info-dialog.php:1314
1020
  msgid "Details"
1021
  msgstr ""
1022
 
1023
+ #: includes/fs-plugin-info-dialog.php:1318, templates/account.php:112, templates/debug.php:201, templates/debug.php:238, templates/debug.php:455, templates/account/partials/addon.php:36
1024
  msgctxt "product version"
1025
  msgid "Version"
1026
  msgstr ""
1027
 
1028
+ #: includes/fs-plugin-info-dialog.php:1325
1029
  msgctxt "as the plugin author"
1030
  msgid "Author"
1031
  msgstr ""
1032
 
1033
+ #: includes/fs-plugin-info-dialog.php:1332
1034
  msgid "Last Updated"
1035
  msgstr ""
1036
 
1037
+ #: includes/fs-plugin-info-dialog.php:1337, templates/account.php:527
1038
  msgctxt "x-ago"
1039
  msgid "%s ago"
1040
  msgstr ""
1041
 
1042
+ #: includes/fs-plugin-info-dialog.php:1346
1043
  msgid "Requires WordPress Version"
1044
  msgstr ""
1045
 
1046
+ #: includes/fs-plugin-info-dialog.php:1347
1047
  msgid "%s or higher"
1048
  msgstr ""
1049
 
1050
+ #: includes/fs-plugin-info-dialog.php:1354
1051
  msgid "Compatible up to"
1052
  msgstr ""
1053
 
1054
+ #: includes/fs-plugin-info-dialog.php:1362
1055
  msgid "Downloaded"
1056
  msgstr ""
1057
 
1058
+ #: includes/fs-plugin-info-dialog.php:1366
1059
  msgid "%s time"
1060
  msgstr ""
1061
 
1062
+ #: includes/fs-plugin-info-dialog.php:1368
1063
  msgid "%s times"
1064
  msgstr ""
1065
 
1066
+ #: includes/fs-plugin-info-dialog.php:1379
1067
  msgid "WordPress.org Plugin Page"
1068
  msgstr ""
1069
 
1070
+ #: includes/fs-plugin-info-dialog.php:1388
1071
  msgid "Plugin Homepage"
1072
  msgstr ""
1073
 
1074
+ #: includes/fs-plugin-info-dialog.php:1397, includes/fs-plugin-info-dialog.php:1481
1075
  msgid "Donate to this plugin"
1076
  msgstr ""
1077
 
1078
+ #: includes/fs-plugin-info-dialog.php:1404
1079
  msgid "Average Rating"
1080
  msgstr ""
1081
 
1082
+ #: includes/fs-plugin-info-dialog.php:1411
1083
  msgid "based on %s"
1084
  msgstr ""
1085
 
1086
+ #: includes/fs-plugin-info-dialog.php:1415
1087
  msgid "%s rating"
1088
  msgstr ""
1089
 
1090
+ #: includes/fs-plugin-info-dialog.php:1417
1091
  msgid "%s ratings"
1092
  msgstr ""
1093
 
1094
+ #: includes/fs-plugin-info-dialog.php:1432
1095
  msgid "%s star"
1096
  msgstr ""
1097
 
1098
+ #: includes/fs-plugin-info-dialog.php:1434
1099
  msgid "%s stars"
1100
  msgstr ""
1101
 
1102
+ #: includes/fs-plugin-info-dialog.php:1446
1103
  msgid "Click to see reviews that provided a rating of %s"
1104
  msgstr ""
1105
 
1106
+ #: includes/fs-plugin-info-dialog.php:1459
1107
  msgid "Contributors"
1108
  msgstr ""
1109
 
1110
+ #: includes/fs-plugin-info-dialog.php:1489, includes/fs-plugin-info-dialog.php:1491
1111
  msgid "Warning"
1112
  msgstr ""
1113
 
1114
+ #: includes/fs-plugin-info-dialog.php:1489
1115
  msgid "This plugin has not been tested with your current version of WordPress."
1116
  msgstr ""
1117
 
1118
+ #: includes/fs-plugin-info-dialog.php:1491
1119
  msgid "This plugin has not been marked as compatible with your version of WordPress."
1120
  msgstr ""
1121
 
1122
+ #: includes/fs-plugin-info-dialog.php:1510
1123
  msgid "Paid add-on must be deployed to Freemius."
1124
  msgstr ""
1125
 
1126
+ #: includes/fs-plugin-info-dialog.php:1511
1127
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1128
  msgstr ""
1129
 
1130
+ #: includes/fs-plugin-info-dialog.php:1532
1131
  msgid "Newer Version (%s) Installed"
1132
  msgstr ""
1133
 
1134
+ #: includes/fs-plugin-info-dialog.php:1533
1135
  msgid "Newer Free Version (%s) Installed"
1136
  msgstr ""
1137
 
1138
+ #: includes/fs-plugin-info-dialog.php:1540
1139
  msgid "Latest Version Installed"
1140
  msgstr ""
1141
 
1142
+ #: includes/fs-plugin-info-dialog.php:1541
1143
  msgid "Latest Free Version Installed"
1144
  msgstr ""
1145
 
1146
+ #: templates/account.php:102, templates/forms/subscription-cancellation.php:96, templates/account/partials/addon.php:26, templates/account/partials/site.php:311
1147
  msgid "Downgrading your plan"
1148
  msgstr ""
1149
 
1150
+ #: templates/account.php:103, templates/forms/subscription-cancellation.php:97, templates/account/partials/addon.php:27, templates/account/partials/site.php:312
1151
  msgid "Cancelling the subscription"
1152
  msgstr ""
1153
 
1154
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
1155
+ #: templates/account.php:105, templates/forms/subscription-cancellation.php:99, templates/account/partials/site.php:314
1156
  msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1157
  msgstr ""
1158
 
1159
+ #: templates/account.php:106, templates/forms/subscription-cancellation.php:100, templates/account/partials/addon.php:30, templates/account/partials/site.php:315
1160
  msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1161
  msgstr ""
1162
 
1163
+ #: templates/account.php:107, templates/forms/subscription-cancellation.php:106, templates/account/partials/addon.php:31
1164
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1165
  msgstr ""
1166
 
1167
+ #: templates/account.php:108, templates/forms/subscription-cancellation.php:101, templates/account/partials/addon.php:32, templates/account/partials/site.php:316
1168
  msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1169
  msgstr ""
1170
 
1171
+ #: templates/account.php:109, templates/forms/subscription-cancellation.php:102, templates/account/partials/addon.php:33, templates/account/partials/site.php:317
1172
  msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1173
  msgstr ""
1174
 
1175
  #. translators: %s: Plan title (e.g. "Professional")
1176
+ #: templates/account.php:111, templates/account/partials/activate-license-button.php:31, templates/account/partials/addon.php:35
1177
  msgid "Activate %s Plan"
1178
  msgstr ""
1179
 
1180
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1181
+ #: templates/account.php:114, templates/account/partials/addon.php:38, templates/account/partials/site.php:291
1182
  msgid "Auto renews in %s"
1183
  msgstr ""
1184
 
1185
  #. translators: %s: Time period (e.g. Expires in "2 months")
1186
+ #: templates/account.php:116, templates/account/partials/addon.php:40, templates/account/partials/site.php:293
1187
  msgid "Expires in %s"
1188
  msgstr ""
1189
 
1190
+ #: templates/account.php:117
1191
  msgctxt "as synchronize license"
1192
  msgid "Sync License"
1193
  msgstr ""
1194
 
1195
+ #: templates/account.php:118, templates/account/partials/addon.php:41
1196
  msgid "Cancel Trial"
1197
  msgstr ""
1198
 
1199
+ #: templates/account.php:119, templates/account/partials/addon.php:42
1200
  msgid "Change Plan"
1201
  msgstr ""
1202
 
1203
+ #: templates/account.php:120, templates/account/partials/addon.php:43
1204
  msgctxt "verb"
1205
  msgid "Upgrade"
1206
  msgstr ""
1207
 
1208
+ #: templates/account.php:122, templates/account/partials/addon.php:45, templates/account/partials/site.php:318
1209
  msgctxt "verb"
1210
  msgid "Downgrade"
1211
  msgstr ""
1212
 
1213
+ #: templates/account.php:124, templates/add-ons.php:246, templates/plugin-info/features.php:72, templates/account/partials/addon.php:47, templates/account/partials/site.php:33
1214
  msgid "Free"
1215
  msgstr ""
1216
 
1217
+ #: templates/account.php:126, templates/debug.php:371, includes/customizer/class-fs-customizer-upsell-control.php:110, templates/account/partials/addon.php:49
1218
  msgctxt "as product pricing plan"
1219
  msgid "Plan"
1220
  msgstr ""
1221
 
1222
+ #: templates/account.php:127
1223
  msgid "Bundle Plan"
1224
  msgstr ""
1225
 
1226
+ #: templates/account.php:250
1227
  msgid "Free Trial"
1228
  msgstr ""
1229
 
1230
+ #: templates/account.php:261
1231
  msgid "Account Details"
1232
  msgstr ""
1233
 
1234
+ #: templates/account.php:268, templates/forms/data-debug-mode.php:33
1235
  msgid "Start Debug"
1236
  msgstr ""
1237
 
1238
+ #: templates/account.php:270
1239
  msgid "Stop Debug"
1240
  msgstr ""
1241
 
1242
+ #: templates/account.php:277
1243
  msgid "Billing & Invoices"
1244
  msgstr ""
1245
 
1246
+ #: templates/account.php:288
1247
  msgid "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?"
1248
  msgstr ""
1249
 
1250
+ #: templates/account.php:290
1251
  msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1252
  msgstr ""
1253
 
1254
+ #: templates/account.php:293
1255
  msgid "Delete Account"
1256
  msgstr ""
1257
 
1258
+ #: templates/account.php:305, templates/account/partials/addon.php:231, templates/account/partials/deactivate-license-button.php:35
1259
  msgid "Deactivate License"
1260
  msgstr ""
1261
 
1262
+ #: templates/account.php:328, templates/forms/subscription-cancellation.php:125
1263
  msgid "Are you sure you want to proceed?"
1264
  msgstr ""
1265
 
1266
+ #: templates/account.php:328, templates/account/partials/addon.php:255
1267
  msgid "Cancel Subscription"
1268
  msgstr ""
1269
 
1270
+ #: templates/account.php:357, templates/account/partials/addon.php:340
1271
  msgctxt "as synchronize"
1272
  msgid "Sync"
1273
  msgstr ""
1274
 
1275
+ #: templates/account.php:372, templates/debug.php:505
1276
  msgid "Name"
1277
  msgstr ""
1278
 
1279
+ #: templates/account.php:378, templates/debug.php:506
1280
  msgid "Email"
1281
  msgstr ""
1282
 
1283
+ #: templates/account.php:385, templates/debug.php:369, templates/debug.php:555
1284
  msgid "User ID"
1285
  msgstr ""
1286
 
1287
+ #: templates/account.php:403, templates/account.php:721, templates/account.php:754, templates/debug.php:236, templates/debug.php:363, templates/debug.php:452, templates/debug.php:504, templates/debug.php:553, templates/debug.php:632, templates/account/payments.php:35, templates/debug/logger.php:21
1288
  msgid "ID"
1289
  msgstr ""
1290
 
1291
+ #: templates/account.php:410
1292
  msgid "Site ID"
1293
  msgstr ""
1294
 
1295
+ #: templates/account.php:413
1296
  msgid "No ID"
1297
  msgstr ""
1298
 
1299
+ #: templates/account.php:418, templates/debug.php:243, templates/debug.php:372, templates/debug.php:456, templates/debug.php:508, templates/account/partials/site.php:227
1300
  msgid "Public Key"
1301
  msgstr ""
1302
 
1303
+ #: templates/account.php:424, templates/debug.php:373, templates/debug.php:457, templates/debug.php:509, templates/account/partials/site.php:239
1304
  msgid "Secret Key"
1305
  msgstr ""
1306
 
1307
+ #: templates/account.php:427
1308
  msgctxt "as secret encryption key missing"
1309
  msgid "No Secret"
1310
  msgstr ""
1311
 
1312
+ #: templates/account.php:454, templates/account/partials/site.php:120, templates/account/partials/site.php:122
1313
  msgid "Trial"
1314
  msgstr ""
1315
 
1316
+ #: templates/account.php:481, templates/debug.php:561, templates/account/partials/site.php:260
1317
  msgid "License Key"
1318
  msgstr ""
1319
 
1320
+ #: templates/account.php:512
1321
  msgid "Join the Beta program"
1322
  msgstr ""
1323
 
1324
+ #: templates/account.php:518
1325
  msgid "not verified"
1326
  msgstr ""
1327
 
1328
+ #: templates/account.php:527, templates/account/partials/addon.php:190
1329
  msgid "Expired"
1330
  msgstr ""
1331
 
1332
+ #: templates/account.php:587
1333
  msgid "Premium version"
1334
  msgstr ""
1335
 
1336
+ #: templates/account.php:589
1337
  msgid "Free version"
1338
  msgstr ""
1339
 
1340
+ #: templates/account.php:601
1341
  msgid "Verify Email"
1342
  msgstr ""
1343
 
1344
+ #: templates/account.php:615
1345
  msgid "Download %s Version"
1346
  msgstr ""
1347
 
1348
+ #: templates/account.php:631
1349
  msgid "Download Paid Version"
1350
  msgstr ""
1351
 
1352
+ #: templates/account.php:649, templates/account.php:892, templates/account/partials/site.php:248, templates/account/partials/site.php:270
1353
  msgctxt "verb"
1354
  msgid "Show"
1355
  msgstr ""
1356
 
1357
+ #: templates/account.php:664
1358
  msgid "What is your %s?"
1359
  msgstr ""
1360
 
1361
+ #: templates/account.php:672, templates/account/billing.php:21
1362
  msgctxt "verb"
1363
  msgid "Edit"
1364
  msgstr ""
1365
 
1366
+ #: templates/account.php:676, templates/forms/user-change.php:27
1367
  msgid "Change User"
1368
  msgstr ""
1369
 
1370
+ #: templates/account.php:700
1371
  msgid "Sites"
1372
  msgstr ""
1373
 
1374
+ #: templates/account.php:713
1375
  msgid "Search by address"
1376
  msgstr ""
1377
 
1378
+ #: templates/account.php:722, templates/debug.php:366
1379
  msgid "Address"
1380
  msgstr ""
1381
 
1382
+ #: templates/account.php:723
1383
  msgid "License"
1384
  msgstr ""
1385
 
1386
+ #: templates/account.php:724
1387
  msgid "Plan"
1388
  msgstr ""
1389
 
1390
+ #: templates/account.php:757
1391
  msgctxt "as software license"
1392
  msgid "License"
1393
  msgstr ""
1394
 
1395
+ #: templates/account.php:886
1396
  msgctxt "verb"
1397
  msgid "Hide"
1398
  msgstr ""
1399
 
1400
+ #: templates/account.php:908, templates/forms/data-debug-mode.php:31
1401
  msgid "Processing"
1402
  msgstr ""
1403
 
1404
+ #: templates/account.php:911
1405
  msgid "Get updates for bleeding edge Beta versions of %s."
1406
  msgstr ""
1407
 
1408
+ #: templates/account.php:969
1409
  msgid "Cancelling %s"
1410
  msgstr ""
1411
 
1412
+ #: templates/account.php:969, templates/account.php:986, templates/forms/subscription-cancellation.php:27, templates/forms/deactivation/form.php:133
1413
  msgid "trial"
1414
  msgstr ""
1415
 
1416
+ #: templates/account.php:984, templates/forms/deactivation/form.php:150
1417
  msgid "Cancelling %s..."
1418
  msgstr ""
1419
 
1420
+ #: templates/account.php:987, templates/forms/subscription-cancellation.php:28, templates/forms/deactivation/form.php:134
1421
  msgid "subscription"
1422
  msgstr ""
1423
 
1424
+ #: templates/account.php:1001
1425
  msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1426
  msgstr ""
1427
 
1428
+ #: templates/account.php:1075
1429
+ msgid "Disabling white-label mode"
1430
+ msgstr ""
1431
+
1432
+ #: templates/account.php:1076
1433
+ msgid "Enabling white-label mode"
1434
+ msgstr ""
1435
+
1436
  #: templates/add-ons.php:38
1437
  msgid "View details"
1438
  msgstr ""
1455
  msgid "Installed"
1456
  msgstr ""
1457
 
1458
+ #: templates/admin-notice.php:13, templates/forms/license-activation.php:222, templates/forms/resend-key.php:77
1459
  msgctxt "as close a window"
1460
  msgid "Dismiss"
1461
  msgstr ""
1510
  msgid "Agree & Activate License"
1511
  msgstr ""
1512
 
1513
+ #: templates/connect.php:184
1514
+ msgid "Welcome to %s! To get started, please enter your license key:"
1515
  msgstr ""
1516
 
1517
+ #: templates/connect.php:191
1518
  msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s."
1519
  msgstr ""
1520
 
1521
+ #: templates/connect.php:192
1522
  msgid "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
1523
  msgstr ""
1524
 
1525
+ #: templates/connect.php:198
1526
  msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1527
  msgstr ""
1528
 
1529
+ #: templates/connect.php:199
1530
  msgid "Never miss an important update - opt in to our security & feature updates notifications, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1531
  msgstr ""
1532
 
1533
+ #: templates/connect.php:233
1534
  msgid "We're excited to introduce the Freemius network-level integration."
1535
  msgstr ""
1536
 
1537
+ #: templates/connect.php:236
1538
  msgid "During the update process we detected %d site(s) that are still pending license activation."
1539
  msgstr ""
1540
 
1541
+ #: templates/connect.php:238
1542
  msgid "If you'd like to use the %s on those sites, please enter your license key below and click the activation button."
1543
  msgstr ""
1544
 
1545
+ #: templates/connect.php:240
1546
  msgid "%s's paid features"
1547
  msgstr ""
1548
 
1549
+ #: templates/connect.php:245
1550
  msgid "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page."
1551
  msgstr ""
1552
 
1553
+ #: templates/connect.php:247
1554
  msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1555
  msgstr ""
1556
 
1557
+ #: templates/connect.php:256, templates/forms/data-debug-mode.php:35, templates/forms/license-activation.php:49
1558
  msgid "License key"
1559
  msgstr ""
1560
 
1561
+ #: templates/connect.php:259, templates/forms/license-activation.php:22
1562
  msgid "Can't find your license key?"
1563
  msgstr ""
1564
 
1565
+ #: templates/connect.php:318, templates/connect.php:700, templates/forms/deactivation/retry-skip.php:20
1566
  msgctxt "verb"
1567
  msgid "Skip"
1568
  msgstr ""
1569
 
1570
+ #: templates/connect.php:321
1571
  msgid "Delegate to Site Admins"
1572
  msgstr ""
1573
 
1574
+ #: templates/connect.php:321
1575
  msgid "If you click it, this decision will be delegated to the sites administrators."
1576
  msgstr ""
1577
 
1578
+ #: templates/connect.php:346
1579
+ msgid "License issues?"
1580
+ msgstr ""
1581
+
1582
+ #: templates/connect.php:362
1583
  msgid "Your Profile Overview"
1584
  msgstr ""
1585
 
1586
+ #: templates/connect.php:363
1587
  msgid "Name and email address"
1588
  msgstr ""
1589
 
1590
+ #: templates/connect.php:370
1591
+ msgid "So you can manage and control your license remotely from the User Dashboard."
1592
+ msgstr ""
1593
+
1594
+ #: templates/connect.php:371
1595
  msgid "Your Site Overview"
1596
  msgstr ""
1597
 
1598
+ #: templates/connect.php:372
1599
  msgid "Site URL, WP version, PHP info"
1600
  msgstr ""
1601
 
1603
  msgid "Admin Notices"
1604
  msgstr ""
1605
 
1606
+ #: templates/connect.php:380, templates/connect.php:398
1607
  msgid "Updates, announcements, marketing, no spam"
1608
  msgstr ""
1609
 
1610
+ #: templates/connect.php:387
1611
+ msgid "So you can reuse the license when the %s is no longer active."
1612
  msgstr ""
1613
 
1614
+ #: templates/connect.php:388
1615
+ msgid "Current %s Status"
1616
  msgstr ""
1617
 
1618
+ #: templates/connect.php:389
1619
+ msgid "Active, deactivated, or uninstalled"
1620
+ msgstr ""
1621
+
1622
+ #: templates/connect.php:397
1623
  msgid "Newsletter"
1624
  msgstr ""
1625
 
1626
+ #: templates/connect.php:405
1627
  msgid "Plugins & Themes"
1628
  msgstr ""
1629
 
1630
+ #: templates/connect.php:405
1631
+ msgid "optional"
1632
+ msgstr ""
1633
+
1634
+ #: templates/connect.php:406
1635
+ msgid "To help us troubleshoot any potential issues that may arise from other plugin or theme conflicts."
1636
+ msgstr ""
1637
+
1638
+ #: templates/connect.php:407
1639
  msgid "Title, slug, version, and is active"
1640
  msgstr ""
1641
 
1642
+ #: templates/connect.php:424
1643
+ msgid "The %1$s will periodically send %2$s to %3$s for security & feature updates delivery, and license management."
1644
+ msgstr ""
1645
+
1646
+ #: templates/connect.php:426
1647
+ msgid "diagnostic data"
1648
+ msgstr ""
1649
+
1650
+ #: templates/connect.php:427
1651
+ msgid "Freemius is our licensing and software updates engine"
1652
  msgstr ""
1653
 
1654
+ #: templates/connect.php:430
1655
  msgid "What permissions are being granted?"
1656
  msgstr ""
1657
 
1658
+ #: templates/connect.php:457
1659
  msgid "Don't have a license key?"
1660
  msgstr ""
1661
 
1662
+ #: templates/connect.php:460
1663
  msgid "Have a license key?"
1664
  msgstr ""
1665
 
1666
+ #: templates/connect.php:468
1667
  msgid "Privacy Policy"
1668
  msgstr ""
1669
 
1670
+ #: templates/connect.php:470
1671
  msgid "License Agreement"
1672
  msgstr ""
1673
 
1674
+ #: templates/connect.php:470
1675
  msgid "Terms of Service"
1676
  msgstr ""
1677
 
1678
+ #: templates/connect.php:866
1679
  msgctxt "as in the process of sending an email"
1680
  msgid "Sending email"
1681
  msgstr ""
1682
 
1683
+ #: templates/connect.php:867
1684
  msgctxt "as activating plugin"
1685
  msgid "Activating"
1686
  msgstr ""
2113
  msgid "Apply to become an affiliate"
2114
  msgstr ""
2115
 
2116
+ #: templates/forms/affiliation.php:107
2117
  msgid "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
2118
  msgstr ""
2119
 
2120
+ #: templates/forms/affiliation.php:122
2121
  msgid "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information."
2122
  msgstr ""
2123
 
2124
+ #: templates/forms/affiliation.php:125
2125
  msgid "Your affiliation account was temporarily suspended."
2126
  msgstr ""
2127
 
2128
+ #: templates/forms/affiliation.php:128
2129
  msgid "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days."
2130
  msgstr ""
2131
 
2132
+ #: templates/forms/affiliation.php:131
2133
  msgid "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
2134
  msgstr ""
2135
 
2136
+ #: templates/forms/affiliation.php:144
2137
  msgid "Like the %s? Become our ambassador and earn cash ;-)"
2138
  msgstr ""
2139
 
2140
+ #: templates/forms/affiliation.php:145
2141
  msgid "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
2142
  msgstr ""
2143
 
2144
+ #: templates/forms/affiliation.php:148
2145
  msgid "Program Summary"
2146
  msgstr ""
2147
 
2148
+ #: templates/forms/affiliation.php:150
2149
  msgid "%s commission when a customer purchases a new license."
2150
  msgstr ""
2151
 
2152
+ #: templates/forms/affiliation.php:152
2153
  msgid "Get commission for automated subscription renewals."
2154
  msgstr ""
2155
 
2156
+ #: templates/forms/affiliation.php:155
2157
  msgid "%s tracking cookie after the first visit to maximize earnings potential."
2158
  msgstr ""
2159
 
2160
+ #: templates/forms/affiliation.php:158
2161
  msgid "Unlimited commissions."
2162
  msgstr ""
2163
 
2164
+ #: templates/forms/affiliation.php:160
2165
  msgid "%s minimum payout amount."
2166
  msgstr ""
2167
 
2168
+ #: templates/forms/affiliation.php:161
2169
  msgid "Payouts are in USD and processed monthly via PayPal."
2170
  msgstr ""
2171
 
2172
+ #: templates/forms/affiliation.php:162
2173
  msgid "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
2174
  msgstr ""
2175
 
2176
+ #: templates/forms/affiliation.php:165
2177
  msgid "Affiliate"
2178
  msgstr ""
2179
 
2180
+ #: templates/forms/affiliation.php:168, templates/forms/resend-key.php:23
2181
  msgid "Email address"
2182
  msgstr ""
2183
 
2184
+ #: templates/forms/affiliation.php:172
2185
  msgid "Full name"
2186
  msgstr ""
2187
 
2188
+ #: templates/forms/affiliation.php:176
2189
  msgid "PayPal account email address"
2190
  msgstr ""
2191
 
2192
+ #: templates/forms/affiliation.php:180
2193
  msgid "Where are you going to promote the %s?"
2194
  msgstr ""
2195
 
2196
+ #: templates/forms/affiliation.php:182
2197
  msgid "Enter the domain of your website or other websites from where you plan to promote the %s."
2198
  msgstr ""
2199
 
2200
+ #: templates/forms/affiliation.php:184
2201
  msgid "Add another domain"
2202
  msgstr ""
2203
 
2204
+ #: templates/forms/affiliation.php:188
2205
  msgid "Extra Domains"
2206
  msgstr ""
2207
 
2208
+ #: templates/forms/affiliation.php:189
2209
  msgid "Extra domains where you will be marketing the product from."
2210
  msgstr ""
2211
 
2212
+ #: templates/forms/affiliation.php:199
2213
  msgid "Promotion methods"
2214
  msgstr ""
2215
 
2216
+ #: templates/forms/affiliation.php:202
2217
  msgid "Social media (Facebook, Twitter, etc.)"
2218
  msgstr ""
2219
 
2220
+ #: templates/forms/affiliation.php:206
2221
  msgid "Mobile apps"
2222
  msgstr ""
2223
 
2224
+ #: templates/forms/affiliation.php:210
2225
  msgid "Website, email, and social media statistics (optional)"
2226
  msgstr ""
2227
 
2228
+ #: templates/forms/affiliation.php:213
2229
  msgid "Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential)."
2230
  msgstr ""
2231
 
2232
+ #: templates/forms/affiliation.php:217
2233
  msgid "How will you promote us?"
2234
  msgstr ""
2235
 
2236
+ #: templates/forms/affiliation.php:220
2237
  msgid "Please provide details on how you intend to promote %s (please be as specific as possible)."
2238
  msgstr ""
2239
 
2240
+ #: templates/forms/affiliation.php:232, templates/forms/resend-key.php:22
2241
  msgid "Cancel"
2242
  msgstr ""
2243
 
2244
+ #: templates/forms/affiliation.php:234
2245
  msgid "Become an affiliate"
2246
  msgstr ""
2247
 
2269
  msgid "Update License"
2270
  msgstr ""
2271
 
2272
+ #: templates/forms/license-activation.php:41
2273
+ msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
2274
+ msgstr ""
2275
+
2276
+ #: templates/forms/license-activation.php:183
2277
  msgid "Associate with the license owner's account."
2278
  msgstr ""
2279
 
2319
  msgid "Plugins & themes tracking"
2320
  msgstr ""
2321
 
2322
+ #: templates/forms/optout.php:261
2323
  msgid "Saved"
2324
  msgstr ""
2325
 
2531
  msgid "switching"
2532
  msgstr ""
2533
 
2534
+ #: templates/forms/deactivation/form.php:369
2535
  msgid "Submit & %s"
2536
  msgstr ""
2537
 
2538
+ #: templates/forms/deactivation/form.php:390
2539
  msgid "Kindly tell us the reason so we can improve."
2540
  msgstr ""
2541
 
2542
+ #: templates/forms/deactivation/form.php:515
2543
  msgid "Yes - %s"
2544
  msgstr ""
2545
 
2546
+ #: templates/forms/deactivation/form.php:522
2547
  msgid "Skip & %s"
2548
  msgstr ""
2549
 
freemius/start.php CHANGED
@@ -1,522 +1,530 @@
1
- <?php
2
- /**
3
- * @package Freemius
4
- * @copyright Copyright (c) 2015, Freemius, Inc.
5
- * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6
- * @since 1.0.3
7
- */
8
-
9
- if ( ! defined( 'ABSPATH' ) ) {
10
- exit;
11
- }
12
-
13
- /**
14
- * Freemius SDK Version.
15
- *
16
- * @var string
17
- */
18
- $this_sdk_version = '2.3.2';
19
-
20
- #region SDK Selection Logic --------------------------------------------------------------------
21
-
22
- /**
23
- * Special logic added on 1.1.6 to make sure that every Freemius powered plugin
24
- * will ALWAYS be loaded with the newest SDK from the active Freemius powered plugins.
25
- *
26
- * Since Freemius SDK is backward compatible, this will make sure that all Freemius powered
27
- * plugins will run correctly.
28
- *
29
- * @since 1.1.6
30
- */
31
-
32
- global $fs_active_plugins;
33
-
34
- if ( ! function_exists( 'fs_find_caller_plugin_file' ) ) {
35
- // Require SDK essentials.
36
- require_once dirname( __FILE__ ) . '/includes/fs-essential-functions.php';
37
- }
38
-
39
- /**
40
- * This complex logic fixes symlink issues (e.g. with Vargant). The logic assumes
41
- * that if it's a file from an SDK running in a theme, the location of the SDK
42
- * is in the main theme's folder.
43
- *
44
- * @author Vova Feldman (@svovaf)
45
- * @since 1.2.2.6
46
- */
47
- $file_path = fs_normalize_path( __FILE__ );
48
- $fs_root_path = dirname( $file_path );
49
- /**
50
- * Get the themes directory where the active theme is located (not passing the stylesheet will make WordPress
51
- * assume that the themes directory is inside `wp-content`.
52
- *
53
- * @author Leo Fajardo (@leorw)
54
- * @since 2.2.3
55
- */
56
- $themes_directory = get_theme_root( get_stylesheet() );
57
- $themes_directory_name = basename( $themes_directory );
58
- $theme_candidate_basename = basename( dirname( $fs_root_path ) ) . '/' . basename( $fs_root_path );
59
-
60
- if ( $file_path == fs_normalize_path( realpath( trailingslashit( $themes_directory ) . $theme_candidate_basename . '/' . basename( $file_path ) ) )
61
- ) {
62
- $this_sdk_relative_path = '../' . $themes_directory_name . '/' . $theme_candidate_basename;
63
- $is_theme = true;
64
- } else {
65
- $this_sdk_relative_path = plugin_basename( $fs_root_path );
66
- $is_theme = false;
67
- }
68
-
69
- if ( ! isset( $fs_active_plugins ) ) {
70
- // Load all Freemius powered active plugins.
71
- $fs_active_plugins = get_option( 'fs_active_plugins', new stdClass() );
72
-
73
- if ( ! isset( $fs_active_plugins->plugins ) ) {
74
- $fs_active_plugins->plugins = array();
75
- }
76
- }
77
-
78
- if ( empty( $fs_active_plugins->abspath ) ) {
79
- /**
80
- * Store the WP install absolute path reference to identify environment change
81
- * while replicating the storage.
82
- *
83
- * @author Vova Feldman (@svovaf)
84
- * @since 1.2.1.7
85
- */
86
- $fs_active_plugins->abspath = ABSPATH;
87
- } else {
88
- if ( ABSPATH !== $fs_active_plugins->abspath ) {
89
- /**
90
- * WordPress path has changed, cleanup the SDK references cache.
91
- * This resolves issues triggered when spinning a staging environments
92
- * while replicating the database.
93
- *
94
- * @author Vova Feldman (@svovaf)
95
- * @since 1.2.1.7
96
- */
97
- $fs_active_plugins->abspath = ABSPATH;
98
- $fs_active_plugins->plugins = array();
99
- unset( $fs_active_plugins->newest );
100
- } else {
101
- /**
102
- * Make sure SDK references are still valid. This resolves
103
- * issues when users hard delete modules via FTP.
104
- *
105
- * @author Vova Feldman (@svovaf)
106
- * @since 1.2.1.7
107
- */
108
- $has_changes = false;
109
- foreach ( $fs_active_plugins->plugins as $sdk_path => $data ) {
110
- if ( ! file_exists( ( isset( $data->type ) && 'theme' === $data->type ? $themes_directory : WP_PLUGIN_DIR ) . '/' . $sdk_path ) ) {
111
- unset( $fs_active_plugins->plugins[ $sdk_path ] );
112
- $has_changes = true;
113
- }
114
- }
115
-
116
- if ( $has_changes ) {
117
- if ( empty( $fs_active_plugins->plugins ) ) {
118
- unset( $fs_active_plugins->newest );
119
- }
120
-
121
- update_option( 'fs_active_plugins', $fs_active_plugins );
122
- }
123
- }
124
- }
125
-
126
- if ( ! function_exists( 'fs_find_direct_caller_plugin_file' ) ) {
127
- require_once dirname( __FILE__ ) . '/includes/supplements/fs-essential-functions-1.1.7.1.php';
128
- }
129
-
130
- if ( ! function_exists( 'fs_get_plugins' ) ) {
131
- require_once dirname( __FILE__ ) . '/includes/supplements/fs-essential-functions-2.2.1.php';
132
- }
133
-
134
- // Update current SDK info based on the SDK path.
135
- if ( ! isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) ||
136
- $this_sdk_version != $fs_active_plugins->plugins[ $this_sdk_relative_path ]->version
137
- ) {
138
- if ( $is_theme ) {
139
- $plugin_path = basename( dirname( $this_sdk_relative_path ) );
140
- } else {
141
- $plugin_path = plugin_basename( fs_find_direct_caller_plugin_file( $file_path ) );
142
- }
143
-
144
- $fs_active_plugins->plugins[ $this_sdk_relative_path ] = (object) array(
145
- 'version' => $this_sdk_version,
146
- 'type' => ( $is_theme ? 'theme' : 'plugin' ),
147
- 'timestamp' => time(),
148
- 'plugin_path' => $plugin_path,
149
- );
150
- }
151
-
152
- $is_current_sdk_newest = isset( $fs_active_plugins->newest ) && ( $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path );
153
-
154
- if ( ! isset( $fs_active_plugins->newest ) ) {
155
- /**
156
- * This will be executed only once, for the first time a Freemius powered plugin is activated.
157
- */
158
- fs_update_sdk_newest_version( $this_sdk_relative_path, $fs_active_plugins->plugins[ $this_sdk_relative_path ]->plugin_path );
159
-
160
- $is_current_sdk_newest = true;
161
- } else if ( version_compare( $fs_active_plugins->newest->version, $this_sdk_version, '<' ) ) {
162
- /**
163
- * Current SDK is newer than the newest stored SDK.
164
- */
165
- fs_update_sdk_newest_version( $this_sdk_relative_path, $fs_active_plugins->plugins[ $this_sdk_relative_path ]->plugin_path );
166
-
167
- if ( class_exists( 'Freemius' ) ) {
168
- // Older SDK version was already loaded.
169
-
170
- if ( ! $fs_active_plugins->newest->in_activation ) {
171
- // Re-order plugins to load this plugin first.
172
- fs_newest_sdk_plugin_first();
173
- }
174
-
175
- // Refresh page.
176
- fs_redirect( $_SERVER['REQUEST_URI'] );
177
- }
178
- } else {
179
- if ( ! function_exists( 'get_plugins' ) ) {
180
- require_once ABSPATH . 'wp-admin/includes/plugin.php';
181
- }
182
-
183
- $fs_newest_sdk = $fs_active_plugins->newest;
184
- $fs_newest_sdk = $fs_active_plugins->plugins[ $fs_newest_sdk->sdk_path ];
185
-
186
- $is_newest_sdk_type_theme = ( isset( $fs_newest_sdk->type ) && 'theme' === $fs_newest_sdk->type );
187
-
188
- if ( ! $is_newest_sdk_type_theme ) {
189
- $is_newest_sdk_plugin_active = is_plugin_active( $fs_newest_sdk->plugin_path );
190
- } else {
191
- $current_theme = wp_get_theme();
192
- $is_newest_sdk_plugin_active = ( $current_theme->stylesheet === $fs_newest_sdk->plugin_path );
193
-
194
- $current_theme_parent = $current_theme->parent();
195
-
196
- /**
197
- * If the current theme is a child of the theme that has the newest SDK, this prevents a redirects loop
198
- * from happening by keeping the SDK info stored in the `fs_active_plugins` option.
199
- */
200
- if ( ! $is_newest_sdk_plugin_active && $current_theme_parent instanceof WP_Theme ) {
201
- $is_newest_sdk_plugin_active = ( $fs_newest_sdk->plugin_path === $current_theme_parent->stylesheet );
202
- }
203
- }
204
-
205
- if ( $is_current_sdk_newest &&
206
- ! $is_newest_sdk_plugin_active &&
207
- ! $fs_active_plugins->newest->in_activation
208
- ) {
209
- // If current SDK is the newest and the plugin is NOT active, it means
210
- // that the current plugin in activation mode.
211
- $fs_active_plugins->newest->in_activation = true;
212
- update_option( 'fs_active_plugins', $fs_active_plugins );
213
- }
214
-
215
- if ( ! $is_theme ) {
216
- $sdk_starter_path = fs_normalize_path( WP_PLUGIN_DIR . '/' . $this_sdk_relative_path . '/start.php' );
217
- } else {
218
- $sdk_starter_path = fs_normalize_path(
219
- $themes_directory
220
- . '/'
221
- . str_replace( "../{$themes_directory_name}/", '', $this_sdk_relative_path )
222
- . '/start.php' );
223
- }
224
-
225
- $is_newest_sdk_path_valid = ( $is_newest_sdk_plugin_active || $fs_active_plugins->newest->in_activation ) && file_exists( $sdk_starter_path );
226
-
227
- if ( ! $is_newest_sdk_path_valid && ! $is_current_sdk_newest ) {
228
- // Plugin with newest SDK is no longer active, or SDK was moved to a different location.
229
- unset( $fs_active_plugins->plugins[ $fs_active_plugins->newest->sdk_path ] );
230
- }
231
-
232
- if ( ! ( $is_newest_sdk_plugin_active || $fs_active_plugins->newest->in_activation ) ||
233
- ! $is_newest_sdk_path_valid ||
234
- // Is newest SDK downgraded.
235
- ( $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path &&
236
- version_compare( $fs_active_plugins->newest->version, $this_sdk_version, '>' ) )
237
- ) {
238
- /**
239
- * Plugin with newest SDK is no longer active.
240
- * OR
241
- * The newest SDK was in the current plugin. BUT, seems like the version of
242
- * the SDK was downgraded to a lower SDK.
243
- */
244
- // Find the active plugin with the newest SDK version and update the newest reference.
245
- fs_fallback_to_newest_active_sdk();
246
- } else {
247
- if ( $is_newest_sdk_plugin_active &&
248
- $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path &&
249
- ( $fs_active_plugins->newest->in_activation ||
250
- ( class_exists( 'Freemius' ) && ( ! defined( 'WP_FS__SDK_VERSION' ) || version_compare( WP_FS__SDK_VERSION, $this_sdk_version, '<' ) ) )
251
- )
252
-
253
- ) {
254
- if ( $fs_active_plugins->newest->in_activation && ! $is_newest_sdk_type_theme ) {
255
- // Plugin no more in activation.
256
- $fs_active_plugins->newest->in_activation = false;
257
- update_option( 'fs_active_plugins', $fs_active_plugins );
258
- }
259
-
260
- // Reorder plugins to load plugin with newest SDK first.
261
- if ( fs_newest_sdk_plugin_first() ) {
262
- // Refresh page after re-order to make sure activated plugin loads newest SDK.
263
- if ( class_exists( 'Freemius' ) ) {
264
- fs_redirect( $_SERVER['REQUEST_URI'] );
265
- }
266
- }
267
- }
268
- }
269
- }
270
-
271
- if ( class_exists( 'Freemius' ) ) {
272
- // SDK was already loaded.
273
- return;
274
- }
275
-
276
- if ( version_compare( $this_sdk_version, $fs_active_plugins->newest->version, '<' ) ) {
277
- $newest_sdk = $fs_active_plugins->plugins[ $fs_active_plugins->newest->sdk_path ];
278
-
279
- $plugins_or_theme_dir_path = ( ! isset( $newest_sdk->type ) || 'theme' !== $newest_sdk->type ) ?
280
- WP_PLUGIN_DIR :
281
- $themes_directory;
282
-
283
- $newest_sdk_starter = fs_normalize_path(
284
- $plugins_or_theme_dir_path
285
- . '/'
286
- . str_replace( "../{$themes_directory_name}/", '', $fs_active_plugins->newest->sdk_path )
287
- . '/start.php' );
288
-
289
- if ( file_exists( $newest_sdk_starter ) ) {
290
- // Reorder plugins to load plugin with newest SDK first.
291
- fs_newest_sdk_plugin_first();
292
-
293
- // There's a newer SDK version, load it instead of the current one!
294
- require_once $newest_sdk_starter;
295
-
296
- return;
297
- }
298
- }
299
-
300
- #endregion SDK Selection Logic --------------------------------------------------------------------
301
-
302
- #region Hooks & Filters Collection --------------------------------------------------------------------
303
-
304
- /**
305
- * Freemius hooks (actions & filters) tags structure:
306
- *
307
- * fs_{filter/action_name}_{plugin_slug}
308
- *
309
- * --------------------------------------------------------
310
- *
311
- * Usage with WordPress' add_action() / add_filter():
312
- *
313
- * add_action('fs_{filter/action_name}_{plugin_slug}', $callable);
314
- *
315
- * --------------------------------------------------------
316
- *
317
- * Usage with Freemius' instance add_action() / add_filter():
318
- *
319
- * // No need to add 'fs_' prefix nor '_{plugin_slug}' suffix.
320
- * my_freemius()->add_action('{action_name}', $callable);
321
- *
322
- * --------------------------------------------------------
323
- *
324
- * Freemius filters collection:
325
- *
326
- * fs_connect_url_{plugin_slug}
327
- * fs_trial_promotion_message_{plugin_slug}
328
- * fs_is_long_term_user_{plugin_slug}
329
- * fs_uninstall_reasons_{plugin_slug}
330
- * fs_is_plugin_update_{plugin_slug}
331
- * fs_api_domains_{plugin_slug}
332
- * fs_email_template_sections_{plugin_slug}
333
- * fs_support_forum_submenu_{plugin_slug}
334
- * fs_support_forum_url_{plugin_slug}
335
- * fs_connect_message_{plugin_slug}
336
- * fs_connect_message_on_update_{plugin_slug}
337
- * fs_uninstall_confirmation_message_{plugin_slug}
338
- * fs_pending_activation_message_{plugin_slug}
339
- * fs_is_submenu_visible_{plugin_slug}
340
- * fs_plugin_icon_{plugin_slug}
341
- * fs_show_trial_{plugin_slug}
342
- *
343
- * --------------------------------------------------------
344
- *
345
- * Freemius actions collection:
346
- *
347
- * fs_after_license_loaded_{plugin_slug}
348
- * fs_after_license_change_{plugin_slug}
349
- * fs_after_plans_sync_{plugin_slug}
350
- *
351
- * fs_after_account_details_{plugin_slug}
352
- * fs_after_account_user_sync_{plugin_slug}
353
- * fs_after_account_plan_sync_{plugin_slug}
354
- * fs_before_account_load_{plugin_slug}
355
- * fs_after_account_connection_{plugin_slug}
356
- * fs_account_property_edit_{plugin_slug}
357
- * fs_account_email_verified_{plugin_slug}
358
- * fs_account_page_load_before_departure_{plugin_slug}
359
- * fs_before_account_delete_{plugin_slug}
360
- * fs_after_account_delete_{plugin_slug}
361
- *
362
- * fs_sdk_version_update_{plugin_slug}
363
- * fs_plugin_version_update_{plugin_slug}
364
- *
365
- * fs_initiated_{plugin_slug}
366
- * fs_after_init_plugin_registered_{plugin_slug}
367
- * fs_after_init_plugin_anonymous_{plugin_slug}
368
- * fs_after_init_plugin_pending_activations_{plugin_slug}
369
- * fs_after_init_addon_registered_{plugin_slug}
370
- * fs_after_init_addon_anonymous_{plugin_slug}
371
- * fs_after_init_addon_pending_activations_{plugin_slug}
372
- *
373
- * fs_after_premium_version_activation_{plugin_slug}
374
- * fs_after_free_version_reactivation_{plugin_slug}
375
- *
376
- * fs_after_uninstall_{plugin_slug}
377
- * fs_before_admin_menu_init_{plugin_slug}
378
- */
379
-
380
- #endregion Hooks & Filters Collection --------------------------------------------------------------------
381
-
382
- if ( ! class_exists( 'Freemius' ) ) {
383
-
384
- if ( ! defined( 'WP_FS__SDK_VERSION' ) ) {
385
- define( 'WP_FS__SDK_VERSION', $this_sdk_version );
386
- }
387
-
388
- $plugins_or_theme_dir_path = fs_normalize_path( trailingslashit( $is_theme ?
389
- $themes_directory :
390
- WP_PLUGIN_DIR ) );
391
-
392
- if ( 0 === strpos( $file_path, $plugins_or_theme_dir_path ) ) {
393
- // No symlinks
394
- } else {
395
- /**
396
- * This logic finds the SDK symlink and set WP_FS__DIR to use it.
397
- *
398
- * @author Vova Feldman (@svovaf)
399
- * @since 1.2.2.5
400
- */
401
- $sdk_symlink = null;
402
-
403
- // Try to load SDK's symlink from cache.
404
- if ( isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
405
- is_object( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
406
- ! empty( $fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink )
407
- ) {
408
- $sdk_symlink = $fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink;
409
- if ( 0 === strpos( $sdk_symlink, $plugins_or_theme_dir_path ) ) {
410
- /**
411
- * Make the symlink path relative.
412
- *
413
- * @author Leo Fajardo (@leorw)
414
- */
415
- $sdk_symlink = substr( $sdk_symlink, strlen( $plugins_or_theme_dir_path ) );
416
-
417
- $fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink = $sdk_symlink;
418
- update_option( 'fs_active_plugins', $fs_active_plugins );
419
- }
420
-
421
- $realpath = realpath( $plugins_or_theme_dir_path . $sdk_symlink );
422
- if ( ! is_string( $realpath ) || ! file_exists( $realpath ) ) {
423
- $sdk_symlink = null;
424
- }
425
- }
426
-
427
- if ( empty( $sdk_symlink ) ) // Has symlinks, therefore, we need to configure WP_FS__DIR based on the symlink.
428
- {
429
- $partial_path_right = basename( $file_path );
430
- $partial_path_left = dirname( $file_path );
431
- $realpath = realpath( $plugins_or_theme_dir_path . $partial_path_right );
432
-
433
- while ( '/' !== $partial_path_left &&
434
- ( false === $realpath || $file_path !== fs_normalize_path( $realpath ) )
435
- ) {
436
- $partial_path_right = trailingslashit( basename( $partial_path_left ) ) . $partial_path_right;
437
- $partial_path_left_prev = $partial_path_left;
438
- $partial_path_left = dirname( $partial_path_left_prev );
439
-
440
- /**
441
- * Avoid infinite loop if for example `$partial_path_left_prev` is `C:/`, in this case,
442
- * `dirname( 'C:/' )` will return `C:/`.
443
- *
444
- * @author Leo Fajardo (@leorw)
445
- */
446
- if ( $partial_path_left === $partial_path_left_prev ) {
447
- $partial_path_left = '';
448
- break;
449
- }
450
-
451
- $realpath = realpath( $plugins_or_theme_dir_path . $partial_path_right );
452
- }
453
-
454
- if ( ! empty( $partial_path_left ) && '/' !== $partial_path_left ) {
455
- $sdk_symlink = fs_normalize_path( dirname( $partial_path_right ) );
456
-
457
- // Cache value.
458
- if ( isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
459
- is_object( $fs_active_plugins->plugins[ $this_sdk_relative_path ] )
460
- ) {
461
- $fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink = $sdk_symlink;
462
- update_option( 'fs_active_plugins', $fs_active_plugins );
463
- }
464
- }
465
- }
466
-
467
- if ( ! empty( $sdk_symlink ) ) {
468
- // Set SDK dir to the symlink path.
469
- define( 'WP_FS__DIR', $plugins_or_theme_dir_path . $sdk_symlink );
470
- }
471
- }
472
-
473
- // Load SDK files.
474
- require_once dirname( __FILE__ ) . '/require.php';
475
-
476
- /**
477
- * Quick shortcut to get Freemius for specified plugin.
478
- * Used by various templates.
479
- *
480
- * @param number $module_id
481
- *
482
- * @return Freemius
483
- */
484
- function freemius( $module_id ) {
485
- return Freemius::instance( $module_id );
486
- }
487
-
488
- /**
489
- * @param string $slug
490
- * @param number $plugin_id
491
- * @param string $public_key
492
- * @param bool $is_live Is live or test plugin.
493
- * @param bool $is_premium Hints freemius if running the premium plugin or not.
494
- *
495
- * @return Freemius
496
- *
497
- * @deprecated Please use fs_dynamic_init().
498
- */
499
- function fs_init( $slug, $plugin_id, $public_key, $is_live = true, $is_premium = true ) {
500
- $fs = Freemius::instance( $plugin_id, $slug, true );
501
- $fs->init( $plugin_id, $public_key, $is_live, $is_premium );
502
-
503
- return $fs;
504
- }
505
-
506
- /**
507
- * @param array <string,string> $module Plugin or Theme details.
508
- *
509
- * @return Freemius
510
- * @throws Freemius_Exception
511
- */
512
- function fs_dynamic_init( $module ) {
513
- $fs = Freemius::instance( $module['id'], $module['slug'], true );
514
- $fs->dynamic_init( $module );
515
-
516
- return $fs;
517
- }
518
-
519
- function fs_dump_log() {
520
- FS_Logger::dump();
521
- }
522
- }
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Freemius
4
+ * @copyright Copyright (c) 2015, Freemius, Inc.
5
+ * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6
+ * @since 1.0.3
7
+ */
8
+
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ exit;
11
+ }
12
+
13
+ /**
14
+ * Freemius SDK Version.
15
+ *
16
+ * @var string
17
+ */
18
+ $this_sdk_version = '2.4.2';
19
+
20
+ #region SDK Selection Logic --------------------------------------------------------------------
21
+
22
+ /**
23
+ * Special logic added on 1.1.6 to make sure that every Freemius powered plugin
24
+ * will ALWAYS be loaded with the newest SDK from the active Freemius powered plugins.
25
+ *
26
+ * Since Freemius SDK is backward compatible, this will make sure that all Freemius powered
27
+ * plugins will run correctly.
28
+ *
29
+ * @since 1.1.6
30
+ */
31
+
32
+ global $fs_active_plugins;
33
+
34
+ if ( ! function_exists( 'fs_find_caller_plugin_file' ) ) {
35
+ // Require SDK essentials.
36
+ require_once dirname( __FILE__ ) . '/includes/fs-essential-functions.php';
37
+ }
38
+
39
+ /**
40
+ * This complex logic fixes symlink issues (e.g. with Vargant). The logic assumes
41
+ * that if it's a file from an SDK running in a theme, the location of the SDK
42
+ * is in the main theme's folder.
43
+ *
44
+ * @author Vova Feldman (@svovaf)
45
+ * @since 1.2.2.6
46
+ */
47
+ $file_path = fs_normalize_path( __FILE__ );
48
+ $fs_root_path = dirname( $file_path );
49
+ /**
50
+ * Get the themes directory where the active theme is located (not passing the stylesheet will make WordPress
51
+ * assume that the themes directory is inside `wp-content`.
52
+ *
53
+ * @author Leo Fajardo (@leorw)
54
+ * @since 2.2.3
55
+ */
56
+ $themes_directory = get_theme_root( get_stylesheet() );
57
+ $themes_directory_name = basename( $themes_directory );
58
+ $theme_candidate_basename = basename( dirname( $fs_root_path ) ) . '/' . basename( $fs_root_path );
59
+
60
+ if ( $file_path == fs_normalize_path( realpath( trailingslashit( $themes_directory ) . $theme_candidate_basename . '/' . basename( $file_path ) ) )
61
+ ) {
62
+ $this_sdk_relative_path = '../' . $themes_directory_name . '/' . $theme_candidate_basename;
63
+ $is_theme = true;
64
+ } else {
65
+ $this_sdk_relative_path = plugin_basename( $fs_root_path );
66
+ $is_theme = false;
67
+ }
68
+
69
+ if ( ! isset( $fs_active_plugins ) ) {
70
+ // Load all Freemius powered active plugins.
71
+ $fs_active_plugins = get_option( 'fs_active_plugins', new stdClass() );
72
+
73
+ if ( ! isset( $fs_active_plugins->plugins ) ) {
74
+ $fs_active_plugins->plugins = array();
75
+ }
76
+ }
77
+
78
+ if ( empty( $fs_active_plugins->abspath ) ) {
79
+ /**
80
+ * Store the WP install absolute path reference to identify environment change
81
+ * while replicating the storage.
82
+ *
83
+ * @author Vova Feldman (@svovaf)
84
+ * @since 1.2.1.7
85
+ */
86
+ $fs_active_plugins->abspath = ABSPATH;
87
+ } else {
88
+ if ( ABSPATH !== $fs_active_plugins->abspath ) {
89
+ /**
90
+ * WordPress path has changed, cleanup the SDK references cache.
91
+ * This resolves issues triggered when spinning a staging environments
92
+ * while replicating the database.
93
+ *
94
+ * @author Vova Feldman (@svovaf)
95
+ * @since 1.2.1.7
96
+ */
97
+ $fs_active_plugins->abspath = ABSPATH;
98
+ $fs_active_plugins->plugins = array();
99
+ unset( $fs_active_plugins->newest );
100
+ } else {
101
+ /**
102
+ * Make sure SDK references are still valid. This resolves
103
+ * issues when users hard delete modules via FTP.
104
+ *
105
+ * @author Vova Feldman (@svovaf)
106
+ * @since 1.2.1.7
107
+ */
108
+ $has_changes = false;
109
+ foreach ( $fs_active_plugins->plugins as $sdk_path => $data ) {
110
+ if ( ! file_exists( ( isset( $data->type ) && 'theme' === $data->type ? $themes_directory : WP_PLUGIN_DIR ) . '/' . $sdk_path ) ) {
111
+ unset( $fs_active_plugins->plugins[ $sdk_path ] );
112
+
113
+ if (
114
+ ! empty( $fs_active_plugins->newest ) &&
115
+ $sdk_path === $fs_active_plugins->newest->sdk_path
116
+ ) {
117
+ unset( $fs_active_plugins->newest );
118
+ }
119
+
120
+ $has_changes = true;
121
+ }
122
+ }
123
+
124
+ if ( $has_changes ) {
125
+ if ( empty( $fs_active_plugins->plugins ) ) {
126
+ unset( $fs_active_plugins->newest );
127
+ }
128
+
129
+ update_option( 'fs_active_plugins', $fs_active_plugins );
130
+ }
131
+ }
132
+ }
133
+
134
+ if ( ! function_exists( 'fs_find_direct_caller_plugin_file' ) ) {
135
+ require_once dirname( __FILE__ ) . '/includes/supplements/fs-essential-functions-1.1.7.1.php';
136
+ }
137
+
138
+ if ( ! function_exists( 'fs_get_plugins' ) ) {
139
+ require_once dirname( __FILE__ ) . '/includes/supplements/fs-essential-functions-2.2.1.php';
140
+ }
141
+
142
+ // Update current SDK info based on the SDK path.
143
+ if ( ! isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) ||
144
+ $this_sdk_version != $fs_active_plugins->plugins[ $this_sdk_relative_path ]->version
145
+ ) {
146
+ if ( $is_theme ) {
147
+ $plugin_path = basename( dirname( $this_sdk_relative_path ) );
148
+ } else {
149
+ $plugin_path = plugin_basename( fs_find_direct_caller_plugin_file( $file_path ) );
150
+ }
151
+
152
+ $fs_active_plugins->plugins[ $this_sdk_relative_path ] = (object) array(
153
+ 'version' => $this_sdk_version,
154
+ 'type' => ( $is_theme ? 'theme' : 'plugin' ),
155
+ 'timestamp' => time(),
156
+ 'plugin_path' => $plugin_path,
157
+ );
158
+ }
159
+
160
+ $is_current_sdk_newest = isset( $fs_active_plugins->newest ) && ( $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path );
161
+
162
+ if ( ! isset( $fs_active_plugins->newest ) ) {
163
+ /**
164
+ * This will be executed only once, for the first time a Freemius powered plugin is activated.
165
+ */
166
+ fs_update_sdk_newest_version( $this_sdk_relative_path, $fs_active_plugins->plugins[ $this_sdk_relative_path ]->plugin_path );
167
+
168
+ $is_current_sdk_newest = true;
169
+ } else if ( version_compare( $fs_active_plugins->newest->version, $this_sdk_version, '<' ) ) {
170
+ /**
171
+ * Current SDK is newer than the newest stored SDK.
172
+ */
173
+ fs_update_sdk_newest_version( $this_sdk_relative_path, $fs_active_plugins->plugins[ $this_sdk_relative_path ]->plugin_path );
174
+
175
+ if ( class_exists( 'Freemius' ) ) {
176
+ // Older SDK version was already loaded.
177
+
178
+ if ( ! $fs_active_plugins->newest->in_activation ) {
179
+ // Re-order plugins to load this plugin first.
180
+ fs_newest_sdk_plugin_first();
181
+ }
182
+
183
+ // Refresh page.
184
+ fs_redirect( $_SERVER['REQUEST_URI'] );
185
+ }
186
+ } else {
187
+ if ( ! function_exists( 'get_plugins' ) ) {
188
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
189
+ }
190
+
191
+ $fs_newest_sdk = $fs_active_plugins->newest;
192
+ $fs_newest_sdk = $fs_active_plugins->plugins[ $fs_newest_sdk->sdk_path ];
193
+
194
+ $is_newest_sdk_type_theme = ( isset( $fs_newest_sdk->type ) && 'theme' === $fs_newest_sdk->type );
195
+
196
+ if ( ! $is_newest_sdk_type_theme ) {
197
+ $is_newest_sdk_plugin_active = is_plugin_active( $fs_newest_sdk->plugin_path );
198
+ } else {
199
+ $current_theme = wp_get_theme();
200
+ $is_newest_sdk_plugin_active = ( $current_theme->stylesheet === $fs_newest_sdk->plugin_path );
201
+
202
+ $current_theme_parent = $current_theme->parent();
203
+
204
+ /**
205
+ * If the current theme is a child of the theme that has the newest SDK, this prevents a redirects loop
206
+ * from happening by keeping the SDK info stored in the `fs_active_plugins` option.
207
+ */
208
+ if ( ! $is_newest_sdk_plugin_active && $current_theme_parent instanceof WP_Theme ) {
209
+ $is_newest_sdk_plugin_active = ( $fs_newest_sdk->plugin_path === $current_theme_parent->stylesheet );
210
+ }
211
+ }
212
+
213
+ if ( $is_current_sdk_newest &&
214
+ ! $is_newest_sdk_plugin_active &&
215
+ ! $fs_active_plugins->newest->in_activation
216
+ ) {
217
+ // If current SDK is the newest and the plugin is NOT active, it means
218
+ // that the current plugin in activation mode.
219
+ $fs_active_plugins->newest->in_activation = true;
220
+ update_option( 'fs_active_plugins', $fs_active_plugins );
221
+ }
222
+
223
+ if ( ! $is_theme ) {
224
+ $sdk_starter_path = fs_normalize_path( WP_PLUGIN_DIR . '/' . $this_sdk_relative_path . '/start.php' );
225
+ } else {
226
+ $sdk_starter_path = fs_normalize_path(
227
+ $themes_directory
228
+ . '/'
229
+ . str_replace( "../{$themes_directory_name}/", '', $this_sdk_relative_path )
230
+ . '/start.php' );
231
+ }
232
+
233
+ $is_newest_sdk_path_valid = ( $is_newest_sdk_plugin_active || $fs_active_plugins->newest->in_activation ) && file_exists( $sdk_starter_path );
234
+
235
+ if ( ! $is_newest_sdk_path_valid && ! $is_current_sdk_newest ) {
236
+ // Plugin with newest SDK is no longer active, or SDK was moved to a different location.
237
+ unset( $fs_active_plugins->plugins[ $fs_active_plugins->newest->sdk_path ] );
238
+ }
239
+
240
+ if ( ! ( $is_newest_sdk_plugin_active || $fs_active_plugins->newest->in_activation ) ||
241
+ ! $is_newest_sdk_path_valid ||
242
+ // Is newest SDK downgraded.
243
+ ( $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path &&
244
+ version_compare( $fs_active_plugins->newest->version, $this_sdk_version, '>' ) )
245
+ ) {
246
+ /**
247
+ * Plugin with newest SDK is no longer active.
248
+ * OR
249
+ * The newest SDK was in the current plugin. BUT, seems like the version of
250
+ * the SDK was downgraded to a lower SDK.
251
+ */
252
+ // Find the active plugin with the newest SDK version and update the newest reference.
253
+ fs_fallback_to_newest_active_sdk();
254
+ } else {
255
+ if ( $is_newest_sdk_plugin_active &&
256
+ $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path &&
257
+ ( $fs_active_plugins->newest->in_activation ||
258
+ ( class_exists( 'Freemius' ) && ( ! defined( 'WP_FS__SDK_VERSION' ) || version_compare( WP_FS__SDK_VERSION, $this_sdk_version, '<' ) ) )
259
+ )
260
+
261
+ ) {
262
+ if ( $fs_active_plugins->newest->in_activation && ! $is_newest_sdk_type_theme ) {
263
+ // Plugin no more in activation.
264
+ $fs_active_plugins->newest->in_activation = false;
265
+ update_option( 'fs_active_plugins', $fs_active_plugins );
266
+ }
267
+
268
+ // Reorder plugins to load plugin with newest SDK first.
269
+ if ( fs_newest_sdk_plugin_first() ) {
270
+ // Refresh page after re-order to make sure activated plugin loads newest SDK.
271
+ if ( class_exists( 'Freemius' ) ) {
272
+ fs_redirect( $_SERVER['REQUEST_URI'] );
273
+ }
274
+ }
275
+ }
276
+ }
277
+ }
278
+
279
+ if ( class_exists( 'Freemius' ) ) {
280
+ // SDK was already loaded.
281
+ return;
282
+ }
283
+
284
+ if ( version_compare( $this_sdk_version, $fs_active_plugins->newest->version, '<' ) ) {
285
+ $newest_sdk = $fs_active_plugins->plugins[ $fs_active_plugins->newest->sdk_path ];
286
+
287
+ $plugins_or_theme_dir_path = ( ! isset( $newest_sdk->type ) || 'theme' !== $newest_sdk->type ) ?
288
+ WP_PLUGIN_DIR :
289
+ $themes_directory;
290
+
291
+ $newest_sdk_starter = fs_normalize_path(
292
+ $plugins_or_theme_dir_path
293
+ . '/'
294
+ . str_replace( "../{$themes_directory_name}/", '', $fs_active_plugins->newest->sdk_path )
295
+ . '/start.php' );
296
+
297
+ if ( file_exists( $newest_sdk_starter ) ) {
298
+ // Reorder plugins to load plugin with newest SDK first.
299
+ fs_newest_sdk_plugin_first();
300
+
301
+ // There's a newer SDK version, load it instead of the current one!
302
+ require_once $newest_sdk_starter;
303
+
304
+ return;
305
+ }
306
+ }
307
+
308
+ #endregion SDK Selection Logic --------------------------------------------------------------------
309
+
310
+ #region Hooks & Filters Collection --------------------------------------------------------------------
311
+
312
+ /**
313
+ * Freemius hooks (actions & filters) tags structure:
314
+ *
315
+ * fs_{filter/action_name}_{plugin_slug}
316
+ *
317
+ * --------------------------------------------------------
318
+ *
319
+ * Usage with WordPress' add_action() / add_filter():
320
+ *
321
+ * add_action('fs_{filter/action_name}_{plugin_slug}', $callable);
322
+ *
323
+ * --------------------------------------------------------
324
+ *
325
+ * Usage with Freemius' instance add_action() / add_filter():
326
+ *
327
+ * // No need to add 'fs_' prefix nor '_{plugin_slug}' suffix.
328
+ * my_freemius()->add_action('{action_name}', $callable);
329
+ *
330
+ * --------------------------------------------------------
331
+ *
332
+ * Freemius filters collection:
333
+ *
334
+ * fs_connect_url_{plugin_slug}
335
+ * fs_trial_promotion_message_{plugin_slug}
336
+ * fs_is_long_term_user_{plugin_slug}
337
+ * fs_uninstall_reasons_{plugin_slug}
338
+ * fs_is_plugin_update_{plugin_slug}
339
+ * fs_api_domains_{plugin_slug}
340
+ * fs_email_template_sections_{plugin_slug}
341
+ * fs_support_forum_submenu_{plugin_slug}
342
+ * fs_support_forum_url_{plugin_slug}
343
+ * fs_connect_message_{plugin_slug}
344
+ * fs_connect_message_on_update_{plugin_slug}
345
+ * fs_uninstall_confirmation_message_{plugin_slug}
346
+ * fs_pending_activation_message_{plugin_slug}
347
+ * fs_is_submenu_visible_{plugin_slug}
348
+ * fs_plugin_icon_{plugin_slug}
349
+ * fs_show_trial_{plugin_slug}
350
+ *
351
+ * --------------------------------------------------------
352
+ *
353
+ * Freemius actions collection:
354
+ *
355
+ * fs_after_license_loaded_{plugin_slug}
356
+ * fs_after_license_change_{plugin_slug}
357
+ * fs_after_plans_sync_{plugin_slug}
358
+ *
359
+ * fs_after_account_details_{plugin_slug}
360
+ * fs_after_account_user_sync_{plugin_slug}
361
+ * fs_after_account_plan_sync_{plugin_slug}
362
+ * fs_before_account_load_{plugin_slug}
363
+ * fs_after_account_connection_{plugin_slug}
364
+ * fs_account_property_edit_{plugin_slug}
365
+ * fs_account_email_verified_{plugin_slug}
366
+ * fs_account_page_load_before_departure_{plugin_slug}
367
+ * fs_before_account_delete_{plugin_slug}
368
+ * fs_after_account_delete_{plugin_slug}
369
+ *
370
+ * fs_sdk_version_update_{plugin_slug}
371
+ * fs_plugin_version_update_{plugin_slug}
372
+ *
373
+ * fs_initiated_{plugin_slug}
374
+ * fs_after_init_plugin_registered_{plugin_slug}
375
+ * fs_after_init_plugin_anonymous_{plugin_slug}
376
+ * fs_after_init_plugin_pending_activations_{plugin_slug}
377
+ * fs_after_init_addon_registered_{plugin_slug}
378
+ * fs_after_init_addon_anonymous_{plugin_slug}
379
+ * fs_after_init_addon_pending_activations_{plugin_slug}
380
+ *
381
+ * fs_after_premium_version_activation_{plugin_slug}
382
+ * fs_after_free_version_reactivation_{plugin_slug}
383
+ *
384
+ * fs_after_uninstall_{plugin_slug}
385
+ * fs_before_admin_menu_init_{plugin_slug}
386
+ */
387
+
388
+ #endregion Hooks & Filters Collection --------------------------------------------------------------------
389
+
390
+ if ( ! class_exists( 'Freemius' ) ) {
391
+
392
+ if ( ! defined( 'WP_FS__SDK_VERSION' ) ) {
393
+ define( 'WP_FS__SDK_VERSION', $this_sdk_version );
394
+ }
395
+
396
+ $plugins_or_theme_dir_path = fs_normalize_path( trailingslashit( $is_theme ?
397
+ $themes_directory :
398
+ WP_PLUGIN_DIR ) );
399
+
400
+ if ( 0 === strpos( $file_path, $plugins_or_theme_dir_path ) ) {
401
+ // No symlinks
402
+ } else {
403
+ /**
404
+ * This logic finds the SDK symlink and set WP_FS__DIR to use it.
405
+ *
406
+ * @author Vova Feldman (@svovaf)
407
+ * @since 1.2.2.5
408
+ */
409
+ $sdk_symlink = null;
410
+
411
+ // Try to load SDK's symlink from cache.
412
+ if ( isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
413
+ is_object( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
414
+ ! empty( $fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink )
415
+ ) {
416
+ $sdk_symlink = $fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink;
417
+ if ( 0 === strpos( $sdk_symlink, $plugins_or_theme_dir_path ) ) {
418
+ /**
419
+ * Make the symlink path relative.
420
+ *
421
+ * @author Leo Fajardo (@leorw)
422
+ */
423
+ $sdk_symlink = substr( $sdk_symlink, strlen( $plugins_or_theme_dir_path ) );
424
+
425
+ $fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink = $sdk_symlink;
426
+ update_option( 'fs_active_plugins', $fs_active_plugins );
427
+ }
428
+
429
+ $realpath = realpath( $plugins_or_theme_dir_path . $sdk_symlink );
430
+ if ( ! is_string( $realpath ) || ! file_exists( $realpath ) ) {
431
+ $sdk_symlink = null;
432
+ }
433
+ }
434
+
435
+ if ( empty( $sdk_symlink ) ) // Has symlinks, therefore, we need to configure WP_FS__DIR based on the symlink.
436
+ {
437
+ $partial_path_right = basename( $file_path );
438
+ $partial_path_left = dirname( $file_path );
439
+ $realpath = realpath( $plugins_or_theme_dir_path . $partial_path_right );
440
+
441
+ while ( '/' !== $partial_path_left &&
442
+ ( false === $realpath || $file_path !== fs_normalize_path( $realpath ) )
443
+ ) {
444
+ $partial_path_right = trailingslashit( basename( $partial_path_left ) ) . $partial_path_right;
445
+ $partial_path_left_prev = $partial_path_left;
446
+ $partial_path_left = dirname( $partial_path_left_prev );
447
+
448
+ /**
449
+ * Avoid infinite loop if for example `$partial_path_left_prev` is `C:/`, in this case,
450
+ * `dirname( 'C:/' )` will return `C:/`.
451
+ *
452
+ * @author Leo Fajardo (@leorw)
453
+ */
454
+ if ( $partial_path_left === $partial_path_left_prev ) {
455
+ $partial_path_left = '';
456
+ break;
457
+ }
458
+
459
+ $realpath = realpath( $plugins_or_theme_dir_path . $partial_path_right );
460
+ }
461
+
462
+ if ( ! empty( $partial_path_left ) && '/' !== $partial_path_left ) {
463
+ $sdk_symlink = fs_normalize_path( dirname( $partial_path_right ) );
464
+
465
+ // Cache value.
466
+ if ( isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
467
+ is_object( $fs_active_plugins->plugins[ $this_sdk_relative_path ] )
468
+ ) {
469
+ $fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink = $sdk_symlink;
470
+ update_option( 'fs_active_plugins', $fs_active_plugins );
471
+ }
472
+ }
473
+ }
474
+
475
+ if ( ! empty( $sdk_symlink ) ) {
476
+ // Set SDK dir to the symlink path.
477
+ define( 'WP_FS__DIR', $plugins_or_theme_dir_path . $sdk_symlink );
478
+ }
479
+ }
480
+
481
+ // Load SDK files.
482
+ require_once dirname( __FILE__ ) . '/require.php';
483
+
484
+ /**
485
+ * Quick shortcut to get Freemius for specified plugin.
486
+ * Used by various templates.
487
+ *
488
+ * @param number $module_id
489
+ *
490
+ * @return Freemius
491
+ */
492
+ function freemius( $module_id ) {
493
+ return Freemius::instance( $module_id );
494
+ }
495
+
496
+ /**
497
+ * @param string $slug
498
+ * @param number $plugin_id
499
+ * @param string $public_key
500
+ * @param bool $is_live Is live or test plugin.
501
+ * @param bool $is_premium Hints freemius if running the premium plugin or not.
502
+ *
503
+ * @return Freemius
504
+ *
505
+ * @deprecated Please use fs_dynamic_init().
506
+ */
507
+ function fs_init( $slug, $plugin_id, $public_key, $is_live = true, $is_premium = true ) {
508
+ $fs = Freemius::instance( $plugin_id, $slug, true );
509
+ $fs->init( $plugin_id, $public_key, $is_live, $is_premium );
510
+
511
+ return $fs;
512
+ }
513
+
514
+ /**
515
+ * @param array <string,string|bool|array> $module Plugin or Theme details.
516
+ *
517
+ * @return Freemius
518
+ * @throws Freemius_Exception
519
+ */
520
+ function fs_dynamic_init( $module ) {
521
+ $fs = Freemius::instance( $module['id'], $module['slug'], true );
522
+ $fs->dynamic_init( $module );
523
+
524
+ return $fs;
525
+ }
526
+
527
+ function fs_dump_log() {
528
+ FS_Logger::dump();
529
+ }
530
+ }
freemius/templates/account.php CHANGED
@@ -21,7 +21,9 @@
21
  /**
22
  * @var FS_Plugin_Tag $update
23
  */
24
- $update = $fs->get_update( false, false, WP_FS__TIME_24_HOURS_IN_SEC / 24 );
 
 
25
 
26
  if ( is_object($update) ) {
27
  /**
@@ -163,19 +165,28 @@
163
  }
164
  }
165
 
166
- $is_child_license = ( is_object( $license ) && FS_Plugin_License::is_valid_id( $license->parent_license_id ) );
167
- $bundle_subscription = null;
 
 
 
 
 
 
 
 
 
168
 
169
  if (
170
  $show_plan_row &&
171
  is_object( $license ) &&
172
- FS_Plugin_License::is_valid_id( $license->parent_license_id )
173
  ) {
174
- $bundle_subscription = $fs->_get_subscription( $license->parent_license_id );
 
 
175
  }
176
 
177
- $is_active_bundle_subscription = ( is_object( $bundle_subscription ) && $bundle_subscription->is_active() );
178
-
179
  $fs_blog_id = ( is_multisite() && ! is_network_admin() ) ?
180
  get_current_blog_id() :
181
  0;
@@ -183,6 +194,46 @@
183
  $active_plugins_directories_map = Freemius::get_active_plugins_directories_map( $fs_blog_id );
184
 
185
  $is_premium = $fs->is_premium();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  ?>
187
  <div class="wrap fs-section">
188
  <?php if ( ! $has_tabs && ! $fs->apply_filters( 'hide_account_tabs', false ) ) : ?>
@@ -384,15 +435,15 @@
384
  'value' => $fs->get_plugin_version()
385
  );
386
 
387
- if ( $is_premium && ! $is_whitelabeled ) {
388
  $profile[] = array(
389
  'id' => 'beta_program',
390
  'title' => '',
391
- 'value' => $user->is_beta
392
  );
393
  }
394
 
395
- if ( $has_paid_plan ) {
396
  if ( $fs->is_trial() ) {
397
  if ( $show_plan_row ) {
398
  $profile[] = array(
@@ -407,18 +458,18 @@
407
  if ( $show_plan_row ) {
408
  $profile[] = array(
409
  'id' => 'plan',
410
- 'title' => ( $is_child_license ? ucfirst( $fs->get_module_type() ) . ' ' : '' ) . $plan_text,
411
  'value' => strtoupper( is_string( $plan->name ) ?
412
  $plan->title :
413
  strtoupper( $free_text )
414
  )
415
  );
416
 
417
- if ( $is_child_license ) {
418
  $profile[] = array(
419
  'id' => 'bundle_plan',
420
  'title' => $bundle_plan_text,
421
- 'value' => strtoupper( $license->parent_plan_title )
422
  );
423
  }
424
  }
@@ -525,7 +576,7 @@
525
  <?php endif ?>
526
  <?php elseif ( 'bundle_plan' === $p['id'] ) : ?>
527
  <?php if ( is_object( $bundle_subscription ) ) : ?>
528
- <?php if ( $is_active_bundle_subscription && ! $license->is_first_payment_pending() ) : ?>
529
  <label class="fs-tag fs-success"><?php echo esc_html( sprintf( $renews_in_text, human_time_diff( time(), strtotime( $bundle_subscription->next_payment ) ) ) ) ?></label>
530
  <?php endif ?>
531
  <?php endif ?>
@@ -555,7 +606,7 @@
555
  <div class="button-group">
556
  <?php if ( $is_paying || $fs->is_trial() ) : ?>
557
  <?php if ( ! $fs->is_allowed_to_install() ) : ?>
558
- <a target="_blank" class="button button-primary"
559
  href="<?php echo $fs->_get_latest_download_local_url() ?>"><?php
560
  $download_version_text_suffix = ( is_object( $update ) ? ' [' . $update->version . ']' : '' );
561
 
@@ -691,18 +742,6 @@
691
  </div>
692
  </div>
693
  <?php endif ?>
694
-
695
- <?php
696
- $account_addons = $fs->get_updated_account_addons();
697
-
698
- $installed_addons = $fs->get_installed_addons();
699
- $installed_addons_ids = array();
700
- foreach ( $installed_addons as $fs_addon ) {
701
- $installed_addons_ids[] = $fs_addon->get_id();
702
- }
703
-
704
- $addons_to_show = array_unique( array_merge( $installed_addons_ids, $account_addons ) );
705
- ?>
706
  <?php if ( 0 < count( $addons_to_show ) ) : ?>
707
  <!-- Add-Ons -->
708
  <div class="postbox">
@@ -1019,6 +1058,29 @@
1019
  });
1020
  });
1021
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1022
  })(jQuery);
1023
  </script>
1024
  <?php
21
  /**
22
  * @var FS_Plugin_Tag $update
23
  */
24
+ $update = $fs->has_release_on_freemius() ?
25
+ $fs->get_update( false, false, WP_FS__TIME_24_HOURS_IN_SEC / 24 ) :
26
+ null;
27
 
28
  if ( is_object($update) ) {
29
  /**
165
  }
166
  }
167
 
168
+ $has_bundle_license = false;
169
+
170
+ if ( is_object( $license ) &&
171
+ FS_Plugin_License::is_valid_id( $license->parent_license_id )
172
+ ) {
173
+ // Context license has a parent license, therefore, the account has a bundle license.
174
+ $has_bundle_license = true;
175
+ }
176
+
177
+ $bundle_subscription = null;
178
+ $is_bundle_first_payment_pending = false;
179
 
180
  if (
181
  $show_plan_row &&
182
  is_object( $license ) &&
183
+ $has_bundle_license
184
  ) {
185
+ $bundle_plan_title = strtoupper( $license->parent_plan_title );
186
+ $bundle_subscription = $fs->_get_subscription( $license->parent_license_id );
187
+ $is_bundle_first_payment_pending = $license->is_first_payment_pending();
188
  }
189
 
 
 
190
  $fs_blog_id = ( is_multisite() && ! is_network_admin() ) ?
191
  get_current_blog_id() :
192
  0;
194
  $active_plugins_directories_map = Freemius::get_active_plugins_directories_map( $fs_blog_id );
195
 
196
  $is_premium = $fs->is_premium();
197
+
198
+ $account_addons = $fs->get_updated_account_addons();
199
+ $installed_addons = $fs->get_installed_addons();
200
+ $installed_addons_ids = array();
201
+
202
+ /**
203
+ * Store the installed add-ons' IDs into a collection which will be used in determining the add-ons to show on the "Account" page, and at the same time try to find an add-on that is activated with a bundle license if the core product is not.
204
+ *
205
+ * @author Leo Fajardo
206
+ *
207
+ * @since 2.4.0
208
+ */
209
+ foreach ( $installed_addons as $fs_addon ) {
210
+ $installed_addons_ids[] = $fs_addon->get_id();
211
+
212
+ if ( $has_bundle_license ) {
213
+ // We already have the context bundle license details, skip.
214
+ continue;
215
+ }
216
+
217
+ if (
218
+ $show_plan_row &&
219
+ $fs_addon->has_active_valid_license()
220
+ ) {
221
+ $addon_license = $fs_addon->_get_license();
222
+
223
+ if ( FS_Plugin_License::is_valid_id( $addon_license->parent_license_id ) ) {
224
+ // Add-on's license is associated with a parent/bundle license.
225
+ $has_bundle_license = true;
226
+
227
+ $bundle_plan_title = strtoupper( $addon_license->parent_plan_title );
228
+ $bundle_subscription = $fs_addon->_get_subscription( $addon_license->parent_license_id );
229
+ $is_bundle_first_payment_pending = $addon_license->is_first_payment_pending();
230
+ }
231
+ }
232
+ }
233
+
234
+ $addons_to_show = array_unique( array_merge( $installed_addons_ids, $account_addons ) );
235
+
236
+ $is_active_bundle_subscription = ( is_object( $bundle_subscription ) && $bundle_subscription->is_active() );
237
  ?>
238
  <div class="wrap fs-section">
239
  <?php if ( ! $has_tabs && ! $fs->apply_filters( 'hide_account_tabs', false ) ) : ?>
435
  'value' => $fs->get_plugin_version()
436
  );
437
 
438
+ if ( ! fs_is_network_admin() && $is_premium && ! $is_whitelabeled ) {
439
  $profile[] = array(
440
  'id' => 'beta_program',
441
  'title' => '',
442
+ 'value' => $site->is_beta
443
  );
444
  }
445
 
446
+ if ( $has_paid_plan || $has_bundle_license ) {
447
  if ( $fs->is_trial() ) {
448
  if ( $show_plan_row ) {
449
  $profile[] = array(
458
  if ( $show_plan_row ) {
459
  $profile[] = array(
460
  'id' => 'plan',
461
+ 'title' => ( $has_bundle_license ? ucfirst( $fs->get_module_type() ) . ' ' : '' ) . $plan_text,
462
  'value' => strtoupper( is_string( $plan->name ) ?
463
  $plan->title :
464
  strtoupper( $free_text )
465
  )
466
  );
467
 
468
+ if ( $has_bundle_license ) {
469
  $profile[] = array(
470
  'id' => 'bundle_plan',
471
  'title' => $bundle_plan_text,
472
+ 'value' => $bundle_plan_title
473
  );
474
  }
475
  }
576
  <?php endif ?>
577
  <?php elseif ( 'bundle_plan' === $p['id'] ) : ?>
578
  <?php if ( is_object( $bundle_subscription ) ) : ?>
579
+ <?php if ( $is_active_bundle_subscription && ! $is_bundle_first_payment_pending ) : ?>
580
  <label class="fs-tag fs-success"><?php echo esc_html( sprintf( $renews_in_text, human_time_diff( time(), strtotime( $bundle_subscription->next_payment ) ) ) ) ?></label>
581
  <?php endif ?>
582
  <?php endif ?>
606
  <div class="button-group">
607
  <?php if ( $is_paying || $fs->is_trial() ) : ?>
608
  <?php if ( ! $fs->is_allowed_to_install() ) : ?>
609
+ <a target="_blank" rel="noopener" class="button button-primary"
610
  href="<?php echo $fs->_get_latest_download_local_url() ?>"><?php
611
  $download_version_text_suffix = ( is_object( $update ) ? ' [' . $update->version . ']' : '' );
612
 
742
  </div>
743
  </div>
744
  <?php endif ?>
 
 
 
 
 
 
 
 
 
 
 
 
745
  <?php if ( 0 < count( $addons_to_show ) ) : ?>
746
  <!-- Add-Ons -->
747
  <div class="postbox">
1058
  });
1059
  });
1060
 
1061
+ $( '.fs-toggle-whitelabel-mode' ).click( function () {
1062
+ var $toggleLink = $( this );
1063
+
1064
+ $.ajax( {
1065
+ url : ajaxurl,
1066
+ method: 'POST',
1067
+ data : {
1068
+ action : '<?php echo $fs->get_ajax_action( 'toggle_whitelabel_mode' ) ?>',
1069
+ security : '<?php echo $fs->get_ajax_security( 'toggle_whitelabel_mode' ) ?>',
1070
+ module_id: <?php echo $fs->get_id() ?>
1071
+ },
1072
+ beforeSend: function () {
1073
+ $toggleLink.parent().text( '<?php
1074
+ $is_whitelabeled ?
1075
+ fs_esc_html_echo_inline( 'Disabling white-label mode', 'disabling-whitelabel-mode' ) :
1076
+ fs_esc_html_echo_inline( 'Enabling white-label mode', 'enabling-whitelabel-mode' )
1077
+ ?>' + '...' );
1078
+ },
1079
+ complete: function () {
1080
+ location.reload();
1081
+ }
1082
+ } );
1083
+ });
1084
  })(jQuery);
1085
  </script>
1086
  <?php
freemius/templates/account/partials/addon.php CHANGED
@@ -366,7 +366,7 @@
366
  );
367
  } else {
368
  $buttons[] = sprintf(
369
- '<a target="_blank" class="button button-primary edit" href="%s">%s</a>',
370
  $fs->_get_latest_download_local_url( $addon_id ),
371
  esc_html( $download_latest_text )
372
  );
@@ -417,7 +417,7 @@
417
  <a class="button button-primary"
418
  href="<?php echo wp_nonce_url( self_admin_url( 'update.php?' . ( ( isset( $addon_info['has_paid_plan'] ) && $addon_info['has_paid_plan'] ) ? 'fs_allow_updater_and_dialog=true&' : '' ) . 'action=install-plugin&plugin=' . $addon_info['slug'] ), 'install-plugin_' . $addon_info['slug'] ) ?>"><?php fs_esc_html_echo_inline( 'Install Now', 'install-now', $slug ) ?></a>
419
  <?php else : ?>
420
- <a target="_blank" class="button button-primary"
421
  href="<?php echo $fs->_get_latest_download_local_url( $addon_id ) ?>"><?php echo esc_html( $download_latest_text ) ?></a>
422
  <?php endif ?>
423
  <?php endif ?>
366
  );
367
  } else {
368
  $buttons[] = sprintf(
369
+ '<a target="_blank" rel="noopener" class="button button-primary edit" href="%s">%s</a>',
370
  $fs->_get_latest_download_local_url( $addon_id ),
371
  esc_html( $download_latest_text )
372
  );
417
  <a class="button button-primary"
418
  href="<?php echo wp_nonce_url( self_admin_url( 'update.php?' . ( ( isset( $addon_info['has_paid_plan'] ) && $addon_info['has_paid_plan'] ) ? 'fs_allow_updater_and_dialog=true&' : '' ) . 'action=install-plugin&plugin=' . $addon_info['slug'] ), 'install-plugin_' . $addon_info['slug'] ) ?>"><?php fs_esc_html_echo_inline( 'Install Now', 'install-now', $slug ) ?></a>
419
  <?php else : ?>
420
+ <a target="_blank" rel="noopener" class="button button-primary"
421
  href="<?php echo $fs->_get_latest_download_local_url( $addon_id ) ?>"><?php echo esc_html( $download_latest_text ) ?></a>
422
  <?php endif ?>
423
  <?php endif ?>
freemius/templates/account/payments.php CHANGED
@@ -47,7 +47,7 @@
47
  <td><?php echo $payment->formatted_gross() ?></td>
48
  <td><?php if (! $payment->is_migrated() ) : ?><a href="<?php echo $fs->_get_invoice_api_url( $payment->id ) ?>"
49
  class="button button-small"
50
- target="_blank"><?php fs_esc_html_echo_inline( 'Invoice', 'invoice', $slug ) ?></a><?php endif ?></td>
51
  </tr>
52
  <?php $odd = ! $odd; endforeach ?>
53
  </tbody>
47
  <td><?php echo $payment->formatted_gross() ?></td>
48
  <td><?php if (! $payment->is_migrated() ) : ?><a href="<?php echo $fs->_get_invoice_api_url( $payment->id ) ?>"
49
  class="button button-small"
50
+ target="_blank" rel="noopener"><?php fs_esc_html_echo_inline( 'Invoice', 'invoice', $slug ) ?></a><?php endif ?></td>
51
  </tr>
52
  <?php $odd = ! $odd; endforeach ?>
53
  </tbody>
freemius/templates/add-ons.php CHANGED
@@ -332,11 +332,11 @@
332
  }
333
  ?>
334
  <?php else : ?>
335
- <a target="_blank" class="button button-primary" href="<?php echo $latest_download_local_url ?>"><?php echo esc_html( $download_latest_text ) ?></a>
336
  <?php endif ?>
337
  <div class="button button-primary fs-dropdown-arrow-button"><span class="fs-dropdown-arrow"></span><ul class="fs-dropdown-list" style="display: none">
338
  <?php if ( $is_allowed_to_install && ! empty( $latest_download_local_url ) ) : ?>
339
- <li><a target="_blank" href="<?php echo $latest_download_local_url ?>"><?php echo esc_html( $download_latest_text ) ?></a></li>
340
  <?php endif ?>
341
  <li><?php
342
  echo sprintf(
332
  }
333
  ?>
334
  <?php else : ?>
335
+ <a target="_blank" rel="noopener" class="button button-primary" href="<?php echo $latest_download_local_url ?>"><?php echo esc_html( $download_latest_text ) ?></a>
336
  <?php endif ?>
337
  <div class="button button-primary fs-dropdown-arrow-button"><span class="fs-dropdown-arrow"></span><ul class="fs-dropdown-list" style="display: none">
338
  <?php if ( $is_allowed_to_install && ! empty( $latest_download_local_url ) ) : ?>
339
+ <li><a target="_blank" rel="noopener" href="<?php echo $latest_download_local_url ?>"><?php echo esc_html( $download_latest_text ) ?></a></li>
340
  <?php endif ?>
341
  <li><?php
342
  echo sprintf(
freemius/templates/auto-installation.php CHANGED
@@ -93,7 +93,7 @@
93
  fs_esc_html_inline( 'An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now.', 'installing-in-n', $slug ),
94
  $plugin_title,
95
  sprintf(
96
- '<a href="%s" target="_blank">%s</a>',
97
  'https://freemius.com',
98
  'freemius.com'
99
  ),
93
  fs_esc_html_inline( 'An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now.', 'installing-in-n', $slug ),
94
  $plugin_title,
95
  sprintf(
96
+ '<a href="%s" target="_blank" rel="noopener">%s</a>',
97
  'https://freemius.com',
98
  'freemius.com'
99
  ),
freemius/templates/connect.php CHANGED
@@ -54,7 +54,7 @@
54
  ) );
55
  }
56
 
57
- $freemius_link = '<a href="' . $freemius_site_url . '" target="_blank" tabindex="1">freemius.com</a>';
58
 
59
  $error = fs_request_get( 'error' );
60
 
@@ -181,12 +181,7 @@
181
 
182
  $message = $fs->apply_filters(
183
  'connect-message_on-premium',
184
- ($is_network_upgrade_mode ?
185
- '' :
186
- /* translators: %s: name (e.g. Hey John,) */
187
- $hey_x_text . '<br>'
188
- ) .
189
- sprintf( fs_text_inline( 'Thanks for purchasing %s! To get started, please enter your license key:', 'thanks-for-purchasing', $slug ), '<b>' . $fs->get_plugin_name() . '</b>' ),
190
  $first_name,
191
  $fs->get_plugin_name()
192
  );
@@ -222,13 +217,13 @@
222
  esc_html( $default_optin_message ),
223
  '<b>' . esc_html( $fs->get_plugin_name() ) . '</b>',
224
  '<b>' . $current_user->user_login . '</b>',
225
- '<a href="' . $site_url . '" target="_blank">' . $site_url . '</a>',
226
  $freemius_link
227
  ),
228
  $first_name,
229
  $fs->get_plugin_name(),
230
  $current_user->user_login,
231
- '<a href="' . $site_url . '" target="_blank">' . $site_url . '</a>',
232
  $freemius_link,
233
  $is_gdpr_required
234
  );
@@ -347,6 +342,9 @@
347
  } ?>><?php echo esc_html( $button_label ) ?></button>
348
  </form>
349
  <?php endif ?>
 
 
 
350
  </div><?php
351
 
352
  // Set core permission list items.
@@ -367,26 +365,30 @@
367
  );
368
  }
369
 
370
- $permissions['site'] = array(
371
- 'icon-class' => 'dashicons dashicons-admin-settings',
372
- 'label' => $fs->get_text_inline( 'Your Site Overview', 'permissions-site' ),
373
- 'desc' => $fs->get_text_inline( 'Site URL, WP version, PHP info', 'permissions-site_desc' ),
374
- 'priority' => 10,
375
- );
376
-
377
- $permissions['notices'] = array(
378
- 'icon-class' => 'dashicons dashicons-testimonial',
379
- 'label' => $fs->get_text_inline( 'Admin Notices', 'permissions-admin-notices' ),
380
- 'desc' => $fs->get_text_inline( 'Updates, announcements, marketing, no spam', 'permissions-newsletter_desc' ),
381
- 'priority' => 13,
382
- );
 
 
 
383
 
384
- $permissions['events'] = array(
385
- 'icon-class' => 'dashicons dashicons-admin-' . ( $fs->is_plugin() ? 'plugins' : 'appearance' ),
386
- 'label' => sprintf( $fs->get_text_inline( 'Current %s Events', 'permissions-events' ), ucfirst( $fs->get_module_type() ) ),
387
- 'desc' => $fs->get_text_inline( 'Activation, deactivation and uninstall', 'permissions-events_desc' ),
388
- 'priority' => 20,
389
- );
 
390
 
391
  // Add newsletter permissions if enabled.
392
  if ( $is_gdpr_required || $fs->is_permission_requested( 'newsletter' ) ) {
@@ -398,13 +400,15 @@
398
  );
399
  }
400
 
401
- $permissions['extensions'] = array(
402
- 'icon-class' => 'dashicons dashicons-menu',
403
- 'label' => $fs->get_text_inline( 'Plugins & Themes', 'permissions-extensions' ),
404
- 'desc' => $fs->get_text_inline( 'Title, slug, version, and is active', 'permissions-extensions_desc' ),
405
- 'priority' => 25,
406
- 'optional' => true,
407
- );
 
 
408
 
409
  // Allow filtering of the permissions list.
410
  $permissions = $fs->apply_filters( 'permission_list', $permissions );
@@ -416,26 +420,28 @@
416
  <div class="fs-permissions">
417
  <?php if ( $require_license_key ) : ?>
418
  <p class="fs-license-sync-disclaimer"><?php
419
- echo sprintf(
420
- fs_esc_html_inline( 'The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license.', 'license-sync-disclaimer', $slug ),
421
  $fs->get_module_label( true ),
422
- $freemius_link
 
423
  ) ?></p>
424
- <?php endif ?>
425
  <a class="fs-trigger" href="#" tabindex="1"><?php fs_esc_html_echo_inline( 'What permissions are being granted?', 'what-permissions', $slug ) ?></a>
 
426
  <ul><?php
427
  foreach ( $permissions as $id => $permission ) : ?>
428
  <li id="fs-permission-<?php echo esc_attr( $id ); ?>"
429
  class="fs-permission fs-<?php echo esc_attr( $id ); ?>">
430
  <i class="<?php echo esc_attr( $permission['icon-class'] ); ?>"></i>
431
  <?php if ( isset( $permission['optional'] ) && true === $permission['optional'] ) : ?>
432
- <div class="fs-switch fs-small fs-round fs-on">
433
  <div class="fs-toggle"></div>
434
  </div>
435
  <?php endif ?>
436
 
437
  <div class="fs-permission-description">
438
- <span><?php echo esc_html( $permission['label'] ); ?></span>
439
 
440
  <p><?php echo esc_html( $permission['desc'] ); ?></p>
441
  </div>
@@ -458,10 +464,10 @@
458
  </div>
459
  <?php endif ?>
460
  <div class="fs-terms">
461
- <a href="https://freemius.com/privacy/" target="_blank"
462
  tabindex="1"><?php fs_esc_html_echo_inline( 'Privacy Policy', 'privacy-policy', $slug ) ?></a>
463
  &nbsp;&nbsp;-&nbsp;&nbsp;
464
- <a href="<?php echo $require_license_key ? $freemius_plugin_terms_url : $freemius_usage_tracking_url ?>" target="_blank" tabindex="1"><?php $require_license_key ? fs_echo_inline( 'License Agreement', 'license-agreement', $slug ) : fs_echo_inline( 'Terms of Service', 'tos', $slug ) ?></a>
465
  </div>
466
  </div>
467
  <?php
@@ -701,9 +707,16 @@
701
  var ajaxOptin = ( requireLicenseKey || isNetworkActive );
702
 
703
  $form.on('submit', function () {
704
- var isExtensionsTrackingAllowed = $( '#fs-permission-extensions .fs-switch' ).hasClass( 'fs-on' );
705
-
706
- $( 'input[name=is_extensions_tracking_allowed]' ).val( isExtensionsTrackingAllowed ? 1 : 0 );
 
 
 
 
 
 
 
707
 
708
  /**
709
  * @author Vova Feldman (@svovaf)
54
  ) );
55
  }
56
 
57
+ $freemius_link = '<a href="' . $freemius_site_url . '" target="_blank" rel="noopener" tabindex="1">freemius.com</a>';
58
 
59
  $error = fs_request_get( 'error' );
60
 
181
 
182
  $message = $fs->apply_filters(
183
  'connect-message_on-premium',
184
+ sprintf( fs_text_inline( 'Welcome to %s! To get started, please enter your license key:', 'thanks-for-purchasing', $slug ), '<b>' . $fs->get_plugin_name() . '</b>' ),
 
 
 
 
 
185
  $first_name,
186
  $fs->get_plugin_name()
187
  );
217
  esc_html( $default_optin_message ),
218
  '<b>' . esc_html( $fs->get_plugin_name() ) . '</b>',
219
  '<b>' . $current_user->user_login . '</b>',
220
+ '<a href="' . $site_url . '" target="_blank" rel="noopener noreferrer">' . $site_url . '</a>',
221
  $freemius_link
222
  ),
223
  $first_name,
224
  $fs->get_plugin_name(),
225
  $current_user->user_login,
226
+ '<a href="' . $site_url . '" target="_blank" rel="noopener noreferrer">' . $site_url . '</a>',
227
  $freemius_link,
228
  $is_gdpr_required
229
  );
342
  } ?>><?php echo esc_html( $button_label ) ?></button>
343
  </form>
344
  <?php endif ?>
345
+ <?php if ( $require_license_key ) : ?>
346
+ <a id="license_issues_link" href="<?php echo $fs->apply_filters( 'known_license_issues_url', 'https://freemius.com/help/documentation/wordpress-sdk/license-activation-issues/' ) ?>" target="_blank"><?php fs_esc_html_echo_inline( 'License issues?', 'license-issues', $slug ) ?></a>
347
+ <?php endif ?>
348
  </div><?php
349
 
350
  // Set core permission list items.
365
  );
366
  }
367
 
368
+ $permissions['site'] = array(
369
+ 'icon-class' => 'dashicons dashicons-admin-settings',
370
+ 'tooltip' => ( $require_license_key ? sprintf( $fs->get_text_inline( 'So you can manage and control your license remotely from the User Dashboard.', 'permissions-site_tooltip' ), $fs->get_module_type() ) : '' ),
371
+ 'label' => $fs->get_text_inline( 'Your Site Overview', 'permissions-site' ),
372
+ 'desc' => $fs->get_text_inline( 'Site URL, WP version, PHP info', 'permissions-site_desc' ),
373
+ 'priority' => 10,
374
+ );
375
+
376
+ if ( ! $require_license_key ) {
377
+ $permissions['notices'] = array(
378
+ 'icon-class' => 'dashicons dashicons-testimonial',
379
+ 'label' => $fs->get_text_inline( 'Admin Notices', 'permissions-admin-notices' ),
380
+ 'desc' => $fs->get_text_inline( 'Updates, announcements, marketing, no spam', 'permissions-newsletter_desc' ),
381
+ 'priority' => 13,
382
+ );
383
+ }
384
 
385
+ $permissions['events'] = array(
386
+ 'icon-class' => 'dashicons dashicons-admin-' . ( $fs->is_plugin() ? 'plugins' : 'appearance' ),
387
+ 'tooltip' => ( $require_license_key ? sprintf( $fs->get_text_inline( 'So you can reuse the license when the %s is no longer active.', 'permissions-events_tooltip' ), $fs->get_module_type() ) : '' ),
388
+ 'label' => sprintf( $fs->get_text_inline( 'Current %s Status', 'permissions-events' ), ucfirst( $fs->get_module_type() ) ),
389
+ 'desc' => $fs->get_text_inline( 'Active, deactivated, or uninstalled', 'permissions-events_desc' ),
390
+ 'priority' => 20,
391
+ );
392
 
393
  // Add newsletter permissions if enabled.
394
  if ( $is_gdpr_required || $fs->is_permission_requested( 'newsletter' ) ) {
400
  );
401
  }
402
 
403
+ $permissions['extensions'] = array(
404
+ 'icon-class' => 'dashicons dashicons-menu',
405
+ 'label' => $fs->get_text_inline( 'Plugins & Themes', 'permissions-extensions' ) . ( $require_license_key ? ' (' . $fs->get_text_inline( 'optional' ) . ')' : '' ),
406
+ 'tooltip' => $fs->get_text_inline( 'To help us troubleshoot any potential issues that may arise from other plugin or theme conflicts.', 'permissions-events_tooltip' ),
407
+ 'desc' => $fs->get_text_inline( 'Title, slug, version, and is active', 'permissions-extensions_desc' ),
408
+ 'priority' => 25,
409
+ 'optional' => true,
410
+ 'default' => $fs->apply_filters( 'permission_extensions_default', ! $require_license_key )
411
+ );
412
 
413
  // Allow filtering of the permissions list.
414
  $permissions = $fs->apply_filters( 'permission_list', $permissions );
420
  <div class="fs-permissions">
421
  <?php if ( $require_license_key ) : ?>
422
  <p class="fs-license-sync-disclaimer"><?php
423
+ echo sprintf(
424
+ fs_esc_html_inline( 'The %1$s will periodically send %2$s to %3$s for security & feature updates delivery, and license management.', 'license-sync-disclaimer', $slug ),
425
  $fs->get_module_label( true ),
426
+ sprintf('<a class="fs-trigger" href="#" tabindex="1">%s</a>', fs_esc_html_inline('diagnostic data', 'send-data')),
427
+ '<a class="fs-tooltip-trigger' . (is_rtl() ? ' rtl' : '') . '" href="' . $freemius_site_url . '" target="_blank" rel="noopener" tabindex="1">freemius.com <i class="dashicons dashicons-editor-help" style="text-decoration: none;"><span class="fs-tooltip" style="width: 170px">' . $fs->get_text_inline( 'Freemius is our licensing and software updates engine', 'permissions-extensions_desc' ) . '</span></i></a>'
428
  ) ?></p>
429
+ <?php else : ?>
430
  <a class="fs-trigger" href="#" tabindex="1"><?php fs_esc_html_echo_inline( 'What permissions are being granted?', 'what-permissions', $slug ) ?></a>
431
+ <?php endif ?>
432
  <ul><?php
433
  foreach ( $permissions as $id => $permission ) : ?>
434
  <li id="fs-permission-<?php echo esc_attr( $id ); ?>"
435
  class="fs-permission fs-<?php echo esc_attr( $id ); ?>">
436
  <i class="<?php echo esc_attr( $permission['icon-class'] ); ?>"></i>
437
  <?php if ( isset( $permission['optional'] ) && true === $permission['optional'] ) : ?>
438
+ <div class="fs-switch fs-small fs-round fs-<?php echo (! isset( $permission['default'] ) || true === $permission['default'] ) ? 'on' : 'off' ?>">
439
  <div class="fs-toggle"></div>
440
  </div>
441
  <?php endif ?>
442
 
443
  <div class="fs-permission-description">
444
+ <span<?php if ( ! empty($permission['tooltip']) ) : ?> class="fs-tooltip-trigger"<?php endif ?>><?php echo esc_html( $permission['label'] ); ?><?php if ( ! empty($permission['tooltip']) ) : ?><i class="dashicons dashicons-editor-help"><span class="fs-tooltip" style="width: 200px"><?php echo $permission['tooltip'] ?></span></i><?php endif ?></span>
445
 
446
  <p><?php echo esc_html( $permission['desc'] ); ?></p>
447
  </div>
464
  </div>
465
  <?php endif ?>
466
  <div class="fs-terms">
467
+ <a href="https://freemius.com/privacy/" target="_blank" rel="noopener"
468
  tabindex="1"><?php fs_esc_html_echo_inline( 'Privacy Policy', 'privacy-policy', $slug ) ?></a>
469
  &nbsp;&nbsp;-&nbsp;&nbsp;
470
+ <a href="<?php echo $require_license_key ? $freemius_plugin_terms_url : $freemius_usage_tracking_url ?>" target="_blank" rel="noopener" tabindex="1"><?php $require_license_key ? fs_echo_inline( 'License Agreement', 'license-agreement', $slug ) : fs_echo_inline( 'Terms of Service', 'tos', $slug ) ?></a>
471
  </div>
472
  </div>
473
  <?php
707
  var ajaxOptin = ( requireLicenseKey || isNetworkActive );
708
 
709
  $form.on('submit', function () {
710
+ var $extensionsPermission = $('#fs-permission-extensions .fs-switch'),
711
+ isExtensionsTrackingAllowed = ($extensionsPermission.length > 0) ?
712
+ $extensionsPermission.hasClass('fs-on') :
713
+ null;
714
+
715
+ if (null === isExtensionsTrackingAllowed) {
716
+ $('input[name=is_extensions_tracking_allowed]').remove();
717
+ } else {
718
+ $('input[name=is_extensions_tracking_allowed]').val(isExtensionsTrackingAllowed ? 1 : 0);
719
+ }
720
 
721
  /**
722
  * @author Vova Feldman (@svovaf)
freemius/templates/forms/affiliation.php CHANGED
@@ -83,6 +83,9 @@
83
  }
84
 
85
  $apply_to_become_affiliate_text = fs_text_inline( 'Apply to become an affiliate', 'apply-to-become-an-affiliate', $slug );
 
 
 
86
  ?>
87
  <div id="fs_affiliation_content_wrapper" class="wrap">
88
  <form method="post" action="">
@@ -104,7 +107,7 @@
104
  fs_esc_html_inline( "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s.", 'affiliate-application-accepted', $slug ),
105
  $plugin_title,
106
  sprintf(
107
- '<a href="%s" target="_blank">%s</a>',
108
  $members_dashboard_login_url,
109
  $members_dashboard_login_url
110
  )
@@ -217,11 +220,17 @@
217
  <p class="description"><?php echo esc_html( sprintf( fs_text_inline( 'Please provide details on how you intend to promote %s (please be as specific as possible).', 'promotion-method-desc-field-desc', $slug ), $plugin_title ) ) ?></p>
218
  <?php endif ?>
219
  </div>
 
 
 
 
 
 
220
  </form>
221
  </div>
222
  <?php if ( ! $is_affiliate ) : ?>
223
  <a id="cancel_button" href="#" class="button button-secondary button-cancel" style="display: none"><?php fs_esc_html_echo_inline( 'Cancel', 'cancel', $slug ) ?></a>
224
- <a id="submit_button" class="button button-primary" href="#" style="display: none"><?php echo esc_html( $apply_to_become_affiliate_text ) ?></a>
225
  <a id="apply_button" class="button button-primary" href="#"><?php fs_esc_html_echo_inline( 'Become an affiliate', 'become-an-affiliate', $slug ) ?></a>
226
  <?php endif ?>
227
  </div>
@@ -242,7 +251,8 @@
242
  $errorMessageContainer = $('#error_message'),
243
  $domain = $('#domain'),
244
  $addDomain = $('#add_domain'),
245
- $extraDomainsContainer = $('#extra_domains_container');
 
246
 
247
  $applyButton.click(function (evt) {
248
  evt.preventDefault();
@@ -360,7 +370,7 @@
360
  data : {
361
  action : '<?php echo $fs->get_ajax_action( 'submit_affiliate_application' ) ?>',
362
  security : '<?php echo $fs->get_ajax_security( 'submit_affiliate_application' ) ?>',
363
- module_id: '<?php echo $fs->get_id() ?>',
364
  affiliate: affiliate
365
  },
366
  beforeSend: function () {
@@ -472,13 +482,26 @@
472
 
473
  window.scrollTo(0, 0);
474
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
475
  });
476
  </script>
477
  </div>
478
  <?php
479
  $params = array(
480
  'page' => 'affiliation',
481
- 'module_id' => $fs->get_id(),
482
  'module_slug' => $slug,
483
  'module_version' => $fs->get_plugin_version(),
484
  );
83
  }
84
 
85
  $apply_to_become_affiliate_text = fs_text_inline( 'Apply to become an affiliate', 'apply-to-become-an-affiliate', $slug );
86
+
87
+ $module_id = $fs->get_id();
88
+ $affiliate_program_terms_url = "https://freemius.com/plugin/{$module_id}/{$slug}/legal/affiliate-program/";
89
  ?>
90
  <div id="fs_affiliation_content_wrapper" class="wrap">
91
  <form method="post" action="">
107
  fs_esc_html_inline( "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s.", 'affiliate-application-accepted', $slug ),
108
  $plugin_title,
109
  sprintf(
110
+ '<a href="%s" target="_blank" rel="noopener">%s</a>',
111
  $members_dashboard_login_url,
112
  $members_dashboard_login_url
113
  )
220
  <p class="description"><?php echo esc_html( sprintf( fs_text_inline( 'Please provide details on how you intend to promote %s (please be as specific as possible).', 'promotion-method-desc-field-desc', $slug ), $plugin_title ) ) ?></p>
221
  <?php endif ?>
222
  </div>
223
+ <?php if ( ! $is_affiliate ) : ?>
224
+ <div>
225
+ <input type="checkbox" id="legal_consent_checkbox">
226
+ <label for="legal_consent_checkbox">I agree to the <a href="<?php echo $affiliate_program_terms_url ?>" target="_blank" rel="noopener">Referrer Program</a>'s terms & conditions.</label>
227
+ </div>
228
+ <?php endif ?>
229
  </form>
230
  </div>
231
  <?php if ( ! $is_affiliate ) : ?>
232
  <a id="cancel_button" href="#" class="button button-secondary button-cancel" style="display: none"><?php fs_esc_html_echo_inline( 'Cancel', 'cancel', $slug ) ?></a>
233
+ <a id="submit_button" class="button button-primary disabled" href="#" style="display: none"><?php echo esc_html( $apply_to_become_affiliate_text ) ?></a>
234
  <a id="apply_button" class="button button-primary" href="#"><?php fs_esc_html_echo_inline( 'Become an affiliate', 'become-an-affiliate', $slug ) ?></a>
235
  <?php endif ?>
236
  </div>
251
  $errorMessageContainer = $('#error_message'),
252
  $domain = $('#domain'),
253
  $addDomain = $('#add_domain'),
254
+ $extraDomainsContainer = $('#extra_domains_container'),
255
+ $legalConsentCheckbox = $( '#legal_consent_checkbox' );
256
 
257
  $applyButton.click(function (evt) {
258
  evt.preventDefault();
370
  data : {
371
  action : '<?php echo $fs->get_ajax_action( 'submit_affiliate_application' ) ?>',
372
  security : '<?php echo $fs->get_ajax_security( 'submit_affiliate_application' ) ?>',
373
+ module_id: '<?php echo $module_id ?>',
374
  affiliate: affiliate
375
  },
376
  beforeSend: function () {
482
 
483
  window.scrollTo(0, 0);
484
  }
485
+
486
+ /**
487
+ * @author Xiaheng Chen (@xhchen)
488
+ *
489
+ * @since 2.4.0
490
+ */
491
+ $legalConsentCheckbox.click( function () {
492
+ if ( $( this ).prop( 'checked' ) ) {
493
+ $submitButton.removeClass( 'disabled' );
494
+ } else {
495
+ $submitButton.addClass( 'disabled' );
496
+ }
497
+ } );
498
  });
499
  </script>
500
  </div>
501
  <?php
502
  $params = array(
503
  'page' => 'affiliation',
504
+ 'module_id' => $module_id,
505
  'module_slug' => $slug,
506
  'module_version' => $fs->get_plugin_version(),
507
  );
freemius/templates/forms/deactivation/form.php CHANGED
@@ -79,8 +79,8 @@ HTML;
79
  ?>
80
  <script type="text/javascript">
81
  (function ($) {
82
- var reasonsHtml = <?php echo json_encode( $reasons_list_items_html ) ?>,
83
- modalHtml =
84
  '<div class="fs-modal fs-modal-deactivation-feedback<?php echo empty( $confirmation_message ) ? ' no-confirmation-message' : ''; ?>">'
85
  + ' <div class="fs-modal-dialog">'
86
  + ' <div class="fs-modal-header">'
@@ -97,19 +97,19 @@ HTML;
97
  + ' </div>'
98
  + ' </div>'
99
  + '</div>',
100
- $modal = $(modalHtml),
101
- $deactivateLink = $('#the-list .deactivate > [data-module-id=<?php echo $fs->get_id() ?>].fs-module-id').prev(),
102
- selectedReasonID = false,
103
- redirectLink = '',
104
- $anonymousFeedback = $modal.find( '.anonymous-feedback-label' ),
105
- isAnonymous = <?php echo ( $is_anonymous ? 'true' : 'false' ); ?>,
106
- otherReasonID = <?php echo Freemius::REASON_OTHER; ?>,
107
- dontShareDataReasonID = <?php echo Freemius::REASON_DONT_LIKE_TO_SHARE_MY_INFORMATION; ?>,
108
- deleteThemeUpdateData = <?php echo $fs->is_theme() && $fs->is_premium() && ! $fs->has_any_active_valid_license() ? 'true' : 'false' ?>,
109
  $subscriptionCancellationModal = $( '.fs-modal-subscription-cancellation-<?php echo $fs->get_id() ?>' ),
110
- showDeactivationFeedbackForm = <?php echo ( $show_deactivation_feedback_form ? 'true' : 'false' ) ?>;
 
111
 
112
- $modal.appendTo($('body'));
113
 
114
  if ( 0 !== $subscriptionCancellationModal.length ) {
115
  $subscriptionCancellationModal.on( '<?php echo $fs->get_action_tag( 'subscription_cancellation_action' ) ?>', function( evt, cancelSubscription ) {
@@ -181,7 +181,11 @@ HTML;
181
  registerEventHandlers();
182
 
183
  function registerEventHandlers() {
184
- $deactivateLink.click(function (evt) {
 
 
 
 
185
  evt.preventDefault();
186
 
187
  redirectLink = $(this).attr('href');
79
  ?>
80
  <script type="text/javascript">
81
  (function ($) {
82
+ var reasonsHtml = <?php echo json_encode( $reasons_list_items_html ) ?>,
83
+ modalHtml =
84
  '<div class="fs-modal fs-modal-deactivation-feedback<?php echo empty( $confirmation_message ) ? ' no-confirmation-message' : ''; ?>">'
85
  + ' <div class="fs-modal-dialog">'
86
  + ' <div class="fs-modal-header">'
97
  + ' </div>'
98
  + ' </div>'
99
  + '</div>',
100
+ $modal = $(modalHtml),
101
+ selectedReasonID = false,
102
+ redirectLink = '',
103
+ $anonymousFeedback = $modal.find( '.anonymous-feedback-label' ),
104
+ isAnonymous = <?php echo ( $is_anonymous ? 'true' : 'false' ); ?>,
105
+ otherReasonID = <?php echo Freemius::REASON_OTHER; ?>,
106
+ dontShareDataReasonID = <?php echo Freemius::REASON_DONT_LIKE_TO_SHARE_MY_INFORMATION; ?>,
107
+ deleteThemeUpdateData = <?php echo $fs->is_theme() && $fs->is_premium() && ! $fs->has_any_active_valid_license() ? 'true' : 'false' ?>,
 
108
  $subscriptionCancellationModal = $( '.fs-modal-subscription-cancellation-<?php echo $fs->get_id() ?>' ),
109
+ showDeactivationFeedbackForm = <?php echo ( $show_deactivation_feedback_form ? 'true' : 'false' ) ?>,
110
+ $body = $( 'body' );
111
 
112
+ $modal.appendTo( $body );
113
 
114
  if ( 0 !== $subscriptionCancellationModal.length ) {
115
  $subscriptionCancellationModal.on( '<?php echo $fs->get_action_tag( 'subscription_cancellation_action' ) ?>', function( evt, cancelSubscription ) {
181
  registerEventHandlers();
182
 
183
  function registerEventHandlers() {
184
+ $body.on( 'click', '#the-list .deactivate > a', function ( evt ) {
185
+ if ( 0 === $( this ).next( '[data-module-id=<?php echo $fs->get_id() ?>].fs-module-id' ).length ) {
186
+ return true;
187
+ }
188
+
189
  evt.preventDefault();
190
 
191
  redirectLink = $(this).attr('href');
freemius/templates/forms/license-activation.php CHANGED
@@ -35,7 +35,7 @@
35
  // Insights platform information.
36
  $fs->get_usage_tracking_terms_url();
37
 
38
- $freemius_link = '<a href="' . $freemius_site_url . '" target="_blank" tabindex="0">freemius.com</a>';
39
 
40
  $message_below_input_field = sprintf(
41
  fs_text_inline( 'The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license.', 'license-sync-disclaimer', $slug ),
@@ -115,13 +115,15 @@ HTML;
115
  * @var FS_Plugin_License $license
116
  */
117
  foreach ( $available_licenses as $license ) {
 
 
118
  $label = sprintf(
119
  "%s-Site %s License - %s",
120
  ( 1 == $license->quota ?
121
  'Single' :
122
  ( $license->is_unlimited() ? 'Unlimited' : $license->quota )
123
  ),
124
- $fs->_get_plan_by_id( $license->plan_id )->title,
125
  $license->get_html_escaped_masked_secret_key()
126
  );
127
 
@@ -229,16 +231,16 @@ HTML;
229
  + ' </div>'
230
  + '</div>',
231
  $modal = $(modalHtml),
232
- $activateLicenseLink = $('span.activate-license.<?php echo $unique_affix ?> a, .activate-license-trigger.<?php echo $unique_affix ?>'),
233
  $activateLicenseButton = $modal.find('.button-activate-license'),
234
  $licenseKeyInput = $modal.find( 'input.fs-license-key' ),
235
  $licenseActivationMessage = $modal.find( '.license-activation-message' ),
236
  isNetworkActivation = <?php echo $is_network_activation ? 'true' : 'false' ?>,
237
  isUserChangeSupported = <?php echo $is_user_change_supported ? 'true' : 'false' ?>,
238
  isSingleSiteActivation = false,
239
- $ownershipChangeOptionContainer = $modal.find( '.ownership-change-option-container' );
 
240
 
241
- $modal.appendTo($('body'));
242
 
243
  var
244
  $licensesDropdown = $modal.find( '.fs-licenses' ),
@@ -459,7 +461,7 @@ HTML;
459
  });
460
  }
461
 
462
- $activateLicenseLink.click(function (evt) {
463
  evt.preventDefault();
464
 
465
  showModal( evt );
@@ -635,7 +637,7 @@ HTML;
635
 
636
  registerEventHandlers();
637
 
638
- $('body').trigger('licenseActivationLoaded');
639
 
640
  /**
641
  * @author Leo Fajardo (@leorw)
@@ -800,7 +802,7 @@ HTML;
800
 
801
  // Display the dialog box.
802
  $modal.addClass('active');
803
- $('body').addClass('has-fs-modal');
804
 
805
  var
806
  $singleInstallDetails = $( evt.target ).parents( 'tr.fs-install-details' ),
@@ -812,7 +814,9 @@ HTML;
812
  $singleInstallDetails.prev().data( 'blog-id' ) :
813
  null;
814
 
 
815
  $multisiteOptionsContainer.toggle( isNetworkActivation && ! isSingleSiteActivation );
 
816
 
817
  if ( hasLicenseTypes ) {
818
  $licenseTypes.attr( 'checked', false );
@@ -832,7 +836,7 @@ HTML;
832
 
833
  function closeModal() {
834
  $modal.removeClass('active');
835
- $('body').removeClass('has-fs-modal');
836
  }
837
 
838
  function resetActivateLicenseButton() {
35
  // Insights platform information.
36
  $fs->get_usage_tracking_terms_url();
37
 
38
+ $freemius_link = '<a href="' . $freemius_site_url . '" target="_blank" rel="noopener" tabindex="0">freemius.com</a>';
39
 
40
  $message_below_input_field = sprintf(
41
  fs_text_inline( 'The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license.', 'license-sync-disclaimer', $slug ),
115
  * @var FS_Plugin_License $license
116
  */
117
  foreach ( $available_licenses as $license ) {
118
+ $plan = $fs->_get_plan_by_id( $license->plan_id );
119
+
120
  $label = sprintf(
121
  "%s-Site %s License - %s",
122
  ( 1 == $license->quota ?
123
  'Single' :
124
  ( $license->is_unlimited() ? 'Unlimited' : $license->quota )
125
  ),
126
+ ( is_object( $plan ) ? $plan->title : '' ),
127
  $license->get_html_escaped_masked_secret_key()
128
  );
129
 
231
  + ' </div>'
232
  + '</div>',
233
  $modal = $(modalHtml),
 
234
  $activateLicenseButton = $modal.find('.button-activate-license'),
235
  $licenseKeyInput = $modal.find( 'input.fs-license-key' ),
236
  $licenseActivationMessage = $modal.find( '.license-activation-message' ),
237
  isNetworkActivation = <?php echo $is_network_activation ? 'true' : 'false' ?>,
238
  isUserChangeSupported = <?php echo $is_user_change_supported ? 'true' : 'false' ?>,
239
  isSingleSiteActivation = false,
240
+ $ownershipChangeOptionContainer = $modal.find( '.ownership-change-option-container' ),
241
+ $body = $( 'body' );
242
 
243
+ $modal.appendTo( $body );
244
 
245
  var
246
  $licensesDropdown = $modal.find( '.fs-licenses' ),
461
  });
462
  }
463
 
464
+ $body.on( 'click', 'span.activate-license.<?php echo $unique_affix ?> a, .activate-license-trigger.<?php echo $unique_affix ?>', function (evt) {
465
  evt.preventDefault();
466
 
467
  showModal( evt );
637
 
638
  registerEventHandlers();
639
 
640
+ $body.trigger('licenseActivationLoaded');
641
 
642
  /**
643
  * @author Leo Fajardo (@leorw)
802
 
803
  // Display the dialog box.
804
  $modal.addClass('active');
805
+ $body.addClass('has-fs-modal');
806
 
807
  var
808
  $singleInstallDetails = $( evt.target ).parents( 'tr.fs-install-details' ),
814
  $singleInstallDetails.prev().data( 'blog-id' ) :
815
  null;
816
 
817
+ <?php if ( $fs->apply_filters( 'enable_per_site_activation', true ) ) : ?>
818
  $multisiteOptionsContainer.toggle( isNetworkActivation && ! isSingleSiteActivation );
819
+ <?php endif ?>
820
 
821
  if ( hasLicenseTypes ) {
822
  $licenseTypes.attr( 'checked', false );
836
 
837
  function closeModal() {
838
  $modal.removeClass('active');
839
+ $body.removeClass('has-fs-modal');
840
  }
841
 
842
  function resetActivateLicenseButton() {
freemius/templates/forms/optout.php CHANGED
@@ -49,7 +49,7 @@
49
  fs_text_inline( 'By clicking "Opt Out", we will no longer be sending any data from %s to %s.', 'opt-out-message-clicking-opt-out', $slug ),
50
  $plugin_title,
51
  sprintf(
52
- '<a href="%s" target="_blank">%s</a>',
53
  'https://freemius.com',
54
  'freemius.com'
55
  )
@@ -98,20 +98,21 @@
98
  $modal = $(modalHtml),
99
  $adminNotice = $( <?php echo json_encode( $admin_notice_html ) ?> ),
100
  action = '<?php echo $action ?>',
101
- $actionLink = $( 'span.opt-in-or-opt-out.<?php echo $slug ?> a' ),
102
  $optOutButton = $modal.find( '.button-opt-out' ),
103
  $optOutErrorMessage = $modal.find( '.opt-out-error-message' ),
104
  $extensionsTracking = $modal.find( '.fs-permission-extensions' ),
 
105
  moduleID = '<?php echo $fs->get_id() ?>';
106
 
107
- $actionLink.attr( 'data-action', action );
108
- $modal.appendTo( $( 'body' ) );
109
 
110
  function registerActionLinkClick() {
111
- $actionLink.click(function( evt ) {
112
  evt.preventDefault();
113
 
114
- if ( 'stop_tracking' == $actionLink.attr( 'data-action' ) ) {
115
  showModal();
116
  } else {
117
  optIn();
@@ -151,12 +152,12 @@
151
 
152
  // Display the dialog box.
153
  $modal.addClass( 'active' );
154
- $( 'body' ).addClass( 'has-fs-modal' );
155
  }
156
 
157
  function closeModal() {
158
  $modal.removeClass( 'active' );
159
- $( 'body' ).removeClass( 'has-fs-modal' );
160
  }
161
 
162
  function resetOptOutButton() {
@@ -178,6 +179,8 @@
178
  }
179
 
180
  function sendRequest() {
 
 
181
  $.ajax({
182
  url: ajaxurl,
183
  method: 'POST',
@@ -216,7 +219,7 @@
216
  }
217
  }
218
 
219
- $actionLink.attr( 'data-action', action );
220
  } else {
221
  showError( resultObj.error );
222
  resetOptOutButton();
@@ -315,7 +318,11 @@
315
  '<?php echo ( $fs->is_registered() ? '' : esc_js( $reconnect_url ) ) ?>' :
316
  '');
317
 
318
- $actionLink = $('<a id="fs_theme_opt_in_out" href="' + encodeURI(href) + '" class="button" data-action="' + action + '">' + label + '</a>');
 
 
 
 
319
 
320
  $('.theme-wrap .theme-actions .active-theme').append($actionLink);
321
 
49
  fs_text_inline( 'By clicking "Opt Out", we will no longer be sending any data from %s to %s.', 'opt-out-message-clicking-opt-out', $slug ),
50
  $plugin_title,
51
  sprintf(
52
+ '<a href="%s" target="_blank" rel="noopener">%s</a>',
53
  'https://freemius.com',
54
  'freemius.com'
55
  )
98
  $modal = $(modalHtml),
99
  $adminNotice = $( <?php echo json_encode( $admin_notice_html ) ?> ),
100
  action = '<?php echo $action ?>',
101
+ actionLinkSelector = 'span.opt-in-or-opt-out.<?php echo $slug ?> a',
102
  $optOutButton = $modal.find( '.button-opt-out' ),
103
  $optOutErrorMessage = $modal.find( '.opt-out-error-message' ),
104
  $extensionsTracking = $modal.find( '.fs-permission-extensions' ),
105
+ $body = $( 'body' ),
106
  moduleID = '<?php echo $fs->get_id() ?>';
107
 
108
+ $modal.data( 'action', action );
109
+ $modal.appendTo( $body );
110
 
111
  function registerActionLinkClick() {
112
+ $body.on( 'click', actionLinkSelector, function( evt ) {
113
  evt.preventDefault();
114
 
115
+ if ( 'stop_tracking' == $modal.data( 'action' ) ) {
116
  showModal();
117
  } else {
118
  optIn();
152
 
153
  // Display the dialog box.
154
  $modal.addClass( 'active' );
155
+ $body.addClass( 'has-fs-modal' );
156
  }
157
 
158
  function closeModal() {
159
  $modal.removeClass( 'active' );
160
+ $body.removeClass( 'has-fs-modal' );
161
  }
162
 
163
  function resetOptOutButton() {
179
  }
180
 
181
  function sendRequest() {
182
+ var $actionLink = $( actionLinkSelector );
183
+
184
  $.ajax({
185
  url: ajaxurl,
186
  method: 'POST',
219
  }
220
  }
221
 
222
+ $modal.data( 'action', action );
223
  } else {
224
  showError( resultObj.error );
225
  resetOptOutButton();
318
  '<?php echo ( $fs->is_registered() ? '' : esc_js( $reconnect_url ) ) ?>' :
319
  '');
320
 
321
+ var $actionLink = $('<a id="fs_theme_opt_in_out" href="' + encodeURI(href) + '" class="button">' + label + '</a>');
322
+
323
+ actionLinkSelector = '#fs_theme_opt_in_out';
324
+
325
+ $modal.data( 'action', action );
326
 
327
  $('.theme-wrap .theme-actions .active-theme').append($actionLink);
328
 
freemius/templates/forms/subscription-cancellation.php CHANGED
@@ -133,7 +133,7 @@ fs_enqueue_local_style( 'fs_dialog_boxes', '/admin/dialog-boxes.css' );
133
  '<div class="fs-modal fs-modal-subscription-cancellation fs-modal-subscription-cancellation-<?php echo $fs->get_id() ?>">'
134
  + ' <div class="fs-modal-dialog">'
135
  + ' <div class="fs-modal-header">'
136
- + ' <h4><?php echo esc_attr( sprintf( fs_text_inline( 'Cancel %s?', 'cancel-x', $slug ), ucfirst( $subscription_cancellation_context ) ) ) ?></h4>'
137
  + ' </div>'
138
  + ' <div class="fs-modal-body">'
139
  + ' <div class="fs-modal-panel active">' + <?php echo json_encode( $subscription_cancellation_html ) ?> + '<p class="fs-price-increase-warning" style="display: none;">' + <?php echo json_encode( $prices_increase_text ) ?> + '</p></div>'
133
  '<div class="fs-modal fs-modal-subscription-cancellation fs-modal-subscription-cancellation-<?php echo $fs->get_id() ?>">'
134
  + ' <div class="fs-modal-dialog">'
135
  + ' <div class="fs-modal-header">'
136
+ + ' <h4><?php echo esc_html( sprintf( fs_text_inline( 'Cancel %s?', 'cancel-x', $slug ), ucfirst( $subscription_cancellation_context ) ) ) ?></h4>'
137
  + ' </div>'
138
  + ' <div class="fs-modal-body">'
139
  + ' <div class="fs-modal-panel active">' + <?php echo json_encode( $subscription_cancellation_html ) ?> + '<p class="fs-price-increase-warning" style="display: none;">' + <?php echo json_encode( $prices_increase_text ) ?> + '</p></div>'
freemius/templates/forms/trial-start.php CHANGED
@@ -28,7 +28,7 @@
28
  fs_text_inline( 'For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt in with your user and non-sensitive site information, allowing the %s to periodically send data to %s to check for version updates and to validate your trial.', 'start-trial-prompt-message', $slug ),
29
  $fs->get_module_type(),
30
  sprintf(
31
- '<a href="%s" target="_blank">%s</a>',
32
  'https://freemius.com',
33
  'freemius.com'
34
  )
28
  fs_text_inline( 'For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt in with your user and non-sensitive site information, allowing the %s to periodically send data to %s to check for version updates and to validate your trial.', 'start-trial-prompt-message', $slug ),
29
  $fs->get_module_type(),
30
  sprintf(
31
+ '<a href="%s" target="_blank" rel="noopener">%s</a>',
32
  'https://freemius.com',
33
  'freemius.com'
34
  )
freemius/templates/partials/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ //Silence is golden
freemius/templates/pricing.php CHANGED
@@ -1,177 +1,209 @@
1
- <?php
2
- /**
3
- * @package Freemius
4
- * @copyright Copyright (c) 2015, Freemius, Inc.
5
- * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6
- * @since 1.0.3
7
- */
8
-
9
- /**
10
- * Note for WordPress.org Theme/Plugin reviewer:
11
- * Freemius is an SDK for plugin and theme developers. Since the core
12
- * of the SDK is relevant both for plugins and themes, for obvious reasons,
13
- * we only develop and maintain one code base.
14
- *
15
- * This code (and page) will not run for wp.org themes (only plugins).
16
- *
17
- * In addition, this page loads an i-frame. We intentionally named it 'frame'
18
- * so it will pass the "Theme Check" that is looking for the string "i" . "frame".
19
- *
20
- * UPDATE:
21
- * After ongoing conversations with the WordPress.org TRT we received
22
- * an official approval for including i-frames in the theme's WP Admin setting's
23
- * page tab (the SDK will never add any i-frames on the sitefront). i-frames
24
- * were never against the guidelines, but we wanted to get the team's blessings
25
- * before we move forward. For the record, I got the final approval from
26
- * Ulrich Pogson (@grapplerulrich), a team lead at the TRT during WordCamp
27
- * Europe 2017 (June 16th, 2017).
28
- *
29
- * If you have any questions or need clarifications, please don't hesitate
30
- * pinging me on slack, my username is @svovaf.
31
- *
32
- * @author Vova Feldman (@svovaf)
33
- * @since 1.2.2
34
- */
35
-
36
- if ( ! defined( 'ABSPATH' ) ) {
37
- exit;
38
- }
39
-
40
- wp_enqueue_script( 'jquery' );
41
- wp_enqueue_script( 'json2' );
42
- fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.min.js' );
43
- fs_enqueue_local_script( 'fs-postmessage', 'postmessage.js' );
44
- fs_enqueue_local_style( 'fs_common', '/admin/common.css' );
45
-
46
- /**
47
- * @var array $VARS
48
- * @var Freemius $fs
49
- */
50
- $fs = freemius( $VARS['id'] );
51
- $slug = $fs->get_slug();
52
- $timestamp = time();
53
-
54
- $context_params = array(
55
- 'plugin_id' => $fs->get_id(),
56
- 'plugin_public_key' => $fs->get_public_key(),
57
- 'plugin_version' => $fs->get_plugin_version(),
58
- );
59
-
60
- $bundle_id = $fs->get_bundle_id();
61
- if ( ! is_null( $bundle_id ) ) {
62
- $context_params['bundle_id'] = $bundle_id;
63
- }
64
-
65
- // Get site context secure params.
66
- if ( $fs->is_registered() ) {
67
- $context_params = array_merge( $context_params, FS_Security::instance()->get_context_params(
68
- $fs->get_site(),
69
- $timestamp,
70
- 'upgrade'
71
- ) );
72
- } else {
73
- $context_params['home_url'] = home_url();
74
- }
75
-
76
- if ( $fs->is_payments_sandbox() ) // Append plugin secure token for sandbox mode authentication.)
77
- {
78
- $context_params['sandbox'] = FS_Security::instance()->get_secure_token(
79
- $fs->get_plugin(),
80
- $timestamp,
81
- 'checkout'
82
- );
83
- }
84
-
85
- $query_params = array_merge( $context_params, $_GET, array(
86
- 'next' => $fs->_get_sync_license_url( false, false ),
87
- 'plugin_version' => $fs->get_plugin_version(),
88
- // Billing cycle.
89
- 'billing_cycle' => fs_request_get( 'billing_cycle', WP_FS__PERIOD_ANNUALLY ),
90
- 'is_network_admin' => fs_is_network_admin() ? 'true' : 'false',
91
- 'currency' => $fs->apply_filters( 'default_currency', 'usd' ),
92
- ) );
93
-
94
- if ( ! $fs->is_registered() ) {
95
- $template_data = array(
96
- 'id' => $fs->get_id(),
97
- );
98
- fs_require_template( 'forms/trial-start.php', $template_data);
99
- }
100
-
101
- $view_params = array(
102
- 'id' => $VARS['id'],
103
- 'page' => strtolower( $fs->get_text_x_inline( 'Pricing', 'noun', 'pricing' ) ),
104
- );
105
- fs_require_once_template('secure-https-header.php', $view_params);
106
-
107
- $has_tabs = $fs->_add_tabs_before_content();
108
-
109
- if ( $has_tabs ) {
110
- $query_params['tabs'] = 'true';
111
- }
112
- ?>
113
- <div id="fs_pricing" class="wrap fs-section fs-full-size-wrapper">
114
- <div id="fs_frame"></div>
115
- <form action="" method="POST">
116
- <input type="hidden" name="user_id"/>
117
- <input type="hidden" name="user_email"/>
118
- <input type="hidden" name="site_id"/>
119
- <input type="hidden" name="public_key"/>
120
- <input type="hidden" name="secret_key"/>
121
- <input type="hidden" name="action" value="account"/>
122
- </form>
123
-
124
- <script type="text/javascript">
125
- (function ($, undef) {
126
- $(function () {
127
- var
128
- // Keep track of the i-frame height.
129
- frame_height = 800,
130
- base_url = '<?php echo WP_FS__ADDRESS ?>',
131
- // Pass the parent page URL into the i-frame in a meaningful way (this URL could be
132
- // passed via query string or hard coded into the child page, it depends on your needs).
133
- src = base_url + '/pricing/?<?php echo http_build_query( $query_params ) ?>#' + encodeURIComponent(document.location.href),
134
-
135
- // Append the I-frame into the DOM.
136
- frame = $('<i' + 'frame " src="' + src + '" width="100%" height="' + frame_height + 'px" scrolling="no" frameborder="0" style="background: transparent; width: 1px; min-width: 100%;"><\/i' + 'frame>')
137
- .appendTo('#fs_frame');
138
-
139
- FS.PostMessage.init(base_url, [frame[0]]);
140
-
141
- FS.PostMessage.receive('height', function (data) {
142
- var h = data.height;
143
- if (!isNaN(h) && h > 0 && h != frame_height) {
144
- frame_height = h;
145
- frame.height(frame_height + 'px');
146
-
147
- FS.PostMessage.postScroll(frame[0]);
148
- }
149
- });
150
-
151
- FS.PostMessage.receive('get_dimensions', function (data) {
152
- FS.PostMessage.post('dimensions', {
153
- height : $(document.body).height(),
154
- scrollTop: $(document).scrollTop()
155
- }, frame[0]);
156
- });
157
-
158
- FS.PostMessage.receive('start_trial', function (data) {
159
- openTrialConfirmationModal(data);
160
- });
161
- });
162
- })(jQuery);
163
- </script>
164
- </div>
165
- <?php
166
- if ( $has_tabs ) {
167
- $fs->_add_tabs_after_content();
168
- }
169
-
170
- $params = array(
171
- 'page' => 'pricing',
172
- 'module_id' => $fs->get_id(),
173
- 'module_type' => $fs->get_module_type(),
174
- 'module_slug' => $slug,
175
- 'module_version' => $fs->get_plugin_version(),
176
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
  fs_require_template( 'powered-by.php', $params );
1
+ <?php
2
+ /**
3
+ * @package Freemius
4
+ * @copyright Copyright (c) 2015, Freemius, Inc.
5
+ * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6
+ * @since 1.0.3
7
+ */
8
+
9
+ /**
10
+ * Note for WordPress.org Theme/Plugin reviewer:
11
+ * Freemius is an SDK for plugin and theme developers. Since the core
12
+ * of the SDK is relevant both for plugins and themes, for obvious reasons,
13
+ * we only develop and maintain one code base.
14
+ *
15
+ * This code (and page) will not run for wp.org themes (only plugins).
16
+ *
17
+ * In addition, this page loads an i-frame. We intentionally named it 'frame'
18
+ * so it will pass the "Theme Check" that is looking for the string "i" . "frame".
19
+ *
20
+ * UPDATE:
21
+ * After ongoing conversations with the WordPress.org TRT we received
22
+ * an official approval for including i-frames in the theme's WP Admin setting's
23
+ * page tab (the SDK will never add any i-frames on the sitefront). i-frames
24
+ * were never against the guidelines, but we wanted to get the team's blessings
25
+ * before we move forward. For the record, I got the final approval from
26
+ * Ulrich Pogson (@grapplerulrich), a team lead at the TRT during WordCamp
27
+ * Europe 2017 (June 16th, 2017).
28
+ *
29
+ * If you have any questions or need clarifications, please don't hesitate
30
+ * pinging me on slack, my username is @svovaf.
31
+ *
32
+ * @author Vova Feldman (@svovaf)
33
+ * @since 1.2.2
34
+ */
35
+
36
+ if ( ! defined( 'ABSPATH' ) ) {
37
+ exit;
38
+ }
39
+
40
+ wp_enqueue_script( 'jquery' );
41
+ wp_enqueue_script( 'json2' );
42
+ fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.min.js' );
43
+ fs_enqueue_local_script( 'fs-postmessage', 'postmessage.js' );
44
+ fs_enqueue_local_style( 'fs_common', '/admin/common.css' );
45
+
46
+ /**
47
+ * @var array $VARS
48
+ * @var Freemius $fs
49
+ */
50
+ $fs = freemius( $VARS['id'] );
51
+ $slug = $fs->get_slug();
52
+ $timestamp = time();
53
+
54
+ $context_params = array(
55
+ 'plugin_id' => $fs->get_id(),
56
+ 'plugin_public_key' => $fs->get_public_key(),
57
+ 'plugin_version' => $fs->get_plugin_version(),
58
+ );
59
+
60
+ $bundle_id = $fs->get_bundle_id();
61
+ if ( ! is_null( $bundle_id ) ) {
62
+ $context_params['bundle_id'] = $bundle_id;
63
+ }
64
+
65
+ // Get site context secure params.
66
+ if ( $fs->is_registered() ) {
67
+ $context_params = array_merge( $context_params, FS_Security::instance()->get_context_params(
68
+ $fs->get_site(),
69
+ $timestamp,
70
+ 'upgrade'
71
+ ) );
72
+ } else {
73
+ $context_params['home_url'] = home_url();
74
+ }
75
+
76
+ if ( $fs->is_payments_sandbox() ) // Append plugin secure token for sandbox mode authentication.)
77
+ {
78
+ $context_params['sandbox'] = FS_Security::instance()->get_secure_token(
79
+ $fs->get_plugin(),
80
+ $timestamp,
81
+ 'checkout'
82
+ );
83
+ }
84
+
85
+ $query_params = array_merge( $context_params, $_GET, array(
86
+ 'next' => $fs->_get_sync_license_url( false, false ),
87
+ 'plugin_version' => $fs->get_plugin_version(),
88
+ // Billing cycle.
89
+ 'billing_cycle' => fs_request_get( 'billing_cycle', WP_FS__PERIOD_ANNUALLY ),
90
+ 'is_network_admin' => fs_is_network_admin() ? 'true' : 'false',
91
+ 'currency' => $fs->apply_filters( 'default_currency', 'usd' ),
92
+ ) );
93
+
94
+ $use_external_pricing = $fs->should_use_external_pricing();
95
+
96
+ if ( ! $use_external_pricing ) {
97
+ $pricing_js_url = fs_asset_url( $fs->get_pricing_js_path() );
98
+ wp_enqueue_script( 'freemius-pricing', $pricing_js_url );
99
+ } else {
100
+ if ( ! $fs->is_registered() ) {
101
+ $template_data = array(
102
+ 'id' => $fs->get_id(),
103
+ );
104
+ fs_require_template( 'forms/trial-start.php', $template_data);
105
+ }
106
+
107
+ $view_params = array(
108
+ 'id' => $VARS['id'],
109
+ 'page' => strtolower( $fs->get_text_x_inline( 'Pricing', 'noun', 'pricing' ) ),
110
+ );
111
+ fs_require_once_template('secure-https-header.php', $view_params);
112
+ }
113
+
114
+ $has_tabs = $fs->_add_tabs_before_content();
115
+
116
+ if ( $has_tabs ) {
117
+ $query_params['tabs'] = 'true';
118
+ }
119
+ ?>
120
+ <div id="fs_pricing" class="wrap fs-section fs-full-size-wrapper">
121
+ <?php if ( ! $use_external_pricing ) : ?>
122
+ <div id="fs_pricing_wrapper" data-public-url="<?php echo trailingslashit( dirname( $pricing_js_url ) ) ?>"></div>
123
+ <?php
124
+ $pricing_config = array_merge( array(
125
+ 'contact_url' => $fs->contact_url(),
126
+ 'is_network_admin' => fs_is_network_admin(),
127
+ 'is_production' => ( defined( 'WP_FS__IS_PRODUCTION_MODE' ) ? WP_FS__IS_PRODUCTION_MODE : null ),
128
+ 'menu_slug' => $fs->get_menu_slug(),
129
+ 'mode' => 'dashboard',
130
+ 'fs_wp_endpoint_url' => WP_FS__ADDRESS,
131
+ 'request_handler_url' => admin_url(
132
+ 'admin-ajax.php?' . http_build_query( array(
133
+ 'module_id' => $fs->get_id(),
134
+ 'action' => $fs->get_ajax_action( 'pricing_ajax_action' ),
135
+ 'security' => $fs->get_ajax_security( 'pricing_ajax_action' )
136
+ ) )
137
+ ),
138
+ 'selector' => '#fs_pricing_wrapper',
139
+ 'unique_affix' => $fs->get_unique_affix(),
140
+ ), $query_params );
141
+
142
+ wp_add_inline_script( 'freemius-pricing', 'Freemius.pricing.new( ' . json_encode( $pricing_config ) . ' )' );
143
+ ?>
144
+ <?php else : ?>
145
+ <div id="fs_frame"></div>
146
+ <form action="" method="POST">
147
+ <input type="hidden" name="user_id"/>
148
+ <input type="hidden" name="user_email"/>
149
+ <input type="hidden" name="site_id"/>
150
+ <input type="hidden" name="public_key"/>
151
+ <input type="hidden" name="secret_key"/>
152
+ <input type="hidden" name="action" value="account"/>
153
+ </form>
154
+
155
+ <script type="text/javascript">
156
+ (function ($, undef) {
157
+ $(function () {
158
+ var
159
+ // Keep track of the i-frame height.
160
+ frame_height = 800,
161
+ base_url = '<?php echo WP_FS__ADDRESS ?>',
162
+ // Pass the parent page URL into the i-frame in a meaningful way (this URL could be
163
+ // passed via query string or hard coded into the child page, it depends on your needs).
164
+ src = base_url + '/pricing/?<?php echo http_build_query( $query_params ) ?>#' + encodeURIComponent(document.location.href),
165
+
166
+ // Append the I-frame into the DOM.
167
+ frame = $('<i' + 'frame " src="' + src + '" width="100%" height="' + frame_height + 'px" scrolling="no" frameborder="0" style="background: transparent; width: 1px; min-width: 100%;"><\/i' + 'frame>')
168
+ .appendTo('#fs_frame');
169
+
170
+ FS.PostMessage.init(base_url, [frame[0]]);
171
+
172
+ FS.PostMessage.receive('height', function (data) {
173
+ var h = data.height;
174
+ if (!isNaN(h) && h > 0 && h != frame_height) {
175
+ frame_height = h;
176
+ frame.height(frame_height + 'px');
177
+
178
+ FS.PostMessage.postScroll(frame[0]);
179
+ }
180
+ });
181
+
182
+ FS.PostMessage.receive('get_dimensions', function (data) {
183
+ FS.PostMessage.post('dimensions', {
184
+ height : $(document.body).height(),
185
+ scrollTop: $(document).scrollTop()
186
+ }, frame[0]);
187
+ });
188
+
189
+ FS.PostMessage.receive('start_trial', function (data) {
190
+ openTrialConfirmationModal(data);
191
+ });
192
+ });
193
+ })(jQuery);
194
+ </script>
195
+ <?php endif ?>
196
+ </div>
197
+ <?php
198
+ if ( $has_tabs ) {
199
+ $fs->_add_tabs_after_content();
200
+ }
201
+
202
+ $params = array(
203
+ 'page' => 'pricing',
204
+ 'module_id' => $fs->get_id(),
205
+ 'module_type' => $fs->get_module_type(),
206
+ 'module_slug' => $slug,
207
+ 'module_version' => $fs->get_plugin_version(),
208
+ );
209
  fs_require_template( 'powered-by.php', $params );
freemius/templates/secure-https-header.php CHANGED
@@ -30,7 +30,7 @@
30
  ) ) .
31
  ' - ' .
32
  sprintf(
33
- '<a class="fs-security-proof" href="%s" target="_blank">%s</a>',
34
  'https://www.mcafeesecure.com/verify?host=' . WP_FS__ROOT_DOMAIN_PRODUCTION,
35
  'Freemius Inc. [US]'
36
  );
30
  ) ) .
31
  ' - ' .
32
  sprintf(
33
+ '<a class="fs-security-proof" href="%s" target="_blank" rel="noopener">%s</a>',
34
  'https://www.mcafeesecure.com/verify?host=' . WP_FS__ROOT_DOMAIN_PRODUCTION,
35
  'Freemius Inc. [US]'
36
  );
livemesh-siteorigin-widgets.php CHANGED
@@ -8,7 +8,7 @@
8
  * Author URI: https://www.livemeshthemes.com/
9
  * License: GPL3
10
  * License URI: https://www.gnu.org/licenses/gpl-3.0.txt
11
- * Version: 2.7.0
12
  * Text Domain: livemesh-so-widgets
13
  * Domain Path: languages
14
  *
@@ -34,7 +34,7 @@ if ( !defined( 'ABSPATH' ) ) {
34
  // Ensure the free version is deactivated if premium is running
35
 
36
  if ( !function_exists( 'lsow_fs' ) ) {
37
- define( 'LSOW_VERSION', '2.7.0' );
38
  // Plugin Folder Path
39
  define( 'LSOW_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
40
  // Plugin Folder URL
8
  * Author URI: https://www.livemeshthemes.com/
9
  * License: GPL3
10
  * License URI: https://www.gnu.org/licenses/gpl-3.0.txt
11
+ * Version: 2.8
12
  * Text Domain: livemesh-so-widgets
13
  * Domain Path: languages
14
  *
34
  // Ensure the free version is deactivated if premium is running
35
 
36
  if ( !function_exists( 'lsow_fs' ) ) {
37
+ define( 'LSOW_VERSION', '2.8' );
38
  // Plugin Folder Path
39
  define( 'LSOW_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
40
  // Plugin Folder URL
plugin.php CHANGED
@@ -43,7 +43,7 @@ if ( !class_exists( 'Livemesh_SiteOrigin_Widgets' ) ) {
43
  public function __clone()
44
  {
45
  // Cloning instances of the class is forbidden
46
- _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'livemesh-so-widgets' ), '2.7.0' );
47
  }
48
 
49
  /**
@@ -53,7 +53,7 @@ if ( !class_exists( 'Livemesh_SiteOrigin_Widgets' ) ) {
53
  public function __wakeup()
54
  {
55
  // Unserializing instances of the class is forbidden
56
- _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'livemesh-so-widgets' ), '2.7.0' );
57
  }
58
 
59
  private function setup_debug_constants()
43
  public function __clone()
44
  {
45
  // Cloning instances of the class is forbidden
46
+ _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'livemesh-so-widgets' ), '2.8' );
47
  }
48
 
49
  /**
53
  public function __wakeup()
54
  {
55
  // Unserializing instances of the class is forbidden
56
+ _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'livemesh-so-widgets' ), '2.8' );
57
  }
58
 
59
  private function setup_debug_constants()
readme.txt CHANGED
@@ -4,8 +4,8 @@ Plugin URI: https://livemeshwp.com/siteorigin-widgets
4
  Contributors: livemesh, freemius
5
  Tags: widget, siteorigin, siteorigin widgets bundle, siteorigin page builder, siteorigin widgets, grid, gallery, video background, portfolio, carousel, shortcode, tabs, admin, plugin, page
6
  Requires at least: 4.5
7
- Tested up to: 5.6
8
- Stable Tag: 2.7.0
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -124,6 +124,9 @@ Pls install and activate the <a href="https://wordpress.org/plugins/portfolio-po
124
 
125
 
126
 
 
 
 
127
  = 2.7.0 =
128
  * Updated - Move to new domain livemeshwp.com
129
  * Updated - Compatibility with WP 5.5
4
  Contributors: livemesh, freemius
5
  Tags: widget, siteorigin, siteorigin widgets bundle, siteorigin page builder, siteorigin widgets, grid, gallery, video background, portfolio, carousel, shortcode, tabs, admin, plugin, page
6
  Requires at least: 4.5
7
+ Tested up to: 5.7
8
+ Stable Tag: 2.8
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
124
 
125
 
126
 
127
+ = 2.8 =
128
+ * Updated - Freemius SDK 2.4.2 with license activation enhancements, beta programs and other features and bug fixes.
129
+
130
  = 2.7.0 =
131
  * Updated - Move to new domain livemeshwp.com
132
  * Updated - Compatibility with WP 5.5