���� 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 PK!Qforce-deactivate.txtnu[ Really Simple SSL is already deactivated!"; exit; } $step = 1; echo "

Force deactivation of Really Simple SSL

"; echo $step . ". Resetting options" . "
"; //ensure we can run the code define( 'WP_CLI',true ); RSSSL()->admin->deactivate(); $step ++; echo $step . ". Deactivating plugin" . "
"; rl_deactivate_plugin( RSSSL()->admin->plugin_dir . "/" . RSSSL()->admin->plugin_filename ); $step ++; echo $step . ". Completed"; rename('force-deactivate.php' , 'force-deactivate.txt'); } function rl_remove_plugin_from_array( $plugin, $current ) { $key = array_search( $plugin, $current ); if ( false !== $key ) { unset( $current[ $key ] ); } return $current; } function rl_deactivate_plugin( $plugin ) { $plugin = plugin_basename( trim( $plugin ) ); if ( is_multisite() ) { $network_current = get_site_option( 'active_sitewide_plugins', array() ); if ( is_plugin_active_for_network( $plugin ) ) { unset( $network_current[ $plugin ] ); } update_site_option( 'active_sitewide_plugins', $network_current ); //remove plugin one by one on each site $args = array( 'public' => 1, ); $sites = get_sites($args); foreach ( $sites as $site ) { switch_to_blog($site->blog_id); $current = get_option( 'active_plugins', array() ); $current = rl_remove_plugin_from_array( $plugin, $current ); update_option( 'active_plugins', $current ); restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop } } else { $current = get_option( 'active_plugins', array() ); $current = rl_remove_plugin_from_array( $plugin, $current ); update_option( 'active_plugins', $current ); } update_option( 'active_plugins', $current ); } /** * Helper function to find Wordpress base path. */ function find_wordpress_base_path() { $path = __DIR__; do { if (file_exists($path . "/wp-config.php")) { //check if the wp-load.php file exists here. If not, we assume it's in a subdir. if ( file_exists( $path . '/wp-load.php') ) { return $path; } else { //wp not in this directory. Look in each folder to see if it's there. if ( file_exists( $path ) && $handle = opendir( $path ) ) { while ( false !== ( $file = readdir( $handle ) ) ) { if ( $file != "." && $file != ".." ) { $file = $path .'/' . $file; if ( is_dir( $file ) && file_exists( $file . '/wp-load.php') ) { $path = $file; break; } } } closedir( $handle ); } } return $path; } } while ($path = realpath("$path/..")); return false; } ?> PK!Q@ upgrade.phpnu[admin->get_notices_list( array( 'dismiss_on_upgrade' => true, ) ); foreach ( $dismiss_options as $dismiss_option ) { if ( !is_string($dismiss_option) ) continue; update_option( 'rsssl_' . $dismiss_option . '_dismissed', true, false ); } delete_transient( 'rsssl_plusone_count' ); } if ( $prev_version && version_compare( $prev_version, '5.1.3', '<=' ) ) { if ( get_option( 'rsssl_disable_ocsp' ) ) { $options = get_option( 'rsssl_options_lets-encrypt' ); $options['disable_ocsp'] = true; update_option( 'rsssl_options_lets-encrypt', $options, false ); delete_option( 'rsssl_disable_ocsp' ); } } if ( $prev_version && version_compare( $prev_version, '5.3.0', '<=' ) ) { if ( file_exists( RSSSL()->admin->htaccess_file() ) && is_writable( RSSSL()->admin->htaccess_file() ) ) { $htaccess = file_get_contents( RSSSL()->admin->htaccess_file() ); $pattern_start = '/rlrssslReallySimpleSSL rsssl_version\[.*.]/'; if ( preg_match_all( $pattern_start, $htaccess ) ) { $htaccess = preg_replace( $pattern_start, 'Really Simple SSL Redirect ' . rsssl_version, $htaccess ); $htaccess = str_replace( 'rlrssslReallySimpleSSL', 'Really Simple SSL Redirect', $htaccess ); file_put_contents( RSSSL()->admin->htaccess_file(), $htaccess ); } } } if ( $prev_version && version_compare( $prev_version, '6.0.0', '<' ) ) { delete_option( 'rsssl_admin_notices' ); update_option( 'rsssl_show_onboarding', true, false ); //upgrade both site and network settings $options = get_option( 'rlrsssl_options' ); if ( is_multisite() && rsssl_is_networkwide_active() ) { $new_options = get_site_option( 'rsssl_options', [] ); } else { $new_options = get_option( 'rsssl_options', [] ); } $ssl_enabled = isset( $options['ssl_enabled'] ) ? $options['ssl_enabled'] : false; $new_options['ssl_enabled'] = (bool) $ssl_enabled; $autoreplace_insecure_links = isset( $options['autoreplace_insecure_links'] ) ? $options['autoreplace_insecure_links'] : true; $new_options['mixed_content_fixer'] = (bool) $autoreplace_insecure_links; $wp_redirect = isset( $options['wp_redirect'] ) ? $options['wp_redirect'] : false; $htaccess_redirect = isset( $options['htaccess_redirect'] ) ? $options['htaccess_redirect'] : false; $redirect = 'none;'; if ( $htaccess_redirect ) { $redirect = 'htaccess'; } elseif ( $wp_redirect ) { $redirect = 'wp_redirect'; } $new_options['redirect'] = sanitize_title( $redirect ); $do_not_edit_htaccess = isset( $options['do_not_edit_htaccess'] ) ? $options['do_not_edit_htaccess'] : false; $new_options['do_not_edit_htaccess'] = (bool) $do_not_edit_htaccess; $dismiss_all_notices = isset( $options['dismiss_all_notices'] ) ? $options['dismiss_all_notices'] : false; $new_options['dismiss_all_notices'] = (bool) $dismiss_all_notices; $switch_mixed_content_fixer_hook = isset( $options['switch_mixed_content_fixer_hook'] ) ? $options['switch_mixed_content_fixer_hook'] : false; $new_options['switch_mixed_content_fixer_hook'] = (bool) $switch_mixed_content_fixer_hook; delete_option( 'rsssl_upgraded_to_four' ); /** * Multisite */ if ( is_multisite() && rsssl_is_networkwide_active() ) { $network_options = get_site_option( 'rlrsssl_network_options' ); $enabled_network_wide = isset( $network_options['ssl_enabled_networkwide'] ) ? $network_options['ssl_enabled_networkwide'] : false; if ( $ssl_enabled && $enabled_network_wide ) { update_site_option( 'rsssl_network_activation_status', 'completed' ); } elseif ( $ssl_enabled ) { //convert entire site to SSL RSSSL()->multisite->start_ssl_activation(); } //ensure this doesn't run again $network_options['ssl_enabled_networkwide'] = false; update_site_option( 'rlrsssl_network_options', $network_options ); $dismiss_all_notices = isset( $network_options['dismiss_all_notices'] ) ? $network_options['dismiss_all_notices'] : false; $new_options['dismiss_all_notices'] = (bool) $dismiss_all_notices; $wp_redirect = isset( $network_options['wp_redirect'] ) ? $network_options['wp_redirect'] : false; if ( $wp_redirect ) { $redirect = 'wp_redirect'; } $htaccess_redirect = isset( $network_options['htaccess_redirect'] ) ? $network_options['htaccess_redirect'] : false; if ( $htaccess_redirect ) { $redirect = 'htaccess'; } $new_options['redirect'] = sanitize_title( $redirect ); $do_not_edit_htaccess = isset( $network_options['do_not_edit_htaccess'] ) ? $network_options['do_not_edit_htaccess'] : false; $new_options['do_not_edit_htaccess'] = (bool) $do_not_edit_htaccess; $autoreplace_mixed_content = isset( $network_options['autoreplace_mixed_content'] ) ? $network_options['autoreplace_mixed_content'] : false; $new_options['mixed_content_fixer'] = (bool) $autoreplace_mixed_content; //upgrade lets encrypt options $le_options = get_option( 'rsssl_options_lets-encrypt' ); $verification_type = get_option( 'rsssl_verification_type' ); if ( $verification_type ) { $new_options['verification_type'] = strtolower( sanitize_title( $verification_type ) ); } if ( ! empty( $le_options ) ) { foreach ( $options as $fieldname => $value ) { $new_options[ $fieldname ] = sanitize_text_field( $value ); } } } if ( is_multisite() && rsssl_is_networkwide_active() ) { update_site_option( 'rsssl_options', $new_options ); } else { update_option( 'rsssl_options', $new_options ); } update_option( 'rsssl_flush_rewrite_rules', time() ); } #clean up old rest api optimizer on upgrade if ( $prev_version && version_compare( $prev_version, '6.0.5', '<' ) ) { if ( file_exists( trailingslashit( WPMU_PLUGIN_DIR ) . 'rsssl_rest_api_optimizer.php' ) ) { unlink( trailingslashit( WPMU_PLUGIN_DIR ) . 'rsssl_rest_api_optimizer.php' ); } } #clear notices cache for multisite on upgrade, for the subsite notice if ( version_compare( $prev_version, '6.0.9', '<' ) ) { if ( is_multisite() ) { delete_option( 'rsssl_admin_notices' ); } } #ensure administrators have the manage_security capability if ( version_compare( $prev_version, '6.0.10', '<' ) ) { rsssl_add_manage_security_capability(); } #move notices transient to option, for better persistence if ( $prev_version && version_compare( $prev_version, '6.0.13', '<' ) ) { $notices = get_transient( 'rsssl_admin_notices' ); $plus_ones = get_transient( 'rsssl_plusone_count' ); update_option( 'rsssl_admin_notices', $notices ); update_option( 'rsssl_plusone_count', $plus_ones ); } if ( $prev_version && version_compare( $prev_version, '6.2.3', '<' ) ) { rsssl_update_option( 'send_notifications_email', 1 ); } if ( $prev_version && version_compare( $prev_version, '6.2.4', '<' ) ) { delete_option( 'rsssl_6_upgrade_completed' ); } if ( $prev_version && version_compare( $prev_version, '7.1.0', '<' ) ) { do_action( 'rsssl_update_rules' ); } //don't clear on each update. //RSSSL()->admin->clear_admin_notices_cache(); //delete in future upgrade. We want to check the review notice dismissed as fallback still. //delete_option( 'rlrsssl_options' ); //delete_site_option( 'rlrsssl_network_options' ); //delete_option( 'rsssl_options_lets-encrypt' ); update_option( 'rsssl_previous_version', $prev_version, false ); do_action( 'rsssl_upgrade', $prev_version ); update_option( 'rsssl_current_version', rsssl_version, false ); } PK!n,̈TTmailer/class-mail.phpnu[sent_by_text = __( "This email is part of the Really Simple SSL Notification System", "really-simple-ssl" ); $this->subject = __( "Notification by Really Simple SSL", "really-simple-ssl" ); $this->button_text = __( "Learn more", "really-simple-ssl" ); $this->to = rsssl_get_option( 'notifications_email_address', get_bloginfo( 'admin_email' ) ); $this->title = __( "Learn more about our features!", "really-simple-ssl" ); $this->sent_to_text = __( "This email was sent to", "really-simple-ssl" ); $this->what_now_text = __( "Learn more", "really-simple-ssl" ); $this->change_text = __( "Why did I receive this email?", "really-simple-ssl" ); $domain = '' . site_url() . ''; $this->message = sprintf( __( "You have enabled a feature on %s. We think it's important to let you know a little bit more about this feature so you can use it without worries.", "really-simple-ssl" ), $domain ); add_action( 'wp_mail_failed', array( $this, 'log_mailer_errors' ), 10, 1 ); } /** * Send a test email * @return array */ public function send_test_mail() { if ( ! rsssl_user_can_manage() ) { return [ 'success' => false, 'message' => 'Not allowed' ]; } if ( ! is_email( $this->to ) ) { return [ 'success' => false, 'title' => __( "Test notification email error", 'really-simple-ssl' ), 'message' => __( 'Email address not valid', "really-simple-ssl" ), ]; } $this->title = __( "Really Simple SSL - Notification Test", "really-simple-ssl" ); $this->message = __( "This email is confirmation that any security notices are likely to reach your inbox.", "really-simple-ssl" ); $this->warning_blocks = [ [ 'title' => __( "About notifications", "really-simple-ssl" ), 'message' => __( "Email notifications are only sent for important updates, security notices or when certain features are enabled.", "really-simple-ssl" ), 'url' => 'https://really-simple-ssl.com/email-notifications/', ] ]; return $this->send_mail( true ); } public function send_verification_mail() { if ( ! rsssl_user_can_manage() ) { return [ 'success' => false, 'message' => 'Not allowed', 'title' => __( "Email verification error", 'really-simple-ssl' ), ]; } $verification_code = str_pad( rand( 0, 999999 ), 6, '0', STR_PAD_LEFT ); $verification_expiration = strtotime( "+15 minutes" ); // Delete existing option delete_option( 'rsssl_email_verification_code' ); update_option( 'rsssl_email_verification_code', $verification_code, false ); update_option( 'rsssl_email_verification_code_expiration', $verification_expiration, false ); update_option( 'rsssl_email_verification_status', 'started', false ); if ( ! is_email( $this->to ) ) { return [ 'success' => false, 'title' => __( "Email verification error", 'really-simple-ssl' ), 'message' => __( 'Email address not valid', "really-simple-ssl" ) ]; } $user_id = get_current_user_id(); $verification_url = add_query_arg( array( 'page' => 'really-simple-security', 'rsssl_nonce' => wp_create_nonce( 'rsssl_email_verification_' . $user_id ), 'rsssl_verification_code' => $verification_code, ), rsssl_admin_url() . '#settings/general' ); $this->subject = __( "Really Simple SSL - Verify your email address", "really-simple-ssl" ); $this->title = __( "Please verify your email", "really-simple-ssl" ); $this->message = __('To use certain features in Really Simple SSL we need to confirm emails are delivered without issues.', 'really-simple-ssl'); $this->button_text = __( "Verify email", "really-simple-ssl" ); $this->warning_blocks[] = [ 'title' => '', 'message' => sprintf( __( "Click the button below to confirm your email address, or copy the following URL: %s", "really-simple-ssl" ), '{url}' ), 'url' => $verification_url, ]; return $this->send_mail(); } public function log_mailer_errors( $wp_error ) { if ( is_wp_error( $wp_error ) ) { $this->error = $wp_error->get_error_message(); } } /** * Send an e-mail with the correct login URL * * @return array */ public function send_mail(): array { if ( empty( $this->message ) || empty( $this->subject ) ) { $this->error = __( "Email could not be sent. No message or subject set.", "really-simple-ssl" ); } if ( ! is_email( $this->to ) ) { $this->error = __( "Email address not valid", "really-simple-ssl" ); } $block_template = $this->branded ? rsssl_path . '/mailer/templates/block.html' : rsssl_path . '/mailer/templates/block-unbranded.html'; $email_template = $this->branded ? rsssl_path . '/mailer/templates/email.html' : rsssl_path . '/mailer/templates/email-unbranded.html'; $this->block_template_filename = apply_filters( 'rsssl_email_block_template', $block_template ); $this->template_filename = apply_filters( 'rsssl_email_template', $email_template ); $template = file_get_contents( $this->template_filename ); $block_html = ''; if ( is_array( $this->warning_blocks ) && count( $this->warning_blocks ) > 0 ) { $block_template = file_get_contents( $this->block_template_filename ); foreach ( $this->warning_blocks as $warning_block ) { $block_html .= str_replace( [ '{title}', '{message}', '{url}' ], [ sanitize_text_field( $warning_block['title'] ), wp_kses_post( $warning_block['message'] ), esc_url_raw( $warning_block['url'] ) ], $block_template ); } } $username = rsssl_get_option( 'new_admin_user_login' ); $login_url = wp_login_url(); $body = str_replace( [ '{title}', '{message}', '{warnings}', '{email-address}', '{learn-more}', '{site_url}', '{login_url}', '{username}', '{change_text}', '{what_now}', '{sent_to_text}', '{sent_by_text}', '{domain}', ], [ sanitize_text_field( $this->title ), wp_kses_post( $this->message ), $block_html, $this->to, $this->button_text, site_url(), $login_url, $username, $this->change_text, $this->what_now_text, $this->sent_to_text, $this->sent_by_text, site_url(), ], $template ); $success = wp_mail( $this->to, sanitize_text_field( $this->subject ), $body, array( 'Content-Type: text/html; charset=UTF-8' ) ); if ( $success ) { return [ 'success' => true, 'title' => __( "Email verification", 'really-simple-ssl' ), 'message' => __( 'Email sent! Please check your mail', "really-simple-ssl" ) ]; } if ( empty( $this->error ) ) { $this->error = __( 'Email could not be sent.', "really-simple-ssl" ); } else { $this->error = __( 'An error occurred:', "really-simple-ssl" ) . '
' . $this->error; } return [ 'success' => false, 'title' => __( "Email notification error", 'really-simple-ssl' ), 'message' => $this->error ]; } } } PK!?t4s##mailer/index.phpnu[ PK!_((%mailer/templates/block-unbranded.htmlnu[

{title}

{message}

PK!_((mailer/templates/block.htmlnu[

{title}

{message}

PK!M((%mailer/templates/email-unbranded.htmlnu[
Site Security

{title}

{message}

{warnings}
PK!?t4s##mailer/templates/index.phpnu[ PK!뱿))mailer/templates/email.htmlnu[
Really Simple Plugins

{title}

{message}

{warnings}
PK!6mailer/class-mail-admin.phpnu[ time() ) { delete_option( 'rsssl_email_verification_code' ); delete_option( 'rsssl_email_verification_code_expiration' ); } } /** * @return void * * Verify user e-mail */ public function maybe_verify_user_email() { if ( ! rsssl_user_can_manage() ) { return; } if ( isset($_GET['rsssl_force_verification'] ) ){ update_option( 'rsssl_email_verification_status', 'completed', false ); } if ( ! isset( $_GET['rsssl_verification_code'] ) ) { return; } // Handle e-mail verification $verification_code = $_GET['rsssl_verification_code']; $verification_code = preg_replace( "/[^0-9]/", "", $verification_code ); $verification_code = substr( $verification_code, 0, 6 ); // verify code $user_id = get_current_user_id(); $nonce = $_GET['rsssl_nonce']; if ( ! wp_verify_nonce( $nonce, 'rsssl_email_verification_' . $user_id ) ) { return; } $current_time = time(); $saved_verification_code = get_option('rsssl_email_verification_code'); $saved_verification_expiration = get_option('rsssl_email_verification_code_expiration'); if ( $verification_code === $saved_verification_code && $saved_verification_expiration && $current_time < $saved_verification_expiration ) { // If the verification code is correct and hasn't expired, update the verification status update_option( 'rsssl_email_verification_status', 'completed', false ); set_transient('rsssl_redirect_to_settings_page', true, HOUR_IN_SECONDS ); } } /** * @return void */ public function maybe_send_mail() { if ( ! rsssl_get_option( 'send_notifications_email' ) ) { return; } $fields = get_option( 'rsssl_email_warning_fields', [] ); $time_saved = get_option( 'rsssl_email_warning_fields_saved' ); if ( ! $time_saved ) { return; } $thirty_minutes_ago = $time_saved < strtotime( "-10 minutes" ); $warning_blocks = array_column( $fields, 'email' ); if ( $thirty_minutes_ago && count( $warning_blocks ) > 0 ) { //clear the option delete_option( 'rsssl_email_warning_fields', [] ); delete_option( 'rsssl_email_warning_fields_saved' ); $mailer = new rsssl_mailer(); $mailer->warning_blocks = $warning_blocks; $mailer->send_mail(); } } /** * @return bool|void * * E-mail verification status callback */ public function email_verification_completed() { $status = get_option( 'rsssl_email_verification_status' ); if ( $status === 'started' ) { return false; } if ( $status === 'completed' ) { return true; } if ( $status === 'email_changed' ) { return false; } } /** * @param $field_id * @param $field_value * @param $prev_value * @param $field_type * * @return void * * Maybe allow the user to re-verify their e-mail address after the notifications e-mail address has changed */ public function maybe_allow_restart_email_verification( $field_id, $field_value, $prev_value, $field_type ) { if ( $field_id === 'notifications_email_address' && $field_value !== $prev_value && rsssl_user_can_manage() ) { update_option( 'rsssl_email_verification_status', 'email_changed' ); } } } }PK!$8 # #class-site-health.phpnu[ __( 'SSL Status Test', 'really-simple-ssl' ), 'test' => array( $this, 'ssl_tests' ), ); $tests['direct']['headers_test'] = array( 'label' => __( 'Security Headers Test', 'really-simple-ssl' ), 'test' => array( $this, 'headers_test' ), ); unset( $tests['direct']['debug_enabled'] ); if ( rsssl_is_debugging_enabled() && rsssl_debug_log_value_is_default() ) { $tests['direct']['rsssl_debug_log'] = array( 'test' => array( $this, 'site_health_debug_log_test' ), ); } if ( defined( 'WP_DEBUG' ) && WP_DEBUG && defined( 'WP_DEBUG_DISPLAY' ) && WP_DEBUG_DISPLAY ) { $tests['direct']['rsssl_debug_display'] = array( 'test' => array( $this, 'site_health_debug_display_test' ), ); } if ( rsssl_get_option( 'enable_vulnerability_scanner' ) ) { $vulnerabilities = new rsssl_vulnerabilities(); $tests['direct']['rsssl_vulnerabilities'] = array( 'test' => [ $vulnerabilities, 'get_site_health_notice' ], ); } } return $tests; } /** * Generate the WP_DEBUG notice * */ public function site_health_debug_log_test() { $result = array( 'label' => __( 'Your site is set to log errors to a potentially public file' ), // phpcs:ignore WordPress.WP.I18n.MissingArgDomain 'status' => 'critical', 'badge' => array( 'label' => __( 'Security' ), // phpcs:ignore WordPress.WP.I18n.MissingArgDomain 'color' => 'blue', ), 'description' => sprintf( '

%s

', __( 'The value, WP_DEBUG_LOG, has been added to this website’s configuration file. This means any errors on the site will be written to a file which is potentially available to all users.', 'really-simple-ssl' ) ), 'actions' => sprintf( '

%s %s

', /* translators: Documentation explaining debugging in WordPress. */ esc_url( add_query_arg( array( 'page' => 'really-simple-security#settings/hardening' ), rsssl_admin_url() ) ), __( 'Remove from public location with Really Simple SSL', 'really-simple-ssl' ), /* translators: Accessibility text. */ __( '(opens in a new tab)' )// phpcs:ignore WordPress.WP.I18n.MissingArgDomain ), 'test' => 'rsssl_debug_log', ); return $result; } /** * Explain users about risks of debug display * */ public function site_health_debug_display_test() { $result = array( 'label' => __( 'Your site is set to display errors on your website', 'really-simple-ssl' ), 'status' => 'critical', 'badge' => array( 'label' => __( 'Security' ), // phpcs:ignore WordPress.WP.I18n.MissingArgDomain 'color' => 'blue', ), 'description' => sprintf( '

%s

', __( 'The value, WP_DEBUG_DISPLAY, has either been enabled by WP_DEBUG or added to your configuration file. This will make errors display on the front end of your site.', 'really-simple-ssl' ) ), 'actions' => sprintf( '

%s %s

', /* translators: Documentation explaining debugging in WordPress. */ esc_url( 'https://really-simple-ssl.com/security/debug-display-enabled' ), __( 'Read more about security concerns with debug display enabled', 'really-simple-ssl' ), /* translators: Accessibility text. */ __( '(opens in a new tab)' )// phpcs:ignore WordPress.WP.I18n.MissingArgDomain ), 'test' => 'rsssl_debug_display', ); return $result; } /** * Test to check if the recommended security headers are present * @return array */ public function headers_test() { $result = array( 'label' => __( 'Recommended security headers installed', 'really-simple-ssl' ), 'status' => 'good', 'badge' => array( 'label' => __( 'Security' ), // phpcs:ignore WordPress.WP.I18n.MissingArgDomain 'color' => 'blue', ), 'description' => sprintf( '

%s

', __( 'The recommended security headers are detected on your site.', 'really-simple-ssl' ) ), 'actions' => '', 'test' => 'headers_test', ); //returns empty for sites without .htaccess, or if all headers are already in use $recommended_headers = RSSSL()->admin->get_recommended_security_headers(); if ( ! empty( $recommended_headers ) ) { $style = ''; $list = ''; $result['status'] = 'recommended'; $result['label'] = __( 'Not all recommended security headers are installed', 'really-simple-ssl' ); $result['description'] = sprintf( '

%s

', __( 'Your website does not send all recommended security headers.', 'really-simple-ssl' ) . $style . $list ); $result['actions'] = sprintf( '

%s

', 'https://really-simple-ssl.com/site-health-recommended-security-headers/', __( 'Learn more about security headers', 'really-simple-ssl' ) ); } return $result; } /** * Some basic SSL health checks * @return array */ public function ssl_tests() { $url = add_query_arg( array( 'page' => 'really-simple-security' ), rsssl_admin_url() ); $result = array( 'label' => __( '301 SSL redirect enabled', 'really-simple-ssl' ), 'status' => 'good', 'badge' => array( 'label' => __( 'Security' ), // phpcs:ignore WordPress.WP.I18n.MissingArgDomain 'color' => 'blue', ), 'description' => sprintf( '

%s

', __( 'You have set a 301 redirect to SSL. This is important for SEO purposes', 'really-simple-ssl' ) ), 'actions' => '', 'test' => 'rsssl_ssl_health', ); if ( ! rsssl_get_option( 'ssl_enabled' ) ) { if ( rsssl_get_option( 'site_has_ssl' ) ) { $result['status'] = 'critical'; $result['label'] = __( 'SSL is not enabled.', 'really-simple-ssl' ); $result['description'] = sprintf( '

%s

', __( 'Really Simple SSL detected an SSL certificate, but has not been configured to enforce SSL.', 'really-simple-ssl' ) ); $result['actions'] .= sprintf( '

%s

', $url, __( 'Activate SSL', 'really-simple-ssl' ) ); } else { $result['status'] = 'critical'; $result['label'] = __( 'No SSL detected.', 'really-simple-ssl' ); $result['description'] = sprintf( '

%s

', __( 'Really Simple SSL is installed, but no valid SSL certificate is detected.', 'really-simple-ssl' ) ); } } else { if ( ! RSSSL()->admin->has_301_redirect() ) { $result['status'] = 'recommended'; $result['label'] = __( 'No 301 redirect to SSL enabled.', 'really-simple-ssl' ); $result['description'] = sprintf( '

%s

', __( 'To ensure all traffic passes through SSL, please enable a 301 redirect.', 'really-simple-ssl' ) ); $result['actions'] .= sprintf( '

%s

', $url, __( 'Enable 301 redirect', 'really-simple-ssl' ) ); } elseif ( RSSSL()->server->uses_htaccess() && rsssl_get_option( 'redirect' ) !== 'htaccess' ) { $result['status'] = 'recommended'; $result['label'] = __( '301 .htaccess redirect is not enabled.', 'really-simple-ssl' ); $result['description'] = sprintf( '

%s

', __( 'The 301 .htaccess redirect is the fastest and most reliable redirect option.', 'really-simple-ssl' ) ); $result['actions'] .= sprintf( '

%s

', $url, __( 'Enable 301 .htaccess redirect', 'really-simple-ssl' ) ); } } return $result; } } } PK!11 readme.txtnu[=== Really Simple SSL === Contributors: RogierLankhorst, markwolters, hesseldejong, vicocotea, marcelsanting, janwoostendorp Donate link: https://www.paypal.me/reallysimplessl Tags: SSL, https, force SSL, mixed content, security, secure website, website security, TLS, secure socket layers, HSTS Requires at least: 5.9 License: GPL2 Tested up to: 6.5 Requires PHP: 7.2 Stable tag: 8.0.0 The easiest way to improve security! Leverage your SSL certificate and protect your website visitors. == Description == Really Simple SSL will automatically configure your website to use SSL to its fullest potential. Use extra security features to protect your website, and use our server health check to keep up-to-date. == Features == * Easy SSL Migration: Takes your website to HTTPS in just one-click. * Let's Encrypt: Install an SSL Certificate if your hosting provider supports manual installation. * Server Health Check: Your server configuration is every bit as important for your website security. * WordPress Hardening: Tweak your configuration and keep WordPress fortified and safe by tackling its weaknesses. * Vulnerability Detection: Get notified when plugins, themes or core contain vulnerabilities and need appropriate action. == Improve Security with Really Simple SSL Pro == * The Mixed Content Scan & Fixer. Detect files that are requested over HTTP and fix it. Both Front- and Back-end. === Security Headers === These features mitigate the risk of clickjacking, cross-site-forgery attacks, stealing login credentials and malware among others. * Independent of your Server Configuration, works on Apache, LiteSpeed, NGINX etc. * Protect your website visitors with X-XSS Protection, X-Content-Type-Options, X-Frame-Options and Referrer Policy. * Enable HTTP Strict Transport Security and configure your site for the HSTS Preload list. === Advanced Security === Isolate your website from unnecessary file loading and exchanges with third-parties. Fully control your website and minimize risk of manipulation. * Designed for WordPress. * Control third-parties with the Content Security Policy - including Learning Mode. * Control browser features with the Permissions Policy e.g. geolocation, camera's and microphones. * Isolate information exchange between other websites. Fully control in- and outbound of data. === Advanced Hardening === * Choose a custom login URL * Rename and randomize your database prefix. * Change the debug.log file location to a non-public folder * Disable application passwords. * Control admin creation * Disable HTTP methods, reducing HTTP requests. === Vulnerability Measures === When a vulnerability is detected you will get notified accordingly. With Vulnerability Measures you can configure simple, but effective, measures to make sure a missed notification is not the end of the world. * Force update: An update process will be tried multiple times, until it can be assumed development of a theme or plugin is abandoned. You will be notified during these steps. * Quarantine: This extends the update process, which will run. When a plugin or theme can't be updated to solve a vulnerability, it will be disabled and deactivated. Use with caution! == How does Really Simple SSL's HTTPS migration work? == * The plugin will check for an existing SSL certificate. If you don't have one, you can generate one in the plugin. Depending on your hosting provider, the plugin can also install it for you or assist with instructions. * If needed, It will handle known issues WordPress has with SSL. An example might be that your website uses a loadbalancer, proxy or headers are not passed to detect a certificate. * All incoming requests are redirected to HTTPS with a default 301 WordPress redirect. You can also choose a .htaccess redirect. * The Site URL and Home URL are changed to HTTPS. * Your insecure content is fixed by replacing all HTTP:// URLs with HTTPS://, except external hyperlinks, dynamically. * Cookies with PHP are set securely by setting them with the HTTPOnly flag. == Useful Links == * [Documentation](https://really-simple-ssl.com/knowledge-base-overview/) * [SSL Definitions](https://really-simple-ssl.com/definitions/) * [Translate Really Simple SSL](https://translate.wordpress.org/projects/wp-plugins/really-simple-ssl) * [Issues & pull requests](https://github.com/Really-Simple-Plugins/really-simple-ssl/issues) * [Feature requests](https://really-simple-ssl.com/feature-requests/) == Love Really Simple SSL? == Hopefully, this plugin saves you some time. If you want to support the continuing development of this plugin, please consider buying [Really Simple SSL Pro](https://www.really-simple-ssl.com/pro/), which includes some excellent security features and premium support. == About Really Simple Plugins == Other plugins developed by Really Simple Plugins are: [Complianz](https://wordpress.org/plugins/complianz-gdpr/) and [Burst Statistics](https://wordpress.org/plugins/burst-statistics/). Really Simple SSL is developed by [Really Simple Plugins](https://www.really-simple-plugins.com). For generating SSL certificates, Really Simple SSL uses the [le acme2 PHP](https://github.com/fbett/le-acme2-php/) Let's Encrypt client library, thanks to 'fbett' for providing it. Vulnerability Detection uses WP Vulnerability, an open-source initiative by Javier Casares. Want to join as a collaborator? We're on [GitHub](https://github.com/really-simple-plugins/really-simple-ssl) as well! == Installation == To install this plugin: 1. Make a backup! See [our recommendations](https://really-simple-ssl.com/knowledge-base/backing-up-your-site/). 2. Install your SSL certificate or generate one with Really Simple SSL. 3. Download the plugin. 4. Upload the plugin to the /wp-content/plugins/ directory. 5. You may need to log in again, so keep your credentials ready. 6. Go to "Plugins" in your WordPress admin, then click "Activate". 7. You will now see a notice asking you to enable SSL. Click it and log in again, if needed. == Frequently Asked Questions == = Knowledge Base = For more detailed explanations and documentation on redirect loops, Let's Encrypt, mixed content, errors, and so on, please search the [documentation](https://www.really-simple-ssl.com/knowledge-base/) = Vulnerability Detection = Vulnerability Detection is currently in Beta. It's stable, but needs scale to improve. If you can provide us with feedback, please do so! = Mixed Content issues = Most mixed content issues are caused by URLs in CSS or JS files. For detailed instructions on how to find mixed content read this [article](https://really-simple-ssl.com/knowledge-base/how-to-track-down-mixed-content-or-insecure-content/). = Generating a Let's Encrypt SSL Certificate = We added the possibility to generate a Free SSL Certificate with Let's Encrypt in our Really Simple SSL Wizard. We have an updated list available for all possible integrations [here](https://really-simple-ssl.com/install-ssl-certificate/). Please leave feedback about another integration, incorrect information, or you need help. = Redirect loop issues = If you are experiencing redirect loops on your site, try these [instructions](https://really-simple-ssl.com/knowledge-base/my-website-is-in-a-redirect-loop/). = Is the plugin multisite compatible? = Yes. There is a dedicated network settings page where you can control settings for your entire network, at once. = Uninstalling Really Simple SSL = The plugin checks your certificate before enabling, but if, for example, you migrated the site to a non-SSL environment, you might get locked out of the back-end. If you can't deactivate, do not just remove the plugin folder to uninstall! Follow these [instructions](https://really-simple-ssl.com/knowledge-base/uninstall-websitebackend-not-accessible/) instead. == Changelog == = 8.0.0 = * New: extend blocking of malicious admin creation to multisite * Improvement: added dandomain host * Improvement: added Infomaniak host = 7.2.3 = * Improvement: give json directory a random foldername, and remove after deactivating vulnerability detection * Improvement: link in vulnerability notification to the vulnerability overview page instead of measures * Improvement: allow for versions with a 'v' prefix in the version number in vulnerability detection * Fix: duplicate do_not_edit_htaccess key in the fields array, causing the setting to not be saved * Fix: css for last step in Lets Encrypt wizard * Fix: js error on subsites on a multisite setup in plugins overview due to deactivation modal = 7.2.2 = * January 24th 2024 * Improvement: new onboarding setup * Improvement: improved hide wp-version logic = 7.2.1 = * Fix: Config for CSP preventing Learning mode from completing * Fix: datatable styling * Fix: using deactivate_https with wp-cli did not remove htaccess rules * Improvement: add query parameter to enforce email verification &rsssl_force_verification * Improvement: css for check certificate manually button = 7.2.0 = * Fix: changed link to article * Fix: remove flags .js file which was added twice, props @adamainsworth * Fix: typo in missing advanced-headers.php notice * Improvement: catch php warning when script src is empty when using hide wp version, props @chris-yau * Improvement: new save & continue feedback * Improvement: datatable styling * Improvement: new react based modal * Improvement: menu re-structured * Improvement: re-check vulnerability status after core update * Improvement: link in the email security notification to the vulnerability page instead of to a general explanation = 7.1.3 = * October 11th 2023 * Fix: React ErrorBoundary preventing Let's Encrypt generation to complete. = 7.1.2 = * October 6th 2023 * Fix: hook change in integrations loader causing modules not to load. props @rami5342 = 7.1.1 = * October 5th 2023 * Fix: incorrect function usage, props @heutger = 7.1.0 = * October 4th 2023 * Improvement: detection if advanced-headers.php file is running = 7.0.9 = * September 5th 2023 * Improvement: typo update word * Improvement: translatability in several strings. = 7.0.8 = * August 8th 2023 * Improvement: WordPress tested up to 6.3 * Improvement: improve file existence check json * Fix: handling of legacy options in php 8.1 * Fix: count remaining tasks = 7.0.7 = * July 25th 2023 * Improvement: modal icon placement in wizard on smaller screens * Improvement: expire cached detected headers five minutes after saving the settings * Fix: handling of legacy options in php 8.1 * Fix: prevent issues with CloudFlare when submitting support form from within the plugin * Fix: translations singular/plural for japanese translations @maboroshin = 7.0.6 = * July 4th 2023 * Improvement: support custom wp-content directory in advanced-headers.php * Improvement: prevent usage of subdirectories in custom login url * Fix: translations not loading for chunked react components * Improvement: add option to manually re-check vulnerabilities '&rsssl_check_vulnerabilities', props @fawp = 7.0.5 = * Fix: some users with a non www site reporting issues on the login page over http://www, due to the changes in the wp redirect. Reverting to the old method. props @pedalnorth, @mossifer. = 7.0.4 = * June 14th 2023 * Improvement: notice informing about the new free vulnerability detection feature * Improvement: improved the php redirect method * Improvement: make the wp-config.php not writable notice dismissable * Fix: feedback on hardening features enable action not showing as enabled, props @rtpHarry = 7.0.3 = * Fix: fix false positives on some plugins * Improvement: vulnerability notifications in site health, if notifications are enabled. = 7.0.2 = * Improvement: improve matching precision on plugins with vulnerabilities. = 7.0.1 = * Fix: When the Rest API is not available, the ajax fallback should kick in, which didn't work correctly in 7.0. props @justaniceguy = 7.0.0 = * New: Vulnerability Detection is in Beta - [Read more](https://really-simple-ssl.com/vulnerability-detection/) or [Get Started](https://really-simple-ssl.com/instructions/about-vulnerabilities/) * Improvement: move onboarding rest api to do_action rest_route * Improvement: catch several edge situations in SSL Labs api * Improvement: SSL Labs block responsiveness * Improvement: more robust handling of wp-config.php detection = 6.3.0 = * Improvement: added support for the new Let's Encrypt staging environment = 6.2.5 = * Improvement: add warning alert option * Fix: capability mismatch in multisite. props @verkkovaraani = 6.2.4 = * Improvement: optionally enable notification emails in onboarding wizard * Improvement: onboarding styling * Fix: catch non array value from notices array, props @kenrichman * Fix: typo in documenation link, props @bookman53 = 6.2.3 = * Improvement: Changed Back-end react to functional components * Improvement: multisite notice should link to network admin page * Improvement: detect existing CAA records to check Let's Encrypt compatibility * Improvement: tested up to wp 6.2 * Improvement: UX improvement learning mode = 6.2.2 = * Fix: capability mismatch for a non administrator in multisite admin, props @jg-visual = 6.2.1 = * Fix: race condition when activating SSL through wp-cli, because of upgrade script * Fix: missing disabled state in textarea and checkboxes * Fix: some strings not translatable * Fix: Let's Encrypt renewal with add on * Improvement: permissions check re-structuring * Improvement: notice on subsite within multisite environment about wildcard updated = 6.2.0 = * New: optional email notifications on advanced settings * Improvement: added tooltips * Improvement: added warnings for .htaccess redirect * Improvement: don't send user email change on renaming admin user, as the email doesn't actually change * Improvement: Use BASEPATH only for wp-load.php, so symlinked folders will load based on ABSPATH * Improvement: Improved support for environments where Rest API is blocked = 6.1.1 = * Fix: WP CLI not completing SSL when because site_has_ssl option is not set if website has not been visited before, props @oolongm * Improvement: prevent 'undefined' status showing up in api calls on settings page * Improvement: show notice if users are using an <2.0 Let's Encrypt shell add-on which is not compatible with 6.0 = 6.1.0 = * Improvement: some UX changes * Improvement: Limit number of notices in the dashboard * Improvement: load rest api request url over https if website is loaded over https * Fix: empty menu item visible in Let's Encrypt menu = 6.0.14 = * Fix: settings page when using plain permalinks, props @mvsitecreator, props @doug2son = 6.0.13 = * Improvement: improve method of dropping empty menu items in settings dashboard * Improvement: dynamic links in auto installer * Improvement: Let's Encrypt Auto installer not working correctly, props @mirkolofio * Improvement: change rest_api method to core wp apiFetch() * Improvement: scroll highlighted setting into view after clicking "fix" on a task * Improvement: run http method test in batches, and set a default, to prevent possibility of curl timeouts on systems with CURL issues * Improvement: clean up code-execution.php file after test, props @spinhead * Improvement: give notification if 'DISABLE_FILE_EDITING' is set to false in the wp-config.php props @joeri1977 * Improvement: drop some unnecessary translations * Improvement: set better default, and change transients to option for more persistent behavior in wp version test, props @photomaldives * Fix: Burst Statistics not activating after installation * Fix: CSS for blue labels in progress dashboard below 1080px * Fix: WPCLI SSL activation not working due to capability checks, props @oolongm * Fix: catch invalid account error in Let's Encrypt generation, props @bugsjr * Fix: do not block user enumeration for gutenberg = 6.0.12 = * Fix: on multisite, the test for users with admin username did not use the correct prefix, $wpdb->base_prefix, props @jg-visual * Improvement: allow submenu in back-end react application * Improvement: Skip value update when no change has been made * Improvement: no redirect on dismiss of admin notice, props @gangesh, @rtpHarry, @dumel * Improvement: remove obsolete warning * Improvement: qtranslate support on settings page = 6.0.11 = * Fix: on some environments, the HTTP_X_WP_NONCE is not available in the code, changed logged in check to accomodate such environments * Fix: dismiss on admin notices not immediately dismissing, requiring dismiss through dashboard, props @dumel = 6.0.10 = * Fix: Apache 2.4 support for the block code execution in the uploads directory hardening feature, props @overlake * Fix: When used with Varnish cache, Rest API get requests were cached, causing the settings page not to update. * Fix: Ensure manage_security capability for users upgraded from versions before introduction of this capability * Fix: allow for custom rest api prefixes, props @coderevolution * Fix: bug in Let's Encrypt generation with DNS verification: saving of 'disable_ocsp' setting, create_bundle_or_renew action with quotes * Fix: change REST API response method to prevent script errors on environments with PHP warnings and errors, causing blank settings page * Improvement: Simplify user enumeration test * Improvement: catch unexpected response in SSL Labs object * Improvement: z-index on on boarding modal on smaller screen sizes, props @rtpHarry * Improvement: hide username field if no admin username is present, props @rtpHarry = 6.0.9 = * Fix: incorrectly disabled email field in Let's Encrypt wizard, props @cburgess * Improvement: on rename admin user, catch existing username, and strange characters * Improvement: catch openBaseDir restriction in cpanel detection function, props @alofnur * Improvement: remove 6.0 update notices on subsites in a multisite network, props @wpcoderca, (@collizo4sky = 6.0.8 = * Improvement: Lets Encrypt wizard CSS styling * Improvement: re-add link to article about Let's Encrypt so users can easily find the URL * Improvement: let user choose a new username when selecting "rename admin user" = 6.0.7 = * Fix: restrict conditions in which htaccess rewrite runs, preventing conflicts with other rewriting plugins = 6.0.6 = * Fix: drop upgrade of .htaccess file in upgrade script = 6.0.5 = * Fix: race condition in .htaccess update script, where multiple updates simultaneously caused issues with the .htaccess file = 6.0.4 = * Fix: using the .htaccess redirect in combination with the block code execution in uploads causes an issue in the .htaccess redirect * Fix: deactivating Really Simple SSL does not completely remove the wp-config.php fixes, causing errors, props @minalukic812 = 6.0.3 = * Fix: Rest Optimizer causing other plugins to deactivate when recommended plugins were activated, props @sardelich = 6.0.2 = * Fix: do not show WP_DEBUG_DISPLAY notice if WP_DEBUG is false, props @janv01 * Fix: empty cron schedule, props @gilvansilvabr * Improvement: several typo's and string improvements * Fix: auto installer used function not defined yet * Fix: rest api optimizer causing an error in some cases @giorgos93 = 6.0.1 = * Fix translations not loading for scripts = 6.0.0 = * Tested up to WordPress 6.1.0 * Improvement: User Interface * New: Server Health Check - powered by SSLLabs * New: WordPress Hardening Features = 5.3.0 = * Improvement: added PHP 8.1 compatibility * Improvement: updated .htaccess redirect comment * New: add installation helper * Improvement: is_writable check in Let's Encrypt * Improvement: Catch not set subject alternative and common names in cert = 5.2.3 = * Bumped tested up to 5.9 = 5.2.2 = * Improvement: change text about Google Analytics for a more broader application * Improvement: prevent duplicate notice * Improvement: better feedback on failed SSL detection * Improvement: .htaccess redirect detection with preg_match = 5.2.1 = * Improvement: changed text on security headers feedback * Improvement: some resources were not loaded minified on the back-end * Improvement: dropped one line from tips&tricks to ensure it all fits when translated * Improvement: improve feedback on the Let's Encrypt terms & conditions checkbox being required * Improvement: improve feedback on chosen hosting company, if SSL is already available, or not available at all. * Improvement: updated wp-config needs fixes notice * Improvement: RTL css update = 5.2.0 = * Improvement: updated tips & tricks with Let's Encrypt and Cross-Origin resource policy articles * Improvement: updated setting slider styling * Improvement: updated WP Config not writable notice and article * Improvement: recommended headers check now uses cURL for header detection = 5.1.3 = * Improvement: auto rename force-deactivate.php back to .txt after running * Improvement: auto flush caches of popular caching plugins * Improvement: "dismiss all notices" option on multisite network settings menu * Improvement: add option to disable OCSP stapling in the Let's Encrypt certificate generation, instead of doing this automatically only * Improvement: added high contrast option to settings for better WCAG compatibility * Improvement: link in "install manually" on Let's Encrypt certificate renewal should point to certificate download instead of hosting installation url. * Improvement: recommend headers check now uses cURL for header detection = 5.1.2 = * Improvement: remove one recommendation from the activate ssl notice, to keep it clean * Improvement: continue instead of stop when no auto installation possible * Improvement: add reset option to Let's Encrypt generation wizard, to allow fully resetting Lets Encrypt * Improvement: saved settings feedback = 5.1.1 = * Improvement: color of progress bar * Improvement: make notice about not protected directories dismissible, in case the Let's Encrypt certificate generation process is not completed. * Improvement: catch not existing fsock open function, props @sitesandsearch * Improvement: slide out animation on task dismissal = 5.1.0 = * Improvement: clear keys directory only clearing files * Improvement: added WP Version and PHP version to system status export * Improvement: check for duplicate SSL plugins * Improvement: Catch file writing error in Let's Encrypt setup where the custom_error_handler wasn't able to catch the error successfully * Improvement: new hosting providers added Let's Encrypt = 5.0.10 = * Fix: Let's Encrypt SSL certificate download only possible through copy option, and not through downloading the file = 5.0.9 = * Improvement: make sure plus one notices also get re-counted outside the settings page after cache clears * Fix: On Multisite a Let's Encrypt specific filter was loaded unnecessarily * Improvement: also skip challenge directory check in the ACME library, when the user has selected the skip directory check option = 5.0.8 = * Improvement: move localhost test before subfolder test as the localhost warning won't show otherwise on most localhost setups * Fix: when using the shell add-on, the action for a failed cpanel installation should be "skip" instead of "stop" * Fix: drop obsolete arguments in the cron_renew_installation function, props @chulainna = 5.0.7 = * Fix: check for file existence in has_well_known_needle function, props @libertylink * Fix: fixed a timeout on SSL settings page on OVH due to failed port check * Improvement: allow SSL generation when a valid certificate has been found = 5.0.6 = * Fix: rsssl_server class not loaded on cron = 5.0.5 = * Fix: cron job for Let's Encrypt generation not loading correct classes = 5.0.4 = * Fix: php notices when in SSL certificate generation mode, due to wrong class usage * Improvement: Refresh option in case the certificate was just installed. * Improvement: catch invalid order during SSL certificate generation = 5.0.3 = * Improvement: Install SSL notice dismissible, which allows for SSL already installed situations and not detected. * Fix: WordPress basepath detection in force deactivate function and in system status * Fix: not dismissible urgent notices were still dismissible * Improvement: add-on compatibility check * Improvement: due to bug in Plesk, a "no Order for ID" error could be returned. A second attempt will now automatically be made on the Let's Encrypt SSL certificate generation * Improvement: allow overriding of SSL detection of SSL was not detected as valid = 5.0.2 = * Improvement: remove some files to prevent false positive warnings from windows defender * Improvement: move variable in cpanel integration to prevent php warnings. = 5.0.1 = * Fix: obsolete variable in function causing php errors on some configurations. = 5.0.0 = * New: Let's Encrypt SSL certificate generation = 4.0.15 = * Fix: non hierarchical structured form elements in the template could cause settings not to get saved in some configurations. = 4.0.14 = * Improvement: when WordPress incorrectly reports that SSL is not possible, correct the resulting site health notice. * Improvement: don't show the secure cookies notice on subsites of a multisite installation. Show on the network dashboard instead. = 4.0.13 = * Fixed notice about wp config.php not writable notice even when httpOnly cookie settings already written. = 4.0.12 = * Added secure cookies * Improved Right-To-Left text support = 4.0.11 = * Fixed a bug where users with an older Pro version could get a fatal error call to private function = 4.0.10 = * Improvement: enable WordPess redirect, disable .htaccess redirect for WP Engine users. * Improvement: adjust for dropped .htaccess support in WP Engine = 4.0.9 = * Improvement: some small CSS improvements in the dashboard * Fix: Switched wp_insert_site hook to wp_initialize_site props @masumm17 * Fix: multisite: after switching from networkwide to per site, or vice versa, the completed notice didn't go away. = 4.0.8 = * Fix: fixed a bug in the get_certinfo() function where an URL with a double prefix could be checked * Improvement: Content Security Policy compatibility = 4.0.7 = * Fix: catch not set certificate info in case of empty array when no certificate is available * Fix: minor CSS fixes = 4.0.6 = * Improvement: Improved responsive css for tabbed menu * Improvement: PHP 8 compatibility * Improvement: Added links to help article for not writable notices * Improvement: notice when plugin folder had been renamed * Improvement: increase php minimum required to 5.6 = 4.0.5 = * Backward compatibility for <4.0 premium versions = 4.0.4 = * Added Really Simple Plugins logo * Fix: enable link in task for multisite redirected to subsite * Fix: exclude plus one count from admin notices = 4.0.3 = * Fix: sitehealth dismiss not working correctly, props @doffine = 4.0.2 = * Fix: not translatable string, props @kebbet * Improvement: clear admin notices cache when SSL activated or reloaded over https * Fix: removed javascript regex not supported by Safari, causing the dismiss not to work on the progress block * Improvement: option to dismiss site health notices in the settings = 4.0.1 = * Fix: fixed a bug where switching between the WP/.htaccess redirect caused a percentage switch * No SSL detected notice is cached after enabling SSL. props @memery2020 * Fix: deactivating before SSL was activated on a site which was already SSL would revert to http. = 4.0.0 = * New user interface * Fix: transient stored with 'WEEK_IN_SECONDS' as string instead of constant * Improvement: notices dashboard, with dismissable notices * Improvement: improved naming of settings, and instructions * Improvement: articles in tips & tricks section = 3.3.4 = * Fix: prefix review notice dismiss to prevent conflicts with other plugins = 3.3.3 = * Dismiss review notice now uses get variable to dismiss it = 3.3.2 = * Added a notice when using Divi theme with a link to knowledge base instructions * Fixed a CSS issue where the active tab in setting didn't have an active color * Added an additional option to dismiss the review notice * Removed review notice capability check * Fixed a bug on multisite where a plusone was shown when it should only shown on non-multisite * Added prefix to uses_elementor() function and added checks if function_exists = 3.3.1 = * Fixed a typo in the backup link * Added instructions on how to add a free SSL certificate = 3.3 = * Updated SSL activated notice * Updated readme = 3.2.9 = * Fixed a bug where the redirect to settings page would abort SSL activation, not writing the wp-config fix on new installs * Fixed typo in force-deactivate notice = 3.2.8 = * Added redirect to settings page after activating SSL * Improved dashboard SSL certificate check by using the is_valid check from rsssl_certificate instead of relying on site_has_ssl * Updated activation notice * Updated settings page sidebar styling and links = 3.2.7 = * Updated switch_to_blog function in to a backwards compatible version for older WP installations * Updated review notice * Improved .htaccess not writeable notice for Bitnami installations to show htaccess.conf location * Updated green lock to secure lock text * Removed border for dashboard sidebar button * Activate some security headers by default when pro is enabled = 3.2.6 = * Optimized plusone count function * Disabled Javascript redirect by default * Fixed a bug in the setting highlight function where an undefined setting name could cause a warning = 3.2.5 = * Fixed typo in trace_log() function call = 3.2.4 = * Improved and added dashboard notices * Improved debug logging * Added option to dismiss all Really Simple SSL notices * Fixed a bug where other plugins buttons had their style reset = 3.2.3 = * Added right-to-left text support * Show a plusone behind the notice that generated it * Added a dismiss text link to dismissible notices * Added highlighting to .htaccess redirect option after clicking on dashboard link * Added option to dismiss all notices * Added site health notice = 3.2.2 = * Fix: some single sites setup were having issues with multisite files being included. = 3.2.1 = * Fix: error in regex, cause a fatal error in cases where a plus one already was showing in the settings menu = 3.2 = * Added update counter to Settings/SSL menu item if recommended settings aren't enabled yet * Added WP-CLI support * Tweak: made some dashboard items dismissible * Tweak: added link on multisite networkwide activation notice to switch function hook to fix conversions hanging on 0% * Tweak: required WordPress version now 4.6 because of get_networks() version = 3.1.5 = * Fix: fixed a bug where having an open_basedir defined showed PHP warnings when using htaccess.conf = 3.1.4 = * Tweak: added support for Bitnami/AWS htaccess.conf file * Tweak: multisite blog count now only counts public sites * Tweak: changed rewrite rules flush time to 1-5 minutes * Tweak: improved multisite site count = 3.1.3 = * Tweak: no longer shows notices on Gutenberg edit screens * Tweak: updated Google Analytics with link to SSL settings page * Fix: multisite blog count now only counts public sites = 3.1.2 = * Tweak: added cool checkboxes * Tweak: .well-known/acme-challenge/ is excluded from .htaccess https:// redirect * Tweak: implemented transients for functions that use curl/wp_remote_get() * Tweak: improved mixed content fixer detection notifications * Tweak: removed review notice for multisite = 3.1.1 = * Fix: Multisite network wide activation/deactivation cron not saving settings because user capability not set this early in the process. = 3.1 = * Fix: fixed a bug in certificate detection * Tweak: added HTTP_X_PROTO as supported header * Tweak: split HTTP_X_FORWARDED_SSL into a variation which can be either '1' or 'on' * Tweak: improved certificate detection by stripping domains of subfolders. * Tweak: Multisite bulk SSL activation now chunked in 200 site blocks, to prevent time out issues on large multisite networks. * Tweak: a 'leave review' notice for new free users = 3.0.5 = * Fix: untranslatable string made translatable. = 3.0.4 = * Fix: removed anonymous function to maintain PHP 5.2 compatibility. = 3.0.3 = * Tweak: mixed content fixer will no longer fire on XML content * Tweak: network menu on subsites now always shows to Super Admins * Tweak: flush rewrite rules upon activation is delayed by one minute to reduce server load = 3.0.2 = * Fix: fixed an image containing uppercase characters, which can lead to the image not showing on some servers. * Fix: fixed an issue where the 'data-rsssl=1' marker wasn't inserted when the tag was empty. = 3.0.1 = * Tweak: Add privacy notice * Tweak: Set javascript redirect to false by default * Fix: Hide SSL notice on multisite for all subsites, and show only for "activate_plugins" cap users = 3.0 = * Added a built-in certificate check in the class-certificate.php file that checks if the domain is present in the common names and/or the alternative names section. * The .htaccess redirect now uses $1 instead of {REQUEST_URI}. * Added an option to deactivate the plugin while keeping SSL in the SSL settings. * Added a filter for the Javascript redirect. * Added a sidebar with recommended plugins. = 2.5.26 = * Fix: multisite menu not showing when main site is not SSL. * Fix: the admin_url and site_url filter get an empty blog_id when checking the URL for the current blog. * Tweak: added comment to encourage backing up to activation notice. * Tested the plugin with Gutenberg. = 2.5.25 = * Fix: "switch mixed content fixer hook" option not visible on the multisites settings page * Tweak: several typo's and uppercasing = 2.5.24 = * Fix: On multisite, admin_url forced current blog URL's over http even when the current blog was loaded over https. This will now only force http for other blog_urls than the current one, when they are on http and not https. = 2.5.23 = * Tested up to WP 4.9 * Added secure cookie notice = 2.5.22 = * Changed mixed content fixer hook back from wp_print_footer_scripts to shutdown = 2.5.21 = * Fixed double slash in paths to files * Fixed typo in activation notice. * Tweak: added option to not flush the rewrite rules * Fix: prevent forcing admin_url to http when FORCE_SSL_ADMIN is defined = 2.5.20 = * Tweak: constant RSSSL_DISMISS_ACTIVATE_SSL_NOTICE to allow users to hide notices. * Tweak: setting to switch the mixed content fixer hook from template_redirect to init. * Fix: nag in multisite didn't dismiss properly = 2.5.19 = * Multisite fix: due to a merge admin_url and site_url filters were dropped, re-added them * Added constant RSSSL_CONTENT_FIXER_ON_INIT so users can keep on using the init hook for the mixed content fixer. = 2.5.18 = * Tweak: Removed JetPack fix, as it is now incorporated in JetPack. * Tweak: Moved mixed content fixer hook to template_redirect * Fix: Changed flush rewrite rules hook from admin_init to shutdown, on activation of SSL. * Multisite fix: Changed function which checks if admin_url and site_url should return http or https to check for https in home_url. * Tweak: Explicitly excluded json and xmlrpc requests from the mixed content fixer = 2.5.17 = * Tweak: Added a function where the home_url and site_url on multisite check if it should be http or https when SSL is enabled on a per site basis. * Tweak: Added a notice that there will be no network menu when Really Simple SSL is activated per site. * Tweak: Added hook for new multisite site so a new site will be activated as SSL when network wide is activated. * Tweak: limited the JetPack listen on port 80 tweak to reverse proxy servers. * Tweak: created a dedicated rest api redirect constant in case users want to prevent the rest api from redirecting to https. * Fix: dismissal of SSL activated notice on multisite did not work properly = 2.5.16 = * Reverted wp_safe_redirect to wp_redirect, as wp_safe_redirect causes a redirect to wp-login.php even when the primary url is domain.com and request url www.domain.com = 2.5.15 = * No functional changes, version change because WordPress was not processing the version update = 2.5.14 = * Fix: fixed issue in the mixed content fixer where on optimized html the match would match across elements. * replaced wp_redirect with wp_safe_redirect * Added force SSL on wp_rest_api = 2.5.13 = * Tweak: configuration more function = 2.5.12 = * Added multisite settings page * Added filter for .htaccess code output * Increased user capability to "activate_plugins" * Added SSL_FORWARDED_PROTO = 1 in addition to SSL_FORWARDED_PROTO = on as supported SSL recognition variable. = 2.5.11 = * Removed curl in favor of wp_remote_get = 2.5.10 = * Fastest cache compatibility fix = 2.5.9 = * Multisite tweaks = 2.5.8 = * Removed automatic insertion of .htaccess redirects. The .htaccess redirects work fine for most people, but can cause issues in some edge cases. * Added option to explicitly insert .htaccess redirect * Added safe mode constant RSSSL_SAFE_MODE to enable activating in a minimized way * Fix: RLRSSSL_DO_NOT_EDIT_HTACCESS constant did not override setting correctly when setting was used before. * Dropped cache flushing on activation, as this does not always work as expected = 2.5.7 = * Tweak: changes testurl to the function test_url() = 2.5.6 = * version nr fix = 2.5.5 = * Reverted some changes to 2.4.3, as it was causing issues for some users. = 2.5.4 = fix: Adjusted selection order of .htaccess rules, preventing redirect loops = 2.5.3 = * Changed .htaccess redirects to use only one condition = 2.5.2 = * removed file_get_contents function from class_url.php, as in some cases this causes issues. = 2.5.1 = * Added help tooltips * Fix: typos in explanations * Added detected server to debug Log * Added test folder for CloudFlare * Added htaccess redirect to use all available server vars for checking SSL. = 2.5.0 = * Tweak: Improved support for cloudflare * Tweak: Added support for Cloudfront, thanks to Sharif Alexandre * Fix: Prevent writing of empty .htaccess redirect * Tweak: Added option for 301 internal wp redirect * Tweak: Improved NGINX support * Tweak: Added support for when only the $_ENV[HTTPS] variable is present * Fix: Mixed content fixing of escaped URLS = 2.4.3 = * Removed banner in admin = 2.4.2 = * Tweak: Added reload over https link for when SSL was not detected * Fixed: After reloading page when the .htaccess message shows, .htaccess is now rewritten. * Tweak: Removed Yoast notices * Tested for WP 4.7 * Fixed: bug where network options were not removed properly on deactivation * Tweak: Changed mixed content marker to variation without quotes, to prevent issues with scripting etc. = 2.4.1 = * Tweak: improved HSTS check = 2.4.0 = * Fixed: added a version check on wp_get_sites / get_sites to get rid of deprecated function notice, and keep backward compatibility. * Fixed: A bug in multisite where plugin_url returned a malformed url in case of main site containing a trailing slash, and subsite not. Thanks to @gahapati for reporting this bug. * Tweak: Added button to settings page to enable SSL, for cases where another plugin is blocking admin notices. * Tweak: Rebuilt the mixed content fixer, for better compatibility * Tweak: Improved the mixed content marker on the front-end, so it's less noticeable, and won't get removed by minification code. = 2.3.14 = * Fixed: Clearing of WP Rocket cache after SSL activation causing an error * Fixed: Clearing of W3TC after SSL activation did not function properly = 2.3.13 = * Re-inserted Jetpack fix. = 2.3.12 = * Requires at least changed back to 4.2, as the function that this was meant for didn’t make it in current release yet. = 2.3.11 = * Improved request method in url class * Added check if .htaccess actually exists in htaccess_contains_redirect_rules() * Made activation message more clear. = 2.3.10 = * Tested for 4.6 * Tweak: changed check for htaccess redirect from checking the RSSSL comments to checking the redirect rule itself * Fix: htaccess not writable message not shown anymore when SSL not yet enabled * Tweak: extended mixed content fixer to cover actions in forms, as those should also be http in case of external urls. * Tweak: added safe domain list for domains that get found but are no threat. * Tweak: added filter for get_admin_url in multisite situations, where WP always returns an https url, although the site might not be on SSL * Tweak: htaccess files and wpconfig are rewritten when the settings page is loaded = 2.3.9 = * Fix: removed internal WordPress redirect as it causes issues for some users. * Tweak: improved url request method = 2.3.8 = * Tweak: Fallback redirect changed into internal wp redirect, which is faster * Tweak: When no .htaccess rules are detected, redirect option is enabled automatically * Tweak: Url request falls back to file_get_contents when curl does not give a result = 2.3.7 = * Updated screenshots = 2.3.6 = * Fixed: missing priority in template_include hook caused not activating mixed content fixer in some themes = 2.3.5 = * Fixed: javascript redirect insertion = 2.3.4 = * Tweak: load css stylesheet only on options page and before enabling ssl * Tweak: mixed content fixer triggered by is_ssl(), which prevents fixing content on http. * Start detection and configuration only for users with "manage_options" capability = 2.3.3 = * Fixed bug in force-deactivate script = 2.3.2 = * Changed SSL detection so test page is only needed when not currently on SSL. * Some minor bug fixes. = 2.3.1 = * Removed "activate ssl" option when no ssl is detected. * Optimized emptying of cache * Fixed some bugs in deactivation and activation of multisite = 2.3.0 = * Gave more control over activation process by explicitly asking to enable SSL. * Added a notice if .htaccess is not writable = 2.2.20 = Fixed a bug in SSL detection = 2.2.19 = Changed followlocation in curl to an alternative method, as this gives issues when safemode or open_basedir is enabled. Added dismissable message when redirects cannot be inserted in the .htaccess = 2.2.18 = Fixed bug in logging of curl detection = 2.2.17 = Security fixes in ssl-test-page.php = 2.2.16 = Bugfix with of insecure content fixer. = 2.2.13 = Added a check if the mixed content fixer is functioning on the front end Fixed a bug where multisite per_site_activation variable wasn't stored networkwide Added clearing of wp_rocket cache thans to Greg for suggesting this Added filter so you can remove the really simple ssl comment Fixed a bug in the output buffer usage, which resolves several issues. Added code so JetPack will run smoothly on SSL as well, thanks to Konstantin for suggesting this = 2.2.12 = * To prevent lockouts, it is no longer possible to activate plugin when wp-config.php is not writable. In case of loadbalancers, activating ssl without adding the necessary fix in the wp-config would cause a redirect loop which would lock you out of the admin. * Moved redirect above the WordPress rewrite rules in the htaccess file. * Added an option to disable the fallback javascript redirection to https. = 2.2.11 = Brand new content fixer, which fixes all links on in the source of your website. = 2.2.10 = * Roll back of mixed content fixer. = 2.2.9 = Improved the mixed content fixer. Faster and more effective. = 2.2.8 = Edited the wpconfig define check to prevent warnings when none are needed. = 2.2.7 = * Extended detection of homeurl and siteurl constants in wp-config.php with regex to allow for spaces in code. * Changed text domain to make this plugin language packs ready * Added 404 detection to SSL detection function, so subdomains can get checked properly on subdomain multisite installs = 2.2.6 = Added slash in redirect rule small bugfixes = 2.2.3 = documentation update = 2.2.2 = * Added multisite support for the missing https server variable issue * Improved curl connection script * Added French translation thanks to Cedric = 2.2.1 = * Small bug fixes = 2.2.0 = * Added per site activation for multisite, but excluded this option for subfolder installs. * Added script to easily deactivate the plugin when you are locked out of the WordPress admin. * Added support for a situation where no server variables are given which can indicate SSL, which can cause WordPress to generate errors and redirect loops. * Removed warning on WooCommerce force SSL after checkout, as only unforce SSL seems to be causing problems * Added Russian translation, thanks to xsascha * Improved redirect rules in the .htaccess * Added option te disable the plugin from editing the .htaccess in the settings * Fixed a bug where multisite would not deactivate correctly * Fixed a bug where insecure content scan would not scan custom post types = 2.1.18 = * Made WooCommerce warning dismissable, as it does not seem to cause issues * Fixed a bug caused by WP native plugin_dir_url() returning relative path, resulting in no SSL messages = 2.1.17 = * Fixed a bug where example .htaccess rewrite rules weren't generated correctly * Added WooCommerce to the plugin conflicts handler, as some settings conflict with this plugin, and are superfluous when you force your site to SSL anyway. * Excluded transients from mixed content scan results = 2.1.16 = * Fixed a bug where script would fail because curl function was not installed. * Added debug messages * Improved FAQ, removed typos * Replaced screenshots = 2.1.15 = * Improved user interface with tabs * Changed function to test SSL test page from file_get_contents to curl, as this improves response time, which might prevent "no SSL messages" * Extended the mixed content fixer to replace src="http:// links, as these should always be https on an SSL site. * Added an error message in case of force rewrite titles in Yoast SEO plugin is used, as this prevents the plugin from fixing mixed content = 2.1.14 = * Added support for loadbalancer and is_ssl() returning false: in that case a wp-config fix is needed. * Improved performance * Added debugging option, so a trace log can be viewed * Fixed a bug where the rlrsssl_replace_url_args filter was not applied correctly. = 2.1.13 = * Fixed an issue where in some configurations the replace url filter did not fire = 2.1.12 = * Added the force SSL option, in cases where SSL could not be detected for some reason. * Added a test to check if the proposed .htaccess rules will work in the current environment. * Readded HSTS to the htaccess rules, but now as an option. Adding this should be done only when you are sure you do not want to revert back to http. = 2.1.11 = * Improved instructions regarding uninstalling when locked out of back-end = 2.1.10 = * Removed HSTS headers, because it is difficult to roll back. = 2.1.9 = * Added the possibility to prevent htaccess from being edited, in case of redirect loop. = 2.1.7 = * Refined SSL detection * Bugfix on deactivation of plugin = 2.1.6 = * Fixed an SSL detection issue which could lead to redirect loop = 2.1.4 = * Improved redirect rules for .htaccess = 2.1.3 = * Now plugin only changes .htaccess when one of three preprogrammed ssl types was recognized. * Simplified filter use to add your own urls to replace, see f.a.q. * Default javascript redirect when .htaccess redirect does not succeed = 2.1.2 = * Fixed bug where number of options with mixed content was not displayed correctly = 2.1.1 = * limited the number of files, posts and options that can be show at once in the mixed content scan. = 2.1.0 = * Added version control to the .htaccess rules, so the .htaccess gets updated as well. * Added detection of loadbalancer and cdn so .htaccess rules can be adapted accordingly. Fixes some redirect loop issues. * Added the possibility to disable the auto replace of insecure links * Added a scan to scan the website for insecure links * Added detection of in wp-config.php defined siteurl and homeurl, which could prevent from successful url change. * Dropped the force ssl option (used when not ssl detected) * Thanks to Peter Tak, [PTA security](http://www.pta-security.nl/) for mentioning the owasp security best practice https://www.owasp.org/index.php/HTTP_Strict_Transport_Security in .htaccess, = 2.0.7 = * Added 301 redirect to .htaccess for seo purposes = 2.0.3 = * Fixed some typos in readme * added screenshots * fixed a bug where on deactivation the https wasn't removed from siturl and homeurl = 2.0.0 = * Added SSL detection by opening a page in the plugin directory over https * Added https redirection in .htaccess, when possible * Added warnings and messages to improve user experience * Added automatic change of siteurl and homeurl to https, to make backend ssl proof. * Added caching flush support for WP fastest cache, Zen Cache and W3TC * Fixed bug where siteurl was used as url to fix instead of homeurl * Fixed issue where url was not replaced on front end, when used url in content is different from home url (e.g. http://www.domain.com as homeurl and http://domain.com in content) * Added filter so you can add cdn urls to the replacement script * Added googleapis.com/ajax cdn to standard replacement script, as it is often used without https. = 1.0.3 = * Improved installation instructions == Upgrade notice == On settings page load, the .htaccess file is no rewritten. If you have made .htaccess customizations to the RSSSL block and have not blocked the plugin from editing it, do so before upgrading. Always back up before any upgrade. Especially .htaccess, wp-config.php and the plugin folder. This way you can easily roll back. == Screenshots == 1. Your Really Simple SSL dashboard - For optimal configuration. 2. The Server Health Check - An in-depth look at your server. 3. New Hardening Features - Fortify your website by minimizing weaknesses. PK!E2E2E"placeholders/class-placeholder.phpnu[mixed_content_data(); } return $response; } /** * @param array $response * @param string $action * @param array $data * * @return array */ public function learningmode_table_data( array $response, string $action, $data ): array { if ( ! rsssl_user_can_manage() ) { return $response; } if ( $action === 'learning_mode_data' ) { if ( isset( $data['type'] ) && $data['type'] === 'content_security_policy') { return $this->csp_data(); } if ( isset( $data['type'] ) && $data['type'] === 'xmlrpc_allow_list') { return $this->xml_data(); } } return $response; } /** * Set some placeholder data for CSP * * @return array */ public function csp_data() { $rules = array( 'script-src-data' => array( 'violateddirective' => 'script-src', 'blockeduri' => 'data:', ), 'script-src-eval' => array( 'violateddirective' => 'script-src', 'blockeduri' => 'unsafe-eval', ), 'img-src-gravatar' => array( 'violateddirective' => 'img-src', 'blockeduri' => 'https://secure.gravatar.com', ), 'img-src-data' => array( 'violateddirective' => 'img-src', 'blockeduri' => 'data:', ), 'img-src-self' => array( 'violateddirective' => 'img-src', 'blockeduri' => 'self', ), 'font-src-self' => array( 'violateddirective' => 'font-src', 'blockeduri' => 'self', ), 'font-src-data' => array( 'violateddirective' => 'font-src', 'blockeduri' => 'data:', ), ); $output = []; foreach ( $rules as $rule ) { $output[] = [ 'documenturi' => site_url(), 'violateddirective' => $rule['violateddirective'], 'blockeduri' => $rule['blockeduri'], 'status' => 0, ]; } return $output; } public function xml_data() { $data = [ [ 'id' => 1, 'method' => 'wp.deletePost', 'login_status' => 1, 'count' => 63, 'status' => 1, ], [ 'id' => 2, 'method' => 'wp.getPost', 'login_status' => 1, 'count' => 78, 'status' => 1, ], [ 'id' => 3, 'method' => 'wp.editTerm', 'login_status' => 1, 'count' => 9, 'status' => 1, ], [ 'id' => 4, 'method' => 'wp.getPosts', 'login_status' => 1, 'count' => 9, 'status' => 1, ], ]; return $data; } public function demo_vulnerabilities_data() { $data[] = [ 'id' => 1, 'component' => 'wordpress', 'risk' => 'high', 'date' => '2020-01-01', ]; } public function limit_login_attempts_data( array $response, string $action, $data ): array { if ( ! rsssl_user_can_manage() ) { return $response; } if ( defined('rsssl_pro')) { return $response; } switch ( $action ) { case 'ip_list': $response['data'] = [ [ 'id' => 12, 'first_failed' => 1678903200, 'last_failed' => 1678924800, 'attempt_type' => 'source_ip', 'attempt_value' => '192.168.1.12', 'user_agent' => 'Mozilla/5.0', 'status' => 'locked', 'attempts' => 2, 'endpoint' => 'https://example.com/wp-admin', 'blocked' => 0, 'datetime' => '10:51, Sep 30', ], [ 'id' => 13, 'first_failed' => 1678906800, 'last_failed' => 1678928400, 'attempt_type' => 'source_ip', 'attempt_value' => '192.168.1.13', 'user_agent' => 'Mozilla/5.0', 'status' => 'locked', 'attempts' => 1, 'endpoint' => 'https://example.com/wp-login.php', 'blocked' => 1, 'datetime' => '10:51, Sep 30', ], ]; break; case 'user_list': $response['data'] = [ [ 'id' => 1, 'first_failed' => 1678888800, 'last_failed' => 1678910400, 'attempt_type' => 'username', 'attempt_value' => 'john_doe', 'user_agent' => 'Mozilla/5.0', 'status' => 'locked', 'attempts' => 5, 'endpoint' => 'https://example.com/wp-admin', 'blocked' => 1, 'datetime' => '10:51, Sep 30', ], [ 'id' => 2, 'first_failed' => 1678892400, 'last_failed' => 1678914000, 'attempt_type' => 'username', 'attempt_value' => 'john_doe2', 'user_agent' => 'Mozilla/5.0', 'status' => 'locked', 'attempts' => 3, 'endpoint' => 'https://example.com/wp-login.php', 'blocked' => 1, 'datetime' => '10:51, Sep 30', ], ]; break; case 'country_list': $response['data'] = [ [ 'id' => 1, 'first_failed' => 1678888800, 'last_failed' => 1678910400, 'attempt_type' => 'country', 'attempt_value' => 'US', 'country_name' => 'United States', 'region' => 'North America', 'user_agent' => 'Mozilla/5.0', 'status' => 'blocked', 'attempts' => 5, 'endpoint' => 'https://example.com/wp-admin', 'blocked' => 1, 'datetime' => '10:51, Sep 30', ], [ 'id' => 2, 'first_failed' => 1678892400, 'last_failed' => 1678914000, 'attempt_type' => 'country', 'attempt_value' => 'US', 'country_name' => 'United States', 'region' => 'North America', 'user_agent' => 'Mozilla/5.0', 'status' => 'blocked', 'attempts' => 3, 'endpoint' => 'https://example.com/wp-login.php', 'blocked' => 1, 'datetime' => '10:51, Sep 30', ], ]; break; case 'event_log': $response['data'] = [ [ 'id' => 969, 'timestamp' => 1693565480, 'event_id' => 1026, 'event_type' => 'login-protection', 'iso2_code' => 'PW', 'country_name' => 'Palau', 'severity' => 'informational', 'username' => '', 'source_ip' => '', 'description' => 'Country Palau added to geo-ip blocklist (Login-protection)', 'datetime' => '10:51, Sep 30', ], [ 'id' => 970, 'timestamp' => 1693565480, 'event_id' => 1026, 'event_type' => 'login-protection', 'iso2_code' => 'PG', 'country_name' => 'Papua New Guinea', 'severity' => 'informational', 'username' => '', 'source_ip' => '', 'description' => 'Country Papua New Guinea added to geo-ip blocklist (Login-protection)', 'datetime' => '10:51, Sep 30', ], [ 'id' => 994, 'timestamp' => 1693573989, 'event_id' => 1000, 'event_type' => 'authentication', 'iso2_code' => 'NL', 'country_name' => 'Netherlands', 'severity' => 'informational', 'username' => 'johndoe', 'source_ip' => '192.168.1.1', 'description' => 'Login successful (Authentication)', 'datetime' => '10:51, Sep 30', ], ]; default: break; } $response['pagination'] = [ 'total' => 2, 'per_page' => 10, 'current_page' => 1, 'last_page' => 1, 'from' => 1, 'to' => 4, ]; return $response; } public function mixed_content_data() { $data[] = [ 'id' => 1, 'ignored' => false, 'type' => 'blocked_url', 'description' => sprintf( __( "Mixed content in PHP file in %s", "really-simple-ssl" ), 'themes' ), 'blocked_url' => '#', 'location' => site_url(), 'details' => [ 'title' => __( "Details", "really-simple-ssl" ), 'description' => [], 'view' => '#', 'edit' => '#', 'help' => "https://really-simple-ssl.com/knowledge-base/fix-blocked-resources-content-files", 'action' => 'ignore_url', ], ]; $data[] = [ 'id' => 2, 'ignored' => false, 'description' => sprintf( __( "Mixed content in %s", "really-simple-ssl" ), 'Theme file' ), 'type' => 'css_js_thirdparty', 'blocked_url' => '#', 'location' => site_url(), 'details' => [ 'title' => __( "Details", "really-simple-ssl" ), 'description' => [], 'view' => '#', 'edit' => '#', 'help' => "https://really-simple-ssl.com/knowledge-base/fix-css-and-js-files-with-mixed-content", 'action' => 'ignore_url', ], 'fix' => [ 'title' => __( "Import and insert file", "really-simple-ssl" ), 'subtitle' => __( "Copyright warning!", "really-simple-ssl" ), 'description' => '', 'action' => "fix_file", 'path' => '#', ] ]; $data[] = [ 'id' => 3, 'ignored' => false, 'type' => 'css_js_other_domains', 'description' => __( "Mixed content in CSS/JS file from other domain", "really-simple-ssl" ), 'blocked_url' => '#', 'location' => site_url(), 'details' => [ 'title' => __( "Details", "really-simple-ssl" ), 'description' => [], 'view' => '', 'edit' => '', 'help' => "https://really-simple-ssl.com/knowledge-base/fix-css-js-files-mixed-content-domains/", 'action' => 'ignore_url', ] ]; $data[] = [ 'id' => 4, 'ignored' => false, 'type' => 'posts', 'description' => sprintf(__( "Mixed content in post: %s", "really-simple-ssl" ), 'Hello World'), 'blocked_url' => '#', 'location' => site_url(), 'details' => [ 'title' => __( "Details", "really-simple-ssl" ), 'description' => [], 'view' => '', 'edit' => get_admin_url( null, 'post.php?post=1&action=edit' ), 'help' => "https://really-simple-ssl.com/fix-posts-with-blocked-resources-domains-without-ssl-certificate/", 'action' => 'ignore_url' ], 'fix' => [ 'title' => __( "Import and insert file", "really-simple-ssl" ), 'subtitle' => __( "Copyright warning!", "really-simple-ssl" ), 'description' => '', 'action' => 'fix_post', 'post_id' => 1, ] ]; //check if item is coming from an iframe $data[] = [ 'id' => 5, 'ignored' => false, 'type' => 'postmeta', 'description' => __( "Mixed content in the postmeta table", "really-simple-ssl" ), 'blocked_url' => '#', 'location' => site_url(), 'meta_key' => '', 'details' => [ 'title' => __( "Details", "really-simple-ssl" ), 'description' => [], 'view' => '#', 'edit' => get_admin_url( null, 'post.php?post=1&action=edit' ), 'help' => "https://really-simple-ssl.com/knowledge-base/fix-blocked-resources-content-postmeta", 'action' => 'ignore_url' ], 'fix' => [ 'title' => __( "Import and insert file", "really-simple-ssl" ), 'subtitle' => __( "Copyright warning!", "really-simple-ssl" ), 'description' => '', 'action' => 'fix_postmeta', 'post_id' => 1, ] ]; $file = sprintf( __( "Widget area", "really-simple-ssl" ), '' ); $data[] = [ 'id' => 5, 'ignored' => false, 'type' => 'widgets', 'description' => __( "Widget with mixed content", "really-simple-ssl" ), 'blocked_url' => '#', 'location' => $file, 'details' => [ 'title' => __( "Details", "really-simple-ssl" ), 'description' => [], 'view' => '', 'edit' => get_admin_url( null, '/widgets.php' ), 'help' => "https://really-simple-ssl.com/knowledge-base/locating-mixed-content-in-widgets/", 'action' => 'ignore_url' ], 'fix' => [ 'title' => __( "Import and insert file", "really-simple-ssl" ), 'subtitle' => __( "Copyright warning!", "really-simple-ssl" ), 'description' => '', 'action' => 'fix_widget', 'widget_id' => '#', ] ]; return [ 'data' => $data, 'progress' => 80, 'state' => 'stop', 'action' => '', 'nonce' => wp_create_nonce( 'fix_mixed_content' ) ]; } /** * @return void * * Dummy data for two factor Email block */ public function two_factor_email_data() { } /** * @return array * * Dummy data for two factor Users block */ public function two_factor_users_data( array $response, string $action, $data ) { if ( defined('rsssl_pro')) { return $response; } if ( $action === 'two_fa_table' ) { $response['data'] = [ [ 'id' => 1, 'user' => 'JaneDoe', 'rsssl_two_fa_status' => 'Active', 'user_role' => 'Administrator', 'status_for_user' => 'Enabled' ], [ 'id' => 2, 'user' => 'JohnDoe', 'rsssl_two_fa_status' => 'open', 'user_role' => 'Editor', 'status_for_user' => 'open' ], [ 'id' => 3, 'user' => 'JanieDoe', 'rsssl_two_fa_status' => 'disabled', 'user_role' => 'Subscriber', 'status_for_user' => 'Disabled' ], [ 'id' => 4, 'user' => 'JonnyDoe', 'rsssl_two_fa_status' => 'Active', 'user_role' => 'Contributor', 'status_for_user' => 'Active' ], [ 'id' => 5, 'user' => 'BabyDoe', 'rsssl_two_fa_status' => 'open', 'user_role' => 'Author', 'status_for_user' => 'open' ], ]; } return $response; } } } PK!?t4s##placeholders/index.phpnu[ PK!m_} gulpfile.jsnu[const gulp = require('gulp'); const rtlcss = require('gulp-rtlcss'); const concat = require('gulp-concat'); const cssbeautify = require('gulp-cssbeautify'); const cssuglify = require('gulp-uglifycss'); const sass = require('gulp-sass')(require('sass')); const spawn = require('child_process').spawn; function scssTask(cb) { // compile scss to css and minify gulp.src('./assets/css/admin.scss') .pipe(sass({ outputStyle: 'expanded' }).on('error', sass.logError)) .pipe(cssbeautify()) .pipe(gulp.dest('./assets/css')) .pipe(cssuglify()) .pipe(concat('admin.min.css')) .pipe(gulp.dest('./assets/css')) .pipe(rtlcss()) .pipe(gulp.dest('./assets/css/rtl')); cb(); } exports.scss = scssTask; function scssPluginTask(cb) { // compile scss to css and minify gulp.src('./assets/css/rsssl-plugin.scss') .pipe(sass({ outputStyle: 'expanded' }).on('error', sass.logError)) .pipe(cssbeautify()) .pipe(gulp.dest('./assets/css')) .pipe(cssuglify()) .pipe(concat('rsssl-plugin.min.css')) .pipe(gulp.dest('./assets/css')) .pipe(rtlcss()) .pipe(gulp.dest('./assets/css/rtl')); cb(); } exports.scssPlugin = scssPluginTask; function defaultTask(cb) { gulp.watch('./assets/css/**/*.scss', { ignoreInitial: false }, scssTask); gulp.watch('./assets/css/**/*.scss', { ignoreInitial: false }, scssPluginTask); spawn('npm', ['start'], { cwd: 'settings', stdio: 'inherit' }); cb(); } exports.default = defaultTask; PK!5к""languages/index.phpnu[ PK!--languages/really-simple-ssl.potnu[# Copyright (C) 2024 Really Simple Plugins # This file is distributed under the GPL2. msgid "" msgstr "" "Project-Id-Version: Really Simple SSL Pro 8.0.1\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/really-simple-ssl-pro\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "POT-Creation-Date: 2024-03-26T15:01:31+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.8.1\n" "X-Domain: really-simple-ssl\n" #. Plugin Name of the plugin msgid "Really Simple SSL Pro" msgstr "" #. Plugin URI of the plugin msgid "https://really-simple-ssl.com" msgstr "" #. Description of the plugin msgid "Lightweight SSL & Hardening Plugin" msgstr "" #. Author of the plugin msgid "Really Simple Plugins" msgstr "" #. Author URI of the plugin msgid "https://really-simple-plugins.com" msgstr "" #: class-admin.php:113 #: class-admin.php:115 #: class-admin.php:1835 #: class-multisite.php:220 #: settings/config/menu.php:17 #: settings/config/menu.php:372 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:237 #: settings/src/Dashboard/Vulnerabilities/VulnerabilitiesFooter.js:24 msgid "Settings" msgstr "" #: class-admin.php:120 #: class-multisite.php:223 #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/Header.js:36 msgid "Support" msgstr "" #: class-admin.php:125 #: class-multisite.php:227 msgid "Improve security - Upgrade" msgstr "" #. translators: %s is replaced with the hyperlink #: class-admin.php:159 msgid "Really Simple SSL and Really Simple SSL add-ons do not process any personal identifiable information, so the GDPR does not apply to these plugins or usage of these plugins on your website. You can find our privacy policy here." msgstr "" #: class-admin.php:541 msgid "Dismiss" msgstr "" #: class-admin.php:544 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Dashboard/TaskElement.js:52 #: settings/src/Dashboard/TaskElement.js:53 #: settings/src/Settings/MixedContentScan/MixedContentScan.js:80 msgid "View" msgstr "" #: class-admin.php:544 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/Dashboard/TaskElement.js:50 #: settings/src/Settings/Help.js:24 msgid "More info" msgstr "" #. translators: %1$ and %2$ are replaced with opening and closing a tag containing hyperlink #: class-admin.php:1665 msgid "Hi, Really Simple SSL has kept your site secure for some time now, awesome! If you have a moment, please consider leaving a review on WordPress.org to spread the word. We greatly appreciate it! If you have any questions or feedback, leave us a %1$smessage%2$s." msgstr "" #. translators: %1$ and %2$ are replaced with opening and closing a tag containing hyperlink #: class-admin.php:1672 msgid "Hi, Really Simple SSL has kept your site secure for a month now, awesome! If you have a moment, please consider leaving a review on WordPress.org to spread the word. We greatly appreciate it! If you have any questions or feedback, leave us a %1$smessage%2$s." msgstr "" #: class-admin.php:1680 msgid "Leave a review" msgstr "" #: class-admin.php:1693 msgid "Maybe later" msgstr "" #: class-admin.php:1706 msgid "Don't show again" msgstr "" #: class-admin.php:1893 msgid "Completed" msgstr "" #: class-admin.php:1894 #: pro/class-licensing.php:635 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/MixedContentScan/MixedContentScan.js:58 msgid "Warning" msgstr "" #: class-admin.php:1895 #: pro/class-licensing.php:636 #: settings/config/menu.php:321 msgid "Open" msgstr "" #: class-admin.php:1896 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/build/588.2934ac808737314da558.js:1 #: settings/src/Dashboard/OtherPlugins/OtherPlugins.js:21 #: settings/src/Menu/Menu.js:28 msgid "Upgrade" msgstr "" #: class-admin.php:1937 msgid "No recommended redirect rules detected." msgstr "" #: class-admin.php:1952 msgid "(Unknown)" msgstr "" #: class-admin.php:1961 msgid "Your wp-config.php has to be edited, but is not writable." msgstr "" #: class-admin.php:1962 #: class-admin.php:1983 msgid "Set your wp-config.php to writable and reload this page." msgstr "" #: class-admin.php:1963 msgid "To safely enable SSL on your server configuration, you should add the following line of code to your wp-config.php." msgstr "" #: class-admin.php:1983 msgid "A definition of a site url or home url was detected in your wp-config.php, but the file is not writable." msgstr "" #: class-admin.php:1998 msgid "The 'force-deactivate.php' file has to be renamed to .txt. Otherwise your ssl can be deactivated by anyone on the internet." msgstr "" #: class-admin.php:1999 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/Items/ListItem.js:46 msgid "Check again" msgstr "" #. translators: %s is replaced with the folder name. #: class-admin.php:2015 msgid "The Really Simple SSL plugin folder in the /wp-content/plugins/ directory has been renamed to %1$s. This might cause issues when deactivating, or with premium add-ons. To fix this you can rename the Really Simple SSL folder back to the default %2$s." msgstr "" #: class-admin.php:2029 msgid "SSL is now activated. Follow the three steps in this article to check if your website is secure." msgstr "" #: class-admin.php:2042 msgid "SSL is enabled on your site." msgstr "" #: class-admin.php:2046 msgid "SSL is not enabled yet." msgstr "" #: class-admin.php:2063 msgid "The wp-config.php file is not writable, and needs to be edited. Please set this file to writable." msgstr "" #: class-admin.php:2067 msgid "No SSL detected" msgstr "" #: class-admin.php:2068 msgid "No SSL detected. Use the retry button to check again." msgstr "" #: class-admin.php:2075 #: class-admin.php:2089 #: class-admin.php:2113 msgid "Install SSL certificate" msgstr "" #: class-admin.php:2076 msgid "Retry" msgstr "" #: class-admin.php:2081 msgid "Could not test certificate" msgstr "" #: class-admin.php:2082 #: onboarding/class-onboarding.php:249 msgid "Automatic certificate detection is not possible on your server." msgstr "" #: class-admin.php:2090 msgid "Check manually" msgstr "" #: class-admin.php:2095 msgid "An SSL certificate was detected on your site." msgstr "" #: class-admin.php:2100 msgid "Your SSL certificate will expire soon." msgstr "" #. translators: %s is replaced with date. #: class-admin.php:2103 msgid "SSL certificate will expire on %s." msgstr "" #. translators: %s is replaced with date. #: class-admin.php:2103 msgid "If your hosting provider auto-renews your certificate, no action is required. Alternatively, you have the option to generate an SSL certificate with Really Simple SSL." msgstr "" #. translators: %1$ and %2$s are replaced with the opening and closing tag with link. #: class-admin.php:2105 msgid "Depending on your hosting provider, %1$smanual installation%2$s may be required." msgstr "" #: class-admin.php:2114 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Dashboard/TaskElement.js:51 msgid "Re-check" msgstr "" #: class-admin.php:2126 msgid "Mixed content fixer was successfully detected on the front-end." msgstr "" #: class-admin.php:2131 msgid "Really Simple SSL has received no response from the webpage." msgstr "" #: class-admin.php:2138 msgid "The mixed content fixer is active, but was not detected on the frontpage." msgstr "" #: class-admin.php:2143 msgid "Error occurred when retrieving the webpage." msgstr "" #: class-admin.php:2149 msgid "Mixed content fixer not enabled. Enable the option to fix mixed content on your site." msgstr "" #. translators: %s is replaced with the error description. #: class-admin.php:2156 msgid "The mixed content fixer could not be detected due to a cURL error: %s. cURL errors are often caused by an outdated version of PHP or cURL and don't affect the front-end of your site. Contact your hosting provider for a fix." msgstr "" #: class-admin.php:2169 msgid "301 redirect to https set." msgstr "" #: class-admin.php:2173 msgid "No 301 redirect is set. Enable the WordPress 301 redirect in the settings to get a 301 permanent redirect." msgstr "" #: class-admin.php:2188 #: class-admin.php:2194 msgid "301 .htaccess redirect" msgstr "" #: class-admin.php:2189 msgid "The 301 redirect with .htaccess to HTTPS is now enabled." msgstr "" #: class-admin.php:2195 msgid "WordPress 301 redirect enabled. We recommend to enable a 301 .htaccess redirect." msgstr "" #: class-admin.php:2202 msgid "Enable a .htaccess redirect or PHP redirect in the settings to create a 301 redirect." msgstr "" #: class-admin.php:2207 msgid ".htaccess redirect." msgstr "" #: class-admin.php:2209 msgid "The .htaccess redirect rules selected by this plugin failed in the test. Set manually or dismiss to leave on PHP redirect." msgstr "" #: class-admin.php:2224 msgid "Your site uses Elementor. This can require some additional steps before getting the secure lock." msgstr "" #: class-admin.php:2238 msgid "Your site uses Divi. This can require some additional steps before getting the secure lock." msgstr "" #: class-admin.php:2254 msgid "HttpOnly Secure cookies have been set automatically!" msgstr "" #: class-admin.php:2259 msgid "HttpOnly Secure cookies not set." msgstr "" #: class-admin.php:2266 msgid "To set the httponly secure cookie settings, your wp-config.php has to be edited, but the file is not writable." msgstr "" #: class-admin.php:2266 msgid "Add the following lines of code to your wp-config.php." msgstr "" #: class-admin.php:2274 msgid "Or set your wp-config.php to writable and reload this page." msgstr "" #: class-admin.php:2288 msgid "See which recommended security headers are not present on your website." msgstr "" #: class-admin.php:2294 msgid "Recommended security headers enabled." msgstr "" #: class-admin.php:2306 msgid "Improve security with Really Simple SSL Pro." msgstr "" #: class-admin.php:2320 msgid "Due to a recent update by WP Engine, we have changed your settings automatically to adapt." msgstr "" #: class-admin.php:2333 msgid "You have the Really Simple SSL Let's Encrypt beta add-on activated. This functionality has now been integrated in core, so you can deactivate the add-on." msgstr "" #. translators: %s is replaced with the plugin name. #: class-admin.php:2345 msgid "We have detected the %s plugin on your website." msgstr "" #. translators: %s is replaced with the plugin name. #: class-admin.php:2345 msgid "As Really Simple SSL handles all the functionality this plugin provides, we recommend to disable this plugin to prevent unexpected behavior." msgstr "" #: class-admin.php:2359 msgid "Black Friday sale! Get 40% Off Really Simple SSL Pro" msgstr "" #: class-admin.php:2374 msgid "Please check if your REST API is loading correctly. Your site currently is using the slower Ajax fallback method to load the settings." msgstr "" #: class-admin.php:2387 msgid "Our vulnerability reporting is in beta. Signup for the beta to discover the new features!" msgstr "" #: class-admin.php:2401 msgid "Email verification has not been completed yet. Check your email and click the link" msgstr "" #: class-admin.php:2409 msgid "Email address successfully verified" msgstr "" #: class-multisite.php:114 msgid "SSL is enabled networkwide." msgstr "" #: class-multisite.php:118 msgid "SSL is not enabled on your network" msgstr "" #: class-multisite.php:131 msgid "You run a Multisite installation with subfolders, which prevents this plugin from fixing your missing server variable in the wp-config.php." msgstr "" #: class-multisite.php:132 msgid "Because the $_SERVER[\"HTTPS\"] variable is not set, your website may experience redirect loops." msgstr "" #: class-multisite.php:133 msgid "Activate networkwide to fix this." msgstr "" #: class-multisite.php:145 msgid "SSL activation in progress" msgstr "" #: class-multisite.php:146 msgid "A networkwide SSL activation process has been started, but has not been completed. Please go to the SSL settings page to complete the process." msgstr "" #: class-multisite.php:147 msgid "View settings page" msgstr "" #: class-multisite.php:161 msgid "You run a Multisite installation with subdomains, but your site doesn't have a wildcard certificate." msgstr "" #: class-multisite.php:162 msgid "This leads to issues when activating SSL networkwide since subdomains will be forced over SSL as well while they don't have a valid certificate." msgstr "" #: class-multisite.php:163 msgid "Activate SSL per site or install a wildcard certificate to fix this." msgstr "" #: class-multisite.php:289 #: class-multisite.php:290 #: settings/settings.php:177 #: settings/settings.php:178 msgid "SSL & Security" msgstr "" #: class-site-health.php:29 msgid "SSL Status Test" msgstr "" #: class-site-health.php:34 msgid "Security Headers Test" msgstr "" #: class-site-health.php:76 msgid "The value, WP_DEBUG_LOG, has been added to this website’s configuration file. This means any errors on the site will be written to a file which is potentially available to all users." msgstr "" #: class-site-health.php:82 msgid "Remove from public location with Really Simple SSL" msgstr "" #: class-site-health.php:98 msgid "Your site is set to display errors on your website" msgstr "" #: class-site-health.php:106 msgid "The value, WP_DEBUG_DISPLAY, has either been enabled by WP_DEBUG or added to your configuration file. This will make errors display on the front end of your site." msgstr "" #: class-site-health.php:112 msgid "Read more about security concerns with debug display enabled" msgstr "" #: class-site-health.php:129 msgid "Recommended security headers installed" msgstr "" #: class-site-health.php:137 msgid "The recommended security headers are detected on your site." msgstr "" #: class-site-health.php:149 msgid "Not all recommended security headers are installed" msgstr "" #: class-site-health.php:150 msgid "Your website does not send all recommended security headers." msgstr "" #: class-site-health.php:154 msgid "Learn more about security headers" msgstr "" #: class-site-health.php:169 msgid "301 SSL redirect enabled" msgstr "" #: class-site-health.php:177 msgid "You have set a 301 redirect to SSL. This is important for SEO purposes" msgstr "" #: class-site-health.php:186 msgid "SSL is not enabled." msgstr "" #: class-site-health.php:189 msgid "Really Simple SSL detected an SSL certificate, but has not been configured to enforce SSL." msgstr "" #: class-site-health.php:197 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Dashboard/Progress/ProgressFooter.js:24 #: settings/src/Onboarding/OnboardingControls.js:136 msgid "Activate SSL" msgstr "" #: class-site-health.php:201 msgid "No SSL detected." msgstr "" #: class-site-health.php:204 msgid "Really Simple SSL is installed, but no valid SSL certificate is detected." msgstr "" #: class-site-health.php:210 msgid "No 301 redirect to SSL enabled." msgstr "" #: class-site-health.php:213 msgid "To ensure all traffic passes through SSL, please enable a 301 redirect." msgstr "" #: class-site-health.php:218 msgid "Enable 301 redirect" msgstr "" #: class-site-health.php:222 msgid "301 .htaccess redirect is not enabled." msgstr "" #: class-site-health.php:225 msgid "The 301 .htaccess redirect is the fastest and most reliable redirect option." msgstr "" #: class-site-health.php:230 msgid "Enable 301 .htaccess redirect" msgstr "" #: lets-encrypt/class-le-restapi.php:163 #: lets-encrypt/class-le-restapi.php:224 msgid "Permission denied." msgstr "" #: lets-encrypt/class-le-restapi.php:232 msgid "Test not found." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:30 #: onboarding/class-onboarding.php:9 #: pro/class-admin.php:14 #: pro/class-headers.php:12 #: pro/class-importer.php:12 #: pro/class-scan.php:44 #: pro/csp-violation-endpoint.php:10 #: security/firewall-manager.php:8 #: security/hardening.php:9 msgid "%s is a singleton class and you cannot create a second instance." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:192 msgid "It is not possible to install Let's Encrypt on a localhost environment." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:197 msgid "It is not possible to install Let's Encrypt on a subsite. Please go to the main site of your website." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:202 msgid "It is not possible to install Let's Encrypt on a subfolder configuration." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:206 msgid "Please adjust the CAA records via your DNS provider to allow Let’s Encrypt SSL certificates" msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:210 msgid "Your domain meets the requirements for Let's Encrypt." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:274 msgid "(unknown)" msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:280 msgid "Your certificate will expire on %s." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:280 msgid "Continue to renew." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:284 msgid "You already have a valid SSL certificate." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:290 msgid "SSL certificate should be generated and installed." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:321 msgid "The Hosting Panel software was not recognized. Depending on your hosting provider, the generated certificate may need to be installed manually." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:325 msgid "CPanel recognized. Possibly the certificate can be installed automatically." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:328 msgid "Plesk recognized. Possibly the certificate can be installed automatically." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:331 msgid "DirectAdmin recognized. Possibly the certificate can be installed automatically." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:347 msgid "The PHP function CURL is not available on your server, which is required. Please contact your hosting provider." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:351 msgid "The PHP function CURL has successfully been detected." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:371 msgid "Successfully retrieved account" msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:378 msgid "The used domain for your email address is not allowed." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:379 msgid "Please change your email address %shere%s and try again." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:387 msgid "The email address was not set. Please set the email address" msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:424 #: lets-encrypt/class-letsencrypt-handler.php:432 msgid "Token successfully retrieved." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:439 msgid "Token not received yet." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:451 #: lets-encrypt/class-letsencrypt-handler.php:689 msgid "The order is invalid, possibly due to too many failed authorization attempts. Please start at the previous step." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:455 msgid "Order ID mismatch, regenerate order." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:458 msgid "If you entered your DNS records before, they need to be changed." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:480 msgid "Configured for HTTP challenge" msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:522 #: lets-encrypt/integrations/cpanel/functions.php:47 msgid "Token not generated. Please complete the previous step." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:536 msgid "Successfully verified DNS records" msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:544 msgid "The DNS response for %s was %s, while it should be %s." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:553 msgid "Could not verify TXT record for domain %s" msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:594 msgid "The certificate generation was rate limited for 10 minutes because the authorization failed." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:596 msgid "Please double check your DNS txt record." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:610 msgid "DNS records were not verified yet. Please complete the previous step." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:644 msgid "Certificate already generated. It was renewed if required." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:650 #: lets-encrypt/class-letsencrypt-handler.php:720 msgid "Files not created yet..." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:674 msgid "Authorization not completed yet." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:692 msgid "As your order will be regenerated, you'll need to update your DNS text records." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:700 msgid "OCSP not supported, the certificate will be generated without OCSP." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:714 msgid "Successfully generated certificate." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:728 msgid "Bundle not available yet..." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:812 msgid "Failed retrieving account." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:821 msgid "Order successfully created." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:837 msgid "Order successfully retrieved." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:989 msgid "Terms & Conditions are accepted." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:993 msgid "The Terms & Conditions were not accepted. Please accept in the general settings." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1102 msgid "Please complete the following step(s) first: %s" msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1118 msgid "The following directories do not have the necessary writing permissions." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1118 msgid "Set permissions to 644 to enable SSL generation." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1125 msgid "The required directories have the necessary writing permissions." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1137 msgid "We have not detected any known hosting limitations." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1144 #: lets-encrypt/functions.php:394 msgid "According to our information, your hosting provider does not allow any kind of SSL installation, other then their own paid certificate. For an alternative hosting provider with SSL, see this %sarticle%s." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1151 #: lets-encrypt/functions.php:384 msgid "According to our information, your hosting provider supplies your account with an SSL certificate by default. Please contact your %shosting support%s if this is not the case." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1152 msgid "After completing the installation, you can let Really Simple SSL automatically configure your site for SSL by using the 'Activate SSL' button." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1168 msgid "The challenge directory is not created yet." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1172 msgid "The challenge directory was successfully created." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1185 msgid "The key directory is not created yet." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1189 msgid "Trying to create directory in root of website." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1197 msgid "The key directory was successfully created." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1212 msgid "The certs directory is not created yet." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1216 msgid "The certs directory was successfully created." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1275 #: lets-encrypt/class-letsencrypt-handler.php:1585 msgid "no response" msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1279 msgid "Could not reach challenge directory over %s." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1285 msgid "Challenge directory not writable." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1299 #: lets-encrypt/class-letsencrypt-handler.php:1303 msgid "Error code %s." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1310 #: lets-encrypt/class-letsencrypt-handler.php:1608 #: lets-encrypt/class-letsencrypt-handler.php:1659 msgid "Successfully verified alias domain." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1543 msgid "This is a multisite configuration with subdomains. You should generate a wildcard certificate on the root domain." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1548 msgid "No subdomain setup detected." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1578 msgid "Alias domain check is not relevant for a subdomain" msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1597 msgid "Please check if the non www version of your site also points to this website." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1599 msgid "Please check if the www version of your site also points to this website." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1601 msgid "Could not verify alias domain." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1601 msgid "If this is not the case, don't add this alias to your certificate." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1630 msgid "Could not create test folder and file." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1631 msgid "Please create a folder 'rsssl' in the uploads directory, with 644 permissions." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1648 msgid "Error code %s" msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1727 msgid "The certificate installation was rate limited. Please try again later." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1757 msgid "Not recognized server." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1762 msgid "Installation failed." msgstr "" #: lets-encrypt/class-letsencrypt-handler.php:1767 #: lets-encrypt/integrations/cloudways/functions.php:22 #: lets-encrypt/integrations/cpanel/functions.php:17 #: lets-encrypt/integrations/cpanel/functions.php:35 #: lets-encrypt/integrations/directadmin/functions.php:16 #: lets-encrypt/integrations/plesk/functions.php:16 msgid "The system is not ready for the installation yet. Please run the wizard again." msgstr "" #: lets-encrypt/config/class-hosts.php:583 msgid "I don't know, or not listed, proceed with installation" msgstr "" #: lets-encrypt/config/fields.php:8 #: settings/config/menu.php:526 msgid "System Status" msgstr "" #: lets-encrypt/config/fields.php:12 msgid "General settings" msgstr "" #: lets-encrypt/config/fields.php:17 #: settings/config/menu.php:544 msgid "Directories" msgstr "" #: lets-encrypt/config/fields.php:21 msgid "DNS Verification" msgstr "" #: lets-encrypt/config/fields.php:25 #: settings/config/menu.php:554 msgid "Generation" msgstr "" #: lets-encrypt/config/fields.php:29 #: settings/config/menu.php:559 msgid "Installation" msgstr "" #: lets-encrypt/config/fields.php:47 msgid "Detected status of your setup." msgstr "" #: lets-encrypt/config/fields.php:52 msgid "Checking SSL certificate..." msgstr "" #: lets-encrypt/config/fields.php:58 msgid "Checking if CURL is available..." msgstr "" #: lets-encrypt/config/fields.php:64 msgid "Checking server software..." msgstr "" #: lets-encrypt/config/fields.php:70 msgid "Checking alias domain..." msgstr "" #: lets-encrypt/config/fields.php:76 msgid "Checking for website configuration..." msgstr "" #: lets-encrypt/config/fields.php:94 #: lets-encrypt/config/fields.php:97 #: settings/config/config.php:169 msgid "Email address" msgstr "" #: lets-encrypt/config/fields.php:98 msgid "This email address is used to create a Let's Encrypt account. This is also where you will receive renewal notifications." msgstr "" #: lets-encrypt/config/fields.php:110 msgid "I agree to the Terms & Conditions from Let's Encrypt." msgstr "" #: lets-encrypt/config/fields.php:111 #: onboarding/class-onboarding.php:283 msgid "Terms & Conditions." msgstr "" #: lets-encrypt/config/fields.php:123 msgid "Disable OCSP stapling" msgstr "" #: lets-encrypt/config/fields.php:124 msgid "OCSP stapling is configured as enabled by default. You can disable this option if this is not supported by your hosting provider." msgstr "" #: lets-encrypt/config/fields.php:126 msgid "Disable OCSP Stapling" msgstr "" #: lets-encrypt/config/fields.php:134 #: lets-encrypt/config/notices.php:50 msgid "Domain" msgstr "" #: lets-encrypt/config/fields.php:145 #: lets-encrypt/config/fields.php:148 msgid "Include alias" msgstr "" #: lets-encrypt/config/fields.php:149 msgid "This will include both the www. and non-www. version of your domain." msgstr "" #: lets-encrypt/config/fields.php:150 msgid "You should have the www domain pointed to the same website as the non-www domain." msgstr "" #: lets-encrypt/config/fields.php:168 msgid "Hosting Provider" msgstr "" #: lets-encrypt/config/fields.php:169 msgid "By selecting your hosting provider we can tell you if your hosting provider already supports free SSL, and/or where you can activate it." msgstr "" #: lets-encrypt/config/fields.php:171 msgid "If your hosting provider is not listed, and there's an SSL activation/installation link, please let us %sknow%s." msgstr "" #: lets-encrypt/config/fields.php:175 #: settings/config/config.php:33 msgid "Hosting provider" msgstr "" #: lets-encrypt/config/fields.php:185 #: lets-encrypt/config/fields.php:188 msgid "CPanel host" msgstr "" #: lets-encrypt/config/fields.php:189 msgid "The URL you use to access your cPanel dashboard. Ends on :2083." msgstr "" #: lets-encrypt/config/fields.php:209 msgid "CPanel username" msgstr "" #: lets-encrypt/config/fields.php:228 msgid "CPanel password" msgstr "" #: lets-encrypt/config/fields.php:247 msgid "DirectAdmin host" msgstr "" #: lets-encrypt/config/fields.php:250 msgid "Direct Admin URL" msgstr "" #: lets-encrypt/config/fields.php:251 msgid "The URL you use to access your DirectAdmin dashboard. Ends on :2222." msgstr "" #: lets-encrypt/config/fields.php:271 msgid "DirectAdmin username" msgstr "" #: lets-encrypt/config/fields.php:290 msgid "DirectAdmin password" msgstr "" #: lets-encrypt/config/fields.php:310 msgid "CloudWays user email" msgstr "" #: lets-encrypt/config/fields.php:326 msgid "CloudWays api key" msgstr "" #: lets-encrypt/config/fields.php:331 msgid "CloudWays API key" msgstr "" #: lets-encrypt/config/fields.php:332 msgid "You can find your api key %shere%s (make sure you're logged in with your main account)." msgstr "" #: lets-encrypt/config/fields.php:348 msgid "Plesk host" msgstr "" #: lets-encrypt/config/fields.php:351 msgid "Plesk admin URL" msgstr "" #: lets-encrypt/config/fields.php:352 msgid "The URL you use to access your Plesk dashboard. Ends on :8443." msgstr "" #: lets-encrypt/config/fields.php:372 msgid "Plesk username" msgstr "" #: lets-encrypt/config/fields.php:375 msgid "Plesk username and password" msgstr "" #: lets-encrypt/config/fields.php:376 msgid "You can find your Plesk username and password in %s" msgstr "" #: lets-encrypt/config/fields.php:396 msgid "Plesk password" msgstr "" #: lets-encrypt/config/fields.php:415 msgid "Do you want to store these credentials for renewal purposes?" msgstr "" #: lets-encrypt/config/fields.php:419 msgid "Store for renewal purposes. If not stored, renewal may need to be done manually." msgstr "" #: lets-encrypt/config/fields.php:441 msgid "Checking host..." msgstr "" #: lets-encrypt/config/fields.php:447 msgid "Checking challenge directory..." msgstr "" #: lets-encrypt/config/fields.php:453 msgid "Checking key directory..." msgstr "" #: lets-encrypt/config/fields.php:459 msgid "Checking certs directory..." msgstr "" #: lets-encrypt/config/fields.php:465 msgid "Checking permissions..." msgstr "" #: lets-encrypt/config/fields.php:472 msgid "Checking challenge directory reachable over http..." msgstr "" #: lets-encrypt/config/fields.php:493 #: lets-encrypt/config/fields.php:531 msgid "Creating account..." msgstr "" #: lets-encrypt/config/fields.php:499 msgid "Retrieving DNS verification token..." msgstr "" #: lets-encrypt/config/fields.php:525 msgid "Checking if Terms & Conditions are accepted..." msgstr "" #: lets-encrypt/config/fields.php:537 msgid "Generating SSL certificate..." msgstr "" #: lets-encrypt/config/fields.php:551 msgid "Searching for link to SSL installation page on your server..." msgstr "" #: lets-encrypt/config/fields.php:569 msgid "Checking for subdomain setup..." msgstr "" #: lets-encrypt/config/notices.php:28 msgid "Your Key and Certificate directories are not properly protected." msgstr "" #: lets-encrypt/config/notices.php:40 msgid "The non-www version of your site does not point to this website. This is recommended, as it will allow you to add it to the certificate as well." msgstr "" #: lets-encrypt/config/notices.php:42 msgid "The www version of your site does not point to this website. This is recommended, as it will allow you to add it to the certificate as well." msgstr "" #: lets-encrypt/config/notices.php:69 msgid "Your certificate is valid until: %s" msgstr "" #: lets-encrypt/config/notices.php:73 msgid "Your certificate will expire on %s. You can renew it %shere%s." msgstr "" #: lets-encrypt/config/notices.php:88 msgid "The automatic installation of your certificate has failed. Please check your credentials, and retry the %sinstallation%s." msgstr "" #: lets-encrypt/config/notices.php:95 msgid "The SSL certificate has been renewed, and requires manual %sinstallation%s in your hosting dashboard." msgstr "" #: lets-encrypt/config/notices.php:102 msgid "Automatic renewal of your certificate was not possible. The SSL certificate should be %srenewed%s manually." msgstr "" #: lets-encrypt/config/notices.php:109 msgid "Your certificate will be renewed and installed automatically." msgstr "" #: lets-encrypt/config/notices.php:126 msgid "Your server provides shell functionality, which offers additional methods to install SSL. If installing SSL using the default methods is not possible, you can install the shell add on." msgstr "" #: lets-encrypt/config/notices.php:142 msgid "You are using the Really Simple SSL Shell Exec add on, but your current version needs to be updated." msgstr "" #: lets-encrypt/config/notices.php:164 msgid "Renew installation" msgstr "" #: lets-encrypt/config/notices.php:167 #: lets-encrypt/config/notices.php:170 msgid "Renew certificate" msgstr "" #: lets-encrypt/download.php:49 msgid "File missing. Please retry the previous steps." msgstr "" #: lets-encrypt/functions.php:12 msgid "For more information, please read this %sarticle%s" msgstr "" #: lets-encrypt/functions.php:369 #: lets-encrypt/functions.php:370 #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/Settings/SettingsGroup.js:112 msgid "Instructions" msgstr "" #: lets-encrypt/functions.php:373 msgid "Please complete manually in your hosting dashboard." msgstr "" #: lets-encrypt/functions.php:374 msgid "Please activate it manually on your hosting dashboard." msgstr "" #: lets-encrypt/functions.php:376 msgid "Please complete %smanually%s" msgstr "" #: lets-encrypt/functions.php:377 msgid "Please activate it on your dashboard %smanually%s" msgstr "" #: lets-encrypt/functions.php:378 msgid "Go to activation" msgstr "" #: lets-encrypt/functions.php:379 msgid "Go to installation" msgstr "" #: lets-encrypt/functions.php:386 #: lets-encrypt/functions.php:390 #: lets-encrypt/functions.php:400 msgid "After completing the installation, you can continue to the next step to complete your configuration." msgstr "" #: lets-encrypt/functions.php:388 msgid "You already have free SSL on your hosting environment." msgstr "" #: lets-encrypt/functions.php:397 msgid "Your hosting environment does not allow automatic SSL installation." msgstr "" #: lets-encrypt/functions.php:399 msgid "You can follow these %sinstructions%s." msgstr "" #: lets-encrypt/integrations/cloudways/cloudways.php:157 msgid "Failed retrieving access token" msgstr "" #: lets-encrypt/integrations/cloudways/cloudways.php:177 #: lets-encrypt/integrations/cloudways/cloudways.php:183 msgid "Successfully installed Let's Encrypt" msgstr "" #: lets-encrypt/integrations/cloudways/cloudways.php:192 msgid "Error enabling auto renew for Let's Encrypt" msgstr "" #: lets-encrypt/integrations/cloudways/cloudways.php:208 #: lets-encrypt/integrations/cloudways/cloudways.php:241 msgid "Successfully retrieved server id and app id" msgstr "" #: lets-encrypt/integrations/cloudways/cloudways.php:248 msgid "Could not retrieve server list" msgstr "" #: lets-encrypt/integrations/cloudways/functions.php:37 msgid "Retrieving Cloudways server data..." msgstr "" #: lets-encrypt/integrations/cloudways/functions.php:43 msgid "Installing SSL certificate..." msgstr "" #: lets-encrypt/integrations/cloudways/functions.php:49 msgid "Enabling auto renew..." msgstr "" #: lets-encrypt/integrations/cpanel/cpanel.php:64 #: lets-encrypt/integrations/directadmin/directadmin.php:64 msgid "No valid list of domains." msgstr "" #: lets-encrypt/integrations/cpanel/cpanel.php:106 #: lets-encrypt/integrations/cpanel/cpanel.php:190 msgid "Your website's ip address is blocked. Please add your domain's ip address to the security policy in CPanel" msgstr "" #: lets-encrypt/integrations/cpanel/cpanel.php:111 msgid "Login credentials incorrect. Please check your login credentials for cPanel." msgstr "" #: lets-encrypt/integrations/cpanel/cpanel.php:121 #: lets-encrypt/integrations/directadmin/directadmin.php:122 msgid "SSL successfully installed on %s" msgstr "" #: lets-encrypt/integrations/cpanel/cpanel.php:126 msgid "Errors were reported during installation" msgstr "" #: lets-encrypt/integrations/cpanel/cpanel.php:205 msgid "Errors were reported during installation." msgstr "" #: lets-encrypt/integrations/cpanel/cpanel.php:292 msgid "Unable to connect to cPanel" msgstr "" #: lets-encrypt/integrations/cpanel/cpanel.php:296 msgid "Login credentials incorrect" msgstr "" #: lets-encrypt/integrations/cpanel/cpanel.php:304 #: lets-encrypt/integrations/cpanel/cpanel.php:323 msgid "Successfully added TXT record." msgstr "" #: lets-encrypt/integrations/cpanel/cpanel.php:308 #: lets-encrypt/integrations/cpanel/cpanel.php:327 msgid "Could not automatically add TXT record. Please proceed manually, following the steps below." msgstr "" #: lets-encrypt/integrations/cpanel/functions.php:63 msgid "The system is not ready for the DNS verification yet. Please run the wizard again." msgstr "" #: lets-encrypt/integrations/cpanel/functions.php:91 msgid "Attempting to install certificate using AutoSSL..." msgstr "" #: lets-encrypt/integrations/cpanel/functions.php:100 msgid "Attempting to set DNS txt record..." msgstr "" #: lets-encrypt/integrations/cpanel/functions.php:107 #: lets-encrypt/integrations/directadmin/functions.php:35 msgid "Attempting to install certificate..." msgstr "" #: lets-encrypt/integrations/plesk/functions.php:33 msgid "Installing SSL certificate using PLESK API..." msgstr "" #: lets-encrypt/integrations/plesk/plesk.php:87 msgid "Successfully installed SSL" msgstr "" #: mailer/class-mail.php:31 msgid "This email is part of the Really Simple SSL Notification System" msgstr "" #: mailer/class-mail.php:32 msgid "Notification by Really Simple SSL" msgstr "" #: mailer/class-mail.php:33 #: mailer/class-mail.php:37 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:192 msgid "Learn more" msgstr "" #: mailer/class-mail.php:35 msgid "Learn more about our features!" msgstr "" #: mailer/class-mail.php:36 msgid "This email was sent to" msgstr "" #: mailer/class-mail.php:38 msgid "Why did I receive this email?" msgstr "" #: mailer/class-mail.php:41 msgid "You have enabled a feature on %s. We think it's important to let you know a little bit more about this feature so you can use it without worries." msgstr "" #: mailer/class-mail.php:59 msgid "Test notification email error" msgstr "" #: mailer/class-mail.php:60 #: mailer/class-mail.php:99 #: mailer/class-mail.php:144 msgid "Email address not valid" msgstr "" #: mailer/class-mail.php:63 msgid "Really Simple SSL - Notification Test" msgstr "" #: mailer/class-mail.php:64 msgid "This email is confirmation that any security notices are likely to reach your inbox." msgstr "" #: mailer/class-mail.php:67 msgid "About notifications" msgstr "" #: mailer/class-mail.php:68 msgid "Email notifications are only sent for important updates, security notices or when certain features are enabled." msgstr "" #: mailer/class-mail.php:81 #: mailer/class-mail.php:98 msgid "Email verification error" msgstr "" #: mailer/class-mail.php:114 msgid "Really Simple SSL - Verify your email address" msgstr "" #: mailer/class-mail.php:115 msgid "Please verify your email" msgstr "" #: mailer/class-mail.php:116 msgid "To use certain features in Really Simple SSL we need to confirm emails are delivered without issues." msgstr "" #: mailer/class-mail.php:117 msgid "Verify email" msgstr "" #: mailer/class-mail.php:120 msgid "Click the button below to confirm your email address, or copy the following URL: %s" msgstr "" #: mailer/class-mail.php:140 msgid "Email could not be sent. No message or subject set." msgstr "" #: mailer/class-mail.php:203 #: settings/config/config.php:181 msgid "Email verification" msgstr "" #: mailer/class-mail.php:204 msgid "Email sent! Please check your mail" msgstr "" #: mailer/class-mail.php:209 msgid "Email could not be sent." msgstr "" #: mailer/class-mail.php:211 msgid "An error occurred:" msgstr "" #: mailer/class-mail.php:216 msgid "Email notification error" msgstr "" #: onboarding/class-onboarding.php:170 msgid "You can also let the automatic scan of the pro version handle this for you, and get premium support, increased security with HSTS and more!" msgstr "" #: onboarding/class-onboarding.php:170 msgid "Check out Really Simple SSL Pro" msgstr "" #: onboarding/class-onboarding.php:176 msgid "Really Simple SSL & Security" msgstr "" #: onboarding/class-onboarding.php:177 msgid "We have added many new features to our plugin, now bearing the name Really Simple SSL & Security. But we start like we did almost 10 years ago. Optimising your Encryption with SSL." msgstr "" #: onboarding/class-onboarding.php:182 msgid "Thanks for updating!" msgstr "" #: onboarding/class-onboarding.php:182 msgid "Congratulations!" msgstr "" #: onboarding/class-onboarding.php:183 msgid "These are some of our new features, and weʼre just getting started." msgstr "" #: onboarding/class-onboarding.php:184 msgid "A lightweight plugin with heavyweight security features, focusing on performance and usability." msgstr "" #: onboarding/class-onboarding.php:186 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:116 msgid "Enable" msgstr "" #: onboarding/class-onboarding.php:190 msgid "Get notified!" msgstr "" #: onboarding/class-onboarding.php:191 msgid "We use email notification to explain important updates in plugin settings." msgstr "" #: onboarding/class-onboarding.php:191 msgid "Add your email address below." msgstr "" #: onboarding/class-onboarding.php:192 msgid "Save and continue" msgstr "" #: onboarding/class-onboarding.php:196 msgid "Free plugins" msgstr "" #: onboarding/class-onboarding.php:197 msgid "Really Simple Plugins is also the author of the below privacy-focused plugins, including consent management, legal documents and analytics!" msgstr "" #: onboarding/class-onboarding.php:199 #: onboarding/class-onboarding.php:206 #: upgrade/upgrade-to-pro.php:146 #: upgrade/upgrade-to-pro.php:159 #: upgrade/upgrade-to-pro.php:176 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/OtherPlugins/OtherPluginsData.js:73 msgid "Install" msgstr "" #: onboarding/class-onboarding.php:203 msgid "Really Simple Security Pro" msgstr "" #: onboarding/class-onboarding.php:204 msgid "Heavyweight security features, in a lightweight performant plugin from Really Simple Plugins. Get started with below features and get the latest and greatest updates for a peace of mind!" msgstr "" #: onboarding/class-onboarding.php:235 msgid "You may need to login in again, have your credentials prepared." msgstr "" #: onboarding/class-onboarding.php:243 msgid "An SSL certificate has been detected" msgstr "" #: onboarding/class-onboarding.php:249 msgid "Could not test certificate." msgstr "" #: onboarding/class-onboarding.php:255 msgid "No SSL certificate has been detected." msgstr "" #: onboarding/class-onboarding.php:255 msgid "Please refresh the SSL status if a certificate has been installed recently." msgstr "" #: onboarding/class-onboarding.php:271 msgid "Privacy-friendly analytics tool." msgstr "" #: onboarding/class-onboarding.php:277 msgid "Consent Management as it should be." msgstr "" #: onboarding/class-onboarding.php:321 msgid "Mixed Content Fixer" msgstr "" #: onboarding/class-onboarding.php:327 msgid "Vulnerability Detection" msgstr "" #: onboarding/class-onboarding.php:333 msgid "Recommended Hardening Features" msgstr "" #: onboarding/class-onboarding.php:339 msgid "Run System Health Scan" msgstr "" #: onboarding/class-onboarding.php:345 #: onboarding/class-onboarding.php:382 #: settings/config/menu.php:353 #: settings/config/menu.php:361 msgid "Limit Login Attempts" msgstr "" #: onboarding/class-onboarding.php:352 #: onboarding/class-onboarding.php:389 msgid "Two Factor Authentication" msgstr "" #: onboarding/class-onboarding.php:359 #: onboarding/class-onboarding.php:396 msgid "Advanced Security Headers" msgstr "" #: onboarding/class-onboarding.php:366 msgid "Advanced Hardening Features" msgstr "" #: onboarding/class-onboarding.php:403 #: settings/config/menu.php:335 #: settings/config/menu.php:342 #: modal/build/index.f0747a4e3a76f14cbb01.js:1 #: modal/src/components/DeactivationModal/DeactivationModal.js:97 msgid "Password security" msgstr "" #: onboarding/class-onboarding.php:409 #: settings/config/menu.php:251 msgid "Advanced Hardening" msgstr "" #: onboarding/class-onboarding.php:416 msgid "Vulnerability Measures" msgstr "" #: placeholders/class-placeholder.php:327 #: pro/class-scan.php:1674 msgid "Mixed content in PHP file in %s" msgstr "" #: placeholders/class-placeholder.php:331 #: placeholders/class-placeholder.php:348 #: placeholders/class-placeholder.php:372 #: placeholders/class-placeholder.php:389 #: placeholders/class-placeholder.php:415 #: placeholders/class-placeholder.php:440 #: pro/class-scan.php:1678 #: pro/class-scan.php:1711 #: pro/class-scan.php:1749 #: pro/class-scan.php:1786 #: pro/class-scan.php:1824 #: pro/class-scan.php:1871 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Settings/MixedContentScan/MixedContentScan.js:90 #: settings/src/Settings/RiskConfiguration/RiskData.js:114 msgid "Details" msgstr "" #: placeholders/class-placeholder.php:343 #: pro/class-scan.php:1706 msgid "Mixed content in %s" msgstr "" #: placeholders/class-placeholder.php:356 #: placeholders/class-placeholder.php:397 #: placeholders/class-placeholder.php:423 #: placeholders/class-placeholder.php:448 #: pro/class-scan.php:1719 #: pro/class-scan.php:1794 #: pro/class-scan.php:1832 #: pro/class-scan.php:1879 msgid "Import and insert file" msgstr "" #: placeholders/class-placeholder.php:357 #: placeholders/class-placeholder.php:398 #: placeholders/class-placeholder.php:424 #: placeholders/class-placeholder.php:449 #: pro/class-scan.php:1720 #: pro/class-scan.php:1795 #: pro/class-scan.php:1833 #: pro/class-scan.php:1880 #: pro/class-scan.php:2207 msgid "Copyright warning!" msgstr "" #: placeholders/class-placeholder.php:368 #: pro/class-scan.php:1745 msgid "Mixed content in CSS/JS file from other domain" msgstr "" #: placeholders/class-placeholder.php:385 #: pro/class-scan.php:1782 msgid "Mixed content in post: %s" msgstr "" #: placeholders/class-placeholder.php:410 #: pro/class-scan.php:1812 msgid "Mixed content in the postmeta table" msgstr "" #: placeholders/class-placeholder.php:431 msgid "Widget area" msgstr "" #: placeholders/class-placeholder.php:436 #: pro/class-scan.php:1867 msgid "Widget with mixed content" msgstr "" #: pro/class-admin.php:162 msgid "You have installed Really Simple SSL Pro. We have deactivated and removed the free plugin." msgstr "" #: pro/class-admin.php:175 #: settings/config/menu.php:41 msgid "Premium Support" msgstr "" #: pro/class-admin.php:626 msgid "Elementor mixed content successfully converted." msgstr "" #: pro/class-admin.php:639 #: pro/class-admin.php:644 msgid "Potential redirect loop." msgstr "" #: pro/class-admin.php:640 msgid "No redirect to http detected." msgstr "" #: pro/class-admin.php:645 msgid "A redirect to http was detected. This might result in redirect loops." msgstr "" #: pro/class-admin.php:645 msgid "%sRead more%s." msgstr "" #: pro/class-admin.php:659 #: pro/class-admin.php:665 msgid "TLS version" msgstr "" #: pro/class-admin.php:660 msgid "TLS version is up-to-date" msgstr "" #: pro/class-admin.php:666 msgid "Your site uses an outdated version of TLS. Upgrade to TLS 1.2 or TLS 1.3 to keep your site secure." msgstr "" #: pro/class-admin.php:680 msgid "Your site redirects 404 pages to the http:// version of your homepage. This can cause mixed content issues with images." msgstr "" #: pro/class-admin.php:694 msgid "Update Really Simple SSL Free to the latest version for optimal compatibility." msgstr "" #: pro/class-admin.php:708 msgid "You are using W3 Total Cache with Disk: Enhanced setting. This can prevent Security headers from being properly loaded." msgstr "" #: pro/class-headers.php:210 #: pro/class-headers.php:419 msgid "The %s security header is not set by Really Simple SSL, but has a non-recommended value: \"%s\"." msgstr "" #: pro/class-headers.php:230 #: pro/class-headers.php:236 msgid "HSTS Preload" msgstr "" #: pro/class-headers.php:231 msgid "Your site has been configured for the HSTS preload list. If you have submitted your site, it will be preloaded. Click %shere%s to submit." msgstr "" #: pro/class-headers.php:237 msgid "Your site is not yet configured for the HSTS preload list." msgstr "" #: pro/class-headers.php:243 msgid "HSTS not enabled" msgstr "" #: pro/class-headers.php:244 msgid "Your site is not configured for HSTS yet." msgstr "" #: pro/class-headers.php:450 msgid "The following recommended security headers have not been set: %s" msgstr "" #: pro/class-importer.php:61 msgid "Roll back file changes" msgstr "" #: pro/class-importer.php:93 msgid "Something went wrong. If this doesn't work, you can put the original files back by changing files named 'rsssl-bkp-filename' to filename." msgstr "" #: pro/class-importer.php:105 msgid "Your files were restored." msgstr "" #: pro/class-importer.php:107 msgid "Your files already were restored." msgstr "" #: pro/class-importer.php:121 #: pro/class-importer.php:162 #: pro/class-importer.php:200 #: pro/class-importer.php:242 #: pro/class-importer.php:278 msgid "Something went wrong. Please refresh the page and try again, or fix manually." msgstr "" #: pro/class-importer.php:136 msgid "There was a problem editing the file. Please try manually." msgstr "" #: pro/class-importer.php:179 msgid "The file could not be downloaded. It might not exist, or downloading is blocked. Fix manually." msgstr "" #: pro/class-importer.php:221 #: pro/class-importer.php:258 #: pro/class-importer.php:297 msgid "The file could not be downloaded. The file might not exist, or downloading is be blocked by the server. Fix manually." msgstr "" #: pro/class-importer.php:537 msgid "Something went wrong." msgstr "" #: pro/class-licensing.php:65 msgid "Activate your license for automatic updates." msgstr "" #: pro/class-licensing.php:185 #: pro/class-licensing.php:207 #: pro/class-licensing.php:704 #: pro/class-licensing.php:711 #: pro/class-licensing.php:718 #: pro/class-licensing.php:725 #: pro/class-licensing.php:732 #: pro/class-licensing.php:747 msgid "License" msgstr "" #: pro/class-licensing.php:186 msgid "Manage your license here." msgstr "" #: pro/class-licensing.php:500 msgid "unlimited" msgstr "" #: pro/class-licensing.php:507 msgid "You have a lifetime license." msgstr "" #: pro/class-licensing.php:507 msgid "Valid until %s." msgstr "" #: pro/class-licensing.php:513 msgid "Upgrade to a %s5 sites or Agency%s license." msgstr "" #: pro/class-licensing.php:516 msgid "Upgrade to an %sAgency%s license." msgstr "" #: pro/class-licensing.php:519 msgid "You can renew your license on your %saccount%s." msgstr "" #: pro/class-licensing.php:524 msgid "Unlimited activations available." msgstr "" #: pro/class-licensing.php:527 #: pro/class-licensing.php:623 msgid "%s/%s activations available." msgstr "" #: pro/class-licensing.php:543 msgid "Valid license for %s." msgstr "" #: pro/class-licensing.php:568 msgid "Multisite detected. Please upgrade to %smultisite%s." msgstr "" #: pro/class-licensing.php:576 msgid "The license information could not be retrieved at this moment. Please try again at a later time." msgstr "" #: pro/class-licensing.php:582 msgid "Please enter your license key. Available in your %saccount%s." msgstr "" #: pro/class-licensing.php:590 msgid "Please activate your license key." msgstr "" #: pro/class-licensing.php:596 msgid "Your license has been revoked. Please contact %ssupport%s." msgstr "" #: pro/class-licensing.php:602 msgid "Your license could not be found in our system. Please contact %ssupport%s." msgstr "" #: pro/class-licensing.php:609 msgid "This license is not valid. Find out why on your %saccount%s." msgstr "" #: pro/class-licensing.php:616 msgid "This license is not valid for this product. Find out why on your %saccount%s." msgstr "" #: pro/class-licensing.php:629 msgid "Your license key has expired. Please renew your license key on your %saccount%s." msgstr "" #: pro/class-licensing.php:637 msgid "Success" msgstr "" #: pro/class-licensing.php:638 msgid "Premium" msgstr "" #: pro/class-licensing.php:681 msgid "Your Really Simple SSL Pro license hasn't been activated." msgstr "" #: pro/class-licensing.php:682 msgid "Your Really Simple SSL Pro license is not valid." msgstr "" #: pro/class-licensing.php:696 msgid "%sActivate%s your license." msgstr "" #: pro/class-licensing.php:698 msgid "You can upgrade on your %saccount%s." msgstr "" #: pro/class-licensing.php:705 msgid "Your Really Simple SSL Pro license key has expired. Please renew your license to continue receiving updates and premium support." msgstr "" #: pro/class-licensing.php:712 msgid "Your Really Simple SSL Pro license key is not activated. Please activate your license to continue receiving updates and premium support." msgstr "" #: pro/class-licensing.php:719 msgid "This domain is not activated for this Really Simple SSL Pro license. Please activate the license for this domain." msgstr "" #: pro/class-licensing.php:726 msgid "You do not have any activations left on your Really Simple SSL Pro license. Please upgrade your plan for additional activations." msgstr "" #: pro/class-licensing.php:733 msgid "Your Really Simple SSL Pro license key hasn't been activated yet. You can activate your license key on the license tab." msgstr "" #: pro/class-licensing.php:748 msgid "You are using Really Simple SSL Pro single site on a multisite environment. Please install Really Simple SSL multisite networkwide for multisite support." msgstr "" #: pro/class-scan.php:138 #: pro/class-scan.php:152 msgid "Great! Your scan last completed without errors." msgstr "" #: pro/class-scan.php:142 msgid "The last scan was completed with errors. Only migrate if you are sure the found errors are not a problem for your site." msgstr "" #: pro/class-scan.php:147 msgid "You haven't scanned the site yet, you should scan your site to check for possible issues." msgstr "" #: pro/class-scan.php:156 msgid "The last scan was completed with errors. Are you sure these issues don't impact your site?" msgstr "" #: pro/class-scan.php:223 #: pro/class-scan.php:1942 msgid "Never" msgstr "" #: pro/class-scan.php:229 msgctxt "'date' at 'time'" msgid "%s at %s" msgstr "" #: pro/class-scan.php:262 msgid "Generating web page list" msgstr "" #: pro/class-scan.php:275 msgid "Searching for js and css files and links to external resources in website, %d of %d" msgstr "" #: pro/class-scan.php:290 msgid "Searching for mixed content in css and js files, %s of %s" msgstr "" #: pro/class-scan.php:304 msgid "Generating file list" msgstr "" #: pro/class-scan.php:318 msgid "Checking posts for external URLs, %s of %s" msgstr "" #: pro/class-scan.php:331 msgid "Checking widgets for external URLs" msgstr "" #: pro/class-scan.php:342 msgid "Checking which postmeta contain external resources" msgstr "" #: pro/class-scan.php:355 msgid "Checking which resources can't load over ssl, %s of %s" msgstr "" #: pro/class-scan.php:370 msgid "Checking if external js or css files contain http links, %s of %s" msgstr "" #: pro/class-scan.php:385 msgid "Looking up blocked resources in files, %s of %s" msgstr "" #: pro/class-scan.php:399 msgid "Looking up blocked resources in posts" msgstr "" #: pro/class-scan.php:412 msgid "Looking up blocked resources in postmeta" msgstr "" #: pro/class-scan.php:427 msgid "Looking up blocked resources in widgets" msgstr "" #: pro/class-scan.php:435 msgid "Finished scan" msgstr "" #: pro/class-scan.php:1622 msgid "theme file" msgstr "" #: pro/class-scan.php:1624 msgid "mu plugin file" msgstr "" #: pro/class-scan.php:1626 msgid "plugin file" msgstr "" #: pro/class-scan.php:1628 msgid "uploads file, possibly generated by plugin or theme" msgstr "" #: pro/class-scan.php:1630 msgid "cached file, deactivate cache to see the actual source" msgstr "" #: pro/class-scan.php:1632 msgid "file" msgstr "" #: pro/class-scan.php:1647 msgid "Downloading files from other websites can cause serious copyright issues! It is always illegal to use images, files, or any copyright protected material on your own site without the consent of the copyrightholder. Please ask the copyrightholder for permission. Use this function at your own risk." msgstr "" #: pro/class-scan.php:1648 msgid "This downloads the file from the domain without SSL, inserts it into WP media, and changes the URL to the new URL." msgstr "" #: pro/class-scan.php:1669 #: pro/class-scan.php:1700 #: pro/class-scan.php:1776 #: pro/class-scan.php:1813 #: pro/class-scan.php:1862 msgid "Blocked URL: %s" msgstr "" #: pro/class-scan.php:1669 msgid "You can edit the source file manually by pressing the edit button." msgstr "" #: pro/class-scan.php:1701 msgid "Can be fixed manually by editing the respective mu-plugin file in the /wp-content/mu-plugins/ directory." msgstr "" #: pro/class-scan.php:1701 msgid "Can be fixed automatically by pressing the Fix button. If fixing fails, the source file can be edited manually by pressing the Edit button." msgstr "" #: pro/class-scan.php:1739 msgid "Cannot be fixed automatically, as the mixed content is coming from an external domain. Contact the owner of the domain to update the CSS/JS file" msgstr "" #: pro/class-scan.php:1740 msgid "Mixed content resources: %s" msgstr "" #: pro/class-scan.php:1777 msgid "Mixed content found in in a post. Can be fixed automatically by pressing the fix button. Pressing the edit button allows you to update the link in the post manually." msgstr "" #: pro/class-scan.php:1812 msgid "iFrame in the wp_postmeta database table" msgstr "" #: pro/class-scan.php:1814 msgid "Mixed content from a postmeta table in your database. Usually won't cause any mixed content on the front-end. Check the post if it causes mixed content. If so, the link can be replace directly in the database." msgstr "" #: pro/class-scan.php:1857 msgid "Widget area \"%s\"" msgstr "" #: pro/class-scan.php:1862 msgid "Mixed content found in a widget. Press the edit link to edit the widget manually." msgstr "" #: pro/class-scan.php:2206 msgid "Roll back changes made to your files" msgstr "" #: pro/class-scan.php:2210 msgid "This will put the files back that were changed by the fix option in Really Simple SSL Pro." msgstr "" #: pro/class-scan.php:2212 msgid "Please note that any changes you have made since to your current files, will be lost." msgstr "" #: pro/class-scan.php:2217 msgid "Restore files" msgstr "" #: pro/csp-violation-endpoint.php:152 msgid "A required database table is missing. Please check if you have permissions to add this database table." msgstr "" #: pro/csp-violation-endpoint.php:174 msgid "Learning Mode is active for your Content Security and will complete in %s days." msgstr "" #: pro/csp-violation-endpoint.php:186 msgid "Follow these steps to complete the setup:" msgstr "" #: pro/csp-violation-endpoint.php:188 msgid "Review the detected configuration in 'Content Security Policy'." msgstr "" #: pro/csp-violation-endpoint.php:189 msgid "Click 'Enforce' to enforce the configuration on your site." msgstr "" #: pro/csp-violation-endpoint.php:213 msgid "Content Security Policy maximum size exceeded" msgstr "" #: pro/csp-violation-endpoint.php:214 msgid "Your site has exceeded the maximum size for HTTP headers. To prevent issues, the Content Security Policy won't be added to your HTTP headers." msgstr "" #: pro/security/notices.php:13 msgid "You have enabled the \"Rename and randomize your database prefix\" option, but the attempt to do this has failed. The option has been disabled." msgstr "" #: pro/security/notices.php:34 msgid "Block admin creation was disabled, because the registration of admin users has failed." msgstr "" #: pro/security/wordpress/block-admin-creation.php:346 msgid "Manual approval required" msgstr "" #: pro/security/wordpress/block-admin-creation.php:347 msgid "Because of your settings in Really Simple SSL, this user has been set to subscriber until you change the role manually." msgstr "" #: pro/security/wordpress/block-admin-creation.php:353 #: pro/security/wordpress/block-admin-creation.php:354 msgid "Suspicious admin account detected" msgstr "" #: pro/security/wordpress/block-admin-creation.php:355 msgid "A user account with administrator privileges was created outside the WordPress dashboard." msgstr "" #: pro/security/wordpress/change-login-url.php:18 msgid "Login URL request" msgstr "" #: pro/security/wordpress/change-login-url.php:19 msgid "You have requested the login URL for your website. You can log in on %s." msgstr "" #: pro/security/wordpress/change-login-url.php:141 msgid "This feature is not enabled." msgstr "" #: pro/security/wordpress/class-rsssl-event-listener.php:153 #: pro/security/wordpress/class-rsssl-event-listener.php:179 msgid "Your access has been denied, please contact the webmaster for support" msgstr "" #: pro/security/wordpress/class-rsssl-event-listener.php:186 msgid "Your access has been denied, too many login attempts" msgstr "" #: pro/security/wordpress/class-rsssl-password-security.php:132 msgid "Password Expires On" msgstr "" #. translators: %s: Not required. #: pro/security/wordpress/class-rsssl-password-security.php:172 msgid "Not required" msgstr "" #: pro/security/wordpress/class-rsssl-password-security.php:368 msgid "Your password has expired. Please change your password." msgstr "" #: pro/security/wordpress/class-rsssl-password-security.php:586 #: pro/security/wordpress/class-rsssl-password-security.php:590 msgid "Invalid nonce." msgstr "" #: pro/security/wordpress/class-rsssl-password-security.php:640 msgid "Your password contains (part of) your (user)name or email address. Choose a different password" msgstr "" #: pro/security/wordpress/class-rsssl-password-security.php:798 #: pro/security/wordpress/class-rsssl-password-security.php:799 msgid "Your account is locked" msgstr "" #: pro/security/wordpress/class-rsssl-password-security.php:801 msgid "Hi %1$s, Your password expired on %2$s , please change your password." msgstr "" #: pro/security/wordpress/class-rsssl-password-security.php:805 msgid "Unlock Account" msgstr "" #: pro/security/wordpress/class-rsssl-password-security.php:807 #: pro/security/wordpress/class-rsssl-password-security.php:830 msgid "Copy this URL to your browser to change your password: %1$s " msgstr "" #: pro/security/wordpress/class-rsssl-password-security.php:816 msgid "Account Locked" msgstr "" #: pro/security/wordpress/class-rsssl-password-security.php:821 #: pro/security/wordpress/class-rsssl-password-security.php:822 msgid "Your password will expire in 7 days" msgstr "" #: pro/security/wordpress/class-rsssl-password-security.php:824 msgid "Hi %1$s, Your password on %2$s will expire in 7 days, please change your password." msgstr "" #: pro/security/wordpress/class-rsssl-password-security.php:828 msgid "Change password" msgstr "" #: pro/security/wordpress/class-rsssl-password-security.php:839 msgid "Change your password" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:119 #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:174 msgid "System" msgstr "" #. translators: %s is replaced with the username. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:255 msgid "Login by %s was successful" msgstr "" #. translators: %s is replaced with the username. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:258 msgid "Login by %s failed (incorrect credentials)" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:260 #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:524 msgid "REST API authentication successful" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:260 #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:265 #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:270 #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:275 #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:524 #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:529 #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:534 #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:539 msgid "Authentication" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:265 #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:529 msgid "REST API authentication failed" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:270 #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:534 msgid "XML-RPC authentication successful" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:275 #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:539 msgid "XML-RPC authentication failed" msgstr "" #. translators: %s is replaced with the username. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:281 msgid "User %s added to temporary blocklist" msgstr "" #. translators: %s is replaced with the username. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:285 msgid "User %s removed from temporary blocklist" msgstr "" #. translators: %s is replaced with the username. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:290 msgid "User %s added to permanent blocklist" msgstr "" #. translators: %s is replaced with the username. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:293 msgid "User %s removed from permanent blocklist" msgstr "" #. translators: %s is replaced with the username. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:296 msgid "User %s added to trusted IP list" msgstr "" #. translators: %s is replaced with the username. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:300 msgid "User %s removed from trusted IP list" msgstr "" #. translators: %s is replaced with the IP address. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:305 msgid "IP address %s added to temporary blocklist" msgstr "" #. translators: %s is replaced with the IP address. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:308 msgid "IP address %s removed from temporary blocklist" msgstr "" #. translators: %s is replaced with the IP address. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:311 msgid "IP address %s added to permanent blocklist" msgstr "" #. translators: %s is replaced with the IP address. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:314 msgid "IP address %s removed from permanent blocklist" msgstr "" #. translators: %s is replaced with the IP address. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:317 msgid "IP address %s added to trusted IP list" msgstr "" #. translators: %s is replaced with the IP address. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:320 msgid "IP address %s removed from trusted IP list" msgstr "" #. translators: %s is replaced with the country name. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:324 msgid "Country %s added to geo-IP blocklist" msgstr "" #. translators: %s is replaced with the country name. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:330 msgid "Country %s removed from geo-IP blocklist" msgstr "" #. translators: %s is replaced with the email address. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:335 msgid "Unblock link sent to %s" msgstr "" #. translators: %s is replaced with the username. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:339 msgid "Login failed (User %s found in temporary blocklist)" msgstr "" #. translators: %s is replaced with the username. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:345 msgid "Login failed (User %s found in permanent blocklist)" msgstr "" #. translators: %s is replaced with the IP address. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:350 msgid "Login failed (IP %s found in temporary blocklist)" msgstr "" #. translators: %s is replaced with the IP address. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:353 msgid "Login failed (IP %s found in permanent blocklist)" msgstr "" #. translators: %s is replaced with the country name. #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:357 msgid "Login failed (Country %s blocked by geo-IP blocklist )" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:361 msgid "Login failed (incorrect MFA code)" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:361 #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:366 msgid "MFA" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:366 msgid "MFA setup required" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:369 #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:580 msgid "Unknown event" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:520 msgid "Login successful" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:522 msgid "Login failed" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:544 msgid "User locked out" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:547 msgid "User removed from blocklist" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:549 msgid "User added to blocklist" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:551 msgid "User added to trusted list" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:553 msgid "User removed from trusted list" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:555 msgid "IP address locked-out" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:558 msgid "IP removed from blocklist" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:560 msgid "IP added to blocklist" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:562 msgid "IP added to trusted list" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:564 msgid "IP removed from trusted list" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:567 msgid "Geo-IP blocklist changed" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:569 msgid "Unblock link sent" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:572 msgid "Login blocked by username" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:575 msgid "Login blocked by IP address" msgstr "" #: pro/security/wordpress/eventlog/class-rsssl-event-type.php:577 msgid "Login blocked by Geo-IP list" msgstr "" #: pro/security/wordpress/limitlogin/class-rsssl-geo-location.php:445 msgid "Error downloading file: " msgstr "" #: pro/security/wordpress/limitlogin/class-rsssl-geo-location.php:498 msgid "Error extracting file" msgstr "" #: pro/security/wordpress/limitlogin/class-rsssl-geo-location.php:619 #: settings/config/config.php:299 #: settings/config/config.php:344 #: settings/config/config.php:390 #: settings/config/menu.php:397 #: settings/config/menu.php:433 msgid "Trusted" msgstr "" #: pro/security/wordpress/limitlogin/class-rsssl-geo-location.php:697 msgid "'All'" msgstr "" #: pro/security/wordpress/two_fa/class-two-factor-email.php:71 msgctxt "Provider Label" msgid "Email" msgstr "" #: pro/security/wordpress/two_fa/class-two-factor-email.php:238 msgid "Continue" msgstr "" #. translators: %s: site name #: pro/security/wordpress/two_fa/class-two-factor-email.php:243 msgid "Your login confirmation code for %s" msgstr "" #: pro/security/wordpress/two_fa/class-two-factor-email.php:265 msgid "Below you will find your login code for %1$s. It's valid for 15 minutes. %2$s" msgstr "" #. translators: %s is replaced with the site url #. translators: %s: site url #: pro/security/wordpress/two_fa/class-two-factor-email.php:295 #: pro/security/wordpress/two_fa/two-factor.php:1517 #: pro/security/wordpress/two_fa/two-factor.php:1565 msgid "Notification by %s" msgstr "" #: pro/security/wordpress/two_fa/class-two-factor-email.php:298 #: pro/security/wordpress/two_fa/two-factor.php:1520 msgid "Hi" msgstr "" #: pro/security/wordpress/two_fa/class-two-factor-email.php:322 msgid "A verification code has been sent to the email address associated with your account." msgstr "" #: pro/security/wordpress/two_fa/class-two-factor-email.php:324 msgid "Verification Code:" msgstr "" #: pro/security/wordpress/two_fa/class-two-factor-email.php:326 msgid "Log In" msgstr "" #: pro/security/wordpress/two_fa/class-two-factor-email.php:329 msgid "Resend Code" msgstr "" #: pro/security/wordpress/two_fa/class-two-factor-email.php:357 msgid "Don't use Two-step verification" msgstr "" #. translators: %s: email address #: pro/security/wordpress/two_fa/class-two-factor-email.php:427 msgid "Authentication codes will be sent to %s." msgstr "" #: pro/security/wordpress/two_fa/class-two-factor-settings.php:355 msgid "No role" msgstr "" #: pro/security/wordpress/two_fa/two-factor.php:677 msgid "API login for user disabled." msgstr "" #: pro/security/wordpress/two_fa/two-factor.php:751 #: pro/security/wordpress/two_fa/two-factor.php:1281 #: pro/security/wordpress/two_fa/two-factor.php:1292 #: pro/security/wordpress/two_fa/two-factor.php:1317 #: pro/security/wordpress/two_fa/two-factor.php:1343 msgid "Failed to create a login nonce." msgstr "" #. translators: 1: number of failed login attempts, 2: time since last failed login #: pro/security/wordpress/two_fa/two-factor.php:772 msgid "Warning: Your account has attempted to login without providing a valid two factor token. The last failed login occurred %2$s ago. If this wasn't you, you should reset your password." msgid_plural "Warning: %1$s login attempts have been detected on your account with the correct password but with an incorrect two-factor token. The last failed login occurred %2$s ago. If this wasn't you, you should reset your password." msgstr[0] "" msgstr[1] "" #. translators: %s: URL to reset password #: pro/security/wordpress/two_fa/two-factor.php:823 msgid "Your password was reset because of too many failed Two Factor attempts. You will need to create a new password to regain access. Please check your email for more information." msgstr "" #. translators: %s: Two-factor method name. #: pro/security/wordpress/two_fa/two-factor.php:921 msgid "Or, use your backup method: %s →" msgstr "" #: pro/security/wordpress/two_fa/two-factor.php:934 msgid "Or, use a backup method…" msgstr "" #: pro/security/wordpress/two_fa/two-factor.php:1261 msgid "Cheatin’ uh?" msgstr "" #: pro/security/wordpress/two_fa/two-factor.php:1268 #: pro/security/wordpress/two_fa/two-factor.php:1347 msgid "Your verification code expired, click “Resend Code” to receive a new verification code." msgstr "" #. translators: %s: time delay between login attempts #: pro/security/wordpress/two_fa/two-factor.php:1308 msgid "Too many invalid verification codes, you can try again in %s. This limit protects your account against automated attacks." msgstr "" #: pro/security/wordpress/two_fa/two-factor.php:1326 #: pro/security/wordpress/two_fa/two-factor.php:1350 msgid "Invalid verification code." msgstr "" #: pro/security/wordpress/two_fa/two-factor.php:1383 msgid "You have logged in successfully." msgstr "" #. translators: %1$s: user login, %2$s: site url, %3$s: password best practices link, %4$s: lost password url #: pro/security/wordpress/two_fa/two-factor.php:1492 msgid "" "Hello %1$s, an unusually high number of failed login attempts have been detected on your account at %2$s.\n" "\n" "These attempts successfully entered your password, and were only blocked because they failed to enter your second authentication factor. Despite not being able to access your account, this behavior indicates that the attackers have compromised your password. The most common reasons for this are that your password was easy to guess, or was reused on another site which has been compromised.\n" "\n" "To protect your account, your password has been reset, and you will need to create a new one. For advice on setting a strong password, please read %3$s\n" "\n" "To pick a new password, please visit %4$s\n" "\n" "This is an automated notification. If you would like to speak to a site administrator, please contact them directly." msgstr "" #: pro/security/wordpress/two_fa/two-factor.php:1514 msgid "Your password was compromised and has been reset" msgstr "" #. translators: %s: user login #: pro/security/wordpress/two_fa/two-factor.php:1535 msgid "Compromised password for %s has been reset" msgstr "" #. translators: %1$s: user login, %2$d: user id, %3$s: hooks documentation url #: pro/security/wordpress/two_fa/two-factor.php:1541 msgid "" "Hello, this is a notice from your website to inform you that an unusually high number of failed login attempts have been detected on the %1$s account (ID %2$d).\n" "\n" "Those attempts successfully entered the user's password, and were only blocked because they entered invalid second authentication factors.\n" "\n" "To protect their account, the password has automatically been reset, and they have been notified that they will need to create a new one.\n" "\n" "If you do not wish to receive these notifications, you can disable them with the `two_factor_notify_admin_user_password_reset` filter. See %3$s for more information.\n" "\n" "Thank you" msgstr "" #: pro/security/wordpress/two_fa/two-factor.php:1568 msgid "Compromised password reset" msgstr "" #: pro/security/wordpress/two_fa/two-factor.php:1582 msgid "There have been too many failed two-factor authentication attempts, which often indicates that the password has been compromised. The password has been reset in order to protect the account." msgstr "" #: pro/security/wordpress/two_fa/two-factor.php:1583 msgid "If you are the owner of this account, please check your email for instructions on regaining access." msgstr "" #: pro/security/wordpress/two_fa/two-factor.php:1587 msgid "Password Reset" msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:427 #: pro/security/wordpress/vulnerabilities-pro.php:478 msgid "Upgrading..." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:596 msgid "Update Alert: %s." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:597 msgid "%s, Force Update: Scheduled." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:599 msgid "An automatic update for %s has been scheduled due to the discovery of a vulnerability on %s" msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:601 msgid "Several automatic updates for components have been scheduled due to the discovery of vulnerabilities on %s." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:606 msgid "Force Update: %s hours" msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:607 #: pro/security/wordpress/vulnerabilities-pro.php:637 msgid "We will initiate %s automatic update cycles, in the next %s hours, to mitigate available vulnerabilities." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:608 #: pro/security/wordpress/vulnerabilities-pro.php:638 #: pro/security/wordpress/vulnerabilities-pro.php:666 #: pro/security/wordpress/vulnerabilities-pro.php:698 #: pro/security/wordpress/vulnerabilities-pro.php:728 #: pro/security/wordpress/vulnerabilities-pro.php:759 msgid "Please double-check if your website is working as expected." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:625 #: pro/security/wordpress/vulnerabilities-pro.php:655 #: pro/security/wordpress/vulnerabilities-pro.php:684 msgid "Update Alert: %s" msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:626 msgid "%s, Force Update: Failed" msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:628 #: pro/security/wordpress/vulnerabilities-pro.php:687 msgid "An automatic update for %s failed on %s." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:630 #: pro/security/wordpress/vulnerabilities-pro.php:690 msgid "Several automatic updates for vulnerable components, scheduled on %s, have failed." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:636 msgid "Force Update: failed" msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:656 msgid "%s, Force Update: Successful" msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:658 msgid "An automatic update for %s has been successful on %s." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:660 msgid "Several automatic updates for vulnerable components, scheduled on %s, have been successful." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:665 #: pro/security/wordpress/vulnerabilities-pro.php:697 #: pro/security/wordpress/vulnerabilities-pro.php:758 msgid "Verify your website" msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:685 msgid "%s, Force Update: End Process" msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:688 msgid "This is the end of the update cycle, we recommend manually removing %s." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:691 msgid "This is the end of the update cycle, we recommend manually removing vulnerable components." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:694 msgid "You can also use our ‘Quarantine’ option to automate this process in the future." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:715 #: pro/security/wordpress/vulnerabilities-pro.php:748 msgid "Quarantine Alert: %s" msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:716 msgid "%s, Quarantine: Scheduled" msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:718 msgid "A quarantine for %s scheduled on %s." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:720 msgid "Several vulnerable components scheduled for update on %s, have failed." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:726 msgid "Quarantine in %s hours" msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:727 msgid "We will initiate a quarantine cycle in the next %s hours to mitigate available vulnerabilities." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:749 msgid "%s, Quarantine: Successful" msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:751 msgid "A quarantine for %s has been successful on %s." msgstr "" #: pro/security/wordpress/vulnerabilities-pro.php:753 msgid "Several vulnerable components quarantined on %s." msgstr "" #: pro/settings/sync-settings.php:83 #: pro/settings/sync-settings.php:90 msgid "Login URL already changed by something else than Really Simple SSL" msgstr "" #: progress/class-progress.php:83 msgid "SSL is activated on your site." msgstr "" #: progress/class-progress.php:83 msgid "You still have %s task open." msgid_plural "You still have %s tasks open." msgstr[0] "" msgstr[1] "" #: progress/class-progress.php:85 msgid "SSL configuration finished!" msgstr "" #: progress/class-progress.php:90 msgid "Basic SSL configuration finished! Improve your score with %sReally Simple SSL Pro%s." msgstr "" #: progress/class-progress.php:96 msgid "SSL is not yet enabled on this site." msgstr "" #: security/firewall-manager.php:168 #: security/firewall-manager.php:174 #: security/firewall-manager.php:190 msgid "Firewall" msgstr "" #: security/firewall-manager.php:169 msgid "A firewall rule was enabled, but the wp-config.php is not writable." msgstr "" #: security/firewall-manager.php:169 msgid "Please set the wp-config.php to writable until the rule has been written." msgstr "" #: security/firewall-manager.php:175 msgid "A firewall rule was enabled, but /the wp-content/ folder is not writable." msgstr "" #: security/firewall-manager.php:175 msgid "Please set the wp-content folder to writable:" msgstr "" #: security/firewall-manager.php:191 msgid "A firewall rule was enabled, but the firewall does not seem to get loaded correctly." msgstr "" #: security/firewall-manager.php:191 msgid "Please check if the advanced-headers.php file is included in the wp-config.php, and exists in the wp-content folder." msgstr "" #: security/hardening.php:13 #: security/wordpress/vulnerabilities.php:51 msgid "low-risk" msgstr "" #: security/hardening.php:14 #: security/wordpress/vulnerabilities.php:52 msgid "medium-risk" msgstr "" #: security/hardening.php:15 #: security/wordpress/vulnerabilities.php:53 msgid "high-risk" msgstr "" #: security/hardening.php:16 #: security/wordpress/vulnerabilities.php:54 msgid "critical" msgstr "" #: security/notices.php:31 msgid "Disable application passwords." msgstr "" #: security/notices.php:45 msgid ".htaccess not writable" msgstr "" #: security/notices.php:46 msgid "An option that requires the .htaccess file is enabled, but the file is not writable." msgstr "" #: security/notices.php:46 #: security/notices.php:54 #: security/notices.php:73 msgid "Please add the following lines to your .htaccess, or set it to writable:" msgstr "" #: security/notices.php:53 msgid ".htaccess does not exist" msgstr "" #: security/notices.php:54 msgid "An option that requires the .htaccess file is enabled, but the file does not exist." msgstr "" #: security/notices.php:72 msgid ".htaccess in uploads not writable" msgstr "" #: security/notices.php:73 msgid "An option that requires the .htaccess file in the uploads directory is enabled, but the file is not writable." msgstr "" #: security/notices.php:92 msgid "It is currently possible to create an administrator user with the same login and display name." msgstr "" #: security/notices.php:106 msgid "We have detected administrator roles where the login and display names are the same." msgstr "" #: security/notices.php:120 msgid "Debugging" msgstr "" #: security/notices.php:121 msgid "Your site logs information to a public debugging file." msgstr "" #: security/notices.php:138 msgid "Your site is vulnerable to user enumeration attacks." msgstr "" #: security/notices.php:140 msgid "Prevent user enumeration" msgstr "" #: security/notices.php:158 #: security/notices.php:175 #: settings/config/config.php:311 #: settings/config/config.php:1123 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LimitLoginAttempts/AddUserModal.js:53 msgid "Username" msgstr "" #: security/notices.php:159 msgid "Your site registered a user with the name 'admin'." msgstr "" #: security/notices.php:176 msgid "Rename admin user enabled: Please choose a new username of at least 3 characters, which is not in use yet." msgstr "" #: security/notices.php:191 msgid "Code execution is allowed in the public 'Uploads' folder." msgstr "" #: security/notices.php:202 msgid "Your database prefix is renamed and randomized. Awesome!" msgstr "" #: security/notices.php:207 msgid "Your database prefix is set to the default 'wp_'." msgstr "" #: security/notices.php:221 msgid "Really Simple SSL has a new feature! Introducing Vulnerability Detection, enable it now." msgstr "" #: security/notices.php:253 msgid "The built-in file editors are accessible to others." msgstr "" #: security/notices.php:267 msgid "Anyone can register an account on your site. Consider disabling this option in the WordPress general settings." msgstr "" #: security/notices.php:281 msgid "Your WordPress version is visible to others." msgstr "" #: security/sync-settings.php:34 msgid "Debug.log" msgstr "" #: security/sync-settings.php:35 msgid "Changed debug.log location to:" msgstr "" #: security/wordpress/block-code-execution-uploads.php:14 msgid "Could not find code execution test file." msgstr "" #: security/wordpress/block-code-execution-uploads.php:19 msgid "Uploads folder not writable." msgstr "" #: security/wordpress/block-code-execution-uploads.php:24 msgid "Could not copy code execution test file." msgstr "" #: security/wordpress/block-code-execution-uploads.php:37 msgid "The code to block code execution in the uploads folder cannot be added automatically on nginx. Add the following code to your nginx.conf file:" msgstr "" #: security/wordpress/file-editing.php:28 msgid "The DISALLOW_FILE_EDIT constant is defined and set to false. You can remove it from your wp-config.php." msgstr "" #: security/wordpress/prevent-login-info-leakage.php:9 msgid "Invalid login details." msgstr "" #: security/wordpress/rename-admin-user.php:15 msgid "Username 'admin' has been changed to %s" msgstr "" #: security/wordpress/user-enumeration.php:10 msgid "forbidden - number in author name not allowed = %s" msgstr "" #: security/wordpress/vulnerabilities.php:254 msgid "No known vulnerabilities detected" msgstr "" #: security/wordpress/vulnerabilities.php:262 msgid "No known vulnerabilities detected." msgstr "" #: security/wordpress/vulnerabilities.php:274 msgid "Vulnerabilities detected" msgstr "" #: security/wordpress/vulnerabilities.php:282 msgid "%s vulnerability has been detected." msgid_plural "%s vulnerabilities have been detected." msgstr[0] "" msgstr[1] "" #: security/wordpress/vulnerabilities.php:283 msgid "Please check the vulnerabilities overview for more information and take appropriate action." msgstr "" #: security/wordpress/vulnerabilities.php:288 msgid "View vulnerabilities" msgstr "" #: security/wordpress/vulnerabilities.php:330 msgid "Please take appropriate action." msgstr "" #: security/wordpress/vulnerabilities.php:359 msgid "Site wide - Test Notification" msgstr "" #: security/wordpress/vulnerabilities.php:360 #: security/wordpress/vulnerabilities.php:382 msgid "This is a test notification from Really Simple SSL. You can safely dismiss this message." msgstr "" #: security/wordpress/vulnerabilities.php:381 msgid "Dashboard - Test Notification" msgstr "" #: security/wordpress/vulnerabilities.php:582 #: settings/config/menu.php:181 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/VulnerabilitiesHeader.js:15 msgid "Vulnerabilities" msgstr "" #: security/wordpress/vulnerabilities.php:597 msgid "Force update" msgstr "" #: security/wordpress/vulnerabilities.php:599 msgid "Will run a frequent update process on vulnerable components." msgstr "" #: security/wordpress/vulnerabilities.php:603 msgid "Quarantine" msgstr "" #: security/wordpress/vulnerabilities.php:605 msgid "Components will be quarantined if the update process fails." msgstr "" #: security/wordpress/vulnerabilities.php:677 #: security/wordpress/vulnerabilities.php:1150 msgid "Quarantined" msgstr "" #: security/wordpress/vulnerabilities.php:1133 msgid "Vulnerability: %s" msgstr "" #: security/wordpress/vulnerabilities.php:1466 msgid "Vulnerability Alert: %s" msgstr "" #: security/wordpress/vulnerabilities.php:1467 msgid "%s: %s vulnerability found" msgid_plural "%s: %s vulnerabilities found" msgstr[0] "" msgstr[1] "" #: security/wordpress/vulnerabilities.php:1468 msgid "This is a vulnerability alert from Really Simple SSL for %s. " msgstr "" #: security/wordpress/vulnerabilities.php:1501 msgid "A %s vulnerability is found in %s." msgstr "" #: security/wordpress/vulnerabilities.php:1501 msgid "Multiple %s vulnerabilities have been found." msgstr "" #: security/wordpress/vulnerabilities.php:1506 msgid "Based on your settings, Really Simple SSL will take appropriate action, or you will need to solve it manually." msgstr "" #: security/wordpress/vulnerabilities.php:1521 msgid "You have %s critical vulnerability" msgid_plural "You have %s critical vulnerabilities" msgstr[0] "" msgstr[1] "" #: security/wordpress/vulnerabilities.php:1524 msgid "You have %s high-risk vulnerability" msgid_plural "You have %s high-risk vulnerabilities" msgstr[0] "" msgstr[1] "" #: security/wordpress/vulnerabilities.php:1527 msgid "You have %s medium-risk vulnerability" msgid_plural "You have %s medium-risk vulnerabilities" msgstr[0] "" msgstr[1] "" #: security/wordpress/vulnerabilities.php:1530 msgid "You have %s low-risk vulnerability" msgid_plural "You have %s low-risk vulnerabilities" msgstr[0] "" msgstr[1] "" #: settings/config/config.php:51 msgid "Dismiss all notifications" msgstr "" #: settings/config/config.php:61 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Installation.js:95 #: settings/src/LetsEncrypt/Installation.js:100 #: settings/src/LetsEncrypt/Installation.js:104 msgid "Download" msgstr "" #: settings/config/config.php:62 msgid "System status" msgstr "" #: settings/config/config.php:71 msgid "Delete all data on plugin deletion" msgstr "" #: settings/config/config.php:92 msgid "Changing redirect methods should be done with caution. Please make sure you have read our instructions beforehand at the right-hand side." msgstr "" #: settings/config/config.php:93 #: settings/config/config.php:102 #: settings/config/disable-fields-filter.php:18 msgid "Redirect method" msgstr "" #: settings/config/config.php:96 msgid "No redirect" msgstr "" #: settings/config/config.php:97 msgid "301 PHP redirect" msgstr "" #: settings/config/config.php:98 msgid "301 .htaccess redirect (read instructions first)" msgstr "" #: settings/config/config.php:103 #: settings/config/disable-fields-filter.php:19 msgid "Redirects your site to https with a SEO friendly 301 redirect if it is requested over http." msgstr "" #: settings/config/config.php:106 msgid "Settings update: .htaccess redirect" msgstr "" #: settings/config/config.php:107 msgid "The .htaccess redirect has been enabled on your site. If the server configuration is non-standard, this might cause issues. Please check if all pages on your site are functioning properly." msgstr "" #: settings/config/config.php:125 #: modal/build/index.f0747a4e3a76f14cbb01.js:1 #: modal/src/components/DeactivationModal/DeactivationModal.js:124 msgid "Mixed content fixer" msgstr "" #: settings/config/config.php:134 #: settings/config/config.php:137 msgid "Mixed content fixer - init hook" msgstr "" #: settings/config/config.php:138 msgid "If this option is set to true, the mixed content fixer will fire on the init hook instead of the template_redirect hook. Only use this option when you experience problems with the mixed content fixer." msgstr "" #: settings/config/config.php:144 msgid "Only enable if the default mixed content fixer does not fix your front-end mixed content." msgstr "" #: settings/config/config.php:158 msgid "Mixed content fixer - back-end" msgstr "" #: settings/config/config.php:159 msgid "Only enable this if you experience mixed content in the admin environment of your WordPress website." msgstr "" #: settings/config/config.php:179 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/Support.js:43 msgid "Send" msgstr "" #: settings/config/config.php:183 msgid "Verify your email address to get the most out of Really Simple SSL." msgstr "" #: settings/config/config.php:190 msgid "Notifications by email" msgstr "" #: settings/config/config.php:191 msgid "Get notified of important changes, updates and settings. Recommended when using security features." msgstr "" #: settings/config/config.php:200 msgid "Premium support" msgstr "" #: settings/config/config.php:210 msgid "Enable Limit Login Attempts" msgstr "" #: settings/config/config.php:214 msgid "About Limit Login Attempts" msgstr "" #: settings/config/config.php:215 msgid "Limit Login Attempts protects your site from login attempts by unauthorized users. When you enable Limit Login Attempts, all login attempts are logged and repeated attempts to login with invalid credentials will be blocked automatically." msgstr "" #: settings/config/config.php:215 #: settings/config/config.php:1218 #: settings/config/config.php:1662 msgid "They might be misused if you don’t actively tell the browser to disable these features." msgstr "" #: settings/config/config.php:224 msgid "After this number of failed login attempts the user and IP address will be temporarily blocked." msgstr "" #: settings/config/config.php:226 msgid "Login attempts" msgstr "" #: settings/config/config.php:228 #: settings/config/config.php:229 #: settings/config/config.php:230 #: settings/config/config.php:231 msgid "attempts" msgstr "" #: settings/config/config.php:247 msgid "If the number of failed login attempts is exceeded within this timeframe, the IP address and user will be blocked." msgstr "" #: settings/config/config.php:249 msgid "Interval" msgstr "" #: settings/config/config.php:251 #: settings/config/config.php:252 #: settings/config/config.php:275 #: settings/config/config.php:276 msgid "%s minutes" msgstr "" #: settings/config/config.php:253 #: settings/config/config.php:277 msgid "%s hour" msgstr "" #: settings/config/config.php:254 #: settings/config/config.php:278 msgid "%s hours" msgstr "" #: settings/config/config.php:255 #: settings/config/config.php:279 msgid "%s day" msgstr "" #: settings/config/config.php:271 msgid "The user and IP address will be temporarily unable to login for the specified duration. You can block IP addresses indefinitely via the IP addresses block." msgstr "" #: settings/config/config.php:273 msgid "Lockout duration" msgstr "" #: settings/config/config.php:297 #: settings/config/config.php:342 #: settings/config/config.php:388 #: settings/config/menu.php:489 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:141 msgid "Blocked" msgstr "" #: settings/config/config.php:298 #: settings/config/config.php:343 #: settings/config/config.php:389 msgid "Locked-out" msgstr "" #: settings/config/config.php:318 #: settings/config/config.php:364 #: settings/config/config.php:424 #: settings/config/config.php:1131 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/SslLabs/SslLabsHeader.js:5 msgid "Status" msgstr "" #: settings/config/config.php:324 #: settings/config/config.php:370 #: settings/config/config.php:459 #: settings/config/config.php:1571 msgid "Date" msgstr "" #: settings/config/config.php:346 msgid "Enable open source blocklist API etc." msgstr "" #: settings/config/config.php:357 #: settings/config/config.php:473 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LimitLoginAttempts/AddIpAddressModal.js:83 msgid "IP Address" msgstr "" #: settings/config/config.php:409 #: settings/config/config.php:453 msgid "Country" msgstr "" #: settings/config/config.php:417 msgid "Continent" msgstr "" #: settings/config/config.php:442 msgid "IP address overview" msgstr "" #: settings/config/config.php:465 msgid "User" msgstr "" #: settings/config/config.php:481 msgid "Event" msgstr "" #: settings/config/config.php:498 msgid "X-XSS-Protection" msgstr "" #: settings/config/config.php:500 msgid "disabled" msgstr "" #: settings/config/config.php:501 msgid "(recommended)" msgstr "" #: settings/config/config.php:510 msgid "About Recommended Security Headers" msgstr "" #: settings/config/config.php:511 msgid "These security headers are the fundamental security measures to protect your website visitors while visiting your website." msgstr "" #: settings/config/config.php:520 msgid "X-Content-Type options" msgstr "" #: settings/config/config.php:530 #: settings/config/config.php:544 #: settings/config/config.php:647 #: settings/config/config.php:669 #: settings/config/config.php:684 msgid "Off" msgstr "" #: settings/config/config.php:534 msgid "X-Frame options" msgstr "" #: settings/config/config.php:545 msgid "recommended" msgstr "" #: settings/config/config.php:555 msgid "Referrer Policy" msgstr "" #: settings/config/config.php:564 msgid "HTTP Strict Transport Security" msgstr "" #: settings/config/config.php:570 msgid "About HTTP Strict Transport Security" msgstr "" #: settings/config/config.php:571 msgid "Leveraging your SSL certificate with HSTS is a staple for every website. Force your website over SSL, mitigating risks of malicious counterfeit websites in your name." msgstr "" #: settings/config/config.php:586 msgid "Include preload" msgstr "" #: settings/config/config.php:587 msgid "After enabling this feature, you can submit your site to %shstspreload.org%s" msgstr "" #: settings/config/config.php:611 msgid "Include subdomains" msgstr "" #: settings/config/config.php:627 msgid "One day (for testing only)" msgstr "" #: settings/config/config.php:628 msgid "One year" msgstr "" #: settings/config/config.php:629 msgid "Two years (required for preload)" msgstr "" #: settings/config/config.php:631 msgid "Choose the max-age for HSTS" msgstr "" #: settings/config/config.php:655 msgid "About Cross Origin Policies" msgstr "" #: settings/config/config.php:656 msgid "One of the most powerful features, and therefore the most complex are the Cross-Origin headers that can isolate your website so any data leaks are minimized." msgstr "" #: settings/config/config.php:659 msgid "Cross Origin Opener Policy" msgstr "" #: settings/config/config.php:674 msgid "Cross Origin Resource Policy" msgstr "" #: settings/config/config.php:689 msgid "Cross Origin Embedder Policy" msgstr "" #: settings/config/config.php:698 msgid "Stop editing the .htaccess file" msgstr "" #: settings/config/config.php:715 msgid "Disable \"anyone can register\"" msgstr "" #: settings/config/config.php:721 msgid "About Hardening" msgstr "" #: settings/config/config.php:722 msgid "Hardening features limit the possibility of potential weaknesses and vulnerabilities which can be misused." msgstr "" #: settings/config/config.php:731 msgid "Disable the built-in file editors" msgstr "" #: settings/config/config.php:741 msgid "Prevent code execution in the public 'Uploads' folder" msgstr "" #: settings/config/config.php:751 msgid "Hide your WordPress version" msgstr "" #: settings/config/config.php:761 msgid "By default, WordPress shows if a username or email address exists when a login fails. This will change it to generic feedback." msgstr "" #: settings/config/config.php:762 msgid "Prevent login feedback" msgstr "" #: settings/config/config.php:772 msgid "Disable directory browsing" msgstr "" #: settings/config/config.php:782 msgid "Disable user enumeration" msgstr "" #: settings/config/config.php:793 msgid "Block the username 'admin'" msgstr "" #: settings/config/config.php:795 msgid "Settings update: Username 'admin' renamed" msgstr "" #: settings/config/config.php:796 msgid "As a security precaution, the username ‘admin’ has been changed on %s. From now on, you can login with '%s' or an email address." msgstr "" #: settings/config/config.php:800 msgid "If the username 'admin' currently exists, you can rename it here. Please note that you can no longer use this username, and should use the new username or an email address" msgstr "" #: settings/config/config.php:810 msgid "Choose new username to replace 'admin'" msgstr "" #: settings/config/config.php:834 msgid "Disable XML-RPC" msgstr "" #: settings/config/config.php:843 msgid "Block user registrations when login and display name are the same" msgstr "" #: settings/config/config.php:852 msgid "This will limit or fully disable HTTP requests that are not needed, but could be used with malicious intent." msgstr "" #: settings/config/config.php:853 msgid "Disable HTTP methods" msgstr "" #: settings/config/config.php:862 msgid "Settings update: Database prefix changed" msgstr "" #: settings/config/config.php:863 msgid "Security through obscurity. Your site is no longer using the default wp_ prefix for database tables. The process has been designed to only complete and replace the tables after all wp_ tables are successfully renamed. In the unlikely event that this does lead to database issues on your site, please navigate to our troubleshooting article." msgstr "" #: settings/config/config.php:866 #: settings/config/config.php:867 msgid "This will permanently change your database prefixes and you can NOT rollback this feature. Please make sure you have a back-up." msgstr "" #: settings/config/config.php:869 msgid "Rename and randomize your database prefix" msgstr "" #: settings/config/config.php:878 msgid "A debug.log is publicly accessibile and has a standard location. This will change the location to a randomly named folder in /wp-content/" msgstr "" #: settings/config/config.php:880 msgid "Settings update: Debug.log file relocated" msgstr "" #: settings/config/config.php:881 msgid "From now on, the debug.log won’t be publicly accessible whenever wp-debugging is enabled. The debug log will be stored in a randomly named folder in /wp-content/. This prevents possible leakage of sensitive debugging information." msgstr "" #: settings/config/config.php:884 msgid "Change debug.log file location" msgstr "" #: settings/config/config.php:893 msgid "Disable application passwords" msgstr "" #: settings/config/config.php:902 #: settings/config/config.php:903 msgid "This setting will block attempts to assign administrator roles outside the native user creation process by WordPress. This might include other plugins that create, edit or assign roles to users. If you need to create an administrator in a third-party plugin, temporarily disable this setting while you make the changes." msgstr "" #: settings/config/config.php:907 msgid "Unauthorized administrators" msgstr "" #: settings/config/config.php:908 msgid "Many vulnerabilities are exploited by injecting a user with administrator capabilities outside of the native WordPress creation process. Under advanced hardening you can prevent this from happening." msgstr "" #: settings/config/config.php:910 msgid "Restrict creation of administrator roles" msgstr "" #: settings/config/config.php:920 msgid "Allows you to enter a custom login URL." msgstr "" #: settings/config/config.php:921 msgid "Enable Custom login URL" msgstr "" #: settings/config/config.php:923 msgid "You have changed your login URL" msgstr "" #: settings/config/config.php:924 msgid "Your login URL has changed to {login_url} to prevent common bot attacks on standard login URLs. Learn more about this feature, common questions and measures to prevent any issues." msgstr "" #: settings/config/config.php:935 msgid "Enter a custom login URL. This allows you to log in via this custom URL instead of /wp-admin or /wp-login.php" msgstr "" #: settings/config/config.php:936 msgid "Example: If you want to change your login page from /wp-admin/ to /control/ answer: control" msgstr "" #: settings/config/config.php:937 msgid "Custom login URL" msgstr "" #: settings/config/config.php:954 msgid "Users trying to enter via /wp-admin or /wp-login.php will be redirected to this URL." msgstr "" #: settings/config/config.php:990 #: settings/config/menu.php:258 msgid "XML-RPC" msgstr "" #: settings/config/config.php:996 msgid "About XML-RPC" msgstr "" #: settings/config/config.php:997 msgid "XML-RPC is a mechanism originally implemented into WordPress to publish content without the need to actually login to the backend. It is also used to login to WordPress from devices other than desktop, or the regular wp-admin interface." msgstr "" #: settings/config/config.php:1007 msgid "Method" msgstr "" #: settings/config/config.php:1013 msgid "Login status" msgstr "" #: settings/config/config.php:1019 msgid "Count" msgstr "" #: settings/config/config.php:1043 msgid "Enable login protection" msgstr "" #: settings/config/config.php:1047 msgid "About Login Protection" msgstr "" #: settings/config/config.php:1048 msgid "Two-step verification is the first feature we regard as login protection. Want to know more about this feature, and what is to come?" msgstr "" #: settings/config/config.php:1065 msgid "Enable two-step verification" msgstr "" #: settings/config/config.php:1066 msgid "By enabling this feature you understand that email validation is required, and you can send email from your server reliably." msgstr "" #: settings/config/config.php:1085 msgid "Optional for:" msgstr "" #: settings/config/config.php:1086 msgid "Two-step verification will be optional for these user roles, and they can disable it on first login." msgstr "" #: settings/config/config.php:1103 msgid "Force on:" msgstr "" #: settings/config/config.php:1104 msgid "These user roles are forced to enter the authentication code." msgstr "" #: settings/config/config.php:1118 #: settings/config/menu.php:309 #: settings/config/menu.php:384 #: settings/config/menu.php:405 msgid "Users" msgstr "" #: settings/config/config.php:1139 msgid "User role" msgstr "" #: settings/config/config.php:1161 #: modal/build/index.f0747a4e3a76f14cbb01.js:1 #: modal/src/components/DeactivationModal/DeactivationModal.js:87 msgid "Mixed content scan" msgstr "" #: settings/config/config.php:1165 msgid "About the Mixed Content Scan" msgstr "" #: settings/config/config.php:1166 #: settings/config/menu.php:82 msgid "The extensive mixed content scan will list all current and future issues and provide a fix, or instructions to fix manually." msgstr "" #: settings/config/config.php:1170 msgid "Type" msgstr "" #: settings/config/config.php:1177 #: settings/config/config.php:1627 msgid "Description" msgstr "" #: settings/config/config.php:1183 #: settings/config/config.php:1377 msgid "Location" msgstr "" #: settings/config/config.php:1211 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/ChangeStatus.js:7 #: settings/src/Settings/LearningMode/LearningMode.js:240 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:231 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:242 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:251 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:325 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:336 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:343 msgid "Allow" msgstr "" #: settings/config/config.php:1211 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:290 #: settings/src/Settings/LearningMode/LearningMode.js:296 #: settings/src/Settings/PermissionsPolicy.js:200 msgid "Disable" msgstr "" #: settings/config/config.php:1211 msgid "Self (Default)" msgstr "" #: settings/config/config.php:1212 msgid "Permissions Policy" msgstr "" #: settings/config/config.php:1217 msgid "About the Permission Policy" msgstr "" #: settings/config/config.php:1218 msgid "Browser features are plentiful, but most are not needed on your website." msgstr "" #: settings/config/config.php:1222 msgid "Feature" msgstr "" #: settings/config/config.php:1300 msgid "Enable Permissions Policy" msgstr "" #: settings/config/config.php:1309 msgid "Serve encrypted and authenticated responses" msgstr "" #: settings/config/config.php:1315 msgid "About the Content Security Policy" msgstr "" #: settings/config/config.php:1316 msgid "The content security policy has many options, so we always recommend starting in ‘learning mode’ to see what files and scripts are loaded." msgstr "" #: settings/config/config.php:1331 msgid "Disable (Default)" msgstr "" #: settings/config/config.php:1335 msgid "Allow your domain to be embedded" msgstr "" #: settings/config/config.php:1344 msgid "Add additional domains which can embed your website, if needed. Comma seperated." msgstr "" #: settings/config/config.php:1383 msgid "Directive" msgstr "" #: settings/config/config.php:1389 msgid "Source" msgstr "" #: settings/config/config.php:1395 #: settings/config/config.php:1615 msgid "Action" msgstr "" #: settings/config/config.php:1401 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/Delete.js:12 #: settings/src/Settings/LimitLoginAttempts/IpAddressDatatable.js:254 #: settings/src/Settings/LimitLoginAttempts/IpAddressDatatable.js:351 #: settings/src/Settings/LimitLoginAttempts/UserDatatable.js:186 #: settings/src/Settings/LimitLoginAttempts/UserDatatable.js:274 msgid "Delete" msgstr "" #: settings/config/config.php:1417 #: modal/build/index.f0747a4e3a76f14cbb01.js:1 #: modal/src/components/DeactivationModal/DeactivationModal.js:72 #: modal/src/components/DeactivationModal/DeactivationModal.js:114 msgid "Vulnerability detection" msgstr "" #: settings/config/config.php:1418 msgid "This feature depends on multiple standard background processes. If a process fails or is unavailable on your system, detection might not work. We run frequent tests for this purpose. We will notify you accordingly if there are any issues." msgstr "" #: settings/config/config.php:1425 msgid "About Vulnerabilities" msgstr "" #: settings/config/config.php:1426 msgid "Really Simple SSL collects information about plugins, themes, and core vulnerabilities from our database powered by WPVulnerability. Anonymized data about these vulnerable components will be sent to Really Simple SSL for statistical analysis to improve open-source contributions. For more information, please read our privacy statement." msgstr "" #: settings/config/config.php:1442 msgid "If there's a vulnerability, you will also get feedback on the themes and plugin overview." msgstr "" #: settings/config/config.php:1445 msgid "Feedback in plugin overview" msgstr "" #: settings/config/config.php:1462 #: settings/config/config.php:1484 #: settings/config/config.php:1506 #: settings/config/config.php:1599 msgid "None" msgstr "" #: settings/config/config.php:1463 msgid "Low-risk (default)" msgstr "" #: settings/config/config.php:1464 #: settings/config/config.php:1486 #: settings/config/config.php:1508 #: settings/config/config.php:1601 msgid "Medium-risk" msgstr "" #: settings/config/config.php:1465 #: settings/config/config.php:1509 #: settings/config/config.php:1602 msgid "High-risk" msgstr "" #: settings/config/config.php:1466 #: settings/config/config.php:1488 #: settings/config/config.php:1603 msgid "Critical" msgstr "" #: settings/config/config.php:1468 msgid "Really Simple SSL dashboard" msgstr "" #: settings/config/config.php:1485 msgid "Low-risk " msgstr "" #: settings/config/config.php:1487 msgid "High-risk (default)" msgstr "" #: settings/config/config.php:1490 msgid "Site-wide, admin notification" msgstr "" #: settings/config/config.php:1507 #: settings/config/config.php:1600 msgid "Low-risk" msgstr "" #: settings/config/config.php:1510 msgid "Critical (default)" msgstr "" #: settings/config/config.php:1512 #: settings/config/menu.php:299 msgid "Email" msgstr "" #: settings/config/config.php:1513 msgid "This will send emails about vulnerabilities directly from your server. Make sure you can receive emails by the testing a preview below. If this feature is disabled, please enable notifications under general settings." msgstr "" #: settings/config/config.php:1533 #: settings/config/config.php:1536 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/RiskConfiguration/NotificationTester.js:39 msgid "Test notifications" msgstr "" #: settings/config/config.php:1534 msgid "Test notifications can be used to test email delivery and shows how vulnerabilities will be reported on your WordPress installation." msgstr "" #: settings/config/config.php:1551 msgid "Vulnerabilities Overview" msgstr "" #: settings/config/config.php:1563 msgid "Component" msgstr "" #: settings/config/config.php:1578 #: settings/config/config.php:1621 msgid "Risk" msgstr "" #: settings/config/config.php:1641 msgid "I have read and understood the risks to intervene with these measures." msgstr "" #: settings/config/config.php:1642 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Dashboard/SslLabs/SslLabs.js:319 #: settings/src/LetsEncrypt/DnsVerification.js:64 msgid "Read more" msgstr "" #: settings/config/config.php:1657 #: settings/config/config.php:1661 msgid "Enforce strong passwords" msgstr "" #: settings/config/config.php:1662 msgid "Improve the default WordPress password strength check. You can also enforce frequent password changes for user roles." msgstr "" #: settings/config/config.php:1666 msgid "This adds extra requirements for strong passwords for new users and updated passwords." msgstr "" #: settings/config/config.php:1674 msgid "Enforce frequent password change" msgstr "" #: settings/config/config.php:1690 msgid "User roles for password change" msgstr "" #: settings/config/config.php:1705 msgid "6 months" msgstr "" #: settings/config/config.php:1706 msgid "1 year" msgstr "" #: settings/config/config.php:1707 msgid "2 years" msgstr "" #: settings/config/config.php:1709 msgid "Change passwords every" msgstr "" #: settings/config/config.php:1724 msgid "8 hours (recommended)" msgstr "" #: settings/config/config.php:1725 msgid "48 hours" msgstr "" #: settings/config/config.php:1727 msgid "Let login cookie expire after" msgstr "" #: settings/config/disable-fields-filter.php:15 msgid "On Apache you can use a .htaccess redirect, which is usually faster, but may cause issues on some configurations. Read the instructions in the sidebar first." msgstr "" #: settings/config/disable-fields-filter.php:19 msgid "Enable .htaccess only if you know how to regain access in case of issues." msgstr "" #: settings/config/disable-fields-filter.php:60 msgid "Email validation" msgstr "" #: settings/config/disable-fields-filter.php:63 msgid "Email validation completed" msgstr "" #: settings/config/disable-fields-filter.php:65 msgid "You're using a feature where email is an essential part of the functionality. Please validate that you can send emails on your server." msgstr "" #: settings/config/disable-fields-filter.php:66 msgid "Email not verified yet. Verify your email address to get the most out of Really Simple SSL" msgstr "" #: settings/config/menu.php:11 msgid "Dashboard" msgstr "" #: settings/config/menu.php:23 #: settings/config/menu.php:29 #: settings/config/menu.php:364 msgid "General" msgstr "" #: settings/config/menu.php:35 msgid "E-mail" msgstr "" #: settings/config/menu.php:42 msgid "The following information is attached when you send this form: license key, scan results, your domain, .htaccess file, debug log and a list of active plugins." msgstr "" #: settings/config/menu.php:44 msgid "Elevate your security with our Premium Support! Our expert team ensures simple, hassle-free assistance whenever you need it." msgstr "" #: settings/config/menu.php:45 msgid "Why Premium Support?" msgstr "" #: settings/config/menu.php:48 msgid "Debugging with Really Simple SSL" msgstr "" #: settings/config/menu.php:59 #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/Header.js:31 msgid "Let's Encrypt" msgstr "" #: settings/config/menu.php:60 msgid "Let's Encrypt." msgstr "" #: settings/config/menu.php:67 msgid "Redirection" msgstr "" #: settings/config/menu.php:73 msgid "Mixed Content" msgstr "" #: settings/config/menu.php:79 #: settings/config/menu.php:81 msgid "Mixed Content Scan" msgstr "" #: settings/config/menu.php:90 #: modal/build/index.f0747a4e3a76f14cbb01.js:1 #: modal/src/components/DeactivationModal/DeactivationModal.js:77 msgid "Security Headers" msgstr "" #: settings/config/menu.php:96 msgid "Recommended Security Headers" msgstr "" #: settings/config/menu.php:98 msgid "The Essentials" msgstr "" #: settings/config/menu.php:100 msgid "Protecting your website visitors from malicious attacks and data breaches should be your #1 priority, start with the essentials with Really Simple Security" msgstr "" #: settings/config/menu.php:109 msgid "HSTS forces browsers always to load a website via HTTPS. It prevents unnecessary redirects and prevents manipulation of data originating from communication with your website." msgstr "" #: settings/config/menu.php:118 msgid "Control browser features that could allow third parties to misuse data collected by microphone, camera, GEO Location etc, when enabled for your website." msgstr "" #: settings/config/menu.php:127 msgid "Content Security Policy" msgstr "" #: settings/config/menu.php:128 msgid "Content Security Policy Headers" msgstr "" #: settings/config/menu.php:138 msgid "A correctly configured Content Security Policy can protect your visitors from the most common web attacks. It all starts with denying and upgrading insecure requests on your website." msgstr "" #: settings/config/menu.php:148 msgid "Prevent clickjacking and other malicious attacks by restricting sources that are permitted to embed content from your website." msgstr "" #: settings/config/menu.php:160 msgid "Allow only necessary third party resources to be loaded on your website, thus preventing common attacks. Use our unique learning mode to automatically configure your Content Security Policy." msgstr "" #: settings/config/menu.php:171 msgid "This is a security feature implemented by web browsers to control how web pages from different origins can interact with each other." msgstr "" #: settings/config/menu.php:186 msgid "Detection" msgstr "" #: settings/config/menu.php:187 msgid "Here you can configure vulnerability detection, notifications and measures. To learn more about the features displayed, please use the instructions linked in the top-right corner." msgstr "" #: settings/config/menu.php:194 #: settings/config/menu.php:199 #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/Settings/Settings.js:164 msgid "Notifications" msgstr "" #: settings/config/menu.php:200 msgid "These notifications are set to the minimum risk level that triggers a notification. For example, the default site-wide notification triggers on high-risk and critical vulnerabilities." msgstr "" #: settings/config/menu.php:206 msgid "Overview" msgstr "" #: settings/config/menu.php:207 msgid "This is the vulnerability overview. Here you will find current known vulnerabilities on your system. You can find more information and helpful, actionable insights for every vulnerability under details." msgstr "" #: settings/config/menu.php:215 #: settings/config/menu.php:220 msgid "Measures" msgstr "" #: settings/config/menu.php:221 msgid "You can choose to automate the most common actions for a vulnerability. Each action is set to a minimum risk level, similar to the notifications. Please read the instructions to learn more about the process." msgstr "" #: settings/config/menu.php:225 msgid "Automated Measures" msgstr "" #: settings/config/menu.php:226 msgid "Maintain peace of mind with our simple, but effective automated measures when vulnerabilities are discovered. When needed Really Simple Security will force update or quarantaine vulnerable components, on your terms!" msgstr "" #: settings/config/menu.php:235 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/VulnerabilitiesHeader.js:15 msgid "Hardening" msgstr "" #: settings/config/menu.php:241 msgid "Basic" msgstr "" #: settings/config/menu.php:247 msgid "Advanced" msgstr "" #: settings/config/menu.php:252 msgid "Advanced hardening features complement the basic hardening functions by protecting your site against advanced threats and attacks." msgstr "" #: settings/config/menu.php:259 msgid "XML-RPC with Learning Mode" msgstr "" #: settings/config/menu.php:263 msgid "Not sure if you're using XML-RPC, or want to restrict unauthorized use of XML-RPC? With learning mode you can see exactly which sources use XML-RPC, and you can revoke where necessary." msgstr "" #: settings/config/menu.php:269 msgid "Login Protection" msgstr "" #: settings/config/menu.php:277 msgid "Get two-factor authentication with Really Simple SSL Pro" msgstr "" #: settings/config/menu.php:280 #: settings/config/menu.php:289 #: modal/build/index.f0747a4e3a76f14cbb01.js:1 #: modal/src/components/DeactivationModal/DeactivationModal.js:92 msgid "Two-step verification" msgstr "" #: settings/config/menu.php:286 msgid "Start login protection by adding an additional layer during authentication. This will leave authentication less dependent on just a single password. Want to force strong passwords? Check out Password Security." msgstr "" #: settings/config/menu.php:290 msgid "Enhancing the authentication process and optimizing user management makes Login Protection a foundational element in securing your website." msgstr "" #: settings/config/menu.php:296 msgid "Send an email code during login. You can force user roles to use two-step verification, or leave the choose with your users, if so desired." msgstr "" #: settings/config/menu.php:300 msgid "Two-step verification will enhance the authentication process by adding an additional layer. Selected users will be required to enter their correct credentials first, and then they must provide a one-time code sent to their email as an extra step." msgstr "" #: settings/config/menu.php:306 #: settings/config/menu.php:385 msgid "Here you control the users that are automatically, and temporarily blocked. You can also add or remove users manually. We recommend blocking ‘admin’ as username as a start." msgstr "" #: settings/config/menu.php:310 msgid "Here you can see which users have enabled two-step login, or change the status per user." msgstr "" #: settings/config/menu.php:317 msgid "Active" msgstr "" #: settings/config/menu.php:325 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/DynamicDataTable/DynamicDataTable.js:169 #: settings/src/Settings/EventLog/EventLogDataTable.js:233 #: settings/src/Settings/LearningMode/LearningMode.js:332 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:388 #: settings/src/Settings/LimitLoginAttempts/IpAddressDatatable.js:393 #: settings/src/Settings/LimitLoginAttempts/UserDatatable.js:304 #: settings/src/Settings/PermissionsPolicy.js:205 #: settings/src/Settings/RiskConfiguration/VulnerabilitiesOverview.js:128 #: settings/src/Settings/RolesDropDown.js:89 #: settings/src/Settings/TwoFA/TwoFaDataTable.js:290 #: settings/src/Settings/TwoFA/TwoFaRolesDropDown.js:112 msgid "Disabled" msgstr "" #: settings/config/menu.php:343 msgid "Enforce secure password policies for your users by requiring strong passwords, and expiring passwords after a period of your choosing." msgstr "" #: settings/config/menu.php:346 msgid "Passwords" msgstr "" #: settings/config/menu.php:347 msgid "Improve security by requiring strong passwords and forced periodic password changes" msgstr "" #: settings/config/menu.php:362 #: settings/config/menu.php:373 msgid "Customize login attempts, intervals, and temporary lockouts according to your preferences to regulate the level of security on your website during authentication. No additional settings required" msgstr "" #: settings/config/menu.php:365 msgid "Protect your site against brute force login attacks by limiting the number of login attempts. Enabling this feature will temporary lock-out a username and the IP address that tries to login, after the set number of false logins." msgstr "" #: settings/config/menu.php:376 msgid "Limit Attempts" msgstr "" #: settings/config/menu.php:377 msgid "The settings below determine how strict your site will be protected. You can leave these settings on their default values, unless you experience issues." msgstr "" #: settings/config/menu.php:393 #: settings/config/menu.php:429 msgid "Permanent block" msgstr "" #: settings/config/menu.php:401 #: settings/config/menu.php:437 msgid "Temporary block" msgstr "" #: settings/config/menu.php:408 msgid "Blocked usernames will be automatically unblocked after the above-configured interval. In the table below you can instantly unblock usernames." msgstr "" #: settings/config/menu.php:410 msgid "You can prevent usernames from being temporarily blocked by adding them to this list. The IP address that triggers false logins will still be blocked." msgstr "" #: settings/config/menu.php:412 msgid "You can add any non-existing username to this table, to instantly block IP addresses that try common usernames like \"admin\"." msgstr "" #: settings/config/menu.php:420 #: settings/config/menu.php:441 msgid "IP Addresses" msgstr "" #: settings/config/menu.php:421 msgid "IP Addresses can be allowed, blocked or will show up when your settings add them to a temporary blocklist. If you want to add your IP to the allowlist, please read the article provided at the right-hand side for instructions." msgstr "" #: settings/config/menu.php:443 msgid "Blocked IP addresses will be automatically unblocked after the above-configured interval. In the table below you can instantly unblock IP addresses." msgstr "" #: settings/config/menu.php:445 msgid "You can prevent IP addresses from being temporarily blocked by adding them to this list. This can be convenient if you share an IP address with other site users. Usernames that trigger false logins will still be blocked." msgstr "" #: settings/config/menu.php:447 msgid "You can indefinitely block known abusive IP addresses, to completely prevent them from trying to login." msgstr "" #: settings/config/menu.php:455 #: settings/config/menu.php:472 msgid "Event Log" msgstr "" #: settings/config/menu.php:456 #: settings/config/menu.php:473 msgid "The Event Log shows all relevant events related to limit login attempts. You can filter the log using the dropdown on the top-right to only show warnings." msgstr "" #: settings/config/menu.php:464 msgid "Warnings" msgstr "" #: settings/config/menu.php:468 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/EventLog/EventLogDataTable.js:214 #: settings/src/Settings/LearningMode/LearningMode.js:139 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:369 #: settings/src/Settings/LimitLoginAttempts/IpAddressDatatable.js:372 msgid "All" msgstr "" #: settings/config/menu.php:480 #: settings/config/menu.php:501 msgid "Regions" msgstr "" #: settings/config/menu.php:481 msgid "You can easily block countries, or entire continents. You can act on the event log below and see which countries are suspicious, or exclude all countries but your own." msgstr "" #: settings/config/menu.php:493 msgid "Continents" msgstr "" #: settings/config/menu.php:497 msgid "Countries" msgstr "" #: settings/config/menu.php:502 msgid "If your site is only intended for users to login from specific geographical regions, you can entirely prevent logins from certain continents or countries." msgstr "" #: settings/config/menu.php:517 msgid "We have tried to make our Wizard as simple and fast as possible. Although these questions are all necessary, if there’s any way you think we can improve the plugin, please let us %sknow%s!" msgstr "" #: settings/config/menu.php:519 msgid " Please note that you can always save and finish the wizard later, use our %sdocumentation%s for additional information or log a %ssupport ticket%s if you need our assistance." msgstr "" #: settings/config/menu.php:527 msgid "Letʼs Encrypt is a free, automated and open certificate authority brought to you by the nonprofit Internet Security Research Group (ISRG)." msgstr "" #: settings/config/menu.php:534 msgid "General Settings" msgstr "" #: settings/config/menu.php:538 msgid "Hosting" msgstr "" #: settings/config/menu.php:539 msgid "Below you will find the instructions for different hosting environments and configurations. If you start the process with the necessary instructions and credentials the next steps will be done in no time." msgstr "" #: settings/config/menu.php:549 msgid "DNS verification" msgstr "" #: settings/config/menu.php:564 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Dashboard/OtherPlugins/OtherPluginsData.js:74 #: settings/src/Settings/License/License.js:71 msgid "Activate" msgstr "" #: settings/settings.php:524 #: upgrade/upgrade-to-pro.php:144 msgid "Self-hosted and privacy-friendly analytics tool." msgstr "" #: settings/settings.php:532 msgid "Complianz - Consent Management as it should be" msgstr "" #: settings/settings.php:539 msgid "Terms and Conditions" msgstr "" #: upgrade/upgrade-to-pro.php:81 msgid "Checking if plugin folder exists..." msgstr "" #: upgrade/upgrade-to-pro.php:82 msgid "Able to create destination folder" msgstr "" #: upgrade/upgrade-to-pro.php:83 msgid "Destination folder already exists" msgstr "" #: upgrade/upgrade-to-pro.php:88 msgid "Validating license..." msgstr "" #: upgrade/upgrade-to-pro.php:89 msgid "License valid" msgstr "" #: upgrade/upgrade-to-pro.php:90 msgid "License invalid" msgstr "" #: upgrade/upgrade-to-pro.php:95 msgid "Retrieving package information..." msgstr "" #: upgrade/upgrade-to-pro.php:96 msgid "Package information retrieved" msgstr "" #: upgrade/upgrade-to-pro.php:97 msgid "Failed to gather package information" msgstr "" #: upgrade/upgrade-to-pro.php:102 msgid "Installing plugin..." msgstr "" #: upgrade/upgrade-to-pro.php:103 msgid "Plugin installed" msgstr "" #: upgrade/upgrade-to-pro.php:104 msgid "Failed to install plugin" msgstr "" #: upgrade/upgrade-to-pro.php:109 msgid "Activating plugin..." msgstr "" #: upgrade/upgrade-to-pro.php:110 msgid "Plugin activated" msgstr "" #: upgrade/upgrade-to-pro.php:111 msgid "Failed to activate plugin" msgstr "" #: upgrade/upgrade-to-pro.php:148 msgid "Get detailed insights into visitors' behaviour with Burst Statistics, the privacy-friendly analytics dashboard from Really Simple Plugins." msgstr "" #: upgrade/upgrade-to-pro.php:157 msgid "GDPR/CCPA Privacy Suite" msgstr "" #: upgrade/upgrade-to-pro.php:161 msgid "Configure your Cookie Notice, Consent Management and Cookie Policy with our Wizard and Cookie Scan. Supports GDPR, DSGVO, TTDSG, LGPD, POPIA, RGPD, CCPA and PIPEDA." msgstr "" #: upgrade/upgrade-to-pro.php:174 msgid "One click SSL optimization" msgstr "" #: upgrade/upgrade-to-pro.php:178 msgid "Really Simple SSL automatically detects your settings and configures your website to run over HTTPS. To keep it lightweight, we kept the options to a minimum. Your website will move to SSL with one click." msgstr "" #: upgrade/upgrade-to-pro.php:190 #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/OtherPlugins/OtherPlugins.js:24 msgid "Installed" msgstr "" #: upgrade/upgrade-to-pro.php:233 msgid "Installation finished" msgstr "" #: upgrade/upgrade-to-pro.php:331 msgid "Recommended by Really Simple Plugins" msgstr "" #: upgrade/upgrade-to-pro.php:356 msgid "Installing" msgstr "" #: upgrade/upgrade-to-pro.php:367 msgid "Visit Dashboard" msgstr "" #: upgrade/upgrade-to-pro.php:370 #: modal/build/433.c979d76891c58ebf0fd9.js:1 #: modal/src/components/Modal/RssslModal.js:46 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Settings/LimitLoginAttempts/AddIpAddressModal.js:112 #: settings/src/Settings/LimitLoginAttempts/AddUserModal.js:83 msgid "Cancel" msgstr "" #: upgrade/upgrade-to-pro.php:372 #: upgrade/upgrade-to-pro.php:373 msgid "An Error Occurred:" msgstr "" #: upgrade/upgrade-to-pro.php:372 msgid "Install %sManually%s." msgstr "" #: upgrade/upgrade-to-pro.php:373 msgid "Check your %slicense%s." msgstr "" #: upgrade/upgrade-to-pro.php:450 msgid "Could not rename folder!" msgstr "" #: upgrade/upgrade-to-pro.php:550 #: upgrade/upgrade-to-pro.php:582 msgid "An error occurred, please try again." msgstr "" #: upgrade/upgrade-to-pro.php:558 msgid "Your license key expired on %s." msgstr "" #: upgrade/upgrade-to-pro.php:564 msgid "Your license key has been disabled." msgstr "" #: upgrade/upgrade-to-pro.php:567 msgid "Missing license." msgstr "" #: upgrade/upgrade-to-pro.php:570 msgid "Invalid license." msgstr "" #: upgrade/upgrade-to-pro.php:573 msgid "Your license is not active for this URL." msgstr "" #: upgrade/upgrade-to-pro.php:576 msgid "This appears to be an invalid license key for this plugin." msgstr "" #: upgrade/upgrade-to-pro.php:579 msgid "Your license key has reached its activation limit." msgstr "" #: modal/build/index.f0747a4e3a76f14cbb01.js:1 #: modal/src/components/DeactivationModal/DeactivationModal.js:67 #: modal/src/components/DeactivationModal/DeactivationModal.js:109 msgid "Performant HTTPS redirection" msgstr "" #: modal/build/index.f0747a4e3a76f14cbb01.js:1 #: modal/src/components/DeactivationModal/DeactivationModal.js:82 msgid "Advanced hardening" msgstr "" #: modal/build/index.f0747a4e3a76f14cbb01.js:1 #: modal/src/components/DeactivationModal/DeactivationModal.js:102 msgid "Limit login attempts" msgstr "" #: modal/build/index.f0747a4e3a76f14cbb01.js:1 #: modal/src/components/DeactivationModal/DeactivationModal.js:119 msgid "WordPress hardening" msgstr "" #: modal/build/index.f0747a4e3a76f14cbb01.js:1 #: modal/src/components/DeactivationModal/DeactivationModal.js:129 msgid "Are you sure?" msgstr "" #: modal/build/index.f0747a4e3a76f14cbb01.js:1 #: modal/src/components/DeactivationModal/DeactivationModal.js:130 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/License/License.js:70 msgid "Deactivate" msgstr "" #: modal/build/index.f0747a4e3a76f14cbb01.js:1 #: modal/src/components/DeactivationModal/DeactivationModal.js:132 msgid "Deactivate and use HTTP" msgstr "" #: modal/build/index.f0747a4e3a76f14cbb01.js:1 #: modal/src/components/DeactivationModal/DeactivationModal.js:56 msgid "Please choose the correct deactivation method, and before you go; you will miss out on below and future features in Really Simple Security" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Progress/ProgressBlockHeader.js:37 msgid "Progress" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Progress/ProgressBlockHeader.js:41 msgid "All tasks" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Progress/ProgressBlockHeader.js:45 msgid "Remaining tasks" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Dashboard/Progress/ProgressBlock.js:41 #: settings/src/Dashboard/Progress/ProgressBlock.js:47 #: settings/src/Dashboard/Progress/ProgressBlock.js:48 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:294 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:298 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:302 #: settings/src/Settings/EventLog/EventLogDataTable.js:100 msgid "Loading..." msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Progress/ProgressFooter.js:15 msgid "SSL Activated" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Progress/ProgressFooter.js:15 msgid "SSL not activated" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/build/778.f7f7013a567067838984.js:1 #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/Dashboard/Progress/ProgressFooter.js:26 #: settings/src/Header.js:41 #: settings/src/Settings/PremiumOverlay.js:41 msgid "Go Pro" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Progress/ProgressFooter.js:34 msgid "Mixed content" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Progress/ProgressFooter.js:38 msgid "301 redirect" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/SslLabs/SslLabsHeader.js:7 msgid "Powered by Qualys" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/SslLabs/SslLabs.js:254 msgid "No test started yet" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/SslLabs/SslLabs.js:280 msgid "Not available on localhost" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/SslLabs/SslLabs.js:177 msgid "Cipher strength" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/SslLabs/SslLabs.js:316 msgid "What does my score mean?" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/SslLabs/SslLabs.js:325 msgid "Last check:" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/SslLabs/SslLabs.js:332 msgid "View detailed report on Qualys SSL Labs" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/SslLabs/SslLabsFooter.js:9 msgid "Continue SSL Health check" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/SslLabs/SslLabsFooter.js:10 msgid "Check SSL Health" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:38 msgid "vulnerability" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:38 msgid "vulnerabilities" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:41 msgid "update" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:41 msgid "updates" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:42 msgid "You have %s update pending" msgid_plural "You have %s updates pending" msgstr[0] "" msgstr[1] "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:46 msgid "hardening feature" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:46 msgid "hardening features" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:235 msgid "You have %s open %d" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:245 msgid "Hardening features are configured" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:247 msgid "What now" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:115 msgid "Enable vulnerability detection" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:187 #: settings/src/Dashboard/Vulnerabilities/Vulnerabilities.js:202 msgid "You have %s %d" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/Dashboard/TipsTricks/TipsTricksFooter.js:8 #: settings/src/Header.js:29 msgid "Documentation" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/OtherPlugins/OtherPluginsHeader.js:5 msgid "Other Plugins" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/OtherPlugins/OtherPluginsData.js:75 msgid "Activating..." msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/OtherPlugins/OtherPluginsData.js:76 #: settings/src/Dashboard/OtherPlugins/OtherPluginsData.js:77 msgid "Downloading..." msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/src/Dashboard/DashboardPage.js:47 msgid "Tips & Tricks" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Dashboard/TaskElement.js:28 msgid "Re-started test" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Settings/RiskConfiguration/RiskData.js:11 msgid "Force update the plugin or theme" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Settings/RiskConfiguration/RiskData.js:12 msgid "Isolates the plugin or theme if no update can be performed" msgstr "" #: settings/build/43.5782841cd77291fd781f.js:1 #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Settings/RiskConfiguration/RiskData.js:117 msgid "Update" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/Steps/StepEmail.js:29 msgid "Your email address" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/Steps/StepEmail.js:33 msgid "Include 6 Tips & Tricks to get started with Really Simple SSL." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/Steps/StepEmail.js:33 msgid "Privacy Statement" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/Items/ListItem.js:58 msgid "Override SSL detection." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/Onboarding.js:75 msgid "Fetching next step..." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/OnboardingControls.js:53 msgid "Starting SSL health scan..." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/OnboardingControls.js:68 #: settings/src/Onboarding/OnboardingControls.js:113 msgid "Activating options..." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/OnboardingControls.js:71 msgid "Initializing vulnerability detection..." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/OnboardingControls.js:73 msgid "Scanning for vulnerabilities..." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/OnboardingControls.js:77 #: settings/src/Onboarding/OnboardingControls.js:116 msgid "Updating dashboard..." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/OnboardingControls.js:136 msgid "Activate SSL networkwide" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/OnboardingControls.js:140 msgid "Install SSL" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/OnboardingControls.js:149 msgid "Skip" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/OnboardingControls.js:159 msgid "Get 40% off" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/OnboardingControls.js:159 msgid "Get PRO" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/OnboardingControls.js:162 msgid "Finish" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:23 #: settings/src/LetsEncrypt/DnsVerification.js:27 msgid "The challenge directory is used to verify the domain ownership." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:31 msgid "The key directory is needed to store the generated keys." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:31 #: settings/src/LetsEncrypt/Directories.js:39 msgid "By placing it outside the root folder, it is not publicly accessible." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:39 msgid "The certificate will get stored in this directory." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:60 #: settings/src/LetsEncrypt/DnsVerification.js:62 #: settings/src/LetsEncrypt/Installation.js:91 msgid "Next step" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:65 msgid "If the challenge directory cannot be created, or is not reachable, you can either remove the server limitation, or change to DNS verification." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:71 #: settings/src/LetsEncrypt/Directories.js:85 #: settings/src/LetsEncrypt/Directories.js:114 msgid "Switch to DNS verification" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:78 msgid "If you also want to secure subdomains like mail.domain.com, cpanel.domain.com, you have to use the %sDNS%s challenge." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:80 msgid "Please note that auto-renewal with a DNS challenge might not be possible." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:90 msgid "Create a challenge directory" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:93 msgid "Navigate in FTP or File Manager to the root of your WordPress installation:" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:97 msgid "Create a folder called “.well-known”" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:100 msgid "Inside the folder called “.well-known” create a new folder called “acme-challenge”, with 644 writing permissions." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:103 #: settings/src/LetsEncrypt/Directories.js:135 #: settings/src/LetsEncrypt/Directories.js:157 msgid "Click the refresh button." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:107 msgid "Or you can switch to DNS verification" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:109 msgid "If the challenge directory cannot be created, you can either remove the server limitation, or change to DNS verification." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:122 msgid "Create a key directory" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:125 #: settings/src/LetsEncrypt/Directories.js:147 msgid "Navigate in FTP or File Manager to one level above the root of your WordPress installation:" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:129 #: settings/src/LetsEncrypt/Directories.js:151 msgid "Create a folder called “ssl”" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:132 msgid "Inside the folder called “ssl” create a new folder called “keys”, with 644 writing permissions." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:144 msgid "Create a certs directory" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Directories.js:154 msgid "Inside the folder called “ssl” create a new folder called “certs”, with 644 writing permissions." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/DnsVerification.js:63 msgid "Add the following token as text record to your DNS records. We recommend to use a short TTL during installation, in case you need to change it." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/DnsVerification.js:69 msgid "domain" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/DnsVerification.js:70 msgid "Value" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/DnsVerification.js:83 msgid "DNS verification active. You can switch back to directory verification here." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/DnsVerification.js:87 msgid "Switch to directory verification" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Generation.js:41 msgid "We could not check the DNS records. If you just added the record, please check in a few minutes." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Generation.js:42 msgid "You can manually check the DNS records in an %sonline tool%s." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Generation.js:44 msgid "If you're sure it's set correctly, you can click the button to skip the DNS check." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Generation.js:24 msgid "Skip DNS verification" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Generation.js:50 msgid "Skip DNS check" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Installation.js:19 msgid "This is the certificate, which you need to install in your hosting dashboard." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Installation.js:20 #: settings/src/LetsEncrypt/Installation.js:93 msgid "Certificate (CRT)" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Installation.js:26 msgid "The private key can be uploaded or pasted in the appropriate field on your hosting dashboard." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Installation.js:27 #: settings/src/LetsEncrypt/Installation.js:98 msgid "Private Key (KEY)" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Installation.js:33 msgid "The CA Bundle will sometimes be automatically detected. If not, you can use this file." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Installation.js:34 #: settings/src/LetsEncrypt/Installation.js:102 msgid "Certificate Authority Bundle (CABUNDLE)" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Installation.js:65 msgid "Copied!" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Installation.js:87 msgid "The certificate is not generated by Really Simple SSL, so there are no installation files here" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Installation.js:92 msgid "Install your certificate." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/Installation.js:96 #: settings/src/LetsEncrypt/Installation.js:101 #: settings/src/LetsEncrypt/Installation.js:105 msgid "Copy content" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/LetsEncrypt.js:141 msgid "Verifying DNS records..." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/LetsEncrypt/LetsEncrypt.js:277 msgid "Attempt %s." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/439.98a0ea7305ad7622c383.js:1 #: settings/src/Modal/Modal.js:66 #: settings/src/Settings/MixedContentScan/MixedContentScan.js:98 #: settings/src/Settings/MixedContentScan/MixedContentScan.js:188 msgid "Fix" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/MixedContentScan/MixedContentScan.js:204 msgid "No results. Start your first scan" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/MixedContentScan/MixedContentScan.js:205 msgid "Everything is now served over SSL" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/439.98a0ea7305ad7622c383.js:1 #: settings/src/Modal/Modal.js:63 #: settings/src/Settings/MixedContentScan/MixedContentScan.js:158 msgid "Edit" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/439.98a0ea7305ad7622c383.js:1 #: settings/src/Modal/Modal.js:64 #: settings/src/Settings/MixedContentScan/MixedContentScan.js:169 msgid "Help" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/439.98a0ea7305ad7622c383.js:1 #: settings/src/Modal/Modal.js:65 #: settings/src/Settings/MixedContentScan/MixedContentScan.js:179 msgid "Ignore" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/DynamicDataTable/DynamicDataTable.js:136 #: settings/src/Settings/EventLog/EventLogDataTable.js:225 #: settings/src/Settings/LearningMode/LearningMode.js:274 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:377 #: settings/src/Settings/LimitLoginAttempts/IpAddressDatatable.js:382 #: settings/src/Settings/LimitLoginAttempts/UserDatatable.js:296 #: settings/src/Settings/MixedContentScan/MixedContentScan.js:225 #: settings/src/Settings/RiskConfiguration/VulnerabilitiesOverview.js:120 #: settings/src/Settings/TwoFA/TwoFaDataTable.js:277 msgid "No results" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/MixedContentScan/MixedContentScan.js:231 msgid "Start scan" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/MixedContentScan/MixedContentScan.js:232 msgid "Stop" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/MixedContentScan/MixedContentScan.js:237 msgid "Show ignored URLs" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:229 #: settings/src/Settings/PermissionsPolicy.js:160 msgid "You have selected" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:229 #: settings/src/Settings/PermissionsPolicy.js:160 msgid "rows" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/PermissionsPolicy.js:171 #: settings/src/Settings/TwoFA/TwoFaDataTable.js:211 #: settings/src/Settings/TwoFA/TwoFaDataTable.js:255 msgid "Reset" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:295 #: settings/src/Settings/PermissionsPolicy.js:191 msgid "Enforce" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:311 #: settings/src/Settings/LearningMode/LearningMode.js:333 #: settings/src/Settings/PermissionsPolicy.js:197 msgid "Enforced" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/PermissionsPolicy.js:198 msgid "Permissions Policy is set outside Really Simple SSL." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/PermissionsPolicy.js:199 msgid "Permissions Policy is enforced." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/PermissionsPolicy.js:206 msgid "The Permissions Policy has been disabled." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/Support.js:36 msgid "Type your question here" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/ChangeStatus.js:7 #: settings/src/Settings/LearningMode/LearningMode.js:251 msgid "Revoke" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:147 msgid " The %s is now in report-only mode and will collect directives. This might take a while. Afterwards you can Exit, Edit and Enforce these Directives." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:148 msgid "%s has been disabled." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:149 msgid "%s is enforced." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:151 msgid "%s is already set outside Really Simple SSL." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:174 msgid "success" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:174 msgid "failed" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:261 msgid "Remove" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:288 msgid "Error detected" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:289 msgid "%s cannot be implemented due to server limitations. Check your notices for the detected issue." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:304 msgid "Enable Learning Mode to configure automatically" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:313 msgid "Disable to configure" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:318 #: settings/src/Settings/LearningMode/LearningMode.js:325 msgid "Learning Mode" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:320 msgid "Exit" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:326 msgid "We finished the configuration." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:327 msgid "Review the settings and enforce the policy" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LearningMode/LearningMode.js:140 msgid "Allowed" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/RiskConfiguration/RunnerData.js:21 msgid "Preparing vulnerability detection" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/RiskConfiguration/RunnerData.js:27 msgid "Collecting plugin, theme and core data" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/RiskConfiguration/RunnerData.js:33 msgid "Scanning your WordPress configuration" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/RiskConfiguration/RunnerData.js:39 msgid "Reporting enabled" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/RiskConfiguration/VulnerabilitiesOverview.js:128 msgid "Activate vulnerability detection to enable this block." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/DynamicDataTable/DynamicDataTable.js:119 #: settings/src/Settings/EventLog/EventLogDataTable.js:192 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:298 #: settings/src/Settings/LimitLoginAttempts/IpAddressDatatable.js:319 #: settings/src/Settings/LimitLoginAttempts/UserDatatable.js:246 #: settings/src/Settings/RiskConfiguration/VulnerabilitiesOverview.js:162 #: settings/src/Settings/TwoFA/TwoFaDataTable.js:232 msgid "Search" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/RiskConfiguration/VulnerabilitiesOverview.js:177 msgid "No vulnerabilities found" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LimitLoginAttempts/IpAddressInput.js:38 msgid "Invalid ip address" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LimitLoginAttempts/AddIpAddressModal.js:61 msgid "Add IP Address" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LimitLoginAttempts/AddIpAddressModal.js:118 #: settings/src/Settings/LimitLoginAttempts/AddUserModal.js:89 msgid "Add" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LimitLoginAttempts/IpAddressDatatable.js:302 msgid "Block IP Address" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LimitLoginAttempts/IpAddressDatatable.js:305 msgid "Trust IP Address" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:318 #: settings/src/Settings/LimitLoginAttempts/IpAddressDatatable.js:341 #: settings/src/Settings/LimitLoginAttempts/UserDatatable.js:266 msgid "You have selected %s rows" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/EventLog/EventLogDataTable.js:210 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:365 #: settings/src/Settings/LimitLoginAttempts/IpAddressDatatable.js:368 msgid "Rows per page:" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/EventLog/EventLogDataTable.js:211 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:366 #: settings/src/Settings/LimitLoginAttempts/IpAddressDatatable.js:369 msgid "of" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/EventLog/EventLogDataTable.js:233 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:388 #: settings/src/Settings/LimitLoginAttempts/IpAddressDatatable.js:393 #: settings/src/Settings/LimitLoginAttempts/UserDatatable.js:304 msgid "Activate Limit login attempts to enable this block." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/DynamicDataTable/DynamicDataTable.js:169 #: settings/src/Settings/RolesDropDown.js:89 #: settings/src/Settings/TwoFA/TwoFaRolesDropDown.js:112 msgid "Activate login protection to enable this block." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/PostDropDown.js:112 msgid "Redirect to this post when someone tries to access /wp-admin or /wp-login.php. The default is a 404 page." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/PostDropDown.js:122 msgid "Search for a post." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/RiskConfiguration/NotificationTester.js:80 msgid "The notification test only works if you save the setting first." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/RiskConfiguration/NotificationTester.js:77 msgid "You have not enabled the email notifications in the general settings." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/RiskConfiguration/NotificationTester.js:38 msgid "All notifications are triggered successfully, please check your email to double-check if you can receive emails." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LimitLoginAttempts/AddUserModal.js:30 msgid "Add User" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LimitLoginAttempts/UserDatatable.js:230 msgid "Block username" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LimitLoginAttempts/UserDatatable.js:233 msgid "Trust username" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:134 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:139 msgid "%s is now allowed" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:161 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:166 msgid "%s has been blocked" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:238 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:256 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:329 #: settings/src/Settings/LimitLoginAttempts/CountryDatatable.js:347 msgid "Block" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/TwoFA/TwoFaDataTable.js:247 msgid "You have selected %s users" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/src/Settings/TwoFA/TwoFaDataTable.js:290 msgid "Activate Two Step Verification to enable this block." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/Settings/Field.js:131 #: settings/src/Settings/SettingsGroup.js:181 msgid "This feature is only available networkwide." msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/Settings/Field.js:132 #: settings/src/Settings/SettingsGroup.js:182 msgid "Network settings" msgstr "" #: settings/build/124.4fd0d3c41809db0344d3.js:1 #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Settings/Host/Host.js:35 msgid "Optional - Select your hosting provider." msgstr "" #: settings/build/588.2934ac808737314da558.js:1 #: settings/src/Menu/MenuItem.js:27 #: settings/src/Menu/MenuItem.js:36 msgid "Beta" msgstr "" #: settings/build/588.2934ac808737314da558.js:1 #: settings/src/Menu/MenuItem.js:28 #: settings/src/Menu/MenuItem.js:37 msgid "New" msgstr "" #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/LetsEncrypt/letsEncryptData.js:15 msgid "Switched to Directory" msgstr "" #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/LetsEncrypt/letsEncryptData.js:15 msgid "Switched to DNS" msgstr "" #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/Settings/PremiumOverlay.js:9 #: settings/src/Settings/SettingsGroup.js:99 msgid "Learn more about %sPremium%s" msgstr "" #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/Settings/PremiumOverlay.js:29 msgid "Check license" msgstr "" #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/Settings/SettingsGroup.js:157 msgid "Reset Let's Encrypt" msgstr "" #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/Settings/SettingsGroup.js:180 msgid "Network feature" msgstr "" #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/Settings/Settings.js:116 msgid "Save" msgstr "" #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/Settings/Settings.js:119 msgid "Refresh" msgstr "" #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/Settings/Settings.js:138 msgid "Previous" msgstr "" #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/Settings/Settings.js:153 msgid "Save and Continue" msgstr "" #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/Settings/Settings.js:167 msgid "Expand all" msgstr "" #: settings/build/778.f7f7013a567067838984.js:1 #: settings/src/Settings/Settings.js:168 msgid "Collapse all" msgstr "" #: settings/build/814.3a902150d64a573787ce.js:1 #: settings/src/Onboarding/OnboardingModal.js:33 msgid "Please wait while we detect your setup" msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/Onboarding/OnboardingData.js:82 msgid "Updating email preferences.." msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/Onboarding/OnboardingData.js:126 msgid "Installing %d..." msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/Onboarding/OnboardingData.js:132 msgid "Activating %d..." msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/Onboarding/OnboardingData.js:179 msgid "Re-checking SSL certificate, please wait..." msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/Settings/FieldsData.js:181 msgid "Saving settings..." msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/Settings/FieldsData.js:182 #: settings/src/Settings/FieldsData.js:204 msgid "Settings saved" msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/Settings/FieldsData.js:183 msgid "Something went wrong" msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/Settings/FieldsData.js:283 msgid "Settings Saved" msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/utils/Error.js:12 msgid "Please check if security settings on the server or a plugin is blocking the requests from Really Simple SSL." msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/utils/Error.js:20 msgid "The Really Simple SSL Rest API is disabled." msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/utils/Error.js:22 msgid "The Really Simple SSL Rest API returned a not found." msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/utils/Error.js:24 msgid "The Really Simple SSL Rest API returned a 403 forbidden error." msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/utils/Error.js:35 msgid "A problem was detected during the loading of the settings" msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/utils/Error.js:41 msgid "The request returned the following errors:" msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/utils/Error.js:43 msgid "Response code:" msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/utils/Error.js:44 msgid "Status code:" msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/utils/Error.js:45 msgid "Server response:" msgstr "" #: settings/build/index.949c228dda25c895581b.js:1 #: settings/src/utils/Error.js:48 msgid "More information" msgstr "" #: settings/src/Settings/DynamicDataTable/DynamicDataTable.js:162 msgid "Loading data, please stand by..." msgstr "" PK!d!! upgrade/upgrade-to-pro.min.jsnu[const rsp_steps=rsp_upgrade.steps;let rsp_download_link="";let rsp_progress=0;let rsp_template=document.getElementById("rsp-step-template").innerHTML;let rsp_total_step_html="";rsp_steps.forEach((step,i)=>{let stepHtml=rsp_template;stepHtml=stepHtml.replace("{doing}",step.doing);stepHtml=stepHtml.replace("{step}","rsp-step-"+i);rsp_total_step_html+=stepHtml});document.querySelector(".rsp-install-steps").innerHTML=rsp_total_step_html;const rsp_set_progress=()=>{if(rsp_progress>=100)rsp_progress=100;let progress_bar_container=document.querySelector(".rsp-progress-bar-container");let progressEl=progress_bar_container.querySelector(".rsp-progress");let bar=progressEl.querySelector(".rsp-bar");bar.style="width: "+rsp_progress+"%;";if(rsp_progress==100){clearInterval(window.rsp_interval)}};const rsp_stop_progress=()=>{clearInterval(window.rsp_interval);let progress_bar_container=document.querySelector(".rsp-progress-bar-container");let progressEl=progress_bar_container.querySelector(".rsp-progress");var bar=progressEl.querySelector(".rsp-bar");bar.style="width: 100%;";bar.classList.remove("rsp-green");bar.classList.add("rsp-red");clearInterval(window.rsp_interval)};const rsp_process_step=current_step=>{let previous_progress=current_step*Math.ceil(100/rsp_upgrade.steps.length);let progress_step=(current_step+1)*Math.ceil(100/rsp_upgrade.steps.length);clearInterval(window.rsp_interval);window.rsp_interval=setInterval(function(){let inc=.5;if(rsp_progress>progress_step-1){inc=.01}rsp_progress+=inc;if(rsp_progress>=100){rsp_progress=100}rsp_set_progress()},100);current_step=parseInt(current_step);let step=rsp_steps[current_step];let error=step["error"];let success=step["success"];const query_string=window.location.search;const urlParams=new URLSearchParams(query_string);let data={action:step["action"],token:rsp_upgrade.token,plugin:urlParams.get("plugin"),license:urlParams.get("license"),item_id:urlParams.get("item_id"),api_url:urlParams.get("api_url"),download_link:rsp_download_link,install_pro:true};rsp_ajax.get(rsp_upgrade.admin_url,data,function(response){let step_element=document.querySelector(".rsp-step-"+current_step);if(!step_element)return;let step_color=step_element.querySelector(".rsp-step-color");let step_text=step_element.querySelector(".rsp-step-text");let data=JSON.parse(response);if(data.success){if(data.download_link){rsp_download_link=data.download_link}step_color.innerHTML="
";step_text.innerHTML=""+step.success+"";if(current_step+1==rsp_steps.length){let templateHtml=document.getElementById("rsp-plugin-suggestion-template").innerHTML;document.querySelector(".rsp-install-steps").innerHTML=templateHtml;document.querySelector(".rsp-install-plugin-modal h3").innerText=rsp_upgrade.finished_title;document.querySelector(".rsp-btn.rsp-visit-dashboard").classList.remove("rsp-hidden");rsp_progress=100;rsp_set_progress()}else{rsp_progress=progress_step;rsp_set_progress(progress_step);rsp_process_step(current_step+1)}}else{step_color.innerHTML="
";if(data.message){document.querySelector(".rsp-error-message.rsp-"+step["type"]+" span").innerText=data.message}step_text.innerHTML=""+step.error+"";rsp_stop_progress();document.querySelector(".rsp-btn.rsp-cancel").classList.remove("rsp-hidden");document.querySelector(".rsp-error-message.rsp-"+step["type"]).classList.remove("rsp-hidden")}})};rsp_process_step(0);PK!vAdupgrade/ajax.jsnu[ var rsp_ajax = {}; rsp_ajax.x = function () { if (typeof XMLHttpRequest !== 'undefined') { return new XMLHttpRequest(); } var versions = [ "MSXML2.XmlHttp.6.0", "MSXML2.XmlHttp.5.0", "MSXML2.XmlHttp.4.0", "MSXML2.XmlHttp.3.0", "MSXML2.XmlHttp.2.0", "Microsoft.XmlHttp" ]; var xhr; for (var i = 0; i < versions.length; i++) { try { xhr = new ActiveXObject(versions[i]); break; } catch (e) { } } return xhr; }; rsp_ajax.send = function (url, callback, method, data, async) { if (async === undefined) { async = true; } var x = rsp_ajax.x(); x.open(method, url, async); x.onreadystatechange = function () { if (x.readyState == 4) { callback(x.responseText) } }; if (method == 'POST') { x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); } x.send(data) }; rsp_ajax.get = function (url, data, callback, async) { var query = []; for (var key in data) { query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key])); } rsp_ajax.send(url + (query.length ? '?' + query.join('&') : ''), callback, 'GET', null, async) }; PK!( ( upgrade/upgrade-to-pro.css.mapnu[{"version":3,"sources":["/Users/rlankhorst/Sites/localhost/reallysimplessl/wp-content/plugins/really-simple-ssl/assets/css/variables.less","upgrade-to-pro.less"],"names":[],"mappings":";AA2DA;EAEE,qBAAA;EACA,oBAAA;EACA,oBAAA;EACA,oBAAA;EACA,sBAAA;EACA,uBAAA;EAGA,sBAAA;EACA,qBAAA;EACA,qBAAA;EACA,qBAAA;EACA,sBAAA;EAGA,mBAAmB,qBAAnB;EACA,gBAAgB,oBAAhB;EAGA,yBAAA;EACA,wBAAwB,uBAAxB;EACA,2FAAA;EACA,2BAAA;EAGA,iBAAA;EACA,iBAAA;EACA,qBAAA;EACA,mBAAA;EACA,wBAAA;EACA,oBAAA;EACA,kBAAA;EACA,mBAAA;EACA,qBAAA;EAEA,2CAAA;EACA,yCAAA;EACA,8CAAA;EACA,yCAAA;EACA,uCAAA;EACA,yCAAA;EACA,2CAAA;EAEA,8BAA8B,gBAA9B;EACA,+BAAA;EAGA,qCAAA;EACA,wBAAwB,qBAAxB;EACA,iCAAA;EAEA,uCAAA;EACA,iDAAA;EACA,gDAAA;EACA,6CAAA;EAEA,uBAAA;EACA,uBAAA;EACA,uBAAA;EACA,uBAAA;EACA,uBAAA;EAGA,qBAAqB,gBAArB;EACA,mBAAmB,cAAnB;EACA,qBAAqB,iBAArB;EACA,kBAAkB,iBAAlB;EAGA,uBAAA;EACA,sBAAA;EACA,uBAAA;EACA,sBAAA;EACA,kBAAA;EACA,sBAAA;EACA,qBAAA;EACA,oBAAA;EACA,oBAAA;EAGA,qBAAqB,gBAArB;EACA,uBAAuB,iBAAvB;EACA,2BAA2B,sBAA3B;;AC7IF;AAAoB;EAClB,aAAA;;AAEF;EACE,oBAAA;;AAEF;EACE,aAAA;EACA,SAAA;EACA,kBAAA;EACA,yBAAA;;AAJF,sBAKE;EACD,iBAAA;;AAND,sBAQE;EACD,iBAAA;EACA,eAAA;;AAVD,sBAYE,UAAU;EACX,WAAA;EACA,eAAA;;AAdD,sBAgBE;EACD,WAAA;EACA,eAAA;EACA,iBAAA;EACA,YAAA;;AApBD,sBAsBE;EACD,mBAAA;EACA,uBAAA;EACA,aAAA;;AAzBD,sBAsBE,oBAID;EACE,eAAA;;AA3BH,sBA8BE,aAAa;EACd,WAAA;EACA,YAAA;EACA,eAAA;;AAGD;EAEE,eAAA;EACA,WAAA;EACA,YAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,oCAAA;EACA,aAAA;;AAVF,iCAYE;EAEE,YAAY,kBAAZ;EACA,eAAA;EACA,SAAA;EACA,QAAA;EACA,eAAe,iBAAiB,gBAAhC;EACA,WAAW,iBAAiB,gBAA5B;EACA,kBAAA;EACA,mBAAA;EACH,gBAAA;EACG,aAAA;EACA,uBAAA;EACA,mBAAA;;AAzBJ,iCAYE,0BAcD;EACE,eAAA;EACA,kBAAA;;AA5BH,iCAYE,0BAkBE;EACE,kBAAA;;AA/BN,iCAYE,0BAkBE,4BAGE;EACE,gBAAA;EACA,YAAA;EACA,kBAAA;EACA,WAAA;;AArCR,iCAYE,0BAkBE,4BAGE,cAME;EACE,YAAA;;AAxCV,iCAYE,0BAiCE;EACE,aAAA;EACA,sBAAA;EACA,kBAAA;;AAhDN,iCAYE,0BAiCE,mBAKE;EACE,aAAA;EACA,+BAAA;EACA,wBAAA;EACA,mBAAA;;AAtDR,iCAYE,0BA8CD;EACE,aAAA;EACA,SAAA;EACA,mBAAA;;AA7DH,iCAYE,0BA8CD,YAIE;EACD,cAAA;EACA,iBAAA;;AAhEF,iCAYE,0BA8CD,YAIE,mBAGD;EACE,cAAA;;AAlEJ,iCAYE,0BA8CD,YAWE;EACD,kBAAA;EACA,SAAA;;AAEA,iCA7DA,0BA8CD,YAWE,SAIA;EACC,yBAAA;EACA,WAAA;EACA,eAAA;EACA,yBAAA;;AAEA,iCAnEF,0BA8CD,YAWE,SAIA,WAME;EACF,yBAAA;EACA,yBAAA;;AAID,iCAzEA,0BA8CD,YAWE,SAgBA;EACC,yBAAA;EACA,YAAA;EACA,yBAAA;;AAEA,iCA9EF,0BA8CD,YAWE,SAgBA,QAKE;EACF,yBAAA;EACA,yBAAA;;AA5FH,iCAYE,0BAsFE;EACE,YAAA;EACA,WAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;;AAvGN,iCAYE,0BA8FE;EACE,yBAAA;;AA3GN,iCAYE,0BAkGE;EACE,yBAAA;;AA/GN,iCAYE,0BAsGE;EACE,yBAAA;;AAnHN,iCAYE,0BA0GE;EACE,yBAAA;;AAvHN,iCAYE,0BA8GE;EACE,aAAA","file":"upgrade-to-pro.css"}PK!h\h h upgrade/upgrade-to-pro.lessnu[@import '../assets/css/variables.less'; #rsp-step-template, #rsp-plugin-suggestion-template { display:none; } .rsp-recommended { padding-bottom:10px; } .rsp-plugin-suggestion { display:flex; gap:10px; padding:20px 10px; background-color: #f0f6fc; .rsp-title { font-weight:bold; } .rsp-description-short{ font-weight: bold; font-size:10px; } .rsp-icon img { width:50px; height:inherit; } .rsp-description { color:@grey-dark; font-size: 11px; line-height: 13px; width:300px; } .rsp-install-button { align-items: center; justify-content: center; display: flex; .button-secondary { font-size: 18px; } } .star-rating .star { width: 16px; height: 16px; font-size: 16px; } } .rsp-modal-transparent-background { position: fixed; width: 100%; height: 100%; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.7); z-index: 9999; .rsp-install-plugin-modal { max-height: calc(100vh - 20px); position: fixed; left: 50%; top: 50%; -ms-transform: translateX(-50%) translateY(-50%); transform: translateX(-50%) translateY(-50%); width: fit-content; height: fit-content; min-width: 700px; padding: 25px; background-color: white; border-radius: 10px; h3 { font-size:23px; margin: 0 0 20px 0; } .rsp-progress-bar-container { margin: 0 0 15px 0; .rsp-progress { overflow: hidden; height: 10px; border-radius: 5px; width: 100%; .rsp-bar { height: 100%; } } } .rsp-install-steps { display: flex; flex-direction: column; margin: 0 0 15px 0; .rsp-install-step { display: grid; grid-template-columns: 50px 1fr; grid-template-rows: 25px; align-items: center; } } .rsp-footer { display:flex; gap:20px; align-items: center; .rsp-error-message { color:@rsp-red; font-weight:14px; a { color:@rsp-red; } } .rsp-btn { width: fit-content; margin: 0; &.rsp-yellow { background-color: @rsp-yellow; color: #333; font-size:17px; border: 1px solid @rsp-yellow; &:hover { background-color: @rsp-yellow; border: 1px solid @rsp-yellow; } } &.rsp-red { background-color: @rsp-red; color: white; border: 1px solid @rsp-red; &:hover { background-color: @rsp-red; border: 1px solid @rsp-red; } } } } .rsp-bullet { height: 13px; width: 13px; border-radius: 50%; margin-right: 10px; text-decoration: none; } .rsp-grey { background-color: @grey-light; } .rsp-green { background-color: @rsp-green; } .rsp-red { background-color: @rsp-red; } .rsp-yellow { background-color: @rsp-yellow; } .rsp-hidden { display: none; } } } PK!L//!upgrade/img/really-simple-ssl.pngnu[PNG  IHDR\rftEXtSoftwareAdobe ImageReadyqe<(iTXtXML:com.adobe.xmp ?O,EIDATx} Uu9{\r<$CBHP"  D[,*h@J1~jP֊<_!P!<3I}Gמ{dΜ=3yf3k~I.sf^zAAA)m{ pV /WK|2 zc \\` Gɜfp= @Zn!VhT)G3kƪc4\Sg p h;L|~I@8a38HHȭz0s`+2#cz :ܼpCQvp6[0_VkN_%s_&<ӭFp~>΀,p7:V-ۜŋ̝8HH⠧p\0GcV;rimR2M'}xA8\_k6dl]O*7;q>\ ngK <{ te+^@@(4wM?)9ZMHX."XP(ǟuŸjV׫3  _lA@y/pU |JE:MUWG @/.\&ƪN*w_?$@/cMWwע"R.hr뷁jHH.fFN_b\{_? $"+:#cJU*47 I A@p *щE_@&$BH\޻?"<hnJ lD@/Z+CxSC#>τ2s/\>G ӂ_5'~c~jIi]KRբ8;a! C7$fm}2)J΍uld2\/D-D jv., cWnB@tm,Ӳjժri :ۛ$p{P+~riy;JŤd3׭0/P;L"u;ڟ;j1BX6R$S\GIONI 4 | x.}SJ$@{Hq15jwƜ,.gj-.t=vo35 Sp,[ ĺ 0^$U٩uGm-_07  @Eu<P߅:ho<{ۨMliiUH֟+_6/(YtW/> @#gYntb7n:㻂3 1.tsfvx;,GܫƂcj9d$IiBTToҬ?M=JCa9<2bDz&Vg0Uc,k_^*)) P/!AN/6zX#۸ \@?:sႮLmyhZzuF=9~F`@ڒy?`)TI?ϲqϞ~HV C@JK)) $܀ 1 jΪU~ W]@c:6,Z|-zSrGK~mqi 16*ӭ>pxC,t.L);yݎz`-g[O} sr=KFRTyBO5a50&__R'p?\X]@)BC#,UKo6Uw͋9iT}$*~Xfk %]T QUʇ22P`i~?<4rt2xjDOV{>@,k9[%H\:R)oλSt(lO7f[ U., %\bLZ5,a9~ (ٽ8 8;ڠr]8Cbi08̅ /:_V*Uqo/g r*=\?5A/rys/P  6.(C(\.EbG!Kc9YPe3*G,!D}@]A^K74t?{  rL] ֿZ9%\kL >aea$q(K1rkxͮ<+nꢵ{40 r0-yo'ŕõq;>>njE(tLtnɿF?(cp\)P i>ʤЦ xAך(sF1b@(lSr\*Id%ߍ@(߈€iû @Ad| JvEa Mvl%~+z<@o˔.8_PmQX"p @AV1&O[B4Pȯ& wG>`20zExKCلY$ޖ  ɭ$:Wz\w{ $~Fq 2DF" %x!P (.QQ^@ :@!$S lJxf P.Yts^pPE#%y)U*rѠP0#rKV`zXh\)LCB Nk_ ^L|3{&r? N fONL<}vi{ *juf^nW.O&wXLN^r?Qk=A{fVIPүmGjnJ]R &RJӒ ޫxm"\+ y9fτo7[7~/iPP @}x}}B>*ݔhC\G{6FFډ>cBݓ>+}/KY<øt4qm7GN!e@!H}3A'?/߭}H`$D>Gi| 4?sNI#BT ?=ioPIC=93񾗌,lY1vD-<#=0C|'}X~LGyN ׿͘,DjtG!ʡd"h ^'gu(b)j NڤJ)IrF(Ewem)gI 傹'E$> b(z%Np xnP"U@ŜԊ%nޜW(XbU 帿-zɹe%-\½QO TWSF\ p_9p-RYbdЌ̶L֙ <""SV ձ* nBIݥ+JʑdD~4ř ~oyIVZֳp8hPpkq] D2'L"z/"ī`z@CU_zK512_<i ĥ?z~h4<$ʮc,a'I$eecOH%8Yy qV%[֍&z]ZZ~U1\B&Zs/|lfi+ߘt˰RuШ՟IGKLXmz;R4GJy>k _z9(e ,br{K )Up)LiW!1]}(HMJ!ZE7ULchFj+7~(eQ%أ,$/ځWK+o߮@Y?Ll'%r~rIdi}z6v%;|LnYͮDsUW~&~M1"}k[\s'N{ݶ>o O:T"U/]k֧m!.(k  sZgiZx&w8R0Gd Wx=6,F|Kf/3GZ1#s/43S$- Jm{@t%VY\;M^zdҙEG\GiE"cdտx]yU]o-eYU7h8+Hl>3]W?wų7ro^OR՛]]);TFY7)ơPeI E(̵Z|grκDJ &b Wi$&otVԺK0VpXpP1o#?gqQKlOJfDZj].G% #6k9H/irok†*:m n+V ~6\~?GX"Z DwY=4G^IopUq<b&CaD_k":3ۇ̥x3qYN;j+|,wOyhү'%vRoh*9sc΃GNN*+G[~M,y PtKI0h1FW tcmd\OK0Sz䷿B '_ʫhiזǡ~g @Gc][Ur'jo سI "֐uwO~~i!Kq][s4ȖVMy @D%0?ygQ_DHir[aٯc# M T' q??}o W-ݾB0I_hpחxjc -t.ьѮXP-$Ќ{fYW;+dPu$,KJ5uOc]uHSlzg/Btz|zJe~b*yGC Me;˒R ?rr3I7`CalUM< Pc -t_S[sQJG<5Ar/ȹ.; ~M²J]H)pmxd;_ @zd+9 kmw?^,W]aab8Yb+5I`W?y\u2_˭o@iH w-$po1Դ?|ױ@` y"׿I,jg'\ k / r=HJ?< W-V~zFdZ2Vm/Oݽ/UG+g{A?$UWJ /xl^Ξ]] l`b۲:GKg][{#Ge'}`Zw=Zkk:[ݻW"瞺{w4Re{j#trfsO ԰a%Q '9rEs9'N~ZnGQDh7h:i w?X}DakY)R쟒Sm2 =Kf6#vj0ɶtT' !t.V_uC'L3ҭ߶Pp -W3 G"buySvΟ.<<5}bsQD\ֽYneCIrAw֑%t cqP.e(8JCwDWں5hCE# +CQ '\š!q kR$d13'0W[X}sa_ԓ$˸ˉ2F=+獃ur8*BFPWB1犹d֞;XM-`W'=ytBaOH-9@ ~#oCc"A2E#TIo%LKt5jWkK(.7Zl!Ϭ$lEH3i}4u5t-(!6XC`{ @zdUiE%?j^; 1sHKgŸL$@9?1T ,r'Ƽ.mm eDM%~QH+g߸7O0U/BB$H];M\"^-m ϐp; j=\n%8wvƘi<͘5Х؟Wx8&_]~t,ոD'GWLq$@eX?U) ox)$_WxDtF9N;jT8֟8%.Z?S" +jrTj !G_|v2ވ㾑B"S{<Ǭ/37n(q`j$p=1Z$oN_?)w֮}@))K/D~j'YM,[Kg/BV}}V:btE˚x*F=om@bAt4d"(p&)e$^ՒߴD}T GJ> nce>vT.'շ7LyYYW M;ؕHI+A+CHO6gr{V^%r5YS5.[@0bAESgɬ';{hWI ebIPQ`ɆGYǾx~h'KYZ%gL!rx~+LC{?\nȚrjh9y JZ+$eWǾ#=lx4vhN(*t+Ǎ{+O~K;)%G_2~( Ж"h Qѥ4q$A 2K~,;?E-|UVyHRN"R?SĿW=@D@K}u>>|;ӹBKORʓw|.'yv}qݹw">cF:iMd:E3ÇP[ǭ \,=Lh ~rݔ ,Wڴw(o-0fP"BԷCa9(܂{B_gShYɲv TzHl)dD `V3< ԹУy."h )~Z΢$63/QePZɾZFY׽LpDЫ;KE (LPݓ݅%MMau֟-k%ah Vn:UCB!Z|L V?p 26w}"^ wnc+#%vXR 7!=q L7BVBMG$eAzQc`O@k xA2^#bez¿g?%X˚!cmMw+\1gyw@ P$V-_@(Rhw)h#oO9\o?8W 6»= Z9gMw5'=.ԂߩT|["ϼw߀nywŸsm`;x]68%(($$$$buˀ1S҃."0e Gź5n PP0ظ#pUpjPzP@5EAA6;IENDB`PK!Eupgrade/img/burst.pngnu[PNG  IHDR?1IDATxi|SU=mBK( TDE" # dqFaQYExdA TRd -@[f^ܛM}{Iz]9x/@ 'HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC4HC @LHtRDD$wC$LAjx L/nYv/]Ro= 삃o}rM㵾n3O06l:p!)"q˜*ڲ+:DcXn*D<%2|yAI56\Z?Ť:, Ru. #&8iѰn HiѰnk*HV w IH(rZw\    -Pz$ Է_b. aʰ`i\"7ZL-fÍRmYAEϖ[oe3ZW6[4wh(Hn= uڼ*^}B0(^@tpUr尴!v)nv7[Uڸw|6:}DĻ#4!bQ* .ݻruI[] :e;-_xp/1 'ה'=3S&S>gS+5%4bXrBE*ab[ιQsk H^.JH1t긌1܃%>Yត9VHC/K]oO[;;` Z#E"s9Lw}?6Ϳ- k.Q)۞@ ge _|;Yf5^j`+la,>GMc` Qj_m'C>sm냣5!hn}]KT|G6KN.lbBWO[r48,9dL޴m d0L/f SuK[aaD$Y:iG?0?8bvd*Ζ{_a5Ӗ+eڂ]&fLXxY=O^=}Y6 &+_jz_.ϥvc m+ ͫ2V8<AW& a~ƭ|͉/WɕcnW_%ؒU- Apdo~sWk-&aQ]7 gcz-zvh:]N׸YܟMF漯 j˴zSRȥ܏W^K TUy r54 xk/6pEzr]ɫ1t3OoC//\d"H뛥h+X<+]y-{phmxHb2L^2aӥ2A93 W7)SLmPbn9v sy t c+ZLG nuUVمZu/<~cpEQc2/I4Er/[Q5[^Hw#Z.6u!K{"i,陮wSSvU'=U)b7י؞ݔ۝諣_;=g#P. jpNxEWl^ʦ91fuzEHy┮&Eo%^k|bgFIT'>[%مoCK"𑌱ߜf}w@0ZL|ϖ6!ytGleqiͣa}ISEƚ+0 sY"9.^vzvYPM ss̰?_[JBZ7tu:<[RX6y9g s SoO+wZ=&u癶} ϐh3ل6 ->f8Q;+c]-=|)HQctl `0N][|sxdž:SsXcӬ7=AI'.zOhҢ.0 pOU>uUh.o4\UrDe  heOſL,92=LWt]g!Sia+Rɜ 0ִ\XtgjSg8>Ve}`NO|gʹl:&P8 _͢v51 7~o. ` URǰ2q_q~ubqjS+y>!,' =a&ΝX%ųw'0q\AŅVN}y'JNm~2 Zm)[Q:2>v`ݻԍlrfezŏ,ٳM{`&C^#_*r\uaH6&֓ofRmVM=zMbs2a~.9V4iD3898^8u#%o u&*aDr?߆5m?_wO_7ɻq/Ҏ+ Shܔf\9}HJa2M.waZ*ʕj-ΛvVvk$7"?gsܤ{an]=V 78nh0p]bJҗFiϼs٤J>bŔqYV笿Z5V5+W^\cKYw+>d?-HUĿ&c Z/l29n7-gwmS}e\ɨ/ז74E(Ud&gSd4*;k P"-Vףbe:aBӢֿ(qKvedb&<33JqCY$F8;4xw>2"RX}v]pxc]3X5 :v|VVcʆ61Qcmz2Q̨v$ Z;퓻:]gg?Cq[;#cY3)MKmTycK s+yu~N} vW^ot7sM,zba .v}G{LN];"(c}?*3V^7$"ɣ,Ӝuuu}n S=z[a6?t N]V\uyҪiN/i2b&{ *36|`TE%2-[y`5:ឆ)^&pkfOm;߉LvMsWX'S8~%LI|FL y˗]Ngw44yB/n9Z|lG?iǿyZTUiP*Ri)jbO\{8!bPHηCk~1}F);-<+|EḌ1.o\WWXcdo?C*O >[mv۫[~%wsX$ޔD&3bT]?_Qx񜋇nKjz7 <&XTxv'V6H(/ysǻ<\=&uWNZ+'vۛ]p8C̴c~8SRsuE~9q>ԑ X K&`nk;ڷlfb3ۄ(H쫉TrU*}((uAި74p?D$P[u^N[8 `iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiݞAXtEXtSoftwareAdobe ImageReadyqe<tEXtEXIF:Orientation1XIENDB`PK!9ތupgrade/img/complianz-gdpr.pngnu[PNG  IHDR?1hIDATx흱kI? h`A7E7Rd˰%EÍdIN +9&,c<X`N^^PꞞVÁTޫ+HoD44 @DCD44 @DCD44 @DCD44 @DCD44 @DCD44 @DCD44 @DCD44 @DCD44 @DCD44 @DCD44 @DCD44 @DCD44 @DCD44 @DC h7it[SǓF87r}  l:9ok7a\\8£(11N\>M{#F0Fo4N ٚ|aqz2Ceq;k\g&`ci*(cC׿dht[˩w;$$UiPqlz3NL/.TOƜ@{+S3<|7^-1\ƶ{ Cg?os`l|rK ++p%ԓpUv: a/ffkH>zra;k 5Տ{GFnʘl.~3| =jjzG+菣c},.TT <_PTŶpE;uLX,. h)O[G3{_a^c@.COhМ͉͘ޝߤKhPq~}5;m}r @r\mJuʬկҺ,,)pId`T~}NC( >+(h`p?r s'^J'z \l, ~j<]DnvDN3*{>-WGlW-tj̇4x~]$lhsh9ĭP (趢ai< )z?~N?=&̲P>R7WQ ۜ98'u>a|Sn$ H*/:M7UnClH^Q7hLA2BYoȮ~m16W?ƭ趰w0F";׏sѰsh?qGԐWG'qŪjBqEnöh/}ΔgŪ_Kvqaaӌ\I \sV~^X1=1Z=3nF%?U? =(0dk⛭TR]]hH3Yĥ2ٮWCWߝx.jiDO>JT=6O(94/Cv4h\W40хqϨ$'`c 7lp0 A99кNꑠN30WbZue͕#.w婽;M|% q륛?r ~N Q t2Go^^8NϩȐ1>nn@HS?nYpX~8Wcvc*9=tf9ȶ ߷bt%¬VOõ3Ez#q0lGR_,A-<\,x2zugQs*6NMmL&✞a1aqe|ٯF0RK0.eڎ!P964ey뫜@od-t[w_b:PM^j,D֧X߾7?*^`q=Ï|ON>݈:( Zl,v'z9Zea 0oJ GA_ <A+@\p B@7 WΓ_|[z桌;=A9hsgm9~sOܜ6RdlD5Eb8> jI9D+8B)e\@3d!XH ܇@BNϊّXlա!!HsXh^PsdYv+#"Ћq妦R(|xJP>x12&q͜Il8BdR>cBBů1I@yu̒us)q `Rx M3p,qTnT,ŌKHSq,PBTy`_*a=m%PķlPe;kx_WտutB2y@%k%LDM` }K/'9RR:GVv`j?_*Au&T.KW@@ { clearInterval(window.rsp_interval); let progress_bar_container = document.querySelector(".rsp-progress-bar-container"); let progressEl = progress_bar_container.querySelector(".rsp-progress"); var bar = progressEl.querySelector(".rsp-bar"); bar.style = "width: 100%;"; bar.classList.remove('rsp-green'); bar.classList.add('rsp-red'); clearInterval(window.rsp_interval); } const rsp_process_step = (current_step) => { let previous_progress = current_step * Math.ceil(100/(rsp_upgrade.steps.length)); let progress_step = (current_step+1) * Math.ceil(100/(rsp_upgrade.steps.length)); clearInterval(window.rsp_interval); window.rsp_interval = setInterval(function () { let inc = 0.5; //very slow if we're close to the target progress for this step. if ( ( rsp_progress > progress_step-1 ) ) { inc = 0.01; } rsp_progress += inc; if (rsp_progress >= 100) { rsp_progress = 100; } rsp_set_progress(); }, 100); current_step = parseInt(current_step); let step = rsp_steps[current_step]; let error = step['error']; let success = step['success']; // Get arguments from url const query_string = window.location.search; const urlParams = new URLSearchParams(query_string); let data = { 'action': step['action'], 'token': rsp_upgrade.token, 'plugin': urlParams.get('plugin'), 'license': urlParams.get('license'), 'item_id': urlParams.get('item_id'), 'api_url': urlParams.get('api_url'), 'download_link': rsp_download_link, 'install_pro': true, }; rsp_ajax.get(rsp_upgrade.admin_url, data, function(response) { let step_element = document.querySelector(".rsp-step-"+current_step); if ( !step_element ) return; let step_color = step_element.querySelector(".rsp-step-color"); let step_text = step_element.querySelector(".rsp-step-text"); let data = JSON.parse(response); if ( data.success ) { if ( data.download_link ){ rsp_download_link = data.download_link; } step_color.innerHTML = "
"; step_text.innerHTML = ""+step.success+""; if ( current_step + 1 == rsp_steps.length ) { let templateHtml = document.getElementById('rsp-plugin-suggestion-template').innerHTML; document.querySelector('.rsp-install-steps').innerHTML = templateHtml; document.querySelector('.rsp-install-plugin-modal h3').innerText = rsp_upgrade.finished_title; document.querySelector(".rsp-btn.rsp-visit-dashboard").classList.remove("rsp-hidden"); rsp_progress = 100; rsp_set_progress(); } else { rsp_progress = progress_step; rsp_set_progress(progress_step); rsp_process_step( current_step+1 ); } } else { step_color.innerHTML = "
"; if ( data.message ) { document.querySelector(".rsp-error-message.rsp-"+step['type']+" span").innerText = data.message; } step_text.innerHTML = ""+step.error+""; rsp_stop_progress(); document.querySelector(".rsp-btn.rsp-cancel").classList.remove("rsp-hidden"); document.querySelector(".rsp-error-message.rsp-"+step['type']).classList.remove("rsp-hidden"); } }); } rsp_process_step(0);PK!QCupgrade/ajax.min.jsnu[var rsp_ajax={};rsp_ajax.x=function(){if(typeof XMLHttpRequest!=="undefined"){return new XMLHttpRequest}var versions=["MSXML2.XmlHttp.6.0","MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp.2.0","Microsoft.XmlHttp"];var xhr;for(var i=0;ilicense = sanitize_title($_GET['license']); } if ( isset($_GET['item_id']) ) { $this->item_id = sanitize_title($_GET['item_id']); } if ( isset($_GET['plugin']) ) { $plugin = sanitize_title($_GET['plugin']); switch ($plugin) { case "rsssl_pro": $rsssl_admin_url = is_multisite() ? network_admin_url('settings.php') : admin_url("options-general.php"); $this->slug = is_multisite() ? "really-simple-ssl-pro-multisite/really-simple-ssl-pro-multisite.php" : "really-simple-ssl-pro/really-simple-ssl-pro.php"; $this->plugin_name = "Really Simple SSL Pro"; $this->plugin_constant = "rsssl_pro"; $this->prefix = "rsssl_"; $this->api_url = "https://really-simple-ssl.com"; $this->dashboard_url = add_query_arg(["page" => "really-simple-security"], $rsssl_admin_url ); $this->account_url = 'https://really-simple-ssl.com/account'; $this->instructions = 'https://really-simple-ssl.com/knowledge-base/install-really-simple-ssl-pro'; break; case "burst_pro": $this->slug = "burst-pro/burst-pro.php"; $this->plugin_name = "Burst"; $this->plugin_constant = "burst_pro"; $this->prefix = "burst_"; $this->api_url = "https://burst-statistics.com"; $this->dashboard_url = add_query_arg(["page" => "burst"], admin_url( "index.php" )); $this->account_url = 'https://burst-statistics.com/account'; $this->instructions = 'https://burst-statistics.com/how-to-install-burst-premium'; break; case "cmplz_pro": default: $this->slug = is_multisite() ? "complianz-gdpr-premium-multisite/complianz-gpdr-premium.php" : "complianz-gdpr-premium/complianz-gpdr-premium.php"; $this->plugin_name = "Complianz"; $this->plugin_constant = "cmplz_premium"; $this->prefix = "cmplz_"; $this->api_url = "https://complianz.io"; $this->dashboard_url = add_query_arg(["page" => "complianz"], admin_url("admin.php") ); $this->account_url = 'https://complianz.io/account'; $this->instructions = 'https://complianz.io/how-to-install-complianz-gdpr-premium-plugin'; break; } } $this->steps = array( array( 'action' => 'rsp_upgrade_destination_clear', 'doing' => __("Checking if plugin folder exists...", "really-simple-ssl"), 'success' => __("Able to create destination folder", "really-simple-ssl"), 'error' => __("Destination folder already exists", "really-simple-ssl"), 'type' => 'folder', ), array( 'action' => 'rsp_upgrade_activate_license', 'doing' => __("Validating license...", "really-simple-ssl"), 'success' => __("License valid", "really-simple-ssl"), 'error' => __("License invalid", "really-simple-ssl"), 'type' => 'license', ), array( 'action' => 'rsp_upgrade_package_information', 'doing' => __("Retrieving package information...", "really-simple-ssl"), 'success' => __("Package information retrieved", "really-simple-ssl"), 'error' => __("Failed to gather package information", "really-simple-ssl"), 'type' => 'package', ), array( 'action' => 'rsp_upgrade_install_plugin', 'doing' => __("Installing plugin...", "really-simple-ssl"), 'success' => __("Plugin installed", "really-simple-ssl"), 'error' => __("Failed to install plugin", "really-simple-ssl"), 'type' => 'install', ), array( 'action' => 'rsp_upgrade_activate_plugin', 'doing' => __("Activating plugin...", "really-simple-ssl"), 'success' => __("Plugin activated", "really-simple-ssl"), 'error' => __("Failed to activate plugin", "really-simple-ssl"), 'type' => 'activate', ) ); // Set up hooks. $this->init(); } private function get_suggested_plugin($attr){ $plugin_to_be_installed = $current_plugin = false; if (isset($_GET['plugin']) && $_GET['plugin']==='cmplz_pro' ) { $plugin_to_be_installed = 'complianz-gdpr'; } else if (isset($_GET['plugin']) && $_GET['plugin']==='rsssl_pro' ) { $plugin_to_be_installed = 'really-simple-ssl'; } else if (isset($_GET['plugin']) && $_GET['plugin']==='burst_pro' ) { $plugin_to_be_installed = 'burst'; } $path = __FILE__; if (strpos($path, 'really-simple-ssl')!==false) { $current_plugin = 'really-simple-ssl'; } else if (strpos($path, 'complianz')!==false){ $current_plugin = 'complianz-gdpr'; } else if (strpos($path, 'burst')!==false){ $current_plugin = 'burst'; } $dir_url = plugin_dir_url(__FILE__).'img/'; $suggestion = $fallback_suggestion = [ 'icon_url' => $dir_url.'burst.png', 'constant' => 'burst_version', 'title' => 'Burst – Privacy Friendly Statistics', 'description_short' => __('Self-hosted and privacy-friendly analytics tool.', "really-simple-ssl"), 'disabled' => '', 'button_text' => __("Install", "really-simple-ssl"), 'slug' => 'burst-statistics', 'description' => __("Get detailed insights into visitors' behaviour with Burst Statistics, the privacy-friendly analytics dashboard from Really Simple Plugins.", "really-simple-ssl"), 'install_url' => 'burst%20statistics%20hesseldejong%20%20burst-statistics.com&tab=search&type=term', ]; if ( $plugin_to_be_installed === 'really-simple-ssl' || $plugin_to_be_installed === 'burst' ){ $suggestion = [ 'icon_url' => $dir_url.'complianz-gdpr.png', 'constant' => 'cmplz_version', 'title' => 'Complianz GDPR/CCPA', 'description_short' => __('GDPR/CCPA Privacy Suite', "really-simple-ssl"), 'disabled' => '', 'button_text' => __("Install", "really-simple-ssl"), 'slug' => 'complianz-gdpr', 'description' => __('Configure your Cookie Notice, Consent Management and Cookie Policy with our Wizard and Cookie Scan. Supports GDPR, DSGVO, TTDSG, LGPD, POPIA, RGPD, CCPA and PIPEDA.', "really-simple-ssl"), 'install_url' => 'complianz+gdpr+POPIA&tab=search&type=term', ]; if ($current_plugin==='complianz-gdpr') { $suggestion = $fallback_suggestion; } } if ( $plugin_to_be_installed === 'complianz-gdpr' ){ $suggestion = [ 'icon_url' => $dir_url.'really-simple-ssl.png', 'constant' => 'rsssl_version', 'title' => 'Really Simple SSL', 'description_short' => __('One click SSL optimization', "really-simple-ssl"), 'disabled' => '', 'button_text' => __("Install", "really-simple-ssl"), 'slug' => 'really-simple-ssl', 'description' => __('Really Simple SSL automatically detects your settings and configures your website to run over HTTPS. To keep it lightweight, we kept the options to a minimum. Your website will move to SSL with one click.', "really-simple-ssl"), 'install_url' => 'ssl%20really%20simple%20plugins%20complianz+HSTS&tab=search&type=term', ]; if ( $current_plugin==='really-simple-ssl' ) { $suggestion = $fallback_suggestion; } } $admin_url = is_multisite() ? network_admin_url('plugin-install.php?s=') : admin_url('plugin-install.php?s='); $suggestion['install_url'] = $admin_url.$suggestion['install_url']; if (defined($suggestion['constant'])){ $suggestion['install_url'] = '#'; $suggestion['button_text'] = __("Installed", "really-simple-ssl"); $suggestion['disabled'] = 'disabled'; } return $suggestion[$attr]; } /** * Set up WordPress filters to hook into WP's update process. * * @uses add_filter() * * @return void */ public function init() { add_action( 'admin_footer', array( $this, 'print_install_modal' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_assets') ); add_action( 'wp_ajax_rsp_upgrade_destination_clear', array($this, 'process_ajax_destination_clear') ); add_action( 'wp_ajax_rsp_upgrade_activate_license', array($this, 'process_ajax_activate_license') ); add_action( 'wp_ajax_rsp_upgrade_package_information', array($this, 'process_ajax_package_information') ); add_action( 'wp_ajax_rsp_upgrade_install_plugin', array($this, 'process_ajax_install_plugin') ); add_action( 'wp_ajax_rsp_upgrade_activate_plugin', array($this, 'process_ajax_activate_plugin') ); } /** * Enqueue javascript * @todo minification */ public function enqueue_assets( $hook ) { if ( $hook === "plugins.php" && isset($_GET['install_pro']) ) { $minified = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; wp_register_style( 'rsp-upgrade-css', plugin_dir_url(__FILE__) . "upgrade-to-pro$minified.css", false, $this->version ); wp_enqueue_style( 'rsp-upgrade-css' ); wp_enqueue_script( 'rsp-ajax-js', plugin_dir_url(__FILE__) . "ajax$minified.js", array(), $this->version, true ); wp_enqueue_script( 'rsp-upgrade-js', plugin_dir_url(__FILE__) . "upgrade-to-pro$minified.js", array(), $this->version, true ); wp_localize_script( 'rsp-upgrade-js', 'rsp_upgrade', array( 'steps' => $this->steps, 'admin_url' => admin_url( 'admin-ajax.php' ), 'token' => wp_create_nonce( 'upgrade_to_pro_nonce'), 'cmplz_nonce' => wp_create_nonce( 'complianz_save'), 'finished_title' => __("Installation finished", "really-simple-ssl"), ) ); } } /** * Calls the API and, if successfull, returns the object delivered by the API. * * @uses get_bloginfo() * @uses wp_remote_post() * @uses is_wp_error() * * @return false|object */ private function api_request() { if ( !rsssl_user_can_manage() ) { return false; } global $edd_plugin_url_available; // Do a quick status check on this domain if we haven't already checked it. $store_hash = md5( $this->api_url ); if ( ! is_array( $edd_plugin_url_available ) || ! isset( $edd_plugin_url_available[ $store_hash ] ) ) { $test_url_parts = parse_url( $this->api_url ); $port = ! empty( $test_url_parts['port'] ) ? ':' . $test_url_parts['port'] : ''; $host = ! empty( $test_url_parts['host'] ) ? $test_url_parts['host'] : ''; $test_url = 'https://' . $host . $port; $response = wp_remote_get( $test_url, array( 'timeout' => $this->health_check_timeout, 'sslverify' => true ) ); $edd_plugin_url_available[ $store_hash ] = is_wp_error( $response ) ? false : true; } if ( false === $edd_plugin_url_available[ $store_hash ] ) { return false; } if( $this->api_url == trailingslashit ( home_url() ) ) { return false; // Don't allow a plugin to ping itself } $api_params = array( 'edd_action' => 'get_version', 'license' => ! empty( $this->license ) ? $this->license : '', 'item_id' => isset( $this->item_id ) ? $this->item_id : false, 'url' => home_url(), ); $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => true, 'body' => $api_params ) ); if ( ! is_wp_error( $request ) ) { $request = json_decode( wp_remote_retrieve_body( $request ) ); } if ( $request && isset( $request->sections ) ) { $request->sections = maybe_unserialize( $request->sections ); } else { $request = false; } if ( $request && isset( $request->banners ) ) { $request->banners = maybe_unserialize( $request->banners ); } if ( $request && isset( $request->icons ) ) { $request->icons = maybe_unserialize( $request->icons ); } if( ! empty( $request->sections ) ) { foreach( $request->sections as $key => $section ) { $request->$key = (array) $section; } } return $request; } /** * Prints a modal with bullets for each step of the install process */ public function print_install_modal() { if ( !rsssl_user_can_manage() ) { return false; } if ( is_admin() && isset($_GET['install_pro']) && isset($_GET['license']) && isset($_GET['item_id']) && isset($_GET['plugin']) ) { $dashboard_url = $this->dashboard_url; $plugins_url = admin_url( "plugins.php" ); ?>
{doing}
suggested plugin icon
get_suggested_plugin('title')?>
get_suggested_plugin('description_short')?>
get_plugin_info($this->get_suggested_plugin('slug')); if (!is_wp_error($plugin_info) && !empty($plugin_info->rating)) { wp_star_rating([ 'rating' => $plugin_info->rating, 'type' => 'percent', 'number' => $plugin_info->num_ratings ] ); } ?>
get_suggested_plugin('description')?>

plugin_name ?>

$slug)); if (!is_wp_error($plugin_info)) { set_transient('rsp_'.$slug . '_plugin_info', $plugin_info, WEEK_IN_SECONDS); } } return $plugin_info; } /** * Ajax GET request * * Checks if the destination folder already exists * * Requires from GET: * - 'token' => wp_nonce 'upgrade_to_pro_nonce' * - 'plugin' (This will set $this->slug (Ex. 'really-simple-ssl-pro/really-simple-ssl-pro.php'), based on which plugin) * * Echoes array [success] */ public function process_ajax_destination_clear() { $error = false; $response = [ 'success' => false, ]; if ( !rsssl_user_can_manage() ) { $error = true; } if ( !isset($_GET['token']) || !wp_verify_nonce($_GET['token'], 'upgrade_to_pro_nonce')) { $error = true; } if (!$error) { if ( defined( $this->plugin_constant ) ) { deactivate_plugins( $this->slug ); } $file = trailingslashit( WP_CONTENT_DIR ) . 'plugins/' . $this->slug; if ( file_exists( $file ) ) { $dir = dirname( $file ); $new_dir = $dir . '_' . time(); set_transient( 'rsssl_upgrade_dir', $new_dir, WEEK_IN_SECONDS ); rename( $dir, $new_dir ); //prevent uninstalling code by previous plugin unlink( trailingslashit( $new_dir ) . 'uninstall.php' ); } } if ( !$error && file_exists($file ) ) { $error = true; $response = [ 'success' => false, 'message' => __("Could not rename folder!", "really-simple-ssl"), ]; } if ( !$error && isset($_GET['plugin']) ) { if ( !file_exists(WP_PLUGIN_DIR . '/' . $this->slug) ) { $response = [ 'success' => true, ]; } } $response = json_encode($response); header("Content-Type: application/json"); echo $response; exit; } /** * Ajax GET request * * Links the license on the website to this site * * Requires from GET: * - 'token' => wp_nonce 'upgrade_to_pro_nonce' * - 'license' * - 'item_id' * * (Without this link you cannot download the pro package from the website) * * Echoes array [license status, response message] */ public function process_ajax_activate_license() { $error = false; $response = [ 'success' => false, 'message' => '', ]; if ( !rsssl_user_can_manage() ) { $error = true; } if (!$error && isset($_GET['token']) && wp_verify_nonce($_GET['token'], 'upgrade_to_pro_nonce') && isset($_GET['license']) && isset($_GET['item_id']) ) { $license = sanitize_title($_GET['license']); $item_id = (int) $_GET['item_id']; $response = $this->validate($license, $item_id); update_site_option($this->prefix.'auto_installed_license', $license); } $response = json_encode($response); header("Content-Type: application/json"); echo $response; exit; } /** * Activate the license on the websites url at EDD * * Stores values in database: * - {$this->pro_prefix}license_activations_left * - {$this->pro_prefix}license_expires * - {$this->pro_prefix}license_activation_limit * * @param $license * @param $item_id * * @return array [license status, response message] */ private function validate( $license, $item_id ): array { $message = ""; $success = false; if ( !rsssl_user_can_manage() ) { return [ 'success' => $success, 'message' => $message, ]; } // data to send in our API request $api_params = array( 'edd_action' => 'activate_license', 'license' => $license, 'item_id' => $item_id, 'url' => home_url() ); // Call the custom API. $response = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) ); // make sure the response came back okay if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) { if ( is_wp_error( $response ) ) { $message = $response->get_error_message(); } else { $message = __( 'An error occurred, please try again.', "really-simple-ssl"); } } else { $license_data = json_decode( wp_remote_retrieve_body( $response ) ); if ( false === $license_data->success ) { switch( $license_data->error ) { case 'expired' : $message = sprintf( __( 'Your license key expired on %s.', "really-simple-ssl"), date_i18n( get_option( 'date_format' ), strtotime( $license_data->expires, current_time( 'timestamp' ) ) ) ); break; case 'disabled' : case 'revoked' : $message = __( 'Your license key has been disabled.', "really-simple-ssl"); break; case 'missing' : $message = __('Missing license.', "really-simple-ssl"); break; case 'invalid' : $message = __( 'Invalid license.', "really-simple-ssl"); break; case 'site_inactive' : $message = __( 'Your license is not active for this URL.', "really-simple-ssl" ); break; case 'item_name_mismatch' : $message = __( 'This appears to be an invalid license key for this plugin.', "really-simple-ssl" ); break; case 'no_activations_left': $message = __( 'Your license key has reached its activation limit.', "really-simple-ssl"); break; default : $message = __( 'An error occurred, please try again.', "really-simple-ssl" ); break; } //in case of failure, rename back to default $new_dir = get_transient('rsssl_upgrade_dir'); if ( $new_dir ) { if ( file_exists($new_dir ) ) { $default_file = trailingslashit(WP_CONTENT_DIR).'plugins/'.$this->slug; $default_dir = dirname($default_file); rename($new_dir, $default_dir); } } } else { $success = $license_data->license === 'valid'; } } return [ 'success' => $success, 'message' => $message, ]; } /** * Ajax GET request * * Do an API request to get the download link where to download the pro package * * Requires from GET: * - 'token' => wp_nonce 'upgrade_to_pro_nonce' * - 'license' * - 'item_id' * * Echoes array [success, download_link] */ public function process_ajax_package_information() { if ( !rsssl_user_can_manage() ) { return false; } if ( isset($_GET['token']) && wp_verify_nonce($_GET['token'], 'upgrade_to_pro_nonce') && isset($_GET['license']) && isset($_GET['item_id']) ) { $api = $this->api_request(); if ( $api && isset($api->download_link) ) { $response = [ 'success' => true, 'download_link' => $api->download_link, ]; } else { $response = [ 'success' => false, 'download_link' => "", ]; } $response = json_encode($response); header("Content-Type: application/json"); echo $response; exit; } } /** * Ajax GET request * * Download and install the plugin * * Requires from GET: * - 'token' => wp_nonce 'upgrade_to_pro_nonce' * - 'download_link' * (Linked license on the website to this site) * * Echoes array [success] */ public function process_ajax_install_plugin() { $message = ''; if ( !rsssl_user_can_manage() ) { return [ 'success' => false, 'message' => $message, ]; } if ( isset($_GET['token']) && wp_verify_nonce($_GET['token'], 'upgrade_to_pro_nonce') && isset($_GET['download_link']) ) { $download_link = esc_url_raw($_GET['download_link']); require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; $skin = new WP_Ajax_Upgrader_Skin(); $upgrader = new Plugin_Upgrader( $skin ); $result = $upgrader->install( $download_link ); if ( $result ) { $response = [ 'success' => true, ]; } else { if ( is_wp_error($result) ){ $message = $result->get_error_message(); } $response = [ 'success' => false, 'message' => $message, ]; } $response = json_encode($response); header("Content-Type: application/json"); echo $response; exit; } } /** * Ajax GET request * * Do an API request to get the download link where to download the pro package * * Requires from GET: * - 'token' => wp_nonce 'upgrade_to_pro_nonce' * - 'plugin' (This will set $this->slug (Ex. 'really-simple-ssl-pro/really-simple-ssl-pro.php'), based on which plugin) * * Echoes array [success] */ public function process_ajax_activate_plugin() { if ( !rsssl_user_can_manage() ) { return; } if ( isset($_GET['token']) && wp_verify_nonce($_GET['token'], 'upgrade_to_pro_nonce') && isset($_GET['plugin']) ) { $networkwide = is_multisite() && rsssl_is_networkwide_active(); $result = activate_plugin( $this->slug, '', $networkwide ); if ( !is_wp_error($result) ) { $response = [ 'success' => true, ]; } else { $response = [ 'success' => false, ]; } $response = json_encode($response); header("Content-Type: application/json"); echo $response; exit; } } } $rsp_upgrade_to_pro = new rsp_upgrade_to_pro(); } PK!{I%%rlrsssl-really-simple-ssl.phpnu[setup_constants(); self::$instance->includes(); self::$instance->front_end = new rsssl_front_end(); self::$instance->mixed_content_fixer = new rsssl_mixed_content_fixer(); if ( is_multisite() ) { self::$instance->multisite = new rsssl_multisite(); } if ( rsssl_admin_logged_in() ) { self::$instance->cache = new rsssl_cache(); self::$instance->placeholder = new rsssl_placeholder(); self::$instance->server = new rsssl_server(); self::$instance->admin = new rsssl_admin(); self::$instance->mailer_admin = new rsssl_mailer_admin(); self::$instance->onboarding = new rsssl_onboarding(); self::$instance->progress = new rsssl_progress(); self::$instance->certificate = new rsssl_certificate(); self::$instance->site_health = new rsssl_site_health(); if ( defined( 'WP_CLI' ) && WP_CLI ) { self::$instance->wp_cli = new rsssl_wp_cli(); } } self::$instance->hooks(); } return self::$instance; } private function setup_constants() { define('rsssl_url', plugin_dir_url(__FILE__)); define('rsssl_path', trailingslashit(plugin_dir_path(__FILE__))); define('rsssl_template_path', trailingslashit(plugin_dir_path(__FILE__)).'grid/templates/'); define('rsssl_plugin', plugin_basename(__FILE__)); define('rsssl_add_on_version_requirement', '8.0.0'); if ( !defined('rsssl_file') ){ define('rsssl_file', __FILE__); } define('rsssl_version', '8.0.0'); define('rsssl_le_cron_generation_renewal_check', 20); define('rsssl_le_manual_generation_renewal_check', 15); } private function includes() { require_once(rsssl_path . 'class-front-end.php'); require_once(rsssl_path . 'functions.php'); require_once(rsssl_path . 'class-mixed-content-fixer.php'); if ( defined( 'WP_CLI' ) && WP_CLI ) { require_once( rsssl_path . 'class-wp-cli.php'); } if ( is_multisite() ) { require_once( rsssl_path . 'class-multisite.php'); } if ( rsssl_admin_logged_in() ) { require_once( rsssl_path . 'compatibility.php'); require_once( rsssl_path . 'upgrade.php'); require_once( rsssl_path . 'settings/settings.php' ); require_once( rsssl_path . 'modal/modal.php' ); require_once( rsssl_path . 'onboarding/class-onboarding.php' ); require_once( rsssl_path . 'placeholders/class-placeholder.php' ); require_once( rsssl_path . 'class-admin.php'); require_once( rsssl_path . 'mailer/class-mail-admin.php'); require_once( rsssl_path . 'class-cache.php'); require_once( rsssl_path . 'class-server.php'); require_once( rsssl_path . 'progress/class-progress.php'); require_once( rsssl_path . 'class-certificate.php'); require_once( rsssl_path . 'class-site-health.php'); require_once( rsssl_path . 'mailer/class-mail.php'); require_once( rsssl_path . 'lets-encrypt/letsencrypt.php' ); if ( isset($_GET['install_pro'])) { require_once( rsssl_path . 'upgrade/upgrade-to-pro.php'); } } require_once( rsssl_path . 'lets-encrypt/cron.php' ); require_once( rsssl_path . '/security/security.php'); } private function hooks() { /** * Fire custom hook */ if ( rsssl_admin_logged_in() ) { add_action('admin_notices', array( $this, 'admin_notices')); if ( is_multisite() ) { add_action('network_admin_notices', array( $this, 'admin_notices')); } } add_action('wp_loaded', array(self::$instance->front_end, 'force_ssl'), 20); if ( rsssl_admin_logged_in() ) { add_action('plugins_loaded', array(self::$instance->admin, 'init'), 10); } } /** * Notice about possible compatibility issues with add ons */ public static function admin_notices() { //prevent showing on edit screen, as gutenberg removes the class which makes it editable. $screen = get_current_screen(); if ( $screen && $screen->base === 'post' ) return; if ( self::has_old_addon('really-simple-ssl-pro/really-simple-ssl-pro.php') || self::has_old_addon('really-simple-ssl-pro-multisite/really-simple-ssl-pro-multisite.php' ) ) { ?>

',''); ?>

has_cap( 'manage_security' ) ){ $role->add_cap( 'manage_security' ); } } register_activation_hook( __FILE__, 'rsssl_add_manage_security_capability' ); } if ( ! function_exists( 'rsssl_user_can_manage' ) ) { /** * Check if user has required capability * @return bool */ function rsssl_user_can_manage() { if ( current_user_can('manage_security') ) { return true; } #allow wp-cli access to activate ssl if ( defined( 'WP_CLI' ) && WP_CLI ){ return true; } return false; } } if ( !function_exists('rsssl_admin_logged_in')){ function rsssl_admin_logged_in(){ $wpcli = defined( 'WP_CLI' ) && WP_CLI; return (is_admin() && rsssl_user_can_manage()) || rsssl_is_logged_in_rest() || wp_doing_cron() || $wpcli || defined('RSSSL_DOING_SYSTEM_STATUS') || defined('RSSSL_LEARNING_MODE'); } } if ( !function_exists('rsssl_is_logged_in_rest')){ function rsssl_is_logged_in_rest(){ $valid_request = isset($_SERVER['REQUEST_URI']) && strpos($_SERVER['REQUEST_URI'], '/reallysimplessl/v1/')!==false; if ( !$valid_request ) { return false; } return is_user_logged_in(); } } /** * Add rsssl_two_fa_status usermeta field * * @return void */ function rsssl_register_user_meta() { register_meta('user', 'rsssl_two_fa_status', [ 'show_in_rest' => true, 'single' => true, 'type' => 'string', 'description' => 'The method of two-factor authentication for the user.', 'default' => 'disabled', 'auth_callback' => function() { return rsssl_user_can_manage(); }, ]); } add_action( 'init' , 'rsssl_register_user_meta' );PK!UL security.mdnu[# Security Policy The security of our software products is essential to us and our customers. In spite of our care, procedures and best efforts it is possible that there are vulnerabilities in our software products. If you find any, please tell us as soon as possible so we can fix them. ## Reporting a Vulnerability To report a security issue, please [email us](mailto:security@really-simple-plugins.com) with a description of the issue, the steps you took to create the issue, affected versions, and, if known, mitigations for the issue. Please read our [Coordinated Vulnerability Disclosure Policy](https://really-simple-plugins.com/security) before reporting any vulnerabilities.PK!6''assets/css/admin.css.mapnu[{"version":3,"sourceRoot":"","sources":["admin.scss","variables.scss","admin/base.scss","admin/layout.scss","admin/modules/modal.scss","admin/modules/header.scss","admin/modules/buttons.scss","admin/modules/bullets.scss","admin/modules/icons.scss","admin/modules/onboarding.scss","admin/modules/progress.scss","admin/modules/ssltest.scss","admin/modules/placeholder.scss","admin/modules/other-plugins.scss","admin/modules/tips-tricks.scss","admin/modules/wizard.scss","admin/modules/wizard/notice.scss","admin/modules/wizard/menu.scss","admin/modules/wizard/fields.scss","admin/modules/wizard/snackbar.scss","admin/modules/wizard/mixed-content-scan.scss","admin/modules/wizard/learning-mode.scss","admin/modules/wizard/letsencrypt.scss","admin/modules/notices.scss","admin/modules/datatables.scss","admin/modules/security-features.scss","admin/modules/tooltip.scss","admin/states.scss","admin/theme.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACSA;EAEE;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EAGA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA0BA;EACA;EACA;;AA1BA;EAjFF;IAkFA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;AAEF;EA5FF;IA6FI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;;AAmEJ;EACE;IAAO;;EACP;IAAO;;;ACnLT;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACD;EACA;;AAGC;EACD;EACA;EACA;;AAGC;EACD;EACA;EACA;EACA;;AAGC;EACD;EACA;EACA;;AAGC;EACD;EACA;EACA;;AAGC;EACD;EACA;EACA;;AAGC;EACD;EACA;EACA;;AAGC;EACD;EACA;;AAGC;EACD;EACA;EACA;EACA;;AAGC;EACD;EACA;EACA;;AAGC;EACD;;AAEC;EACE;;AAIF;EACD;;AAKA;EACE;;;ACnGH;AAEE;EACE;EACA;;AACA;EAHF;IAII;;;AAEF;EANF;IAOI;;;AAEF;EATF;IAUI;;;AASJ;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EAPF;IAQI;;;AAIJ;EACE;EACA;;AACA;EAHF;IAII;IACA;IACA;IACA;IACA;;;AAGF;EACE;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EAVF;IAWI;;;AAEF;EACE;;AAGF;EACE;;AAMR;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;IACE;;;AAMN;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;;AAIJ;EFGA;EACA;EACA;EEHE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAZF;IAaI;;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AACA;EAFF;IAGI;;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EF9BJ;;AAEA;EEuBE;IFtBA;;;AAEF;EEoBE;IFnBA;;;AAEF;EEiBE;IFhBA;;;AEwBE;EACE;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EFlBJ;EEoBI;;AFlBJ;EEcE;IFbA;;;AAEF;EEWE;IFVA;;;AAEF;EEQE;IFPA;;;AEaE;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EFnEJ;EEqEI;;AFnEJ;EEyDE;IFxDA;;;AAEF;EEsDE;IFrDA;;;AAEF;EEmDE;IFlDA;;;AE8DE;EACE;;AAEA;EACE;;AAIJ;EACE;;AAIJ;EACE;;AAGF;EACE;;;ACvNN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EHuGA;EGrGE;EACA;EACA;EACA;;AHoGF;EGzGA;IH0GE;;;AAEF;EG5GA;IH6GE;;;AAEF;EG/GA;IHgHE;;;AG1GA;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAKN;EACE;EACA;EACA;EH4EF;;AAEA;EGjFA;IHkFE;;;AAEF;EGpFA;IHqFE;;;AAEF;EGvFA;IHwFE;;;AGnFA;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAGJ;EACE;EACA;EH4DF;EG1DE;;AH4DF;EGhEA;IHiEE;;;AAEF;EGnEA;IHoEE;;;AAEF;EGtEA;IHuEE;;;AGjEA;EACE;EACA;EACA;EACA;EAIA;EAEA;;AAGF;EACE;EACA;EACA;;AACA;EACE;;;ACxFR;EACE;EACA;EACA;EACA;;AAEA;EACD;EACA;;AAEC;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;;AAIN;EACD;EACA;EACA;EACA;;AAEA;EACE;;;ACvCD;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;;AAON;EACE;EACA;EACA;;;AAGJ;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;ACnDA;EACD;EACA;EACA;EACA;EACA;EACE;;AACF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAEF;EACE;EACA;EACA;EACA;;AAGF;EACC;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;AAID;EACD;IACE;;EAEF;IACE;;EAEF;IACE;;;;AC3DH;EACE;EACA;EACA;;AACA;EACE;;;ACLJ;EACE;;AACA;EACE;;AAEF;EACE;EACA;EACA;EACA;;AACA;EACE;;AAGJ;EACE;;AACA;EACE;;AAGJ;EACE;EACA;EACA;EACA;;AACA;EACE;;ACzBJ;EACE;;AAGF;ETyHA;;AAEA;ES3HA;IT4HE;;;AAEF;ES9HA;IT+HE;;;AAEF;ESjIA;ITkIE;;;;AS5HF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAKN;ETmGA;ESjGE;;ATmGF;ESrGA;ITsGE;;;AAEF;ESxGA;ITyGE;;;AAEF;ES3GA;IT4GE;;;ASvGF;EACE;EACA;ET4FF;ES1FE;EACA;EACA;;AT0FF;EShGA;ITiGE;;;AAEF;ESnGA;IToGE;;;AAEF;EStGA;ITuGE;;;AS9FA;EACE;EACA;;AAGF;EACE;;AAEA;EACE;;;AAMR;EACE;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;;AAGE;EACE;EACA;;AAGF;EACE;;;AAKN;EACE;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;EACA;EACA;EACA;EACA;;AACA;EANF;IAOI;;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAKA;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAMN;ETlBE;ESoBA;EACA;EACA;EACA;EACA;EACA;EACA;EAIA;EACA;EACA;EACA;EACA;;AThCA;ESgBF;ITfI;;;AAEF;ESaF;ITZI;;;AAEF;ESUF;ITTI;;;AS4BF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EARF;IASI;;;AAEF;EAXF;IAYI;IACA;IACA;IACA;IACA;IACA;;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACnPF;EACE;;;AAIA;EVyHA;;AAEA;EU3HA;IV4HE;;;AAEF;EU9HA;IV+HE;;;AAEF;EUjIA;IVkIE;;;AU9HF;EACE;EACA;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AACA;EACE;EACA;EACA;EACA;;AAKN;EACE;EACA;;AACA;EACG;;AACD;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAQZ;EACE;EAQA;;AAPA;EACE;;AACA;EACE;;AAON;EACE;;;AAOA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;;ACpGN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EAtBF;EACA;EA0BE;;AAJA;EACE;;AAKA;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AADF;EACE;;AAKN;EACE;;;AAKJ;EACE;IACE;;EAEF;IACE;;;ACxDF;EACD;;AAGC;EACD;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EATC;IAUC;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACD;;AAGC;EACD;;AAGC;EACD;;AAGC;EACD;;AAGC;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACD;;AAGC;EACD;;AAKA;EACD;EACA;;AAGC;EACD;EACA;EACA;;AAEC;EACD;;;AC9EF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EATF;IAUC;IACA;;;AAGC;EACD;;AACA;EAFC;IAGC;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACD;EACA;;AAEA;EACE;;AAGF;EACE;;AAKH;EACE;EACA;;AAEF;EACE;EACA;EACA;;;AC/CC;EACE;;AAGF;EACE;EACA;;AACA;EAHF;IAII;;;AAGJ;EACE;;AACA;EAFF;IAGI;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EdyFN;EcvFM;EACA;EACA;;AduFN;EclGI;IdmGF;;;AAEF;EcrGI;IdsGF;;;AAEF;EcxGI;IdyGF;;;Ac5FI;EACE;EACA;;AAGF;EACE;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AACA;EACE;;AAIJ;EACE;;;AC3ER;EACE;EACA;EACA;EACA;;AACA;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;EACA;;AAIN;EACE;;AAEF;EACE;;AACA;EACE;EACA;;AACA;EACE;;;AAMR;EACE;Ef8EA;EACA;EACA;Ee9EA;EACA;;AACA;EACE;EACA;;AAEF;EACE;;;ACnDJ;EACE;;AACA;EACE;EACA;;;AAKA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EhB8IJ;EgB5II;EACA;;AhB6IJ;EgBvJE;IhBwJA;;;AAEF;EgB1JE;IhB2JA;;;AAEF;EgB7JE;IhB8JA;;;AgBjJE;EAEE;EACA;EACA;;AAKF;EAGE;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;;AAON;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;AAMR;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EhBuFJ;EgBrFI;EACA;;AhBsFJ;EgBhGE;IhBiGA;;;AAEF;EgBnGE;IhBoGA;;;AAEF;EgBtGE;IhBuGA;;;AgBxFA;EACE;EACA;;;AC/EF;EACE;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;;AAGJ;EACE;;AAGA;EACE;EACA;EACA;EACA;;AACA;EACI;;AAKN;EACE;;AAGJ;EACE;EjB4HJ;EiB1HI;;AjB4HJ;EiB/HE;IjBgIA;;;AAEF;EiBlIE;IjBmIA;;;AAEF;EiBrIE;IjBsIA;;;AiBlIE;EACE;;AAGJ;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;IAAO;;EACP;IAAO;;EACP;IACE;IACA;;;AAGJ;EACE;IACE;IACA;;EAEF;IAAO;;EACP;IAAO;;;;ACrET;EACE;EACA;EACA;EACA;;AACA;EACE;;AAEF;ElB+GF;EACA;EACA;EkB/GI;;;ACTF;EACE;EACA;;AAGJ;EACE;;AACA;EACE;EACA;;AAGJ;EACE;EACA;;AAEF;EACE;EACA;;;ACpBJ;EACE;EACA;EACA;EACA;EACA;;;ACLF;EACE;;AACA;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAMR;EACE;;AAGF;EACE;EACA;ErBkGF;EqBhGE;EACA;;ArBiGF;EqBtGA;IrBuGE;;;AAEF;EqBzGA;IrB0GE;;;AAEF;EqB5GA;IrB6GE;;;AqBtGA;EACE;EACA;;AAGF;EACE;EACA;EACA;;AACA;EACE;;AAMJ;EACE;AAKA;;AAJA;EACE;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMJ;EACE;;AAEF;EACE;;AAEF;EACE;;AAIA;EACE;EACA;;AACA;EACE;EACA;;AAMR;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;;AACA;EACE;;AAUN;EACE;;;ACjHJ;AAAA;AAAA;AAKE;EACD;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;;AChBH;EACE;;;AAEF;EACE;;;AAGF;EACE;;;ACNE;EACE;EACA;EACA;;AAGJ;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;;ACvBN;AACA;AACA;AAAA;EAEE;EACA;;;AAGF;AACA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;EACA;EACA,oBACQ;EAGR,iBACQ;EAGR,YACQ;EAGR;EACA;EACA;EACA;;;AAGF;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQE;EACA;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAEA;AACA;EACE;;;AAEF;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;EACA;;;AAGF;AAAA;AAAA;EAGE;EACA;EACA;EACA;;;AAGF;AACA;AAAA;AAAA;EAGE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;AACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;EACA;;;AAGF;AACA;AAAA;EAEE;;;AAGF;AACA;AAAA;EAEE;EACA;;;AChNF;AACE;AAiDA;;AA5CA;EACD;EACA;EACA;EACA;EAEA,kBACE;EAMF;EAEA,iBACE;EAMF,qBACE;EAMF;EACA;EACA;;AAEC;EACD;IACE,qBACE;;;AASH;EACD;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAID;EACD;;AAKC;EACD;IAAgB;;EAChB;IAAM;;;AAGL;EACD;IACE;IACA;;EACC;IACD;IACA;;;;AC7GH;EAEE;EACA;EACA","file":"admin.css"}PK!ẅ́assets/css/admin.scssnu[/** * * Prefix everything * Name descriptively * Structure radically * * CSS Structure * css/ * ├─ admin/ * │ ├─ base.scss * │ ├─ layout.scss * │ ├─ modules/ * │ │ ├─ modal.scss * │ │ ├─ button.scss * │ │ ├─ modal.scss * │ │ ├─ notices.scss * │ │ ├─ tips-and-tricks.scss * │ │ ├─ etc..... * │ ├─ states.scss * │ ├─ theme.scss * ├─ admin.scss * ├─ admin.min.css * ├─ admin.css * ├─ variables.scss * */ @import 'variables.scss'; @import 'admin/base.scss'; @import 'admin/layout.scss'; //@import 'admin/modules/modal.scss'; @import 'admin/modules/header.scss'; @import 'admin/modules/dashboard.scss'; @import 'admin/modules/buttons.scss'; @import 'admin/modules/bullets.scss'; @import 'admin/modules/icons.scss'; @import 'admin/modules/badges.scss'; @import 'admin/modules/toast/main.scss'; @import 'admin/modules/onboarding.scss'; @import 'admin/modules/progress.scss'; @import 'admin/modules/ssltest.scss'; @import "admin/modules/placeholder.scss"; @import 'admin/modules/other-plugins.scss'; @import 'admin/modules/tips-tricks.scss'; @import 'admin/modules/wizard.scss'; @import 'admin/modules/wizard/notice.scss'; @import 'admin/modules/wizard/menu.scss'; @import 'admin/modules/wizard/fields.scss'; @import 'admin/modules/wizard/snackbar.scss'; @import 'admin/modules/wizard/mixed-content-scan.scss'; @import 'admin/modules/wizard/learning-mode.scss'; @import 'admin/modules/wizard/letsencrypt.scss'; @import 'admin/modules/wizard/permissions-policy.scss'; @import 'admin/modules/wizard/vulnerabilities.scss'; @import 'admin/modules/notices.scss'; @import 'admin/modules/datatables.scss'; @import 'admin/modules/new-features.scss'; @import 'admin/modules/two-fa.scss'; @import 'admin/modules/introcontainer.scss'; @import "admin/modules/premium_overlay.scss"; //@import 'admin/modules/dark-mode.scss'; //@import 'admin/modules/icons.scss'; @import 'admin/modules/animations.scss'; @import 'admin/modules/tooltip.scss'; //@import 'admin/modules/icons.scss'; //@import 'admin/modules/suggested-plugins.scss'; @import 'admin/states.scss'; @import 'admin/theme.scss'; PK!8_assets/css/variables.scssnu[// Break points $rsp-break-xxs: 576px; $rsp-break-xs: 768px; $rsp-break-s: 1080px; $rsp-break-m: 1280px; $rsp-break-l: 1366px; $rsp-break-xl: 1440px; // common 13 inch macbook pro width is 1425px $rsp-break-xxl: 1599px; :root { // Margins, Paddings and Border Radius --rsp-spacing-xxs: 5px; --rsp-spacing-xs: 10px; --rsp-spacing-s: 15px; --rsp-spacing-m: 20px; --rsp-spacing-l: 25px; --rsp-spacing-xl: 30px; // Grid settings --rsp-grid-margin: var(--rsp-spacing-s); --rsp-grid-gap: var(--rsp-spacing-m); // Borders and stuff --rsp-border-radius: 12px; --rsp-border-radius-s: 8px; --rsp-border-radius-xs: 3px; --rsp-border: 1px solid var(--rsp-border-color); --rsp-box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px; --rsp-box-shadow-dark: rgba(0, 0, 0, 0.2) 0px 4px 6px -1px, rgba(0, 0, 0, 0.12) 1px 0px 4px 1px; --rsp-border-color: #dfdfdf; // RSP Brand Colors --rsp-black: #333; --rsp-white: #fff; --rsp-yellow: #fbc43e; --rsp-blue: #009fff; --rsp-dark-yellow: #e6a800; --rsp-dark-blue: #1E73BE; --rsp-green: #2e8a37; --rsp-red: #D7263D; --rsp-dark-red: #9b0212; --rsp-pink: #E35899; --rsp-wp-blue: #007cba; --rsp-yellow-faded: #fdf4df; --rsp-blue-faded: #ecf8fe; --rsp-dark-blue-faded: #ebf2f9; --rsp-green-faded: #ecf4ed; --rsp-red-faded: #fbebed; --rsp-pink-faded: #fceff5; --rsp-wp-blue-faded: #c6e0ef; --rsp-background-block-color: var(--rsp-white); --rsp-background-color: #f0f0f1; //#f0f0f1 is the default wordpress bg color //Input colors --rsp-input-background-color: #fff; --rsp-input-text-color: var(--rsp-text-color); --rsp-input-border-color: var(--rsp-grey-400); --rsp-text-color: rgba(26, 26, 26, 0.9); --rsp-text-color-invert: rgba(255, 255, 255, 0.9); --rsp-text-color-white: rgba(255, 255, 255, 0.9); --rsp-text-color-light: rgba(69, 69, 82, 0.9); --rsp-text-color-hover: var(--rsp-green); --rsp-grey-100: #fafafa; --rsp-grey-200: #f7f7f7; --rsp-grey-300: #ededed; --rsp-grey-400: #c6c6c6; --rsp-grey-500: #737373; --rsp-grey-600: #696969; // Notification colors --rsp-color-success: var(--rsp-green); --rsp-color-error: var(--rsp-red); --rsp-color-warning: var(--rsp-yellow); --rsp-color-open: var(--rsp-yellow); --rsp-color-disabled: var(--rsp-grey-300); // Font sizes // If browser font-size is 16px: --rsp-fs-100: 0.6875rem; // 11px --rsp-fs-200: 0.75rem; // 12px --rsp-fs-300: 0.8125rem; // 13px --rsp-fs-400: 0.875rem; // 14px --rsp-fs-500: 1rem; // 16px --rsp-fs-600: 1.125rem; // 18px --rsp-fs-700: 1.25rem; // 20px --rsp-fs-800: 1.5rem; // 24px --rsp-fs-850: 2.8rem; // 45px --rsp-fs-900: 3.5rem; // 56px } @mixin rsssl-block { background: var(--rsp-background-block-color); box-shadow: var(--rsp-box-shadow); border-radius: var(--rsp-border-radius); } @mixin rsssl-block-padding { padding: var(--rsp-spacing-m) var(--rsp-spacing-l); @media screen and (max-width: $rsp-break-m) { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } @media screen and (max-width: $rsp-break-s) { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } //@media screen and (max-width: $rsp-break-xs) { // padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); //} } @mixin rsssl-block-block-padding { padding-block: var(--rsp-spacing-m); @media screen and (max-width: $rsp-break-m) { padding-block: var(--rsp-spacing-xs); } @media screen and (max-width: $rsp-break-s) { padding-block: var(--rsp-spacing-xxs); } } @mixin rsssl-inline-block-padding { padding-inline: var(--rsp-spacing-l); @media screen and (max-width: $rsp-break-m) { padding-inline: var(--rsp-spacing-m); } @media screen and (max-width: $rsp-break-s) { padding-inline: var(--rsp-spacing-s); } } @mixin rsssl-fade-in { animation-name: fade-in; animation-duration: 0.4s; animation-timing-function: ease-in; } @keyframes fade-in{ 0% { opacity: 0 } 100% { opacity: 1; } } PK! assets/css/rsssl-plugin.min.cssnu[:root{--rsp-spacing-xxs:5px;--rsp-spacing-xs:10px;--rsp-spacing-s:15px;--rsp-spacing-m:20px;--rsp-spacing-l:25px;--rsp-spacing-xl:30px;--rsp-grid-margin:var(--rsp-spacing-s);--rsp-grid-gap:var(--rsp-spacing-m);--rsp-border-radius:12px;--rsp-border-radius-s:8px;--rsp-border-radius-xs:3px;--rsp-border:1px solid var(--rsp-border-color);--rsp-box-shadow:rgba(0,0,0,0.1) 0 4px 6px -1px,rgba(0,0,0,0.06) 0 2px 4px -1px;--rsp-box-shadow-dark:rgba(0,0,0,0.2) 0 4px 6px -1px,rgba(0,0,0,0.12) 1px 0 4px 1px;--rsp-border-color:#dfdfdf;--rsp-black:#333;--rsp-white:#fff;--rsp-yellow:#fbc43e;--rsp-blue:#009fff;--rsp-dark-yellow:#e6a800;--rsp-dark-blue:#1e73be;--rsp-green:#2e8a37;--rsp-red:#d7263d;--rsp-dark-red:#9b0212;--rsp-pink:#e35899;--rsp-wp-blue:#007cba;--rsp-yellow-faded:#fdf4df;--rsp-blue-faded:#ecf8fe;--rsp-dark-blue-faded:#ebf2f9;--rsp-green-faded:#ecf4ed;--rsp-red-faded:#fbebed;--rsp-pink-faded:#fceff5;--rsp-wp-blue-faded:#c6e0ef;--rsp-background-block-color:var(--rsp-white);--rsp-background-color:#f0f0f1;--rsp-input-background-color:#fff;--rsp-input-text-color:var(--rsp-text-color);--rsp-input-border-color:var(--rsp-grey-400);--rsp-text-color:rgba(26,26,26,0.9);--rsp-text-color-invert:rgba(255,255,255,0.9);--rsp-text-color-white:rgba(255,255,255,0.9);--rsp-text-color-light:rgba(69,69,82,0.9);--rsp-text-color-hover:var(--rsp-green);--rsp-grey-100:#fafafa;--rsp-grey-200:#f7f7f7;--rsp-grey-300:#ededed;--rsp-grey-400:#c6c6c6;--rsp-grey-500:#737373;--rsp-grey-600:#696969;--rsp-color-success:var(--rsp-green);--rsp-color-error:var(--rsp-red);--rsp-color-warning:var(--rsp-yellow);--rsp-color-open:var(--rsp-yellow);--rsp-color-disabled:var(--rsp-grey-300);--rsp-fs-100:.6875rem;--rsp-fs-200:.75rem;--rsp-fs-300:.8125rem;--rsp-fs-400:.875rem;--rsp-fs-500:1rem;--rsp-fs-600:1.125rem;--rsp-fs-700:1.25rem;--rsp-fs-800:1.5rem;--rsp-fs-850:2.8rem;--rsp-fs-900:3.5rem}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}.rsssl-btn-vulnerable{display:inline-block;text-decoration:none;font-size:var(--rsp-fs-100);line-height:2.15384615;min-height:30px;margin:0;padding:4px 8px;min-width:100px;text-align:center;cursor:pointer;font-weight:600;-webkit-appearance:none;border-radius:var(--rsp-border-radius-xs);white-space:nowrap;box-sizing:border-box;background-color:var(--rsp-yellow);color:var(--rsp-black);border-color:var(--rsp-yellow)}.rsssl-btn-vulnerable:hover{text-decoration:underline}.rsssl-btn-vulnerable.rsssl-critical{background-color:var(--rsp-red);color:var(--rsp-white);border-color:var(--rsp-red)}.rsssl-btn-vulnerable.rsssl-high{background-color:var(--rsp-red);color:var(--rsp-white);border-color:var(--rsp-red)}.rsssl-btn-vulnerable.rsssl-medium{border-color:var(--rsp-yellow);color:var(--rsp-black);background-color:var(--rsp-yellow)}PK! #assets/css/rtl/rsssl-plugin.min.cssnu[:root{--rsp-spacing-xxs:5px;--rsp-spacing-xs:10px;--rsp-spacing-s:15px;--rsp-spacing-m:20px;--rsp-spacing-l:25px;--rsp-spacing-xl:30px;--rsp-grid-margin:var(--rsp-spacing-s);--rsp-grid-gap:var(--rsp-spacing-m);--rsp-border-radius:12px;--rsp-border-radius-s:8px;--rsp-border-radius-xs:3px;--rsp-border:1px solid var(--rsp-border-color);--rsp-box-shadow:rgba(0,0,0,0.1) 0 4px 6px -1px,rgba(0,0,0,0.06) 0 2px 4px -1px;--rsp-box-shadow-dark:rgba(0,0,0,0.2) 0 4px 6px -1px,rgba(0,0,0,0.12) 1px 0 4px 1px;--rsp-border-color:#dfdfdf;--rsp-black:#333;--rsp-white:#fff;--rsp-yellow:#fbc43e;--rsp-blue:#009fff;--rsp-dark-yellow:#e6a800;--rsp-dark-blue:#1e73be;--rsp-green:#2e8a37;--rsp-red:#d7263d;--rsp-dark-red:#9b0212;--rsp-pink:#e35899;--rsp-wp-blue:#007cba;--rsp-yellow-faded:#fdf4df;--rsp-blue-faded:#ecf8fe;--rsp-dark-blue-faded:#ebf2f9;--rsp-green-faded:#ecf4ed;--rsp-red-faded:#fbebed;--rsp-pink-faded:#fceff5;--rsp-wp-blue-faded:#c6e0ef;--rsp-background-block-color:var(--rsp-white);--rsp-background-color:#f0f0f1;--rsp-input-background-color:#fff;--rsp-input-text-color:var(--rsp-text-color);--rsp-input-border-color:var(--rsp-grey-400);--rsp-text-color:rgba(26,26,26,0.9);--rsp-text-color-invert:rgba(255,255,255,0.9);--rsp-text-color-white:rgba(255,255,255,0.9);--rsp-text-color-light:rgba(69,69,82,0.9);--rsp-text-color-hover:var(--rsp-green);--rsp-grey-100:#fafafa;--rsp-grey-200:#f7f7f7;--rsp-grey-300:#ededed;--rsp-grey-400:#c6c6c6;--rsp-grey-500:#737373;--rsp-grey-600:#696969;--rsp-color-success:var(--rsp-green);--rsp-color-error:var(--rsp-red);--rsp-color-warning:var(--rsp-yellow);--rsp-color-open:var(--rsp-yellow);--rsp-color-disabled:var(--rsp-grey-300);--rsp-fs-100:.6875rem;--rsp-fs-200:.75rem;--rsp-fs-300:.8125rem;--rsp-fs-400:.875rem;--rsp-fs-500:1rem;--rsp-fs-600:1.125rem;--rsp-fs-700:1.25rem;--rsp-fs-800:1.5rem;--rsp-fs-850:2.8rem;--rsp-fs-900:3.5rem}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}.rsssl-btn-vulnerable{display:inline-block;text-decoration:none;font-size:var(--rsp-fs-100);line-height:2.15384615;min-height:30px;margin:0;padding:4px 8px;min-width:100px;text-align:center;cursor:pointer;font-weight:600;-webkit-appearance:none;border-radius:var(--rsp-border-radius-xs);white-space:nowrap;box-sizing:border-box;background-color:var(--rsp-yellow);color:var(--rsp-black);border-color:var(--rsp-yellow)}.rsssl-btn-vulnerable:hover{text-decoration:underline}.rsssl-btn-vulnerable.rsssl-critical{background-color:var(--rsp-red);color:var(--rsp-white);border-color:var(--rsp-red)}.rsssl-btn-vulnerable.rsssl-high{background-color:var(--rsp-red);color:var(--rsp-white);border-color:var(--rsp-red)}.rsssl-btn-vulnerable.rsssl-medium{border-color:var(--rsp-yellow);color:var(--rsp-black);background-color:var(--rsp-yellow)}PK! assets/css/rtl/plugin.min.cssnu[:root{--rsp-spacing-xxs:5px;--rsp-spacing-xs:10px;--rsp-spacing-s:15px;--rsp-spacing-m:20px;--rsp-spacing-l:25px;--rsp-spacing-xl:30px;--rsp-grid-margin:var(--rsp-spacing-s);--rsp-grid-gap:var(--rsp-spacing-m);--rsp-border-radius:12px;--rsp-border-radius-s:8px;--rsp-border-radius-xs:3px;--rsp-border:1px solid var(--rsp-border-color);--rsp-box-shadow:rgba(0,0,0,0.1) 0 4px 6px -1px,rgba(0,0,0,0.06) 0 2px 4px -1px;--rsp-box-shadow-dark:rgba(0,0,0,0.2) 0 4px 6px -1px,rgba(0,0,0,0.12) 1px 0 4px 1px;--rsp-border-color:#dfdfdf;--rsp-black:#333;--rsp-white:#fff;--rsp-yellow:#fbc43e;--rsp-blue:#009fff;--rsp-dark-yellow:#e6a800;--rsp-dark-blue:#1e73be;--rsp-green:#2e8a37;--rsp-red:#d7263d;--rsp-dark-red:#9b0212;--rsp-pink:#e35899;--rsp-wp-blue:#007cba;--rsp-yellow-faded:#fdf4df;--rsp-blue-faded:#ecf8fe;--rsp-dark-blue-faded:#ebf2f9;--rsp-green-faded:#ecf4ed;--rsp-red-faded:#fbebed;--rsp-pink-faded:#fceff5;--rsp-wp-blue-faded:#c6e0ef;--rsp-background-block-color:var(--rsp-white);--rsp-background-color:#f0f0f1;--rsp-input-background-color:#fff;--rsp-input-text-color:var(--rsp-text-color);--rsp-input-border-color:var(--rsp-grey-400);--rsp-text-color:rgba(26,26,26,0.9);--rsp-text-color-invert:rgba(255,255,255,0.9);--rsp-text-color-white:rgba(255,255,255,0.9);--rsp-text-color-light:rgba(69,69,82,0.9);--rsp-text-color-hover:var(--rsp-green);--rsp-grey-100:#fafafa;--rsp-grey-200:#f7f7f7;--rsp-grey-300:#ededed;--rsp-grey-400:#c6c6c6;--rsp-grey-500:#737373;--rsp-grey-600:#696969;--rsp-color-success:var(--rsp-green);--rsp-color-error:var(--rsp-red);--rsp-color-warning:var(--rsp-yellow);--rsp-color-open:var(--rsp-yellow);--rsp-color-disabled:var(--rsp-grey-300);--rsp-fs-100:.6875rem;--rsp-fs-200:.75rem;--rsp-fs-300:.8125rem;--rsp-fs-400:.875rem;--rsp-fs-500:1rem;--rsp-fs-600:1.125rem;--rsp-fs-700:1.25rem;--rsp-fs-800:1.5rem;--rsp-fs-850:2.8rem;--rsp-fs-900:3.5rem}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}.rsssl-btn-vulnerable{display:inline-block;text-decoration:none;font-size:var(--rsp-fs-100);line-height:2.15384615;min-height:30px;margin:0;padding:4px 8px;min-width:100px;text-align:center;cursor:pointer;font-weight:600;-webkit-appearance:none;border-radius:var(--rsp-border-radius-xs);white-space:nowrap;box-sizing:border-box;background-color:var(--rsp-yellow);color:var(--rsp-black);border-color:var(--rsp-yellow)}.rsssl-btn-vulnerable:hover{text-decoration:underline}.rsssl-btn-vulnerable.rsssl-critical{background-color:var(--rsp-red);color:var(--rsp-white);border-color:var(--rsp-red)}.rsssl-btn-vulnerable.rsssl-high{background-color:var(--rsp-red);color:var(--rsp-white);border-color:var(--rsp-red)}.rsssl-btn-vulnerable.rsssl-medium{border-color:var(--rsp-yellow);color:var(--rsp-black);background-color:var(--rsp-yellow)}PK!/?%ssassets/css/rtl/admin.min.cssnu[@charset "UTF-8";:root{--rsp-spacing-xxs:5px;--rsp-spacing-xs:10px;--rsp-spacing-s:15px;--rsp-spacing-m:20px;--rsp-spacing-l:25px;--rsp-spacing-xl:30px;--rsp-grid-margin:var(--rsp-spacing-s);--rsp-grid-gap:var(--rsp-spacing-m);--rsp-border-radius:12px;--rsp-border-radius-s:8px;--rsp-border-radius-xs:3px;--rsp-border:1px solid var(--rsp-border-color);--rsp-box-shadow:rgba(0,0,0,0.1) 0 4px 6px -1px,rgba(0,0,0,0.06) 0 2px 4px -1px;--rsp-box-shadow-dark:rgba(0,0,0,0.2) 0 4px 6px -1px,rgba(0,0,0,0.12) 1px 0 4px 1px;--rsp-border-color:#dfdfdf;--rsp-black:#333;--rsp-white:#fff;--rsp-yellow:#fbc43e;--rsp-blue:#009fff;--rsp-dark-yellow:#e6a800;--rsp-dark-blue:#1e73be;--rsp-green:#2e8a37;--rsp-red:#d7263d;--rsp-dark-red:#9b0212;--rsp-pink:#e35899;--rsp-wp-blue:#007cba;--rsp-yellow-faded:#fdf4df;--rsp-blue-faded:#ecf8fe;--rsp-dark-blue-faded:#ebf2f9;--rsp-green-faded:#ecf4ed;--rsp-red-faded:#fbebed;--rsp-pink-faded:#fceff5;--rsp-wp-blue-faded:#c6e0ef;--rsp-background-block-color:var(--rsp-white);--rsp-background-color:#f0f0f1;--rsp-input-background-color:#fff;--rsp-input-text-color:var(--rsp-text-color);--rsp-input-border-color:var(--rsp-grey-400);--rsp-text-color:rgba(26,26,26,0.9);--rsp-text-color-invert:rgba(255,255,255,0.9);--rsp-text-color-white:rgba(255,255,255,0.9);--rsp-text-color-light:rgba(69,69,82,0.9);--rsp-text-color-hover:var(--rsp-green);--rsp-grey-100:#fafafa;--rsp-grey-200:#f7f7f7;--rsp-grey-300:#ededed;--rsp-grey-400:#c6c6c6;--rsp-grey-500:#737373;--rsp-grey-600:#696969;--rsp-color-success:var(--rsp-green);--rsp-color-error:var(--rsp-red);--rsp-color-warning:var(--rsp-yellow);--rsp-color-open:var(--rsp-yellow);--rsp-color-disabled:var(--rsp-grey-300);--rsp-fs-100:.6875rem;--rsp-fs-200:.75rem;--rsp-fs-300:.8125rem;--rsp-fs-400:.875rem;--rsp-fs-500:1rem;--rsp-fs-600:1.125rem;--rsp-fs-700:1.25rem;--rsp-fs-800:1.5rem;--rsp-fs-850:2.8rem;--rsp-fs-900:3.5rem}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}.rsssl{font-variant-numeric:tabular-nums;margin:0;margin-right:-20px;font-size:var(--rsp-fs-300);box-sizing:border-box;color:var(--rsp-text-color);font-weight:400;line-height:1.5}@media only screen and (max-width:768px){.rsssl{margin-right:-9px}}.rsssl *,.rsssl *:before,.rsssl *:after{box-sizing:inherit}.rsssl body,.rsssl h1,.rsssl h2,.rsssl h3,.rsssl h4,.rsssl h5,.rsssl h6,.rsssl p,.rsssl ol,.rsssl ul{margin:0;padding:0}.rsssl img{max-width:100%;height:auto}.rsssl h1,.rsssl h2,.rsssl h3,.rsssl h4,.rsssl h5,.rsssl h6{color:var(--rsp-text-color);line-height:1.5}.rsssl .rsssl-h0{font-size:var(--rsp-fs-900);font-weight:700;letter-spacing:.025rem}.rsssl h1,.rsssl .rsssl-h1{font-size:var(--rsp-fs-800);line-height:1.5;font-weight:500;letter-spacing:.025rem}.rsssl h2,.rsssl .rsssl-h2{font-size:var(--rsp-fs-700);font-weight:700;letter-spacing:.025rem}.rsssl h3,.rsssl .rsssl-h3{font-size:var(--rsp-fs-600);font-weight:600;letter-spacing:.0125rem}.rsssl h4,.rsssl .rsssl-h4{font-size:var(--rsp-fs-500);font-weight:600;letter-spacing:.0125rem}.rsssl h5,.rsssl .rsssl-h5{font-size:var(--rsp-fs-400);font-weight:400;letter-spacing:.1px}.rsssl h6,.rsssl .rsssl-h6{font-size:var(--rsp-fs-300);letter-spacing:.1px}.rsssl p{color:var(--rsp-text-color);font-weight:400;font-size:var(--rsp-fs-300);line-height:1.5}.rsssl .rsssl-small-text{font-size:var(--rsp-fs-200);line-height:1.5;color:var(--rsp-text-color-light)}.rsssl a{font-size:1em}.rsssl .rsssl-notice-hook-element{display:none !important}.rsssl .rsssl-divider{width:1px;height:1.3rem;background-color:#ccc}.error:not(.really-simple-plugins),.notice:not(.really-simple-plugins),.update-nag:not(.really-simple-plugins),.notice-info:not(.really-simple-plugins){display:none !important}.error.really-simple-plugins,.notice.really-simple-plugins,.update-nag.really-simple-plugins,.notice-info.really-simple-plugins{margin:var(--rsp-grid-gap)}.rsssl .rsssl-header,.rsssl .rsssl-content-area{max-width:clamp(300px,100% - var(--rsp-grid-gap) * 2,1600px);margin:0 auto}@media(max-width:1599px){.rsssl .rsssl-header,.rsssl .rsssl-content-area{--rsp-grid-gap:var(--rsp-spacing-m)}}@media(max-width:1440px){.rsssl .rsssl-header,.rsssl .rsssl-content-area{--rsp-grid-gap:var(--rsp-spacing-s)}}@media(max-width:1366px){.rsssl .rsssl-header,.rsssl .rsssl-content-area{--rsp-grid-gap:var(--rsp-spacing-xs)}}.rsssl .rsssl-header-container .rsssl-header{display:flex;flex-wrap:wrap;justify-content:space-between;height:70px;box-sizing:border-box;background-color:var(--rsp-background-block-color)}@media(max-width:1080px){.rsssl .rsssl-header-container .rsssl-header{height:100%}}@media(max-width:576px){.rsssl .rsssl-logo{display:none}}.rsssl .rsssl-header-left{display:flex;font-size:var(--rsp-fs-400)}@media(max-width:1080px){.rsssl .rsssl-header-left{justify-content:center;margin:var(--rsp-spacing-xs) 0;order:3;width:100%;background-color:var(--rsp-background-block-color)}}.rsssl .rsssl-header-left .rsssl-header-menu{margin:auto 15px}.rsssl .rsssl-header-left .rsssl-header-menu ul{display:flex}.rsssl .rsssl-header-left .rsssl-header-menu li{margin-bottom:0}.rsssl .rsssl-header-left .rsssl-header-menu a{padding:23px 15px;text-decoration:none;color:var(--rsp-text-color);height:100%;border-bottom:4px solid transparent;transition:border .3s ease-out;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}@media(max-width:1080px){.rsssl .rsssl-header-left .rsssl-header-menu a{padding:10px 15px}}.rsssl .rsssl-header-left .rsssl-header-menu a.active{border-bottom:4px solid var(--rsp-brand-primary)}.rsssl .rsssl-header-left .rsssl-header-menu a:hover{color:var(--rsp-brand-primary)}.rsssl .rsssl-header-right{display:flex;flex-wrap:wrap;align-items:center;margin-right:auto;gap:var(--rsp-spacing-s);min-height:52px}.rsssl .rsssl-header-right select{max-width:60ch}@media(max-width:576px){.rsssl .rsssl-header-right{display:none}}@media(max-width:768px){.rsssl .rsssl-header-right .button{display:none}}.rsssl .rsssl-content-area{margin-top:var(--rsp-grid-gap)}.rsssl .rsssl-header-container{background:var(--rsp-background-block-color)}.rsssl .rsssl-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:max-content;gap:var(--rsp-grid-gap);min-height:calc(100vh - 32px - 80px - 20px - var(--rsp-grid-gap))}.rsssl .rsssl-grid.rsssl-settings,.rsssl .rsssl-grid.rsssl-letsencrypt{grid-template-columns:minmax(235px,max-content) 2fr minmax(min-content,1fr)}@media only screen and (max-width:1080px){.rsssl .rsssl-grid.rsssl-settings,.rsssl .rsssl-grid.rsssl-letsencrypt{grid-template-columns:repeat(4,1fr)}.rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-menu,.rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-settings,.rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-help,.rsssl .rsssl-grid.rsssl-letsencrypt .rsssl-wizard-menu,.rsssl .rsssl-grid.rsssl-letsencrypt .rsssl-wizard-settings,.rsssl .rsssl-grid.rsssl-letsencrypt .rsssl-wizard-help{grid-column:1/-1}}@media only screen and (max-width:1280px){.rsssl .rsssl-grid{grid-template-columns:repeat(2,1fr)}}@media only screen and (max-width:1080px){.rsssl .rsssl-grid{max-width:790px;width:calc(100% - var(--rsp-grid-gap) * 2)}}.rsssl .rsssl-grid-item{background:var(--rsp-background-block-color);box-shadow:var(--rsp-box-shadow);border-radius:var(--rsp-border-radius);display:flex;flex-wrap:wrap;justify-content:flex-start;flex-direction:column;flex-basis:100%;grid-column:span 1;grid-row:span 1}.rsssl .rsssl-grid-item.rsssl-disabled{min-height:320px}.rsssl .rsssl-grid-item.rsssl-two_fa_users .rsssl-grid-item-content .rsssl-field-wrap{margin-top:-50px}@media(max-width:1080px){.rsssl .rsssl-grid-item{grid-column:span 4}}.rsssl .rsssl-grid-item.no-background{background:100%;border:0;box-shadow:none}.rsssl .rsssl-grid-item.rsssl-column-2{grid-column:span 2}@media(max-width:1080px){.rsssl .rsssl-grid-item.rsssl-column-2{grid-column:span 4}}.rsssl .rsssl-grid-item.rsssl-row-2{grid-row:span 2;min-height:400px}.rsssl .rsssl-grid-item-header{width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;min-height:calc(30px + var(--rsp-spacing-s) * 2);padding:var(--rsp-spacing-m) var(--rsp-spacing-l)}@media screen and (max-width:1280px){.rsssl .rsssl-grid-item-header{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl .rsssl-grid-item-header{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl .rsssl-grid-item-header:empty{display:none}.rsssl .rsssl-grid-item-title{margin:4px 0 4px 0}.rsssl .rsssl-grid-item-controls{font-size:var(--rsp-fs-200);display:flex;gap:var(--rsp-spacing-s)}.rsssl .rsssl-grid-item-content{width:100%;box-sizing:border-box;padding-inline:var(--rsp-spacing-l);flex-grow:100}@media screen and (max-width:1280px){.rsssl .rsssl-grid-item-content{padding-inline:var(--rsp-spacing-m)}}@media screen and (max-width:1080px){.rsssl .rsssl-grid-item-content{padding-inline:var(--rsp-spacing-s)}}.rsssl .rsssl-grid-item-content:empty{display:none}.rsssl .rsssl-grid-item-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--rsp-grid-margin);width:100%;min-height:calc(30px + var(--rsp-spacing-s) * 2);box-sizing:border-box;padding:var(--rsp-spacing-m) var(--rsp-spacing-l);align-self:flex-end}@media screen and (max-width:1280px){.rsssl .rsssl-grid-item-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl .rsssl-grid-item-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl .rsssl-grid-item-footer .rsssl-legend{display:flex}.rsssl .rsssl-grid-item-footer .rsssl-legend span{padding-right:5px}.rsssl .rsssl-grid-item-footer:empty{display:none}.rsssl .rsssl-grid-item .rsssl-flex-push-right{margin-right:auto}.rsssl .rsssl-grid-item .rsssl-flex-push-left{margin-left:auto}.rsssl-header-container .rsssl-header{display:flex;justify-content:space-between;height:70px;box-sizing:border-box}.rsssl-header-container .rsssl-header img{margin:auto 0;height:26px}.rsssl-header-container .rsssl-header .rsssl-header-menu{display:flex;align-items:center;height:100%;padding:0 20px;box-sizing:border-box}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item{display:flex;align-items:center;height:100%;padding:0 20px;box-sizing:border-box}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item:first-child{margin-right:0}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item:last-child{margin-left:0}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item.rsssl-header-menu-item-active{background-color:#f5f5f5}.rsssl-header-container .rsssl-header .rsssl-header-actions{display:flex;align-items:center;margin-right:auto;gap:var(--rsp-spacing-s)}.rsssl-header-container .rsssl-header .rsssl-header-actions select{max-width:60ch}.rsssl-grid .border-to-border .rsssl-grid-item-content{padding:0}.rsssl-grid .border-to-border .rsssl-grid-item-content>*{padding-inline:var(--rsp-spacing-l);width:100%;display:flex;flex-wrap:wrap;align-items:center}.rsssl-grid .border-to-border.rsssl-ssllabs .rsssl-grid-item-content>*,.rsssl-grid .border-to-border.rsssl-wpvul .rsssl-grid-item-content>*{padding-right:0;padding-left:0}.rsssl .rsssl-wpvul .rsssl-icon{margin-top:5px}.rsssl .rsssl-ssl-labs-select,.rsssl .rsssl-hardening-select{background:var(--rsp-grey-200);padding-inline:var(--rsp-spacing-l);padding-block:var(--rsp-spacing-m);display:grid;width:100%;grid-template-columns:calc(50% - var(--rsp-spacing-s) / 2) calc(50% - var(--rsp-spacing-s) / 2);gap:var(--rsp-spacing-s);transition:background-color .3s ease-in-out}.rsssl .rsssl-ssl-labs-select.rsssl-error,.rsssl .rsssl-hardening-select.rsssl-error{background:var(--rsp-red-faded)}.rsssl .rsssl-ssl-labs-select.rsssl-warning,.rsssl .rsssl-hardening-select.rsssl-warning{background:var(--rsp-yellow-faded)}.rsssl .rsssl-ssl-labs-select.rsssl-success,.rsssl .rsssl-hardening-select.rsssl-success{background:var(--rsp-green-faded)}.rsssl .rsssl-ssl-labs-select-item,.rsssl .rsssl-hardening-select-item{border-radius:var(--rsp-border-radius-xs);display:flex;flex-direction:column;justify-content:center;text-align:center;padding-block:var(--rsp-spacing-s);justify-items:center;flex-wrap:wrap;background:var(--rsp-white);min-height:118px}.rsssl .rsssl-ssl-labs-select-item.active,.rsssl .rsssl-hardening-select-item.active{box-shadow:inset 0 0 3px 2px var(--rsp-green-faded);border:2px solid var(--rsp-green)}.rsssl .rsssl-ssl-labs-select-item h2,.rsssl .rsssl-hardening-select-item h2{margin-top:var(--rsp-spacing-xxs);font-weight:800}.rsssl .rsssl-ssl-labs-select-item h2.big-number,.rsssl .rsssl-hardening-select-item h2.big-number{font-size:var(--rsp-fs-850)}.rsssl .rsssl-ssl-labs-select-item span,.rsssl .rsssl-hardening-select-item span{display:flex;gap:3px;justify-content:center;font-size:var(--rsp-fs-100)}.rsssl .rsssl-ssl-labs-list,.rsssl .rsssl-hardening-list{width:100%}.rsssl .rsssl-ssl-labs-list-item,.rsssl .rsssl-hardening-list-item{width:100%;display:grid;justify-items:flex-start;grid-template-columns:auto 1fr auto;gap:var(--rsp-spacing-s);padding-block:var(--rsp-spacing-xs);padding-inline:var(--rsp-spacing-l)}.rsssl .rsssl-ssl-labs-list-item:nth-of-type(even),.rsssl .rsssl-hardening-list-item:nth-of-type(even){background:var(--rsp-grey-200)}.rsssl .rsssl-ssl-labs-list-item-text,.rsssl .rsssl-hardening-list-item-text{width:100%;margin-left:auto}.rsssl .rsssl-ssl-labs-list-item-number,.rsssl .rsssl-hardening-list-item-number{font-weight:600}.rsssl .rsssl-ssl-labs-list-item .rsssl-icon,.rsssl .rsssl-hardening-list-item .rsssl-icon{align-items:start;margin-top:2px}.rsssl .rsssl-ssl-labs-select-item{padding-inline:var(--rsp-spacing-s);gap:var(--rsp-spacing-xxs)}.rsssl .rsssl-ssl-labs .rsssl-score-snippet{max-width:100%;overflow:hidden;text-overflow:ellipsis;height:18px;line-height:18px;padding-inline:var(--rsp-spacing-xxs);font-size:var(--rsp-fs-100);border-radius:var(--rsp-border-radius-xs);color:var(--rsp-text-color);text-align:right}.rsssl .rsssl-ssl-labs .rsssl-score-snippet.rsssl-hover{height:initial;line-height:initial}.rsssl .rsssl-ssl-labs .rsssl-score-snippet.rsssl-test-inactive{background-color:var(--rsp-grey-200);color:var(--rsp-color-disabled)}.rsssl .rsssl-ssl-labs .rsssl-score-snippet.rsssl-test-processing{background-color:var(--rsp-yellow);color:var(--rsp-black)}.rsssl .rsssl-ssl-labs .rsssl-score-snippet.rsssl-test-success{background-color:var(--rsp-color-success);color:var(--rsp-text-color-white)}.rsssl .rsssl-ssl-labs .rsssl-score-snippet.rsssl-test-error{background-color:var(--rsp-brand-primary);color:var(--rsp-black)}.rsssl .rsssl-hardening-select-item .rsssl-badge{margin-top:var(--rsp-spacing-xxs)}.rsssl-gridblock-progress-container.rsssl-error .rsssl-gridblock-progress{background:var(--rsp-color-warning)}.rsssl-gridblock-progress-container.rsssl-inactive{height:4px;width:100%;display:flex;background:var(--rsp-grey-300)}.rsssl-gridblock-progress-container.rsssl-inactive .rsssl-gridblock-progress{transition:width 1s ease-in-out;background:var(--rsp-green)}.rsssl .rsssl-field-button button.button{display:flex}.rsssl a.button,.rsssl button.button,.rsssl input.button,.rsssl span.button{font-size:var(--rsp-fs-300);font-weight:400;transition:all .3s ease;min-height:10px}.rsssl a.button.button-secondary,.rsssl a.button.button-default,.rsssl button.button.button-secondary,.rsssl button.button.button-default,.rsssl input.button.button-secondary,.rsssl input.button.button-default,.rsssl span.button.button-secondary,.rsssl span.button.button-default{background:transparent}.rsssl a.button .rsssl-icon,.rsssl button.button .rsssl-icon,.rsssl input.button .rsssl-icon,.rsssl span.button .rsssl-icon{padding-top:7px;padding-right:7px}.rsssl a.button.button-black,.rsssl button.button.button-black,.rsssl input.button.button-black,.rsssl span.button.button-black{border:1px solid var(--rsp-black);background:var(--rsp-black);color:var(--rsp-text-color-white)}.rsssl a.button.button-black:hover,.rsssl a.button.button-black:focus,.rsssl a.button.button-black:active,.rsssl button.button.button-black:hover,.rsssl button.button.button-black:focus,.rsssl button.button.button-black:active,.rsssl input.button.button-black:hover,.rsssl input.button.button-black:focus,.rsssl input.button.button-black:active,.rsssl span.button.button-black:hover,.rsssl span.button.button-black:focus,.rsssl span.button.button-black:active{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--rsp-black)}.rsssl a.button.button-tertiary,.rsssl a.button.button-red,.rsssl button.button.button-tertiary,.rsssl button.button.button-red,.rsssl input.button.button-tertiary,.rsssl input.button.button-red,.rsssl span.button.button-tertiary,.rsssl span.button.button-red{border:0 solid transparent;background:var(--rsp-red);color:var(--rsp-text-color-white)}.rsssl a.button.button-tertiary:hover,.rsssl a.button.button-tertiary:focus,.rsssl a.button.button-tertiary:active,.rsssl a.button.button-red:hover,.rsssl a.button.button-red:focus,.rsssl a.button.button-red:active,.rsssl button.button.button-tertiary:hover,.rsssl button.button.button-tertiary:focus,.rsssl button.button.button-tertiary:active,.rsssl button.button.button-red:hover,.rsssl button.button.button-red:focus,.rsssl button.button.button-red:active,.rsssl input.button.button-tertiary:hover,.rsssl input.button.button-tertiary:focus,.rsssl input.button.button-tertiary:active,.rsssl input.button.button-red:hover,.rsssl input.button.button-red:focus,.rsssl input.button.button-red:active,.rsssl span.button.button-tertiary:hover,.rsssl span.button.button-tertiary:focus,.rsssl span.button.button-tertiary:active,.rsssl span.button.button-red:hover,.rsssl span.button.button-red:focus,.rsssl span.button.button-red:active{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--rsp-red);background:var(--rsp-red);color:var(--rsp-text-color-white)}.rsssl a.rsssl-button-small,.rsssl button.rsssl-button-small,.rsssl input.rsssl-button-small{font-size:var(--rsp-fs-100);font-weight:300;min-height:auto}.rsssl .rsssl-button-small+.rsssl-button-small{margin-right:10px}.rsssl .rsssl-shortcode{left:10000px;position:absolute;background-color:#fff;padding:0;white-space:nowrap}.rsssl .shortcode{cursor:pointer}.rsssl .rsssl-action-buttons{display:flex;justify-content:flex-end}.rsssl .rsssl-action-buttons__inner{display:flex;justify-content:flex-end}.rsssl .rsssl-action-buttons__inner{float:left}.rsssl .rsssl-action-buttons__button{margin-left:10px}.rsssl .rsssl-action-buttons__inner:last-child{margin-left:0}.rsssl .rsssl-mixed-content-scan .rsssl-grid-item-content-footer{margin-right:0;margin-left:0;padding-right:25px}.rsssl .rsssl-mixed-content-scan .rsssl-grid-item-content-footer .button{display:block;margin-left:0;margin-right:0}.rsssl .rsssl-mixed-content-scan .rsssl-grid-item-content-footer .components-toggle-control{margin-top:12px}.rsssl .rsssl-mixed-content-scan .rsssl-grid-item-content-footer label{display:flex;align-items:center;justify-content:center}.rsssl .rsssl-bullet{height:13px;width:13px;flex:0 0 13px;border-radius:50%;display:inline-block;background-color:var(--rsp-grey-300)}.rsssl .rsssl-bullet.rsp-yellow{background-color:var(--rsp-yellow)}.rsssl .rsssl-bullet.rsp-blue{background-color:var(--rsp-blue)}.rsssl .rsssl-bullet.rsp-pink{background-color:var(--rsp-pink)}.rsssl .rsssl-bullet.rsp-red,.rsssl .rsssl-bullet.rsssl-bullet-error{background-color:var(--rsp-red)}.rsssl .rsssl-bullet.rsp-green,.rsssl .rsssl-bullet.rsssl-bullet-success{background-color:var(--rsp-green)}.rsssl .rsssl-bullet.rsp-blue-yellow{background:var(--rsp-blue);background:linear-gradient(-77deg,#009fff 0,#009fff 30%,#f4bf3e 70%,#f4bf3e 100%);animation:gradient 2s ease infinite;background-size:200% 200%}.rsssl .rsssl-legend{display:flex;width:max-content;color:var(--rsp-text-color-light);align-items:center;min-width:0;gap:var(--rsp-spacing-xxs);text-decoration:none}.rsssl .rsssl-legend:first-of-type{margin-right:auto}@keyframes gradient{0%{background-position:100% 50%}50%{background-position:0% 50%}100%{background-position:100% 50%}}.rsssl-icon{display:flex;align-items:center;justify-content:center}.rsssl-icon>div{display:flex}.rsssl-icon svg{fill:currentColor}.rsssl-icon-loading svg{animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}.rsssl-icon.rsssl-click-animation{animation:beat .4s ease-out}button.button .cmplz-icon.rsssl-icon-loading{padding-top:6px}button.button .cmplz-icon.rsssl-icon-loading>div{line-height:inherit}.rsssl .rsssl-badge{--badge-height:20px;height:var(--badge-height);line-height:var(--badge-height);padding-inline:8px;min-width:100px;text-align:center;border-radius:var(--rsp-border-radius-xs);color:var(--rsp-white);display:table;margin:auto auto;font-size:var(--rsp-fs-100)}.rsssl .rsssl-badge.rsp-dark{background-color:var(--rsp-black);color:var(--rsp-white)}.rsssl .rsssl-badge.rsp-low{background-color:var(--rsp-yellow-faded);color:var(--rsp-black)}.rsssl .rsssl-badge.rsp-medium{background-color:var(--rsp-yellow);color:var(--rsp-black)}.rsssl .rsssl-badge.rsp-high{background-color:var(--rsp-red-faded);color:var(--rsp-black)}.rsssl .rsssl-badge.rsp-critical{background-color:var(--rsp-red);color:var(--rsp-white)}.rsssl .rsssl-badge.rsp-success{background-color:var(--rsp-color-success);color:var(--rsp-white)}.rsssl .rsssl-badge.rsp-default{background-color:var(--rsp-grey-200);color:black}.rsssl .rsssl-badge-large{--badge-height:28px;height:var(--badge-height);line-height:var(--badge-height);padding:0 10px;text-align:center;border-radius:var(--rsp-border-radius-xs);color:var(--rsp-white);display:table;margin:auto auto;font-size:var(--rsp-fs-300);font-weight:400}.rsssl .rsssl-badge-large.rsp-dark{background-color:var(--rsp-black);color:var(--rsp-white)}.rsssl .rsssl-badge-large.rsp-risk-level-l{background-color:var(--rsp-yellow-faded);color:var(--rsp-black)}.rsssl .rsssl-badge-large.rsp-risk-level-m{background-color:var(--rsp-yellow);color:var(--rsp-black)}.rsssl .rsssl-badge-large.rsp-risk-level-h{background-color:var(--rsp-red-faded);color:var(--rsp-black)}.rsssl .rsssl-badge-large.rsp-risk-level-c{background-color:var(--rsp-red);color:var(--rsp-white)}.rsssl .rsssl-badge-large.rsp-success{background-color:var(--rsp-color-success);color:var(--rsp-white)}.rsssl .rsssl-badge-large.rsp-default{background-color:var(--rsp-grey-200);color:black}:root{--toastify-color-light:var(--rsp-white);--toastify-color-dark:var(--rsp-black);--toastify-color-info:var(--rsp-yellow);--toastify-color-success:var(--rsp-green);--toastify-color-warning:var(--rsp-orange);--toastify-color-error:var(--rsp-red);--toastify-color-transparent:rgba(255,255,255,0.7);--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--rsp-green);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-toast-width:320px;--toastify-toast-background:#fff;--toastify-toast-min-height:42px;--toastify-toast-max-height:800px;--toastify-font-family:sans-serif;--toastify-z-index:999999;--toastify-text-color-light:var(--rsp-text-color);--toastify-text-color-dark:var(--rsp-text-color-white);--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(to right,var(--rsp-green),#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--rsp-green);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error)}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index) px);position:fixed;padding:4px;width:var(--toastify-toast-width);box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:1em;right:1em}.Toastify__toast-container--top-center{top:calc(2em + 32px);right:50%;transform:translateX(50%)}.Toastify__toast-container--top-right{top:1em;left:1em}.Toastify__toast-container--bottom-left{bottom:1em;right:1em}.Toastify__toast-container--bottom-center{bottom:1em;right:50%;transform:translateX(50%)}.Toastify__toast-container--bottom-right{bottom:1em;left:1em}@media only screen and (max-width :480px){.Toastify__toast-container{width:100vw;padding:0;right:0;margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:0;transform:translateX(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:0;transform:translateX(0)}.Toastify__toast-container--rtl{left:0;right:initial}}.Toastify__toast{position:relative;min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:var(--rsp-border-radius);border:1px solid #eee;box-shadow:0 1px 10px 0 rgba(0,0,0,0.1),0 2px 15px 0 rgba(0,0,0,0.05);box-shadow:var(--rsp-box-shadow);display:flex;justify-content:space-between;max-height:var(--toastify-toast-max-height);overflow:hidden;font-family:var(--toastify-font-family);cursor:default;direction:rtl;z-index:0}.Toastify__toast--rtl{direction:ltr}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{margin:auto 0;flex:1 1 auto;padding:6px;display:flex;align-items:center}.Toastify__toast-body>div:last-child{word-break:break-word;flex:1}.Toastify__toast-icon{margin-inline-end:10px;width:20px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.7s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width :480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--rsp-green)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:transparent;outline:0;border:0;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;align-self:flex-start}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes toastify__trackProgress{0%{transform:scaleX(1)}100%{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;right:0;width:100%;height:5px;z-index:var(--toastify-z-index);opacity:.7;transform-origin:right}.Toastify__progress-bar--animated{animation:toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{left:0;right:initial;transform-origin:left}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-left-color:var(--toastify-spinner-color);animation:toastify__spin .65s linear infinite}@keyframes toastify__bounceInRight{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}from{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes toastify__bounceOutRight{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes toastify__bounceInLeft{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes toastify__bounceInUp{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}from{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translate3d(0,0,0)}}@keyframes toastify__bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes toastify__bounceInDown{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}0{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes toastify__bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:toastify__bounceOutDown}@keyframes toastify__zoomIn{from{opacity:0;transform:scale3d(0.3,0.3,0.3)}50%{opacity:1}}@keyframes toastify__zoomOut{from{opacity:1}50%{opacity:0;transform:scale3d(0.3,0.3,0.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:toastify__zoomIn}.Toastify__zoom-exit{animation-name:toastify__zoomOut}@keyframes toastify__flipIn{from{transform:perspective(400px) rotate3d(-1,0,0,-90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotate3d(-1,0,0,20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotate3d(-1,0,0,-10deg);opacity:1}80%{transform:perspective(400px) rotate3d(-1,0,0,5deg)}to{transform:perspective(400px)}}@keyframes toastify__flipOut{from{transform:perspective(400px)}30%{transform:perspective(400px) rotate3d(-1,0,0,20deg);opacity:1}to{transform:perspective(400px) rotate3d(-1,0,0,-90deg);opacity:0}}.Toastify__flip-enter{animation-name:toastify__flipIn}.Toastify__flip-exit{animation-name:toastify__flipOut}@keyframes toastify__slideInRight{from{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,0,0)}}@keyframes toastify__slideInLeft{from{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,0,0)}}@keyframes toastify__slideInUp{from{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,0,0)}}@keyframes toastify__slideInDown{from{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,0,0)}}@keyframes toastify__slideOutRight{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(-110%,0,0)}}@keyframes toastify__slideOutLeft{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(110%,0,0)}}@keyframes toastify__slideOutDown{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes toastify__slideOutUp{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:toastify__slideOutLeft}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:toastify__slideOutRight}.Toastify__slide-exit--top-center{animation-name:toastify__slideOutUp}.Toastify__slide-exit--bottom-center{animation-name:toastify__slideOutDown}@keyframes toastify__spin{from{transform:rotate(0)}to{transform:rotate(-360deg)}}.rsssl-modal.rsssl-onboarding{width:clamp(300px,100ch,100vw)}.rsssl-modal.rsssl-onboarding .rsssl-logo{height:26px}.rsssl-modal.rsssl-onboarding .rsssl-modal-content{display:flex;padding-top:var(--rsp-spacing-m);line-height:2.2;min-height:295px}.rsssl-modal.rsssl-onboarding .rsssl-modal-content .rsssl-onboarding-placeholder{flex-grow:1}.rsssl-modal.rsssl-onboarding .rsssl-modal-content-step{display:flex;flex-direction:column;width:100%}.rsssl-modal.rsssl-onboarding .rsssl-modal-content .rsssl-processing{opacity:.5}.rsssl-modal.rsssl-onboarding .rsssl-modal-content ul li .rsssl-icon{margin-top:7px}.rsssl-modal.rsssl-onboarding .rsssl-modal-content ul li .components-button.is-link{padding:5px 0}.rsssl-grid-item.rsssl-progress .rsssl-grid-item-content{padding:0}.rsssl-grid-item.rsssl-progress .rsssl-placeholder{padding:var(--rsp-spacing-m) var(--rsp-spacing-l)}@media screen and (max-width:1280px){.rsssl-grid-item.rsssl-progress .rsssl-placeholder{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-grid-item.rsssl-progress .rsssl-placeholder{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-progress-block .rsssl-progress{overflow:hidden;height:20px;border-radius:5px;background-color:#f7f7f7}.rsssl-progress-block .rsssl-progress .rsssl-bar{height:100%;background-color:var(--rsp-color-success);transition:width 1s ease}.rsssl-progress-block .rsssl-progress .rsssl-bar.rsssl-orange{background-color:var(--rsp-color-warning)}.rsssl-progress-block .rsssl-progress-bar{padding:var(--rsp-spacing-m) var(--rsp-spacing-l);padding-block:0;border-radius:5px}@media screen and (max-width:1280px){.rsssl-progress-block .rsssl-progress-bar{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-progress-block .rsssl-progress-bar{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-progress-block .rsssl-progress-text{display:flex;align-items:center;padding:var(--rsp-spacing-m) var(--rsp-spacing-l);padding-block:var(--rsp-spacing-s);justify-content:flex-start;gap:var(--rsp-spacing-m)}@media screen and (max-width:1280px){.rsssl-progress-block .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-progress-block .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-progress-block .rsssl-progress-text .rsssl-progress-percentage{font-size:var(--rsp-fs-800);font-weight:700}.rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span{font-weight:500;font-size:var(--rsp-fs-600)}.rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span a{margin-right:3px}@media only screen and (max-width:1366px) and (min-width:1280px){.rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span{font-size:var(--rsp-fs-500)}}.rsssl-header-html{display:flex;color:var(--rsp-text-color-light)}.rsssl-header-html .rsssl-toggle-active{text-decoration:underline}.rsssl-task-switcher-container{display:flex;border-radius:var(--rsp-border-radius)}.rsssl-task-switcher-container .rsssl-task-switcher:first-of-type{border-left:1px solid var(--rsp-grey-400);padding-left:10px}.rsssl-task-switcher-container .rsssl-task-switcher:last-of-type{padding-right:10px}.rsssl-task-switcher{font-size:var(--rsp-fs-200);cursor:pointer;transition:.3s}.rsssl-task-switcher:hover{text-decoration:underline}.rsssl-active-filter-remaining .rsssl-remaining-tasks,.rsssl-active-filter-all .rsssl-all-tasks{text-decoration:underline}.rsssl-task-element{display:flex;align-items:flex-start;justify-content:center;gap:var(--rsp-spacing-m);padding-bottom:var(--rsp-spacing-s)}@media(max-width:1280px){.rsssl-task-element{gap:var(--rsp-spacing-xs)}}.rsssl-task-element .rsssl-task-message{flex:1;font-size:var(--rsp-fs-300)}.rsssl-task-element .rsssl-task-form{margin-top:var(--rsp-spacing-xxs);display:flex;gap:var(--rsp-spacing-xs)}.rsssl-task-element .rsssl-task-enable{cursor:pointer;line-height:1.5}.rsssl-task-element .rsssl-task-dismiss:hover{transform:scale(1.1)}.rsssl-task-element .rsssl-task-dismiss button{all:initial;cursor:pointer;padding:4px}.rsssl-task-element .rsssl-task-dismiss svg{height:12px;width:12px}.rsssl-scroll-container{padding:var(--rsp-spacing-m) var(--rsp-spacing-l);height:230px;overflow-y:auto;padding-block:0;padding-top:var(--rsp-spacing-s);border-radius:0}@media screen and (max-width:1280px){.rsssl-scroll-container{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-scroll-container{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-scroll-container::-webkit-scrollbar-track{border-radius:10px;-webkit-box-shadow:inset 0 0 2px rgba(0,0,0,0);background-color:transparent}.rsssl-scroll-container::-webkit-scrollbar{width:8px;border-radius:10px;background-color:var(--rsp-grey-300)}.rsssl-scroll-container::-webkit-scrollbar-thumb{background-color:var(--rsp-grey-400);border-radius:10px}.rsssl-progress-status-container{margin-left:40px}.rsssl-task-status,.rsssl-locked-overlay .rsssl-progress-status{display:block;min-width:100px;text-align:center;border-radius:var(--rsp-border-radius-xs);padding:4px 8px;font-size:var(--rsp-fs-100);font-weight:600}@media(max-width:1280px){.rsssl-task-status,.rsssl-locked-overlay .rsssl-progress-status{min-width:80px}}.rsssl-task-status.rsssl-completed,.rsssl-locked-overlay .rsssl-completed.rsssl-progress-status,.rsssl-task-status.rsssl-success,.rsssl-locked-overlay .rsssl-success.rsssl-progress-status{background-color:var(--rsp-color-success);color:var(--rsp-text-color-white)}.rsssl-task-status.rsssl-open,.rsssl-locked-overlay .rsssl-open.rsssl-progress-status{background-color:var(--rsp-color-open)}.rsssl-task-status.rsssl-warning,.rsssl-locked-overlay .rsssl-warning.rsssl-progress-status{background-color:var(--rsp-color-error);color:var(--rsp-text-color-white)}.rsssl-task-status.rsssl-premium,.rsssl-locked-overlay .rsssl-premium.rsssl-progress-status{background-color:var(--rsp-blue);color:var(--rsp-text-color-white)}.rsssl-task-status.rsssl-loading,.rsssl-locked-overlay .rsssl-loading.rsssl-progress-status{background-color:var(--rsp-grey-200)}@media(max-width:1080px){.rsssl-scroll-container .rsssl-task-status,.rsssl-scroll-container .rsssl-locked-overlay .rsssl-progress-status,.rsssl-locked-overlay .rsssl-scroll-container .rsssl-progress-status{aspect-ratio:1/1;min-width:10px;height:16px;border-radius:100%;text-indent:-9999px;white-space:nowrap}}.rsssl-plusone{min-width:15px;height:16px;font-size:var(--rsp-fs-100);line-height:1.5;display:inline-block;vertical-align:top;box-sizing:border-box;margin:1px 2px -1px 0;padding:0 5px;border-radius:9px;background-color:#d63638;color:#fff;text-align:center}@media only screen and (max-width:1366px){.rsssl-footer-left{display:none}}.rsssl-datatable-placeholder div{background-color:var(--rsp-grey-300);height:25px}.rsssl-datatable-placeholder div:nth-child(even){background-color:#fff}.rsssl-rest-error-message{margin:30px}.rsssl-rest-error-message ul{list-style:disc;margin:20px}.rsssl-placeholder{box-sizing:border-box;width:100%;text-align:right;margin:0;padding-bottom:24px;color:#1e1e1e;-moz-font-smoothing:subpixel-antialiased;-webkit-font-smoothing:subpixel-antialiased;border-radius:2px;flex-grow:100}.rsssl-placeholder .rsssl-placeholder-line{float:right;width:100%;height:16px;margin-top:12px;border-radius:7px;background-image:linear-gradient(-90deg,#ddd 0,#e8e8e8 40px,#ddd 80px);background-size:600px;animation:shine-lines 1.6s infinite linear}.rsssl-placeholder .rsssl-placeholder-line:last-of-type{margin-bottom:24px}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(1){width:65%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(2){width:80%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(3){width:61%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(4){width:86%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(5){width:82%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(6){width:62%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(7){width:96%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(8){width:86%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(9){width:87%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(10){width:61%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(11){width:84%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(12){width:62%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(13){width:83%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(14){width:94%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(15){width:100%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(16){width:76%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(17){width:77%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(18){width:94%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(19){width:64%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(20){width:98%}.rsssl-placeholder .rsssl-placeholder-line ~ .rsssl-placeholder-line{background-color:#ddd}.rsssl-dashboard-placeholder.rsssl-grid-item.rsssl-row-2{grid-row:span 1}.rsssl-settings-placeholder .rsssl-grid-item{min-height:400px}.rsssl-menu-placeholder{min-height:400px}@keyframes shine-lines{0%{background-position:-400px}100%{background-position:220px}}.rsssl .rsssl-other-plugins .rsssl-placeholder{background-color:transparent}.rsssl .rsssl-other-plugins .rsp-logo img{height:20px}.rsssl .rsssl-other-plugins-container{display:flex !important;flex-direction:row;flex-wrap:wrap;margin-bottom:10px;font-size:var(--rsp-fs-300);line-height:1.7;gap:var(--rsp-spacing-xxs)}@media screen and (max-width:992px){.rsssl .rsssl-other-plugins-container{flex-direction:row;overflow:hidden}}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element{width:100%;display:flex;align-content:space-between;justify-content:space-between;gap:10px;--rsp-other-plugins-color:var(---rsp-brand-primary)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-zip-recipes{--rsp-other-plugins-color:var(--rsp-pink)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-burst-statistics{--rsp-other-plugins-color:var(--rsp-green)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-complianz-gdpr{--rsp-other-plugins-color:var(--rsp-blue)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-complianz-terms-conditions{--rsp-other-plugins-color:var(--rsp-black)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-really-simple-ssl{--rsp-other-plugins-color:var(--rsp-yellow)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a{width:max-content;color:var(--rsp-text-color-light);transition:color .3s ease;display:flex;align-items:center;min-width:0;gap:var(--rsp-spacing-xs);text-decoration:none}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover{color:var(--rsp-other-plugins-color);text-decoration:underline}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover .rsssl-bullet{background-color:var(--rsp-other-plugins-color)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover .rsssl-other-plugins-content{text-decoration:underline}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-bullet{transition:background-color .3s ease;background-color:var(--rsp-other-plugins-color)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-other-plugins-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-other-plugin-status{min-width:fit-content}.rsssl-tips_tricks .rsssl-grid-item-header .rsssl-grid-item-controls{height:28px}.rsssl-tips-tricks-container{display:flex !important;flex-direction:row;flex-wrap:wrap;margin-bottom:10px;font-size:var(--rsp-fs-300);line-height:1.7;gap:var(--rsp-spacing-xxs)}@media screen and (max-width:992px){.rsssl-tips-tricks-container{flex-direction:row;overflow:hidden}}.rsssl-tips-tricks-container .rsssl-tips-tricks-element{width:calc(50% - var(--rsp-spacing-xxs))}@media(max-width:768px){.rsssl-tips-tricks-container .rsssl-tips-tricks-element{width:100%}}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a{color:var(--rsp-text-color-light);transition:color .3s ease;display:flex;align-items:center;gap:var(--rsp-spacing-xs);min-width:0;text-decoration:none}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover{color:var(--rsp-brand-primary);text-decoration:underline}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover svg path{fill:var(--rsp-brand-primary)}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover .rsssl-tips-tricks-content{text-decoration:underline}.rsssl-tips-tricks-container .rsssl-tips-tricks-element .rsssl-bullet{transition:background-color .3s ease;background-color:var(--rsp-grey-300)}.rsssl-tips-tricks-container .rsssl-tips-tricks-element .rsssl-tips-tricks-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rsssl div[class^=rsssl-wizard-] .rsssl-helplink{color:var(--rsp-text-color)}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item{position:relative;margin-bottom:var(--rsp-grid-gap)}@media(max-width:1080px){.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item{grid-column:span 4}}.rsssl div[class^=rsssl-wizard-].rsssl-column-2{grid-column:span 2}@media(max-width:1080px){.rsssl div[class^=rsssl-wizard-].rsssl-column-2{grid-column:span 4}}.rsssl div[class^=rsssl-wizard-] .rsssl-locked{position:absolute;z-index:10;top:0;right:0;bottom:0;left:0;background:rgba(255,255,255,0.8);border-radius:var(--rsp-border-radius)}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-shield-overlay{align-items:center;display:flex;justify-content:center;margin-top:30%}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay{z-index:1;position:absolute;display:flex;align-items:center;gap:var(--rsp-spacing-s);background-color:var(--rsp-white);padding:var(--rsp-spacing-m) var(--rsp-spacing-l);border-radius:var(--rsp-border-radius-s);margin:var(--rsp-spacing-s);box-shadow:var(--rsp-box-shadow);bottom:0;width:calc(100% - 2 * var(--rsp-spacing-s))}@media screen and (max-width:1280px){.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay .rsssl-open{float:right;margin-left:12px}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay .rsssl-progress-status{float:right;margin-left:20px}.rsssl div[class^=rsssl-wizard-]>div:nth-last-of-type(2){margin-bottom:0;border-radius:var(--rsp-border-radius) var(--rsp-border-radius) 0 0}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container{position:sticky;bottom:0;display:flex;flex-direction:column;z-index:12}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons a.button,.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons button{box-shadow:none !important}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons a.button:focus,.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons a.button:active,.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons button:focus,.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons button:active{box-shadow:none !important}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-scroll-progress-container{display:flex;flex-direction:column;width:100%;height:3px;background-color:var(--rsp-grey-300);overflow:hidden}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-scroll-progress{height:100%;background-color:var(--rsp-blue)}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer{background:var(--rsp-grey-100);padding:var(--rsp-spacing-m) var(--rsp-spacing-l);box-shadow:var(--rsp-box-shadow);border-radius:0 0 var(--rsp-border-radius) var(--rsp-border-radius);border-top:1px solid var(--rsp-grey-300);box-sizing:border-box;align-items:center;gap:var(--rsp-grid-margin);width:100%;min-height:20px;justify-content:space-around}@media screen and (max-width:1280px){.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer>div:last-of-type{margin-right:auto}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-buttons{display:flex;justify-content:flex-end;align-items:center;gap:var(--rsp-spacing-s)}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer .rsssl-legend{display:flex}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer .rsssl-legend span{padding-right:5px}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-upsell-bar .button{display:inline-block !important}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer:empty{display:none}.rsssl-wizard-help{display:flex;flex-wrap:wrap;align-content:flex-start;gap:var(--rsp-spacing-xs)}.rsssl-wizard-help details{font-size:var(--rsp-fs-200)}.rsssl-wizard-help details .rsssl-help-more-info{display:flex;flex-direction:row;margin-top:12px}.rsssl-wizard-help details summary{display:grid;grid-template-columns:1fr auto;justify-content:space-between;font-size:var(--rsp-fs-300);font-weight:600;cursor:pointer}.rsssl-wizard-help details summary::-webkit-details-marker{display:none}.rsssl-wizard-help details summary:first-of-type{list-style-type:none}.rsssl-wizard-help details summary .rsssl-icon{transition:all .3s ease-in-out;transform:rotate(0)}.rsssl-wizard-help code{white-space:pre-line;display:block}.rsssl-wizard-help summary,.rsssl-wizard-help p{font-size:var(--rsp-fs-200)}.rsssl-wizard-help details[open]{padding:var(--rsp-spacing-s) var(--rsp-spacing-m)}.rsssl-wizard-help details[open] summary{padding:0;padding-bottom:var(--rsp-spacing-xs)}.rsssl-wizard-help details[open] summary .rsssl-icon{transform:rotate(-180deg)}.rsssl-wizard-help .rsssl-help-header{width:100%;display:flex;padding:10px}.rsssl-wizard-help .rsssl-help-header .rsssl-help-title{font-size:18px}.rsssl-wizard-help .rsssl-help-header .rsssl-help-control{margin-right:auto;cursor:pointer}.rsssl-wizard-help>div{flex-grow:1;width:100%}.rsssl-wizard-help-notice{width:100%;background:var(--rsp-background-block-color);box-shadow:var(--rsp-box-shadow);border-radius:var(--rsp-border-radius);border-radius:var(--rsp-border-radius-s);height:fit-content;background-color:var(--rsp-dark-blue-faded)}.rsssl-wizard-help-notice.rsssl-warning{background-color:var(--rsp-red-faded)}.rsssl-wizard-help-notice.rsssl-open{background-color:var(--rsp-yellow-faded)}.rsssl-wizard-help-notice summary,.rsssl-wizard-help-notice p{padding:var(--rsp-spacing-s) var(--rsp-spacing-m)}.rsssl-wizard-menu{height:fit-content;background:none !important;box-shadow:none !important}.rsssl-wizard-menu .rsssl-grid-item-header{padding-right:var(--rsp-spacing-xs)}.rsssl-wizard-menu .rsssl-grid-item-content{padding:0;padding-bottom:var(--rsp-spacing-l)}.rsssl-wizard-menu-items>.rsssl-menu-item>a{font-weight:600 !important;padding-inline:var(--rsp-spacing-xs) !important}.rsssl-wizard-menu-items .rsssl-main-menu .rsssl-active{border-radius:var(--rsp-border-radius-s);background:var(--rsp-yellow-faded);box-shadow:var(--rsp-box-shadow)}.rsssl-wizard-menu-items .rsssl-main-menu .rsssl-active a:hover{text-decoration:none}.rsssl-wizard-menu-items .rsssl-main-menu .rsssl-menu-item a span{font-weight:600}.rsssl-wizard-menu-items .rsssl-menu-item a{display:flex;align-items:center;gap:var(--rsp-spacing-xs);text-decoration:none;color:var(--rsp-text-color);font-size:var(--rsp-fs-400);padding-block:var(--rsp-spacing-xs);transition:all .2s ease-in-out;padding-right:var(--rsp-spacing-xs)}.rsssl-wizard-menu-items .rsssl-menu-item a:hover{text-decoration:underline}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-active>a{font-weight:600}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-active a:focus{box-shadow:none !important}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured.rsssl-active .rsssl-menu-item-beta-pill{color:var(--rsp-dark-blue)}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured a{flex-wrap:wrap}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured a .rsssl-menu-item-featured-pill{background:var(--rsp-green);color:var(--rsp-text-color-white);padding:4px 8px;border-radius:var(--rsp-border-radius-xs);font-size:var(--rsp-fs-100)}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured a .rsssl-menu-item-beta-pill{color:var(--rsp-dark-blue)}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-new .rsssl-menu-item-new-pill{background:var(--rsp-yellow);color:var(--rsp-text-color-dark);padding:4px 8px;border-radius:var(--rsp-border-radius-xs);font-size:var(--rsp-fs-100)}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-new.rsssl-active .rsssl-menu-item-new-pill{color:var(--rsp-text-color-dark)}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-new a{flex-wrap:wrap}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-premium a{flex-wrap:wrap}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-premium a .rsssl-menu-item-featured-pill{background:var(--rsp-dark-blue);color:var(--rsp-text-color-white);padding:2px 9px;border-radius:var(--rsp-border-radius);font-size:var(--rsp-fs-100)}.rsssl-wizard-menu-items .rsssl-premium-menu-item{background:var(--rsp-dark-blue-faded)}.rsssl-wizard-menu-items .rsssl-premium-menu-item div{display:flex;align-items:center;gap:var(--rsp-spacing-xs);text-decoration:none;color:var(--rsp-text-color);font-size:var(--rsp-fs-400);padding-block:var(--rsp-spacing-xs);padding-inline:var(--rsp-spacing-l);transition:all .2s ease-in-out;border-right:4px solid transparent}@media screen and (max-width:1280px){.rsssl-wizard-menu-items .rsssl-premium-menu-item div{padding-inline:var(--rsp-spacing-m)}}@media screen and (max-width:1080px){.rsssl-wizard-menu-items .rsssl-premium-menu-item div{padding-inline:var(--rsp-spacing-s)}}.rsssl-wizard-menu-items .rsssl-submenu-item a{padding-right:calc(var(--rsp-spacing-xs) + var(--rsp-spacing-s)) !important;font-size:var(--rsp-fs-300)}.rsssl-wizard-menu-items .rsssl-submenu-item .rsssl-active a{text-decoration:none;position:relative}.rsssl-wizard-menu-items .rsssl-submenu-item .rsssl-active a span{color:initial}.rsssl-wizard-menu-items .rsssl-submenu-item .rsssl-active a::before{content:"•";color:var(--rsp-dark-blue);font-size:3em;position:absolute;right:var(--rsp-spacing-xxs) !important;margin-bottom:7px}html{scroll-behavior:smooth}.rsssl div[class^=rsssl-wizard-] .components-flex{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.rsssl div[class^=rsssl-wizard-] .components-flex .components-flex-item label{margin:0}.rsssl div[class^=rsssl-wizard-] .components-flex .rsssl-tooltip{flex-grow:1}.rsssl div[class^=rsssl-wizard-] .components-flex .components-input-control__container{max-width:max-content}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-content label{font-size:var(--rsp-fs-300);font-weight:400;line-height:1.5;text-transform:unset;box-sizing:border-box;display:inherit;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rsssl div[class^=rsssl-wizard-] .components-base-control__field{margin-bottom:0}.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-base-control__field,.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-flex{display:flex;flex-direction:row-reverse;align-items:center;justify-content:space-between;width:100%}.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-base-control__field .components-form-toggle,.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-flex .components-form-toggle{margin-left:0}.rsssl div[class^=rsssl-wizard-] select option{font-size:var(--rsp-fs-300)}.rsssl div[class^=rsssl-wizard-] .components-form-toggle.is-checked .components-form-toggle__track{background-color:var(--rsp-dark-blue)}.rsssl div[class^=rsssl-wizard-] input.components-form-toggle__input[type=checkbox]:disabled{background:var(--rsp-grey-100);opacity:.7}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item .rsssl-grid-item-content{padding:var(--rsp-spacing-xs) 0}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap .rsssl-comment{font-style:italic}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro{padding-block:var(--rsp-spacing-s);padding-inline:var(--rsp-spacing-l);overflow:hidden}@media screen and (max-width:1280px){.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro{padding-inline:var(--rsp-spacing-m)}}@media screen and (max-width:1080px){.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro{padding-inline:var(--rsp-spacing-s)}}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap>.rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro>.rsssl-field-wrap{padding:0}.rsssl div[class^=rsssl-wizard-] .rsssl-field-button{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center}.rsssl .rsssl-highlight{background-color:transparent;border-right:4px solid var(--rsp-green);-o-animation:fadeIt 3s ease-in-out;animation:fadeIt 3s ease-in-out;scroll-margin-top:100px;scroll-padding-top:100px}.rsssl .rsssl-block-highlight{border:0;-o-animation:pulse 2s infinite;animation:pulse 2s infinite}@-webkit-keyframes pulse{0%{-webkit-box-shadow:0 0 0 0 var(--rsp-green)}70%{-webkit-box-shadow:0 0 0 10px var(--rsp-green-faded)}100%{-webkit-box-shadow:0 0 0 0 var(--rsp-green-faded)}}@keyframes pulse{0%{-moz-box-shadow:0 0 0 0 var(--rsp-green);box-shadow:0 0 0 0 var(--rsp-green)}70%{-moz-box-shadow:0 0 0 10px var(--rsp-green-faded);box-shadow:0 0 0 10px var(--rsp-green-faded)}100%{-moz-box-shadow:0 0 0 0 var(--rsp-green-faded);box-shadow:0 0 0 0 var(--rsp-green-faded)}}@-o-keyframes fadeIt{0%{background-color:transparent}30%{background-color:var(--rsp-green-faded)}100%{border-left:0;background-color:inherit}}@keyframes fadeIt{0%{background-color:transparent;border-left:0}30%{background-color:var(--rsp-green-faded)}100%{background-color:inherit}}.rsssl-email-verified{position:absolute;bottom:23px;left:35px}.rsssl-license .rsssl-task-element{padding-top:var(--rsp-spacing-s);padding-bottom:0}.rsssl-license .rsssl-license-field{display:flex}.input-container{position:relative;display:inline-block;width:100%}input.rsssl-input.full{width:100%;padding-left:40px}input.rsssl-input.rsssl-error{border:2px solid var(--rsp-red);outline:0}input.rsssl-input.rsssl-error:focus{border-color:var(--rsp-red) !important}input.rsssl-input.rsssl-success{border:2px solid var(--rsp-green);outline:0}input.rsssl-input.rsssl-success:focus{border-color:var(--rsp-green) !important}.wp-core-ui select{flex-grow:1 !important;max-width:33%}.icon-button{position:absolute;left:10px;top:50%;transform:translateY(-50%);border:0;background:100%;cursor:pointer}.rsssl-group-filter{min-width:25%;max-width:100% !important}.rsssl .components-snackbar-list.edit-site-notices{width:max-content;position:fixed;bottom:var(--rsp-spacing-m);left:var(--rsp-spacing-l)}.rsssl .components-snackbar-list.edit-site-notices>div{margin-right:auto}.rsssl .components-snackbar-list.edit-site-notices .components-snackbar{background:var(--rsp-background-block-color);box-shadow:var(--rsp-box-shadow);border-radius:var(--rsp-border-radius);color:var(--rsp-color-success);background-color:#fff;font-weight:700;font-size:14px}.rsssl-mixed-content-scan .rsssl-mixed-content-placeholder{height:250px}.rsssl-mixed-content-scan .rsssl-mixed-content-placeholder div{background-color:var(--rsp-grey-200);margin:10px 0;height:20px}.rsssl-mixed-content-scan .rsssl-shield-overlay{height:250px;align-items:center;justify-content:center;display:flex}.rsssl-mixed-content-scan .rsssl-field-wrap .rdt_TableCell[data-column-id="2"]{display:grid}.rsssl-mixed-content-scan .rsssl-field-wrap .rdt_TableCol,.rsssl-mixed-content-scan .rsssl-field-wrap .rdt_TableCell{min-width:110px}.rsssl-mixed-content-scan .rsssl-progress-container .rsssl-progress-bar{border-radius:5px;height:20px;background-color:var(--rsp-green)}.rsssl-mixed-content-scan .rsssl-task-status,.rsssl-mixed-content-scan .rsssl-locked-overlay .rsssl-progress-status,.rsssl-locked-overlay .rsssl-mixed-content-scan .rsssl-progress-status{min-width:min-content}.rsssl-mixed-content-scan .rsssl-task-status.rsssl-warning,.rsssl-mixed-content-scan .rsssl-locked-overlay .rsssl-warning.rsssl-progress-status,.rsssl-locked-overlay .rsssl-mixed-content-scan .rsssl-warning.rsssl-progress-status{background-color:var(--rsp-yellow);color:var(--rsp-text-color)}.rsssl-mixed-content-scan button.button{line-height:1.5;min-height:10px}.rsssl-mixed-content-scan .rsssl-grid-item-content-footer{display:flex;gap:var(--rsp-spacing-s)}.rsssl-mixed-content-scan .rsssl-current-scan-action,.rsssl-mixed-content-scan .rsssl-mixed-content-description{margin:10px 5px;font-size:var(--rsp-fs-300)}.rsssl-learningmode-placeholder{height:150px}.rsssl-learningmode-placeholder div{background-color:var(--rsp-grey-200);margin:10px 0;height:20px}.rsssl-learning-mode-delete{cursor:pointer;background:100%;border:0;font-size:1.5em;font-weight:700}.rsssl-locked-overlay .rsssl-open{float:right;margin-left:12px}.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-completed,.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-enforced{background-color:var(--rsp-color-success);color:#fff}.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode{background-color:var(--rsp-color-open)}.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-error{background-color:var(--rsp-color-error);color:#fff}.rsssl-locked-overlay .rsssl-progress-status.rsssl-disabled,.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-disabled{background-color:var(--rsp-color-disabled)}.rsssl-learning-mode-footer{display:flex;align-items:center;justify-content:flex-start;gap:var(--rsp-spacing-s)}.rsssl-learning-mode-footer select{margin-right:auto}.rsssl-learning-mode-footer label{display:flex;align-items:center}.rsssl-learning-mode-footer label input{margin-top:0}.rsssl-lets-encrypt-tests{margin:var(--rsp-spacing-xs) var(--rsp-spacing-xl)}.rsssl-lets-encrypt-tests .rsssl-progress-bar{padding-block:0;margin-bottom:var(--rsp-spacing-m)}.rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress{overflow:hidden;height:var(--rsp-spacing-m);border-radius:5px;background-color:var(--rsp-grey-200)}.rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress .rsssl-bar{height:100%;background-color:var(--rsp-color-success)}.rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress .rsssl-bar.rsssl-orange{background-color:var(--rsp-color-warning)}.rsssl-lets-encrypt-tests p{margin-bottom:var(--rsp-spacing-m)}.rsssl-lets-encrypt-tests .rsssl-progress-text{display:flex;align-items:center;padding:var(--rsp-spacing-m) var(--rsp-spacing-l);padding-block:0;padding-top:var(--rsp-spacing-xs)}@media screen and (max-width:1280px){.rsssl-lets-encrypt-tests .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-lets-encrypt-tests .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-percentage{font-size:32px;font-weight:700}.rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-text-span{margin-right:35px;font-size:18px;font-weight:600}.rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-text-span a{margin-right:3px}.rsssl-lets-encrypt-tests ul li{display:flex;margin-bottom:15px}.rsssl-lets-encrypt-tests ul li .rsssl-icon{margin-left:7px}.rsssl-lets-encrypt-tests ul li ul li:before{background-color:var(--rsp-grey-500);color:#fff;height:6px;width:6px;border-radius:50%;content:"";position:absolute;margin-top:7px;margin-right:-19px}.rsssl-lets-encrypt-tests .rsssl-test-results ul li{display:block}.rsssl-lets-encrypt-tests .rsssl-test-results h4{margin:var(--rsp-spacing-m) 0}.rsssl-lets-encrypt-tests .rsssl-test-results a+button{margin-right:var(--rsp-spacing-m)}.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-certificate-data{display:none}.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div{display:flex;flex-direction:row;margin-left:20px}.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div .rsssl-dns-domain,.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div .rsssl-dns-field{margin-left:var(--rsp-spacing-m);width:50%}.rsssl-lets-encrypt-tests .rsssl-modal-subtitle{display:none}.rsssl-lets-encrypt-tests .components-toggle-control{margin:20px 0}.rsssl div[class^=rsssl-wizard-] .rsssl-permissions_policy .rdt_TableCell,.rsssl div[class^=rsssl-wizard-] .rsssl-permissions_policy .rdt_TableCol{min-width:fit-content}.rsssl div[class^=rsssl-wizard-] .rsssl-permissions_policy .rsssl-locked .rsssl-shield-overlay{top:calc(100% - 300px)}.rsssl-vulnerability-action a.button{margin-right:10px}.rsssl-processing{opacity:.5}.rsssl-vulnerabilities_measures .rsssl-locked-overlay input[type=checkbox]{margin-top:0}.rsssl-field-wrap .rdt_TableCol,.rsssl-field-wrap .rdt_TableCell,.rsssl-field-wrap .rdt_TableCol_Sortable{flex-direction:row}.rsssl-field-wrap .rdt_TableCol:first-child,.rsssl-field-wrap .rdt_TableCell:first-child{min-width:initial}.rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child{flex-grow:0;flex-direction:row-reverse;min-width:initial}.rsssl-field-wrap .rdt_TableRow{padding:var(--rsp-spacing-xs) 0}.rsssl-field-wrap .rdt_TableRow:nth-child(odd){background-color:var(--rsp-grey-200)}.rsssl-field-wrap .rdt_TableRow .rdt_TableCell:last-child{flex-grow:0}.rsssl-field-wrap .rdt_TableRow .rsssl-status-allowed,.rsssl-field-wrap .rdt_TableRow .rsssl-status-revoked{min-width:110px;margin-left:10px}.rsssl-field-wrap .rsssl-csp-revoked>div:nth-child(-n+3){opacity:.3}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child{flex-grow:0;min-width:initial;justify-content:flex-end}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableRow .rdt_TableCell:last-child{flex-grow:0;min-width:initial}.rsssl-content_security_policy .rsssl-field-wrap .rsssl-csp-revoked>div:nth-child(-n+3){opacity:.3}nav.rdt_Pagination>div>svg{display:none !important}.rsssl-content_security_policy .rsssl-field-wrap>div>div,.rsssl-xml_rpc .rsssl-field-wrap>div>div{overflow-x:inherit;overflow-y:inherit}.rsssl-permissions_policy .rdt_TableRow .rdt_TableCell:last-child{min-width:fit-content}.rsssl-permissions_policy .rdt_TableRow .rdt_TableCell:last-child .components-input-control__container{min-width:fit-content}.rsssl-mixed-content-datatable>div>div{display:flex}.rsssl-vulnerabilities_measures .rdt_TableRow .rdt_TableCell:nth-child(3){max-width:50%}.rsssl-vulnerabilities_overview .rsssl-field-wrap,.two_fa_users_table .rsssl-field-wrap,.rsssl-vulnerabilities_measures .rsssl-field-wrap,.rsssl-limit_login_attempts_country .rsssl-field-wrap,.rsssl-limit_login_attempts_users .rsssl-field-wrap,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap,.rsssl-mixed-content-scan .rsssl-field-wrap,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap,.rsssl-permissions_policy .rsssl-field-wrap,.rsssl-content_security_policy .rsssl-field-wrap,.rsssl-two_fa_users .rsssl-field-wrap,.rsssl-hardening-xml .rsssl-field-wrap{margin-right:calc(-1 * var(--rsp-spacing-l));margin-left:calc(-1 * var(--rsp-spacing-l))}@media(max-width:1280px){.rsssl-vulnerabilities_overview .rsssl-field-wrap,.two_fa_users_table .rsssl-field-wrap,.rsssl-vulnerabilities_measures .rsssl-field-wrap,.rsssl-limit_login_attempts_country .rsssl-field-wrap,.rsssl-limit_login_attempts_users .rsssl-field-wrap,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap,.rsssl-mixed-content-scan .rsssl-field-wrap,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap,.rsssl-permissions_policy .rsssl-field-wrap,.rsssl-content_security_policy .rsssl-field-wrap,.rsssl-two_fa_users .rsssl-field-wrap,.rsssl-hardening-xml .rsssl-field-wrap{margin-right:calc(-1 * var(--rsp-spacing-m));margin-left:calc(-1 * var(--rsp-spacing-m))}}@media(max-width:1080px){.rsssl-vulnerabilities_overview .rsssl-field-wrap,.two_fa_users_table .rsssl-field-wrap,.rsssl-vulnerabilities_measures .rsssl-field-wrap,.rsssl-limit_login_attempts_country .rsssl-field-wrap,.rsssl-limit_login_attempts_users .rsssl-field-wrap,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap,.rsssl-mixed-content-scan .rsssl-field-wrap,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap,.rsssl-permissions_policy .rsssl-field-wrap,.rsssl-content_security_policy .rsssl-field-wrap,.rsssl-two_fa_users .rsssl-field-wrap,.rsssl-hardening-xml .rsssl-field-wrap{margin-right:calc(-1 * var(--rsp-spacing-s));margin-left:calc(-1 * var(--rsp-spacing-s))}}.rsssl-vulnerabilities_overview .rsssl-field-wrap>.components-base-control,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-comment,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-progress-container,.rsssl-vulnerabilities_overview .rsssl-field-wrap>div>button,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-current-scan-action,.two_fa_users_table .rsssl-field-wrap>.components-base-control,.two_fa_users_table .rsssl-field-wrap .rsssl-comment,.two_fa_users_table .rsssl-field-wrap .rsssl-progress-container,.two_fa_users_table .rsssl-field-wrap>div>button,.two_fa_users_table .rsssl-field-wrap .rsssl-learning-mode-footer,.two_fa_users_table .rsssl-field-wrap .rsssl-mixed-content-description,.two_fa_users_table .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-vulnerabilities_measures .rsssl-field-wrap>.components-base-control,.rsssl-vulnerabilities_measures .rsssl-field-wrap .rsssl-comment,.rsssl-vulnerabilities_measures .rsssl-field-wrap .rsssl-progress-container,.rsssl-vulnerabilities_measures .rsssl-field-wrap>div>button,.rsssl-vulnerabilities_measures .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-vulnerabilities_measures .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-vulnerabilities_measures .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-limit_login_attempts_country .rsssl-field-wrap>.components-base-control,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-comment,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-progress-container,.rsssl-limit_login_attempts_country .rsssl-field-wrap>div>button,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-limit_login_attempts_users .rsssl-field-wrap>.components-base-control,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-comment,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-progress-container,.rsssl-limit_login_attempts_users .rsssl-field-wrap>div>button,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap>.components-base-control,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-comment,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-progress-container,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap>div>button,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-mixed-content-scan .rsssl-field-wrap>.components-base-control,.rsssl-mixed-content-scan .rsssl-field-wrap .rsssl-comment,.rsssl-mixed-content-scan .rsssl-field-wrap .rsssl-progress-container,.rsssl-mixed-content-scan .rsssl-field-wrap>div>button,.rsssl-mixed-content-scan .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-mixed-content-scan .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-mixed-content-scan .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap>.components-base-control,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-comment,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-progress-container,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap>div>button,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-permissions_policy .rsssl-field-wrap>.components-base-control,.rsssl-permissions_policy .rsssl-field-wrap .rsssl-comment,.rsssl-permissions_policy .rsssl-field-wrap .rsssl-progress-container,.rsssl-permissions_policy .rsssl-field-wrap>div>button,.rsssl-permissions_policy .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-permissions_policy .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-permissions_policy .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-content_security_policy .rsssl-field-wrap>.components-base-control,.rsssl-content_security_policy .rsssl-field-wrap .rsssl-comment,.rsssl-content_security_policy .rsssl-field-wrap .rsssl-progress-container,.rsssl-content_security_policy .rsssl-field-wrap>div>button,.rsssl-content_security_policy .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-content_security_policy .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-content_security_policy .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-two_fa_users .rsssl-field-wrap>.components-base-control,.rsssl-two_fa_users .rsssl-field-wrap .rsssl-comment,.rsssl-two_fa_users .rsssl-field-wrap .rsssl-progress-container,.rsssl-two_fa_users .rsssl-field-wrap>div>button,.rsssl-two_fa_users .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-two_fa_users .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-two_fa_users .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-hardening-xml .rsssl-field-wrap>.components-base-control,.rsssl-hardening-xml .rsssl-field-wrap .rsssl-comment,.rsssl-hardening-xml .rsssl-field-wrap .rsssl-progress-container,.rsssl-hardening-xml .rsssl-field-wrap>div>button,.rsssl-hardening-xml .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-hardening-xml .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-hardening-xml .rsssl-field-wrap .rsssl-current-scan-action{margin-right:var(--rsp-spacing-l);margin-left:var(--rsp-spacing-l)}.rsssl-vulnerabilities_overview .rdt_TableCell:first-child,.rsssl-vulnerabilities_overview .rdt_TableCol:first-child,.two_fa_users_table .rdt_TableCell:first-child,.two_fa_users_table .rdt_TableCol:first-child,.rsssl-vulnerabilities_measures .rdt_TableCell:first-child,.rsssl-vulnerabilities_measures .rdt_TableCol:first-child,.rsssl-limit_login_attempts_country .rdt_TableCell:first-child,.rsssl-limit_login_attempts_country .rdt_TableCol:first-child,.rsssl-limit_login_attempts_users .rdt_TableCell:first-child,.rsssl-limit_login_attempts_users .rdt_TableCol:first-child,.rsssl-limit_login_attempts_event_log .rdt_TableCell:first-child,.rsssl-limit_login_attempts_event_log .rdt_TableCol:first-child,.rsssl-mixed-content-scan .rdt_TableCell:first-child,.rsssl-mixed-content-scan .rdt_TableCol:first-child,.rsssl-limit_login_attempts_ip_address .rdt_TableCell:first-child,.rsssl-limit_login_attempts_ip_address .rdt_TableCol:first-child,.rsssl-permissions_policy .rdt_TableCell:first-child,.rsssl-permissions_policy .rdt_TableCol:first-child,.rsssl-content_security_policy .rdt_TableCell:first-child,.rsssl-content_security_policy .rdt_TableCol:first-child,.rsssl-two_fa_users .rdt_TableCell:first-child,.rsssl-two_fa_users .rdt_TableCol:first-child,.rsssl-hardening-xml .rdt_TableCell:first-child,.rsssl-hardening-xml .rdt_TableCol:first-child{padding-right:var(--rsp-spacing-l);padding-left:var(--rsp-spacing-l)}.rsssl-vulnerabilities_overview .rdt_TableCell:last-child,.rsssl-vulnerabilities_overview .rdt_TableCol:last-child,.two_fa_users_table .rdt_TableCell:last-child,.two_fa_users_table .rdt_TableCol:last-child,.rsssl-vulnerabilities_measures .rdt_TableCell:last-child,.rsssl-vulnerabilities_measures .rdt_TableCol:last-child,.rsssl-limit_login_attempts_country .rdt_TableCell:last-child,.rsssl-limit_login_attempts_country .rdt_TableCol:last-child,.rsssl-limit_login_attempts_users .rdt_TableCell:last-child,.rsssl-limit_login_attempts_users .rdt_TableCol:last-child,.rsssl-limit_login_attempts_event_log .rdt_TableCell:last-child,.rsssl-limit_login_attempts_event_log .rdt_TableCol:last-child,.rsssl-mixed-content-scan .rdt_TableCell:last-child,.rsssl-mixed-content-scan .rdt_TableCol:last-child,.rsssl-limit_login_attempts_ip_address .rdt_TableCell:last-child,.rsssl-limit_login_attempts_ip_address .rdt_TableCol:last-child,.rsssl-permissions_policy .rdt_TableCell:last-child,.rsssl-permissions_policy .rdt_TableCol:last-child,.rsssl-content_security_policy .rdt_TableCell:last-child,.rsssl-content_security_policy .rdt_TableCol:last-child,.rsssl-two_fa_users .rdt_TableCell:last-child,.rsssl-two_fa_users .rdt_TableCol:last-child,.rsssl-hardening-xml .rdt_TableCell:last-child,.rsssl-hardening-xml .rdt_TableCol:last-child{padding-left:var(--rsp-spacing-l)}.rsssl-search-bar{float:left;padding:0}.rsssl-search-bar__inner{display:flex;align-items:center;background-color:gray;border-radius:3px;transition:background-color .3s ease}.rsssl-search-bar__inner:focus-within{background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,0.1)}.rsssl-search-bar__input{border:0;outline:0;background:gray;padding:3px 5px;width:150px;transition:width .3s ease}.rsssl-search-bar__input:focus{width:200px}.rsssl-container{padding:2em;display:flex;align-items:center;justify-content:space-between}.rsssl-multiselect-datatable-form{display:flex;align-items:center;Justify-content:space-between;width:100%;padding:1em 2em;background:var(--rsp-blue-faded)}.rdt_TableRow .rdt_TableCell:last-child{min-width:20px}.rdt_TableRow .rdt_TableCell:last-child button,.rdt_TableRow .rdt_TableCell:last-child span{min-width:20px}.rsssl-content_security_policy .rdt_TableCell,.rsssl-content_security_policy .rdt_TableCol,.rsssl-hardening-xml .rdt_TableCell,.rsssl-hardening-xml .rdt_TableCol,.rsssl-vulnerabilities_overview .rdt_TableCell,.rsssl-vulnerabilities_overview .rdt_TableCol,.rsssl-limit_login_attempts_ip_address .rdt_TableCell,.rsssl-limit_login_attempts_ip_address .rdt_TableCol,.rsssl-limit_login_attempts_users .rdt_TableCell,.rsssl-limit_login_attempts_users .rdt_TableCol,.rsssl-limit_login_attempts_country .rdt_TableCell,.rsssl-limit_login_attempts_country .rdt_TableCol,.rsssl-limit_login_attempts_event_log .rdt_TableCell,.rsssl-limit_login_attempts_event_log .rdt_TableCol{min-width:initial}.rsssl-content_security_policy .rdt_Pagination,.rsssl-hardening-xml .rdt_Pagination,.rsssl-vulnerabilities_overview .rdt_Pagination,.rsssl-limit_login_attempts_ip_address .rdt_Pagination,.rsssl-limit_login_attempts_users .rdt_Pagination,.rsssl-limit_login_attempts_country .rdt_Pagination,.rsssl-limit_login_attempts_event_log .rdt_Pagination{margin-top:0;padding:0 25px}.rsssl-content_security_policy .rdt_tableCell:has(div>.rsssl-action-buttons),.rsssl-hardening-xml .rdt_tableCell:has(div>.rsssl-action-buttons),.rsssl-vulnerabilities_overview .rdt_tableCell:has(div>.rsssl-action-buttons),.rsssl-limit_login_attempts_ip_address .rdt_tableCell:has(div>.rsssl-action-buttons),.rsssl-limit_login_attempts_users .rdt_tableCell:has(div>.rsssl-action-buttons),.rsssl-limit_login_attempts_country .rdt_tableCell:has(div>.rsssl-action-buttons),.rsssl-limit_login_attempts_event_log .rdt_tableCell:has(div>.rsssl-action-buttons){position:relative}.rsssl-content_security_policy .rsssl-field-wrap,.rsssl-hardening-xml .rsssl-field-wrap,.rsssl-vulnerabilities_overview .rsssl-field-wrap,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap,.rsssl-limit_login_attempts_users .rsssl-field-wrap,.rsssl-limit_login_attempts_country .rsssl-field-wrap,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap{padding:0}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child,.rsssl-hardening-xml .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child{flex-grow:1}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child,.rsssl-hardening-xml .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child{flex-grow:1}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child,.rsssl-hardening-xml .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child{padding:0;flex-direction:row}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child,.rsssl-hardening-xml .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child{padding:0 25px;flex-direction:row}.rsssl-content_security_policy .rsssl-field-wrap .rsssl-learning-mode-delete,.rsssl-hardening-xml .rsssl-field-wrap .rsssl-learning-mode-delete,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-learning-mode-delete,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-learning-mode-delete,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-learning-mode-delete,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-learning-mode-delete,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-learning-mode-delete{float:left}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableCell:last-child div,.rsssl-hardening-xml .rsssl-field-wrap .rdt_TableCell:last-child div,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableCell:last-child div,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableCell:last-child div,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableCell:last-child div,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableCell:last-child div,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableCell:last-child div{width:100%}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableCell:last-child div button,.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableCell:last-child div a,.rsssl-hardening-xml .rsssl-field-wrap .rdt_TableCell:last-child div button,.rsssl-hardening-xml .rsssl-field-wrap .rdt_TableCell:last-child div a,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableCell:last-child div button,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableCell:last-child div a,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableCell:last-child div button,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableCell:last-child div a,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableCell:last-child div button,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableCell:last-child div a,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableCell:last-child div button,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableCell:last-child div a,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableCell:last-child div button,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableCell:last-child div a{margin-right:10px}.rsssl-vulnerabilities_measures .rdt_TableCell:nth-child(2) select{max-width:100%}.rsssl-hardening-xml .rdt_TableCol:first-child{padding:0 25px !important}.rsssl-hardening-xml .rdt_TableCell:last-child{padding:0 25px !important}.rsssl-hardening-xml .rdt_TableRow .rdt_TableCell:last-child{flex:1;display:flex;justify-content:flex-end}.rsssl-content_security_policy .rdt_TableCol:last-child,.rsssl-permissions_policy .rdt_TableCol:last-child{flex-grow:1;text-align:left}.rsssl-content_security_policy .rdt_TableCol:last-child div,.rsssl-permissions_policy .rdt_TableCol:last-child div{width:100%;display:flex;justify-content:flex-start}.rsssl-content_security_policy .rdt_TableCell:last-child,.rsssl-permissions_policy .rdt_TableCell:last-child{flex-grow:1;text-align:left}.rsssl-content_security_policy .rdt_TableCell:last-child div,.rsssl-permissions_policy .rdt_TableCell:last-child div{width:100%;display:flex;justify-content:flex-end}.rsssl-content_security_policy .rdt_TableCell:last-child div button,.rsssl-permissions_policy .rdt_TableCell:last-child div button{margin-left:0 !important}.rsssl .rsssl-new-features-block .rsssl-grid-item-content{display:flex;flex-direction:column;justify-content:space-between}.rsssl .rsssl-new-features{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--rsp-spacing-xs)}@media only screen and (max-width:1599px) and (min-width:1280px){.rsssl .rsssl-new-features{gap:var(--rsp-spacing-xxs)}}.rsssl .rsssl-new-feature{width:100%;color:var(--rsp-text-color-light);display:flex;align-items:flex-start;min-width:0;gap:var(--rsp-spacing-xs);text-decoration:none}.rsssl .rsssl-new-feature .rsssl-icon{margin-top:2px}.rsssl .rsssl-new-feature .rsssl-new-feature-desc p{font-size:var(--rsp-fs-300)}a.rsssl-skip-link{display:flex;justify-content:center;margin:15px 0 20px}.rsssl-two_fa_users div[data-column-id="4"].rdt_TableCol{display:none}.rsssl-two_fa_users .rdt_TableRow .rdt_TableCell:last-child{flex:1;display:flex;justify-content:flex-end}.rsssl-two_fa_users .rdt_TableHeadRow .rdt_TableCol:last-child{flex-grow:1;display:flex;justify-content:flex-end}.rsssl-modal .rsssl-intro-logo{width:7em;position:absolute;left:1.6em;height:auto;bottom:.15em;margin:0;padding:0}@media(max-width:768px){.rsssl-modal .rsssl-intro-logo{display:none}}.rsssl-modal .rsssl-ssl-intro-container .rsssl-details{display:flex;padding:var(--rsp-spacing-xs) var(--rsp-spacing-m);gap:var(--rsp-spacing-xs)}.rsssl-modal .rsssl-ssl-intro-container .rsssl-details .rsssl-icon{min-width:25px}.rsssl-modal .rsssl-modal-footer{padding:var(--rsp-spacing-m) var(--rsp-spacing-m)}.rsssl-modal .icon-spin{animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}.rsssl .rsssl-locked.rsssl-locked-premium .rsssl-locked-overlay{bottom:var(--rsp-spacing-s);flex-direction:column}.rsssl .rsssl-locked .rsssl-locked-overlay{display:flex;bottom:0;text-align:right;margin-bottom:20px;padding:0}.rsssl .rsssl-locked .rsssl-locked-overlay.rsssl-premium{bottom:0;flex-direction:column}.rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-header{width:100%;flex-direction:row}.rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-header .rsssl-locked-header-title{font-weight:600;color:var(--rsp-blue)}.rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-content{flex-direction:row;width:100%}.rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-footer{display:flex;align-items:center;justify-content:flex-start;width:100%}.rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-footer a{position:relative;float:right !important}.rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-footer::after{content:"";display:table;clear:both}.rsssl .rsssl-disabled .rsssl-field-wrap .rsssl-locked{background:transparent}.rsssl-accordeon{border:1px solid #ccc;border-radius:5px;overflow:hidden;transition:all .3s ease}.rsssl-accordeon__header{display:flex;justify-content:space-between;align-items:center;background-color:#f5f5f5;padding:10px;cursor:pointer}.rsssl-accordeon__header__inner{display:flex;align-items:center}.rsssl-accordeon__header__icon{width:20px;height:20px;margin-left:10px}.rsssl-accordeon__header__title{font-size:16px;font-weight:bold}.rsssl-accordeon__header__button__inner{background:100%;border:0;cursor:pointer;font-size:18px}.rsssl-accordeon__content{max-height:0;overflow:hidden;transition:max-height .3s ease}.rsssl-accordeon--open .rsssl-accordeon__content{max-height:300px}.rsssl-accordeon__content__inner{padding:15px;background-color:#fff}.rsssl div[class^=rsssl-wizard-] .rsssl-tooltip-icon .react-tooltip{max-width:300px;white-space:pre-wrap}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap label{display:flex}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap label .cmplz-label-text{margin-left:10px}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap .rsssl-icon{cursor:pointer}.rsssl .rsssl-skeleton:empty{margin:auto;margin-bottom:25px;width:100%;height:235px;background-image:linear-gradient(-100deg,rgba(255,255,255,0),rgba(255,255,255,0.5) 70%,rgba(255,255,255,0.5) 15%),linear-gradient(#f2f2f2 38px,transparent 0),linear-gradient(#f2f2f2 38px,transparent 0),linear-gradient(#f2f2f2 38px,transparent 0),linear-gradient(#f2f2f2 38px,transparent 0);background-repeat:repeat-y;background-size:50px 200px,100% 117px,100% 117px,100% 117px,100% 117px;background-position:100% 0,1px 1px,1px 40px,1px 79px,1px 118px;background-color:#d6d8db;border-left:1px solid #d6d8db;animation:shine 2.5s infinite}@keyframes shine{to{background-position:0% 0,1px 1px,1px 40px,1px 79px,1px 118px}}.rsssl .rsssl-loader{margin:0;width:50px;height:15px;text-align:center;font-size:10px}.rsssl .rsssl-loader>div{margin:1px;background-color:#333;height:100%;width:3px;display:inline-block;-webkit-animation:sk-stretchdelay 1.2s infinite ease-in-out;animation:sk-stretchdelay 1.2s infinite ease-in-out}.rsssl .rsssl-loader.rsssl-loader-white>div{background-color:#fff}.rsssl .rsssl-loader .rect2{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.rsssl .rsssl-loader .rect3{-webkit-animation-delay:-1s;animation-delay:-1s}.rsssl .rsssl-loader .rect4{-webkit-animation-delay:-0.9s;animation-delay:-0.9s}.rsssl .rsssl-loader .rect5{-webkit-animation-delay:-0.8s;animation-delay:-0.8s}.rsssl .button-primary .rsssl-loader div{background-color:#fff}@-webkit-keyframes sk-stretchdelay{0%,40%,100%{-webkit-transform:scaleY(0.4)}20%{-webkit-transform:scaleY(1)}}@keyframes sk-stretchdelay{0%,40%,100%{transform:scaleY(0.4);-webkit-transform:scaleY(0.4)}20%{transform:scaleY(1);-webkit-transform:scaleY(1)}}.rsssl{--rsp-brand-primary:var(--rsp-yellow);--rsp-brand-secondary:var(--rsp-blue);--rsp-brand-primary-faded:var(--rsp-yellow-faded)}PK!d8ssassets/css/admin.min.cssnu[@charset "UTF-8";:root{--rsp-spacing-xxs:5px;--rsp-spacing-xs:10px;--rsp-spacing-s:15px;--rsp-spacing-m:20px;--rsp-spacing-l:25px;--rsp-spacing-xl:30px;--rsp-grid-margin:var(--rsp-spacing-s);--rsp-grid-gap:var(--rsp-spacing-m);--rsp-border-radius:12px;--rsp-border-radius-s:8px;--rsp-border-radius-xs:3px;--rsp-border:1px solid var(--rsp-border-color);--rsp-box-shadow:rgba(0,0,0,0.1) 0 4px 6px -1px,rgba(0,0,0,0.06) 0 2px 4px -1px;--rsp-box-shadow-dark:rgba(0,0,0,0.2) 0 4px 6px -1px,rgba(0,0,0,0.12) 1px 0 4px 1px;--rsp-border-color:#dfdfdf;--rsp-black:#333;--rsp-white:#fff;--rsp-yellow:#fbc43e;--rsp-blue:#009fff;--rsp-dark-yellow:#e6a800;--rsp-dark-blue:#1e73be;--rsp-green:#2e8a37;--rsp-red:#d7263d;--rsp-dark-red:#9b0212;--rsp-pink:#e35899;--rsp-wp-blue:#007cba;--rsp-yellow-faded:#fdf4df;--rsp-blue-faded:#ecf8fe;--rsp-dark-blue-faded:#ebf2f9;--rsp-green-faded:#ecf4ed;--rsp-red-faded:#fbebed;--rsp-pink-faded:#fceff5;--rsp-wp-blue-faded:#c6e0ef;--rsp-background-block-color:var(--rsp-white);--rsp-background-color:#f0f0f1;--rsp-input-background-color:#fff;--rsp-input-text-color:var(--rsp-text-color);--rsp-input-border-color:var(--rsp-grey-400);--rsp-text-color:rgba(26,26,26,0.9);--rsp-text-color-invert:rgba(255,255,255,0.9);--rsp-text-color-white:rgba(255,255,255,0.9);--rsp-text-color-light:rgba(69,69,82,0.9);--rsp-text-color-hover:var(--rsp-green);--rsp-grey-100:#fafafa;--rsp-grey-200:#f7f7f7;--rsp-grey-300:#ededed;--rsp-grey-400:#c6c6c6;--rsp-grey-500:#737373;--rsp-grey-600:#696969;--rsp-color-success:var(--rsp-green);--rsp-color-error:var(--rsp-red);--rsp-color-warning:var(--rsp-yellow);--rsp-color-open:var(--rsp-yellow);--rsp-color-disabled:var(--rsp-grey-300);--rsp-fs-100:.6875rem;--rsp-fs-200:.75rem;--rsp-fs-300:.8125rem;--rsp-fs-400:.875rem;--rsp-fs-500:1rem;--rsp-fs-600:1.125rem;--rsp-fs-700:1.25rem;--rsp-fs-800:1.5rem;--rsp-fs-850:2.8rem;--rsp-fs-900:3.5rem}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}.rsssl{font-variant-numeric:tabular-nums;margin:0;margin-left:-20px;font-size:var(--rsp-fs-300);box-sizing:border-box;color:var(--rsp-text-color);font-weight:400;line-height:1.5}@media only screen and (max-width:768px){.rsssl{margin-left:-9px}}.rsssl *,.rsssl *:before,.rsssl *:after{box-sizing:inherit}.rsssl body,.rsssl h1,.rsssl h2,.rsssl h3,.rsssl h4,.rsssl h5,.rsssl h6,.rsssl p,.rsssl ol,.rsssl ul{margin:0;padding:0}.rsssl img{max-width:100%;height:auto}.rsssl h1,.rsssl h2,.rsssl h3,.rsssl h4,.rsssl h5,.rsssl h6{color:var(--rsp-text-color);line-height:1.5}.rsssl .rsssl-h0{font-size:var(--rsp-fs-900);font-weight:700;letter-spacing:.025rem}.rsssl h1,.rsssl .rsssl-h1{font-size:var(--rsp-fs-800);line-height:1.5;font-weight:500;letter-spacing:.025rem}.rsssl h2,.rsssl .rsssl-h2{font-size:var(--rsp-fs-700);font-weight:700;letter-spacing:.025rem}.rsssl h3,.rsssl .rsssl-h3{font-size:var(--rsp-fs-600);font-weight:600;letter-spacing:.0125rem}.rsssl h4,.rsssl .rsssl-h4{font-size:var(--rsp-fs-500);font-weight:600;letter-spacing:.0125rem}.rsssl h5,.rsssl .rsssl-h5{font-size:var(--rsp-fs-400);font-weight:400;letter-spacing:.1px}.rsssl h6,.rsssl .rsssl-h6{font-size:var(--rsp-fs-300);letter-spacing:.1px}.rsssl p{color:var(--rsp-text-color);font-weight:400;font-size:var(--rsp-fs-300);line-height:1.5}.rsssl .rsssl-small-text{font-size:var(--rsp-fs-200);line-height:1.5;color:var(--rsp-text-color-light)}.rsssl a{font-size:1em}.rsssl .rsssl-notice-hook-element{display:none !important}.rsssl .rsssl-divider{width:1px;height:1.3rem;background-color:#ccc}.error:not(.really-simple-plugins),.notice:not(.really-simple-plugins),.update-nag:not(.really-simple-plugins),.notice-info:not(.really-simple-plugins){display:none !important}.error.really-simple-plugins,.notice.really-simple-plugins,.update-nag.really-simple-plugins,.notice-info.really-simple-plugins{margin:var(--rsp-grid-gap)}.rsssl .rsssl-header,.rsssl .rsssl-content-area{max-width:clamp(300px,100% - var(--rsp-grid-gap) * 2,1600px);margin:0 auto}@media(max-width:1599px){.rsssl .rsssl-header,.rsssl .rsssl-content-area{--rsp-grid-gap:var(--rsp-spacing-m)}}@media(max-width:1440px){.rsssl .rsssl-header,.rsssl .rsssl-content-area{--rsp-grid-gap:var(--rsp-spacing-s)}}@media(max-width:1366px){.rsssl .rsssl-header,.rsssl .rsssl-content-area{--rsp-grid-gap:var(--rsp-spacing-xs)}}.rsssl .rsssl-header-container .rsssl-header{display:flex;flex-wrap:wrap;justify-content:space-between;height:70px;box-sizing:border-box;background-color:var(--rsp-background-block-color)}@media(max-width:1080px){.rsssl .rsssl-header-container .rsssl-header{height:100%}}@media(max-width:576px){.rsssl .rsssl-logo{display:none}}.rsssl .rsssl-header-left{display:flex;font-size:var(--rsp-fs-400)}@media(max-width:1080px){.rsssl .rsssl-header-left{justify-content:center;margin:var(--rsp-spacing-xs) 0;order:3;width:100%;background-color:var(--rsp-background-block-color)}}.rsssl .rsssl-header-left .rsssl-header-menu{margin:auto 15px}.rsssl .rsssl-header-left .rsssl-header-menu ul{display:flex}.rsssl .rsssl-header-left .rsssl-header-menu li{margin-bottom:0}.rsssl .rsssl-header-left .rsssl-header-menu a{padding:23px 15px;text-decoration:none;color:var(--rsp-text-color);height:100%;border-bottom:4px solid transparent;transition:border .3s ease-out;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}@media(max-width:1080px){.rsssl .rsssl-header-left .rsssl-header-menu a{padding:10px 15px}}.rsssl .rsssl-header-left .rsssl-header-menu a.active{border-bottom:4px solid var(--rsp-brand-primary)}.rsssl .rsssl-header-left .rsssl-header-menu a:hover{color:var(--rsp-brand-primary)}.rsssl .rsssl-header-right{display:flex;flex-wrap:wrap;align-items:center;margin-left:auto;gap:var(--rsp-spacing-s);min-height:52px}.rsssl .rsssl-header-right select{max-width:60ch}@media(max-width:576px){.rsssl .rsssl-header-right{display:none}}@media(max-width:768px){.rsssl .rsssl-header-right .button{display:none}}.rsssl .rsssl-content-area{margin-top:var(--rsp-grid-gap)}.rsssl .rsssl-header-container{background:var(--rsp-background-block-color)}.rsssl .rsssl-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:max-content;gap:var(--rsp-grid-gap);min-height:calc(100vh - 32px - 80px - 20px - var(--rsp-grid-gap))}.rsssl .rsssl-grid.rsssl-settings,.rsssl .rsssl-grid.rsssl-letsencrypt{grid-template-columns:minmax(235px,max-content) 2fr minmax(min-content,1fr)}@media only screen and (max-width:1080px){.rsssl .rsssl-grid.rsssl-settings,.rsssl .rsssl-grid.rsssl-letsencrypt{grid-template-columns:repeat(4,1fr)}.rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-menu,.rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-settings,.rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-help,.rsssl .rsssl-grid.rsssl-letsencrypt .rsssl-wizard-menu,.rsssl .rsssl-grid.rsssl-letsencrypt .rsssl-wizard-settings,.rsssl .rsssl-grid.rsssl-letsencrypt .rsssl-wizard-help{grid-column:1/-1}}@media only screen and (max-width:1280px){.rsssl .rsssl-grid{grid-template-columns:repeat(2,1fr)}}@media only screen and (max-width:1080px){.rsssl .rsssl-grid{max-width:790px;width:calc(100% - var(--rsp-grid-gap) * 2)}}.rsssl .rsssl-grid-item{background:var(--rsp-background-block-color);box-shadow:var(--rsp-box-shadow);border-radius:var(--rsp-border-radius);display:flex;flex-wrap:wrap;justify-content:flex-start;flex-direction:column;flex-basis:100%;grid-column:span 1;grid-row:span 1}.rsssl .rsssl-grid-item.rsssl-disabled{min-height:320px}.rsssl .rsssl-grid-item.rsssl-two_fa_users .rsssl-grid-item-content .rsssl-field-wrap{margin-top:-50px}@media(max-width:1080px){.rsssl .rsssl-grid-item{grid-column:span 4}}.rsssl .rsssl-grid-item.no-background{background:0;border:0;box-shadow:none}.rsssl .rsssl-grid-item.rsssl-column-2{grid-column:span 2}@media(max-width:1080px){.rsssl .rsssl-grid-item.rsssl-column-2{grid-column:span 4}}.rsssl .rsssl-grid-item.rsssl-row-2{grid-row:span 2;min-height:400px}.rsssl .rsssl-grid-item-header{width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;min-height:calc(30px + var(--rsp-spacing-s) * 2);padding:var(--rsp-spacing-m) var(--rsp-spacing-l)}@media screen and (max-width:1280px){.rsssl .rsssl-grid-item-header{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl .rsssl-grid-item-header{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl .rsssl-grid-item-header:empty{display:none}.rsssl .rsssl-grid-item-title{margin:4px 0 4px 0}.rsssl .rsssl-grid-item-controls{font-size:var(--rsp-fs-200);display:flex;gap:var(--rsp-spacing-s)}.rsssl .rsssl-grid-item-content{width:100%;box-sizing:border-box;padding-inline:var(--rsp-spacing-l);flex-grow:100}@media screen and (max-width:1280px){.rsssl .rsssl-grid-item-content{padding-inline:var(--rsp-spacing-m)}}@media screen and (max-width:1080px){.rsssl .rsssl-grid-item-content{padding-inline:var(--rsp-spacing-s)}}.rsssl .rsssl-grid-item-content:empty{display:none}.rsssl .rsssl-grid-item-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--rsp-grid-margin);width:100%;min-height:calc(30px + var(--rsp-spacing-s) * 2);box-sizing:border-box;padding:var(--rsp-spacing-m) var(--rsp-spacing-l);align-self:flex-end}@media screen and (max-width:1280px){.rsssl .rsssl-grid-item-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl .rsssl-grid-item-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl .rsssl-grid-item-footer .rsssl-legend{display:flex}.rsssl .rsssl-grid-item-footer .rsssl-legend span{padding-left:5px}.rsssl .rsssl-grid-item-footer:empty{display:none}.rsssl .rsssl-grid-item .rsssl-flex-push-right{margin-left:auto}.rsssl .rsssl-grid-item .rsssl-flex-push-left{margin-right:auto}.rsssl-header-container .rsssl-header{display:flex;justify-content:space-between;height:70px;box-sizing:border-box}.rsssl-header-container .rsssl-header img{margin:auto 0;height:26px}.rsssl-header-container .rsssl-header .rsssl-header-menu{display:flex;align-items:center;height:100%;padding:0 20px;box-sizing:border-box}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item{display:flex;align-items:center;height:100%;padding:0 20px;box-sizing:border-box}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item:first-child{margin-left:0}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item:last-child{margin-right:0}.rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item.rsssl-header-menu-item-active{background-color:#f5f5f5}.rsssl-header-container .rsssl-header .rsssl-header-actions{display:flex;align-items:center;margin-left:auto;gap:var(--rsp-spacing-s)}.rsssl-header-container .rsssl-header .rsssl-header-actions select{max-width:60ch}.rsssl-grid .border-to-border .rsssl-grid-item-content{padding:0}.rsssl-grid .border-to-border .rsssl-grid-item-content>*{padding-inline:var(--rsp-spacing-l);width:100%;display:flex;flex-wrap:wrap;align-items:center}.rsssl-grid .border-to-border.rsssl-ssllabs .rsssl-grid-item-content>*,.rsssl-grid .border-to-border.rsssl-wpvul .rsssl-grid-item-content>*{padding-left:0;padding-right:0}.rsssl .rsssl-wpvul .rsssl-icon{margin-top:5px}.rsssl .rsssl-ssl-labs-select,.rsssl .rsssl-hardening-select{background:var(--rsp-grey-200);padding-inline:var(--rsp-spacing-l);padding-block:var(--rsp-spacing-m);display:grid;width:100%;grid-template-columns:calc(50% - var(--rsp-spacing-s) / 2) calc(50% - var(--rsp-spacing-s) / 2);gap:var(--rsp-spacing-s);transition:background-color .3s ease-in-out}.rsssl .rsssl-ssl-labs-select.rsssl-error,.rsssl .rsssl-hardening-select.rsssl-error{background:var(--rsp-red-faded)}.rsssl .rsssl-ssl-labs-select.rsssl-warning,.rsssl .rsssl-hardening-select.rsssl-warning{background:var(--rsp-yellow-faded)}.rsssl .rsssl-ssl-labs-select.rsssl-success,.rsssl .rsssl-hardening-select.rsssl-success{background:var(--rsp-green-faded)}.rsssl .rsssl-ssl-labs-select-item,.rsssl .rsssl-hardening-select-item{border-radius:var(--rsp-border-radius-xs);display:flex;flex-direction:column;justify-content:center;text-align:center;padding-block:var(--rsp-spacing-s);justify-items:center;flex-wrap:wrap;background:var(--rsp-white);min-height:118px}.rsssl .rsssl-ssl-labs-select-item.active,.rsssl .rsssl-hardening-select-item.active{box-shadow:inset 0 0 3px 2px var(--rsp-green-faded);border:2px solid var(--rsp-green)}.rsssl .rsssl-ssl-labs-select-item h2,.rsssl .rsssl-hardening-select-item h2{margin-top:var(--rsp-spacing-xxs);font-weight:800}.rsssl .rsssl-ssl-labs-select-item h2.big-number,.rsssl .rsssl-hardening-select-item h2.big-number{font-size:var(--rsp-fs-850)}.rsssl .rsssl-ssl-labs-select-item span,.rsssl .rsssl-hardening-select-item span{display:flex;gap:3px;justify-content:center;font-size:var(--rsp-fs-100)}.rsssl .rsssl-ssl-labs-list,.rsssl .rsssl-hardening-list{width:100%}.rsssl .rsssl-ssl-labs-list-item,.rsssl .rsssl-hardening-list-item{width:100%;display:grid;justify-items:flex-start;grid-template-columns:auto 1fr auto;gap:var(--rsp-spacing-s);padding-block:var(--rsp-spacing-xs);padding-inline:var(--rsp-spacing-l)}.rsssl .rsssl-ssl-labs-list-item:nth-of-type(even),.rsssl .rsssl-hardening-list-item:nth-of-type(even){background:var(--rsp-grey-200)}.rsssl .rsssl-ssl-labs-list-item-text,.rsssl .rsssl-hardening-list-item-text{width:100%;margin-right:auto}.rsssl .rsssl-ssl-labs-list-item-number,.rsssl .rsssl-hardening-list-item-number{font-weight:600}.rsssl .rsssl-ssl-labs-list-item .rsssl-icon,.rsssl .rsssl-hardening-list-item .rsssl-icon{align-items:start;margin-top:2px}.rsssl .rsssl-ssl-labs-select-item{padding-inline:var(--rsp-spacing-s);gap:var(--rsp-spacing-xxs)}.rsssl .rsssl-ssl-labs .rsssl-score-snippet{max-width:100%;overflow:hidden;text-overflow:ellipsis;height:18px;line-height:18px;padding-inline:var(--rsp-spacing-xxs);font-size:var(--rsp-fs-100);border-radius:var(--rsp-border-radius-xs);color:var(--rsp-text-color);text-align:left}.rsssl .rsssl-ssl-labs .rsssl-score-snippet.rsssl-hover{height:initial;line-height:initial}.rsssl .rsssl-ssl-labs .rsssl-score-snippet.rsssl-test-inactive{background-color:var(--rsp-grey-200);color:var(--rsp-color-disabled)}.rsssl .rsssl-ssl-labs .rsssl-score-snippet.rsssl-test-processing{background-color:var(--rsp-yellow);color:var(--rsp-black)}.rsssl .rsssl-ssl-labs .rsssl-score-snippet.rsssl-test-success{background-color:var(--rsp-color-success);color:var(--rsp-text-color-white)}.rsssl .rsssl-ssl-labs .rsssl-score-snippet.rsssl-test-error{background-color:var(--rsp-brand-primary);color:var(--rsp-black)}.rsssl .rsssl-hardening-select-item .rsssl-badge{margin-top:var(--rsp-spacing-xxs)}.rsssl-gridblock-progress-container.rsssl-error .rsssl-gridblock-progress{background:var(--rsp-color-warning)}.rsssl-gridblock-progress-container.rsssl-inactive{height:4px;width:100%;display:flex;background:var(--rsp-grey-300)}.rsssl-gridblock-progress-container.rsssl-inactive .rsssl-gridblock-progress{transition:width 1s ease-in-out;background:var(--rsp-green)}.rsssl .rsssl-field-button button.button{display:flex}.rsssl a.button,.rsssl button.button,.rsssl input.button,.rsssl span.button{font-size:var(--rsp-fs-300);font-weight:400;transition:all .3s ease;min-height:10px}.rsssl a.button.button-secondary,.rsssl a.button.button-default,.rsssl button.button.button-secondary,.rsssl button.button.button-default,.rsssl input.button.button-secondary,.rsssl input.button.button-default,.rsssl span.button.button-secondary,.rsssl span.button.button-default{background:transparent}.rsssl a.button .rsssl-icon,.rsssl button.button .rsssl-icon,.rsssl input.button .rsssl-icon,.rsssl span.button .rsssl-icon{padding-top:7px;padding-left:7px}.rsssl a.button.button-black,.rsssl button.button.button-black,.rsssl input.button.button-black,.rsssl span.button.button-black{border:1px solid var(--rsp-black);background:var(--rsp-black);color:var(--rsp-text-color-white)}.rsssl a.button.button-black:hover,.rsssl a.button.button-black:focus,.rsssl a.button.button-black:active,.rsssl button.button.button-black:hover,.rsssl button.button.button-black:focus,.rsssl button.button.button-black:active,.rsssl input.button.button-black:hover,.rsssl input.button.button-black:focus,.rsssl input.button.button-black:active,.rsssl span.button.button-black:hover,.rsssl span.button.button-black:focus,.rsssl span.button.button-black:active{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--rsp-black)}.rsssl a.button.button-tertiary,.rsssl a.button.button-red,.rsssl button.button.button-tertiary,.rsssl button.button.button-red,.rsssl input.button.button-tertiary,.rsssl input.button.button-red,.rsssl span.button.button-tertiary,.rsssl span.button.button-red{border:0 solid transparent;background:var(--rsp-red);color:var(--rsp-text-color-white)}.rsssl a.button.button-tertiary:hover,.rsssl a.button.button-tertiary:focus,.rsssl a.button.button-tertiary:active,.rsssl a.button.button-red:hover,.rsssl a.button.button-red:focus,.rsssl a.button.button-red:active,.rsssl button.button.button-tertiary:hover,.rsssl button.button.button-tertiary:focus,.rsssl button.button.button-tertiary:active,.rsssl button.button.button-red:hover,.rsssl button.button.button-red:focus,.rsssl button.button.button-red:active,.rsssl input.button.button-tertiary:hover,.rsssl input.button.button-tertiary:focus,.rsssl input.button.button-tertiary:active,.rsssl input.button.button-red:hover,.rsssl input.button.button-red:focus,.rsssl input.button.button-red:active,.rsssl span.button.button-tertiary:hover,.rsssl span.button.button-tertiary:focus,.rsssl span.button.button-tertiary:active,.rsssl span.button.button-red:hover,.rsssl span.button.button-red:focus,.rsssl span.button.button-red:active{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--rsp-red);background:var(--rsp-red);color:var(--rsp-text-color-white)}.rsssl a.rsssl-button-small,.rsssl button.rsssl-button-small,.rsssl input.rsssl-button-small{font-size:var(--rsp-fs-100);font-weight:300;min-height:auto}.rsssl .rsssl-button-small+.rsssl-button-small{margin-left:10px}.rsssl .rsssl-shortcode{right:10000px;position:absolute;background-color:#fff;padding:0;white-space:nowrap}.rsssl .shortcode{cursor:pointer}.rsssl .rsssl-action-buttons{display:flex;justify-content:flex-end}.rsssl .rsssl-action-buttons__inner{display:flex;justify-content:flex-end}.rsssl .rsssl-action-buttons__inner{float:right}.rsssl .rsssl-action-buttons__button{margin-right:10px}.rsssl .rsssl-action-buttons__inner:last-child{margin-right:0}.rsssl .rsssl-mixed-content-scan .rsssl-grid-item-content-footer{margin-left:0;margin-right:0;padding-left:25px}.rsssl .rsssl-mixed-content-scan .rsssl-grid-item-content-footer .button{display:block;margin-right:0;margin-left:0}.rsssl .rsssl-mixed-content-scan .rsssl-grid-item-content-footer .components-toggle-control{margin-top:12px}.rsssl .rsssl-mixed-content-scan .rsssl-grid-item-content-footer label{display:flex;align-items:center;justify-content:center}.rsssl .rsssl-bullet{height:13px;width:13px;flex:0 0 13px;border-radius:50%;display:inline-block;background-color:var(--rsp-grey-300)}.rsssl .rsssl-bullet.rsp-yellow{background-color:var(--rsp-yellow)}.rsssl .rsssl-bullet.rsp-blue{background-color:var(--rsp-blue)}.rsssl .rsssl-bullet.rsp-pink{background-color:var(--rsp-pink)}.rsssl .rsssl-bullet.rsp-red,.rsssl .rsssl-bullet.rsssl-bullet-error{background-color:var(--rsp-red)}.rsssl .rsssl-bullet.rsp-green,.rsssl .rsssl-bullet.rsssl-bullet-success{background-color:var(--rsp-green)}.rsssl .rsssl-bullet.rsp-blue-yellow{background:var(--rsp-blue);background:linear-gradient(77deg,#009fff 0,#009fff 30%,#f4bf3e 70%,#f4bf3e 100%);animation:gradient 2s ease infinite;background-size:200% 200%}.rsssl .rsssl-legend{display:flex;width:max-content;color:var(--rsp-text-color-light);align-items:center;min-width:0;gap:var(--rsp-spacing-xxs);text-decoration:none}.rsssl .rsssl-legend:first-of-type{margin-left:auto}@keyframes gradient{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}.rsssl-icon{display:flex;align-items:center;justify-content:center}.rsssl-icon>div{display:flex}.rsssl-icon svg{fill:currentColor}.rsssl-icon-loading svg{animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.rsssl-icon.rsssl-click-animation{animation:beat .4s ease-out}button.button .cmplz-icon.rsssl-icon-loading{padding-top:6px}button.button .cmplz-icon.rsssl-icon-loading>div{line-height:inherit}.rsssl .rsssl-badge{--badge-height:20px;height:var(--badge-height);line-height:var(--badge-height);padding-inline:8px;min-width:100px;text-align:center;border-radius:var(--rsp-border-radius-xs);color:var(--rsp-white);display:table;margin:auto auto;font-size:var(--rsp-fs-100)}.rsssl .rsssl-badge.rsp-dark{background-color:var(--rsp-black);color:var(--rsp-white)}.rsssl .rsssl-badge.rsp-low{background-color:var(--rsp-yellow-faded);color:var(--rsp-black)}.rsssl .rsssl-badge.rsp-medium{background-color:var(--rsp-yellow);color:var(--rsp-black)}.rsssl .rsssl-badge.rsp-high{background-color:var(--rsp-red-faded);color:var(--rsp-black)}.rsssl .rsssl-badge.rsp-critical{background-color:var(--rsp-red);color:var(--rsp-white)}.rsssl .rsssl-badge.rsp-success{background-color:var(--rsp-color-success);color:var(--rsp-white)}.rsssl .rsssl-badge.rsp-default{background-color:var(--rsp-grey-200);color:black}.rsssl .rsssl-badge-large{--badge-height:28px;height:var(--badge-height);line-height:var(--badge-height);padding:0 10px;text-align:center;border-radius:var(--rsp-border-radius-xs);color:var(--rsp-white);display:table;margin:auto auto;font-size:var(--rsp-fs-300);font-weight:400}.rsssl .rsssl-badge-large.rsp-dark{background-color:var(--rsp-black);color:var(--rsp-white)}.rsssl .rsssl-badge-large.rsp-risk-level-l{background-color:var(--rsp-yellow-faded);color:var(--rsp-black)}.rsssl .rsssl-badge-large.rsp-risk-level-m{background-color:var(--rsp-yellow);color:var(--rsp-black)}.rsssl .rsssl-badge-large.rsp-risk-level-h{background-color:var(--rsp-red-faded);color:var(--rsp-black)}.rsssl .rsssl-badge-large.rsp-risk-level-c{background-color:var(--rsp-red);color:var(--rsp-white)}.rsssl .rsssl-badge-large.rsp-success{background-color:var(--rsp-color-success);color:var(--rsp-white)}.rsssl .rsssl-badge-large.rsp-default{background-color:var(--rsp-grey-200);color:black}:root{--toastify-color-light:var(--rsp-white);--toastify-color-dark:var(--rsp-black);--toastify-color-info:var(--rsp-yellow);--toastify-color-success:var(--rsp-green);--toastify-color-warning:var(--rsp-orange);--toastify-color-error:var(--rsp-red);--toastify-color-transparent:rgba(255,255,255,0.7);--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--rsp-green);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-toast-width:320px;--toastify-toast-background:#fff;--toastify-toast-min-height:42px;--toastify-toast-max-height:800px;--toastify-font-family:sans-serif;--toastify-z-index:999999;--toastify-text-color-light:var(--rsp-text-color);--toastify-text-color-dark:var(--rsp-text-color-white);--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(to right,var(--rsp-green),#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--rsp-green);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error)}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index) px);position:fixed;padding:4px;width:var(--toastify-toast-width);box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:1em;left:1em}.Toastify__toast-container--top-center{top:calc(2em + 32px);left:50%;transform:translateX(-50%)}.Toastify__toast-container--top-right{top:1em;right:1em}.Toastify__toast-container--bottom-left{bottom:1em;left:1em}.Toastify__toast-container--bottom-center{bottom:1em;left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{bottom:1em;right:1em}@media only screen and (max-width :480px){.Toastify__toast-container{width:100vw;padding:0;left:0;margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:0;transform:translateX(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:0;transform:translateX(0)}.Toastify__toast-container--rtl{right:0;left:initial}}.Toastify__toast{position:relative;min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:var(--rsp-border-radius);border:1px solid #eee;box-shadow:0 1px 10px 0 rgba(0,0,0,0.1),0 2px 15px 0 rgba(0,0,0,0.05);box-shadow:var(--rsp-box-shadow);display:flex;justify-content:space-between;max-height:var(--toastify-toast-max-height);overflow:hidden;font-family:var(--toastify-font-family);cursor:default;direction:ltr;z-index:0}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{margin:auto 0;flex:1 1 auto;padding:6px;display:flex;align-items:center}.Toastify__toast-body>div:last-child{word-break:break-word;flex:1}.Toastify__toast-icon{margin-inline-end:10px;width:20px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.7s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width :480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--rsp-green)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:transparent;outline:0;border:0;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;align-self:flex-start}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes toastify__trackProgress{0%{transform:scaleX(1)}100%{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:5px;z-index:var(--toastify-z-index);opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:toastify__spin .65s linear infinite}@keyframes toastify__bounceInRight{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}from{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes toastify__bounceInLeft{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes toastify__bounceInUp{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}from{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translate3d(0,0,0)}}@keyframes toastify__bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes toastify__bounceInDown{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215,0.61,0.355,1)}0{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes toastify__bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:toastify__bounceOutDown}@keyframes toastify__zoomIn{from{opacity:0;transform:scale3d(0.3,0.3,0.3)}50%{opacity:1}}@keyframes toastify__zoomOut{from{opacity:1}50%{opacity:0;transform:scale3d(0.3,0.3,0.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:toastify__zoomIn}.Toastify__zoom-exit{animation-name:toastify__zoomOut}@keyframes toastify__flipIn{from{transform:perspective(400px) rotate3d(1,0,0,90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotate3d(1,0,0,-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{transform:perspective(400px) rotate3d(1,0,0,-5deg)}to{transform:perspective(400px)}}@keyframes toastify__flipOut{from{transform:perspective(400px)}30%{transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.Toastify__flip-enter{animation-name:toastify__flipIn}.Toastify__flip-exit{animation-name:toastify__flipOut}@keyframes toastify__slideInRight{from{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,0,0)}}@keyframes toastify__slideInLeft{from{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,0,0)}}@keyframes toastify__slideInUp{from{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,0,0)}}@keyframes toastify__slideInDown{from{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,0,0)}}@keyframes toastify__slideOutRight{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(110%,0,0)}}@keyframes toastify__slideOutLeft{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(-110%,0,0)}}@keyframes toastify__slideOutDown{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes toastify__slideOutUp{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:toastify__slideOutLeft}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:toastify__slideOutRight}.Toastify__slide-exit--top-center{animation-name:toastify__slideOutUp}.Toastify__slide-exit--bottom-center{animation-name:toastify__slideOutDown}@keyframes toastify__spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.rsssl-modal.rsssl-onboarding{width:clamp(300px,100ch,100vw)}.rsssl-modal.rsssl-onboarding .rsssl-logo{height:26px}.rsssl-modal.rsssl-onboarding .rsssl-modal-content{display:flex;padding-top:var(--rsp-spacing-m);line-height:2.2;min-height:295px}.rsssl-modal.rsssl-onboarding .rsssl-modal-content .rsssl-onboarding-placeholder{flex-grow:1}.rsssl-modal.rsssl-onboarding .rsssl-modal-content-step{display:flex;flex-direction:column;width:100%}.rsssl-modal.rsssl-onboarding .rsssl-modal-content .rsssl-processing{opacity:.5}.rsssl-modal.rsssl-onboarding .rsssl-modal-content ul li .rsssl-icon{margin-top:7px}.rsssl-modal.rsssl-onboarding .rsssl-modal-content ul li .components-button.is-link{padding:5px 0}.rsssl-grid-item.rsssl-progress .rsssl-grid-item-content{padding:0}.rsssl-grid-item.rsssl-progress .rsssl-placeholder{padding:var(--rsp-spacing-m) var(--rsp-spacing-l)}@media screen and (max-width:1280px){.rsssl-grid-item.rsssl-progress .rsssl-placeholder{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-grid-item.rsssl-progress .rsssl-placeholder{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-progress-block .rsssl-progress{overflow:hidden;height:20px;border-radius:5px;background-color:#f7f7f7}.rsssl-progress-block .rsssl-progress .rsssl-bar{height:100%;background-color:var(--rsp-color-success);transition:width 1s ease}.rsssl-progress-block .rsssl-progress .rsssl-bar.rsssl-orange{background-color:var(--rsp-color-warning)}.rsssl-progress-block .rsssl-progress-bar{padding:var(--rsp-spacing-m) var(--rsp-spacing-l);padding-block:0;border-radius:5px}@media screen and (max-width:1280px){.rsssl-progress-block .rsssl-progress-bar{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-progress-block .rsssl-progress-bar{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-progress-block .rsssl-progress-text{display:flex;align-items:center;padding:var(--rsp-spacing-m) var(--rsp-spacing-l);padding-block:var(--rsp-spacing-s);justify-content:flex-start;gap:var(--rsp-spacing-m)}@media screen and (max-width:1280px){.rsssl-progress-block .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-progress-block .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-progress-block .rsssl-progress-text .rsssl-progress-percentage{font-size:var(--rsp-fs-800);font-weight:700}.rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span{font-weight:500;font-size:var(--rsp-fs-600)}.rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span a{margin-left:3px}@media only screen and (max-width:1366px) and (min-width:1280px){.rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span{font-size:var(--rsp-fs-500)}}.rsssl-header-html{display:flex;color:var(--rsp-text-color-light)}.rsssl-header-html .rsssl-toggle-active{text-decoration:underline}.rsssl-task-switcher-container{display:flex;border-radius:var(--rsp-border-radius)}.rsssl-task-switcher-container .rsssl-task-switcher:first-of-type{border-right:1px solid var(--rsp-grey-400);padding-right:10px}.rsssl-task-switcher-container .rsssl-task-switcher:last-of-type{padding-left:10px}.rsssl-task-switcher{font-size:var(--rsp-fs-200);cursor:pointer;transition:.3s}.rsssl-task-switcher:hover{text-decoration:underline}.rsssl-active-filter-remaining .rsssl-remaining-tasks,.rsssl-active-filter-all .rsssl-all-tasks{text-decoration:underline}.rsssl-task-element{display:flex;align-items:flex-start;justify-content:center;gap:var(--rsp-spacing-m);padding-bottom:var(--rsp-spacing-s)}@media(max-width:1280px){.rsssl-task-element{gap:var(--rsp-spacing-xs)}}.rsssl-task-element .rsssl-task-message{flex:1;font-size:var(--rsp-fs-300)}.rsssl-task-element .rsssl-task-form{margin-top:var(--rsp-spacing-xxs);display:flex;gap:var(--rsp-spacing-xs)}.rsssl-task-element .rsssl-task-enable{cursor:pointer;line-height:1.5}.rsssl-task-element .rsssl-task-dismiss:hover{transform:scale(1.1)}.rsssl-task-element .rsssl-task-dismiss button{all:initial;cursor:pointer;padding:4px}.rsssl-task-element .rsssl-task-dismiss svg{height:12px;width:12px}.rsssl-scroll-container{padding:var(--rsp-spacing-m) var(--rsp-spacing-l);height:230px;overflow-y:auto;padding-block:0;padding-top:var(--rsp-spacing-s);border-radius:0}@media screen and (max-width:1280px){.rsssl-scroll-container{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-scroll-container{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-scroll-container::-webkit-scrollbar-track{border-radius:10px;-webkit-box-shadow:inset 0 0 2px rgba(0,0,0,0);background-color:transparent}.rsssl-scroll-container::-webkit-scrollbar{width:8px;border-radius:10px;background-color:var(--rsp-grey-300)}.rsssl-scroll-container::-webkit-scrollbar-thumb{background-color:var(--rsp-grey-400);border-radius:10px}.rsssl-progress-status-container{margin-right:40px}.rsssl-task-status,.rsssl-locked-overlay .rsssl-progress-status{display:block;min-width:100px;text-align:center;border-radius:var(--rsp-border-radius-xs);padding:4px 8px;font-size:var(--rsp-fs-100);font-weight:600}@media(max-width:1280px){.rsssl-task-status,.rsssl-locked-overlay .rsssl-progress-status{min-width:80px}}.rsssl-task-status.rsssl-completed,.rsssl-locked-overlay .rsssl-completed.rsssl-progress-status,.rsssl-task-status.rsssl-success,.rsssl-locked-overlay .rsssl-success.rsssl-progress-status{background-color:var(--rsp-color-success);color:var(--rsp-text-color-white)}.rsssl-task-status.rsssl-open,.rsssl-locked-overlay .rsssl-open.rsssl-progress-status{background-color:var(--rsp-color-open)}.rsssl-task-status.rsssl-warning,.rsssl-locked-overlay .rsssl-warning.rsssl-progress-status{background-color:var(--rsp-color-error);color:var(--rsp-text-color-white)}.rsssl-task-status.rsssl-premium,.rsssl-locked-overlay .rsssl-premium.rsssl-progress-status{background-color:var(--rsp-blue);color:var(--rsp-text-color-white)}.rsssl-task-status.rsssl-loading,.rsssl-locked-overlay .rsssl-loading.rsssl-progress-status{background-color:var(--rsp-grey-200)}@media(max-width:1080px){.rsssl-scroll-container .rsssl-task-status,.rsssl-scroll-container .rsssl-locked-overlay .rsssl-progress-status,.rsssl-locked-overlay .rsssl-scroll-container .rsssl-progress-status{aspect-ratio:1/1;min-width:10px;height:16px;border-radius:100%;text-indent:-9999px;white-space:nowrap}}.rsssl-plusone{min-width:15px;height:16px;font-size:var(--rsp-fs-100);line-height:1.5;display:inline-block;vertical-align:top;box-sizing:border-box;margin:1px 0 -1px 2px;padding:0 5px;border-radius:9px;background-color:#d63638;color:#fff;text-align:center}@media only screen and (max-width:1366px){.rsssl-footer-left{display:none}}.rsssl-datatable-placeholder div{background-color:var(--rsp-grey-300);height:25px}.rsssl-datatable-placeholder div:nth-child(even){background-color:#fff}.rsssl-rest-error-message{margin:30px}.rsssl-rest-error-message ul{list-style:disc;margin:20px}.rsssl-placeholder{box-sizing:border-box;width:100%;text-align:left;margin:0;padding-bottom:24px;color:#1e1e1e;-moz-font-smoothing:subpixel-antialiased;-webkit-font-smoothing:subpixel-antialiased;border-radius:2px;flex-grow:100}.rsssl-placeholder .rsssl-placeholder-line{float:left;width:100%;height:16px;margin-top:12px;border-radius:7px;background-image:linear-gradient(90deg,#ddd 0,#e8e8e8 40px,#ddd 80px);background-size:600px;animation:shine-lines 1.6s infinite linear}.rsssl-placeholder .rsssl-placeholder-line:last-of-type{margin-bottom:24px}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(1){width:65%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(2){width:80%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(3){width:61%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(4){width:86%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(5){width:82%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(6){width:62%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(7){width:96%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(8){width:86%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(9){width:87%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(10){width:61%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(11){width:84%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(12){width:62%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(13){width:83%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(14){width:94%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(15){width:100%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(16){width:76%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(17){width:77%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(18){width:94%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(19){width:64%}.rsssl-placeholder .rsssl-placeholder-line:nth-of-type(20){width:98%}.rsssl-placeholder .rsssl-placeholder-line ~ .rsssl-placeholder-line{background-color:#ddd}.rsssl-dashboard-placeholder.rsssl-grid-item.rsssl-row-2{grid-row:span 1}.rsssl-settings-placeholder .rsssl-grid-item{min-height:400px}.rsssl-menu-placeholder{min-height:400px}@keyframes shine-lines{0%{background-position:-400px}100%{background-position:220px}}.rsssl .rsssl-other-plugins .rsssl-placeholder{background-color:transparent}.rsssl .rsssl-other-plugins .rsp-logo img{height:20px}.rsssl .rsssl-other-plugins-container{display:flex !important;flex-direction:row;flex-wrap:wrap;margin-bottom:10px;font-size:var(--rsp-fs-300);line-height:1.7;gap:var(--rsp-spacing-xxs)}@media screen and (max-width:992px){.rsssl .rsssl-other-plugins-container{flex-direction:row;overflow:hidden}}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element{width:100%;display:flex;align-content:space-between;justify-content:space-between;gap:10px;--rsp-other-plugins-color:var(---rsp-brand-primary)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-zip-recipes{--rsp-other-plugins-color:var(--rsp-pink)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-burst-statistics{--rsp-other-plugins-color:var(--rsp-green)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-complianz-gdpr{--rsp-other-plugins-color:var(--rsp-blue)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-complianz-terms-conditions{--rsp-other-plugins-color:var(--rsp-black)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-really-simple-ssl{--rsp-other-plugins-color:var(--rsp-yellow)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a{width:max-content;color:var(--rsp-text-color-light);transition:color .3s ease;display:flex;align-items:center;min-width:0;gap:var(--rsp-spacing-xs);text-decoration:none}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover{color:var(--rsp-other-plugins-color);text-decoration:underline}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover .rsssl-bullet{background-color:var(--rsp-other-plugins-color)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover .rsssl-other-plugins-content{text-decoration:underline}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-bullet{transition:background-color .3s ease;background-color:var(--rsp-other-plugins-color)}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-other-plugins-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-other-plugin-status{min-width:fit-content}.rsssl-tips_tricks .rsssl-grid-item-header .rsssl-grid-item-controls{height:28px}.rsssl-tips-tricks-container{display:flex !important;flex-direction:row;flex-wrap:wrap;margin-bottom:10px;font-size:var(--rsp-fs-300);line-height:1.7;gap:var(--rsp-spacing-xxs)}@media screen and (max-width:992px){.rsssl-tips-tricks-container{flex-direction:row;overflow:hidden}}.rsssl-tips-tricks-container .rsssl-tips-tricks-element{width:calc(50% - var(--rsp-spacing-xxs))}@media(max-width:768px){.rsssl-tips-tricks-container .rsssl-tips-tricks-element{width:100%}}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a{color:var(--rsp-text-color-light);transition:color .3s ease;display:flex;align-items:center;gap:var(--rsp-spacing-xs);min-width:0;text-decoration:none}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover{color:var(--rsp-brand-primary);text-decoration:underline}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover svg path{fill:var(--rsp-brand-primary)}.rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover .rsssl-tips-tricks-content{text-decoration:underline}.rsssl-tips-tricks-container .rsssl-tips-tricks-element .rsssl-bullet{transition:background-color .3s ease;background-color:var(--rsp-grey-300)}.rsssl-tips-tricks-container .rsssl-tips-tricks-element .rsssl-tips-tricks-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rsssl div[class^=rsssl-wizard-] .rsssl-helplink{color:var(--rsp-text-color)}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item{position:relative;margin-bottom:var(--rsp-grid-gap)}@media(max-width:1080px){.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item{grid-column:span 4}}.rsssl div[class^=rsssl-wizard-].rsssl-column-2{grid-column:span 2}@media(max-width:1080px){.rsssl div[class^=rsssl-wizard-].rsssl-column-2{grid-column:span 4}}.rsssl div[class^=rsssl-wizard-] .rsssl-locked{position:absolute;z-index:10;top:0;left:0;bottom:0;right:0;background:rgba(255,255,255,0.8);border-radius:var(--rsp-border-radius)}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-shield-overlay{align-items:center;display:flex;justify-content:center;margin-top:30%}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay{z-index:1;position:absolute;display:flex;align-items:center;gap:var(--rsp-spacing-s);background-color:var(--rsp-white);padding:var(--rsp-spacing-m) var(--rsp-spacing-l);border-radius:var(--rsp-border-radius-s);margin:var(--rsp-spacing-s);box-shadow:var(--rsp-box-shadow);bottom:0;width:calc(100% - 2 * var(--rsp-spacing-s))}@media screen and (max-width:1280px){.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay .rsssl-open{float:left;margin-right:12px}.rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay .rsssl-progress-status{float:left;margin-right:20px}.rsssl div[class^=rsssl-wizard-]>div:nth-last-of-type(2){margin-bottom:0;border-radius:var(--rsp-border-radius) var(--rsp-border-radius) 0 0}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container{position:sticky;bottom:0;display:flex;flex-direction:column;z-index:12}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons a.button,.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons button{box-shadow:none !important}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons a.button:focus,.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons a.button:active,.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons button:focus,.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons button:active{box-shadow:none !important}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-scroll-progress-container{display:flex;flex-direction:column;width:100%;height:3px;background-color:var(--rsp-grey-300);overflow:hidden}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-scroll-progress{height:100%;background-color:var(--rsp-blue)}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer{background:var(--rsp-grey-100);padding:var(--rsp-spacing-m) var(--rsp-spacing-l);box-shadow:var(--rsp-box-shadow);border-radius:0 0 var(--rsp-border-radius) var(--rsp-border-radius);border-top:1px solid var(--rsp-grey-300);box-sizing:border-box;align-items:center;gap:var(--rsp-grid-margin);width:100%;min-height:20px;justify-content:space-around}@media screen and (max-width:1280px){.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer>div:last-of-type{margin-left:auto}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-buttons{display:flex;justify-content:flex-end;align-items:center;gap:var(--rsp-spacing-s)}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer .rsssl-legend{display:flex}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer .rsssl-legend span{padding-left:5px}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-upsell-bar .button{display:inline-block !important}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer:empty{display:none}.rsssl-wizard-help{display:flex;flex-wrap:wrap;align-content:flex-start;gap:var(--rsp-spacing-xs)}.rsssl-wizard-help details{font-size:var(--rsp-fs-200)}.rsssl-wizard-help details .rsssl-help-more-info{display:flex;flex-direction:row;margin-top:12px}.rsssl-wizard-help details summary{display:grid;grid-template-columns:1fr auto;justify-content:space-between;font-size:var(--rsp-fs-300);font-weight:600;cursor:pointer}.rsssl-wizard-help details summary::-webkit-details-marker{display:none}.rsssl-wizard-help details summary:first-of-type{list-style-type:none}.rsssl-wizard-help details summary .rsssl-icon{transition:all .3s ease-in-out;transform:rotate(0)}.rsssl-wizard-help code{white-space:pre-line;display:block}.rsssl-wizard-help summary,.rsssl-wizard-help p{font-size:var(--rsp-fs-200)}.rsssl-wizard-help details[open]{padding:var(--rsp-spacing-s) var(--rsp-spacing-m)}.rsssl-wizard-help details[open] summary{padding:0;padding-bottom:var(--rsp-spacing-xs)}.rsssl-wizard-help details[open] summary .rsssl-icon{transform:rotate(180deg)}.rsssl-wizard-help .rsssl-help-header{width:100%;display:flex;padding:10px}.rsssl-wizard-help .rsssl-help-header .rsssl-help-title{font-size:18px}.rsssl-wizard-help .rsssl-help-header .rsssl-help-control{margin-left:auto;cursor:pointer}.rsssl-wizard-help>div{flex-grow:1;width:100%}.rsssl-wizard-help-notice{width:100%;background:var(--rsp-background-block-color);box-shadow:var(--rsp-box-shadow);border-radius:var(--rsp-border-radius);border-radius:var(--rsp-border-radius-s);height:fit-content;background-color:var(--rsp-dark-blue-faded)}.rsssl-wizard-help-notice.rsssl-warning{background-color:var(--rsp-red-faded)}.rsssl-wizard-help-notice.rsssl-open{background-color:var(--rsp-yellow-faded)}.rsssl-wizard-help-notice summary,.rsssl-wizard-help-notice p{padding:var(--rsp-spacing-s) var(--rsp-spacing-m)}.rsssl-wizard-menu{height:fit-content;background:none !important;box-shadow:none !important}.rsssl-wizard-menu .rsssl-grid-item-header{padding-left:var(--rsp-spacing-xs)}.rsssl-wizard-menu .rsssl-grid-item-content{padding:0;padding-bottom:var(--rsp-spacing-l)}.rsssl-wizard-menu-items>.rsssl-menu-item>a{font-weight:600 !important;padding-inline:var(--rsp-spacing-xs) !important}.rsssl-wizard-menu-items .rsssl-main-menu .rsssl-active{border-radius:var(--rsp-border-radius-s);background:var(--rsp-yellow-faded);box-shadow:var(--rsp-box-shadow)}.rsssl-wizard-menu-items .rsssl-main-menu .rsssl-active a:hover{text-decoration:none}.rsssl-wizard-menu-items .rsssl-main-menu .rsssl-menu-item a span{font-weight:600}.rsssl-wizard-menu-items .rsssl-menu-item a{display:flex;align-items:center;gap:var(--rsp-spacing-xs);text-decoration:none;color:var(--rsp-text-color);font-size:var(--rsp-fs-400);padding-block:var(--rsp-spacing-xs);transition:all .2s ease-in-out;padding-left:var(--rsp-spacing-xs)}.rsssl-wizard-menu-items .rsssl-menu-item a:hover{text-decoration:underline}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-active>a{font-weight:600}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-active a:focus{box-shadow:none !important}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured.rsssl-active .rsssl-menu-item-beta-pill{color:var(--rsp-dark-blue)}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured a{flex-wrap:wrap}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured a .rsssl-menu-item-featured-pill{background:var(--rsp-green);color:var(--rsp-text-color-white);padding:4px 8px;border-radius:var(--rsp-border-radius-xs);font-size:var(--rsp-fs-100)}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured a .rsssl-menu-item-beta-pill{color:var(--rsp-dark-blue)}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-new .rsssl-menu-item-new-pill{background:var(--rsp-yellow);color:var(--rsp-text-color-dark);padding:4px 8px;border-radius:var(--rsp-border-radius-xs);font-size:var(--rsp-fs-100)}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-new.rsssl-active .rsssl-menu-item-new-pill{color:var(--rsp-text-color-dark)}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-new a{flex-wrap:wrap}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-premium a{flex-wrap:wrap}.rsssl-wizard-menu-items .rsssl-menu-item.rsssl-premium a .rsssl-menu-item-featured-pill{background:var(--rsp-dark-blue);color:var(--rsp-text-color-white);padding:2px 9px;border-radius:var(--rsp-border-radius);font-size:var(--rsp-fs-100)}.rsssl-wizard-menu-items .rsssl-premium-menu-item{background:var(--rsp-dark-blue-faded)}.rsssl-wizard-menu-items .rsssl-premium-menu-item div{display:flex;align-items:center;gap:var(--rsp-spacing-xs);text-decoration:none;color:var(--rsp-text-color);font-size:var(--rsp-fs-400);padding-block:var(--rsp-spacing-xs);padding-inline:var(--rsp-spacing-l);transition:all .2s ease-in-out;border-left:4px solid transparent}@media screen and (max-width:1280px){.rsssl-wizard-menu-items .rsssl-premium-menu-item div{padding-inline:var(--rsp-spacing-m)}}@media screen and (max-width:1080px){.rsssl-wizard-menu-items .rsssl-premium-menu-item div{padding-inline:var(--rsp-spacing-s)}}.rsssl-wizard-menu-items .rsssl-submenu-item a{padding-left:calc(var(--rsp-spacing-xs) + var(--rsp-spacing-s)) !important;font-size:var(--rsp-fs-300)}.rsssl-wizard-menu-items .rsssl-submenu-item .rsssl-active a{text-decoration:none;position:relative}.rsssl-wizard-menu-items .rsssl-submenu-item .rsssl-active a span{color:initial}.rsssl-wizard-menu-items .rsssl-submenu-item .rsssl-active a::before{content:"•";color:var(--rsp-dark-blue);font-size:3em;position:absolute;left:var(--rsp-spacing-xxs) !important;margin-bottom:7px}html{scroll-behavior:smooth}.rsssl div[class^=rsssl-wizard-] .components-flex{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.rsssl div[class^=rsssl-wizard-] .components-flex .components-flex-item label{margin:0}.rsssl div[class^=rsssl-wizard-] .components-flex .rsssl-tooltip{flex-grow:1}.rsssl div[class^=rsssl-wizard-] .components-flex .components-input-control__container{max-width:max-content}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-content label{font-size:var(--rsp-fs-300);font-weight:400;line-height:1.5;text-transform:unset;box-sizing:border-box;display:inherit;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rsssl div[class^=rsssl-wizard-] .components-base-control__field{margin-bottom:0}.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-base-control__field,.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-flex{display:flex;flex-direction:row-reverse;align-items:center;justify-content:space-between;width:100%}.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-base-control__field .components-form-toggle,.rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-flex .components-form-toggle{margin-right:0}.rsssl div[class^=rsssl-wizard-] select option{font-size:var(--rsp-fs-300)}.rsssl div[class^=rsssl-wizard-] .components-form-toggle.is-checked .components-form-toggle__track{background-color:var(--rsp-dark-blue)}.rsssl div[class^=rsssl-wizard-] input.components-form-toggle__input[type=checkbox]:disabled{background:var(--rsp-grey-100);opacity:.7}.rsssl div[class^=rsssl-wizard-] .rsssl-grid-item .rsssl-grid-item-content{padding:var(--rsp-spacing-xs) 0}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap .rsssl-comment{font-style:italic}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro{padding-block:var(--rsp-spacing-s);padding-inline:var(--rsp-spacing-l);overflow:hidden}@media screen and (max-width:1280px){.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro{padding-inline:var(--rsp-spacing-m)}}@media screen and (max-width:1080px){.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro{padding-inline:var(--rsp-spacing-s)}}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap>.rsssl-field-wrap,.rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro>.rsssl-field-wrap{padding:0}.rsssl div[class^=rsssl-wizard-] .rsssl-field-button{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center}.rsssl .rsssl-highlight{background-color:transparent;border-left:4px solid var(--rsp-green);-o-animation:fadeIt 3s ease-in-out;animation:fadeIt 3s ease-in-out;scroll-margin-top:100px;scroll-padding-top:100px}.rsssl .rsssl-block-highlight{border:0;-o-animation:pulse 2s infinite;animation:pulse 2s infinite}@-webkit-keyframes pulse{0%{-webkit-box-shadow:0 0 0 0 var(--rsp-green)}70%{-webkit-box-shadow:0 0 0 10px var(--rsp-green-faded)}100%{-webkit-box-shadow:0 0 0 0 var(--rsp-green-faded)}}@keyframes pulse{0%{-moz-box-shadow:0 0 0 0 var(--rsp-green);box-shadow:0 0 0 0 var(--rsp-green)}70%{-moz-box-shadow:0 0 0 10px var(--rsp-green-faded);box-shadow:0 0 0 10px var(--rsp-green-faded)}100%{-moz-box-shadow:0 0 0 0 var(--rsp-green-faded);box-shadow:0 0 0 0 var(--rsp-green-faded)}}@-o-keyframes fadeIt{0%{background-color:transparent}30%{background-color:var(--rsp-green-faded)}100%{border-right:0;background-color:inherit}}@keyframes fadeIt{0%{background-color:transparent;border-right:0}30%{background-color:var(--rsp-green-faded)}100%{background-color:inherit}}.rsssl-email-verified{position:absolute;bottom:23px;right:35px}.rsssl-license .rsssl-task-element{padding-top:var(--rsp-spacing-s);padding-bottom:0}.rsssl-license .rsssl-license-field{display:flex}.input-container{position:relative;display:inline-block;width:100%}input.rsssl-input.full{width:100%;padding-right:40px}input.rsssl-input.rsssl-error{border:2px solid var(--rsp-red);outline:0}input.rsssl-input.rsssl-error:focus{border-color:var(--rsp-red) !important}input.rsssl-input.rsssl-success{border:2px solid var(--rsp-green);outline:0}input.rsssl-input.rsssl-success:focus{border-color:var(--rsp-green) !important}.wp-core-ui select{flex-grow:1 !important;max-width:33%}.icon-button{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:0;background:0;cursor:pointer}.rsssl-group-filter{min-width:25%;max-width:100% !important}.rsssl .components-snackbar-list.edit-site-notices{width:max-content;position:fixed;bottom:var(--rsp-spacing-m);right:var(--rsp-spacing-l)}.rsssl .components-snackbar-list.edit-site-notices>div{margin-left:auto}.rsssl .components-snackbar-list.edit-site-notices .components-snackbar{background:var(--rsp-background-block-color);box-shadow:var(--rsp-box-shadow);border-radius:var(--rsp-border-radius);color:var(--rsp-color-success);background-color:#fff;font-weight:700;font-size:14px}.rsssl-mixed-content-scan .rsssl-mixed-content-placeholder{height:250px}.rsssl-mixed-content-scan .rsssl-mixed-content-placeholder div{background-color:var(--rsp-grey-200);margin:10px 0;height:20px}.rsssl-mixed-content-scan .rsssl-shield-overlay{height:250px;align-items:center;justify-content:center;display:flex}.rsssl-mixed-content-scan .rsssl-field-wrap .rdt_TableCell[data-column-id="2"]{display:grid}.rsssl-mixed-content-scan .rsssl-field-wrap .rdt_TableCol,.rsssl-mixed-content-scan .rsssl-field-wrap .rdt_TableCell{min-width:110px}.rsssl-mixed-content-scan .rsssl-progress-container .rsssl-progress-bar{border-radius:5px;height:20px;background-color:var(--rsp-green)}.rsssl-mixed-content-scan .rsssl-task-status,.rsssl-mixed-content-scan .rsssl-locked-overlay .rsssl-progress-status,.rsssl-locked-overlay .rsssl-mixed-content-scan .rsssl-progress-status{min-width:min-content}.rsssl-mixed-content-scan .rsssl-task-status.rsssl-warning,.rsssl-mixed-content-scan .rsssl-locked-overlay .rsssl-warning.rsssl-progress-status,.rsssl-locked-overlay .rsssl-mixed-content-scan .rsssl-warning.rsssl-progress-status{background-color:var(--rsp-yellow);color:var(--rsp-text-color)}.rsssl-mixed-content-scan button.button{line-height:1.5;min-height:10px}.rsssl-mixed-content-scan .rsssl-grid-item-content-footer{display:flex;gap:var(--rsp-spacing-s)}.rsssl-mixed-content-scan .rsssl-current-scan-action,.rsssl-mixed-content-scan .rsssl-mixed-content-description{margin:10px 5px;font-size:var(--rsp-fs-300)}.rsssl-learningmode-placeholder{height:150px}.rsssl-learningmode-placeholder div{background-color:var(--rsp-grey-200);margin:10px 0;height:20px}.rsssl-learning-mode-delete{cursor:pointer;background:0;border:0;font-size:1.5em;font-weight:700}.rsssl-locked-overlay .rsssl-open{float:left;margin-right:12px}.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-completed,.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-enforced{background-color:var(--rsp-color-success);color:#fff}.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode{background-color:var(--rsp-color-open)}.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-error{background-color:var(--rsp-color-error);color:#fff}.rsssl-locked-overlay .rsssl-progress-status.rsssl-disabled,.rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-disabled{background-color:var(--rsp-color-disabled)}.rsssl-learning-mode-footer{display:flex;align-items:center;justify-content:flex-start;gap:var(--rsp-spacing-s)}.rsssl-learning-mode-footer select{margin-left:auto}.rsssl-learning-mode-footer label{display:flex;align-items:center}.rsssl-learning-mode-footer label input{margin-top:0}.rsssl-lets-encrypt-tests{margin:var(--rsp-spacing-xs) var(--rsp-spacing-xl)}.rsssl-lets-encrypt-tests .rsssl-progress-bar{padding-block:0;margin-bottom:var(--rsp-spacing-m)}.rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress{overflow:hidden;height:var(--rsp-spacing-m);border-radius:5px;background-color:var(--rsp-grey-200)}.rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress .rsssl-bar{height:100%;background-color:var(--rsp-color-success)}.rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress .rsssl-bar.rsssl-orange{background-color:var(--rsp-color-warning)}.rsssl-lets-encrypt-tests p{margin-bottom:var(--rsp-spacing-m)}.rsssl-lets-encrypt-tests .rsssl-progress-text{display:flex;align-items:center;padding:var(--rsp-spacing-m) var(--rsp-spacing-l);padding-block:0;padding-top:var(--rsp-spacing-xs)}@media screen and (max-width:1280px){.rsssl-lets-encrypt-tests .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}@media screen and (max-width:1080px){.rsssl-lets-encrypt-tests .rsssl-progress-text{padding:var(--rsp-spacing-xs) var(--rsp-spacing-s)}}.rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-percentage{font-size:32px;font-weight:700}.rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-text-span{margin-left:35px;font-size:18px;font-weight:600}.rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-text-span a{margin-left:3px}.rsssl-lets-encrypt-tests ul li{display:flex;margin-bottom:15px}.rsssl-lets-encrypt-tests ul li .rsssl-icon{margin-right:7px}.rsssl-lets-encrypt-tests ul li ul li:before{background-color:var(--rsp-grey-500);color:#fff;height:6px;width:6px;border-radius:50%;content:"";position:absolute;margin-top:7px;margin-left:-19px}.rsssl-lets-encrypt-tests .rsssl-test-results ul li{display:block}.rsssl-lets-encrypt-tests .rsssl-test-results h4{margin:var(--rsp-spacing-m) 0}.rsssl-lets-encrypt-tests .rsssl-test-results a+button{margin-left:var(--rsp-spacing-m)}.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-certificate-data{display:none}.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div{display:flex;flex-direction:row;margin-right:20px}.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div .rsssl-dns-domain,.rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div .rsssl-dns-field{margin-right:var(--rsp-spacing-m);width:50%}.rsssl-lets-encrypt-tests .rsssl-modal-subtitle{display:none}.rsssl-lets-encrypt-tests .components-toggle-control{margin:20px 0}.rsssl div[class^=rsssl-wizard-] .rsssl-permissions_policy .rdt_TableCell,.rsssl div[class^=rsssl-wizard-] .rsssl-permissions_policy .rdt_TableCol{min-width:fit-content}.rsssl div[class^=rsssl-wizard-] .rsssl-permissions_policy .rsssl-locked .rsssl-shield-overlay{top:calc(100% - 300px)}.rsssl-vulnerability-action a.button{margin-left:10px}.rsssl-processing{opacity:.5}.rsssl-vulnerabilities_measures .rsssl-locked-overlay input[type=checkbox]{margin-top:0}.rsssl-field-wrap .rdt_TableCol,.rsssl-field-wrap .rdt_TableCell,.rsssl-field-wrap .rdt_TableCol_Sortable{flex-direction:row}.rsssl-field-wrap .rdt_TableCol:first-child,.rsssl-field-wrap .rdt_TableCell:first-child{min-width:initial}.rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child{flex-grow:0;flex-direction:row-reverse;min-width:initial}.rsssl-field-wrap .rdt_TableRow{padding:var(--rsp-spacing-xs) 0}.rsssl-field-wrap .rdt_TableRow:nth-child(odd){background-color:var(--rsp-grey-200)}.rsssl-field-wrap .rdt_TableRow .rdt_TableCell:last-child{flex-grow:0}.rsssl-field-wrap .rdt_TableRow .rsssl-status-allowed,.rsssl-field-wrap .rdt_TableRow .rsssl-status-revoked{min-width:110px;margin-right:10px}.rsssl-field-wrap .rsssl-csp-revoked>div:nth-child(-n+3){opacity:.3}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child{flex-grow:0;min-width:initial;justify-content:flex-end}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableRow .rdt_TableCell:last-child{flex-grow:0;min-width:initial}.rsssl-content_security_policy .rsssl-field-wrap .rsssl-csp-revoked>div:nth-child(-n+3){opacity:.3}nav.rdt_Pagination>div>svg{display:none !important}.rsssl-content_security_policy .rsssl-field-wrap>div>div,.rsssl-xml_rpc .rsssl-field-wrap>div>div{overflow-x:inherit;overflow-y:inherit}.rsssl-permissions_policy .rdt_TableRow .rdt_TableCell:last-child{min-width:fit-content}.rsssl-permissions_policy .rdt_TableRow .rdt_TableCell:last-child .components-input-control__container{min-width:fit-content}.rsssl-mixed-content-datatable>div>div{display:flex}.rsssl-vulnerabilities_measures .rdt_TableRow .rdt_TableCell:nth-child(3){max-width:50%}.rsssl-vulnerabilities_overview .rsssl-field-wrap,.two_fa_users_table .rsssl-field-wrap,.rsssl-vulnerabilities_measures .rsssl-field-wrap,.rsssl-limit_login_attempts_country .rsssl-field-wrap,.rsssl-limit_login_attempts_users .rsssl-field-wrap,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap,.rsssl-mixed-content-scan .rsssl-field-wrap,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap,.rsssl-permissions_policy .rsssl-field-wrap,.rsssl-content_security_policy .rsssl-field-wrap,.rsssl-two_fa_users .rsssl-field-wrap,.rsssl-hardening-xml .rsssl-field-wrap{margin-left:calc(-1 * var(--rsp-spacing-l));margin-right:calc(-1 * var(--rsp-spacing-l))}@media(max-width:1280px){.rsssl-vulnerabilities_overview .rsssl-field-wrap,.two_fa_users_table .rsssl-field-wrap,.rsssl-vulnerabilities_measures .rsssl-field-wrap,.rsssl-limit_login_attempts_country .rsssl-field-wrap,.rsssl-limit_login_attempts_users .rsssl-field-wrap,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap,.rsssl-mixed-content-scan .rsssl-field-wrap,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap,.rsssl-permissions_policy .rsssl-field-wrap,.rsssl-content_security_policy .rsssl-field-wrap,.rsssl-two_fa_users .rsssl-field-wrap,.rsssl-hardening-xml .rsssl-field-wrap{margin-left:calc(-1 * var(--rsp-spacing-m));margin-right:calc(-1 * var(--rsp-spacing-m))}}@media(max-width:1080px){.rsssl-vulnerabilities_overview .rsssl-field-wrap,.two_fa_users_table .rsssl-field-wrap,.rsssl-vulnerabilities_measures .rsssl-field-wrap,.rsssl-limit_login_attempts_country .rsssl-field-wrap,.rsssl-limit_login_attempts_users .rsssl-field-wrap,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap,.rsssl-mixed-content-scan .rsssl-field-wrap,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap,.rsssl-permissions_policy .rsssl-field-wrap,.rsssl-content_security_policy .rsssl-field-wrap,.rsssl-two_fa_users .rsssl-field-wrap,.rsssl-hardening-xml .rsssl-field-wrap{margin-left:calc(-1 * var(--rsp-spacing-s));margin-right:calc(-1 * var(--rsp-spacing-s))}}.rsssl-vulnerabilities_overview .rsssl-field-wrap>.components-base-control,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-comment,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-progress-container,.rsssl-vulnerabilities_overview .rsssl-field-wrap>div>button,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-current-scan-action,.two_fa_users_table .rsssl-field-wrap>.components-base-control,.two_fa_users_table .rsssl-field-wrap .rsssl-comment,.two_fa_users_table .rsssl-field-wrap .rsssl-progress-container,.two_fa_users_table .rsssl-field-wrap>div>button,.two_fa_users_table .rsssl-field-wrap .rsssl-learning-mode-footer,.two_fa_users_table .rsssl-field-wrap .rsssl-mixed-content-description,.two_fa_users_table .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-vulnerabilities_measures .rsssl-field-wrap>.components-base-control,.rsssl-vulnerabilities_measures .rsssl-field-wrap .rsssl-comment,.rsssl-vulnerabilities_measures .rsssl-field-wrap .rsssl-progress-container,.rsssl-vulnerabilities_measures .rsssl-field-wrap>div>button,.rsssl-vulnerabilities_measures .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-vulnerabilities_measures .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-vulnerabilities_measures .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-limit_login_attempts_country .rsssl-field-wrap>.components-base-control,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-comment,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-progress-container,.rsssl-limit_login_attempts_country .rsssl-field-wrap>div>button,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-limit_login_attempts_users .rsssl-field-wrap>.components-base-control,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-comment,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-progress-container,.rsssl-limit_login_attempts_users .rsssl-field-wrap>div>button,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap>.components-base-control,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-comment,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-progress-container,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap>div>button,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-mixed-content-scan .rsssl-field-wrap>.components-base-control,.rsssl-mixed-content-scan .rsssl-field-wrap .rsssl-comment,.rsssl-mixed-content-scan .rsssl-field-wrap .rsssl-progress-container,.rsssl-mixed-content-scan .rsssl-field-wrap>div>button,.rsssl-mixed-content-scan .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-mixed-content-scan .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-mixed-content-scan .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap>.components-base-control,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-comment,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-progress-container,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap>div>button,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-permissions_policy .rsssl-field-wrap>.components-base-control,.rsssl-permissions_policy .rsssl-field-wrap .rsssl-comment,.rsssl-permissions_policy .rsssl-field-wrap .rsssl-progress-container,.rsssl-permissions_policy .rsssl-field-wrap>div>button,.rsssl-permissions_policy .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-permissions_policy .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-permissions_policy .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-content_security_policy .rsssl-field-wrap>.components-base-control,.rsssl-content_security_policy .rsssl-field-wrap .rsssl-comment,.rsssl-content_security_policy .rsssl-field-wrap .rsssl-progress-container,.rsssl-content_security_policy .rsssl-field-wrap>div>button,.rsssl-content_security_policy .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-content_security_policy .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-content_security_policy .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-two_fa_users .rsssl-field-wrap>.components-base-control,.rsssl-two_fa_users .rsssl-field-wrap .rsssl-comment,.rsssl-two_fa_users .rsssl-field-wrap .rsssl-progress-container,.rsssl-two_fa_users .rsssl-field-wrap>div>button,.rsssl-two_fa_users .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-two_fa_users .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-two_fa_users .rsssl-field-wrap .rsssl-current-scan-action,.rsssl-hardening-xml .rsssl-field-wrap>.components-base-control,.rsssl-hardening-xml .rsssl-field-wrap .rsssl-comment,.rsssl-hardening-xml .rsssl-field-wrap .rsssl-progress-container,.rsssl-hardening-xml .rsssl-field-wrap>div>button,.rsssl-hardening-xml .rsssl-field-wrap .rsssl-learning-mode-footer,.rsssl-hardening-xml .rsssl-field-wrap .rsssl-mixed-content-description,.rsssl-hardening-xml .rsssl-field-wrap .rsssl-current-scan-action{margin-left:var(--rsp-spacing-l);margin-right:var(--rsp-spacing-l)}.rsssl-vulnerabilities_overview .rdt_TableCell:first-child,.rsssl-vulnerabilities_overview .rdt_TableCol:first-child,.two_fa_users_table .rdt_TableCell:first-child,.two_fa_users_table .rdt_TableCol:first-child,.rsssl-vulnerabilities_measures .rdt_TableCell:first-child,.rsssl-vulnerabilities_measures .rdt_TableCol:first-child,.rsssl-limit_login_attempts_country .rdt_TableCell:first-child,.rsssl-limit_login_attempts_country .rdt_TableCol:first-child,.rsssl-limit_login_attempts_users .rdt_TableCell:first-child,.rsssl-limit_login_attempts_users .rdt_TableCol:first-child,.rsssl-limit_login_attempts_event_log .rdt_TableCell:first-child,.rsssl-limit_login_attempts_event_log .rdt_TableCol:first-child,.rsssl-mixed-content-scan .rdt_TableCell:first-child,.rsssl-mixed-content-scan .rdt_TableCol:first-child,.rsssl-limit_login_attempts_ip_address .rdt_TableCell:first-child,.rsssl-limit_login_attempts_ip_address .rdt_TableCol:first-child,.rsssl-permissions_policy .rdt_TableCell:first-child,.rsssl-permissions_policy .rdt_TableCol:first-child,.rsssl-content_security_policy .rdt_TableCell:first-child,.rsssl-content_security_policy .rdt_TableCol:first-child,.rsssl-two_fa_users .rdt_TableCell:first-child,.rsssl-two_fa_users .rdt_TableCol:first-child,.rsssl-hardening-xml .rdt_TableCell:first-child,.rsssl-hardening-xml .rdt_TableCol:first-child{padding-left:var(--rsp-spacing-l);padding-right:var(--rsp-spacing-l)}.rsssl-vulnerabilities_overview .rdt_TableCell:last-child,.rsssl-vulnerabilities_overview .rdt_TableCol:last-child,.two_fa_users_table .rdt_TableCell:last-child,.two_fa_users_table .rdt_TableCol:last-child,.rsssl-vulnerabilities_measures .rdt_TableCell:last-child,.rsssl-vulnerabilities_measures .rdt_TableCol:last-child,.rsssl-limit_login_attempts_country .rdt_TableCell:last-child,.rsssl-limit_login_attempts_country .rdt_TableCol:last-child,.rsssl-limit_login_attempts_users .rdt_TableCell:last-child,.rsssl-limit_login_attempts_users .rdt_TableCol:last-child,.rsssl-limit_login_attempts_event_log .rdt_TableCell:last-child,.rsssl-limit_login_attempts_event_log .rdt_TableCol:last-child,.rsssl-mixed-content-scan .rdt_TableCell:last-child,.rsssl-mixed-content-scan .rdt_TableCol:last-child,.rsssl-limit_login_attempts_ip_address .rdt_TableCell:last-child,.rsssl-limit_login_attempts_ip_address .rdt_TableCol:last-child,.rsssl-permissions_policy .rdt_TableCell:last-child,.rsssl-permissions_policy .rdt_TableCol:last-child,.rsssl-content_security_policy .rdt_TableCell:last-child,.rsssl-content_security_policy .rdt_TableCol:last-child,.rsssl-two_fa_users .rdt_TableCell:last-child,.rsssl-two_fa_users .rdt_TableCol:last-child,.rsssl-hardening-xml .rdt_TableCell:last-child,.rsssl-hardening-xml .rdt_TableCol:last-child{padding-right:var(--rsp-spacing-l)}.rsssl-search-bar{float:right;padding:0}.rsssl-search-bar__inner{display:flex;align-items:center;background-color:gray;border-radius:3px;transition:background-color .3s ease}.rsssl-search-bar__inner:focus-within{background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,0.1)}.rsssl-search-bar__input{border:0;outline:0;background:gray;padding:3px 5px;width:150px;transition:width .3s ease}.rsssl-search-bar__input:focus{width:200px}.rsssl-container{padding:2em;display:flex;align-items:center;justify-content:space-between}.rsssl-multiselect-datatable-form{display:flex;align-items:center;Justify-content:space-between;width:100%;padding:1em 2em;background:var(--rsp-blue-faded)}.rdt_TableRow .rdt_TableCell:last-child{min-width:20px}.rdt_TableRow .rdt_TableCell:last-child button,.rdt_TableRow .rdt_TableCell:last-child span{min-width:20px}.rsssl-content_security_policy .rdt_TableCell,.rsssl-content_security_policy .rdt_TableCol,.rsssl-hardening-xml .rdt_TableCell,.rsssl-hardening-xml .rdt_TableCol,.rsssl-vulnerabilities_overview .rdt_TableCell,.rsssl-vulnerabilities_overview .rdt_TableCol,.rsssl-limit_login_attempts_ip_address .rdt_TableCell,.rsssl-limit_login_attempts_ip_address .rdt_TableCol,.rsssl-limit_login_attempts_users .rdt_TableCell,.rsssl-limit_login_attempts_users .rdt_TableCol,.rsssl-limit_login_attempts_country .rdt_TableCell,.rsssl-limit_login_attempts_country .rdt_TableCol,.rsssl-limit_login_attempts_event_log .rdt_TableCell,.rsssl-limit_login_attempts_event_log .rdt_TableCol{min-width:initial}.rsssl-content_security_policy .rdt_Pagination,.rsssl-hardening-xml .rdt_Pagination,.rsssl-vulnerabilities_overview .rdt_Pagination,.rsssl-limit_login_attempts_ip_address .rdt_Pagination,.rsssl-limit_login_attempts_users .rdt_Pagination,.rsssl-limit_login_attempts_country .rdt_Pagination,.rsssl-limit_login_attempts_event_log .rdt_Pagination{margin-top:0;padding:0 25px}.rsssl-content_security_policy .rdt_tableCell:has(div>.rsssl-action-buttons),.rsssl-hardening-xml .rdt_tableCell:has(div>.rsssl-action-buttons),.rsssl-vulnerabilities_overview .rdt_tableCell:has(div>.rsssl-action-buttons),.rsssl-limit_login_attempts_ip_address .rdt_tableCell:has(div>.rsssl-action-buttons),.rsssl-limit_login_attempts_users .rdt_tableCell:has(div>.rsssl-action-buttons),.rsssl-limit_login_attempts_country .rdt_tableCell:has(div>.rsssl-action-buttons),.rsssl-limit_login_attempts_event_log .rdt_tableCell:has(div>.rsssl-action-buttons){position:relative}.rsssl-content_security_policy .rsssl-field-wrap,.rsssl-hardening-xml .rsssl-field-wrap,.rsssl-vulnerabilities_overview .rsssl-field-wrap,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap,.rsssl-limit_login_attempts_users .rsssl-field-wrap,.rsssl-limit_login_attempts_country .rsssl-field-wrap,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap{padding:0}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child,.rsssl-hardening-xml .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child{flex-grow:1}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child,.rsssl-hardening-xml .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child{flex-grow:1}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child,.rsssl-hardening-xml .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child{padding:0;flex-direction:row}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child,.rsssl-hardening-xml .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child{padding:0 25px;flex-direction:row}.rsssl-content_security_policy .rsssl-field-wrap .rsssl-learning-mode-delete,.rsssl-hardening-xml .rsssl-field-wrap .rsssl-learning-mode-delete,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-learning-mode-delete,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-learning-mode-delete,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-learning-mode-delete,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-learning-mode-delete,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-learning-mode-delete{float:right}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableCell:last-child div,.rsssl-hardening-xml .rsssl-field-wrap .rdt_TableCell:last-child div,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableCell:last-child div,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableCell:last-child div,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableCell:last-child div,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableCell:last-child div,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableCell:last-child div{width:100%}.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableCell:last-child div button,.rsssl-content_security_policy .rsssl-field-wrap .rdt_TableCell:last-child div a,.rsssl-hardening-xml .rsssl-field-wrap .rdt_TableCell:last-child div button,.rsssl-hardening-xml .rsssl-field-wrap .rdt_TableCell:last-child div a,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableCell:last-child div button,.rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableCell:last-child div a,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableCell:last-child div button,.rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableCell:last-child div a,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableCell:last-child div button,.rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableCell:last-child div a,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableCell:last-child div button,.rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableCell:last-child div a,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableCell:last-child div button,.rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableCell:last-child div a{margin-left:10px}.rsssl-vulnerabilities_measures .rdt_TableCell:nth-child(2) select{max-width:100%}.rsssl-hardening-xml .rdt_TableCol:first-child{padding:0 25px !important}.rsssl-hardening-xml .rdt_TableCell:last-child{padding:0 25px !important}.rsssl-hardening-xml .rdt_TableRow .rdt_TableCell:last-child{flex:1;display:flex;justify-content:flex-end}.rsssl-content_security_policy .rdt_TableCol:last-child,.rsssl-permissions_policy .rdt_TableCol:last-child{flex-grow:1;text-align:right}.rsssl-content_security_policy .rdt_TableCol:last-child div,.rsssl-permissions_policy .rdt_TableCol:last-child div{width:100%;display:flex;justify-content:flex-start}.rsssl-content_security_policy .rdt_TableCell:last-child,.rsssl-permissions_policy .rdt_TableCell:last-child{flex-grow:1;text-align:right}.rsssl-content_security_policy .rdt_TableCell:last-child div,.rsssl-permissions_policy .rdt_TableCell:last-child div{width:100%;display:flex;justify-content:flex-end}.rsssl-content_security_policy .rdt_TableCell:last-child div button,.rsssl-permissions_policy .rdt_TableCell:last-child div button{margin-right:0 !important}.rsssl .rsssl-new-features-block .rsssl-grid-item-content{display:flex;flex-direction:column;justify-content:space-between}.rsssl .rsssl-new-features{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--rsp-spacing-xs)}@media only screen and (max-width:1599px) and (min-width:1280px){.rsssl .rsssl-new-features{gap:var(--rsp-spacing-xxs)}}.rsssl .rsssl-new-feature{width:100%;color:var(--rsp-text-color-light);display:flex;align-items:flex-start;min-width:0;gap:var(--rsp-spacing-xs);text-decoration:none}.rsssl .rsssl-new-feature .rsssl-icon{margin-top:2px}.rsssl .rsssl-new-feature .rsssl-new-feature-desc p{font-size:var(--rsp-fs-300)}a.rsssl-skip-link{display:flex;justify-content:center;margin:15px 0 20px}.rsssl-two_fa_users div[data-column-id="4"].rdt_TableCol{display:none}.rsssl-two_fa_users .rdt_TableRow .rdt_TableCell:last-child{flex:1;display:flex;justify-content:flex-end}.rsssl-two_fa_users .rdt_TableHeadRow .rdt_TableCol:last-child{flex-grow:1;display:flex;justify-content:flex-end}.rsssl-modal .rsssl-intro-logo{width:7em;position:absolute;right:1.6em;height:auto;bottom:.15em;margin:0;padding:0}@media(max-width:768px){.rsssl-modal .rsssl-intro-logo{display:none}}.rsssl-modal .rsssl-ssl-intro-container .rsssl-details{display:flex;padding:var(--rsp-spacing-xs) var(--rsp-spacing-m);gap:var(--rsp-spacing-xs)}.rsssl-modal .rsssl-ssl-intro-container .rsssl-details .rsssl-icon{min-width:25px}.rsssl-modal .rsssl-modal-footer{padding:var(--rsp-spacing-m) var(--rsp-spacing-m)}.rsssl-modal .icon-spin{animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.rsssl .rsssl-locked.rsssl-locked-premium .rsssl-locked-overlay{bottom:var(--rsp-spacing-s);flex-direction:column}.rsssl .rsssl-locked .rsssl-locked-overlay{display:flex;bottom:0;text-align:left;margin-bottom:20px;padding:0}.rsssl .rsssl-locked .rsssl-locked-overlay.rsssl-premium{bottom:0;flex-direction:column}.rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-header{width:100%;flex-direction:row}.rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-header .rsssl-locked-header-title{font-weight:600;color:var(--rsp-blue)}.rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-content{flex-direction:row;width:100%}.rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-footer{display:flex;align-items:center;justify-content:flex-start;width:100%}.rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-footer a{position:relative;float:left !important}.rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-footer::after{content:"";display:table;clear:both}.rsssl .rsssl-disabled .rsssl-field-wrap .rsssl-locked{background:transparent}.rsssl-accordeon{border:1px solid #ccc;border-radius:5px;overflow:hidden;transition:all .3s ease}.rsssl-accordeon__header{display:flex;justify-content:space-between;align-items:center;background-color:#f5f5f5;padding:10px;cursor:pointer}.rsssl-accordeon__header__inner{display:flex;align-items:center}.rsssl-accordeon__header__icon{width:20px;height:20px;margin-right:10px}.rsssl-accordeon__header__title{font-size:16px;font-weight:bold}.rsssl-accordeon__header__button__inner{background:0;border:0;cursor:pointer;font-size:18px}.rsssl-accordeon__content{max-height:0;overflow:hidden;transition:max-height .3s ease}.rsssl-accordeon--open .rsssl-accordeon__content{max-height:300px}.rsssl-accordeon__content__inner{padding:15px;background-color:#fff}.rsssl div[class^=rsssl-wizard-] .rsssl-tooltip-icon .react-tooltip{max-width:300px;white-space:pre-wrap}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap label{display:flex}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap label .cmplz-label-text{margin-right:10px}.rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap .rsssl-icon{cursor:pointer}.rsssl .rsssl-skeleton:empty{margin:auto;margin-bottom:25px;width:100%;height:235px;background-image:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,0.5) 70%,rgba(255,255,255,0.5) 15%),linear-gradient(#f2f2f2 38px,transparent 0),linear-gradient(#f2f2f2 38px,transparent 0),linear-gradient(#f2f2f2 38px,transparent 0),linear-gradient(#f2f2f2 38px,transparent 0);background-repeat:repeat-y;background-size:50px 200px,100% 117px,100% 117px,100% 117px,100% 117px;background-position:0 0,1px 1px,1px 40px,1px 79px,1px 118px;background-color:#d6d8db;border-right:1px solid #d6d8db;animation:shine 2.5s infinite}@keyframes shine{to{background-position:100% 0,1px 1px,1px 40px,1px 79px,1px 118px}}.rsssl .rsssl-loader{margin:0;width:50px;height:15px;text-align:center;font-size:10px}.rsssl .rsssl-loader>div{margin:1px;background-color:#333;height:100%;width:3px;display:inline-block;-webkit-animation:sk-stretchdelay 1.2s infinite ease-in-out;animation:sk-stretchdelay 1.2s infinite ease-in-out}.rsssl .rsssl-loader.rsssl-loader-white>div{background-color:#fff}.rsssl .rsssl-loader .rect2{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.rsssl .rsssl-loader .rect3{-webkit-animation-delay:-1s;animation-delay:-1s}.rsssl .rsssl-loader .rect4{-webkit-animation-delay:-0.9s;animation-delay:-0.9s}.rsssl .rsssl-loader .rect5{-webkit-animation-delay:-0.8s;animation-delay:-0.8s}.rsssl .button-primary .rsssl-loader div{background-color:#fff}@-webkit-keyframes sk-stretchdelay{0%,40%,100%{-webkit-transform:scaleY(0.4)}20%{-webkit-transform:scaleY(1)}}@keyframes sk-stretchdelay{0%,40%,100%{transform:scaleY(0.4);-webkit-transform:scaleY(0.4)}20%{transform:scaleY(1);-webkit-transform:scaleY(1)}}.rsssl{--rsp-brand-primary:var(--rsp-yellow);--rsp-brand-secondary:var(--rsp-blue);--rsp-brand-primary-faded:var(--rsp-yellow-faded)}PK!?t4s##assets/css/index.phpnu[ PK!GYQQassets/css/admin.cssnu[@charset "UTF-8"; /** * * Prefix everything * Name descriptively * Structure radically * * CSS Structure * css/ * ├─ admin/ * │ ├─ base.scss * │ ├─ layout.scss * │ ├─ modules/ * │ │ ├─ modal.scss * │ │ ├─ button.scss * │ │ ├─ modal.scss * │ │ ├─ notices.scss * │ │ ├─ tips-and-tricks.scss * │ │ ├─ etc..... * │ ├─ states.scss * │ ├─ theme.scss * ├─ admin.scss * ├─ admin.min.css * ├─ admin.css * ├─ variables.scss * */ :root { --rsp-spacing-xxs: 5px; --rsp-spacing-xs: 10px; --rsp-spacing-s: 15px; --rsp-spacing-m: 20px; --rsp-spacing-l: 25px; --rsp-spacing-xl: 30px; --rsp-grid-margin: var(--rsp-spacing-s); --rsp-grid-gap: var(--rsp-spacing-m); --rsp-border-radius: 12px; --rsp-border-radius-s: 8px; --rsp-border-radius-xs: 3px; --rsp-border: 1px solid var(--rsp-border-color); --rsp-box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px; --rsp-box-shadow-dark: rgba(0, 0, 0, 0.2) 0px 4px 6px -1px, rgba(0, 0, 0, 0.12) 1px 0px 4px 1px; --rsp-border-color: #dfdfdf; --rsp-black: #333; --rsp-white: #fff; --rsp-yellow: #fbc43e; --rsp-blue: #009fff; --rsp-dark-yellow: #e6a800; --rsp-dark-blue: #1E73BE; --rsp-green: #2e8a37; --rsp-red: #D7263D; --rsp-dark-red: #9b0212; --rsp-pink: #E35899; --rsp-wp-blue: #007cba; --rsp-yellow-faded: #fdf4df; --rsp-blue-faded: #ecf8fe; --rsp-dark-blue-faded: #ebf2f9; --rsp-green-faded: #ecf4ed; --rsp-red-faded: #fbebed; --rsp-pink-faded: #fceff5; --rsp-wp-blue-faded: #c6e0ef; --rsp-background-block-color: var(--rsp-white); --rsp-background-color: #f0f0f1; --rsp-input-background-color: #fff; --rsp-input-text-color: var(--rsp-text-color); --rsp-input-border-color: var(--rsp-grey-400); --rsp-text-color: rgba(26, 26, 26, 0.9); --rsp-text-color-invert: rgba(255, 255, 255, 0.9); --rsp-text-color-white: rgba(255, 255, 255, 0.9); --rsp-text-color-light: rgba(69, 69, 82, 0.9); --rsp-text-color-hover: var(--rsp-green); --rsp-grey-100: #fafafa; --rsp-grey-200: #f7f7f7; --rsp-grey-300: #ededed; --rsp-grey-400: #c6c6c6; --rsp-grey-500: #737373; --rsp-grey-600: #696969; --rsp-color-success: var(--rsp-green); --rsp-color-error: var(--rsp-red); --rsp-color-warning: var(--rsp-yellow); --rsp-color-open: var(--rsp-yellow); --rsp-color-disabled: var(--rsp-grey-300); --rsp-fs-100: 0.6875rem; --rsp-fs-200: 0.75rem; --rsp-fs-300: 0.8125rem; --rsp-fs-400: 0.875rem; --rsp-fs-500: 1rem; --rsp-fs-600: 1.125rem; --rsp-fs-700: 1.25rem; --rsp-fs-800: 1.5rem; --rsp-fs-850: 2.8rem; --rsp-fs-900: 3.5rem; } @keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } } .rsssl { font-variant-numeric: tabular-nums; margin: 0; margin-left: -20px; font-size: var(--rsp-fs-300); box-sizing: border-box; color: var(--rsp-text-color); font-weight: 400; line-height: 1.5; } @media only screen and (max-width: 768px) { .rsssl { margin-left: -9px; } } .rsssl *, .rsssl *:before, .rsssl *:after { box-sizing: inherit; } .rsssl body, .rsssl h1, .rsssl h2, .rsssl h3, .rsssl h4, .rsssl h5, .rsssl h6, .rsssl p, .rsssl ol, .rsssl ul { margin: 0; padding: 0; } .rsssl img { max-width: 100%; height: auto; } .rsssl h1, .rsssl h2, .rsssl h3, .rsssl h4, .rsssl h5, .rsssl h6 { color: var(--rsp-text-color); line-height: 1.5; } .rsssl .rsssl-h0 { font-size: var(--rsp-fs-900); font-weight: 700; letter-spacing: 0.025rem; } .rsssl h1, .rsssl .rsssl-h1 { font-size: var(--rsp-fs-800); line-height: 1.5; font-weight: 500; letter-spacing: 0.025rem; } .rsssl h2, .rsssl .rsssl-h2 { font-size: var(--rsp-fs-700); font-weight: 700; letter-spacing: 0.025rem; } .rsssl h3, .rsssl .rsssl-h3 { font-size: var(--rsp-fs-600); font-weight: 600; letter-spacing: 0.0125rem; } .rsssl h4, .rsssl .rsssl-h4 { font-size: var(--rsp-fs-500); font-weight: 600; letter-spacing: 0.0125rem; } .rsssl h5, .rsssl .rsssl-h5 { font-size: var(--rsp-fs-400); font-weight: 400; letter-spacing: 0.1px; } .rsssl h6, .rsssl .rsssl-h6 { font-size: var(--rsp-fs-300); letter-spacing: 0.1px; } .rsssl p { color: var(--rsp-text-color); font-weight: 400; font-size: var(--rsp-fs-300); line-height: 1.5; } .rsssl .rsssl-small-text { font-size: var(--rsp-fs-200); line-height: 1.5; color: var(--rsp-text-color-light); } .rsssl a { font-size: 1em; } .rsssl .rsssl-notice-hook-element { display: none !important; } .rsssl .rsssl-divider { width: 1px; height: 1.3rem; background-color: #cccccc; } .error:not(.really-simple-plugins), .notice:not(.really-simple-plugins), .update-nag:not(.really-simple-plugins), .notice-info:not(.really-simple-plugins) { display: none !important; } .error.really-simple-plugins, .notice.really-simple-plugins, .update-nag.really-simple-plugins, .notice-info.really-simple-plugins { margin: var(--rsp-grid-gap); } /* Grid */ .rsssl .rsssl-header, .rsssl .rsssl-content-area { max-width: clamp(300px, 100% - var(--rsp-grid-gap) * 2, 1600px); margin: 0 auto; } @media (max-width: 1599px) { .rsssl .rsssl-header, .rsssl .rsssl-content-area { --rsp-grid-gap: var(--rsp-spacing-m); } } @media (max-width: 1440px) { .rsssl .rsssl-header, .rsssl .rsssl-content-area { --rsp-grid-gap: var(--rsp-spacing-s); } } @media (max-width: 1366px) { .rsssl .rsssl-header, .rsssl .rsssl-content-area { --rsp-grid-gap: var(--rsp-spacing-xs); } } .rsssl .rsssl-header-container .rsssl-header { display: flex; flex-wrap: wrap; justify-content: space-between; height: 70px; box-sizing: border-box; background-color: var(--rsp-background-block-color); } @media (max-width: 1080px) { .rsssl .rsssl-header-container .rsssl-header { height: 100%; } } @media (max-width: 576px) { .rsssl .rsssl-logo { display: none; } } .rsssl .rsssl-header-left { display: flex; font-size: var(--rsp-fs-400); } @media (max-width: 1080px) { .rsssl .rsssl-header-left { justify-content: center; margin: var(--rsp-spacing-xs) 0; order: 3; width: 100%; background-color: var(--rsp-background-block-color); } } .rsssl .rsssl-header-left .rsssl-header-menu { margin: auto 15px; } .rsssl .rsssl-header-left .rsssl-header-menu ul { display: flex; } .rsssl .rsssl-header-left .rsssl-header-menu li { margin-bottom: 0; } .rsssl .rsssl-header-left .rsssl-header-menu a { padding: 23px 15px; text-decoration: none; color: var(--rsp-text-color); height: 100%; border-bottom: 4px solid transparent; transition: border 0.3s ease-out; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; } @media (max-width: 1080px) { .rsssl .rsssl-header-left .rsssl-header-menu a { padding: 10px 15px; } } .rsssl .rsssl-header-left .rsssl-header-menu a.active { border-bottom: 4px solid var(--rsp-brand-primary); } .rsssl .rsssl-header-left .rsssl-header-menu a:hover { color: var(--rsp-brand-primary); } .rsssl .rsssl-header-right { display: flex; flex-wrap: wrap; align-items: center; margin-left: auto; gap: var(--rsp-spacing-s); min-height: 52px; } .rsssl .rsssl-header-right select { max-width: 60ch; } @media (max-width: 576px) { .rsssl .rsssl-header-right { display: none; } } @media (max-width: 768px) { .rsssl .rsssl-header-right .button { display: none; } } .rsssl .rsssl-content-area { margin-top: var(--rsp-grid-gap); } .rsssl .rsssl-header-container { background: var(--rsp-background-block-color); } .rsssl .rsssl-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: max-content; gap: var(--rsp-grid-gap); min-height: calc(100vh - 32px - 80px - 20px - var(--rsp-grid-gap)); } .rsssl .rsssl-grid.rsssl-settings, .rsssl .rsssl-grid.rsssl-letsencrypt { grid-template-columns: minmax(235px, max-content) 2fr minmax(min-content, 1fr); } @media only screen and (max-width: 1080px) { .rsssl .rsssl-grid.rsssl-settings, .rsssl .rsssl-grid.rsssl-letsencrypt { grid-template-columns: repeat(4, 1fr); } .rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-menu, .rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-settings, .rsssl .rsssl-grid.rsssl-settings .rsssl-wizard-help, .rsssl .rsssl-grid.rsssl-letsencrypt .rsssl-wizard-menu, .rsssl .rsssl-grid.rsssl-letsencrypt .rsssl-wizard-settings, .rsssl .rsssl-grid.rsssl-letsencrypt .rsssl-wizard-help { grid-column: 1/-1; } } @media only screen and (max-width: 1280px) { .rsssl .rsssl-grid { grid-template-columns: repeat(2, 1fr); } } @media only screen and (max-width: 1080px) { .rsssl .rsssl-grid { max-width: 790px; width: calc(100% - var(--rsp-grid-gap) * 2); } } .rsssl .rsssl-grid-item { background: var(--rsp-background-block-color); box-shadow: var(--rsp-box-shadow); border-radius: var(--rsp-border-radius); display: flex; flex-wrap: wrap; justify-content: flex-start; flex-direction: column; flex-basis: 100%; grid-column: span 1; grid-row: span 1; } .rsssl .rsssl-grid-item.rsssl-disabled { min-height: 320px; } .rsssl .rsssl-grid-item.rsssl-two_fa_users .rsssl-grid-item-content .rsssl-field-wrap { margin-top: -50px; } @media (max-width: 1080px) { .rsssl .rsssl-grid-item { grid-column: span 4; } } .rsssl .rsssl-grid-item.no-background { background: none; border: none; box-shadow: none; } .rsssl .rsssl-grid-item.rsssl-column-2 { grid-column: span 2; } @media (max-width: 1080px) { .rsssl .rsssl-grid-item.rsssl-column-2 { grid-column: span 4; } } .rsssl .rsssl-grid-item.rsssl-row-2 { grid-row: span 2; min-height: 400px; } .rsssl .rsssl-grid-item-header { width: 100%; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; min-height: calc(30px + var(--rsp-spacing-s) * 2); padding: var(--rsp-spacing-m) var(--rsp-spacing-l); } @media screen and (max-width: 1280px) { .rsssl .rsssl-grid-item-header { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } @media screen and (max-width: 1080px) { .rsssl .rsssl-grid-item-header { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } .rsssl .rsssl-grid-item-header:empty { display: none; } .rsssl .rsssl-grid-item-title { margin: 4px 0 4px 0; } .rsssl .rsssl-grid-item-controls { font-size: var(--rsp-fs-200); display: flex; gap: var(--rsp-spacing-s); } .rsssl .rsssl-grid-item-content { width: 100%; box-sizing: border-box; padding-inline: var(--rsp-spacing-l); flex-grow: 100; } @media screen and (max-width: 1280px) { .rsssl .rsssl-grid-item-content { padding-inline: var(--rsp-spacing-m); } } @media screen and (max-width: 1080px) { .rsssl .rsssl-grid-item-content { padding-inline: var(--rsp-spacing-s); } } .rsssl .rsssl-grid-item-content:empty { display: none; } .rsssl .rsssl-grid-item-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--rsp-grid-margin); width: 100%; min-height: calc(30px + var(--rsp-spacing-s) * 2); box-sizing: border-box; padding: var(--rsp-spacing-m) var(--rsp-spacing-l); align-self: flex-end; } @media screen and (max-width: 1280px) { .rsssl .rsssl-grid-item-footer { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } @media screen and (max-width: 1080px) { .rsssl .rsssl-grid-item-footer { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } .rsssl .rsssl-grid-item-footer .rsssl-legend { display: flex; } .rsssl .rsssl-grid-item-footer .rsssl-legend span { padding-left: 5px; } .rsssl .rsssl-grid-item-footer:empty { display: none; } .rsssl .rsssl-grid-item .rsssl-flex-push-right { margin-left: auto; } .rsssl .rsssl-grid-item .rsssl-flex-push-left { margin-right: auto; } .rsssl-header-container .rsssl-header { display: flex; justify-content: space-between; height: 70px; box-sizing: border-box; } .rsssl-header-container .rsssl-header img { margin: auto 0; height: 26px; } .rsssl-header-container .rsssl-header .rsssl-header-menu { display: flex; align-items: center; height: 100%; padding: 0 20px; box-sizing: border-box; } .rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item { display: flex; align-items: center; height: 100%; padding: 0 20px; box-sizing: border-box; } .rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item:first-child { margin-left: 0; } .rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item:last-child { margin-right: 0; } .rsssl-header-container .rsssl-header .rsssl-header-menu .rsssl-header-menu-item.rsssl-header-menu-item-active { background-color: #f5f5f5; } .rsssl-header-container .rsssl-header .rsssl-header-actions { display: flex; align-items: center; margin-left: auto; gap: var(--rsp-spacing-s); } .rsssl-header-container .rsssl-header .rsssl-header-actions select { max-width: 60ch; } .rsssl-grid .border-to-border .rsssl-grid-item-content { padding: 0; } .rsssl-grid .border-to-border .rsssl-grid-item-content > * { padding-inline: var(--rsp-spacing-l); width: 100%; display: flex; flex-wrap: wrap; align-items: center; } .rsssl-grid .border-to-border.rsssl-ssllabs .rsssl-grid-item-content > *, .rsssl-grid .border-to-border.rsssl-wpvul .rsssl-grid-item-content > * { padding-left: 0; padding-right: 0; } .rsssl .rsssl-wpvul .rsssl-icon { margin-top: 5px; } .rsssl .rsssl-ssl-labs-select, .rsssl .rsssl-hardening-select { background: var(--rsp-grey-200); padding-inline: var(--rsp-spacing-l); padding-block: var(--rsp-spacing-m); display: grid; width: 100%; grid-template-columns: calc(50% - var(--rsp-spacing-s) / 2) calc(50% - var(--rsp-spacing-s) / 2); gap: var(--rsp-spacing-s); transition: background-color 0.3s ease-in-out; } .rsssl .rsssl-ssl-labs-select.rsssl-error, .rsssl .rsssl-hardening-select.rsssl-error { background: var(--rsp-red-faded); } .rsssl .rsssl-ssl-labs-select.rsssl-warning, .rsssl .rsssl-hardening-select.rsssl-warning { background: var(--rsp-yellow-faded); } .rsssl .rsssl-ssl-labs-select.rsssl-success, .rsssl .rsssl-hardening-select.rsssl-success { background: var(--rsp-green-faded); } .rsssl .rsssl-ssl-labs-select-item, .rsssl .rsssl-hardening-select-item { border-radius: var(--rsp-border-radius-xs); display: flex; flex-direction: column; justify-content: center; text-align: center; padding-block: var(--rsp-spacing-s); justify-items: center; flex-wrap: wrap; background: var(--rsp-white); min-height: 118px; } .rsssl .rsssl-ssl-labs-select-item.active, .rsssl .rsssl-hardening-select-item.active { box-shadow: inset 0 0 3px 2px var(--rsp-green-faded); border: 2px solid var(--rsp-green); } .rsssl .rsssl-ssl-labs-select-item h2, .rsssl .rsssl-hardening-select-item h2 { margin-top: var(--rsp-spacing-xxs); font-weight: 800; } .rsssl .rsssl-ssl-labs-select-item h2.big-number, .rsssl .rsssl-hardening-select-item h2.big-number { font-size: var(--rsp-fs-850); } .rsssl .rsssl-ssl-labs-select-item span, .rsssl .rsssl-hardening-select-item span { display: flex; gap: 3px; justify-content: center; font-size: var(--rsp-fs-100); } .rsssl .rsssl-ssl-labs-list, .rsssl .rsssl-hardening-list { width: 100%; } .rsssl .rsssl-ssl-labs-list-item, .rsssl .rsssl-hardening-list-item { width: 100%; display: grid; justify-items: flex-start; grid-template-columns: auto 1fr auto; gap: var(--rsp-spacing-s); padding-block: var(--rsp-spacing-xs); padding-inline: var(--rsp-spacing-l); } .rsssl .rsssl-ssl-labs-list-item:nth-of-type(even), .rsssl .rsssl-hardening-list-item:nth-of-type(even) { background: var(--rsp-grey-200); } .rsssl .rsssl-ssl-labs-list-item-text, .rsssl .rsssl-hardening-list-item-text { width: 100%; margin-right: auto; } .rsssl .rsssl-ssl-labs-list-item-number, .rsssl .rsssl-hardening-list-item-number { font-weight: 600; } .rsssl .rsssl-ssl-labs-list-item .rsssl-icon, .rsssl .rsssl-hardening-list-item .rsssl-icon { align-items: start; margin-top: 2px; } .rsssl .rsssl-ssl-labs-select-item { padding-inline: var(--rsp-spacing-s); gap: var(--rsp-spacing-xxs); } .rsssl .rsssl-ssl-labs .rsssl-score-snippet { max-width: 100%; overflow: hidden; text-overflow: ellipsis; height: 18px; line-height: 18px; padding-inline: var(--rsp-spacing-xxs); font-size: var(--rsp-fs-100); border-radius: var(--rsp-border-radius-xs); color: var(--rsp-text-color); text-align: left; } .rsssl .rsssl-ssl-labs .rsssl-score-snippet.rsssl-hover { height: initial; line-height: initial; } .rsssl .rsssl-ssl-labs .rsssl-score-snippet.rsssl-test-inactive { background-color: var(--rsp-grey-200); color: var(--rsp-color-disabled); } .rsssl .rsssl-ssl-labs .rsssl-score-snippet.rsssl-test-processing { background-color: var(--rsp-yellow); color: var(--rsp-black); } .rsssl .rsssl-ssl-labs .rsssl-score-snippet.rsssl-test-success { background-color: var(--rsp-color-success); color: var(--rsp-text-color-white); } .rsssl .rsssl-ssl-labs .rsssl-score-snippet.rsssl-test-error { background-color: var(--rsp-brand-primary); color: var(--rsp-black); } .rsssl .rsssl-hardening-select-item .rsssl-badge { margin-top: var(--rsp-spacing-xxs); } .rsssl-gridblock-progress-container.rsssl-error .rsssl-gridblock-progress { background: var(--rsp-color-warning); } .rsssl-gridblock-progress-container.rsssl-inactive { height: 4px; width: 100%; display: flex; background: var(--rsp-grey-300); } .rsssl-gridblock-progress-container.rsssl-inactive .rsssl-gridblock-progress { transition: width 1s ease-in-out; background: var(--rsp-green); } .rsssl .rsssl-field-button button.button { display: flex; } .rsssl a.button, .rsssl button.button, .rsssl input.button, .rsssl span.button { font-size: var(--rsp-fs-300); font-weight: 400; transition: all 0.3s ease; min-height: 10px; } .rsssl a.button.button-secondary, .rsssl a.button.button-default, .rsssl button.button.button-secondary, .rsssl button.button.button-default, .rsssl input.button.button-secondary, .rsssl input.button.button-default, .rsssl span.button.button-secondary, .rsssl span.button.button-default { background: transparent; } .rsssl a.button .rsssl-icon, .rsssl button.button .rsssl-icon, .rsssl input.button .rsssl-icon, .rsssl span.button .rsssl-icon { padding-top: 7px; padding-left: 7px; } .rsssl a.button.button-black, .rsssl button.button.button-black, .rsssl input.button.button-black, .rsssl span.button.button-black { border: 1px solid var(--rsp-black); background: var(--rsp-black); color: var(--rsp-text-color-white); } .rsssl a.button.button-black:hover, .rsssl a.button.button-black:focus, .rsssl a.button.button-black:active, .rsssl button.button.button-black:hover, .rsssl button.button.button-black:focus, .rsssl button.button.button-black:active, .rsssl input.button.button-black:hover, .rsssl input.button.button-black:focus, .rsssl input.button.button-black:active, .rsssl span.button.button-black:hover, .rsssl span.button.button-black:focus, .rsssl span.button.button-black:active { box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--rsp-black); } .rsssl a.button.button-tertiary, .rsssl a.button.button-red, .rsssl button.button.button-tertiary, .rsssl button.button.button-red, .rsssl input.button.button-tertiary, .rsssl input.button.button-red, .rsssl span.button.button-tertiary, .rsssl span.button.button-red { border: 0 solid transparent; background: var(--rsp-red); color: var(--rsp-text-color-white); } .rsssl a.button.button-tertiary:hover, .rsssl a.button.button-tertiary:focus, .rsssl a.button.button-tertiary:active, .rsssl a.button.button-red:hover, .rsssl a.button.button-red:focus, .rsssl a.button.button-red:active, .rsssl button.button.button-tertiary:hover, .rsssl button.button.button-tertiary:focus, .rsssl button.button.button-tertiary:active, .rsssl button.button.button-red:hover, .rsssl button.button.button-red:focus, .rsssl button.button.button-red:active, .rsssl input.button.button-tertiary:hover, .rsssl input.button.button-tertiary:focus, .rsssl input.button.button-tertiary:active, .rsssl input.button.button-red:hover, .rsssl input.button.button-red:focus, .rsssl input.button.button-red:active, .rsssl span.button.button-tertiary:hover, .rsssl span.button.button-tertiary:focus, .rsssl span.button.button-tertiary:active, .rsssl span.button.button-red:hover, .rsssl span.button.button-red:focus, .rsssl span.button.button-red:active { box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--rsp-red); background: var(--rsp-red); color: var(--rsp-text-color-white); } .rsssl { /* Documents overview */ /* Remove margin for the last button to ensure clean alignment */ /** For the mixed content scan we need to do some extra tweaking */ } .rsssl a.rsssl-button-small, .rsssl button.rsssl-button-small, .rsssl input.rsssl-button-small { font-size: var(--rsp-fs-100); font-weight: 300; min-height: auto; } .rsssl .rsssl-button-small + .rsssl-button-small { margin-left: 10px; } .rsssl .rsssl-shortcode { right: 10000px; position: absolute; background-color: #fff; padding: 0; white-space: nowrap; } .rsssl .shortcode { cursor: pointer; } .rsssl .rsssl-action-buttons { /* Making sure we use the full width of the container */ display: flex; justify-content: flex-end; } .rsssl .rsssl-action-buttons__inner { display: flex; justify-content: flex-end; } .rsssl .rsssl-action-buttons__inner { float: right; } .rsssl .rsssl-action-buttons__button { margin-right: 10px; } .rsssl .rsssl-action-buttons__inner:last-child { margin-right: 0; } .rsssl .rsssl-mixed-content-scan .rsssl-grid-item-content-footer { margin-left: 0; margin-right: 0; padding-left: 25px; } .rsssl .rsssl-mixed-content-scan .rsssl-grid-item-content-footer .button { display: block; margin-right: 0; margin-left: 0; } .rsssl .rsssl-mixed-content-scan .rsssl-grid-item-content-footer .components-toggle-control { margin-top: 12px; } .rsssl .rsssl-mixed-content-scan .rsssl-grid-item-content-footer label { display: flex; align-items: center; justify-content: center; } .rsssl .rsssl-bullet { height: 13px; width: 13px; flex: 0 0 13px; border-radius: 50%; display: inline-block; background-color: var(--rsp-grey-300); } .rsssl .rsssl-bullet.rsp-yellow { background-color: var(--rsp-yellow); } .rsssl .rsssl-bullet.rsp-blue { background-color: var(--rsp-blue); } .rsssl .rsssl-bullet.rsp-pink { background-color: var(--rsp-pink); } .rsssl .rsssl-bullet.rsp-red, .rsssl .rsssl-bullet.rsssl-bullet-error { background-color: var(--rsp-red); } .rsssl .rsssl-bullet.rsp-green, .rsssl .rsssl-bullet.rsssl-bullet-success { background-color: var(--rsp-green); } .rsssl .rsssl-bullet.rsp-blue-yellow { background: var(--rsp-blue); background: linear-gradient(77deg, rgb(0, 159, 255) 0%, rgb(0, 159, 255) 30%, rgb(244, 191, 62) 70%, rgb(244, 191, 62) 100%); animation: gradient 2s ease infinite; background-size: 200% 200%; } .rsssl .rsssl-legend { display: flex; width: max-content; color: var(--rsp-text-color-light); align-items: center; min-width: 0; gap: var(--rsp-spacing-xxs); text-decoration: none; } .rsssl .rsssl-legend:first-of-type { margin-left: auto; } @keyframes gradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } .rsssl-icon { display: flex; align-items: center; justify-content: center; } .rsssl-icon > div { display: flex; } .rsssl-icon svg { fill: currentColor; } .rsssl-icon-loading svg { animation: spin 2s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .rsssl-icon.rsssl-click-animation { animation: beat 0.4s ease-out; } button.button .cmplz-icon.rsssl-icon-loading { padding-top: 6px; } button.button .cmplz-icon.rsssl-icon-loading > div { line-height: inherit; } .rsssl .rsssl-badge { --badge-height: 20px; height: var(--badge-height); line-height: var(--badge-height); padding-inline: 8px; min-width: 100px; text-align: center; border-radius: var(--rsp-border-radius-xs); color: var(--rsp-white); display: table; margin: auto auto; font-size: var(--rsp-fs-100); } .rsssl .rsssl-badge.rsp-dark { background-color: var(--rsp-black); color: var(--rsp-white); } .rsssl .rsssl-badge.rsp-low { background-color: var(--rsp-yellow-faded); color: var(--rsp-black); } .rsssl .rsssl-badge.rsp-medium { background-color: var(--rsp-yellow); color: var(--rsp-black); } .rsssl .rsssl-badge.rsp-high { background-color: var(--rsp-red-faded); color: var(--rsp-black); } .rsssl .rsssl-badge.rsp-critical { background-color: var(--rsp-red); color: var(--rsp-white); } .rsssl .rsssl-badge.rsp-success { background-color: var(--rsp-color-success); color: var(--rsp-white); } .rsssl .rsssl-badge.rsp-default { background-color: var(--rsp-grey-200); color: black; } .rsssl .rsssl-badge-large { --badge-height: 28px; height: var(--badge-height); line-height: var(--badge-height); padding: 0 10px; text-align: center; border-radius: var(--rsp-border-radius-xs); color: var(--rsp-white); display: table; margin: auto auto; font-size: var(--rsp-fs-300); font-weight: 400; } .rsssl .rsssl-badge-large.rsp-dark { background-color: var(--rsp-black); color: var(--rsp-white); } .rsssl .rsssl-badge-large.rsp-risk-level-l { background-color: var(--rsp-yellow-faded); color: var(--rsp-black); } .rsssl .rsssl-badge-large.rsp-risk-level-m { background-color: var(--rsp-yellow); color: var(--rsp-black); } .rsssl .rsssl-badge-large.rsp-risk-level-h { background-color: var(--rsp-red-faded); color: var(--rsp-black); } .rsssl .rsssl-badge-large.rsp-risk-level-c { background-color: var(--rsp-red); color: var(--rsp-white); } .rsssl .rsssl-badge-large.rsp-success { background-color: var(--rsp-color-success); color: var(--rsp-white); } .rsssl .rsssl-badge-large.rsp-default { background-color: var(--rsp-grey-200); color: black; } :root { --toastify-color-light: var(--rsp-white); --toastify-color-dark: var(--rsp-black); --toastify-color-info: var(--rsp-yellow); --toastify-color-success: var(--rsp-green); --toastify-color-warning: var(--rsp-orange); --toastify-color-error: var(--rsp-red); --toastify-color-transparent: rgba(255, 255, 255, 0.7); --toastify-icon-color-info: var(--toastify-color-info); --toastify-icon-color-success: var(--rsp-green); --toastify-icon-color-warning: var(--toastify-color-warning); --toastify-icon-color-error: var(--toastify-color-error); --toastify-toast-width: 320px; --toastify-toast-background: #fff; --toastify-toast-min-height: 42px; --toastify-toast-max-height: 800px; --toastify-font-family: sans-serif; --toastify-z-index: 999999; --toastify-text-color-light: var(--rsp-text-color); --toastify-text-color-dark: var(--rsp-text-color-white); --toastify-text-color-info: #fff; --toastify-text-color-success: #fff; --toastify-text-color-warning: #fff; --toastify-text-color-error: #fff; --toastify-spinner-color: #616161; --toastify-spinner-color-empty-area: #e0e0e0; --toastify-color-progress-light: linear-gradient( to right, var(--rsp-green), #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55 ); --toastify-color-progress-dark: #bb86fc; --toastify-color-progress-info: var(--toastify-color-info); --toastify-color-progress-success: var(--rsp-green); --toastify-color-progress-warning: var(--toastify-color-warning); --toastify-color-progress-error: var(--toastify-color-error); } .Toastify__toast-container { z-index: var(--toastify-z-index); -webkit-transform: translate3d(0, 0, var(--toastify-z-index) px); position: fixed; padding: 4px; width: var(--toastify-toast-width); box-sizing: border-box; color: #fff; } .Toastify__toast-container--top-left { top: 1em; left: 1em; } .Toastify__toast-container--top-center { top: calc(2em + 32px); left: 50%; transform: translateX(-50%); } .Toastify__toast-container--top-right { top: 1em; right: 1em; } .Toastify__toast-container--bottom-left { bottom: 1em; left: 1em; } .Toastify__toast-container--bottom-center { bottom: 1em; left: 50%; transform: translateX(-50%); } .Toastify__toast-container--bottom-right { bottom: 1em; right: 1em; } @media only screen and (max-width : 480px) { .Toastify__toast-container { width: 100vw; padding: 0; left: 0; margin: 0; } .Toastify__toast-container--top-left, .Toastify__toast-container--top-center, .Toastify__toast-container--top-right { top: 0; transform: translateX(0); } .Toastify__toast-container--bottom-left, .Toastify__toast-container--bottom-center, .Toastify__toast-container--bottom-right { bottom: 0; transform: translateX(0); } .Toastify__toast-container--rtl { right: 0; left: initial; } } .Toastify__toast { position: relative; min-height: var(--toastify-toast-min-height); box-sizing: border-box; margin-bottom: 1rem; padding: 8px; border-radius: var(--rsp-border-radius); border: 1px solid #eeeeee; box-shadow: 0 1px 10px 0 rgba(0, 0, 0, 0.1), 0 2px 15px 0 rgba(0, 0, 0, 0.05); box-shadow: var(--rsp-box-shadow); display: flex; justify-content: space-between; max-height: var(--toastify-toast-max-height); overflow: hidden; font-family: var(--toastify-font-family); cursor: default; direction: ltr; /* webkit only issue #791 */ z-index: 0; } .Toastify__toast--rtl { direction: rtl; } .Toastify__toast--close-on-click { cursor: pointer; } .Toastify__toast-body { margin: auto 0; flex: 1 1 auto; padding: 6px; display: flex; align-items: center; } .Toastify__toast-body > div:last-child { word-break: break-word; flex: 1; } .Toastify__toast-icon { margin-inline-end: 10px; width: 20px; flex-shrink: 0; display: flex; } .Toastify--animate { animation-fill-mode: both; animation-duration: 0.7s; } .Toastify--animate-icon { animation-fill-mode: both; animation-duration: 0.3s; } @media only screen and (max-width : 480px) { .Toastify__toast { margin-bottom: 0; border-radius: 0; } } .Toastify__toast-theme--dark { background: var(--toastify-color-dark); color: var(--toastify-text-color-dark); } .Toastify__toast-theme--light { background: var(--toastify-color-light); color: var(--toastify-text-color-light); } .Toastify__toast-theme--colored.Toastify__toast--default { background: var(--toastify-color-light); color: var(--toastify-text-color-light); } .Toastify__toast-theme--colored.Toastify__toast--info { color: var(--toastify-text-color-info); background: var(--toastify-color-info); } .Toastify__toast-theme--colored.Toastify__toast--success { color: var(--toastify-text-color-success); background: var(--rsp-green); } .Toastify__toast-theme--colored.Toastify__toast--warning { color: var(--toastify-text-color-warning); background: var(--toastify-color-warning); } .Toastify__toast-theme--colored.Toastify__toast--error { color: var(--toastify-text-color-error); background: var(--toastify-color-error); } .Toastify__progress-bar-theme--light { background: var(--toastify-color-progress-light); } .Toastify__progress-bar-theme--dark { background: var(--toastify-color-progress-dark); } .Toastify__progress-bar--info { background: var(--toastify-color-progress-info); } .Toastify__progress-bar--success { background: var(--toastify-color-progress-success); } .Toastify__progress-bar--warning { background: var(--toastify-color-progress-warning); } .Toastify__progress-bar--error { background: var(--toastify-color-progress-error); } .Toastify__progress-bar-theme--colored.Toastify__progress-bar--info, .Toastify__progress-bar-theme--colored.Toastify__progress-bar--success, .Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning, .Toastify__progress-bar-theme--colored.Toastify__progress-bar--error { background: var(--toastify-color-transparent); } .Toastify__close-button { color: #fff; background: transparent; outline: none; border: none; padding: 0; cursor: pointer; opacity: 0.7; transition: 0.3s ease; align-self: flex-start; } .Toastify__close-button--light { color: #000; opacity: 0.3; } .Toastify__close-button > svg { fill: currentColor; height: 16px; width: 14px; } .Toastify__close-button:hover, .Toastify__close-button:focus { opacity: 1; } @keyframes Toastify__trackProgress { 0% { transform: scaleX(1); } 100% { transform: scaleX(0); } } .Toastify__progress-bar { position: absolute; bottom: 0; left: 0; width: 100%; height: 5px; z-index: var(--toastify-z-index); opacity: 0.7; transform-origin: left; } .Toastify__progress-bar--animated { animation: Toastify__trackProgress linear 1 forwards; } .Toastify__progress-bar--controlled { transition: transform 0.2s; } .Toastify__progress-bar--rtl { right: 0; left: initial; transform-origin: right; } .Toastify__spinner { width: 20px; height: 20px; box-sizing: border-box; border: 2px solid; border-radius: 100%; border-color: var(--toastify-spinner-color-empty-area); border-right-color: var(--toastify-spinner-color); animation: Toastify__spin 0.65s linear infinite; } @keyframes Toastify__bounceInRight { from, 60%, 75%, 90%, to { animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } from { opacity: 0; transform: translate3d(3000px, 0, 0); } 60% { opacity: 1; transform: translate3d(-25px, 0, 0); } 75% { transform: translate3d(10px, 0, 0); } 90% { transform: translate3d(-5px, 0, 0); } to { transform: none; } } @keyframes Toastify__bounceOutRight { 20% { opacity: 1; transform: translate3d(-20px, 0, 0); } to { opacity: 0; transform: translate3d(2000px, 0, 0); } } @keyframes Toastify__bounceInLeft { from, 60%, 75%, 90%, to { animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } 0% { opacity: 0; transform: translate3d(-3000px, 0, 0); } 60% { opacity: 1; transform: translate3d(25px, 0, 0); } 75% { transform: translate3d(-10px, 0, 0); } 90% { transform: translate3d(5px, 0, 0); } to { transform: none; } } @keyframes Toastify__bounceOutLeft { 20% { opacity: 1; transform: translate3d(20px, 0, 0); } to { opacity: 0; transform: translate3d(-2000px, 0, 0); } } @keyframes Toastify__bounceInUp { from, 60%, 75%, 90%, to { animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } from { opacity: 0; transform: translate3d(0, 3000px, 0); } 60% { opacity: 1; transform: translate3d(0, -20px, 0); } 75% { transform: translate3d(0, 10px, 0); } 90% { transform: translate3d(0, -5px, 0); } to { transform: translate3d(0, 0, 0); } } @keyframes Toastify__bounceOutUp { 20% { transform: translate3d(0, -10px, 0); } 40%, 45% { opacity: 1; transform: translate3d(0, 20px, 0); } to { opacity: 0; transform: translate3d(0, -2000px, 0); } } @keyframes Toastify__bounceInDown { from, 60%, 75%, 90%, to { animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } 0% { opacity: 0; transform: translate3d(0, -3000px, 0); } 60% { opacity: 1; transform: translate3d(0, 25px, 0); } 75% { transform: translate3d(0, -10px, 0); } 90% { transform: translate3d(0, 5px, 0); } to { transform: none; } } @keyframes Toastify__bounceOutDown { 20% { transform: translate3d(0, 10px, 0); } 40%, 45% { opacity: 1; transform: translate3d(0, -20px, 0); } to { opacity: 0; transform: translate3d(0, 2000px, 0); } } .Toastify__bounce-enter--top-left, .Toastify__bounce-enter--bottom-left { animation-name: Toastify__bounceInLeft; } .Toastify__bounce-enter--top-right, .Toastify__bounce-enter--bottom-right { animation-name: Toastify__bounceInRight; } .Toastify__bounce-enter--top-center { animation-name: Toastify__bounceInDown; } .Toastify__bounce-enter--bottom-center { animation-name: Toastify__bounceInUp; } .Toastify__bounce-exit--top-left, .Toastify__bounce-exit--bottom-left { animation-name: Toastify__bounceOutLeft; } .Toastify__bounce-exit--top-right, .Toastify__bounce-exit--bottom-right { animation-name: Toastify__bounceOutRight; } .Toastify__bounce-exit--top-center { animation-name: Toastify__bounceOutUp; } .Toastify__bounce-exit--bottom-center { animation-name: Toastify__bounceOutDown; } @keyframes Toastify__zoomIn { from { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); } 50% { opacity: 1; } } @keyframes Toastify__zoomOut { from { opacity: 1; } 50% { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); } to { opacity: 0; } } .Toastify__zoom-enter { animation-name: Toastify__zoomIn; } .Toastify__zoom-exit { animation-name: Toastify__zoomOut; } @keyframes Toastify__flipIn { from { transform: perspective(400px) rotate3d(1, 0, 0, 90deg); animation-timing-function: ease-in; opacity: 0; } 40% { transform: perspective(400px) rotate3d(1, 0, 0, -20deg); animation-timing-function: ease-in; } 60% { transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1; } 80% { transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } to { transform: perspective(400px); } } @keyframes Toastify__flipOut { from { transform: perspective(400px); } 30% { transform: perspective(400px) rotate3d(1, 0, 0, -20deg); opacity: 1; } to { transform: perspective(400px) rotate3d(1, 0, 0, 90deg); opacity: 0; } } .Toastify__flip-enter { animation-name: Toastify__flipIn; } .Toastify__flip-exit { animation-name: Toastify__flipOut; } @keyframes Toastify__slideInRight { from { transform: translate3d(110%, 0, 0); visibility: visible; } to { transform: translate3d(0, 0, 0); } } @keyframes Toastify__slideInLeft { from { transform: translate3d(-110%, 0, 0); visibility: visible; } to { transform: translate3d(0, 0, 0); } } @keyframes Toastify__slideInUp { from { transform: translate3d(0, 110%, 0); visibility: visible; } to { transform: translate3d(0, 0, 0); } } @keyframes Toastify__slideInDown { from { transform: translate3d(0, -110%, 0); visibility: visible; } to { transform: translate3d(0, 0, 0); } } @keyframes Toastify__slideOutRight { from { transform: translate3d(0, 0, 0); } to { visibility: hidden; transform: translate3d(110%, 0, 0); } } @keyframes Toastify__slideOutLeft { from { transform: translate3d(0, 0, 0); } to { visibility: hidden; transform: translate3d(-110%, 0, 0); } } @keyframes Toastify__slideOutDown { from { transform: translate3d(0, 0, 0); } to { visibility: hidden; transform: translate3d(0, 500px, 0); } } @keyframes Toastify__slideOutUp { from { transform: translate3d(0, 0, 0); } to { visibility: hidden; transform: translate3d(0, -500px, 0); } } .Toastify__slide-enter--top-left, .Toastify__slide-enter--bottom-left { animation-name: Toastify__slideInLeft; } .Toastify__slide-enter--top-right, .Toastify__slide-enter--bottom-right { animation-name: Toastify__slideInRight; } .Toastify__slide-enter--top-center { animation-name: Toastify__slideInDown; } .Toastify__slide-enter--bottom-center { animation-name: Toastify__slideInUp; } .Toastify__slide-exit--top-left, .Toastify__slide-exit--bottom-left { animation-name: Toastify__slideOutLeft; } .Toastify__slide-exit--top-right, .Toastify__slide-exit--bottom-right { animation-name: Toastify__slideOutRight; } .Toastify__slide-exit--top-center { animation-name: Toastify__slideOutUp; } .Toastify__slide-exit--bottom-center { animation-name: Toastify__slideOutDown; } @keyframes Toastify__spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .rsssl-modal.rsssl-onboarding { width: clamp(300px, 100ch, 100vw); } .rsssl-modal.rsssl-onboarding .rsssl-logo { height: 26px; } .rsssl-modal.rsssl-onboarding .rsssl-modal-content { display: flex; padding-top: var(--rsp-spacing-m); line-height: 2.2; min-height: 295px; } .rsssl-modal.rsssl-onboarding .rsssl-modal-content .rsssl-onboarding-placeholder { flex-grow: 1; } .rsssl-modal.rsssl-onboarding .rsssl-modal-content-step { display: flex; flex-direction: column; width: 100%; } .rsssl-modal.rsssl-onboarding .rsssl-modal-content .rsssl-processing { opacity: 0.5; } .rsssl-modal.rsssl-onboarding .rsssl-modal-content ul li .rsssl-icon { margin-top: 7px; } .rsssl-modal.rsssl-onboarding .rsssl-modal-content ul li .components-button.is-link { padding: 5px 0; } .rsssl-grid-item.rsssl-progress .rsssl-grid-item-content { padding: 0; } .rsssl-grid-item.rsssl-progress .rsssl-placeholder { padding: var(--rsp-spacing-m) var(--rsp-spacing-l); } @media screen and (max-width: 1280px) { .rsssl-grid-item.rsssl-progress .rsssl-placeholder { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } @media screen and (max-width: 1080px) { .rsssl-grid-item.rsssl-progress .rsssl-placeholder { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } .rsssl-progress-block .rsssl-progress { overflow: hidden; height: 20px; border-radius: 5px; background-color: #f7f7f7; } .rsssl-progress-block .rsssl-progress .rsssl-bar { height: 100%; background-color: var(--rsp-color-success); transition: width 1s ease; } .rsssl-progress-block .rsssl-progress .rsssl-bar.rsssl-orange { background-color: var(--rsp-color-warning); } .rsssl-progress-block .rsssl-progress-bar { padding: var(--rsp-spacing-m) var(--rsp-spacing-l); padding-block: 0; border-radius: 5px; } @media screen and (max-width: 1280px) { .rsssl-progress-block .rsssl-progress-bar { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } @media screen and (max-width: 1080px) { .rsssl-progress-block .rsssl-progress-bar { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } .rsssl-progress-block .rsssl-progress-text { display: flex; align-items: center; padding: var(--rsp-spacing-m) var(--rsp-spacing-l); padding-block: var(--rsp-spacing-s); justify-content: flex-start; gap: var(--rsp-spacing-m); } @media screen and (max-width: 1280px) { .rsssl-progress-block .rsssl-progress-text { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } @media screen and (max-width: 1080px) { .rsssl-progress-block .rsssl-progress-text { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } .rsssl-progress-block .rsssl-progress-text .rsssl-progress-percentage { font-size: var(--rsp-fs-800); font-weight: 700; } .rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span { font-weight: 500; font-size: var(--rsp-fs-600); } .rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span a { margin-left: 3px; } @media only screen and (max-width: 1366px) and (min-width: 1280px) { .rsssl-progress-block .rsssl-progress-text .rsssl-progress-text-span { font-size: var(--rsp-fs-500); } } .rsssl-header-html { display: flex; color: var(--rsp-text-color-light); } .rsssl-header-html .rsssl-toggle-active { text-decoration: underline; } .rsssl-task-switcher-container { display: flex; border-radius: var(--rsp-border-radius); } .rsssl-task-switcher-container .rsssl-task-switcher:first-of-type { border-right: 1px solid var(--rsp-grey-400); padding-right: 10px; } .rsssl-task-switcher-container .rsssl-task-switcher:last-of-type { padding-left: 10px; } .rsssl-task-switcher { font-size: var(--rsp-fs-200); cursor: pointer; transition: 0.3s; } .rsssl-task-switcher:hover { text-decoration: underline; } .rsssl-active-filter-remaining .rsssl-remaining-tasks, .rsssl-active-filter-all .rsssl-all-tasks { text-decoration: underline; } /** * Task element, list of tasks */ .rsssl-task-element { display: flex; align-items: flex-start; justify-content: center; gap: var(--rsp-spacing-m); padding-bottom: var(--rsp-spacing-s); } @media (max-width: 1280px) { .rsssl-task-element { gap: var(--rsp-spacing-xs); } } .rsssl-task-element .rsssl-task-message { flex: 1; font-size: var(--rsp-fs-300); } .rsssl-task-element .rsssl-task-form { margin-top: var(--rsp-spacing-xxs); display: flex; gap: var(--rsp-spacing-xs); } .rsssl-task-element .rsssl-task-enable { cursor: pointer; line-height: 1.5; } .rsssl-task-element .rsssl-task-dismiss:hover { transform: scale(1.1); } .rsssl-task-element .rsssl-task-dismiss button { all: initial; cursor: pointer; padding: 4px; } .rsssl-task-element .rsssl-task-dismiss svg { height: 12px; width: 12px; } .rsssl-scroll-container { padding: var(--rsp-spacing-m) var(--rsp-spacing-l); height: 230px; overflow-y: auto; padding-block: 0; padding-top: var(--rsp-spacing-s); border-radius: 0; } @media screen and (max-width: 1280px) { .rsssl-scroll-container { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } @media screen and (max-width: 1080px) { .rsssl-scroll-container { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } .rsssl-scroll-container::-webkit-scrollbar-track { border-radius: 10px; -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0); background-color: transparent; } .rsssl-scroll-container::-webkit-scrollbar { width: 8px; border-radius: 10px; background-color: var(--rsp-grey-300); } .rsssl-scroll-container::-webkit-scrollbar-thumb { background-color: var(--rsp-grey-400); border-radius: 10px; } .rsssl-progress-status-container { margin-right: 40px; } .rsssl-task-status, .rsssl-locked-overlay .rsssl-progress-status { display: block; min-width: 100px; text-align: center; border-radius: var(--rsp-border-radius-xs); padding: 4px 8px; font-size: var(--rsp-fs-100); font-weight: 600; } @media (max-width: 1280px) { .rsssl-task-status, .rsssl-locked-overlay .rsssl-progress-status { min-width: 80px; } } .rsssl-task-status.rsssl-completed, .rsssl-locked-overlay .rsssl-completed.rsssl-progress-status, .rsssl-task-status.rsssl-success, .rsssl-locked-overlay .rsssl-success.rsssl-progress-status { background-color: var(--rsp-color-success); color: var(--rsp-text-color-white); } .rsssl-task-status.rsssl-open, .rsssl-locked-overlay .rsssl-open.rsssl-progress-status { background-color: var(--rsp-color-open); } .rsssl-task-status.rsssl-warning, .rsssl-locked-overlay .rsssl-warning.rsssl-progress-status { background-color: var(--rsp-color-error); color: var(--rsp-text-color-white); } .rsssl-task-status.rsssl-premium, .rsssl-locked-overlay .rsssl-premium.rsssl-progress-status { background-color: var(--rsp-blue); color: var(--rsp-text-color-white); } .rsssl-task-status.rsssl-loading, .rsssl-locked-overlay .rsssl-loading.rsssl-progress-status { background-color: var(--rsp-grey-200); } @media (max-width: 1080px) { .rsssl-scroll-container .rsssl-task-status, .rsssl-scroll-container .rsssl-locked-overlay .rsssl-progress-status, .rsssl-locked-overlay .rsssl-scroll-container .rsssl-progress-status { aspect-ratio: 1/1; min-width: 10px; height: 16px; border-radius: 100%; text-indent: -9999px; /* sends the text off-screen */ white-space: nowrap; } } .rsssl-plusone { min-width: 15px; height: 16px; font-size: var(--rsp-fs-100); line-height: 1.5; display: inline-block; vertical-align: top; box-sizing: border-box; margin: 1px 0 -1px 2px; padding: 0 5px; border-radius: 9px; background-color: #d63638; color: #fff; text-align: center; } @media only screen and (max-width: 1366px) { .rsssl-footer-left { display: none; } } .rsssl-datatable-placeholder div { background-color: var(--rsp-grey-300); height: 25px; } .rsssl-datatable-placeholder div:nth-child(even) { background-color: #fff; } .rsssl-rest-error-message { margin: 30px; } .rsssl-rest-error-message ul { list-style: disc; margin: 20px; } .rsssl-placeholder { box-sizing: border-box; width: 100%; text-align: left; margin: 0; padding-bottom: 24px; color: #1e1e1e; -moz-font-smoothing: subpixel-antialiased; -webkit-font-smoothing: subpixel-antialiased; border-radius: 2px; flex-grow: 100; } .rsssl-placeholder .rsssl-placeholder-line { float: left; width: 100%; height: 16px; margin-top: 12px; border-radius: 7px; background-image: linear-gradient(90deg, #ddd 0px, #e8e8e8 40px, #ddd 80px); background-size: 600px; animation: shine-lines 1.6s infinite linear; } .rsssl-placeholder .rsssl-placeholder-line:last-of-type { margin-bottom: 24px; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(1) { width: 65%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(2) { width: 80%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(3) { width: 61%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(4) { width: 86%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(5) { width: 82%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(6) { width: 62%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(7) { width: 96%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(8) { width: 86%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(9) { width: 87%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(10) { width: 61%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(11) { width: 84%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(12) { width: 62%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(13) { width: 83%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(14) { width: 94%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(15) { width: 100%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(16) { width: 76%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(17) { width: 77%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(18) { width: 94%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(19) { width: 64%; } .rsssl-placeholder .rsssl-placeholder-line:nth-of-type(20) { width: 98%; } .rsssl-placeholder .rsssl-placeholder-line ~ .rsssl-placeholder-line { background-color: #ddd; } .rsssl-dashboard-placeholder.rsssl-grid-item.rsssl-row-2 { grid-row: span 1; } .rsssl-settings-placeholder .rsssl-grid-item { min-height: 400px; } .rsssl-menu-placeholder { min-height: 400px; } @keyframes shine-lines { 0% { background-position: -400px; } 100% { background-position: 220px; } } .rsssl .rsssl-other-plugins .rsssl-placeholder { background-color: transparent; } .rsssl .rsssl-other-plugins .rsp-logo img { height: 20px; } .rsssl .rsssl-other-plugins-container { display: flex !important; flex-direction: row; flex-wrap: wrap; margin-bottom: 10px; font-size: var(--rsp-fs-300); line-height: 1.7; gap: var(--rsp-spacing-xxs); } @media screen and (max-width: 992px) { .rsssl .rsssl-other-plugins-container { flex-direction: row; overflow: hidden; } } .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element { width: 100%; display: flex; align-content: space-between; justify-content: space-between; gap: 10px; --rsp-other-plugins-color: var(---rsp-brand-primary); } .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-zip-recipes { --rsp-other-plugins-color: var(--rsp-pink); } .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-burst-statistics { --rsp-other-plugins-color: var(--rsp-green); } .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-complianz-gdpr { --rsp-other-plugins-color: var(--rsp-blue); } .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-complianz-terms-conditions { --rsp-other-plugins-color: var(--rsp-black); } .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element.rsssl-really-simple-ssl { --rsp-other-plugins-color: var(--rsp-yellow); } .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a { width: max-content; color: var(--rsp-text-color-light); transition: color 0.3s ease; display: flex; align-items: center; min-width: 0; gap: var(--rsp-spacing-xs); text-decoration: none; } .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover { color: var(--rsp-other-plugins-color); text-decoration: underline; } .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover .rsssl-bullet { background-color: var(--rsp-other-plugins-color); } .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element a:hover .rsssl-other-plugins-content { text-decoration: underline; } .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-bullet { transition: background-color 0.3s ease; background-color: var(--rsp-other-plugins-color); } .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-other-plugins-content { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .rsssl .rsssl-other-plugins-container .rsssl-other-plugins-element .rsssl-other-plugin-status { min-width: fit-content; } .rsssl-tips_tricks .rsssl-grid-item-header .rsssl-grid-item-controls { height: 28px; } .rsssl-tips-tricks-container { display: flex !important; flex-direction: row; flex-wrap: wrap; margin-bottom: 10px; font-size: var(--rsp-fs-300); line-height: 1.7; gap: var(--rsp-spacing-xxs); } @media screen and (max-width: 992px) { .rsssl-tips-tricks-container { flex-direction: row; overflow: hidden; } } .rsssl-tips-tricks-container .rsssl-tips-tricks-element { width: calc(50% - var(--rsp-spacing-xxs)); } @media (max-width: 768px) { .rsssl-tips-tricks-container .rsssl-tips-tricks-element { width: 100%; } } .rsssl-tips-tricks-container .rsssl-tips-tricks-element a { color: var(--rsp-text-color-light); transition: color 0.3s ease; display: flex; align-items: center; gap: var(--rsp-spacing-xs); min-width: 0; /* or some value */ text-decoration: none; } .rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover { color: var(--rsp-brand-primary); text-decoration: underline; } .rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover svg path { fill: var(--rsp-brand-primary); } .rsssl-tips-tricks-container .rsssl-tips-tricks-element a:hover .rsssl-tips-tricks-content { text-decoration: underline; } .rsssl-tips-tricks-container .rsssl-tips-tricks-element .rsssl-bullet { transition: background-color 0.3s ease; background-color: var(--rsp-grey-300); } .rsssl-tips-tricks-container .rsssl-tips-tricks-element .rsssl-tips-tricks-content { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .rsssl div[class^=rsssl-wizard-] .rsssl-helplink { color: var(--rsp-text-color); } .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item { position: relative; margin-bottom: var(--rsp-grid-gap); } @media (max-width: 1080px) { .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item { grid-column: span 4; } } .rsssl div[class^=rsssl-wizard-].rsssl-column-2 { grid-column: span 2; } @media (max-width: 1080px) { .rsssl div[class^=rsssl-wizard-].rsssl-column-2 { grid-column: span 4; } } .rsssl div[class^=rsssl-wizard-] .rsssl-locked { position: absolute; z-index: 10; top: 0; left: 0; bottom: 0; right: 0; background: rgba(255, 255, 255, 0.8); border-radius: var(--rsp-border-radius); } .rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-shield-overlay { align-items: center; display: flex; justify-content: center; margin-top: 30%; } .rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay { z-index: 1; position: absolute; display: flex; align-items: center; gap: var(--rsp-spacing-s); background-color: var(--rsp-white); padding: var(--rsp-spacing-m) var(--rsp-spacing-l); border-radius: var(--rsp-border-radius-s); margin: var(--rsp-spacing-s); box-shadow: var(--rsp-box-shadow); bottom: 0; width: calc(100% - 2 * var(--rsp-spacing-s)); } @media screen and (max-width: 1280px) { .rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } @media screen and (max-width: 1080px) { .rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } .rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay .rsssl-open { float: left; margin-right: 12px; } .rsssl div[class^=rsssl-wizard-] .rsssl-locked .rsssl-locked-overlay .rsssl-progress-status { float: left; margin-right: 20px; } .rsssl div[class^=rsssl-wizard-] > div:nth-last-of-type(2) { margin-bottom: 0; border-radius: var(--rsp-border-radius) var(--rsp-border-radius) 0 0; } .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container { position: sticky; bottom: 0; display: flex; flex-direction: column; z-index: 12; } .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons a.button, .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons button { box-shadow: none !important; } .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons a.button:focus, .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons a.button:active, .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons button:focus, .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-container .rsssl-grid-item-footer-buttons button:active { box-shadow: none !important; } .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-scroll-progress-container { display: flex; flex-direction: column; width: 100%; height: 3px; background-color: var(--rsp-grey-300); overflow: hidden; } .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-scroll-progress { height: 100%; background-color: var(--rsp-blue); } .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer { background: var(--rsp-grey-100); padding: var(--rsp-spacing-m) var(--rsp-spacing-l); box-shadow: var(--rsp-box-shadow); border-radius: 0 0 var(--rsp-border-radius) var(--rsp-border-radius); border-top: 1px solid var(--rsp-grey-300); box-sizing: border-box; align-items: center; gap: var(--rsp-grid-margin); width: 100%; min-height: 20px; justify-content: space-around; } @media screen and (max-width: 1280px) { .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } @media screen and (max-width: 1080px) { .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer > div:last-of-type { margin-left: auto; } .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-buttons { display: flex; justify-content: flex-end; align-items: center; gap: var(--rsp-spacing-s); } .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer .rsssl-legend { display: flex; } .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer .rsssl-legend span { padding-left: 5px; } .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer-upsell-bar .button { display: inline-block !important; } .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-footer:empty { display: none; } .rsssl-wizard-help { display: flex; flex-wrap: wrap; align-content: flex-start; gap: var(--rsp-spacing-xs); } .rsssl-wizard-help details { font-size: var(--rsp-fs-200); } .rsssl-wizard-help details .rsssl-help-more-info { display: flex; flex-direction: row; margin-top: 12px; } .rsssl-wizard-help details summary { display: grid; grid-template-columns: 1fr auto; justify-content: space-between; font-size: var(--rsp-fs-300); font-weight: 600; cursor: pointer; } .rsssl-wizard-help details summary::-webkit-details-marker { display: none; } .rsssl-wizard-help details summary:first-of-type { list-style-type: none; } .rsssl-wizard-help details summary .rsssl-icon { transition: all 0.3s ease-in-out; transform: rotate(0deg); } .rsssl-wizard-help code { white-space: pre-line; display: block; } .rsssl-wizard-help summary, .rsssl-wizard-help p { font-size: var(--rsp-fs-200); } .rsssl-wizard-help details[open] { padding: var(--rsp-spacing-s) var(--rsp-spacing-m); } .rsssl-wizard-help details[open] summary { padding: 0; padding-bottom: var(--rsp-spacing-xs); } .rsssl-wizard-help details[open] summary .rsssl-icon { transform: rotate(180deg); } .rsssl-wizard-help .rsssl-help-header { width: 100%; display: flex; padding: 10px; } .rsssl-wizard-help .rsssl-help-header .rsssl-help-title { font-size: 18px; } .rsssl-wizard-help .rsssl-help-header .rsssl-help-control { margin-left: auto; cursor: pointer; } .rsssl-wizard-help > div { flex-grow: 1; width: 100%; } .rsssl-wizard-help-notice { width: 100%; background: var(--rsp-background-block-color); box-shadow: var(--rsp-box-shadow); border-radius: var(--rsp-border-radius); border-radius: var(--rsp-border-radius-s); height: fit-content; background-color: var(--rsp-dark-blue-faded); } .rsssl-wizard-help-notice.rsssl-warning { background-color: var(--rsp-red-faded); } .rsssl-wizard-help-notice.rsssl-open { background-color: var(--rsp-yellow-faded); } .rsssl-wizard-help-notice summary, .rsssl-wizard-help-notice p { padding: var(--rsp-spacing-s) var(--rsp-spacing-m); } .rsssl-wizard-menu { height: fit-content; background: none !important; box-shadow: none !important; } .rsssl-wizard-menu .rsssl-grid-item-header { padding-left: var(--rsp-spacing-xs); } .rsssl-wizard-menu .rsssl-grid-item-content { padding: 0; padding-bottom: var(--rsp-spacing-l); } .rsssl-wizard-menu-items > .rsssl-menu-item > a { font-weight: 600 !important; padding-inline: var(--rsp-spacing-xs) !important; } .rsssl-wizard-menu-items .rsssl-main-menu .rsssl-active { border-radius: var(--rsp-border-radius-s); background: var(--rsp-yellow-faded); box-shadow: var(--rsp-box-shadow); } .rsssl-wizard-menu-items .rsssl-main-menu .rsssl-active a:hover { text-decoration: none; } .rsssl-wizard-menu-items .rsssl-main-menu .rsssl-menu-item a span { font-weight: 600; } .rsssl-wizard-menu-items .rsssl-menu-item a { display: flex; align-items: center; gap: var(--rsp-spacing-xs); text-decoration: none; color: var(--rsp-text-color); font-size: var(--rsp-fs-400); padding-block: var(--rsp-spacing-xs); transition: all 0.2s ease-in-out; padding-left: var(--rsp-spacing-xs); } .rsssl-wizard-menu-items .rsssl-menu-item a:hover { text-decoration: underline; } .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-active > a { font-weight: 600; } .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-active a:focus { box-shadow: none !important; } .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured.rsssl-active .rsssl-menu-item-beta-pill { color: var(--rsp-dark-blue); } .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured a { flex-wrap: wrap; } .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured a .rsssl-menu-item-featured-pill { background: var(--rsp-green); color: var(--rsp-text-color-white); padding: 4px 8px; border-radius: var(--rsp-border-radius-xs); font-size: var(--rsp-fs-100); } .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-featured a .rsssl-menu-item-beta-pill { color: var(--rsp-dark-blue); } .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-new .rsssl-menu-item-new-pill { background: var(--rsp-yellow); color: var(--rsp-text-color-dark); padding: 4px 8px; border-radius: var(--rsp-border-radius-xs); font-size: var(--rsp-fs-100); } .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-new.rsssl-active .rsssl-menu-item-new-pill { color: var(--rsp-text-color-dark); } .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-new a { flex-wrap: wrap; } .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-premium a { flex-wrap: wrap; } .rsssl-wizard-menu-items .rsssl-menu-item.rsssl-premium a .rsssl-menu-item-featured-pill { background: var(--rsp-dark-blue); color: var(--rsp-text-color-white); padding: 2px 9px; border-radius: var(--rsp-border-radius); font-size: var(--rsp-fs-100); } .rsssl-wizard-menu-items .rsssl-premium-menu-item { background: var(--rsp-dark-blue-faded); } .rsssl-wizard-menu-items .rsssl-premium-menu-item div { display: flex; align-items: center; gap: var(--rsp-spacing-xs); text-decoration: none; color: var(--rsp-text-color); font-size: var(--rsp-fs-400); padding-block: var(--rsp-spacing-xs); padding-inline: var(--rsp-spacing-l); transition: all 0.2s ease-in-out; border-left: 4px solid transparent; } @media screen and (max-width: 1280px) { .rsssl-wizard-menu-items .rsssl-premium-menu-item div { padding-inline: var(--rsp-spacing-m); } } @media screen and (max-width: 1080px) { .rsssl-wizard-menu-items .rsssl-premium-menu-item div { padding-inline: var(--rsp-spacing-s); } } .rsssl-wizard-menu-items .rsssl-submenu-item a { padding-left: calc(var(--rsp-spacing-xs) + var(--rsp-spacing-s)) !important; font-size: var(--rsp-fs-300); } .rsssl-wizard-menu-items .rsssl-submenu-item .rsssl-active a { text-decoration: none; position: relative; } .rsssl-wizard-menu-items .rsssl-submenu-item .rsssl-active a span { color: initial; } .rsssl-wizard-menu-items .rsssl-submenu-item .rsssl-active a::before { content: "•"; color: var(--rsp-dark-blue); font-size: 3em; position: absolute; left: var(--rsp-spacing-xxs) !important; margin-bottom: 7px; } html { scroll-behavior: smooth; } .rsssl div[class^=rsssl-wizard-] .components-flex { display: flex; flex-direction: row; align-items: center; justify-content: space-between; } .rsssl div[class^=rsssl-wizard-] .components-flex .components-flex-item label { margin: 0; } .rsssl div[class^=rsssl-wizard-] .components-flex .rsssl-tooltip { flex-grow: 1; } .rsssl div[class^=rsssl-wizard-] .components-flex .components-input-control__container { max-width: max-content; } .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item-content label { font-size: var(--rsp-fs-300); font-weight: 400; line-height: 1.5; text-transform: unset; box-sizing: border-box; display: inherit; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .rsssl div[class^=rsssl-wizard-] .components-base-control__field { margin-bottom: 0; } .rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-base-control__field, .rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-flex { display: flex; flex-direction: row-reverse; align-items: center; justify-content: space-between; width: 100%; } .rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-base-control__field .components-form-toggle, .rsssl div[class^=rsssl-wizard-] .components-toggle-control .components-flex .components-form-toggle { margin-right: 0; } .rsssl div[class^=rsssl-wizard-] select option { font-size: var(--rsp-fs-300); } .rsssl div[class^=rsssl-wizard-] .components-form-toggle.is-checked .components-form-toggle__track { background-color: var(--rsp-dark-blue); } .rsssl div[class^=rsssl-wizard-] input.components-form-toggle__input[type=checkbox]:disabled { background: var(--rsp-grey-100); opacity: 0.7; } .rsssl div[class^=rsssl-wizard-] .rsssl-grid-item .rsssl-grid-item-content { padding: var(--rsp-spacing-xs) 0; } .rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap .rsssl-comment { font-style: italic; } .rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap, .rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro { padding-block: var(--rsp-spacing-s); padding-inline: var(--rsp-spacing-l); overflow: hidden; } @media screen and (max-width: 1280px) { .rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap, .rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro { padding-inline: var(--rsp-spacing-m); } } @media screen and (max-width: 1080px) { .rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap, .rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro { padding-inline: var(--rsp-spacing-s); } } .rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap > .rsssl-field-wrap, .rsssl div[class^=rsssl-wizard-] .rsssl-settings-block-intro > .rsssl-field-wrap { padding: 0; } .rsssl div[class^=rsssl-wizard-] .rsssl-field-button { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; } .rsssl .rsssl-highlight { background-color: transparent; border-left: 4px solid var(--rsp-green); -o-animation: fadeIt 3s ease-in-out; animation: fadeIt 3s ease-in-out; scroll-margin-top: 100px; scroll-padding-top: 100px; } .rsssl .rsssl-block-highlight { border: 0; -o-animation: pulse 2s infinite; animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 var(--rsp-green); } 70% { -webkit-box-shadow: 0 0 0 10px var(--rsp-green-faded); } 100% { -webkit-box-shadow: 0 0 0 0 var(--rsp-green-faded); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 var(--rsp-green); box-shadow: 0 0 0 0 var(--rsp-green); } 70% { -moz-box-shadow: 0 0 0 10px var(--rsp-green-faded); box-shadow: 0 0 0 10px var(--rsp-green-faded); } 100% { -moz-box-shadow: 0 0 0 0 var(--rsp-green-faded); box-shadow: 0 0 0 0 var(--rsp-green-faded); } } @-o-keyframes fadeIt { 0% { background-color: transparent; } 30% { background-color: var(--rsp-green-faded); } 100% { border-right: 0; background-color: inherit; } } @keyframes fadeIt { 0% { background-color: transparent; border-right: 0; } 30% { background-color: var(--rsp-green-faded); } 100% { background-color: inherit; } } .rsssl-email-verified { position: absolute; bottom: 23px; right: 35px; } .rsssl-license .rsssl-task-element { padding-top: var(--rsp-spacing-s); padding-bottom: 0; } .rsssl-license .rsssl-license-field { display: flex; } .input-container { position: relative; display: inline-block; width: 100%; } input.rsssl-input.full { width: 100%; padding-right: 40px; } input.rsssl-input.rsssl-error { border: 2px solid var(--rsp-red); outline: none; } input.rsssl-input.rsssl-error:focus { border-color: var(--rsp-red) !important; } input.rsssl-input.rsssl-success { border: 2px solid var(--rsp-green); outline: none; } input.rsssl-input.rsssl-success:focus { border-color: var(--rsp-green) !important; } .wp-core-ui select { /* Your styles here */ flex-grow: 1 !important; max-width: 33%; } .icon-button { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); border: none; background: none; cursor: pointer; } .rsssl-group-filter { min-width: 25%; max-width: 100% !important; } .rsssl .components-snackbar-list.edit-site-notices { width: max-content; position: fixed; bottom: var(--rsp-spacing-m); right: var(--rsp-spacing-l); } .rsssl .components-snackbar-list.edit-site-notices > div { margin-left: auto; } .rsssl .components-snackbar-list.edit-site-notices .components-snackbar { background: var(--rsp-background-block-color); box-shadow: var(--rsp-box-shadow); border-radius: var(--rsp-border-radius); color: var(--rsp-color-success); background-color: #fff; font-weight: 700; font-size: 14px; } .rsssl-mixed-content-scan .rsssl-mixed-content-placeholder { height: 250px; } .rsssl-mixed-content-scan .rsssl-mixed-content-placeholder div { background-color: var(--rsp-grey-200); margin: 10px 0; height: 20px; } .rsssl-mixed-content-scan .rsssl-shield-overlay { height: 250px; align-items: center; justify-content: center; display: flex; } .rsssl-mixed-content-scan .rsssl-field-wrap .rdt_TableCell[data-column-id="2"] { display: grid; } .rsssl-mixed-content-scan .rsssl-field-wrap .rdt_TableCol, .rsssl-mixed-content-scan .rsssl-field-wrap .rdt_TableCell { min-width: 110px; } .rsssl-mixed-content-scan .rsssl-progress-container .rsssl-progress-bar { border-radius: 5px; height: 20px; background-color: var(--rsp-green); } .rsssl-mixed-content-scan .rsssl-task-status, .rsssl-mixed-content-scan .rsssl-locked-overlay .rsssl-progress-status, .rsssl-locked-overlay .rsssl-mixed-content-scan .rsssl-progress-status { min-width: min-content; } .rsssl-mixed-content-scan .rsssl-task-status.rsssl-warning, .rsssl-mixed-content-scan .rsssl-locked-overlay .rsssl-warning.rsssl-progress-status, .rsssl-locked-overlay .rsssl-mixed-content-scan .rsssl-warning.rsssl-progress-status { background-color: var(--rsp-yellow); color: var(--rsp-text-color); } .rsssl-mixed-content-scan button.button { line-height: 1.5; min-height: 10px; } .rsssl-mixed-content-scan .rsssl-grid-item-content-footer { display: flex; gap: var(--rsp-spacing-s); } .rsssl-mixed-content-scan .rsssl-current-scan-action, .rsssl-mixed-content-scan .rsssl-mixed-content-description { margin: 10px 5px; font-size: var(--rsp-fs-300); } .rsssl-learningmode-placeholder { height: 150px; } .rsssl-learningmode-placeholder div { background-color: var(--rsp-grey-200); margin: 10px 0; height: 20px; } .rsssl-learning-mode-delete { cursor: pointer; background: none; border: none; font-size: 1.5em; font-weight: 700; } .rsssl-locked-overlay .rsssl-open { float: left; margin-right: 12px; } .rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-completed, .rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-enforced { background-color: var(--rsp-color-success); color: #fff; } .rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode { background-color: var(--rsp-color-open); } .rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-error { background-color: var(--rsp-color-error); color: #fff; } .rsssl-locked-overlay .rsssl-progress-status.rsssl-disabled, .rsssl-locked-overlay .rsssl-progress-status.rsssl-learning-mode-disabled { background-color: var(--rsp-color-disabled); } .rsssl-learning-mode-footer { display: flex; align-items: center; justify-content: flex-start; gap: var(--rsp-spacing-s); } .rsssl-learning-mode-footer select { margin-left: auto; } .rsssl-learning-mode-footer label { display: flex; align-items: center; } .rsssl-learning-mode-footer label input { margin-top: 0; } .rsssl-lets-encrypt-tests { margin: var(--rsp-spacing-xs) var(--rsp-spacing-xl); } .rsssl-lets-encrypt-tests .rsssl-progress-bar { padding-block: 0; margin-bottom: var(--rsp-spacing-m); } .rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress { overflow: hidden; height: var(--rsp-spacing-m); border-radius: 5px; background-color: var(--rsp-grey-200); } .rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress .rsssl-bar { height: 100%; background-color: var(--rsp-color-success); } .rsssl-lets-encrypt-tests .rsssl-progress-bar .rsssl-progress .rsssl-bar.rsssl-orange { background-color: var(--rsp-color-warning); } .rsssl-lets-encrypt-tests p { margin-bottom: var(--rsp-spacing-m); } .rsssl-lets-encrypt-tests .rsssl-progress-text { display: flex; align-items: center; padding: var(--rsp-spacing-m) var(--rsp-spacing-l); padding-block: 0; padding-top: var(--rsp-spacing-xs); } @media screen and (max-width: 1280px) { .rsssl-lets-encrypt-tests .rsssl-progress-text { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } @media screen and (max-width: 1080px) { .rsssl-lets-encrypt-tests .rsssl-progress-text { padding: var(--rsp-spacing-xs) var(--rsp-spacing-s); } } .rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-percentage { font-size: 32px; font-weight: 700; } .rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-text-span { margin-left: 35px; font-size: 18px; font-weight: 600; } .rsssl-lets-encrypt-tests .rsssl-progress-text .rsssl-progress-text-span a { margin-left: 3px; } .rsssl-lets-encrypt-tests ul li { display: flex; margin-bottom: 15px; /*Nested li */ } .rsssl-lets-encrypt-tests ul li .rsssl-icon { margin-right: 7px; } .rsssl-lets-encrypt-tests ul li ul li:before { background-color: var(--rsp-grey-500); color: #fff; height: 6px; width: 6px; border-radius: 50%; content: ""; position: absolute; margin-top: 7px; margin-left: -19px; } .rsssl-lets-encrypt-tests .rsssl-test-results ul li { display: block; } .rsssl-lets-encrypt-tests .rsssl-test-results h4 { margin: var(--rsp-spacing-m) 0; } .rsssl-lets-encrypt-tests .rsssl-test-results a + button { margin-left: var(--rsp-spacing-m); } .rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-certificate-data { display: none; } .rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div { display: flex; flex-direction: row; margin-right: 20px; } .rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div .rsssl-dns-domain, .rsssl-lets-encrypt-tests .rsssl-test-results .rsssl-dns-text-records div .rsssl-dns-field { margin-right: var(--rsp-spacing-m); width: 50%; } .rsssl-lets-encrypt-tests .rsssl-modal-subtitle { display: none; } .rsssl-lets-encrypt-tests .components-toggle-control { margin: 20px 0; } .rsssl div[class^=rsssl-wizard-] .rsssl-permissions_policy .rdt_TableCell, .rsssl div[class^=rsssl-wizard-] .rsssl-permissions_policy .rdt_TableCol { min-width: fit-content; } .rsssl div[class^=rsssl-wizard-] .rsssl-permissions_policy .rsssl-locked .rsssl-shield-overlay { top: calc(100% - 300px); } .rsssl-vulnerability-action a.button { margin-left: 10px; } .rsssl-processing { opacity: 0.5; } .rsssl-vulnerabilities_measures .rsssl-locked-overlay input[type=checkbox] { margin-top: 0; } /** Admin notice */ .rsssl-field-wrap .rdt_TableCol, .rsssl-field-wrap .rdt_TableCell, .rsssl-field-wrap .rdt_TableCol_Sortable { flex-direction: row; } .rsssl-field-wrap .rdt_TableCol:first-child, .rsssl-field-wrap .rdt_TableCell:first-child { min-width: initial; } .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child { flex-grow: 0; flex-direction: row-reverse; min-width: initial; } .rsssl-field-wrap .rdt_TableRow { padding: var(--rsp-spacing-xs) 0; } .rsssl-field-wrap .rdt_TableRow:nth-child(odd) { background-color: var(--rsp-grey-200); } .rsssl-field-wrap .rdt_TableRow .rdt_TableCell:last-child { flex-grow: 0; } .rsssl-field-wrap .rdt_TableRow .rsssl-status-allowed, .rsssl-field-wrap .rdt_TableRow .rsssl-status-revoked { min-width: 110px; margin-right: 10px; } .rsssl-field-wrap .rsssl-csp-revoked > div:nth-child(-n+3) { opacity: 0.3; } .rsssl-content_security_policy .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child { flex-grow: 0; min-width: initial; justify-content: flex-end; } .rsssl-content_security_policy .rsssl-field-wrap .rdt_TableRow .rdt_TableCell:last-child { flex-grow: 0; min-width: initial; } .rsssl-content_security_policy .rsssl-field-wrap .rsssl-csp-revoked > div:nth-child(-n+3) { opacity: 0.3; } nav.rdt_Pagination > div > svg { display: none !important; } .rsssl-content_security_policy .rsssl-field-wrap > div > div, .rsssl-xml_rpc .rsssl-field-wrap > div > div { overflow-x: inherit; overflow-y: inherit; } .rsssl-permissions_policy .rdt_TableRow .rdt_TableCell:last-child { min-width: fit-content; } .rsssl-permissions_policy .rdt_TableRow .rdt_TableCell:last-child .components-input-control__container { min-width: fit-content; } .rsssl-mixed-content-datatable > div > div { display: flex; } .rsssl-vulnerabilities_measures .rdt_TableRow .rdt_TableCell:nth-child(3) { max-width: 50%; } .rsssl-vulnerabilities_overview .rsssl-field-wrap, .two_fa_users_table .rsssl-field-wrap, .rsssl-vulnerabilities_measures .rsssl-field-wrap, .rsssl-limit_login_attempts_country .rsssl-field-wrap, .rsssl-limit_login_attempts_users .rsssl-field-wrap, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap, .rsssl-mixed-content-scan .rsssl-field-wrap, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap, .rsssl-permissions_policy .rsssl-field-wrap, .rsssl-content_security_policy .rsssl-field-wrap, .rsssl-two_fa_users .rsssl-field-wrap, .rsssl-hardening-xml .rsssl-field-wrap { margin-left: calc(-1 * var(--rsp-spacing-l)); margin-right: calc(-1 * var(--rsp-spacing-l)); } @media (max-width: 1280px) { .rsssl-vulnerabilities_overview .rsssl-field-wrap, .two_fa_users_table .rsssl-field-wrap, .rsssl-vulnerabilities_measures .rsssl-field-wrap, .rsssl-limit_login_attempts_country .rsssl-field-wrap, .rsssl-limit_login_attempts_users .rsssl-field-wrap, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap, .rsssl-mixed-content-scan .rsssl-field-wrap, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap, .rsssl-permissions_policy .rsssl-field-wrap, .rsssl-content_security_policy .rsssl-field-wrap, .rsssl-two_fa_users .rsssl-field-wrap, .rsssl-hardening-xml .rsssl-field-wrap { margin-left: calc(-1 * var(--rsp-spacing-m)); margin-right: calc(-1 * var(--rsp-spacing-m)); } } @media (max-width: 1080px) { .rsssl-vulnerabilities_overview .rsssl-field-wrap, .two_fa_users_table .rsssl-field-wrap, .rsssl-vulnerabilities_measures .rsssl-field-wrap, .rsssl-limit_login_attempts_country .rsssl-field-wrap, .rsssl-limit_login_attempts_users .rsssl-field-wrap, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap, .rsssl-mixed-content-scan .rsssl-field-wrap, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap, .rsssl-permissions_policy .rsssl-field-wrap, .rsssl-content_security_policy .rsssl-field-wrap, .rsssl-two_fa_users .rsssl-field-wrap, .rsssl-hardening-xml .rsssl-field-wrap { margin-left: calc(-1 * var(--rsp-spacing-s)); margin-right: calc(-1 * var(--rsp-spacing-s)); } } .rsssl-vulnerabilities_overview .rsssl-field-wrap > .components-base-control, .rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-comment, .rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-progress-container, .rsssl-vulnerabilities_overview .rsssl-field-wrap > div > button, .rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-learning-mode-footer, .rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-mixed-content-description, .rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-current-scan-action, .two_fa_users_table .rsssl-field-wrap > .components-base-control, .two_fa_users_table .rsssl-field-wrap .rsssl-comment, .two_fa_users_table .rsssl-field-wrap .rsssl-progress-container, .two_fa_users_table .rsssl-field-wrap > div > button, .two_fa_users_table .rsssl-field-wrap .rsssl-learning-mode-footer, .two_fa_users_table .rsssl-field-wrap .rsssl-mixed-content-description, .two_fa_users_table .rsssl-field-wrap .rsssl-current-scan-action, .rsssl-vulnerabilities_measures .rsssl-field-wrap > .components-base-control, .rsssl-vulnerabilities_measures .rsssl-field-wrap .rsssl-comment, .rsssl-vulnerabilities_measures .rsssl-field-wrap .rsssl-progress-container, .rsssl-vulnerabilities_measures .rsssl-field-wrap > div > button, .rsssl-vulnerabilities_measures .rsssl-field-wrap .rsssl-learning-mode-footer, .rsssl-vulnerabilities_measures .rsssl-field-wrap .rsssl-mixed-content-description, .rsssl-vulnerabilities_measures .rsssl-field-wrap .rsssl-current-scan-action, .rsssl-limit_login_attempts_country .rsssl-field-wrap > .components-base-control, .rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-comment, .rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-progress-container, .rsssl-limit_login_attempts_country .rsssl-field-wrap > div > button, .rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-learning-mode-footer, .rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-mixed-content-description, .rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-current-scan-action, .rsssl-limit_login_attempts_users .rsssl-field-wrap > .components-base-control, .rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-comment, .rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-progress-container, .rsssl-limit_login_attempts_users .rsssl-field-wrap > div > button, .rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-learning-mode-footer, .rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-mixed-content-description, .rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-current-scan-action, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap > .components-base-control, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-comment, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-progress-container, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap > div > button, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-learning-mode-footer, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-mixed-content-description, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-current-scan-action, .rsssl-mixed-content-scan .rsssl-field-wrap > .components-base-control, .rsssl-mixed-content-scan .rsssl-field-wrap .rsssl-comment, .rsssl-mixed-content-scan .rsssl-field-wrap .rsssl-progress-container, .rsssl-mixed-content-scan .rsssl-field-wrap > div > button, .rsssl-mixed-content-scan .rsssl-field-wrap .rsssl-learning-mode-footer, .rsssl-mixed-content-scan .rsssl-field-wrap .rsssl-mixed-content-description, .rsssl-mixed-content-scan .rsssl-field-wrap .rsssl-current-scan-action, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap > .components-base-control, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-comment, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-progress-container, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap > div > button, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-learning-mode-footer, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-mixed-content-description, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-current-scan-action, .rsssl-permissions_policy .rsssl-field-wrap > .components-base-control, .rsssl-permissions_policy .rsssl-field-wrap .rsssl-comment, .rsssl-permissions_policy .rsssl-field-wrap .rsssl-progress-container, .rsssl-permissions_policy .rsssl-field-wrap > div > button, .rsssl-permissions_policy .rsssl-field-wrap .rsssl-learning-mode-footer, .rsssl-permissions_policy .rsssl-field-wrap .rsssl-mixed-content-description, .rsssl-permissions_policy .rsssl-field-wrap .rsssl-current-scan-action, .rsssl-content_security_policy .rsssl-field-wrap > .components-base-control, .rsssl-content_security_policy .rsssl-field-wrap .rsssl-comment, .rsssl-content_security_policy .rsssl-field-wrap .rsssl-progress-container, .rsssl-content_security_policy .rsssl-field-wrap > div > button, .rsssl-content_security_policy .rsssl-field-wrap .rsssl-learning-mode-footer, .rsssl-content_security_policy .rsssl-field-wrap .rsssl-mixed-content-description, .rsssl-content_security_policy .rsssl-field-wrap .rsssl-current-scan-action, .rsssl-two_fa_users .rsssl-field-wrap > .components-base-control, .rsssl-two_fa_users .rsssl-field-wrap .rsssl-comment, .rsssl-two_fa_users .rsssl-field-wrap .rsssl-progress-container, .rsssl-two_fa_users .rsssl-field-wrap > div > button, .rsssl-two_fa_users .rsssl-field-wrap .rsssl-learning-mode-footer, .rsssl-two_fa_users .rsssl-field-wrap .rsssl-mixed-content-description, .rsssl-two_fa_users .rsssl-field-wrap .rsssl-current-scan-action, .rsssl-hardening-xml .rsssl-field-wrap > .components-base-control, .rsssl-hardening-xml .rsssl-field-wrap .rsssl-comment, .rsssl-hardening-xml .rsssl-field-wrap .rsssl-progress-container, .rsssl-hardening-xml .rsssl-field-wrap > div > button, .rsssl-hardening-xml .rsssl-field-wrap .rsssl-learning-mode-footer, .rsssl-hardening-xml .rsssl-field-wrap .rsssl-mixed-content-description, .rsssl-hardening-xml .rsssl-field-wrap .rsssl-current-scan-action { margin-left: var(--rsp-spacing-l); margin-right: var(--rsp-spacing-l); } .rsssl-vulnerabilities_overview .rdt_TableCell:first-child, .rsssl-vulnerabilities_overview .rdt_TableCol:first-child, .two_fa_users_table .rdt_TableCell:first-child, .two_fa_users_table .rdt_TableCol:first-child, .rsssl-vulnerabilities_measures .rdt_TableCell:first-child, .rsssl-vulnerabilities_measures .rdt_TableCol:first-child, .rsssl-limit_login_attempts_country .rdt_TableCell:first-child, .rsssl-limit_login_attempts_country .rdt_TableCol:first-child, .rsssl-limit_login_attempts_users .rdt_TableCell:first-child, .rsssl-limit_login_attempts_users .rdt_TableCol:first-child, .rsssl-limit_login_attempts_event_log .rdt_TableCell:first-child, .rsssl-limit_login_attempts_event_log .rdt_TableCol:first-child, .rsssl-mixed-content-scan .rdt_TableCell:first-child, .rsssl-mixed-content-scan .rdt_TableCol:first-child, .rsssl-limit_login_attempts_ip_address .rdt_TableCell:first-child, .rsssl-limit_login_attempts_ip_address .rdt_TableCol:first-child, .rsssl-permissions_policy .rdt_TableCell:first-child, .rsssl-permissions_policy .rdt_TableCol:first-child, .rsssl-content_security_policy .rdt_TableCell:first-child, .rsssl-content_security_policy .rdt_TableCol:first-child, .rsssl-two_fa_users .rdt_TableCell:first-child, .rsssl-two_fa_users .rdt_TableCol:first-child, .rsssl-hardening-xml .rdt_TableCell:first-child, .rsssl-hardening-xml .rdt_TableCol:first-child { padding-left: var(--rsp-spacing-l); padding-right: var(--rsp-spacing-l); } .rsssl-vulnerabilities_overview .rdt_TableCell:last-child, .rsssl-vulnerabilities_overview .rdt_TableCol:last-child, .two_fa_users_table .rdt_TableCell:last-child, .two_fa_users_table .rdt_TableCol:last-child, .rsssl-vulnerabilities_measures .rdt_TableCell:last-child, .rsssl-vulnerabilities_measures .rdt_TableCol:last-child, .rsssl-limit_login_attempts_country .rdt_TableCell:last-child, .rsssl-limit_login_attempts_country .rdt_TableCol:last-child, .rsssl-limit_login_attempts_users .rdt_TableCell:last-child, .rsssl-limit_login_attempts_users .rdt_TableCol:last-child, .rsssl-limit_login_attempts_event_log .rdt_TableCell:last-child, .rsssl-limit_login_attempts_event_log .rdt_TableCol:last-child, .rsssl-mixed-content-scan .rdt_TableCell:last-child, .rsssl-mixed-content-scan .rdt_TableCol:last-child, .rsssl-limit_login_attempts_ip_address .rdt_TableCell:last-child, .rsssl-limit_login_attempts_ip_address .rdt_TableCol:last-child, .rsssl-permissions_policy .rdt_TableCell:last-child, .rsssl-permissions_policy .rdt_TableCol:last-child, .rsssl-content_security_policy .rdt_TableCell:last-child, .rsssl-content_security_policy .rdt_TableCol:last-child, .rsssl-two_fa_users .rdt_TableCell:last-child, .rsssl-two_fa_users .rdt_TableCol:last-child, .rsssl-hardening-xml .rdt_TableCell:last-child, .rsssl-hardening-xml .rdt_TableCol:last-child { padding-right: var(--rsp-spacing-l); } .rsssl-search-bar { float: right; padding: 0; } .rsssl-search-bar__inner { display: flex; align-items: center; background-color: gray; border-radius: 3px; transition: background-color 0.3s ease; } .rsssl-search-bar__inner:focus-within { background-color: #fff; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .rsssl-search-bar__icon { /* Add styles for the search icon */ } .rsssl-search-bar__input { border: none; outline: none; background: gray; padding: 3px 5px; width: 150px; /* Adjust width as needed */ transition: width 0.3s ease; } .rsssl-search-bar__input:focus { width: 200px; /* Adjust width as needed */ } .rsssl-container { padding: 2em; display: flex; align-items: center; justify-content: space-between; } .rsssl-multiselect-datatable-form { display: flex; align-items: center; Justify-content: space-between; width: 100%; padding: 1em 2em; background: var(--rsp-blue-faded); } .rdt_TableRow .rdt_TableCell:last-child { min-width: 20px; } .rdt_TableRow .rdt_TableCell:last-child button, .rdt_TableRow .rdt_TableCell:last-child span { min-width: 20px; } /* Section for EdgeCases and other specific styling */ /* EdgeCase: EventLog */ .rsssl-content_security_policy .rdt_TableCell, .rsssl-content_security_policy .rdt_TableCol, .rsssl-hardening-xml .rdt_TableCell, .rsssl-hardening-xml .rdt_TableCol, .rsssl-vulnerabilities_overview .rdt_TableCell, .rsssl-vulnerabilities_overview .rdt_TableCol, .rsssl-limit_login_attempts_ip_address .rdt_TableCell, .rsssl-limit_login_attempts_ip_address .rdt_TableCol, .rsssl-limit_login_attempts_users .rdt_TableCell, .rsssl-limit_login_attempts_users .rdt_TableCol, .rsssl-limit_login_attempts_country .rdt_TableCell, .rsssl-limit_login_attempts_country .rdt_TableCol, .rsssl-limit_login_attempts_event_log .rdt_TableCell, .rsssl-limit_login_attempts_event_log .rdt_TableCol { min-width: initial; } .rsssl-content_security_policy .rdt_Pagination, .rsssl-hardening-xml .rdt_Pagination, .rsssl-vulnerabilities_overview .rdt_Pagination, .rsssl-limit_login_attempts_ip_address .rdt_Pagination, .rsssl-limit_login_attempts_users .rdt_Pagination, .rsssl-limit_login_attempts_country .rdt_Pagination, .rsssl-limit_login_attempts_event_log .rdt_Pagination { margin-top: 0; padding: 0 25px; } .rsssl-content_security_policy .rdt_tableCell:has(div > .rsssl-action-buttons), .rsssl-hardening-xml .rdt_tableCell:has(div > .rsssl-action-buttons), .rsssl-vulnerabilities_overview .rdt_tableCell:has(div > .rsssl-action-buttons), .rsssl-limit_login_attempts_ip_address .rdt_tableCell:has(div > .rsssl-action-buttons), .rsssl-limit_login_attempts_users .rdt_tableCell:has(div > .rsssl-action-buttons), .rsssl-limit_login_attempts_country .rdt_tableCell:has(div > .rsssl-action-buttons), .rsssl-limit_login_attempts_event_log .rdt_tableCell:has(div > .rsssl-action-buttons) { position: relative; } .rsssl-content_security_policy .rsssl-field-wrap, .rsssl-hardening-xml .rsssl-field-wrap, .rsssl-vulnerabilities_overview .rsssl-field-wrap, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap, .rsssl-limit_login_attempts_users .rsssl-field-wrap, .rsssl-limit_login_attempts_country .rsssl-field-wrap, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap { padding: 0; } .rsssl-content_security_policy .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child, .rsssl-hardening-xml .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child, .rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child, .rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child, .rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableHeadRow .rdt_TableCol:last-child { flex-grow: 1; } .rsssl-content_security_policy .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child, .rsssl-hardening-xml .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child, .rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child, .rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child, .rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:last-child { flex-grow: 1; } .rsssl-content_security_policy .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child, .rsssl-hardening-xml .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child, .rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child, .rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child, .rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableBody .rdt_Expanding .rdt_TableRow .rdt_TableCell:first-child { padding: 0; flex-direction: row; } .rsssl-content_security_policy .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child, .rsssl-hardening-xml .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child, .rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child, .rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child, .rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableBody .rdt_TableRow .rdt_TableCell:first-child { padding: 0 25px; flex-direction: row; } .rsssl-content_security_policy .rsssl-field-wrap .rsssl-learning-mode-delete, .rsssl-hardening-xml .rsssl-field-wrap .rsssl-learning-mode-delete, .rsssl-vulnerabilities_overview .rsssl-field-wrap .rsssl-learning-mode-delete, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rsssl-learning-mode-delete, .rsssl-limit_login_attempts_users .rsssl-field-wrap .rsssl-learning-mode-delete, .rsssl-limit_login_attempts_country .rsssl-field-wrap .rsssl-learning-mode-delete, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rsssl-learning-mode-delete { float: right; } .rsssl-content_security_policy .rsssl-field-wrap .rdt_TableCell:last-child div, .rsssl-hardening-xml .rsssl-field-wrap .rdt_TableCell:last-child div, .rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableCell:last-child div, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableCell:last-child div, .rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableCell:last-child div, .rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableCell:last-child div, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableCell:last-child div { width: 100%; } .rsssl-content_security_policy .rsssl-field-wrap .rdt_TableCell:last-child div button, .rsssl-content_security_policy .rsssl-field-wrap .rdt_TableCell:last-child div a, .rsssl-hardening-xml .rsssl-field-wrap .rdt_TableCell:last-child div button, .rsssl-hardening-xml .rsssl-field-wrap .rdt_TableCell:last-child div a, .rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableCell:last-child div button, .rsssl-vulnerabilities_overview .rsssl-field-wrap .rdt_TableCell:last-child div a, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableCell:last-child div button, .rsssl-limit_login_attempts_ip_address .rsssl-field-wrap .rdt_TableCell:last-child div a, .rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableCell:last-child div button, .rsssl-limit_login_attempts_users .rsssl-field-wrap .rdt_TableCell:last-child div a, .rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableCell:last-child div button, .rsssl-limit_login_attempts_country .rsssl-field-wrap .rdt_TableCell:last-child div a, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableCell:last-child div button, .rsssl-limit_login_attempts_event_log .rsssl-field-wrap .rdt_TableCell:last-child div a { margin-left: 10px; } /* EdgeCase: CountryTable */ .rsssl-vulnerabilities_measures .rdt_TableCell:nth-child(2) select { max-width: 100%; } /* EdgeCase: hardening-xml */ .rsssl-hardening-xml .rdt_TableCol:first-child { padding: 0 25px !important; } .rsssl-hardening-xml .rdt_TableCell:last-child { padding: 0 25px !important; } .rsssl-hardening-xml .rdt_TableRow .rdt_TableCell:last-child { flex: 1; display: flex; justify-content: flex-end; } /* EdgeCase: Permission_Policy */ .rsssl-content_security_policy .rdt_TableCol:last-child, .rsssl-permissions_policy .rdt_TableCol:last-child { flex-grow: 1; text-align: right; } .rsssl-content_security_policy .rdt_TableCol:last-child div, .rsssl-permissions_policy .rdt_TableCol:last-child div { width: 100%; display: flex; justify-content: flex-start; } .rsssl-content_security_policy .rdt_TableCell:last-child, .rsssl-permissions_policy .rdt_TableCell:last-child { flex-grow: 1; text-align: right; } .rsssl-content_security_policy .rdt_TableCell:last-child div, .rsssl-permissions_policy .rdt_TableCell:last-child div { width: 100%; display: flex; justify-content: flex-end; } .rsssl-content_security_policy .rdt_TableCell:last-child div button, .rsssl-permissions_policy .rdt_TableCell:last-child div button { margin-right: 0px !important; } .rsssl .rsssl-new-features-block .rsssl-grid-item-content { display: flex; flex-direction: column; justify-content: space-between; } .rsssl .rsssl-new-features { display: flex; flex-direction: row; flex-wrap: wrap; gap: var(--rsp-spacing-xs); } @media only screen and (max-width: 1599px) and (min-width: 1280px) { .rsssl .rsssl-new-features { gap: var(--rsp-spacing-xxs); } } .rsssl .rsssl-new-feature { width: 100%; color: var(--rsp-text-color-light); display: flex; align-items: flex-start; min-width: 0; gap: var(--rsp-spacing-xs); text-decoration: none; } .rsssl .rsssl-new-feature .rsssl-icon { margin-top: 2px; } .rsssl .rsssl-new-feature .rsssl-new-feature-desc p { font-size: var(--rsp-fs-300); } a.rsssl-skip-link { display: flex; justify-content: center; margin: 15px 0 20px; } .rsssl-two_fa_users div[data-column-id="4"].rdt_TableCol { display: none; } .rsssl-two_fa_users .rdt_TableRow .rdt_TableCell:last-child { flex: 1; display: flex; justify-content: flex-end; } .rsssl-two_fa_users .rdt_TableHeadRow .rdt_TableCol:last-child { flex-grow: 1; display: flex; justify-content: flex-end; } .rsssl-modal { /* spinner for React Icons */ } .rsssl-modal .rsssl-intro-logo { width: 7em; position: absolute; right: 1.6em; height: auto; bottom: 0.15em; margin: 0; padding: 0; } @media (max-width: 768px) { .rsssl-modal .rsssl-intro-logo { display: none; } } .rsssl-modal .rsssl-ssl-intro-container .rsssl-details { display: flex; padding: var(--rsp-spacing-xs) var(--rsp-spacing-m); gap: var(--rsp-spacing-xs); } .rsssl-modal .rsssl-ssl-intro-container .rsssl-details .rsssl-icon { min-width: 25px; } .rsssl-modal .rsssl-modal-footer { padding: var(--rsp-spacing-m) var(--rsp-spacing-m); } .rsssl-modal .icon-spin { animation: spin 2s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .rsssl .rsssl-locked.rsssl-locked-premium .rsssl-locked-overlay { bottom: var(--rsp-spacing-s); flex-direction: column; } .rsssl .rsssl-locked .rsssl-locked-overlay { display: flex; bottom: 0; text-align: left; margin-bottom: 20px; padding: 0; } .rsssl .rsssl-locked .rsssl-locked-overlay.rsssl-premium { bottom: 0; flex-direction: column; } .rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-header { width: 100%; flex-direction: row; } .rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-header .rsssl-locked-header-title { font-weight: 600; color: var(--rsp-blue); } .rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-content { flex-direction: row; width: 100%; } .rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-footer { display: flex; align-items: center; justify-content: flex-start; width: 100%; } .rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-footer a { position: relative; float: left !important; } .rsssl .rsssl-locked .rsssl-locked-overlay .rsssl-locked-footer::after { content: ""; display: table; clear: both; } .rsssl .rsssl-disabled .rsssl-field-wrap .rsssl-locked { background: transparent; } /* Accordeon */ .rsssl-accordeon { /* Basic styling for the accordion container */ border: 1px solid #ccc; border-radius: 5px; overflow: hidden; transition: all 0.3s ease; } .rsssl-accordeon__header { /* Styling for the accordion header */ display: flex; justify-content: space-between; align-items: center; background-color: #f5f5f5; padding: 10px; cursor: pointer; } .rsssl-accordeon__header__inner { /* Styling for the inner container of the header */ display: flex; align-items: center; } .rsssl-accordeon__header__icon { /* You can set a background-image or other styling here for the icon */ width: 20px; height: 20px; margin-right: 10px; } .rsssl-accordeon__header__title { /* Styling for the title text */ font-size: 16px; font-weight: bold; } .rsssl-accordeon__header__button__inner { /* Styling for the button inside the header */ background: none; border: none; cursor: pointer; font-size: 18px; } .rsssl-accordeon__content { /* By default, hide the content */ max-height: 0; overflow: hidden; transition: max-height 0.3s ease; } .rsssl-accordeon--open .rsssl-accordeon__content { /* When the accordion is open, show the content */ max-height: 300px; /* You may need to adjust this value */ } .rsssl-accordeon__content__inner { /* Basic styling for the inner content container */ padding: 15px; background-color: #fff; } .rsssl div[class^=rsssl-wizard-] .rsssl-tooltip-icon .react-tooltip { max-width: 300px; white-space: pre-wrap; } .rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap label { display: flex; } .rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap label .cmplz-label-text { margin-right: 10px; } .rsssl div[class^=rsssl-wizard-] .rsssl-field-wrap .rsssl-icon { cursor: pointer; } .rsssl { /*skeleton*/ /*loader*/ } .rsssl .rsssl-skeleton:empty { margin: auto; margin-bottom: 25px; width: 100%; height: 235px; /* change height to see repeat-y behavior */ background-image: linear-gradient(100deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.5) 70%, rgba(255, 255, 255, 0.5) 15%), linear-gradient(#f2f2f2 38px, transparent 0), linear-gradient(#f2f2f2 38px, transparent 0), linear-gradient(#f2f2f2 38px, transparent 0), linear-gradient(#f2f2f2 38px, transparent 0); background-repeat: repeat-y; background-size: 50px 200px, 100% 117px, 100% 117px, 100% 117px, 100% 117px; background-position: 0 0, 1px 1px, 1px 40px, 1px 79px, 1px 118px; background-color: #d6d8db; border-right: 1px solid #d6d8db; animation: shine 2.5s infinite; } @keyframes shine { to { background-position: 100% 0, 1px 1px, 1px 40px, 1px 79px, 1px 118px; } } .rsssl .rsssl-loader { margin: 0; width: 50px; height: 15px; text-align: center; font-size: 10px; } .rsssl .rsssl-loader > div { margin: 1px; background-color: #333; height: 100%; width: 3px; display: inline-block; -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out; animation: sk-stretchdelay 1.2s infinite ease-in-out; } .rsssl .rsssl-loader.rsssl-loader-white > div { background-color: #fff; } .rsssl .rsssl-loader .rect2 { -webkit-animation-delay: -1.1s; animation-delay: -1.1s; } .rsssl .rsssl-loader .rect3 { -webkit-animation-delay: -1s; animation-delay: -1s; } .rsssl .rsssl-loader .rect4 { -webkit-animation-delay: -0.9s; animation-delay: -0.9s; } .rsssl .rsssl-loader .rect5 { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; } .rsssl .button-primary .rsssl-loader div { background-color: #fff; } @-webkit-keyframes sk-stretchdelay { 0%, 40%, 100% { -webkit-transform: scaleY(0.4); } 20% { -webkit-transform: scaleY(1); } } @keyframes sk-stretchdelay { 0%, 40%, 100% { transform: scaleY(0.4); -webkit-transform: scaleY(0.4); } 20% { transform: scaleY(1); -webkit-transform: scaleY(1); } } .rsssl { --rsp-brand-primary: var(--rsp-yellow); --rsp-brand-secondary: var(--rsp-blue); --rsp-brand-primary-faded: var(--rsp-yellow-faded); }PK!u  assets/css/rsssl-plugin.scssnu[/* This was created for styling the plugin overview page for vulnerable plugins. */ @import "variables.scss"; .rsssl-btn-vulnerable { display: inline-block; text-decoration: none; font-size: var(--rsp-fs-100); line-height: 2.15384615; min-height: 30px; margin: 0; padding: 4px 8px; min-width: 100px; text-align: center; cursor: pointer; font-weight: 600; -webkit-appearance: none; border-radius: var(--rsp-border-radius-xs); white-space: nowrap; box-sizing: border-box; background-color: var(--rsp-yellow); color: var(--rsp-black); border-color: var(--rsp-yellow); &:hover { text-decoration: underline; } &.rsssl-critical { background-color: var(--rsp-red); color: var(--rsp-white); border-color: var(--rsp-red); } &.rsssl-high { background-color: var(--rsp-red); color: var(--rsp-white); border-color: var(--rsp-red); } &.rsssl-medium { border-color: var(--rsp-yellow); color: var(--rsp-black); background-color: var(--rsp-yellow); } } PK!PYassets/css/admin/layout.scssnu[/* Grid */ .rsssl { .rsssl-header, .rsssl-content-area { max-width: clamp(300px, calc(100% - var(--rsp-grid-gap) * 2), 1600px); margin: 0 auto; @media(max-width: $rsp-break-xxl) { --rsp-grid-gap: var(--rsp-spacing-m); } @media(max-width: $rsp-break-xl) { // 1440px --rsp-grid-gap: var(--rsp-spacing-s); } @media(max-width: $rsp-break-l) { // 1366px --rsp-grid-gap: var(--rsp-spacing-xs); } @media(max-width: $rsp-break-m) { // 1280px } @media(max-width: $rsp-break-s) { // 1080px } } .rsssl-header-container .rsssl-header { display: flex; flex-wrap: wrap; justify-content: space-between; height: 70px; box-sizing: border-box; background-color: var(--rsp-background-block-color); @media(max-width: $rsp-break-s) { height: 100%; } } .rsssl-logo { @media(max-width: $rsp-break-xxs) { display:none; } } .rsssl-header-left { display: flex; font-size: var(--rsp-fs-400); @media(max-width: $rsp-break-s) { justify-content: center; margin: var(--rsp-spacing-xs) 0; order: 3; width: 100%; background-color: var(--rsp-background-block-color); } .rsssl-header-menu { margin: auto 15px; ul { display: flex; } li { margin-bottom: 0; } a { padding: 23px 15px; text-decoration: none; color: var(--rsp-text-color); height: 100%; border-bottom: 4px solid transparent; transition: border 0.3s ease-out; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; @media(max-width: $rsp-break-s) { padding: 10px 15px; } &.active { border-bottom: 4px solid var(--rsp-brand-primary); } &:hover { color: var(--rsp-brand-primary); } } } } .rsssl-header-right { display: flex; flex-wrap: wrap; align-items: center; margin-left: auto; gap: var(--rsp-spacing-s); min-height: 52px; select { max-width: 60ch; } @media(max-width: $rsp-break-xxs) { display:none; } @media(max-width: $rsp-break-xs) { .button { display: none; } } } .rsssl-content-area { margin-top: var(--rsp-grid-gap); } .rsssl-header-container { background: var(--rsp-background-block-color); } .rsssl-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: max-content; gap: var(--rsp-grid-gap); min-height: calc(100vh - 32px - 80px - 20px - var(--rsp-grid-gap)); //32px = wordpress bar, 80px = cmplz bar, 20px = margin-top, 20px is grid gap &.rsssl-settings, &.rsssl-letsencrypt{ grid-template-columns: minmax(235px, max-content) 2fr minmax(min-content, 1fr); @media only screen and ( max-width: $rsp-break-s) { grid-template-columns: repeat(4, 1fr); .rsssl-wizard-menu, .rsssl-wizard-settings, .rsssl-wizard-help { grid-column: 1 / -1; } } } @media only screen and ( max-width: $rsp-break-m) { grid-template-columns: repeat(2,1fr); } @media only screen and ( max-width: $rsp-break-s) { max-width:790px; width: calc(100% - var(--rsp-grid-gap) * 2) } } .rsssl-grid-item { @include rsssl-block; &.rsssl-disabled { min-height:320px;//add min height on disabled so the settings is visible behind the locked div. } display: flex; flex-wrap: wrap; justify-content: flex-start; flex-direction: column; flex-basis: 100%; //min-height: 200px;//seems odd for blocks with only one item: lots of white space grid-column: span 1; grid-row: span 1; &.rsssl-two_fa_users { .rsssl-grid-item-content { .rsssl-field-wrap { margin-top: -50px; } } } @media(max-width: $rsp-break-s) { grid-column: span 4; } &.no-background { background: none; border: none; box-shadow: none; } &.rsssl-column-2 { grid-column: span 2; @media(max-width: $rsp-break-s) { grid-column: span 4; } } &.rsssl-row-2 { grid-row: span 2; min-height: 400px; } &-header { width: 100%; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; min-height: calc(30px + var(--rsp-spacing-s) * 2); @include rsssl-block-padding; &:empty { display: none; } } &-title { margin: 4px 0 4px 0; } &-controls { font-size: var(--rsp-fs-200); display: flex; gap: var(--rsp-spacing-s); } &-content { width: 100%; box-sizing: border-box; @include rsssl-inline-block-padding; flex-grow: 100; &:empty { display: none; } } &-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--rsp-grid-margin); width: 100%; min-height: calc(30px + var(--rsp-spacing-s) * 2); box-sizing: border-box; @include rsssl-block-padding; align-self: flex-end; .rsssl-legend { display: flex; span { padding-left: 5px; } } &:empty { display: none; } } .rsssl-flex-push-right { margin-left: auto; } .rsssl-flex-push-left { margin-right: auto; } } } PK!m  assets/css/admin/states.scssnu[.rsssl{ /*skeleton*/ $panelheight : 38px; $panelborder : 1px; $paneloffset : 3*($panelborder+$panelheight); $rows : 6; .rsssl-skeleton:empty { margin: auto; margin-bottom: 25px; width: 100%; height: ($rows*$panelheight)+($rows+1)*$panelborder; /* change height to see repeat-y behavior */ background-image: linear-gradient( 100deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.5) 70%, rgba(255, 255, 255, 0.5) 15% ), linear-gradient( #f2f2f2 $panelheight, transparent 0 ), linear-gradient( #f2f2f2 $panelheight, transparent 0 ), linear-gradient( #f2f2f2 $panelheight, transparent 0 ), linear-gradient( #f2f2f2 $panelheight, transparent 0 ); background-repeat: repeat-y; background-size: 50px 200px, /* highlight */ 100% $paneloffset, 100% $paneloffset, 100% $paneloffset, 100% $paneloffset; background-position: 0 0, /* highlight */ $panelborder $panelborder, $panelborder $panelheight+(2*$panelborder), $panelborder (2*$panelheight)+(3*$panelborder), $panelborder (3*$panelheight)+(4*$panelborder); background-color:#d6d8db; border-right: $panelborder solid #d6d8db; animation: shine 2.5s infinite; } @keyframes shine { to { background-position: 100% 0, /* move highlight to right */ $panelborder $panelborder, $panelborder $panelheight+(2*$panelborder), $panelborder (2*$panelheight)+(3*$panelborder), $panelborder (3*$panelheight)+(4*$panelborder); } } /*loader*/ .rsssl-loader { margin: 0; width: 50px; height: 15px; text-align: center; font-size: 10px; > div { margin:1px; background-color: #333; height: 100%; width: 3px; display: inline-block; -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out; animation: sk-stretchdelay 1.2s infinite ease-in-out; } &.rsssl-loader-white >div { background-color: #fff; } .rect2 { -webkit-animation-delay: -1.1s; animation-delay: -1.1s; } .rect3 { -webkit-animation-delay: -1.0s; animation-delay: -1.0s; } .rect4 { -webkit-animation-delay: -0.9s; animation-delay: -0.9s; } .rect5 { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; } } .button-primary .rsssl-loader div { background-color: #fff; } @-webkit-keyframes sk-stretchdelay { 0%, 40%, 100% { -webkit-transform: scaleY(0.4) } 20% { -webkit-transform: scaleY(1.0) } } @keyframes sk-stretchdelay { 0%, 40%, 100% { transform: scaleY(0.4); -webkit-transform: scaleY(0.4); } 20% { transform: scaleY(1.0); -webkit-transform: scaleY(1.0); } } } PK!L00%assets/css/admin/modules/tooltip.scssnu[.rsssl div[class^=rsssl-wizard-] { .rsssl-tooltip-icon .react-tooltip { max-width:300px; white-space: pre-wrap; } .rsssl-field-wrap { label { display: flex; .cmplz-label-text { margin-right: 10px; } } .rsssl-icon { cursor: pointer; } } }PK!:%assets/css/admin/modules/bullets.scssnu[.rsssl{ // rsssl bullets .rsssl-bullet { height: 13px; width: 13px; flex: 0 0 13px; border-radius: 50%; display: inline-block; background-color: var(--rsp-grey-300); &.rsp-yellow { background-color: var(--rsp-yellow); } &.rsp-blue { background-color: var(--rsp-blue); } &.rsp-pink { background-color: var(--rsp-pink); } &.rsp-red, &.rsssl-bullet-error { background-color: var(--rsp-red); } &.rsp-green, &.rsssl-bullet-success { background-color: var(--rsp-green); } &.rsp-blue-yellow { background: var(--rsp-blue); background: linear-gradient(77deg, rgba(0,159,255, 1) 0%, rgba(0,159,255, 1) 30%, rgba(244, 191, 62, 1) 70%, rgba(244, 191, 62, 1) 100%); animation: gradient 2s ease infinite; background-size: 200% 200%; } } .rsssl-legend{ display: flex; width: max-content; color: var(--rsp-text-color-light); align-items: center; min-width: 0; gap: var(--rsp-spacing-xxs); text-decoration: none; &:first-of-type{ margin-left: auto; } } @keyframes gradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } } PK!?dNN$assets/css/admin/modules/badges.scssnu[.rsssl { .rsssl-badge { --badge-height: 20px; height: var(--badge-height); line-height: var(--badge-height); padding-inline: 8px; min-width: 100px; text-align: center; border-radius: var(--rsp-border-radius-xs); color: var(--rsp-white); display: table; margin: auto auto; font-size: var(--rsp-fs-100); &.rsp-dark { background-color: var(--rsp-black); color: var(--rsp-white); } &.rsp-low { background-color: var(--rsp-yellow-faded); color: var(--rsp-black); } &.rsp-medium { background-color: var(--rsp-yellow); color: var(--rsp-black); } &.rsp-high { background-color: var(--rsp-red-faded); color: var(--rsp-black); } &.rsp-critical { background-color: var(--rsp-red); color: var(--rsp-white); } &.rsp-success { background-color: var(--rsp-color-success); color: var(--rsp-white); } &.rsp-default { background-color: var(--rsp-grey-200); color:black; } } .rsssl-badge-large { --badge-height: 28px; height: var(--badge-height); line-height: var(--badge-height); padding: 0 10px; text-align: center; border-radius: var(--rsp-border-radius-xs); color: var(--rsp-white); display: table; margin: auto auto; font-size: var(--rsp-fs-300); font-weight: 400; &.rsp-dark { background-color: var(--rsp-black); color: var(--rsp-white); } &.rsp-risk-level-l { background-color: var(--rsp-yellow-faded); color: var(--rsp-black); } &.rsp-risk-level-m { background-color: var(--rsp-yellow); color: var(--rsp-black); } &.rsp-risk-level-h { background-color: var(--rsp-red-faded); color: var(--rsp-black); } &.rsp-risk-level-c { background-color: var(--rsp-red); color: var(--rsp-white); } &.rsp-success { background-color: var(--rsp-color-success); color: var(--rsp-white); } &.rsp-default { background-color: var(--rsp-grey-200); color:black; } } }PK!Wh(assets/css/admin/modules/datatables.scssnu[.rsssl-field-wrap { .rdt_TableCol, .rdt_TableCell, .rdt_TableCol_Sortable { //all text to the left flex-direction: row; } .rdt_TableCol:first-child, .rdt_TableCell:first-child { min-width: initial; } .rdt_TableHeadRow { .rdt_TableCol:last-child { flex-grow: 0; flex-direction: row-reverse; min-width: initial; } } .rdt_TableRow { &:nth-child(odd) { background-color: var(--rsp-grey-200) } padding: var(--rsp-spacing-xs) 0; .rdt_TableCell:last-child { flex-grow: 0; } .rsssl-status-allowed, .rsssl-status-revoked { min-width: 110px; margin-right: 10px; } } .rsssl-csp-revoked > div:nth-child(-n+3) { opacity: 0.3; } } .rsssl-content_security_policy .rsssl-field-wrap { .rdt_TableHeadRow { .rdt_TableCol:last-child { flex-grow: 0; min-width: initial; justify-content: flex-end; } .rdt_TableCol:nth-last-child(2) { //flex-direction: row-reverse; } } .rdt_TableRow { .rsssl-status-allowed, .rsssl-status-revoked, .rsssl-learning-mode-delete { //margin-right:0; } .rdt_TableCell:last-child { flex-grow: 0; min-width: initial; } .rdt_TableCell:nth-last-child(2) { //flex-direction: row-reverse; //margin-right:10px; } } .rsssl-csp-revoked > div:nth-child(-n+3) { opacity: 0.3; } } //wp-core also adds an svg for the select dropdown, so we hide the one from the react datatables component nav.rdt_Pagination > div > svg { display: none !important; } .rsssl-content_security_policy, .rsssl-xml_rpc { .rsssl-field-wrap > div > div { overflow-x: inherit; overflow-y: inherit; } } .rsssl-permissions_policy { .rdt_TableRow { .rdt_TableCell:last-child { min-width: fit-content; .components-input-control__container { min-width: fit-content; } } } } .rsssl-mixed-content-datatable { & > div > div { display: flex; } } .rsssl-vulnerabilities_measures { .rdt_TableRow .rdt_TableCell:nth-child(3) { max-width: 50%; } } .rsssl-vulnerabilities_overview, .two_fa_users_table, .rsssl-vulnerabilities_measures, .rsssl-limit_login_attempts_country, .rsssl-limit_login_attempts_users, .rsssl-limit_login_attempts_event_log, .rsssl-mixed-content-scan, .rsssl-limit_login_attempts_ip_address, .rsssl-permissions_policy, .rsssl-content_security_policy, .rsssl-two_fa_users, .rsssl-hardening-xml { .rsssl-field-wrap { margin-left: CALC(-1 * var(--rsp-spacing-l)); margin-right: CALC(-1 * var(--rsp-spacing-l)); @media(max-width: $rsp-break-m) { // 1280px margin-left: CALC(-1 * var(--rsp-spacing-m)); margin-right: CALC(-1 * var(--rsp-spacing-m)); } @media(max-width: $rsp-break-s) { // 1280px margin-left: CALC(-1 * var(--rsp-spacing-s)); margin-right: CALC(-1 * var(--rsp-spacing-s)); } //should be s on <1280px > .components-base-control, .rsssl-comment, //.rsssl-grid-item-content-footer, .rsssl-progress-container, > div > button, .rsssl-learning-mode-footer, .rsssl-mixed-content-description, .rsssl-current-scan-action { margin-left: var(--rsp-spacing-l); margin-right: var(--rsp-spacing-l); } } .rdt_TableCell, .rdt_TableCol { &:first-child { padding-left: var(--rsp-spacing-l); padding-right: var(--rsp-spacing-l); } &:last-child { padding-right: var(--rsp-spacing-l); } } } .rsssl-search-bar { float: right; padding: 0; } .rsssl-search-bar__inner { display: flex; align-items: center; background-color: gray; border-radius: 3px; transition: background-color 0.3s ease; } .rsssl-search-bar__inner:focus-within { background-color: #fff; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .rsssl-search-bar__icon { /* Add styles for the search icon */ } .rsssl-search-bar__input { border: none; outline: none; background: gray; padding: 3px 5px; width: 150px; /* Adjust width as needed */ transition: width 0.3s ease; } .rsssl-search-bar__input:focus { width: 200px; /* Adjust width as needed */ } .rsssl-container { padding: 2em; display: flex; align-items: center; justify-content: space-between; } .rsssl-multiselect-datatable-form { display: flex; align-items:center; Justify-content: space-between; width: 100%; padding: 1em 2em; background: var(--rsp-blue-faded); } .rdt_TableRow .rdt_TableCell:last-child { min-width: 20px; } .rdt_TableRow .rdt_TableCell:last-child button, .rdt_TableRow .rdt_TableCell:last-child span { min-width: 20px; } /* Section for EdgeCases and other specific styling */ /* EdgeCase: EventLog */ .rsssl-content_security_policy, .rsssl-hardening-xml, .rsssl-vulnerabilities_overview, .rsssl-limit_login_attempts_ip_address, .rsssl-limit_login_attempts_users, .rsssl-limit_login_attempts_country, .rsssl-limit_login_attempts_event_log { //first off we remove the min-width from table cell and table col .rdt_TableCell, .rdt_TableCol { min-width: initial; } .rdt_Pagination { margin-top: 0; padding: 0 25px; } .rdt_tableCell { &:has(div > .rsssl-action-buttons) { position: relative; } } .rsssl-container, .rdt_TableRow { //Horizontal padding; // padding: var(--rsp-spacing-m) var(--rsp-spacing-l); } .rsssl-field-wrap { padding: 0; .rdt_TableHeadRow { // Somehow the default for the last child is to make it small, well we dont want that. .rdt_TableCol:last-child { //we calculate the remaining width of the table and set it to the last column flex-grow: 1; } } .rdt_TableBody { .rdt_TableRow { .rdt_TableCell:last-child { //we calculate the remaining width of the table and set it to the last column flex-grow: 1; } } //This is for the Expandable rows in the table .rdt_Expanding { .rdt_TableRow { .rdt_TableCell:first-child { //we remove all padding padding: 0; flex-direction: row; } } } //This is for the multiselect table .rdt_TableRow { .rdt_TableCell:first-child { //we remove all padding padding: 0 25px; flex-direction: row; } } } .rsssl-learning-mode-delete { float: right; } // in the tableCell we remove all previous styling of the last child .rdt_TableCell:last-child { div { width: 100%; button,a { margin-left: 10px; } } } } } /* EdgeCase: CountryTable */ .rsssl-vulnerabilities_measures { .rdt_TableCell { &:nth-child(2) { select { max-width: 100%; } } } } /* EdgeCase: hardening-xml */ .rsssl-hardening-xml { .rdt_TableCol:first-child { padding: 0 25px !important; } .rdt_TableCell:last-child { padding: 0 25px !important; } .rdt_TableRow .rdt_TableCell:last-child { flex:1; display: flex; justify-content: flex-end; } } /* EdgeCase: Permission_Policy */ .rsssl-content_security_policy, .rsssl-permissions_policy { .rdt_TableCol { &:last-child { //we calculate the remaining width of the table and set it to the last column flex-grow: 1; text-align: right; div { width: 100%; display: flex; justify-content: flex-start; } } } .rdt_TableCell { &:last-child { //we calculate the remaining width of the table and set it to the last column flex-grow: 1; text-align: right; div { width: 100%; display: flex; justify-content: flex-end; button { margin-right: 0px !important; } } } } }PK!%assets/css/admin/modules/ssltest.scssnu[PK!p [$assets/css/admin/modules/wizard.scssnu[.rsssl { div[class^="rsssl-wizard-"] { // starts with selector .rsssl-helplink { color: var(--rsp-text-color); } .rsssl-grid-item { position: relative; //to ensure the rsssl-lock stays within the div margin-bottom: var(--rsp-grid-gap); @media(max-width: $rsp-break-s) { grid-column: span 4; } } &.rsssl-column-2{ grid-column: span 2; @media(max-width: $rsp-break-s) { grid-column: span 4; } } .rsssl-locked { position: absolute; z-index: 10; top: 0; left: 0; bottom: 0; right: 0; background: rgba(255, 255, 255, 0.8); border-radius: var(--rsp-border-radius); .rsssl-shield-overlay { align-items: center; display: flex; justify-content: center; margin-top: 30%; } .rsssl-locked-overlay { z-index: 1; position: absolute; display: flex; align-items: center; gap: var(--rsp-spacing-s); background-color: var(--rsp-white); @include rsssl-block-padding; border-radius: var(--rsp-border-radius-s); margin: var(--rsp-spacing-s); box-shadow: var(--rsp-box-shadow); bottom: 0; width: calc(100% - (2 * var(--rsp-spacing-s))); .rsssl-open { float: left; margin-right: 12px; } .rsssl-progress-status { float: left; margin-right: 20px; } } } //.rsssl-grid-item-footer { // justify-content: flex-end; // padding: 0; // display: flex; // flex-wrap: wrap; // align-items: center; // gap: var(--rsp-grid-margin); // width: 100%; // min-height: 20px; // box-sizing: border-box; // align-self: flex-end; // // .rsssl-legend { // display: flex; // span { // padding-left: 5px; // } // } // // &:empty { // display: none; // } //} & > div:nth-last-of-type(2) { margin-bottom: 0; border-radius: var(--rsp-border-radius) var(--rsp-border-radius) 0 0; } .rsssl-grid-item-footer-container { position: sticky; bottom: 0; display: flex; flex-direction: column; z-index: 12; //should be above 10, for the text editor, which has 10. .rsssl-grid-item-footer-buttons { a.button, button { box-shadow: none !important; &:focus, &:active { box-shadow: none !important; } } } } .rsssl-grid-item-footer-scroll-progress-container { display: flex; flex-direction: column; width: 100%; height: 3px; background-color: var(--rsp-grey-300); overflow: hidden; } .rsssl-grid-item-footer-scroll-progress { height: 100%; background-color: var(--rsp-blue); } .rsssl-grid-item-footer { background: var(--rsp-grey-100); @include rsssl-block-padding(); box-shadow: var(--rsp-box-shadow); border-radius: 0 0 var(--rsp-border-radius) var(--rsp-border-radius); border-top: 1px solid var(--rsp-grey-300); box-sizing: border-box; align-items: center; gap: var(--rsp-grid-margin); width: 100%; min-height: 20px; justify-content: space-around; // last item within the footer & > div:last-of-type { margin-left: auto; } &-buttons{ display: flex; justify-content: flex-end; align-items: center; gap: var(--rsp-spacing-s); } .rsssl-legend { display: flex; span { padding-left: 5px; } } &-upsell-bar { .button { display:inline-block !important; } } &:empty { display: none; } } } } PK!*assets/css/admin/modules/toast/_toast.scssnu[.#{$rt-namespace}__toast { position: relative; min-height: var(--toastify-toast-min-height); box-sizing: border-box; margin-bottom: 1rem; padding: 8px; border-radius: var(--rsp-border-radius); border: 1px solid #eeeeee; box-shadow: 0 1px 10px 0 rgba(0, 0, 0, 0.1), 0 2px 15px 0 rgba(0, 0, 0, 0.05); box-shadow: var(--rsp-box-shadow); display: flex; justify-content: space-between; max-height: var(--toastify-toast-max-height); overflow: hidden; font-family: var(--toastify-font-family); cursor: default; direction: ltr; /* webkit only issue #791 */ z-index: 0; &--rtl { direction: rtl; } &--close-on-click { cursor: pointer; } &-body { margin: auto 0; flex: 1 1 auto; padding: 6px; display: flex; align-items: center; & > div:last-child { word-break: break-word; flex: 1; } } &-icon { margin-inline-end: 10px; width: 20px; flex-shrink: 0; display: flex; } } .#{$rt-namespace}--animate { animation-fill-mode: both; animation-duration: 0.7s; } .#{$rt-namespace}--animate-icon { animation-fill-mode: both; animation-duration: 0.3s; } @media #{$rt-mobile} { .#{$rt-namespace}__toast { margin-bottom: 0; border-radius: 0; } } PK!..3assets/css/admin/modules/toast/_toastContainer.scssnu[.#{$rt-namespace}__toast-container { z-index: var(--toastify-z-index); -webkit-transform: translate3d(0, 0, var(--toastify-z-index) px); position: fixed; padding: 4px; width: var(--toastify-toast-width); box-sizing: border-box; color: #fff; &--top-left { top: 1em; left: 1em; } &--top-center { top: calc( 2em + 32px); left: 50%; transform: translateX(-50%); } &--top-right { top: 1em; right: 1em; } &--bottom-left { bottom: 1em; left: 1em; } &--bottom-center { bottom: 1em; left: 50%; transform: translateX(-50%); } &--bottom-right { bottom: 1em; right: 1em; } } @media #{$rt-mobile} { .#{$rt-namespace}__toast-container { width: 100vw; padding: 0; left: 0; margin: 0; &--top-left, &--top-center, &--top-right { top: 0; transform: translateX(0); } &--bottom-left, &--bottom-center, &--bottom-right { bottom: 0; transform: translateX(0); } &--rtl { right: 0; left: initial; } } } PK!gmI0assets/css/admin/modules/toast/_progressBar.scssnu[@keyframes #{$rt-namespace}__trackProgress { 0% { transform: scaleX(1); } 100% { transform: scaleX(0); } } .#{$rt-namespace}__progress-bar { position: absolute; bottom: 0; left: 0; width: 100%; height: 5px; z-index: var(--toastify-z-index); opacity: 0.7; transform-origin: left; &--animated { animation: #{$rt-namespace}__trackProgress linear 1 forwards; } &--controlled { transition: transform 0.2s; } &--rtl { right: 0; left: initial; transform-origin: right; } } PK!  +assets/css/admin/modules/toast/minimal.scssnu[@charset "UTF-8"; @import 'variables'; @keyframes #{$rt-namespace}__trackProgress { 0% { transform: scaleX(1); } 100% { transform: scaleX(0); } } .#{$rt-namespace}__progress-bar { animation: #{$rt-namespace}__trackProgress linear 1 forwards; } PK!QUg*assets/css/admin/modules/toast/_theme.scssnu[.#{$rt-namespace}__toast { &-theme--dark { background: var(--toastify-color-dark); color: var(--toastify-text-color-dark); } &-theme--light { background: var(--toastify-color-light); color: var(--toastify-text-color-light); } &-theme--colored#{&}--default { background: var(--toastify-color-light); color: var(--toastify-text-color-light); } &-theme--colored#{&}--info { color: var(--toastify-text-color-info); background: var(--toastify-color-info); } &-theme--colored#{&}--success { color: var(--toastify-text-color-success); background: var(--rsp-green); } &-theme--colored#{&}--warning { color: var(--toastify-text-color-warning); background: var(--toastify-color-warning); } &-theme--colored#{&}--error { color: var(--toastify-text-color-error); background: var(--toastify-color-error); } } .#{$rt-namespace}__progress-bar { &-theme--light { background: var(--toastify-color-progress-light); } &-theme--dark { background: var(--toastify-color-progress-dark); } &--info { background: var(--toastify-color-progress-info); } &--success { background: var(--toastify-color-progress-success); } &--warning { background: var(--toastify-color-progress-warning); } &--error { background: var(--toastify-color-progress-error); } &-theme--colored#{&}--info, &-theme--colored#{&}--success, &-theme--colored#{&}--warning, &-theme--colored#{&}--error { background: var(--toastify-color-transparent); } } PK!G..*assets/css/admin/modules/toast/_icons.scssnu[.#{$rt-namespace}__spinner { width: 20px; height: 20px; box-sizing: border-box; border: 2px solid; border-radius: 100%; border-color: var(--toastify-spinner-color-empty-area); border-right-color: var(--toastify-spinner-color); animation: #{$rt-namespace}__spin 0.65s linear infinite; } PK!u zz4assets/css/admin/modules/toast/animations/_spin.scssnu[@keyframes #{$rt-namespace}__spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } PK!F5assets/css/admin/modules/toast/animations/_slide.scssnu[@mixin transform { transform: translate3d(0, 0, 0); } @keyframes #{$rt-namespace}__slideInRight { from { transform: translate3d(110%, 0, 0); visibility: visible; } to { @include transform; } } @keyframes #{$rt-namespace}__slideInLeft { from { transform: translate3d(-110%, 0, 0); visibility: visible; } to { @include transform; } } @keyframes #{$rt-namespace}__slideInUp { from { transform: translate3d(0, 110%, 0); visibility: visible; } to { @include transform; } } @keyframes #{$rt-namespace}__slideInDown { from { transform: translate3d(0, -110%, 0); visibility: visible; } to { @include transform; } } @keyframes #{$rt-namespace}__slideOutRight { from { @include transform; } to { visibility: hidden; transform: translate3d(110%, 0, 0); } } @keyframes #{$rt-namespace}__slideOutLeft { from { @include transform; } to { visibility: hidden; transform: translate3d(-110%, 0, 0); } } @keyframes #{$rt-namespace}__slideOutDown { from { @include transform; } to { visibility: hidden; transform: translate3d(0, 500px, 0); } } @keyframes #{$rt-namespace}__slideOutUp { from { @include transform; } to { visibility: hidden; transform: translate3d(0, -500px, 0); } } .#{$rt-namespace}__slide-enter { &--top-left, &--bottom-left { animation-name: #{$rt-namespace}__slideInLeft; } &--top-right, &--bottom-right { animation-name: #{$rt-namespace}__slideInRight; } &--top-center { animation-name: #{$rt-namespace}__slideInDown; } &--bottom-center { animation-name: #{$rt-namespace}__slideInUp; } } .#{$rt-namespace}__slide-exit { &--top-left, &--bottom-left { animation-name: #{$rt-namespace}__slideOutLeft; } &--top-right, &--bottom-right { animation-name: #{$rt-namespace}__slideOutRight; } &--top-center { animation-name: #{$rt-namespace}__slideOutUp; } &--bottom-center { animation-name: #{$rt-namespace}__slideOutDown; } } PK!zf 6assets/css/admin/modules/toast/animations/_bounce.scssnu[@mixin timing-function { animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } @keyframes #{$rt-namespace}__bounceInRight { from, 60%, 75%, 90%, to { @include timing-function; } from { opacity: 0; transform: translate3d(3000px, 0, 0); } 60% { opacity: 1; transform: translate3d(-25px, 0, 0); } 75% { transform: translate3d(10px, 0, 0); } 90% { transform: translate3d(-5px, 0, 0); } to { transform: none; } } @keyframes #{$rt-namespace}__bounceOutRight { 20% { opacity: 1; transform: translate3d(-20px, 0, 0); } to { opacity: 0; transform: translate3d(2000px, 0, 0); } } @keyframes #{$rt-namespace}__bounceInLeft { from, 60%, 75%, 90%, to { @include timing-function; } 0% { opacity: 0; transform: translate3d(-3000px, 0, 0); } 60% { opacity: 1; transform: translate3d(25px, 0, 0); } 75% { transform: translate3d(-10px, 0, 0); } 90% { transform: translate3d(5px, 0, 0); } to { transform: none; } } @keyframes #{$rt-namespace}__bounceOutLeft { 20% { opacity: 1; transform: translate3d(20px, 0, 0); } to { opacity: 0; transform: translate3d(-2000px, 0, 0); } } @keyframes #{$rt-namespace}__bounceInUp { from, 60%, 75%, 90%, to { @include timing-function; } from { opacity: 0; transform: translate3d(0, 3000px, 0); } 60% { opacity: 1; transform: translate3d(0, -20px, 0); } 75% { transform: translate3d(0, 10px, 0); } 90% { transform: translate3d(0, -5px, 0); } to { transform: translate3d(0, 0, 0); } } @keyframes #{$rt-namespace}__bounceOutUp { 20% { transform: translate3d(0, -10px, 0); } 40%, 45% { opacity: 1; transform: translate3d(0, 20px, 0); } to { opacity: 0; transform: translate3d(0, -2000px, 0); } } @keyframes #{$rt-namespace}__bounceInDown { from, 60%, 75%, 90%, to { @include timing-function; } 0% { opacity: 0; transform: translate3d(0, -3000px, 0); } 60% { opacity: 1; transform: translate3d(0, 25px, 0); } 75% { transform: translate3d(0, -10px, 0); } 90% { transform: translate3d(0, 5px, 0); } to { transform: none; } } @keyframes #{$rt-namespace}__bounceOutDown { 20% { transform: translate3d(0, 10px, 0); } 40%, 45% { opacity: 1; transform: translate3d(0, -20px, 0); } to { opacity: 0; transform: translate3d(0, 2000px, 0); } } .#{$rt-namespace}__bounce-enter { &--top-left, &--bottom-left { animation-name: #{$rt-namespace}__bounceInLeft; } &--top-right, &--bottom-right { animation-name: #{$rt-namespace}__bounceInRight; } &--top-center { animation-name: #{$rt-namespace}__bounceInDown; } &--bottom-center { animation-name: #{$rt-namespace}__bounceInUp; } } .#{$rt-namespace}__bounce-exit { &--top-left, &--bottom-left { animation-name: #{$rt-namespace}__bounceOutLeft; } &--top-right, &--bottom-right { animation-name: #{$rt-namespace}__bounceOutRight; } &--top-center { animation-name: #{$rt-namespace}__bounceOutUp; } &--bottom-center { animation-name: #{$rt-namespace}__bounceOutDown; } } PK!4assets/css/admin/modules/toast/animations/_flip.scssnu[@keyframes #{$rt-namespace}__flipIn { from { transform: perspective(400px) rotate3d(1, 0, 0, 90deg); animation-timing-function: ease-in; opacity: 0; } 40% { transform: perspective(400px) rotate3d(1, 0, 0, -20deg); animation-timing-function: ease-in; } 60% { transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1; } 80% { transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } to { transform: perspective(400px); } } @keyframes #{$rt-namespace}__flipOut { from { transform: perspective(400px); } 30% { transform: perspective(400px) rotate3d(1, 0, 0, -20deg); opacity: 1; } to { transform: perspective(400px) rotate3d(1, 0, 0, 90deg); opacity: 0; } } .#{$rt-namespace}__flip-enter { animation-name: #{$rt-namespace}__flipIn; } .#{$rt-namespace}__flip-exit { animation-name: #{$rt-namespace}__flipOut; } PK!:tt4assets/css/admin/modules/toast/animations/_zoom.scssnu[@keyframes #{$rt-namespace}__zoomIn { from { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); } 50% { opacity: 1; } } @keyframes #{$rt-namespace}__zoomOut { from { opacity: 1; } 50% { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); } to { opacity: 0; } } .#{$rt-namespace}__zoom-enter { animation-name: #{$rt-namespace}__zoomIn; } .#{$rt-namespace}__zoom-exit { animation-name: #{$rt-namespace}__zoomOut; } PK!=.assets/css/admin/modules/toast/_variables.scssnu[$rt-namespace: 'Toastify'; $rt-mobile: 'only screen and (max-width : 480px)' !default; :root { --toastify-color-light: var(--rsp-white); --toastify-color-dark: var(--rsp-black); --toastify-color-info: var(--rsp-yellow); --toastify-color-success: var(--rsp-green); --toastify-color-warning: var(--rsp-orange); --toastify-color-error: var(--rsp-red); --toastify-color-transparent: rgba(255, 255, 255, 0.7); --toastify-icon-color-info: var(--toastify-color-info); --toastify-icon-color-success: var(--rsp-green); --toastify-icon-color-warning: var(--toastify-color-warning); --toastify-icon-color-error: var(--toastify-color-error); --toastify-toast-width: 320px; --toastify-toast-background: #fff; --toastify-toast-min-height: 42px; --toastify-toast-max-height: 800px; --toastify-font-family: sans-serif; --toastify-z-index: 999999; --toastify-text-color-light: var(--rsp-text-color); --toastify-text-color-dark: var(--rsp-text-color-white); //Used only for colored theme --toastify-text-color-info: #fff; --toastify-text-color-success: #fff; --toastify-text-color-warning: #fff; --toastify-text-color-error: #fff; --toastify-spinner-color: #616161; --toastify-spinner-color-empty-area: #e0e0e0; // Used when no type is provided --toastify-color-progress-light: linear-gradient( to right, var(--rsp-green), #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55 ); // Used when no type is provided --toastify-color-progress-dark: #bb86fc; --toastify-color-progress-info: var(--toastify-color-info); --toastify-color-progress-success: var(--rsp-green); --toastify-color-progress-warning: var(--toastify-color-warning); --toastify-color-progress-error: var(--toastify-color-error); } PK!{0assets/css/admin/modules/toast/_closeButton.scssnu[.#{$rt-namespace}__close-button { color: #fff; background: transparent; outline: none; border: none; padding: 0; cursor: pointer; opacity: 0.7; transition: 0.3s ease; align-self: flex-start; &--light { color: #000; opacity: 0.3; } & > svg { fill: currentColor; height: 16px; width: 14px; } &:hover, &:focus { opacity: 1; } } PK!gg(assets/css/admin/modules/toast/main.scssnu[@charset "UTF-8"; @import 'variables'; @import 'toastContainer'; @import 'toast'; @import 'theme'; @import 'closeButton'; @import 'progressBar'; @import 'icons'; // entrance and exit animations @import 'animations/bounce.scss'; @import 'animations/zoom.scss'; @import 'animations/flip.scss'; @import 'animations/slide.scss'; @import 'animations/spin.scss'; PK!#wb(assets/css/admin/modules/animations.scssnu[/* Accordeon */ .rsssl-accordeon { /* Basic styling for the accordion container */ border: 1px solid #ccc; border-radius: 5px; overflow: hidden; transition: all 0.3s ease; } .rsssl-accordeon__header { /* Styling for the accordion header */ display: flex; justify-content: space-between; align-items: center; background-color: #f5f5f5; padding: 10px; cursor: pointer; } .rsssl-accordeon__header__inner { /* Styling for the inner container of the header */ display: flex; align-items: center; } .rsssl-accordeon__header__icon { /* You can set a background-image or other styling here for the icon */ width: 20px; height: 20px; margin-right: 10px; } .rsssl-accordeon__header__title { /* Styling for the title text */ font-size: 16px; font-weight: bold; } .rsssl-accordeon__header__button__inner { /* Styling for the button inside the header */ background: none; border: none; cursor: pointer; font-size: 18px; } .rsssl-accordeon__content { /* By default, hide the content */ max-height: 0; overflow: hidden; transition: max-height 0.3s ease; } .rsssl-accordeon--open .rsssl-accordeon__content { /* When the accordion is open, show the content */ max-height: 300px; /* You may need to adjust this value */ } .rsssl-accordeon__content__inner { /* Basic styling for the inner content container */ padding: 15px; background-color: #fff; }PK!s@+assets/css/admin/modules/other-plugins.scssnu[.rsssl { .rsssl-other-plugins { .rsssl-placeholder { background-color:transparent; } .rsp-logo img { height: 20px; } } .rsssl-other-plugins-container { display: flex !important; flex-direction: row; flex-wrap: wrap; margin-bottom: 10px; font-size: var(--rsp-fs-300); line-height: 1.7; gap: var(--rsp-spacing-xxs); @media screen and (max-width: 992px) { flex-direction: row; overflow: hidden; } .rsssl-other-plugins-element { width: 100%; display: flex; align-content: space-between; justify-content: space-between; gap: 10px; --rsp-other-plugins-color: var(---rsp-brand-primary); &.rsssl-zip-recipes { --rsp-other-plugins-color: var(--rsp-pink); } &.rsssl-burst-statistics { --rsp-other-plugins-color: var(--rsp-green); } &.rsssl-complianz-gdpr { --rsp-other-plugins-color: var(--rsp-blue); } &.rsssl-complianz-terms-conditions { --rsp-other-plugins-color: var(--rsp-black); } &.rsssl-really-simple-ssl { --rsp-other-plugins-color: var(--rsp-yellow); } a { width: max-content; color: var(--rsp-text-color-light); transition: color 0.3s ease; display: flex; align-items: center; min-width: 0; gap: var(--rsp-spacing-xs); text-decoration: none; &:hover { color: var(--rsp-other-plugins-color); text-decoration: underline; .rsssl-bullet { background-color: var(--rsp-other-plugins-color); } .rsssl-other-plugins-content { text-decoration: underline; } } } .rsssl-bullet { transition: background-color 0.3s ease; background-color: var(--rsp-other-plugins-color); } .rsssl-other-plugins-content { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .rsssl-other-plugin-status { min-width: fit-content; } } } } PK!S#assets/css/admin/modules/icons.scssnu[.rsssl-icon{ display: flex; align-items: center; justify-content: center; > div { display:flex; } svg{ fill: currentColor; } &-loading svg{ animation: spin 2s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } &.rsssl-click-animation{ animation: beat 0.4s ease-out; } } //loaders in buttons button.button .cmplz-icon.rsssl-icon-loading { padding-top: 6px; >div {line-height: inherit;} } PK![ t'assets/css/admin/modules/dashboard.scssnu[.rsssl { &-grid{ .border-to-border { .rsssl-grid-item-content { padding: 0; & > * { padding-inline: var(--rsp-spacing-l); width: 100%; display: flex; flex-wrap: wrap; align-items: center; } } } .border-to-border.rsssl-ssllabs, .border-to-border.rsssl-wpvul { .rsssl-grid-item-content { & > * { padding-left: 0; padding-right: 0; } } } } .rsssl-wpvul { .rsssl-icon { margin-top:5px; } } .rsssl-ssl-labs, .rsssl-hardening { &-select { background: var(--rsp-grey-200); padding-inline: var(--rsp-spacing-l); padding-block: var(--rsp-spacing-m); display: grid; width: 100%; grid-template-columns: calc(50% - var(--rsp-spacing-s) / 2) calc(50% - var(--rsp-spacing-s) / 2); gap: var(--rsp-spacing-s); transition: background-color 0.3s ease-in-out; &.rsssl-error { background: var(--rsp-red-faded); } &.rsssl-warning { background: var(--rsp-yellow-faded); } &.rsssl-success { background: var(--rsp-green-faded); } &-item { border-radius: var(--rsp-border-radius-xs); display: flex; flex-direction: column; justify-content: center; text-align: center; padding-block: var(--rsp-spacing-s); justify-items: center; flex-wrap: wrap; background: var(--rsp-white); min-height: 118px; &.active { box-shadow: inset 0 0 3px 2px var(--rsp-green-faded); border: 2px solid var(--rsp-green); } h2 { margin-top: var(--rsp-spacing-xxs); font-weight: 800; &.big-number{ font-size: var(--rsp-fs-850); } } span { display: flex; gap: 3px; justify-content: center; font-size: var(--rsp-fs-100); } } } &-list { width: 100%; &-item { width: 100%; display: grid; justify-items: flex-start; grid-template-columns: auto 1fr auto; gap: var(--rsp-spacing-s); padding-block: var(--rsp-spacing-xs); padding-inline: var(--rsp-spacing-l); &:nth-of-type(even) { background: var(--rsp-grey-200); } &-text { width: 100%; margin-right: auto; } &-number { font-weight: 600; } .rsssl-icon{ align-items: start; margin-top: 2px; } } } } .rsssl-ssl-labs { &-select { &-item{ padding-inline: var(--rsp-spacing-s); gap: var(--rsp-spacing-xxs); } } .rsssl-score-snippet { max-width: 100%; overflow: hidden; text-overflow: ellipsis; height: 18px; line-height: 18px; padding-inline: var(--rsp-spacing-xxs); font-size: var(--rsp-fs-100); border-radius: var(--rsp-border-radius-xs); color: var(--rsp-text-color); text-align: left; &.rsssl-hover { height:initial; //white-space: nowrap; line-height:initial; } &.rsssl-test-inactive { background-color: var(--rsp-grey-200); color: var(--rsp-color-disabled); } &.rsssl-test-processing { background-color: var(--rsp-yellow); color: var(--rsp-black); } &.rsssl-test-success { background-color: var(--rsp-color-success); color: var(--rsp-text-color-white); } &.rsssl-test-error { background-color: var(--rsp-brand-primary); color: var(--rsp-black); } } } .rsssl-hardening { &-select { &-item { .rsssl-badge{ margin-top: var(--rsp-spacing-xxs); } } } } } .rsssl-gridblock-progress-container { &.rsssl-error { .rsssl-gridblock-progress { background: var(--rsp-color-warning); } } &.rsssl-inactive { height: 4px; width: 100%; display: flex; background: var(--rsp-grey-300); .rsssl-gridblock-progress { transition: width 1s ease-in-out; background: var(--rsp-green); } } }PK!" " #assets/css/admin/modules/modal.scssnu[//.rsssl-modal-backdrop { // position: fixed; // top: 0; // right: 0; // bottom: 0; // left: 0; // background-color: rgba(0, 0, 0, 0.6); // width: 100%; // height: 100%; // z-index: 12; //higher than rsssl-locked //} // //.rsssl-modal { // width: clamp(300px, 75ch, 100vw - 50px); // height: max-content; // position: absolute; // z-index: 9999;//ensure the modal is over the WP menu in the sidebar. // border-radius: var(--rsp-border-radius); // background-color: var(--rsp-white); // top: 25vh; // left: -20px; // right: 0; // bottom: 0; // /* transform: translate(-50%, -50%); */ // margin: 25px auto; // // &-header { // @include rsssl-block-padding; // display: flex; // justify-content: space-between; // align-items: center; // border-radius: var(--rsp-border-radius); // .modal-title { // margin: 0; // } // .rsssl-modal-close { // cursor: pointer; // background: none; // border: none; // font-weight: 700; // } // button { // img { // height: 16px; // width: 16px; // } // } // } // // &-content { // position: relative; // font-size: var(--rsp-fs-300); // line-height: 1.5; // @include rsssl-block-padding; // &-subtitle { // font-size: var(--rsp-fs-600); // font-weight: 600; // margin-bottom: var(--rsp-spacing-xs); // } // &-description { // overflow-wrap: anywhere; // margin-top: 0; // font-weight: 400; // line-height: 1.5; // margin-bottom: var(--rsp-spacing-s); // } // } // &-footer { // display: flex; // flex-direction: row; // @include rsssl-block-padding; // gap:10px; // // text-align: right; // .button { // display: flex; // align-items: flex-start; // justify-content: center; // min-width: 105px; // // //height: 45px; // //width: 100%; // text-align: center; // // margin-right: 20px; // border-radius: 6px; // } // // .rsssl-button-help { // background-color: #D7263D; // color: white; // border-color: #D7263D; // &:hover { // opacity: 0.9; // } // } // } //} ////this has to apply both to modal and LE activation step //.rsssl-modal-content-step { // // ul{ // margin-bottom: var(--rsp-spacing-m); // li { // display: flex; // align-items: flex-start; // margin-bottom: var(--rsp-spacing-xxs); // &.rsssl-is-plugin{ // background-color: var(--rsp-grey-100); // border: none; // margin: 10px 0 0 0; // padding:2px 0; // position:relative; // a.button-default.rsssl-read-more{ // position:absolute; // display:none; // top:17px; // right:20px; // z-index:5; // @media(max-width: 620px) { // position:relative; // margin-left:20px; // z-index:5; // } // } // } // .rsssl-icon{ // margin-right:7px; // } // // } // } //} // //.components-modal__frame { // width: clamp(300px, 75ch, 100vw - 50px); //} PK!<+assets/css/admin/modules/wizard/notice.scssnu[.rsssl-wizard-help { display: flex; flex-wrap: wrap; align-content: flex-start; gap: var(--rsp-spacing-xs); details{ font-size: var(--rsp-fs-200); .rsssl-help-more-info { display: flex; flex-direction: row; margin-top: 12px; } summary { display: grid; grid-template-columns: 1fr auto; justify-content: space-between; font-size: var(--rsp-fs-300); font-weight: 600; cursor:pointer; &::-webkit-details-marker { display:none; } &:first-of-type { list-style-type: none; } .rsssl-icon{ transition: all .3s ease-in-out; transform: rotate(0deg); } } } code{ white-space: pre-line; display: block; } summary, p { font-size: var(--rsp-fs-200); } details[open]{ padding: var(--rsp-spacing-s) var(--rsp-spacing-m); summary{ padding: 0; padding-bottom: var(--rsp-spacing-xs); .rsssl-icon{ transform: rotate(180deg); } } } } .rsssl-wizard-help { .rsssl-help-header { width:100%; display:flex; padding:10px; .rsssl-help-title{ font-size:18px; } .rsssl-help-control { margin-left:auto; cursor:pointer; } } >div{ flex-grow:1; width:100%; } } .rsssl-wizard-help-notice { width: 100%; @include rsssl-block; border-radius: var(--rsp-border-radius-s); height: fit-content; background-color: var(--rsp-dark-blue-faded); &.rsssl-warning { background-color: var(--rsp-red-faded); } &.rsssl-open { background-color: var(--rsp-yellow-faded); } summary, p{ padding: var(--rsp-spacing-s) var(--rsp-spacing-m); } } PK!|$$7assets/css/admin/modules/wizard/mixed-content-scan.scssnu[.rsssl-mixed-content-scan { .rsssl-mixed-content-placeholder { height:250px; div { background-color:var(--rsp-grey-200); margin:10px 0; height:20px; } } .rsssl-shield-overlay { height:250px; align-items: center; justify-content: center; display:flex; } .rsssl-field-wrap { .rdt_TableCell[data-column-id="2"] { display:grid; } .rdt_TableCol, .rdt_TableCell { min-width: 110px; } } .rsssl-progress-container { .rsssl-progress-bar { border-radius:5px; height:20px; background-color:var(--rsp-green); } } .rsssl-task-status{ min-width: min-content; &.rsssl-warning { background-color: var(--rsp-yellow); color: var(--rsp-text-color); } } button.button{ line-height: 1.5; min-height: 10px; } .rsssl-grid-item-content-footer{ display: flex; gap: var(--rsp-spacing-s); } .rsssl-current-scan-action, .rsssl-mixed-content-description { margin:10px 5px; font-size: var(--rsp-fs-300); } }PK!4assets/css/admin/modules/wizard/vulnerabilities.scssnu[.rsssl-vulnerability-action { a.button { margin-left:10px; } } .rsssl-processing { opacity:0.5; } .rsssl-vulnerabilities_measures { .rsssl-locked-overlay { input[type=checkbox] { margin-top: 0; } } }PK!)*-assets/css/admin/modules/wizard/snackbar.scssnu[.rsssl{ .components-snackbar-list.edit-site-notices{ width: max-content; position: fixed; bottom: var(--rsp-spacing-m); right: var(--rsp-spacing-l); & > div{ margin-left: auto; } .components-snackbar{ @include rsssl-block; color: var(--rsp-color-success); background-color: #fff; font-weight:700; font-size:14px; } } }PK!#o7assets/css/admin/modules/wizard/permissions-policy.scssnu[.rsssl div[class^=rsssl-wizard-] { .rsssl-permissions_policy { .rdt_TableCell , .rdt_TableCol{ min-width:fit-content; } .rsssl-locked .rsssl-shield-overlay { top:calc(100% - 300px); } } }PK!@ 0assets/css/admin/modules/wizard/letsencrypt.scssnu[.rsssl-lets-encrypt-tests { margin:var(--rsp-spacing-xs) var(--rsp-spacing-xl); .rsssl-progress-bar { padding-block: 0; margin-bottom:var(--rsp-spacing-m); .rsssl-progress { overflow: hidden; height: var(--rsp-spacing-m); border-radius: 5px; background-color: var(--rsp-grey-200); .rsssl-bar { height: 100%; background-color: var(--rsp-color-success); &.rsssl-orange { background-color: var(--rsp-color-warning); } } } } p { margin-bottom:var(--rsp-spacing-m); } .rsssl-progress-text { display: flex; align-items: center; @include rsssl-block-padding; padding-block: 0; padding-top: var(--rsp-spacing-xs); .rsssl-progress-percentage { font-size: 32px; font-weight: 700; } .rsssl-progress-text-span { margin-left: 35px; font-size: 18px; font-weight: 600; a { margin-left: 3px; } } } ul { li { display:flex; margin-bottom:15px; .rsssl-icon { margin-right:7px; } /*Nested li */ ul li:before { background-color: var(--rsp-grey-500); color: #fff; height: 6px; width: 6px; border-radius: 50%; content: ''; position: absolute; margin-top: 7px; margin-left: -19px; } } } .rsssl-test-results { ul { li { display:block; } } h4 { margin:var(--rsp-spacing-m) 0; } a+button { margin-left:var(--rsp-spacing-m); } .rsssl-certificate-data { display:none; } .rsssl-dns-text-records { div { display:flex; flex-direction: row; margin-right:20px; .rsssl-dns-domain, .rsssl-dns-field { margin-right:var(--rsp-spacing-m); width: 50%; } } } } .rsssl-modal-subtitle { display:none; } .components-toggle-control { margin: 20px 0; } } PK!V5Jkk2assets/css/admin/modules/wizard/learning-mode.scssnu[.rsssl-learningmode-placeholder { height:150px; div { background-color:var(--rsp-grey-200); margin:10px 0; height:20px; } } .rsssl-learning-mode-delete { cursor: pointer; background: none; border: none; font-size: 1.5em; font-weight: 700; } .rsssl-locked-overlay { .rsssl-open { float: left; margin-right: 12px; } .rsssl-progress-status { @extend .rsssl-task-status; &.rsssl-learning-mode-completed, &.rsssl-learning-mode-enforced { background-color: var(--rsp-color-success); color:#fff; } &.rsssl-learning-mode { background-color: var(--rsp-color-open); } &.rsssl-learning-mode-error { background-color: var(--rsp-color-error); color:#fff; } &.rsssl-disabled, &.rsssl-learning-mode-disabled { background-color: var(--rsp-color-disabled); } } } .rsssl-learning-mode-footer { display:flex; align-items: center; justify-content: flex-start; gap: var(--rsp-spacing-s); select { margin-left:auto; } label { display: flex; align-items: center; input{ margin-top: 0; } } }PK!DY+assets/css/admin/modules/wizard/fields.scssnu[html { scroll-behavior: smooth; } .rsssl{ div[class^="rsssl-wizard-"]{ // starts with selector .components-flex{ display: flex; flex-direction: row; align-items: center; justify-content: space-between; .components-flex-item label{ margin: 0; } .rsssl-tooltip { flex-grow:1; } .components-input-control__container { max-width: max-content; } } .rsssl-grid-item-content label{ font-size: var(--rsp-fs-300); font-weight: 400; line-height: 1.5; text-transform: unset; box-sizing: border-box; display: inherit; max-width: 100%; //z-index: 1; => this conflicts with the tooltip z-index overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .components-base-control__field{ margin-bottom: 0; } .components-toggle-control{ .components-base-control__field, .components-flex{ display: flex; flex-direction: row-reverse; align-items: center; justify-content: space-between; width:100%; .components-form-toggle{ margin-right: 0; } } } select option { font-size: var(--rsp-fs-300); } .components-form-toggle.is-checked .components-form-toggle__track{ background-color: var(--rsp-dark-blue); } input.components-form-toggle__input[type=checkbox]:disabled, { background: var(--rsp-grey-100); opacity:0.7 } .rsssl-grid-item{ .rsssl-grid-item-content{ padding: var(--rsp-spacing-xs) 0; } } .rsssl-field-wrap { .rsssl-comment { font-style:italic; } } .rsssl-field-wrap, .rsssl-settings-block-intro{ padding-block: var(--rsp-spacing-s); @include rsssl-inline-block-padding; overflow: hidden; & > .rsssl-field-wrap{ padding: 0; } } .rsssl-field-button{ display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; } } .rsssl-highlight { background-color: transparent; border-left: 4px solid var(--rsp-green); -o-animation: fadeIt 3s ease-in-out; animation: fadeIt 3s ease-in-out; scroll-margin-top: 100px; scroll-padding-top:100px; } .rsssl-block-highlight { border: 0; -o-animation: pulse 2s infinite; animation: pulse 2s infinite;} @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 var(--rsp-green); } 70% { -webkit-box-shadow: 0 0 0 10px var(--rsp-green-faded); } 100% { -webkit-box-shadow: 0 0 0 0 var(--rsp-green-faded);; } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 var(--rsp-green); box-shadow: 0 0 0 0 var(--rsp-green); } 70% { -moz-box-shadow: 0 0 0 10px var(--rsp-green-faded); box-shadow: 0 0 0 10px var(--rsp-green-faded); } 100% { -moz-box-shadow: 0 0 0 0 var(--rsp-green-faded); box-shadow: 0 0 0 0 var(--rsp-green-faded); } } @-o-keyframes fadeIt { 0% { background-color: transparent; } 30% { background-color: var(--rsp-green-faded); } 100% { border-right: 0; background-color: inherit; } } @keyframes fadeIt { 0% { background-color: transparent; border-right: 0; } 30% { background-color: var(--rsp-green-faded); } 100% { background-color: inherit; } } } .rsssl-email-verified { position: absolute; bottom: 23px; right: 35px; } //switch padding to top, to prevent tasks from getting stuck to text field .rsssl-license { .rsssl-task-element { padding-top: var(--rsp-spacing-s); padding-bottom: 0; } .rsssl-license-field{ display:flex; } } .input-container { position: relative; display: inline-block; width: 100%; } input.rsssl-input { &.full { width: 100%; padding-right: 40px; } &.rsssl-error { border: 2px solid var(--rsp-red); outline: none; &:focus { border-color: var(--rsp-red) !important; } } &.rsssl-success { border: 2px solid var(--rsp-green); outline: none; &:focus { border-color: var(--rsp-green) !important; } } } .wp-core-ui select { /* Your styles here */ flex-grow: 1 !important; max-width: 33%; } .icon-button { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); border: none; background: none; cursor: pointer; } .rsssl-group-filter { min-width: 25%; max-width: 100%!important; }PK!0dp//)assets/css/admin/modules/wizard/menu.scssnu[.rsssl-wizard-menu{ height: fit-content; background: none !important; box-shadow: none !important; .rsssl-grid-item-header { padding-left: var(--rsp-spacing-xs); } .rsssl-grid-item-content{ padding: 0; padding-bottom: var(--rsp-spacing-l); } } .rsssl-wizard-menu-items > .rsssl-menu-item > a { font-weight: 600 !important; padding-inline: var(--rsp-spacing-xs) !important; } .rsssl-wizard-menu-items { .rsssl-main-menu { .rsssl-active { border-radius: var(--rsp-border-radius-s); background: var(--rsp-yellow-faded); box-shadow: var(--rsp-box-shadow); a:hover { text-decoration: none; } } .rsssl-menu-item { a { span { font-weight: 600; } } } } .rsssl-menu-item{ a{ display: flex; align-items: center; gap: var(--rsp-spacing-xs); text-decoration: none; color: var(--rsp-text-color); font-size: var(--rsp-fs-400); padding-block: var(--rsp-spacing-xs); transition: all 0.2s ease-in-out; padding-left: var(--rsp-spacing-xs); &:hover { text-decoration: underline; } } &.rsssl-active{ > a{ font-weight: 600; } a { &:focus { box-shadow: none !important; } } } &.rsssl-featured{ &.rsssl-active { .rsssl-menu-item-beta-pill { color: var(--rsp-dark-blue); } } a{ flex-wrap: wrap; .rsssl-menu-item-featured-pill{ background: var(--rsp-green); color: var(--rsp-text-color-white); padding: 4px 8px; border-radius: var(--rsp-border-radius-xs); font-size: var(--rsp-fs-100); } .rsssl-menu-item-beta-pill{ color: var(--rsp-dark-blue); } } } &.rsssl-new{ .rsssl-menu-item-new-pill{ background: var(--rsp-yellow); color: var(--rsp-text-color-dark); padding: 4px 8px; border-radius: var(--rsp-border-radius-xs); font-size: var(--rsp-fs-100); } &.rsssl-active { .rsssl-menu-item-new-pill { color: var(--rsp-text-color-dark); } } a{ flex-wrap: wrap; } } &.rsssl-premium{ a{ flex-wrap: wrap; .rsssl-menu-item-featured-pill{ background: var(--rsp-dark-blue); color: var(--rsp-text-color-white); padding: 2px 9px; border-radius: var(--rsp-border-radius); font-size: var(--rsp-fs-100); } } } } .rsssl-premium-menu-item { background: var(--rsp-dark-blue-faded); div { display: flex; align-items: center; gap: var(--rsp-spacing-xs); text-decoration: none; color: var(--rsp-text-color); font-size: var(--rsp-fs-400); padding-block: var(--rsp-spacing-xs); @include rsssl-inline-block-padding; transition: all 0.2s ease-in-out; border-left: 4px solid transparent; } } .rsssl-submenu-item{ a{ padding-left: calc(var(--rsp-spacing-xs) + var(--rsp-spacing-s)) !important; font-size: var(--rsp-fs-300); } .rsssl-active { a { text-decoration: none; position: relative; span { color: initial; } &::before { content: '\2022'; color: var(--rsp-dark-blue); font-size: 3em; position: absolute; left: var(--rsp-spacing-xxs) !important; margin-bottom: 7px; } } } } }PK!Ǽ&assets/css/admin/modules/progress.scssnu[.rsssl-grid-item.rsssl-progress { .rsssl-grid-item-content { padding: 0; } .rsssl-placeholder { @include rsssl-block-padding; } } .rsssl-progress-block { .rsssl-progress { overflow: hidden; height: 20px; border-radius: 5px; background-color: #f7f7f7; .rsssl-bar { height: 100%; background-color: var(--rsp-color-success); transition: width 1s ease; &.rsssl-orange { background-color: var(--rsp-color-warning); } } } .rsssl-progress-bar { @include rsssl-block-padding; padding-block: 0; border-radius:5px; } .rsssl-progress-text { display: flex; align-items: center; @include rsssl-block-padding; padding-block: var(--rsp-spacing-s); justify-content: flex-start; gap: var(--rsp-spacing-m); .rsssl-progress-percentage { font-size: var(--rsp-fs-800); font-weight: 700; } .rsssl-progress-text-span { font-weight: 500; font-size: var(--rsp-fs-600); a { margin-left: 3px; } @media only screen and (max-width: $rsp-break-l) and (min-width: $rsp-break-m) { font-size: var(--rsp-fs-500); } } } } .rsssl-header-html { display: flex; color: var(--rsp-text-color-light); .rsssl-toggle-active { text-decoration: underline; } } .rsssl-task-switcher-container { display: flex; border-radius: var(--rsp-border-radius); .rsssl-task-switcher { &:first-of-type { border-right: 1px solid var(--rsp-grey-400); padding-right: 10px; } &:last-of-type { padding-left: 10px; } } } .rsssl-task-switcher { font-size: var(--rsp-fs-200); cursor: pointer; transition: 0.3s; &:hover { text-decoration: underline; } } .rsssl-active-filter-remaining .rsssl-remaining-tasks, .rsssl-active-filter-all .rsssl-all-tasks { text-decoration: underline; } /** * Task element, list of tasks */ .rsssl-task-element { display: flex; align-items: flex-start; justify-content: center; gap: var(--rsp-spacing-m); padding-bottom: var(--rsp-spacing-s); @media(max-width: $rsp-break-m) { gap: var(--rsp-spacing-xs); } .rsssl-task-message { flex: 1; font-size: var(--rsp-fs-300); } .rsssl-task-form { margin-top: var(--rsp-spacing-xxs); display: flex; gap: var(--rsp-spacing-xs); } .rsssl-task-enable { cursor: pointer; line-height: 1.5; } .rsssl-task-dismiss { &:hover { transform: scale(1.1); } button { all: initial; //remove default button styles cursor: pointer; padding: 4px; } svg { height: 12px; width: 12px; } } } .rsssl-scroll-container { @include rsssl-block-padding; //--rsp-scroll-bg-clr: var(--rsp-white); height: 230px; overflow-y: auto; padding-block: 0; padding-top: var(--rsp-spacing-s); border-radius: 0; //background-image: linear-gradient(to top, var(--rsp-scroll-bg-clr), var(--rsp-scroll-bg-clr)), //linear-gradient(to top, var(--rsp-scroll-bg-clr), var(--rsp-scroll-bg-clr)), //linear-gradient(to top, rgba(0, 0, 0, 0.15), rgba(255, 255, 255, 0)), //linear-gradient(to bottom, rgba(0, 0, 0, 0.15), rgba(255, 255, 255, 0)); //background-position: bottom center, top center, bottom center, top center; //background-color: var(--rsp-scroll-bg-clr); //background-repeat: no-repeat; //background-size: 100% 25px, 100% 25px, 100% 15px, 100% 15px; //background-attachment: local, local, scroll, scroll; &::-webkit-scrollbar-track { border-radius: 10px; -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0); background-color: transparent; } &::-webkit-scrollbar { width: 8px; border-radius: 10px; background-color: var(--rsp-grey-300); } &::-webkit-scrollbar-thumb { background-color: var(--rsp-grey-400); border-radius: 10px; } } .rsssl-progress-status-container { margin-right: 40px; } .rsssl-task-status { display: block; min-width: 100px; text-align: center; border-radius: var(--rsp-border-radius-xs); padding: 4px 8px; font-size: var(--rsp-fs-100); font-weight: 600; @media(max-width: $rsp-break-m) { min-width: 80px; } &.rsssl-completed, &.rsssl-success { background-color: var(--rsp-color-success); color: var(--rsp-text-color-white); } &.rsssl-open { background-color: var(--rsp-color-open); } &.rsssl-warning { background-color: var(--rsp-color-error); color: var(--rsp-text-color-white); } &.rsssl-premium { background-color: var(--rsp-blue); color: var(--rsp-text-color-white); } &.rsssl-loading { background-color: var(--rsp-grey-200); } } .rsssl-scroll-container .rsssl-task-status{ @media(max-width: $rsp-break-s) { aspect-ratio: 1 / 1; min-width: 10px; height: 16px; border-radius: 100%; text-indent: -9999px; /* sends the text off-screen */ white-space: nowrap; } } .rsssl-plusone { min-width: 15px; height: 16px; font-size: var(--rsp-fs-100); line-height: 1.5; display: inline-block; vertical-align: top; box-sizing: border-box; margin: 1px 0 -1px 2px; padding: 0 5px; border-radius: 9px; background-color: #d63638; color: #fff; text-align: center; } @media only screen and (max-width: $rsp-break-l) { .rsssl-footer-left { display:none; } } PK!* * %assets/css/admin/modules/buttons.scssnu[.rsssl { .rsssl-field-button { button.button { display:flex; } } a.button, button.button, input.button, span.button { font-size: var(--rsp-fs-300); font-weight: 400; transition: all 0.3s ease; min-height: 10px; &.button-secondary, &.button-default { background: transparent; } .rsssl-icon { padding-top: 7px; padding-left: 7px; } &.button-black { border: 1px solid var(--rsp-black); background: var(--rsp-black); color: var(--rsp-text-color-white); &:hover, &:focus, &:active { box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--rsp-black); } } &.button-tertiary, &.button-red { border: 0 solid transparent; background: var(--rsp-red); color: var(--rsp-text-color-white); &:hover, &:focus, &:active { box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--rsp-red); background: var(--rsp-red); color: var(--rsp-text-color-white); } } } } .rsssl { a.rsssl-button-small, button.rsssl-button-small, input.rsssl-button-small { font-size: var(--rsp-fs-100); font-weight: 300; min-height: auto; } //on the dashboard, keep a minimum distance between two buttons .rsssl-button-small + .rsssl-button-small { margin-left: 10px; } /* Documents overview */ .rsssl-shortcode { right: 10000px; position: absolute; background-color: #fff; padding: 0; white-space: nowrap; } .shortcode { cursor: pointer; } .rsssl-action-buttons { /* Making sure we use the full width of the container */ display: flex; justify-content: flex-end; } .rsssl-action-buttons__inner { display: flex; justify-content: flex-end; } .rsssl-action-buttons__inner { //all buttons are floating right float: right; } .rsssl-action-buttons__button { //add some spacing between the buttons margin-right: 10px; } /* Remove margin for the last button to ensure clean alignment */ .rsssl-action-buttons__inner:last-child { margin-right: 0; } /** For the mixed content scan we need to do some extra tweaking */ .rsssl-mixed-content-scan { .rsssl-grid-item-content-footer { margin-left: 0; margin-right: 0; padding-left: 25px; .button { display: block; margin-right: 0; margin-left: 0; } .components-toggle-control { margin-top: calc(12px); } label { display: flex; align-items: center; justify-content: center; } } } }PK!RBYY(assets/css/admin/modules/onboarding.scssnu[.rsssl-modal.rsssl-onboarding { width: clamp(300px, 100ch, 100vw ); .rsssl-logo { height: 26px; } .rsssl-modal-content{ display:flex; .rsssl-onboarding-placeholder { flex-grow:1 } &-step { display:flex; flex-direction: column; width:100%; } padding-top: var(--rsp-spacing-m); line-height: 2.2; min-height:295px; .rsssl-processing { opacity:0.5; } ul{ li { .rsssl-icon{ margin-top: 7px; } .components-button.is-link { padding:5px 0; } } } } }PK!E11$assets/css/admin/modules/header.scssnu[.rsssl-header-container .rsssl-header { display: flex; justify-content: space-between; height: 70px; box-sizing: border-box; img { margin: auto 0; height: 26px; } .rsssl-header-menu { display: flex; align-items: center; height: 100%; padding: 0 20px; box-sizing: border-box; .rsssl-header-menu-item { display: flex; align-items: center; height: 100%; padding: 0 20px; box-sizing: border-box; &:first-child { margin-left: 0; } &:last-child { margin-right: 0; } &.rsssl-header-menu-item-active { background-color: #f5f5f5; } } } .rsssl-header-actions { display: flex; align-items: center; margin-left: auto; gap: var(--rsp-spacing-s); select { max-width: 60ch; } } } PK!,)assets/css/admin/modules/placeholder.scssnu[@function randomNum($min, $max) { $rand: random(); $randomNum: $min + floor($rand * (($max - $min) + 1)); @return $randomNum; } $base-color: #ddd; $shine-color: #e8e8e8; $animation-duration: 1.6s; @mixin background-gradient { background-image: linear-gradient(90deg, $base-color 0px, $shine-color 40px, $base-color 80px); background-size: 600px; } .rsssl-datatable-placeholder { div { background-color:var(--rsp-grey-300); height:25px; &:nth-child(even) { background-color:#fff; } } } .rsssl-rest-error-message { margin:30px; ul { list-style:disc; margin:20px; } } .rsssl-placeholder { box-sizing: border-box; width: 100%; text-align: left; margin: 0; padding-bottom: 24px; color: #1e1e1e; -moz-font-smoothing: subpixel-antialiased; -webkit-font-smoothing: subpixel-antialiased; border-radius: 2px; flex-grow: 100; .rsssl-placeholder-line { float: left; width: 100%; height: 16px; margin-top: 12px; border-radius: 7px; &:last-of-type{ margin-bottom: 24px; } @include background-gradient; animation: shine-lines $animation-duration infinite linear; @for $i from 1 through 20 { &:nth-of-type( #{$i} ) { width: ( random(40) + 60 ) * 1%; } } } .rsssl-placeholder-line ~ .rsssl-placeholder-line { background-color: #ddd; } } .rsssl-dashboard-placeholder { &.rsssl-grid-item.rsssl-row-2 { grid-row: span 1; } } .rsssl-settings-placeholder { .rsssl-grid-item{ min-height:400px; } } .rsssl-menu-placeholder { min-height:400px; } @keyframes shine-lines { 0% { background-position:- 400px; } 100% { background-position: 220px; } }PK!mqM*assets/css/admin/modules/new-features.scssnu[.rsssl{ .rsssl-new-features-block{ .rsssl-grid-item-content{ display: flex; flex-direction: column; justify-content: space-between; } } .rsssl-new-features{ display: flex; flex-direction: row; flex-wrap: wrap; gap: var(--rsp-spacing-xs); @media only screen and (max-width: $rsp-break-xxl) and (min-width: $rsp-break-m) { gap: var(--rsp-spacing-xxs); } } .rsssl-new-feature{ width: 100%; color: var(--rsp-text-color-light); display: flex; align-items: flex-start; min-width: 0; gap: var(--rsp-spacing-xs); text-decoration: none; .rsssl-icon{ margin-top: 2px; } .rsssl-new-feature-desc { p { font-size:var(--rsp-fs-300); } } } }PK!ؗ,assets/css/admin/modules/introcontainer.scssnu[.rsssl-modal { //.rsssl-modal-header, .components-modal__header { // background-color: var(--rsp-yellow-faded); // padding: var(--rsp-spacing-m) var(--rsp-spacing-m)!important; // //no border radius on bottom // border-bottom-left-radius: 0; // border-bottom-right-radius: 0; // border-bottom: 0; //} // //.components-modal__content { // padding: 0; // &:before { // margin-bottom:initial; // } //} //.rsssl-header-extension { // background-color: var(--rsp-yellow-faded); // margin: 0; // padding: 0 var(--rsp-spacing-m); // p { // margin: 0; // padding: var(--rsp-spacing-m) 0; // padding-top: 0; // } //} .rsssl-intro-logo { width: 7em; position: absolute; right: 1.6em; height: auto; bottom: 0.15em; margin: 0; padding: 0; } @media (max-width: 768px) { .rsssl-intro-logo { display:none; } } .rsssl-ssl-intro-container { .rsssl-details { display:flex; padding: var(--rsp-spacing-xs) var(--rsp-spacing-m); gap: var(--rsp-spacing-xs); .rsssl-icon { min-width:25px; } } } .rsssl-modal-footer { padding: var(--rsp-spacing-m) var(--rsp-spacing-m); } /* spinner for React Icons */ .icon-spin { animation: spin 2s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } }PK!!Z3%assets/css/admin/modules/notices.scssnu[/** Admin notice */ PK!7)assets/css/admin/modules/tips-tricks.scssnu[.rsssl-tips_tricks{ .rsssl-grid-item-header{ .rsssl-grid-item-controls{ height: 28px; } } } .rsssl-tips-tricks-container { display: flex !important; flex-direction: row; flex-wrap: wrap; margin-bottom: 10px; font-size: var(--rsp-fs-300); line-height: 1.7; gap: var(--rsp-spacing-xxs); @media screen and (max-width: 992px) { flex-direction: row; overflow: hidden; } .rsssl-tips-tricks-element { width: calc(50% - var(--rsp-spacing-xxs)); @media( max-width: $rsp-break-xs ){ width: 100%; } a { color: var(--rsp-text-color-light); transition: color 0.3s ease; display: flex; align-items: center; gap: var(--rsp-spacing-xs); min-width: 0; /* or some value */ text-decoration: none; &:hover { color: var(--rsp-brand-primary); text-decoration: underline; svg path{ fill: var(--rsp-brand-primary); } .rsssl-tips-tricks-content { text-decoration: underline; } } } .rsssl-bullet { transition: background-color 0.3s ease; background-color: var(--rsp-grey-300); } .rsssl-tips-tricks-content { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } } } PK!y$assets/css/admin/modules/two-fa.scssnu[a.rsssl-skip-link { display: flex; justify-content: center; margin: 15px 0 20px; } .rsssl-two_fa_users div[data-column-id="4"].rdt_TableCol { display: none; } .rsssl-two_fa_users .rdt_TableRow .rdt_TableCell:last-child { flex: 1; display: flex; justify-content: flex-end; } .rsssl-two_fa_users .rdt_TableHeadRow .rdt_TableCol:last-child { flex-grow: 1; display: flex; justify-content: flex-end; }PK!8ww-assets/css/admin/modules/premium_overlay.scssnu[.rsssl { .rsssl-locked { &.rsssl-locked-premium { .rsssl-locked-overlay { bottom: var(--rsp-spacing-s); flex-direction: column; } } .rsssl-locked-overlay { display: flex; bottom: 0; text-align: left; margin-bottom: 20px; padding: 0; &.rsssl-premium { bottom: 0; flex-direction: column; } .rsssl-locked-header { width: 100%; flex-direction: row; .rsssl-locked-header-title { font-weight: 600; color: var(--rsp-blue) } .rsssl-locked-header-subtitle { } } .rsssl-locked-content { flex-direction: row; width: 100%; .rsssl-locked-content-text { } } .rsssl-locked-footer { display: flex; align-items: center; justify-content: flex-start; width: 100%; // we want the a to be displayed on the left side a { position: relative; float: left !important; } } .rsssl-locked-footer::after { content: ""; display: table; clear: both; } } } //if a field is both disabled, and the group is premium, we don't want a duplicate opacity on the overlay. .rsssl-disabled .rsssl-field-wrap { .rsssl-locked { background:transparent; } } }PK!Jassets/css/admin/index.phpnu[7 x`ZL xI&qƎ#-Tg*`v*F;QH:C8h[Hގ\ɍ"( $,h"!ֹk}z~f2AsYj2p+p`“ O_8e^jz|E:cV+{b|bΥ>EeAQewA[x%XV<;wµV TEϚDQ׿0Pax1 0-~Gyp.[sӗV*ٛb4>_ZaE8{A`|]D_.߾X.X,-"fC$~% 9{bc.;6cm[hĿNl%}Q+ ߼\4-cw- r~a[It nzp9U;6Nqu !t( [Tڱk2I4!|8FvTYزle灥Ktr| a.`$ 6l*;1.A`>9( _-.`;I:]3½Hlȿm BΝdy|[:aw:f( =`w=sցFF,YJ|KQK03u۳ 丞/%lHRzN?)HI[6l8;c0e{Wz#BF$ݲPH!Tn s/]p \\'pyp]e$+x.YN=@7}'P'ܸ7K'ߓTXnr~byԹ^f0k(Ji_';;Ţ+'p ^vZ/;m>byHհSCDn4C<1QS8-^L^X^wµ> tPTYsIo-[$ #tV5$F;.s 7v=ɤE T?eQ:BEN(;R`lkT_W&*Abd)\y^cU.2tL: .ŭCN_(kӪ^e  :c!TLe U3l^يa!te6pL(Z #+y'  @rb>ÃQ7ΧlksDrEOIbl @]@Ν2c̫b>b7f/-rQU @8{QUW`.KyM#';Ξ&gN'E$3:S1ܬtap2hAzG.? a>]H۰ڄ$Z7b'}n;cUlJWjsעi1."ۈ?T2nN(e6/\<'f&8K=6fn6dvR=pGG PT:8؍y\YBis15:VIhPt]wCYy:_P\ (9ws7T{.rBWa0_mv/ns/&vaJ2NXvqY1ذ7"(!t:XV!7t5#r''']c.+ɥōc ^O8y1J "-gϝTx:;m}lD}0 sC8K{1lO>{~s/\k6 XͶBf"~38BI?̔zNի( Q3s+Y]w?rybb cz}O6xayr9aj`7:6R IF||@1oy3~cQշ/o//+bfS3*ϡ] *]ZՁcN}^(&ݜt@yY\"pjG,UFo 0{Љʥk:Qg o*Νܪz;Ӱf(ͦg~H5wjkϺ /BMu\{io&iQ9^G: tݔބlU( b:\wΞ9}l5Aa ,-Nqbf?s٧߼7 _,1*\Gc%w92cSZ"t-$"Kw-6&.+Φ;p)qwΦ_Oî\]lv BNE˻a,+:wX:ahSzYxV 0dGˌӟÍ-% %.›c":zv+s˳OtLt%FZ t %,"|EϞ=ssQDѿ~U<3HI]@s%U.{Wfӟu3fy˨v  ?ӽ*;\.Wl4D+^-->:Duױ3j#]E5/ {Q"t]7lUhAZ7RĎ9 y:u}sU2gٱ؋݃nH+]@3\ DO(\9{ ^,v,]@3g |9KIAێoك Wvs#t~eNw 2vV_~uxxhm_*]@.OU2L,-.1FQ>Vo.t fӞ C5 .ؿ( ?E99!ҵ \nEe ~Qr~0 ?=+yv7^"t5Qj?z.orF-BВoQ|\ /0oѼ\!BВwKG7y*+#w_mmTX^j"tҢ9Z^\.{81t7ӳDZqi.gNe˳P|\Z4GˋT&} ]4um|\Z I"t `\_/:gt .!_\ 2<󱢯 h4؞ o%@c.{E@c.Œ9B " he,eħ{@[.@+T~f] ]@Ma.}<pe:BPSlja m) /4P_{;F(30\fSsppݓTzBЂ ZQET$sxx h{ڲ+ #X=3u_Ht\vT\k*eVZ9F?+^*>gm4<@/YV'[,u~j^{xB0;:. qe݄ZV;VmCr-mҲ*.~] AQp-BWnE҆/[k:^~E ޛ5|uٵUC導K vqм:&1htjٽj'ҿ0p9kȒ\5u>yr=jyy *]Z_c->gtGd +eШue{9p-\[&e|c^=(Fڅ[>}kFc%@3@8xƣ>,U-`4o_0hbY\vͧ,tI"::1uJٍ'\^ZÙ\GI>deW*0X. ]_ '%bA 8t5nGCV=V4a"OޏWPLS5tI\Od`p@]Q?¾ɛo"&9mK%*ײc eljR.άG`Wi1"9 TI*0NzYS/~jGkЍq%!o.tWy@@* K%Tbx7JoTEfFCI_h#=ԍi%!4 t<R#p By.|`*$!t_nA[v9L;/降`+T||cUWAN9[.=j.) ".TWe$v5]372A٩t *+Y?cD"Թ}%rmzN僔P=L5߾cDRݡbT$ճp9}]E/y7 (H.5\M\BkD3p=gu`piUOIcrnrT]ryvd*PTtZ֒}6лz8K=תB.>7YU;#/?ۃTNW ؎Mu'л820Br_8 !E};# Y:㴭jFjVCc] ^I+.CHRF=T.H}]vF}yIO+C]B+88!7Y}ce;#3\UE ]v*\zr/F5 x t9y5QAUQE w),^eq1:>.(B.$\My5-9:BfSiKqm:fbi>UU.3]>sly'qsuv޴b2ʪ\R`Y.cPZz}t#ta\0KiU̓S =k5Wm'^lQPZ5U)2){)yOpzsK}vב\} h#tiOH}j,ۻqޔP~v!U.;ߴ|e\} wNn9Q/+28F[M.RrO7H*W\iXjzWN끇/ IDAT7w]2\֟I{ګg9WSO(:6Jˊ~"0lAp`ч,3"^Ug U ]tj`+}?\yoZ$t9AK6d$bm_Nd$n۠Ɓ]Cܐ>OA2 Ҝ)ᚗeA _lYQ{4FYsk?#>x3?{]45,{+F?^JFDh7;jYZB&Gcx>^iz3qū,xQp|c<,Dٛ=*ysca4ڵd\b˛*SsYqHoެJ t>,(<aOڅ!taOCkCJh. 0RIv};cT_lUvzƇw5Jm $,6"{-i/ԹAXMR𨟮=~659j-s<u>Б{:Wl[VI!pc̙kH!tCB}. 2`Ļ*nNU{r}ÉջHz<@ ,.p%y^b U. dKu7>lYUUie 芽~;1T0r.`'!4ΛlMj< WܴI+c \);1kWn^ pxЅ쟸Y}ۙ[24?ʥHxž YgR]"Ԯ>"tawx2N8VM-=eٯW2}2aouX5pY枋ows{*  !L`}g%_ fULˊ6pI3lsJfC@ވ!i 0r. \өʁ"Vf7̨reE":PtcuLR]TQoB.F#$FDʅ]A¸Gc zqէii {Pdׁ첪 9sWWݿ׵l^(qũraw0^6pٝjvi ǨlUEeϾ9y ǁ+i?/}}]y#"$OG#\|8+)4=7AfVӊU U0u;1ʕ.;@t\z3V EB!.΁҅ 2=<6l `U ;e;rI=ea ͸>.$R+JEFT[]ˣsvk)rU.BF8pd\6lԜGR|C\VLc@:R:޾vOj!}U밹@gmxȑ?5* ӜBF!\> w RDjWrfy pմQyڬqxWy!  ;ɼ5*V \y}\@vrdڜ&9"}\]m/icjG˾g%|k\~<]sj T ur-C }6ZtrWjW`R[L\9*WN\Yˋfø顺c? MǃXPZ*vZokOrϥ yKut \.'3m~fuǎ%{{N>6lNW \E1wC/cCL[~OO/6lRkr.㲁=6/?u ']q JO lOxbBQ;\T]CkL-W \%}\w3?'cϹM%VU.F.xcm|bu縏*W^IWϙ<:/-*۟g}m_y/ƨ@ ^(6L&fcoI^Yo#3>xo5OڋfHՑPPPEZLJG8QTJPxFЅ?O7t}v,4?%λ?ce>xk}){/2/yfCu ҥv>.W}oޯZiR7Pb?H1 #D°ceU\^2' u/ccI?l~yoz3l `|ɓG M>?ӽO}fȶ[5w7߮qgpFzQc+j+[UdkA5/hzge/\P^ \5*2w)k8:Ҥ,. ~Rq(XqVuN7\+; IuHuo~fP9duPk덃K;#tK*#"Bg`,3y?<۰il6BuHy랼>>=񹘵f4v qP/G'daaNjȰU/[=xHj݊iUV&kVTE8oO'Χ7EGˁo_P! \t7M!\T!t/ #"=G*EcWE6jtWv*bUxfi6E%xmq곁6R01zA.s{.o a`PJ>.W}iZk8rT`kv*bG#"rけEGCP+>UOUCإyʃ]TaS/8l7lkˊ+\Aq<1 \&YZt=>FENʰ xDDM*#yޫ>2r>4p\ Ae)dϕ:K0xN{P2ޏiW'>U^\4W37D taؖ+-}ʪUvVM,x%sIA]6SG]Mɴ-tox~//D+\I擡XQ?TBvRr>k}\/L AC !ta6ΛOjǑZZ$AtpWRg]-γԪ\A`ˊy?L!)W q8;œ)*mo(v&l뚫s{30q*|DnHvȕ(H6zxW$Ҫki:j;;cR傇] }\cŏ?jQ?E'7gMqk`]*Uَp&W'3g#_ p1SXRCxw.ƭhj~"w}Y?xgti뽟%p50Cݸ6uxqrc,cfhT66/X ^x'p%~Wsov;cT9BFq>QQA?\ԫ̹7~Wޑ?.f*M@ ^ f5w /;&c˥=u`n_\Rxrv)R6iN8B肿*^Ukd;tS4_u5 wC@.蓉a\ڡp?5\>b~4ʗ<`x/5w֮+>SOW-(^ ެrٟa;  j6wnKɫ<8 Ivi.@`?T(/m~R 8FwM{w,:r{+_r>׿2ݬ}~8kʥ8p4Jqhr74=Jހ#C̝)ەPAGˊKߕrkU.!BѤ8\i n\w']᭯{r*PoBKOiZ]C>.WUX/<ٝ&q`95HvztĐ٨rDž1"t *WAe߱7i+~I95L~,O\qa]yQrYΝ{2cǁ(k\ѴˣAU.0b. [4Z3H4]$xi-psA|rDžDv [4sr5a6qg~V{U 4hO `EƎJA+ixJ*^~X \jN\2rOxI\qa0*U?E ^ö m 6v)6w/.qa'0UlL]qO̍5L[+9$GFq*q5I" ! FhHXl:,&ܿCUYڨ=[%~f))ah8,)X.*yϽakl&opi %ݬٟaI~+ahV$sx3*]SSwQOa*Y~֪6mVcի\ 7-5J= tUSc [ ^ }D7zk8hdqKoj]jRj_]=*WC%a)JS?~ai  ~<^heV^.S2,W)UcWA  /ZVi˝UT UJKǏon~`ʲ"B肿 mhd5>B$Yj˻*W:lvF.jUU.+Ra˲rRT\y.ډwKfBU]s.CqP\YbWY8WU4f]^VxoU )|OmMW q?nCHiAPc߿"1 tBKz]W4.kfrtdRCcLDwaT0.xA$=[1AG_ȡBO~>.\ә_gnng`r =U4l'@[s5ƄЅa[.:/&^OAZQpyc 6S9;nxlƇAT8#B5c;ݖ*WIysYuWUq/UMN+NpU. V] >F΍|n?qZvsFR\rWZV}"U. U]O*Nݚc ^6pG!5R:GR \#BF⺜T727y9:pIUkvxf%\)BƩUn:j1.rS,+^YVua&\+BFrM'7W}^M_z\Moޯj(]WO*Êf\1BFQ?1U쒟)n9*Kr.cU7xקy:T0f.m.پ!gb6zļg&xu\5n𫃃_TeE㲁>o ^ 2T0r.J\Q+{uT=} ^+ԛe]oc"aT0v.L.ʕ\KU߻ x.S}Je&Ϊ\y3\n*v y&qSZɺ j \Q|\UVD$s}2B\.Bl.+rm' -x>\ v:;3o&YGk_g1y D\Q+[}s+t8I2pUhW1?+lpc+pqyv IMVz&>J=uOJ.pUcqGc"rV\Jvs toBU͛YvaPD&"Gz '͹|Lq܏ogN~V>g#<%.xMyEk&+|cQCI;x٣lO٩dW 7G<7hLDQH`FBqb^l^M_RLʊ5B^1G9I]B-.5Kp( y#׺>/Ugڰu/~+N!FU8mcrLQ12,/b؂@XrC^%ktb.K͐X$Bq*ǫ.csD~>fE7YzW?a9T2$ a\|rq"ƆEr}(]*W)~zoeܬ!QsXBFOnPiw۵8AT,9ٱyNl$BBԵTN_ILߣ O҅ ^uYQrPDNr9ϱnA#tae+*WIJb,^P%Ь-WVuG#FHpmۮhK;6gŽp \eINpVKQr]NɁݖzߒ$6gu=.nT#yUU.*Wu^̥ H]0BEUTI[yBˊR;,l",wzE@Fa0.BU]n⽌ITkrI-/"=lQdV>Ѕ&ˆZ[QdDD `r+'=&Ӄ$]8BFC哿hOT]CZV8_n{AlهZp>ЅqbvV\qYQ<Ȯ+6:IU$zlE.-2npЅQrt8^ԲTÿKy$=gKTj7egXC\i c޲qIvժrI $˷bBvU$Mx"ʜqInM*Wf]I<6BT5Y~7J'<׬L yzxf; wLCU<.xMfZQS5HIԥiթc߭9rU7VMi/y(;WV[SbNX*WtV,#!t["UW04މ GQ1ePpS3V]Sם%s1ixK5`IաWzؙghˊ]{ڼ.]J "cejvix:( +#*]Hk*8/Ee53:T4w>VD[bgix"t?"ǫJFw3ҹ Sa.+f5 VݢIH]iUl"eN_f+va$t=VI 0{\FG;;3 rTPK!?t4s##assets/img/index.phpnu[ PK!whh%assets/img/really-simple-ssl-logo.svgnu[ PK!H$assets/img/really-simple-plugins.svgnu[ PK!?t4s##assets/index.phpnu[ PK! AMAAonboarding/class-onboarding.phpnu[admin->activate_ssl($data); break; case 'activate_ssl_networkwide': $response = RSSSL()->multisite->process_ssl_activation_step(); break; default: return $response; } return $response; } /** * @param $data * @param $action * @param $request * * @return array|bool[]|false|mixed */ public function handle_onboarding_action($response, $action, $data){ if ( ! rsssl_user_can_manage() ) { return false; } $error = false; $next_action = 'none'; switch( $action ){ case 'onboarding_data': $response = $this->onboarding_data($data); break; case 'get_modal_status': $response = ["dismissed" => !$this->show_onboarding_modal()]; break; case 'dismiss_modal': $this->dismiss_modal($data); break; case 'override_ssl_detection': $response = $this->override_ssl_detection($data); break; case 'install_plugin': require_once(rsssl_path . 'class-installer.php'); $plugin = new rsssl_installer(sanitize_title($data['id'])); $success = $plugin->download_plugin(); $response = [ 'next_action' => 'activate', 'success' => $success ]; break; case 'activate': require_once(rsssl_path . 'class-installer.php'); $plugin = new rsssl_installer(sanitize_title($data['id'])); $success = $plugin->activate_plugin(); $response = [ 'next_action' => 'completed', 'success' => $success ]; break; case 'update_email': $email = sanitize_email($data['email']); if (is_email($email )) { rsssl_update_option('notifications_email_address', $email ); rsssl_update_option('send_notifications_email', 1 ); if ( $data['includeTips'] ) { $this->signup_for_mailinglist( $email ); } $mailer = new rsssl_mailer(); $mailer->send_verification_mail( $email ); } $response = [ 'success' => true, ]; break; case 'activate_setting': $id = isset($data['id']) ? sanitize_title($data['id']) : false; if ($id==='hardening') { $recommended_ids = $this->get_hardening_fields(); foreach ($recommended_ids as $h ){ rsssl_update_option($h, 1); } } if ($id === 'vulnerability_detection') { rsssl_update_option('enable_vulnerability_scanner', 1); } $response = [ 'next_action' => 'completed', 'success' => true, ]; break; } $response['request_success'] = true; return $response; } /** * Signup for Tips & Tricks from Really Simple SSL * * @param string $email * * @return void */ public function signup_for_mailinglist( string $email): void { $license_key = ''; if ( defined('rsssl_pro') ) { $license_key = RSSSL()->licensing->license_key(); $license_key = RSSSL()->licensing->maybe_decode( $license_key ); } $api_params = array( 'has_premium' => defined('rsssl_pro'), 'license' => $license_key, 'email' => sanitize_email($email), 'domain' => esc_url_raw( site_url() ), ); wp_remote_post( 'https://mailinglist.really-simple-ssl.com', array( 'timeout' => 15, 'sslverify' => true, 'body' => $api_params ) ); } /** * Two possibilities: * - a new install: show activation notice, and process onboarding * - an upgrade to 6. Only show new features. * * @param WP_REST_Request $request * * @return array */ public function onboarding_data( $data ): array { // "warning", // yellow dot // "error", // red dot // "active" // green dot $refresh = isset($data['forceRefresh']) && $data['forceRefresh']===true; $nonce = $data['nonce'] ?? false; if ( !wp_verify_nonce($nonce, 'rsssl_nonce') ) { return []; } if( !defined('rsssl_pro')) { $info = __('You can also let the automatic scan of the pro version handle this for you, and get premium support, increased security with HSTS and more!', 'really-simple-ssl'). " " . sprintf('%s', RSSSL()->admin->pro_url, __("Check out Really Simple SSL Pro", "really-simple-ssl"));; } $steps = [ [ "id" => 'activate_ssl', "title" => __( "Really Simple SSL & Security", 'really-simple-ssl' ), "subtitle" => __("We have added many new features to our plugin, now bearing the name Really Simple SSL & Security. But we start like we did almost 10 years ago. Optimising your Encryption with SSL.", "really-simple-ssl"), "items" => $this->activate_ssl(), ], [ "id" => 'features', "title" => get_option('rsssl_show_onboarding') ? __( "Thanks for updating!", 'really-simple-ssl' ) : __( "Congratulations!", 'really-simple-ssl' ), "subtitle" => __("These are some of our new features, and weʼre just getting started.", "really-simple-ssl")." ". __("A lightweight plugin with heavyweight security features, focusing on performance and usability.", "really-simple-ssl"), "items" => $this->recommended_features(), "button" => __("Enable", "really-simple-ssl"), ], [ "id" => 'email', "title" => __( "Get notified!", 'really-simple-ssl' ), "subtitle" => __("We use email notification to explain important updates in plugin settings.", "really-simple-ssl").' '.__("Add your email address below.", "really-simple-ssl"), "button" => __("Save and continue", "really-simple-ssl"), ], [ "id" => 'plugins', "title" => __("Free plugins", "really-simple-ssl"), "subtitle" => __("Really Simple Plugins is also the author of the below privacy-focused plugins, including consent management, legal documents and analytics!", "really-simple-ssl"), "items" => $this->plugins(), "button" => __("Install", "really-simple-ssl"), ], [ "id" => 'pro', "title" => __("Really Simple Security Pro", "really-simple-ssl"), "subtitle" => __("Heavyweight security features, in a lightweight performant plugin from Really Simple Plugins. Get started with below features and get the latest and greatest updates for a peace of mind!", "really-simple-ssl"), "items" => $this->pro_features(), "button" => __("Install", "really-simple-ssl"), ], ]; //if the user called with a refresh action, clear the cache if ($refresh) { delete_transient('rsssl_certinfo'); } return [ "request_success" =>true, "steps" => $steps, "ssl_enabled" => rsssl_get_option("ssl_enabled"), "ssl_detection_overridden" => get_option('rsssl_ssl_detection_overridden'), 'certificate_valid' => RSSSL()->certificate->is_valid(), "networkwide" => is_multisite() && rsssl_is_networkwide_active(), "network_activation_status" => get_site_option('rsssl_network_activation_status'), ]; } /** * Return onboarding items for fresh installs * @return array[] */ function activate_ssl () { $items = []; //if the site url is not yet https, the user may need to login again if ( strpos( site_url(), 'https://') === false ) { $items[] = [ "title" => __("You may need to login in again, have your credentials prepared.", "really-simple-ssl"), "status" => "inactive", "id" => "login", ]; } if ( RSSSL()->certificate->is_valid() ) { $items[] = [ "title" => __("An SSL certificate has been detected", "really-simple-ssl"), "status" => "success", "id" => "certificate", ]; } else if ( RSSSL()->certificate->detection_failed() ) { $items[] = [ "title" => __("Could not test certificate.", "really-simple-ssl") . " " . __("Automatic certificate detection is not possible on your server.", "really-simple-ssl"), "status" => "error", "id" => "certificate", ]; } else { $items[] = [ "title" => __("No SSL certificate has been detected.", "really-simple-ssl") . " " . __("Please refresh the SSL status if a certificate has been installed recently.", "really-simple-ssl"), "status" => "error", "id" => "certificate", ]; } return $items; } public function plugins(): array { $items = []; $plugins_to_install = [ [ "slug" => "burst-statistics", 'constant_premium' => 'burst_pro', "title" => "Burst Statistics", "description" => __("Privacy-friendly analytics tool.", "really-simple-ssl"), ], [ "slug" => "complianz-gdpr", 'constant_premium' => 'cmplz_premium', "title" => "Complianz", "description" => __("Consent Management as it should be.", "really-simple-ssl"), ], [ "slug" => "complianz-terms-conditions", 'constant_premium' => false, "title" => "Complianz Terms & Conditions", "description" => __("Terms & Conditions.", "really-simple-ssl"), ] ]; foreach ($plugins_to_install as $plugin_info) { require_once(rsssl_path . 'class-installer.php'); $plugin = new rsssl_installer($plugin_info["slug"]); $premium_active = $plugin_info['constant_premium'] && defined($plugin_info['constant_premium']); $free_active = $plugin->plugin_is_downloaded() && $plugin->plugin_is_activated(); if( $premium_active || $free_active ) { $action = "none"; } else if( !$plugin->plugin_is_downloaded() ){ $action = "install_plugin"; } else if ( $plugin->plugin_is_downloaded() && !$plugin->plugin_is_activated() ) { $action = "activate"; } else { $action = "none"; } $items[] = [ "id" => $plugin_info['slug'], "title" => $plugin_info["title"], "description" => $plugin_info["description"], "action" => $action, "activated" => true, "current_action" => "none", ]; } return $items; } /** * Returns onboarding items if user upgraded plugin to 6.0 or SSL is detected * @return array */ public function recommended_features () { return [ [ "title" => __("Mixed Content Fixer", "really-simple-ssl"), "id" => "mixed_content_fixer", "options" => ["mixed_content_fixer"], "activated" => true, ], [ "title" => __("Vulnerability Detection", "really-simple-ssl"), "id" => "vulnerability_detection", "options" => ["enable_vulnerability_scanner"], "activated" => true, ], [ "title" => __("Recommended Hardening Features", "really-simple-ssl"), "id" => "hardening", "options" => $this->get_hardening_fields(), "activated" => true, ], [ "title" => __("Run System Health Scan", "really-simple-ssl"), "id" => "health_scan", "options" => [], "activated" => true, ], [ "title" => __("Limit Login Attempts", "really-simple-ssl"), "id" => "limit_login_attempts", "premium" => true, "options" => ['enable_limited_login_attempts'], "activated" => true, ], [ "title" => __("Two Factor Authentication", "really-simple-ssl"), "id" => "two_fa", "premium" => true, "options" => ['login_protection_enabled', 'two_fa_enabled'], "activated" => true, ], [ "title" => __("Advanced Security Headers", "really-simple-ssl"), "id" => "advanced_headers", "premium" => true, "options" => [], "activated" => true, ], [ "title" => __("Advanced Hardening Features", "really-simple-ssl"), "id" => "advanced_hardening", "premium" => true, "options" => [], "activated" => true, ], ]; } /** * Returns onboarding items if user upgraded plugin to 6.0 or SSL is detected * @return array */ public function pro_features () { return [ [ "title" => __("Limit Login Attempts", "really-simple-ssl"), "id" => "limit_login_attempts", "premium" => true, "options" => ['enable_limited_login_attempts'], "activated" => true, ], [ "title" => __("Two Factor Authentication", "really-simple-ssl"), "id" => "two_fa", "premium" => true, "options" => ['login_protection_enabled', 'two_fa_enabled'], "activated" => true, ], [ "title" => __("Advanced Security Headers", "really-simple-ssl"), "id" => "advanced_headers", "premium" => true, "options" => [], "activated" => true, ], [ "title" => __("Password security", "really-simple-ssl"), "id" => "password_security", "options" => ['enforce_password_security_enabled'], "activated" => true, ], [ "title" => __("Advanced Hardening", "really-simple-ssl"), "id" => "advanced_hardening", "premium" => true, "options" => [ 'change_debug_log_location', 'disable_http_methods' ], "activated" => true, ], [ "title" => __("Vulnerability Measures", "really-simple-ssl"), "id" => "vulnerability_measures", "options" => ["vulnerabilities_measures"], "activated" => true, ], ]; } /** * Toggle modal status * * @param array $data * * @return void */ public function dismiss_modal($data){ if (!rsssl_user_can_manage()) return; $dismiss = $data['dismiss'] ?? false; update_option("rsssl_onboarding_dismissed", (bool) $dismiss, false); } public function maybe_redirect_to_settings_page() { if ( get_transient('rsssl_redirect_to_settings_page' ) ) { delete_transient('rsssl_redirect_to_settings_page' ); if ( !RSSSL()->admin->is_settings_page() ) { wp_redirect( add_query_arg(array('page' => 'really-simple-security'), rsssl_admin_url() ) ); exit; } } } /** * Check if any of the recommended features has been disabled * @return bool */ public function all_recommended_hardening_features_enabled(){ $recommended_ids = $this->get_hardening_fields(); foreach ($recommended_ids as $h ){ if ( rsssl_get_option($h)!=1 ) { return false; } } return true; } private function get_hardening_fields(): array { $fields = rsssl_fields(false); //get all fields that are recommended $recommended = array_filter($fields, function($field){ return isset($field['recommended']) && $field['recommended']; }); //get all id's from this array return array_map( static function($field){ return $field['id']; }, $recommended); } public function onboarding_rest_route() { register_rest_route( 'reallysimplessl/v1', 'onboarding', array( 'methods' => 'GET', 'callback' => array($this, 'onboarding_data'), 'permission_callback' => function () { return rsssl_user_can_manage(); } ) ); } /** * Update SSL detection overridden option */ public function override_ssl_detection($data) { if ( ! rsssl_user_can_manage() ) { return false; } $override_ssl = isset($data['overrideSSL']) ? $data['overrideSSL']===true : false; if ($override_ssl) { update_option('rsssl_ssl_detection_overridden', true, false ); } else { delete_option('rsssl_ssl_detection_overridden' ); } return ['success'=>true]; } /** * Logic if the activation notice should be shown */ function show_onboarding_modal() { if ( get_option("rsssl_onboarding_dismissed") ) { return false; } //ensure the checks have been run if ( !RSSSL()->admin->configuration_loaded ) { RSSSL()->admin->detect_configuration(); } if ( RSSSL()->admin->do_wpconfig_loadbalancer_fix() && !RSSSL()->admin->wpconfig_has_fixes() ) { return false; } //for multisite environments, we check if the activation process was started but not completed. if ( is_multisite() && RSSSL()->multisite->ssl_activation_started_but_not_completed() ){ return true; } $is_upgrade = get_option('rsssl_show_onboarding'); if ( rsssl_get_option('ssl_enabled') && !$is_upgrade ) { return false; } if ( defined( "RSSSL_DISMISS_ACTIVATE_SSL_NOTICE" ) && RSSSL_DISMISS_ACTIVATE_SSL_NOTICE ) { return false; } //don't show in our Let's Encrypt wizard if ( isset( $_GET['letsencrypt'] ) ) { return false; } if ( ! RSSSL()->admin->wpconfig_ok() ) { return false; } if ( ! rsssl_user_can_manage() ) { return false; } return true; } } PK!?t4s##onboarding/index.phpnu[ PK!/class-front-end.phpnu[ssl_enabled = rsssl_get_option( 'ssl_enabled' ); $this->wp_redirect = rsssl_get_option( 'redirect', 'redirect' ) === 'wp_redirect'; add_action( 'rest_api_init', array( $this, 'wp_rest_api_force_ssl' ), ~PHP_INT_MAX ); } public static function this() { return self::$_this; } /** * PHP redirect, when ssl is true. * * @since 2.2 * * @access public * */ public function force_ssl() { if ( $this->ssl_enabled && $this->wp_redirect ) { add_action( 'wp', array( $this, 'wp_redirect_to_ssl' ), 40, 3 ); } } /** * Force SSL on wp rest api * * @since 2.5.14 * * @access public * */ public function wp_rest_api_force_ssl(): void { //check for Command Line if ( php_sapi_name() === 'cli' ) { return; } if ( ! array_key_exists( 'HTTP_HOST', $_SERVER ) ) { return; } if ( $this->ssl_enabled && ! is_ssl() && ! ( defined( 'rsssl_no_rest_api_redirect' ) && rsssl_no_rest_api_redirect ) ) { $redirect_url = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; wp_redirect( $redirect_url, 301 ); exit; } } /** * Redirect using wp redirect * * @since 2.5.0 * * @access public * */ public function wp_redirect_to_ssl(): void { if ( ! array_key_exists( 'HTTP_HOST', $_SERVER ) ) { return; } if ( ! is_ssl() && ! ( defined( 'rsssl_no_wp_redirect' ) && rsssl_no_wp_redirect ) ) { $redirect_url = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $redirect_url = apply_filters( 'rsssl_wp_redirect_url', $redirect_url ); wp_redirect( $redirect_url, 301 ); exit; } } } } PK! Qrclass-certificate.phpnu[get_domain(); if ( ! $domain || ! function_exists( 'stream_context_get_params' ) ) { set_transient( 'rsssl_certinfo', 'no-response', DAY_IN_SECONDS ); } else { $certinfo = $this->get_certinfo( $domain ); if ( ! $certinfo ) { return false; } $domain_valid = $this->is_domain_valid( $certinfo, $domain ); $date_valid = $this->is_date_valid( $certinfo ); if ( $domain_valid && $date_valid ) { return true; } } return false; } /** * get domain * @return string */ public function get_domain() { $domain = site_url(); //Parse to strip off any /subfolder/ $parse = parse_url( $domain ); return isset( $parse['host'] ) ? $parse['host'] : false; } /** * * Check common name(s) and alternative name(s) on certificate and match them to the site_url ($domain) * * @since 3.0 * * @access public * @param $certinfo * @param $domain * @return bool * */ public function is_domain_valid( $certinfo, $domain ): bool { //first check standard situation //Get both the common name(s) and the alternative names from the certificate $certificate_common_names = isset( $certinfo['subject']['CN'] ) ? $certinfo['subject']['CN'] : ''; $certificate_alternative_names = isset( $certinfo['extensions']['subjectAltName'] ) ? $certinfo['extensions']['subjectAltName'] : ''; //Check if the domain is found in either the certificate common name(s) (CN) or alternative name(s) (AN) $pos_cn = strpos( $certificate_common_names, $domain ); $pos_an = strpos( $certificate_alternative_names, $domain ); //If the domain is found, return true if ( false !== $pos_cn || false !== $pos_an ) { return true; } //if nothing found, we check for wildcard //strip of asterisk, and check if the wildcard domain is part of current domain $cert_domains = array(); if ( $this->is_wildcard() ) { $certificate_alternative_names = explode( ', ', $certificate_alternative_names ); $cert_domains[] = trim( str_replace( '*', '', $certificate_common_names ) ); foreach ( $certificate_alternative_names as $subject_alt_name ) { $cert_domains[] = trim( str_replace( '*', '', $subject_alt_name ) ); } foreach ( $cert_domains as $cert_domain ) { //If the wildcard domain is found, return true if ( ( strpos( $domain, $cert_domain ) !== false ) ) { return true; } } } return false; } /** * Check if detection failed * @return bool */ public function detection_failed() { $certinfo = get_transient( 'rsssl_certinfo' ); if ( $certinfo && 'no-response' === $certinfo ) { return true; } return false; } /** * * Check if the date is valid by looking at the validFrom and validTo times * * @since 3.0 * * @access public * * @return bool * */ public function is_date_valid( $certinfo ) { //Get the start date and end date from the certificate $start_date = isset( $certinfo['validFrom_time_t'] ) ? $certinfo['validFrom_time_t'] : false; $end_date = isset( $certinfo['validTo_time_t'] ) ? $certinfo['validTo_time_t'] : false; $current_date = time(); //Check if the current date is between the start date and end date. If so, return true if ( $current_date > $start_date && ( $current_date < $end_date ) ) { return true; } return false; } /** * Check if the certificate is valid, but about to expire. * @return bool */ public function about_to_expire() { //if not valid, it's already expired if ( ! $this->is_valid() ) { return true; } //we have now renewed the cert info transient $certinfo = get_transient( 'rsssl_certinfo' ); $end_date = isset( $certinfo['validTo_time_t'] ) ? $certinfo['validTo_time_t'] : false; $expiry_days_time = strtotime( '+' . rsssl_le_manual_generation_renewal_check . ' days' ); if ( $expiry_days_time < $end_date ) { return false; } else { return true; } } /** * * Check if the certificate is a wildcard certificate * Function is used in class-multisite.php to determine whether to show a notice for multisite subfolder installations without a wildcard certificate * * @since 3.0 * * @access public * * @return bool * */ public function is_wildcard() { $domain = network_site_url(); $certinfo = $this->get_certinfo( $domain ); //Get the certificate common name $certificate_common_name = isset( $certinfo['subject']['CN'] ) ? $certinfo['subject']['CN'] : false; $subject_alt_names = isset( $certinfo['extensions']['subjectAltName'] ) ? explode( ', ', $certinfo['extensions']['subjectAltName'] ) : false; //Check if the common name(s) contain an * if ( strpos( $certificate_common_name, '*' ) ) { return true; } if ( is_array( $subject_alt_names ) ) { foreach ( $subject_alt_names as $subject_alt_name ) { if ( strpos( $subject_alt_name, '*' ) !== false ) { return true; } } } return false; } /** * * Get the certificate info * * @since 3.0 * @param string $url * @return string|bool * @access public * */ public function get_certinfo( $url ) { $certinfo = get_transient( 'rsssl_certinfo' ); //if the last check resulted in a "no response", we skip this check for a day. if ( 'no-response' === $certinfo ) { return false; } if ( ! $certinfo || RSSSL()->admin->is_settings_page() ) { $url = 'https://' . str_replace( array( 'https://', 'http://' ), '', $url ); $original_parse = parse_url( $url, PHP_URL_HOST ); if ( $original_parse ) { $get = stream_context_create( array( 'ssl' => array( 'capture_peer_cert' => true ) ) ); if ( $get ) { set_error_handler( array( $this, 'custom_error_handling' ) ); $read = stream_socket_client( 'ssl://' . $original_parse . ':443', $errno, $errstr, 5, STREAM_CLIENT_CONNECT, $get ); restore_error_handler(); if ( ! $read ) { $certinfo = 'no-response'; } if ( 0 === $errno && $read ) { $cert = stream_context_get_params( $read ); if ( isset( $cert['options']['ssl']['peer_certificate'] ) ) { $certinfo = openssl_x509_parse( $cert['options']['ssl']['peer_certificate'] ); } else { $certinfo = 'no-response'; } } } } set_transient( 'rsssl_certinfo', $certinfo, DAY_IN_SECONDS ); } if ( 'not-valid' === $certinfo ) { return false; } if ( ! empty( $certinfo ) ) { return $certinfo; } return false; } /** * Catch errors * * @since 3.0 * * @access public * @param $errno * @param $errstr * @param $errfile * @param $errline * @param array $errcontext * * @return bool */ public function custom_error_handling( $errno, $errstr, $errfile, $errline, $errcontext = array() ) { return true; } //class closure } } PK!ST functions.phpnu[ rsssl_get_option( 'enable_limited_login_attempts' ) == 1,//phpcs:ignore 'two_fa_enabled' => rsssl_get_option( 'two_fa_enabled' ) == 1,//phpcs:ignore ); // Check if the current feature is in the essential features array foreach ( $essential_features as $feature => $is_essential ) { if ( $is_essential ) { return true; } } return false; }PK!YʗAAsystem-status.phpnu[certificate->is_valid() ) { $output .= "SSL certificate is valid\n"; } else { if ( ! function_exists( 'stream_context_get_params' ) ) { $output .= "stream_context_get_params not available\n"; } elseif ( RSSSL()->certificate->detection_failed() ) { $output .= "Not able to detect certificate\n"; } else { $output .= "Invalid SSL certificate\n"; } } $output .= ( rsssl_get_option( 'ssl_enabled' ) ) ? "SSL is enabled\n\n" : "SSL is not yet enabled\n\n"; $output .= "Options\n"; if ( rsssl_get_option( 'mixed_content_fixer' ) ) { $output .= "* Mixed content fixer\n"; } $output .= '* WordPress redirect' . rsssl_get_option( 'redirect' ) . "\n"; if ( rsssl_get_option( 'switch_mixed_content_fixer_hook' ) ) { $output .= "* Use alternative method to fix mixed content\n"; } if ( rsssl_get_option( 'dismiss_all_notices' ) ) { $output .= "* Dismiss all Really Simple SSL notices\n"; } $output .= "\n"; $output .= "Server information\n"; $output .= 'Server: ' . RSSSL()->server->get_server() . "\n"; $output .= 'SSL Type: ' . RSSSL()->admin->ssl_type . "\n"; if ( function_exists( 'phpversion' ) ) { $output .= 'PHP Version: ' . phpversion() . "\n"; } if ( is_multisite() ) { $output .= "MULTISITE\n"; } if ( rsssl_is_networkwide_active() ) { $output .= "Really Simple SSL network wide activated\n"; } elseif ( is_multisite() ) { $output .= "Really Simple SSL per site activated\n"; } $output .= '
' . '' . 'SSL Configuration' . ''; $domain = RSSSL()->certificate->get_domain(); $certinfo = RSSSL()->certificate->get_certinfo( $domain ); if ( ! $certinfo ) { $output .= 'SSL certificate not valid
'; } $domain_valid = RSSSL()->certificate->is_domain_valid( $certinfo, $domain ); if ( ! $domain_valid ) { $output .= "Domain on certificate does not match website's domain
"; } $date_valid = RSSSL()->certificate->is_date_valid( $certinfo ); if ( ! $date_valid ) { $output .= 'Date on certificate expired or not valid
'; } $filecontents = get_transient( 'rsssl_testpage' ); if ( strpos( $filecontents, '#SSL TEST PAGE#' ) !== false ) { $output .= 'SSL test page loaded successfully
'; } else { $output .= 'Could not open testpage
'; } if ( RSSSL()->admin->wpconfig_siteurl_not_fixed ) { $output .= 'siteurl or home url defines found in wpconfig
'; } if ( RSSSL()->admin->wpconfig_siteurl_not_fixed ) { $output .= 'not able to fix wpconfig siteurl/homeurl.
'; } if ( ! is_writable( RSSSL()->admin->find_wp_config_path() ) ) { $output .= 'wp-config.php not writable
'; } $output .= 'Detected SSL setup: ' . RSSSL()->admin->ssl_type . '
'; if ( file_exists( RSSSL()->admin->htaccess_file() ) ) { $output .= 'htaccess file exists.
'; if ( ! is_writable( RSSSL()->admin->htaccess_file() ) ) { $output .= 'htaccess file not writable.
'; } } else { $output .= 'no htaccess file available.
'; } if ( get_transient( 'rsssl_htaccess_test_success' ) === 'success' ) { $output .= 'htaccess redirect tested successfully.
'; } elseif ( get_transient( 'rsssl_htaccess_test_success' ) === 'error' ) { $output .= 'htaccess redirect test failed.
'; } elseif ( get_transient( 'rsssl_htaccess_test_success' ) === 'no-response' ) { $output .= 'htaccess redirect test failed: no response from server.
'; } $mixed_content_fixer_detected = get_transient( 'rsssl_mixed_content_fixer_detected' ); if ( 'no-response' === $mixed_content_fixer_detected ) { $output .= 'Could not connect to webpage to detect mixed content fixer
'; } if ( 'not-found' === $mixed_content_fixer_detected ) { $output .= 'Mixed content marker not found in websource
'; } if ( 'error' === $mixed_content_fixer_detected ) { $output .= 'Mixed content marker not found: unknown error
'; } if ( 'curl-error' === $mixed_content_fixer_detected ) { //Site has has a cURL error $output .= 'Mixed content fixer could not be detected: cURL error
'; } if ( 'found' === $mixed_content_fixer_detected ) { $output .= 'Mixed content fixer successfully detected
'; } if ( ! rsssl_get_option( 'mixed_content_fixer' ) ) { $output .= 'Mixed content fixer not enabled
'; } if ( ! RSSSL()->admin->htaccess_contains_redirect_rules() ) { $output .= '.htaccess does not contain default Really Simple SSL redirect.
'; } $output .= "\nConstants\n"; if ( defined( 'RSSSL_FORCE_ACTIVATE' ) ) { $output .= "RSSSL_FORCE_ACTIVATE defined\n"; } if ( defined( 'RSSSL_NO_FLUSH' ) ) { $output .= 'RSSSL_NO_FLUSH defined'; } if ( defined( 'RSSSL_DISMISS_ACTIVATE_SSL_NOTICE' ) ) { $output .= "RSSSL_DISMISS_ACTIVATE_SSL_NOTICE defined\n"; } if ( defined( 'RSSSL_SAFE_MODE' ) ) { $output .= "RSSSL_SAFE_MODE defined\n"; } if ( defined( 'RSSSL_SERVER_OVERRIDE' ) ) { $output .= "RSSSL_SERVER_OVERRIDE defined\n"; } if ( ! defined( 'RSSSL_FORCE_ACTIVATE' ) && ! defined( 'RSSSL_NO_FLUSH' ) && ! defined( 'RSSSL_DISMISS_ACTIVATE_SSL_NOTICE' ) && ! defined( 'RSSSL_SAFE_MODE' ) && ! defined( 'RSSSL_SERVER_OVERRIDE' ) ) { $output .= "No constants defined\n"; } return $output; } if ( rsssl_user_can_manage() && isset( $_GET['download'] ) ) { $rsssl_content = rsssl_get_system_status(); $rsssl_fsize = function_exists( 'mb_strlen' ) ? mb_strlen( $rsssl_content, '8bit' ) : strlen( $rsssl_content ); $rsssl_file_name = 'really-simple-ssl-system-status.txt'; //direct download header( 'Content-type: application/octet-stream' ); header( 'Content-Disposition: attachment; filename="' . $rsssl_file_name . '"' ); //open in browser //header("Content-Disposition: inline; filename=\"".$file_name."\""); header( "Content-length: $rsssl_fsize" ); header( 'Cache-Control: private', false ); // required for certain browsers header( 'Pragma: public' ); // required header( 'Expires: 0' ); header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' ); header( 'Content-Transfer-Encoding: binary' ); echo $rsssl_content; } function rsssl_find_wordpress_base_path() { $path = __DIR__; do { if ( file_exists( $path . '/wp-config.php' ) ) { //check if the wp-load.php file exists here. If not, we assume it's in a subdir. if ( file_exists( $path . '/wp-load.php' ) ) { return $path; } else { //wp not in this directory. Look in each folder to see if it's there. if ( file_exists( $path ) && $handle = opendir( $path ) ) { //phpcs:ignore while ( false !== ( $file = readdir( $handle ) ) ) {//phpcs:ignore if ( '.' !== $file && '..' !== $file ) { $file = $path . '/' . $file; if ( is_dir( $file ) && file_exists( $file . '/wp-load.php' ) ) { $path = $file; break; } } } closedir( $handle ); } } return $path; } } while ( $path = realpath( "$path/.." ) ); //phpcs:ignore return false; } PK!rak lets-encrypt/cron.phpnu[letsencrypt_handler->cron_certificate_needs_renewal() ) { update_option("rsssl_le_start_renewal", true, false); } if ( RSSSL_LE()->letsencrypt_handler->certificate_install_required() ) { update_option("rsssl_le_start_installation", true, false); } } function rsssl_le_check_renewal_status(){ if ( !rsssl_generated_by_rsssl() ) { return; } //when DNS validated, without api, we cannot autorenew if ( !RSSSL_LE()->letsencrypt_handler->ssl_generation_can_auto_renew() ) { return; } $renewal_active = get_option("rsssl_le_start_renewal"); $installation_active = get_option("rsssl_le_start_installation"); if ( $renewal_active ) { RSSSL_LE()->letsencrypt_handler->create_bundle_or_renew(); } else if ( $installation_active ) { RSSSL_LE()->letsencrypt_handler->cron_renew_installation(); } } add_filter( 'cron_schedules', 'rsssl_le_filter_cron_schedules' ); function rsssl_le_filter_cron_schedules( $schedules ) { $schedules['rsssl_le_weekly'] = array( 'interval' => WEEK_IN_SECONDS, 'display' => __( 'Once every week' ) ); $schedules['rsssl_le_daily'] = array( 'interval' => DAY_IN_SECONDS, 'display' => __( 'Once every day' ) ); $schedules['rsssl_le_five_minutes'] = array( 'interval' => 5 * MINUTE_IN_SECONDS, 'display' => __( 'Once every 5 minutes' ) ); return $schedules; } register_deactivation_hook( rsssl_file, 'rsssl_le_clear_scheduled_hooks' ); function rsssl_le_clear_scheduled_hooks() { wp_clear_scheduled_hook( 'rsssl_le_every_week_hook' ); wp_clear_scheduled_hook( 'rsssl_le_every_day_hook' ); } PK!##*lets-encrypt/class-letsencrypt-handler.phpnu[key_directory = $this->key_directory(); $this->challenge_directory = $this->challenge_directory(); $this->certs_directory = $this->certs_directory(); // Config the desired paths if ( $this->key_directory ) { Account::setCommonKeyDirectoryPath( $this->key_directory ); } if ( $this->challenge_directory ) { HTTP::setDirectoryPath( $this->challenge_directory ); } // General configs Connector::getInstance()->useStagingServer( false ); Logger::getInstance()->setDesiredLevel( Logger::LEVEL_DISABLED ); if ( !rsssl_get_option( 'disable_ocsp' ) ) { Certificate::enableFeatureOCSPMustStaple(); } Order::setPreferredChain('ISRG Root X1'); $this->subjects = $this->get_subjects(); $this->verify_dns(); } self::$_this = $this; } static function this() { return self::$_this; } /** * If we're on apache, add a line to the .htaccess so the acme challenge directory won't get blocked. */ public function maybe_add_htaccess_exclude(){ if (!rsssl_user_can_manage()) { return; } if ( !RSSSL()->server->uses_htaccess() ) { return; } $htaccess_file = RSSSL()->admin->htaccess_file(); if ( !file_exists($htaccess_file) ) { return; } if ( !is_writable($htaccess_file) ) { return; } $htaccess = file_get_contents( $htaccess_file ); //if it's already inserted, skip. if ( strpos($htaccess, 'Really Simple SSL LETS ENCRYPT') !== FALSE ) { return; } $htaccess = preg_replace("/#\s?BEGIN\s?Really Simple SSL LETS ENCRYPT.*?#\s?END\s?Really Simple SSL LETS ENCRYPT/s", "", $htaccess); $htaccess = preg_replace("/\n+/", "\n", $htaccess); $rules = '#BEGIN Really Simple SSL LETS ENCRYPT'."\n"; $rules .= 'RewriteRule ^.well-known/(.*)$ - [L]'."\n"; $rules .= '#END Really Simple SSL LETS ENCRYPT'."\n"; $htaccess = $rules . $htaccess; file_put_contents($htaccess_file, $htaccess); } /** * Check if we have an installation failed state. * @return bool */ public function installation_failed(){ $installation_active = get_option("rsssl_le_start_installation"); $installation_failed = get_option("rsssl_installation_error"); return $installation_active && $installation_failed; } /** * Cleanup. If user did not consent to storage, all password fields should be removed on activation, unless they're needed for renewals * * @return bool */ public function cleanup_on_ssl_activation(){ if ( !current_user_can('manage_security') ) { return false; } $delete_credentials = !rsssl_get_option('store_credentials'); $le_fields = rsssl_le_add_fields([]); if ( !$this->certificate_automatic_install_possible() || !$this->certificate_install_required() || $delete_credentials ) { $le_fields = array_filter($le_fields, function($i){ return isset( $i['type'] ) && $i['type'] === 'password'; }); $options = get_option( 'rsssl_options' ); foreach ($le_fields as $index => $field ) { unset($options[$field['id']]); } update_option( 'rsssl_options', $options, false ); } return true; } /** * some custom actions after a field has been saved * @param string $fieldname * @param mixed $fieldvalue * @param mixed $prev_value * @param string $type * * @return void */ public function after_save_field( $fieldname, $fieldvalue, $prev_value, $type ) { rsssl_progress_add('domain'); //only run when changes have been made if ( $fieldvalue === $prev_value ) { return; } if ( $fieldname==='other_host_type' ){ if ( !rsssl_do_local_lets_encrypt_generation() ) { rsssl_progress_add('directories'); rsssl_progress_add('generation'); rsssl_progress_add('dns-verification'); } } if ( $fieldname==='email' ){ if ( !is_email($fieldvalue) ) { rsssl_progress_remove('domain'); } } } /** * Test for localhost or subfolder usage * @return RSSSL_RESPONSE */ public function check_domain(){ $details = parse_url(site_url()); $path = isset($details['path']) ? $details['path'] : ''; if ( strpos(site_url(), 'localhost')!==false ) { rsssl_progress_remove( 'system-status' ); $action = 'stop'; $status = 'error'; $message = __( "It is not possible to install Let's Encrypt on a localhost environment.", "really-simple-ssl" ); } else if (is_multisite() && get_current_blog_id() !== get_main_site_id() ) { rsssl_progress_remove('system-status'); $action = 'stop'; $status = 'error'; $message = __("It is not possible to install Let's Encrypt on a subsite. Please go to the main site of your website.", "really-simple-ssl" ); } else if ( strlen($path)>0 ) { rsssl_progress_remove('system-status'); $action = 'stop'; $status = 'error'; $message = __("It is not possible to install Let's Encrypt on a subfolder configuration.", "really-simple-ssl" ).rsssl_le_read_more('https://really-simple-ssl.com/install-ssl-on-subfolders'); } elseif ( rsssl_caa_record_prevents_le() ) { $action = 'stop'; $status = 'error'; $message = __("Please adjust the CAA records via your DNS provider to allow Let’s Encrypt SSL certificates", "really-simple-ssl" ).rsssl_le_read_more('https://really-simple-ssl.com/instructions/edit-dns-caa-records-to-allow-lets-encrypt-ssl-certificates/'); } else { $action = 'continue'; $status = 'success'; $message = __("Your domain meets the requirements for Let's Encrypt.", "really-simple-ssl" ); } return new RSSSL_RESPONSE($status, $action, $message); } /** * Get certificate installation URL * @return RSSSL_RESPONSE */ public function search_ssl_installation_url(){ //start with most generic, then more specific if possible. $url = 'https://really-simple-ssl.com/install-ssl-certificate'; $host = 'enter-your-dashboard-url-here'; if (function_exists('wp_get_direct_update_https_url') && !empty(wp_get_direct_update_https_url())) { $url = wp_get_direct_update_https_url(); } if ( rsssl_is_cpanel() ) { $cpanel = new rsssl_cPanel(); $host = $cpanel->host; $url = $cpanel->ssl_installation_url; } else if ( rsssl_is_plesk() ) { $plesk = new rsssl_plesk(); $host = $plesk->host; $url = $plesk->ssl_installation_url; } else if ( rsssl_is_directadmin() ) { $directadmin = new rsssl_directadmin(); $host = $directadmin->host; $url = $directadmin->ssl_installation_url; } $hosting_company = rsssl_get_other_host(); if ( $hosting_company && $hosting_company !== 'none' ) { $hosting_specific_link = RSSSL_LE()->hosts->hosts[$hosting_company]['ssl_installation_link']; if ($hosting_specific_link) { $site = trailingslashit( str_replace(array('https://','http://', 'www.'),'', site_url()) ); if ( strpos($hosting_specific_link,'{host}') !==false && empty($host) ) { $url = ''; } else { $url = str_replace(array('{host}', '{domain}'), array($host, $site), $hosting_specific_link); } } } $action = 'continue'; $status = 'warning'; $message = rsssl_get_manual_instructions_text($url); $output = $url; return new RSSSL_RESPONSE($status, $action, $message, $output ); } /** * Test for localhost usage * @return RSSSL_RESPONSE */ public function certificate_status(){ delete_transient('rsssl_certinfo'); if ( RSSSL()->certificate->is_valid() ) { //we have now renewed the cert info transient $certinfo = get_transient('rsssl_certinfo'); $end_date = isset($certinfo['validTo_time_t']) ? $certinfo['validTo_time_t'] : false; $grace_period = strtotime('+'.rsssl_le_manual_generation_renewal_check.' days'); $expiry_date = !empty($end_date) ? date( get_option('date_format'), $end_date ) : __("(unknown)","really-simple-ssl"); //if the certificate expires within the grace period, allow renewal //e.g. expiry date 30 may, now = 10 may => grace period 9 june. if ( $grace_period > $end_date ) { $action = 'continue'; $status = 'success'; $message = sprintf(__("Your certificate will expire on %s.", "really-simple-ssl" ).' '.__("Continue to renew.", "really-simple-ssl" ), $expiry_date); ; } else { $action = 'continue'; $status = 'error'; $message = __("You already have a valid SSL certificate.", "really-simple-ssl" ); } } else { $action = 'continue'; $status = 'success'; $message = __("SSL certificate should be generated and installed.", "really-simple-ssl" ); } return new RSSSL_RESPONSE($status, $action, $message); } /** * Check if the certifiate is to expire in max rsssl_le_manual_generation_renewal_check days. * Used in notices list * @return bool */ public function certificate_about_to_expire(){ $about_to_expire = RSSSL()->certificate->about_to_expire(); if ( !$about_to_expire ) { //if the certificate is valid, stop any attempt to renew. delete_option('rsssl_le_start_renewal'); delete_option('rsssl_le_start_installation'); return false; } else { return true; } } /** * Test for server software * @return RSSSL_RESPONSE */ public function server_software(){ $action = 'continue'; $status = 'warning'; $message = __("The Hosting Panel software was not recognized. Depending on your hosting provider, the generated certificate may need to be installed manually.", "really-simple-ssl" ); if ( rsssl_is_cpanel() ) { $status = 'success'; $message = __("CPanel recognized. Possibly the certificate can be installed automatically.", "really-simple-ssl" ); } else if ( rsssl_is_plesk() ) { $status = 'success'; $message = __("Plesk recognized. Possibly the certificate can be installed automatically.", "really-simple-ssl" ); } else if ( rsssl_is_directadmin() ) { $status = 'success'; $message = __("DirectAdmin recognized. Possibly the certificate can be installed automatically.", "really-simple-ssl" ); } return new RSSSL_RESPONSE($status, $action, $message); } /** * Check if CURL is available * * @return RSSSL_RESPONSE */ public function curl_exists(){ if(function_exists('curl_init') === false){ $action = 'stop'; $status = 'error'; $message = __("The PHP function CURL is not available on your server, which is required. Please contact your hosting provider.", "really-simple-ssl" ); } else { $action = 'continue'; $status = 'success'; $message = __("The PHP function CURL has successfully been detected.", "really-simple-ssl" ); } return new RSSSL_RESPONSE($status, $action, $message); } /** * Get or create an account * @return RSSSL_RESPONSE */ public function get_account(){ $account_email = $this->account_email(); if ( is_email($account_email) ) { try { $this->account = ! Account::exists( $account_email ) ? Account::create( $account_email ) : Account::get( $account_email ); $status = 'success'; $action = 'continue'; $message = __("Successfully retrieved account", "really-simple-ssl"); } catch(Exception $e) { $response = $this->get_error($e); $status = 'error'; $action = 'retry'; if ( strpos($response, 'invalid contact domain')) { $action = 'stop'; $response = __("The used domain for your email address is not allowed.","really-simple-ssl").' '. sprintf(__("Please change your email address %shere%s and try again.", "really-simple-ssl"),'',''); } $message = $response; } } else { $status = 'error'; $action = 'stop'; $message = __("The email address was not set. Please set the email address",'really-simple-ssl'); } return new RSSSL_RESPONSE($status, $action, $message); } /** * @return RSSSL_RESPONSE */ public function get_dns_token(){ if ( rsssl_is_ready_for('dns-verification') ) { $use_dns = rsssl_dns_verification_required(); $challenge_type = $use_dns ? Order::CHALLENGE_TYPE_DNS : Order::CHALLENGE_TYPE_HTTP; if ( $use_dns ) { try { $this->get_account(); $dnsWriter = new class extends AbstractDNSWriter { public function write( Order $order, string $identifier, string $digest ): bool { $tokens = get_option( 'rsssl_le_dns_tokens', [] ); $tokens[ $identifier ] = $digest; update_option( "rsssl_le_dns_tokens", $tokens, false ); rsssl_progress_add( 'dns-verification' ); //return false, as we will continue later on. return false; } }; DNS::setWriter( $dnsWriter ); $response = $this->get_order(); $order = $response->output; $response->output = false; if ( $order ) { try { if ( $order->authorize( $challenge_type ) ) { $response = new RSSSL_RESPONSE( 'success', 'continue', __( "Token successfully retrieved.", 'really-simple-ssl' ), $this->get_dns_tokens() ); } else { if ( get_option( 'rsssl_le_dns_tokens' ) ) { $response = new RSSSL_RESPONSE( 'success', 'continue', __( "Token successfully retrieved.", 'really-simple-ssl' ), $this->get_dns_tokens() ); } else { $response = new RSSSL_RESPONSE( 'error', 'retry', __( "Token not received yet.", 'really-simple-ssl' ) ); } } } catch ( Exception $e ) { $error = $this->get_error( $e ); if ( strpos( $error, 'No challenge found with given type')!==false ) { //Maybe it was first set to HTTP challenge. retry after clearing the order. $order->clear(); } else if (strpos($error, 'Order has status "invalid"')!==false) { $order->clear(); $error = __("The order is invalid, possibly due to too many failed authorization attempts. Please start at the previous step.","really-simple-ssl"); } else //fixing a plesk bug if ( strpos($error, 'No order for ID ') !== FALSE){ $error .= ' '.__("Order ID mismatch, regenerate order.","really-simple-ssl"); $order->clear(); rsssl_progress_remove('dns-verification'); $error .= ' '.__("If you entered your DNS records before, they need to be changed.","really-simple-ssl"); } $response = new RSSSL_RESPONSE( 'error', 'retry', $error ); } } } catch ( Exception $e ) { rsssl_progress_remove( 'dns-verification' ); $response = $this->get_error( $e ); $response = new RSSSL_RESPONSE( 'error', 'retry', $response ); } } else { $response = new RSSSL_RESPONSE( 'error', 'stop', __( "Configured for HTTP challenge", 'really-simple-ssl' ) ); } } else { rsssl_progress_remove( 'dns-verification' ); $response = new RSSSL_RESPONSE( 'error', 'stop', $this->not_completed_steps_message('dns-verification') ); } return $response; } /** * @return array */ public function get_dns_tokens(){ $tokens = get_option( 'rsssl_le_dns_tokens', [] ); $output = []; foreach ($tokens as $domain => $token ) { $output[] = [ 'domain' => $domain, 'token' => $token, ]; } return $output; } /** * Check DNS txt records. * @return RSSSL_RESPONSE */ public function verify_dns(){ if ( rsssl_is_ready_for('generation') ) { update_option('rsssl_le_dns_records_verified', false, false ); $tokens = get_option('rsssl_le_dns_tokens'); if ( !$tokens) { $status = 'error'; $action = 'stop'; $message = __('Token not generated. Please complete the previous step.',"really-simple-ssl"); return new RSSSL_RESPONSE($status, $action, $message); } foreach ($tokens as $identifier => $token){ if (strpos($identifier, '*') !== false) continue; set_error_handler(array($this, 'custom_error_handling')); $response = dns_get_record( "_acme-challenge.$identifier", DNS_TXT ); restore_error_handler(); if ( isset($response[0]['txt']) ){ if ($response[0]['txt'] === $token) { $response = new RSSSL_RESPONSE( 'success', 'continue', sprintf(__('Successfully verified DNS records', "really-simple-ssl"), "_acme-challenge.$identifier") ); update_option('rsssl_le_dns_records_verified', true, false ); } else { $action = get_option('rsssl_skip_dns_check') ? 'continue' : 'stop'; $response = new RSSSL_RESPONSE( 'error', $action, sprintf(__('The DNS response for %s was %s, while it should be %s.', "really-simple-ssl"), "_acme-challenge.$identifier", $response[0]['txt'], $token ) ); break; } } else { $action = get_option('rsssl_skip_dns_check') ? 'continue' : 'stop'; $response = new RSSSL_RESPONSE( 'warning', $action, sprintf(__('Could not verify TXT record for domain %s', "really-simple-ssl"), "_acme-challenge.$identifier") ); } } } else { $response = new RSSSL_RESPONSE( 'error', 'stop', $this->not_completed_steps_message('dns-verification') ); } return $response; } /** * Clear an existing order */ public function clear_order(){ $this->get_account(); if ( $this->account ) { $response = $this->get_order(); $order = $response->output; if ( $order ) { $order->clear(); } } } /** * Authorize the order * @return RSSSL_RESPONSE */ public function create_bundle_or_renew(){ $bundle_completed = false; $use_dns = rsssl_dns_verification_required(); $attempt_count = (int) get_transient( 'rsssl_le_generate_attempt_count' ); if ( $attempt_count>5 ){ delete_option("rsssl_le_start_renewal"); $message = __("The certificate generation was rate limited for 10 minutes because the authorization failed.",'really-simple-ssl'); if ($use_dns){ $message .= ' '.__("Please double check your DNS txt record.",'really-simple-ssl'); } return new RSSSL_RESPONSE( 'error', 'stop', $message ); } if ( !get_option('rsssl_skip_dns_check') ) { if ( $use_dns && ! get_option( 'rsssl_le_dns_records_verified' ) ) { return new RSSSL_RESPONSE( 'error', 'stop', __( "DNS records were not verified yet. Please complete the previous step.", 'really-simple-ssl' ) ); } } if (rsssl_is_ready_for('generation') ) { $this->get_account(); if ( $use_dns ) { $dnsWriter = new class extends AbstractDNSWriter { public function write( Order $order, string $identifier, string $digest): bool { $status = false; if ( get_option('rsssl_le_dns_tokens') ) { $status = true; } return $status; } }; DNS::setWriter($dnsWriter); } $response = $this->get_order(); $order = $response->output; $response->output = false; if ( $order ) { if ( $order->isCertificateBundleAvailable() ) { try { $order->enableAutoRenewal(); $bundle_completed = $this->update_certificate_paths($order); if ( $bundle_completed ) { $response = new RSSSL_RESPONSE( 'success', 'continue', __("Certificate already generated. It was renewed if required.",'really-simple-ssl') ); } else { $response = new RSSSL_RESPONSE( 'error', 'retry', __("Files not created yet...",'really-simple-ssl') ); } } catch ( Exception $e ) { $response = new RSSSL_RESPONSE( 'error', 'retry', $this->get_error( $e ) ); $bundle_completed = false; } } else { $finalized = false; $challenge_type = $use_dns ? Order::CHALLENGE_TYPE_DNS : Order::CHALLENGE_TYPE_HTTP; try { if ( $order->authorize( $challenge_type ) ) { $order->finalize(); $this->reset_attempt(); $finalized = true; } else { $this->count_attempt(); $response = new RSSSL_RESPONSE( 'error', 'retry', __('Authorization not completed yet.',"really-simple-ssl") ); $bundle_completed = false; } } catch ( Exception $e ) { $this->count_attempt(); $message = $this->get_error( $e ); $response = new RSSSL_RESPONSE( 'error', 'stop', $message ); if (strpos($message, 'Order has status "invalid"')!==false) { $order->clear(); $response->message = __("The order is invalid, possibly due to too many failed authorization attempts. Please start at the previous step.","really-simple-ssl"); if ($use_dns) { rsssl_progress_remove('dns-verification'); $response->message .= ' '.__("As your order will be regenerated, you'll need to update your DNS text records.","really-simple-ssl"); } } else { //if OCSP is not disabled yet, and the order status is not invalid, we disable ocsp, and try again. if ( !rsssl_get_option( 'disable_ocsp' ) ) { rsssl_update_option( 'disable_ocsp', true ); $response->action = 'retry'; $response->status = 'warning'; $response->message = __("OCSP not supported, the certificate will be generated without OCSP.","really-simple-ssl"); } } } if ( $finalized ) { try { if ( $order->isCertificateBundleAvailable() ) { $bundle_completed = $this->update_certificate_paths($order); if ( $bundle_completed ) { $response = new RSSSL_RESPONSE( 'success', 'continue', __("Successfully generated certificate.",'really-simple-ssl') ); } else { $response = new RSSSL_RESPONSE( 'error', 'retry', __("Files not created yet...",'really-simple-ssl') ); } } else { $response = new RSSSL_RESPONSE( 'error', 'retry', __("Bundle not available yet...",'really-simple-ssl') ); } } catch ( Exception $e ) { $response = new RSSSL_RESPONSE( 'error', 'retry', $this->get_error( $e ) ); } } } } } else { $response = new RSSSL_RESPONSE( 'error', 'stop', $this->not_completed_steps_message('generation') ); } if ( $bundle_completed ){ rsssl_progress_add('generation'); update_option('rsssl_le_certificate_generated_by_rsssl', true, false); delete_option("rsssl_le_start_renewal"); } else { rsssl_progress_remove('generation'); } return $response; } /** * For each file, check if the path exists, update the path options, and return success or false accordingly * @param $order * * @return bool */ private function update_certificate_paths($order){ $bundle = $order->getCertificateBundle(); $pathToPrivateKey = $bundle->path . $bundle->private; $pathToCertificate = $bundle->path . $bundle->certificate; $pathToIntermediate = $bundle->path . $bundle->intermediate; $success_private = $success_cert = $success_intermediate = false; if ( file_exists( $pathToPrivateKey ) ) { $success_private = true; update_option( 'rsssl_private_key_path', $pathToPrivateKey, false ); } if ( file_exists( $pathToCertificate ) ) { $success_cert = true; update_option( 'rsssl_certificate_path', $pathToCertificate, false ); } if ( file_exists( $pathToIntermediate ) ) { $success_intermediate = true; update_option( 'rsssl_intermediate_path', $pathToIntermediate, false ); } $bundle_completed = true; if ( ! $success_cert || ! $success_private || ! $success_intermediate ) { $bundle_completed = false; } return $bundle_completed; } /** * Get the order object * * @return RSSSL_RESPONSE */ public function get_order(){ #if we don't have an account, try to retrieve it if ( !$this->account ) { $this->get_account(); } #still no account, then exit if ( !$this->account ) { return new RSSSL_RESPONSE( 'error', 'retry', __( "Failed retrieving account.", 'really-simple-ssl' ) ); } if ( ! Order::exists( $this->account, $this->subjects ) ) { try { $response = new RSSSL_RESPONSE( 'success', 'continue', __("Order successfully created.",'really-simple-ssl') ); $response->output = Order::create( $this->account, $this->subjects ); } catch(Exception $e) { $response = new RSSSL_RESPONSE( 'error', 'retry', $this->get_error($e) ); } } else { //order exists already $response = new RSSSL_RESPONSE( 'success', 'continue', __( "Order successfully retrieved.", 'really-simple-ssl' ) ); $response->output = Order::get( $this->account, $this->subjects ); } return $response; } /** * Keep track of certain request counts, to prevent rate limiting by LE */ public function count_attempt(){ $attempt_count = intval(get_transient('rsssl_le_generate_attempt_count')); $attempt_count++; set_transient('rsssl_le_generate_attempt_count', $attempt_count, 10 * MINUTE_IN_SECONDS); } public function reset_attempt(){ delete_transient('rsssl_le_generate_attempt_count'); } /** * Check if SSL generation renewal can be handled automatically * @return bool */ public function ssl_generation_can_auto_renew(){ if ( rsssl_get_option('verification_type')==='dns' && !get_option('rsssl_le_dns_configured_by_rsssl') ) { return false; } else { return true; } } /** * Check if it's possible to autorenew * @return bool */ public function certificate_automatic_install_possible(){ $install_method = get_option('rsssl_le_certificate_installed_by_rsssl'); //if it was never auto installed, we probably can't autorenew. if ($install_method === false ) { return false; } else { return true; } } /** * Check if the manual renewal should start. * * @return bool */ public function should_start_manual_installation_renewal(){ if ( !$this->should_start_manual_ssl_generation() && get_option( "rsssl_le_start_installation" ) ) { return true; } return false; } public function should_start_manual_ssl_generation(){ return get_option( "rsssl_le_start_renewal" ); } /** * Only used if * - SSL generated by RSSSL * - certificate is about to expire * * @return string */ public function certificate_renewal_status_notice(){ if ( !RSSSL_LE()->letsencrypt_handler->ssl_generation_can_auto_renew()){ return 'manual-generation'; } if ( $this->certificate_install_required() && $this->certificate_automatic_install_possible() && $this->installation_failed() ){ return 'automatic-installation-failed'; } if ( $this->certificate_install_required() && !$this->certificate_automatic_install_possible() ) { return 'manual-installation'; } return 'automatic'; } /** * Check if the certificate has to be installed on each renewal * defaults to true. * */ public function certificate_install_required(){ $install_method = get_option('rsssl_le_certificate_installed_by_rsssl'); $hosting_company = rsssl_get_other_host(); if ( in_array($install_method, RSSSL_LE()->hosts->no_installation_renewal_needed) || in_array($hosting_company, RSSSL_LE()->hosts->no_installation_renewal_needed)) { return false; } return true; } /** * Check if the certificate needs renewal. * * @return bool */ public function cron_certificate_needs_renewal(){ $cert_file = get_option('rsssl_certificate_path'); if ( empty($cert_file) ) { return false; } $certificate = file_get_contents($cert_file); $certificateInfo = openssl_x509_parse($certificate); $valid_to = $certificateInfo['validTo_time_t']; $in_expiry_days = strtotime( "+".rsssl_le_cron_generation_renewal_check." days" ); if ( $in_expiry_days > $valid_to ) { return true; } else { return false; } } /** * Get account email * @return string */ public function account_email(){ //don't use the default value: we want users to explicitly enter a value return rsssl_get_option('email_address' ); } /** * Get terms accepted * @return RSSSL_RESPONSE */ public function terms_accepted(){ //don't use the default value: we want users to explicitly enter a value $accepted = rsssl_get_option('accept_le_terms'); if ( $accepted ) { $status = 'success'; $action = 'continue'; $message = __("Terms & Conditions are accepted.",'really-simple-ssl'); } else { $status = 'error'; $action = 'stop'; $message = __("The Terms & Conditions were not accepted. Please accept in the general settings.",'really-simple-ssl'); } return new RSSSL_RESPONSE($status, $action, $message); } /** * Change the email address in an account * @param $new_email */ public function update_account( $new_email ){ if (!$this->account) return; try { $this->account->update($new_email); } catch (Exception $e) { //error_log(print_r($e, true)); } } /** * Get list of common names on the certificate * @return array */ public function get_subjects(){ $subjects = array(); $domain = rsssl_get_domain(); $root = str_replace( 'www.', '', $domain );; $subjects[] = $domain; //don't offer aliasses for subdomains if ( !rsssl_is_subdomain() ) { if (rsssl_get_option( 'include_alias' )) { //main is www. if ( strpos( $domain, 'www.' ) !== false ) { $alias_domain = $root; } else { $alias_domain = 'www.'.$root; } $subjects[] = $alias_domain; } } if ( rsssl_wildcard_certificate_required() ) { $domain = rsssl_get_domain(); //in theory, the main site of a subdomain setup can be a www. domain. But we have to request a certificate without the www. $domain = str_replace( 'www.', '', $domain ); $subjects = array( $domain, '*.' . $domain, ); } return apply_filters('rsssl_le_subjects', $subjects); } /** * Check if we're ready for the next step. * @param string $item * * @return array | bool */ public function is_ready_for($item) { if ( !rsssl_do_local_lets_encrypt_generation() ) { rsssl_progress_add('directories'); rsssl_progress_add('generation'); rsssl_progress_add('dns-verification'); } if ( !rsssl_dns_verification_required() ) { rsssl_progress_add('dns-verification'); } if (empty(rsssl_get_not_completed_steps($item))){ return true; } else{ return false; } } /** * Catch errors * * @since 3.0 * * @access public * @param $errno * @param $errstr * @param $errfile * @param $errline * @param array $errcontext * * @return bool */ public function custom_error_handling( $errno, $errstr, $errfile, $errline, $errcontext = array() ) { return true; } public function not_completed_steps_message($step){ $not_completed_steps = rsssl_get_not_completed_steps($step); $nice_names = array(); $steps = rsssl_le_steps(); foreach ($not_completed_steps as $not_completed_step ) { $index = array_search($not_completed_step, array_column( $steps, 'id')); $nice_names[] = $steps[$index]['title']; } return sprintf(__('Please complete the following step(s) first: %s', "really-simple-ssl"), implode(", ", $nice_names) ); } /** * Test for writing permissions * @return RSSSL_RESPONSE */ public function check_writing_permissions(){ $directories_without_permissions = $this->directories_without_writing_permissions(); $has_missing_permissions = count($directories_without_permissions)>0; if ( $has_missing_permissions ) { rsssl_progress_remove('directories'); $action = 'stop'; $status = 'error'; $message = __("The following directories do not have the necessary writing permissions.", "really-simple-ssl" )." ".__("Set permissions to 644 to enable SSL generation.", "really-simple-ssl" ); foreach ($directories_without_permissions as $directories_without_permission) { $message .= "
- ".$directories_without_permission; } } else { $action = 'continue'; $status = 'success'; $message = __("The required directories have the necessary writing permissions.", "really-simple-ssl" ); } return new RSSSL_RESPONSE($status, $action, $message); } /** * Verify if a host has been selected, and if so, if this host supports LE, or if it's already active */ public function check_host(){ $action = 'continue'; $status = 'success'; $message = __("We have not detected any known hosting limitations.", "really-simple-ssl" ); $host = rsssl_get_other_host(); if ( $host === 'none' ) $host = false; if ( isset(RSSSL_LE()->hosts->hosts[$host]) ){ if ( RSSSL_LE()->hosts->hosts[$host]['free_ssl_available'] === 'paid_only' ) { $action = 'stop'; $status = 'error'; $message = sprintf(__("According to our information, your hosting provider does not allow any kind of SSL installation, other then their own paid certificate. For an alternative hosting provider with SSL, see this %sarticle%s.","really-simple-ssl"), '', ''); } if ( RSSSL_LE()->hosts->hosts[$host]['free_ssl_available'] === 'activated_by_default' ) { $url = RSSSL_LE()->hosts->hosts[$host]['ssl_installation_link']; $action = 'continue'; $status = 'error'; $message = sprintf(__("According to our information, your hosting provider supplies your account with an SSL certificate by default. Please contact your %shosting support%s if this is not the case.","really-simple-ssl"), '', '').' '. __("After completing the installation, you can let Really Simple SSL automatically configure your site for SSL by using the 'Activate SSL' button.","really-simple-ssl"); } } return new RSSSL_RESPONSE($status, $action, $message); } /** * Test for directory * @return RSSSL_RESPONSE */ public function check_challenge_directory(){ if ( !$this->challenge_directory() ) { rsssl_progress_remove('directories'); $action = 'stop'; $status = 'error'; $message = __("The challenge directory is not created yet.", "really-simple-ssl" ); } else { $action = 'continue'; $status = 'success'; $message = __("The challenge directory was successfully created.", "really-simple-ssl" ); } return new RSSSL_RESPONSE($status, $action, $message); } /** * Test for directory * @return RSSSL_RESPONSE */ public function check_key_directory(){ $action = 'stop'; $status = 'error'; $message = __("The key directory is not created yet.", "really-simple-ssl" ); //this option is set in the key_dir function, so we need to check it now. if ( !get_option('rsssl_create_folders_in_root')) { $action = 'retry'; $message = __("Trying to create directory in root of website.", "really-simple-ssl" ); } if ( !$this->key_directory() ) { rsssl_progress_remove('directories'); } else { $action = 'continue'; $status = 'success'; $message = __("The key directory was successfully created.", "really-simple-ssl" ); } return new RSSSL_RESPONSE($status, $action, $message); } /** * Test for directory * @return RSSSL_RESPONSE */ public function check_certs_directory(){ if ( !$this->certs_directory() ) { rsssl_progress_remove('directories'); $action = 'stop'; $status = 'error'; $message = __("The certs directory is not created yet.", "really-simple-ssl" ); } else { $action = 'continue'; $status = 'success'; $message = __("The certs directory was successfully created.", "really-simple-ssl" ); } return new RSSSL_RESPONSE($status, $action, $message); } /** * Check if our created directories have the necessary writing permissions */ public function directories_without_writing_permissions( ){ $required_folders = array( $this->key_directory, $this->certs_directory, ); if ( !rsssl_dns_verification_required() ) { $required_folders[] = $this->challenge_directory; } $no_writing_permissions = array(); foreach ($required_folders as $required_folder){ if (!$this->directory_has_writing_permissions( $required_folder )) { $no_writing_permissions[] = $required_folder; } } return $no_writing_permissions; } /** * Check if a directory has writing permissions * @param string $directory * * @return bool */ public function directory_has_writing_permissions( $directory ){ set_error_handler(array($this, 'custom_error_handling')); $test_file = fopen( $directory . "/really-simple-ssl-permissions-check.txt", "w" ); if ( !$test_file ) { return false; } fwrite($test_file, 'file to test writing permissions for Really Simple SSL'); fclose( $test_file ); restore_error_handler(); if (!file_exists($directory . "/really-simple-ssl-permissions-check.txt")) { return false; } else { return true; } } /** * Check if the challenage directory is reachable over the http protocol * @return RSSSL_RESPONSE */ public function challenge_directory_reachable(){ $file_content = false; $status_code = __('no response','really-simple-ssl'); //make sure we request over http, otherwise the request might fail if the url is already https. $url = str_replace('https://', 'http://', site_url('.well-known/acme-challenge/really-simple-ssl-permissions-check.txt')); $error_message = sprintf(__( "Could not reach challenge directory over %s.", "really-simple-ssl"), ''.$url.''); $test_string = 'Really Simple SSL'; $folders = $this->directories_without_writing_permissions(); if ( !$this->challenge_directory() || count($folders) !==0 ) { $status = 'error'; $action = 'stop'; $message = __( "Challenge directory not writable.", "really-simple-ssl"); return new RSSSL_RESPONSE($status, $action, $message); } $response = wp_remote_get( $url ); if ( is_array( $response ) ) { $status_code = wp_remote_retrieve_response_code( $response ); $file_content = wp_remote_retrieve_body( $response ); } if ( $status_code !== 200 ) { if (get_option('rsssl_skip_challenge_directory_request')) { $status = 'warning'; $action = 'continue'; $message = $error_message.' '.sprintf( __( "Error code %s.", "really-simple-ssl" ), $status_code ); } else { $status = 'error'; $action = 'stop'; $message = $error_message.' '.sprintf( __( "Error code %s.", "really-simple-ssl" ), $status_code ); rsssl_progress_remove('directories'); } } else { if ( ! is_wp_error( $response ) && ( strpos( $file_content, $test_string ) !== false ) ) { $status = 'success'; $action = 'continue'; $message = __( "Successfully verified alias domain.", "really-simple-ssl" ); set_transient('rsssl_alias_domain_available', 'available', 30 * MINUTE_IN_SECONDS ); } else { $status = 'error'; $action = 'stop'; $message = $error_message; rsssl_progress_remove('directories'); } } return new RSSSL_RESPONSE($status, $action, $message); } /** * Check if exists, create .well-known/acme-challenge directory if not existing * @return bool|string */ public function challenge_directory() { $root_directory = trailingslashit(ABSPATH); if ( ! file_exists( $root_directory . '.well-known' ) ) { mkdir( $root_directory . '.well-known', 0755 ); } if ( ! file_exists( $root_directory . '.well-known/acme-challenge' ) ) { mkdir( $root_directory . '.well-known/acme-challenge', 0755 ); } if ( file_exists( $root_directory . '.well-known/acme-challenge' ) ){ return $root_directory . '.well-known/acme-challenge'; } else { return false; } } /** * Check if exists, create ssl/certs directory above the wp root if not existing * @return bool|string */ public function certs_directory(){ $directory = $this->get_directory_path(); if ( ! file_exists( $directory . 'ssl' ) ) { mkdir( $directory . 'ssl', 0755 ); } if ( ! file_exists( $directory . 'ssl/certs' ) ) { mkdir( $directory . 'ssl/certs', 0755 ); } if ( file_exists( $directory . 'ssl/certs' ) ){ return $directory . 'ssl/certs'; } else { return false; } } /** * Get path to location where to create the directories. * @return string */ public function get_directory_path(){ $root_directory = trailingslashit(ABSPATH); if ( get_option('rsssl_create_folders_in_root') ) { if ( !get_option('rsssl_ssl_dirname') ) { $token = str_shuffle ( time() ); update_option('rsssl_ssl_dirname', $token, false ); } if ( ! file_exists( $root_directory . get_option('rsssl_ssl_dirname') ) ) { mkdir( $root_directory . get_option('rsssl_ssl_dirname'), 0755 ); } return $root_directory . trailingslashit( get_option('rsssl_ssl_dirname') ); } else { return trailingslashit(dirname($root_directory)); } } /** * Check if exists, create ssl/keys directory above the wp root if not existing * @return bool|string */ public function key_directory(){ $directory = $this->get_directory_path(); try { $openbasedir_restriction = $this->openbasedir_restriction($directory); if ( !$openbasedir_restriction ) { if ( ! file_exists( $directory . 'ssl' ) && is_writable( $directory ) ) { mkdir( $directory . 'ssl', 0755 ); } if ( ! file_exists( $directory . 'ssl/keys' ) && is_writable( $directory . 'ssl' ) ) { mkdir( $directory . 'ssl/keys', 0755 ); } } if ( !$openbasedir_restriction && file_exists( $directory . 'ssl/keys' ) ) { return $directory . 'ssl/keys'; } else { //if creating the folder has failed, we're on apache, and can write to these folders, we create a root directory. $challenge_dir = $this->challenge_directory; $has_writing_permissions = $this->directory_has_writing_permissions( $challenge_dir ); //we're guessing that if the challenge dir has writing permissions, the new dir will also have it. if ( RSSSL()->server->uses_htaccess() && $has_writing_permissions ) { update_option( 'rsssl_create_folders_in_root', true, false ); } return false; } } catch ( Exception $e ) { return false; } } /** * Check for openbasedir restrictions * * @param string $path * * @return bool */ private function openbasedir_restriction( string $path): bool { // Default error handler is required set_error_handler(null); // Clean last error info. error_clear_last(); // Testing... @file_exists($path); // Restore previous error handler restore_error_handler(); // Return `true` if error has occurred return ($error = error_get_last()) && $error['message'] !== '__clean_error_info'; } /** * Clear the keys directory, used in reset function * @since 5.0 */ public function clear_keys_directory() { if (!rsssl_user_can_manage()) { return; } $dir = $this->key_directory(); $this->delete_files_directories_recursively( $dir ); } /** * @param $dir * Delete files and directories recursively. Used to clear the order from keys directory * @since 5.0.11 */ private function delete_files_directories_recursively( $dir ) { if ( strpos( $dir, 'ssl/keys' ) !== false ) { foreach ( glob( $dir . '/*' ) as $file ) { if ( is_dir( $file ) ) { $this->delete_files_directories_recursively( $file ); } else { unlink( $file ); } } rmdir( $dir ); } } public function maybe_create_htaccess_directories(){ if (!rsssl_user_can_manage()) { return; } if ( !RSSSL()->server->uses_htaccess() ) { return; } if ( !get_option('rsssl_create_folders_in_root') ) { return; } if ( !empty($this->get_directory_path()) ) { $this->write_htaccess_dir_file( $this->get_directory_path().'ssl/.htaccess' ,'ssl'); } if ( !empty($this->key_directory()) ) { $this->write_htaccess_dir_file( trailingslashit($this->key_directory()).'.htaccess' ,'key'); } if ( !empty($this->certs_directory()) ) { $this->write_htaccess_dir_file( trailingslashit($this->certs_directory()).'.htaccess' ,'certs'); } } public function write_htaccess_dir_file($path, $type){ $htaccess = '' . "\n" . ' Require all denied' . "\n" . '' . "\n" . '' . "\n" . ' Deny from all' . "\n" . ''; insert_with_markers($path, 'Really Simple SSL LETS ENCRYPT', $htaccess); $htaccess = file_get_contents( $path ); if ( strpos($htaccess, 'deny from all') !== FALSE ) { update_option('rsssl_htaccess_file_set_'.$type, true, false); return; } } /** * Check if it's a subdomain multisite * @return RSSSL_RESPONSE */ public function is_subdomain_setup(){ if ( !is_multisite() ) { $is_subdomain = false; } else { if ( defined('SUBDOMAIN_INSTALL') && SUBDOMAIN_INSTALL ) { $is_subdomain = true; } else { $is_subdomain = false; } } if ($is_subdomain) { $status = 'error'; $action = 'stop'; $message = sprintf(__("This is a multisite configuration with subdomains. You should generate a wildcard certificate on the root domain.",'really-simple-ssl'), '',''); rsssl_progress_remove('system-status'); } else { $status = 'success'; $action = 'continue'; $message = __("No subdomain setup detected.","really-simple-ssl"); } return new RSSSL_RESPONSE($status, $action, $message); } /** * Check if we're about to create a wilcard certificate * @return bool */ public function is_wildcard(){ $subjects = $this->get_subjects(); $is_wildcard = false; foreach ($subjects as $domain ) { if ( strpos($domain, '*') !== false ) { $is_wildcard = true; } } return $is_wildcard; } /** * Check if the alias domain is available * * @return RSSSL_RESPONSE */ public function alias_domain_available(){ if ( rsssl_is_subdomain() ) { return new RSSSL_RESPONSE('success', 'continue',__("Alias domain check is not relevant for a subdomain","really-simple-ssl")); } //write a test file to the uploads directory $uploads = wp_upload_dir(); $upload_dir = trailingslashit($uploads['basedir']); $upload_url = trailingslashit($uploads['baseurl']); $file_content = false; $status_code = __('no response','really-simple-ssl'); $domain = rsssl_get_domain(); if ( strpos( $domain, 'www.' ) !== false ) { $is_www = true; $alias_domain = str_replace( 'www.', '', $domain ); } else { $is_www = false; $alias_domain = 'www.'.$domain; } if ( $is_www ) { $message = __("Please check if the non www version of your site also points to this website.", "really-simple-ssl" ); } else { $message = __("Please check if the www version of your site also points to this website.", "really-simple-ssl" ); } $error_message = __( "Could not verify alias domain.", "really-simple-ssl") .' '. $message.' '. __( "If this is not the case, don't add this alias to your certificate.", "really-simple-ssl"); //get cached status first. $cached_status = get_transient('rsssl_alias_domain_available'); if ( $cached_status ) { if ( $cached_status === 'available' ) { $status = 'success'; $action = 'continue'; $message = __( "Successfully verified alias domain.", "really-simple-ssl" ); } else { $status = 'warning'; $action = 'continue'; $message = $error_message; } return new RSSSL_RESPONSE($status, $action, $message); } if ( ! file_exists( $upload_dir . 'rsssl' ) ) { mkdir( $upload_dir . 'rsssl', 0755 ); } $test_string = 'file to test alias domain existence'; $test_file = $upload_dir . 'rsssl/test.txt'; file_put_contents($test_file, $test_string ); $test_url = $upload_url . 'rsssl/test.txt'; if ( ! file_exists( $test_file ) ) { $status = 'error'; $action = 'stop'; $message = __("Could not create test folder and file.", "really-simple-ssl").' '. __("Please create a folder 'rsssl' in the uploads directory, with 644 permissions.", "really-simple-ssl"); } else { set_transient('rsssl_alias_domain_available', 'not-available', 30 * MINUTE_IN_SECONDS ); $alias_test_url = str_replace( $domain, $alias_domain, $test_url ); //always over http: $alias_test_url = str_replace('https://','http://', $alias_test_url); $response = wp_remote_get( $alias_test_url ); if ( is_array( $response ) ) { $status_code = wp_remote_retrieve_response_code( $response ); $file_content = wp_remote_retrieve_body( $response ); } if ( $status_code !== 200 ) { $status = 'warning'; $action = 'continue'; $message = $error_message; if (intval($status_code) != 0 ) { $message .= ' '.sprintf( __( "Error code %s", "really-simple-ssl" ), $status_code ); } } else { if ( ! is_wp_error( $response ) && ( strpos( $file_content, $test_string ) !== false ) ) { //make sure we only set this value once, during first setup. if ( !get_option('rsssl_initial_alias_domain_value_set') ) { rsssl_update_option('include_alias', true); update_option('rsssl_initial_alias_domain_value_set', true, false); } $status = 'success'; $action = 'continue'; $message = __( "Successfully verified alias domain.", "really-simple-ssl" ); set_transient('rsssl_alias_domain_available', 'available', 30 * MINUTE_IN_SECONDS ); } else { $status = 'warning'; $action = 'continue'; $message = $error_message; } } } return new RSSSL_RESPONSE($status, $action, $message); } /** * Get string error from error message. * @param mixed|LE_ACME2\Exception\InvalidResponse $e * * @return string */ private function get_error($e){ $is_raw_response = false; if (method_exists($e, 'getRawResponse') && isset($e->getRawResponse()->body['detail'])) { $is_raw_response = true; $error = $e->getRawResponse()->body['detail']; //check for subproblems if (isset($e->getRawResponse()->body['subproblems'])){ $error .= '
    '; foreach($e->getRawResponse()->body['subproblems'] as $index => $problem) { $error .= '
  • '. $this->cleanup_error_message($e->getRawResponse()->body['subproblems'][$index]['detail']).'
  • '; } $error .= '
'; } } else { $error = $e->getMessage(); } $max = strpos($error, 'CURL response'); if ($max===false) { $max = 200; } if (!$is_raw_response){ $error = substr( $error, 0, $max); } return $error; } /** * Generic SSL cert installation function * * @return RSSSL_RESPONSE */ public function cron_renew_installation() { $install_method = get_option('rsssl_le_certificate_installed_by_rsssl'); $data = explode(':', $install_method ); $server = isset($data[0]) ? $data[0] : false; $type = isset($data[1]) ? $data[1] : false; $attempt_count = (int) get_transient( 'rsssl_le_install_attempt_count' ); $attempt_count++; set_transient('rsssl_le_install_attempt_count', $attempt_count, DAY_IN_SECONDS); if ( $attempt_count>10 ){ delete_option("rsssl_le_start_installation"); $status = 'error'; $action = 'stop'; $message = __("The certificate installation was rate limited. Please try again later.",'really-simple-ssl'); return new RSSSL_RESPONSE($status, $action, $message); } if (rsssl_is_ready_for('installation')) { try { if ( $server === 'cpanel' ) { if ($type==='default') { $response = rsssl_install_cpanel_default(); } else if ( function_exists('rsssl_shell_installSSL') ) { $response = rsssl_shell_installSSL(); } else { //in case of auto ssl. $response = new RSSSL_RESPONSE('error', 'stop', ''); delete_option( "rsssl_le_start_installation" ); } if ( $response->status === 'success' ) { delete_option( "rsssl_le_start_installation" ); } return $response; } else if ( $server === 'plesk') { $response = rsssl_plesk_install(); if ( $response->status === 'success' ) { delete_option( "rsssl_le_start_installation" ); } return $response; } else { $status = 'error'; $action = 'stop'; $message = __("Not recognized server.", "really-simple-ssl"); } } catch (Exception $e) { $status = 'error'; $action = 'stop'; $message = __("Installation failed.", "really-simple-ssl"); } } else { $status = 'error'; $action = 'stop'; $message = __("The system is not ready for the installation yet. Please run the wizard again.", "really-simple-ssl"); } return new RSSSL_RESPONSE($status, $action, $message); } /** * Cleanup the default message a bit * * @param $msg * * @return string|string[] */ private function cleanup_error_message($msg){ return str_replace(array( 'Refer to sub-problems for more information.', 'Error creating new order ::', ), '', $msg); } /** * Decode a string * @param $string * * @return string */ public function decode($string){ if ( !wp_doing_cron() && !rsssl_user_can_manage() ) { return ''; } if ( strpos( $string , 'rsssl_') !== FALSE ) { $key = get_site_option( 'rsssl_key' ); $string = str_replace('rsssl_', '', $string); // To decrypt, split the encrypted data from our IV $ivlength = openssl_cipher_iv_length('aes-256-cbc'); $iv = substr(base64_decode($string), 0, $ivlength); $encrypted_data = substr(base64_decode($string), $ivlength); $decrypted = openssl_decrypt($encrypted_data, 'aes-256-cbc', $key, 0, $iv); return $decrypted; } //not encoded, return return $string; } } PK!j맄JJlets-encrypt/config/fields.phpnu[ "system-status", "title" => __( "System Status", 'really-simple-ssl' ), ], [ "id" => "domain", "title" => __( "General settings", 'really-simple-ssl' ), ], [ "id" => "directories", "title" => __( "Directories", 'really-simple-ssl' ), ], [ "id" => "dns-verification", "title" => __( "DNS Verification", 'really-simple-ssl' ), ], [ "id" => "generation", "title" => __( "Generation", 'really-simple-ssl' ), ], [ "id" => "installation", "title" => __( "Installation", 'really-simple-ssl' ), ], ]; return $steps; } /** * Let's Encrypt */ add_filter("rsssl_fields", "rsssl_le_add_fields"); function rsssl_le_add_fields($fields) { $fields = array_merge($fields, [ [ 'id' => 'system-status', 'menu_id' => 'le-system-status', 'group_id' => 'le-system-status', "intro" => __( "Detected status of your setup.", "really-simple-ssl" ), 'type' => 'letsencrypt', 'default' => false, 'actions' => [ [ 'description' => __( "Checking SSL certificate...", "really-simple-ssl" ), 'action' => 'certificate_status', 'attempts' => 1, 'status' => 'inactive', ], [ 'description' => __( "Checking if CURL is available...", "really-simple-ssl" ), 'action' => 'curl_exists', 'attempts' => 1, 'status' => 'inactive', ], [ 'description' => __( "Checking server software...", "really-simple-ssl" ), 'action' => 'server_software', 'attempts' => 1, 'status' => 'inactive', ], [ 'description' => __( "Checking alias domain...", "really-simple-ssl" ), 'action' => 'alias_domain_available', 'attempts' => 3, 'status' => 'inactive', ], [ 'description' => __( "Checking for website configuration...", "really-simple-ssl" ), 'action' => 'check_domain', 'attempts' => 1, 'status' => 'inactive', ], ], ], [ 'id' => 'verification_type', 'menu_id' => 'le-general', 'group_id' => 'le-general', 'type' => 'hidden', ], [ 'id' => 'email_address', 'menu_id' => 'le-general', 'group_id' => 'le-general', 'type' => 'email', 'label' => __( "Email address", 'really-simple-ssl' ), 'help' => [ 'label' => 'default', 'title' => __( "Email address", "really-simple-ssl" ), 'text' => __( "This email address is used to create a Let's Encrypt account. This is also where you will receive renewal notifications.", 'really-simple-ssl' ), ], 'default' => '', 'required' => true, ], [ 'id' => 'accept_le_terms', 'menu_id' => 'le-general', 'group_id' => 'le-general', 'type' => 'checkbox', 'default' => false, 'required' => true, 'label' => __( 'I agree to the Terms & Conditions from Let\'s Encrypt.','really-simple-ssl'), 'comment' => ''.__('Terms & Conditions.', "really-simple-ssl" ).'', ], [ 'id' => 'disable_ocsp', 'menu_id' => 'le-general', 'group_id' => 'le-general', 'required'=> false, 'type' => 'checkbox', 'default' => false, 'help' => [ 'label' => 'default', 'url' => 'https://really-simple-ssl.com/ocsp-stapling', 'title' => __( "Disable OCSP stapling", "really-simple-ssl" ), 'text' => __( "OCSP stapling is configured as enabled by default. You can disable this option if this is not supported by your hosting provider.", "really-simple-ssl" ), ], 'label' => __( "Disable OCSP Stapling", 'really-simple-ssl' ), ], [ 'id' => 'domain', 'menu_id' => 'le-general', 'group_id' => 'le-general', 'type' => 'text', 'default' => rsssl_get_domain(), 'label' => __( "Domain", 'really-simple-ssl' ), 'required' => false, 'disabled' => true, ], [ 'id' => 'include_alias', 'menu_id' => 'le-general', 'group_id' => 'le-general', 'type' => 'checkbox', 'default' => '', 'label' => __( "Include alias", 'really-simple-ssl' ), 'help' => [ 'label' => 'default', 'title' => __( "Include alias", "really-simple-ssl" ), 'text' => __( "This will include both the www. and non-www. version of your domain.", "really-simple-ssl" ) . ' ' . __( "You should have the www domain pointed to the same website as the non-www domain.", 'really-simple-ssl' ), ], 'server_conditions' => [ 'relation' => 'AND', [ 'rsssl_is_subdomain()' => false, 'rsssl_wildcard_certificate_required()' => false, ] ], ], [ 'id' => 'other_host_type', 'menu_id' => 'le-hosting', 'group_id' => 'le-hosting', 'type' => 'host', //options loaded in data store 'help' => [ 'label' => 'default', 'title' => __( "Hosting Provider", "really-simple-ssl" ), 'text' => __( "By selecting your hosting provider we can tell you if your hosting provider already supports free SSL, and/or where you can activate it.", "really-simple-ssl" ) . " " . sprintf( __( "If your hosting provider is not listed, and there's an SSL activation/installation link, please let us %sknow%s.", "really-simple-ssl" ), '', '' ), ], 'default' => false, 'label' => __( "Hosting provider", 'really-simple-ssl' ), 'required' => false, 'disabled' => false, ], [ 'id' => 'cpanel_host', 'menu_id' => 'le-hosting', 'group_id' => 'le-hosting', 'type' => 'text', 'default' => '', 'label' => __( "CPanel host", 'really-simple-ssl' ), 'help' => [ 'label' => 'default', 'title' => __( "CPanel host", "really-simple-ssl" ), 'text' => __( "The URL you use to access your cPanel dashboard. Ends on :2083.", 'really-simple-ssl' ), ], 'required' => false, 'disabled' => false, 'server_conditions' => [ 'relation' => 'AND', [ 'rsssl_is_cpanel()' => true, 'rsssl_activated_by_default()' => false, 'rsssl_activation_required()' => false, 'rsssl_paid_only()' => false, ] ], ], [ 'id' => 'cpanel_username', 'menu_id' => 'le-hosting', 'group_id' => 'le-hosting', 'type' => 'text', 'default' => '', 'label' => __( "CPanel username", 'really-simple-ssl' ), 'required' => false, 'disabled' => false, 'server_conditions' => [ 'relation' => 'AND', [ 'rsssl_cpanel_api_supported()' => true, 'rsssl_activated_by_default()' => false, 'rsssl_activation_required()' => false, 'rsssl_paid_only()' => false, ] ], ], [ 'id' => 'cpanel_password', 'menu_id' => 'le-hosting', 'group_id' => 'le-hosting', 'type' => 'password', 'default' => '', 'label' => __( "CPanel password", 'really-simple-ssl' ), 'required' => false, 'disabled' => false, 'server_conditions' => [ 'relation' => 'AND', [ 'rsssl_cpanel_api_supported()' => true, 'rsssl_activated_by_default()' => false, 'rsssl_activation_required()' => false, 'rsssl_paid_only()' => false, ] ], ], [ 'id' => 'directadmin_host', 'menu_id' => 'le-hosting', 'group_id' => 'le-hosting', 'type' => 'text', 'default' => '', 'label' => __( "DirectAdmin host", 'really-simple-ssl' ), 'help' => [ 'label' => 'default', 'title' => __( "Direct Admin URL", "really-simple-ssl" ), 'text' => __( "The URL you use to access your DirectAdmin dashboard. Ends on :2222.", 'really-simple-ssl' ), ], 'required' => false, 'disabled' => false, 'server_conditions' => [ 'relation' => 'AND', [ 'rsssl_is_directadmin()' => true, 'rsssl_activated_by_default()' => false, 'rsssl_activation_required()' => false, 'rsssl_paid_only()' => false, ] ], ], [ 'id' => 'directadmin_username', 'menu_id' => 'le-hosting', 'group_id' => 'le-hosting', 'type' => 'text', 'default' => '', 'label' => __( "DirectAdmin username", 'really-simple-ssl' ), 'required' => false, 'disabled' => false, 'server_conditions' => [ 'relation' => 'AND', [ 'rsssl_is_directadmin()' => true, 'rsssl_activated_by_default()' => false, 'rsssl_activation_required()' => false, 'rsssl_paid_only()' => false, ] ], ], [ 'id' => 'directadmin_password', 'menu_id' => 'le-hosting', 'group_id' => 'le-hosting', 'type' => 'password', 'default' => '', 'label' => __( "DirectAdmin password", 'really-simple-ssl' ), 'required' => false, 'disabled' => false, 'server_conditions' => [ 'relation' => 'AND', [ 'rsssl_is_directadmin()' => true, 'rsssl_activated_by_default()' => false, 'rsssl_activation_required()' => false, 'rsssl_paid_only()' => false, ] ], ], [ 'id' => 'cloudways_user_email', 'menu_id' => 'le-hosting', 'group_id' => 'le-hosting', 'type' => 'text', 'default' => '', 'placeholder' => 'email@email.com', 'label' => __( "CloudWays user email", 'really-simple-ssl' ), 'required' => false, 'disabled' => false, 'server_conditions' => [ 'relation' => 'AND', [ 'other_host_type' => 'cloudways', ] ], ], [ 'id' => 'cloudways_api_key', 'menu_id' => 'le-hosting', 'group_id' => 'le-hosting', 'type' => 'password', 'default' => '', 'label' => __( "CloudWays api key", 'really-simple-ssl' ), 'required' => false, 'disabled' => false, 'help' => [ 'label' => 'default', 'title' => __( "CloudWays API key", "really-simple-ssl" ), 'text' => sprintf( __( "You can find your api key %shere%s (make sure you're logged in with your main account).", "really-simple-ssl" ), '', '' ), ], 'server_conditions' => [ 'relation' => 'AND', [ 'other_host_type' => 'cloudways', ] ], ], [ 'id' => 'plesk_host', 'menu_id' => 'le-hosting', 'group_id' => 'le-hosting', 'type' => 'text', 'default' => '', 'label' => __( "Plesk host", 'really-simple-ssl' ), 'help' => [ 'label' => 'default', 'title' => __( "Plesk admin URL", "really-simple-ssl" ), 'text' => __( "The URL you use to access your Plesk dashboard. Ends on :8443.", 'really-simple-ssl' ), ], 'required' => false, 'disabled' => false, 'server_conditions' => [ 'relation' => 'AND', [ 'rsssl_is_plesk()' => true, 'rsssl_activated_by_default()' => false, 'rsssl_activation_required()' => false, 'rsssl_paid_only()' => false, ] ], ], [ 'id' => 'plesk_username', 'menu_id' => 'le-hosting', 'group_id' => 'le-hosting', 'type' => 'text', 'default' => '', 'label' => __( "Plesk username", 'really-simple-ssl' ), 'help' => [ 'label' => 'default', 'title' => __( "Plesk username and password", "really-simple-ssl" ), 'text' => sprintf( __( "You can find your Plesk username and password in %s", 'really-simple-ssl' ), 'https://{your-plesk-host-name}:8443/smb/my-profile' ), ], 'required' => false, 'disabled' => false, 'server_conditions' => [ 'relation' => 'AND', [ 'rsssl_is_plesk()' => true, 'rsssl_activated_by_default()' => false, 'rsssl_activation_required()' => false, 'rsssl_paid_only()' => false, ] ], ], [ 'id' => 'plesk_password', 'menu_id' => 'le-hosting', 'group_id' => 'le-hosting', 'type' => 'password', 'default' => '', 'label' => __( "Plesk password", 'really-simple-ssl' ), 'required' => false, 'disabled' => false, 'server_conditions' => [ 'relation' => 'AND', [ 'rsssl_is_plesk()' => true, 'rsssl_activated_by_default()' => false, 'rsssl_activation_required()' => false, 'rsssl_paid_only()' => false, ] ], ], [ 'id' => 'store_credentials', 'menu_id' => 'le-hosting', 'group_id' => 'le-hosting', 'type' => 'checkbox', 'default' => '', 'label' => __( "Do you want to store these credentials for renewal purposes?", 'really-simple-ssl' ), 'help' => [ 'label' => 'default', 'title' => 'Storing credentials', 'text' => __( "Store for renewal purposes. If not stored, renewal may need to be done manually.", 'really-simple-ssl' ), ], 'required' => false, 'disabled' => false, 'server_conditions' => [ 'relation' => 'AND', [ 'rsssl_uses_known_dashboard()' => true, 'rsssl_activated_by_default()' => false, 'rsssl_activation_required()' => false, 'rsssl_paid_only()' => false, ] ], ], [ 'id' => 'directories', 'menu_id' => 'le-directories', 'group_id' => 'le-directories', 'condition_action' => 'hide', 'type' => 'letsencrypt', 'actions' => [ [ 'description' => __( "Checking host...", "really-simple-ssl" ), 'action' => 'check_host', 'attempts' => 1, 'status' => 'inactive', ], [ 'description' => __( "Checking challenge directory...", "really-simple-ssl" ), 'action' => 'check_challenge_directory', 'attempts' => 1, 'status' => 'inactive', ], [ 'description' => __( "Checking key directory...", "really-simple-ssl" ), 'action' => 'check_key_directory', 'attempts' => 2, 'status' => 'inactive', ], [ 'description' => __( "Checking certs directory...", "really-simple-ssl" ), 'action' => 'check_certs_directory', 'attempts' => 1, 'status' => 'inactive', ], [ 'description' => __( "Checking permissions...", "really-simple-ssl" ), 'action' => 'check_writing_permissions', 'attempts' => 1, 'status' => 'inactive', ], [ 'description' => __( "Checking challenge directory reachable over http...", "really-simple-ssl" ), 'action' => 'challenge_directory_reachable', 'attempts' => 1, 'status' => 'inactive', ], ], 'react_conditions' => [ 'relation' => 'AND', [ '!verification_type' => 'dns', ] ], ], [ 'id' => 'dns-verification', 'menu_id' => 'le-dns-verification', 'group_id' => 'le-dns-verification', 'type' => 'letsencrypt', 'condition_action' => 'hide', 'actions' => [ [ 'description' => __("Creating account...", "really-simple-ssl"), 'action'=> 'get_account', 'attempts' => 5, 'status' => 'inactive', ], [ 'description' => __("Retrieving DNS verification token...", "really-simple-ssl"), 'action'=> 'get_dns_token', 'attempts' => 5, 'status' => 'inactive', ], ], 'react_conditions' => [ 'relation' => 'AND', [ 'verification_type' => 'dns', ] ], ], [ 'id' => 'generation', 'menu_id' => 'le-generation', 'group_id' => 'le-generation', 'type' => 'letsencrypt', // 'server_conditions' => [ // 'relation' => 'AND', // [ // 'rsssl_do_local_lets_encrypt_generation' => true, // ] // ], 'actions' => [ [ 'description' => __("Checking if Terms & Conditions are accepted...", "really-simple-ssl"), 'action'=> 'terms_accepted', 'attempts' => 1, 'status' => 'inactive', ], [ 'description' => __("Creating account...", "really-simple-ssl"), 'action'=> 'get_account', 'attempts' => 5, 'status' => 'inactive', ], [ 'description' => __("Generating SSL certificate...", "really-simple-ssl"), 'action'=> 'create_bundle_or_renew', 'attempts' => 5, 'status' => 'inactive', ], ], ], [ 'id' => 'installation', 'menu_id' => 'le-installation', 'group_id' => 'le-installation', 'type' => 'letsencrypt', 'actions' => [ [ 'description' => __("Searching for link to SSL installation page on your server...", "really-simple-ssl"), 'action'=> 'search_ssl_installation_url', 'attempts' => 1, 'status' => 'inactive', ], ], ], [ 'id' => 'activate_ssl', 'menu_id' => 'le-activate_ssl', 'group_id' => 'le-activate_ssl', 'type' => 'activate', ], ]); if ( is_multisite() ) { $index = array_search( 'system-status', array_column( $fields, 'id' ) ); $new_test = [ 'description' => __( "Checking for subdomain setup...", "really-simple-ssl" ), 'action' => 'is_subdomain_setup', 'attempts' => 1, 'status' => 'inactive', ]; $current_tests = $fields[ $index ]['actions']; $current_tests[] = $new_test; $fields[ $index ]['actions'] = $current_tests; } return $fields; } PK!{*lets-encrypt/config/notices.phpnu[certificate->is_valid(); $certinfo = get_transient( 'rsssl_certinfo' ); $end_date = isset( $certinfo['validTo_time_t'] ) ? $certinfo['validTo_time_t'] : false; //if the certificate expires within the grace period, allow renewal //e.g. expiry date 30 may, now = 10 may => grace period 9 june. $expiry_date = ! empty( $end_date ) ? date( get_option( 'date_format' ), $end_date ) : false; if ( get_option( 'rsssl_create_folders_in_root' ) ) { if ( ! get_option( 'rsssl_htaccess_file_set_key' ) || ! get_option( 'rsssl_htaccess_file_set_certs' ) || ! get_option( 'rsssl_htaccess_file_set_ssl' ) ) { $notices['root_files_not_protected'] = array( 'condition' => array( 'rsssl_ssl_enabled' ), 'callback' => '_true_', 'score' => 10, 'output' => array( 'true' => array( 'msg' => __( "Your Key and Certificate directories are not properly protected.", "really-simple-ssl" ), 'url' => "https://really-simple-ssl.com/protect-ssl-generation-directories", 'icon' => 'warning', 'plusone' => true, 'dismissible' => true, ), ), ); } } if ( strpos(site_url(), 'www.') !== false ) { $text = __( "The non-www version of your site does not point to this website. This is recommended, as it will allow you to add it to the certificate as well.", 'really-simple-ssl' ); } else { $text = __( "The www version of your site does not point to this website. This is recommended, as it will allow you to add it to the certificate as well.", 'really-simple-ssl' ); } $notices['alias_domain_notice'] = array( 'condition' => array( 'NOT rsssl_is_subdomain' ), 'callback' => 'RSSSL_LE()->letsencrypt_handler->alias_domain_available', 'score' => 10, 'output' => array( 'false' => array( 'title' => __( "Domain", 'really-simple-ssl' ), 'msg' => $text, 'icon' => 'open', 'plusone' => true, 'dismissible' => true, ), ), 'show_with_options' => [ 'domain', ] ); if ( $expiry_date ) { $notices['ssl_detected'] = array( 'condition' => array( 'rsssl_ssl_enabled' ), 'callback' => 'RSSSL()->certificate->about_to_expire', 'score' => 10, 'output' => array( 'false' => array( 'msg' => sprintf( __( "Your certificate is valid until: %s", "really-simple-ssl" ), $expiry_date ), 'icon' => 'success' ), 'true' => array( 'msg' => sprintf( __( "Your certificate will expire on %s. You can renew it %shere%s.", "really-simple-ssl" ), $expiry_date, '', '' ), 'icon' => 'open', 'plusone' => true, 'dismissible' => false, ), ), ); } $notices['certificate_installation'] = array( 'condition' => array( 'rsssl_ssl_enabled', 'RSSSL()->certificate->about_to_expire' ), 'callback' => 'RSSSL_LE()->letsencrypt_handler->certificate_renewal_status_notice', 'score' => 10, 'output' => array( 'automatic-installation-failed' => array( 'msg' => sprintf( __( "The automatic installation of your certificate has failed. Please check your credentials, and retry the %sinstallation%s.", "really-simple-ssl" ), '', '' ), 'icon' => 'open', 'plusone' => true, 'dismissible' => false, ), 'manual-installation' => array( 'msg' => sprintf( __( "The SSL certificate has been renewed, and requires manual %sinstallation%s in your hosting dashboard.", "really-simple-ssl" ), '', '' ), 'icon' => 'open', 'plusone' => true, 'dismissible' => false, ), 'manual-generation' => array( 'msg' => sprintf( __( "Automatic renewal of your certificate was not possible. The SSL certificate should be %srenewed%s manually.", "really-simple-ssl" ), '', '' ), 'icon' => 'open', 'plusone' => true, 'dismissible' => false, ), 'automatic' => array( 'msg' => __( "Your certificate will be renewed and installed automatically.", "really-simple-ssl" ), 'icon' => 'open', 'plusone' => true, 'dismissible' => false, ), ), ); } //we run these notices only if the cert is generated by rsssl, or it's not valid. if ( rsssl_generated_by_rsssl() || !RSSSL()->certificate->is_valid() ) { $notices['can_use_shell'] = array( 'condition' => array('rsssl_can_install_shell_addon'), 'callback' => '_true_', 'score' => 10, 'output' => array( 'true' => array( 'msg' => __( "Your server provides shell functionality, which offers additional methods to install SSL. If installing SSL using the default methods is not possible, you can install the shell add on.", "really-simple-ssl" ), 'icon' => 'open', 'url' => "https://really-simple-ssl.com/installing-ssl-using-shell-functions", 'plusone' => true, 'dismissible' => true, ), ), ); //show notice if the shell exec add on is not up to date if ( function_exists('rsssl_le_load_shell_addon') && defined('rsssl_shell_version') && version_compare(rsssl_shell_version,'2.0.0','<')){ $notices['old_shell_exec_plugin'] = array( 'callback' => '_true_', 'score' => 10, 'output' => array( 'true' => array( 'msg' => __( "You are using the Really Simple SSL Shell Exec add on, but your current version needs to be updated.", "really-simple-ssl" ), 'icon' => 'warning', 'url' => "https://really-simple-ssl.com/installing-ssl-using-shell-functions", 'plusone' => true, 'dismissible' => false, ), ), ); } } return $notices; } add_filter( 'rsssl_notices', 'rsssl_le_get_notices_list', 30, 1 ); /** * Replace the go pro or scan button with a renew SSL button when the cert should be renewed. */ function rsssl_le_progress_footer_renew_ssl($button){ if ( rsssl_ssl_enabled() && RSSSL()->certificate->about_to_expire() ){ $status = RSSSL_LE()->letsencrypt_handler->certificate_renewal_status_notice; switch ($status){ case 'manual-installation': $button_text = __("Renew installation", "really-simple-ssl"); break; case 'manual-generation': $button_text = __("Renew certificate", "really-simple-ssl"); break; default: $button_text = __("Renew certificate", "really-simple-ssl");//false; } if ($button_text) { $url = rsssl_letsencrypt_wizard_url(); $button = ''.$button_text.''; } } return $button; } add_filter("rsssl_progress_footer_right", "rsssl_le_progress_footer_renew_ssl", 30); PK!?t4s##lets-encrypt/config/index.phpnu[ PK!Q4ii#lets-encrypt/config/class-hosts.phpnu[hosts = array( 'cloudways' => array( 'name' => 'CloudWays', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => false, 'hosting_dashboard' => 'cloudways', 'api' => true, 'ssl_installation_link' => false, ), 'tierpoint' => array( 'name' => 'TierPoint', 'installation_renewal_required' => true, 'local_ssl_generation_needed' => true, 'free_ssl_available' => false, 'hosting_dashboard' => 'cpanel', 'api' => true, 'ssl_installation_link' => false, ), 'godaddy' => array( 'name' => 'GoDaddy', 'installation_renewal_required' => true, 'local_ssl_generation_needed' => true, 'free_ssl_available' => false, 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => false, ), 'godaddy_managed' => array( 'name' => 'GoDaddy Managed WordPress', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activated_by_default', 'hosting_dashboard' => 'godaddymanaged', 'api' => false, 'ssl_installation_link' => false, ), 'kasserver' => array( 'name' => 'Kasserver', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'kasserver', 'api' => false, 'ssl_installation_link' => 'https://kas.all-inkl.com/', ), 'argeweb' => array( 'name' => 'Argeweb', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'plesk', 'api' => false, 'ssl_installation_link' => 'https://www.argeweb.nl/argecs/', ), 'hostgator' => array( 'name' => 'HostGator', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => true, 'hosting_dashboard' => 'cpanel:autossl', 'api' => true, 'ssl_installation_link' => 'https://{host}:2083/frontend/paper_lantern/security/tls_status/', ), 'ionos' => array( 'name' => 'IONOS', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'paid_only', 'hosting_dashboard' => 'ionos', 'api' => false, 'ssl_installation_link' => '', ), 'simply' => array( 'name' => 'Simply', 'installation_renewal_required' => true, 'local_ssl_generation_needed' => true, 'free_ssl_available' => false, 'hosting_dashboard' => false, 'api' => false, 'ssl_installation_link' => 'https://www.simply.com/en/controlpanel/sslcerts/', ), 'siteground' => array( 'name' => 'SiteGround', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => false, 'api' => false, 'ssl_installation_link' => 'https://tools.siteground.com/ssl', ), 'dreamhost' => array( 'name' => 'Dreamhost', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => false, 'api' => false, 'ssl_installation_link' => 'https://help.dreamhost.com/hc/en-us/articles/216539548-Adding-a-free-Let-s-Encrypt-certificate', ), 'wpengine' => array( 'name' => 'WPEngine', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => false, 'api' => false, 'detected' => isset($_SERVER['IS_WPE']), 'ssl_installation_link' => 'https://wpengine.com/support/add-ssl-site/#letsencrypt', ), 'ipage' => array( 'name' => 'iPage', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activated_by_default', 'hosting_dashboard' => false, 'api' => false, 'ssl_installation_link' => 'https://www.ipage.com/help/article/enable-your-free-ssl-certificate', ), 'onecom' => array( 'name' => 'one.com', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activated_by_default', 'hosting_dashboard' => false, 'api' => false, 'ssl_installation_link' => 'https://help.one.com/hc/en-us/articles/360000297458-Why-is-SSL-HTTPS-not-working-on-my-site-', ), 'wpmudev' => array( 'name' => 'WPMUDEV', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activated_by_default', 'hosting_dashboard' => false, 'api' => false, 'ssl_installation_link' => 'https://wpmudev.com', ), 'ovh' => array( 'name' => 'OVH', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activated_by_default', 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => 'https://ovh.com', ), 'bluehost' => array( 'name' => 'BlueHost', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activated_by_default', 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => 'https://www.bluehost.com/help/article/how-to-activate-a-free-wordpress-ssl', ), 'freeola' => array( 'name' => 'Freeola', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'paid_only', 'hosting_dashboard' => 'freeola', 'api' => false, 'ssl_installation_link' => '', ), 'hostinger' => array( 'name' => 'Hostinger', 'installation_renewal_required' => true, 'local_ssl_generation_needed' => true, 'free_ssl_available' => false, 'hosting_dashboard' => 'hpanel', 'api' => false, 'ssl_installation_link' => 'https://hpanel.hostinger.com/hosting/{domain}advanced/ssl', ), 'pcextreme' => array( 'name' => 'PCExtreme', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activated_by_default', 'hosting_dashboard' => 'directadmin', 'api' => false, 'ssl_installation_link' => 'https://help.pcextreme.nl/domains-ssl/hoe-vraag-ik-een-ssl-certificaat-aan-voor-mijn-domein/', ), 'internic' => array( 'name' => 'Internic', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activated_by_default', 'hosting_dashboard' => 'internic', 'api' => false, 'ssl_installation_link' => 'https://internic.com', ), 'aruba' => array( 'name' => 'Aruba', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'paid_only', 'hosting_dashboard' => 'aruba', 'api' => false, 'ssl_installation_link' => 'https://admin.aruba.it/PannelloAdmin/UI/Pages/ContentSection.aspx?Action=153', ), 'namecheap' => array( 'name' => 'Namecheap', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => 'https://www.namecheap.com/blog/install-free-ssls/', ), 'hostpapa' => array( 'name' => 'Hostpapa', 'installation_renewal_required' => true, 'local_ssl_generation_needed' => true, 'free_ssl_available' => false, 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => false, ), 'webcom' => array( 'name' => 'web.com', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'paid_only', 'hosting_dashboard' => 'web.com', 'api' => false, 'ssl_installation_link' => false, ), 'crazydomains' => array( 'name' => 'Crazydomains', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'paid_only', 'hosting_dashboard' => 'crazydomains', 'api' => false, 'ssl_installation_link' => false, ), 'strato' => array( 'name' => 'Strato', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'plesk', 'api' => false, 'ssl_installation_link' => false, ), 'inmotion' => array( 'name' => 'Inmotion', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => 'https://www.inmotionhosting.com/support/website/ssl/auto-ssl-guide/', ), 'flywheel' => array( 'name' => 'Flywheel', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'flywheel', 'api' => false, 'detected' => isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'], 'Flywheel/') === 0, 'ssl_installation_link' => 'https://getflywheel.com/why-flywheel/simple-ssl/', ), 'kinsta' => array( 'name' => 'Kinsta', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'mykinsta', 'api' => false, 'ssl_installation_link' => false, ), 'pressable' => array( 'name' => 'Pressable', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'paid_only', 'hosting_dashboard' => 'pressable', 'api' => false, 'ssl_installation_link' => false, 'detected' => (defined('IS_ATOMIC') && IS_ATOMIC) || (defined('IS_PRESSABLE') && IS_PRESSABLE), ), 'wpx' => array( 'name' => 'WPX', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'wpx', 'api' => false, 'ssl_installation_link' => false, ), 'greengeeks' => array( 'name' => 'Greengeeks', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'greengeeks', 'api' => false, 'ssl_installation_link' => 'https://www.greengeeks.com/support/article/getting-started-adding-lets-encrypt-ssl-greengeeks-account/', ), 'liquidweb' => array( 'name' => 'Liquidweb', 'installation_renewal_required' => true, 'local_ssl_generation_needed' => true, 'free_ssl_available' => false, 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => false, ), 'profreehost' => array( 'name' => 'Profreehost', 'installation_renewal_required' => true, 'local_ssl_generation_needed' => true, 'free_ssl_available' => false, 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => 'https://profreehost.com/support/ssl-https/how-to-install-an-ssl-certificate/', ), 'hostdash' => array( 'name' => 'Hostdash', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => false, ), 'byethost' => array( 'name' => 'Byethost', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activated_by_default', 'hosting_dashboard' => 'byethost', 'api' => false, 'ssl_installation_link' => false, ), 'site5' => array( 'name' => 'Site5', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'paid_only', 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => '', ), 'epizy' => array( 'name' => 'Epizy', 'installation_renewal_required' => true, 'local_ssl_generation_needed' => true, 'free_ssl_available' => false, 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => '', ), 'infinityfree' => array( 'name' => 'Infinityfree', 'installation_renewal_required' => true, 'local_ssl_generation_needed' => true, 'free_ssl_available' => false, 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => '', ), 'gandi' => array( 'name' => 'Gandi', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'gandi', 'api' => false, 'ssl_installation_link' => false, ), 'contabo' => array( 'name' => 'Contabo', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => true, 'hosting_dashboard' => 'cpanel:autossl', 'api' => true, 'ssl_installation_link' => 'https://{host}:2083/frontend/paper_lantern/security/tls_status/', ), 'earthlink' => array( 'name' => 'Earthlink', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => false, 'hosting_dashboard' => 'cpanel', 'api' => true, 'ssl_installation_link' => false, ), 'hostway' => array( 'name' => 'Hostway', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activated_by_default', 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => false, ), 'beget' => array( 'name' => 'Beget', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'beget', 'api' => false, 'ssl_installation_link' => false, ), 'fatcow' => array( 'name' => 'Fatcow', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'fatcow', 'api' => false, 'ssl_installation_link' => false, ), 'ventraip' => array( 'name' => 'Ventraip', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activated_by_default', 'hosting_dashboard' => 'cpanel:autossl', 'api' => false, 'ssl_installation_link' => 'https://{host}:2083/frontend/paper_lantern/security/tls_status/', ), 'namescouk' => array( 'name' => 'Names.co.uk', 'installation_renewal_required' => true, 'local_ssl_generation_needed' => true, 'free_ssl_available' => false, 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => false, ), 'mediatemple' => array( 'name' => 'Mediatemple', 'installation_renewal_required' => true, 'local_ssl_generation_needed' => true, 'free_ssl_available' => false, 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => false, ), 'xxl' => array( 'name' => 'XXL Hosting', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => true, 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => false, ), 'combell' => array( 'name' => 'Combell', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => true, 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => false, ), 'transip' => array( 'name' => 'TransIP', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => true, 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => false, ), 'digitalocean' => array( 'name' => 'Digitalocean', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'digitalocean', 'api' => false, 'ssl_installation_link' => 'https://docs.digitalocean.com/products/accounts/security/certificates/', ), 'fisthost' => array( 'name' => 'Fisthost', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'fisthost', 'api' => false, 'ssl_installation_link' => 'https://my.fisthost.com/knowledgebase/6/How-do-I-activate-my-free-SSL.html', ), 'register' => array( 'name' => 'register.lk', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'paid_only', 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => '', ), 'fasthosts' => array( 'name' => 'Fasthosts', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'cpanel', 'api' => false, 'ssl_installation_link' => false, ), 'upress' => array( 'name' => 'Upress', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'false', 'api' => false, 'ssl_installation_link' => 'https://support.upress.io', ), 'infomaniak' => array( 'name' => 'Infomaniak', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'activation_required', 'hosting_dashboard' => 'infomaniak', 'api' => false, 'ssl_installation_link' => 'https://www.infomaniak.com/en/secure/ssl-certificates', ), 'dandomain' => array( 'name' => 'DanDomain', 'installation_renewal_required' => false, 'local_ssl_generation_needed' => false, 'free_ssl_available' => 'paid_only', 'hosting_dashboard' => 'dandomain', 'api' => false, 'ssl_installation_link' => '', ), ); $this->not_local_certificate_hosts = $this->filter_hosts( 'local_ssl_generation_needed', false); $this->dashboard_activation_required = $this->filter_hosts( 'free_ssl_available', 'activation_required'); $this->activated_by_default = $this->filter_hosts( 'free_ssl_available', 'activated_by_default'); $this->paid_only = $this->filter_hosts( 'free_ssl_available', 'paid_only'); $this->no_installation_renewal_needed = $this->filter_hosts( 'installation_renewal_required', false); $this->no_installation_renewal_needed[] = 'cpanel:autossl'; ksort($this->hosts); $this->supported_hosts = array( 'none' => __('I don\'t know, or not listed, proceed with installation', 'really-simple-ssl'), ); $this->supported_hosts = $this->supported_hosts + wp_list_pluck($this->hosts, 'name'); } static function this() { return self::$_this; } public function detect_host_on_activation(){ foreach ( $this->hosts as $host_key => $host ) { if ( isset($host['detected']) && $host['detected'] ) { rsssl_update_option('other_host_type', $host_key ); } } } /** * @param array $array * @param mixed $filter_value * @param mixed $filter_key * * @return array */ public function filter_hosts( $filter_key, $filter_value){ return array_keys(array_filter($this->hosts, function ($var) use ($filter_value, $filter_key) { return ($var[$filter_key] == $filter_value); }) ); } /** * @param string | bool $type * * @return bool */ public function host_api_supported( $type ) { $hosting_company = rsssl_get_other_host(); //if not listed, we assume it can. if ( !$hosting_company || $hosting_company === 'none' ) { return true; } $hosts_has_dashboard = RSSSL_LE()->hosts->filter_hosts( 'api', $type); if ( in_array($hosting_company, $hosts_has_dashboard) ) { return true; } else { return false; } } } } //class closurePK!2setup_constants(); self::$instance->includes(); if (rsssl_letsencrypt_generation_allowed() ) { self::$instance->hosts = new rsssl_le_hosts(); self::$instance->letsencrypt_handler = new rsssl_letsencrypt_handler(); self::$instance->le_restapi = new rsssl_le_restapi(); } } return self::$instance; } private function setup_constants() { define('rsssl_le_url', plugin_dir_url(__FILE__)); define('rsssl_le_path', trailingslashit(plugin_dir_path(__FILE__))); } private function includes() { require_once( rsssl_le_path . 'functions.php'); if ( rsssl_letsencrypt_generation_allowed() ) { require_once( rsssl_le_path . 'config/class-hosts.php' ); require_once( rsssl_le_path . 'config/fields.php'); require_once( rsssl_le_path . 'class-le-restapi.php' ); require_once( rsssl_le_path . 'class-letsencrypt-handler.php' ); require_once( rsssl_le_path . 'integrations/integrations.php' ); } require_once( rsssl_le_path . 'config/notices.php' ); } /** * Notice about possible compatibility issues with add ons */ public static function admin_notices() { } } function RSSSL_LE() { return RSSSL_LETSENCRYPT::instance(); } add_action( 'plugins_loaded', 'RSSSL_LE', 9 ); class RSSSL_RESPONSE { public $message; public $action; public $status; public $output; public $request_success; public function __construct($status, $action, $message, $output = false ) { $this->status = $status; $this->action = $action; $this->message = $message; $this->output = $output; $this->request_success = true; } }PK!f~=A=Alets-encrypt/functions.phpnu[', '' ); if ( is_string($add_character) ) { $html = $add_character . $html; } return $html; } /** * Check if we need to use DNS verification * @return bool */ function rsssl_dns_verification_required(){ /** * If our current hosting provider does not allow or require local SSL certificate generation, * We do not need to DNS verification either. */ if ( !rsssl_do_local_lets_encrypt_generation() ) { return false; } if ( rsssl_get_option('verification_type')==='dns' ) { return true; } if ( rsssl_wildcard_certificate_required() ) { return true; } return false; } if ( !function_exists('rsssl_is_cpanel')) { /** * Check if we're on CPanel * * @return bool */ function rsssl_is_cpanel() { $open_basedir = ini_get("open_basedir"); if ( empty($open_basedir) && file_exists( "/usr/local/cpanel" ) ) { return true; } else if (rsssl_check_port(2082)) { return true; } else { return false; } } } if (!function_exists('rsssl_cpanel_api_supported')) { /** * Check if CPanel supports the api * * @return bool */ function rsssl_cpanel_api_supported() { if ( rsssl_is_cpanel() ) { return true; } return !rsssl_openbasedir_restriction("/usr/local/cpanel/php/cpanel.php") && file_exists( "/usr/local/cpanel/php/cpanel.php" ); } } if (!function_exists('rsssl_activated_by_default')) { /** * Check if the host has ssl, activated by default * * @return bool */ function rsssl_activated_by_default() { $activated_by_default = false; $activated_by_default_hosts = RSSSL_LE()->hosts->activated_by_default; $current_host = rsssl_get_other_host(); if ( in_array( $current_host, $activated_by_default_hosts ) ) { $activated_by_default = true; } return $activated_by_default; } } if ( !function_exists('rsssl_openbasedir_restriction')) { function rsssl_openbasedir_restriction( string $path): bool { // Default error handler is required set_error_handler(null); // Clean last error info. error_clear_last(); // Testing... @file_exists($path); // Restore previous error handler restore_error_handler(); // Return `true` if error has occurred return ($error = error_get_last()) && $error['message'] !== '__clean_error_info'; } } if (!function_exists('rsssl_activation_required')) { /** * Check if the host has ssl, activation required * * @return bool */ function rsssl_activation_required() { $dashboard_activation_required = false; $dashboard_activation_required_hosts = RSSSL_LE()->hosts->dashboard_activation_required; $current_host = rsssl_get_other_host(); if ( in_array( $current_host, $dashboard_activation_required_hosts ) ) { $dashboard_activation_required = true; } return $dashboard_activation_required; } } if (!function_exists('rsssl_paid_only')) { /** * Check if the host has ssl, paid only * * @return bool */ function rsssl_paid_only() { $paid_only = false; $paid_only_hosts = RSSSL_LE()->hosts->paid_only; $current_host = rsssl_get_other_host(); if ( in_array( $current_host, $paid_only_hosts ) ) { $paid_only = true; } return $paid_only; } } if ( !function_exists('rsssl_is_plesk')) { /** * https://stackoverflow.com/questions/26927248/how-to-detect-servers-control-panel-type-with-php * @return false */ function rsssl_is_plesk() { if ( get_option('rsssl_hosting_dashboard')==='plesk' ){ return true; } //cpanel takes precedence, as it's more precise if ( rsssl_is_cpanel() ) { return false; } $open_basedir = ini_get("open_basedir"); if ( empty($open_basedir) && is_dir( '/usr/local/psa' ) ) { return true; } else if (rsssl_check_port(8443)) { return true; } else { return false; } } } if ( !function_exists('rsssl_is_directadmin')) { /** * https://stackoverflow.com/questions/26927248/how-to-detect-servers-control-panel-type-with-php * @return bool */ function rsssl_is_directadmin() { if ( get_option('rsssl_hosting_dashboard')==='directadmin' ){ return true; } //cpanel takes precedence, as it's more precise if ( rsssl_is_cpanel() ) { return false; } if ( rsssl_is_plesk() ) { return false; } if (rsssl_check_port(2222)) { return true; } else { return false; } } } /** * @param int $port * * @return bool */ function rsssl_check_port( $port) { $port_check_status = get_option("rsssl_port_check_$port"); if ( !function_exists('fsockopen') || $port_check_status === 'fail' ) { return false; } $ipAddress = gethostbyname('localhost'); $link = @fsockopen( $ipAddress, $port, $errno, $error, 5 ); if ( $link ) { update_option("rsssl_port_check_$port", 'success', false); return true; } update_option("rsssl_port_check_$port", 'fail', false); return false; } if ( !function_exists('rsssl_get_other_host') ) { /** * Get the selected hosting provider, if any. * @return bool|string */ function rsssl_get_other_host() { return rsssl_get_option( 'other_host_type', false ); } } /** * Add some information to the javascript * @param array $args * * @return array */ function rsssl_le_localize_script($args){ $hosting_dashboard = 'other'; if ( rsssl_is_cpanel() ) $hosting_dashboard = 'cpanel'; if ( rsssl_is_directadmin() ) $hosting_dashboard = 'directadmin'; if ( rsssl_is_plesk() ) $hosting_dashboard = 'plesk'; $args['hosting_dashboard'] = $hosting_dashboard; return $args; } add_filter("rsssl_localize_script", 'rsssl_le_localize_script', 10, 3); if ( !function_exists('rsssl_progress_add')) { /** * @param string $item */ function rsssl_progress_add( $item ) { $progress = get_option( "rsssl_le_installation_progress", array() ); if ( ! in_array( $item, $progress ) ) { $progress[] = $item; update_option( "rsssl_le_installation_progress", $progress, false ); } } } if ( !function_exists('rsssl_uses_known_dashboard')) { /** * Check if website uses any of the known dashboards. */ function rsssl_uses_known_dashboard( ) { if ( rsssl_is_cpanel() || rsssl_is_plesk() || rsssl_is_directadmin() ) { return true; } else { return false; } } } if ( !function_exists('rsssl_is_ready_for')) { /** * @param string $item */ function rsssl_is_ready_for( $item ) { if ( !rsssl_do_local_lets_encrypt_generation() ) { rsssl_progress_add('directories'); rsssl_progress_add('generation'); rsssl_progress_add('dns-verification'); } if ( !rsssl_dns_verification_required() ) { rsssl_progress_add('dns-verification'); } if (empty(rsssl_get_not_completed_steps($item))){ return true; } else{ return false; } } } function rsssl_get_not_completed_steps($item){ $sequence = array_column( rsssl_le_steps(), 'id'); //drop first array_shift($sequence); //drop all statuses after $item. We only need to know if all previous ones have been completed $index = array_search($item, $sequence); $sequence = array_slice($sequence, 0, $index, true); $not_completed = array(); $finished = get_option("rsssl_le_installation_progress", array()); foreach ($sequence as $status ) { if (!in_array($status, $finished)) { $not_completed[] = $status; } } return $not_completed; } if ( !function_exists('rsssl_progress_remove')) { /** * @param string $item */ function rsssl_progress_remove( $item ) { $progress = get_option( "rsssl_le_installation_progress", array() ); if ( in_array( $item, $progress ) ) { $index = array_search( $item, $progress ); unset( $progress[ $index ] ); update_option( "rsssl_le_installation_progress", $progress, false ); } } } if ( !function_exists('rsssl_do_local_lets_encrypt_generation')) { /** * Check if the setup requires local certificate generation * @return bool */ function rsssl_do_local_lets_encrypt_generation() { $not_local_cert_hosts = RSSSL_LE()->hosts->not_local_certificate_hosts; $current_host = rsssl_get_other_host(); if ( in_array( $current_host, $not_local_cert_hosts ) ) { return false; } return true; } } if ( !function_exists('rsssl_get_manual_instructions_text')) { /** * Manual installation instructions * * @param string $url * * @return string */ function rsssl_get_manual_instructions_text( $url ) { $default_url = 'https://really-simple-ssl.com/install-ssl-certificate'; $dashboard_activation_required = rsssl_activation_required(); $activated_by_default = rsssl_activated_by_default(); $paid_only = rsssl_paid_only(); $button_activate = '
' . __( "Instructions", "really-simple-ssl" ) . '  '; $button_complete = '
' . __( "Instructions", "really-simple-ssl" ) . '  '; if ( $url === $default_url ) { $complete_manually = sprintf( __( "Please complete manually in your hosting dashboard.", "really-simple-ssl" ), '', '' ); $activate_manually = sprintf( __( "Please activate it manually on your hosting dashboard.", "really-simple-ssl" ), '', '' ); } else { $complete_manually = sprintf( __( "Please complete %smanually%s", "really-simple-ssl" ), '', '' ); $activate_manually = sprintf( __( "Please activate it on your dashboard %smanually%s", "really-simple-ssl" ), '', '' ); $button_activate .= '' . __( "Go to activation", "really-simple-ssl" ) . ''; $button_complete .= '' . __( "Go to installation", "really-simple-ssl" ) . ''; } if ( $activated_by_default ) { $msg = sprintf( __( "According to our information, your hosting provider supplies your account with an SSL certificate by default. Please contact your %shosting support%s if this is not the case.", "really-simple-ssl" ), '', '' ) . ' ' . __( "After completing the installation, you can continue to the next step to complete your configuration.", "really-simple-ssl" ); } else if ( $dashboard_activation_required ) { $msg = __( "You already have free SSL on your hosting environment.", "really-simple-ssl" ) . ' ' . $activate_manually . ' ' . __( "After completing the installation, you can continue to the next step to complete your configuration.", "really-simple-ssl" ) . $button_activate; } else if ( $paid_only ) { $msg = sprintf( __( "According to our information, your hosting provider does not allow any kind of SSL installation, other then their own paid certificate. For an alternative hosting provider with SSL, see this %sarticle%s.", "really-simple-ssl" ), '', '' ); } else { $msg = __( "Your hosting environment does not allow automatic SSL installation.", "really-simple-ssl" ) . ' ' . $complete_manually . ' ' . sprintf( __( "You can follow these %sinstructions%s.", "really-simple-ssl" ), '', '' ) . ' ' . __( "After completing the installation, you can continue to the next step to complete your configuration.", "really-simple-ssl" ) . $button_complete; } return $msg; } } register_activation_hook( __FILE__, 'rsssl_set_activation_time_stamp' ); if ( ! function_exists( 'rsssl_set_activation_time_stamp' ) ) { function rsssl_set_activation_time_stamp( $networkwide ) { update_option( 'rsssl_activation_time', time(), false ); } } if ( ! function_exists( 'rsssl_array_filter_multidimensional' ) ) { function rsssl_array_filter_multidimensional( $array, $filter_key, $filter_value ) { $new = array_filter( $array, function ( $var ) use ( $filter_value, $filter_key ) { return isset( $var[ $filter_key ] ) ? ( $var[ $filter_key ] == $filter_value ) : false; } ); return $new; } } if ( !function_exists('rsssl_is_subdomain') ) { /** * Check if we're on a subdomain. * If this is a www domain, we return false */ function rsssl_is_subdomain(){ $domain = rsssl_get_domain(); if ( strpos($domain, 'www.') !== false ) return false; $root = rsssl_get_root_domain($domain); if ($root === $domain ) { return false; } else { return true; } } } if ( !function_exists('rsssl_get_root_domain') ) { /** * Get root domain of a domain */ function rsssl_get_root_domain($domain){ $sub = strtolower(trim($domain)); $count = substr_count($sub, '.'); if($count === 2){ if(strlen(explode('.', $sub)[1]) > 3) $sub = explode('.', $sub, 2)[1]; } else if($count > 2){ $sub = rsssl_get_root_domain(explode('.', $sub, 2)[1]); } return $sub; } } if ( ! function_exists( 'rsssl_get_domain' ) ) { /** * Get current domain * * @return string */ function rsssl_get_domain() { //Get current domain $domain = site_url(); //Parse to strip off any /subfolder/ $parse = parse_url($domain); $domain = $parse['host']; $domain = str_replace(array('http://', 'https://' ), '', $domain); return $domain; } } function rsssl_insert_after_key($array, $key, $items){ $keys = array_keys($array); $key = array_search($key, $keys); $array = array_slice($array, 0, $key, true) + $items + array_slice($array, 3, count($array)-3, true); return $array; } if ( !function_exists('rsssl_wildcard_certificate_required') ) { /** * Check if the site requires a wildcard * * @return bool */ function rsssl_wildcard_certificate_required() { //if DNS verification, create wildcard. if ( rsssl_get_option('verification_type') === 'dns' ) { return true; } if ( ! is_multisite() ) { return false; } else { if ( defined( 'SUBDOMAIN_INSTALL' ) && SUBDOMAIN_INSTALL ) { return true; } else { return false; } } } } if ( !function_exists('rsssl_can_install_shell_addon') ) { /** * check if this environment has shell capability * * @return bool */ function rsssl_can_install_shell_addon(){ //if not cpanel if ( !rsssl_is_cpanel() ) { return false; } //if already installed if (defined('rsssl_shell_path')){ return false; } if ( function_exists('shell_exec') || function_exists('system') || function_exists('passthru') || function_exists('exec') ) { return true; } else { return false; } } } if ( !function_exists('rsssl_generated_by_rsssl')) { /** * If a bundle generation is completed, this value is set to true. * * @return bool */ function rsssl_generated_by_rsssl() { return get_option( 'rsssl_le_certificate_generated_by_rsssl' ); } } /** * Checks if a CAA DNS record is preventing the use of Let's Encrypt for the current site. * * @return bool Returns true if a CAA DNS record exists and does not allow Let's Encrypt, false otherwise. */ if ( ! function_exists( 'rsssl_caa_record_prevents_le' ) ) { function rsssl_caa_record_prevents_le(): bool { // Get DNS CAA records for site_url() $caa_records = dns_get_record( parse_url( site_url(), PHP_URL_HOST ), DNS_CAA ); // If no CAA records found, return false if ( empty( $caa_records ) ) { return false; } // Check if the CAA record contains letsencrypt.org $caa_contains_le = false; foreach ( $caa_records as $caa_record ) { if ( strpos( $caa_record['value'], 'letsencrypt.org' ) !== false ) { $caa_contains_le = true; break; } } // If the CAA record is set, but does not contain letsencrypt.org, return true; if ( ! $caa_contains_le ) { return true; } // CAA record contains Let's Encrypt, generation allowed return false; } }PK!?t4s###lets-encrypt/vendor/fbett/index.phpnu[ PK! @\NN3lets-encrypt/vendor/fbett/le_acme2/phpunit.xml.distnu[ ./src/LE_ACME2 ./src/LE_ACME2Tests PK!Qs;lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Account.phpnu[_setEmail($email); Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_INFO, get_class() . '::' . __FUNCTION__ . ' email: "' . $email . '"' ); Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_DEBUG, get_class() . '::' . __FUNCTION__ . ' path: ' . $this->getKeyDirectoryPath() ); } private function _setEmail(string $email) { $this->_email = $email; $this->_identifier = $this->_getAccountIdentifier($this); } public function getEmail() : string { return $this->_email; } /** * @param string $email * @return Account|null * @throws Exception\AbstractException */ public static function create(string $email) : Account { $account = new self($email); $account->_initKeyDirectory(); $request = new Request\Account\Create($account); try { $response = $request->getResponse(); Cache\AccountResponse::getInstance()->set($account, $response); return $account; } catch(Exception\AbstractException $e) { $account->_clearKeyDirectory(); throw $e; } } public static function exists(string $email) : bool { $account = new self($email); return file_exists($account->getKeyDirectoryPath()) && file_exists($account->getKeyDirectoryPath() . 'private.pem') && file_exists($account->getKeyDirectoryPath() . 'public.pem'); } public static function get(string $email) : Account { $account = new self($email); if(!self::exists($email)) throw new \RuntimeException('Keys not found - does this account exist?'); return $account; } /** * @return Response\AbstractResponse|Response\Account\GetData * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ public function getData() : Response\Account\GetData { $request = new Request\Account\GetData($this); return $request->getResponse(); } /** * @param string $email * @return bool * @throws Exception\RateLimitReached */ public function update(string $email) : bool { $request = new Request\Account\Update($this, $email); try { /* $response = */ $request->getResponse(); $previousKeyDirectoryPath = $this->getKeyDirectoryPath(); $this->_setEmail($email); if($previousKeyDirectoryPath != $this->getKeyDirectoryPath()) rename($previousKeyDirectoryPath, $this->getKeyDirectoryPath()); return true; } catch(Exception\InvalidResponse $e) { return false; } } /** * @return bool * @throws Exception\RateLimitReached */ public function changeKeys() : bool { Utilities\KeyGenerator::RSA($this->getKeyDirectoryPath(), 'private-replacement.pem', 'public-replacement.pem'); $request = new Request\Account\ChangeKeys($this); try { /* $response = */ $request->getResponse(); unlink($this->getKeyDirectoryPath() . 'private.pem'); unlink($this->getKeyDirectoryPath() . 'public.pem'); rename($this->getKeyDirectoryPath() . 'private-replacement.pem', $this->getKeyDirectoryPath() . 'private.pem'); rename($this->getKeyDirectoryPath() . 'public-replacement.pem', $this->getKeyDirectoryPath() . 'public.pem'); return true; } catch(Exception\InvalidResponse $e) { return false; } } /** * @return bool * @throws Exception\RateLimitReached */ public function deactivate() : bool { $request = new Request\Account\Deactivate($this); try { /* $response = */ $request->getResponse(); return true; } catch(Exception\InvalidResponse $e) { return false; } } }PK!`9?mmJlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Account/Create.phpnu[_account = $account; } /** * @return Response\AbstractResponse|Response\Account\Create * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ public function getResponse() : Response\AbstractResponse { $payload = [ 'contact' => $this->_buildContactPayload($this->_account->getEmail()), 'termsOfServiceAgreed' => true, ]; $jwk = Utilities\RequestSigner::JWKString( $payload, Cache\DirectoryResponse::getInstance()->get()->getNewAccount(), Cache\NewNonceResponse::getInstance()->get()->getNonce(), $this->_account->getKeyDirectoryPath() ); $result = Connector\Connector::getInstance()->request( Connector\Connector::METHOD_POST, Cache\DirectoryResponse::getInstance()->get()->getNewAccount(), $jwk ); return new Response\Account\Create($result); } }PK!0$Glets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Account/Get.phpnu[_account = $account; } /** * @return Response\AbstractResponse|Response\Account\Get * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ public function getResponse() : Response\AbstractResponse { $payload = [ 'onlyReturnExisting' => true, ]; $jwk = Utilities\RequestSigner::JWKString( $payload, Cache\DirectoryResponse::getInstance()->get()->getNewAccount(), Cache\NewNonceResponse::getInstance()->get()->getNonce(), $this->_account->getKeyDirectoryPath() ); $result = Connector\Connector::getInstance()->request( Connector\Connector::METHOD_POST, Cache\DirectoryResponse::getInstance()->get()->getNewAccount(), $jwk ); return new Response\Account\Get($result); } }PK!լY66Klets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Account/GetData.phpnu[_getRawResponse()); } }PK!-77Jlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Account/Update.phpnu[_newEmail = $newEmail; } protected function _getPayload() : array { return [ 'contact' => $this->_buildContactPayload($this->_newEmail), ]; } /** * @return Response\AbstractResponse|Response\Account\Update * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ public function getResponse() : Response\AbstractResponse { return new Response\Account\Update($this->_getRawResponse()); } } PK!ɓ*`Tlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Account/AbstractLocation.phpnu[_account = $account; } /** * @return Connector\RawResponse * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ protected function _getRawResponse() : Connector\RawResponse { $payload = $this->_getPayload(); if(count($payload) == 0) { $payload['rand-' . rand(100000, 1000000)] = 1; } $kid = Utilities\RequestSigner::KID( $payload, Cache\AccountResponse::getInstance()->get($this->_account)->getLocation(), Cache\AccountResponse::getInstance()->get($this->_account)->getLocation(), Cache\NewNonceResponse::getInstance()->get()->getNonce(), $this->_account->getKeyDirectoryPath() ); $result = Connector\Connector::getInstance()->request( Connector\Connector::METHOD_POST, Cache\AccountResponse::getInstance()->get($this->_account)->getLocation(), $kid ); return $result; } abstract protected function _getPayload() : array; }PK!V\\Nlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Account/Deactivate.phpnu[ 'deactivated', ]; } /** * @return Response\AbstractResponse|Response\Account\Deactivate * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ public function getResponse() : Response\AbstractResponse { return new Response\Account\Deactivate($this->_getRawResponse()); } } PK!w-K K Nlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Account/ChangeKeys.phpnu[_account = $account; } /** * @return Response\AbstractResponse|Response\Account\ChangeKeys * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ public function getResponse() : Response\AbstractResponse { $currentPrivateKey = openssl_pkey_get_private( file_get_contents($this->_account->getKeyDirectoryPath() . 'private.pem') ); $currentPrivateKeyDetails = openssl_pkey_get_details($currentPrivateKey); /** * draft-13 Section 7.3.6 * "newKey" is deprecated after August 23rd 2018 */ $newPrivateKey = openssl_pkey_get_private( file_get_contents($this->_account->getKeyDirectoryPath() . 'private-replacement.pem') ); $newPrivateKeyDetails = openssl_pkey_get_details($newPrivateKey); $innerPayload = [ 'account' => Cache\AccountResponse::getInstance()->get($this->_account)->getLocation(), 'oldKey' => [ "kty" => "RSA", "n" => Utilities\Base64::UrlSafeEncode($currentPrivateKeyDetails["rsa"]["n"]), "e" => Utilities\Base64::UrlSafeEncode($currentPrivateKeyDetails["rsa"]["e"]) ], 'newKey' => [ "kty" => "RSA", "n" => Utilities\Base64::UrlSafeEncode($newPrivateKeyDetails["rsa"]["n"]), "e" => Utilities\Base64::UrlSafeEncode($newPrivateKeyDetails["rsa"]["e"]) ] ]; $outerPayload = Utilities\RequestSigner::JWK( $innerPayload, Cache\DirectoryResponse::getInstance()->get()->getKeyChange(), Cache\NewNonceResponse::getInstance()->get()->getNonce(), $this->_account->getKeyDirectoryPath(), 'private-replacement.pem' ); $data = Utilities\RequestSigner::KID( $outerPayload, Cache\AccountResponse::getInstance()->get($this->_account)->getLocation(), Cache\DirectoryResponse::getInstance()->get()->getKeyChange(), Cache\NewNonceResponse::getInstance()->get()->getNonce(), $this->_account->getKeyDirectoryPath(), 'private.pem' ); $result = Connector\Connector::getInstance()->request( Connector\Connector::METHOD_POST, Cache\DirectoryResponse::getInstance()->get()->getKeyChange(), $data ); return new Response\Account\ChangeKeys($result); } } PK!JGHlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/GetDirectory.phpnu[request( Connector::METHOD_GET, $connector->getBaseURL() . '/directory' ); return new Response\GetDirectory($result); } }PK!ٍ3XXMlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Authorization/Get.phpnu[_account = $account; $this->_authorizationURL = $authorizationURL; } /** * @return Response\AbstractResponse|Response\Authorization\Get * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached * @throws Exception\ExpiredAuthorization */ public function getResponse() : Response\AbstractResponse { $kid = Utilities\RequestSigner::KID( null, Cache\AccountResponse::getInstance()->get($this->_account)->getLocation(), $this->_authorizationURL, Cache\NewNonceResponse::getInstance()->get()->getNonce(), $this->_account->getKeyDirectoryPath() ); $result = Connector\Connector::getInstance()->request( Connector\Connector::METHOD_POST, $this->_authorizationURL, $kid ); return new Response\Authorization\Get($result); } }PK!H~~Olets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Authorization/Start.phpnu[_account = $account; $this->_order = $order; $this->_challenge = $challenge; } /** * @return Response\AbstractResponse|Response\Authorization\Start * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached * @throws Exception\ExpiredAuthorization */ public function getResponse() : Response\AbstractResponse { $payload = [ 'keyAuthorization' => (new ChallengeAuthorizationKey($this->_account))->get($this->_challenge->token) ]; $kid = Utilities\RequestSigner::KID( $payload, Cache\AccountResponse::getInstance()->get($this->_account)->getLocation(), $this->_challenge->url, Cache\NewNonceResponse::getInstance()->get()->getNonce(), $this->_account->getKeyDirectoryPath() ); $result = Connector\Connector::getInstance()->request( Connector\Connector::METHOD_POST, $this->_challenge->url, $kid ); return new Response\Authorization\Start($result); } }PK!.哾__Hlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Order/Create.phpnu[_order = $order; } /** * @return Response\AbstractResponse|Response\Order\Create * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ public function getResponse() : Response\AbstractResponse { $identifiers = []; foreach($this->_order->getSubjects() as $subject) { $identifiers[] = [ 'type' => 'dns', 'value' => $subject ]; } $payload = [ 'identifiers' => $identifiers, 'notBefore' => '', 'notAfter' => '', ]; $kid = Utilities\RequestSigner::KID( $payload, Cache\AccountResponse::getInstance()->get($this->_order->getAccount())->getLocation(), Cache\DirectoryResponse::getInstance()->get()->getNewOrder(), Cache\NewNonceResponse::getInstance()->get()->getNonce(), $this->_order->getAccount()->getKeyDirectoryPath() ); $result = Connector\Connector::getInstance()->request( Connector\Connector::METHOD_POST, Cache\DirectoryResponse::getInstance()->get()->getNewOrder(), $kid ); return new Response\Order\Create($result); } }PK!zbffElets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Order/Get.phpnu[_order = $order; $this->_orderResponse = $orderResponse; } /** * @return Response\AbstractResponse|Response\Order\Get * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ public function getResponse() : Response\AbstractResponse { $kid = Utilities\RequestSigner::KID( null, Cache\AccountResponse::getInstance()->get($this->_order->getAccount())->getLocation(), $this->_orderResponse->getLocation(), Cache\NewNonceResponse::getInstance()->get()->getNonce(), $this->_order->getAccount()->getKeyDirectoryPath() ); $result = Connector\Connector::getInstance()->request( Connector\Connector::METHOD_POST, $this->_orderResponse->getLocation(), $kid ); return new Response\Order\Get($result, $this->_orderResponse->getLocation()); } }PK!q,}}Plets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Order/GetCertificate.phpnu[_order = $order; $this->_orderResponse = $orderResponse; if($alternativeUrl !== null) { $this->_alternativeUrl = $alternativeUrl; } } /** * @return Response\AbstractResponse|Response\Order\GetCertificate * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ public function getResponse() : Response\AbstractResponse { $url = $this->_alternativeUrl === null ? $this->_orderResponse->getCertificate() : $this->_alternativeUrl; $kid = Utilities\RequestSigner::KID( null, Cache\AccountResponse::getInstance()->get($this->_order->getAccount())->getLocation(), $url, Cache\NewNonceResponse::getInstance()->get()->getNonce(), $this->_order->getAccount()->getKeyDirectoryPath() ); $result = Connector\Connector::getInstance()->request( Connector\Connector::METHOD_POST, $url, $kid ); return new Response\Order\GetCertificate($result); } }PK!SP&4!!Slets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Order/RevokeCertificate.phpnu[_certificateBundle = $certificateBundle; $this->_reason = $reason; } /** * @return Response\AbstractResponse|Response\Order\RevokeCertificate * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ public function getResponse() : Response\AbstractResponse { $certificate = file_get_contents($this->_certificateBundle->path . $this->_certificateBundle->certificate); preg_match('~-----BEGIN\sCERTIFICATE-----(.*)-----END\sCERTIFICATE-----~s', $certificate, $matches); $certificate = trim(Utilities\Base64::UrlSafeEncode(base64_decode(trim($matches[1])))); $payload = [ 'certificate' => $certificate, 'reason' => $this->_reason ]; $jwk = Utilities\RequestSigner::JWKString( $payload, Cache\DirectoryResponse::getInstance()->get()->getRevokeCert(), Cache\NewNonceResponse::getInstance()->get()->getNonce(), $this->_certificateBundle->path, $this->_certificateBundle->private ); $result = Connector\Connector::getInstance()->request( Connector\Connector::METHOD_POST, Cache\DirectoryResponse::getInstance()->get()->getRevokeCert(), $jwk ); return new Response\Order\RevokeCertificate($result); } }PK!cJlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Order/Finalize.phpnu[_order = $order; $this->_orderResponse = $orderResponse; } /** * @return Response\AbstractResponse|Response\Order\Finalize * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ public function getResponse() : Response\AbstractResponse { $csr = Utilities\Certificate::generateCSR($this->_order); if(preg_match('~-----BEGIN\sCERTIFICATE\sREQUEST-----(.*)-----END\sCERTIFICATE\sREQUEST-----~s', $csr, $matches)) $csr = $matches[1]; $csr = trim(Utilities\Base64::UrlSafeEncode(base64_decode($csr))); $payload = [ 'csr' => $csr ]; $kid = Utilities\RequestSigner::KID( $payload, Cache\AccountResponse::getInstance()->get($this->_order->getAccount())->getLocation(), $this->_orderResponse->getFinalize(), Cache\NewNonceResponse::getInstance()->get()->getNonce(), $this->_order->getAccount()->getKeyDirectoryPath() ); $result = Connector\Connector::getInstance()->request( Connector\Connector::METHOD_POST, $this->_orderResponse->getFinalize(), $kid ); return new Response\Order\Finalize($result); } }PK!2R͜  Klets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/AbstractRequest.phpnu[request( Connector\Connector::METHOD_HEAD, Cache\DirectoryResponse::getInstance()->get()->getNewNonce() ); return new Response\GetNewNonce($result); } }PK!>W Glets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/AbstractKeyValuable.phpnu[_identifier . $appendix . DIRECTORY_SEPARATOR; } public function getKeyDirectoryPath() : string { return $this->_getKeyDirectoryPath(''); } protected function _initKeyDirectory(string $keyType = self::KEY_TYPE_RSA, bool $ignoreIfKeysExist = false) { if(!file_exists($this->getKeyDirectoryPath())) { mkdir($this->getKeyDirectoryPath()); } if(!$ignoreIfKeysExist && ( file_exists($this->getKeyDirectoryPath() . 'private.pem') || file_exists($this->getKeyDirectoryPath() . 'public.pem') ) ) { throw new \RuntimeException( 'Keys exist already. Exists the ' . get_class($this) . ' already?' . PHP_EOL . 'Path: ' . $this->getKeyDirectoryPath() ); } if($keyType == self::KEY_TYPE_RSA) { Utilities\KeyGenerator::RSA( $this->getKeyDirectoryPath(), 'private.pem', 'public.pem' ); } else if($keyType == self::KEY_TYPE_EC) { Utilities\KeyGenerator::EC( $this->getKeyDirectoryPath(), 'private.pem', 'public.pem' ); } else { throw new \RuntimeException('Key type "' . $keyType . '" not supported.'); } } protected function _clearKeyDirectory() { if(file_exists($this->getKeyDirectoryPath() . 'private.pem')) { unlink($this->getKeyDirectoryPath() . 'private.pem'); } if(file_exists($this->getKeyDirectoryPath() . 'public.pem')) { unlink($this->getKeyDirectoryPath() . 'public.pem'); } } protected function _getAccountIdentifier(Account $account) : string { $staging = Connector::getInstance()->isUsingStagingServer(); return 'account_' . ($staging ? 'staging_' : 'live_') . $account->getEmail(); } }PK!4Llets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Struct/CertificateBundle.phpnu[path = $path; $this->private = $private; $this->certificate = $certificate; $this->intermediate = $intermediate; $this->expireTime = $expireTime; } }PK!qW@@Tlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Struct/ChallengeAuthorizationKey.phpnu[_account = $account; } public function get(string $token) : string { return $token . '.' . $this->_getDigest(); } public function getEncoded(string $token) : string { return Utilities\Base64::UrlSafeEncode( hash('sha256', $this->get($token), true) ); } private function _getDigest() : string { $privateKey = openssl_pkey_get_private(file_get_contents($this->_account->getKeyDirectoryPath() . 'private.pem')); $details = openssl_pkey_get_details($privateKey); $header = array( "e" => Utilities\Base64::UrlSafeEncode($details["rsa"]["e"]), "kty" => "RSA", "n" => Utilities\Base64::UrlSafeEncode($details["rsa"]["n"]) ); return Utilities\Base64::UrlSafeEncode(hash('sha256', json_encode($header), true)); } }PK!3H|qqKlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Account/Create.phpnu[_preg_match_headerLine($this->_pattern_header_location); return trim($matches[1]); } }PK!xwssLlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Account/GetData.phpnu[_raw->body['key']; } public function getContact() : string { return $this->_raw->body['contact']; } public function getAgreement() : string { return $this->_raw->body['agreement']; } public function getInitialIP() : string { return $this->_raw->body['initialIp']; } public function getCreatedAt() : string { return $this->_raw->body['createdAt']; } public function getStatus() : string { return $this->_raw->body['status']; } }PK!z_raw->body['keyChange']; } public function getNewAccount() : string { return $this->_raw->body['newAccount']; } public function getNewNonce() : string { return $this->_raw->body['newNonce']; } public function getNewOrder() : string { return $this->_raw->body['newOrder']; } public function getRevokeCert() : string { return $this->_raw->body['revokeCert']; } public function getTermsOfService() : string { return $this->_raw->body['meta']['termsOfService']; } public function getWebsite() : string { return $this->_raw->body['meta']['website']; } public function getCaaIdentities() : string { return $this->_raw->body['meta']['caaIdentities']; } } PK!mvvMlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/AbstractResponse.phpnu[_raw = $raw; if($this->_isRateLimitReached()) { $detail = ""; if(isset($raw->body['type']) && $raw->body['type'] == 'urn:ietf:params:acme:error:rateLimited') { $detail = $raw->body['detail']; } throw new Exception\RateLimitReached($raw->request, $detail); } $result = $this->_isValid(); if(!$result) { $responseStatus = $this->_preg_match_headerLine('/^HTTP\/.* [0-9]{3,} /i'); throw new Exception\InvalidResponse( $raw, $responseStatus ? $responseStatus[1] : null ); } } protected function _preg_match_headerLine(string $pattern) : ?array { foreach($this->_raw->header as $line) { if(preg_match($pattern, $line, $matches) === 1) return $matches; } return null; } protected function _isRateLimitReached() : bool { return $this->_preg_match_headerLine('/^HTTP\/.* 429/i') !== null; } protected function _isValid() : bool { return $this->_preg_match_headerLine('/^HTTP\/.* 201/i') !== null || //Created $this->_preg_match_headerLine('/^HTTP\/.* 200/i') !== null || $this->_preg_match_headerLine('/^HTTP\/.* 204/i') !== null; } public function getRaw() : RawResponse { return $this->_raw; } }PK!vdKNNNlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Authorization/Get.phpnu[_raw->body['identifier']['type'], $this->_raw->body['identifier']['value']); } public function getStatus() : string { return $this->_raw->body['status']; } public function getExpires() : string { return $this->_raw->body['expires']; } public function getChallenges() : array { return $this->_raw->body['challenges']; } /** * @param $type * @return Struct\Challenge */ public function getChallenge(string $type) : Struct\Challenge { foreach($this->getChallenges() as $challenge) { if($type == $challenge['type']) return new Struct\Challenge($challenge['type'], $challenge['status'], $challenge['url'], $challenge['token']); } throw new \RuntimeException('No challenge found with given type'); } }PK!%--[lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Authorization/Struct/Challenge.phpnu[type = $type; $this->status = $status; $this->url = $url; $this->token = $token; } }PK!type = $type; $this->value = $value; } }PK!||Plets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Authorization/Start.phpnu[_preg_match_headerLine('/^HTTP\/.* 404/i') !== null) { throw new Exception\ExpiredAuthorization(); } return parent::_isValid(); } }PK!FWmmIlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Order/Create.phpnu[header[] = 'Location: ' . $orderURL; parent::__construct($raw); } }PK!caOOQlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Order/GetCertificate.phpnu[_pattern, $this->_raw->body, $matches)) { return $matches[0][0]; } throw new \RuntimeException('Preg_match_all has returned false - invalid pattern?'); } public function getIntermediate() : string { if(preg_match_all($this->_pattern, $this->_raw->body, $matches)) { $result = ''; for($i=1; $i_raw->header as $line) { $matches = []; preg_match_all('/^link: <(.*)>;rel="alternate"$/', $line, $matches); if(isset($matches[1][0])) { $result[] = $matches[1][0]; } } return $result; } }PK!^Tlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Order/RevokeCertificate.phpnu[_preg_match_headerLine($this->_pattern_header_location); return trim($matches[1]); } public function getStatus() : string { return $this->_raw->body['status']; } public function getExpires() : string { return $this->_raw->body['expires']; } public function getIdentifiers() : array { return $this->_raw->body['identifiers']; } public function getAuthorizations() : array { return $this->_raw->body['authorizations']; } public function getFinalize() : string { return $this->_raw->body['finalize']; } public function getCertificate() : string { return $this->_raw->body['certificate']; } /** * @return bool * @throws Exception\StatusInvalid */ protected function _isValid(): bool { if(!parent::_isValid()) { return false; } if( $this->getStatus() == AbstractOrder::STATUS_INVALID ) { throw new Exception\StatusInvalid('Order has status "' . AbstractOrder::STATUS_INVALID . '"'. '. Probably all authorizations have failed. ' . PHP_EOL . 'Please see: ' . $this->getLocation() . PHP_EOL . 'Continue by using $order->clear() after getting rid of the problem' ); } return true; } }PK!b/Hlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/GetNewNonce.phpnu[_preg_match_headerLine($this->_pattern) !== null; } public function getNonce() : string { $matches = $this->_preg_match_headerLine($this->_pattern); return trim($matches[1]); } }PK! Glets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Connector/Connector.phpnu[_useStagingServer = $useStagingServer; } public function isUsingStagingServer() : bool { return $this->_useStagingServer; } public function getBaseURL() : string { return $this->_useStagingServer ? $this->_stagingBaseURL : $this->_baseURL; } /** * Makes a Curl request. * * @param string $method The HTTP method to use. Accepting GET, POST and HEAD requests. * @param string $url The URL to make the request to. * @param string $data The body to attach to a POST request. Expected as a JSON encoded string. * * @return RawResponse * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ public function request(string $method, string $url, string $data = null) : RawResponse { Utilities\Logger::getInstance()->add(Utilities\Logger::LEVEL_INFO, 'will request from ' . $url, $data); $handle = curl_init(); $headers = array( 'Accept: application/json', 'Content-Type: ' . ($method == self::METHOD_POST ? 'application/jose+json' : 'application/json') // ACME draft-10, section 6.2 ); curl_setopt($handle, CURLOPT_URL, $url); curl_setopt($handle, CURLOPT_HTTPHEADER, $headers); curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); curl_setopt($handle, CURLOPT_HEADER, true); switch ($method) { case self::METHOD_GET: break; case self::METHOD_POST: curl_setopt($handle, CURLOPT_POST, true); curl_setopt($handle, CURLOPT_POSTFIELDS, $data); break; case self::METHOD_HEAD: curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'HEAD'); curl_setopt($handle, CURLOPT_NOBODY, true); break; default: throw new \RuntimeException('HTTP request ' . $method . ' not supported.'); break; } $response = curl_exec($handle); if(curl_errno($handle)) { throw new \RuntimeException('Curl: ' . curl_error($handle)); } $header_size = curl_getinfo($handle, CURLINFO_HEADER_SIZE); $rawResponse = new RawResponse(); $rawResponse->init($method, $url, $response, $header_size); Utilities\Logger::getInstance()->add(Utilities\Logger::LEVEL_INFO, self::class . ': response received', $rawResponse); try { $getNewNonceResponse = new Response\GetNewNonce($rawResponse); Cache\NewNonceResponse::getInstance()->set($getNewNonceResponse); } catch(Exception\InvalidResponse $e) { if($method == self::METHOD_POST) { $request = new Request\GetNewNonce(); Cache\NewNonceResponse::getInstance()->set($request->getResponse()); } } return $rawResponse; } }PK!QIlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Connector/RawResponse.phpnu[request = $method . ' ' . $url; $this->header = array_map(function($line) { return trim($line); }, explode("\n", $header)); $this->body = $body_json === null ? $body : $body_json; } public function toString() : string { return serialize([ 'request' => $this->request, 'header' => $this->header, 'body' => $this->body, ]); } public static function getFromString(string $string) : self { $array = unserialize($string); $rawResponse = new self(); $rawResponse->request = $array['request']; $rawResponse->header = $array['header']; $rawResponse->body = $array['body']; return $rawResponse; } }PK!5\\Blets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/SingletonTrait.phpnu[getKeyDirectoryPath(); } }PK!055Glets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Cache/OrderResponse.phpnu[getKeyDirectoryPath() . self::_FILE; $deprecatedCacheFile = $order->getKeyDirectoryPath() . self::_DEPRECATED_FILE; return file_exists($cacheFile) || file_exists($deprecatedCacheFile); } /** * @param Order $order * @return Response\Order\AbstractOrder * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ public function get(Order $order): Response\Order\AbstractOrder { $accountIdentifier = $this->_getObjectIdentifier($order->getAccount()); $orderIdentifier = $this->_getObjectIdentifier($order); if(!isset($this->_responses[$accountIdentifier])) { $this->_responses[$accountIdentifier] = []; } if(array_key_exists($orderIdentifier, $this->_responses[$accountIdentifier])) { return $this->_responses[ $accountIdentifier ][ $orderIdentifier ]; } $this->_responses[ $accountIdentifier ][ $orderIdentifier ] = null; $cacheFile = $order->getKeyDirectoryPath() . self::_FILE; $deprecatedCacheFile = $order->getKeyDirectoryPath() . self::_DEPRECATED_FILE; if(file_exists($deprecatedCacheFile) && !file_exists($cacheFile)) { rename($deprecatedCacheFile, $cacheFile); } if(file_exists($cacheFile)) { $rawResponse = Connector\RawResponse::getFromString(file_get_contents($cacheFile)); $response = new Response\Order\Create($rawResponse); if( $response->getStatus() != Response\Order\AbstractOrder::STATUS_VALID ) { Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_DEBUG, get_class() . '::' . __FUNCTION__ . ' (cache did not satisfy, status "' . $response->getStatus() . '")' ); $request = new Request\Order\Get($order, $response); $response = $request->getResponse(); $this->set($order, $response); return $response; } Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_DEBUG, get_class() . '::' . __FUNCTION__ . ' (from cache, status "' . $response->getStatus() . '")' ); $this->_responses[$accountIdentifier][$orderIdentifier] = $response; return $response; } throw new \RuntimeException( self::_FILE . ' could not be found for order: ' . '- Path: ' . $order->getKeyDirectoryPath() . PHP_EOL . '- Subjects: ' . var_export($order->getSubjects(), true) . PHP_EOL ); } public function set(Order $order, Response\Order\AbstractOrder $response = null) : void { $accountIdentifier = $this->_getObjectIdentifier($order->getAccount()); $orderIdentifier = $this->_getObjectIdentifier($order); $filePath = $order->getKeyDirectoryPath() . self::_FILE; if($response === null) { unset($this->_responses[$accountIdentifier][$orderIdentifier]); if(file_exists($filePath)) { unlink($filePath); } return; } $this->_responses[$accountIdentifier][$orderIdentifier] = $response; file_put_contents($filePath, $response->getRaw()->toString()); } }PK!({:ɩKlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Cache/DirectoryResponse.phpnu[_index, $this->_responses)) { return $this->_responses[$this->_index]; } $this->_responses[$this->_index] = null; $cacheFile = Account::getCommonKeyDirectoryPath() . self::_FILE; if(file_exists($cacheFile) && filemtime($cacheFile) > strtotime('-2 days')) { $rawResponse = Connector\RawResponse::getFromString(file_get_contents($cacheFile)); try { return $this->_responses[$this->_index] = new Response\GetDirectory($rawResponse); } catch(Exception\AbstractException $e) { unlink($cacheFile); } } $request = new Request\GetDirectory(); $response = $request->getResponse(); $this->set($response); return $response; } public function set(Response\GetDirectory $response) : void { $cacheFile = Account::getCommonKeyDirectoryPath() . self::_FILE; $this->_responses[$this->_index] = $response; file_put_contents($cacheFile, $response->getRaw()->toString()); } }PK!T!UJlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Cache/NewNonceResponse.phpnu[_index, $this->_responses)) { return $this->_responses[$this->_index]; } $this->_responses[$this->_index] = null; $request = new Request\GetNewNonce(); $response = $request->getResponse(); $this->set($response); return $response; } public function set(Response\GetNewNonce $response) : void { $this->_responses[$this->_index] = $response; } }PK!Ix! ! Ilets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Cache/AccountResponse.phpnu[_getObjectIdentifier($account); if(array_key_exists($accountIdentifier, $this->_responses)) { return $this->_responses[ $accountIdentifier ]; } $this->_responses[ $accountIdentifier ] = null; $cacheFile = $account->getKeyDirectoryPath() . self::_FILE; $deprecatedCacheFile = $account->getKeyDirectoryPath() . self::_DEPRECATED_FILE; if(file_exists($deprecatedCacheFile) && !file_exists($cacheFile)) { rename($deprecatedCacheFile, $cacheFile); } if(file_exists($cacheFile) && filemtime($cacheFile) > strtotime('-7 days')) { $rawResponse = Connector\RawResponse::getFromString(file_get_contents($cacheFile)); $response = new Response\Account\Create($rawResponse); $this->_responses[ $accountIdentifier ] = $response; Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_DEBUG, get_class() . '::' . __FUNCTION__ . ' response from cache' ); return $response; } $request = new Request\Account\Get($account); $response = $request->getResponse(); $this->set($account, $response); return $response; } public function set(Account $account, Response\Account\AbstractAccount $response = null) : void { $accountIdentifier = $this->_getObjectIdentifier($account); $filePath = $account->getKeyDirectoryPath() . self::_FILE; if($response === null) { unset($this->_responses[$accountIdentifier]); if(file_exists($filePath)) { unlink($filePath); } return; } $this->_responses[$accountIdentifier] = $response; file_put_contents($filePath, $response->getRaw()->toString()); } }PK!fKlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Utilities/RequestSigner.phpnu[add(Logger::LEVEL_DEBUG, 'JWK sign request for ' . $url, $payload); $privateKey = openssl_pkey_get_private(file_get_contents($privateKeyDir . $privateKeyFile)); $details = openssl_pkey_get_details($privateKey); $protected = [ "alg" => "RS256", "jwk" => [ "kty" => "RSA", "n" => Base64::UrlSafeEncode($details["rsa"]["n"]), "e" => Base64::UrlSafeEncode($details["rsa"]["e"]), ], "nonce" => $nonce, "url" => $url ]; $payload64 = Base64::UrlSafeEncode(str_replace('\\/', '/', json_encode($payload))); $protected64 = Base64::UrlSafeEncode(json_encode($protected)); openssl_sign($protected64.'.'.$payload64, $signed, $privateKey, "SHA256"); $signed64 = Base64::UrlSafeEncode($signed); $data = array( 'protected' => $protected64, 'payload' => $payload64, 'signature' => $signed64 ); return $data; } /** * Generates a JSON Web Key signature to attach to the request. * * @param array $payload The payload to add to the signature. * @param string $url The URL to use in the signature. * @param string $nonce * @param string $privateKeyDir The directory to get the private key from. Default to the account keys directory given in the constructor. (optional) * @param string $privateKeyFile The private key to sign the request with. Defaults to 'private.pem'. (optional) * * @return string Returns a JSON encoded string containing the signature. */ public static function JWKString(array $payload, string $url, string $nonce, string $privateKeyDir, string $privateKeyFile = 'private.pem') : string { $jwk = self::JWK($payload, $url, $nonce, $privateKeyDir, $privateKeyFile); return json_encode($jwk); } /** * Generates a Key ID signature to attach to the request. * * @param array|null $payload The payload to add to the signature. * @param string $kid The Key ID to use in the signature. * @param string $url The URL to use in the signature. * @param string $nonce * @param string $privateKeyDir The directory to get the private key from. * @param string $privateKeyFile The private key to sign the request with. Defaults to 'private.pem'. (optional) * * @return string Returns a JSON encoded string containing the signature. */ public static function KID(?array $payload, string $kid, string $url, string $nonce, string $privateKeyDir, string $privateKeyFile = 'private.pem') : string { Logger::getInstance()->add(Logger::LEVEL_DEBUG, 'KID sign request for ' . $url, $payload); $privateKey = openssl_pkey_get_private(file_get_contents($privateKeyDir . $privateKeyFile)); // TODO: unused - $details = openssl_pkey_get_details($privateKey); $protected = [ "alg" => "RS256", "kid" => $kid, "nonce" => $nonce, "url" => $url ]; Logger::getInstance()->add(Logger::LEVEL_DEBUG, 'KID: ready to sign request for: ' . $url, $protected); $payload = $payload === null ? "" : str_replace('\\/', '/', json_encode($payload)); $payload64 = Base64::UrlSafeEncode($payload); $protected64 = Base64::UrlSafeEncode(json_encode($protected)); openssl_sign($protected64.'.'.$payload64, $signed, $privateKey, "SHA256"); $signed64 = Base64::UrlSafeEncode($signed); $data = [ 'protected' => $protected64, 'payload' => $payload64, 'signature' => $signed64 ]; return json_encode($data); } }PK!1|Ilets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Utilities/Certificate.phpnu[ $order->getSubjects()[0] ]; $san = implode(",", array_map(function ($dns) { return "DNS:" . $dns; }, $order->getSubjects()) ); $configFilePath = $order->getKeyDirectoryPath() . 'csr_config'; $config = 'HOME = . RANDFILE = ' . $order->getKeyDirectoryPath() . '.rnd [ req ] default_bits = 4096 default_keyfile = privkey.pem distinguished_name = req_distinguished_name req_extensions = v3_req [ req_distinguished_name ] countryName = Country Name (2 letter code) [ v3_req ] basicConstraints = CA:FALSE subjectAltName = ' . $san . ' keyUsage = nonRepudiation, digitalSignature, keyEncipherment'; if(self::$_featureOCSPMustStapleEnabled) { $config .= PHP_EOL . 'tlsfeature=status_request'; } file_put_contents($configFilePath, $config); $privateKey = openssl_pkey_get_private( file_get_contents($order->getKeyDirectoryPath() . 'private.pem') ); if($privateKey === false) { throw new OpenSSLException('openssl_pkey_get_private'); } $csr = openssl_csr_new( $dn, $privateKey, [ 'config' => $configFilePath, 'digest_alg' => 'sha256' ] ); if($csr === false) { throw new OpenSSLException('openssl_csr_new'); } if(!openssl_csr_export($csr, $csr)) { throw new OpenSSLException('openssl_csr_export'); } unlink($configFilePath); return $csr; } }PK!o:kD D Jlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Utilities/KeyGenerator.phpnu[ OPENSSL_KEYTYPE_RSA, "private_key_bits" => 4096, ]); if(!openssl_pkey_export($res, $privateKey)) throw new \RuntimeException("RSA keypair export failed!"); $details = openssl_pkey_get_details($res); file_put_contents($directory . $privateKeyFile, $privateKey); file_put_contents($directory . $publicKeyFile, $details['key']); if(PHP_MAJOR_VERSION < 8) { // deprecated after PHP 8.0.0 and not needed anymore openssl_pkey_free($res); } } /** * Generates a new EC prime256v1 keypair and saves both keys to a new file. * * @param string $directory The directory in which to store the new keys. * @param string $privateKeyFile The filename for the private key file. * @param string $publicKeyFile The filename for the public key file. */ public static function EC(string $directory, string $privateKeyFile = 'private.pem', string $publicKeyFile = 'public.pem') { if (version_compare(PHP_VERSION, '7.1.0') == -1) throw new \RuntimeException("PHP 7.1+ required for EC keys"); $res = openssl_pkey_new([ "private_key_type" => OPENSSL_KEYTYPE_EC, "curve_name" => "prime256v1", ]); if(!openssl_pkey_export($res, $privateKey)) throw new \RuntimeException("EC keypair export failed!"); $details = openssl_pkey_get_details($res); file_put_contents($directory . $privateKeyFile, $privateKey); file_put_contents($directory . $publicKeyFile, $details['key']); if(PHP_MAJOR_VERSION < 8) { // deprecated after PHP 8.0.0 and not needed anymore openssl_pkey_free($res); } } }PK!@]Dlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Utilities/Base64.phpnu[_desiredLevel = $desiredLevel; } /** * @param int $level * @param string $message * @param string|array|object $data */ public function add(int $level, string $message, $data = array()) { if($level > $this->_desiredLevel) return; $e = new \Exception(); $trace = $e->getTrace(); unset($trace[0]); $output = '' . date('d-m-Y H:i:s') . ': ' . $message . '
' . "\n"; if($this->_desiredLevel == self::LEVEL_DEBUG) { $step = 0; foreach ($trace as $traceItem) { if(!isset($traceItem['class']) || !isset($traceItem['function'])) { continue; } $output .= 'Trace #' . $step . ': ' . $traceItem['class'] . '::' . $traceItem['function'] . '
' . "\n"; $step++; } if ((is_array($data) && count($data) > 0) || !is_array($data)) $output .= "\n" .'
Data:
' . "\n" . '
' . var_export($data, true) . '
'; $output .= '

' . "\n\n"; } if(PHP_SAPI == 'cli') { $output = strip_tags($output); } echo $output; } }PK!tv v Blets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Authorizer/DNS.phpnu[status == Response\Authorization\Struct\Challenge::STATUS_PENDING) { if(self::$_dnsWriter === null) { throw new \RuntimeException('DNS writer is not set'); } if( self::$_dnsWriter->write( $this->_order, $authorizationResponse->getIdentifier()->value, (new ChallengeAuthorizationKey($this->_account))->getEncoded($challenge->token) ) ) { $request = new Request\Authorization\Start($this->_account, $this->_order, $challenge); /* $response = */ $request->getResponse(); } else { Utilities\Logger::getInstance()->add(Utilities\Logger::LEVEL_INFO, 'Pending challenge deferred'); } } if($challenge->status == Response\Authorization\Struct\Challenge::STATUS_INVALID) { throw new Exception\DNSAuthorizationInvalid( 'Received status "' . Response\Authorization\Struct\Challenge::STATUS_INVALID . '" while challenge should be verified' ); } return parent::_existsNotValidChallenges($challenge, $authorizationResponse); } }PK!Vj##Clets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Authorizer/HTTP.phpnu[add( Utilities\Logger::LEVEL_DEBUG, 'Challenge "' . $challenge->token . '" has status:' . $challenge->status ); if($challenge->status == Response\Authorization\Struct\Challenge::STATUS_PENDING) { $this->_writeToFile($challenge); if($this->_validateFile($authorizationResponse->getIdentifier()->value, $challenge)) { $request = new Request\Authorization\Start($this->_account, $this->_order, $challenge); /* $response = */ $request->getResponse(); } else { Utilities\Logger::getInstance()->add(Utilities\Logger::LEVEL_INFO, 'Could not validate HTTP Authorization file'); } } if($challenge->status == Response\Authorization\Struct\Challenge::STATUS_INVALID) { throw new Exception\HTTPAuthorizationInvalid( 'Received status "' . Response\Authorization\Struct\Challenge::STATUS_INVALID . '" while challenge should be verified' ); } return parent::_existsNotValidChallenges($challenge, $authorizationResponse); } private function _writeToFile(Response\Authorization\Struct\Challenge $challenge) : void { file_put_contents( self::$_directoryPath . $challenge->token, (new ChallengeAuthorizationKey($this->_account))->get($challenge->token) ); } /** * @param string $domain * @param Response\Authorization\Struct\Challenge $challenge * @return bool * * @throws Exception\HTTPAuthorizationInvalid */ private function _validateFile(string $domain, Response\Authorization\Struct\Challenge $challenge) : bool { if ( get_option('rsssl_skip_challenge_directory_request') ) { return true; } $challengeAuthorizationKey = new ChallengeAuthorizationKey($this->_account); $requestURL = 'http://' . $domain . '/.well-known/acme-challenge/' . $challenge->token; $handle = curl_init(); curl_setopt($handle, CURLOPT_URL, $requestURL); curl_setopt($handle, CURLOPT_FOLLOWLOCATION, true); curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($handle); $result = !empty($response) && $response == $challengeAuthorizationKey->get($challenge->token); if(!$result) { throw new Exception\HTTPAuthorizationInvalid( 'HTTP challenge for "' . $domain . '"": ' . $domain . '/.well-known/acme-challenge/' . $challenge->token . ' tested, found invalid. CURL response: ' . var_export($response, true) ); } return true; } }PK!݆Qlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Authorizer/AbstractAuthorizer.phpnu[_account = $account; $this->_order = $order; $this->_fetchAuthorizationResponses(); } /** @var Response\Authorization\Get[] $_authorizationResponses */ protected $_authorizationResponses = []; /** * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached * @throws Exception\ExpiredAuthorization */ protected function _fetchAuthorizationResponses() { if(!file_exists($this->_order->getKeyDirectoryPath() . 'private.pem')) { Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_DEBUG, get_class() . '::' . __FUNCTION__ . ' result suppressed (Order has finished already)' ); return; } $orderResponse = Cache\OrderResponse::getInstance()->get($this->_order); foreach($orderResponse->getAuthorizations() as $authorization) { $request = new Request\Authorization\Get($this->_account, $authorization); $this->_authorizationResponses[] = $request->getResponse(); } } protected function _hasValidAuthorizationResponses() : bool { return count($this->_authorizationResponses) > 0; } public function shouldStartAuthorization() : bool { foreach($this->_authorizationResponses as $response) { $challenge = $response->getChallenge($this->_getChallengeType()); if($challenge->status == Response\Authorization\Struct\Challenge::STATUS_PENDING) { Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_DEBUG, get_class() . '::' . __FUNCTION__ . ' "Pending challenge found', $challenge ); return true; } } return false; } abstract protected function _getChallengeType() : string; /** * @throws Exception\AuthorizationInvalid * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached * @throws Exception\ExpiredAuthorization */ public function progress() { if(!$this->_hasValidAuthorizationResponses()) return; $existsNotValidChallenges = false; foreach($this->_authorizationResponses as $authorizationResponse) { $challenge = $authorizationResponse->getChallenge($this->_getChallengeType()); if($this->_existsNotValidChallenges($challenge, $authorizationResponse)) { $existsNotValidChallenges = true; } } $this->_finished = !$existsNotValidChallenges; } /** * @param Response\Authorization\Struct\Challenge $challenge * @param Response\Authorization\Get $authorizationResponse * @return bool * * @throws Exception\AuthorizationInvalid */ protected function _existsNotValidChallenges(Response\Authorization\Struct\Challenge $challenge, Response\Authorization\Get $authorizationResponse ) : bool { if($challenge->status == Response\Authorization\Struct\Challenge::STATUS_PENDING) { Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_DEBUG, get_class() . '::' . __FUNCTION__ . ' "Non valid challenge found', $challenge ); return true; } else if($challenge->status == Response\Authorization\Struct\Challenge::STATUS_PROGRESSING) { // Should come back later return true; } else if($challenge->status == Response\Authorization\Struct\Challenge::STATUS_VALID) { } else if($challenge->status == Response\Authorization\Struct\Challenge::STATUS_INVALID) { throw new Exception\AuthorizationInvalid( 'Received status "' . Response\Authorization\Struct\Challenge::STATUS_INVALID . '" while challenge should be verified' ); } else { throw new \RuntimeException('Challenge status "' . $challenge->status . '" is not implemented'); } return false; } protected $_finished = false; public function hasFinished() : bool { Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_DEBUG, get_called_class() . '::' . __FUNCTION__, $this->_finished ); return $this->_finished; } } PK!Plets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Authorizer/AbstractDNSWriter.phpnu[ 1) throw new \RuntimeException('Cannot create orders with multiple wildcards in one domain.'); }, $subjects); $this->_account = $account; $this->_subjects = $subjects; $this->_identifier = $this->_getAccountIdentifier($account) . DIRECTORY_SEPARATOR . 'order_' . md5(implode('|', $subjects)); Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_INFO, get_class() . '::' . __FUNCTION__ . ' "' . implode(':', $this->getSubjects()) . '"' ); Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_DEBUG, get_class() . '::' . __FUNCTION__ . ' path: ' . $this->getKeyDirectoryPath() ); } public function getAccount() : Account { return $this->_account; } public function getSubjects() : array { return $this->_subjects; } /** * @param Account $account * @param array $subjects * @param string $keyType * @return Order * @throws Exception\AbstractException */ public static function create(Account $account, array $subjects, string $keyType = self::KEY_TYPE_RSA) : Order { $order = new self($account, $subjects); return $order->_create($keyType, false); } /** * @param $keyType * @param bool $ignoreIfKeysExist * @return Order * @throws Exception\AbstractException */ protected function _create(string $keyType, bool $ignoreIfKeysExist = false) : Order { $this->_initKeyDirectory($keyType, $ignoreIfKeysExist); $request = new Request\Order\Create($this); try { $response = $request->getResponse(); Cache\OrderResponse::getInstance()->set($this, $response); return $this; } catch(Exception\AbstractException $e) { $this->_clearKeyDirectory(); throw $e; } } public static function exists(Account $account, array $subjects) : bool { $order = new self($account, $subjects); return Cache\OrderResponse::getInstance()->exists($order); } public static function get(Account $account, array $subjects) : Order { $order = new self($account, $subjects); if(!self::exists($account, $subjects)) throw new \RuntimeException('Order does not exist'); return $order; } /** @var Authorizer\AbstractAuthorizer|Authorizer\HTTP|null $_authorizer */ protected $_authorizer = null; /** * @param $type * @return Authorizer\AbstractAuthorizer|Authorizer\HTTP|null * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached * @throws Exception\ExpiredAuthorization */ protected function _getAuthorizer(string $type) : Authorizer\AbstractAuthorizer { if($this->_authorizer === null) { if($type == self::CHALLENGE_TYPE_HTTP) { $this->_authorizer = new Authorizer\HTTP($this->_account, $this); } else if($type == self::CHALLENGE_TYPE_DNS) { $this->_authorizer = new Authorizer\DNS($this->_account, $this); } else { throw new \RuntimeException('Challenge type not implemented'); } } return $this->_authorizer; } /** * The Authorization has expired, so we clean the complete order to restart again on the next call */ protected function _clearAfterExpiredAuthorization() { Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_INFO, get_class() . '::' . __FUNCTION__ . ' "Will clear after expired authorization' ); $this->clear(); } public function clear() { Cache\OrderResponse::getInstance()->set($this, null); $this->_clearKeyDirectory(); } /** * @return bool * @param $type * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ public function shouldStartAuthorization(string $type) : bool { try { return $this->_getAuthorizer($type)->shouldStartAuthorization(); } catch(Exception\ExpiredAuthorization $e) { $this->_clearAfterExpiredAuthorization(); return false; } } /** * @param $type * @return bool * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached * @throws Exception\AuthorizationInvalid */ public function authorize(string $type) : bool { try { $authorizer = $this->_getAuthorizer($type); $authorizer->progress(); return $authorizer->hasFinished(); } catch(Exception\ExpiredAuthorization $e) { $this->_clearAfterExpiredAuthorization(); return false; } } /** * @throws Exception\InvalidResponse * @throws Exception\RateLimitReached */ public function finalize() { if(!is_object($this->_authorizer) || !$this->_authorizer->hasFinished()) { throw new \RuntimeException('Not all challenges are valid. Please check result of authorize() first!'); } Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_INFO, get_class() . '::' . __FUNCTION__ . ' "Will finalize' ); $orderResponse = Cache\OrderResponse::getInstance()->get($this); if( $orderResponse->getStatus() == Response\Order\AbstractOrder::STATUS_PENDING /* DEPRECATED AFTER JULI 5TH 2018 */ || $orderResponse->getStatus() == Response\Order\AbstractOrder::STATUS_READY // ACME draft-12 Section 7.1.6 ) { $request = new Request\Order\Finalize($this, $orderResponse); $orderResponse = $request->getResponse(); Cache\OrderResponse::getInstance()->set($this, $orderResponse); } if($orderResponse->getStatus() == Response\Order\AbstractOrder::STATUS_VALID) { $request = new Request\Order\GetCertificate($this, $orderResponse); $response = $request->getResponse(); $certificate = $response->getCertificate(); $intermediate = $response->getIntermediate(); //$certificateInfo = openssl_x509_parse($certificate); //$certificateValidToTimeTimestamp = $certificateInfo['validTo_time_t']; $intermediateInfo = openssl_x509_parse($intermediate); if(self::$_preferredChain !== null) { Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_INFO, 'Preferred chain is set: ' . self::$_preferredChain ); } $found = false; if(self::$_preferredChain !== null && $intermediateInfo['issuer']['CN'] != self::$_preferredChain) { Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_INFO, 'Default certificate does not satisfy preferred chain, trying to fetch alternative' ); foreach($response->getAlternativeLinks() as $link) { $request = new Request\Order\GetCertificate($this, $orderResponse, $link); $response = $request->getResponse(); $alternativeCertificate = $response->getCertificate(); $alternativeIntermediate = $response->getIntermediate(); $intermediateInfo = openssl_x509_parse($intermediate); if($intermediateInfo['issuer']['CN'] != self::$_preferredChain) { continue; } $found = true; $certificate = $alternativeCertificate; $intermediate = $alternativeIntermediate; break; } if(!$found) { Utilities\Logger::getInstance()->add( Utilities\Logger::LEVEL_INFO, 'Preferred chain could not be satisfied, returning default chain' ); } } $this->_saveCertificate($certificate, $intermediate); } } private function _saveCertificate(string $certificate, string $intermediate) : void { $certificateInfo = openssl_x509_parse($certificate); $certificateValidToTimeTimestamp = $certificateInfo['validTo_time_t']; $path = $this->getKeyDirectoryPath() . self::BUNDLE_DIRECTORY_PREFIX . $certificateValidToTimeTimestamp . DIRECTORY_SEPARATOR; mkdir($path); rename($this->getKeyDirectoryPath() . 'private.pem', $path . 'private.pem'); file_put_contents($path . 'certificate.crt', $certificate); file_put_contents($path . 'intermediate.pem', $intermediate); Utilities\Logger::getInstance()->add(Utilities\Logger::LEVEL_INFO, 'Certificate received'); } const BUNDLE_DIRECTORY_PREFIX = 'bundle_'; protected function _getLatestCertificateDirectory() : ?string { $files = scandir($this->getKeyDirectoryPath(), SORT_NUMERIC | SORT_DESC); foreach($files as $file) { if( substr($file, 0, strlen(self::BUNDLE_DIRECTORY_PREFIX)) == self::BUNDLE_DIRECTORY_PREFIX && is_dir($this->getKeyDirectoryPath() . $file) ) { return $file; } } return null; } public function isCertificateBundleAvailable() : bool { return $this->_getLatestCertificateDirectory() !== NULL; } public function getCertificateBundle() : Struct\CertificateBundle { if(!$this->isCertificateBundleAvailable()) { throw new \RuntimeException('There is no certificate available'); } $certificatePath = $this->getKeyDirectoryPath() . $this->_getLatestCertificateDirectory(); return new Struct\CertificateBundle( $certificatePath . DIRECTORY_SEPARATOR, 'private.pem', 'certificate.crt', 'intermediate.pem', self::_getExpireTimeFromCertificateDirectoryPath($certificatePath) ); } /** * @param string $keyType * @param int|null $renewBefore Unix timestamp * @throws Exception\AbstractException */ public function enableAutoRenewal($keyType = self::KEY_TYPE_RSA, int $renewBefore = null) { if($keyType === null) { $keyType = self::KEY_TYPE_RSA; } if(!$this->isCertificateBundleAvailable()) { throw new \RuntimeException('There is no certificate available'); } $orderResponse = Cache\OrderResponse::getInstance()->get($this); if( $orderResponse === null || $orderResponse->getStatus() != Response\Order\AbstractOrder::STATUS_VALID ) { return; } Utilities\Logger::getInstance()->add(Utilities\Logger::LEVEL_DEBUG,'Auto renewal triggered'); $directory = $this->_getLatestCertificateDirectory(); $expireTime = self::_getExpireTimeFromCertificateDirectoryPath($directory); if($renewBefore === null) { $renewBefore = strtotime('-30 days', $expireTime); } if($renewBefore < time()) { Utilities\Logger::getInstance()->add(Utilities\Logger::LEVEL_INFO,'Auto renewal: Will recreate order'); $this->_create($keyType, true); } } /** * @param int $reason The reason to revoke the LetsEncrypt Order instance certificate. * Possible reasons can be found in section 5.3.1 of RFC5280. * @return bool * @throws Exception\RateLimitReached */ public function revokeCertificate(int $reason = 0) : bool { if(!$this->isCertificateBundleAvailable()) { throw new \RuntimeException('There is no certificate available to revoke'); } $bundle = $this->getCertificateBundle(); $request = new Request\Order\RevokeCertificate($bundle, $reason); try { /* $response = */ $request->getResponse(); rename( $this->getKeyDirectoryPath(), $this->_getKeyDirectoryPath('-revoked-' . microtime(true)) ); return true; } catch(Exception\InvalidResponse $e) { return false; } } protected static function _getExpireTimeFromCertificateDirectoryPath(string $path) { $stringPosition = strrpos($path, self::BUNDLE_DIRECTORY_PREFIX); if($stringPosition === false) { throw new \RuntimeException('ExpireTime not found in' . $path); } $expireTime = substr($path, $stringPosition + strlen(self::BUNDLE_DIRECTORY_PREFIX)); if( !is_numeric($expireTime) || $expireTime < strtotime('-10 years') || $expireTime > strtotime('+10 years') ) { throw new \RuntimeException('Unexpected expireTime: ' . $expireTime); } return $expireTime; } }PK!by/##Mlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Exception/InvalidResponse.phpnu[_rawResponse = $rawResponse; $this->_responseStatus = $responseStatus; if($responseStatus === '') { $responseStatus = 'Unknown response status'; } if(isset($this->_rawResponse->body['type'])) { $responseStatus = $this->_rawResponse->body['type']; } if(isset($this->_rawResponse->body['detail'])) { $responseStatus .= ' - ' . $this->_rawResponse->body['detail']; } parent::__construct('Invalid response received: ' . $responseStatus); } public function getRawResponse() : RawResponse { return $this->_rawResponse; } public function getResponseStatus() : ?string { return $this->_responseStatus; } }PK!w\Ulets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Exception/DNSAuthorizationInvalid.phpnu[add( Utilities\Logger::LEVEL_DEBUG, 'Exception "' . get_called_class() . '" thrown ' ); parent::__construct($message); } }PK!R2bbNlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Exception/RateLimitReached.phpnu[useStagingServer(true); } }PK!FaClets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2Tests/TestHelper.phpnu[_tempPath = $projectPath . 'temp/'; if( !file_exists($this->_tempPath) ) { mkdir($this->_tempPath); } $this->_nonExistingPath = $this->getTempPath() . 'should-not-exist/'; } public function getTempPath() : string { return $this->_tempPath; } public function getNonExistingPath() : string { return $this->_nonExistingPath; } private $_skipAccountModificationTests = false; public function setSkipAccountModificationTests(bool $value) : void { $this->_skipAccountModificationTests = $value; } public function shouldSkipAccountModificationTests() : bool { return $this->_skipAccountModificationTests; } }PK!n44Llets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2Tests/Authorizer/HTTPTest.phpnu[_directoryPath = TestHelper::getInstance()->getTempPath() . 'acme-challenges/'; } public function testNonExistingDirectoryPath() { $this->assertTrue(\LE_ACME2\Authorizer\HTTP::getDirectoryPath() === null); $this->expectException(\RuntimeException::class); \LE_ACME2\Authorizer\HTTP::setDirectoryPath(TestHelper::getInstance()->getNonExistingPath()); } public function testDirectoryPath() { if(!file_exists($this->_directoryPath)) { mkdir($this->_directoryPath); } \LE_ACME2\Authorizer\HTTP::setDirectoryPath($this->_directoryPath); $this->assertTrue( \LE_ACME2\Authorizer\HTTP::getDirectoryPath() === $this->_directoryPath ); } }PK!ґ:SBBDlets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2Tests/AccountTest.phpnu[_commonKeyDirectoryPath = TestHelper::getInstance()->getTempPath() . 'le-storage/'; $this->_email = 'le_acme2_php_client@test.com'; } public function testNonExistingCommonKeyDirectoryPath() { $this->assertTrue(\LE_ACME2\Account::getCommonKeyDirectoryPath() === null); $notExistingPath = TestHelper::getInstance()->getTempPath() . 'should-not-exist/'; $this->expectException(\RuntimeException::class); \LE_ACME2\Account::setCommonKeyDirectoryPath($notExistingPath); } public function testCommonKeyDirectoryPath() { if(!file_exists($this->_commonKeyDirectoryPath)) { mkdir($this->_commonKeyDirectoryPath); } \LE_ACME2\Account::setCommonKeyDirectoryPath($this->_commonKeyDirectoryPath); $this->assertTrue( \LE_ACME2\Account::getCommonKeyDirectoryPath() === $this->_commonKeyDirectoryPath ); } public function testNonExisting() { if(\LE_ACME2\Account::exists($this->_email)) { $this->markTestSkipped('Skipped: Account does already exist'); } $this->assertTrue(!\LE_ACME2\Account::exists($this->_email)); $this->expectException(\RuntimeException::class); \LE_ACME2\Account::get($this->_email); } public function testCreate() { if(\LE_ACME2\Account::exists($this->_email)) { // Skipping account modification tests, when the account already exists // to reduce the LE api usage while developing TestHelper::getInstance()->setSkipAccountModificationTests(true); $this->markTestSkipped('Account modifications skipped: Account does already exist'); } $this->assertTrue(!\LE_ACME2\Account::exists($this->_email)); $account = \LE_ACME2\Account::create($this->_email); $this->assertTrue(is_object($account)); $this->assertTrue($account->getEmail() === $this->_email); $account = \LE_ACME2\Account::get($this->_email); $this->assertTrue(is_object($account)); $result = $account->getData(); $this->assertTrue($result->getStatus() === \LE_ACME2\Response\Account\AbstractAccount::STATUS_VALID); } public function testInvalidCreate() { if(TestHelper::getInstance()->shouldSkipAccountModificationTests()) { $this->expectNotToPerformAssertions(); return; } $this->expectException(InvalidResponse::class); $this->expectExceptionMessage( 'Invalid response received: ' . 'urn:ietf:params:acme:error:invalidEmail' . ' - ' . 'Error creating new account :: invalid contact domain. Contact emails @example.org are forbidden' ); \LE_ACME2\Account::create('test@example.org'); } public function testModification() { if(TestHelper::getInstance()->shouldSkipAccountModificationTests()) { $this->expectNotToPerformAssertions(); return; } $account = \LE_ACME2\Account::get($this->_email); $this->assertTrue(is_object($account)); $keyDirectoryPath = $account->getKeyDirectoryPath(); $newEmail = 'new-' . $this->_email; // An email from example.org is not allowed $result = $account->update('test@example.org'); $this->assertTrue($result === false); $result = $account->update($newEmail); $this->assertTrue($result === true); $this->assertTrue($account->getKeyDirectoryPath() !== $keyDirectoryPath); $this->assertTrue(file_exists($account->getKeyDirectoryPath())); $result = $account->update($this->_email); $this->assertTrue($result === true); $result = $account->changeKeys(); $this->assertTrue($result === true); } public function testDeactivation() { if(TestHelper::getInstance()->shouldSkipAccountModificationTests()) { $this->expectNotToPerformAssertions(); return; } $account = \LE_ACME2\Account::get($this->_email); $this->assertTrue(is_object($account)); $result = $account->deactivate(); $this->assertTrue($result === true); // The account is already deactivated $result = $account->deactivate(); $this->assertTrue($result === false); // The account is already deactivated $result = $account->changeKeys(); $this->assertTrue($result === false); // The account is already deactivated $this->expectException(\LE_ACME2\Exception\InvalidResponse::class); $account->getData(); } public function testCreationAfterDeactivation() { if(TestHelper::getInstance()->shouldSkipAccountModificationTests()) { $this->expectNotToPerformAssertions(); return; } $account = \LE_ACME2\Account::get($this->_email); $this->assertTrue(is_object($account)); system('rm -R ' . $account->getKeyDirectoryPath()); $this->assertTrue(!\LE_ACME2\Account::exists($this->_email)); $account = \LE_ACME2\Account::create($this->_email); $this->assertTrue(is_object($account)); } public function test() { $account = \LE_ACME2\Account::get($this->_email); $this->assertTrue(is_object($account)); } }PK! e  -lets-encrypt/vendor/fbett/le_acme2/LICENSE.mdnu[MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PK!$0lets-encrypt/vendor/fbett/le_acme2/composer.jsonnu[{ "name": "fbett/le_acme2", "description": "Letsencrypt PHP ACME v2 client", "homepage": "https://github.com/fbett/le-acme2-php", "version": "1.5.6", "license": "MIT", "authors": [ { "name": "Fabian Bett", "homepage": "https://www.bett-ingenieure.de", "role": "Developer" } ], "autoload": { "psr-0": { "LE_ACME2": "src/" } }, "require": { "php": ">=7.3", "ext-curl": "*", "ext-openssl": "*", "ext-json": "*" } } PK!M О,lets-encrypt/vendor/fbett/le_acme2/README.mdnu[# le-acme2-php LetsEncrypt client library for ACME v2 written in PHP. This library is inspired by [yourivw/LEClient](https://github.com/yourivw/LEClient), completely rewritten and enhanced with some new features: - Support for Composer autoload (including separated Namespaces) - Automatic renewal process - Managed HTTP authentication process - Response caching mechanism - Prevents blocking while waiting for server results - Optional certificate feature "OCSP Must-Staple" - Optional set a preferred chain The aim of this client is to make an easy-to-use and integrated solution to create a LetsEncrypt-issued SSL/TLS certificate with PHP. You have the possibility to use the HTTP authentication: You need to be able to redirect specific requests (see below) You have also the possibility to use DNS authentication: You need to be able to set dynamic DNS configurations. Wildcard certificates can only be requested by using the dns authentication. ## Current version Tested with LetsEncrypt staging and production servers. [Transitioning to ISRG's Root](https://letsencrypt.org/2019/04/15/transitioning-to-isrg-root.html): This library supports it to set a preferred chain in `Order::setPreferredChain($issuerCN))`. If the preferred chain is not set or set to IdenTrust’s chain, this library will try to use the IdenTrust’s chain as long as possible. Please see: https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/ ## Prerequisites The minimum required PHP version is 7.3. This client also depends on cURL and OpenSSL. ## Getting Started Install via composer: ``` composer require fbett/le_acme2 ``` Also have a look at the [LetsEncrypt documentation](https://letsencrypt.org/docs/) for more information and documentation on LetsEncrypt and ACME. ## Example Integration - Create a working directory. Warning: This directory will also include private keys, so i suggest to place this directory somewhere not in the root document path of the web server. Additionally this directory should be protected to be read from other web server users. ``` mkdir /etc/ssl/le-storage/ chown root:root /etc/ssl/le-storage chmod 0600 /etc/ssl/le-storage ``` - (HTTP authorization only) Create a directory for the acme challenges. It must be reachable by http/https. ``` mkdir /var/www/acme-challenges ``` - (HTTP authorization only) Redirect specific requests to your acme-challenges directory Example apache virtual host configuration: ``` RewriteEngine On RewriteCond %{HTTPS} off RewriteRule \.well-known/acme-challenge/(.*)$ https://your-domain.com/path/to/acme-challenges/$1 [R=302,L] ``` - (DNS authorization only) Set the DNS configuration If `DNSWriter::write(...)` is called, set the DNS configuration like described in: [https://letsencrypt.org/docs/challenge-types/#dns-01-challenge](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) (By adding the digest as a TXT record for the subdomain '_acme-challenge'.) - Use the certificate bundle, if the certificate is issued: ``` if($order->isCertificateBundleAvailable()) { $bundle = $order->getCertificateBundle(); $pathToPrivateKey = $bundle->path . $bundle->private; $pathToCertificate = $bundle->path . $bundle->certificate; $pathToIntermediate = $bundle->path . $bundle->intermediate; $order->enableAutoRenewal(); // If the date of expiration is closer than thirty days, the order will automatically start the renewal process. } ``` If a certificate is renewed, the path will also change. My integrated workflow is the following: - User enables SSL to a specific domain in my control panel - The cronjob of this control panel will detect these changes and tries to create or get an order like in the sample. - The cronjob will fetch the information within the certificate bundle, if the certificate bundle is ready (mostly on the second run for challenge type HTTP and on the third run for challenge type DNS) - The cronjob will also build the Apache virtual host files and will restart the Apache2 service, if the new config file is different. Please take a look on the Samples for a full sample workflow. ## License This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details. PK!?t4s##lets-encrypt/vendor/index.phpnu[ PK!y>4lets-encrypt/vendor/composer/autoload_namespaces.phpnu[ array($vendorDir . '/fbett/le_acme2/src'), ); PK!}=/lets-encrypt/vendor/composer/platform_check.phpnu[= 70100)) { $issues[] = 'Your Composer dependencies require a PHP version ">= 7.1.0". You are running ' . PHP_VERSION . '.'; } if ($issues) { if (!headers_sent()) { header('HTTP/1.1 500 Internal Server Error'); } if (!ini_get('display_errors')) { if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); } elseif (!headers_sent()) { echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; } } trigger_error( 'Composer detected issues in your platform: ' . implode(' ', $issues), E_USER_ERROR ); } PK!@2lets-encrypt/vendor/composer/autoload_classmap.phpnu[ $vendorDir . '/composer/InstalledVersions.php', ); PK!I*lets-encrypt/vendor/composer/installed.phpnu[ array ( 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'aliases' => array ( ), 'reference' => '53cfe01c831d81b1398d479a9e85cbb4110e9e13', 'name' => '__root__', ), 'versions' => array ( '__root__' => array ( 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'aliases' => array ( ), 'reference' => '53cfe01c831d81b1398d479a9e85cbb4110e9e13', ), 'fbett/le_acme2' => array ( 'pretty_version' => '1.5.6', 'version' => '1.5.6.0', 'aliases' => array ( ), 'reference' => '26b2c421764b173326f6bcb0713a86bd614f77fa', ), 'plesk/api-php-lib' => array ( 'pretty_version' => 'v1.0.7', 'version' => '1.0.7.0', 'aliases' => array ( ), 'reference' => '7f81b0c3bb0a9f4200aef62a54d3e2c04d91a605', ), ), ); PK!P72lets-encrypt/vendor/composer/InstalledVersions.phpnu[ array ( 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'aliases' => array ( ), 'reference' => '53cfe01c831d81b1398d479a9e85cbb4110e9e13', 'name' => '__root__', ), 'versions' => array ( '__root__' => array ( 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'aliases' => array ( ), 'reference' => '53cfe01c831d81b1398d479a9e85cbb4110e9e13', ), 'fbett/le_acme2' => array ( 'pretty_version' => '1.5.6', 'version' => '1.5.6.0', 'aliases' => array ( ), 'reference' => '26b2c421764b173326f6bcb0713a86bd614f77fa', ), 'plesk/api-php-lib' => array ( 'pretty_version' => 'v1.0.7', 'version' => '1.0.7.0', 'aliases' => array ( ), 'reference' => '7f81b0c3bb0a9f4200aef62a54d3e2c04d91a605', ), ), ); private static $canGetVendors; private static $installedByVendor = array(); public static function getInstalledPackages() { $packages = array(); foreach (self::getInstalled() as $installed) { $packages[] = array_keys($installed['versions']); } if (1 === \count($packages)) { return $packages[0]; } return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); } public static function isInstalled($packageName) { foreach (self::getInstalled() as $installed) { if (isset($installed['versions'][$packageName])) { return true; } } return false; } public static function satisfies(VersionParser $parser, $packageName, $constraint) { $constraint = $parser->parseConstraints($constraint); $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); return $provided->matches($constraint); } public static function getVersionRanges($packageName) { foreach (self::getInstalled() as $installed) { if (!isset($installed['versions'][$packageName])) { continue; } $ranges = array(); if (isset($installed['versions'][$packageName]['pretty_version'])) { $ranges[] = $installed['versions'][$packageName]['pretty_version']; } if (array_key_exists('aliases', $installed['versions'][$packageName])) { $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); } if (array_key_exists('replaced', $installed['versions'][$packageName])) { $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); } if (array_key_exists('provided', $installed['versions'][$packageName])) { $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); } return implode(' || ', $ranges); } throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); } public static function getVersion($packageName) { foreach (self::getInstalled() as $installed) { if (!isset($installed['versions'][$packageName])) { continue; } if (!isset($installed['versions'][$packageName]['version'])) { return null; } return $installed['versions'][$packageName]['version']; } throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); } public static function getPrettyVersion($packageName) { foreach (self::getInstalled() as $installed) { if (!isset($installed['versions'][$packageName])) { continue; } if (!isset($installed['versions'][$packageName]['pretty_version'])) { return null; } return $installed['versions'][$packageName]['pretty_version']; } throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); } public static function getReference($packageName) { foreach (self::getInstalled() as $installed) { if (!isset($installed['versions'][$packageName])) { continue; } if (!isset($installed['versions'][$packageName]['reference'])) { return null; } return $installed['versions'][$packageName]['reference']; } throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); } public static function getRootPackage() { $installed = self::getInstalled(); return $installed[0]['root']; } public static function getRawData() { return self::$installed; } public static function reload($data) { self::$installed = $data; self::$installedByVendor = array(); } private static function getInstalled() { if (null === self::$canGetVendors) { self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); } $installed = array(); if (self::$canGetVendors) { foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { if (isset(self::$installedByVendor[$vendorDir])) { $installed[] = self::$installedByVendor[$vendorDir]; } elseif (is_file($vendorDir.'/composer/installed.php')) { $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; } } } $installed[] = self::$installed; return $installed; } } PK!l=-88,lets-encrypt/vendor/composer/ClassLoader.phpnu[ * Jordi Boggiano * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Composer\Autoload; /** * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. * * $loader = new \Composer\Autoload\ClassLoader(); * * // register classes with namespaces * $loader->add('Symfony\Component', __DIR__.'/component'); * $loader->add('Symfony', __DIR__.'/framework'); * * // activate the autoloader * $loader->register(); * * // to enable searching the include path (eg. for PEAR packages) * $loader->setUseIncludePath(true); * * In this example, if you try to use a class in the Symfony\Component * namespace or one of its children (Symfony\Component\Console for instance), * the autoloader will first look for the class under the component/ * directory, and it will then fallback to the framework/ directory if not * found before giving up. * * This class is loosely based on the Symfony UniversalClassLoader. * * @author Fabien Potencier * @author Jordi Boggiano * @see https://www.php-fig.org/psr/psr-0/ * @see https://www.php-fig.org/psr/psr-4/ */ class ClassLoader { private $vendorDir; // PSR-4 private $prefixLengthsPsr4 = array(); private $prefixDirsPsr4 = array(); private $fallbackDirsPsr4 = array(); // PSR-0 private $prefixesPsr0 = array(); private $fallbackDirsPsr0 = array(); private $useIncludePath = false; private $classMap = array(); private $classMapAuthoritative = false; private $missingClasses = array(); private $apcuPrefix; private static $registeredLoaders = array(); public function __construct($vendorDir = null) { $this->vendorDir = $vendorDir; } public function getPrefixes() { if (!empty($this->prefixesPsr0)) { return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); } return array(); } public function getPrefixesPsr4() { return $this->prefixDirsPsr4; } public function getFallbackDirs() { return $this->fallbackDirsPsr0; } public function getFallbackDirsPsr4() { return $this->fallbackDirsPsr4; } public function getClassMap() { return $this->classMap; } /** * @param array $classMap Class to filename map */ public function addClassMap(array $classMap) { if ($this->classMap) { $this->classMap = array_merge($this->classMap, $classMap); } else { $this->classMap = $classMap; } } /** * Registers a set of PSR-0 directories for a given prefix, either * appending or prepending to the ones previously set for this prefix. * * @param string $prefix The prefix * @param array|string $paths The PSR-0 root directories * @param bool $prepend Whether to prepend the directories */ public function add($prefix, $paths, $prepend = false) { if (!$prefix) { if ($prepend) { $this->fallbackDirsPsr0 = array_merge( (array) $paths, $this->fallbackDirsPsr0 ); } else { $this->fallbackDirsPsr0 = array_merge( $this->fallbackDirsPsr0, (array) $paths ); } return; } $first = $prefix[0]; if (!isset($this->prefixesPsr0[$first][$prefix])) { $this->prefixesPsr0[$first][$prefix] = (array) $paths; return; } if ($prepend) { $this->prefixesPsr0[$first][$prefix] = array_merge( (array) $paths, $this->prefixesPsr0[$first][$prefix] ); } else { $this->prefixesPsr0[$first][$prefix] = array_merge( $this->prefixesPsr0[$first][$prefix], (array) $paths ); } } /** * Registers a set of PSR-4 directories for a given namespace, either * appending or prepending to the ones previously set for this namespace. * * @param string $prefix The prefix/namespace, with trailing '\\' * @param array|string $paths The PSR-4 base directories * @param bool $prepend Whether to prepend the directories * * @throws \InvalidArgumentException */ public function addPsr4($prefix, $paths, $prepend = false) { if (!$prefix) { // Register directories for the root namespace. if ($prepend) { $this->fallbackDirsPsr4 = array_merge( (array) $paths, $this->fallbackDirsPsr4 ); } else { $this->fallbackDirsPsr4 = array_merge( $this->fallbackDirsPsr4, (array) $paths ); } } elseif (!isset($this->prefixDirsPsr4[$prefix])) { // Register directories for a new namespace. $length = strlen($prefix); if ('\\' !== $prefix[$length - 1]) { throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); } $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; $this->prefixDirsPsr4[$prefix] = (array) $paths; } elseif ($prepend) { // Prepend directories for an already registered namespace. $this->prefixDirsPsr4[$prefix] = array_merge( (array) $paths, $this->prefixDirsPsr4[$prefix] ); } else { // Append directories for an already registered namespace. $this->prefixDirsPsr4[$prefix] = array_merge( $this->prefixDirsPsr4[$prefix], (array) $paths ); } } /** * Registers a set of PSR-0 directories for a given prefix, * replacing any others previously set for this prefix. * * @param string $prefix The prefix * @param array|string $paths The PSR-0 base directories */ public function set($prefix, $paths) { if (!$prefix) { $this->fallbackDirsPsr0 = (array) $paths; } else { $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; } } /** * Registers a set of PSR-4 directories for a given namespace, * replacing any others previously set for this namespace. * * @param string $prefix The prefix/namespace, with trailing '\\' * @param array|string $paths The PSR-4 base directories * * @throws \InvalidArgumentException */ public function setPsr4($prefix, $paths) { if (!$prefix) { $this->fallbackDirsPsr4 = (array) $paths; } else { $length = strlen($prefix); if ('\\' !== $prefix[$length - 1]) { throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); } $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; $this->prefixDirsPsr4[$prefix] = (array) $paths; } } /** * Turns on searching the include path for class files. * * @param bool $useIncludePath */ public function setUseIncludePath($useIncludePath) { $this->useIncludePath = $useIncludePath; } /** * Can be used to check if the autoloader uses the include path to check * for classes. * * @return bool */ public function getUseIncludePath() { return $this->useIncludePath; } /** * Turns off searching the prefix and fallback directories for classes * that have not been registered with the class map. * * @param bool $classMapAuthoritative */ public function setClassMapAuthoritative($classMapAuthoritative) { $this->classMapAuthoritative = $classMapAuthoritative; } /** * Should class lookup fail if not found in the current class map? * * @return bool */ public function isClassMapAuthoritative() { return $this->classMapAuthoritative; } /** * APCu prefix to use to cache found/not-found classes, if the extension is enabled. * * @param string|null $apcuPrefix */ public function setApcuPrefix($apcuPrefix) { $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; } /** * The APCu prefix in use, or null if APCu caching is not enabled. * * @return string|null */ public function getApcuPrefix() { return $this->apcuPrefix; } /** * Registers this instance as an autoloader. * * @param bool $prepend Whether to prepend the autoloader or not */ public function register($prepend = false) { spl_autoload_register(array($this, 'loadClass'), true, $prepend); if (null === $this->vendorDir) { return; } if ($prepend) { self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; } else { unset(self::$registeredLoaders[$this->vendorDir]); self::$registeredLoaders[$this->vendorDir] = $this; } } /** * Unregisters this instance as an autoloader. */ public function unregister() { spl_autoload_unregister(array($this, 'loadClass')); if (null !== $this->vendorDir) { unset(self::$registeredLoaders[$this->vendorDir]); } } /** * Loads the given class or interface. * * @param string $class The name of the class * @return bool|null True if loaded, null otherwise */ public function loadClass($class) { if ($file = $this->findFile($class)) { includeFile($file); return true; } } /** * Finds the path to the file where the class is defined. * * @param string $class The name of the class * * @return string|false The path if found, false otherwise */ public function findFile($class) { // class map lookup if (isset($this->classMap[$class])) { return $this->classMap[$class]; } if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { return false; } if (null !== $this->apcuPrefix) { $file = apcu_fetch($this->apcuPrefix.$class, $hit); if ($hit) { return $file; } } $file = $this->findFileWithExtension($class, '.php'); // Search for Hack files if we are running on HHVM if (false === $file && defined('HHVM_VERSION')) { $file = $this->findFileWithExtension($class, '.hh'); } if (null !== $this->apcuPrefix) { apcu_add($this->apcuPrefix.$class, $file); } if (false === $file) { // Remember that this class does not exist. $this->missingClasses[$class] = true; } return $file; } /** * Returns the currently registered loaders indexed by their corresponding vendor directories. * * @return self[] */ public static function getRegisteredLoaders() { return self::$registeredLoaders; } private function findFileWithExtension($class, $ext) { // PSR-4 lookup $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; $first = $class[0]; if (isset($this->prefixLengthsPsr4[$first])) { $subPath = $class; while (false !== $lastPos = strrpos($subPath, '\\')) { $subPath = substr($subPath, 0, $lastPos); $search = $subPath . '\\'; if (isset($this->prefixDirsPsr4[$search])) { $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); foreach ($this->prefixDirsPsr4[$search] as $dir) { if (file_exists($file = $dir . $pathEnd)) { return $file; } } } } } // PSR-4 fallback dirs foreach ($this->fallbackDirsPsr4 as $dir) { if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { return $file; } } // PSR-0 lookup if (false !== $pos = strrpos($class, '\\')) { // namespaced class name $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); } else { // PEAR-like class name $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; } if (isset($this->prefixesPsr0[$first])) { foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { if (0 === strpos($class, $prefix)) { foreach ($dirs as $dir) { if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { return $file; } } } } } // PSR-0 fallback dirs foreach ($this->fallbackDirsPsr0 as $dir) { if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { return $file; } } // PSR-0 include paths. if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { return $file; } return false; } } /** * Scope isolated include. * * Prevents access to $this/self from included files. */ function includeFile($file) { include $file; } PK!ciU+lets-encrypt/vendor/composer/installed.jsonnu[{ "packages": [ { "name": "fbett/le_acme2", "version": "1.5.6", "version_normalized": "1.5.6.0", "source": { "type": "git", "url": "https://github.com/fbett/le-acme2-php.git", "reference": "26b2c421764b173326f6bcb0713a86bd614f77fa" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/fbett/le-acme2-php/zipball/26b2c421764b173326f6bcb0713a86bd614f77fa", "reference": "26b2c421764b173326f6bcb0713a86bd614f77fa", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", "ext-openssl": "*", "php": ">=7.3" }, "time": "2021-05-17T07:08:46+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-0": { "LE_ACME2": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Fabian Bett", "homepage": "https://www.bett-ingenieure.de", "role": "Developer" } ], "description": "Letsencrypt PHP ACME v2 client", "homepage": "https://github.com/fbett/le-acme2-php", "support": { "issues": "https://github.com/fbett/le-acme2-php/issues", "source": "https://github.com/fbett/le-acme2-php/tree/v1.5.6" }, "install-path": "../fbett/le_acme2" }, { "name": "plesk/api-php-lib", "version": "v1.0.7", "version_normalized": "1.0.7.0", "source": { "type": "git", "url": "https://github.com/plesk/api-php-lib.git", "reference": "7f81b0c3bb0a9f4200aef62a54d3e2c04d91a605" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/plesk/api-php-lib/zipball/7f81b0c3bb0a9f4200aef62a54d3e2c04d91a605", "reference": "7f81b0c3bb0a9f4200aef62a54d3e2c04d91a605", "shasum": "" }, "require": { "ext-curl": "*", "ext-simplexml": "*", "ext-xml": "*", "php": "^7.3" }, "require-dev": { "phpunit/phpunit": "^9", "spatie/phpunit-watcher": "^1.22" }, "time": "2020-12-24T07:20:26+00:00", "type": "library", "extra": { "branch-alias": { "dev-master": "2.0.x-dev" } }, "installation-source": "dist", "autoload": { "psr-4": { "PleskX\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "Apache-2.0" ], "authors": [ { "name": "Alexei Yuzhakov", "email": "sibprogrammer@gmail.com" }, { "name": "Plesk International GmbH.", "email": "plesk-dev-leads@plesk.com" } ], "description": "PHP object-oriented library for Plesk XML-RPC API", "support": { "issues": "https://github.com/plesk/api-php-lib/issues", "source": "https://github.com/plesk/api-php-lib/tree/v1.0.7" }, "install-path": "../plesk/api-php-lib" } ], "dev": true, "dev-package-names": [] } PK!?t4s##&lets-encrypt/vendor/composer/index.phpnu[ PK!VS= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require __DIR__ . '/autoload_static.php'; call_user_func(\Composer\Autoload\ComposerStaticInita8412ede23fd11b4d0e29303fdebd5f4::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { $loader->set($namespace, $path); } $map = require __DIR__ . '/autoload_psr4.php'; foreach ($map as $namespace => $path) { $loader->setPsr4($namespace, $path); } $classMap = require __DIR__ . '/autoload_classmap.php'; if ($classMap) { $loader->addClassMap($classMap); } } $loader->register(true); return $loader; } } PK! ..$lets-encrypt/vendor/composer/LICENSEnu[ Copyright (c) Nils Adermann, Jordi Boggiano Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PK!bZff0lets-encrypt/vendor/composer/autoload_static.phpnu[ array ( 'PleskX\\' => 7, ), ); public static $prefixDirsPsr4 = array ( 'PleskX\\' => array ( 0 => __DIR__ . '/..' . '/plesk/api-php-lib/src', ), ); public static $prefixesPsr0 = array ( 'L' => array ( 'LE_ACME2' => array ( 0 => __DIR__ . '/..' . '/fbett/le_acme2/src', ), ), ); public static $classMap = array ( 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', ); public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { $loader->prefixLengthsPsr4 = ComposerStaticInita8412ede23fd11b4d0e29303fdebd5f4::$prefixLengthsPsr4; $loader->prefixDirsPsr4 = ComposerStaticInita8412ede23fd11b4d0e29303fdebd5f4::$prefixDirsPsr4; $loader->prefixesPsr0 = ComposerStaticInita8412ede23fd11b4d0e29303fdebd5f4::$prefixesPsr0; $loader->classMap = ComposerStaticInita8412ede23fd11b4d0e29303fdebd5f4::$classMap; }, null, ClassLoader::class); } } PK!Y.lets-encrypt/vendor/composer/autoload_psr4.phpnu[ array($vendorDir . '/plesk/api-php-lib/src'), ); PK!A| lets-encrypt/vendor/autoload.phpnu[ PK!5ڰ~6lets-encrypt/vendor/plesk/api-php-lib/phpunit.xml.distnu[ ./tests ./src PK!o@lets-encrypt/vendor/plesk/api-php-lib/src/Api/InternalClient.phpnu[_login = $login; } } PK!Elets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/PhpHandler.phpnu[_client->getPacket(); $getTag = $packet->addChild($this->_wrapperTag)->addChild('get'); $filterTag = $getTag->addChild('filter'); if (!is_null($field)) { $filterTag->addChild($field, $value); } $response = $this->_client->request($packet, Client::RESPONSE_FULL); $xmlResult = $response->xpath('//result')[0]; return new Info($xmlResult); } /** * @param string|null $field * @param int|string $value * * @return Info[] */ public function getAll($field = null, $value = null) { $packet = $this->_client->getPacket(); $getTag = $packet->addChild($this->_wrapperTag)->addChild('get'); $filterTag = $getTag->addChild('filter'); if (!is_null($field)) { $filterTag->addChild($field, $value); } $response = $this->_client->request($packet, Client::RESPONSE_FULL); $items = []; foreach ($response->xpath('//result') as $xmlResult) { $item = new Info($xmlResult); $items[] = $item; } return $items; } } PK!sEClets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/EventLog.phpnu[request('get'); foreach ($response->event as $eventInfo) { $records[] = new Struct\Event($eventInfo); } return $records; } /** * @return Struct\DetailedEvent[] */ public function getDetailedLog() { $records = []; $response = $this->request('get_events'); foreach ($response->event as $eventInfo) { $records[] = new Struct\DetailedEvent($eventInfo); } return $records; } /** * @return int */ public function getLastId() { return (int) $this->request('get-last-id')->getValue('id'); } } PK! qFlets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/Certificate.phpnu[_client->getPacket(); $info = $packet->addChild($this->_wrapperTag)->addChild('generate')->addChild('info'); foreach ($properties as $name => $value) { $info->addChild($name, $value); } $response = $this->_client->request($packet); return new Struct\Info($response); } public function create($properties) { $packet = $this->_client->getPacket(); $info = $packet->addChild($this->_wrapperTag)->addChild('add')->addChild('gen_info'); foreach ($properties as $name => $value) { $info->addChild($name, $value); } $response = $this->_client->request($packet); return new Struct\Info($response); } public function install($domains, $properties) { $packet = $this->_client->getPacket(); foreach ($domains as $domain) { $install = $packet->addChild($this->_wrapperTag)->addChild('install'); $install->addChild('name', $domain); $install->addChild('webspace', $domain); $content = $install->addChild('content'); foreach ($properties as $name => $value) { $content->addChild($name, $value); } } $response = $this->_client->request($packet); return new Struct\Info($response); } } PK!`GRRAlets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/Server.phpnu[_client->getPacket(); $packet->addChild($this->_wrapperTag)->addChild('get_protos'); $response = $this->_client->request($packet); return (array) $response->protos->proto; } public function getGeneralInfo() { return new Struct\GeneralInfo($this->_getInfo('gen_info')); } public function getPreferences() { return new Struct\Preferences($this->_getInfo('prefs')); } public function getAdmin() { return new Struct\Admin($this->_getInfo('admin')); } /** * @return array */ public function getKeyInfo() { $keyInfo = []; $keyInfoXml = $this->_getInfo('key'); foreach ($keyInfoXml->property as $property) { $keyInfo[(string) $property->name] = (string) $property->value; } return $keyInfo; } /** * @return array */ public function getComponents() { $components = []; $componentsXml = $this->_getInfo('components'); foreach ($componentsXml->component as $component) { $components[(string) $component->name] = (string) $component->version; } return $components; } /** * @return array */ public function getServiceStates() { $states = []; $statesXml = $this->_getInfo('services_state'); foreach ($statesXml->srv as $service) { $states[(string) $service->id] = [ 'id' => (string) $service->id, 'title' => (string) $service->title, 'state' => (string) $service->state, ]; } return $states; } public function getSessionPreferences() { return new Struct\SessionPreferences($this->_getInfo('session_setup')); } /** * @return array */ public function getShells() { $shells = []; $shellsXml = $this->_getInfo('shells'); foreach ($shellsXml->shell as $shell) { $shells[(string) $shell->name] = (string) $shell->path; } return $shells; } /** * @return array */ public function getNetworkInterfaces() { $interfacesXml = $this->_getInfo('interfaces'); return (array) $interfacesXml->interface; } public function getStatistics() { return new Struct\Statistics($this->_getInfo('stat')); } /** * @return array */ public function getSiteIsolationConfig() { $config = []; $configXml = $this->_getInfo('site-isolation-config'); foreach ($configXml->property as $property) { $config[(string) $property->name] = (string) $property->value; } return $config; } public function getUpdatesInfo() { return new Struct\UpdatesInfo($this->_getInfo('updates')); } /** * @param string $login * @param string $clientIp * * @return string */ public function createSession($login, $clientIp) { $packet = $this->_client->getPacket(); $sessionNode = $packet->addChild($this->_wrapperTag)->addChild('create_session'); $sessionNode->addChild('login', $login); $dataNode = $sessionNode->addChild('data'); $dataNode->addChild('user_ip', base64_encode($clientIp)); $dataNode->addChild('source_server'); $response = $this->_client->request($packet); return (string) $response->id; } /** * @param string $operation * * @return \SimpleXMLElement */ private function _getInfo($operation) { $packet = $this->_client->getPacket(); $packet->addChild($this->_wrapperTag)->addChild('get')->addChild($operation); $response = $this->_client->request($packet); return $response->$operation; } } PK!u \\=lets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/Ip.phpnu[_client->getPacket(); $packet->addChild($this->_wrapperTag)->addChild('get'); $response = $this->_client->request($packet); foreach ($response->addresses->ip_info as $ipInfo) { $ips[] = new Struct\Info($ipInfo); } return $ips; } } PK!niAlets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/Locale.phpnu[_client->getPacket(); $filter = $packet->addChild($this->_wrapperTag)->addChild('get')->addChild('filter'); if (!is_null($id)) { $filter->addChild('id', $id); } $response = $this->_client->request($packet, \PleskX\Api\Client::RESPONSE_FULL); foreach ($response->locale->get->result as $localeInfo) { $locales[(string) $localeInfo->info->id] = new Struct\Info($localeInfo->info); } return !is_null($id) ? reset($locales) : $locales; } } PK!,?1 >lets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/Dns.phpnu[_client->getPacket(); $info = $packet->addChild($this->_wrapperTag)->addChild('add_rec'); foreach ($properties as $name => $value) { $info->addChild($name, $value); } return new Struct\Info($this->_client->request($packet)); } /** * Send multiply records by one request. * * @param array $records * * @return \PleskX\Api\XmlResponse[] */ public function bulkCreate(array $records) { $packet = $this->_client->getPacket(); foreach ($records as $properties) { $info = $packet->addChild($this->_wrapperTag)->addChild('add_rec'); foreach ($properties as $name => $value) { $info->addChild($name, $value); } } $response = $this->_client->request($packet, \PleskX\Api\Client::RESPONSE_FULL); $items = []; foreach ($response->xpath('//result') as $xmlResult) { $items[] = $xmlResult; } return $items; } /** * @param string $field * @param int|string $value * * @return Struct\Info */ public function get($field, $value) { $items = $this->getAll($field, $value); return reset($items); } /** * @param string $field * @param int|string $value * * @return Struct\Info[] */ public function getAll($field, $value) { $packet = $this->_client->getPacket(); $getTag = $packet->addChild($this->_wrapperTag)->addChild('get_rec'); $filterTag = $getTag->addChild('filter'); if (!is_null($field)) { $filterTag->addChild($field, $value); } $response = $this->_client->request($packet, \PleskX\Api\Client::RESPONSE_FULL); $items = []; foreach ($response->xpath('//result') as $xmlResult) { $item = new Struct\Info($xmlResult->data); $item->id = (int) $xmlResult->id; $items[] = $item; } return $items; } /** * @param string $field * @param int|string $value * * @return bool */ public function delete($field, $value) { return $this->_delete($field, $value, 'del_rec'); } /** * Delete multiply records by one request. * * @param array $recordIds * * @return \PleskX\Api\XmlResponse[] */ public function bulkDelete(array $recordIds) { $packet = $this->_client->getPacket(); foreach ($recordIds as $recordId) { $packet->addChild($this->_wrapperTag)->addChild('del_rec') ->addChild('filter')->addChild('id', $recordId); } $response = $this->_client->request($packet, \PleskX\Api\Client::RESPONSE_FULL); $items = []; foreach ($response->xpath('//result') as $xmlResult) { $items[] = $xmlResult; } return $items; } } PK!ׯ Mlets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/ProtectedDirectory.phpnu[_client->getPacket(); $info = $packet->addChild($this->_wrapperTag)->addChild('add'); $info->addChild('site-id', $siteId); $info->addChild('name', $name); $info->addChild('header', $header); return new Struct\Info($this->_client->request($packet)); } /** * @param string $field * @param int|string $value * * @return bool */ public function delete($field, $value) { return $this->_delete($field, $value, 'delete'); } /** * @param string $field * @param int|string $value * * @return Struct\DataInfo|false */ public function get($field, $value) { $items = $this->getAll($field, $value); return reset($items); } /** * @param string $field * @param int|string $value * * @return Struct\DataInfo[] */ public function getAll($field, $value) { $response = $this->_get('get', $field, $value); $items = []; foreach ($response->xpath('//result/data') as $xmlResult) { $items[] = new Struct\DataInfo($xmlResult); } return $items; } /** * @param Struct\Info $protectedDirectory * @param string $login * @param string $password * * @return Struct\UserInfo */ public function addUser($protectedDirectory, $login, $password) { $packet = $this->_client->getPacket(); $info = $packet->addChild($this->_wrapperTag)->addChild('add-user'); $info->addChild('pd-id', $protectedDirectory->id); $info->addChild('login', $login); $info->addChild('password', $password); return new Struct\UserInfo($this->_client->request($packet)); } /** * @param string $field * @param int|string $value * * @return bool */ public function deleteUser($field, $value) { return $this->_delete($field, $value, 'delete-user'); } /** * @param $command * @param $field * @param $value * * @return \PleskX\Api\XmlResponse */ private function _get($command, $field, $value) { $packet = $this->_client->getPacket(); $getTag = $packet->addChild($this->_wrapperTag)->addChild($command); $filterTag = $getTag->addChild('filter'); if (!is_null($field)) { $filterTag->addChild($field, $value); } $response = $this->_client->request($packet, \PleskX\Api\Client::RESPONSE_FULL); return $response; } } PK!jlDlets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/SecretKey.phpnu[_client->getPacket(); $packet->addChild($this->_wrapperTag)->addChild('create')->addChild('ip_address', $ipAddress); $response = $this->_client->request($packet); return (string) $response->key; } /** * @param string $keyId * * @return bool */ public function delete($keyId) { return $this->_delete('key', $keyId, 'delete'); } /** * @param string $keyId * * @return Struct\Info */ public function get($keyId) { $items = $this->_get($keyId); return reset($items); } /** * @return Struct\Info[] */ public function getAll() { return $this->_get(); } /** * @param string|null $keyId * * @return Struct\Info[] */ public function _get($keyId = null) { $packet = $this->_client->getPacket(); $getTag = $packet->addChild($this->_wrapperTag)->addChild('get_info'); $filterTag = $getTag->addChild('filter'); if (!is_null($keyId)) { $filterTag->addChild('key', $keyId); } $response = $this->_client->request($packet, \PleskX\Api\Client::RESPONSE_FULL); $items = []; foreach ($response->xpath('//result/key_info') as $keyInfo) { $items[] = new Struct\Info($keyInfo); } return $items; } } PK!SmoDlets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/SiteAlias.phpnu[_client->getPacket(); $info = $packet->addChild($this->_wrapperTag)->addChild('create'); if (count($preferences) > 0) { $prefs = $info->addChild('pref'); foreach ($preferences as $key => $value) { $prefs->addChild($key, is_bool($value) ? ($value ? 1 : 0) : $value); } } $info->addChild('site-id', $properties['site-id']); $info->addChild('name', $properties['name']); $response = $this->_client->request($packet); return new Struct\Info($response); } /** * @param string $field * @param int|string $value * * @return Struct\Info */ public function get($field, $value) { $items = $this->getAll($field, $value); return reset($items); } /** * @param string $field * @param int|string $value * * @return Struct\Info[] */ public function getAll($field = null, $value = null) { $packet = $this->_client->getPacket(); $getTag = $packet->addChild($this->_wrapperTag)->addChild('get'); $filterTag = $getTag->addChild('filter'); if (!is_null($field)) { $filterTag->addChild($field, $value); } $response = $this->_client->request($packet, \PleskX\Api\Client::RESPONSE_FULL); $items = []; foreach ($response->xpath('//result') as $xmlResult) { $item = new Struct\GeneralInfo($xmlResult->info); $items[] = $item; } return $items; } } PK!Blets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/Session.phpnu[request('get'); foreach ($response->session as $sessionInfo) { $sessions[(string) $sessionInfo->id] = new Struct\Info($sessionInfo); } return $sessions; } /** * @param string $sessionId * * @return bool */ public function terminate($sessionId) { $response = $this->request("terminate.session-id=$sessionId"); return 'ok' === (string) $response->status; } } PK!"v%8lets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct.phpnu[{key($property)}; } else { $classPropertyName = $this->_underToCamel(str_replace('-', '_', $property)); $value = $apiResponse->$property; } $reflectionProperty = new \ReflectionProperty($this, $classPropertyName); $docBlock = $reflectionProperty->getDocComment(); $propertyType = preg_replace('/^.+ @var ([a-z]+) .+$/', '\1', $docBlock); if ('string' == $propertyType) { $value = (string) $value; } elseif ('int' == $propertyType) { $value = (int) $value; } elseif ('bool' == $propertyType) { $value = in_array((string) $value, ['true', 'on', 'enabled']); } else { throw new \Exception("Unknown property type '$propertyType'."); } $this->$classPropertyName = $value; } } /** * Convert underscore separated words into camel case. * * @param string $under * * @return string */ private function _underToCamel($under) { $under = '_'.str_replace('_', ' ', strtolower($under)); return ltrim(str_replace(' ', '', ucwords($under)), '_'); } } PK!NGlets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/EventLog/Event.phpnu[_initScalarProperties($apiResponse, [ 'type', 'time', 'class', 'id', ]); } } PK!tOlets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/EventLog/DetailedEvent.phpnu[_initScalarProperties($apiResponse, [ 'id', 'type', 'time', 'class', ['obj_id' => 'objectId'], 'user', 'host', ]); } } PK!C*Elets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/Session/Info.phpnu[_initScalarProperties($apiResponse, [ 'id', 'type', 'ip-address', 'login', 'login-time', 'idle', ]); } } PK!1CHlets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/PhpHandler/Info.phpnu[_initScalarProperties($apiResponse, [ 'id', 'display-name', 'full-version', 'version', 'type', 'path', 'clipath', 'phpini', 'custom', 'handler-status', ]); } } PK!"g$wwIlets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/Site/GeneralInfo.phpnu[_initScalarProperties($apiResponse, [ 'name', 'ascii-name', 'status', 'guid', 'description', ]); } } PK!3Blets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/Site/Info.phpnu[_initScalarProperties($apiResponse, [ 'id', 'guid', ]); } } PK!DJXJJIlets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/Site/HostingInfo.phpnu[vrt_hst->property as $property) { $this->properties[(string) $property->name] = (string) $property->value; } $this->_initScalarProperties($apiResponse->vrt_hst, [ 'ip_address', ]); } } PK!pEGlets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/SecretKey/Info.phpnu[_initScalarProperties($apiResponse, [ 'key', 'ip_address', 'description', 'login', ]); } } PK!b/Dlets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/Locale/Info.phpnu[_initScalarProperties($apiResponse, [ 'id', ['lang' => 'language'], 'country', ]); } } PK!?RAlets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/Dns/Info.phpnu[_initScalarProperties($apiResponse, [ 'id', 'site-id', 'site-alias-id', 'type', 'host', 'value', 'opt', ]); } } PK!Nlets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/SiteAlias/GeneralInfo.phpnu[_initScalarProperties($apiResponse, [ 'name', 'ascii-name', 'status', ]); } } PK!|vGlets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/SiteAlias/Info.phpnu[_initScalarProperties($apiResponse, [ 'id', 'status', ]); } } PK!e~ Ilets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/Certificate/Info.phpnu[_initScalarProperties($apiResponse, [ ['csr' => 'request'], ['pvt' => 'privateKey'], ]); } } PK!~!=lets-encrypt/vendor/plesk/api-php-lib/src/Api/XmlResponse.phpnu[xpath('//'.$node)[0]; } } PK!;lets-encrypt/vendor/plesk/api-php-lib/src/Api/Exception.phpnu[_client = $client; if (is_null($this->_wrapperTag)) { $classNameParts = explode('\\', get_class($this)); $this->_wrapperTag = end($classNameParts); $this->_wrapperTag = strtolower(preg_replace('/([a-z])([A-Z])/', '\1-\2', $this->_wrapperTag)); } } /** * Perform plain API request. * * @param string|array $request * @param int $mode * * @return XmlResponse */ public function request($request, $mode = Client::RESPONSE_SHORT) { $wrapperTag = $this->_wrapperTag; if (is_array($request)) { $request = [$wrapperTag => $request]; } elseif (preg_match('/^[a-z]/', $request)) { $request = "$wrapperTag.$request"; } else { $request = "<$wrapperTag>$request"; } return $this->_client->request($request, $mode); } /** * @param string $field * @param int|string $value * @param string $deleteMethodName * * @return bool */ protected function _delete($field, $value, $deleteMethodName = 'del') { $response = $this->request("$deleteMethodName.filter.$field=$value"); return 'ok' === (string) $response->status; } /** * @param string $structClass * @param string $infoTag * @param string|null $field * @param int|string|null $value * @param callable|null $filter * * @return mixed */ protected function _getItems($structClass, $infoTag, $field = null, $value = null, callable $filter = null) { $packet = $this->_client->getPacket(); $getTag = $packet->addChild($this->_wrapperTag)->addChild('get'); $filterTag = $getTag->addChild('filter'); if (!is_null($field)) { $filterTag->addChild($field, $value); } $getTag->addChild('dataset')->addChild($infoTag); $response = $this->_client->request($packet, \PleskX\Api\Client::RESPONSE_FULL); $items = []; foreach ($response->xpath('//result') as $xmlResult) { if (!is_null($filter) && !$filter($xmlResult->data->$infoTag)) { continue; } $items[] = new $structClass($xmlResult->data->$infoTag); } return $items; } } PK!q558lets-encrypt/vendor/plesk/api-php-lib/src/Api/Client.phpnu[_host = $host; $this->_port = $port; $this->_protocol = $protocol; } /** * Setup credentials for authentication. * * @param string $login * @param string $password */ public function setCredentials($login, $password) { $this->_login = $login; $this->_password = $password; } /** * Define secret key for alternative authentication. * * @param string $secretKey */ public function setSecretKey($secretKey) { $this->_secretKey = $secretKey; } /** * Set default version for requests. * * @param string $version */ public function setVersion($version) { $this->_version = $version; } /** * Set custom function to verify response of API call according your own needs. Default verifying will be used if it is not specified. * * @param callable|null $function */ public function setVerifyResponse(callable $function = null) { $this->_verifyResponseCallback = $function; } /** * Retrieve host used for communication. * * @return string */ public function getHost() { return $this->_host; } /** * Retrieve port used for communication. * * @return int */ public function getPort() { return $this->_port; } /** * Retrieve name of the protocol (http or https) used for communication. * * @return string */ public function getProtocol() { return $this->_protocol; } /** * Retrieve XML template for packet. * * @param string|null $version * * @return SimpleXMLElement */ public function getPacket($version = null) { $protocolVersion = !is_null($version) ? $version : $this->_version; $content = ""; $content .= ''; return new SimpleXMLElement($content); } /** * Perform API request. * * @param string|array|SimpleXMLElement $request * @param int $mode * * @return XmlResponse */ public function request($request, $mode = self::RESPONSE_SHORT) { if ($request instanceof SimpleXMLElement) { $request = $request->asXml(); } else { $xml = $this->getPacket(); if (is_array($request)) { $request = $this->_arrayToXml($request, $xml)->asXML(); } elseif (preg_match('/^[a-z]/', $request)) { $request = $this->_expandRequestShortSyntax($request, $xml); } } if ('sdk' == $this->_protocol) { $version = ('' == $this->_version) ? null : $this->_version; $requestXml = new SimpleXMLElement((string) $request); $xml = \pm_ApiRpc::getService($version)->call($requestXml->children()[0]->asXml(), $this->_login); } else { $xml = $this->_performHttpRequest($request); } $this->_verifyResponseCallback ? call_user_func($this->_verifyResponseCallback, $xml) : $this->_verifyResponse($xml); return (self::RESPONSE_FULL == $mode) ? $xml : $xml->xpath('//result')[0]; } /** * Perform HTTP request to end-point. * * @param string $request * * @throws Client\Exception * * @return XmlResponse */ private function _performHttpRequest($request) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "$this->_protocol://$this->_host:$this->_port/enterprise/control/agent.php"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_HTTPHEADER, $this->_getHeaders()); curl_setopt($curl, CURLOPT_POSTFIELDS, $request); $result = curl_exec($curl); if (false === $result) { throw new Client\Exception(curl_error($curl), curl_errno($curl)); } curl_close($curl); $xml = new XmlResponse($result); return $xml; } /** * Perform multiple API requests using single HTTP request. * * @param $requests * @param int $mode * * @throws Client\Exception * * @return array */ public function multiRequest($requests, $mode = self::RESPONSE_SHORT) { $requestXml = $this->getPacket(); foreach ($requests as $request) { if ($request instanceof SimpleXMLElement) { throw new Client\Exception('SimpleXML type of request is not supported for multi requests.'); } else { if (is_array($request)) { $request = $this->_arrayToXml($request, $requestXml)->asXML(); } elseif (preg_match('/^[a-z]/', $request)) { $this->_expandRequestShortSyntax($request, $requestXml); } } $responses[] = $this->request($request); } if ('sdk' == $this->_protocol) { throw new Client\Exception('Multi requests are not supported via SDK.'); } else { $responseXml = $this->_performHttpRequest($requestXml->asXML()); } $responses = []; foreach ($responseXml->children() as $childNode) { $xml = $this->getPacket(); $dom = dom_import_simplexml($xml)->ownerDocument; $childDomNode = dom_import_simplexml($childNode); $childDomNode = $dom->importNode($childDomNode, true); $dom->documentElement->appendChild($childDomNode); $response = simplexml_load_string($dom->saveXML()); $responses[] = (self::RESPONSE_FULL == $mode) ? $response : $response->xpath('//result')[0]; } return $responses; } /** * Retrieve list of headers needed for request. * * @return array */ protected function _getHeaders() { $headers = [ 'Content-Type: text/xml', 'HTTP_PRETTY_PRINT: TRUE', ]; if ($this->_secretKey) { $headers[] = "KEY: $this->_secretKey"; } else { $headers[] = "HTTP_AUTH_LOGIN: $this->_login"; $headers[] = "HTTP_AUTH_PASSWD: $this->_password"; } return $headers; } /** * Verify that response does not contain errors. * * @param XmlResponse $xml * * @throws Exception */ protected function _verifyResponse($xml) { if ($xml->system && $xml->system->status && 'error' == (string) $xml->system->status) { throw new Exception((string) $xml->system->errtext, (int) $xml->system->errcode); } if ($xml->xpath('//status[text()="error"]') && $xml->xpath('//errcode') && $xml->xpath('//errtext')) { $errorCode = (int) $xml->xpath('//errcode')[0]; $errorMessage = (string) $xml->xpath('//errtext')[0]; throw new Exception($errorMessage, $errorCode); } } /** * Expand short syntax (some.method.call) into full XML representation. * * @param string $request * @param SimpleXMLElement $xml * * @return string */ protected function _expandRequestShortSyntax($request, SimpleXMLElement $xml) { $parts = explode('.', $request); $node = $xml; foreach ($parts as $part) { @list($name, $value) = explode('=', $part); $node = $node->addChild($name, $value); } return $xml->asXML(); } /** * Convert array to XML representation. * * @param array $array * @param SimpleXMLElement $xml * @param string $parentEl * * @return SimpleXMLElement */ protected function _arrayToXml(array $array, SimpleXMLElement $xml, $parentEl = null) { foreach ($array as $key => $value) { $el = is_int($key) && $parentEl ? $parentEl : $key; if (is_array($value)) { $this->_arrayToXml($value, $this->_isAssocArray($value) ? $xml->addChild($el) : $xml, $el); } else { $xml->addChild($el, $value); } } return $xml; } /** * @param array $array * * @return bool */ protected function _isAssocArray(array $array) { return $array && array_keys($array) !== range(0, count($array) - 1); } /** * @param string $name * * @return \PleskX\Api\Operator */ protected function _getOperator($name) { if (!isset($this->_operatorsCache[$name])) { $className = '\\PleskX\\Api\\Operator\\'.$name; $this->_operatorsCache[$name] = new $className($this); } return $this->_operatorsCache[$name]; } /** * @return Operator\Server */ public function server() { return $this->_getOperator('Server'); } /** * @return Operator\Customer */ public function customer() { return $this->_getOperator('Customer'); } /** * @return Operator\Webspace */ public function webspace() { return $this->_getOperator('Webspace'); } /** * @return Operator\Subdomain */ public function subdomain() { return $this->_getOperator('Subdomain'); } /** * @return Operator\Dns */ public function dns() { return $this->_getOperator('Dns'); } /** * @return Operator\DnsTemplate */ public function dnsTemplate() { return $this->_getOperator('DnsTemplate'); } /** * @return Operator\DatabaseServer */ public function databaseServer() { return $this->_getOperator('DatabaseServer'); } /** * @return Operator\Mail */ public function mail() { return $this->_getOperator('Mail'); } /** * @return Operator\Certificate */ public function certificate() { return $this->_getOperator('Certificate'); } /** * @return Operator\SiteAlias */ public function siteAlias() { return $this->_getOperator('SiteAlias'); } /** * @return Operator\Ip */ public function ip() { return $this->_getOperator('Ip'); } /** * @return Operator\EventLog */ public function eventLog() { return $this->_getOperator('EventLog'); } /** * @return Operator\SecretKey */ public function secretKey() { return $this->_getOperator('SecretKey'); } /** * @return Operator\Ui */ public function ui() { return $this->_getOperator('Ui'); } /** * @return Operator\ServicePlan */ public function servicePlan() { return $this->_getOperator('ServicePlan'); } /** * @return Operator\VirtualDirectory */ public function virtualDirectory() { return $this->_getOperator('VirtualDirectory'); } /** * @return Operator\Database */ public function database() { return $this->_getOperator('Database'); } /** * @return Operator\Session */ public function session() { return $this->_getOperator('Session'); } /** * @return Operator\Locale */ public function locale() { return $this->_getOperator('Locale'); } /** * @return Operator\LogRotation */ public function logRotation() { return $this->_getOperator('LogRotation'); } /** * @return Operator\ProtectedDirectory */ public function protectedDirectory() { return $this->_getOperator('ProtectedDirectory'); } /** * @return Operator\Reseller */ public function reseller() { return $this->_getOperator('Reseller'); } /** * @return Operator\ResellerPlan */ public function resellerPlan() { return $this->_getOperator('ResellerPlan'); } /** * @return Operator\Aps */ public function aps() { return $this->_getOperator('Aps'); } /** * @return Operator\ServicePlanAddon */ public function servicePlanAddon() { return $this->_getOperator('ServicePlanAddon'); } /** * @return Operator\Site */ public function site() { return $this->_getOperator('Site'); } /** * @return Operator\PhpHandler */ public function phpHandler() { return $this->_getOperator('PhpHandler'); } } PK!&&3lets-encrypt/vendor/plesk/api-php-lib/composer.jsonnu[{ "name": "plesk/api-php-lib", "type": "library", "description": "PHP object-oriented library for Plesk XML-RPC API", "license": "Apache-2.0", "authors": [ { "name": "Alexei Yuzhakov", "email": "sibprogrammer@gmail.com" }, { "name": "Plesk International GmbH.", "email": "plesk-dev-leads@plesk.com" } ], "require": { "php": "^7.3", "ext-curl": "*", "ext-xml": "*", "ext-simplexml": "*" }, "require-dev": { "phpunit/phpunit": "^9", "spatie/phpunit-watcher": "^1.22" }, "config": { "process-timeout": 0 }, "scripts": { "test": "phpunit", "test:watch": "phpunit-watcher watch" }, "autoload": { "psr-4": { "PleskX\\": "src/" } }, "autoload-dev": { "psr-4": { "PleskXTest\\": "tests/" } }, "extra": { "branch-alias": { "dev-master": "2.0.x-dev" } } } PK!(C[/lets-encrypt/vendor/plesk/api-php-lib/README.mdnu[## PHP library for Plesk XML-RPC API [![Build Status](https://travis-ci.com/plesk/api-php-lib.svg?branch=master)](https://travis-ci.com/plesk/api-php-lib) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/plesk/api-php-lib/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/plesk/api-php-lib/?branch=master) [![StyleCI](https://styleci.io/repos/26514840/shield?branch=master)](https://styleci.io/repos/26514840) PHP object-oriented library for Plesk XML-RPC API. ## Install Via Composer [Composer](https://getcomposer.org/) is a preferable way to install the library: `composer require plesk/api-php-lib` ## Usage Examples Here is an example on how to use the library and create a customer with desired properties: ```php $client = new \PleskX\Api\Client($host); $client->setCredentials($login, $password); $client->customer()->create([ 'cname' => 'Plesk', 'pname' => 'John Smith', 'login' => 'john', 'passwd' => 'secret', 'email' => 'john@smith.com', ]); ``` It is possible to use a secret key instead of password for authentication. ```php $client = new \PleskX\Api\Client($host); $client->setSecretKey($secretKey) ``` In case of Plesk extension creation one can use an internal mechanism to access XML-RPC API. It does not require to pass authentication because the extension works in the context of Plesk. ```php $client = new \PleskX\Api\InternalClient(); $protocols = $client->server()->getProtos(); ``` For additional examples see tests/ directory. ## How to Run Unit Tests One the possible ways to become familiar with the library is to check the unit tests. To run the unit tests use the following command: `REMOTE_HOST=your-plesk-host.dom REMOTE_PASSWORD=password composer test` To use custom port one can provide a URL (e.g. for Docker container): `REMOTE_URL=https://your-plesk-host.dom:port REMOTE_PASSWORD=password composer test` One more way to run tests is to use Docker: `docker-compose run tests` ## Continuous Testing During active development it could be more convenient to run tests in continuous manner. Here is the way how to achieve it: `REMOTE_URL=https://your-plesk-host.dom:port REMOTE_PASSWORD=password composer test:watch` PK! 0lets-encrypt/vendor/plesk/api-php-lib/Dockerfilenu[FROM php:7.3-cli RUN apt-get update \ && apt-get install -y unzip \ && docker-php-ext-install pcntl \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer PK!iMhh2lets-encrypt/vendor/plesk/api-php-lib/.styleci.ymlnu[preset: recommended disabled: - align_double_arrow - phpdoc_align - blank_line_after_opening_tag PK!2c7lets-encrypt/vendor/plesk/api-php-lib/wait-for-plesk.shnu[#!/bin/bash ### Copyright 1999-2020. Plesk International GmbH. while : ; do curl -ksL https://plesk:8443/ | grep "Plesk" > /dev/null [ $? -eq 0 ] && break sleep 5 done PK�������!�ј+����8��lets-encrypt/vendor/plesk/api-php-lib/docker-compose.ymlnu�[��������version: '2' services: plesk: image: plesk/plesk logging: driver: none ports: ["8443:8443"] tests: build: . environment: REMOTE_URL: https://plesk:8443 REMOTE_PASSWORD: changeme1Q** command: bash -c "cd /opt/api-php-lib && composer install && ./wait-for-plesk.sh && composer test -- --testdox" depends_on: - plesk links: - plesk volumes: - .:/opt/api-php-lib PK�������!�e =<��<��-��lets-encrypt/vendor/plesk/api-php-lib/LICENSEnu�[��������Copyright 1999-2020. Plesk International GmbH. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. PK�������!�f7���7���9��lets-encrypt/vendor/plesk/api-php-lib/phpunit-watcher.ymlnu�[��������phpunit: arguments: '--stop-on-failure' timeout: 0 PK�������!�h7���7���1��lets-encrypt/vendor/plesk/api-php-lib/.travis.ymlnu�[��������services: docker script: - docker-compose run tests PK�������!�*7a���a�����lets-encrypt/composer.jsonnu�[��������{ "require": { "fbett/le_acme2": "^1.5", "plesk/api-php-lib": "^1.0" } } PK�������!�?t4s#���#�����lets-encrypt/index.phpnu�[��������<?php // You don't belong here. ?> PK�������!�#iH%-��%-��+��lets-encrypt/integrations/cpanel/cpanel.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); require_once( rsssl_le_path . 'integrations/cpanel/functions.php' ); /** * Completely rebuilt and improved on the FreeSSL.tech Auto CPanel class by Anindya Sundar Mandal */ class rsssl_cPanel { public $host; private $username; private $password; public $ssl_installation_url; /** * Initiates the cPanel class. */ public function __construct() { $username = rsssl_get_option('cpanel_username'); $password = RSSSL_LE()->letsencrypt_handler->decode( rsssl_get_option('cpanel_password') ); $host = rsssl_get_option('cpanel_host'); $this->host = str_replace( array('http://', 'https://', ':2083',':'), '', $host ); $this->username = $username; $this->password = $password; $this->ssl_installation_url = 'https://'.$this->host.":2083/frontend/jupiter/ssl/install.html"; } /** * Check if all creds are available * @return bool */ public function credentials_available(){ if (!empty($this->host) && !empty($this->password) && !empty($this->username)) { return true; } return false; } /** * Install SSL for all passed domains * @param array $domains * * @return RSSSL_RESPONSE */ public function installSSL($domains) { $response = false; if ( is_array($domains) && count($domains)>0 ) { foreach( $domains as $domain ) { $response_item = $this->installSSLPerDomain($domain); //set on first iteration if ( !$response ) { $response = $response_item; } //override if not successfull, to always get the error. if ( $response->status !== 'success' ) { $response = $response_item; } } } if ( !$response ) { $response = new RSSSL_RESPONSE('error', 'stop', __("No valid list of domains.", "really-simple-ssl")); } if ( $response->status === 'success' ) { update_option('rsssl_le_certificate_installed_by_rsssl', 'cpanel:default', false); } return $response; } /** * Install an SSL certificate on the domain provided - using cPanel UAPI. * * @param string $domain * * @return RSSSL_RESPONSE */ public function installSSLPerDomain($domain) { $shell_addon_active = defined('rsssl_shell_path'); $key_file = get_option('rsssl_private_key_path'); $cert_file = get_option('rsssl_certificate_path'); $cabundle_file = get_option('rsssl_intermediate_path'); $request_uri = 'https://'.$this->host.':2083/execute/SSL/install_ssl'; $payload = [ 'domain' => $domain, 'cert' => file_get_contents($cert_file), 'key' => file_get_contents($key_file), 'cabundle' => file_get_contents($cabundle_file), ]; $response_raw = $this->connectUapi($request_uri, $payload); $isIpBlock = $this->isIpBlock($response_raw); $isLoginError = !$isIpBlock && $this->isLoginError($response_raw); $response = json_decode($response_raw); //Validate $response if ($isIpBlock) { update_option( 'rsssl_installation_error', 'cpanel:autossl', false ); $status = 'error'; $action = 'stop'; $message = __( "Your website's ip address is blocked. Please add your domain's ip address to the security policy in CPanel", "really-simple-ssl" ); } else if ($isLoginError) { update_option('rsssl_installation_error', 'cpanel:autossl', false); $status = 'error'; $action = 'stop'; $message = __("Login credentials incorrect. Please check your login credentials for cPanel.","really-simple-ssl"); } else if ( empty($response) ) { update_option('rsssl_installation_error', 'cpanel:default', false); $status = 'warning'; $action = $shell_addon_active ? 'skip' : 'continue'; $message = rsssl_get_manual_instructions_text($this->ssl_installation_url); } else if ($response->status) { delete_option('rsssl_installation_error' ); $status = 'success'; $action = 'continue'; $message = sprintf(__("SSL successfully installed on %s","really-simple-ssl"), $domain); } else { update_option('rsssl_installation_error', 'cpanel:default', false); $status = 'error'; $action = $shell_addon_active ? 'skip' : 'continue'; $message = __("Errors were reported during installation","really-simple-ssl").'<br> '.$response->errors[0]; } return new RSSSL_RESPONSE($status, $action, $message); } /** * Based on the known output of an ip block html page, check if the user should whitelist their own website ip. * @param $raw * * @return bool */ public function isIpBlock($raw){ $triggers = [ 'security_policy', 'You appear to be logging in from an unknown location', 'unrecognized IP address', ]; foreach($triggers as $key => $trigger ) { if (strpos($raw,$trigger)!==false) { return true; } } return false; } /** * Based on the known output of an ip block html page, check if the user has entered incorrect login creds * @param $raw * * @return bool */ public function isLoginError($raw){ $triggers = [ 'input-field-login icon password', 'name="pass" id="pass"', ]; foreach($triggers as $key => $trigger ) { if (strpos($raw,$trigger)!==false) { return true; } } return false; } /** * @param $domains * * @return RSSSL_RESPONSE */ public function enableAutoSSL($domains){ $domains = implode(',', $domains); $request_uri = 'https://'.$this->host.':2083/execute/SSL/remove_autossl_excluded_domains'; $payload = [ 'domains' => $domains, ]; $response_raw = $this->connectUapi($request_uri, $payload); $isIpBlock = $this->isIpBlock($response_raw); $response = json_decode($response_raw); //Validate $response if ($isIpBlock) { update_option('rsssl_installation_error', 'cpanel:autossl', false); $status = 'error'; $action = 'stop'; $message = __("Your website's ip address is blocked. Please add your domain's ip address to the security policy in CPanel","really-simple-ssl"); } else if (empty($response)) { update_option('rsssl_installation_error', 'cpanel:autossl', false); $status = 'error'; $action = 'skip'; $message = rsssl_get_manual_instructions_text($this->ssl_installation_url); } else if ($response->status) { delete_option('rsssl_installation_error'); $status = 'success'; $action = 'finalize'; $message = __("SSL successfully installed on $domains","really-simple-ssl"); } else { update_option('rsssl_installation_error', 'cpanel:autossl', false); $status = 'error'; $action = 'skip';//we try the default next $message = __("Errors were reported during installation.","really-simple-ssl").'<br> '.$response->errors[0]; } return new RSSSL_RESPONSE($status, $action, $message); } /** * Connect to the cPanel using UAPI. * * @param string $request_uri * @param null|array $payload * * @return mixed */ public function connectUapi($request_uri, $payload = null) { // Set up the cURL request object. $ch = curl_init($request_uri); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, $this->username.':'.$this->password); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_BUFFERSIZE, 131072); if (null !== $payload) { // Set up a POST request with the payload. curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Make the call, and then terminate the cURL caller object. $curl_response = curl_exec($ch); if (curl_errno($ch)) { $error_msg = curl_error($ch); } curl_close($ch); //return output. return $curl_response; } /** * Set DNS TXT record using Json API through cPanel XMLAPI. * * @param string $domain * @param string $value * * @return RSSSL_RESPONSE */ public function set_txt_record($domain, $value) { $args = [ 'domain' => $domain, 'name' => '_acme-challenge', 'type' => 'TXT', 'txtdata' => $value, 'ttl' => '600', 'class' => 'IN', 'cpanel_jsonapi_user' => $this->username, 'cpanel_jsonapi_module' => 'ZoneEdit', 'cpanel_jsonapi_func' => 'add_zone_record', 'cpanel_jsonapi_apiversion' => '2', ]; $args = http_build_query($args, '', '&'); $url = 'https://'.$this->host.':2083/json-api/cpanel'; $authstr = 'Authorization: Basic '.base64_encode($this->username.':'.$this->password)."\r\n"; $curl = curl_init(); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_BUFFERSIZE, 131072); $header[0] = $authstr. "Content-Type: application/x-www-form-urlencoded\r\n". 'Content-Length: '.\strlen($args)."\r\n"."\r\n".$args; curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($curl, CURLOPT_POST, 1); $response = curl_exec($curl); curl_close($curl); if (false === $response) { return new RSSSL_RESPONSE('error', 'stop', __("Unable to connect to cPanel", "really-simple-ssl").' '.curl_error($curl)); } if (true === stristr($response, '<html>')) { return new RSSSL_RESPONSE('error', 'stop', __("Login credentials incorrect", "really-simple-ssl")); } $response_array = json_decode($response, true); if ( isset($response_array['cpanelresult']['data'][0]['result']['status']) ) { if ($response_array['cpanelresult']['data'][0]['result']['status']) { $status = 'success'; $action = 'continue'; $message = __("Successfully added TXT record.","really-simple-ssl"); } else { $status = 'warning'; $action = 'continue'; $message = __("Could not automatically add TXT record. Please proceed manually, following the steps below.","really-simple-ssl"); if (isset($response_array['cpanelresult']['data'][0]['result']['statusmsg'])) { $message .= '<br>'.$response_array['cpanelresult']['data'][0]['result']['statusmsg']; } } return new RSSSL_RESPONSE($status, $action, $message); } $event_result = (bool) $response_array['cpanelresult']['event']['result']; $preevent_result = isset($response_array['cpanelresult']['preevent']) ? (bool) $response_array['cpanelresult']['preevent']['result'] : true; //Some cPanel doesn't provide this key. In that case, ignore it by setting 'true'. $postevent_result = isset($response_array['cpanelresult']['postevent']) ? (bool) $response_array['cpanelresult']['postevent']['result'] : true; //Some cPanel doesn't provide this key. In that case, ignore it by setting 'true'. if ($event_result && $preevent_result && $postevent_result) { $status = 'success'; $action = 'continue'; $message = __("Successfully added TXT record.","really-simple-ssl"); } else { $status = 'warning'; $action = 'continue'; $message = __("Could not automatically add TXT record. Please proceed manually, following the steps below.","really-simple-ssl"); } return new RSSSL_RESPONSE($status, $action, $message); } } PK�������!�v����.��lets-encrypt/integrations/cpanel/functions.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); function rsssl_install_cpanel_autossl(){ if ( rsssl_is_ready_for('installation') ) { $cpanel = new rsssl_cPanel(); $domains = RSSSL_LE()->letsencrypt_handler->get_subjects(); $response = $cpanel->enableAutoSSL($domains); if ( $response->status === 'success' ) { update_option('rsssl_le_certificate_installed_by_rsssl', 'cpanel:autossl', false); } return $response; } $status = 'error'; $action = 'stop'; $message = __("The system is not ready for the installation yet. Please run the wizard again.", "really-simple-ssl"); return new RSSSL_RESPONSE($status, $action, $message); } function rsssl_install_cpanel_default(){ if (rsssl_is_ready_for('installation')) { $cpanel = new rsssl_cPanel(); $domains = RSSSL_LE()->letsencrypt_handler->get_subjects(); $response = $cpanel->installSSL($domains); if ( $response->status === 'success' ) { update_option('rsssl_le_certificate_installed_by_rsssl', 'cpanel:default', false); } return $response; } $status = 'error'; $action = 'stop'; $message = __("The system is not ready for the installation yet. Please run the wizard again.", "really-simple-ssl"); return new RSSSL_RESPONSE($status, $action, $message); } function rsssl_cpanel_set_txt_record(){ if ( rsssl_is_ready_for('dns-verification') ) { $cpanel = new rsssl_cPanel(); $tokens = get_option('rsssl_le_dns_tokens'); if ( !$tokens) { $status = 'error'; $action = 'stop'; $message = __('Token not generated. Please complete the previous step.',"really-simple-ssl"); return new RSSSL_RESPONSE($status, $action, $message); } foreach ($tokens as $domain => $token){ if (strpos($domain, '*') !== false) continue; $response = $cpanel->set_txt_record($domain, $token); } if ( $response->status === 'success' ) { update_option('rsssl_le_dns_configured_by_rsssl', true, false); } return $response; } else { $status = 'error'; $action = 'stop'; $message = __("The system is not ready for the DNS verification yet. Please run the wizard again.", "really-simple-ssl"); return new RSSSL_RESPONSE($status, $action, $message); } } /** * Add actions for cpanel * @param array $fields * * @return array */ function rsssl_cpanel_add_condition_actions($fields){ $cpanel = new rsssl_cPanel(); if ( $cpanel->credentials_available() ) { //this defaults to true, if not known. $auto_ssl = RSSSL_LE()->hosts->host_api_supported( 'cpanel:autossl' ); $default_ssl = RSSSL_LE()->hosts->host_api_supported( 'cpanel:default' ); $installation_index = array_search( 'installation', array_column( $fields, 'id' ) ); $dns_index = array_search( 'dns-verification', array_column( $fields, 'id' ) ); //clear existing array if ( $auto_ssl || $default_ssl ) { $fields[ $installation_index ]['actions'] = array(); } if ( $auto_ssl ) { $fields[ $installation_index ]['actions'][] = [ 'description' => __( "Attempting to install certificate using AutoSSL...", "really-simple-ssl" ), 'action' => 'rsssl_install_cpanel_autossl', 'attempts' => 1, 'status' => 'inactive', ]; } if ( $default_ssl ) { $fields[ $dns_index ]['actions'][] = [ 'description' => __( "Attempting to set DNS txt record...", "really-simple-ssl" ), 'action' => 'rsssl_cpanel_set_txt_record', 'attempts' => 1, 'status' => 'inactive', ]; $fields[ $installation_index ]['actions'][] = [ 'description' => __( "Attempting to install certificate...", "really-simple-ssl" ), 'action' => 'rsssl_install_cpanel_default', 'attempts' => 1, 'status' => 'inactive', ]; } } return $fields; } add_filter("rsssl_fields", "rsssl_cpanel_add_condition_actions"); PK�������!� DU��U��3��lets-encrypt/integrations/directadmin/functions.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); function rsssl_install_directadmin(){ if (rsssl_is_ready_for('installation')) { $directadmin = new rsssl_directadmin(); $domains = RSSSL_LE()->letsencrypt_handler->get_subjects(); $response = $directadmin->installSSL($domains); if ( $response->status === 'success' ) { update_option('rsssl_le_certificate_installed_by_rsssl', 'directadmin', false ); } return $response; } else { $status = 'error'; $action = 'stop'; $message = __("The system is not ready for the installation yet. Please run the wizard again.", "really-simple-ssl"); return new RSSSL_RESPONSE($status, $action, $message); } } /** * Add actions for direct admin * @param array $fields * * @return array */ function rsssl_directadmin_add_condition_actions($fields){ $directadmin = new rsssl_directadmin(); if ( $directadmin->credentials_available() ) { $index = array_search( 'installation', array_column( $fields, 'id' ) ); //clear existing array $fields[ $index ]['actions'] = []; $fields[ $index ]['actions'][] = array( 'description' => __( "Attempting to install certificate...", "really-simple-ssl" ), 'action' => 'rsssl_install_directadmin', 'attempts' => 1, 'status' => 'inactive', ); } return $fields; } add_filter( 'rsssl_fields', 'rsssl_directadmin_add_condition_actions' ); PK�������!�8d����5��lets-encrypt/integrations/directadmin/directadmin.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); /** * @package DirectAdmin * @author Rogier Lankhorst * @copyright Copyright (C) 2021, Rogier Lankhorst * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License, version 3 * @link https://really-simple-ssl.com * @since Class available since Release 5.0.0 * */ require_once( rsssl_le_path . 'integrations/directadmin/httpsocket.php' ); require_once( rsssl_le_path . 'integrations/directadmin/functions.php' ); class rsssl_directadmin { public $host; private $login; private $password; public $ssl_installation_url; /** * Initiates the directadmin class. * */ public function __construct() { $password = RSSSL_LE()->letsencrypt_handler->decode( rsssl_get_option( 'directadmin_password' ) ); $host = rsssl_get_option( 'directadmin_host' ); $this->host = str_replace( array( 'http://', 'https://', ':2222' ), '', $host ); $this->login = rsssl_get_option( 'directadmin_username' ); $this->password = $password; $this->ssl_installation_url = 'https://' . $this->host . ""; } /** * Check if all creds are available * @return bool */ public function credentials_available(){ if (!empty($this->host) && !empty($this->password) && !empty($this->login)) { return true; } return false; } public function installSSL( $domains ) { $response = false; if ( is_array($domains) && count($domains)>0 ) { foreach( $domains as $domain ) { $response_item = $this->installSSLPerDomain($domain); //set on first iteration if ( !$response ) { $response = $response_item; } //override if not successfull, to always get the error. if ( $response->status !== 'success' ) { $response = $response_item; } } } if ( !$response ) { $response = new RSSSL_RESPONSE('error', 'stop', __("No valid list of domains.", "really-simple-ssl")); } return $response; } /** * Install certificate * * @param string $domain * * @return RSSSL_RESPONSE */ public function installSSLPerDomain( $domain ) { $key_file = get_option( 'rsssl_private_key_path' ); $cert_file = get_option( 'rsssl_certificate_path' ); $cabundle_file = get_option( 'rsssl_intermediate_path' ); try { $server_ssl=true; $server_port=2222; $sock = new HTTPSocket; if ($server_ssl){ $sock->connect("ssl://".$this->host, $server_port); } else { $sock->connect($this->host, $server_port); } $sock->set_login($this->login, $this->password); $sock->method = "POST"; $sock->query('/CMD_API_SSL', array( 'domain' => $domain, 'action' => 'save', 'type' => 'paste', 'certificate' => file_get_contents( $key_file ) . file_get_contents( $cert_file ) )); $response = $sock->fetch_parsed_body(); //set a default error response $status = 'warning'; $action = 'continue'; $message = rsssl_get_manual_instructions_text($this->ssl_installation_url); //if successful, proceed to next step if ( empty($response['details']) && stripos($response[0], 'Error' ) ) { $sock->query('/CMD_SSL', array( 'domain' => $domain, 'action' => 'save', 'type' => 'cacert', 'active' => 'yes', 'cacert' => file_get_contents( $cabundle_file ) )); $response = $sock->fetch_parsed_body(); if ( empty($response['details']) && stripos($response[0], 'Error' ) ) { $status = 'success'; $action = 'finalize'; $message = sprintf(__("SSL successfully installed on %s","really-simple-ssl"), $domain); update_option( 'rsssl_le_certificate_installed_by_rsssl', 'directadmin', false ); delete_option( 'rsssl_installation_error' ); } } } catch ( Exception $e ) { update_option( 'rsssl_installation_error', 'directadmin', false ); $status = 'warning'; $action = 'continue'; $message = $e->getMessage(); } return new RSSSL_RESPONSE( $status, $action, $message ); } } PK�������!�A4Z'��Z'��4��lets-encrypt/integrations/directadmin/httpsocket.phpnu�[��������<?php /** * Socket communication class. * * Originally designed for use with DirectAdmin's API, this class will fill any HTTP socket need. * * Very, very basic usage: * $Socket = new HTTPSocket; * echo $Socket->get('http://user:pass@somesite.com/somedir/some.file?query=string&this=that'); * * @author Phi1 'l0rdphi1' Stier <l0rdphi1@liquenox.net> * @package HTTPSocket * @version 3.0.4 */ class HTTPSocket { var $version = '3.0.4'; /* all vars are private except $error, $query_cache, and $doFollowLocationHeader */ var $method = 'GET'; var $remote_host; var $remote_port; var $remote_uname; var $remote_passwd; var $result; var $result_header; var $result_body; var $result_status_code; var $lastTransferSpeed; var $bind_host; var $error = array(); var $warn = array(); var $query_cache = array(); var $doFollowLocationHeader = TRUE; var $redirectURL; var $max_redirects = 5; var $ssl_setting_message = 'DirectAdmin appears to be using SSL. Change your script to connect to ssl://'; var $extra_headers = array(); var $proxy = false; var $proxy_headers = array(); /** * Create server "connection". * */ function connect($host, $port = '' ) { if (!is_numeric($port)) { $port = 80; } $this->remote_host = $host; $this->remote_port = $port; } function bind( $ip = '' ) { if ( $ip == '' ) { $ip = $_SERVER['SERVER_ADDR']; } $this->bind_host = $ip; } /** * Change the method being used to communicate. * * @param string|null request method. supports GET, POST, and HEAD. default is GET */ function set_method( $method = 'GET' ) { $this->method = strtoupper($method); } /** * Specify a username and password. * * @param string|null username. defualt is null * @param string|null password. defualt is null */ function set_login( $uname = '', $passwd = '' ) { if ( strlen($uname) > 0 ) { $this->remote_uname = $uname; } if ( strlen($passwd) > 0 ) { $this->remote_passwd = $passwd; } } /** * For pass through, this function writes the data in chunks. */ private function stream_chunk($ch, $data) { echo($data); return strlen($data); } private function stream_header($ch, $data) { if (!preg_match('/^HTTP/i', $data)) { header($data); } return strlen($data); } /** * Query the server * * @param string containing properly formatted server API. See DA API docs and examples. Http:// URLs O.K. too. * @param string|array query to pass to url * @param int if connection KB/s drops below value here, will drop connection */ function query( $request, $content = '', $doSpeedCheck = 0 ) { $this->error = $this->warn = array(); $this->result_status_code = NULL; $is_ssl = FALSE; // is our request a http:// ... ? if (preg_match('!^http://!i',$request) || preg_match('!^https://!i',$request)) { $location = parse_url($request); if (preg_match('!^https://!i',$request)) { $this->connect('https://'.$location['host'],$location['port']); } else $this->connect('http://'.$location['host'],$location['port']); $this->set_login($location['user'],$location['pass']); $request = $location['path']; $content = $location['query']; if ( strlen($request) < 1 ) { $request = '/'; } } if (preg_match('!^ssl://!i', $this->remote_host)) $this->remote_host = 'https://'.substr($this->remote_host, 6); if (preg_match('!^tcp://!i', $this->remote_host)) $this->remote_host = 'http://'.substr($this->remote_host, 6); if (preg_match('!^https://!i', $this->remote_host)) $is_ssl = TRUE; $array_headers = array( 'Host' => ( $this->remote_port == 80 ? $this->remote_host : "$this->remote_host:$this->remote_port" ), 'Accept' => '*/*', 'Connection' => 'Close' ); foreach ( $this->extra_headers as $key => $value ) { $array_headers[$key] = $value; } $this->result = $this->result_header = $this->result_body = ''; // was content sent as an array? if so, turn it into a string if (is_array($content)) { $pairs = array(); foreach ( $content as $key => $value ) { $pairs[] = "$key=".urlencode($value); } $content = join('&',$pairs); unset($pairs); } $OK = TRUE; if ($this->method == 'GET' && isset($content) && $content != '') $request .= '?'.$content; $ch = curl_init($this->remote_host.':'.$this->remote_port.$request); if ($is_ssl) { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //1 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //2 //curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); } curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_USERAGENT, "HTTPSocket/$this->version"); curl_setopt($ch, CURLOPT_FORBID_REUSE, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 100); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_HEADER, 1); if ($this->proxy) { curl_setopt($ch, CURLOPT_RETURNTRANSFER,false); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLINFO_HEADER_OUT, false); curl_setopt($ch, CURLOPT_BUFFERSIZE, 8192); // 8192 curl_setopt($ch, CURLOPT_WRITEFUNCTION, array($this, "stream_chunk")); curl_setopt($ch, CURLOPT_HEADERFUNCTION, array($this, "stream_header")); } curl_setopt($ch, CURLOPT_LOW_SPEED_LIMIT, 512); curl_setopt($ch, CURLOPT_LOW_SPEED_TIME, 120); // instance connection if ($this->bind_host) { curl_setopt($ch, CURLOPT_INTERFACE, $this->bind_host); } // if we have a username and password, add the header if ( isset($this->remote_uname) && isset($this->remote_passwd) ) { curl_setopt($ch, CURLOPT_USERPWD, $this->remote_uname.':'.$this->remote_passwd); } // for DA skins: if $this->remote_passwd is NULL, try to use the login key system if ( isset($this->remote_uname) && $this->remote_passwd == NULL ) { curl_setopt($ch, CURLOPT_COOKIE, "session={$_SERVER['SESSION_ID']}; key={$_SERVER['SESSION_KEY']}"); } // if method is POST, add content length & type headers if ( $this->method == 'POST' ) { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $content); //$array_headers['Content-type'] = 'application/x-www-form-urlencoded'; $array_headers['Content-length'] = strlen($content); } curl_setopt($ch, CURLOPT_HTTPHEADER, $array_headers); if( !($this->result = curl_exec($ch)) ) { $this->error[] .= curl_error($ch); $OK = FALSE; } $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->result_header = substr($this->result, 0, $header_size); $this->result_body = substr($this->result, $header_size); $this->result_status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); $this->lastTransferSpeed = curl_getinfo($ch, CURLINFO_SPEED_DOWNLOAD) / 1024; curl_close($ch); $this->query_cache[] = $this->remote_host.':'.$this->remote_port.$request; $headers = $this->fetch_header(); // did we get the full file? if ( !empty($headers['content-length']) && $headers['content-length'] != strlen($this->result_body) ) { $this->result_status_code = 206; } // now, if we're being passed a location header, should we follow it? if ($this->doFollowLocationHeader) { //dont bother if we didn't even setup the script correctly if (isset($headers['x-use-https']) && $headers['x-use-https']=='yes') die($this->ssl_setting_message); if (isset($headers['location'])) { if ($this->max_redirects <= 0) die("Too many redirects on: ".$headers['location']); $this->max_redirects--; $this->redirectURL = $headers['location']; $this->query($headers['location']); } } } function getTransferSpeed() { return $this->lastTransferSpeed; } /** * The quick way to get a URL's content :) * * @param string URL * @param boolean return as array? (like PHP's file() command) * @return string result body */ function get($location, $asArray = FALSE ) { $this->query($location); if ( $this->get_status_code() == 200 ) { if ($asArray) { return preg_split("/\n/",$this->fetch_body()); } return $this->fetch_body(); } return FALSE; } /** * Returns the last status code. * 200 = OK; * 403 = FORBIDDEN; * etc. * * @return int status code */ function get_status_code() { return $this->result_status_code; } /** * Adds a header, sent with the next query. * * @param string header name * @param string header value */ function add_header($key,$value) { $this->extra_headers[$key] = $value; } /** * Clears any extra headers. * */ function clear_headers() { $this->extra_headers = array(); } /** * Return the result of a query. * * @return string result */ function fetch_result() { return $this->result; } /** * Return the header of result (stuff before body). * * @param string (optional) header to return * @return array result header */ function fetch_header( $header = '' ) { if ($this->proxy) return $this->proxy_headers; $array_headers = preg_split("/\r\n/",$this->result_header); $array_return = array( 0 => $array_headers[0] ); unset($array_headers[0]); foreach ( $array_headers as $pair ) { if ($pair == '' || $pair == "\r\n") continue; list($key,$value) = preg_split("/: /",$pair,2); $array_return[strtolower($key)] = $value; } if ( $header != '' ) { return $array_return[strtolower($header)]; } return $array_return; } /** * Return the body of result (stuff after header). * * @return string result body */ function fetch_body() { return $this->result_body; } /** * Return parsed body in array format. * * @return array result parsed */ function fetch_parsed_body() { parse_str($this->result_body,$x); return $x; } /** * Set a specifc message on how to change the SSL setting, in the event that it's not set correctly. */ function set_ssl_setting_message($str) { $this->ssl_setting_message = $str; } }PK�������!�?'����1��lets-encrypt/integrations/cloudways/cloudways.phpnu�[��������<?php /** * @package CloudWays * @author Rogier Lankhorst * @copyright Copyright (C) 2021, Rogier Lankhorst * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License, version 3 * @link https://really-simple-ssl.com * @since Class available since Release 5.0.0 * * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. * */ class rsssl_Cloudways { private $email; private $api_key; public $ssl_installation_url; /** * Initiates the cloudways class. * * @param string $email * @param string $api_key */ public function __construct( ) { $this->email = rsssl_get_option('cloudways_user_email'); $this->api_key = RSSSL_LE()->letsencrypt_handler->decode( rsssl_get_option('cloudways_api_key') ); $this->ssl_installation_url = ""; } /** * * @param string $method GET|POST|PUT|DELETE * @param string $url relative URL for the call * @param string $accessToken Access token generated using OAuth Call * @param array $post Optional post data for the call * * @return RSSSL_RESPONSE */ private function callCloudwaysAPI( $method, $url, $accessToken, $post = [] ) { $baseURL = 'https://api.cloudways.com/api/v1/'; try { $ch = curl_init(); curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, $method ); curl_setopt( $ch, CURLOPT_URL, $baseURL . $url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); if ( $accessToken ) { curl_setopt( $ch, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer ' . $accessToken ] ); } //ssl_domains[]=fungibleownership.com&ssl_domains[]=www.fungibleownership.com $encoded = ''; if ( count( $post ) ) { foreach ( $post as $name => $value ) { if ( is_array( $value) ) { foreach ( $value as $sub_value ) { $encoded .= $name.'[]='.urlencode( $sub_value) . '&'; } } else { $encoded .= urlencode( $name ) . '=' . urlencode( $value ) . '&'; } } $encoded = substr( $encoded, 0, strlen( $encoded ) - 1 ); curl_setopt( $ch, CURLOPT_POSTFIELDS, $encoded ); curl_setopt( $ch, CURLOPT_POST, 1 ); } $output = curl_exec( $ch ); $httpcode = curl_getinfo( $ch, CURLINFO_HTTP_CODE ); if ($output && isset($output->error_description)) { return new RSSSL_RESPONSE( 'error', 'stop', $output->error_description, false ); } else if ($httpcode != '200' && $output && isset($output->message) ){ return new RSSSL_RESPONSE( 'error', 'stop', $output->message ); } else if ( $httpcode != '200' ) { $message = $httpcode . ' output: ' . substr( $output, 0, 10000 ); return new RSSSL_RESPONSE( 'error', 'stop', $message ); } curl_close( $ch ); return new RSSSL_RESPONSE( 'success', 'continue', '', json_decode( $output ) ); } catch(Exception $e) { return new RSSSL_RESPONSE( 'error', 'stop', $e->getMessage() ); } } /** * Get an access token * @return RSSSL_RESPONSE */ private function getAccessToken() { $accessToken = get_transient('rsssl_cw_t'); if (!$accessToken) { $response = $this->callCloudwaysAPI( 'POST', '/oauth/access_token', null, [ 'email' => $this->email, 'api_key' => $this->api_key ] ); if ($response->status === 'success' ) { $accessToken = $response->output->access_token; set_transient('rsssl_cw_t', $accessToken, 1800); } else { return new RSSSL_RESPONSE( 'error', 'stop', $response->message ); } } return new RSSSL_RESPONSE( 'success', 'continue','', $accessToken ); } /** * @param array $domains * * @return RSSSL_RESPONSE */ public function installSSL($domains){ $response = $this->getAccessToken(); if ( $response->status !== 'success' ) { return new RSSSL_RESPONSE('error','stop',$response->message); } $accessToken = $response->output; $response = $this->getServerInfo(); if ($response->status === 'success' ) { $server_id = get_transient('rsssl_cw_server_id' ); $app_id = get_transient('rsssl_cw_app_id'); $args = [ 'server_id' => $server_id, 'app_id' => $app_id, 'ssl_email' => $this->email, 'wild_card' => RSSSL_LE()->letsencrypt_handler->is_wildcard(), 'ssl_domains' => $domains, ]; $response = $this->callCloudWaysAPI( 'POST', 'security/lets_encrypt_install', $accessToken, $args ); } return $response; } /** * * @return RSSSL_RESPONSE */ public function enableAutoRenew(){ $response = $this->getAccessToken(); if ( $response->status !== 'success' ) { return new RSSSL_RESPONSE('error','stop', __("Failed retrieving access token","really-simple-ssl")); } $accessToken = $response->output; $response = $this->getServerInfo(); if ($response->status === 'success' ) { $app_id = get_transient('rsssl_cw_app_id'); $server_id = get_transient('rsssl_cw_server_id' ); $response = $this->callCloudWaysAPI( 'POST', 'security/lets_encrypt_auto', $accessToken, [ 'server_id' => $server_id, 'app_id' => $app_id, 'auto' => true, ] ); } if ( $response->status === 'success' ) { $status = 'success'; $action = 'continue'; $message = __("Successfully installed Let's Encrypt","really-simple-ssl"); } elseif ($response->status === 'error') { //in some cases, the process is already started, which also signifies success. if ( strpos($response->message, 'An operation is already in progress for this server')) { $status = 'success'; $action = 'continue'; $message = __("Successfully installed Let's Encrypt","really-simple-ssl"); } else { $status = $response->status; $action = $response->action; $message = $response->message; } } else { $status = $response->status; $action = $response->action; $message = __("Error enabling auto renew for Let's Encrypt","really-simple-ssl"); } return new RSSSL_RESPONSE( $status, $action, $message ); } /** * Get the server id and app id * * @return RSSSL_RESPONSE */ public function getServerInfo(){ if ( get_transient('rsssl_cw_app_id') && get_transient('rsssl_cw_server_id' ) ) { $status = 'success'; $action = 'continue'; $message = __("Successfully retrieved server id and app id","really-simple-ssl"); return new RSSSL_RESPONSE( $status, $action, $message ); } $response = $this->getAccessToken(); if ( $response->status !== 'success' ) { return new RSSSL_RESPONSE('error','stop', $response->message); } $accessToken = $response->output; $response = $this->callCloudwaysAPI('GET', '/server', $accessToken ); $success = false; if ($response->status === 'success') { $serverList = $response->output; $servers = $serverList->servers; foreach ($servers as $server ){ $apps = $server->apps; foreach ($apps as $app ){ $app_domain = $app->cname; $this_site_domain = str_replace(array('https://', 'http://', 'www.'), '',site_url()); if (strpos($app_domain, $this_site_domain) !== false ) { $success = true; set_transient('rsssl_cw_app_id', $app->id, WEEK_IN_SECONDS); set_transient('rsssl_cw_server_id', $server->id, WEEK_IN_SECONDS); break 2; } } } } if ( $success ) { $status = 'success'; $action = 'continue'; $message = __("Successfully retrieved server id and app id","really-simple-ssl"); } else { $status = 'error'; $action = 'stop'; if ( isset($serverList->error_description) ) { $message = $serverList->error_description; } else { $message = __("Could not retrieve server list","really-simple-ssl"); } } return new RSSSL_RESPONSE( $status, $action, $message ); } }PK�������!�n7]����1��lets-encrypt/integrations/cloudways/functions.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); function rsssl_cloudways_server_data(){ require_once( rsssl_le_path . 'integrations/cloudways/cloudways.php' ); $cloudways = new rsssl_Cloudways(); return $cloudways->getServerInfo(); } function rsssl_cloudways_install_ssl(){ if (rsssl_is_ready_for('installation')) { require_once( rsssl_le_path . 'integrations/cloudways/cloudways.php' ); $domains = RSSSL_LE()->letsencrypt_handler->get_subjects(); $cloudways = new rsssl_Cloudways(); $response = $cloudways->installSSL($domains); if ($response->status === 'success') { update_option('rsssl_le_certificate_installed_by_rsssl', 'cloudways', false); } return $response; } else { $status = 'error'; $action = 'stop'; $message = __("The system is not ready for the installation yet. Please run the wizard again.", "really-simple-ssl"); return new RSSSL_RESPONSE($status, $action, $message); } } function rsssl_cloudways_auto_renew(){ require_once( rsssl_le_path . 'integrations/cloudways/cloudways.php' ); $cloudways = new rsssl_Cloudways(); return $cloudways->enableAutoRenew(); } function rsssl_cloudways_add_condition_actions($fields){ $index = array_search('installation',array_column($fields,'id')); $fields[$index]['actions'] = array( array( 'description' => __("Retrieving Cloudways server data...", "really-simple-ssl"), 'action'=> 'rsssl_cloudways_server_data', 'attempts' => 5, 'status' => 'inactive', ), array( 'description' => __("Installing SSL certificate...", "really-simple-ssl"), 'action'=> 'rsssl_cloudways_install_ssl', 'attempts' => 5, 'status' => 'inactive', ), array( 'description' => __("Enabling auto renew...", "really-simple-ssl"), 'action'=> 'rsssl_cloudways_auto_renew', 'attempts' => 5, 'status' => 'inactive', ), ); //drop store credentials field $creds_index = array_search('store_credentials',array_column($fields,'id')); unset($fields[$creds_index]); return $fields; } add_filter( 'rsssl_fields', 'rsssl_cloudways_add_condition_actions' ); PK�������!�?t4s#���#���#��lets-encrypt/integrations/index.phpnu�[��������<?php // You don't belong here. ?> PK�������!�8f����*��lets-encrypt/integrations/integrations.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); $other_host = rsssl_get_other_host(); if (file_exists( rsssl_le_path . "integrations/$other_host/$other_host.php" )) { require_once( rsssl_le_path . "integrations/$other_host/$other_host.php" ); } if (file_exists( rsssl_le_path . "integrations/$other_host/functions.php" )){ require_once( rsssl_le_path . "integrations/$other_host/functions.php" ); } if ( rsssl_is_cpanel() ) { require_once( rsssl_le_path . 'integrations/cpanel/cpanel.php' ); } else if ( rsssl_is_plesk() ) { require_once( rsssl_le_path . 'integrations/plesk/plesk.php' ); } else if ( rsssl_is_directadmin() ) { require_once( rsssl_le_path . 'integrations/directadmin/directadmin.php' ); } PK�������!�S>!��!��-��lets-encrypt/integrations/plesk/functions.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); function rsssl_plesk_install(){ if (rsssl_is_ready_for('installation')) { $cpanel = new rsssl_plesk(); $domains = RSSSL_LE()->letsencrypt_handler->get_subjects(); $response = $cpanel->installSSL($domains); if ( $response->status === 'success' ) { update_option('rsssl_le_certificate_installed_by_rsssl', 'cpanel:default', false); } return $response; } else { $status = 'error'; $action = 'stop'; $message = __("The system is not ready for the installation yet. Please run the wizard again.", "really-simple-ssl"); return new RSSSL_RESPONSE($status, $action, $message); } } /** * Add the step to install SSL using Plesk * @param array $fields * * @return array */ function rsssl_plesk_add_installation_step($fields){ $plesk = new rsssl_plesk(); if ( $plesk->credentials_available() ) { $index = array_search( 'installation', array_column( $fields, 'id' ) ); $fields[ $index ]['actions'] = array_merge(array( array( 'description' => __("Installing SSL certificate using PLESK API...", "really-simple-ssl"), 'action'=> 'rsssl_plesk_install', 'attempts' => 1, 'status' => 'inactive', ) ) , $fields[ $index ]['actions'] ); } return $fields; } add_filter( 'rsssl_fields', 'rsssl_plesk_add_installation_step' ); PK�������!�&M �� ��)��lets-encrypt/integrations/plesk/plesk.phpnu�[��������<?php /** * @package PLESK * @author Rogier Lankhorst * @copyright Copyright (C) 2021, Rogier Lankhorst * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License, version 3 * @link https://really-simple-ssl.com * @since Class available since Release 5.0.0 * * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. * */ use PleskX\Api\Client; require_once rsssl_le_path . 'vendor/autoload.php'; require_once( rsssl_le_path . 'integrations/plesk/functions.php' ); class rsssl_plesk { public $host; private $login; private $password; public $ssl_installation_url; /** * Initiates the Plesk class. * */ public function __construct() { $password = RSSSL_LE()->letsencrypt_handler->decode( rsssl_get_option('plesk_password') ); $host = rsssl_get_option('plesk_host'); $this->host = str_replace(array('http://', 'https://', ':8443'), '', $host); $this->login = rsssl_get_option('plesk_username'); $this->password = $password; $this->ssl_installation_url = 'https://'.$this->host.":8443/smb/ssl-certificate/list/id/21"; } /** * Check if all creds are available * @return bool */ public function credentials_available(){ if (!empty($this->host) && !empty($this->password) && !empty($this->login)) { return true; } return false; } /** * Install certificate * @param $domains * * @return RSSSL_RESPONSE */ public function installSSL($domains){ $key_file = get_option('rsssl_private_key_path'); $cert_file = get_option('rsssl_certificate_path'); $cabundle_file = get_option('rsssl_intermediate_path'); try { $client = new Client($this->host); $client->setCredentials($this->login, $this->password); $response = $client->certificate()->install($domains, [ 'csr' => '', 'pvt' => file_get_contents($key_file), 'cert' => file_get_contents($cert_file), 'ca' => file_get_contents($cabundle_file), ]); update_option('rsssl_le_certificate_installed_by_rsssl', 'plesk', false); delete_option('rsssl_installation_error' ); $status = 'success'; $action = 'continue'; $message = __('Successfully installed SSL',"really-simple-ssl"); } catch(Exception $e) { update_option('rsssl_installation_error', 'plesk', false); $status = 'warning'; $action = 'continue'; $message = $e->getMessage(); } return new RSSSL_RESPONSE($status, $action, $message); } } PK�������!�5Ѩ������1��lets-encrypt/integrations/hostgator/hostgator.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); /** * On hostgator, we don't have the cpanel api, so remove these steps. * This is managed in the config, in the hosts array */ PK�������!�/\^��^��!��lets-encrypt/class-le-restapi.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); if ( ! class_exists( "rsssl_le_restapi" ) ) { class rsssl_le_restapi{ private static $_this; function __construct() { if ( isset( self::$_this ) ) { wp_die( sprintf( '%s is a singleton class and you cannot create a second instance.', get_class( $this ) ) ); } self::$_this = $this; add_filter("rsssl_run_test", array($this, 'handle_lets_encrypt_request'), 10, 3); add_action( 'rsssl_after_save_field', array( $this, 'after_save_field' ), 10, 4 ); } static function this() { return self::$_this; } /** * Switch to DNS verification * @param array $data * @return [] */ public function update_verification_type($data){ $type = $data['id']; $type = $type === 'dns' ? 'dns' : 'dir'; rsssl_update_option('verification_type', $type ); if ($type==='dns') { rsssl_progress_add('directories'); } else { rsssl_progress_add('dns-verification'); } return new RSSSL_RESPONSE( 'success', 'stop', '' ); } /** * Skip DNS check * @return RSSSL_RESPONSE */ public function skip_dns_check(){ if ( !rsssl_user_can_manage() ) { return new RSSSL_RESPONSE( 'error', 'stop', '' ); } update_option('rsssl_skip_dns_check', true, false); return new RSSSL_RESPONSE( 'success', 'stop', '' ); } /** * Get installation data * @return RSSSL_RESPONSE */ public function installation_data(){ if ( !rsssl_user_can_manage() ) { return new RSSSL_RESPONSE( 'error', 'stop', '' ); } $key_file = get_option('rsssl_private_key_path'); $cert_file = get_option('rsssl_certificate_path'); $cabundle_file = get_option('rsssl_intermediate_path'); $data = [ 'generated_by_rsssl' => rsssl_generated_by_rsssl(), 'download_url' => rsssl_le_url.'download.php?token='.wp_create_nonce('rsssl_download_cert'), 'key_content' => file_exists($key_file) ? file_get_contents($key_file) : 'no data found', 'certificate_content' => file_exists($cert_file) ? file_get_contents($cert_file) : 'no data found', 'ca_bundle_content' => file_exists($cabundle_file) ? file_get_contents($cabundle_file) : 'no data found', ]; return new RSSSL_RESPONSE( 'success', 'continue', '', $data ); } /** * Challenge directory request * * @return RSSSL_RESPONSE */ public function skip_challenge_directory_request(){ if ( !rsssl_user_can_manage() ) { return new RSSSL_RESPONSE( 'error', 'stop', '' ); } update_option('rsssl_skip_challenge_directory_request', true, false); return new RSSSL_RESPONSE( 'success', 'stop', '' ); } /** * Reset the LE wizard * @return bool[]|RSSSL_RESPONSE */ public function reset(){ if ( !rsssl_user_can_manage() ) { return new RSSSL_RESPONSE( 'success', 'stop', '' ); } RSSSL_LE()->letsencrypt_handler->clear_order(); rsssl_update_option('verification_type', 'dir' ); delete_option('rsssl_skip_dns_check' ); delete_option('rsssl_skip_challenge_directory_request' ); delete_option('rsssl_create_folders_in_root'); delete_option('rsssl_hosting_dashboard'); RSSSL_LE()->letsencrypt_handler->clear_keys_directory(); return new RSSSL_RESPONSE( 'success', 'stop', '' ); } public function clean_up(){ //clean up stored pw, if requested RSSSL_LE()->letsencrypt_handler->cleanup_on_ssl_activation(); } /** * Process a Let's Encrypt test request * * @param array $response * @param string $test * @param WP_REST_Request $request * * @return RSSSL_RESPONSE|array */ public function handle_lets_encrypt_request($response, $test, $data){ if ( ! current_user_can('manage_security') ) { return new RSSSL_RESPONSE( 'error', 'stop', __( "Permission denied.", 'really-simple-ssl' ) ); } switch( $test ){ case 'reset': return $this->reset(); case 'update_verification_type': return $this->update_verification_type($data); case 'skip_dns_check': return $this->skip_dns_check(); case 'skip_challenge_directory_request': return $this->skip_challenge_directory_request(); case 'installation_data': return $this->installation_data(); case 'is_subdomain_setup': case 'verify_dns': case 'certificate_status': case 'curl_exists': case 'server_software': case 'alias_domain_available': case 'check_domain': case 'check_host': case 'check_challenge_directory': case 'check_key_directory': case 'check_certs_directory': case 'check_writing_permissions': case 'challenge_directory_reachable': case 'get_account': case 'get_dns_token': case 'terms_accepted': case 'create_bundle_or_renew': case 'search_ssl_installation_url': case 'rsssl_install_cpanel_autossl': case 'rsssl_cpanel_set_txt_record': case 'rsssl_install_cpanel_default': case 'rsssl_cloudways_server_data': case 'rsssl_cloudways_install_ssl': case 'rsssl_cloudways_auto_renew': case 'rsssl_install_directadmin': case 'rsssl_plesk_install': case 'cleanup_on_ssl_activation': return $this->get_installation_progress($response, $test, $data); default: return $response; } } /** * Run a LE test * @param $response * @param $function * @param $data * * @return RSSSL_RESPONSE */ public function get_installation_progress( $response, $function, $data ){ $id = $data['id']; if ( ! current_user_can('manage_security') ) { return new RSSSL_RESPONSE( 'error', 'stop', __( "Permission denied.", 'really-simple-ssl' ) ); } if (!function_exists($function) && !method_exists(RSSSL_LE()->letsencrypt_handler, $function)) { return new RSSSL_RESPONSE( 'error', 'stop', __( "Test not found.", 'really-simple-ssl' ) ); } rsssl_progress_add($id); if ( function_exists($function) ){ $response = $function(); } else { $response = RSSSL_LE()->letsencrypt_handler->$function(); } return $response; } /** * Handle some custom options after saving the wizard options * @param string $field_id * @param mixed $field_value * @param mixed $prev_value * @param string $type */ public function after_save_field( $field_id, $field_value, $prev_value, $type ) { //only run when changes have been made if ( $field_value === $prev_value ) { return; } if ( $field_id==='other_host_type'){ if ( isset(RSSSL_LE()->hosts->hosts[$field_value]) ){ $dashboard = RSSSL_LE()->hosts->hosts[$field_value]['hosting_dashboard']; update_option('rsssl_hosting_dashboard', $dashboard, false); } else { update_option('rsssl_hosting_dashboard', false, false); } } if ( $field_id === 'email_address'&& is_email($field_value) ) { RSSSL_LE()->letsencrypt_handler->update_account($field_value); } } } } //class closure PK�������!�o �� ����lets-encrypt/download.phpnu�[��������<?php # No need for the template engine define( 'WP_USE_THEMES', false ); #find the base path define( 'BASE_PATH', rsssl_find_wordpress_base_path()."/" ); # Load WordPress Core if ( !file_exists(BASE_PATH . 'wp-load.php') ) { die("WordPress not installed here"); } require_once( BASE_PATH.'wp-load.php' ); require_once( ABSPATH.'wp-includes/class-phpass.php' ); require_once( ABSPATH . 'wp-admin/includes/image.php' ); if ( !rsssl_user_can_manage() ) { die(); } if ( !isset($_GET["type"]) ) { die(); } if (!isset($_GET['token'])) { die(); } if (!wp_verify_nonce($_GET['token'], 'rsssl_download_cert')){ die(); } $type = sanitize_title($_GET['type']); switch($type) { case 'certificate': $file = get_option('rsssl_certificate_path'); $file_name = 'certificate.cert'; break; case 'private_key': $file = get_option('rsssl_private_key_path'); $file_name = 'private.pem'; break; case 'intermediate': $file = get_option('rsssl_intermediate_path'); $file_name = 'intermediate.pem'; break; default: $file = false; } if (!file_exists($file)) { $content = __("File missing. Please retry the previous steps.", "really-simple-ssl"); die(); } else { $content = file_get_contents($file); } $fp = fopen($file, 'rb'); if ($fp) { if (function_exists('mb_strlen')) { $fsize = mb_strlen($content, '8bit'); } else { $fsize = strlen($content); } $path_parts = pathinfo($file); header("Content-type: text/plain"); header("Content-Disposition: attachment; filename=\"".$file_name."\""); header("Content-length: $fsize"); header("Cache-Control: private",false); // required for certain browsers header("Pragma: public"); // required header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Transfer-Encoding: binary"); echo $content; } else { echo "Something went wrong #2"; } fclose($fp); function rsssl_find_wordpress_base_path() { $path = dirname(__FILE__); do { if (file_exists($path . "/wp-config.php")) { //check if the wp-load.php file exists here. If not, we assume it's in a subdir. if ( file_exists( $path . '/wp-load.php') ) { return $path; } else { //wp not in this directory. Look in each folder to see if it's there. if ( file_exists( $path ) && $handle = opendir( $path ) ) { while ( false !== ( $file = readdir( $handle ) ) ) { if ( $file != "." && $file != ".." ) { $file = $path .'/' . $file; if ( is_dir( $file ) && file_exists( $file . '/wp-load.php') ) { $path = $file; break; } } } closedir( $handle ); } } return $path; } } while ($path = realpath("$path/..")); return false; } PK�������!�n{R������class-installer.phpnu�[��������<?php if ( ! defined( 'ABSPATH' ) ) { exit; } if ( ! function_exists( 'is_plugin_active' ) ) { include_once ABSPATH . 'wp-admin/includes/plugin.php'; } /** * Install suggested plugins */ if ( ! class_exists( 'rsssl_installer' ) ) { class rsssl_installer { private $slug = ''; public function __construct( $slug ) { if ( ! current_user_can( 'install_plugins' ) ) { return; } $this->slug = $slug; } /** * Check if plugin is downloaded * @return bool */ public function plugin_is_downloaded() { return file_exists( trailingslashit( WP_PLUGIN_DIR ) . $this->get_activation_slug() ); } /** * Check if plugin is activated * @return bool */ public function plugin_is_activated() { return is_plugin_active( $this->get_activation_slug() ); } /** * Install plugin * @param string $step * * @return void */ public function install( $step ) { if ( ! current_user_can( 'install_plugins' ) ) { return; } if ( 'download' === $step ) { $this->download_plugin(); } if ( 'activate' === $step ) { $this->activate_plugin(); } } /** * Get slug to activate plugin with * @return string */ public function get_activation_slug() { $slugs = [ 'burst-statistics' => 'burst-statistics/burst.php', 'complianz-gdpr' => 'complianz-gdpr/complianz-gpdr.php', 'complianz-terms-conditions' => 'complianz-terms-conditions/complianz-terms-conditions.php', ]; return $slugs[ $this->slug ]; } /** * Cancel shepherd tour * @return void */ public function cancel_tour() { $prefixes = [ 'burst-statistics' => 'burst', 'complianz-gdpr' => 'cmplz', 'complianz-terms-conditions' => 'cmplz_tc', ]; $prefix = $prefixes[ $this->slug ]; update_site_option( $prefix . '_tour_started', false ); update_site_option( $prefix . '_tour_shown_once', true ); delete_transient( $prefix . '_redirect_to_settings' ); delete_transient( $prefix . '_redirect_to_settings_page' ); } /** * Download the plugin * @return bool */ public function download_plugin() { if ( ! current_user_can( 'install_plugins' ) ) { return false; } if ( get_transient( 'rsssl_plugin_download_active' ) !== $this->slug ) { set_transient( 'rsssl_plugin_download_active', $this->slug, MINUTE_IN_SECONDS ); $info = $this->get_plugin_info(); $download_link = esc_url_raw( $info->versions['trunk'] ); require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; require_once ABSPATH . 'wp-admin/includes/file.php'; include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; if ( ! is_writable( WP_PLUGIN_DIR ) ) { return false; } $skin = new WP_Ajax_Upgrader_Skin(); $upgrader = new Plugin_Upgrader( $skin ); $result = $upgrader->install( $download_link ); if ( is_wp_error( $result ) ) { return false; } delete_transient( 'rsssl_plugin_download_active' ); } return true; } /** * Activate the plugin * * @return bool */ public function activate_plugin() { if ( ! current_user_can( 'install_plugins' ) ) { return false; } $slug = $this->get_activation_slug(); $plugin_file_path = trailingslashit( WP_PLUGIN_DIR ) . $slug; // Make sure the plugin file exists before trying to activate it if ( ! file_exists( $plugin_file_path ) ) { return false; } // Use plugin_basename to generate the correct slug, considering the WP_PLUGIN_DIR $plugin_slug = plugin_basename( $plugin_file_path ); $networkwide = is_multisite() && rsssl_is_networkwide_active(); if ( ! defined( 'DOING_CRON' ) ) { define( 'DOING_CRON', true );//phpcs:ignore } $result = activate_plugin( $plugin_slug, '', $networkwide ); if ( is_wp_error( $result ) ) { return false; } $this->cancel_tour(); return true; } /** * Get plugin info * @return array|WP_Error */ public function get_plugin_info() { require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; $plugin_info = get_transient( 'rsssl_' . $this->slug . '_plugin_info' ); if ( empty( $plugin_info ) ) { $plugin_info = plugins_api( 'plugin_information', array( 'slug' => $this->slug ) ); if ( ! is_wp_error( $plugin_info ) ) { set_transient( 'rsssl_' . $this->slug . '_plugin_info', $plugin_info, WEEK_IN_SECONDS ); } } return $plugin_info; } } } PK�������!�l_"��"�� ��composer.jsonnu�[��������{ "name": "really-simple-plugins/really-simple-ssl", "description": "Really Simple SSL WordPress plugin", "type": "wordpress-plugin", "version": "6.2.3", "require-dev": { "phpunit/phpunit": "^9", "yoast/phpunit-polyfills": "^1.0", "wp-cli/wp-cli-bundle": "^2.7", "php": ">=7.2", "composer": "^2.4", "phpcompatibility/phpcompatibility-wp": "*" }, "config": { "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true } } } PK�������!�?t4s#���#��� ��index.phpnu�[��������<?php // You don't belong here. ?> PK�������!�n������modal/src/index.jsnu�[��������import { render, createRoot } from '@wordpress/element'; import DeactivationModal from "./components/DeactivationModal/DeactivationModal"; document.addEventListener( 'DOMContentLoaded', () => { const container = document.getElementById( 'rsssl-modal-root' ); if ( container ) { if ( createRoot ) { createRoot( container ).render( <DeactivationModal/> ); } else { render( <DeactivationModal/>, container ); } } });PK�������!�: �� ��(��modal/src/components/Modal/RssslModal.jsnu�[��������/** @jsx wp.element.createElement */ import { Modal, Button } from "@wordpress/components"; import {useEffect, useState} from "@wordpress/element"; import { __ } from "@wordpress/i18n"; import './RssslModal.scss'; import ErrorBoundary from "../../../../settings/src/utils/ErrorBoundary"; const RssslModal = ({title, subTitle, buttons, content, list, confirmAction, confirmText, alternativeAction, alternativeText, alternativeClassName, isOpen, setOpen, className}) => { const [Icon, setIcon] = useState(null); let pluginUrl = typeof rsssl_modal !== 'undefined' ? rsssl_modal.plugin_url : rsssl_settings.plugin_url; alternativeClassName = alternativeClassName ? alternativeClassName : 'rsssl-warning'; useEffect( () => { if (!Icon) { import ("../../../../settings/src/utils/Icon").then(({default: Icon}) => { setIcon(() => Icon); }); } }, []); let modalCustomClass = className ? ' '+className : "" return ( <> {isOpen && ( <> <ErrorBoundary fallback={"Error loading modal"}> <Modal className={"rsssl-modal"+modalCustomClass} shouldCloseOnClickOutside={false} shouldCloseOnEsc={false} title={title} onRequestClose={() => setOpen(false)} open={isOpen}> <div className="rsssl-modal-body"> {subTitle && <p>{subTitle}</p>} {content && <>{content}</>} {list && Icon && <ul> {list.map((item, index) => <li key={index}><Icon name={item.icon} color={item.color}/>{item.text}</li>)} </ul>} </div> <div className="rsssl-modal-footer"> <div className="rsssl-modal-footer-image"> <img className="rsssl-logo" src={pluginUrl+"assets/img/really-simple-ssl-logo.svg"} alt="Really Simple SSL" /> </div> <div className="rsssl-modal-footer-buttons"> <Button onClick={() => setOpen(false)}>{__("Cancel", "really-simple-ssl")}</Button> { buttons && <>{buttons}</>} { !buttons && <> {alternativeText && <Button className={alternativeClassName} onClick={() => alternativeAction()}>{alternativeText}</Button>} {confirmText && <Button isPrimary onClick={()=> confirmAction() }>{confirmText}</Button>} </> } </div> </div> </Modal> </ErrorBoundary> </> )} </> ); } export default RssslModal;PK�������!�+C3- �� ��*��modal/src/components/Modal/RssslModal.scssnu�[��������@import '../../../../assets/css/variables.scss'; .rsssl-modal { width: 700px; //background:var(--rsp-grey-100); padding:var(--rsp-spacing-m) var(--rsp-spacing-l); box-shadow:var(--rsp-box-shadow); border-radius:var(--rsp-border-radius) var(--rsp-border-radius); border-top:1px solid var(--rsp-grey-300); max-height: calc(100% - 120px); //the default wp modal limits this to minimum 600px, but this creates an ugly modal. margin:auto;//the default wp modal limits this to minimum 600px, but this creates an ugly modal. @media (max-width: 768px) { width: 100%; } .components-modal__content { min-height: 250px; //reset default padding so we can add a footer with background padding:0; margin-top:45px; & > div:nth-child(2) { display: flex; height: 100%; flex-direction: column; } } .rsssl-modal-body { flex-grow: 1; padding: 12px 8px 80px 8px; //80 is for the complete footer height + margin @media (max-width: 768px) { padding: 12px 8px 180px 8px; } p { margin-top:0; } ul { column-count: 2; column-gap: 20px; margin-bottom:0; li { display: flex; padding-bottom: 5px; .rsssl-icon { margin-top: 2px; margin-right: 10px; } } } } .rsssl-modal-footer { background-color: var(--rsp-grey-200); display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--rsp-grey-400); padding: 20px 32px; //ensure the footer doesn't scroll out of sight on smaller screens. bottom: 0; position: absolute; left: 0; right: 0; img { width: 150px; } @media (max-width: 768px) { .rsssl-modal-footer-image { display:none; } .rsssl-modal-footer-buttons { width:100%; display:flex; flex-direction: column; gap: 10px; align-items: center; button { width: 100%; margin:0; } } } button + button { margin-left: 10px; } button + a { margin-left: 10px; } button { &:not(.is-primary) { border: 1px solid var(--wp-admin-theme-color, #3858e9); color: var(--wp-admin-theme-color, #3858e9); background-color: transparent; } &.rsssl-modal-warning { border: 1px solid var(--rsp-red); color: var(--rsp-red); background-color: transparent; } } } } PK�������!�k����;��modal/src/components/DeactivationModal/DeactivationModal.jsnu�[��������import {__} from "@wordpress/i18n"; import {useEffect, useState} from "@wordpress/element"; const DeactivationModal = () => { const [isOpen, setOpen] = useState(false); const [RssslModal, setRssslModal] = useState(false); const [targetPluginLink, setTargetPluginLink] = useState(null); const isPremium = rsssl_modal.pro_plugin_active; useEffect(() => { // Dynamically set the targetPluginLink based on isPremium const linkId = isPremium ? 'deactivate-really-simple-ssl-pro' : 'deactivate-really-simple-ssl'; const linkElement = document.getElementById(linkId); setTargetPluginLink(linkElement); const handleClick = (event) => { event.preventDefault(); setOpen(true); }; if (linkElement) { linkElement.addEventListener('click', handleClick); } // Clean up the event listener return () => { if (linkElement) { linkElement.removeEventListener('click', handleClick); } }; }, [isPremium]); // Re-run this effect if isPremium changes const deactivateKeepHttps = () => { setOpen(false); window.location.href = rsssl_modal.deactivate_keep_https; }; const deactivateAndRevert = () => { setOpen(false); if (targetPluginLink) { window.location.href = targetPluginLink.getAttribute('href'); } }; useEffect(() => { if (!RssslModal && isOpen) { import("../Modal/RssslModal").then(({default: LoadedRssslModal}) => { setRssslModal(() => LoadedRssslModal); }); } }, [isOpen, RssslModal]); const content = () => { return ( <> {__("Please choose the correct deactivation method, and before you go; you will miss out on below and future features in Really Simple Security", "really-simple-ssl")} {isPremium && <> <b>Pro</b></>} ! </> ); }; const list = isPremium ? [ { 'icon': 'circle-times', 'color': 'red', 'text': __("Performant HTTPS redirection", "really-simple-ssl"), }, { 'icon': 'circle-times', 'color': 'red', 'text': __("Vulnerability detection", "really-simple-ssl"), }, { 'icon': 'circle-times', 'color': 'red', 'text': __("Security Headers", "really-simple-ssl"), }, { 'icon': 'circle-times', 'color': 'red', 'text': __("Advanced hardening", "really-simple-ssl"), }, { 'icon': 'circle-times', 'color': 'red', 'text': __("Mixed content scan", "really-simple-ssl"), }, { 'icon': 'circle-times', 'color': 'red', 'text': __("Two-step verification", "really-simple-ssl"), }, { 'icon': 'circle-times', 'color': 'red', 'text': __("Password security", "really-simple-ssl"), }, { 'icon': 'circle-times', 'color': 'red', 'text': __("Limit login attempts", "really-simple-ssl"), }, ] : [ { 'icon': 'circle-times', 'color': 'red', 'text': __("Performant HTTPS redirection", "really-simple-ssl"), }, { 'icon': 'circle-times', 'color': 'red', 'text': __("Vulnerability detection", "really-simple-ssl"), }, { 'icon': 'circle-times', 'color': 'red', 'text': __("WordPress hardening", "really-simple-ssl"), }, { 'icon': 'circle-times', 'color': 'red', 'text': __("Mixed content fixer", "really-simple-ssl"), }, ]; return ( <> {RssslModal && <RssslModal title={__("Are you sure?", "really-simple-ssl")} confirmText={__("Deactivate", "really-simple-ssl")} confirmAction={() => deactivateKeepHttps()} alternativeText={__("Deactivate and use HTTP", "really-simple-ssl")} alternativeAction={() => deactivateAndRevert()} alternativeClassName="rsssl-modal-warning" content={content()} list={list} isOpen={isOpen} setOpen={setOpen}/> } </> ); } export default DeactivationModal;PK�������!� �� ����modal/webpack.config.jsnu�[��������const defaultConfig = require("@wordpress/scripts/config/webpack.config"); module.exports = { ...defaultConfig, output: { ...defaultConfig.output, filename: '[name].[contenthash].js', chunkFilename: '[name].[contenthash].js', } };PK�������!� U��U��)��modal/build/index.b167e8372488ba3980d4.jsnu�[��������!function(){"use strict";var e,t,r,n,o,i,l={196:function(e){e.exports=window.React},609:function(e){e.exports=window.wp.components},307:function(e){e.exports=window.wp.element},736:function(e){e.exports=window.wp.i18n}},c={};function s(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={exports:{}};return l[e](r,r.exports,s),r.exports}s.m=l,s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},s.d=function(e,t){for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce((function(t,r){return s.f[r](e,t),t}),[]))},s.u=function(e){return e+"."+{204:"ded1ffcbe4657d8be922",658:"c1ae2f75f09af402e920",851:"99d390afbb9ca3c28c19"}[e]+".js"},s.miniCssF=function(e){return e+".css"},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e={},t="really-simple-ssl-modal:",s.l=function(r,n,o,i){if(e[r])e[r].push(n);else{var l,c;if(void 0!==o)for(var a=document.getElementsByTagName("script"),u=0;u<a.length;u++){var d=a[u];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==t+o){l=d;break}}l||(c=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,s.nc&&l.setAttribute("nonce",s.nc),l.setAttribute("data-webpack",t+o),l.src=r),e[r]=[n];var f=function(t,n){l.onerror=l.onload=null,clearTimeout(m);var o=e[r];if(delete e[r],l.parentNode&&l.parentNode.removeChild(l),o&&o.forEach((function(e){return e(n)})),t)return t(n)},m=setTimeout(f.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=f.bind(null,l.onerror),l.onload=f.bind(null,l.onload),c&&document.head.appendChild(l)}},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;s.g.importScripts&&(e=s.g.location+"");var t=s.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!e;)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e}(),function(){if("undefined"!=typeof document){var e={826:0};s.f.miniCss=function(t,r){e[t]?r.push(e[t]):0!==e[t]&&{204:1}[t]&&r.push(e[t]=function(e){return new Promise((function(t,r){var n=s.miniCssF(e),o=s.p+n;if(function(e,t){for(var r=document.getElementsByTagName("link"),n=0;n<r.length;n++){var o=(l=r[n]).getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(o===e||o===t))return l}var i=document.getElementsByTagName("style");for(n=0;n<i.length;n++){var l;if((o=(l=i[n]).getAttribute("data-href"))===e||o===t)return l}}(n,o))return t();!function(e,t,r,n,o){var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",i.onerror=i.onload=function(r){if(i.onerror=i.onload=null,"load"===r.type)n();else{var l=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.href||t,s=new Error("Loading CSS chunk "+e+" failed.\n("+c+")");s.code="CSS_CHUNK_LOAD_FAILED",s.type=l,s.request=c,i.parentNode&&i.parentNode.removeChild(i),o(s)}},i.href=t,document.head.appendChild(i)}(e,o,0,t,r)}))}(t).then((function(){e[t]=0}),(function(r){throw delete e[t],r})))}}}(),function(){var e={826:0};s.f.j=function(t,r){var n=s.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise((function(r,o){n=e[t]=[r,o]}));r.push(n[2]=o);var i=s.p+s.u(t),l=new Error;s.l(i,(function(r){if(s.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),i=r&&r.target&&r.target.src;l.message="Loading chunk "+t+" failed.\n("+o+": "+i+")",l.name="ChunkLoadError",l.type=o,l.request=i,n[1](l)}}),"chunk-"+t,t)}};var t=function(t,r){var n,o,i=r[0],l=r[1],c=r[2],a=0;if(i.some((function(t){return 0!==e[t]}))){for(n in l)s.o(l,n)&&(s.m[n]=l[n]);c&&c(s)}for(t&&t(r);a<i.length;a++)o=i[a],s.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self.webpackChunkreally_simple_ssl_modal=self.webpackChunkreally_simple_ssl_modal||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))}(),r=s(196),n=s(307),o=s(736),i=()=>{const[e,t]=(0,n.useState)(!1),[i,l]=(0,n.useState)(!1),c=document.getElementById("deactivate-really-simple-ssl"),a=rsssl_modal.pro_plugin_active,u=e=>{e.preventDefault(),t(!0)};(0,n.useEffect)((()=>(c.addEventListener("click",u),()=>{c.removeEventListener("click",u)})),[]),(0,n.useEffect)((()=>{e?c.removeEventListener("click",u):c.addEventListener("click",u)}),[e]),(0,n.useEffect)((()=>{i||s.e(204).then(s.bind(s,204)).then((({default:e})=>{l((()=>e))}))}),[e]);const d=a?[{icon:"circle-times",color:"red",text:(0,o.__)("Performant HTTPS redirection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Vulnerability detection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Security Headers","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Advanced hardening","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Mixed content scan","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Two-step verification","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Password security","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Limit login attempts","really-simple-ssl")}]:[{icon:"circle-times",color:"red",text:(0,o.__)("Performant HTTPS redirection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Vulnerability detection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("WordPress hardening","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Mixed content fixer","really-simple-ssl")}];return(0,r.createElement)(r.Fragment,null,i&&(0,r.createElement)(i,{title:(0,o.__)("Are you sure?","really-simple-ssl"),confirmText:(0,o.__)("Deactivate","really-simple-ssl"),confirmAction:()=>(c.removeEventListener("click",u),t(!1),void(window.location.href=rsssl_modal.deactivate_keep_https)),alternativeText:(0,o.__)("Deactivate and use HTTP","really-simple-ssl"),alternativeAction:()=>(t(!1),void(window.location.href=c.getAttribute("href"))),alternativeClassName:"rsssl-modal-warning",content:(0,r.createElement)(r.Fragment,null,(0,o.__)("Please choose the correct deactivation method, and before you go; you will miss out on below and future features in Really Simple Security","really-simple-ssl"),a&&(0,r.createElement)(r.Fragment,null," ",(0,r.createElement)("b",null,"Pro")),"!"),list:d,isOpen:e,setOpen:t}))},document.addEventListener("DOMContentLoaded",(()=>{const e=document.getElementById("rsssl-modal-root");e&&(n.createRoot?(0,n.createRoot)(e).render((0,r.createElement)(i,null)):(0,n.render)((0,r.createElement)(i,null),e))}))}();PK�������!�9y������0��modal/build/index.f0747a4e3a76f14cbb01.asset.phpnu�[��������<?php return array('dependencies' => array('react', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => 'f0747a4e3a76f14cbb01'); PK�������!� ����'��modal/build/161.e0560cee31bfcb50f0b3.jsnu�[��������(globalThis.webpackChunkreally_simple_ssl_modal=globalThis.webpackChunkreally_simple_ssl_modal||[]).push([[161],{732:(e,t)=>{var o;!function(){"use strict";var n={}.hasOwnProperty;function r(){for(var e="",t=0;t<arguments.length;t++){var o=arguments[t];o&&(e=i(e,l(o)))}return e}function l(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return r.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var t="";for(var o in e)n.call(e,o)&&e[o]&&(t=i(t,o));return t}function i(e,t){return t?e?e+" "+t:e+t:e}e.exports?(r.default=r,e.exports=r):void 0===(o=function(){return r}.apply(t,[]))||(e.exports=o)}()},161:(e,t,o)=>{"use strict";o.d(t,{m_:()=>Ae});var n=o(609);const r=Math.min,l=Math.max,i=Math.round,c=Math.floor,s=e=>({x:e,y:e}),a={left:"right",right:"left",bottom:"top",top:"bottom"},u={start:"end",end:"start"};function d(e,t,o){return l(e,r(t,o))}function f(e,t){return"function"==typeof e?e(t):e}function p(e){return e.split("-")[0]}function m(e){return e.split("-")[1]}function y(e){return"x"===e?"y":"x"}function v(e){return"y"===e?"height":"width"}function h(e){return["top","bottom"].includes(p(e))?"y":"x"}function w(e){return y(h(e))}function g(e){return e.replace(/start|end/g,(e=>u[e]))}function b(e){return e.replace(/left|right|bottom|top/g,(e=>a[e]))}function x(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}function _(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function E(e,t,o){let{reference:n,floating:r}=e;const l=h(t),i=w(t),c=v(i),s=p(t),a="y"===l,u=n.x+n.width/2-r.width/2,d=n.y+n.height/2-r.height/2,f=n[c]/2-r[c]/2;let y;switch(s){case"top":y={x:u,y:n.y-r.height};break;case"bottom":y={x:u,y:n.y+n.height};break;case"right":y={x:n.x+n.width,y:d};break;case"left":y={x:n.x-r.width,y:d};break;default:y={x:n.x,y:n.y}}switch(m(t)){case"start":y[i]-=f*(o&&a?-1:1);break;case"end":y[i]+=f*(o&&a?-1:1)}return y}async function S(e,t){var o;void 0===t&&(t={});const{x:n,y:r,platform:l,rects:i,elements:c,strategy:s}=e,{boundary:a="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:p=!1,padding:m=0}=f(t,e),y=x(m),v=c[p?"floating"===d?"reference":"floating":d],h=_(await l.getClippingRect({element:null==(o=await(null==l.isElement?void 0:l.isElement(v)))||o?v:v.contextElement||await(null==l.getDocumentElement?void 0:l.getDocumentElement(c.floating)),boundary:a,rootBoundary:u,strategy:s})),w="floating"===d?{...i.floating,x:n,y:r}:i.reference,g=await(null==l.getOffsetParent?void 0:l.getOffsetParent(c.floating)),b=await(null==l.isElement?void 0:l.isElement(g))&&await(null==l.getScale?void 0:l.getScale(g))||{x:1,y:1},E=_(l.convertOffsetParentRelativeRectToViewportRelativeRect?await l.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:w,offsetParent:g,strategy:s}):w);return{top:(h.top-E.top+y.top)/b.y,bottom:(E.bottom-h.bottom+y.bottom)/b.y,left:(h.left-E.left+y.left)/b.x,right:(E.right-h.right+y.right)/b.x}}const A=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var o,n;const{x:r,y:l,placement:i,middlewareData:c}=t,s=await async function(e,t){const{placement:o,platform:n,elements:r}=e,l=await(null==n.isRTL?void 0:n.isRTL(r.floating)),i=p(o),c=m(o),s="y"===h(o),a=["left","top"].includes(i)?-1:1,u=l&&s?-1:1,d=f(t,e);let{mainAxis:y,crossAxis:v,alignmentAxis:w}="number"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...d};return c&&"number"==typeof w&&(v="end"===c?-1*w:w),s?{x:v*u,y:y*a}:{x:y*a,y:v*u}}(t,e);return i===(null==(o=c.offset)?void 0:o.placement)&&null!=(n=c.arrow)&&n.alignmentOffset?{}:{x:r+s.x,y:l+s.y,data:{...s,placement:i}}}}};function T(e){return k(e)?(e.nodeName||"").toLowerCase():"#document"}function R(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function O(e){var t;return null==(t=(k(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function k(e){return e instanceof Node||e instanceof R(e).Node}function L(e){return e instanceof Element||e instanceof R(e).Element}function C(e){return e instanceof HTMLElement||e instanceof R(e).HTMLElement}function N(e){return"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof R(e).ShadowRoot)}function D(e){const{overflow:t,overflowX:o,overflowY:n,display:r}=H(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+o)&&!["inline","contents"].includes(r)}function $(e){return["table","td","th"].includes(T(e))}function B(e){const t=I(),o=H(e);return"none"!==o.transform||"none"!==o.perspective||!!o.containerType&&"normal"!==o.containerType||!t&&!!o.backdropFilter&&"none"!==o.backdropFilter||!t&&!!o.filter&&"none"!==o.filter||["transform","perspective","filter"].some((e=>(o.willChange||"").includes(e)))||["paint","layout","strict","content"].some((e=>(o.contain||"").includes(e)))}function I(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function j(e){return["html","body","#document"].includes(T(e))}function H(e){return R(e).getComputedStyle(e)}function P(e){return L(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function W(e){if("html"===T(e))return e;const t=e.assignedSlot||e.parentNode||N(e)&&e.host||O(e);return N(t)?t.host:t}function z(e){const t=W(e);return j(t)?e.ownerDocument?e.ownerDocument.body:e.body:C(t)&&D(t)?t:z(t)}function F(e,t,o){var n;void 0===t&&(t=[]),void 0===o&&(o=!0);const r=z(e),l=r===(null==(n=e.ownerDocument)?void 0:n.body),i=R(r);return l?t.concat(i,i.visualViewport||[],D(r)?r:[],i.frameElement&&o?F(i.frameElement):[]):t.concat(r,F(r,[],o))}function M(e){const t=H(e);let o=parseFloat(t.width)||0,n=parseFloat(t.height)||0;const r=C(e),l=r?e.offsetWidth:o,c=r?e.offsetHeight:n,s=i(o)!==l||i(n)!==c;return s&&(o=l,n=c),{width:o,height:n,$:s}}function V(e){return L(e)?e:e.contextElement}function q(e){const t=V(e);if(!C(t))return s(1);const o=t.getBoundingClientRect(),{width:n,height:r,$:l}=M(t);let c=(l?i(o.width):o.width)/n,a=(l?i(o.height):o.height)/r;return c&&Number.isFinite(c)||(c=1),a&&Number.isFinite(a)||(a=1),{x:c,y:a}}const K=s(0);function X(e){const t=R(e);return I()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:K}function Y(e,t,o,n){void 0===t&&(t=!1),void 0===o&&(o=!1);const r=e.getBoundingClientRect(),l=V(e);let i=s(1);t&&(n?L(n)&&(i=q(n)):i=q(e));const c=function(e,t,o){return void 0===t&&(t=!1),!(!o||t&&o!==R(e))&&t}(l,o,n)?X(l):s(0);let a=(r.left+c.x)/i.x,u=(r.top+c.y)/i.y,d=r.width/i.x,f=r.height/i.y;if(l){const e=R(l),t=n&&L(n)?R(n):n;let o=e,r=o.frameElement;for(;r&&n&&t!==o;){const e=q(r),t=r.getBoundingClientRect(),n=H(r),l=t.left+(r.clientLeft+parseFloat(n.paddingLeft))*e.x,i=t.top+(r.clientTop+parseFloat(n.paddingTop))*e.y;a*=e.x,u*=e.y,d*=e.x,f*=e.y,a+=l,u+=i,o=R(r),r=o.frameElement}}return _({width:d,height:f,x:a,y:u})}const Z=[":popover-open",":modal"];function G(e){return Z.some((t=>{try{return e.matches(t)}catch(e){return!1}}))}function U(e){return Y(O(e)).left+P(e).scrollLeft}function J(e,t,o){let n;if("viewport"===t)n=function(e,t){const o=R(e),n=O(e),r=o.visualViewport;let l=n.clientWidth,i=n.clientHeight,c=0,s=0;if(r){l=r.width,i=r.height;const e=I();(!e||e&&"fixed"===t)&&(c=r.offsetLeft,s=r.offsetTop)}return{width:l,height:i,x:c,y:s}}(e,o);else if("document"===t)n=function(e){const t=O(e),o=P(e),n=e.ownerDocument.body,r=l(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),i=l(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight);let c=-o.scrollLeft+U(e);const s=-o.scrollTop;return"rtl"===H(n).direction&&(c+=l(t.clientWidth,n.clientWidth)-r),{width:r,height:i,x:c,y:s}}(O(e));else if(L(t))n=function(e,t){const o=Y(e,!0,"fixed"===t),n=o.top+e.clientTop,r=o.left+e.clientLeft,l=C(e)?q(e):s(1);return{width:e.clientWidth*l.x,height:e.clientHeight*l.y,x:r*l.x,y:n*l.y}}(t,o);else{const o=X(e);n={...t,x:t.x-o.x,y:t.y-o.y}}return _(n)}function Q(e,t){const o=W(e);return!(o===t||!L(o)||j(o))&&("fixed"===H(o).position||Q(o,t))}function ee(e,t,o){const n=C(t),r=O(t),l="fixed"===o,i=Y(e,!0,l,t);let c={scrollLeft:0,scrollTop:0};const a=s(0);if(n||!n&&!l)if(("body"!==T(t)||D(r))&&(c=P(t)),n){const e=Y(t,!0,l,t);a.x=e.x+t.clientLeft,a.y=e.y+t.clientTop}else r&&(a.x=U(r));return{x:i.left+c.scrollLeft-a.x,y:i.top+c.scrollTop-a.y,width:i.width,height:i.height}}function te(e,t){return C(e)&&"fixed"!==H(e).position?t?t(e):e.offsetParent:null}function oe(e,t){const o=R(e);if(!C(e)||G(e))return o;let n=te(e,t);for(;n&&$(n)&&"static"===H(n).position;)n=te(n,t);return n&&("html"===T(n)||"body"===T(n)&&"static"===H(n).position&&!B(n))?o:n||function(e){let t=W(e);for(;C(t)&&!j(t);){if(B(t))return t;t=W(t)}return null}(e)||o}const ne={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:o,offsetParent:n,strategy:r}=e;const l="fixed"===r,i=O(n),c=!!t&&G(t.floating);if(n===i||c&&l)return o;let a={scrollLeft:0,scrollTop:0},u=s(1);const d=s(0),f=C(n);if((f||!f&&!l)&&(("body"!==T(n)||D(i))&&(a=P(n)),C(n))){const e=Y(n);u=q(n),d.x=e.x+n.clientLeft,d.y=e.y+n.clientTop}return{width:o.width*u.x,height:o.height*u.y,x:o.x*u.x-a.scrollLeft*u.x+d.x,y:o.y*u.y-a.scrollTop*u.y+d.y}},getDocumentElement:O,getClippingRect:function(e){let{element:t,boundary:o,rootBoundary:n,strategy:i}=e;const c=[..."clippingAncestors"===o?function(e,t){const o=t.get(e);if(o)return o;let n=F(e,[],!1).filter((e=>L(e)&&"body"!==T(e))),r=null;const l="fixed"===H(e).position;let i=l?W(e):e;for(;L(i)&&!j(i);){const t=H(i),o=B(i);o||"fixed"!==t.position||(r=null),(l?!o&&!r:!o&&"static"===t.position&&r&&["absolute","fixed"].includes(r.position)||D(i)&&!o&&Q(e,i))?n=n.filter((e=>e!==i)):r=t,i=W(i)}return t.set(e,n),n}(t,this._c):[].concat(o),n],s=c[0],a=c.reduce(((e,o)=>{const n=J(t,o,i);return e.top=l(n.top,e.top),e.right=r(n.right,e.right),e.bottom=r(n.bottom,e.bottom),e.left=l(n.left,e.left),e}),J(t,s,i));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},getOffsetParent:oe,getElementRects:async function(e){const t=this.getOffsetParent||oe,o=this.getDimensions;return{reference:ee(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,...await o(e.floating)}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:o}=M(e);return{width:t,height:o}},getScale:q,isElement:L,isRTL:function(e){return"rtl"===H(e).direction}};const re=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:o,y:n,placement:r}=t,{mainAxis:l=!0,crossAxis:i=!1,limiter:c={fn:e=>{let{x:t,y:o}=e;return{x:t,y:o}}},...s}=f(e,t),a={x:o,y:n},u=await S(t,s),m=h(p(r)),v=y(m);let w=a[v],g=a[m];if(l){const e="y"===v?"bottom":"right";w=d(w+u["y"===v?"top":"left"],w,w-u[e])}if(i){const e="y"===m?"bottom":"right";g=d(g+u["y"===m?"top":"left"],g,g-u[e])}const b=c.fn({...t,[v]:w,[m]:g});return{...b,data:{x:b.x-o,y:b.y-n}}}}},le=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var o,n;const{placement:r,middlewareData:l,rects:i,initialPlacement:c,platform:s,elements:a}=t,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:y,fallbackStrategy:h="bestFit",fallbackAxisSideDirection:x="none",flipAlignment:_=!0,...E}=f(e,t);if(null!=(o=l.arrow)&&o.alignmentOffset)return{};const A=p(r),T=p(c)===c,R=await(null==s.isRTL?void 0:s.isRTL(a.floating)),O=y||(T||!_?[b(c)]:function(e){const t=b(e);return[g(e),t,g(t)]}(c));y||"none"===x||O.push(...function(e,t,o,n){const r=m(e);let l=function(e,t,o){const n=["left","right"],r=["right","left"],l=["top","bottom"],i=["bottom","top"];switch(e){case"top":case"bottom":return o?t?r:n:t?n:r;case"left":case"right":return t?l:i;default:return[]}}(p(e),"start"===o,n);return r&&(l=l.map((e=>e+"-"+r)),t&&(l=l.concat(l.map(g)))),l}(c,_,x,R));const k=[c,...O],L=await S(t,E),C=[];let N=(null==(n=l.flip)?void 0:n.overflows)||[];if(u&&C.push(L[A]),d){const e=function(e,t,o){void 0===o&&(o=!1);const n=m(e),r=w(e),l=v(r);let i="x"===r?n===(o?"end":"start")?"right":"left":"start"===n?"bottom":"top";return t.reference[l]>t.floating[l]&&(i=b(i)),[i,b(i)]}(r,i,R);C.push(L[e[0]],L[e[1]])}if(N=[...N,{placement:r,overflows:C}],!C.every((e=>e<=0))){var D,$;const e=((null==(D=l.flip)?void 0:D.index)||0)+1,t=k[e];if(t)return{data:{index:e,overflows:N},reset:{placement:t}};let o=null==($=N.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:$.placement;if(!o)switch(h){case"bestFit":{var B;const e=null==(B=N.map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:B[0];e&&(o=e);break}case"initialPlacement":o=c}if(r!==o)return{reset:{placement:o}}}return{}}}},ie=(e,t,o)=>{const n=new Map,r={platform:ne,...o},l={...r.platform,_c:n};return(async(e,t,o)=>{const{placement:n="bottom",strategy:r="absolute",middleware:l=[],platform:i}=o,c=l.filter(Boolean),s=await(null==i.isRTL?void 0:i.isRTL(t));let a=await i.getElementRects({reference:e,floating:t,strategy:r}),{x:u,y:d}=E(a,n,s),f=n,p={},m=0;for(let o=0;o<c.length;o++){const{name:l,fn:y}=c[o],{x:v,y:h,data:w,reset:g}=await y({x:u,y:d,initialPlacement:n,placement:f,strategy:r,middlewareData:p,rects:a,platform:i,elements:{reference:e,floating:t}});u=null!=v?v:u,d=null!=h?h:d,p={...p,[l]:{...p[l],...w}},g&&m<=50&&(m++,"object"==typeof g&&(g.placement&&(f=g.placement),g.rects&&(a=!0===g.rects?await i.getElementRects({reference:e,floating:t,strategy:r}):g.rects),({x:u,y:d}=E(a,f,s))),o=-1)}return{x:u,y:d,placement:f,strategy:r,middlewareData:p}})(e,t,{...r,platform:l})};var ce=o(732);const se={core:!1,base:!1};function ae({css:e,id:t="react-tooltip-base-styles",type:o="base",ref:n}){var r,l;if(!e||"undefined"==typeof document||se[o])return;if("core"===o&&"undefined"!=typeof process&&(null===(r=null===process||void 0===process?void 0:process.env)||void 0===r?void 0:r.REACT_TOOLTIP_DISABLE_CORE_STYLES))return;if("base"!==o&&"undefined"!=typeof process&&(null===(l=null===process||void 0===process?void 0:process.env)||void 0===l?void 0:l.REACT_TOOLTIP_DISABLE_BASE_STYLES))return;"core"===o&&(t="react-tooltip-core-styles"),n||(n={});const{insertAt:i}=n;if(document.getElementById(t))return void console.warn(`[react-tooltip] Element with id '${t}' already exists. Call \`removeStyle()\` first`);const c=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.id=t,s.type="text/css","top"===i&&c.firstChild?c.insertBefore(s,c.firstChild):c.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e)),se[o]=!0}const ue=async({elementReference:e=null,tooltipReference:t=null,tooltipArrowReference:o=null,place:n="top",offset:l=10,strategy:i="absolute",middlewares:c=[A(Number(l)),le({fallbackAxisSideDirection:"start"}),re({padding:5})],border:s})=>{if(!e)return{tooltipStyles:{},tooltipArrowStyles:{},place:n};if(null===t)return{tooltipStyles:{},tooltipArrowStyles:{},place:n};const a=c;return o?(a.push({name:"arrow",options:u={element:o,padding:5},async fn(e){const{x:t,y:o,placement:n,rects:l,platform:i,elements:c,middlewareData:s}=e,{element:a,padding:p=0}=f(u,e)||{};if(null==a)return{};const y=x(p),h={x:t,y:o},g=w(n),b=v(g),_=await i.getDimensions(a),E="y"===g,S=E?"top":"left",A=E?"bottom":"right",T=E?"clientHeight":"clientWidth",R=l.reference[b]+l.reference[g]-h[g]-l.floating[b],O=h[g]-l.reference[g],k=await(null==i.getOffsetParent?void 0:i.getOffsetParent(a));let L=k?k[T]:0;L&&await(null==i.isElement?void 0:i.isElement(k))||(L=c.floating[T]||l.floating[b]);const C=R/2-O/2,N=L/2-_[b]/2-1,D=r(y[S],N),$=r(y[A],N),B=D,I=L-_[b]-$,j=L/2-_[b]/2+C,H=d(B,j,I),P=!s.arrow&&null!=m(n)&&j!==H&&l.reference[b]/2-(j<B?D:$)-_[b]/2<0,W=P?j<B?j-B:j-I:0;return{[g]:h[g]+W,data:{[g]:H,centerOffset:j-H-W,...P&&{alignmentOffset:W}},reset:P}}}),ie(e,t,{placement:n,strategy:i,middleware:a}).then((({x:e,y:t,placement:o,middlewareData:n})=>{var r,l;const i={left:`${e}px`,top:`${t}px`,border:s},{x:c,y:a}=null!==(r=n.arrow)&&void 0!==r?r:{x:0,y:0},u=null!==(l={top:"bottom",right:"left",bottom:"top",left:"right"}[o.split("-")[0]])&&void 0!==l?l:"bottom",d=s&&{borderBottom:s,borderRight:s};let f=0;if(s){const e=`${s}`.match(/(\d+)px/);f=(null==e?void 0:e[1])?Number(e[1]):1}return{tooltipStyles:i,tooltipArrowStyles:{left:null!=c?`${c}px`:"",top:null!=a?`${a}px`:"",right:"",bottom:"",...d,[u]:`-${4+f}px`},place:o}}))):ie(e,t,{placement:"bottom",strategy:i,middleware:a}).then((({x:e,y:t,placement:o})=>({tooltipStyles:{left:`${e}px`,top:`${t}px`},tooltipArrowStyles:{},place:o})));var u},de=(e,t)=>!("CSS"in window&&"supports"in window.CSS)||window.CSS.supports(e,t),fe=(e,t,o)=>{let n=null;const r=function(...r){const l=()=>{n=null,o||e.apply(this,r)};o&&!n&&(e.apply(this,r),n=setTimeout(l,t)),o||(n&&clearTimeout(n),n=setTimeout(l,t))};return r.cancel=()=>{n&&(clearTimeout(n),n=null)},r},pe=e=>null!==e&&!Array.isArray(e)&&"object"==typeof e,me=(e,t)=>{if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every(((e,o)=>me(e,t[o])));if(Array.isArray(e)!==Array.isArray(t))return!1;if(!pe(e)||!pe(t))return e===t;const o=Object.keys(e),n=Object.keys(t);return o.length===n.length&&o.every((o=>me(e[o],t[o])))},ye=e=>{if(!(e instanceof HTMLElement||e instanceof SVGElement))return!1;const t=getComputedStyle(e);return["overflow","overflow-x","overflow-y"].some((e=>{const o=t.getPropertyValue(e);return"auto"===o||"scroll"===o}))},ve=e=>{if(!e)return null;let t=e.parentElement;for(;t;){if(ye(t))return t;t=t.parentElement}return document.scrollingElement||document.documentElement},he="undefined"!=typeof window?n.useLayoutEffect:n.useEffect,we={anchorRefs:new Set,activeAnchor:{current:null},attach:()=>{},detach:()=>{},setActiveAnchor:()=>{}},ge=(0,n.createContext)({getTooltipData:()=>we});function be(e="DEFAULT_TOOLTIP_ID"){return(0,n.useContext)(ge).getTooltipData(e)}var xe={tooltip:"core-styles-module_tooltip__3vRRp",fixed:"core-styles-module_fixed__pcSol",arrow:"core-styles-module_arrow__cvMwQ",noArrow:"core-styles-module_noArrow__xock6",clickable:"core-styles-module_clickable__ZuTTB",show:"core-styles-module_show__Nt9eE",closing:"core-styles-module_closing__sGnxF"},_e={tooltip:"styles-module_tooltip__mnnfp",arrow:"styles-module_arrow__K0L3T",dark:"styles-module_dark__xNqje",light:"styles-module_light__Z6W-X",success:"styles-module_success__A2AKt",warning:"styles-module_warning__SCK0X",error:"styles-module_error__JvumD",info:"styles-module_info__BWdHW"};const Ee=({forwardRef:e,id:t,className:o,classNameArrow:i,variant:s="dark",anchorId:a,anchorSelect:u,place:d="top",offset:f=10,events:p=["hover"],openOnClick:m=!1,positionStrategy:y="absolute",middlewares:v,wrapper:h,delayShow:w=0,delayHide:g=0,float:b=!1,hidden:x=!1,noArrow:_=!1,clickable:E=!1,closeOnEsc:S=!1,closeOnScroll:A=!1,closeOnResize:T=!1,openEvents:R,closeEvents:k,globalCloseEvents:L,imperativeModeOnly:C,style:N,position:D,afterShow:$,afterHide:B,content:I,contentWrapperRef:j,isOpen:H,defaultIsOpen:P=!1,setIsOpen:W,activeAnchor:z,setActiveAnchor:M,border:q,opacity:K,arrowColor:X,role:Z="tooltip"})=>{var G;const U=(0,n.useRef)(null),J=(0,n.useRef)(null),Q=(0,n.useRef)(null),ee=(0,n.useRef)(null),te=(0,n.useRef)(null),[oe,ne]=(0,n.useState)({tooltipStyles:{},tooltipArrowStyles:{},place:d}),[re,le]=(0,n.useState)(!1),[ie,se]=(0,n.useState)(!1),[ae,de]=(0,n.useState)(null),pe=(0,n.useRef)(!1),ye=(0,n.useRef)(null),{anchorRefs:we,setActiveAnchor:ge}=be(t),Ee=(0,n.useRef)(!1),[Se,Ae]=(0,n.useState)([]),Te=(0,n.useRef)(!1),Re=m||p.includes("click"),Oe=Re||(null==R?void 0:R.click)||(null==R?void 0:R.dblclick)||(null==R?void 0:R.mousedown),ke=R?{...R}:{mouseenter:!0,focus:!0,click:!1,dblclick:!1,mousedown:!1};!R&&Re&&Object.assign(ke,{mouseenter:!1,focus:!1,click:!0});const Le=k?{...k}:{mouseleave:!0,blur:!0,click:!1,dblclick:!1,mouseup:!1};!k&&Re&&Object.assign(Le,{mouseleave:!1,blur:!1});const Ce=L?{...L}:{escape:S||!1,scroll:A||!1,resize:T||!1,clickOutsideAnchor:Oe||!1};C&&(Object.assign(ke,{mouseenter:!1,focus:!1,click:!1,dblclick:!1,mousedown:!1}),Object.assign(Le,{mouseleave:!1,blur:!1,click:!1,dblclick:!1,mouseup:!1}),Object.assign(Ce,{escape:!1,scroll:!1,resize:!1,clickOutsideAnchor:!1})),he((()=>(Te.current=!0,()=>{Te.current=!1})),[]);const Ne=e=>{Te.current&&(e&&se(!0),setTimeout((()=>{Te.current&&(null==W||W(e),void 0===H&&le(e))}),10))};(0,n.useEffect)((()=>{if(void 0===H)return()=>null;H&&se(!0);const e=setTimeout((()=>{le(H)}),10);return()=>{clearTimeout(e)}}),[H]),(0,n.useEffect)((()=>{if(re!==pe.current)if(te.current&&clearTimeout(te.current),pe.current=re,re)null==$||$();else{const e=(e=>{const t=getComputedStyle(document.body).getPropertyValue("--rt-transition-show-delay").match(/^([\d.]+)(ms|s)$/);if(!t)return 0;const[,o,n]=t;return Number(o)*("ms"===n?1:1e3)})();te.current=setTimeout((()=>{se(!1),de(null),null==B||B()}),e+25)}}),[re]);const De=e=>{ne((t=>me(t,e)?t:e))},$e=(e=w)=>{Q.current&&clearTimeout(Q.current),ie?Ne(!0):Q.current=setTimeout((()=>{Ne(!0)}),e)},Be=(e=g)=>{ee.current&&clearTimeout(ee.current),ee.current=setTimeout((()=>{Ee.current||Ne(!1)}),e)},Ie=e=>{var t;if(!e)return;const o=null!==(t=e.currentTarget)&&void 0!==t?t:e.target;if(!(null==o?void 0:o.isConnected))return M(null),void ge({current:null});w?$e():Ne(!0),M(o),ge({current:o}),ee.current&&clearTimeout(ee.current)},je=()=>{E?Be(g||100):g?Be():Ne(!1),Q.current&&clearTimeout(Q.current)},He=({x:e,y:t})=>{var o;const n={getBoundingClientRect:()=>({x:e,y:t,width:0,height:0,top:t,left:e,right:e,bottom:t})};ue({place:null!==(o=null==ae?void 0:ae.place)&&void 0!==o?o:d,offset:f,elementReference:n,tooltipReference:U.current,tooltipArrowReference:J.current,strategy:y,middlewares:v,border:q}).then((e=>{De(e)}))},Pe=e=>{if(!e)return;const t=e,o={x:t.clientX,y:t.clientY};He(o),ye.current=o},We=e=>{var t;if(!re)return;const o=e.target;o.isConnected&&((null===(t=U.current)||void 0===t?void 0:t.contains(o))||[document.querySelector(`[id='${a}']`),...Se].some((e=>null==e?void 0:e.contains(o)))||(Ne(!1),Q.current&&clearTimeout(Q.current)))},ze=fe(Ie,50,!0),Fe=fe(je,50,!0),Me=e=>{Fe.cancel(),ze(e)},Ve=()=>{ze.cancel(),Fe()},qe=(0,n.useCallback)((()=>{var e,t;const o=null!==(e=null==ae?void 0:ae.position)&&void 0!==e?e:D;o?He(o):b?ye.current&&He(ye.current):(null==z?void 0:z.isConnected)&&ue({place:null!==(t=null==ae?void 0:ae.place)&&void 0!==t?t:d,offset:f,elementReference:z,tooltipReference:U.current,tooltipArrowReference:J.current,strategy:y,middlewares:v,border:q}).then((e=>{Te.current&&De(e)}))}),[re,z,I,N,d,null==ae?void 0:ae.place,f,y,D,null==ae?void 0:ae.position,b]);(0,n.useEffect)((()=>{var e,t;const o=new Set(we);Se.forEach((e=>{o.add({current:e})}));const n=document.querySelector(`[id='${a}']`);n&&o.add({current:n});const i=()=>{Ne(!1)},s=ve(z),u=ve(U.current);Ce.scroll&&(window.addEventListener("scroll",i),null==s||s.addEventListener("scroll",i),null==u||u.addEventListener("scroll",i));let d=null;Ce.resize?window.addEventListener("resize",i):z&&U.current&&(d=function(e,t,o,n){void 0===n&&(n={});const{ancestorScroll:i=!0,ancestorResize:s=!0,elementResize:a="function"==typeof ResizeObserver,layoutShift:u="function"==typeof IntersectionObserver,animationFrame:d=!1}=n,f=V(e),p=i||s?[...f?F(f):[],...F(t)]:[];p.forEach((e=>{i&&e.addEventListener("scroll",o,{passive:!0}),s&&e.addEventListener("resize",o)}));const m=f&&u?function(e,t){let o,n=null;const i=O(e);function s(){var e;clearTimeout(o),null==(e=n)||e.disconnect(),n=null}return function a(u,d){void 0===u&&(u=!1),void 0===d&&(d=1),s();const{left:f,top:p,width:m,height:y}=e.getBoundingClientRect();if(u||t(),!m||!y)return;const v={rootMargin:-c(p)+"px "+-c(i.clientWidth-(f+m))+"px "+-c(i.clientHeight-(p+y))+"px "+-c(f)+"px",threshold:l(0,r(1,d))||1};let h=!0;function w(e){const t=e[0].intersectionRatio;if(t!==d){if(!h)return a();t?a(!1,t):o=setTimeout((()=>{a(!1,1e-7)}),100)}h=!1}try{n=new IntersectionObserver(w,{...v,root:i.ownerDocument})}catch(e){n=new IntersectionObserver(w,v)}n.observe(e)}(!0),s}(f,o):null;let y,v=-1,h=null;a&&(h=new ResizeObserver((e=>{let[n]=e;n&&n.target===f&&h&&(h.unobserve(t),cancelAnimationFrame(v),v=requestAnimationFrame((()=>{var e;null==(e=h)||e.observe(t)}))),o()})),f&&!d&&h.observe(f),h.observe(t));let w=d?Y(e):null;return d&&function t(){const n=Y(e);!w||n.x===w.x&&n.y===w.y&&n.width===w.width&&n.height===w.height||o(),w=n,y=requestAnimationFrame(t)}(),o(),()=>{var e;p.forEach((e=>{i&&e.removeEventListener("scroll",o),s&&e.removeEventListener("resize",o)})),null==m||m(),null==(e=h)||e.disconnect(),h=null,d&&cancelAnimationFrame(y)}}(z,U.current,qe,{ancestorResize:!0,elementResize:!0,layoutShift:!0}));const f=e=>{"Escape"===e.key&&Ne(!1)};Ce.escape&&window.addEventListener("keydown",f),Ce.clickOutsideAnchor&&window.addEventListener("click",We);const p=[],m=e=>{re&&(null==e?void 0:e.target)===z||Ie(e)},y=e=>{re&&(null==e?void 0:e.target)===z&&je()},v=["mouseenter","mouseleave","focus","blur"],h=["click","dblclick","mousedown","mouseup"];Object.entries(ke).forEach((([e,t])=>{t&&(v.includes(e)?p.push({event:e,listener:Me}):h.includes(e)&&p.push({event:e,listener:m}))})),Object.entries(Le).forEach((([e,t])=>{t&&(v.includes(e)?p.push({event:e,listener:Ve}):h.includes(e)&&p.push({event:e,listener:y}))})),b&&p.push({event:"pointermove",listener:Pe});const w=()=>{Ee.current=!0},g=()=>{Ee.current=!1,je()};return E&&!Oe&&(null===(e=U.current)||void 0===e||e.addEventListener("mouseenter",w),null===(t=U.current)||void 0===t||t.addEventListener("mouseleave",g)),p.forEach((({event:e,listener:t})=>{o.forEach((o=>{var n;null===(n=o.current)||void 0===n||n.addEventListener(e,t)}))})),()=>{var e,t;Ce.scroll&&(window.removeEventListener("scroll",i),null==s||s.removeEventListener("scroll",i),null==u||u.removeEventListener("scroll",i)),Ce.resize?window.removeEventListener("resize",i):null==d||d(),Ce.clickOutsideAnchor&&window.removeEventListener("click",We),Ce.escape&&window.removeEventListener("keydown",f),E&&!Oe&&(null===(e=U.current)||void 0===e||e.removeEventListener("mouseenter",w),null===(t=U.current)||void 0===t||t.removeEventListener("mouseleave",g)),p.forEach((({event:e,listener:t})=>{o.forEach((o=>{var n;null===(n=o.current)||void 0===n||n.removeEventListener(e,t)}))}))}}),[z,qe,ie,we,Se,R,k,L,Re,w,g]),(0,n.useEffect)((()=>{var e,o;let n=null!==(o=null!==(e=null==ae?void 0:ae.anchorSelect)&&void 0!==e?e:u)&&void 0!==o?o:"";!n&&t&&(n=`[data-tooltip-id='${t}']`);const r=new MutationObserver((e=>{const o=[],r=[];e.forEach((e=>{if("attributes"===e.type&&"data-tooltip-id"===e.attributeName&&(e.target.getAttribute("data-tooltip-id")===t?o.push(e.target):e.oldValue===t&&r.push(e.target)),"childList"===e.type){if(z){const t=[...e.removedNodes].filter((e=>1===e.nodeType));if(n)try{r.push(...t.filter((e=>e.matches(n)))),r.push(...t.flatMap((e=>[...e.querySelectorAll(n)])))}catch(e){}t.some((e=>{var t;return!!(null===(t=null==e?void 0:e.contains)||void 0===t?void 0:t.call(e,z))&&(se(!1),Ne(!1),M(null),Q.current&&clearTimeout(Q.current),ee.current&&clearTimeout(ee.current),!0)}))}if(n)try{const t=[...e.addedNodes].filter((e=>1===e.nodeType));o.push(...t.filter((e=>e.matches(n)))),o.push(...t.flatMap((e=>[...e.querySelectorAll(n)])))}catch(e){}}})),(o.length||r.length)&&Ae((e=>[...e.filter((e=>!r.includes(e))),...o]))}));return r.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-tooltip-id"],attributeOldValue:!0}),()=>{r.disconnect()}}),[t,u,null==ae?void 0:ae.anchorSelect,z]),(0,n.useEffect)((()=>{qe()}),[qe]),(0,n.useEffect)((()=>{if(!(null==j?void 0:j.current))return()=>null;const e=new ResizeObserver((()=>{setTimeout((()=>qe()))}));return e.observe(j.current),()=>{e.disconnect()}}),[I,null==j?void 0:j.current]),(0,n.useEffect)((()=>{var e;const t=document.querySelector(`[id='${a}']`),o=[...Se,t];z&&o.includes(z)||M(null!==(e=Se[0])&&void 0!==e?e:t)}),[a,Se,z]),(0,n.useEffect)((()=>(P&&Ne(!0),()=>{Q.current&&clearTimeout(Q.current),ee.current&&clearTimeout(ee.current)})),[]),(0,n.useEffect)((()=>{var e;let o=null!==(e=null==ae?void 0:ae.anchorSelect)&&void 0!==e?e:u;if(!o&&t&&(o=`[data-tooltip-id='${t}']`),o)try{const e=Array.from(document.querySelectorAll(o));Ae(e)}catch(e){Ae([])}}),[t,u,null==ae?void 0:ae.anchorSelect]),(0,n.useEffect)((()=>{Q.current&&(clearTimeout(Q.current),$e(w))}),[w]);const Ke=null!==(G=null==ae?void 0:ae.content)&&void 0!==G?G:I,Xe=re&&Object.keys(oe.tooltipStyles).length>0;return(0,n.useImperativeHandle)(e,(()=>({open:e=>{if(null==e?void 0:e.anchorSelect)try{document.querySelector(e.anchorSelect)}catch(t){return void console.warn(`[react-tooltip] "${e.anchorSelect}" is not a valid CSS selector`)}de(null!=e?e:null),(null==e?void 0:e.delay)?$e(e.delay):Ne(!0)},close:e=>{(null==e?void 0:e.delay)?Be(e.delay):Ne(!1)},activeAnchor:z,place:oe.place,isOpen:Boolean(ie&&!x&&Ke&&Xe)}))),ie&&!x&&Ke?n.createElement(h,{id:t,role:Z,className:ce("react-tooltip",xe.tooltip,_e.tooltip,_e[s],o,`react-tooltip__place-${oe.place}`,xe[Xe?"show":"closing"],Xe?"react-tooltip__show":"react-tooltip__closing","fixed"===y&&xe.fixed,E&&xe.clickable),onTransitionEnd:e=>{te.current&&clearTimeout(te.current),re||"opacity"!==e.propertyName||(se(!1),de(null),null==B||B())},style:{...N,...oe.tooltipStyles,opacity:void 0!==K&&Xe?K:void 0},ref:U},Ke,n.createElement(h,{className:ce("react-tooltip-arrow",xe.arrow,_e.arrow,i,_&&xe.noArrow),style:{...oe.tooltipArrowStyles,background:X?`linear-gradient(to right bottom, transparent 50%, ${X} 50%)`:void 0},ref:J})):null},Se=({content:e})=>n.createElement("span",{dangerouslySetInnerHTML:{__html:e}}),Ae=n.forwardRef((({id:e,anchorId:t,anchorSelect:o,content:r,html:l,render:i,className:c,classNameArrow:s,variant:a="dark",place:u="top",offset:d=10,wrapper:f="div",children:p=null,events:m=["hover"],openOnClick:y=!1,positionStrategy:v="absolute",middlewares:h,delayShow:w=0,delayHide:g=0,float:b=!1,hidden:x=!1,noArrow:_=!1,clickable:E=!1,closeOnEsc:S=!1,closeOnScroll:A=!1,closeOnResize:T=!1,openEvents:R,closeEvents:O,globalCloseEvents:k,imperativeModeOnly:L=!1,style:C,position:N,isOpen:D,defaultIsOpen:$=!1,disableStyleInjection:B=!1,border:I,opacity:j,arrowColor:H,setIsOpen:P,afterShow:W,afterHide:z,role:F="tooltip"},M)=>{const[V,q]=(0,n.useState)(r),[K,X]=(0,n.useState)(l),[Y,Z]=(0,n.useState)(u),[G,U]=(0,n.useState)(a),[J,Q]=(0,n.useState)(d),[ee,te]=(0,n.useState)(w),[oe,ne]=(0,n.useState)(g),[re,le]=(0,n.useState)(b),[ie,se]=(0,n.useState)(x),[ae,ue]=(0,n.useState)(f),[fe,pe]=(0,n.useState)(m),[me,ye]=(0,n.useState)(v),[ve,he]=(0,n.useState)(null),[we,ge]=(0,n.useState)(null),xe=(0,n.useRef)(B),{anchorRefs:_e,activeAnchor:Ae}=be(e),Te=e=>null==e?void 0:e.getAttributeNames().reduce(((t,o)=>{var n;return o.startsWith("data-tooltip-")&&(t[o.replace(/^data-tooltip-/,"")]=null!==(n=null==e?void 0:e.getAttribute(o))&&void 0!==n?n:null),t}),{}),Re=e=>{const t={place:e=>{var t;Z(null!==(t=e)&&void 0!==t?t:u)},content:e=>{q(null!=e?e:r)},html:e=>{X(null!=e?e:l)},variant:e=>{var t;U(null!==(t=e)&&void 0!==t?t:a)},offset:e=>{Q(null===e?d:Number(e))},wrapper:e=>{var t;ue(null!==(t=e)&&void 0!==t?t:f)},events:e=>{const t=null==e?void 0:e.split(" ");pe(null!=t?t:m)},"position-strategy":e=>{var t;ye(null!==(t=e)&&void 0!==t?t:v)},"delay-show":e=>{te(null===e?w:Number(e))},"delay-hide":e=>{ne(null===e?g:Number(e))},float:e=>{le(null===e?b:"true"===e)},hidden:e=>{se(null===e?x:"true"===e)},"class-name":e=>{he(e)}};Object.values(t).forEach((e=>e(null))),Object.entries(e).forEach((([e,o])=>{var n;null===(n=t[e])||void 0===n||n.call(t,o)}))};(0,n.useEffect)((()=>{q(r)}),[r]),(0,n.useEffect)((()=>{X(l)}),[l]),(0,n.useEffect)((()=>{Z(u)}),[u]),(0,n.useEffect)((()=>{U(a)}),[a]),(0,n.useEffect)((()=>{Q(d)}),[d]),(0,n.useEffect)((()=>{te(w)}),[w]),(0,n.useEffect)((()=>{ne(g)}),[g]),(0,n.useEffect)((()=>{le(b)}),[b]),(0,n.useEffect)((()=>{se(x)}),[x]),(0,n.useEffect)((()=>{ye(v)}),[v]),(0,n.useEffect)((()=>{xe.current!==B&&console.warn("[react-tooltip] Do not change `disableStyleInjection` dynamically.")}),[B]),(0,n.useEffect)((()=>{"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent("react-tooltip-inject-styles",{detail:{disableCore:"core"===B,disableBase:B}}))}),[]),(0,n.useEffect)((()=>{var n;const r=new Set(_e);let l=o;if(!l&&e&&(l=`[data-tooltip-id='${e}']`),l)try{document.querySelectorAll(l).forEach((e=>{r.add({current:e})}))}catch(n){console.warn(`[react-tooltip] "${l}" is not a valid CSS selector`)}const i=document.querySelector(`[id='${t}']`);if(i&&r.add({current:i}),!r.size)return()=>null;const c=null!==(n=null!=we?we:i)&&void 0!==n?n:Ae.current,s=new MutationObserver((e=>{e.forEach((e=>{var t;if(!c||"attributes"!==e.type||!(null===(t=e.attributeName)||void 0===t?void 0:t.startsWith("data-tooltip-")))return;const o=Te(c);Re(o)}))})),a={attributes:!0,childList:!1,subtree:!1};if(c){const e=Te(c);Re(e),s.observe(c,a)}return()=>{s.disconnect()}}),[_e,Ae,we,t,o]),(0,n.useEffect)((()=>{(null==C?void 0:C.border)&&console.warn("[react-tooltip] Do not set `style.border`. Use `border` prop instead."),I&&!de("border",`${I}`)&&console.warn(`[react-tooltip] "${I}" is not a valid \`border\`.`),(null==C?void 0:C.opacity)&&console.warn("[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead."),j&&!de("opacity",`${j}`)&&console.warn(`[react-tooltip] "${j}" is not a valid \`opacity\`.`)}),[]);let Oe=p;const ke=(0,n.useRef)(null);if(i){const e=i({content:(null==we?void 0:we.getAttribute("data-tooltip-content"))||V||null,activeAnchor:we});Oe=e?n.createElement("div",{ref:ke,className:"react-tooltip-content-wrapper"},e):null}else V&&(Oe=V);K&&(Oe=n.createElement(Se,{content:K}));const Le={forwardRef:M,id:e,anchorId:t,anchorSelect:o,className:ce(c,ve),classNameArrow:s,content:Oe,contentWrapperRef:ke,place:Y,variant:G,offset:J,wrapper:ae,events:fe,openOnClick:y,positionStrategy:me,middlewares:h,delayShow:ee,delayHide:oe,float:re,hidden:ie,noArrow:_,clickable:E,closeOnEsc:S,closeOnScroll:A,closeOnResize:T,openEvents:R,closeEvents:O,globalCloseEvents:k,imperativeModeOnly:L,style:C,position:N,isOpen:D,defaultIsOpen:$,border:I,opacity:j,arrowColor:H,setIsOpen:P,afterShow:W,afterHide:z,activeAnchor:we,setActiveAnchor:e=>ge(e),role:F};return n.createElement(Ee,{...Le})}));"undefined"!=typeof window&&window.addEventListener("react-tooltip-inject-styles",(e=>{e.detail.disableCore||ae({css:":root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9;--rt-transition-show-delay:0.15s;--rt-transition-closing-delay:0.15s}.core-styles-module_tooltip__3vRRp{position:absolute;top:0;left:0;pointer-events:none;opacity:0;will-change:opacity}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{position:absolute;background:inherit}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);transition:opacity var(--rt-transition-show-delay)ease-out}.core-styles-module_closing__sGnxF{opacity:0;transition:opacity var(--rt-transition-closing-delay)ease-in}",type:"core"}),e.detail.disableBase||ae({css:"\n.styles-module_tooltip__mnnfp{padding:8px 16px;border-radius:3px;font-size:90%;width:max-content}.styles-module_arrow__K0L3T{width:8px;height:8px}[class*='react-tooltip__place-top']>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*='react-tooltip__place-right']>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*='react-tooltip__place-bottom']>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*='react-tooltip__place-left']>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}",type:"base"})}))}}]);PK�������!�':Ѐ^ ��^ ��'��modal/build/204.cd378a48efe26fc7867c.jsnu�[��������(globalThis.webpackChunkreally_simple_ssl_modal=globalThis.webpackChunkreally_simple_ssl_modal||[]).push([[204],{204:(e,t,l)=>{"use strict";l.r(t),l.d(t,{default:()=>p});var r=l(196),n=l(609),s=l(307),a=l(736),o=l(317),m=l.n(o);class c extends r.Component{constructor(e){super(e),this.state={hasError:!1,error:null,errorInfo:null},this.resetError=this.resetError.bind(this)}static getDerivedStateFromError(e){return{hasError:!0}}componentDidCatch(e,t){this.setState({error:e,errorInfo:t}),console.log("ErrorBoundary",e,t)}resetError(){this.setState({hasError:!1,error:null,errorInfo:null})}render(){return this.state.hasError?(0,r.createElement)("div",null,(0,r.createElement)("h1",null,"Something went wrong."),(0,r.createElement)("p",null,this.props.fallback),(0,r.createElement)("button",{onClick:this.resetError},"Try Again")):this.props.children}}c.propTypes={children:m().node,fallback:m().node};const i=c,p=({title:e,subTitle:t,buttons:o,content:m,list:c,confirmAction:p,confirmText:u,alternativeAction:d,alternativeText:E,alternativeClassName:h,isOpen:f,setOpen:g,className:y})=>{const[w,b]=(0,s.useState)(null);let _="undefined"!=typeof rsssl_modal?rsssl_modal.plugin_url:rsssl_settings.plugin_url;h=h||"rsssl-warning",(0,s.useEffect)((()=>{w||Promise.all([l.e(357),l.e(658)]).then(l.bind(l,658)).then((({default:e})=>{b((()=>e))}))}),[]);let C=y?" "+y:"";return wp.element.createElement(r.Fragment,null,f&&wp.element.createElement(r.Fragment,null,wp.element.createElement(i,{fallback:"Error loading modal"},wp.element.createElement(n.Modal,{className:"rsssl-modal"+C,shouldCloseOnClickOutside:!1,shouldCloseOnEsc:!1,title:e,onRequestClose:()=>g(!1),open:f},wp.element.createElement("div",{className:"rsssl-modal-body"},t&&wp.element.createElement("p",null,t),m&&wp.element.createElement(r.Fragment,null,m),c&&w&&wp.element.createElement("ul",null,c.map(((e,t)=>wp.element.createElement("li",{key:t},wp.element.createElement(w,{name:e.icon,color:e.color}),e.text))))),wp.element.createElement("div",{className:"rsssl-modal-footer"},wp.element.createElement("div",{className:"rsssl-modal-footer-image"},wp.element.createElement("img",{className:"rsssl-logo",src:_+"assets/img/really-simple-ssl-logo.svg",alt:"Really Simple SSL"})),wp.element.createElement("div",{className:"rsssl-modal-footer-buttons"},wp.element.createElement(n.Button,{onClick:()=>g(!1)},(0,a.__)("Cancel","really-simple-ssl")),o&&wp.element.createElement(r.Fragment,null,o),!o&&wp.element.createElement(r.Fragment,null,E&&wp.element.createElement(n.Button,{className:h,onClick:()=>d()},E),u&&wp.element.createElement(n.Button,{isPrimary:!0,onClick:()=>p()},u))))))))}},545:(e,t,l)=>{"use strict";var r=l(825);function n(){}function s(){}s.resetWarningCache=n,e.exports=function(){function e(e,t,l,n,s,a){if(a!==r){var o=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw o.name="Invariant Violation",o}}function t(){return e}e.isRequired=e;var l={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:s,resetWarningCache:n};return l.PropTypes=l,l}},317:(e,t,l)=>{e.exports=l(545)()},825:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}}]);PK�������!�py8v��v��'��modal/build/291.26a9269d87fda5210dac.jsnu�[��������"use strict";(globalThis.webpackChunkreally_simple_ssl_modal=globalThis.webpackChunkreally_simple_ssl_modal||[]).push([[291],{291:(e,l,t)=>{t.r(l),t.d(l,{default:()=>r});var c=t(609),a=t(161);const s=React.forwardRef((function(e,l){const{name:t,color:a,size:s}=e,r=t||"bullet",i=a||"black",h=s||15,n={black:"var(--rsp-black)",green:"var(--rsp-green)",yellow:"var(--rsp-yellow)",orange:"var(--rsp-yellow)","red-faded":"var(--rsp-red-faded)",red:"var(--rsp-red)",grey:"var(--rsp-grey-400)","red-warning":"var(--rsp-red-faded)"};let m="";return"bullet"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z"}))),"circle"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"}))),"check"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"}))),"warning"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"}))),"error"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"}))),"times"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"}))),"circle-check"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM371.8 211.8C382.7 200.9 382.7 183.1 371.8 172.2C360.9 161.3 343.1 161.3 332.2 172.2L224 280.4L179.8 236.2C168.9 225.3 151.1 225.3 140.2 236.2C129.3 247.1 129.3 264.9 140.2 275.8L204.2 339.8C215.1 350.7 232.9 350.7 243.8 339.8L371.8 211.8z"}))),"circle-times"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM175 208.1L222.1 255.1L175 303C165.7 312.4 165.7 327.6 175 336.1C184.4 346.3 199.6 346.3 208.1 336.1L255.1 289.9L303 336.1C312.4 346.3 327.6 346.3 336.1 336.1C346.3 327.6 346.3 312.4 336.1 303L289.9 255.1L336.1 208.1C346.3 199.6 346.3 184.4 336.1 175C327.6 165.7 312.4 165.7 303 175L255.1 222.1L208.1 175C199.6 165.7 184.4 165.7 175 175C165.7 184.4 165.7 199.6 175 208.1V208.1z"}))),"chevron-up"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M416 352c-8.188 0-16.38-3.125-22.62-9.375L224 173.3l-169.4 169.4c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25C432.4 348.9 424.2 352 416 352z"}))),"chevron-down"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"}))),"chevron-right"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z"}))),"chevron-left"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M224 480c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l169.4 169.4c12.5 12.5 12.5 32.75 0 45.25C240.4 476.9 232.2 480 224 480z"}))),"plus"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"}))),"minus"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"}))),"sync"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M483.515 28.485L431.35 80.65C386.475 35.767 324.485 8 256 8 123.228 8 14.824 112.338 8.31 243.493 7.971 250.311 13.475 256 20.301 256h28.045c6.353 0 11.613-4.952 11.973-11.294C66.161 141.649 151.453 60 256 60c54.163 0 103.157 21.923 138.614 57.386l-54.128 54.129c-7.56 7.56-2.206 20.485 8.485 20.485H492c6.627 0 12-5.373 12-12V36.971c0-10.691-12.926-16.045-20.485-8.486zM491.699 256h-28.045c-6.353 0-11.613 4.952-11.973 11.294C445.839 370.351 360.547 452 256 452c-54.163 0-103.157-21.923-138.614-57.386l54.128-54.129c7.56-7.56 2.206-20.485-8.485-20.485H20c-6.627 0-12 5.373-12 12v143.029c0 10.691 12.926 16.045 20.485 8.485L80.65 431.35C125.525 476.233 187.516 504 256 504c132.773 0 241.176-104.338 247.69-235.493.339-6.818-5.165-12.507-11.991-12.507z"}))),"sync-error"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M256 79.1C178.5 79.1 112.7 130.1 89.2 199.7C84.96 212.2 71.34 218.1 58.79 214.7C46.23 210.5 39.48 196.9 43.72 184.3C73.6 95.8 157.3 32 256 32C337.5 32 408.8 75.53 448 140.6V104C448 90.75 458.7 80 472 80C485.3 80 496 90.75 496 104V200C496 213.3 485.3 224 472 224H376C362.7 224 352 213.3 352 200C352 186.7 362.7 176 376 176H412.8C383.7 118.1 324.4 80 256 80V79.1zM280 263.1C280 277.3 269.3 287.1 256 287.1C242.7 287.1 232 277.3 232 263.1V151.1C232 138.7 242.7 127.1 256 127.1C269.3 127.1 280 138.7 280 151.1V263.1zM224 352C224 334.3 238.3 319.1 256 319.1C273.7 319.1 288 334.3 288 352C288 369.7 273.7 384 256 384C238.3 384 224 369.7 224 352zM40 432C26.75 432 16 421.3 16 408V311.1C16 298.7 26.75 287.1 40 287.1H136C149.3 287.1 160 298.7 160 311.1C160 325.3 149.3 336 136 336H99.19C128.3 393 187.6 432 256 432C333.5 432 399.3 381.9 422.8 312.3C427 299.8 440.7 293 453.2 297.3C465.8 301.5 472.5 315.1 468.3 327.7C438.4 416.2 354.7 480 256 480C174.5 480 103.2 436.5 64 371.4V408C64 421.3 53.25 432 40 432V432z"}))),"shortcode"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M128 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h96C145.7 480 160 465.7 160 448S145.7 416 128 416H64V96h64C145.7 96 160 81.67 160 64S145.7 32 128 32zM416 32h-96C302.3 32 288 46.33 288 63.1S302.3 96 319.1 96H384v320h-64C302.3 416 288 430.3 288 447.1S302.3 480 319.1 480H416c17.6 0 32-14.4 32-32V64C448 46.4 433.6 32 416 32z"}))),"file"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M0 64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM336 448V160H256C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V448C48 456.8 55.16 464 64 464H320C328.8 464 336 456.8 336 448z"}))),"file-disabled"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M639.1 487.1c0-7.119-3.153-14.16-9.191-18.89l-118.8-93.12l.0013-237.3c0-16.97-6.742-33.26-18.74-45.26l-74.63-74.64C406.6 6.742 390.3 0 373.4 0H192C156.7 0 128 28.65 128 64L128 75.01L38.82 5.11C34.41 1.672 29.19 0 24.04 0C10.19 0-.0002 11.3-.0002 23.1c0 7.12 3.153 14.16 9.192 18.89l591.1 463.1C605.6 510.3 610.8 512 615.1 512C629.8 512 639.1 500.6 639.1 487.1zM464 338.4l-287.1-225.7l-.002-48.51c0-8.836 7.164-16 15.1-16h160l-.0065 79.87c0 17.67 14.33 31.1 31.1 31.1L464 159.1V338.4zM448 463.1H192c-8.834 0-15.1-7.164-15.1-16L176 234.6L128 197L128 447.1c0 35.34 28.65 64 63.1 64H448c20.4 0 38.45-9.851 50.19-24.84l-37.72-29.56C457.5 461.4 453.2 463.1 448 463.1z"}))),"loading"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[a],d:"M304 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 416c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM48 304c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm464-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM142.9 437c18.7-18.7 18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zm0-294.2c18.7-18.7 18.7-49.1 0-67.9S93.7 56.2 75 75s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zM369.1 437c18.7 18.7 49.1 18.7 67.9 0s18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9z"}))),"file-download"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M216 342.1V240c0-13.25-10.75-24-24-24S168 226.8 168 240v102.1L128.1 303C124.3 298.3 118.2 296 112 296S99.72 298.3 95.03 303c-9.375 9.375-9.375 24.56 0 33.94l80 80c9.375 9.375 24.56 9.375 33.94 0l80-80c9.375-9.375 9.375-24.56 0-33.94s-24.56-9.375-33.94 0L216 342.1zM365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448z"}))),"calendar"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z"}))),"calendar-error"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M151.1 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V192H47.1V448C47.1 456.8 55.16 464 63.1 464H284.5C296.7 482.8 312.5 499.1 330.8 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24L151.1 64zM576 368C576 447.5 511.5 512 432 512C352.5 512 287.1 447.5 287.1 368C287.1 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM432 416C418.7 416 408 426.7 408 440C408 453.3 418.7 464 432 464C445.3 464 456 453.3 456 440C456 426.7 445.3 416 432 416zM447.1 288C447.1 279.2 440.8 272 431.1 272C423.2 272 415.1 279.2 415.1 288V368C415.1 376.8 423.2 384 431.1 384C440.8 384 447.1 376.8 447.1 368V288z"}))),"help"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z"}))),"copy"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M502.6 70.63l-61.25-61.25C435.4 3.371 427.2 0 418.7 0H255.1c-35.35 0-64 28.66-64 64l.0195 256C192 355.4 220.7 384 256 384h192c35.2 0 64-28.8 64-64V93.25C512 84.77 508.6 76.63 502.6 70.63zM464 320c0 8.836-7.164 16-16 16H255.1c-8.838 0-16-7.164-16-16L239.1 64.13c0-8.836 7.164-16 16-16h128L384 96c0 17.67 14.33 32 32 32h47.1V320zM272 448c0 8.836-7.164 16-16 16H63.1c-8.838 0-16-7.164-16-16L47.98 192.1c0-8.836 7.164-16 16-16H160V128H63.99c-35.35 0-64 28.65-64 64l.0098 256C.002 483.3 28.66 512 64 512h192c35.2 0 64-28.8 64-64v-32h-47.1L272 448z"}))),"info"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"}))),"info-open"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM256 304c13.25 0 24-10.75 24-24v-128C280 138.8 269.3 128 256 128S232 138.8 232 152v128C232 293.3 242.8 304 256 304zM256 337.1c-17.36 0-31.44 14.08-31.44 31.44C224.6 385.9 238.6 400 256 400s31.44-14.08 31.44-31.44C287.4 351.2 273.4 337.1 256 337.1z"}))),"list"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M184.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 113c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM256 96c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zM192 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zM80 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z"}))),"empty"===r&&(m=(0,c.createElement)("svg",{height:h,width:h,"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 280.8 363.67"})),"external-link"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z"}))),"shield"===r&&(m=(0,c.createElement)("svg",{height:h,"aria-hidden":"true",focusable:"false",role:"img",id:"uuid-026a4e87-44db-4336-a398-3c29d25b7317",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 280.8 363.67"},(0,c.createElement)("path",{fill:"#f9c23e",d:"M280.8,62.4L140.5,0,0,62.2V213.3c0,10.7,1.6,21.3,4.9,31.5,9.5,29.9,28.2,52.8,54.4,69.5,26,16.6,52.4,32.4,78.6,48.6,2,1.2,3.4,.9,5.1-.2,19.9-12.3,39.8-24.5,59.6-36.8,12.6-7.8,25.5-15.1,36.5-25.1,26.4-24.2,41.4-53.6,41.5-89.9V62.4h.2Z"}),(0,c.createElement)("g",null,(0,c.createElement)("g",null,(0,c.createElement)("rect",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",x:"155",y:"266.8",width:"77.6",height:"6"}),(0,c.createElement)("path",{fill:"#1d2327",d:"M224.4,204.5h-1.8v-10.1c0-15.9-12.9-28.8-28.8-28.8s-28.8,12.9-28.8,28.8v10.1h-1.8c-4.6,0-8.3,3.7-8.3,8.3v51.3h77.6v-51.3c0-4.6-3.7-8.3-8.3-8.3h.2Zm-45.3-10.1c0-8.1,6.6-14.7,14.7-14.7s14.7,6.6,14.7,14.7v10.1h-29.5v-10.1h.1Zm36.6,32.9l-20.7,20.2c-.2,.2-.3,.4-.5,.6l-2,2c-.2,.2-.4,.4-.6,.5l-3.8,3.8-4.5-4.3-2-2c-.2-.2-.4-.4-.5-.6l-9.1-9.1c-2.4-2.4-2.4-6.4,0-8.8l2-2c2.4-2.4,6.4-2.4,8.8,0l5.3,5.3,16.9-16.4c2.4-2.4,6.4-2.4,8.8,0l2,2c2.4,2.4,2.4,6.4,0,8.8h-.1Z"})),(0,c.createElement)("g",null,(0,c.createElement)("path",{fill:"#1d2327",d:"M125.2,192.3c-.5-2.9-.5-5.8-1-8.6-.5-2.4-2.6-4-4.8-3.9-2.3,0-4.2,1.9-4.7,4.3-.2,1,0,1.9,0,2.9,.8,14.6,7.2,26.3,18.2,35.7,2.2,1.9,4.5,3.5,6.9,4.8v-11.8c-7.4-5.8-12.9-14.1-14.6-23.3v-.1Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M96.4,236.1c-13-15-20-32.3-19.5-52.3,.3-13.1,6.1-23.6,16.6-31.2,11.5-8.5,24.5-10.9,38.3-7.1,12.7,3.5,22,10.7,27.4,22,2.1-2.7,4.5-5.2,7.2-7.4-4-7-9.7-12.9-17-17.4-17-10.4-34.9-11.7-52.9-3.1-19,9.1-28.7,24.7-29.3,45.8,0,5.2,.5,10.2,1.4,15.2,3.4,19.4,13.4,35.2,27.2,48.9,1.1,1.1,2.5,1.6,4.1,1.4,1.8-.2,3.2-1.3,3.8-3,.6-1.8,.4-3.6-1-5.1-2.1-2.2-4.2-4.4-6.2-6.7h-.1Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M68.1,89.4c1.1-.4,2.1-1,3.1-1.5,17.9-9.1,36.8-12.7,56.8-11.3,12.2,.8,23.9,3.8,35.1,8.7,3,1.3,5.9,2.8,8.9,4.1,2.7,1.1,5.3,0,6.4-2.4,1.1-2.3,0-5-2.3-6.3-11-5.7-22.4-10-34.6-12.3-4.2-.8-8.5-1.1-12.8-1.7h-17.1c-.3,0-.6,.2-.9,.2-11.2,.8-22,3.2-32.5,7.2-4.9,1.9-9.7,4.1-14.3,6.6-2.5,1.3-3.4,4.2-2.2,6.5,1.1,2.2,4,3.2,6.4,2.1v.1Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M61.1,153.5c13.6-21.6,33.6-31.5,58.7-32.1h6c.8,0,1.6,.2,2.3,.3,13.4,1.7,25.5,6.6,35.9,15.4,5.8,4.9,10.5,10.3,14.1,16.2,3.1-1.2,6.4-2,9.8-2.5-4.7-8.7-11.3-16.3-19.6-22.7-19-14.6-40.5-19.5-64.1-15.1-14.3,2.7-26.9,9-37.7,18.8-10.4,9.5-17.8,20.9-21.2,34.6-2.8,11.3-2.6,22.7-.9,34.1,1.1,7,2.9,13.9,5.4,20.5,.9,2.3,3,3.7,5.2,3.5,2.1-.2,3.9-2,4.3-4.3,.2-1.1-.2-2.2-.6-3.2-4.3-11.9-6.3-24.1-5.6-36.7,.5-9.6,2.8-18.7,8-26.8h0Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M139.8,240.6c-20.9-8.4-34.1-23.7-38.4-46.7-.8-4.3-1.4-8.7-.4-13,1.8-7.1,6.4-11.4,13.4-13.5,11.8-3.4,24.7,5.3,24.5,17.6,0,4.8,1.4,9.3,4,13.4,.3,.5,.6,.9,.9,1.3,1.6-2.4,3.7-4.6,6.1-6.2,0-.9,0-1.9,.2-2.8-.7-1.7-1.1-3.5-1.2-5.3-.3-6.1-1.6-11.9-5.5-16.8-6.8-8.8-15.9-12.4-27-11.5-11.3,.9-21.6,9.6-24.5,20.6-1.8,6.6-.9,13.3,.4,19.8,2.4,12.9,8.2,24,17.1,33.7,8.6,9.4,18.8,15.8,30.6,19.8v-10.4h-.2Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M47.5,133.2c6.8-8.8,15-16,24.6-21.6,20.8-12,43.2-15.2,66.6-11,14.8,2.7,28.2,8.7,39.9,18.2,6.3,5,11.6,11,16.4,17.4,1.9,2.5,4.8,2.8,7,1.1,2.1-1.7,2.4-4.5,.6-7-5.9-8.2-12.8-15.3-20.9-21.3-18.3-13.6-39.1-19.6-61.7-20-6.3,0-12.5,.6-18.6,1.6-15.7,2.8-30.1,8.6-42.9,18.1-8.3,6.2-15.5,13.5-21.5,22-1.6,2.3-1.3,5.1,.7,6.7,2.1,1.7,4.9,1.5,6.8-.7,1-1.2,1.9-2.5,2.9-3.7l.1,.2Z"}))))),"file-search"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",height:h,fill:"none",viewBox:"0 0 384 512"},(0,c.createElement)("path",{d:"M374.6 150.6l-141.3-141.3C227.4 3.371 219.2 0 210.7 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.35 0 64-28.66 64-64V173.3C384 164.8 380.6 156.6 374.6 150.6zM224 22.63L361.4 160H248C234.8 160 224 149.2 224 136V22.63zM368 448c0 26.47-21.53 48-48 48H64c-26.47 0-48-21.53-48-48V64c0-26.47 21.53-48 48-48h144v120c0 22.06 17.94 40 40 40h120V448zM176 208c-53.02 0-96 42.98-96 96s42.98 96 96 96c23.62 0 44.96-8.859 61.68-23l68.66 68.66C307.9 447.2 309.9 448 312 448s4.094-.7813 5.656-2.344c3.125-3.125 3.125-8.188 0-11.31l-68.66-68.66C263.1 348.1 272 327.6 272 304C272 250.1 229 208 176 208zM176 384C131.9 384 96 348.1 96 304S131.9 224 176 224S256 259.9 256 304S220.1 384 176 384z"}))),"download"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",height:h,fill:"none",viewBox:"0 0 512 512"},(0,c.createElement)("path",{d:"M480 352h-88C387.6 352 384 355.6 384 360s3.582 8 8 8H480c8.822 0 16 7.178 16 16v96c0 8.822-7.178 16-16 16H32c-8.822 0-16-7.178-16-16v-96c0-8.822 7.178-16 16-16h88C124.4 368 128 364.4 128 360S124.4 352 120 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96C512 366.3 497.7 352 480 352zM464 432c0-17.6-14.4-32-32-32s-32 14.4-32 32c0 17.6 14.4 32 32 32S464 449.6 464 432zM416 432c0-8.822 7.178-16 16-16s16 7.178 16 16S440.8 448 432 448S416 440.8 416 432zM250.3 413.7c3.125 3.125 8.188 3.125 11.31 0l152-152C415.2 260.1 416 258.1 416 256s-.7813-4.094-2.344-5.656c-3.125-3.125-8.188-3.125-11.31 0L264 388.7V8C264 3.594 260.4 0 256 0S248 3.594 248 8v380.7L109.7 250.3c-3.125-3.125-8.188-3.125-11.31 0s-3.125 8.188 0 11.31L250.3 413.7z"}))),"satellite-dish"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",color:n[i],height:h,viewBox:"0 0 512 512"},(0,c.createElement)("path",{d:"M208 0c-8.8 0-16 7.2-16 16s7.2 16 16 16c150.2 0 272 121.8 272 272c0 8.8 7.2 16 16 16s16-7.2 16-16C512 136.1 375.9 0 208 0zm0 96c-8.8 0-16 7.2-16 16s7.2 16 16 16c97.2 0 176 78.8 176 176c0 8.8 7.2 16 16 16s16-7.2 16-16c0-114.9-93.1-208-208-208zM32 304c0-24.5 5-47.7 13.9-68.8L276.8 466.1C255.7 475 232.5 480 208 480c-97.2 0-176-78.8-176-176zm33.5-94.5c-14-14-37.3-12.1-45.7 5.8C7.1 242.2 0 272.3 0 304C0 418.9 93.1 512 208 512c31.7 0 61.8-7.1 88.7-19.8c17.9-8.4 19.8-31.8 5.8-45.7L195.3 339.3l24-24c6.3 3 13.3 4.7 20.7 4.7c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48c0 7.4 1.7 14.4 4.7 20.7l-24 24L65.5 209.5zM224 272a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"}))),"rotate-light"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",color:n[i],height:h,viewBox:"0 0 512 512"},(0,c.createElement)("path",{d:"M426.1 301.2C406.2 376.5 337.6 432 256 432c-51 0-96.9-21.7-129-56.3l41-41c5.1-5.1 8-12.1 8-19.3c0-15.1-12.2-27.3-27.3-27.3H48c-8.8 0-16 7.2-16 16V404.7C32 419.8 44.2 432 59.3 432c7.2 0 14.2-2.9 19.3-8l25.7-25.7C142.3 438.7 196.2 464 256 464c97.4 0 179.2-67 201.8-157.4c2.4-9.7-5.2-18.6-15.2-18.6c-7.8 0-14.5 5.6-16.5 13.2zM385 136.3l-41 41c-5.1 5.1-8 12.1-8 19.3c0 15.1 12.2 27.3 27.3 27.3H464c8.8 0 16-7.2 16-16V107.3C480 92.2 467.8 80 452.7 80c-7.2 0-14.2 2.9-19.3 8l-25.7 25.7C369.7 73.3 315.8 48 256 48C158.6 48 76.8 115 54.2 205.4c-2.4 9.7 5.2 18.6 15.2 18.6c7.8 0 14.5-5.6 16.5-13.2C105.8 135.5 174.4 80 256 80c51 0 96.9 21.7 129.1 56.3zM448 192H374.6L448 118.6V192zM64 320h73.4L64 393.4V320z"}))),"rotate-exclamation-light"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,`\n .fa-secondary {\n opacity: 0.4;\n color: ${n[i]};\n }\n `)),(0,c.createElement)("path",{className:"fa-primary",d:"M280 152c0-13.3-10.7-24-24-24s-24 10.7-24 24V264c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM256 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M432 117.4C391 65.4 327.4 32 256 32C158.4 32 75.5 94.4 44.8 181.3c-5.9 16.7 2.8 34.9 19.5 40.8s34.9-2.8 40.8-19.5C127.1 140.5 186.4 96 256 96c52.3 0 98.8 25.1 128 64H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h84.3c.5 0 1 0 1.5 0H464c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v37.4zm35.2 213.2c5.9-16.7-2.8-34.9-19.5-40.8s-34.9 2.8-40.8 19.5C384.9 371.5 325.6 416 256 416c-52.3 0-98.8-25.1-128-64h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32V432c0 17.7 14.3 32 32 32s32-14.3 32-32V394.6c41 52 104.6 85.4 176 85.4c97.6 0 180.5-62.4 211.2-149.3z"}))),"radar-duotone"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,`\n .fa-secondary {\n color: ${n[i]} !important;\n } \n `)),(0,c.createElement)("path",{className:"fa-primary",d:"M497 49c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-182 182c-7.7-3.3-16.1-5.1-25-5.1c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64c0-8.9-1.8-17.3-5.1-25L497 49z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M350.9 127.2l-46.1 46.1c-14.3-8.4-31-13.3-48.8-13.3c-53 0-96 43-96 96s43 96 96 96s96-43 96-96h64c0 73.5-49.6 135.5-117.2 154.2C290.8 394.7 274.7 384 256 384s-34.8 10.7-42.8 26.2c-51.7-14.3-92.8-53.9-109.4-104.6c14.4-8.3 24.1-23.8 24.1-41.7c0-19.4-11.5-36.1-28-43.7C116.2 149.1 179.9 96 256 96c35.5 0 68.3 11.6 94.9 31.2zm22.8-22.8C341.2 79 300.4 64 256 64C163.1 64 85.7 129.9 67.9 217.6C47.2 222.9 32 241.7 32 264c0 23.8 17.3 43.6 40.1 47.4c19.3 64.3 71.5 114.4 137 130.9C213.8 463.8 233 480 256 480s42.2-16.2 46.9-37.8C386.3 421.3 448 345.9 448 256h64c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0c62.1 0 118.9 22.1 163.3 58.8l-45.5 45.5z"}))),"satellite-dish-duotone"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,`\n .fa-secondary {\n color: ${n[i]} !important;\n } \n `)),(0,c.createElement)("path",{className:"fa-primary",d:"M60.6 220.6c-14.5-14.5-38.8-11.8-46.3 7.3C5.1 251.5 0 277.1 0 304C0 418.9 93.1 512 208 512c26.9 0 52.5-5.1 76.1-14.4c19-7.5 21.8-31.8 7.3-46.3L187.3 347.3l28.4-28.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3l-28.4 28.4L60.6 220.6z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M224 0c-17.7 0-32 14.3-32 32s14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0zm0 96c-17.7 0-32 14.3-32 32s14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192z"}))),"spinner"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",width:"20",height:"20"},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,"\n .fa-secondary {\n opacity: 0.4;\n }\n ")),(0,c.createElement)("path",{className:"fa-primary",d:"M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 256A48 48 0 1 0 0 256a48 48 0 1 0 96 0zM75 142.9A48 48 0 1 0 142.9 75 48 48 0 1 0 75 142.9z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M369.1 75A48 48 0 1 1 437 142.9 48 48 0 1 1 369.1 75zM416 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM208 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM75 369.1A48 48 0 1 1 142.9 437 48 48 0 1 1 75 369.1zm294.2 0A48 48 0 1 1 437 437a48 48 0 1 1 -67.9-67.9z"}))),(0,c.createElement)("div",{...e,ref:l},m)})),r=({name:e,color:l,size:t,tooltip:r})=>{const i=e||"bullet",h=l||"black";let n=t||15,m=r?"tooltip-":"",o=Math.floor(1e9*Math.random());return r?(0,c.createElement)("div",{className:"rsssl-"+m+"icon rsssl-icon-"+i+" rsssl-"+h},(0,c.createElement)(s,{"data-for":".rsssl-"+o,name:i,color:h,size:n,id:o,className:"rsssl-"+o,"data-tooltip-delay-hide":200}),(0,c.createElement)(a.m_,{style:{zIndex:99},id:o,place:"bottom",anchorSelect:".rsssl-"+o,content:r})):(0,c.createElement)("div",{className:"rsssl-"+m+"icon rsssl-icon-"+i+" rsssl-"+h},(0,c.createElement)(s,{name:i,color:h,size:n}))}}}]);PK�������!�I<yF��F��)��modal/build/index.f0747a4e3a76f14cbb01.jsnu�[��������(()=>{"use strict";var e,t,r={609:e=>{e.exports=window.React},427:e=>{e.exports=window.wp.components},87:e=>{e.exports=window.wp.element},723:e=>{e.exports=window.wp.i18n}},l={};function o(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={exports:{}};return r[e](n,n.exports,o),n.exports}o.m=r,o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((t,r)=>(o.f[r](e,t),t)),[])),o.u=e=>e+"."+{161:"e0560cee31bfcb50f0b3",291:"26a9269d87fda5210dac",433:"c979d76891c58ebf0fd9"}[e]+".js",o.miniCssF=e=>e+".css",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="really-simple-ssl-modal:",o.l=(r,l,n,i)=>{if(e[r])e[r].push(l);else{var a,s;if(void 0!==n)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var m=c[d];if(m.getAttribute("src")==r||m.getAttribute("data-webpack")==t+n){a=m;break}}a||(s=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,o.nc&&a.setAttribute("nonce",o.nc),a.setAttribute("data-webpack",t+n),a.src=r),e[r]=[l];var u=(t,l)=>{a.onerror=a.onload=null,clearTimeout(p);var o=e[r];if(delete e[r],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((e=>e(l))),t)return t(l)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),s&&document.head.appendChild(a)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var l=r.length-1;l>-1&&(!e||!/^http(s?):/.test(e));)e=r[l--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{if("undefined"!=typeof document){var e={57:0};o.f.miniCss=(t,r)=>{e[t]?r.push(e[t]):0!==e[t]&&{433:1}[t]&&r.push(e[t]=(e=>new Promise(((t,r)=>{var l=o.miniCssF(e),n=o.p+l;if(((e,t)=>{for(var r=document.getElementsByTagName("link"),l=0;l<r.length;l++){var o=(i=r[l]).getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(o===e||o===t))return i}var n=document.getElementsByTagName("style");for(l=0;l<n.length;l++){var i;if((o=(i=n[l]).getAttribute("data-href"))===e||o===t)return i}})(l,n))return t();((e,t,r,l,n)=>{var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",o.nc&&(i.nonce=o.nc),i.onerror=i.onload=r=>{if(i.onerror=i.onload=null,"load"===r.type)l();else{var o=r&&r.type,a=r&&r.target&&r.target.href||t,s=new Error("Loading CSS chunk "+e+" failed.\n("+o+": "+a+")");s.name="ChunkLoadError",s.code="CSS_CHUNK_LOAD_FAILED",s.type=o,s.request=a,i.parentNode&&i.parentNode.removeChild(i),n(s)}},i.href=t,document.head.appendChild(i)})(e,n,0,t,r)})))(t).then((()=>{e[t]=0}),(r=>{throw delete e[t],r})))}}})(),(()=>{var e={57:0};o.f.j=(t,r)=>{var l=o.o(e,t)?e[t]:void 0;if(0!==l)if(l)r.push(l[2]);else{var n=new Promise(((r,o)=>l=e[t]=[r,o]));r.push(l[2]=n);var i=o.p+o.u(t),a=new Error;o.l(i,(r=>{if(o.o(e,t)&&(0!==(l=e[t])&&(e[t]=void 0),l)){var n=r&&("load"===r.type?"missing":r.type),i=r&&r.target&&r.target.src;a.message="Loading chunk "+t+" failed.\n("+n+": "+i+")",a.name="ChunkLoadError",a.type=n,a.request=i,l[1](a)}}),"chunk-"+t,t)}};var t=(t,r)=>{var l,n,[i,a,s]=r,c=0;if(i.some((t=>0!==e[t]))){for(l in a)o.o(a,l)&&(o.m[l]=a[l]);s&&s(o)}for(t&&t(r);c<i.length;c++)n=i[c],o.o(e,n)&&e[n]&&e[n][0](),e[n]=0},r=globalThis.webpackChunkreally_simple_ssl_modal=globalThis.webpackChunkreally_simple_ssl_modal||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{var e=o(609),t=o(87),r=o(723);const l=()=>{const[l,n]=(0,t.useState)(!1),[i,a]=(0,t.useState)(!1),[s,c]=(0,t.useState)(null),d=rsssl_modal.pro_plugin_active;(0,t.useEffect)((()=>{const e=d?"deactivate-really-simple-ssl-pro":"deactivate-really-simple-ssl",t=document.getElementById(e);c(t);const r=e=>{e.preventDefault(),n(!0)};return t&&t.addEventListener("click",r),()=>{t&&t.removeEventListener("click",r)}}),[d]),(0,t.useEffect)((()=>{!i&&l&&o.e(433).then(o.bind(o,433)).then((({default:e})=>{a((()=>e))}))}),[l,i]);const m=d?[{icon:"circle-times",color:"red",text:(0,r.__)("Performant HTTPS redirection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Vulnerability detection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Security Headers","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Advanced hardening","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Mixed content scan","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Two-step verification","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Password security","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Limit login attempts","really-simple-ssl")}]:[{icon:"circle-times",color:"red",text:(0,r.__)("Performant HTTPS redirection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Vulnerability detection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("WordPress hardening","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Mixed content fixer","really-simple-ssl")}];return(0,e.createElement)(e.Fragment,null,i&&(0,e.createElement)(i,{title:(0,r.__)("Are you sure?","really-simple-ssl"),confirmText:(0,r.__)("Deactivate","really-simple-ssl"),confirmAction:()=>(n(!1),void(window.location.href=rsssl_modal.deactivate_keep_https)),alternativeText:(0,r.__)("Deactivate and use HTTP","really-simple-ssl"),alternativeAction:()=>(n(!1),void(s&&(window.location.href=s.getAttribute("href")))),alternativeClassName:"rsssl-modal-warning",content:(0,e.createElement)(e.Fragment,null,(0,r.__)("Please choose the correct deactivation method, and before you go; you will miss out on below and future features in Really Simple Security","really-simple-ssl"),d&&(0,e.createElement)(e.Fragment,null," ",(0,e.createElement)("b",null,"Pro")),"!"),list:m,isOpen:l,setOpen:n}))};document.addEventListener("DOMContentLoaded",(()=>{const r=document.getElementById("rsssl-modal-root");r&&(t.createRoot?(0,t.createRoot)(r).render((0,e.createElement)(l,null)):(0,t.render)((0,e.createElement)(l,null),r))}))})()})();PK�������!�ٗ7.��.��)��modal/build/index.855f8bc8ac202db563f6.jsnu�[��������(()=>{"use strict";var e,t,r={196:e=>{e.exports=window.React},609:e=>{e.exports=window.wp.components},307:e=>{e.exports=window.wp.element},736:e=>{e.exports=window.wp.i18n}},l={};function o(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={exports:{}};return r[e](n,n.exports,o),n.exports}o.m=r,o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((t,r)=>(o.f[r](e,t),t)),[])),o.u=e=>e+"."+{204:"cd378a48efe26fc7867c",357:"8ee6cb66c28a7f976884",658:"60c25cd5bb5febbcfd62"}[e]+".js",o.miniCssF=e=>e+".css",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="really-simple-ssl-modal:",o.l=(r,l,n,i)=>{if(e[r])e[r].push(l);else{var s,a;if(void 0!==n)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var m=c[d];if(m.getAttribute("src")==r||m.getAttribute("data-webpack")==t+n){s=m;break}}s||(a=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,o.nc&&s.setAttribute("nonce",o.nc),s.setAttribute("data-webpack",t+n),s.src=r),e[r]=[l];var u=(t,l)=>{s.onerror=s.onload=null,clearTimeout(p);var o=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((e=>e(l))),t)return t(l)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=u.bind(null,s.onerror),s.onload=u.bind(null,s.onload),a&&document.head.appendChild(s)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var l=r.length-1;l>-1&&!e;)e=r[l--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{if("undefined"!=typeof document){var e={826:0};o.f.miniCss=(t,r)=>{e[t]?r.push(e[t]):0!==e[t]&&{204:1}[t]&&r.push(e[t]=(e=>new Promise(((t,r)=>{var l=o.miniCssF(e),n=o.p+l;if(((e,t)=>{for(var r=document.getElementsByTagName("link"),l=0;l<r.length;l++){var o=(i=r[l]).getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(o===e||o===t))return i}var n=document.getElementsByTagName("style");for(l=0;l<n.length;l++){var i;if((o=(i=n[l]).getAttribute("data-href"))===e||o===t)return i}})(l,n))return t();((e,t,r,l,o)=>{var n=document.createElement("link");n.rel="stylesheet",n.type="text/css",n.onerror=n.onload=r=>{if(n.onerror=n.onload=null,"load"===r.type)l();else{var i=r&&("load"===r.type?"missing":r.type),s=r&&r.target&&r.target.href||t,a=new Error("Loading CSS chunk "+e+" failed.\n("+s+")");a.code="CSS_CHUNK_LOAD_FAILED",a.type=i,a.request=s,n.parentNode&&n.parentNode.removeChild(n),o(a)}},n.href=t,document.head.appendChild(n)})(e,n,0,t,r)})))(t).then((()=>{e[t]=0}),(r=>{throw delete e[t],r})))}}})(),(()=>{var e={826:0};o.f.j=(t,r)=>{var l=o.o(e,t)?e[t]:void 0;if(0!==l)if(l)r.push(l[2]);else{var n=new Promise(((r,o)=>l=e[t]=[r,o]));r.push(l[2]=n);var i=o.p+o.u(t),s=new Error;o.l(i,(r=>{if(o.o(e,t)&&(0!==(l=e[t])&&(e[t]=void 0),l)){var n=r&&("load"===r.type?"missing":r.type),i=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+n+": "+i+")",s.name="ChunkLoadError",s.type=n,s.request=i,l[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var l,n,[i,s,a]=r,c=0;if(i.some((t=>0!==e[t]))){for(l in s)o.o(s,l)&&(o.m[l]=s[l]);a&&a(o)}for(t&&t(r);c<i.length;c++)n=i[c],o.o(e,n)&&e[n]&&e[n][0](),e[n]=0},r=globalThis.webpackChunkreally_simple_ssl_modal=globalThis.webpackChunkreally_simple_ssl_modal||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{var e=o(196),t=o(307),r=o(736);const l=()=>{const[l,n]=(0,t.useState)(!1),[i,s]=(0,t.useState)(!1),a=document.getElementById("deactivate-really-simple-ssl-pro"),c=rsssl_modal.pro_plugin_active,d=e=>{e.preventDefault(),n(!0)};(0,t.useEffect)((()=>(a.addEventListener("click",d),()=>{a.removeEventListener("click",d)})),[]),(0,t.useEffect)((()=>{l?a.removeEventListener("click",d):a.addEventListener("click",d)}),[l]),(0,t.useEffect)((()=>{i||o.e(204).then(o.bind(o,204)).then((({default:e})=>{s((()=>e))}))}),[l]);const m=c?[{icon:"circle-times",color:"red",text:(0,r.__)("Performant HTTPS redirection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Vulnerability detection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Security Headers","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Advanced hardening","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Mixed content scan","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Two-step verification","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Password security","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Limit login attempts","really-simple-ssl")}]:[{icon:"circle-times",color:"red",text:(0,r.__)("Performant HTTPS redirection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Vulnerability detection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("WordPress hardening","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,r.__)("Mixed content fixer","really-simple-ssl")}];return(0,e.createElement)(e.Fragment,null,i&&(0,e.createElement)(i,{title:(0,r.__)("Are you sure?","really-simple-ssl"),confirmText:(0,r.__)("Deactivate","really-simple-ssl"),confirmAction:()=>(a.removeEventListener("click",d),n(!1),void(window.location.href=rsssl_modal.deactivate_keep_https)),alternativeText:(0,r.__)("Deactivate and use HTTP","really-simple-ssl"),alternativeAction:()=>(n(!1),void(window.location.href=a.getAttribute("href"))),alternativeClassName:"rsssl-modal-warning",content:(0,e.createElement)(e.Fragment,null,(0,r.__)("Please choose the correct deactivation method, and before you go; you will miss out on below and future features in Really Simple Security","really-simple-ssl"),c&&(0,e.createElement)(e.Fragment,null," ",(0,e.createElement)("b",null,"Pro")),"!"),list:m,isOpen:l,setOpen:n}))};document.addEventListener("DOMContentLoaded",(()=>{const r=document.getElementById("rsssl-modal-root");r&&(t.createRoot?(0,t.createRoot)(r).render((0,e.createElement)(l,null)):(0,t.render)((0,e.createElement)(l,null),r))}))})()})();PK�������!�\d��d��)��modal/build/index.5c0c53e2db8c73c5db9d.jsnu�[��������!function(){"use strict";var e,t,r,n,o,i,l={196:function(e){e.exports=window.React},609:function(e){e.exports=window.wp.components},307:function(e){e.exports=window.wp.element},736:function(e){e.exports=window.wp.i18n}},c={};function s(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={exports:{}};return l[e](r,r.exports,s),r.exports}s.m=l,s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},s.d=function(e,t){for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce((function(t,r){return s.f[r](e,t),t}),[]))},s.u=function(e){return e+"."+{204:"ded1ffcbe4657d8be922",658:"c1ae2f75f09af402e920",851:"99d390afbb9ca3c28c19"}[e]+".js"},s.miniCssF=function(e){return e+".css"},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e={},t="really-simple-ssl-modal:",s.l=function(r,n,o,i){if(e[r])e[r].push(n);else{var l,c;if(void 0!==o)for(var a=document.getElementsByTagName("script"),u=0;u<a.length;u++){var d=a[u];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==t+o){l=d;break}}l||(c=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,s.nc&&l.setAttribute("nonce",s.nc),l.setAttribute("data-webpack",t+o),l.src=r),e[r]=[n];var f=function(t,n){l.onerror=l.onload=null,clearTimeout(m);var o=e[r];if(delete e[r],l.parentNode&&l.parentNode.removeChild(l),o&&o.forEach((function(e){return e(n)})),t)return t(n)},m=setTimeout(f.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=f.bind(null,l.onerror),l.onload=f.bind(null,l.onload),c&&document.head.appendChild(l)}},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;s.g.importScripts&&(e=s.g.location+"");var t=s.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!e;)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e}(),function(){if("undefined"!=typeof document){var e={826:0};s.f.miniCss=function(t,r){e[t]?r.push(e[t]):0!==e[t]&&{204:1}[t]&&r.push(e[t]=function(e){return new Promise((function(t,r){var n=s.miniCssF(e),o=s.p+n;if(function(e,t){for(var r=document.getElementsByTagName("link"),n=0;n<r.length;n++){var o=(l=r[n]).getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(o===e||o===t))return l}var i=document.getElementsByTagName("style");for(n=0;n<i.length;n++){var l;if((o=(l=i[n]).getAttribute("data-href"))===e||o===t)return l}}(n,o))return t();!function(e,t,r,n,o){var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",i.onerror=i.onload=function(r){if(i.onerror=i.onload=null,"load"===r.type)n();else{var l=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.href||t,s=new Error("Loading CSS chunk "+e+" failed.\n("+c+")");s.code="CSS_CHUNK_LOAD_FAILED",s.type=l,s.request=c,i.parentNode&&i.parentNode.removeChild(i),o(s)}},i.href=t,document.head.appendChild(i)}(e,o,0,t,r)}))}(t).then((function(){e[t]=0}),(function(r){throw delete e[t],r})))}}}(),function(){var e={826:0};s.f.j=function(t,r){var n=s.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise((function(r,o){n=e[t]=[r,o]}));r.push(n[2]=o);var i=s.p+s.u(t),l=new Error;s.l(i,(function(r){if(s.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),i=r&&r.target&&r.target.src;l.message="Loading chunk "+t+" failed.\n("+o+": "+i+")",l.name="ChunkLoadError",l.type=o,l.request=i,n[1](l)}}),"chunk-"+t,t)}};var t=function(t,r){var n,o,i=r[0],l=r[1],c=r[2],a=0;if(i.some((function(t){return 0!==e[t]}))){for(n in l)s.o(l,n)&&(s.m[n]=l[n]);c&&c(s)}for(t&&t(r);a<i.length;a++)o=i[a],s.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self.webpackChunkreally_simple_ssl_modal=self.webpackChunkreally_simple_ssl_modal||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))}(),r=s(196),n=s(307),o=s(736),i=()=>{const[e,t]=(0,n.useState)(!1),[i,l]=(0,n.useState)(!1),c=document.getElementById("deactivate-really-simple-ssl"),a=rsssl_modal.pro_plugin_active,u=e=>{e.preventDefault(),t(!0)};(0,n.useEffect)((()=>{if(c)return c.addEventListener("click",u),()=>{c.removeEventListener("click",u)}}),[]),(0,n.useEffect)((()=>{c&&(e?c.removeEventListener("click",u):c.addEventListener("click",u))}),[e]),(0,n.useEffect)((()=>{i||s.e(204).then(s.bind(s,204)).then((({default:e})=>{l((()=>e))}))}),[e]);const d=a?[{icon:"circle-times",color:"red",text:(0,o.__)("Performant HTTPS redirection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Vulnerability detection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Security Headers","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Advanced hardening","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Mixed content scan","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Two-step verification","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Password security","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Limit login attempts","really-simple-ssl")}]:[{icon:"circle-times",color:"red",text:(0,o.__)("Performant HTTPS redirection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Vulnerability detection","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("WordPress hardening","really-simple-ssl")},{icon:"circle-times",color:"red",text:(0,o.__)("Mixed content fixer","really-simple-ssl")}];return(0,r.createElement)(r.Fragment,null,i&&(0,r.createElement)(i,{title:(0,o.__)("Are you sure?","really-simple-ssl"),confirmText:(0,o.__)("Deactivate","really-simple-ssl"),confirmAction:()=>{c&&(c.removeEventListener("click",u),t(!1),window.location.href=rsssl_modal.deactivate_keep_https)},alternativeText:(0,o.__)("Deactivate and use HTTP","really-simple-ssl"),alternativeAction:()=>{c&&(t(!1),window.location.href=c.getAttribute("href"))},alternativeClassName:"rsssl-modal-warning",content:(0,r.createElement)(r.Fragment,null,(0,o.__)("Please choose the correct deactivation method, and before you go; you will miss out on below and future features in Really Simple Security","really-simple-ssl"),a&&(0,r.createElement)(r.Fragment,null," ",(0,r.createElement)("b",null,"Pro")),"!"),list:d,isOpen:e,setOpen:t}))},document.addEventListener("DOMContentLoaded",(()=>{const e=document.getElementById("rsssl-modal-root");e&&(n.createRoot?(0,n.createRoot)(e).render((0,r.createElement)(i,null)):(0,n.render)((0,r.createElement)(i,null),e))}))}();PK�������!�C&v��v��'��modal/build/658.c1ae2f75f09af402e920.jsnu�[��������"use strict";(self.webpackChunkreally_simple_ssl_modal=self.webpackChunkreally_simple_ssl_modal||[]).push([[658],{658:function(e,l,t){t.r(l);var c=t(196),a=t(851);const s=React.forwardRef((function(e,l){const{name:t,color:a,size:s}=e,r=t||"bullet",i=a||"black",n=s||15,h={black:"var(--rsp-black)",green:"var(--rsp-green)",yellow:"var(--rsp-yellow)",orange:"var(--rsp-yellow)","red-faded":"var(--rsp-red-faded)",red:"var(--rsp-red)",grey:"var(--rsp-grey-400)","red-warning":"var(--rsp-red-faded)"};let m="";return"bullet"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z"}))),"circle"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"}))),"check"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"}))),"warning"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"}))),"error"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"}))),"times"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"}))),"circle-check"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM371.8 211.8C382.7 200.9 382.7 183.1 371.8 172.2C360.9 161.3 343.1 161.3 332.2 172.2L224 280.4L179.8 236.2C168.9 225.3 151.1 225.3 140.2 236.2C129.3 247.1 129.3 264.9 140.2 275.8L204.2 339.8C215.1 350.7 232.9 350.7 243.8 339.8L371.8 211.8z"}))),"circle-times"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM175 208.1L222.1 255.1L175 303C165.7 312.4 165.7 327.6 175 336.1C184.4 346.3 199.6 346.3 208.1 336.1L255.1 289.9L303 336.1C312.4 346.3 327.6 346.3 336.1 336.1C346.3 327.6 346.3 312.4 336.1 303L289.9 255.1L336.1 208.1C346.3 199.6 346.3 184.4 336.1 175C327.6 165.7 312.4 165.7 303 175L255.1 222.1L208.1 175C199.6 165.7 184.4 165.7 175 175C165.7 184.4 165.7 199.6 175 208.1V208.1z"}))),"chevron-up"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M416 352c-8.188 0-16.38-3.125-22.62-9.375L224 173.3l-169.4 169.4c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25C432.4 348.9 424.2 352 416 352z"}))),"chevron-down"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"}))),"chevron-right"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z"}))),"chevron-left"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M224 480c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l169.4 169.4c12.5 12.5 12.5 32.75 0 45.25C240.4 476.9 232.2 480 224 480z"}))),"plus"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"}))),"minus"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"}))),"sync"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M483.515 28.485L431.35 80.65C386.475 35.767 324.485 8 256 8 123.228 8 14.824 112.338 8.31 243.493 7.971 250.311 13.475 256 20.301 256h28.045c6.353 0 11.613-4.952 11.973-11.294C66.161 141.649 151.453 60 256 60c54.163 0 103.157 21.923 138.614 57.386l-54.128 54.129c-7.56 7.56-2.206 20.485 8.485 20.485H492c6.627 0 12-5.373 12-12V36.971c0-10.691-12.926-16.045-20.485-8.486zM491.699 256h-28.045c-6.353 0-11.613 4.952-11.973 11.294C445.839 370.351 360.547 452 256 452c-54.163 0-103.157-21.923-138.614-57.386l54.128-54.129c7.56-7.56 2.206-20.485-8.485-20.485H20c-6.627 0-12 5.373-12 12v143.029c0 10.691 12.926 16.045 20.485 8.485L80.65 431.35C125.525 476.233 187.516 504 256 504c132.773 0 241.176-104.338 247.69-235.493.339-6.818-5.165-12.507-11.991-12.507z"}))),"sync-error"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M256 79.1C178.5 79.1 112.7 130.1 89.2 199.7C84.96 212.2 71.34 218.1 58.79 214.7C46.23 210.5 39.48 196.9 43.72 184.3C73.6 95.8 157.3 32 256 32C337.5 32 408.8 75.53 448 140.6V104C448 90.75 458.7 80 472 80C485.3 80 496 90.75 496 104V200C496 213.3 485.3 224 472 224H376C362.7 224 352 213.3 352 200C352 186.7 362.7 176 376 176H412.8C383.7 118.1 324.4 80 256 80V79.1zM280 263.1C280 277.3 269.3 287.1 256 287.1C242.7 287.1 232 277.3 232 263.1V151.1C232 138.7 242.7 127.1 256 127.1C269.3 127.1 280 138.7 280 151.1V263.1zM224 352C224 334.3 238.3 319.1 256 319.1C273.7 319.1 288 334.3 288 352C288 369.7 273.7 384 256 384C238.3 384 224 369.7 224 352zM40 432C26.75 432 16 421.3 16 408V311.1C16 298.7 26.75 287.1 40 287.1H136C149.3 287.1 160 298.7 160 311.1C160 325.3 149.3 336 136 336H99.19C128.3 393 187.6 432 256 432C333.5 432 399.3 381.9 422.8 312.3C427 299.8 440.7 293 453.2 297.3C465.8 301.5 472.5 315.1 468.3 327.7C438.4 416.2 354.7 480 256 480C174.5 480 103.2 436.5 64 371.4V408C64 421.3 53.25 432 40 432V432z"}))),"shortcode"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M128 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h96C145.7 480 160 465.7 160 448S145.7 416 128 416H64V96h64C145.7 96 160 81.67 160 64S145.7 32 128 32zM416 32h-96C302.3 32 288 46.33 288 63.1S302.3 96 319.1 96H384v320h-64C302.3 416 288 430.3 288 447.1S302.3 480 319.1 480H416c17.6 0 32-14.4 32-32V64C448 46.4 433.6 32 416 32z"}))),"file"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M0 64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM336 448V160H256C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V448C48 456.8 55.16 464 64 464H320C328.8 464 336 456.8 336 448z"}))),"file-disabled"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M639.1 487.1c0-7.119-3.153-14.16-9.191-18.89l-118.8-93.12l.0013-237.3c0-16.97-6.742-33.26-18.74-45.26l-74.63-74.64C406.6 6.742 390.3 0 373.4 0H192C156.7 0 128 28.65 128 64L128 75.01L38.82 5.11C34.41 1.672 29.19 0 24.04 0C10.19 0-.0002 11.3-.0002 23.1c0 7.12 3.153 14.16 9.192 18.89l591.1 463.1C605.6 510.3 610.8 512 615.1 512C629.8 512 639.1 500.6 639.1 487.1zM464 338.4l-287.1-225.7l-.002-48.51c0-8.836 7.164-16 15.1-16h160l-.0065 79.87c0 17.67 14.33 31.1 31.1 31.1L464 159.1V338.4zM448 463.1H192c-8.834 0-15.1-7.164-15.1-16L176 234.6L128 197L128 447.1c0 35.34 28.65 64 63.1 64H448c20.4 0 38.45-9.851 50.19-24.84l-37.72-29.56C457.5 461.4 453.2 463.1 448 463.1z"}))),"loading"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[a],d:"M304 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 416c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM48 304c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm464-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM142.9 437c18.7-18.7 18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zm0-294.2c18.7-18.7 18.7-49.1 0-67.9S93.7 56.2 75 75s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zM369.1 437c18.7 18.7 49.1 18.7 67.9 0s18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9z"}))),"file-download"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M216 342.1V240c0-13.25-10.75-24-24-24S168 226.8 168 240v102.1L128.1 303C124.3 298.3 118.2 296 112 296S99.72 298.3 95.03 303c-9.375 9.375-9.375 24.56 0 33.94l80 80c9.375 9.375 24.56 9.375 33.94 0l80-80c9.375-9.375 9.375-24.56 0-33.94s-24.56-9.375-33.94 0L216 342.1zM365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448z"}))),"calendar"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z"}))),"calendar-error"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M151.1 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V192H47.1V448C47.1 456.8 55.16 464 63.1 464H284.5C296.7 482.8 312.5 499.1 330.8 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24L151.1 64zM576 368C576 447.5 511.5 512 432 512C352.5 512 287.1 447.5 287.1 368C287.1 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM432 416C418.7 416 408 426.7 408 440C408 453.3 418.7 464 432 464C445.3 464 456 453.3 456 440C456 426.7 445.3 416 432 416zM447.1 288C447.1 279.2 440.8 272 431.1 272C423.2 272 415.1 279.2 415.1 288V368C415.1 376.8 423.2 384 431.1 384C440.8 384 447.1 376.8 447.1 368V288z"}))),"help"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z"}))),"copy"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M502.6 70.63l-61.25-61.25C435.4 3.371 427.2 0 418.7 0H255.1c-35.35 0-64 28.66-64 64l.0195 256C192 355.4 220.7 384 256 384h192c35.2 0 64-28.8 64-64V93.25C512 84.77 508.6 76.63 502.6 70.63zM464 320c0 8.836-7.164 16-16 16H255.1c-8.838 0-16-7.164-16-16L239.1 64.13c0-8.836 7.164-16 16-16h128L384 96c0 17.67 14.33 32 32 32h47.1V320zM272 448c0 8.836-7.164 16-16 16H63.1c-8.838 0-16-7.164-16-16L47.98 192.1c0-8.836 7.164-16 16-16H160V128H63.99c-35.35 0-64 28.65-64 64l.0098 256C.002 483.3 28.66 512 64 512h192c35.2 0 64-28.8 64-64v-32h-47.1L272 448z"}))),"info"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"}))),"info-open"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM256 304c13.25 0 24-10.75 24-24v-128C280 138.8 269.3 128 256 128S232 138.8 232 152v128C232 293.3 242.8 304 256 304zM256 337.1c-17.36 0-31.44 14.08-31.44 31.44C224.6 385.9 238.6 400 256 400s31.44-14.08 31.44-31.44C287.4 351.2 273.4 337.1 256 337.1z"}))),"list"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M184.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 113c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM256 96c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zM192 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zM80 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z"}))),"empty"===r&&(m=(0,c.createElement)("svg",{height:n,width:n,"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 280.8 363.67"})),"external-link"===r&&(m=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("path",{fill:h[i],d:"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z"}))),"shield"===r&&(m=(0,c.createElement)("svg",{height:n,"aria-hidden":"true",focusable:"false",role:"img",id:"uuid-026a4e87-44db-4336-a398-3c29d25b7317",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 280.8 363.67"},(0,c.createElement)("path",{fill:"#f9c23e",d:"M280.8,62.4L140.5,0,0,62.2V213.3c0,10.7,1.6,21.3,4.9,31.5,9.5,29.9,28.2,52.8,54.4,69.5,26,16.6,52.4,32.4,78.6,48.6,2,1.2,3.4,.9,5.1-.2,19.9-12.3,39.8-24.5,59.6-36.8,12.6-7.8,25.5-15.1,36.5-25.1,26.4-24.2,41.4-53.6,41.5-89.9V62.4h.2Z"}),(0,c.createElement)("g",null,(0,c.createElement)("g",null,(0,c.createElement)("rect",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",x:"155",y:"266.8",width:"77.6",height:"6"}),(0,c.createElement)("path",{fill:"#1d2327",d:"M224.4,204.5h-1.8v-10.1c0-15.9-12.9-28.8-28.8-28.8s-28.8,12.9-28.8,28.8v10.1h-1.8c-4.6,0-8.3,3.7-8.3,8.3v51.3h77.6v-51.3c0-4.6-3.7-8.3-8.3-8.3h.2Zm-45.3-10.1c0-8.1,6.6-14.7,14.7-14.7s14.7,6.6,14.7,14.7v10.1h-29.5v-10.1h.1Zm36.6,32.9l-20.7,20.2c-.2,.2-.3,.4-.5,.6l-2,2c-.2,.2-.4,.4-.6,.5l-3.8,3.8-4.5-4.3-2-2c-.2-.2-.4-.4-.5-.6l-9.1-9.1c-2.4-2.4-2.4-6.4,0-8.8l2-2c2.4-2.4,6.4-2.4,8.8,0l5.3,5.3,16.9-16.4c2.4-2.4,6.4-2.4,8.8,0l2,2c2.4,2.4,2.4,6.4,0,8.8h-.1Z"})),(0,c.createElement)("g",null,(0,c.createElement)("path",{fill:"#1d2327",d:"M125.2,192.3c-.5-2.9-.5-5.8-1-8.6-.5-2.4-2.6-4-4.8-3.9-2.3,0-4.2,1.9-4.7,4.3-.2,1,0,1.9,0,2.9,.8,14.6,7.2,26.3,18.2,35.7,2.2,1.9,4.5,3.5,6.9,4.8v-11.8c-7.4-5.8-12.9-14.1-14.6-23.3v-.1Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M96.4,236.1c-13-15-20-32.3-19.5-52.3,.3-13.1,6.1-23.6,16.6-31.2,11.5-8.5,24.5-10.9,38.3-7.1,12.7,3.5,22,10.7,27.4,22,2.1-2.7,4.5-5.2,7.2-7.4-4-7-9.7-12.9-17-17.4-17-10.4-34.9-11.7-52.9-3.1-19,9.1-28.7,24.7-29.3,45.8,0,5.2,.5,10.2,1.4,15.2,3.4,19.4,13.4,35.2,27.2,48.9,1.1,1.1,2.5,1.6,4.1,1.4,1.8-.2,3.2-1.3,3.8-3,.6-1.8,.4-3.6-1-5.1-2.1-2.2-4.2-4.4-6.2-6.7h-.1Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M68.1,89.4c1.1-.4,2.1-1,3.1-1.5,17.9-9.1,36.8-12.7,56.8-11.3,12.2,.8,23.9,3.8,35.1,8.7,3,1.3,5.9,2.8,8.9,4.1,2.7,1.1,5.3,0,6.4-2.4,1.1-2.3,0-5-2.3-6.3-11-5.7-22.4-10-34.6-12.3-4.2-.8-8.5-1.1-12.8-1.7h-17.1c-.3,0-.6,.2-.9,.2-11.2,.8-22,3.2-32.5,7.2-4.9,1.9-9.7,4.1-14.3,6.6-2.5,1.3-3.4,4.2-2.2,6.5,1.1,2.2,4,3.2,6.4,2.1v.1Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M61.1,153.5c13.6-21.6,33.6-31.5,58.7-32.1h6c.8,0,1.6,.2,2.3,.3,13.4,1.7,25.5,6.6,35.9,15.4,5.8,4.9,10.5,10.3,14.1,16.2,3.1-1.2,6.4-2,9.8-2.5-4.7-8.7-11.3-16.3-19.6-22.7-19-14.6-40.5-19.5-64.1-15.1-14.3,2.7-26.9,9-37.7,18.8-10.4,9.5-17.8,20.9-21.2,34.6-2.8,11.3-2.6,22.7-.9,34.1,1.1,7,2.9,13.9,5.4,20.5,.9,2.3,3,3.7,5.2,3.5,2.1-.2,3.9-2,4.3-4.3,.2-1.1-.2-2.2-.6-3.2-4.3-11.9-6.3-24.1-5.6-36.7,.5-9.6,2.8-18.7,8-26.8h0Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M139.8,240.6c-20.9-8.4-34.1-23.7-38.4-46.7-.8-4.3-1.4-8.7-.4-13,1.8-7.1,6.4-11.4,13.4-13.5,11.8-3.4,24.7,5.3,24.5,17.6,0,4.8,1.4,9.3,4,13.4,.3,.5,.6,.9,.9,1.3,1.6-2.4,3.7-4.6,6.1-6.2,0-.9,0-1.9,.2-2.8-.7-1.7-1.1-3.5-1.2-5.3-.3-6.1-1.6-11.9-5.5-16.8-6.8-8.8-15.9-12.4-27-11.5-11.3,.9-21.6,9.6-24.5,20.6-1.8,6.6-.9,13.3,.4,19.8,2.4,12.9,8.2,24,17.1,33.7,8.6,9.4,18.8,15.8,30.6,19.8v-10.4h-.2Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M47.5,133.2c6.8-8.8,15-16,24.6-21.6,20.8-12,43.2-15.2,66.6-11,14.8,2.7,28.2,8.7,39.9,18.2,6.3,5,11.6,11,16.4,17.4,1.9,2.5,4.8,2.8,7,1.1,2.1-1.7,2.4-4.5,.6-7-5.9-8.2-12.8-15.3-20.9-21.3-18.3-13.6-39.1-19.6-61.7-20-6.3,0-12.5,.6-18.6,1.6-15.7,2.8-30.1,8.6-42.9,18.1-8.3,6.2-15.5,13.5-21.5,22-1.6,2.3-1.3,5.1,.7,6.7,2.1,1.7,4.9,1.5,6.8-.7,1-1.2,1.9-2.5,2.9-3.7l.1,.2Z"}))))),"file-search"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",height:n,fill:"none",viewBox:"0 0 384 512"},(0,c.createElement)("path",{d:"M374.6 150.6l-141.3-141.3C227.4 3.371 219.2 0 210.7 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.35 0 64-28.66 64-64V173.3C384 164.8 380.6 156.6 374.6 150.6zM224 22.63L361.4 160H248C234.8 160 224 149.2 224 136V22.63zM368 448c0 26.47-21.53 48-48 48H64c-26.47 0-48-21.53-48-48V64c0-26.47 21.53-48 48-48h144v120c0 22.06 17.94 40 40 40h120V448zM176 208c-53.02 0-96 42.98-96 96s42.98 96 96 96c23.62 0 44.96-8.859 61.68-23l68.66 68.66C307.9 447.2 309.9 448 312 448s4.094-.7813 5.656-2.344c3.125-3.125 3.125-8.188 0-11.31l-68.66-68.66C263.1 348.1 272 327.6 272 304C272 250.1 229 208 176 208zM176 384C131.9 384 96 348.1 96 304S131.9 224 176 224S256 259.9 256 304S220.1 384 176 384z"}))),"download"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",height:n,fill:"none",viewBox:"0 0 512 512"},(0,c.createElement)("path",{d:"M480 352h-88C387.6 352 384 355.6 384 360s3.582 8 8 8H480c8.822 0 16 7.178 16 16v96c0 8.822-7.178 16-16 16H32c-8.822 0-16-7.178-16-16v-96c0-8.822 7.178-16 16-16h88C124.4 368 128 364.4 128 360S124.4 352 120 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96C512 366.3 497.7 352 480 352zM464 432c0-17.6-14.4-32-32-32s-32 14.4-32 32c0 17.6 14.4 32 32 32S464 449.6 464 432zM416 432c0-8.822 7.178-16 16-16s16 7.178 16 16S440.8 448 432 448S416 440.8 416 432zM250.3 413.7c3.125 3.125 8.188 3.125 11.31 0l152-152C415.2 260.1 416 258.1 416 256s-.7813-4.094-2.344-5.656c-3.125-3.125-8.188-3.125-11.31 0L264 388.7V8C264 3.594 260.4 0 256 0S248 3.594 248 8v380.7L109.7 250.3c-3.125-3.125-8.188-3.125-11.31 0s-3.125 8.188 0 11.31L250.3 413.7z"}))),"satellite-dish"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",color:h[i],height:n,viewBox:"0 0 512 512"},(0,c.createElement)("path",{d:"M208 0c-8.8 0-16 7.2-16 16s7.2 16 16 16c150.2 0 272 121.8 272 272c0 8.8 7.2 16 16 16s16-7.2 16-16C512 136.1 375.9 0 208 0zm0 96c-8.8 0-16 7.2-16 16s7.2 16 16 16c97.2 0 176 78.8 176 176c0 8.8 7.2 16 16 16s16-7.2 16-16c0-114.9-93.1-208-208-208zM32 304c0-24.5 5-47.7 13.9-68.8L276.8 466.1C255.7 475 232.5 480 208 480c-97.2 0-176-78.8-176-176zm33.5-94.5c-14-14-37.3-12.1-45.7 5.8C7.1 242.2 0 272.3 0 304C0 418.9 93.1 512 208 512c31.7 0 61.8-7.1 88.7-19.8c17.9-8.4 19.8-31.8 5.8-45.7L195.3 339.3l24-24c6.3 3 13.3 4.7 20.7 4.7c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48c0 7.4 1.7 14.4 4.7 20.7l-24 24L65.5 209.5zM224 272a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"}))),"rotate-light"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",color:h[i],height:n,viewBox:"0 0 512 512"},(0,c.createElement)("path",{d:"M426.1 301.2C406.2 376.5 337.6 432 256 432c-51 0-96.9-21.7-129-56.3l41-41c5.1-5.1 8-12.1 8-19.3c0-15.1-12.2-27.3-27.3-27.3H48c-8.8 0-16 7.2-16 16V404.7C32 419.8 44.2 432 59.3 432c7.2 0 14.2-2.9 19.3-8l25.7-25.7C142.3 438.7 196.2 464 256 464c97.4 0 179.2-67 201.8-157.4c2.4-9.7-5.2-18.6-15.2-18.6c-7.8 0-14.5 5.6-16.5 13.2zM385 136.3l-41 41c-5.1 5.1-8 12.1-8 19.3c0 15.1 12.2 27.3 27.3 27.3H464c8.8 0 16-7.2 16-16V107.3C480 92.2 467.8 80 452.7 80c-7.2 0-14.2 2.9-19.3 8l-25.7 25.7C369.7 73.3 315.8 48 256 48C158.6 48 76.8 115 54.2 205.4c-2.4 9.7 5.2 18.6 15.2 18.6c7.8 0 14.5-5.6 16.5-13.2C105.8 135.5 174.4 80 256 80c51 0 96.9 21.7 129.1 56.3zM448 192H374.6L448 118.6V192zM64 320h73.4L64 393.4V320z"}))),"rotate-exclamation-light"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,`\n .fa-secondary {\n opacity: 0.4;\n color: ${h[i]};\n }\n `)),(0,c.createElement)("path",{className:"fa-primary",d:"M280 152c0-13.3-10.7-24-24-24s-24 10.7-24 24V264c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM256 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M432 117.4C391 65.4 327.4 32 256 32C158.4 32 75.5 94.4 44.8 181.3c-5.9 16.7 2.8 34.9 19.5 40.8s34.9-2.8 40.8-19.5C127.1 140.5 186.4 96 256 96c52.3 0 98.8 25.1 128 64H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h84.3c.5 0 1 0 1.5 0H464c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v37.4zm35.2 213.2c5.9-16.7-2.8-34.9-19.5-40.8s-34.9 2.8-40.8 19.5C384.9 371.5 325.6 416 256 416c-52.3 0-98.8-25.1-128-64h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32V432c0 17.7 14.3 32 32 32s32-14.3 32-32V394.6c41 52 104.6 85.4 176 85.4c97.6 0 180.5-62.4 211.2-149.3z"}))),"radar-duotone"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,`\n .fa-secondary {\n color: ${h[i]} !important;\n } \n `)),(0,c.createElement)("path",{className:"fa-primary",d:"M497 49c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-182 182c-7.7-3.3-16.1-5.1-25-5.1c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64c0-8.9-1.8-17.3-5.1-25L497 49z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M350.9 127.2l-46.1 46.1c-14.3-8.4-31-13.3-48.8-13.3c-53 0-96 43-96 96s43 96 96 96s96-43 96-96h64c0 73.5-49.6 135.5-117.2 154.2C290.8 394.7 274.7 384 256 384s-34.8 10.7-42.8 26.2c-51.7-14.3-92.8-53.9-109.4-104.6c14.4-8.3 24.1-23.8 24.1-41.7c0-19.4-11.5-36.1-28-43.7C116.2 149.1 179.9 96 256 96c35.5 0 68.3 11.6 94.9 31.2zm22.8-22.8C341.2 79 300.4 64 256 64C163.1 64 85.7 129.9 67.9 217.6C47.2 222.9 32 241.7 32 264c0 23.8 17.3 43.6 40.1 47.4c19.3 64.3 71.5 114.4 137 130.9C213.8 463.8 233 480 256 480s42.2-16.2 46.9-37.8C386.3 421.3 448 345.9 448 256h64c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0c62.1 0 118.9 22.1 163.3 58.8l-45.5 45.5z"}))),"satellite-dish-duotone"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,`\n .fa-secondary {\n color: ${h[i]} !important;\n } \n `)),(0,c.createElement)("path",{className:"fa-primary",d:"M60.6 220.6c-14.5-14.5-38.8-11.8-46.3 7.3C5.1 251.5 0 277.1 0 304C0 418.9 93.1 512 208 512c26.9 0 52.5-5.1 76.1-14.4c19-7.5 21.8-31.8 7.3-46.3L187.3 347.3l28.4-28.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3l-28.4 28.4L60.6 220.6z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M224 0c-17.7 0-32 14.3-32 32s14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0zm0 96c-17.7 0-32 14.3-32 32s14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192z"}))),"spinner"===r&&(m=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",width:"20",height:"20"},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,"\n .fa-secondary {\n opacity: 0.4;\n }\n ")),(0,c.createElement)("path",{className:"fa-primary",d:"M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 256A48 48 0 1 0 0 256a48 48 0 1 0 96 0zM75 142.9A48 48 0 1 0 142.9 75 48 48 0 1 0 75 142.9z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M369.1 75A48 48 0 1 1 437 142.9 48 48 0 1 1 369.1 75zM416 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM208 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM75 369.1A48 48 0 1 1 142.9 437 48 48 0 1 1 75 369.1zm294.2 0A48 48 0 1 1 437 437a48 48 0 1 1 -67.9-67.9z"}))),(0,c.createElement)("div",{...e,ref:l},m)}));l.default=({name:e,color:l,size:t,tooltip:r})=>{const i=e||"bullet",n=l||"black";let h=t||15,m=r?"tooltip-":"",o=Math.floor(1e9*Math.random());return r?(0,c.createElement)("div",{className:"rsssl-"+m+"icon rsssl-icon-"+i+" rsssl-"+n},(0,c.createElement)(s,{"data-for":".rsssl-"+o,name:i,color:n,size:h,id:o,className:"rsssl-"+o,"data-tooltip-delay-hide":200}),(0,c.createElement)(a.u,{style:{zIndex:99},id:o,place:"bottom",anchorSelect:".rsssl-"+o,content:r})):(0,c.createElement)("div",{className:"rsssl-"+m+"icon rsssl-icon-"+i+" rsssl-"+n},(0,c.createElement)(s,{name:i,color:n,size:h}))}}}]);PK�������!�H����'��modal/build/851.99d390afbb9ca3c28c19.jsnu�[��������(self.webpackChunkreally_simple_ssl_modal=self.webpackChunkreally_simple_ssl_modal||[]).push([[851],{305:function(e,t){var o;!function(){"use strict";var n={}.hasOwnProperty;function r(){for(var e="",t=0;t<arguments.length;t++){var o=arguments[t];o&&(e=i(e,l(o)))}return e}function l(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return r.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var t="";for(var o in e)n.call(e,o)&&e[o]&&(t=i(t,o));return t}function i(e,t){return t?e?e+" "+t:e+t:e}e.exports?(r.default=r,e.exports=r):void 0===(o=function(){return r}.apply(t,[]))||(e.exports=o)}()},851:function(e,t,o){"use strict";o.d(t,{u:function(){return xe}});var n=o(196);const r=Math.min,l=Math.max,i=Math.round,c=Math.floor,s=e=>({x:e,y:e}),a={left:"right",right:"left",bottom:"top",top:"bottom"},u={start:"end",end:"start"};function d(e,t,o){return l(e,r(t,o))}function f(e,t){return"function"==typeof e?e(t):e}function p(e){return e.split("-")[0]}function m(e){return e.split("-")[1]}function y(e){return"x"===e?"y":"x"}function v(e){return"y"===e?"height":"width"}function h(e){return["top","bottom"].includes(p(e))?"y":"x"}function w(e){return y(h(e))}function g(e){return e.replace(/start|end/g,(e=>u[e]))}function b(e){return e.replace(/left|right|bottom|top/g,(e=>a[e]))}function x(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}function _(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function E(e,t,o){let{reference:n,floating:r}=e;const l=h(t),i=w(t),c=v(i),s=p(t),a="y"===l,u=n.x+n.width/2-r.width/2,d=n.y+n.height/2-r.height/2,f=n[c]/2-r[c]/2;let y;switch(s){case"top":y={x:u,y:n.y-r.height};break;case"bottom":y={x:u,y:n.y+n.height};break;case"right":y={x:n.x+n.width,y:d};break;case"left":y={x:n.x-r.width,y:d};break;default:y={x:n.x,y:n.y}}switch(m(t)){case"start":y[i]-=f*(o&&a?-1:1);break;case"end":y[i]+=f*(o&&a?-1:1)}return y}async function S(e,t){var o;void 0===t&&(t={});const{x:n,y:r,platform:l,rects:i,elements:c,strategy:s}=e,{boundary:a="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:p=!1,padding:m=0}=f(t,e),y=x(m),v=c[p?"floating"===d?"reference":"floating":d],h=_(await l.getClippingRect({element:null==(o=await(null==l.isElement?void 0:l.isElement(v)))||o?v:v.contextElement||await(null==l.getDocumentElement?void 0:l.getDocumentElement(c.floating)),boundary:a,rootBoundary:u,strategy:s})),w="floating"===d?{...i.floating,x:n,y:r}:i.reference,g=await(null==l.getOffsetParent?void 0:l.getOffsetParent(c.floating)),b=await(null==l.isElement?void 0:l.isElement(g))&&await(null==l.getScale?void 0:l.getScale(g))||{x:1,y:1},E=_(l.convertOffsetParentRelativeRectToViewportRelativeRect?await l.convertOffsetParentRelativeRectToViewportRelativeRect({rect:w,offsetParent:g,strategy:s}):w);return{top:(h.top-E.top+y.top)/b.y,bottom:(E.bottom-h.bottom+y.bottom)/b.y,left:(h.left-E.left+y.left)/b.x,right:(E.right-h.right+y.right)/b.x}}const T=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var o,n;const{x:r,y:l,placement:i,middlewareData:c}=t,s=await async function(e,t){const{placement:o,platform:n,elements:r}=e,l=await(null==n.isRTL?void 0:n.isRTL(r.floating)),i=p(o),c=m(o),s="y"===h(o),a=["left","top"].includes(i)?-1:1,u=l&&s?-1:1,d=f(t,e);let{mainAxis:y,crossAxis:v,alignmentAxis:w}="number"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...d};return c&&"number"==typeof w&&(v="end"===c?-1*w:w),s?{x:v*u,y:y*a}:{x:y*a,y:v*u}}(t,e);return i===(null==(o=c.offset)?void 0:o.placement)&&null!=(n=c.arrow)&&n.alignmentOffset?{}:{x:r+s.x,y:l+s.y,data:{...s,placement:i}}}}};function A(e){return O(e)?(e.nodeName||"").toLowerCase():"#document"}function R(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function k(e){var t;return null==(t=(O(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function O(e){return e instanceof Node||e instanceof R(e).Node}function L(e){return e instanceof Element||e instanceof R(e).Element}function C(e){return e instanceof HTMLElement||e instanceof R(e).HTMLElement}function N(e){return"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof R(e).ShadowRoot)}function D(e){const{overflow:t,overflowX:o,overflowY:n,display:r}=P(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+o)&&!["inline","contents"].includes(r)}function $(e){return["table","td","th"].includes(A(e))}function B(e){const t=j(),o=P(e);return"none"!==o.transform||"none"!==o.perspective||!!o.containerType&&"normal"!==o.containerType||!t&&!!o.backdropFilter&&"none"!==o.backdropFilter||!t&&!!o.filter&&"none"!==o.filter||["transform","perspective","filter"].some((e=>(o.willChange||"").includes(e)))||["paint","layout","strict","content"].some((e=>(o.contain||"").includes(e)))}function j(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function H(e){return["html","body","#document"].includes(A(e))}function P(e){return R(e).getComputedStyle(e)}function W(e){return L(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function z(e){if("html"===A(e))return e;const t=e.assignedSlot||e.parentNode||N(e)&&e.host||k(e);return N(t)?t.host:t}function I(e){const t=z(e);return H(t)?e.ownerDocument?e.ownerDocument.body:e.body:C(t)&&D(t)?t:I(t)}function F(e,t,o){var n;void 0===t&&(t=[]),void 0===o&&(o=!0);const r=I(e),l=r===(null==(n=e.ownerDocument)?void 0:n.body),i=R(r);return l?t.concat(i,i.visualViewport||[],D(r)?r:[],i.frameElement&&o?F(i.frameElement):[]):t.concat(r,F(r,[],o))}function M(e){const t=P(e);let o=parseFloat(t.width)||0,n=parseFloat(t.height)||0;const r=C(e),l=r?e.offsetWidth:o,c=r?e.offsetHeight:n,s=i(o)!==l||i(n)!==c;return s&&(o=l,n=c),{width:o,height:n,$:s}}function q(e){return L(e)?e:e.contextElement}function V(e){const t=q(e);if(!C(t))return s(1);const o=t.getBoundingClientRect(),{width:n,height:r,$:l}=M(t);let c=(l?i(o.width):o.width)/n,a=(l?i(o.height):o.height)/r;return c&&Number.isFinite(c)||(c=1),a&&Number.isFinite(a)||(a=1),{x:c,y:a}}const K=s(0);function X(e){const t=R(e);return j()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:K}function Y(e,t,o,n){void 0===t&&(t=!1),void 0===o&&(o=!1);const r=e.getBoundingClientRect(),l=q(e);let i=s(1);t&&(n?L(n)&&(i=V(n)):i=V(e));const c=function(e,t,o){return void 0===t&&(t=!1),!(!o||t&&o!==R(e))&&t}(l,o,n)?X(l):s(0);let a=(r.left+c.x)/i.x,u=(r.top+c.y)/i.y,d=r.width/i.x,f=r.height/i.y;if(l){const e=R(l),t=n&&L(n)?R(n):n;let o=e.frameElement;for(;o&&n&&t!==e;){const e=V(o),t=o.getBoundingClientRect(),n=P(o),r=t.left+(o.clientLeft+parseFloat(n.paddingLeft))*e.x,l=t.top+(o.clientTop+parseFloat(n.paddingTop))*e.y;a*=e.x,u*=e.y,d*=e.x,f*=e.y,a+=r,u+=l,o=R(o).frameElement}}return _({width:d,height:f,x:a,y:u})}function Z(e){return Y(k(e)).left+W(e).scrollLeft}function G(e,t,o){let n;if("viewport"===t)n=function(e,t){const o=R(e),n=k(e),r=o.visualViewport;let l=n.clientWidth,i=n.clientHeight,c=0,s=0;if(r){l=r.width,i=r.height;const e=j();(!e||e&&"fixed"===t)&&(c=r.offsetLeft,s=r.offsetTop)}return{width:l,height:i,x:c,y:s}}(e,o);else if("document"===t)n=function(e){const t=k(e),o=W(e),n=e.ownerDocument.body,r=l(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),i=l(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight);let c=-o.scrollLeft+Z(e);const s=-o.scrollTop;return"rtl"===P(n).direction&&(c+=l(t.clientWidth,n.clientWidth)-r),{width:r,height:i,x:c,y:s}}(k(e));else if(L(t))n=function(e,t){const o=Y(e,!0,"fixed"===t),n=o.top+e.clientTop,r=o.left+e.clientLeft,l=C(e)?V(e):s(1);return{width:e.clientWidth*l.x,height:e.clientHeight*l.y,x:r*l.x,y:n*l.y}}(t,o);else{const o=X(e);n={...t,x:t.x-o.x,y:t.y-o.y}}return _(n)}function U(e,t){const o=z(e);return!(o===t||!L(o)||H(o))&&("fixed"===P(o).position||U(o,t))}function J(e,t,o){const n=C(t),r=k(t),l="fixed"===o,i=Y(e,!0,l,t);let c={scrollLeft:0,scrollTop:0};const a=s(0);if(n||!n&&!l)if(("body"!==A(t)||D(r))&&(c=W(t)),n){const e=Y(t,!0,l,t);a.x=e.x+t.clientLeft,a.y=e.y+t.clientTop}else r&&(a.x=Z(r));return{x:i.left+c.scrollLeft-a.x,y:i.top+c.scrollTop-a.y,width:i.width,height:i.height}}function Q(e,t){return C(e)&&"fixed"!==P(e).position?t?t(e):e.offsetParent:null}function ee(e,t){const o=R(e);if(!C(e))return o;let n=Q(e,t);for(;n&&$(n)&&"static"===P(n).position;)n=Q(n,t);return n&&("html"===A(n)||"body"===A(n)&&"static"===P(n).position&&!B(n))?o:n||function(e){let t=z(e);for(;C(t)&&!H(t);){if(B(t))return t;t=z(t)}return null}(e)||o}const te={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:t,offsetParent:o,strategy:n}=e;const r=C(o),l=k(o);if(o===l)return t;let i={scrollLeft:0,scrollTop:0},c=s(1);const a=s(0);if((r||!r&&"fixed"!==n)&&(("body"!==A(o)||D(l))&&(i=W(o)),C(o))){const e=Y(o);c=V(o),a.x=e.x+o.clientLeft,a.y=e.y+o.clientTop}return{width:t.width*c.x,height:t.height*c.y,x:t.x*c.x-i.scrollLeft*c.x+a.x,y:t.y*c.y-i.scrollTop*c.y+a.y}},getDocumentElement:k,getClippingRect:function(e){let{element:t,boundary:o,rootBoundary:n,strategy:i}=e;const c=[..."clippingAncestors"===o?function(e,t){const o=t.get(e);if(o)return o;let n=F(e,[],!1).filter((e=>L(e)&&"body"!==A(e))),r=null;const l="fixed"===P(e).position;let i=l?z(e):e;for(;L(i)&&!H(i);){const t=P(i),o=B(i);o||"fixed"!==t.position||(r=null),(l?!o&&!r:!o&&"static"===t.position&&r&&["absolute","fixed"].includes(r.position)||D(i)&&!o&&U(e,i))?n=n.filter((e=>e!==i)):r=t,i=z(i)}return t.set(e,n),n}(t,this._c):[].concat(o),n],s=c[0],a=c.reduce(((e,o)=>{const n=G(t,o,i);return e.top=l(n.top,e.top),e.right=r(n.right,e.right),e.bottom=r(n.bottom,e.bottom),e.left=l(n.left,e.left),e}),G(t,s,i));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},getOffsetParent:ee,getElementRects:async function(e){let{reference:t,floating:o,strategy:n}=e;const r=this.getOffsetParent||ee,l=this.getDimensions;return{reference:J(t,await r(o),n),floating:{x:0,y:0,...await l(o)}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:o}=M(e);return{width:t,height:o}},getScale:V,isElement:L,isRTL:function(e){return"rtl"===P(e).direction}};const oe=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:o,y:n,placement:r}=t,{mainAxis:l=!0,crossAxis:i=!1,limiter:c={fn:e=>{let{x:t,y:o}=e;return{x:t,y:o}}},...s}=f(e,t),a={x:o,y:n},u=await S(t,s),m=h(p(r)),v=y(m);let w=a[v],g=a[m];if(l){const e="y"===v?"bottom":"right";w=d(w+u["y"===v?"top":"left"],w,w-u[e])}if(i){const e="y"===m?"bottom":"right";g=d(g+u["y"===m?"top":"left"],g,g-u[e])}const b=c.fn({...t,[v]:w,[m]:g});return{...b,data:{x:b.x-o,y:b.y-n}}}}},ne=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var o,n;const{placement:r,middlewareData:l,rects:i,initialPlacement:c,platform:s,elements:a}=t,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:y,fallbackStrategy:h="bestFit",fallbackAxisSideDirection:x="none",flipAlignment:_=!0,...E}=f(e,t);if(null!=(o=l.arrow)&&o.alignmentOffset)return{};const T=p(r),A=p(c)===c,R=await(null==s.isRTL?void 0:s.isRTL(a.floating)),k=y||(A||!_?[b(c)]:function(e){const t=b(e);return[g(e),t,g(t)]}(c));y||"none"===x||k.push(...function(e,t,o,n){const r=m(e);let l=function(e,t,o){const n=["left","right"],r=["right","left"],l=["top","bottom"],i=["bottom","top"];switch(e){case"top":case"bottom":return o?t?r:n:t?n:r;case"left":case"right":return t?l:i;default:return[]}}(p(e),"start"===o,n);return r&&(l=l.map((e=>e+"-"+r)),t&&(l=l.concat(l.map(g)))),l}(c,_,x,R));const O=[c,...k],L=await S(t,E),C=[];let N=(null==(n=l.flip)?void 0:n.overflows)||[];if(u&&C.push(L[T]),d){const e=function(e,t,o){void 0===o&&(o=!1);const n=m(e),r=w(e),l=v(r);let i="x"===r?n===(o?"end":"start")?"right":"left":"start"===n?"bottom":"top";return t.reference[l]>t.floating[l]&&(i=b(i)),[i,b(i)]}(r,i,R);C.push(L[e[0]],L[e[1]])}if(N=[...N,{placement:r,overflows:C}],!C.every((e=>e<=0))){var D,$;const e=((null==(D=l.flip)?void 0:D.index)||0)+1,t=O[e];if(t)return{data:{index:e,overflows:N},reset:{placement:t}};let o=null==($=N.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:$.placement;if(!o)switch(h){case"bestFit":{var B;const e=null==(B=N.map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:B[0];e&&(o=e);break}case"initialPlacement":o=c}if(r!==o)return{reset:{placement:o}}}return{}}}},re=(e,t,o)=>{const n=new Map,r={platform:te,...o},l={...r.platform,_c:n};return(async(e,t,o)=>{const{placement:n="bottom",strategy:r="absolute",middleware:l=[],platform:i}=o,c=l.filter(Boolean),s=await(null==i.isRTL?void 0:i.isRTL(t));let a=await i.getElementRects({reference:e,floating:t,strategy:r}),{x:u,y:d}=E(a,n,s),f=n,p={},m=0;for(let o=0;o<c.length;o++){const{name:l,fn:y}=c[o],{x:v,y:h,data:w,reset:g}=await y({x:u,y:d,initialPlacement:n,placement:f,strategy:r,middlewareData:p,rects:a,platform:i,elements:{reference:e,floating:t}});u=null!=v?v:u,d=null!=h?h:d,p={...p,[l]:{...p[l],...w}},g&&m<=50&&(m++,"object"==typeof g&&(g.placement&&(f=g.placement),g.rects&&(a=!0===g.rects?await i.getElementRects({reference:e,floating:t,strategy:r}):g.rects),({x:u,y:d}=E(a,f,s))),o=-1)}return{x:u,y:d,placement:f,strategy:r,middlewareData:p}})(e,t,{...r,platform:l})};var le=o(305);const ie={core:!1,base:!1};function ce({css:e,id:t="react-tooltip-base-styles",type:o="base",ref:n}){var r,l;if(!e||"undefined"==typeof document||ie[o])return;if("core"===o&&"undefined"!=typeof process&&(null===(r=null===process||void 0===process?void 0:process.env)||void 0===r?void 0:r.REACT_TOOLTIP_DISABLE_CORE_STYLES))return;if("base"!==o&&"undefined"!=typeof process&&(null===(l=null===process||void 0===process?void 0:process.env)||void 0===l?void 0:l.REACT_TOOLTIP_DISABLE_BASE_STYLES))return;"core"===o&&(t="react-tooltip-core-styles"),n||(n={});const{insertAt:i}=n;if(document.getElementById(t))return void console.warn(`[react-tooltip] Element with id '${t}' already exists. Call \`removeStyle()\` first`);const c=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.id=t,s.type="text/css","top"===i&&c.firstChild?c.insertBefore(s,c.firstChild):c.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e)),ie[o]=!0}const se=(e,t,o)=>{let n=null;return function(...r){const l=()=>{n=null,o||e.apply(this,r)};o&&!n&&(e.apply(this,r),n=setTimeout(l,t)),o||(n&&clearTimeout(n),n=setTimeout(l,t))}},ae={anchorRefs:new Set,activeAnchor:{current:null},attach:()=>{},detach:()=>{},setActiveAnchor:()=>{}},ue=(0,n.createContext)({getTooltipData:()=>ae});function de(e="DEFAULT_TOOLTIP_ID"){return(0,n.useContext)(ue).getTooltipData(e)}const fe="undefined"!=typeof window?n.useLayoutEffect:n.useEffect,pe=e=>{if(!(e instanceof HTMLElement||e instanceof SVGElement))return!1;const t=getComputedStyle(e);return["overflow","overflow-x","overflow-y"].some((e=>{const o=t.getPropertyValue(e);return"auto"===o||"scroll"===o}))},me=e=>{if(!e)return null;let t=e.parentElement;for(;t;){if(pe(t))return t;t=t.parentElement}return document.scrollingElement||document.documentElement},ye=async({elementReference:e=null,tooltipReference:t=null,tooltipArrowReference:o=null,place:n="top",offset:l=10,strategy:i="absolute",middlewares:c=[T(Number(l)),ne({fallbackAxisSideDirection:"start"}),oe({padding:5})],border:s})=>{if(!e)return{tooltipStyles:{},tooltipArrowStyles:{},place:n};if(null===t)return{tooltipStyles:{},tooltipArrowStyles:{},place:n};const a=c;return o?(a.push({name:"arrow",options:u={element:o,padding:5},async fn(e){const{x:t,y:o,placement:n,rects:l,platform:i,elements:c,middlewareData:s}=e,{element:a,padding:p=0}=f(u,e)||{};if(null==a)return{};const y=x(p),h={x:t,y:o},g=w(n),b=v(g),_=await i.getDimensions(a),E="y"===g,S=E?"top":"left",T=E?"bottom":"right",A=E?"clientHeight":"clientWidth",R=l.reference[b]+l.reference[g]-h[g]-l.floating[b],k=h[g]-l.reference[g],O=await(null==i.getOffsetParent?void 0:i.getOffsetParent(a));let L=O?O[A]:0;L&&await(null==i.isElement?void 0:i.isElement(O))||(L=c.floating[A]||l.floating[b]);const C=R/2-k/2,N=L/2-_[b]/2-1,D=r(y[S],N),$=r(y[T],N),B=D,j=L-_[b]-$,H=L/2-_[b]/2+C,P=d(B,H,j),W=!s.arrow&&null!=m(n)&&H!=P&&l.reference[b]/2-(H<B?D:$)-_[b]/2<0,z=W?H<B?H-B:H-j:0;return{[g]:h[g]+z,data:{[g]:P,centerOffset:H-P-z,...W&&{alignmentOffset:z}},reset:W}}}),re(e,t,{placement:n,strategy:i,middleware:a}).then((({x:e,y:t,placement:o,middlewareData:n})=>{var r,l;const i={left:`${e}px`,top:`${t}px`,border:s},{x:c,y:a}=null!==(r=n.arrow)&&void 0!==r?r:{x:0,y:0},u=null!==(l={top:"bottom",right:"left",bottom:"top",left:"right"}[o.split("-")[0]])&&void 0!==l?l:"bottom",d=s&&{borderBottom:s,borderRight:s};let f=0;if(s){const e=`${s}`.match(/(\d+)px/);f=(null==e?void 0:e[1])?Number(e[1]):1}return{tooltipStyles:i,tooltipArrowStyles:{left:null!=c?`${c}px`:"",top:null!=a?`${a}px`:"",right:"",bottom:"",...d,[u]:`-${4+f}px`},place:o}}))):re(e,t,{placement:"bottom",strategy:i,middleware:a}).then((({x:e,y:t,placement:o})=>({tooltipStyles:{left:`${e}px`,top:`${t}px`},tooltipArrowStyles:{},place:o})));var u};var ve={tooltip:"core-styles-module_tooltip__3vRRp",fixed:"core-styles-module_fixed__pcSol",arrow:"core-styles-module_arrow__cvMwQ",noArrow:"core-styles-module_noArrow__xock6",clickable:"core-styles-module_clickable__ZuTTB",show:"core-styles-module_show__Nt9eE",closing:"core-styles-module_closing__sGnxF"},he={tooltip:"styles-module_tooltip__mnnfp",arrow:"styles-module_arrow__K0L3T",dark:"styles-module_dark__xNqje",light:"styles-module_light__Z6W-X",success:"styles-module_success__A2AKt",warning:"styles-module_warning__SCK0X",error:"styles-module_error__JvumD",info:"styles-module_info__BWdHW"};const we=({forwardRef:e,id:t,className:o,classNameArrow:i,variant:s="dark",anchorId:a,anchorSelect:u,place:d="top",offset:f=10,events:p=["hover"],openOnClick:m=!1,positionStrategy:y="absolute",middlewares:v,wrapper:h,delayShow:w=0,delayHide:g=0,float:b=!1,hidden:x=!1,noArrow:_=!1,clickable:E=!1,closeOnEsc:S=!1,closeOnScroll:T=!1,closeOnResize:A=!1,openEvents:R,closeEvents:O,globalCloseEvents:L,imperativeModeOnly:C,style:N,position:D,afterShow:$,afterHide:B,content:j,contentWrapperRef:H,isOpen:P,setIsOpen:W,activeAnchor:z,setActiveAnchor:I,border:M,opacity:V,arrowColor:K,role:X="tooltip"})=>{var Z;const G=(0,n.useRef)(null),U=(0,n.useRef)(null),J=(0,n.useRef)(null),Q=(0,n.useRef)(null),ee=(0,n.useRef)(null),[te,oe]=(0,n.useState)(d),[ne,re]=(0,n.useState)({}),[ie,ce]=(0,n.useState)({}),[ae,ue]=(0,n.useState)(!1),[pe,we]=(0,n.useState)(!1),[ge,be]=(0,n.useState)(null),xe=(0,n.useRef)(!1),_e=(0,n.useRef)(null),{anchorRefs:Ee,setActiveAnchor:Se}=de(t),Te=(0,n.useRef)(!1),[Ae,Re]=(0,n.useState)([]),ke=(0,n.useRef)(!1),Oe=m||p.includes("click"),Le=Oe||(null==R?void 0:R.click)||(null==R?void 0:R.dblclick)||(null==R?void 0:R.mousedown),Ce=R?{...R}:{mouseenter:!0,focus:!0,click:!1,dblclick:!1,mousedown:!1};!R&&Oe&&Object.assign(Ce,{mouseenter:!1,focus:!1,click:!0});const Ne=O?{...O}:{mouseleave:!0,blur:!0,click:!1,dblclick:!1,mouseup:!1};!O&&Oe&&Object.assign(Ne,{mouseleave:!1,blur:!1});const De=L?{...L}:{escape:S||!1,scroll:T||!1,resize:A||!1,clickOutsideAnchor:Le||!1};C&&(Object.assign(Ce,{mouseenter:!1,focus:!1,click:!1,dblclick:!1,mousedown:!1}),Object.assign(Ne,{mouseleave:!1,blur:!1,click:!1,dblclick:!1,mouseup:!1}),Object.assign(De,{escape:!1,scroll:!1,resize:!1,clickOutsideAnchor:!1})),fe((()=>(ke.current=!0,()=>{ke.current=!1})),[]);const $e=e=>{ke.current&&(e&&we(!0),setTimeout((()=>{ke.current&&(null==W||W(e),void 0===P&&ue(e))}),10))};(0,n.useEffect)((()=>{if(void 0===P)return()=>null;P&&we(!0);const e=setTimeout((()=>{ue(P)}),10);return()=>{clearTimeout(e)}}),[P]),(0,n.useEffect)((()=>{if(ae!==xe.current)if(ee.current&&clearTimeout(ee.current),xe.current=ae,ae)null==$||$();else{const e=(e=>{const t=getComputedStyle(document.body).getPropertyValue("--rt-transition-show-delay").match(/^([\d.]+)(m?s?)$/);if(!t)return 0;const[,o,n]=t;return"s"!==n&&"ms"!==n?0:Number(o)*("ms"===n?1:1e3)})();ee.current=setTimeout((()=>{we(!1),be(null),null==B||B()}),e+25)}}),[ae]);const Be=(e=w)=>{J.current&&clearTimeout(J.current),J.current=setTimeout((()=>{$e(!0)}),e)},je=(e=g)=>{Q.current&&clearTimeout(Q.current),Q.current=setTimeout((()=>{Te.current||$e(!1)}),e)},He=e=>{var t;if(!e)return;const o=null!==(t=e.currentTarget)&&void 0!==t?t:e.target;if(!(null==o?void 0:o.isConnected))return I(null),void Se({current:null});w?Be():$e(!0),I(o),Se({current:o}),Q.current&&clearTimeout(Q.current)},Pe=()=>{E?je(g||100):g?je():$e(!1),J.current&&clearTimeout(J.current)},We=({x:e,y:t})=>{var o;const n={getBoundingClientRect:()=>({x:e,y:t,width:0,height:0,top:t,left:e,right:e,bottom:t})};ye({place:null!==(o=null==ge?void 0:ge.place)&&void 0!==o?o:d,offset:f,elementReference:n,tooltipReference:G.current,tooltipArrowReference:U.current,strategy:y,middlewares:v,border:M}).then((e=>{Object.keys(e.tooltipStyles).length&&re(e.tooltipStyles),Object.keys(e.tooltipArrowStyles).length&&ce(e.tooltipArrowStyles),oe(e.place)}))},ze=e=>{if(!e)return;const t=e,o={x:t.clientX,y:t.clientY};We(o),_e.current=o},Ie=e=>{var t;if(!ae)return;const o=e.target;(null===(t=G.current)||void 0===t?void 0:t.contains(o))||[document.querySelector(`[id='${a}']`),...Ae].some((e=>null==e?void 0:e.contains(o)))||($e(!1),J.current&&clearTimeout(J.current))},Fe=se(He,50,!0),Me=se(Pe,50,!0),qe=(0,n.useCallback)((()=>{var e,t;const o=null!==(e=null==ge?void 0:ge.position)&&void 0!==e?e:D;o?We(o):b?_e.current&&We(_e.current):(null==z?void 0:z.isConnected)&&ye({place:null!==(t=null==ge?void 0:ge.place)&&void 0!==t?t:d,offset:f,elementReference:z,tooltipReference:G.current,tooltipArrowReference:U.current,strategy:y,middlewares:v,border:M}).then((e=>{ke.current&&(Object.keys(e.tooltipStyles).length&&re(e.tooltipStyles),Object.keys(e.tooltipArrowStyles).length&&ce(e.tooltipArrowStyles),oe(e.place))}))}),[ae,z,j,N,d,null==ge?void 0:ge.place,f,y,D,null==ge?void 0:ge.position,b]);(0,n.useEffect)((()=>{var e,t;const o=new Set(Ee);Ae.forEach((e=>{o.add({current:e})}));const n=document.querySelector(`[id='${a}']`);n&&o.add({current:n});const i=()=>{$e(!1)},s=me(z),u=me(G.current);De.scroll&&(window.addEventListener("scroll",i),null==s||s.addEventListener("scroll",i),null==u||u.addEventListener("scroll",i));let d=null;De.resize?window.addEventListener("resize",i):z&&G.current&&(d=function(e,t,o,n){void 0===n&&(n={});const{ancestorScroll:i=!0,ancestorResize:s=!0,elementResize:a="function"==typeof ResizeObserver,layoutShift:u="function"==typeof IntersectionObserver,animationFrame:d=!1}=n,f=q(e),p=i||s?[...f?F(f):[],...F(t)]:[];p.forEach((e=>{i&&e.addEventListener("scroll",o,{passive:!0}),s&&e.addEventListener("resize",o)}));const m=f&&u?function(e,t){let o,n=null;const i=k(e);function s(){clearTimeout(o),n&&n.disconnect(),n=null}return function a(u,d){void 0===u&&(u=!1),void 0===d&&(d=1),s();const{left:f,top:p,width:m,height:y}=e.getBoundingClientRect();if(u||t(),!m||!y)return;const v={rootMargin:-c(p)+"px "+-c(i.clientWidth-(f+m))+"px "+-c(i.clientHeight-(p+y))+"px "+-c(f)+"px",threshold:l(0,r(1,d))||1};let h=!0;function w(e){const t=e[0].intersectionRatio;if(t!==d){if(!h)return a();t?a(!1,t):o=setTimeout((()=>{a(!1,1e-7)}),100)}h=!1}try{n=new IntersectionObserver(w,{...v,root:i.ownerDocument})}catch(e){n=new IntersectionObserver(w,v)}n.observe(e)}(!0),s}(f,o):null;let y,v=-1,h=null;a&&(h=new ResizeObserver((e=>{let[n]=e;n&&n.target===f&&h&&(h.unobserve(t),cancelAnimationFrame(v),v=requestAnimationFrame((()=>{h&&h.observe(t)}))),o()})),f&&!d&&h.observe(f),h.observe(t));let w=d?Y(e):null;return d&&function t(){const n=Y(e);!w||n.x===w.x&&n.y===w.y&&n.width===w.width&&n.height===w.height||o(),w=n,y=requestAnimationFrame(t)}(),o(),()=>{p.forEach((e=>{i&&e.removeEventListener("scroll",o),s&&e.removeEventListener("resize",o)})),m&&m(),h&&h.disconnect(),h=null,d&&cancelAnimationFrame(y)}}(z,G.current,qe,{ancestorResize:!0,elementResize:!0,layoutShift:!0}));const f=e=>{"Escape"===e.key&&$e(!1)};De.escape&&window.addEventListener("keydown",f),De.clickOutsideAnchor&&window.addEventListener("click",Ie);const p=[],m=e=>{ae&&(null==e?void 0:e.target)===z||He(e)},y=e=>{ae&&(null==e?void 0:e.target)===z&&Pe()},v=["mouseenter","mouseleave","focus","blur"],h=["click","dblclick","mousedown","mouseup"];Object.entries(Ce).forEach((([e,t])=>{t&&(v.includes(e)?p.push({event:e,listener:Fe}):h.includes(e)&&p.push({event:e,listener:m}))})),Object.entries(Ne).forEach((([e,t])=>{t&&(v.includes(e)?p.push({event:e,listener:Me}):h.includes(e)&&p.push({event:e,listener:y}))})),b&&p.push({event:"mousemove",listener:ze});const w=()=>{Te.current=!0},g=()=>{Te.current=!1,Pe()};return E&&!Le&&(null===(e=G.current)||void 0===e||e.addEventListener("mouseenter",w),null===(t=G.current)||void 0===t||t.addEventListener("mouseleave",g)),p.forEach((({event:e,listener:t})=>{o.forEach((o=>{var n;null===(n=o.current)||void 0===n||n.addEventListener(e,t)}))})),()=>{var e,t;De.scroll&&(window.removeEventListener("scroll",i),null==s||s.removeEventListener("scroll",i),null==u||u.removeEventListener("scroll",i)),De.resize?window.removeEventListener("resize",i):null==d||d(),De.clickOutsideAnchor&&window.removeEventListener("click",Ie),De.escape&&window.removeEventListener("keydown",f),E&&!Le&&(null===(e=G.current)||void 0===e||e.removeEventListener("mouseenter",w),null===(t=G.current)||void 0===t||t.removeEventListener("mouseleave",g)),p.forEach((({event:e,listener:t})=>{o.forEach((o=>{var n;null===(n=o.current)||void 0===n||n.removeEventListener(e,t)}))}))}}),[z,qe,pe,Ee,Ae,R,O,L,Oe]),(0,n.useEffect)((()=>{var e,o;let n=null!==(o=null!==(e=null==ge?void 0:ge.anchorSelect)&&void 0!==e?e:u)&&void 0!==o?o:"";!n&&t&&(n=`[data-tooltip-id='${t}']`);const r=new MutationObserver((e=>{const o=[],r=[];e.forEach((e=>{if("attributes"===e.type&&"data-tooltip-id"===e.attributeName&&e.target.getAttribute("data-tooltip-id")===t&&o.push(e.target),"childList"===e.type){if(z){const t=[...e.removedNodes].filter((e=>1===e.nodeType));if(n)try{r.push(...t.filter((e=>e.matches(n)))),r.push(...t.flatMap((e=>[...e.querySelectorAll(n)])))}catch(e){}t.some((e=>{var t;return!!(null===(t=null==e?void 0:e.contains)||void 0===t?void 0:t.call(e,z))&&(we(!1),$e(!1),I(null),J.current&&clearTimeout(J.current),Q.current&&clearTimeout(Q.current),!0)}))}if(n)try{const t=[...e.addedNodes].filter((e=>1===e.nodeType));o.push(...t.filter((e=>e.matches(n)))),o.push(...t.flatMap((e=>[...e.querySelectorAll(n)])))}catch(e){}}})),(o.length||r.length)&&Re((e=>[...e.filter((e=>!r.includes(e))),...o]))}));return r.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-tooltip-id"]}),()=>{r.disconnect()}}),[t,u,null==ge?void 0:ge.anchorSelect,z]),(0,n.useEffect)((()=>{qe()}),[qe]),(0,n.useEffect)((()=>{if(!(null==H?void 0:H.current))return()=>null;const e=new ResizeObserver((()=>{setTimeout((()=>qe()))}));return e.observe(H.current),()=>{e.disconnect()}}),[j,null==H?void 0:H.current]),(0,n.useEffect)((()=>{var e;const t=document.querySelector(`[id='${a}']`),o=[...Ae,t];z&&o.includes(z)||I(null!==(e=Ae[0])&&void 0!==e?e:t)}),[a,Ae,z]),(0,n.useEffect)((()=>()=>{J.current&&clearTimeout(J.current),Q.current&&clearTimeout(Q.current)}),[]),(0,n.useEffect)((()=>{var e;let o=null!==(e=null==ge?void 0:ge.anchorSelect)&&void 0!==e?e:u;if(!o&&t&&(o=`[data-tooltip-id='${t}']`),o)try{const e=Array.from(document.querySelectorAll(o));Re(e)}catch(e){Re([])}}),[t,u,null==ge?void 0:ge.anchorSelect]);const Ve=null!==(Z=null==ge?void 0:ge.content)&&void 0!==Z?Z:j,Ke=ae&&Object.keys(ne).length>0;return(0,n.useImperativeHandle)(e,(()=>({open:e=>{if(null==e?void 0:e.anchorSelect)try{document.querySelector(e.anchorSelect)}catch(t){return void console.warn(`[react-tooltip] "${e.anchorSelect}" is not a valid CSS selector`)}be(null!=e?e:null),(null==e?void 0:e.delay)?Be(e.delay):$e(!0)},close:e=>{(null==e?void 0:e.delay)?je(e.delay):$e(!1)},activeAnchor:z,place:te,isOpen:Boolean(pe&&!x&&Ve&&Ke)}))),pe&&!x&&Ve?n.createElement(h,{id:t,role:X,className:le("react-tooltip",ve.tooltip,he.tooltip,he[s],o,`react-tooltip__place-${te}`,ve[Ke?"show":"closing"],Ke?"react-tooltip__show":"react-tooltip__closing","fixed"===y&&ve.fixed,E&&ve.clickable),onTransitionEnd:e=>{ee.current&&clearTimeout(ee.current),ae||"opacity"!==e.propertyName||(we(!1),be(null),null==B||B())},style:{...N,...ne,opacity:void 0!==V&&Ke?V:void 0},ref:G},Ve,n.createElement(h,{className:le("react-tooltip-arrow",ve.arrow,he.arrow,i,_&&ve.noArrow),style:{...ie,background:K?`linear-gradient(to right bottom, transparent 50%, ${K} 50%)`:void 0},ref:U})):null},ge=({content:e})=>n.createElement("span",{dangerouslySetInnerHTML:{__html:e}}),be=(e,t)=>!("CSS"in window&&"supports"in window.CSS)||window.CSS.supports(e,t),xe=n.forwardRef((({id:e,anchorId:t,anchorSelect:o,content:r,html:l,render:i,className:c,classNameArrow:s,variant:a="dark",place:u="top",offset:d=10,wrapper:f="div",children:p=null,events:m=["hover"],openOnClick:y=!1,positionStrategy:v="absolute",middlewares:h,delayShow:w=0,delayHide:g=0,float:b=!1,hidden:x=!1,noArrow:_=!1,clickable:E=!1,closeOnEsc:S=!1,closeOnScroll:T=!1,closeOnResize:A=!1,openEvents:R,closeEvents:k,globalCloseEvents:O,imperativeModeOnly:L=!1,style:C,position:N,isOpen:D,disableStyleInjection:$=!1,border:B,opacity:j,arrowColor:H,setIsOpen:P,afterShow:W,afterHide:z,role:I="tooltip"},F)=>{const[M,q]=(0,n.useState)(r),[V,K]=(0,n.useState)(l),[X,Y]=(0,n.useState)(u),[Z,G]=(0,n.useState)(a),[U,J]=(0,n.useState)(d),[Q,ee]=(0,n.useState)(w),[te,oe]=(0,n.useState)(g),[ne,re]=(0,n.useState)(b),[ie,ce]=(0,n.useState)(x),[se,ae]=(0,n.useState)(f),[ue,fe]=(0,n.useState)(m),[pe,me]=(0,n.useState)(v),[ye,ve]=(0,n.useState)(null),[he,xe]=(0,n.useState)(null),_e=(0,n.useRef)($),{anchorRefs:Ee,activeAnchor:Se}=de(e),Te=e=>null==e?void 0:e.getAttributeNames().reduce(((t,o)=>{var n;return o.startsWith("data-tooltip-")&&(t[o.replace(/^data-tooltip-/,"")]=null!==(n=null==e?void 0:e.getAttribute(o))&&void 0!==n?n:null),t}),{}),Ae=e=>{const t={place:e=>{var t;Y(null!==(t=e)&&void 0!==t?t:u)},content:e=>{q(null!=e?e:r)},html:e=>{K(null!=e?e:l)},variant:e=>{var t;G(null!==(t=e)&&void 0!==t?t:a)},offset:e=>{J(null===e?d:Number(e))},wrapper:e=>{var t;ae(null!==(t=e)&&void 0!==t?t:f)},events:e=>{const t=null==e?void 0:e.split(" ");fe(null!=t?t:m)},"position-strategy":e=>{var t;me(null!==(t=e)&&void 0!==t?t:v)},"delay-show":e=>{ee(null===e?w:Number(e))},"delay-hide":e=>{oe(null===e?g:Number(e))},float:e=>{re(null===e?b:"true"===e)},hidden:e=>{ce(null===e?x:"true"===e)},"class-name":e=>{ve(e)}};Object.values(t).forEach((e=>e(null))),Object.entries(e).forEach((([e,o])=>{var n;null===(n=t[e])||void 0===n||n.call(t,o)}))};(0,n.useEffect)((()=>{q(r)}),[r]),(0,n.useEffect)((()=>{K(l)}),[l]),(0,n.useEffect)((()=>{Y(u)}),[u]),(0,n.useEffect)((()=>{G(a)}),[a]),(0,n.useEffect)((()=>{J(d)}),[d]),(0,n.useEffect)((()=>{ee(w)}),[w]),(0,n.useEffect)((()=>{oe(g)}),[g]),(0,n.useEffect)((()=>{re(b)}),[b]),(0,n.useEffect)((()=>{ce(x)}),[x]),(0,n.useEffect)((()=>{me(v)}),[v]),(0,n.useEffect)((()=>{_e.current!==$&&console.warn("[react-tooltip] Do not change `disableStyleInjection` dynamically.")}),[$]),(0,n.useEffect)((()=>{"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent("react-tooltip-inject-styles",{detail:{disableCore:"core"===$,disableBase:$}}))}),[]),(0,n.useEffect)((()=>{var n;const r=new Set(Ee);let l=o;if(!l&&e&&(l=`[data-tooltip-id='${e}']`),l)try{document.querySelectorAll(l).forEach((e=>{r.add({current:e})}))}catch(n){console.warn(`[react-tooltip] "${l}" is not a valid CSS selector`)}const i=document.querySelector(`[id='${t}']`);if(i&&r.add({current:i}),!r.size)return()=>null;const c=null!==(n=null!=he?he:i)&&void 0!==n?n:Se.current,s=new MutationObserver((e=>{e.forEach((e=>{var t;if(!c||"attributes"!==e.type||!(null===(t=e.attributeName)||void 0===t?void 0:t.startsWith("data-tooltip-")))return;const o=Te(c);Ae(o)}))})),a={attributes:!0,childList:!1,subtree:!1};if(c){const e=Te(c);Ae(e),s.observe(c,a)}return()=>{s.disconnect()}}),[Ee,Se,he,t,o]),(0,n.useEffect)((()=>{(null==C?void 0:C.border)&&console.warn("[react-tooltip] Do not set `style.border`. Use `border` prop instead."),B&&!be("border",`${B}`)&&console.warn(`[react-tooltip] "${B}" is not a valid \`border\`.`),(null==C?void 0:C.opacity)&&console.warn("[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead."),j&&!be("opacity",`${j}`)&&console.warn(`[react-tooltip] "${j}" is not a valid \`opacity\`.`)}),[]);let Re=p;const ke=(0,n.useRef)(null);if(i){const e=i({content:null!=M?M:null,activeAnchor:he});Re=e?n.createElement("div",{ref:ke,className:"react-tooltip-content-wrapper"},e):null}else M&&(Re=M);V&&(Re=n.createElement(ge,{content:V}));const Oe={forwardRef:F,id:e,anchorId:t,anchorSelect:o,className:le(c,ye),classNameArrow:s,content:Re,contentWrapperRef:ke,place:X,variant:Z,offset:U,wrapper:se,events:ue,openOnClick:y,positionStrategy:pe,middlewares:h,delayShow:Q,delayHide:te,float:ne,hidden:ie,noArrow:_,clickable:E,closeOnEsc:S,closeOnScroll:T,closeOnResize:A,openEvents:R,closeEvents:k,globalCloseEvents:O,imperativeModeOnly:L,style:C,position:N,isOpen:D,border:B,opacity:j,arrowColor:H,setIsOpen:P,afterShow:W,afterHide:z,activeAnchor:he,setActiveAnchor:e=>xe(e),role:I};return n.createElement(we,{...Oe})}));"undefined"!=typeof window&&window.addEventListener("react-tooltip-inject-styles",(e=>{e.detail.disableCore||ce({css:":root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9;--rt-transition-show-delay:0.15s;--rt-transition-closing-delay:0.15s}.core-styles-module_tooltip__3vRRp{position:absolute;top:0;left:0;pointer-events:none;opacity:0;will-change:opacity}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{position:absolute;background:inherit}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);transition:opacity var(--rt-transition-show-delay)ease-out}.core-styles-module_closing__sGnxF{opacity:0;transition:opacity var(--rt-transition-closing-delay)ease-in}",type:"core"}),e.detail.disableBase||ce({css:"\n.styles-module_tooltip__mnnfp{padding:8px 16px;border-radius:3px;font-size:90%;width:max-content}.styles-module_arrow__K0L3T{width:8px;height:8px}[class*='react-tooltip__place-top']>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*='react-tooltip__place-right']>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*='react-tooltip__place-bottom']>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*='react-tooltip__place-left']>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}",type:"base"})}))}}]);PK�������!� O������0��modal/build/index.5c0c53e2db8c73c5db9d.asset.phpnu�[��������<?php return array('dependencies' => array('react', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => '5c0c53e2db8c73c5db9d'); PK�������!�jYC��C����modal/build/433.cssnu�[��������:root{--rsp-spacing-xxs:5px;--rsp-spacing-xs:10px;--rsp-spacing-s:15px;--rsp-spacing-m:20px;--rsp-spacing-l:25px;--rsp-spacing-xl:30px;--rsp-grid-margin:var(--rsp-spacing-s);--rsp-grid-gap:var(--rsp-spacing-m);--rsp-border-radius:12px;--rsp-border-radius-s:8px;--rsp-border-radius-xs:3px;--rsp-border:1px solid var(--rsp-border-color);--rsp-box-shadow:rgba(0,0,0,.1) 0px 4px 6px -1px,rgba(0,0,0,.06) 0px 2px 4px -1px;--rsp-box-shadow-dark:rgba(0,0,0,.2) 0px 4px 6px -1px,rgba(0,0,0,.12) 1px 0px 4px 1px;--rsp-border-color:#dfdfdf;--rsp-black:#333;--rsp-white:#fff;--rsp-yellow:#fbc43e;--rsp-blue:#009fff;--rsp-dark-yellow:#e6a800;--rsp-dark-blue:#1e73be;--rsp-green:#2e8a37;--rsp-red:#d7263d;--rsp-dark-red:#9b0212;--rsp-pink:#e35899;--rsp-wp-blue:#007cba;--rsp-yellow-faded:#fdf4df;--rsp-blue-faded:#ecf8fe;--rsp-dark-blue-faded:#ebf2f9;--rsp-green-faded:#ecf4ed;--rsp-red-faded:#fbebed;--rsp-pink-faded:#fceff5;--rsp-wp-blue-faded:#c6e0ef;--rsp-background-block-color:var(--rsp-white);--rsp-background-color:#f0f0f1;--rsp-input-background-color:#fff;--rsp-input-text-color:var(--rsp-text-color);--rsp-input-border-color:var(--rsp-grey-400);--rsp-text-color:rgba(26,26,26,.9);--rsp-text-color-invert:hsla(0,0%,100%,.9);--rsp-text-color-white:hsla(0,0%,100%,.9);--rsp-text-color-light:rgba(69,69,82,.9);--rsp-text-color-hover:var(--rsp-green);--rsp-grey-100:#fafafa;--rsp-grey-200:#f7f7f7;--rsp-grey-300:#ededed;--rsp-grey-400:#c6c6c6;--rsp-grey-500:#737373;--rsp-grey-600:#696969;--rsp-color-success:var(--rsp-green);--rsp-color-error:var(--rsp-red);--rsp-color-warning:var(--rsp-yellow);--rsp-color-open:var(--rsp-yellow);--rsp-color-disabled:var(--rsp-grey-300);--rsp-fs-100:0.6875rem;--rsp-fs-200:0.75rem;--rsp-fs-300:0.8125rem;--rsp-fs-400:0.875rem;--rsp-fs-500:1rem;--rsp-fs-600:1.125rem;--rsp-fs-700:1.25rem;--rsp-fs-800:1.5rem;--rsp-fs-850:2.8rem;--rsp-fs-900:3.5rem}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.rsssl-modal{border-radius:var(--rsp-border-radius) var(--rsp-border-radius);border-top:1px solid var(--rsp-grey-300);box-shadow:var(--rsp-box-shadow);margin:auto;max-height:calc(100% - 120px);padding:var(--rsp-spacing-m) var(--rsp-spacing-l);width:700px}@media(max-width:768px){.rsssl-modal{width:100%}}.rsssl-modal .components-modal__content{margin-top:45px;min-height:250px;padding:0}.rsssl-modal .components-modal__content>div:nth-child(2){display:flex;flex-direction:column;height:100%}.rsssl-modal .rsssl-modal-body{flex-grow:1;padding:12px 8px 80px}@media(max-width:768px){.rsssl-modal .rsssl-modal-body{padding:12px 8px 180px}}.rsssl-modal .rsssl-modal-body p{margin-top:0}.rsssl-modal .rsssl-modal-body ul{-moz-column-count:2;column-count:2;-moz-column-gap:20px;column-gap:20px;margin-bottom:0}.rsssl-modal .rsssl-modal-body ul li{display:flex;padding-bottom:5px}.rsssl-modal .rsssl-modal-body ul li .rsssl-icon{margin-right:10px;margin-top:2px}.rsssl-modal .rsssl-modal-footer{align-items:center;background-color:var(--rsp-grey-200);border-top:1px solid var(--rsp-grey-400);bottom:0;display:flex;justify-content:space-between;left:0;padding:20px 32px;position:absolute;right:0}.rsssl-modal .rsssl-modal-footer img{width:150px}@media(max-width:768px){.rsssl-modal .rsssl-modal-footer .rsssl-modal-footer-image{display:none}.rsssl-modal .rsssl-modal-footer .rsssl-modal-footer-buttons{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%}.rsssl-modal .rsssl-modal-footer .rsssl-modal-footer-buttons button{margin:0;width:100%}}.rsssl-modal .rsssl-modal-footer button+a,.rsssl-modal .rsssl-modal-footer button+button{margin-left:10px}.rsssl-modal .rsssl-modal-footer button:not(.is-primary){background-color:transparent;border:1px solid var(--wp-admin-theme-color,#3858e9);color:var(--wp-admin-theme-color,#3858e9)}.rsssl-modal .rsssl-modal-footer button.rsssl-modal-warning{background-color:transparent;border:1px solid var(--rsp-red);color:var(--rsp-red)} PK�������!�vjo؂��؂��'��modal/build/357.8ee6cb66c28a7f976884.jsnu�[��������(globalThis.webpackChunkreally_simple_ssl_modal=globalThis.webpackChunkreally_simple_ssl_modal||[]).push([[357],{914:(e,t)=>{var o;!function(){"use strict";var n={}.hasOwnProperty;function r(){for(var e=[],t=0;t<arguments.length;t++){var o=arguments[t];if(o){var l=typeof o;if("string"===l||"number"===l)e.push(o);else if(Array.isArray(o)){if(o.length){var i=r.apply(null,o);i&&e.push(i)}}else if("object"===l){if(o.toString!==Object.prototype.toString&&!o.toString.toString().includes("[native code]")){e.push(o.toString());continue}for(var s in o)n.call(o,s)&&o[s]&&e.push(s)}}}return e.join(" ")}e.exports?(r.default=r,e.exports=r):void 0===(o=function(){return r}.apply(t,[]))||(e.exports=o)}()},357:(e,t,o)=>{"use strict";o.d(t,{u:()=>be});var n=o(196);const r=Math.min,l=Math.max,i=Math.round,s=Math.floor,c=e=>({x:e,y:e}),a={left:"right",right:"left",bottom:"top",top:"bottom"},u={start:"end",end:"start"};function d(e,t,o){return l(e,r(t,o))}function f(e,t){return"function"==typeof e?e(t):e}function p(e){return e.split("-")[0]}function m(e){return e.split("-")[1]}function y(e){return"x"===e?"y":"x"}function h(e){return"y"===e?"height":"width"}function v(e){return["top","bottom"].includes(p(e))?"y":"x"}function w(e){return y(v(e))}function g(e){return e.replace(/start|end/g,(e=>u[e]))}function b(e){return e.replace(/left|right|bottom|top/g,(e=>a[e]))}function x(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}function _(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function E(e,t,o){let{reference:n,floating:r}=e;const l=v(t),i=w(t),s=h(i),c=p(t),a="y"===l,u=n.x+n.width/2-r.width/2,d=n.y+n.height/2-r.height/2,f=n[s]/2-r[s]/2;let y;switch(c){case"top":y={x:u,y:n.y-r.height};break;case"bottom":y={x:u,y:n.y+n.height};break;case"right":y={x:n.x+n.width,y:d};break;case"left":y={x:n.x-r.width,y:d};break;default:y={x:n.x,y:n.y}}switch(m(t)){case"start":y[i]-=f*(o&&a?-1:1);break;case"end":y[i]+=f*(o&&a?-1:1)}return y}async function S(e,t){var o;void 0===t&&(t={});const{x:n,y:r,platform:l,rects:i,elements:s,strategy:c}=e,{boundary:a="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:p=!1,padding:m=0}=f(t,e),y=x(m),h=s[p?"floating"===d?"reference":"floating":d],v=_(await l.getClippingRect({element:null==(o=await(null==l.isElement?void 0:l.isElement(h)))||o?h:h.contextElement||await(null==l.getDocumentElement?void 0:l.getDocumentElement(s.floating)),boundary:a,rootBoundary:u,strategy:c})),w="floating"===d?{...i.floating,x:n,y:r}:i.reference,g=await(null==l.getOffsetParent?void 0:l.getOffsetParent(s.floating)),b=await(null==l.isElement?void 0:l.isElement(g))&&await(null==l.getScale?void 0:l.getScale(g))||{x:1,y:1},E=_(l.convertOffsetParentRelativeRectToViewportRelativeRect?await l.convertOffsetParentRelativeRectToViewportRelativeRect({rect:w,offsetParent:g,strategy:c}):w);return{top:(v.top-E.top+y.top)/b.y,bottom:(E.bottom-v.bottom+y.bottom)/b.y,left:(v.left-E.left+y.left)/b.x,right:(E.right-v.right+y.right)/b.x}}const T=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var o,n;const{placement:r,middlewareData:l,rects:i,initialPlacement:s,platform:c,elements:a}=t,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:y,fallbackStrategy:v="bestFit",fallbackAxisSideDirection:x="none",flipAlignment:_=!0,...E}=f(e,t);if(null!=(o=l.arrow)&&o.alignmentOffset)return{};const T=p(r),A=p(s)===s,R=await(null==c.isRTL?void 0:c.isRTL(a.floating)),L=y||(A||!_?[b(s)]:function(e){const t=b(e);return[g(e),t,g(t)]}(s));y||"none"===x||L.push(...function(e,t,o,n){const r=m(e);let l=function(e,t,o){const n=["left","right"],r=["right","left"],l=["top","bottom"],i=["bottom","top"];switch(e){case"top":case"bottom":return o?t?r:n:t?n:r;case"left":case"right":return t?l:i;default:return[]}}(p(e),"start"===o,n);return r&&(l=l.map((e=>e+"-"+r)),t&&(l=l.concat(l.map(g)))),l}(s,_,x,R));const k=[s,...L],O=await S(t,E),C=[];let N=(null==(n=l.flip)?void 0:n.overflows)||[];if(u&&C.push(O[T]),d){const e=function(e,t,o){void 0===o&&(o=!1);const n=m(e),r=w(e),l=h(r);let i="x"===r?n===(o?"end":"start")?"right":"left":"start"===n?"bottom":"top";return t.reference[l]>t.floating[l]&&(i=b(i)),[i,b(i)]}(r,i,R);C.push(O[e[0]],O[e[1]])}if(N=[...N,{placement:r,overflows:C}],!C.every((e=>e<=0))){var D,$;const e=((null==(D=l.flip)?void 0:D.index)||0)+1,t=k[e];if(t)return{data:{index:e,overflows:N},reset:{placement:t}};let o=null==($=N.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:$.placement;if(!o)switch(v){case"bestFit":{var B;const e=null==(B=N.map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:B[0];e&&(o=e);break}case"initialPlacement":o=s}if(r!==o)return{reset:{placement:o}}}return{}}}},A=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){const{x:o,y:n}=t,r=await async function(e,t){const{placement:o,platform:n,elements:r}=e,l=await(null==n.isRTL?void 0:n.isRTL(r.floating)),i=p(o),s=m(o),c="y"===v(o),a=["left","top"].includes(i)?-1:1,u=l&&c?-1:1,d=f(t,e);let{mainAxis:y,crossAxis:h,alignmentAxis:w}="number"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...d};return s&&"number"==typeof w&&(h="end"===s?-1*w:w),c?{x:h*u,y:y*a}:{x:y*a,y:h*u}}(t,e);return{x:o+r.x,y:n+r.y,data:r}}}},R=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:o,y:n,placement:r}=t,{mainAxis:l=!0,crossAxis:i=!1,limiter:s={fn:e=>{let{x:t,y:o}=e;return{x:t,y:o}}},...c}=f(e,t),a={x:o,y:n},u=await S(t,c),m=v(p(r)),h=y(m);let w=a[h],g=a[m];if(l){const e="y"===h?"bottom":"right";w=d(w+u["y"===h?"top":"left"],w,w-u[e])}if(i){const e="y"===m?"bottom":"right";g=d(g+u["y"===m?"top":"left"],g,g-u[e])}const b=s.fn({...t,[h]:w,[m]:g});return{...b,data:{x:b.x-o,y:b.y-n}}}}};function L(e){return C(e)?(e.nodeName||"").toLowerCase():"#document"}function k(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function O(e){var t;return null==(t=(C(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function C(e){return e instanceof Node||e instanceof k(e).Node}function N(e){return e instanceof Element||e instanceof k(e).Element}function D(e){return e instanceof HTMLElement||e instanceof k(e).HTMLElement}function $(e){return"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof k(e).ShadowRoot)}function B(e){const{overflow:t,overflowX:o,overflowY:n,display:r}=z(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+o)&&!["inline","contents"].includes(r)}function j(e){return["table","td","th"].includes(L(e))}function H(e){const t=P(),o=z(e);return"none"!==o.transform||"none"!==o.perspective||!!o.containerType&&"normal"!==o.containerType||!t&&!!o.backdropFilter&&"none"!==o.backdropFilter||!t&&!!o.filter&&"none"!==o.filter||["transform","perspective","filter"].some((e=>(o.willChange||"").includes(e)))||["paint","layout","strict","content"].some((e=>(o.contain||"").includes(e)))}function P(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function W(e){return["html","body","#document"].includes(L(e))}function z(e){return k(e).getComputedStyle(e)}function F(e){return N(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function I(e){if("html"===L(e))return e;const t=e.assignedSlot||e.parentNode||$(e)&&e.host||O(e);return $(t)?t.host:t}function M(e){const t=I(e);return W(t)?e.ownerDocument?e.ownerDocument.body:e.body:D(t)&&B(t)?t:M(t)}function q(e,t,o){var n;void 0===t&&(t=[]),void 0===o&&(o=!0);const r=M(e),l=r===(null==(n=e.ownerDocument)?void 0:n.body),i=k(r);return l?t.concat(i,i.visualViewport||[],B(r)?r:[],i.frameElement&&o?q(i.frameElement):[]):t.concat(r,q(r,[],o))}function V(e){const t=z(e);let o=parseFloat(t.width)||0,n=parseFloat(t.height)||0;const r=D(e),l=r?e.offsetWidth:o,s=r?e.offsetHeight:n,c=i(o)!==l||i(n)!==s;return c&&(o=l,n=s),{width:o,height:n,$:c}}function K(e){return N(e)?e:e.contextElement}function X(e){const t=K(e);if(!D(t))return c(1);const o=t.getBoundingClientRect(),{width:n,height:r,$:l}=V(t);let s=(l?i(o.width):o.width)/n,a=(l?i(o.height):o.height)/r;return s&&Number.isFinite(s)||(s=1),a&&Number.isFinite(a)||(a=1),{x:s,y:a}}const Y=c(0);function Z(e){const t=k(e);return P()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:Y}function G(e,t,o,n){void 0===t&&(t=!1),void 0===o&&(o=!1);const r=e.getBoundingClientRect(),l=K(e);let i=c(1);t&&(n?N(n)&&(i=X(n)):i=X(e));const s=function(e,t,o){return void 0===t&&(t=!1),!(!o||t&&o!==k(e))&&t}(l,o,n)?Z(l):c(0);let a=(r.left+s.x)/i.x,u=(r.top+s.y)/i.y,d=r.width/i.x,f=r.height/i.y;if(l){const e=k(l),t=n&&N(n)?k(n):n;let o=e.frameElement;for(;o&&n&&t!==e;){const e=X(o),t=o.getBoundingClientRect(),n=z(o),r=t.left+(o.clientLeft+parseFloat(n.paddingLeft))*e.x,l=t.top+(o.clientTop+parseFloat(n.paddingTop))*e.y;a*=e.x,u*=e.y,d*=e.x,f*=e.y,a+=r,u+=l,o=k(o).frameElement}}return _({width:d,height:f,x:a,y:u})}function U(e){return G(O(e)).left+F(e).scrollLeft}function J(e,t,o){let n;if("viewport"===t)n=function(e,t){const o=k(e),n=O(e),r=o.visualViewport;let l=n.clientWidth,i=n.clientHeight,s=0,c=0;if(r){l=r.width,i=r.height;const e=P();(!e||e&&"fixed"===t)&&(s=r.offsetLeft,c=r.offsetTop)}return{width:l,height:i,x:s,y:c}}(e,o);else if("document"===t)n=function(e){const t=O(e),o=F(e),n=e.ownerDocument.body,r=l(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),i=l(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight);let s=-o.scrollLeft+U(e);const c=-o.scrollTop;return"rtl"===z(n).direction&&(s+=l(t.clientWidth,n.clientWidth)-r),{width:r,height:i,x:s,y:c}}(O(e));else if(N(t))n=function(e,t){const o=G(e,!0,"fixed"===t),n=o.top+e.clientTop,r=o.left+e.clientLeft,l=D(e)?X(e):c(1);return{width:e.clientWidth*l.x,height:e.clientHeight*l.y,x:r*l.x,y:n*l.y}}(t,o);else{const o=Z(e);n={...t,x:t.x-o.x,y:t.y-o.y}}return _(n)}function Q(e,t){const o=I(e);return!(o===t||!N(o)||W(o))&&("fixed"===z(o).position||Q(o,t))}function ee(e,t,o){const n=D(t),r=O(t),l="fixed"===o,i=G(e,!0,l,t);let s={scrollLeft:0,scrollTop:0};const a=c(0);if(n||!n&&!l)if(("body"!==L(t)||B(r))&&(s=F(t)),n){const e=G(t,!0,l,t);a.x=e.x+t.clientLeft,a.y=e.y+t.clientTop}else r&&(a.x=U(r));return{x:i.left+s.scrollLeft-a.x,y:i.top+s.scrollTop-a.y,width:i.width,height:i.height}}function te(e,t){return D(e)&&"fixed"!==z(e).position?t?t(e):e.offsetParent:null}function oe(e,t){const o=k(e);if(!D(e))return o;let n=te(e,t);for(;n&&j(n)&&"static"===z(n).position;)n=te(n,t);return n&&("html"===L(n)||"body"===L(n)&&"static"===z(n).position&&!H(n))?o:n||function(e){let t=I(e);for(;D(t)&&!W(t);){if(H(t))return t;t=I(t)}return null}(e)||o}const ne={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:t,offsetParent:o,strategy:n}=e;const r=D(o),l=O(o);if(o===l)return t;let i={scrollLeft:0,scrollTop:0},s=c(1);const a=c(0);if((r||!r&&"fixed"!==n)&&(("body"!==L(o)||B(l))&&(i=F(o)),D(o))){const e=G(o);s=X(o),a.x=e.x+o.clientLeft,a.y=e.y+o.clientTop}return{width:t.width*s.x,height:t.height*s.y,x:t.x*s.x-i.scrollLeft*s.x+a.x,y:t.y*s.y-i.scrollTop*s.y+a.y}},getDocumentElement:O,getClippingRect:function(e){let{element:t,boundary:o,rootBoundary:n,strategy:i}=e;const s=[..."clippingAncestors"===o?function(e,t){const o=t.get(e);if(o)return o;let n=q(e,[],!1).filter((e=>N(e)&&"body"!==L(e))),r=null;const l="fixed"===z(e).position;let i=l?I(e):e;for(;N(i)&&!W(i);){const t=z(i),o=H(i);o||"fixed"!==t.position||(r=null),(l?!o&&!r:!o&&"static"===t.position&&r&&["absolute","fixed"].includes(r.position)||B(i)&&!o&&Q(e,i))?n=n.filter((e=>e!==i)):r=t,i=I(i)}return t.set(e,n),n}(t,this._c):[].concat(o),n],c=s[0],a=s.reduce(((e,o)=>{const n=J(t,o,i);return e.top=l(n.top,e.top),e.right=r(n.right,e.right),e.bottom=r(n.bottom,e.bottom),e.left=l(n.left,e.left),e}),J(t,c,i));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},getOffsetParent:oe,getElementRects:async function(e){let{reference:t,floating:o,strategy:n}=e;const r=this.getOffsetParent||oe,l=this.getDimensions;return{reference:ee(t,await r(o),n),floating:{x:0,y:0,...await l(o)}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){return V(e)},getScale:X,isElement:N,isRTL:function(e){return"rtl"===z(e).direction}};const re=(e,t,o)=>{const n=new Map,r={platform:ne,...o},l={...r.platform,_c:n};return(async(e,t,o)=>{const{placement:n="bottom",strategy:r="absolute",middleware:l=[],platform:i}=o,s=l.filter(Boolean),c=await(null==i.isRTL?void 0:i.isRTL(t));let a=await i.getElementRects({reference:e,floating:t,strategy:r}),{x:u,y:d}=E(a,n,c),f=n,p={},m=0;for(let o=0;o<s.length;o++){const{name:l,fn:y}=s[o],{x:h,y:v,data:w,reset:g}=await y({x:u,y:d,initialPlacement:n,placement:f,strategy:r,middlewareData:p,rects:a,platform:i,elements:{reference:e,floating:t}});u=null!=h?h:u,d=null!=v?v:d,p={...p,[l]:{...p[l],...w}},g&&m<=50&&(m++,"object"==typeof g&&(g.placement&&(f=g.placement),g.rects&&(a=!0===g.rects?await i.getElementRects({reference:e,floating:t,strategy:r}):g.rects),({x:u,y:d}=E(a,f,c))),o=-1)}return{x:u,y:d,placement:f,strategy:r,middlewareData:p}})(e,t,{...r,platform:l})};var le=o(914);const ie={core:!1,base:!1};function se({css:e,id:t="react-tooltip-base-styles",type:o="base",ref:n}){var r,l;if(!e||"undefined"==typeof document||ie[o])return;if("core"===o&&"undefined"!=typeof process&&(null===(r=null===process||void 0===process?void 0:process.env)||void 0===r?void 0:r.REACT_TOOLTIP_DISABLE_CORE_STYLES))return;if("base"!==o&&"undefined"!=typeof process&&(null===(l=null===process||void 0===process?void 0:process.env)||void 0===l?void 0:l.REACT_TOOLTIP_DISABLE_BASE_STYLES))return;"core"===o&&(t="react-tooltip-core-styles"),n||(n={});const{insertAt:i}=n;if(document.getElementById(t))return void console.warn(`[react-tooltip] Element with id '${t}' already exists. Call \`removeStyle()\` first`);const s=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.id=t,c.type="text/css","top"===i&&s.firstChild?s.insertBefore(c,s.firstChild):s.appendChild(c),c.styleSheet?c.styleSheet.cssText=e:c.appendChild(document.createTextNode(e)),ie[o]=!0}const ce=(e,t,o)=>{let n=null;return function(...r){const l=()=>{n=null,o||e.apply(this,r)};o&&!n&&(e.apply(this,r),n=setTimeout(l,t)),o||(n&&clearTimeout(n),n=setTimeout(l,t))}},ae={anchorRefs:new Set,activeAnchor:{current:null},attach:()=>{},detach:()=>{},setActiveAnchor:()=>{}},ue=(0,n.createContext)({getTooltipData:()=>ae});function de(e="DEFAULT_TOOLTIP_ID"){return(0,n.useContext)(ue).getTooltipData(e)}const fe="undefined"!=typeof window?n.useLayoutEffect:n.useEffect,pe=e=>{if(!(e instanceof HTMLElement||e instanceof SVGElement))return!1;const t=getComputedStyle(e);return["overflow","overflow-x","overflow-y"].some((e=>{const o=t.getPropertyValue(e);return"auto"===o||"scroll"===o}))},me=e=>{if(!e)return null;let t=e.parentElement;for(;t;){if(pe(t))return t;t=t.parentElement}return document.scrollingElement||document.documentElement},ye=async({elementReference:e=null,tooltipReference:t=null,tooltipArrowReference:o=null,place:n="top",offset:l=10,strategy:i="absolute",middlewares:s=[A(Number(l)),T(),R({padding:5})],border:c})=>{if(!e)return{tooltipStyles:{},tooltipArrowStyles:{},place:n};if(null===t)return{tooltipStyles:{},tooltipArrowStyles:{},place:n};const a=s;return o?(a.push({name:"arrow",options:u={element:o,padding:5},async fn(e){const{x:t,y:o,placement:n,rects:l,platform:i,elements:s,middlewareData:c}=e,{element:a,padding:p=0}=f(u,e)||{};if(null==a)return{};const y=x(p),v={x:t,y:o},g=w(n),b=h(g),_=await i.getDimensions(a),E="y"===g,S=E?"top":"left",T=E?"bottom":"right",A=E?"clientHeight":"clientWidth",R=l.reference[b]+l.reference[g]-v[g]-l.floating[b],L=v[g]-l.reference[g],k=await(null==i.getOffsetParent?void 0:i.getOffsetParent(a));let O=k?k[A]:0;O&&await(null==i.isElement?void 0:i.isElement(k))||(O=s.floating[A]||l.floating[b]);const C=R/2-L/2,N=O/2-_[b]/2-1,D=r(y[S],N),$=r(y[T],N),B=D,j=O-_[b]-$,H=O/2-_[b]/2+C,P=d(B,H,j),W=!c.arrow&&null!=m(n)&&H!=P&&l.reference[b]/2-(H<B?D:$)-_[b]/2<0,z=W?H<B?H-B:H-j:0;return{[g]:v[g]+z,data:{[g]:P,centerOffset:H-P-z,...W&&{alignmentOffset:z}},reset:W}}}),re(e,t,{placement:n,strategy:i,middleware:a}).then((({x:e,y:t,placement:o,middlewareData:n})=>{var r,l;const i={left:`${e}px`,top:`${t}px`,border:c},{x:s,y:a}=null!==(r=n.arrow)&&void 0!==r?r:{x:0,y:0},u=null!==(l={top:"bottom",right:"left",bottom:"top",left:"right"}[o.split("-")[0]])&&void 0!==l?l:"bottom",d=c&&{borderBottom:c,borderRight:c};let f=0;if(c){const e=`${c}`.match(/(\d+)px/);f=(null==e?void 0:e[1])?Number(e[1]):1}return{tooltipStyles:i,tooltipArrowStyles:{left:null!=s?`${s}px`:"",top:null!=a?`${a}px`:"",right:"",bottom:"",...d,[u]:`-${4+f}px`},place:o}}))):re(e,t,{placement:"bottom",strategy:i,middleware:a}).then((({x:e,y:t,placement:o})=>({tooltipStyles:{left:`${e}px`,top:`${t}px`},tooltipArrowStyles:{},place:o})));var u};var he={tooltip:"core-styles-module_tooltip__3vRRp",fixed:"core-styles-module_fixed__pcSol",arrow:"core-styles-module_arrow__cvMwQ",noArrow:"core-styles-module_noArrow__xock6",clickable:"core-styles-module_clickable__ZuTTB",show:"core-styles-module_show__Nt9eE",closing:"core-styles-module_closing__sGnxF"},ve={tooltip:"styles-module_tooltip__mnnfp",arrow:"styles-module_arrow__K0L3T",dark:"styles-module_dark__xNqje",light:"styles-module_light__Z6W-X",success:"styles-module_success__A2AKt",warning:"styles-module_warning__SCK0X",error:"styles-module_error__JvumD",info:"styles-module_info__BWdHW"};const we=({id:e,className:t,classNameArrow:o,variant:i="dark",anchorId:c,anchorSelect:a,place:u="top",offset:d=10,events:f=["hover"],openOnClick:p=!1,positionStrategy:m="absolute",middlewares:y,wrapper:h,delayShow:v=0,delayHide:w=0,float:g=!1,hidden:b=!1,noArrow:x=!1,clickable:_=!1,closeOnEsc:E=!1,closeOnScroll:S=!1,closeOnResize:T=!1,openEvents:A,closeEvents:R,globalCloseEvents:L,style:k,position:C,afterShow:N,afterHide:D,content:$,contentWrapperRef:B,isOpen:j,setIsOpen:H,activeAnchor:P,setActiveAnchor:W,border:z,opacity:F,arrowColor:I})=>{const M=(0,n.useRef)(null),V=(0,n.useRef)(null),X=(0,n.useRef)(null),Y=(0,n.useRef)(null),[Z,U]=(0,n.useState)(u),[J,Q]=(0,n.useState)({}),[ee,te]=(0,n.useState)({}),[oe,ne]=(0,n.useState)(!1),[re,ie]=(0,n.useState)(!1),se=(0,n.useRef)(!1),ae=(0,n.useRef)(null),{anchorRefs:ue,setActiveAnchor:pe}=de(e),we=(0,n.useRef)(!1),[ge,be]=(0,n.useState)([]),xe=(0,n.useRef)(!1),_e=p||f.includes("click"),Ee=_e||(null==A?void 0:A.click)||(null==A?void 0:A.dblclick)||(null==A?void 0:A.mousedown),Se=A?{...A}:{mouseenter:!0,focus:!0,click:!1,dblclick:!1,mousedown:!1};!A&&_e&&Object.assign(Se,{mouseenter:!1,focus:!1,click:!0});const Te=R?{...R}:{mouseleave:!0,blur:!0,click:!1};!R&&_e&&Object.assign(Te,{mouseleave:!1,blur:!1});const Ae=L?{...L}:{escape:E||!1,scroll:S||!1,resize:T||!1,clickOutsideAnchor:Ee||!1};fe((()=>(xe.current=!0,()=>{xe.current=!1})),[]);const Re=e=>{xe.current&&(e&&ie(!0),setTimeout((()=>{xe.current&&(null==H||H(e),void 0===j&&ne(e))}),10))};(0,n.useEffect)((()=>{if(void 0===j)return()=>null;j&&ie(!0);const e=setTimeout((()=>{ne(j)}),10);return()=>{clearTimeout(e)}}),[j]),(0,n.useEffect)((()=>{oe!==se.current&&(se.current=oe,oe?null==N||N():null==D||D())}),[oe]);const Le=(e=w)=>{Y.current&&clearTimeout(Y.current),Y.current=setTimeout((()=>{we.current||Re(!1)}),e)},ke=e=>{var t;if(!e)return;const o=null!==(t=e.currentTarget)&&void 0!==t?t:e.target;if(!(null==o?void 0:o.isConnected))return W(null),void pe({current:null});v?(X.current&&clearTimeout(X.current),X.current=setTimeout((()=>{Re(!0)}),v)):Re(!0),W(o),pe({current:o}),Y.current&&clearTimeout(Y.current)},Oe=()=>{_?Le(w||100):w?Le():Re(!1),X.current&&clearTimeout(X.current)},Ce=({x:e,y:t})=>{ye({place:u,offset:d,elementReference:{getBoundingClientRect:()=>({x:e,y:t,width:0,height:0,top:t,left:e,right:e,bottom:t})},tooltipReference:M.current,tooltipArrowReference:V.current,strategy:m,middlewares:y,border:z}).then((e=>{Object.keys(e.tooltipStyles).length&&Q(e.tooltipStyles),Object.keys(e.tooltipArrowStyles).length&&te(e.tooltipArrowStyles),U(e.place)}))},Ne=e=>{if(!e)return;const t=e,o={x:t.clientX,y:t.clientY};Ce(o),ae.current=o},De=e=>{var t;[document.querySelector(`[id='${c}']`),...ge].some((t=>null==t?void 0:t.contains(e.target)))||(null===(t=M.current)||void 0===t?void 0:t.contains(e.target))||(Re(!1),X.current&&clearTimeout(X.current))},$e=ce(ke,50,!0),Be=ce(Oe,50,!0),je=(0,n.useCallback)((()=>{C?Ce(C):g?ae.current&&Ce(ae.current):(null==P?void 0:P.isConnected)&&ye({place:u,offset:d,elementReference:P,tooltipReference:M.current,tooltipArrowReference:V.current,strategy:m,middlewares:y,border:z}).then((e=>{xe.current&&(Object.keys(e.tooltipStyles).length&&Q(e.tooltipStyles),Object.keys(e.tooltipArrowStyles).length&&te(e.tooltipArrowStyles),U(e.place))}))}),[oe,P,$,k,u,d,m,C,g]);(0,n.useEffect)((()=>{var e,t;const o=new Set(ue);ge.forEach((e=>{o.add({current:e})}));const n=document.querySelector(`[id='${c}']`);n&&o.add({current:n});const i=()=>{Re(!1)},a=me(P),u=me(M.current);Ae.scroll&&(window.addEventListener("scroll",i),null==a||a.addEventListener("scroll",i),null==u||u.addEventListener("scroll",i));let d=null;Ae.resize?window.addEventListener("resize",i):P&&M.current&&(d=function(e,t,o,n){void 0===n&&(n={});const{ancestorScroll:i=!0,ancestorResize:c=!0,elementResize:a="function"==typeof ResizeObserver,layoutShift:u="function"==typeof IntersectionObserver,animationFrame:d=!1}=n,f=K(e),p=i||c?[...f?q(f):[],...q(t)]:[];p.forEach((e=>{i&&e.addEventListener("scroll",o,{passive:!0}),c&&e.addEventListener("resize",o)}));const m=f&&u?function(e,t){let o,n=null;const i=O(e);function c(){clearTimeout(o),n&&n.disconnect(),n=null}return function a(u,d){void 0===u&&(u=!1),void 0===d&&(d=1),c();const{left:f,top:p,width:m,height:y}=e.getBoundingClientRect();if(u||t(),!m||!y)return;const h={rootMargin:-s(p)+"px "+-s(i.clientWidth-(f+m))+"px "+-s(i.clientHeight-(p+y))+"px "+-s(f)+"px",threshold:l(0,r(1,d))||1};let v=!0;function w(e){const t=e[0].intersectionRatio;if(t!==d){if(!v)return a();t?a(!1,t):o=setTimeout((()=>{a(!1,1e-7)}),100)}v=!1}try{n=new IntersectionObserver(w,{...h,root:i.ownerDocument})}catch(e){n=new IntersectionObserver(w,h)}n.observe(e)}(!0),c}(f,o):null;let y,h=-1,v=null;a&&(v=new ResizeObserver((e=>{let[n]=e;n&&n.target===f&&v&&(v.unobserve(t),cancelAnimationFrame(h),h=requestAnimationFrame((()=>{v&&v.observe(t)}))),o()})),f&&!d&&v.observe(f),v.observe(t));let w=d?G(e):null;return d&&function t(){const n=G(e);!w||n.x===w.x&&n.y===w.y&&n.width===w.width&&n.height===w.height||o(),w=n,y=requestAnimationFrame(t)}(),o(),()=>{p.forEach((e=>{i&&e.removeEventListener("scroll",o),c&&e.removeEventListener("resize",o)})),m&&m(),v&&v.disconnect(),v=null,d&&cancelAnimationFrame(y)}}(P,M.current,je,{ancestorResize:!0,elementResize:!0,layoutShift:!0}));const f=e=>{"Escape"===e.key&&Re(!1)};Ae.escape&&window.addEventListener("keydown",f),Ae.clickOutsideAnchor&&window.addEventListener("click",De);const p=[],m=e=>{oe||ke(e)},y=()=>{oe&&Oe()},h=["mouseenter","mouseleave","focus","blur"],v=["click","dblclick","mousedown","mouseup"];Object.entries(Se).forEach((([e,t])=>{t&&(h.includes(e)?p.push({event:e,listener:$e}):v.includes(e)&&p.push({event:e,listener:m}))})),Object.entries(Te).forEach((([e,t])=>{t&&(h.includes(e)?p.push({event:e,listener:Be}):v.includes(e)&&p.push({event:e,listener:y}))})),g&&p.push({event:"mousemove",listener:Ne});const w=()=>{we.current=!0},b=()=>{we.current=!1,Oe()};return _&&!Ee&&(null===(e=M.current)||void 0===e||e.addEventListener("mouseenter",w),null===(t=M.current)||void 0===t||t.addEventListener("mouseleave",b)),p.forEach((({event:e,listener:t})=>{o.forEach((o=>{var n;null===(n=o.current)||void 0===n||n.addEventListener(e,t)}))})),()=>{var e,t;Ae.scroll&&(window.removeEventListener("scroll",i),null==a||a.removeEventListener("scroll",i),null==u||u.removeEventListener("scroll",i)),Ae.resize?window.removeEventListener("resize",i):null==d||d(),Ae.clickOutsideAnchor&&window.removeEventListener("click",De),Ae.escape&&window.removeEventListener("keydown",f),_&&!Ee&&(null===(e=M.current)||void 0===e||e.removeEventListener("mouseenter",w),null===(t=M.current)||void 0===t||t.removeEventListener("mouseleave",b)),p.forEach((({event:e,listener:t})=>{o.forEach((o=>{var n;null===(n=o.current)||void 0===n||n.removeEventListener(e,t)}))}))}}),[P,je,re,ue,ge,A,R,L,_e]),(0,n.useEffect)((()=>{let t=null!=a?a:"";!t&&e&&(t=`[data-tooltip-id='${e}']`);const o=new MutationObserver((o=>{const n=[],r=[];o.forEach((o=>{if("attributes"===o.type&&"data-tooltip-id"===o.attributeName&&o.target.getAttribute("data-tooltip-id")===e&&n.push(o.target),"childList"===o.type){if(P){const e=[...o.removedNodes].filter((e=>1===e.nodeType));if(t)try{r.push(...e.filter((e=>e.matches(t)))),r.push(...e.flatMap((e=>[...e.querySelectorAll(t)])))}catch(e){}e.some((e=>{var t;return!!(null===(t=null==e?void 0:e.contains)||void 0===t?void 0:t.call(e,P))&&(ie(!1),Re(!1),W(null),X.current&&clearTimeout(X.current),Y.current&&clearTimeout(Y.current),!0)}))}if(t)try{const e=[...o.addedNodes].filter((e=>1===e.nodeType));n.push(...e.filter((e=>e.matches(t)))),n.push(...e.flatMap((e=>[...e.querySelectorAll(t)])))}catch(e){}}})),(n.length||r.length)&&be((e=>[...e.filter((e=>!r.includes(e))),...n]))}));return o.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-tooltip-id"]}),()=>{o.disconnect()}}),[e,a,P]),(0,n.useEffect)((()=>{je()}),[je]),(0,n.useEffect)((()=>{if(!(null==B?void 0:B.current))return()=>null;const e=new ResizeObserver((()=>{je()}));return e.observe(B.current),()=>{e.disconnect()}}),[$,null==B?void 0:B.current]),(0,n.useEffect)((()=>{var e;const t=document.querySelector(`[id='${c}']`),o=[...ge,t];P&&o.includes(P)||W(null!==(e=ge[0])&&void 0!==e?e:t)}),[c,ge,P]),(0,n.useEffect)((()=>()=>{X.current&&clearTimeout(X.current),Y.current&&clearTimeout(Y.current)}),[]),(0,n.useEffect)((()=>{let t=a;if(!t&&e&&(t=`[data-tooltip-id='${e}']`),t)try{const e=Array.from(document.querySelectorAll(t));be(e)}catch(t){be([])}}),[e,a]);const He=!b&&$&&oe&&Object.keys(J).length>0;return re?n.createElement(h,{id:e,role:"tooltip",className:le("react-tooltip",he.tooltip,ve.tooltip,ve[i],t,`react-tooltip__place-${Z}`,he[He?"show":"closing"],He?"react-tooltip__show":"react-tooltip__closing","fixed"===m&&he.fixed,_&&he.clickable),onTransitionEnd:e=>{oe||"opacity"!==e.propertyName||ie(!1)},style:{...k,...J,opacity:void 0!==F&&He?F:void 0},ref:M},$,n.createElement(h,{className:le("react-tooltip-arrow",he.arrow,ve.arrow,o,x&&he.noArrow),style:{...ee,background:I?`linear-gradient(to right bottom, transparent 50%, ${I} 50%)`:void 0},ref:V})):null},ge=({content:e})=>n.createElement("span",{dangerouslySetInnerHTML:{__html:e}}),be=({id:e,anchorId:t,anchorSelect:o,content:r,html:l,render:i,className:s,classNameArrow:c,variant:a="dark",place:u="top",offset:d=10,wrapper:f="div",children:p=null,events:m=["hover"],openOnClick:y=!1,positionStrategy:h="absolute",middlewares:v,delayShow:w=0,delayHide:g=0,float:b=!1,hidden:x=!1,noArrow:_=!1,clickable:E=!1,closeOnEsc:S=!1,closeOnScroll:T=!1,closeOnResize:A=!1,openEvents:R,closeEvents:L,globalCloseEvents:k,style:O,position:C,isOpen:N,disableStyleInjection:D=!1,border:$,opacity:B,arrowColor:j,setIsOpen:H,afterShow:P,afterHide:W})=>{const[z,F]=(0,n.useState)(r),[I,M]=(0,n.useState)(l),[q,V]=(0,n.useState)(u),[K,X]=(0,n.useState)(a),[Y,Z]=(0,n.useState)(d),[G,U]=(0,n.useState)(w),[J,Q]=(0,n.useState)(g),[ee,te]=(0,n.useState)(b),[oe,ne]=(0,n.useState)(x),[re,le]=(0,n.useState)(f),[ie,se]=(0,n.useState)(m),[ce,ae]=(0,n.useState)(h),[ue,fe]=(0,n.useState)(null),pe=(0,n.useRef)(D),{anchorRefs:me,activeAnchor:ye}=de(e),he=e=>null==e?void 0:e.getAttributeNames().reduce(((t,o)=>{var n;return o.startsWith("data-tooltip-")&&(t[o.replace(/^data-tooltip-/,"")]=null!==(n=null==e?void 0:e.getAttribute(o))&&void 0!==n?n:null),t}),{}),ve=e=>{const t={place:e=>{var t;V(null!==(t=e)&&void 0!==t?t:u)},content:e=>{F(null!=e?e:r)},html:e=>{M(null!=e?e:l)},variant:e=>{var t;X(null!==(t=e)&&void 0!==t?t:a)},offset:e=>{Z(null===e?d:Number(e))},wrapper:e=>{var t;le(null!==(t=e)&&void 0!==t?t:f)},events:e=>{const t=null==e?void 0:e.split(" ");se(null!=t?t:m)},"position-strategy":e=>{var t;ae(null!==(t=e)&&void 0!==t?t:h)},"delay-show":e=>{U(null===e?w:Number(e))},"delay-hide":e=>{Q(null===e?g:Number(e))},float:e=>{te(null===e?b:"true"===e)},hidden:e=>{ne(null===e?x:"true"===e)}};Object.values(t).forEach((e=>e(null))),Object.entries(e).forEach((([e,o])=>{var n;null===(n=t[e])||void 0===n||n.call(t,o)}))};(0,n.useEffect)((()=>{F(r)}),[r]),(0,n.useEffect)((()=>{M(l)}),[l]),(0,n.useEffect)((()=>{V(u)}),[u]),(0,n.useEffect)((()=>{X(a)}),[a]),(0,n.useEffect)((()=>{Z(d)}),[d]),(0,n.useEffect)((()=>{U(w)}),[w]),(0,n.useEffect)((()=>{Q(g)}),[g]),(0,n.useEffect)((()=>{te(b)}),[b]),(0,n.useEffect)((()=>{ne(x)}),[x]),(0,n.useEffect)((()=>{ae(h)}),[h]),(0,n.useEffect)((()=>{pe.current!==D&&console.warn("[react-tooltip] Do not change `disableStyleInjection` dynamically.")}),[D]),(0,n.useEffect)((()=>{"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent("react-tooltip-inject-styles",{detail:{disableCore:"core"===D,disableBase:D}}))}),[]),(0,n.useEffect)((()=>{var n;const r=new Set(me);let l=o;if(!l&&e&&(l=`[data-tooltip-id='${e}']`),l)try{document.querySelectorAll(l).forEach((e=>{r.add({current:e})}))}catch(n){console.warn(`[react-tooltip] "${l}" is not a valid CSS selector`)}const i=document.querySelector(`[id='${t}']`);if(i&&r.add({current:i}),!r.size)return()=>null;const s=null!==(n=null!=ue?ue:i)&&void 0!==n?n:ye.current,c=new MutationObserver((e=>{e.forEach((e=>{var t;if(!s||"attributes"!==e.type||!(null===(t=e.attributeName)||void 0===t?void 0:t.startsWith("data-tooltip-")))return;const o=he(s);ve(o)}))})),a={attributes:!0,childList:!1,subtree:!1};if(s){const e=he(s);ve(e),c.observe(s,a)}return()=>{c.disconnect()}}),[me,ye,ue,t,o]),(0,n.useEffect)((()=>{(null==O?void 0:O.border)&&console.warn("[react-tooltip] Do not set `style.border`. Use `border` prop instead."),$&&!CSS.supports("border",`${$}`)&&console.warn(`[react-tooltip] "${$}" is not a valid \`border\`.`),(null==O?void 0:O.opacity)&&console.warn("[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead."),B&&!CSS.supports("opacity",`${B}`)&&console.warn(`[react-tooltip] "${B}" is not a valid \`opacity\`.`)}),[]);let be=p;const xe=(0,n.useRef)(null);if(i){const e=i({content:null!=z?z:null,activeAnchor:ue});be=e?n.createElement("div",{ref:xe,className:"react-tooltip-content-wrapper"},e):null}else z&&(be=z);I&&(be=n.createElement(ge,{content:I}));const _e={id:e,anchorId:t,anchorSelect:o,className:s,classNameArrow:c,content:be,contentWrapperRef:xe,place:q,variant:K,offset:Y,wrapper:re,events:ie,openOnClick:y,positionStrategy:ce,middlewares:v,delayShow:G,delayHide:J,float:ee,hidden:oe,noArrow:_,clickable:E,closeOnEsc:S,closeOnScroll:T,closeOnResize:A,openEvents:R,closeEvents:L,globalCloseEvents:k,style:O,position:C,isOpen:N,border:$,opacity:B,arrowColor:j,setIsOpen:H,afterShow:P,afterHide:W,activeAnchor:ue,setActiveAnchor:e=>fe(e)};return n.createElement(we,{..._e})};"undefined"!=typeof window&&window.addEventListener("react-tooltip-inject-styles",(e=>{e.detail.disableCore||se({css:":root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9;--rt-transition-show-delay:0.15s;--rt-transition-closing-delay:0.15s}.core-styles-module_tooltip__3vRRp{position:absolute;top:0;left:0;pointer-events:none;opacity:0;will-change:opacity}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{position:absolute;background:inherit}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);transition:opacity var(--rt-transition-show-delay)ease-out}.core-styles-module_closing__sGnxF{opacity:0;transition:opacity var(--rt-transition-closing-delay)ease-in}",type:"core"}),e.detail.disableBase||se({css:"\n.styles-module_tooltip__mnnfp{padding:8px 16px;border-radius:3px;font-size:90%;width:max-content}.styles-module_arrow__K0L3T{width:8px;height:8px}[class*='react-tooltip__place-top']>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*='react-tooltip__place-right']>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*='react-tooltip__place-bottom']>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*='react-tooltip__place-left']>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}",type:"base"})}))}}]);PK�������!�B:Ĵ������modal/build/204.cssnu�[��������:root{--rsp-spacing-xxs:5px;--rsp-spacing-xs:10px;--rsp-spacing-s:15px;--rsp-spacing-m:20px;--rsp-spacing-l:25px;--rsp-spacing-xl:30px;--rsp-grid-margin:var(--rsp-spacing-s);--rsp-grid-gap:var(--rsp-spacing-m);--rsp-border-radius:12px;--rsp-border-radius-s:8px;--rsp-border-radius-xs:3px;--rsp-border:1px solid var(--rsp-border-color);--rsp-box-shadow:rgba(0,0,0,.1) 0px 4px 6px -1px,rgba(0,0,0,.06) 0px 2px 4px -1px;--rsp-box-shadow-dark:rgba(0,0,0,.2) 0px 4px 6px -1px,rgba(0,0,0,.12) 1px 0px 4px 1px;--rsp-border-color:#dfdfdf;--rsp-black:#333;--rsp-white:#fff;--rsp-yellow:#fbc43e;--rsp-blue:#009fff;--rsp-dark-yellow:#e6a800;--rsp-dark-blue:#1e73be;--rsp-green:#2e8a37;--rsp-red:#d7263d;--rsp-dark-red:#9b0212;--rsp-pink:#e35899;--rsp-wp-blue:#007cba;--rsp-yellow-faded:#fdf4df;--rsp-blue-faded:#ecf8fe;--rsp-dark-blue-faded:#ebf2f9;--rsp-green-faded:#ecf4ed;--rsp-red-faded:#fbebed;--rsp-pink-faded:#fceff5;--rsp-wp-blue-faded:#c6e0ef;--rsp-background-block-color:var(--rsp-white);--rsp-background-color:#f0f0f1;--rsp-input-background-color:#fff;--rsp-input-text-color:var(--rsp-text-color);--rsp-input-border-color:var(--rsp-grey-400);--rsp-text-color:rgba(26,26,26,.9);--rsp-text-color-invert:hsla(0,0%,100%,.9);--rsp-text-color-white:hsla(0,0%,100%,.9);--rsp-text-color-light:rgba(69,69,82,.9);--rsp-text-color-hover:var(--rsp-green);--rsp-grey-100:#fafafa;--rsp-grey-200:#f7f7f7;--rsp-grey-300:#ededed;--rsp-grey-400:#c6c6c6;--rsp-grey-500:#737373;--rsp-grey-600:#696969;--rsp-color-success:var(--rsp-green);--rsp-color-error:var(--rsp-red);--rsp-color-warning:var(--rsp-yellow);--rsp-color-open:var(--rsp-yellow);--rsp-color-disabled:var(--rsp-grey-300);--rsp-fs-100:0.6875rem;--rsp-fs-200:0.75rem;--rsp-fs-300:0.8125rem;--rsp-fs-400:0.875rem;--rsp-fs-500:1rem;--rsp-fs-600:1.125rem;--rsp-fs-700:1.25rem;--rsp-fs-800:1.5rem;--rsp-fs-850:2.8rem;--rsp-fs-900:3.5rem}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.rsssl-modal{border-radius:var(--rsp-border-radius) var(--rsp-border-radius);border-top:1px solid var(--rsp-grey-300);box-shadow:var(--rsp-box-shadow);margin:auto;max-height:calc(100% - 120px);padding:var(--rsp-spacing-m) var(--rsp-spacing-l);width:700px}@media(max-width:768px){.rsssl-modal{width:100%}}.rsssl-modal .components-modal__content{margin-top:45px;min-height:250px;padding:0}.rsssl-modal .components-modal__content>div:nth-child(2){display:flex;flex-direction:column;height:100%}.rsssl-modal .rsssl-modal-body{flex-grow:1;padding:12px 8px 80px}@media(max-width:768px){.rsssl-modal .rsssl-modal-body{padding:12px 8px 180px}}.rsssl-modal .rsssl-modal-body p{margin-top:0}.rsssl-modal .rsssl-modal-body ul{-moz-column-count:2;column-count:2;-moz-column-gap:20px;column-gap:20px;margin-bottom:0}.rsssl-modal .rsssl-modal-body ul li{display:flex;padding-bottom:5px}.rsssl-modal .rsssl-modal-body ul li .rsssl-icon{margin-right:10px;margin-top:2px}.rsssl-modal .rsssl-modal-footer{align-items:center;background-color:var(--rsp-grey-200);border-top:1px solid var(--rsp-grey-400);bottom:0;display:flex;justify-content:space-between;left:0;padding:20px 32px;position:absolute;right:0}.rsssl-modal .rsssl-modal-footer img{width:150px}@media(max-width:768px){.rsssl-modal .rsssl-modal-footer .rsssl-modal-footer-image{display:none}.rsssl-modal .rsssl-modal-footer .rsssl-modal-footer-buttons{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%}.rsssl-modal .rsssl-modal-footer .rsssl-modal-footer-buttons button{margin:0;width:100%}}.rsssl-modal .rsssl-modal-footer button+button{margin-left:10px}.rsssl-modal .rsssl-modal-footer button:not(.is-primary){background-color:transparent;border:1px solid var(--wp-admin-theme-color,#3858e9);color:var(--wp-admin-theme-color,#3858e9)}.rsssl-modal .rsssl-modal-footer button.rsssl-modal-warning{background-color:transparent;border:1px solid var(--rsp-red);color:var(--rsp-red)} PK�������!�m������0��modal/build/index.b167e8372488ba3980d4.asset.phpnu�[��������<?php return array('dependencies' => array('react', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => 'b167e8372488ba3980d4'); PK�������!�F"������0��modal/build/index.855f8bc8ac202db563f6.asset.phpnu�[��������<?php return array('dependencies' => array('react', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => '855f8bc8ac202db563f6'); PK�������!� D] ��] ��'��modal/build/433.c979d76891c58ebf0fd9.jsnu�[��������(globalThis.webpackChunkreally_simple_ssl_modal=globalThis.webpackChunkreally_simple_ssl_modal||[]).push([[433],{433:(e,t,l)=>{"use strict";l.r(t),l.d(t,{default:()=>p});var r=l(609),n=l(427),s=l(87),a=l(723),o=l(378),m=l.n(o);class c extends r.Component{constructor(e){super(e),this.state={hasError:!1,error:null,errorInfo:null},this.resetError=this.resetError.bind(this)}static getDerivedStateFromError(e){return{hasError:!0}}componentDidCatch(e,t){this.setState({error:e,errorInfo:t}),console.log("ErrorBoundary",e,t)}resetError(){this.setState({hasError:!1,error:null,errorInfo:null})}render(){return this.state.hasError?(0,r.createElement)("div",null,(0,r.createElement)("h1",null,"Something went wrong."),(0,r.createElement)("p",null,this.props.fallback),(0,r.createElement)("button",{onClick:this.resetError},"Try Again")):this.props.children}}c.propTypes={children:m().node,fallback:m().node};const i=c,p=({title:e,subTitle:t,buttons:o,content:m,list:c,confirmAction:p,confirmText:u,alternativeAction:d,alternativeText:E,alternativeClassName:h,isOpen:f,setOpen:g,className:y})=>{const[w,b]=(0,s.useState)(null);let _="undefined"!=typeof rsssl_modal?rsssl_modal.plugin_url:rsssl_settings.plugin_url;h=h||"rsssl-warning",(0,s.useEffect)((()=>{w||Promise.all([l.e(161),l.e(291)]).then(l.bind(l,291)).then((({default:e})=>{b((()=>e))}))}),[]);let C=y?" "+y:"";return wp.element.createElement(r.Fragment,null,f&&wp.element.createElement(r.Fragment,null,wp.element.createElement(i,{fallback:"Error loading modal"},wp.element.createElement(n.Modal,{className:"rsssl-modal"+C,shouldCloseOnClickOutside:!1,shouldCloseOnEsc:!1,title:e,onRequestClose:()=>g(!1),open:f},wp.element.createElement("div",{className:"rsssl-modal-body"},t&&wp.element.createElement("p",null,t),m&&wp.element.createElement(r.Fragment,null,m),c&&w&&wp.element.createElement("ul",null,c.map(((e,t)=>wp.element.createElement("li",{key:t},wp.element.createElement(w,{name:e.icon,color:e.color}),e.text))))),wp.element.createElement("div",{className:"rsssl-modal-footer"},wp.element.createElement("div",{className:"rsssl-modal-footer-image"},wp.element.createElement("img",{className:"rsssl-logo",src:_+"assets/img/really-simple-ssl-logo.svg",alt:"Really Simple SSL"})),wp.element.createElement("div",{className:"rsssl-modal-footer-buttons"},wp.element.createElement(n.Button,{onClick:()=>g(!1)},(0,a.__)("Cancel","really-simple-ssl")),o&&wp.element.createElement(r.Fragment,null,o),!o&&wp.element.createElement(r.Fragment,null,E&&wp.element.createElement(n.Button,{className:h,onClick:()=>d()},E),u&&wp.element.createElement(n.Button,{isPrimary:!0,onClick:()=>p()},u))))))))}},572:(e,t,l)=>{"use strict";var r=l(808);function n(){}function s(){}s.resetWarningCache=n,e.exports=function(){function e(e,t,l,n,s,a){if(a!==r){var o=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw o.name="Invariant Violation",o}}function t(){return e}e.isRequired=e;var l={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:s,resetWarningCache:n};return l.PropTypes=l,l}},378:(e,t,l)=>{e.exports=l(572)()},808:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}}]);PK�������!�8wk �� ��'��modal/build/204.ded1ffcbe4657d8be922.jsnu�[��������(self.webpackChunkreally_simple_ssl_modal=self.webpackChunkreally_simple_ssl_modal||[]).push([[204],{204:function(e,t,l){"use strict";l.r(t),l.d(t,{default:function(){return p}});var r=l(196),n=l(609),s=l(307),a=l(736),o=l(317),m=l.n(o);class c extends r.Component{constructor(e){super(e),this.state={hasError:!1,error:null,errorInfo:null},this.resetError=this.resetError.bind(this)}static getDerivedStateFromError(e){return{hasError:!0}}componentDidCatch(e,t){this.setState({error:e,errorInfo:t}),console.log("ErrorBoundary",e,t)}resetError(){this.setState({hasError:!1,error:null,errorInfo:null})}render(){return this.state.hasError?(0,r.createElement)("div",null,(0,r.createElement)("h1",null,"Something went wrong."),(0,r.createElement)("p",null,this.props.fallback),(0,r.createElement)("button",{onClick:this.resetError},"Try Again")):this.props.children}}c.propTypes={children:m().node,fallback:m().node};var i=c,p=({title:e,subTitle:t,buttons:o,content:m,list:c,confirmAction:p,confirmText:u,alternativeAction:d,alternativeText:E,alternativeClassName:f,isOpen:h,setOpen:g,className:w,footer:y})=>{const[_,b]=(0,s.useState)(null);let k="undefined"!=typeof rsssl_modal?rsssl_modal.plugin_url:rsssl_settings.plugin_url;f=f||"rsssl-warning",(0,s.useEffect)((()=>{_||Promise.all([l.e(851),l.e(658)]).then(l.bind(l,658)).then((({default:e})=>{b((()=>e))}))}),[]);let v=w?" "+w:"";return wp.element.createElement(r.Fragment,null,h&&wp.element.createElement(r.Fragment,null,wp.element.createElement(i,{fallback:"Error loading modal"},wp.element.createElement(n.Modal,{className:"rsssl-modal"+v,shouldCloseOnClickOutside:!1,shouldCloseOnEsc:!1,title:e,onRequestClose:()=>g(!1),open:h},wp.element.createElement("div",{className:"rsssl-modal-body"},t&&wp.element.createElement("p",null,t),m&&wp.element.createElement(r.Fragment,null,m),c&&_&&wp.element.createElement("ul",null,c.map(((e,t)=>wp.element.createElement("li",{key:t},wp.element.createElement(_,{name:e.icon,color:e.color}),e.text))))),wp.element.createElement("div",{className:"rsssl-modal-footer"},!y&&wp.element.createElement("div",{className:"rsssl-modal-footer-image"},wp.element.createElement("img",{className:"rsssl-logo",src:k+"assets/img/really-simple-ssl-logo.svg",alt:"Really Simple SSL"})),y&&wp.element.createElement("div",{className:"rsssl-modal-footer-feedback"},y),wp.element.createElement("div",{className:"rsssl-modal-footer-buttons"},wp.element.createElement(n.Button,{onClick:()=>g(!1)},(0,a.__)("Cancel","really-simple-ssl")),o&&wp.element.createElement(r.Fragment,null,o),!o&&wp.element.createElement(r.Fragment,null,E&&wp.element.createElement(n.Button,{className:f,onClick:()=>d()},E),u&&wp.element.createElement(n.Button,{isPrimary:!0,onClick:()=>p()},u))))))))}},545:function(e,t,l){"use strict";var r=l(825);function n(){}function s(){}s.resetWarningCache=n,e.exports=function(){function e(e,t,l,n,s,a){if(a!==r){var o=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw o.name="Invariant Violation",o}}function t(){return e}e.isRequired=e;var l={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:s,resetWarningCache:n};return l.PropTypes=l,l}},317:function(e,t,l){e.exports=l(545)()},825:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}}]);PK�������!�ҷv��v��'��modal/build/658.60c25cd5bb5febbcfd62.jsnu�[��������"use strict";(globalThis.webpackChunkreally_simple_ssl_modal=globalThis.webpackChunkreally_simple_ssl_modal||[]).push([[658],{658:(e,l,t)=>{t.r(l),t.d(l,{default:()=>r});var c=t(196),a=t(357);const s=React.forwardRef((function(e,l){const{name:t,color:a,size:s}=e,r=t||"bullet",i=a||"black",h=s||15,n={black:"var(--rsp-black)",green:"var(--rsp-green)",yellow:"var(--rsp-yellow)",orange:"var(--rsp-yellow)","red-faded":"var(--rsp-red-faded)",red:"var(--rsp-red)",grey:"var(--rsp-grey-400)","red-warning":"var(--rsp-red-faded)"};let o="";return"bullet"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z"}))),"circle"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"}))),"check"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"}))),"warning"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"}))),"error"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"}))),"times"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"}))),"circle-check"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM371.8 211.8C382.7 200.9 382.7 183.1 371.8 172.2C360.9 161.3 343.1 161.3 332.2 172.2L224 280.4L179.8 236.2C168.9 225.3 151.1 225.3 140.2 236.2C129.3 247.1 129.3 264.9 140.2 275.8L204.2 339.8C215.1 350.7 232.9 350.7 243.8 339.8L371.8 211.8z"}))),"circle-times"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM175 208.1L222.1 255.1L175 303C165.7 312.4 165.7 327.6 175 336.1C184.4 346.3 199.6 346.3 208.1 336.1L255.1 289.9L303 336.1C312.4 346.3 327.6 346.3 336.1 336.1C346.3 327.6 346.3 312.4 336.1 303L289.9 255.1L336.1 208.1C346.3 199.6 346.3 184.4 336.1 175C327.6 165.7 312.4 165.7 303 175L255.1 222.1L208.1 175C199.6 165.7 184.4 165.7 175 175C165.7 184.4 165.7 199.6 175 208.1V208.1z"}))),"chevron-up"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M416 352c-8.188 0-16.38-3.125-22.62-9.375L224 173.3l-169.4 169.4c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25C432.4 348.9 424.2 352 416 352z"}))),"chevron-down"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"}))),"chevron-right"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z"}))),"chevron-left"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M224 480c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l169.4 169.4c12.5 12.5 12.5 32.75 0 45.25C240.4 476.9 232.2 480 224 480z"}))),"plus"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"}))),"minus"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"}))),"sync"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M483.515 28.485L431.35 80.65C386.475 35.767 324.485 8 256 8 123.228 8 14.824 112.338 8.31 243.493 7.971 250.311 13.475 256 20.301 256h28.045c6.353 0 11.613-4.952 11.973-11.294C66.161 141.649 151.453 60 256 60c54.163 0 103.157 21.923 138.614 57.386l-54.128 54.129c-7.56 7.56-2.206 20.485 8.485 20.485H492c6.627 0 12-5.373 12-12V36.971c0-10.691-12.926-16.045-20.485-8.486zM491.699 256h-28.045c-6.353 0-11.613 4.952-11.973 11.294C445.839 370.351 360.547 452 256 452c-54.163 0-103.157-21.923-138.614-57.386l54.128-54.129c7.56-7.56 2.206-20.485-8.485-20.485H20c-6.627 0-12 5.373-12 12v143.029c0 10.691 12.926 16.045 20.485 8.485L80.65 431.35C125.525 476.233 187.516 504 256 504c132.773 0 241.176-104.338 247.69-235.493.339-6.818-5.165-12.507-11.991-12.507z"}))),"sync-error"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M256 79.1C178.5 79.1 112.7 130.1 89.2 199.7C84.96 212.2 71.34 218.1 58.79 214.7C46.23 210.5 39.48 196.9 43.72 184.3C73.6 95.8 157.3 32 256 32C337.5 32 408.8 75.53 448 140.6V104C448 90.75 458.7 80 472 80C485.3 80 496 90.75 496 104V200C496 213.3 485.3 224 472 224H376C362.7 224 352 213.3 352 200C352 186.7 362.7 176 376 176H412.8C383.7 118.1 324.4 80 256 80V79.1zM280 263.1C280 277.3 269.3 287.1 256 287.1C242.7 287.1 232 277.3 232 263.1V151.1C232 138.7 242.7 127.1 256 127.1C269.3 127.1 280 138.7 280 151.1V263.1zM224 352C224 334.3 238.3 319.1 256 319.1C273.7 319.1 288 334.3 288 352C288 369.7 273.7 384 256 384C238.3 384 224 369.7 224 352zM40 432C26.75 432 16 421.3 16 408V311.1C16 298.7 26.75 287.1 40 287.1H136C149.3 287.1 160 298.7 160 311.1C160 325.3 149.3 336 136 336H99.19C128.3 393 187.6 432 256 432C333.5 432 399.3 381.9 422.8 312.3C427 299.8 440.7 293 453.2 297.3C465.8 301.5 472.5 315.1 468.3 327.7C438.4 416.2 354.7 480 256 480C174.5 480 103.2 436.5 64 371.4V408C64 421.3 53.25 432 40 432V432z"}))),"shortcode"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M128 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h96C145.7 480 160 465.7 160 448S145.7 416 128 416H64V96h64C145.7 96 160 81.67 160 64S145.7 32 128 32zM416 32h-96C302.3 32 288 46.33 288 63.1S302.3 96 319.1 96H384v320h-64C302.3 416 288 430.3 288 447.1S302.3 480 319.1 480H416c17.6 0 32-14.4 32-32V64C448 46.4 433.6 32 416 32z"}))),"file"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M0 64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM336 448V160H256C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V448C48 456.8 55.16 464 64 464H320C328.8 464 336 456.8 336 448z"}))),"file-disabled"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M639.1 487.1c0-7.119-3.153-14.16-9.191-18.89l-118.8-93.12l.0013-237.3c0-16.97-6.742-33.26-18.74-45.26l-74.63-74.64C406.6 6.742 390.3 0 373.4 0H192C156.7 0 128 28.65 128 64L128 75.01L38.82 5.11C34.41 1.672 29.19 0 24.04 0C10.19 0-.0002 11.3-.0002 23.1c0 7.12 3.153 14.16 9.192 18.89l591.1 463.1C605.6 510.3 610.8 512 615.1 512C629.8 512 639.1 500.6 639.1 487.1zM464 338.4l-287.1-225.7l-.002-48.51c0-8.836 7.164-16 15.1-16h160l-.0065 79.87c0 17.67 14.33 31.1 31.1 31.1L464 159.1V338.4zM448 463.1H192c-8.834 0-15.1-7.164-15.1-16L176 234.6L128 197L128 447.1c0 35.34 28.65 64 63.1 64H448c20.4 0 38.45-9.851 50.19-24.84l-37.72-29.56C457.5 461.4 453.2 463.1 448 463.1z"}))),"loading"===r&&(o=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[a],d:"M304 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 416c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM48 304c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm464-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM142.9 437c18.7-18.7 18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zm0-294.2c18.7-18.7 18.7-49.1 0-67.9S93.7 56.2 75 75s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zM369.1 437c18.7 18.7 49.1 18.7 67.9 0s18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9z"}))),"file-download"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M216 342.1V240c0-13.25-10.75-24-24-24S168 226.8 168 240v102.1L128.1 303C124.3 298.3 118.2 296 112 296S99.72 298.3 95.03 303c-9.375 9.375-9.375 24.56 0 33.94l80 80c9.375 9.375 24.56 9.375 33.94 0l80-80c9.375-9.375 9.375-24.56 0-33.94s-24.56-9.375-33.94 0L216 342.1zM365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448z"}))),"calendar"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z"}))),"calendar-error"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M151.1 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V192H47.1V448C47.1 456.8 55.16 464 63.1 464H284.5C296.7 482.8 312.5 499.1 330.8 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24L151.1 64zM576 368C576 447.5 511.5 512 432 512C352.5 512 287.1 447.5 287.1 368C287.1 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM432 416C418.7 416 408 426.7 408 440C408 453.3 418.7 464 432 464C445.3 464 456 453.3 456 440C456 426.7 445.3 416 432 416zM447.1 288C447.1 279.2 440.8 272 431.1 272C423.2 272 415.1 279.2 415.1 288V368C415.1 376.8 423.2 384 431.1 384C440.8 384 447.1 376.8 447.1 368V288z"}))),"help"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z"}))),"copy"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M502.6 70.63l-61.25-61.25C435.4 3.371 427.2 0 418.7 0H255.1c-35.35 0-64 28.66-64 64l.0195 256C192 355.4 220.7 384 256 384h192c35.2 0 64-28.8 64-64V93.25C512 84.77 508.6 76.63 502.6 70.63zM464 320c0 8.836-7.164 16-16 16H255.1c-8.838 0-16-7.164-16-16L239.1 64.13c0-8.836 7.164-16 16-16h128L384 96c0 17.67 14.33 32 32 32h47.1V320zM272 448c0 8.836-7.164 16-16 16H63.1c-8.838 0-16-7.164-16-16L47.98 192.1c0-8.836 7.164-16 16-16H160V128H63.99c-35.35 0-64 28.65-64 64l.0098 256C.002 483.3 28.66 512 64 512h192c35.2 0 64-28.8 64-64v-32h-47.1L272 448z"}))),"info"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"}))),"info-open"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM256 304c13.25 0 24-10.75 24-24v-128C280 138.8 269.3 128 256 128S232 138.8 232 152v128C232 293.3 242.8 304 256 304zM256 337.1c-17.36 0-31.44 14.08-31.44 31.44C224.6 385.9 238.6 400 256 400s31.44-14.08 31.44-31.44C287.4 351.2 273.4 337.1 256 337.1z"}))),"list"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M184.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 113c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM256 96c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zM192 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zM80 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z"}))),"empty"===r&&(o=(0,c.createElement)("svg",{height:h,width:h,"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 280.8 363.67"})),"external-link"===r&&(o=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("path",{fill:n[i],d:"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z"}))),"shield"===r&&(o=(0,c.createElement)("svg",{height:h,"aria-hidden":"true",focusable:"false",role:"img",id:"uuid-026a4e87-44db-4336-a398-3c29d25b7317",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 280.8 363.67"},(0,c.createElement)("path",{fill:"#f9c23e",d:"M280.8,62.4L140.5,0,0,62.2V213.3c0,10.7,1.6,21.3,4.9,31.5,9.5,29.9,28.2,52.8,54.4,69.5,26,16.6,52.4,32.4,78.6,48.6,2,1.2,3.4,.9,5.1-.2,19.9-12.3,39.8-24.5,59.6-36.8,12.6-7.8,25.5-15.1,36.5-25.1,26.4-24.2,41.4-53.6,41.5-89.9V62.4h.2Z"}),(0,c.createElement)("g",null,(0,c.createElement)("g",null,(0,c.createElement)("rect",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",x:"155",y:"266.8",width:"77.6",height:"6"}),(0,c.createElement)("path",{fill:"#1d2327",d:"M224.4,204.5h-1.8v-10.1c0-15.9-12.9-28.8-28.8-28.8s-28.8,12.9-28.8,28.8v10.1h-1.8c-4.6,0-8.3,3.7-8.3,8.3v51.3h77.6v-51.3c0-4.6-3.7-8.3-8.3-8.3h.2Zm-45.3-10.1c0-8.1,6.6-14.7,14.7-14.7s14.7,6.6,14.7,14.7v10.1h-29.5v-10.1h.1Zm36.6,32.9l-20.7,20.2c-.2,.2-.3,.4-.5,.6l-2,2c-.2,.2-.4,.4-.6,.5l-3.8,3.8-4.5-4.3-2-2c-.2-.2-.4-.4-.5-.6l-9.1-9.1c-2.4-2.4-2.4-6.4,0-8.8l2-2c2.4-2.4,6.4-2.4,8.8,0l5.3,5.3,16.9-16.4c2.4-2.4,6.4-2.4,8.8,0l2,2c2.4,2.4,2.4,6.4,0,8.8h-.1Z"})),(0,c.createElement)("g",null,(0,c.createElement)("path",{fill:"#1d2327",d:"M125.2,192.3c-.5-2.9-.5-5.8-1-8.6-.5-2.4-2.6-4-4.8-3.9-2.3,0-4.2,1.9-4.7,4.3-.2,1,0,1.9,0,2.9,.8,14.6,7.2,26.3,18.2,35.7,2.2,1.9,4.5,3.5,6.9,4.8v-11.8c-7.4-5.8-12.9-14.1-14.6-23.3v-.1Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M96.4,236.1c-13-15-20-32.3-19.5-52.3,.3-13.1,6.1-23.6,16.6-31.2,11.5-8.5,24.5-10.9,38.3-7.1,12.7,3.5,22,10.7,27.4,22,2.1-2.7,4.5-5.2,7.2-7.4-4-7-9.7-12.9-17-17.4-17-10.4-34.9-11.7-52.9-3.1-19,9.1-28.7,24.7-29.3,45.8,0,5.2,.5,10.2,1.4,15.2,3.4,19.4,13.4,35.2,27.2,48.9,1.1,1.1,2.5,1.6,4.1,1.4,1.8-.2,3.2-1.3,3.8-3,.6-1.8,.4-3.6-1-5.1-2.1-2.2-4.2-4.4-6.2-6.7h-.1Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M68.1,89.4c1.1-.4,2.1-1,3.1-1.5,17.9-9.1,36.8-12.7,56.8-11.3,12.2,.8,23.9,3.8,35.1,8.7,3,1.3,5.9,2.8,8.9,4.1,2.7,1.1,5.3,0,6.4-2.4,1.1-2.3,0-5-2.3-6.3-11-5.7-22.4-10-34.6-12.3-4.2-.8-8.5-1.1-12.8-1.7h-17.1c-.3,0-.6,.2-.9,.2-11.2,.8-22,3.2-32.5,7.2-4.9,1.9-9.7,4.1-14.3,6.6-2.5,1.3-3.4,4.2-2.2,6.5,1.1,2.2,4,3.2,6.4,2.1v.1Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M61.1,153.5c13.6-21.6,33.6-31.5,58.7-32.1h6c.8,0,1.6,.2,2.3,.3,13.4,1.7,25.5,6.6,35.9,15.4,5.8,4.9,10.5,10.3,14.1,16.2,3.1-1.2,6.4-2,9.8-2.5-4.7-8.7-11.3-16.3-19.6-22.7-19-14.6-40.5-19.5-64.1-15.1-14.3,2.7-26.9,9-37.7,18.8-10.4,9.5-17.8,20.9-21.2,34.6-2.8,11.3-2.6,22.7-.9,34.1,1.1,7,2.9,13.9,5.4,20.5,.9,2.3,3,3.7,5.2,3.5,2.1-.2,3.9-2,4.3-4.3,.2-1.1-.2-2.2-.6-3.2-4.3-11.9-6.3-24.1-5.6-36.7,.5-9.6,2.8-18.7,8-26.8h0Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M139.8,240.6c-20.9-8.4-34.1-23.7-38.4-46.7-.8-4.3-1.4-8.7-.4-13,1.8-7.1,6.4-11.4,13.4-13.5,11.8-3.4,24.7,5.3,24.5,17.6,0,4.8,1.4,9.3,4,13.4,.3,.5,.6,.9,.9,1.3,1.6-2.4,3.7-4.6,6.1-6.2,0-.9,0-1.9,.2-2.8-.7-1.7-1.1-3.5-1.2-5.3-.3-6.1-1.6-11.9-5.5-16.8-6.8-8.8-15.9-12.4-27-11.5-11.3,.9-21.6,9.6-24.5,20.6-1.8,6.6-.9,13.3,.4,19.8,2.4,12.9,8.2,24,17.1,33.7,8.6,9.4,18.8,15.8,30.6,19.8v-10.4h-.2Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M47.5,133.2c6.8-8.8,15-16,24.6-21.6,20.8-12,43.2-15.2,66.6-11,14.8,2.7,28.2,8.7,39.9,18.2,6.3,5,11.6,11,16.4,17.4,1.9,2.5,4.8,2.8,7,1.1,2.1-1.7,2.4-4.5,.6-7-5.9-8.2-12.8-15.3-20.9-21.3-18.3-13.6-39.1-19.6-61.7-20-6.3,0-12.5,.6-18.6,1.6-15.7,2.8-30.1,8.6-42.9,18.1-8.3,6.2-15.5,13.5-21.5,22-1.6,2.3-1.3,5.1,.7,6.7,2.1,1.7,4.9,1.5,6.8-.7,1-1.2,1.9-2.5,2.9-3.7l.1,.2Z"}))))),"file-search"===r&&(o=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",height:h,fill:"none",viewBox:"0 0 384 512"},(0,c.createElement)("path",{d:"M374.6 150.6l-141.3-141.3C227.4 3.371 219.2 0 210.7 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.35 0 64-28.66 64-64V173.3C384 164.8 380.6 156.6 374.6 150.6zM224 22.63L361.4 160H248C234.8 160 224 149.2 224 136V22.63zM368 448c0 26.47-21.53 48-48 48H64c-26.47 0-48-21.53-48-48V64c0-26.47 21.53-48 48-48h144v120c0 22.06 17.94 40 40 40h120V448zM176 208c-53.02 0-96 42.98-96 96s42.98 96 96 96c23.62 0 44.96-8.859 61.68-23l68.66 68.66C307.9 447.2 309.9 448 312 448s4.094-.7813 5.656-2.344c3.125-3.125 3.125-8.188 0-11.31l-68.66-68.66C263.1 348.1 272 327.6 272 304C272 250.1 229 208 176 208zM176 384C131.9 384 96 348.1 96 304S131.9 224 176 224S256 259.9 256 304S220.1 384 176 384z"}))),"download"===r&&(o=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",height:h,fill:"none",viewBox:"0 0 512 512"},(0,c.createElement)("path",{d:"M480 352h-88C387.6 352 384 355.6 384 360s3.582 8 8 8H480c8.822 0 16 7.178 16 16v96c0 8.822-7.178 16-16 16H32c-8.822 0-16-7.178-16-16v-96c0-8.822 7.178-16 16-16h88C124.4 368 128 364.4 128 360S124.4 352 120 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96C512 366.3 497.7 352 480 352zM464 432c0-17.6-14.4-32-32-32s-32 14.4-32 32c0 17.6 14.4 32 32 32S464 449.6 464 432zM416 432c0-8.822 7.178-16 16-16s16 7.178 16 16S440.8 448 432 448S416 440.8 416 432zM250.3 413.7c3.125 3.125 8.188 3.125 11.31 0l152-152C415.2 260.1 416 258.1 416 256s-.7813-4.094-2.344-5.656c-3.125-3.125-8.188-3.125-11.31 0L264 388.7V8C264 3.594 260.4 0 256 0S248 3.594 248 8v380.7L109.7 250.3c-3.125-3.125-8.188-3.125-11.31 0s-3.125 8.188 0 11.31L250.3 413.7z"}))),"satellite-dish"===r&&(o=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",color:n[i],height:h,viewBox:"0 0 512 512"},(0,c.createElement)("path",{d:"M208 0c-8.8 0-16 7.2-16 16s7.2 16 16 16c150.2 0 272 121.8 272 272c0 8.8 7.2 16 16 16s16-7.2 16-16C512 136.1 375.9 0 208 0zm0 96c-8.8 0-16 7.2-16 16s7.2 16 16 16c97.2 0 176 78.8 176 176c0 8.8 7.2 16 16 16s16-7.2 16-16c0-114.9-93.1-208-208-208zM32 304c0-24.5 5-47.7 13.9-68.8L276.8 466.1C255.7 475 232.5 480 208 480c-97.2 0-176-78.8-176-176zm33.5-94.5c-14-14-37.3-12.1-45.7 5.8C7.1 242.2 0 272.3 0 304C0 418.9 93.1 512 208 512c31.7 0 61.8-7.1 88.7-19.8c17.9-8.4 19.8-31.8 5.8-45.7L195.3 339.3l24-24c6.3 3 13.3 4.7 20.7 4.7c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48c0 7.4 1.7 14.4 4.7 20.7l-24 24L65.5 209.5zM224 272a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"}))),"rotate-light"===r&&(o=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",color:n[i],height:h,viewBox:"0 0 512 512"},(0,c.createElement)("path",{d:"M426.1 301.2C406.2 376.5 337.6 432 256 432c-51 0-96.9-21.7-129-56.3l41-41c5.1-5.1 8-12.1 8-19.3c0-15.1-12.2-27.3-27.3-27.3H48c-8.8 0-16 7.2-16 16V404.7C32 419.8 44.2 432 59.3 432c7.2 0 14.2-2.9 19.3-8l25.7-25.7C142.3 438.7 196.2 464 256 464c97.4 0 179.2-67 201.8-157.4c2.4-9.7-5.2-18.6-15.2-18.6c-7.8 0-14.5 5.6-16.5 13.2zM385 136.3l-41 41c-5.1 5.1-8 12.1-8 19.3c0 15.1 12.2 27.3 27.3 27.3H464c8.8 0 16-7.2 16-16V107.3C480 92.2 467.8 80 452.7 80c-7.2 0-14.2 2.9-19.3 8l-25.7 25.7C369.7 73.3 315.8 48 256 48C158.6 48 76.8 115 54.2 205.4c-2.4 9.7 5.2 18.6 15.2 18.6c7.8 0 14.5-5.6 16.5-13.2C105.8 135.5 174.4 80 256 80c51 0 96.9 21.7 129.1 56.3zM448 192H374.6L448 118.6V192zM64 320h73.4L64 393.4V320z"}))),"rotate-exclamation-light"===r&&(o=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,`\n .fa-secondary {\n opacity: 0.4;\n color: ${n[i]};\n }\n `)),(0,c.createElement)("path",{className:"fa-primary",d:"M280 152c0-13.3-10.7-24-24-24s-24 10.7-24 24V264c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM256 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M432 117.4C391 65.4 327.4 32 256 32C158.4 32 75.5 94.4 44.8 181.3c-5.9 16.7 2.8 34.9 19.5 40.8s34.9-2.8 40.8-19.5C127.1 140.5 186.4 96 256 96c52.3 0 98.8 25.1 128 64H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h84.3c.5 0 1 0 1.5 0H464c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v37.4zm35.2 213.2c5.9-16.7-2.8-34.9-19.5-40.8s-34.9 2.8-40.8 19.5C384.9 371.5 325.6 416 256 416c-52.3 0-98.8-25.1-128-64h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32V432c0 17.7 14.3 32 32 32s32-14.3 32-32V394.6c41 52 104.6 85.4 176 85.4c97.6 0 180.5-62.4 211.2-149.3z"}))),"radar-duotone"===r&&(o=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,`\n .fa-secondary {\n color: ${n[i]} !important;\n } \n `)),(0,c.createElement)("path",{className:"fa-primary",d:"M497 49c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-182 182c-7.7-3.3-16.1-5.1-25-5.1c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64c0-8.9-1.8-17.3-5.1-25L497 49z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M350.9 127.2l-46.1 46.1c-14.3-8.4-31-13.3-48.8-13.3c-53 0-96 43-96 96s43 96 96 96s96-43 96-96h64c0 73.5-49.6 135.5-117.2 154.2C290.8 394.7 274.7 384 256 384s-34.8 10.7-42.8 26.2c-51.7-14.3-92.8-53.9-109.4-104.6c14.4-8.3 24.1-23.8 24.1-41.7c0-19.4-11.5-36.1-28-43.7C116.2 149.1 179.9 96 256 96c35.5 0 68.3 11.6 94.9 31.2zm22.8-22.8C341.2 79 300.4 64 256 64C163.1 64 85.7 129.9 67.9 217.6C47.2 222.9 32 241.7 32 264c0 23.8 17.3 43.6 40.1 47.4c19.3 64.3 71.5 114.4 137 130.9C213.8 463.8 233 480 256 480s42.2-16.2 46.9-37.8C386.3 421.3 448 345.9 448 256h64c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0c62.1 0 118.9 22.1 163.3 58.8l-45.5 45.5z"}))),"satellite-dish-duotone"===r&&(o=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:h},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,`\n .fa-secondary {\n color: ${n[i]} !important;\n } \n `)),(0,c.createElement)("path",{className:"fa-primary",d:"M60.6 220.6c-14.5-14.5-38.8-11.8-46.3 7.3C5.1 251.5 0 277.1 0 304C0 418.9 93.1 512 208 512c26.9 0 52.5-5.1 76.1-14.4c19-7.5 21.8-31.8 7.3-46.3L187.3 347.3l28.4-28.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3l-28.4 28.4L60.6 220.6z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M224 0c-17.7 0-32 14.3-32 32s14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0zm0 96c-17.7 0-32 14.3-32 32s14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192z"}))),"spinner"===r&&(o=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",width:"20",height:"20"},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,"\n .fa-secondary {\n opacity: 0.4;\n }\n ")),(0,c.createElement)("path",{className:"fa-primary",d:"M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 256A48 48 0 1 0 0 256a48 48 0 1 0 96 0zM75 142.9A48 48 0 1 0 142.9 75 48 48 0 1 0 75 142.9z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M369.1 75A48 48 0 1 1 437 142.9 48 48 0 1 1 369.1 75zM416 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM208 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM75 369.1A48 48 0 1 1 142.9 437 48 48 0 1 1 75 369.1zm294.2 0A48 48 0 1 1 437 437a48 48 0 1 1 -67.9-67.9z"}))),(0,c.createElement)("div",{...e,ref:l},o)})),r=({name:e,color:l,size:t,tooltip:r})=>{const i=e||"bullet",h=l||"black";let n=t||15,o=r?"tooltip-":"",m=Math.floor(1e9*Math.random());return r?(0,c.createElement)("div",{className:"rsssl-"+o+"icon rsssl-icon-"+i+" rsssl-"+h},(0,c.createElement)(s,{"data-for":".rsssl-"+m,name:i,color:h,size:n,id:m,className:"rsssl-"+m,"data-tooltip-delay-hide":200}),(0,c.createElement)(a.u,{style:{zIndex:99},id:m,place:"bottom",anchorSelect:".rsssl-"+m,content:r})):(0,c.createElement)("div",{className:"rsssl-"+o+"icon rsssl-icon-"+i+" rsssl-"+h},(0,c.createElement)(s,{name:i,color:h,size:n}))}}}]);PK�������!�z������modal/modal.phpnu�[��������<?php if ( ! defined('ABSPATH')) { exit; } if ( ! function_exists('rsssl_plugin_plugin_page_scripts')) { function rsssl_plugin_plugin_page_scripts($hook) { if ( $hook !== 'plugins.php' ) { return; } $js_data = rsssl_get_chunk_translations( 'modal/build' ); if (empty($js_data)) { return; } wp_enqueue_style('wp-components'); $handle = 'rsssl-modal'; wp_enqueue_script( $handle, plugins_url('build/' . $js_data['js_file'], __FILE__), $js_data['dependencies'], $js_data['version'], true ); wp_set_script_translations($handle, 'really-simple-ssl'); $token = wp_create_nonce('rsssl_deactivate_plugin'); $deactivate_keep_ssl_link = add_query_arg( [ 'page' => 'really-simple-security', 'action' => 'uninstall_keep_ssl', 'token' => $token ], rsssl_admin_url() ); wp_localize_script( $handle, 'rsssl_modal', apply_filters('rsssl_localize_script', [ 'json_translations' => $js_data['json_translations'], 'plugin_url' => rsssl_url, 'deactivate_keep_https' => $deactivate_keep_ssl_link, 'pro_plugin_active' => defined('rsssl_pro'), ]) ); function rsssl_add_modal_root_div() { // Check if we're on the plugins.php page $screen = get_current_screen(); if ($screen && $screen->id === 'plugins') { echo '<div id="rsssl-modal-root"></div>'; } } add_action('admin_footer', 'rsssl_add_modal_root_div'); } } add_action('admin_enqueue_scripts', 'rsssl_plugin_plugin_page_scripts');PK�������!�X������class-server.phpnu�[��������<?php defined( 'ABSPATH' ) or die( 'you do not have access to this page!' ); if ( ! class_exists( 'rsssl_server' ) ) { class rsssl_server { private static $_this; public function __construct() { if ( isset( self::$_this ) ) { wp_die( 'you cannot create a second instance.' ); } self::$_this = $this; } public static function this() { return self::$_this; } /** * @Since 2.5.1 * Checks if the server uses .htaccess * @return bool */ public function uses_htaccess() { // No .htaccess on WP Engine if ( function_exists( 'is_wpe' ) && is_wpe() ) { return false; } if ( $this->get_server() === 'apache' || $this->get_server() === 'litespeed' ) { return true; } return false; } /** * Returns the server type of the plugin user. * * @return string|bool server type the user is using of false if undetectable. */ public function get_server() { //Allows to override server authentication for testing or other reasons. if ( defined( 'RSSSL_SERVER_OVERRIDE' ) ) { return RSSSL_SERVER_OVERRIDE; } $server_raw = strtolower( htmlspecialchars( $_SERVER['SERVER_SOFTWARE'] ) ); if ( strpos( $server_raw, 'apache' ) !== false ) { return 'apache'; } elseif ( strpos( $server_raw, 'nginx' ) !== false ) { return 'nginx'; } elseif ( strpos( $server_raw, 'litespeed' ) !== false ) { return 'litespeed'; } elseif ( strpos( $server_raw, 'openresty' ) !== false ) { return 'openresty'; } elseif ( strpos( $server_raw, 'microsoft-iis' ) !== false ) { return 'microsoft-iis'; } else { //unsupported server return false; } } /** * Check if the apache version is at least 2.4 * @return bool */ public function apache_version_min_24() { $version = $_SERVER['SERVER_SOFTWARE'] ?? false; //check if version is higher then 2.4. if ( preg_match( '/Apache\/(2\.[4-9])/', $version, $matches ) ) { return true; } return false; } } //class closure } PK�������!� rW#R�R���class-admin.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); class rsssl_admin { private static $_this; public $wpconfig_siteurl_not_fixed = false; public $no_server_variable = false; public $do_wpconfig_loadbalancer_fix = false; public $plugin_dir = 'really-simple-ssl'; public $plugin_filename = 'rlrsssl-really-simple-ssl.php'; public $abs_path; public $ssl_type = 'NA'; public $pro_url; public $configuration_loaded = false; public function __construct() { if ( isset( self::$_this ) ) { wp_die( 'cannot create a second instance.' ); } if ( defined( 'rsssl_pro' ) ) { if ( is_multisite() ) { $this->plugin_dir = 'really-simple-ssl-pro-multisite'; $this->plugin_filename = 'really-simple-ssl-pro-multisite.php'; } else { $this->plugin_dir = 'really-simple-ssl-pro'; $this->plugin_filename = 'really-simple-ssl-pro.php'; } } self::$_this = $this; $this->abs_path = $this->getabs_path(); $this->pro_url = is_multisite() ? 'https://really-simple-ssl.com/pro/?mtm_campaign=notification&mtm_kwd=multisite&mtm_source=free&mtm_medium=settings&mtm_content=upgrade' : 'https://really-simple-ssl.com/pro/?mtm_campaign=notification&mtm_source=free&mtm_medium=settings&mtm_content=upgrade'; register_deactivation_hook( __DIR__ . '/' . $this->plugin_filename, array( $this, 'deactivate' ) ); add_action( 'admin_init', array( $this, 'add_privacy_info' ) ); add_action( 'admin_init', array( $this, 'maybe_dismiss_review_notice' ) ); add_action( 'rsssl_daily_cron', array( $this, 'clear_admin_notices_cache' ) ); //add the settings page for the plugin add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_assets' ) ); add_action( 'admin_init', array( $this, 'listen_for_deactivation' ), 40 ); add_action( 'plugins_loaded', array( $this, 'maybe_redirect_old_settings_url' ), 10 ); $plugin = rsssl_plugin; add_filter( "plugin_action_links_$plugin", array( $this, 'plugin_settings_link' ) ); //Add update notification to Settings admin menu add_action( 'admin_menu', array( $this, 'add_plus_ones' ) ); //callbacks for the ajax dismiss buttons add_action( 'wp_ajax_rsssl_dismiss_review_notice', array( $this, 'dismiss_review_notice_callback' ) ); //handle notices add_action( 'admin_notices', array( $this, 'show_notices' ) ); //show review notice, only to free users if ( ! defined( 'rsssl_pro' ) && ! is_multisite() ) { add_action( 'admin_notices', array( $this, 'show_leave_review_notice' ) ); } //hooks only needed on settings page if ( $this->is_settings_page() ) { /** * Htaccess redirect handling */ add_action( 'rsssl_after_save_field', array( $this, 'maybe_flush_wprocket_htaccess' ), 100, 4 ); add_action( 'admin_init', array( $this, 'insert_secure_cookie_settings' ), 70 ); add_action( 'admin_init', array( $this, 'recheck_certificate' ) ); } add_filter( 'rsssl_htaccess_security_rules', array( $this, 'add_htaccess_redirect' ) ); add_filter( 'before_rocket_htaccess_rules', array( $this, 'add_htaccess_redirect_before_wp_rocket' ) ); add_filter( 'admin_init', array( $this, 'handle_activation' ) ); add_action( 'rocket_activation', 'rsssl_wrap_htaccess' ); add_action( 'rocket_deactivation', 'rsssl_wrap_htaccess' ); $plugin = rsssl_plugin; add_filter( "plugin_action_links_$plugin", array($this,'plugin_settings_link' ) ); add_filter( "network_admin_plugin_action_links_$plugin", array($this,'plugin_settings_link' ) ); } public static function this() { return self::$_this; } public function handle_activation(){ if ( !rsssl_admin_logged_in() ) { return; } if ( get_option('rsssl_activation') ) { if ( !class_exists('rsssl_le_hosts')) { require_once( rsssl_path . 'lets-encrypt/config/class-hosts.php'); } ( new rsssl_le_hosts() )->detect_host_on_activation(); do_action('rsssl_activation'); delete_option('rsssl_activation'); } } /** * Add settings link on plugins overview page * @param array $links * * @return array */ public function plugin_settings_link($links) { //free version if ( ! rsssl_user_can_manage() || ( is_multisite() && ! is_network_admin() ) ) { return $links; } $settings_link = ''; $url = add_query_arg( array( 'page' => 'really-simple-security' ), rsssl_admin_url() ); //settings only on network wide activated, or no multisite at all. if ( is_multisite() && rsssl_is_networkwide_active() && is_super_admin() ) { $settings_link = '<a href="' . $url . '">' . __( 'Settings', 'really-simple-ssl' ) . '</a>'; } elseif ( ! is_multisite() ) { $settings_link = '<a href="' . $url . '">' . __( 'Settings', 'really-simple-ssl' ) . '</a>'; } array_unshift( $links, $settings_link ); //support $support = apply_filters( 'rsssl_support_link', '<a rel="noopener noreferrer" target="_blank" href="https://wordpress.org/support/plugin/really-simple-ssl/">' . __( 'Support', 'really-simple-ssl' ) . '</a>' ); array_unshift( $links, $support ); if ( ! defined( 'rsssl_pro' ) ) { $upgrade_link = '<a style="color:#2271b1;font-weight:bold" target="_blank" rel="noopener noreferrer" href="' . $this->pro_url . '">' . __( 'Improve security - Upgrade', 'really-simple-ssl' ) . '</a>'; array_unshift( $links, $upgrade_link ); } return $links; } /** * Redirect to the new settings page * * @return void */ public function maybe_redirect_old_settings_url() { if ( ! rsssl_user_can_manage() || is_multisite() ) { return; } if ( isset( $_GET['page'] ) && 'rlrsssl_really_simple_ssl' === $_GET['page'] ) { wp_redirect( add_query_arg( [ 'page' => 'really-simple-security' ], rsssl_admin_url() ) ); exit; } } /** * Add some privacy info, telling our users we aren't tracking them */ public function add_privacy_info() { if ( ! function_exists( 'wp_add_privacy_policy_content' ) ) { return; } $content = sprintf( // translators: %s is replaced with the hyperlink __( 'Really Simple SSL and Really Simple SSL add-ons do not process any personal identifiable information, so the GDPR does not apply to these plugins or usage of these plugins on your website. You can find our privacy policy <a href="%s" rel="noopener noreferrer" target="_blank">here</a>.', 'really-simple-ssl' ), 'https://really-simple-ssl.com/privacy-statement/' ); wp_add_privacy_policy_content( 'Really Simple SSL', wp_kses_post( wpautop( $content, false ) ) ); } /** * Check if current day falls within required date range. * * @return bool */ public function is_bf() { if ( defined( 'rsssl_pro' ) ) { return false; } $start_day = 20; $end_day = 27; $current_year = gmdate( 'Y' );//e.g. 2021 $current_month = gmdate( 'n' );//e.g. 3 $current_day = gmdate( 'j' );//e.g. 4 if ( 2023 === $current_year && 11 === $current_month && $current_day >= $start_day && $current_day <= $end_day ) { return true; } return false; } /** * Initializes the admin class * * @since 2.2 * * @access public * */ public function init() { if ( ! rsssl_user_can_manage() ) { return; } if ( defined( 'RSSSL_FORCE_ACTIVATE' ) && RSSSL_FORCE_ACTIVATE ) { rsssl_update_option( 'ssl_enabled', true ); } /* * check if we're one minute past the activation. Then flush rewrite rules * this way we lower the memory impact on activation * Flush should happen on shutdown, not on init, as often happens in other plugins * https://codex.wordpress.org/Function_Reference/flush_rewrite_rules * */ $activation_time = get_option( 'rsssl_flush_rewrite_rules' ); $more_than_one_minute_ago = $activation_time < strtotime( '-1 minute' ); $less_than_2_minutes_ago = $activation_time > strtotime( '-2 minute' ); if ( $more_than_one_minute_ago && $less_than_2_minutes_ago && get_option( 'rsssl_flush_rewrite_rules' ) ) { delete_option( 'rsssl_flush_rewrite_rules' ); add_action( 'shutdown', 'flush_rewrite_rules' ); } $more_than_2_minute_ago = get_option( 'rsssl_flush_caches' ) < strtotime( '-2 minute' ); $less_than_5_minutes_ago = get_option( 'rsssl_flush_caches' ) > strtotime( '-5 minute' ); if ( $more_than_2_minute_ago && $less_than_5_minutes_ago && get_option( 'rsssl_flush_caches' ) ) { delete_option( 'rsssl_flush_caches' ); add_action( 'shutdown', array( RSSSL()->cache, 'flush' ) ); } /* Detect configuration when: - on settings page - SSL not enabled */ //when configuration detection should run again if ( ! rsssl_get_option( 'ssl_enabled' ) || $this->is_settings_page() || defined( 'RSSSL_DOING_SYSTEM_STATUS' ) ) { $this->detect_configuration(); if ( ! $this->wpconfig_ok() ) { rsssl_update_option( 'ssl_enabled', false ); } else { //when one of the used server variables was found, test if the redirect works if ( RSSSL()->server->uses_htaccess() && 'NA' !== $this->ssl_type ) { $this->htaccess_test_success(); } } } } /** * Add htaccess redirect * @hooked * @param array $rules * @return [] */ public function add_htaccess_redirect( $rules ) { //we don't want these rules added by rsssl if wp rocket active. //if it's deactivating, start adding them again. if ( $this->is_deactivating_wprocket() || ! function_exists( 'rocket_clean_domain' ) ) { $rule = $this->get_redirect_rules(); if ( ! empty( $rule ) ) { $rules[] = [ 'rules' => $rule, 'identifier' => 'RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1', ]; } } return $rules; } /** * Check if we're in the middle of wp rocket deactivation * * @return bool */ public function is_deactivating_wprocket() { //default deactivating $is_deactivating = isset( $_GET['action'] ) && 'deactivate' === $_GET['action'] && isset( $_GET['plugin'] ) && strpos( $_GET['plugin'], 'wp-rocket.php' ) !== false; //deactivating with modal return $is_deactivating || ( isset( $_GET['action'] ) && 'rocket_deactivation' === $_GET['action'] ); } /** * Deactivate the plugin while keeping SSL * Activated when the 'uninstall_keep_ssl' button is clicked in the settings tab * */ public function listen_for_deactivation() { if ( ! rsssl_user_can_manage() ) { return; } if ( ! isset( $_GET['token'] ) || ( ! wp_verify_nonce( $_GET['token'], 'rsssl_deactivate_plugin' ) ) ) { return; } if ( isset( $_GET['action'] ) && 'uninstall_keep_ssl' === $_GET['action'] ) { //deactivate plugin, but don't revert to http. $plugin = $this->plugin_dir . '/' . $this->plugin_filename; $plugin = plugin_basename( trim( $plugin ) ); if ( is_multisite() ) { $network_current = get_site_option( 'active_sitewide_plugins', array() ); if ( is_plugin_active_for_network( $plugin ) ) { unset( $network_current[ $plugin ] ); } update_site_option( 'active_sitewide_plugins', $network_current ); //remove plugin one by one on each site $sites = get_sites(); foreach ( $sites as $site ) { switch_to_blog( $site->blog_id ); $current = get_option( 'active_plugins', array() ); $current = $this->remove_plugin_from_array( $plugin, $current ); update_option( 'active_plugins', $current ); restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop } } else { $current = get_option( 'active_plugins', array() ); $current = $this->remove_plugin_from_array( $plugin, $current ); update_option( 'active_plugins', $current ); } do_action( 'rsssl_deactivate' ); wp_redirect( admin_url( 'plugins.php' ) ); exit; } } /** * Remove the plugin from the active plugins array when called from listen_for_deactivation * * */ public function remove_plugin_from_array( $plugin, $current ) { $key = array_search( $plugin, $current, true ); if ( false !== $key ) { unset( $current[ $key ] ); } return $current; } /** * Check if site uses an htaccess.conf file, used in bitnami installations * * @Since 3.1 */ public function uses_htaccess_conf() { $htaccess_conf_file = dirname( ABSPATH ) . '/conf/htaccess.conf'; //conf/htaccess.conf can be outside of open basedir, return false if so $open_basedir = ini_get( 'open_basedir' ); if ( ! empty( $open_basedir ) ) { return false; } return is_file( $htaccess_conf_file ); } /** * If the user has clicked "recheck certificate, clear the cache for the certificate check. * Used in a form in the dashboard notices. * @return void */ public function recheck_certificate() { if ( ! rsssl_user_can_manage() ) { return; } if ( isset( $_POST['rsssl_recheck_certificate'] ) ) { delete_transient( 'rsssl_certinfo' ); } } /** * Activate the SSL for this site */ public function activate_ssl($data) { //skip activation if safe mode if ( defined( 'RSSSL_SAFE_MODE' ) && RSSSL_SAFE_MODE ) { return [ 'success' => true, 'site_url_changed' => false, ]; } if ( !rsssl_user_can_manage() ) { return [ 'success' => false, 'site_url_changed' => false, ]; } $safe_mode = defined( 'RSSSL_SAFE_MODE' ) && RSSSL_SAFE_MODE; $error = false; $is_rest_request = isset( $data['is_rest_request'] ); $site_url_changed = false; $wpcli = defined( 'WP_CLI' ) && WP_CLI; if ( rsssl_get_option( 'site_has_ssl' ) || get_option( 'rsssl_ssl_detection_overridden' ) || $wpcli ) { //in a configuration reverse proxy without a set server variable https, add code to wpconfig if ( $this->do_wpconfig_loadbalancer_fix || $this->no_server_variable ) { $this->wpconfig_loadbalancer_fix(); } if ( ! $safe_mode && $this->wpconfig_siteurl_not_fixed ) { $this->fix_siteurl_defines_in_wpconfig(); } $this->insert_secure_cookie_settings(); if ( ! $safe_mode ) { rsssl_update_option( 'redirect', 'wp_redirect' ); rsssl_update_option( 'mixed_content_fixer', true ); //flush caches when just activated ssl //flush the permalinks update_option( 'rsssl_activation_timestamp', time(), false ); if ( ! defined( 'RSSSL_NO_FLUSH' ) || ! RSSSL_NO_FLUSH ) { update_option( 'rsssl_flush_rewrite_rules', time(), false ); } update_option( 'rsssl_flush_caches', time(), false ); } rsssl_update_option( 'ssl_enabled', true ); $site_url_changed = $this->set_siteurl_to_ssl(); delete_option( 'rsssl_admin_notices' ); } else { $error = true; } //if this is true, this is a request from the network admin. We save an option to ensure we know that this part is completed if ( is_multisite() && rsssl_is_networkwide_active() ) { update_site_option( 'rsssl_network_activation_status', 'main_site_activated' ); } if ( $is_rest_request ) { return [ 'success' => ! $error, 'site_url_changed' => $site_url_changed, 'request_success' => true, ]; } return ! $error; } /** * Check if the wp config configuration is ok for SSL activation * * @return bool */ public function wpconfig_ok() { //return false; if ( ( $this->do_wpconfig_loadbalancer_fix || $this->no_server_variable || $this->wpconfig_siteurl_not_fixed ) && ! $this->wpconfig_is_writable() ) { $result = false; } else { $result = true; } return apply_filters( 'rsssl_wpconfig_ok_check', $result ); } /** * @param string $class * @param string $content * @param string|bool $more_info * @param string|bool $dismiss_id * * @return false|string * * @since 4.0 * Return the notice HTML * */ public function notice_html( string $css_class, string $content, $more_info = false, $dismiss_id = false ) { if ( ! rsssl_user_can_manage() ) { return ''; } $css_class .= ' notice '; $is_internal_link = strpos( $more_info, 'really-simple-ssl.com' ) === false; $target = ! $is_internal_link ? 'target="_blank"' : ''; $url = is_ssl() ? 'https://' : 'http://'; $url .= $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $url = wp_validate_redirect( $url, apply_filters( 'wp_safe_redirect_fallback', admin_url(), 302 ) ); $url = esc_url_raw( $url ); ob_start();?> <style> #rsssl-message { margin:10px 0; padding: 0; border-left-color: #333; } #rsssl-message.error{ border-left-color:#d7263d; } #rsssl-message.warning{ border-left-color:#ffb900; } .rsssl-notice { display:flex; margin:15px; } .rsssl-notice-content { padding-top: 5px; } .rsssl-admin-notice-more-info { margin:0 10px 0 auto; } .settings_page_really-simple-security #wpcontent #rsssl-message, .settings_page_really-simple-ssl #wpcontent #rsssl-message { margin: 20px; } </style> <?php if ( is_rtl() ) { ?> <style> #rsssl-message { border-right-color: #333; } #rsssl-message.error{ border-right-color:#d7263d; } .rsssl-admin-notice-more-info { margin:0 auto 0 10px; } </style> <?php } ?> <div id="rsssl-message" class="<?php echo esc_attr( $css_class ); ?> really-simple-plugins"> <div class="rsssl-notice"> <div class="rsssl-notice-content"> <?php echo $content; ?> </div> <?php if ( $more_info || $dismiss_id ) { ?> <div class="rsssl-admin-notice-more-info"> <?php if ( $dismiss_id ) { ?> <a class="button" rel="noopener noreferrer" href="<?php echo add_query_arg( [ 'dismiss_notice' => $dismiss_id ], $url ); ?>"><?php _e( 'Dismiss', 'really-simple-ssl' ); ?></a> <?php } ?> <?php if ( $more_info ) { ?> <a class="button" <?php echo $target; ?> rel="noopener noreferrer" href="<?php echo esc_url_raw( $more_info ); ?>"><?php $is_internal_link ? _e( 'View', 'really-simple-ssl' ) : _e( 'More info', 'really-simple-ssl' ); ?></a> <?php } ?> </div> <?php } ?> </div> </div> <?php return ob_get_clean(); } /** * @return bool * * Check if wp-config.php is writeable * * @access public */ public function wpconfig_is_writable() { $wpconfig_path = $this->find_wp_config_path(); if ( empty( $wpconfig_path ) ) { return false; } if ( is_writable( $wpconfig_path ) ) { return true; } return false; } /** * Check if the uninstall file is renamed to .php * * @return string */ public function check_for_uninstall_file() { if ( file_exists( __DIR__ . '/force-deactivate.php' ) ) { return 'fail'; } return 'success'; } /** * Check to see if we are on the settings page, action hook independent * * @since 2.1 * * @access public * */ public function is_settings_page() { if ( rsssl_is_logged_in_rest() ) { return true; } if ( ! isset( $_SERVER['QUERY_STRING'] ) ) { return false; } if ( isset( $_GET['action'] ) && 'rsssl_rest_api_fallback' === $_GET['action'] ) { return true; } parse_str( $_SERVER['QUERY_STRING'], $params ); return array_key_exists( 'page', $params ) && 'really-simple-security' === $params['page']; } /** * Find the path to wp-config * * @since 2.1 * * @access public * @return string|false * */ public function find_wp_config_path() { $location_of_wp_config = ABSPATH; if ( ! file_exists( ABSPATH . 'wp-config.php' ) && file_exists( dirname( ABSPATH ) . '/wp-config.php' ) ) { $location_of_wp_config = dirname( ABSPATH ); } $location_of_wp_config = trailingslashit( $location_of_wp_config ); $wpconfig_path = $location_of_wp_config . 'wp-config.php'; if ( file_exists( $wpconfig_path ) ) { return $wpconfig_path; } return false; } /** * remove https from defined siteurl and homeurl in the wpconfig, if present * * @since 2.1 * * @access public * * @return void */ public function remove_ssl_from_siteurl_in_wpconfig() { if ( ! rsssl_user_can_manage() ) { return; } $wpconfig_path = $this->find_wp_config_path(); if ( ! empty( $wpconfig_path ) ) { $wpconfig = file_get_contents( $wpconfig_path ); $homeurl_pos = strpos( $wpconfig, "define('WP_HOME','https://" ); $siteurl_pos = strpos( $wpconfig, "define('WP_SITEURL','https://" ); if ( false !== $homeurl_pos || false !== $siteurl_pos ) { if ( is_writable( $wpconfig_path ) ) { $search_array = array( "define('WP_HOME','https://", "define('WP_SITEURL','https://" ); $ssl_array = array( "define('WP_HOME','http://", "define('WP_SITEURL','http://" ); //now replace these urls $wpconfig = str_replace( $search_array, $ssl_array, $wpconfig ); file_put_contents( $wpconfig_path, $wpconfig ); } } } } /** * Checks if the wp config contains any defined siteurl and homeurl * * @return void */ private function check_for_siteurl_in_wpconfig() { if ( ! rsssl_user_can_manage() ) { return; } $wpconfig_path = $this->find_wp_config_path(); if ( empty( $wpconfig_path ) ) { return; } $wpconfig = file_get_contents( $wpconfig_path ); $homeurl_pattern = '/(define\(\s*\'WP_HOME\'\s*,\s*\'http\:\/\/)/'; $siteurl_pattern = '/(define\(\s*\'WP_SITEURL\'\s*,\s*\'http\:\/\/)/'; $this->wpconfig_siteurl_not_fixed = false; if ( preg_match( $homeurl_pattern, $wpconfig ) || preg_match( $siteurl_pattern, $wpconfig ) ) { $this->wpconfig_siteurl_not_fixed = true; } } /** * Runs only when siteurl or homeurl define was found in the wpconfig, with the check_for_siteurl_in_wpconfig function * and only when wpconfig is writable. * * @since 2.1 * * @access public * */ private function fix_siteurl_defines_in_wpconfig() { if ( ! rsssl_user_can_manage() ) { return; } $wpconfig_path = $this->find_wp_config_path(); if ( empty( $wpconfig_path ) ) { return; } $wpconfig = file_get_contents( $wpconfig_path ); $homeurl_pattern = '/(define\(\s*\'WP_HOME\'\s*,\s*\'http\:\/\/)/'; $siteurl_pattern = '/(define\(\s*\'WP_SITEURL\'\s*,\s*\'http\:\/\/)/'; if ( preg_match( $homeurl_pattern, $wpconfig ) || preg_match( $siteurl_pattern, $wpconfig ) ) { if ( is_writable( $wpconfig_path ) ) { $wpconfig = preg_replace( $homeurl_pattern, "define('WP_HOME','https://", $wpconfig ); $wpconfig = preg_replace( $siteurl_pattern, "define('WP_SITEURL','https://", $wpconfig ); file_put_contents( $wpconfig_path, $wpconfig ); } else { //only when siteurl or homeurl is defined in wpconfig, and wpconfig is not writable is there a possible issue because we cannot edit the defined urls. $this->wpconfig_siteurl_not_fixed = true; } } } /** * Check if the wpconfig is already fixed * * @since 2.2 * * @access public * */ public function wpconfig_has_fixes() { $wpconfig_path = $this->find_wp_config_path(); if ( empty( $wpconfig_path ) ) { return false; } $wpconfig = file_get_contents( $wpconfig_path ); //only one of two fixes possible. if ( strpos( $wpconfig, '//Begin Really Simple SSL Load balancing fix' ) !== false ) { return true; } if ( strpos( $wpconfig, '//Begin Really Simple SSL Server variable fix' ) !== false ) { return true; } return false; } /** * In case of load balancer without server https on, add fix in wp-config * * @since 2.1 * * @access public * */ public function wpconfig_loadbalancer_fix() { if ( ! rsssl_user_can_manage() ) { return; } $wpconfig_path = $this->find_wp_config_path(); if ( empty( $wpconfig_path ) ) { return; } $wpconfig = file_get_contents( $wpconfig_path ); if ( strpos( $wpconfig, '//Begin Really Simple SSL Server variable fix' ) !== false ) { return; } if ( strpos( $wpconfig, '//Begin Really Simple SSL Load balancing fix' ) !== false ) { return; } if ( is_writable( $wpconfig_path ) ) { $rule = "\n" . '//Begin Really Simple SSL Server variable fix' . "\n"; $rule .= '$_SERVER["HTTPS"] = "on";' . "\n"; $rule .= '//END Really Simple SSL Server variable fix' . "\n"; $insert_after = '<?php'; $pos = strpos( $wpconfig, $insert_after ); if ( false !== $pos ) { $wpconfig = substr_replace( $wpconfig, $rule, $pos + 1 + strlen( $insert_after ), 0 ); } file_put_contents( $wpconfig_path, $wpconfig ); } } /** * Removing changes made to the wpconfig * * @since 2.1 * * @access public * */ public function remove_wpconfig_edit() { if ( ! rsssl_user_can_manage() ) { return; } $wpconfig_path = $this->find_wp_config_path(); if ( empty( $wpconfig_path ) ) { return; } //check for permissions $wpconfig = file_get_contents( $wpconfig_path ); if ( ! is_writable( $wpconfig_path ) ) { return; } //remove edits $wpconfig = preg_replace( '/\/\/Begin\s?Really\s?Simple\s?SSL\s?Server\s?variable\s?fix.*?\/\/END\s?Really\s?Simple\s?SSL\s?Server\s?variable\s?fix/s', '', $wpconfig ); $wpconfig = preg_replace( "/\n+/", "\n", $wpconfig ); file_put_contents( $wpconfig_path, $wpconfig ); } /** * Changes the siteurl and homeurl to https * * @since 2.0 * * @access public * @return bool */ public function set_siteurl_to_ssl() { $site_url_changed = false; $site_url = get_option( 'siteurl' ); $home_url = get_option( 'home' ); if ( strpos( $site_url, 'https://' ) === false || strpos( $home_url, 'https://' ) === false ) { update_option( 'siteurl', str_replace( 'http://', 'https://', $site_url ) ); update_option( 'home', str_replace( 'http://', 'https://', $home_url ) ); $site_url_changed = true; } //RSSSL has it's own, more extensive mixed content fixer. update_option( 'https_migration_required', false ); return $site_url_changed; } /** * On de-activation, siteurl and homeurl are reset to http * * @since 2.0 * * @access public * */ public function remove_ssl_from_siteurl() { if ( ! rsssl_user_can_manage() ) { return; } $siteurl_no_ssl = str_replace( 'https://', 'http://', get_option( 'siteurl' ) ); $homeurl_no_ssl = str_replace( 'https://', 'http://', get_option( 'home' ) ); update_option( 'siteurl', $siteurl_no_ssl ); update_option( 'home', $homeurl_no_ssl ); } /** * Handles deactivation of this plugin * * @since 2.0 * * @access public * */ public function deactivate() { if ( ! rsssl_user_can_manage() ) { return; } if ( is_multisite() ) { RSSSL()->multisite->deactivate(); } else { $ssl_was_enabled = rsssl_get_option( 'ssl_enabled' ); $this->deactivate_site( $ssl_was_enabled ); } } /**] * Deactivate SSL for the currently loaded site * * @param bool $ssl_was_enabled * * @return void */ public function deactivate_site( bool $ssl_was_enabled ) { if ( ! rsssl_user_can_manage() ) { return; } $this->remove_secure_cookie_settings(); if ( $ssl_was_enabled ) { $this->remove_ssl_from_siteurl(); if ( ! is_multisite() || is_main_site() ) { $this->remove_ssl_from_siteurl_in_wpconfig(); $this->remove_wpconfig_edit(); rsssl_remove_htaccess_security_edits(); } } do_action( 'rsssl_deactivate' ); rsssl_update_option( 'ssl_enabled', false ); } /** * remove secure cookie settings * * @since 4.0.10 * * @access public * */ public function remove_secure_cookie_settings() { if ( ! rsssl_user_can_manage() ) { return; } if ( $this->secure_cookie_settings_status() !== 'set' ) { return; } $wpconfig_path = $this->find_wp_config_path(); if ( empty( $wpconfig_path ) ) { return; } if ( ! is_writable( $wpconfig_path ) ) { return; } if ( ! empty( $wpconfig_path ) ) { $wpconfig = file_get_contents( $wpconfig_path ); $wpconfig = preg_replace( '/\/\/Begin\s?Really\s?Simple\s?SSL\s?session\s?cookie\s?settings.*?\/\/END\s?Really\s?Simple\s?SSL\s?cookie\s?settings/s', '', $wpconfig ); $wpconfig = preg_replace( "/\n+/", "\n", $wpconfig ); file_put_contents( $wpconfig_path, $wpconfig ); } } /** * Checks if we are currently on SSL protocol, but extends standard wp with loadbalancer check. * * @since 2.0 * * @access public * */ public function is_ssl_extended() { $server_var = false; if ( ( isset( $_ENV['HTTPS'] ) && ( 'on' === $_ENV['HTTPS'] ) ) || ( isset( $_SERVER['HTTP_X_FORWARDED_SSL'] ) && ( strpos( $_SERVER['HTTP_X_FORWARDED_SSL'], '1' ) !== false ) ) || ( isset( $_SERVER['HTTP_X_FORWARDED_SSL'] ) && ( strpos( $_SERVER['HTTP_X_FORWARDED_SSL'], 'on' ) !== false ) ) || ( isset( $_SERVER['HTTP_CF_VISITOR'] ) && ( strpos( $_SERVER['HTTP_CF_VISITOR'], 'https' ) !== false ) ) || ( isset( $_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'] ) && ( strpos( $_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'], 'https' ) !== false ) ) || ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && ( strpos( $_SERVER['HTTP_X_FORWARDED_PROTO'], 'https' ) !== false ) ) || ( isset( $_SERVER['HTTP_X_PROTO'] ) && ( strpos( $_SERVER['HTTP_X_PROTO'], 'SSL' ) !== false ) ) ) { $server_var = true; } return is_ssl() || $server_var; } /** * Checks for SSL by opening a test page in the plugin directory * * @since 2.0 * * @access public * */ public function detect_configuration() { $this->configuration_loaded = true; //if current page is on SSL, we can assume SSL is available, even when an errormsg was returned if ( $this->is_ssl_extended() ) { $site_has_ssl = true; } else { //if certificate is valid $site_has_ssl = RSSSL()->certificate->is_valid(); } if ( $site_has_ssl ) { $filecontents = $this->get_test_page_contents(); //get filecontents to check .htaccess redirection method and wpconfig fix //check the type of SSL, either by parsing the returned string, or by reading the server vars. if ( ( false !== strpos( $filecontents, '#CLOUDFRONT#' ) ) || ( isset( $_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'] ) && ( 'https' === $_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'] ) ) ) { $this->ssl_type = 'CLOUDFRONT'; } elseif ( ( false !== strpos( $filecontents, '#CLOUDFLARE#' ) ) || ( isset( $_SERVER['HTTP_CF_VISITOR'] ) && ( false !== strpos( $_SERVER['HTTP_CF_VISITOR'], 'https' ) ) ) ) { $this->ssl_type = 'CLOUDFLARE'; } elseif ( ( false !== strpos( $filecontents, '#LOADBALANCER#' ) ) || ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && ( 'https' === $_SERVER['HTTP_X_FORWARDED_PROTO'] ) ) ) { $this->ssl_type = 'LOADBALANCER'; } elseif ( ( false !== strpos( $filecontents, '#HTTP_X_PROTO#' ) ) || ( isset( $_SERVER['HTTP_X_PROTO'] ) && ( 'SSL' === $_SERVER['HTTP_X_PROTO'] ) ) ) { $this->ssl_type = 'HTTP_X_PROTO'; } elseif ( ( false !== strpos( $filecontents, '#HTTP_X_FORWARDED_SSL_ON#' ) ) || ( isset( $_SERVER['HTTP_X_FORWARDED_SSL'] ) && 'on' === $_SERVER['HTTP_X_FORWARDED_SSL'] ) ) { $this->ssl_type = 'HTTP_X_FORWARDED_SSL_ON'; } elseif ( ( false !== strpos( $filecontents, '#HTTP_X_FORWARDED_SSL_1#' ) ) || ( isset( $_SERVER['HTTP_X_FORWARDED_SSL'] ) && '1' === $_SERVER['HTTP_X_FORWARDED_SSL'] ) ) { $this->ssl_type = 'HTTP_X_FORWARDED_SSL_1'; } elseif ( ( false !== strpos( $filecontents, '#SERVER-HTTPS-ON#' ) ) || ( isset( $_SERVER['HTTPS'] ) && 'on' === strtolower( $_SERVER['HTTPS'] ) ) ) { $this->ssl_type = 'SERVER-HTTPS-ON'; } elseif ( ( false !== strpos( $filecontents, '#SERVER-HTTPS-1#' ) ) || ( isset( $_SERVER['HTTPS'] ) && '1' === strtolower( $_SERVER['HTTPS'] ) ) ) { $this->ssl_type = 'SERVER-HTTPS-1'; } elseif ( ( false !== strpos( $filecontents, '#SERVERPORT443#' ) ) || ( isset( $_SERVER['SERVER_PORT'] ) && ( '443' === $_SERVER['SERVER_PORT'] ) ) ) { $this->ssl_type = 'SERVERPORT443'; } elseif ( ( false !== strpos( $filecontents, '#ENVHTTPS#' ) ) || ( isset( $_ENV['HTTPS'] ) && ( 'on' === $_ENV['HTTPS'] ) ) ) { $this->ssl_type = 'ENVHTTPS'; } elseif ( ( false !== strpos( $filecontents, '#NO KNOWN SSL CONFIGURATION DETECTED#' ) ) ) { //if we are here, SSL was detected, but without any known server variables set. //So we can use this info to set a server variable ourselves. if ( ! $this->wpconfig_has_fixes() ) { $this->no_server_variable = true; } $this->ssl_type = 'NA'; } else { //no valid response, so set to NA $this->ssl_type = 'NA'; } //check for is_ssl() if ( ( ! $this->is_ssl_extended() && ( strpos( $filecontents, '#SERVER-HTTPS-ON#' ) === false ) && ( strpos( $filecontents, '#SERVER-HTTPS-1#' ) === false ) && ( strpos( $filecontents, '#SERVERPORT443#' ) === false ) ) || ( ! is_ssl() && $this->is_ssl_extended() ) ) { //when is_ssl would return false, we should add some code to wp-config.php if ( ! $this->wpconfig_has_fixes() ) { $this->do_wpconfig_loadbalancer_fix = true; } } } $this->check_for_siteurl_in_wpconfig(); rsssl_update_option( 'site_has_ssl', $site_has_ssl ); } /** * Test if the htaccess redirect will work * This way, no redirect loops should occur. * * @since 2.1 * * @access public * */ public function htaccess_test_success() { $test = get_transient( 'rsssl_htaccess_test_success' ); if ( ! $test ) { $filecontents = ''; $testpage_url = trailingslashit( $this->test_url() ) . 'testssl/'; switch ( $this->ssl_type ) { case 'CLOUDFRONT': $testpage_url .= 'cloudfront'; break; case 'CLOUDFLARE': $testpage_url .= 'cloudflare'; break; case 'LOADBALANCER': $testpage_url .= 'loadbalancer'; break; case 'HTTP_X_PROTO': $testpage_url .= 'serverhttpxproto'; break; case 'HTTP_X_FORWARDED_SSL_ON': $testpage_url .= 'serverhttpxforwardedsslon'; break; case 'HTTP_X_FORWARDED_SSL_1': $testpage_url .= 'serverhttpxforwardedssl1'; break; case 'SERVER-HTTPS-ON': $testpage_url .= 'serverhttpson'; break; case 'SERVER-HTTPS-1': $testpage_url .= 'serverhttps1'; break; case 'SERVERPORT443': $testpage_url .= 'serverport443'; break; case 'ENVHTTPS': $testpage_url .= 'envhttps'; break; default: $testpage_url .= 'serverhttpson'; } $testpage_url .= ( '/ssl-test-page.html' ); $response = wp_remote_get( $testpage_url ); if ( is_array( $response ) ) { $filecontents = wp_remote_retrieve_body( $response ); } if ( ! is_wp_error( $response ) && ( strpos( $filecontents, '#SSL TEST PAGE#' ) !== false ) ) { $test = 'success'; } else { //.htaccess rewrite rule seems to be giving problems. $test = 'error'; } if ( empty( $filecontents ) ) { $test = 'no-response'; } set_transient( 'rsssl_htaccess_test_success', $test, 600 ); } if ( 'no-response' === $test || 'error' === $test ) { return false; } if ( 'success' === $test ) { return true; } } /** * Get an url with which we can test the SSL connection and htaccess redirect rules. * * @since 2.0 * * @access public * */ public function test_url() { $plugin_url = str_replace( 'http://', 'https://', trailingslashit( rsssl_url ) ); $https_home_url = str_replace( 'http://', 'https://', home_url() ); //in some case we get a relative url here, so we check that. //we compare to urls replaced to https, in case one of them is still on http. if ( ( strpos( $plugin_url, 'https://' ) === false ) && ( strpos( $plugin_url, $https_home_url ) === false ) ) { //make sure we do not have a slash at the start $plugin_url = ltrim( $plugin_url, '/' ); $plugin_url = trailingslashit( home_url() ) . $plugin_url; } //for subdomains or domain mapping situations, we have to convert the plugin_url from main site to the subdomain url. if ( is_multisite() && ! is_main_site( get_current_blog_id() ) && ! RSSSL()->multisite->is_multisite_subfolder_install() ) { $mainsiteurl = trailingslashit( str_replace( 'http://', 'https://', network_site_url() ) ); $home = trailingslashit( $https_home_url ); $plugin_url = str_replace( $mainsiteurl, $home, $plugin_url ); } return $plugin_url; } /** * @return bool * * Check if the .htaccess redirect is allowed on this setup * * @since 2.0 * */ public function htaccess_redirect_allowed() { if ( is_multisite() && ! $this->can_apply_networkwide() ) { return false; } if ( RSSSL()->server->uses_htaccess() ) { return true; } return false; } /** * @return bool * * Checks if the htaccess contains redirect rules, either actual redirect or a rsssl marker. * * @since 2.0 * */ public function htaccess_contains_redirect_rules() { if ( ! file_exists( $this->htaccess_file() ) ) { return false; } $pattern = '/RewriteRule \^\(\.\*\)\$ https:\/\/%{HTTP_HOST}(\/\$1|%{REQUEST_URI}) (\[R=301,.*L\]|\[L,.*R=301\])/i'; $htaccess = file_get_contents( $this->htaccess_file() ); return preg_match( $pattern, $htaccess ); } /** * Checks if the htaccess contains the Really Simple SSL comment. * */ public function contains_rsssl_rules() { if ( ! file_exists( $this->htaccess_file() ) ) { return false; } $htaccess = file_get_contents( $this->htaccess_file() ); if ( preg_match( '/BEGIN rlrssslReallySimpleSSL/', $htaccess, $matches ) || preg_match( '/BEGIN Really Simple SSL Redirect/', $htaccess, $matches ) || preg_match( '/Begin Really Simple Security/', $htaccess, $matches ) ) { return false; } return true; } /** * @return bool * * Checks if a 301 redirect is set * this is the case if either the wp_redirect is set, or the htaccess redirect is set. * */ public function has_301_redirect() { if ( 'htaccess' === rsssl_get_option( 'redirect' ) || 'wp_redirect' === rsssl_get_option( 'redirect' ) ) { return true; } if ( RSSSL()->server->uses_htaccess() && $this->htaccess_contains_redirect_rules() ) { return true; } return false; } /** * returns list of recommended, but not active security headers for this site * returns empty array if no .htacces file exists * Uses cURL, fallback to .htaccess check upon cURL failure * @return array * * @since 4.0 * * @access public * */ public function get_recommended_security_headers() { $used_headers = array(); $not_used_headers = array(); $check_headers = apply_filters( 'rsssl_recommended_security_headers', array( array( 'name' => 'Upgrade Insecure Requests', 'pattern' => 'upgrade-insecure-requests', ), array( 'name' => 'X-XSS protection', 'pattern' => 'X-XSS-Protection', ), array( 'name' => 'X-Content Type Options', 'pattern' => 'X-Content-Type-Options', ), array( 'name' => 'Referrer-Policy', 'pattern' => 'Referrer-Policy', ), array( 'name' => 'X-Frame-Options', 'pattern' => 'X-Frame-Options', ), array( 'name' => 'Permissions-Policy', 'pattern' => 'Permissions-Policy', ), array( 'name' => 'HTTP Strict Transport Security', 'pattern' => 'Strict-Transport-Security', ), ) ); // cURL check $curl_check_done = get_transient( 'rsssl_can_use_curl_headers_check' );//no, yes or false if ( ! $curl_check_done ) { //set a default set_transient( 'rsssl_can_use_curl_headers_check', 'no', WEEK_IN_SECONDS ); if ( function_exists( 'curl_init' ) ) { $url = get_site_url(); $ch = curl_init(); $headers = []; curl_setopt( $ch, CURLOPT_URL, $url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt( $ch, CURLOPT_TIMEOUT, 3 ); //timeout in seconds curl_setopt( $ch, CURLOPT_HEADERFUNCTION, function ( $curl, $header ) use ( &$headers ) { $len = strlen( $header ); $header = explode( ':', $header, 2 ); if ( count( $header ) < 2 ) { return $len; } $headers[ strtolower( trim( $header[0] ) ) ][] = trim( $header[1] ); return $len; } ); curl_exec( $ch ); // Check if any headers have been found if ( ! empty( $headers ) && is_array( $headers ) ) { // Loop through each header and check if it's one of the recommended security headers. If so, add to used_headers array. foreach ( $headers as $name => $value ) { foreach ( $check_headers as $check_header ) { // If the pattern occurs in either the header name or value, it's a security header. if ( stripos( $name, $check_header['pattern'] ) !== false || stripos( $value[0], $check_header['pattern'] ) !== false ) { // Prevent duplicate entries if ( ! in_array( $check_header['name'], $used_headers, true ) ) { $used_headers[] = $check_header['name']; } } } } // Now check which headers are unused. Compare the used headers against the $check_headers array. foreach ( $check_headers as $header ) { if ( in_array( $header['name'], $used_headers, true ) ) { // Header is used, do not add to unused array continue; } else { // Header is not used. Add to not used array $not_used_headers[] = $header['name']; } } $curl_check_done = $not_used_headers; } else { $curl_check_done = 'no'; } } else { $curl_check_done = 'no'; } set_transient( 'rsssl_can_use_curl_headers_check', $curl_check_done, WEEK_IN_SECONDS ); } if ( 'no' === $curl_check_done ) { if ( RSSSL()->server->uses_htaccess() && file_exists( $this->htaccess_file() ) ) { $htaccess = file_get_contents( $this->htaccess_file() ); foreach ( $check_headers as $check_header ) { if ( ! preg_match( '/' . $check_header['pattern'] . '/', $htaccess, $check ) ) { $not_used_headers[] = $check_header['name']; } } } } else { $not_used_headers = $curl_check_done; } return $not_used_headers; } /** * Check if the recommended headers are enabled * * @return bool */ public function recommended_headers_enabled() { $unused_headers = $this->get_recommended_security_headers(); if ( empty( $unused_headers ) ) { return true; } return false; } /** * Regenerate the wp rocket .htaccess rules */ public function maybe_flush_wprocket_htaccess( $field_id, $field_value, $prev_value, $field_type ) { if ( 'redirect' === $field_id && $field_value !== $prev_value && rsssl_user_can_manage() ) { if ( function_exists( 'flush_rocket_htaccess' ) ) { flush_rocket_htaccess(); } if ( function_exists( 'rocket_generate_config_file' ) ) { rocket_generate_config_file(); } } } /** * Return .htaccess redirect when using WP Rocket * @return string */ public function add_htaccess_redirect_before_wp_rocket() { $rules = $this->get_redirect_rules(); if ( ! empty( $rules ) ) { $start = "\n" . '#Begin Really Simple SSL Redirect'; $end = "\n" . '#End Really Simple SSL Redirect' . "\n"; $rules = $start . $rules . $end; } return $rules; } /** * Check if the mixed content fixer is functioning on the front end, by scanning the source of the homepage for the fixer comment. * @since 2.2 * @access public * @return string */ public function mixed_content_fixer_detected() { //no need to check for the mixed content fixer if it's not enabled yet. if ( ! rsssl_get_option( 'mixed_content_fixer' ) ) { return 'not-enabled'; } //it's enabled, so check if we can find it on the front-end. $status = 0; $result = get_transient( 'rsssl_mixed_content_fixer_detected' ); if ( ! $result ) { $web_source = ''; //check if the mixed content fixer is active $response = wp_remote_get( home_url() ); if ( ! is_wp_error( $response ) ) { if ( is_array( $response ) ) { $status = wp_remote_retrieve_response_code( $response ); $web_source = wp_remote_retrieve_body( $response ); } if ( 200 !== $status ) { //Could not connect to website $result = 'no-response'; } elseif ( strpos( $web_source, 'data-rsssl=' ) === false ) { //Mixed content fixer marker not found in the websource $result = 'not-found'; } else { $result = 'found'; } } if ( is_wp_error( $response ) ) { //Fallback since most errors will be cURL errors, Error encountered while retrieving the webpage. $result = 'error'; $error = $response->get_error_message(); set_transient( 'rsssl_curl_error', $error, DAY_IN_SECONDS ); if ( ! empty( $error ) && ( strpos( $error, 'cURL error' ) !== false ) ) { $result = 'curl-error'; } } set_transient( 'rsssl_mixed_content_fixer_detected', $result, 600 ); } return 'found' === $result; } /** * Create redirect rules for the .htaccess. * @since 2.1 * * @access public * * @param bool $manual * * @return string */ public function get_redirect_rules( $manual = false ) { //ensure the configuration check has run always. if ( ! $this->configuration_loaded ) { $this->detect_configuration(); } //only add the redirect rules when a known type of SSL was detected. Otherwise, we use https. $rule = ''; //if the htaccess test was successfull, and we know the redirect type, edit if ( rsssl_get_option( 'ssl_enabled' ) && 'htaccess' === rsssl_get_option( 'redirect' ) && ( $manual || $this->htaccess_test_success() ) && 'NA' !== $this->ssl_type ) { $rule .= "\n" . '<IfModule mod_rewrite.c>' . "\n"; $rule .= 'RewriteEngine on' . "\n"; if ( 'SERVER-HTTPS-ON' === $this->ssl_type ) { $rule .= 'RewriteCond %{HTTPS} !=on [NC]' . "\n"; } elseif ( 'SERVER-HTTPS-1' === $this->ssl_type ) { $rule .= 'RewriteCond %{HTTPS} !=1' . "\n"; } elseif ( 'LOADBALANCER' === $this->ssl_type ) { $rule .= 'RewriteCond %{HTTP:X-Forwarded-Proto} !https' . "\n"; } elseif ( 'HTTP_X_PROTO' === $this->ssl_type ) { $rule .= 'RewriteCond %{HTTP:X-Proto} !SSL' . "\n"; } elseif ( 'CLOUDFLARE' === $this->ssl_type ) { $rule .= "RewriteCond %{HTTP:CF-Visitor} '" . '"scheme":"http"' . "'" . "\n";//some concatenation to get the quotes right. } elseif ( 'SERVERPORT443' === $this->ssl_type ) { $rule .= 'RewriteCond %{SERVER_PORT} !443' . "\n"; } elseif ( 'CLOUDFRONT' === $this->ssl_type ) { $rule .= 'RewriteCond %{HTTP:CloudFront-Forwarded-Proto} !https' . "\n"; } elseif ( 'HTTP_X_FORWARDED_SSL_ON' === $this->ssl_type ) { $rule .= 'RewriteCond %{HTTP:X-Forwarded-SSL} !on' . "\n"; } elseif ( 'HTTP_X_FORWARDED_SSL_1' === $this->ssl_type ) { $rule .= 'RewriteCond %{HTTP:X-Forwarded-SSL} !=1' . "\n"; } elseif ( 'ENVHTTPS' === $this->ssl_type ) { $rule .= 'RewriteCond %{ENV:HTTPS} !=on' . "\n"; } //fastest cache compatibility if ( class_exists( 'WpFastestCache' ) ) { $rule .= 'RewriteCond %{REQUEST_URI} !wp-content\/cache\/(all|wpfc-mobile-cache)' . "\n"; } //Exclude .well-known/acme-challenge for Let's Encrypt validation if ( $this->has_acme_challenge_directory() ) { $rule .= 'RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/' . "\n"; } $rule .= 'RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]' . "\n"; $rule .= '</IfModule>' . "\n"; } $rule = apply_filters( 'rsssl_htaccess_output', $rule ); return preg_replace( "/\n+/", "\n", $rule ); } /** * * @return bool * since 3.1 * Check if .well-known/acme-challenge directory exists * @access public */ public function has_acme_challenge_directory() { if ( file_exists( "$this->abs_path.well-known/acme-challenge" ) ) { return true; } return false; } /** * * @return bool * since 3.1 * Check if there are already .well-known rules in .htaccess file * @access public * */ public function has_well_known_needle() { $file = $this->htaccess_file(); if ( ! file_exists( $file ) ) { return false; } $htaccess = file_get_contents( $file ); $well_known_needle = 'RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/'; if ( strpos( $htaccess, $well_known_needle ) !== false ) { return true; } return false; } /** * Shows a notice, asking users for a review. */ public function show_leave_review_notice() { if ( defined( 'rsssl_pro' ) ) { return; } if ( rsssl_get_option( 'dismiss_all_notices' ) ) { return; } // update_option('rsssl_activation_timestamp', strtotime('-2 month'), false ); // rsssl_update_option('review_notice_shown', false); //prevent showing the review on edit screen, as gutenberg removes the class which makes it editable. $screen = get_current_screen(); if ( $screen && 'post' === $screen->base ) { return; } //this user has never had the review notice yet. if ( rsssl_get_option( 'ssl_enabled' ) && ! get_option( 'rsssl_activation_timestamp' ) ) { $month = rand( 0, 11 ); $trigger_notice_date = time() + $month * MONTH_IN_SECONDS; update_option( 'rsssl_activation_timestamp', $trigger_notice_date, false ); update_option( 'rsssl_before_review_notice_user', true, false ); } if ( ! rsssl_get_option( 'review_notice_shown' ) && get_option( 'rsssl_activation_timestamp' ) && get_option( 'rsssl_activation_timestamp' ) < strtotime( '-1 month' ) ) { //checking legacy options, just in case. $options = get_option( 'rlrsssl_options' ); if ( is_array( $options ) && isset( $options['review_notice_shown'] ) && $options['review_notice_shown'] ) { rsssl_update_option( 'review_notice_shown', true ); return; } add_action( 'admin_print_footer_scripts', array( $this, 'insert_dismiss_review' ) ); ?> <style> .rsssl-review { border-left:4px solid #333 } .rsssl-review .rsssl-container { display: flex; padding:12px; } .rsssl-review .rsssl-container .dashicons { margin-right:5px; margin-left:15px; } .rsssl-review .rsssl-review-image img{ margin-top:0.5em; } .rsssl-review .rsssl-buttons-row { margin-top:10px; display: flex; align-items: center; } </style> <?php if ( is_rtl() ) { ?> <style> .rsssl-review .rsssl-container .dashicons { margin-left:5px; margin-right:15px; } .rsssl-review { border-right:4px solid #333 } </style> <?php } ?> <div id="message" class="updated fade notice is-dismissible rsssl-review really-simple-plugins"> <div class="rsssl-container"> <div class="rsssl-review-image"><img width=80px" src="<?php echo rsssl_url; ?>/assets/img/icon.png" alt="review-logo"></div> <div style="margin-left:30px"> <?php if ( get_option( 'rsssl_before_review_notice_user' ) ) { ?> <p> <?php // translators: %1$ and %2$ are replaced with opening and closing a tag containing hyperlink printf( __( 'Hi, Really Simple SSL has kept your site secure for some time now, awesome! If you have a moment, please consider leaving a review on WordPress.org to spread the word. We greatly appreciate it! If you have any questions or feedback, leave us a %1$smessage%2$s.', 'really-simple-ssl' ), '<a href="https://really-simple-ssl.com/contact" rel="noopener noreferrer" target="_blank">', '</a>' ); ?> </p> <?php } else { ?> <p> <?php // translators: %1$ and %2$ are replaced with opening and closing a tag containing hyperlink printf( __( 'Hi, Really Simple SSL has kept your site secure for a month now, awesome! If you have a moment, please consider leaving a review on WordPress.org to spread the word. We greatly appreciate it! If you have any questions or feedback, leave us a %1$smessage%2$s.', 'really-simple-ssl' ), '<a href="https://really-simple-ssl.com/contact" rel="noopener noreferrer" target="_blank">', '</a>' ); ?> </p> <?php } ?> <i>- Rogier</i> <div class="rsssl-buttons-row"> <a class="button button-primary" target="_blank" rel="noopener noreferrer" href="https://wordpress.org/support/plugin/really-simple-ssl/reviews/#new-post"><?php _e( 'Leave a review', 'really-simple-ssl' ); ?></a> <div class="dashicons dashicons-calendar"></div><a rel="noopener noreferrer" href=" <?php echo esc_url( add_query_arg( array( 'page' => 'really-simple-security', 'rsssl_review_notice' => 'later', ), rsssl_admin_url() ) ); ?> "><?php _e( 'Maybe later', 'really-simple-ssl' ); ?></a> <div class="dashicons dashicons-no-alt"></div><a rel="noopener noreferrer" href=" <?php echo esc_url( add_query_arg( array( 'page' => 'really-simple-security', 'rsssl_review_notice' => 'dismiss', ), rsssl_admin_url() ) ); ?> "><?php _e( 'Don\'t show again', 'really-simple-ssl' ); ?></a> </div> </div> </div> </div> <?php } } /** * Insert some ajax script to dismiss the review notice, and stop nagging about it * * @since 3.0 * * @access public */ public function insert_dismiss_review() { ?> <script> document.addEventListener('click', e => { if ( e.target.closest('.rsssl-review.notice.is-dismissible .notice-dismiss') ) { window.location.href=' <?php echo esc_url_raw( add_query_arg( array( 'page' => 'really-simple-security', 'rsssl_review_notice' => 'dismiss', ), rsssl_admin_url() ) ); ?> '; } }); </script> <?php } /** * Dismiss review notice of dismissed by the user */ public function maybe_dismiss_review_notice() { if ( isset( $_GET['rsssl_review_notice'] ) && 'dismiss' === $_GET['rsssl_review_notice'] ) { rsssl_update_option( 'review_notice_shown', true ); } if ( isset( $_GET['rsssl_review_notice'] ) && 'dismiss' === $_GET['rsssl_review_notice'] ) { //Reset activation timestamp, notice will show again in one month. update_option( 'rsssl_activation_timestamp', time(), false ); } } /** * Show notices * * @since 2.0 * * @access public * */ public function show_notices() { if ( ! rsssl_user_can_manage() ) { return; } require_once ABSPATH . 'wp-admin/includes/screen.php'; //temp fix for WordPress until it gets fixed in core //prevent showing the review on edit screen, as gutenberg removes the class which makes it editable. $screen = get_current_screen(); if ( $screen && 'post' === $screen->base ) { return; } //don't show admin notices on our own settings page: we have the warnings there if ( $this->is_settings_page() ) { return; } $notices = $this->get_notices_list( array( 'admin_notices' => true ) ); if ( is_array( $notices ) ) { foreach ( $notices as $id => $notice ) { $notice = $notice['output']; if ( isset( $notice['msg'] ) ) { //if there is an open status, we change error to warning. $class = 'open' === $notice['status'] ? 'warning' : 'error'; $more_info = $notice['url'] ?? false; $dismiss_id = isset( $notice['dismissible'] ) && $notice['dismissible'] ? $id : false; echo $this->notice_html( $class . ' ' . $id, $notice['msg'], $more_info, $dismiss_id ); } } } } /** * * * Add an update count to the WordPress admin Settings menu item * Doesn't work when the Admin Menu Editor plugin is active * @since 3.1.6 */ public function add_plus_ones() { if ( ! rsssl_user_can_manage() ) { return; } if ( is_multisite() && rsssl_is_networkwide_active() ) { return; } $count = $this->count_plusones(); if ( $count > 0 ) { global $menu; foreach ( $menu as $index => $menu_item ) { if ( ! isset( $menu_item[2], $menu_item[0] ) ) { continue; } if ( 'options-general.php' === $menu_item[2] ) { $pattern = '/<span.*>([1-9])<\/span><\/span>/i'; if ( preg_match( $pattern, $menu_item[0], $matches ) ) { if ( isset( $matches[1] ) ) { $count = (int) $count + (int) $matches[1]; } } $menu[ $index ][0] = __( 'Settings', 'really-simple-ssl' ) . "<span class='update-plugins rsssl-update-count'><span class='update-count'>$count</span></span>"; } } } } /** * Helper function to check if the wpconfig needs fixing * Used in notices * * @return bool */ public function wpconfig_siteurl_not_fixed() { return $this->wpconfig_siteurl_not_fixed; } /** * Helper function to check if the wpconfig needs fixing * Used in notices * * @return bool */ public function no_server_variable() { return $this->no_server_variable; } /** * Helper function to check if a site url has to be fixed * Used in notices * * @return bool */ public function do_wpconfig_loadbalancer_fix() { return $this->do_wpconfig_loadbalancer_fix; } /** * Clear the cached admin notices list * @return void */ public function clear_admin_notices_cache() { delete_option( 'rsssl_admin_notices' ); delete_option( 'rsssl_plusone_count' ); } /** * Get array of notices * - condition: function returning boolean, if notice should be shown or not * - callback: function, returning boolean or string, with multiple possible answers, and resulting messages and icons * @param array $args * @return array */ public function get_notices_list( $args = array() ) { if ( ! rsssl_user_can_manage() ) { return []; } $icon_labels = [ 'success' => __( 'Completed', 'really-simple-ssl' ), 'warning' => __( 'Warning', 'really-simple-ssl' ), 'open' => __( 'Open', 'really-simple-ssl' ), 'premium' => __( 'Upgrade', 'really-simple-ssl' ), ]; $defaults = array( 'admin_notices' => false, 'premium_only' => false, 'dismiss_on_upgrade' => false, 'status' => [ 'open', 'warning' ], //status can be "all" (all tasks, regardless of dismissed or open), "open" (not success/completed) or "completed" ); $args = wp_parse_args( $args, $defaults ); //ensure the status is an an array $args['status'] = is_array( $args['status'] ) ? $args['status'] : [ 'open', 'warning' ]; //if we're on the settings page, we need to clear the admin notices transient, because this list won't get refreshed otherwise if ( $this->is_settings_page() && ! get_option( 'rsssl_6_notice_dismissed' ) ) { update_option( 'rsssl_6_notice_dismissed', true, false ); } if ( ! $this->is_settings_page() ) { $cached_notices = get_option( 'rsssl_admin_notices' ); if ( 'empty' === $cached_notices ) { return []; } if ( false !== $cached_notices ) { return $cached_notices; } } //not cached, set a default here //only cache if the admin_notices are retrieved. if ( $args['admin_notices'] ) { update_option( 'rsssl_admin_notices', 'empty' ); } $rules = $this->get_redirect_rules( true ); if ( 'NA' !== $this->ssl_type ) { $arr_search = array( '<', '>', "\n" ); $arr_replace = array( '<', '>', '<br>' ); $rules = str_replace( $arr_search, $arr_replace, $rules ); $rules = substr( $rules, 4, -4 ); } else { $rules = __( 'No recommended redirect rules detected.', 'really-simple-ssl' ); } $rules = '<br><code>' . $rules . '</code><br>'; $notice_defaults = array( 'condition' => array(), 'callback' => false, ); $curl_error = get_transient( 'rsssl_curl_error' ); $current_plugin_folder = $this->get_current_rsssl_free_dirname(); //get expiry date, if we have one. $certinfo = get_transient( 'rsssl_certinfo' ); $end_date = $certinfo['validTo_time_t'] ?? false; $expiry_date = ! empty( $end_date ) ? gmdate( get_option( 'date_format' ), $end_date ) : __( '(Unknown)', 'really-simple-ssl' ); $notices = array( 'load_balancer_fix' => array( 'condition' => [ 'NOT rsssl_ssl_enabled' ], 'callback' => 'RSSSL()->admin->do_wpconfig_loadbalancer_fix', 'score' => 30, 'output' => array( 'true' => array( 'msg' => __( 'Your wp-config.php has to be edited, but is not writable.', 'really-simple-ssl' ) . ' ' . __( 'Set your wp-config.php to writable and reload this page.', 'really-simple-ssl' ) . ' ' . __( 'To safely enable SSL on your server configuration, you should add the following line of code to your wp-config.php.', 'really-simple-ssl' ) . '<br><code> //Begin Really Simple SSL Server variable fix<br>    $_SERVER["HTTPS"] = "on";<br> //END Really Simple SSL </code><br>', 'icon' => 'warning', 'admin_notice' => true, 'plusone' => true, 'dismissible' => false, 'url' => 'https://really-simple-ssl.com/knowledge-base/htaccess-wp-config-files-not-writable/', ), ), ), 'site_url_in_wpconfig' => array( 'condition' => [ 'NOT rsssl_ssl_enabled' ], 'callback' => 'RSSSL()->admin->wpconfig_siteurl_not_fixed', 'score' => 30, 'output' => array( 'true' => array( 'msg' => __( 'A definition of a site url or home url was detected in your wp-config.php, but the file is not writable.', 'really-simple-ssl' ) . ' ' . __( 'Set your wp-config.php to writable and reload this page.', 'really-simple-ssl' ), 'icon' => 'warning', 'admin_notice' => true, 'plusone' => true, 'dismissible' => true, 'url' => 'https://really-simple-ssl.com/knowledge-base/htaccess-wp-config-files-not-writable/', ), ), ), 'deactivation_file_detected' => array( 'callback' => 'RSSSL()->admin->check_for_uninstall_file', 'score' => 30, 'output' => array( 'true' => array( 'msg' => __( "The 'force-deactivate.php' file has to be renamed to .txt. Otherwise your ssl can be deactivated by anyone on the internet.", 'really-simple-ssl' ) . ' ' . '<a href="' . add_query_arg( array( 'page' => 'really-simple-security' ), rsssl_admin_url() ) . '">' . __( 'Check again', 'really-simple-ssl' ) . '</a>', 'icon' => 'warning', 'admin_notice' => true, 'plusone' => true, 'dismissible' => false, ), ), ), 'non_default_plugin_folder' => array( 'callback' => 'RSSSL()->admin->uses_default_folder_name', 'score' => 30, 'output' => array( 'false' => array( 'msg' => // translators: %s is replaced with the folder name. sprintf( __( 'The Really Simple SSL plugin folder in the /wp-content/plugins/ directory has been renamed to %1$s. This might cause issues when deactivating, or with premium add-ons. To fix this you can rename the Really Simple SSL folder back to the default %2$s.', 'really-simple-ssl' ), '<b>' . $current_plugin_folder . '</b>', '<b>really-simple-ssl</b>' ), 'url' => 'https://really-simple-ssl.com/knowledge-base/why-you-should-use-the-default-plugin-folder-name-for-really-simple-ssl/', 'icon' => 'warning', ), ), ), 'mixed_content_scan' => array( 'dismiss_on_upgrade' => true, 'condition' => array( 'rsssl_ssl_enabled' ), 'callback' => '_true_', 'score' => 5, 'output' => array( 'true' => array( 'url' => 'https://really-simple-ssl.com/steps-after-activating-ssl', 'msg' => __( 'SSL is now activated. Follow the three steps in this article to check if your website is secure.', 'really-simple-ssl' ), 'icon' => 'open', 'dismissible' => true, 'plusone' => true, ), ), ), 'ssl_enabled' => array( 'callback' => 'rsssl_ssl_enabled', 'score' => 30, 'output' => array( 'true' => array( 'msg' => __( 'SSL is enabled on your site.', 'really-simple-ssl' ), 'icon' => 'success', ), 'false' => array( 'msg' => __( 'SSL is not enabled yet.', 'really-simple-ssl' ), 'title' => 'SSL', 'icon' => 'warning', 'plusone' => true, ), ), 'menu_id' => 'general', 'field_id' => 'mixed_content_fixer', ), 'ssl_detected' => array( 'condition' => array( 'NOT rsssl_ssl_detection_overridden' ), 'callback' => 'rsssl_ssl_detected', 'score' => 30, 'output' => array( 'fail' => array( 'url' => 'https://really-simple-ssl.com/wp-config-fix-needed', 'msg' => __( 'The wp-config.php file is not writable, and needs to be edited. Please set this file to writable.', 'really-simple-ssl' ), 'icon' => 'warning', ), 'no-ssl-detected' => array( 'title' => __( 'No SSL detected', 'really-simple-ssl' ), 'msg' => __( 'No SSL detected. Use the retry button to check again.', 'really-simple-ssl' ) . '<form class="rsssl-task-form" action="" method="POST"><a href="' . add_query_arg( array( 'page' => 'really-simple-security', 'letsencrypt' => '1', ), rsssl_admin_url() ) . '#letsencrypt" type="submit" class="button button-default rsssl-button-small">' . __( 'Install SSL certificate', 'really-simple-ssl' ) . '</a>' . '<input type="submit" class="button button-default rsssl-button-small" value="' . __( 'Retry', 'really-simple-ssl' ) . '" id="rsssl_recheck_certificate" name="rsssl_recheck_certificate"></form>', 'icon' => 'warning', 'dismissible' => rsssl_get_option( 'ssl_enabled' ), ), 'no-response' => array( 'title' => __( 'Could not test certificate', 'really-simple-ssl' ), 'msg' => __( 'Automatic certificate detection is not possible on your server.', 'really-simple-ssl' ) . '<br>' . '<a href="' . add_query_arg( array( 'page' => 'really-simple-security', 'letsencrypt' => 1, ), rsssl_admin_url() ) . '#letsencrypt" type="submit" class="button button-default rsssl-button-small">' . __( 'Install SSL certificate', 'really-simple-ssl' ) . '</a>' . '<button class="button button-default rsssl-button-small" id="ssl-labs-check-button">' . __( 'Check manually', 'really-simple-ssl' ) . '</button>', 'icon' => 'warning', 'dismissible' => true, ), 'ssl-detected' => array( 'msg' => __( 'An SSL certificate was detected on your site.', 'really-simple-ssl' ), 'icon' => 'success', ), 'about-to-expire' => array( 'title' => __( 'Your SSL certificate will expire soon.', 'really-simple-ssl' ), 'msg' => // translators: %s is replaced with date. sprintf( __( 'SSL certificate will expire on %s.', 'really-simple-ssl' ), $expiry_date ) . ' ' . __( 'If your hosting provider auto-renews your certificate, no action is required. Alternatively, you have the option to generate an SSL certificate with Really Simple SSL.', 'really-simple-ssl' ) . ' ' . // translators: %1$ and %2$s are replaced with the opening and closing tag with link. sprintf( __( 'Depending on your hosting provider, %1$smanual installation%2$s may be required.', 'really-simple-ssl' ), '<a target="_blank" rel="noopener noreferrer" href="https://really-simple-ssl.com/install-ssl-certificate">', '</a>' ) . '<br><br><form action="" method="POST"><a href="' . add_query_arg( array( 'page' => 'really-simple-security', 'letsencrypt' => 1, ), rsssl_admin_url() ) . '#letsencrypt" type="submit" class="button button-default">' . __( 'Install SSL certificate', 'really-simple-ssl' ) . '</a>' . ' <input type="submit" class="button button-default" value="' . __( 'Re-check', 'really-simple-ssl' ) . '" id="rsssl_recheck_certificate" name="rsssl_recheck_certificate"></form>', 'icon' => 'warning', ), ), ), 'mixed_content_fixer_detected' => array( 'condition' => array( 'rsssl_ssl_enabled' ), 'callback' => 'RSSSL()->admin->mixed_content_fixer_detected', 'score' => 10, 'output' => array( 'found' => array( 'msg' => __( 'Mixed content fixer was successfully detected on the front-end.', 'really-simple-ssl' ), 'icon' => 'success', ), 'no-response' => array( 'url' => 'https://really-simple-ssl.com/knowledge-base/how-to-fix-no-response-from-webpage-warning/', 'msg' => __( 'Really Simple SSL has received no response from the webpage.', 'really-simple-ssl' ), 'icon' => 'open', 'dismissible' => true, 'plusone' => true, ), 'not-found' => array( 'url' => 'https://really-simple-ssl.com/knowledge-base/how-to-check-if-the-mixed-content-fixer-is-active/', 'msg' => __( 'The mixed content fixer is active, but was not detected on the frontpage.', 'really-simple-ssl' ), 'icon' => 'open', 'dismissible' => true, ), 'error' => array( 'msg' => __( 'Error occurred when retrieving the webpage.', 'really-simple-ssl' ), 'icon' => 'open', 'dismissible' => true, ), 'not-enabled' => array( 'highlight_field_id' => 'mixed_content_fixer', 'msg' => __( 'Mixed content fixer not enabled. Enable the option to fix mixed content on your site.', 'really-simple-ssl' ), 'icon' => 'open', 'dismissible' => true, ), 'curl-error' => array( 'url' => 'https://really-simple-ssl.com/knowledge-base/curl-errors/', 'msg' => // translators: %s is replaced with the error description. sprintf( __( "The mixed content fixer could not be detected due to a cURL error: %s. cURL errors are often caused by an outdated version of PHP or cURL and don't affect the front-end of your site. Contact your hosting provider for a fix.", 'really-simple-ssl' ), '<b>' . $curl_error . '</b>' ), 'icon' => 'open', 'dismissible' => true, ), ), ), 'wordpress_redirect' => array( 'condition' => array( 'rsssl_ssl_enabled', 'NOT RSSSL()->admin->htaccess_redirect_allowed' ), 'callback' => 'RSSSL()->admin->has_301_redirect', 'score' => 10, 'output' => array( 'true' => array( 'msg' => __( '301 redirect to https set.', 'really-simple-ssl' ), 'icon' => 'success', ), 'false' => array( 'msg' => __( 'No 301 redirect is set. Enable the WordPress 301 redirect in the settings to get a 301 permanent redirect.', 'really-simple-ssl' ), 'icon' => 'open', ), ), ), 'check_redirect' => array( 'condition' => array( 'rsssl_ssl_enabled', 'RSSSL()->admin->htaccess_redirect_allowed' ), 'callback' => 'RSSSL()->admin->redirect_status', 'score' => 10, 'show_with_options' => [ 'redirect', ], 'output' => array( 'htaccess-redirect-set' => array( 'title' => __( '301 .htaccess redirect', 'really-simple-ssl' ), 'msg' => __( 'The 301 redirect with .htaccess to HTTPS is now enabled.', 'really-simple-ssl' ), 'icon' => 'success', ), 'wp-redirect-to-htaccess' => array( 'highlight_field_id' => 'redirect', 'title' => __( '301 .htaccess redirect', 'really-simple-ssl' ), 'msg' => __( 'WordPress 301 redirect enabled. We recommend to enable a 301 .htaccess redirect.', 'really-simple-ssl' ), 'icon' => 'open', 'plusone' => RSSSL()->server->uses_htaccess(), 'dismissible' => true, ), 'no-redirect-set' => array( 'highlight_field_id' => 'redirect', 'msg' => __( 'Enable a .htaccess redirect or PHP redirect in the settings to create a 301 redirect.', 'really-simple-ssl' ), 'icon' => 'open', 'dismissible' => false, ), 'htaccess-rules-test-failed' => array( 'title' => __( '.htaccess redirect.', 'really-simple-ssl' ), 'url' => 'https://really-simple-ssl.com/knowledge-base/manually-insert-htaccess-redirect-http-to-https/', 'msg' => __( 'The .htaccess redirect rules selected by this plugin failed in the test. Set manually or dismiss to leave on PHP redirect.', 'really-simple-ssl' ) . $rules, 'icon' => 'warning', 'dismissible' => true, 'plusone' => true, ), ), ), 'elementor' => array( 'condition' => array( 'rsssl_ssl_activation_time_no_longer_then_3_days_ago' ), 'callback' => 'rsssl_uses_elementor', 'score' => 5, 'output' => array( 'true' => array( 'url' => 'https://really-simple-ssl.com/knowledge-base/how-to-fix-mixed-content-in-elementor-after-moving-to-ssl/', 'msg' => __( 'Your site uses Elementor. This can require some additional steps before getting the secure lock.', 'really-simple-ssl' ), 'icon' => 'open', 'dismissible' => true, ), ), ), 'divi' => array( 'condition' => array( 'rsssl_ssl_activation_time_no_longer_then_3_days_ago' ), 'callback' => 'rsssl_uses_divi', 'score' => 5, 'output' => array( 'true' => array( 'url' => 'https://really-simple-ssl.com/knowledge-base/mixed-content-when-using-divi-theme/', 'msg' => __( 'Your site uses Divi. This can require some additional steps before getting the secure lock.', 'really-simple-ssl' ), 'icon' => 'open', 'dismissible' => true, ), ), ), 'secure_cookies_set' => array( 'condition' => array( 'rsssl_ssl_enabled', 'RSSSL()->admin->can_apply_networkwide', ), 'callback' => 'RSSSL()->admin->secure_cookie_settings_status', 'score' => 5, 'output' => array( 'set' => array( 'msg' => __( 'HttpOnly Secure cookies have been set automatically!', 'really-simple-ssl' ), 'icon' => 'success', 'url' => 'https://really-simple-ssl.com/secure-cookies-with-httponly-secure-and-use_only_cookies/', ), 'not-set' => array( 'msg' => __( 'HttpOnly Secure cookies not set.', 'really-simple-ssl' ), 'icon' => 'warning', 'dismissible' => true, 'plusone' => true, 'url' => 'https://really-simple-ssl.com/secure-cookies-with-httponly-secure-and-use_only_cookies/', ), 'wpconfig-not-writable' => array( 'msg' => __( 'To set the httponly secure cookie settings, your wp-config.php has to be edited, but the file is not writable.', 'really-simple-ssl' ) . ' ' . __( 'Add the following lines of code to your wp-config.php.', 'really-simple-ssl' ) . "<br><br><code> //Begin Really Simple SSL session cookie settings <br>   @ini_set('session.cookie_httponly', true); <br>   @ini_set('session.cookie_secure', true); <br>   @ini_set('session.use_only_cookies', true); <br> //END Really Simple SSL cookie settings <br> </code><br> " . __( 'Or set your wp-config.php to writable and reload this page.', 'really-simple-ssl' ), 'icon' => 'warning', 'dismissible' => true, 'plusone' => true, 'url' => 'https://really-simple-ssl.com/secure-cookies-with-httponly-secure-and-use_only_cookies/', ), ), ), 'recommended_security_headers_not_set' => array( 'callback' => 'RSSSL()->admin->recommended_headers_enabled', 'score' => 5, 'output' => array( 'false' => array( 'msg' => __( 'See which recommended security headers are not present on your website.', 'really-simple-ssl' ), 'icon' => 'premium', 'dismissible' => false, 'url' => 'https://scan.really-simple-ssl.com/', ), 'true' => array( 'msg' => __( 'Recommended security headers enabled.', 'really-simple-ssl' ), 'icon' => 'success', ), ), ), 'pro_upsell' => array( 'callback' => '_true_', 'score' => 5, 'output' => array( 'true' => array( 'msg' => __( 'Improve security with Really Simple SSL Pro.', 'really-simple-ssl' ), 'url' => $this->pro_url, 'icon' => 'premium', 'dismissible' => false, ), ), ), 'uses_wp_engine' => array( 'condition' => array( 'rsssl_uses_wp_engine' ), 'callback' => '_true_', 'score' => 5, 'output' => array( 'true' => array( 'msg' => __( 'Due to a recent update by WP Engine, we have changed your settings automatically to adapt.', 'really-simple-ssl' ), 'url' => 'https://really-simple-ssl.com/really-simple-ssl-adapts-to-recent-wp-engine-changes/', 'icon' => 'open', 'dismissible' => true, ), ), ), 'beta_5_addon_active' => array( 'condition' => array( 'rsssl_beta_5_addon_active' ), 'callback' => '_true_', 'score' => 5, 'output' => array( 'true' => array( 'msg' => __( 'You have the Really Simple SSL Let\'s Encrypt beta add-on activated. This functionality has now been integrated in core, so you can deactivate the add-on.', 'really-simple-ssl' ), 'icon' => 'open', 'dismissible' => true, ), ), ), 'duplicate-ssl-plugins' => array( 'condition' => array( 'rsssl_detected_duplicate_ssl_plugin' ), 'callback' => '_true_', 'output' => array( 'true' => array( 'msg' => // translators: %s is replaced with the plugin name. sprintf( __( 'We have detected the %s plugin on your website.', 'really-simple-ssl' ), rsssl_detected_duplicate_ssl_plugin( true ) ) . ' ' . __( 'As Really Simple SSL handles all the functionality this plugin provides, we recommend to disable this plugin to prevent unexpected behavior.', 'really-simple-ssl' ), 'icon' => 'warning', 'dismissible' => true, 'plusone' => true, ), ), ), 'bf_notice2023' => array( 'condition' => array( 'RSSSL()->admin->is_bf', ), 'callback' => '_true_', 'output' => array( 'true' => array( 'msg' => __( 'Black Friday sale! Get 40% Off Really Simple SSL Pro', 'really-simple-ssl' ), 'icon' => 'premium', 'url' => $this->pro_url, 'dismissible' => true, 'plusone' => true, ), ), ), 'ajax_fallback' => array( 'condition' => array( 'wp_option_rsssl_ajax_fallback_active', ), 'callback' => '_true_', 'output' => array( 'true' => array( 'msg' => __( "Please check if your REST API is loading correctly. Your site currently is using the slower Ajax fallback method to load the settings.", 'really-simple-ssl' ), 'icon' => 'warning', 'admin_notice' => false, 'url' => 'https://really-simple-ssl.com/instructions/how-to-debug-a-blank-settings-page-in-really-simple-ssl/', 'dismissible' => true, 'plusone' => true, ), ), ), 'vul_beta' => array( 'callback' => '_true_', 'output' => array( 'true' => array( 'msg' => __( "Our vulnerability reporting is in beta. Signup for the beta to discover the new features!", 'really-simple-ssl' ), 'icon' => 'urgent', 'admin_notice' => false, 'url' => 'https://really-simple-ssl.com/vulnerability-reporting/', 'dismissible' => true, 'plusone' => true, ), ), ), 'email_verification_not_verified' => array( 'callback' => 'RSSSL()->mailer_admin->email_verification_completed', 'output' => array( 'false' => array( 'highlight_field_id' => 'notifications_email_address', 'msg' => __( "Email verification has not been completed yet. Check your email and click the link", 'really-simple-ssl' ), 'icon' => 'open', 'admin_notice' => false, 'url' => 'https://really-simple-ssl.com/instructions/email-verification/', 'dismissible' => true, 'plusone' => true, ), 'true' => array( 'msg' => __( "Email address successfully verified", 'really-simple-ssl' ), 'icon' => 'success', 'admin_notice' => false, 'url' => 'https://really-simple-ssl.com/instructions/email-verification/', 'dismissible' => true, 'plusone' => false, ), ), ), ); //on multisite, don't show the notice on subsites. //we can't make different sets for network admin and for subsites (at least not for admin notices), as these notices are cached, //so the same cache will be used on both types of site if ( is_multisite() ) { unset( $notices['secure_cookies_set'] ); unset( $notices['upgraded_to_6'] ); } $notices = apply_filters( 'rsssl_notices', $notices ); foreach ( $notices as $id => $notice ) { $notices[ $id ] = wp_parse_args( $notice, $notice_defaults ); } /** * If a list of notices that should be dismissed on upgrade is requested */ if ( $args['dismiss_on_upgrade'] ) { $output = array(); foreach ( $notices as $key => $notice ) { if ( isset( $notice['dismiss_on_upgrade'] ) && $notice['dismiss_on_upgrade'] ) { $output[] = $key; } } return $output; } /** * Filter out notice that do not apply, or are dismissed */ $statuses = $args['status']; foreach ( $notices as $id => $notice ) { $func = $notice['callback']; $output = $this->validate_function( $func ); //check if all notices should be dismissed if ( isset( $notice['output'][ $output ]['dismissible'] ) && $notice['output'][ $output ]['dismissible'] && rsssl_get_option( 'dismiss_all_notices' ) ) { unset( $notices[ $id ] ); continue; } if ( ! isset( $notice['output'][ $output ] ) ) { unset( $notices[ $id ] ); continue; } $notices[ $id ]['output'] = $notice['output'][ $output ]; $notices[ $id ]['output']['status'] = 'success' === $notices[ $id ]['output']['icon'] ? 'completed' : $notices[ $id ]['output']['icon']; if ( ! in_array( $notices[ $id ]['output']['status'], $statuses, true ) ) { unset( $notices[ $id ] ); continue; } $condition_functions = $notice['condition']; foreach ( $condition_functions as $func ) { $condition = $this->validate_function( $func, true ); if ( ! $condition ) { unset( $notices[ $id ] ); } } if ( isset( $notices[ $id ] ) ) { $notices[ $id ]['output']['label'] = $icon_labels[ $notices[ $id ]['output']['icon'] ]; } //only remove this option if it's both dismissed AND not completed. This way we keep completed notices in the list. if ( isset( $notices[ $id ] ) && get_option( 'rsssl_' . $id . '_dismissed' ) && 'completed' !== $notices[ $id ]['output']['status'] ) { unset( $notices[ $id ] ); } } //if only admin_notices are required, filter out the rest. if ( $args['admin_notices'] ) { foreach ( $notices as $id => $notice ) { if ( ! isset( $notice['output']['admin_notice'] ) || ! $notice['output']['admin_notice'] ) { unset( $notices[ $id ] ); } } } //sort so warnings are on top $warnings = array(); $open = array(); $other = array(); foreach ( $notices as $key => $notice ) { if ( ! isset( $notice['output']['icon'] ) ) { continue; } if ( 'warning' === $notice['output']['icon'] ) { $warnings[ $key ] = $notice; } elseif ( 'open' === $notice['output']['icon'] ) { $open[ $key ] = $notice; } else { $other[ $key ] = $notice; } } $notices = $warnings + $open + $other; //if we only want a list of premium notices if ( $args['premium_only'] ) { foreach ( $notices as $key => $notice ) { if ( ! isset( $notice['output']['icon'] ) || 'premium' !== $notice['output']['icon'] ) { unset( $notices[ $key ] ); } } } // Check if the 'black_friday_notice' exists and move it to the top of the array if ( isset( $notices['bf_notice2023'] ) ) { // Remove the 'black_friday_notice' from its current position $black_friday_notice = array( 'bf_notice2023' => $notices['bf_notice2023'] ); unset( $notices['bf_notice2023'] ); // Add the 'black_friday_notice' back at the beginning of the array $notices = $black_friday_notice + $notices; } //ensure an empty list is also cached $cache_notices = empty( $notices ) ? 'empty' : $notices; //only cache if the admin_notices are retrieved. if ( $args['admin_notices'] ) { update_option( 'rsssl_admin_notices', $cache_notices ); } return $notices; } private function is_upgraded_to_6() { return get_option( 'rsssl_show_onboarding' ) && ! get_option( 'rsssl_6_notice_dismissed' ); } private function is_upgraded() { $previous_version = get_option( 'rsssl_previous_version' ); //if there's no first version yet, we assume it's not upgraded if ( ! $previous_version ) { return false; } //if the previous version is below current, we just upgraded. if ( version_compare( $previous_version, rsssl_version, '<' ) ) { return true; } return false; } /** * Get output of function, in format 'function', or 'class()->sub()->function' * @param string $func * @param bool $is_condition // if the check is a condition, which should return a boolean * @return string|bool */ private function validate_function( $func, $is_condition = false ) { if ( ! rsssl_user_can_manage() ) { return false; } $invert = false; if ( false !== strpos( $func, 'NOT ' ) ) { $func = str_replace( 'NOT ', '', $func ); $invert = true; } if ( false !== strpos( $func, 'wp_option_' ) ) { $output = get_option( str_replace( 'wp_option_', '', $func ) ) !== false; } elseif ( false !== strpos( $func, 'option_' ) ) { $output = rsssl_get_option( str_replace( 'option_', '', $func ) ) == 1; //phpcs:ignore } elseif ( '_true_' === $func ) { $output = true; } elseif ( '_false_' === $func ) { $output = false; } else { if ( preg_match( '/(.*)\(\)\-\>(.*)->(.*)/i', $func, $matches ) ) { $base = $matches[1]; $class = $matches[2]; $function = $matches[3]; if ( method_exists($base()->{$class}, $function) ) { $output = call_user_func(array($base()->{$class}, $function)); } else { $output = false; if ( defined('WP_DEBUG') && WP_DEBUG ) { error_log('Really Simple SSL: ' . $func . ' not found'); } } } else { $output = $func(); } } if ( $invert ) { $output = ! $output; } //stringyfy booleans if ( ! $is_condition ) { if ( false === $output || 0 === $output ) { $output = 'false'; } if ( true === $output || 1 === $output ) { $output = 'true'; } } return sanitize_text_field( $output ); } /** * Count the plusones. * * @return int * * @since 3.2 */ public function count_plusones() { if ( ! rsssl_user_can_manage() ) { return 0; } $cache = $this->is_settings_page() ? false : true; $count = get_option( 'rsssl_plusone_count' ); if ( ! $cache || false === $count ) { $count = 0; $notices = $this->get_notices_list(); if ( is_array( $notices ) ) { foreach ( $notices as $notice ) { $success = isset( $notice['output']['icon'] ) && 'success' === $notice['output']['icon']; if ( ! $success && isset( $notice['output']['plusone'] ) && $notice['output']['plusone'] ) { ++$count; } } } if ( 0 === $count ) { $count = 'empty'; } update_option( 'rsssl_plusone_count', $count ); } if ( 'empty' === $count ) { return 0; } return $count; } /** * Add some css for the settings page * * @since 2.0 * * @access public * */ public function enqueue_assets( $hook ) { if ( 'settings_page_really-simple-security' !== $hook ) { return; } //only on settings page $min = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; $rtl = is_rtl() ? 'rtl/' : ''; $url = trailingslashit( rsssl_url ) . "assets/css/{$rtl}admin{$min}.css"; $path = trailingslashit( rsssl_path ) . "assets/css/{$rtl}admin{$min}.css"; wp_enqueue_style( 'rsssl-css', $url, [ 'wp-components' ], filemtime( $path ) ); } /** * Check if wpconfig contains httponly cookie settings * * @return string */ public function secure_cookie_settings_status() { $wpconfig_path = $this->find_wp_config_path(); if ( ! $wpconfig_path ) { return 'wpconfig-not-writable'; } $wpconfig = file_get_contents( $wpconfig_path ); if ( ( strpos( $wpconfig, '//Begin Really Simple SSL session cookie settings' ) !== false ) || ( strpos( $wpconfig, 'cookie_httponly' ) !== false ) ) { return 'set'; } if ( ! is_writable( $wpconfig_path ) ) { return 'wpconfig-not-writable'; } return 'not-set'; } /** * Insert secure cookie settings */ public function insert_secure_cookie_settings() { if ( ! rsssl_user_can_manage() ) { return; } if ( ! $this->is_settings_page() ) { return; } //if multisite, only on network wide activated setups if ( is_multisite() && ! rsssl_is_networkwide_active() ) { return; } //only if cookie settings were not inserted yet if ( $this->secure_cookie_settings_status() !== 'set' ) { $wpconfig_path = RSSSL()->admin->find_wp_config_path(); if ( empty( $wpconfig_path ) ) { return; } $wpconfig = file_get_contents( $wpconfig_path ); if ( '' !== $wpconfig && is_writable( $wpconfig_path ) ) { $rule = "\n" . '//Begin Really Simple SSL session cookie settings' . "\n"; $rule .= "@ini_set('session.cookie_httponly', true);" . "\n"; $rule .= "@ini_set('session.cookie_secure', true);" . "\n"; $rule .= "@ini_set('session.use_only_cookies', true);" . "\n"; $rule .= '//END Really Simple SSL cookie settings' . "\n"; $insert_after = '<?php'; $pos = strpos( $wpconfig, $insert_after ); if ( false !== $pos ) { $wpconfig = substr_replace( $wpconfig, $rule, $pos + 1 + strlen( $insert_after ), 0 ); } file_put_contents( $wpconfig_path, $wpconfig ); } } } /** * Get the absolute path the the www directory of this site, where .htaccess lives. * * @since 2.0 * * @access public * */ public function getabs_path() { $path = ABSPATH; if ( $this->is_subdirectory_install() ) { $site_url = site_url(); $home_url = home_url(); $diff = str_replace( $home_url, '', $site_url ); $diff = trim( $diff, '/' ); $pos = strrpos( $path, $diff ); if ( false !== $pos ) { $path = substr_replace( $path, '', $pos, strlen( $diff ) ); $path = trim( $path, '/' ); $path = '/' . $path . '/'; } } return $path; } /** * Check if it's either a single site, or when multisite, network enabled. * @return bool */ public function can_apply_networkwide() { if ( ! is_multisite() ) { return true; } if ( is_multisite() && rsssl_is_networkwide_active() ) { return true; } return false; } /** * Find if this WordPress installation is installed in a subdirectory * * @since 2.0 * * @access protected * */ protected function is_subdirectory_install() { return strlen( site_url() ) > strlen( home_url() ); } /** * Retrieve the contents of the test page * * @return string * */ protected function get_test_page_contents() { $filecontents = get_transient( 'rsssl_testpage' ); if ( ! $filecontents ) { $testpage_url = trailingslashit( $this->test_url() ) . 'ssl-test-page.php'; $response = wp_remote_get( $testpage_url ); if ( is_array( $response ) ) { $filecontents = wp_remote_retrieve_body( $response ); } if ( empty( $filecontents ) ) { $filecontents = 'not-valid'; } set_transient( 'rsssl_testpage', $filecontents, DAY_IN_SECONDS ); } return $filecontents; } /** * Determine dirname to show in admin_notices() in really-simple-ssl-pro.php to show a warning when free folder has been renamed * * @return string * * since 3.1 * */ public function get_current_rsssl_free_dirname() { return basename( __DIR__ ); } /** * * Check the current free plugin folder path and compare it to default path to detect if the plugin folder has been renamed * * @return boolean * * @since 3.1 * */ public function uses_default_folder_name() { $current_plugin_path = $this->get_current_rsssl_free_dirname(); return $this->plugin_dir === $current_plugin_path; } /** * Determine the htaccess file. This can be either the regular .htaccess file, or an htaccess.conf file on bitnami installations. * * since 3.1 * * @return string */ public function htaccess_file() { if ( $this->uses_htaccess_conf() ) { $htaccess_file = realpath( dirname( ABSPATH ) . '/conf/htaccess.conf' ); } else { $htaccess_file = $this->abs_path . '.htaccess'; } return $htaccess_file; } /** * Check the current redirect status * * @return string */ public function redirect_status() { if ( ! RSSSL()->admin->has_301_redirect() ) { return 'no-redirect-set'; } if ( RSSSL()->admin->has_301_redirect() && RSSSL()->server->uses_htaccess() && RSSSL()->admin->htaccess_contains_redirect_rules() ) { return 'htaccess-redirect-set'; } if ( $this->can_apply_networkwide() && ! RSSSL()->admin->htaccess_contains_redirect_rules() && rsssl_get_option( 'redirect' ) === 'wp_redirect' ) { return 'wp-redirect-to-htaccess'; } if ( rsssl_get_option( 'redirect' ) === 'htaccess' && ! RSSSL()->admin->htaccess_test_success() && $this->can_apply_networkwide() ) { return 'htaccess-rules-test-failed'; } return 'default'; } } //class closure if ( ! function_exists( 'rsssl_ssl_enabled' ) ) { function rsssl_ssl_enabled() { return rsssl_get_option( 'ssl_enabled' ); } } if ( ! function_exists( 'rsssl_ssl_detected' ) ) { function rsssl_ssl_detected() { if ( ! RSSSL()->admin->wpconfig_ok() ) { return apply_filters( 'rsssl_ssl_detected', 'fail' ); } $valid = RSSSL()->certificate->is_valid(); if ( ! $valid ) { if ( ! function_exists( 'stream_context_get_params' ) || RSSSL()->certificate->detection_failed() ) { return apply_filters( 'rsssl_ssl_detected', 'no-response' ); } else { return apply_filters( 'rsssl_ssl_detected', 'no-ssl-detected' ); } } else { $about_to_expire = RSSSL()->certificate->about_to_expire(); if ( ! $about_to_expire ) { return apply_filters( 'rsssl_ssl_detected', 'ssl-detected' ); } else { return apply_filters( 'rsssl_ssl_detected', 'ssl-detected' ); // return apply_filters('rsssl_ssl_detected', 'about-to-expire'); } } } } if ( ! function_exists( 'rsssl_uses_elementor' ) ) { function rsssl_uses_elementor() { return ( defined( 'ELEMENTOR_VERSION' ) || defined( 'ELEMENTOR_PRO_VERSION' ) ); } } if ( ! function_exists( 'rsssl_uses_divi' ) ) { function rsssl_uses_divi() { return defined( 'ET_CORE_PATH' ); } } if ( ! function_exists( 'rsssl_uses_wp_engine' ) ) { function rsssl_uses_wp_engine() { if ( function_exists( 'is_wpe' ) && is_wpe() ) { return true; } return false; } } if ( ! function_exists( 'rsssl_beta_5_addon_active' ) ) { function rsssl_beta_5_addon_active() { if ( defined( 'rsssl_beta_addon' ) && rsssl_beta_addon ) { return true; } return false; } } if ( ! function_exists( 'rsssl_ssl_activation_time_no_longer_then_3_days_ago' ) ) { function rsssl_ssl_activation_time_no_longer_then_3_days_ago() { $activation_time = get_option( 'rsssl_activation_timestamp' ); $three_days_after_activation = $activation_time + 3 * DAY_IN_SECONDS; if ( time() < $three_days_after_activation ) { return true; } else { return false; } } } if ( ! function_exists( 'rsssl_letsencrypt_wizard_url' ) ) { /** * Get link to SSL certificate generation page * * @param string $page * * @return string */ function rsssl_letsencrypt_wizard_url( $page = '' ) { if ( ! empty( $page ) ) { $page = '/' . $page; } if ( is_multisite() && ! is_main_site() ) { return add_query_arg( array( 'page' => 'really-simple-security', 'letsencrypt' => 1, ), get_admin_url( get_main_site_id(), 'options-general.php' ) ) . "#letsencrypt$page"; } else { return add_query_arg( array( 'page' => 'really-simple-security', 'letsencrypt' => 1, ), admin_url( 'options-general.php' ) ) . "#letsencrypt$page"; } } } if ( ! function_exists( 'rsssl_detected_duplicate_ssl_plugin' ) ) { /** * Duplicate functionality test * * @param string $return_name * * @return bool|string */ function rsssl_detected_duplicate_ssl_plugin( $return_name = false ) { $plugin = false; if ( defined( 'WPLE_PLUGIN_VERSION' ) ) { $plugin = 'WP Encryption'; } elseif ( defined( 'WPSSL_VER' ) ) { $plugin = 'WP Free SSL'; } elseif ( defined( 'SSL_ZEN_PLUGIN_VERSION' ) ) { $plugin = 'SSL Zen'; } elseif ( defined( 'WPSSL_VER' ) ) { $plugin = 'WP Free SSL'; } elseif ( defined( 'SSLFIX_PLUGIN_VERSION' ) ) { $plugin = 'SSL Insecure Content Fixer'; } elseif ( class_exists( 'OCSSL', false ) ) { $plugin = 'One Click SSL'; } elseif ( class_exists( 'JSM_Force_SSL', false ) ) { $plugin = "JSM's Force HTTP to HTTPS (SSL)"; } elseif ( function_exists( 'httpsrdrctn_plugin_init' ) ) { $plugin = 'Easy HTTPS (SSL) Redirection'; } elseif ( defined( 'WPSSL_VER' ) ) { $plugin = 'WP Free SSL'; } elseif ( defined( 'WPFSSL_OPTIONS_KEY' ) ) { $plugin = 'WP Force SSL'; } elseif ( defined( 'ESSL_REQUIRED_PHP_VERSION' ) ) { $plugin = 'EasySSL'; } if ( false !== $plugin && ! $return_name ) { return true; } return $plugin; } } if ( ! function_exists( 'rsssl_ssl_detection_overridden' ) ) { function rsssl_ssl_detection_overridden() { return get_option( 'rsssl_ssl_detection_overridden' ) !== false; } } PK�������!�]���� ��uninstall.phpnu�[��������<?php // If uninstall is not called from WordPress, exit if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) { exit(); } $rsssl_settings = get_option( 'rsssl_options' ); if ( isset( $rsssl_settings['delete_data_on_uninstall'] ) && $rsssl_settings['delete_data_on_uninstall'] ) { $rsssl_options = [ "rsssl_changed_files", "rsssl_enable_csp_defaults", "rsssl_elementor_upgraded", "rsssl_redirect_to_http_check", "rsssl_pro_permissions_policy_headers_for_php", "rsssl_license_attempts", "rsssl_csp_report_url", "rsssl_iteration", "rsssl_scan", "rsssl_progress", "rsssl_current_action", "rsssl_scan_type", "rsssl_scan_active", "rsssl_xmlrpc_db_version", "rsssl_first_version", "rsssl-pro-current-version", "rsssl_xmlrpc_learning_mode_activation_time", "rsssl_pro_defaults_set", "rsssl_after_default_setup_completed", "rsssl_ms_elementor_private_replace_progress", "rsssl_ms_elementor_urls_upgraded", "rsssl_ms_elementor_public_replace_progress", "rsssl_csp_report_only_activation_time", "rsssl_csp_report_token", "rsssl_key", "rsssl_transients", "rsssl_pro_license_activation_limit", "rsssl_ssl_verify", "rsssl_pro_license_activations_left", "rsssl_pro_license_expires", "rsssl_csp_db_version", "rsssl_debug_log_folder_suffix", "rsssl_xmlrpc_learning_mode_activation_time", "rsssl_port_check_2082", "rsssl_port_check_8443", "rsssl_port_check_2222", "rsssl_csp_db_upgraded", "rsssl_scan_completed_no_errors", "rsssl_last_scan_time", "rsssl_test_wp_login_available", "rsssl_country_db_version", "rsssl_country_import_version", "rsssl_geo_ip_database_file", "rsssl_login_attempts_db_version", 'rsssl_notification_email', 'rsssl_remaining_tasks', 'rsssl_activation_timestamp', 'rsssl_activation_timestamp', 'rsssl_flush_caches', 'rsssl_skip_dns_check', 'rsssl_skip_challenge_directory_request', 'rsssl_hosting_dashboard', 'rsssl_options', 'rsssl_le_dns_tokens', 'rsssl_le_dns_records_verified', 'rsssl_private_key_path', 'rsssl_certificate_path', 'rsssl_intermediate_path', 'rsssl_le_certificate_generated_by_rsssl', 'rsssl_ssl_dirname', 'rsssl_create_folders_in_root', 'rsssl_htaccess_file_set_', 'rsssl_initial_alias_domain_value_set', 'rsssl_le_start_renewal', 'rsssl_le_start_installation', 'rsssl_le_installation_progress', 'rsssl_activation_time', 'rsssl_le_certificate_installed_by_rsssl', 'rsssl_installation_error', 'rsssl_le_dns_configured_by_rsssl', 'rsssl_onboarding_dismissed', 'rsssl_ssl_detection_overridden', 'rsssl_http_methods_allowed', 'rsssl_show_onboarding', 'rsssl_deactivate_list', 'rsssl_firewall_error', 'rsssl_completed_fixes', 'rsssl_rest_api_optimizer_not_writable', 'rsssl_ssl_labs_data', 'rsssl_current_version', 'rsssl_network_activation_status', 'rsssl_run', 'rsssl_wp_version_detected', 'rsssl_admin_notices', 'rsssl_plusone_count', 'rsssl_siteprocessing_progress', 'rsssl_ssl_activation_active', 'rsssl_network_activation_status', 'rsssl_siteprocessing_progress', 'rsssl_header_detection_nonce', 'rsssl_htaccess_error', 'rsssl_htaccess_rules', 'rsssl_options', 'rsssl_key', ]; foreach ( $rsssl_options as $rsssl_option_name ) { delete_option( $rsssl_option_name ); delete_site_option( $rsssl_option_name ); } $rsssl_transients = [ 'rsssl_tls_version', 'rsssl_redirects_to_homepage', 'rsssl_cert_expiration_date', 'rsssl_sent_cert_expiration_warning', 'rsssl_scan_post_count', 'rsssl_scan', 'rsssl_pro_redirect_to_settings_page', 'rsssl_stop_certificate_expiration_check', 'rsssl_pro_license_status', 'rsssl_xmlrpc_allowed', 'rsssl_http_methods_allowed', 'rsssl_code_execution_allowed_status', 'rsssl_directory_indexing_status', 'rsssl_htaccess_test_success', 'rsssl_can_use_curl_headers_check', 'rsssl_curl_error', 'rsssl_mixed_content_fixer_detected', 'rsssl_admin_notices', 'rsssl_plusone_count', 'rsssl_testpage', 'rsssl_plugin_download_active', 'rsssl_le_generate_attempt_count', 'rsssl_alias_domain_available', 'rsssl_le_install_attempt_count', 'rsssl_cw_t', 'rsssl_cw_server_id', 'rsssl_redirect_to_settings_page', 'rsssl_certinfo', ]; foreach ( $rsssl_transients as $rsssl_transient ) { delete_transient( $rsssl_transient ); delete_site_transient( $rsssl_transient ); } require_once(ABSPATH . 'wp-admin/includes/file.php'); WP_Filesystem(); function rsssl_delete_directory_wpfilesystem($dir) { global $wp_filesystem; if ($wp_filesystem->is_dir($dir)) { $objects = $wp_filesystem->dirlist($dir); foreach ($objects as $object => $objectdata) { if ($wp_filesystem->is_dir($dir . "/" . $object)) { rsssl_delete_directory_wpfilesystem($dir . "/" . $object); } else { $wp_filesystem->delete($dir . "/" . $object); } } $wp_filesystem->rmdir($dir); } } $upload_dir = wp_upload_dir(); $really_simple_ssl_dir = $upload_dir['basedir'] . '/really-simple-ssl'; rsssl_delete_directory_wpfilesystem($really_simple_ssl_dir); global $wpdb; $table_names = array( $wpdb->base_prefix . 'rsssl_csp_log', $wpdb->base_prefix . 'rsssl_xmlrpc', $wpdb->base_prefix . 'rsssl_country', $wpdb->base_prefix . 'rsssl_login_attempts', ); foreach($table_names as $table_name){ $sql = "DROP TABLE IF EXISTS $table_name"; $wpdb->query($sql); } } PK�������!�3[V��V����class-multisite.phpnu�[��������<?php defined('ABSPATH') or die(); if (!class_exists('rsssl_multisite')) { class rsssl_multisite { private static $_this; function __construct() { if (isset(self::$_this)) wp_die(); self::$_this = $this; register_activation_hook( __DIR__ . "/" . rsssl_plugin, array($this, 'activate')); add_action('network_admin_menu', array($this, 'add_plus_ones') ); /*filters to make sure WordPress returns the correct protocol */ add_filter("admin_url", array($this, "check_admin_protocol"), 20, 3); add_filter('home_url', array($this, 'check_site_protocol'), 20, 4); add_filter('site_url', array($this, 'check_site_protocol'), 20, 4); add_action('network_admin_menu', array(&$this, 'add_multisite_menu')); add_action('plugins_loaded', array($this, 'maybe_redirect_old_settings_url'), 10); if ( is_network_admin() ) { add_action('network_admin_notices', array($this, 'show_notices'), 10); } $plugin = rsssl_plugin; add_filter( "network_admin_plugin_action_links_$plugin", array($this, 'plugin_settings_link') ); //If WP version is 5.1 or higher, use wp_insert_site hook for multisite SSL activation in new blogs if( version_compare(get_bloginfo('version'),'5.1', '>=') ) { add_action('wp_initialize_site', array($this, 'maybe_activate_ssl_in_new_blog'), 20, 1); } else { add_action('wpmu_new_blog', array($this, 'maybe_activate_ssl_in_new_blog_deprecated'), 10, 6); } add_filter('rsssl_notices', array($this, 'add_multisite_notices')); } static function this() { return self::$_this; } /** * Redirect to the new settings page * * @return void */ public function maybe_redirect_old_settings_url(){ if ( !rsssl_user_can_manage() || !is_network_admin() ) { return; } if ( isset($_GET['page']) && $_GET['page'] === 'rlrsssl_really_simple_ssl' ){ wp_redirect(add_query_arg(['page' => 'really-simple-security'], network_admin_url('settings.php') ) ); exit; } } /** * * @since 3.1.6 * * Add an update count to the WordPress admin Settings menu item * Doesn't work when the Admin Menu Editor plugin is active * */ public function add_plus_ones() { if (!rsssl_user_can_manage()) { return; } $count = RSSSL()->admin->count_plusones(); if ( $count > 0 ) { global $menu; foreach( $menu as $index => $menu_item ){ if (!isset($menu_item[2]) || !isset($menu_item[0])) continue; if ( $menu_item[2]==='settings.php' ){ $pattern = '/<span.*>([1-9])<\/span><\/span>/i'; if (preg_match($pattern, $menu_item[0], $matches)){ if (isset($matches[1])) $count = (int) $count + (int) $matches[1]; } $menu[$index][0] = __('Settings') . "<span class='update-plugins rsssl-update-count'><span class='update-count'>$count</span></span>"; } } } } /** * Add notices to the dashboard * @param array $notices * * @return array */ public function add_multisite_notices( array $notices): array { $unset_array = array( 'mixed_content_fixer_detected', 'elementor', 'divi', ); foreach ( $unset_array as $unset_item ) { unset( $notices[$unset_item] ); } $notices['ssl_enabled'] = array( 'callback' => 'rsssl_ssl_enabled', 'score' => 30, 'output' => array( 'true' => array( 'msg' =>__('SSL is enabled networkwide.', 'really-simple-ssl'), 'icon' => 'success' ), 'false' => array( 'msg' => __('SSL is not enabled on your network', 'really-simple-ssl'), 'icon' => 'open', 'plusone' => true, ), ), ); $notices['multisite_server_variable_warning'] = array( 'condition' => array('rsssl_ssl_enabled'), 'callback' => 'RSSSL()->multisite->multisite_server_variable_warning', 'score' => 30, 'output' => array( 'no-server-variable' => array( 'msg' => __('You run a Multisite installation with subfolders, which prevents this plugin from fixing your missing server variable in the wp-config.php.', 'really-simple-ssl') . " " .__('Because the $_SERVER["HTTPS"] variable is not set, your website may experience redirect loops.', 'really-simple-ssl') . " " .__('Activate networkwide to fix this.', 'really-simple-ssl'), 'icon' => 'warning', 'plusone' => true, ), ), ); $notices['activation_not_completed'] = array( 'callback' => 'RSSSL()->multisite->ssl_activation_started_but_not_completed', 'score' => 30, 'output' => array( 'true' => array( 'title' => __("SSL activation in progress", "really-simple-ssl"), 'msg' => __('A networkwide SSL activation process has been started, but has not been completed. Please go to the SSL settings page to complete the process.', 'really-simple-ssl').' '. '<a href="'.add_query_arg(['page'=>'really-simple-security'], network_admin_url('settings.php') ).'">'.__('View settings page','really-simple-ssl').'</a>', 'icon' => 'warning', 'plusone' => true, 'admin_notice' => true, ), ), ); $notices['subdomains_no_wildcard'] = array( 'condition' => array('rsssl_ssl_enabled'), 'callback' => 'RSSSL()->multisite->subdomains_no_wildcard', 'score' => 30, 'output' => array( 'subdomains-no-wildcard' => array( 'msg' => __("You run a Multisite installation with subdomains, but your site doesn't have a wildcard certificate.", 'really-simple-ssl') . " " . __("This leads to issues when activating SSL networkwide since subdomains will be forced over SSL as well while they don't have a valid certificate.", 'really-simple-ssl') . " " . __("Activate SSL per site or install a wildcard certificate to fix this.", 'really-simple-ssl'), 'icon' => 'warning', 'dismissible' => true, 'plusone' => true, ), ), ); return $notices; } /** * Check if site has a server var issue. * @return string */ public function multisite_server_variable_warning(){ if (!function_exists('is_plugin_active_for_network')) require_once(ABSPATH . '/wp-admin/includes/plugin.php'); if ( is_multisite() && !is_plugin_active_for_network(rsssl_plugin) && $this->is_multisite_subfolder_install() ) { //with no server variables, the website could get into a redirect loop. if (RSSSL()->admin->no_server_variable) { return 'no-server-variable'; } } return 'success'; } /** * Check if we have a subdomains setup, but no wildcard * @return string */ public function subdomains_no_wildcard(){ if ( get_site_option('rsssl_network_activation_status' !== 'completed') && !$this->is_multisite_subfolder_install() && !RSSSL()->certificate->is_wildcard() ) { return 'subdomains-no-wildcard'; } return 'success'; } /** * Add settings link on plugins overview page * * @param array $links * * @return array * @since 2.0 * @access public */ public function plugin_settings_link(array $links): array { if ( !rsssl_user_can_manage() ) { return $links; } $url = add_query_arg(array('page' => 'really-simple-security'), network_admin_url('settings.php') ); $settings_link = '<a href="' . $url . '">' . __("Settings", "really-simple-ssl") . '</a>'; array_unshift($links, $settings_link); $support = apply_filters('rsssl_support_link', '<a target="_blank" rel="noopener noreferrer" href="https://wordpress.org/support/plugin/really-simple-ssl/">' . __('Support', 'really-simple-ssl') . '</a>'); array_unshift($links, $support); if ( ! defined( 'rsssl_pro' ) ) { $upgrade_link = '<a style="color:#2271b1;font-weight:bold" target="_blank" rel="noopener noreferrer" href="https://really-simple-ssl.com/pro/?mtm_campaign=settings&mtm_kwd=multisite&mtm_source=free&mtm_content=upgrade">' . __( 'Improve security - Upgrade', 'really-simple-ssl' ) . '</a>'; array_unshift( $links, $upgrade_link ); } return $links; } /** * When a new site is added, maybe activate SSL as well. * * @param int $blog_id * @param bool $user_id * @param bool $domain * @param bool $path * @param bool $site_id * @param bool $meta */ public function maybe_activate_ssl_in_new_blog_deprecated( int $blog_id, $user_id=false, $domain=false, $path=false, $site_id=false, $meta=false) { if ( get_site_option('rsssl_network_activation_status' === 'completed') ) { $site = get_blog_details($blog_id); switch_to_blog($site->blog_id); RSSSL()->admin->activate_ssl(false); restore_current_blog(); } } /** * Activate SSl in new block * @since 3.1.6 * @param $site * @return void */ public function maybe_activate_ssl_in_new_blog($site) { if ( get_site_option('rsssl_network_activation_status' === 'completed') ) { switch_to_blog($site->blog_id); RSSSL()->admin->activate_ssl(false); restore_current_blog(); } } /** Add network menu for SSL Only when plugin is network activated. */ public function add_multisite_menu() { if ( !is_multisite() || !rsssl_is_networkwide_active() ) { return; } if ( !rsssl_user_can_manage() ) { return; } $count = RSSSL()->admin->count_plusones(); $update_count = $count > 0 ? "<span class='update-plugins rsssl-update-count'><span class='update-count'>$count</span></span>" : ""; $page_hook_suffix = add_submenu_page( 'settings.php', __("SSL & Security","really-simple-ssl"), __("SSL & Security","really-simple-ssl").' '.$update_count, 'manage_security', "really-simple-security", 'rsssl_settings_page' ); add_action( "admin_print_scripts-{$page_hook_suffix}", 'rsssl_plugin_admin_scripts' ); } /** * Check if an SSL process is active * @return bool */ public function ssl_process_active(){ if ( get_site_option('rsssl_ssl_activation_active') ){ return true; } return false; } /** * Run SSL upgrade process * * @return void */ public function run_ssl_process(){ if ( get_site_option('rsssl_ssl_activation_active') ){ $this->activate_ssl_networkwide(); } update_site_option('rsssl_run', false); } /** * @param WP_REST_Request $request * * @return array */ public function process_ssl_activation_step(){ if ( !$this->ssl_process_active() ) { $this->start_ssl_activation(); } $this->run_ssl_process(); $progress = $this->get_process_completed_percentage(); return [ 'progress' => $progress, 'success' => true ]; } /** * Get SSL process completed percentage * @return int */ public function get_process_completed_percentage(){ if ( get_site_option('rsssl_network_activation_status') === 'completed' ) { return 100; } $complete_count = get_site_option('rsssl_siteprocessing_progress'); $blog_count = $this->get_total_blog_count(); $blog_count = $blog_count !== 0 ? $blog_count : 1; //prevent division by zero $percentage = round(( $complete_count/$blog_count )*100,0); if ( $percentage > 99 ) { $percentage = 100; } return (int) $percentage; } /** * Check if website has started activation, but didn't completed * @return bool */ public function ssl_activation_started_but_not_completed(){ if ( !get_option('rsssl_network_activation_status') ) { return false; } return get_option('rsssl_network_activation_status')!=='completed'; } /** * Start SSL activation * * @return void */ public function start_ssl_activation(){ if (!rsssl_user_can_manage()) { return; } update_site_option('rsssl_siteprocessing_progress', 0); update_site_option('rsssl_ssl_activation_active', true); } /** * End SSL activation * * @return void */ public function end_ssl_activation(){ if (!rsssl_user_can_manage()) { return; } update_site_option('rsssl_ssl_activation_active', false); } /** * Activate SSL network wide */ public function activate_ssl_networkwide() { if (!rsssl_user_can_manage()) { return; } //run chunked $nr_of_sites = 200; $current_offset = get_site_option('rsssl_siteprocessing_progress'); //set batch of sites $args = array( 'number' => $nr_of_sites, 'offset' => $current_offset, 'meta_query' => [ 'relation' => 'or', [ 'key' => 'rsssl_ssl_activated', 'compare' => 'NOT EXISTS' ], [ 'key' => 'rsssl_ssl_activated', 'value' => false, 'compare' => '=', ], ] ); $sites = get_sites($args); //if no sites are found, we assume we're done. if ( count($sites)==0 ) { $this->end_ssl_activation(); update_site_option('rsssl_network_activation_status', 'completed'); } else { foreach ($sites as $site) { switch_to_blog($site->blog_id); update_site_meta($site->blog_id, 'rsssl_ssl_activated', true ); RSSSL()->admin->activate_ssl(false); restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop update_site_option('rsssl_siteprocessing_progress', $current_offset+$nr_of_sites); } } } /** * Deactivate SSL on all subsites * * @return void */ public function deactivate() { if (!rsssl_user_can_manage()) { return; } $ssl_was_enabled = rsssl_get_option('ssl_enabled'); delete_site_option('rsssl_network_activation_status'); update_option('ssl_enabled', false); //main site first $site_id = get_main_site_id(); switch_to_blog($site_id); RSSSL()->admin->deactivate_site($ssl_was_enabled); restore_current_blog(); //because the deactivation should be a one click procedure, chunking this would cause difficulties $args = array( 'number' => $this->get_total_blog_count(), 'offset' => 0, ); $sites = get_sites($args); foreach ($sites as $site) { switch_to_blog($site->blog_id); update_site_meta($site->blog_id, 'rsssl_ssl_activated', false ); //we already did the main site if ( !is_main_site() ) { RSSSL()->admin->deactivate_site($ssl_was_enabled); } restore_current_blog(); } } /** * filters the get_admin_url function to correct the false https urls wordpress returns for non SSL websites. * * @since 2.3.10 * */ public function check_admin_protocol($url, $path, $blog_id) { if ( !$blog_id ) $blog_id = get_current_blog_id(); //if the force_ssl_admin is defined, the admin_url should not be forced back to http: all admin panels should be https. if (defined('FORCE_SSL_ADMIN')) return $url; //do not force to http if the request is made for an url of the current blog. //if a site is loaded over https, it should return https links, unless the url is requested for another blog. //In that case, we only return a https link if the site_url is https, and http otherwise. if (get_current_blog_id() == $blog_id) return $url; //now check if the blog is http or https, and change the url accordingly if (!function_exists('is_plugin_active_for_network')) require_once(ABSPATH . '/wp-admin/includes/plugin.php'); if ( !is_plugin_active_for_network(rsssl_plugin) ) { $home_url = get_blog_option($blog_id, 'home'); if (strpos($home_url, "https://") === false) { $url = str_replace("https://", "http://", $url); } } return $url; } /** * filters the home_url and/or site_url function to correct the false https urls wordpress returns for non SSL websites. * * @since 2.3.17 * */ public function check_site_protocol($url, $path, $orig_scheme, $blog_id) { if ( !$blog_id ) { $blog_id = get_current_blog_id(); } if (get_current_blog_id() == $blog_id) return $url; if (!function_exists('is_plugin_active_for_network')) require_once(ABSPATH . '/wp-admin/includes/plugin.php'); if ( !is_plugin_active_for_network(rsssl_plugin) ) { $home_url = get_blog_option($blog_id, 'home'); if (strpos($home_url, "https://") === false) { $url = str_replace("https://", "http://", $url); } } return $url; } /** * Checks if we are on a subfolder install. (domain.com/site1 ) * * @since 2.2 * * @access public * **/ public function is_multisite_subfolder_install() { if ( !is_multisite() ) { return false; } //we check this manually, as the SUBDOMAIN_INSTALL constant of wordpress might return false for domain mapping configs $is_subfolder = false; $args = array( 'number' => 5, 'offset' => 0, ); $sites = get_sites($args); foreach ($sites as $site) { switch_to_blog($site->blog_id); if ($this->is_subfolder(home_url())) { $is_subfolder = true; } restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop if ($is_subfolder) return true; } return false; } /** * Test if a domain has a subfolder structure * * @param string $domain * * @access public * * @return bool * @since 2.2 * */ public function is_subfolder(string $domain): bool { //remove slashes of the http(s) $domain = preg_replace("/(http:\/\/|https:\/\/)/", "", $domain); return strpos( $domain, "/" ) !== false; } /** * Show notices * * @since 2.0 * * @access public * */ public function show_notices() { if ( !rsssl_user_can_manage() ) { return; } //prevent showing the review on edit screen, as gutenberg removes the class which makes it editable. $screen = get_current_screen(); if ( $screen && $screen->base === 'post' ) { return; } if ( !$this->is_settings_page() ) { $notices = RSSSL()->admin->get_notices_list( array('admin_notices'=>true) ); foreach ( $notices as $id => $notice ){ $notice = $notice['output']; $class = ( $notice['status'] !== 'completed' ) ? 'error' : 'updated'; $more_info = $notice['url'] ?? false; $dismiss_id = isset($notice['dismissible']) && $notice['dismissible'] ? $id : false; echo RSSSL()->admin->notice_html( $class.' '.$id, $notice['msg'], $more_info, $dismiss_id); } } } /** * Check if we are on the settings page * @return bool */ public function is_settings_page() { if (!rsssl_user_can_manage()) { return false; } return (isset($_GET['page']) && $_GET['page'] === 'really-simple-security'); } /** * Get blog count for all networks * * @return int */ public function get_total_blog_count() { //Get the total blog count from all multisite networks $networks = get_networks(); $total_blog_count = 0; foreach($networks as $network){ $network_id = ($network->__get('id')); $blog_count = get_blog_count($network_id); $total_blog_count += $blog_count; } return $total_blog_count; } } //class closure } PK�������!�JG��G�� ��LICENSE.txtnu�[��������This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =================================== GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the program's name and a brief idea of what it does.> Copyright (C) <year> <name of author> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. PK�������!�z2:`c��c����progress/class-progress.phpnu�[��������<?php defined('ABSPATH') or die(); class rsssl_progress { private static $_this; function __construct() { if ( isset( self::$_this ) ) wp_die( sprintf( '%s is a singleton class and you cannot create a second instance.', get_class( $this ) ) ); self::$_this = $this; add_action( 'admin_init', array( $this, 'dismiss_from_admin_notice') ); } static function this() { return self::$_this; } public function get() { return [ 'text' => $this->get_text(), 'percentage' => $this->percentage(), 'notices' => $this->notices(), ]; } public function notices(){ $notices = RSSSL()->admin->get_notices_list(array( 'status' => ['open','warning','completed','premium'] )); $out = []; foreach ($notices as $id => $notice ) { $notice['id'] = $id; $out[] = $notice; } return $out; } /** * Calculate the percentage completed in the dashboard progress section * Determine max score by adding $notice['score'] to the $max_score variable * Determine actual score by adding $notice['score'] of each item with a 'success' output to $actual_score * @return int * * @since 4.0 * */ private function percentage() { if ( ! rsssl_user_can_manage() ) { return 0; } $max_score = 0; $actual_score = 0; $notices = RSSSL()->admin->get_notices_list(array( 'status' => ['open','warning','completed','premium'], )); foreach ( $notices as $id => $notice ) { if (isset( $notice['score'] )) { // Only items matching condition will show in the dashboard. Only use these to determine max count. $max_score += (int) $notice['score']; $success = isset( $notice['output']['icon'] ) && ( $notice['output']['icon'] === 'success' ); if ( $success ) { // If the output is success, task is completed. Add to actual count. $actual_score += (int) $notice['score']; } } } $score = $max_score>0 ? $actual_score / $max_score :0; return (int) round( $score * 100 ); } /** * Get text for progress block * * @return string */ private function get_text(){ if (!rsssl_user_can_manage()) return ''; ob_start(); $lowest_possible_task_count = $this->get_lowest_possible_task_count(); $open_task_count = count( RSSSL()->admin->get_notices_list( array( 'status' => ['open','warning'] ) )); if ( rsssl_get_option('ssl_enabled') ) { $doing_well = __( "SSL is activated on your site.", 'really-simple-ssl' ) . ' ' . sprintf( _n( "You still have %s task open.", "You still have %s tasks open.", $open_task_count, 'really-simple-ssl' ), $open_task_count ); if ( $open_task_count === 0 ) { _e("SSL configuration finished!", "really-simple-ssl"); } elseif ( !defined('rsssl_pro') ){ if ( $open_task_count >= $lowest_possible_task_count) { echo $doing_well; } else { printf(__("Basic SSL configuration finished! Improve your score with %sReally Simple SSL Pro%s.", "really-simple-ssl"), '<a target="_blank" rel="noopener noreferrer" href="' . RSSSL()->admin->pro_url . '">', '</a>'); } } else { echo $doing_well; } } else if ( !is_network_admin() ) { _e( "SSL is not yet enabled on this site.", "really-simple-ssl" ); } do_action('rsssl_progress_feedback'); return ob_get_clean(); } /** * Count number of premium notices we have in the list. * @return int */ public function get_lowest_possible_task_count() { $premium_notices = RSSSL()->admin->get_notices_list(array('premium_only'=>true)); return count($premium_notices) ; } /** * @return void */ public function dismiss_from_admin_notice(){ if ( !rsssl_user_can_manage() ) { return; } if (isset($_GET['dismiss_notice'])) { $id = sanitize_title($_GET['dismiss_notice']); $this->dismiss_task($id); } } /** * Process the react dismissal of a task * * Since 3.1 * * @access public * */ public function dismiss_task($id) { if ( !empty($id) ) { $id = sanitize_title( $id ); update_option( "rsssl_".$id."_dismissed", true, false ); $count = get_option( 'rsssl_plusone_count' ); if (is_numeric($count) && $count>0) { $count--; } update_option('rsssl_plusone_count', $count, WEEK_IN_SECONDS); //remove this notice from the admin notices list $notices = get_option( 'rsssl_admin_notices' ); if (isset($notices[$id])) { unset($notices[$id]); } update_option('rsssl_admin_notices', $notices); } return [ 'percentage' => $this->percentage(), ]; } }PK�������!�?t4s#���#�����progress/index.phpnu�[��������<?php // You don't belong here. ?> PK�������!�hL������settings/src/index.jsnu�[��������import { render, createRoot } from '@wordpress/element'; import Page from './Page'; /** * Initialize */ document.addEventListener( 'DOMContentLoaded', () => { const container = document.getElementById( 'really-simple-ssl' ); if ( container ) { if ( createRoot ) { createRoot( container ).render( <Page/> ); } else { render( <Page/>, container ); } } }); /* * Some oldschool stuff */ document.addEventListener('click', e => { if ( e.target.closest('#ssl-labs-check-button') ) { document.querySelector('.rsssl-ssllabs').classList.add('rsssl-block-highlight'); setTimeout(function(){ document.querySelector('.rsssl-ssllabs').classList.remove('rsssl-block-highlight'); }, 6000); } }); PK�������!�AZ��Z��+��settings/src/LetsEncrypt/DnsVerification.jsnu�[��������import {useState, useEffect} from "@wordpress/element"; import { __ } from '@wordpress/i18n'; import {dispatch} from '@wordpress/data'; import Hyperlink from "../utils/Hyperlink"; import { Button, } from '@wordpress/components'; import useFields from "../Settings/FieldsData"; import useMenu from "../Menu/MenuData"; import * as rsssl_api from "../utils/api"; import sleeper from "../utils/sleeper"; import useLetsEncryptData from "./letsEncryptData"; const DnsVerification = (props) => { const {updateVerificationType} = useLetsEncryptData(); const {fields, addHelpNotice, updateField, setChangedField, saveFields, fetchFieldsData, getFieldValue} = useFields(); const {selectedSubMenuItem, setSelectedSubMenuItem} = useMenu(); const [tokens, setTokens] = useState(false); let action = props.action; useEffect(()=> { if (action && action.action==='challenge_directory_reachable' && action.status==='error') { addHelpNotice( props.field.id, 'default', __("The challenge directory is used to verify the domain ownership.", "really-simple-ssl"), ); } let newTokens = action ? action.output : false; if ( typeof (newTokens) === "undefined" || newTokens.length === 0 ) { newTokens = false; } if ( newTokens ) { setTokens(newTokens); } }, [action]); const handleSwitchToDir = async () => { await setSelectedSubMenuItem('le-directories'); await updateField('verification_type', 'dir'); await setChangedField('verification_type', 'dir'); await saveFields(true, true); await updateVerificationType('dir'); await fetchFieldsData('le-directories'); } const handleSwitchToDNS = async () => { await updateVerificationType('dns'); await setSelectedSubMenuItem('le-dns-verification'); } let verificationType = getFieldValue('verification_type'); if (verificationType==='dir') { return (<></>); } return ( <> { tokens && tokens.length>0 && <div className="rsssl-test-results"> <h4>{__("Next step", "really-simple-ssl")}</h4> <p>{__("Add the following token as text record to your DNS records. We recommend to use a short TTL during installation, in case you need to change it.", "really-simple-ssl")} <Hyperlink target="_blank" rel="noopener noreferrer" text={__("Read more", "really-simple-ssl")} url="https://really-simple-ssl.com/how-to-add-a-txt-record-to-dns"/> </p> <div className="rsssl-dns-text-records"> <div> <div className="rsssl-dns-domain">@/{__("domain", "really-simple-ssl")}</div> <div className="rsssl-dns-field">{__("Value", "really-simple-ssl")}</div> </div> { tokens.map((tokenData, i) => <div> <div className="rsssl-dns-">_acme-challenge.{tokenData.domain}</div> <div className="rsssl-dns-field rsssl-selectable">{tokenData.token}</div> </div> )} </div> </div> } <div className="rsssl-test-results"> <p>{__("DNS verification active. You can switch back to directory verification here.","really-simple-ssl")}</p> <Button variant="secondary" onClick={() => handleSwitchToDir()} >{ __( 'Switch to directory verification', 'really-simple-ssl' ) }</Button> </div> </> ) } export default DnsVerification;PK�������!�}$��$��(��settings/src/LetsEncrypt/Installation.jsnu�[��������import { __ } from '@wordpress/i18n'; import * as rsssl_api from "../utils/api"; import {dispatch,} from '@wordpress/data'; import {useEffect, useState} from '@wordpress/element'; import sleeper from "../utils/sleeper"; import useFields from "../Settings/FieldsData"; const Installation = (props) => { const {addHelpNotice} = useFields(); const [installationData, setInstallationData] = useState(false); let action = props.action; useEffect(()=> { if ((action && action.status==='warning' && installationData && installationData.generated_by_rsssl )) { addHelpNotice( props.field.id, 'default', __("This is the certificate, which you need to install in your hosting dashboard.", "really-simple-ssl"), __("Certificate (CRT)", "really-simple-ssl") ); addHelpNotice( props.field.id, 'default', __("The private key can be uploaded or pasted in the appropriate field on your hosting dashboard.", "really-simple-ssl"), __("Private Key (KEY)", "really-simple-ssl") ); addHelpNotice( props.field.id, 'default', __("The CA Bundle will sometimes be automatically detected. If not, you can use this file.", "really-simple-ssl"), __("Certificate Authority Bundle (CABUNDLE)", "really-simple-ssl") ); } if ( action && (action.status==='error' || action.status === 'warning') ) { rsssl_api.runLetsEncryptTest('installation_data').then( ( response ) => { if (response) { setInstallationData(response.output); } }); } }, [action]); const handleCopyAction = (type) => { let success; let data = document.querySelector('.rsssl-'+type).innerText; const el = document.createElement('textarea'); el.value = data; //str is your string to copy document.body.appendChild(el); el.select(); try { success = document.execCommand("copy"); } catch (e) { success = false; } document.body.removeChild(el); const notice = dispatch('core/notices').createNotice( 'success', __( 'Copied!', 'really-simple-ssl' ), { __unstableHTML: true, id: 'rsssl_copied_data', type: 'snackbar', isDismissible: true, } ).then(sleeper(3000)).then(( response ) => { dispatch('core/notices').removeNotice('rsssl_copied_data'); }); } if ( !action ) { return (<></>); } if (!installationData) { return (<></>); } return ( <div className="rsssl-test-results"> { !installationData.generated_by_rsssl && <>{__("The certificate is not generated by Really Simple SSL, so there are no installation files here","really-simple-ssl")}</>} { installationData.generated_by_rsssl && action.status === 'warning' && <> <h4>{ __("Next step", "really-simple-ssl") }</h4> <div className="rsssl-template-intro">{ __("Install your certificate.", "really-simple-ssl")}</div> <h4>{ __("Certificate (CRT)", "really-simple-ssl") }</h4> <div className="rsssl-certificate-data rsssl-certificate" id="rsssl-certificate">{installationData.certificate_content}</div> <a href={installationData.download_url+"&type=certificate"} className="button button-secondary">{ __("Download", "really-simple-ssl")}</a> <button type="button" onClick={(e) => handleCopyAction('certificate')} className="button button-primary">{ __("Copy content", "really-simple-ssl")}</button> <h4>{ __("Private Key (KEY)", "really-simple-ssl") }</h4> <div className="rsssl-certificate-data rsssl-key" id="rsssl-key">{installationData.key_content}</div> <a href={installationData.download_url+"&type=private_key"} className="button button-secondary">{ __("Download", "really-simple-ssl")}</a> <button type="button" className="button button-primary" onClick={(e) => handleCopyAction('key')} >{ __("Copy content", "really-simple-ssl")}</button> <h4>{ __("Certificate Authority Bundle (CABUNDLE)", "really-simple-ssl") }</h4> <div className="rsssl-certificate-data rsssl-cabundle" id="rsssl-cabundle">{installationData.ca_bundle_content}</div> <a href={installationData.download_url+"&type=intermediate"} className="button button-secondary">{ __("Download", "really-simple-ssl")}</a> <button type="button" className="button button-primary" onClick={(e) => handleCopyAction('cabundle')} >{ __("Copy content", "really-simple-ssl")}</button> </> } </div> ) } export default Installation;PK�������!�T����&��settings/src/LetsEncrypt/Generation.jsnu�[��������import { __ } from '@wordpress/i18n'; import * as rsssl_api from "../utils/api"; import {dispatch,} from '@wordpress/data'; import sleeper from "../utils/sleeper"; import Hyperlink from "../utils/Hyperlink"; import { Button, } from '@wordpress/components'; import useFields from "../Settings/FieldsData"; const Generation = (props) => { let action = props.action; if (!action) { return (<></>); } const handleSkipDNS = () => { return rsssl_api.runLetsEncryptTest('skip_dns_check').then( ( response ) => { props.restartTests(); const notice = dispatch('core/notices').createNotice( 'success', __( 'Skip DNS verification', 'really-simple-ssl' ), { __unstableHTML: true, id: 'rsssl_skip_dns', type: 'snackbar', isDismissible: true, } ).then(sleeper(3000)).then(( response ) => { dispatch('core/notices').removeNotice('rsssl_skip_dns'); }); }); } return ( <div className="rsssl-test-results"> { (action.status === 'error' && action.action==='verify_dns' ) && <> <p>{ __("We could not check the DNS records. If you just added the record, please check in a few minutes.","really-simple-ssl")}  <Hyperlink target="_blank" rel="noopener noreferrer" text={__("You can manually check the DNS records in an %sonline tool%s.","really-simple-ssl")} url="https://mxtoolbox.com/SuperTool.aspx"/> { __("If you're sure it's set correctly, you can click the button to skip the DNS check.","really-simple-ssl")}  </p> <Button variant="secondary" onClick={() => handleSkipDNS()} > { __( 'Skip DNS check', 'really-simple-ssl' ) } </Button> </> } </div> ); } export default Generation;PK�������!�J ������$��settings/src/LetsEncrypt/Activate.jsnu�[��������import Onboarding from "../Onboarding/Onboarding"; const Activate = () => { return ( <div className="rsssl-lets-encrypt-tests"> <Onboarding/> </div> ) } export default Activate;PK�������!�W;+��;+��'��settings/src/LetsEncrypt/LetsEncrypt.jsnu�[��������import {useEffect, useRef} from "@wordpress/element"; import * as rsssl_api from "../utils/api"; import sleeper from "../utils/sleeper"; import Directories from "./Directories"; import DnsVerification from "./DnsVerification"; import Generation from "./Generation"; import Activate from "./Activate"; import Installation from "./Installation"; import { __ } from '@wordpress/i18n'; import Icon from "../utils/Icon"; import useFields from "../Settings/FieldsData"; import useLetsEncryptData from "./letsEncryptData"; import DOMPurify from "dompurify"; const LetsEncrypt = (props) => { const {handleNextButtonDisabled, getFieldValue} = useFields(); const {actionsList, setActionsList, setActionsListItem, setActionsListProperty, actionIndex, setActionIndex, attemptCount, setAttemptCount, progress, setProgress, refreshTests, setRefreshTests} = useLetsEncryptData(); const sleep = useRef(1000); const intervalId = useRef(false); const previousActionIndex = useRef(-1); const maxIndex = useRef(1); const refProgress = useRef(0); const lastAction = useRef({}); useEffect(() => { reset(); }, [props.field.id]) const getActions = () => { let propActions = props.field.actions; if ( props.field.id==='generation' ) { propActions = adjustActionsForDNS(propActions); } maxIndex.current = propActions.length; return propActions; } useEffect(() => { if ( actionsList.length>0 && actionIndex===-1){ setActionIndex(0); runTest(0, 0); } return () => { // Perform any cleanup logic here if needed // For example, you can cancel any ongoing asynchronous tasks or subscriptions }; }, [actionsList]) const startInterval = () => { intervalId.current = setInterval(() => { if (refProgress.current<100) { setProgress(refProgress.current + 0.2); } }, 100); } useEffect(() => { previousActionIndex.current = actionIndex; setProgress( ( 100 / maxIndex.current ) * (actionIndex)); //ensure that progress does not get to 100 when retries are still running let currentAction = actionsList[actionIndex]; if ( currentAction && currentAction.do==='retry' && attemptCount>1 ){ setProgress(90); } }, [actionIndex ]) useEffect (() => { refProgress.current = progress; },[progress]) useEffect(() => { if ( refreshTests ){ setRefreshTests(false); reset(); actionsList.forEach(function(action,i){ setActionsListProperty(i, 'status', 'inactive'); }); } }, [refreshTests ]) const statuses = { 'inactive': { 'icon': 'circle-times', 'color': 'grey', }, 'warning': { 'icon': 'circle-times', 'color': 'orange', }, 'error': { 'icon': 'circle-times', 'color': 'red', }, 'success': { 'icon': 'circle-check', 'color': 'green', }, }; const reset = () => { handleNextButtonDisabled(true); setActionsList(getActions()); setProgress(0); refProgress.current = 0; setActionIndex(-1); previousActionIndex.current = -1; } const adjustActionsForDNS = (actions) => { //find verification_type let verification_type = getFieldValue('verification_type'); if ( !verification_type ) verification_type = 'dir'; if ( verification_type==='dns' ) { //check if dns verification already is added let dnsVerificationAdded = false; actions.forEach(function(action, i) { if (action.action==="verify_dns"){ dnsVerificationAdded = true; } }); //find bundle index let create_bundle_index = -1; actions.forEach(function(action, i) { if (action.action==="create_bundle_or_renew"){ create_bundle_index = i; } }); if (!dnsVerificationAdded && create_bundle_index>0) { //store create bundle action let actionsCopy = [...actions]; let createBundleAction = actionsCopy[create_bundle_index]; //overwrite create bundle action let newAction = {}; newAction.action = 'verify_dns'; newAction.description = __("Verifying DNS records...", "really-simple-ssl"); newAction.attempts = 2; actionsCopy[create_bundle_index] = newAction; actionsCopy.push(createBundleAction); actions = actionsCopy; } } return actions; } const processTestResult = async (action, newActionIndex) => { // clearInterval(intervalId.current); if ( action.status==='success' ) { setAttemptCount(0); } else { if (!Number.isInteger(action.attemptCount)) { setAttemptCount(0); } setAttemptCount(attemptCount+1); } //used for dns verification actions let event = new CustomEvent('rsssl_le_response', { detail: action }); document.dispatchEvent(event); //if all tests are finished with success //finalize happens when halfway through our tests it's finished. We can skip all others. if ( action.do === 'finalize' ) { actionsList.forEach(function(action,i){ if (i>newActionIndex) { setActionsListProperty(i, 'hide', true); } }); setActionIndex(maxIndex.current+1); handleNextButtonDisabled(false); } else if ( action.do === 'continue' || action.do === 'skip' ) { //new action, so reset the attempts count setAttemptCount(1); //skip: drop previous completely, skip to next. if ( action.do === 'skip' ) { setActionsListProperty(newActionIndex, 'hide', true); } //move to next action, but not if we're already on the max if ( maxIndex.current-1 > newActionIndex) { setActionIndex(newActionIndex+1); await runTest(newActionIndex+1); } else { setActionIndex(newActionIndex+1); handleNextButtonDisabled(false); } } else if (action.do === 'retry' ) { if ( attemptCount >= action.attempts ) { setActionIndex(maxIndex.current); } else { setActionIndex(newActionIndex); await runTest(newActionIndex); } } else if ( action.do === 'stop' ){ setActionIndex(maxIndex.current); } } const runTest = async (newActionIndex) => { let currentAction = {...actionsList[newActionIndex]}; if (!currentAction) return; let test = currentAction.action; const startTime = new Date(); await rsssl_api.runLetsEncryptTest(test, props.field.id ).then( ( response ) => { const endTime = new Date(); let timeDiff = endTime - startTime; //in ms const elapsedTime = Math.round(timeDiff); currentAction.status = response.status ? response.status : 'inactive'; currentAction.hide = false; currentAction.description = response.message; currentAction.do = response.action; currentAction.output = response.output ? response.output : false; sleep.current = 500; if (elapsedTime<1500) { sleep.current = 1500-elapsedTime; } setActionsListItem(newActionIndex, currentAction); }).then(sleeper(sleep.current)).then( () => { processTestResult(currentAction, newActionIndex); }); } const getStyles = (newProgress) => { return Object.assign( {}, {width: newProgress+"%"}, ); } const getStatusIcon = (action) => { if (!statuses.hasOwnProperty(action.status)) { return statuses['inactive'].icon; } return statuses[action.status].icon } const getStatusColor = (action) => { if (!statuses.hasOwnProperty(action.status)) { return statuses['inactive'].color; } return statuses[action.status].color; } if ( !props.field.actions ) { return (<></>); } let progressCopy = progress; if (maxIndex.current === actionIndex+1 ){ progressCopy = 100; } //filter out skipped actions let actionsOutput = actionsList.filter(action => action.hide !== true); //ensure the sub components have an action to look at, also if the action has been dropped after last test. let action = actionsList[actionIndex]; if (action){ lastAction.current = action; } else { action = lastAction.current; } let progressBarColor = action.status==='error' ? 'rsssl-orange' : ''; return ( <> <div className="rsssl-lets-encrypt-tests"> <div className="rsssl-progress-bar"><div className="rsssl-progress"><div className={'rsssl-bar ' + progressBarColor} style={getStyles(progressCopy)}></div></div></div> <div className="rsssl_letsencrypt_container rsssl-progress-container field-group"> <ul> {actionsOutput.map((action, i) => <li key={"action-"+i}> <Icon name = {getStatusIcon(action)} color = {getStatusColor(action)} /> {action.do==='retry' && attemptCount >=1 && <>{__("Attempt %s.", "really-simple-ssl").replace('%s', attemptCount)} </>}   <span dangerouslySetInnerHTML={{__html: DOMPurify.sanitize(action.description) }}></span> {/* nosemgrep: react-dangerouslysetinnerhtml */} </li> ) } </ul> </div> {props.field.id === 'directories' && <Directories field={props.field} action={action}/> } {props.field.id === 'dns-verification' && <DnsVerification field={props.field} action={action}/> } {props.field.id === 'generation' && <Generation field={props.field} action={action}/> } {props.field.id === 'installation' && <Installation field={props.field} action={action}/> } {props.field.id === 'activate' && <Activate field={props.field} action={action}/> } </div> </> ) } export default LetsEncrypt;PK�������!�$:!��:!��'��settings/src/LetsEncrypt/Directories.jsnu�[��������import {__} from '@wordpress/i18n'; import Hyperlink from "../utils/Hyperlink"; import { Button, } from '@wordpress/components'; import useFields from "../Settings/FieldsData"; import useMenu from "../Menu/MenuData"; import {useEffect} from '@wordpress/element'; import useLetsEncryptData from "./letsEncryptData"; const Directories = (props) => { const {updateVerificationType} = useLetsEncryptData(); const {addHelpNotice, updateField, setChangedField, saveFields, fetchFieldsData} = useFields(); const { setSelectedSubMenuItem} = useMenu(); let action = props.action; useEffect(() => { if ((action && action.action === 'challenge_directory_reachable' && action.status === 'error')) { addHelpNotice( props.field.id, 'default', __("The challenge directory is used to verify the domain ownership.", "really-simple-ssl"), ); } if ((action && action.action === 'check_key_directory' && action.status === 'error')) { addHelpNotice( props.field.id, 'default', __("The key directory is needed to store the generated keys.", "really-simple-ssl") + ' ' + __("By placing it outside the root folder, it is not publicly accessible.", "really-simple-ssl"), ); } if ((action && action.action === 'check_certs_directory' && action.status === 'error')) { addHelpNotice( props.field.id, 'default', __("The certificate will get stored in this directory.", "really-simple-ssl") + ' ' + __("By placing it outside the root folder, it is not publicly accessible.", "really-simple-ssl"), ); } }, [action]); if ( !action ) { return (<></>); } const handleSwitchToDNS = async () => { updateField('verification_type', 'dns'); setChangedField('verification_type', 'dns'); await saveFields(true, true); await updateVerificationType('dns'); await setSelectedSubMenuItem('le-dns-verification'); await fetchFieldsData('le-directories'); } return ( <div className="rsssl-test-results"> {action.status === 'error' && <h4>{__("Next step", "really-simple-ssl")}</h4>} {(action.status === 'error' && action.action === 'challenge_directory_reachable') && <div> <p> {__("If the challenge directory cannot be created, or is not reachable, you can either remove the server limitation, or change to DNS verification.", "really-simple-ssl")} </p> <Button variant="secondary" onClick={() => handleSwitchToDNS()} > {__('Switch to DNS verification', 'really-simple-ssl')} </Button> </div> } {rsssl_settings.hosting_dashboard === 'cpanel' && <><p> <Hyperlink target="_blank" rel="noopener noreferrer" text={__("If you also want to secure subdomains like mail.domain.com, cpanel.domain.com, you have to use the %sDNS%s challenge.", "really-simple-ssl")} url="https://really-simple-ssl.com/lets-encrypt-authorization-with-dns"/>  {__("Please note that auto-renewal with a DNS challenge might not be possible.", "really-simple-ssl")} </p> <Button variant="secondary" onClick={() => handleSwitchToDNS()} >{__('Switch to DNS verification', 'really-simple-ssl')}</Button></> } {(action.status === 'error' && action.action === 'check_challenge_directory') && <div> <h4> {__("Create a challenge directory", "really-simple-ssl")} </h4> <p> {__("Navigate in FTP or File Manager to the root of your WordPress installation:", "really-simple-ssl")} </p> <ul> <li className="rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"> {__('Create a folder called “.well-known”', 'really-simple-ssl')} </li> <li className="rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"> {__('Inside the folder called “.well-known” create a new folder called “acme-challenge”, with 644 writing permissions.', 'really-simple-ssl')} </li> <li className="rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"> {__('Click the refresh button.', 'really-simple-ssl')} </li> </ul> <h4> {__("Or you can switch to DNS verification", "really-simple-ssl")} </h4> <p>{__("If the challenge directory cannot be created, you can either remove the server limitation, or change to DNS verification.", "really-simple-ssl")}</p> <Button variant="secondary" onClick={() => handleSwitchToDNS()} > {__('Switch to DNS verification', 'really-simple-ssl')} </Button> </div> } {(action.status === 'error' && action.action === 'check_key_directory') && <div> <h4> {__("Create a key directory", "really-simple-ssl")} </h4> <p> {__("Navigate in FTP or File Manager to one level above the root of your WordPress installation:", "really-simple-ssl")} </p> <ul> <li className="rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"> {__('Create a folder called “ssl”', 'really-simple-ssl')} </li> <li className="rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"> {__('Inside the folder called “ssl” create a new folder called “keys”, with 644 writing permissions.', 'really-simple-ssl')} </li> <li className="rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"> {__('Click the refresh button.', 'really-simple-ssl')} </li> </ul> </div> } {(action.status === 'error' && action.action === 'check_certs_directory') && <div> <h4> {__("Create a certs directory", "really-simple-ssl")} </h4> <p> {__("Navigate in FTP or File Manager to one level above the root of your WordPress installation:", "really-simple-ssl")} </p> <ul> <li className="rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"> {__('Create a folder called “ssl”', 'really-simple-ssl')} </li> <li className="rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"> {__('Inside the folder called “ssl” create a new folder called “certs”, with 644 writing permissions.', 'really-simple-ssl')} </li> <li className="rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"> {__('Click the refresh button.', 'really-simple-ssl')} </li> </ul> </div> } </div> ) } export default Directories;PK�������!�"����+��settings/src/LetsEncrypt/letsEncryptData.jsnu�[��������import {create} from 'zustand'; import produce from 'immer'; import * as rsssl_api from "../utils/api"; import {__} from "@wordpress/i18n"; import sleeper from "../utils/sleeper"; import {dispatch} from '@wordpress/data'; const useLetsEncryptData = create(( set, get ) => ({ actionIndex:-1, progress:0, attemptCount:0, refreshTests:false, actionsList:[], updateVerificationType: async (verificationType) => { await rsssl_api.runLetsEncryptTest('update_verification_type', verificationType).then((response) => { let msg = verificationType==='dir' ? __('Switched to Directory', 'really-simple-ssl') : __('Switched to DNS', 'really-simple-ssl'); const notice = dispatch('core/notices').createNotice( 'success', msg, { __unstableHTML: true, id: 'rsssl_switched_to_dns', type: 'snackbar', isDismissible: true, } ).then(sleeper(3000)).then((response) => { dispatch('core/notices').removeNotice('rsssl_switched_to_dns'); }); }); }, setAttemptCount: (attemptCount) => {set(state => ({ attemptCount }))}, setProgress: (progress) => {set(state => ({ progress }))}, setActionsList: (actionsList) => {set(state => ({ actionsList }))}, setActionsListItem: (index, action) => { set( produce((state) => { state.actionsList[index] = action; }) ) }, setActionsListProperty: (index, property, value) => { set( produce((state) => { state.actionsList[index][property] = value; }) ) }, setRefreshTests: (refreshTests) => {set(state => ({ refreshTests }))}, setActionIndex: (actionIndex) => {set(state => ({ actionIndex }))}, })); export default useLetsEncryptData; PK�������!� Vv,��,��,��settings/src/Onboarding/Items/PremiumItem.jsnu�[��������import {memo} from "@wordpress/element"; const PremiumItem = ({item}) => { let { title } = item; return ( <li> <div className="rsssl-modal-premium-container"> PRO </div> {title} </li> ) } export default memo(PremiumItem)PK�������!�~,����-��settings/src/Onboarding/Items/CheckboxItem.jsnu�[��������import useOnboardingData from "../OnboardingData"; import {memo} from "@wordpress/element"; const CheckboxItem = ({item, disabled}) => { const { updateItemStatus, currentStep } = useOnboardingData(); let { title, description, id, activated } = item; return ( <li> <label className="rsssl-modal-checkbox-container"> <input type="checkbox" disabled={disabled} checked={activated} value={id} id={id} onChange={(e) => updateItemStatus(currentStep.id, id, null, null, e.target.checked )}/> <span className="rsssl-checkmark"></span> </label> {title} {description && <> - {description}</>} </li> ) } export default memo(CheckboxItem)PK�������!�]*����)��settings/src/Onboarding/Items/ListItem.jsnu�[��������import Icon from "../../utils/Icon"; import {memo} from "@wordpress/element"; import {__} from "@wordpress/i18n"; import useOnboardingData from "../OnboardingData"; const ListItem = ({item}) => { let { title, status, id } = item; const { overrideSSL, setOverrideSSL, certificateValid, } = useOnboardingData(); const statuses = { 'inactive': { 'icon': 'info', 'color': 'grey', }, 'warning': { 'icon': 'circle-times', 'color': 'orange', }, 'error': { 'icon': 'circle-times', 'color': 'red', }, 'success': { 'icon': 'circle-check', 'color': 'green', }, 'processing': { 'icon': 'loading', 'color': 'black', }, }; const statusIcon = item.status!=='success' && item.current_action === 'none' ? 'empty' : statuses[status].icon; const statusColor = statuses[status].color; return ( <> <li> <Icon name = {statusIcon} color = {statusColor} /> {title} { id==='certificate' && !certificateValid && <>  <a href="#" onClick={ (e) => refreshSSLStatus(e)}> { __("Check again", "really-simple-ssl")} </a> </> } </li> { id==='certificate' && !certificateValid && <li> <label className="rsssl-override-detection-toggle"> <input onChange={ (e) => setOverrideSSL(e.target.checked)} type="checkbox" checked={overrideSSL} /> {__("Override SSL detection.","really-simple-ssl")} </label> </li> } </> ) } export default memo(ListItem)PK�������!�����*��settings/src/Onboarding/Steps/StepEmail.jsnu�[��������import {memo, useEffect} from "@wordpress/element"; import {__} from "@wordpress/i18n"; import useOnboardingData from "../OnboardingData"; import useFields from "../../Settings/FieldsData"; const StepEmail = () => { const { fetchFieldsData, getFieldValue, fieldsLoaded} = useFields(); const { email, setEmail, includeTips, setIncludeTips, } = useOnboardingData(); useEffect(() => { if ( !fieldsLoaded ) { fetchFieldsData(); } }, []); useEffect( () => { if (getFieldValue('notifications_email_address') !== '' && email==='') { setEmail(getFieldValue('notifications_email_address')) } }, []) return ( <> <div> <input type="email" value={email} placeholder={__("Your email address", "really-simple-ssl")} onChange={(e) => setEmail(e.target.value)} /> </div> <div> <label> <input onChange={ (e) => setIncludeTips(e.target.checked)} type="checkbox" checked={includeTips} />{__("Include 6 Tips & Tricks to get started with Really Simple SSL.","really-simple-ssl")} <a href="https://really-simple-ssl.com/legal/privacy-statement/" target="_blank">{__("Privacy Statement", "really-simple-ssl")}</a> </label> </div> </> ); } export default memo(StepEmail)PK�������!�%����(��settings/src/Onboarding/Steps/StepPro.jsnu�[��������import {memo} from "@wordpress/element"; import useOnboardingData from "../OnboardingData"; import CheckboxItem from "../Items/CheckboxItem"; import PremiumItem from "../Items/PremiumItem"; const StepPro = () => { const { currentStep, } = useOnboardingData(); let premiumItems = currentStep.items; return ( <> <ul> { !rsssl_settings.pro_plugin_active && premiumItems && premiumItems.map( (item, index) => <PremiumItem key={'step-pro'+index} item={item} />) } { rsssl_settings.pro_plugin_active && premiumItems && premiumItems.map( (item, index) => <CheckboxItem key={'step-pro'+index} item={item} />) } </ul> </> ); } export default memo(StepPro);PK�������!�!pa>��>��-��settings/src/Onboarding/Steps/StepFeatures.jsnu�[��������import {memo} from "@wordpress/element"; import useOnboardingData from "../OnboardingData"; import CheckboxItem from "../Items/CheckboxItem"; import PremiumItem from "../Items/PremiumItem"; const StepFeatures = () => { const { currentStep } = useOnboardingData(); let items = currentStep.items ? currentStep.items : []; let freeItems = items.filter( (item) => !item.premium ); let premiumItems = items.filter( (item) => item.premium ); return ( <> <ul> { freeItems && freeItems.map( (item, index) => <CheckboxItem key={'step-features'+index} item={item} />) } { premiumItems && premiumItems.map( (item, index) => <PremiumItem key={'step-features'+index} item={item} />) } </ul> </> ); } export default memo(StepFeatures)PK�������!�Դʟ-��-��+��settings/src/Onboarding/Steps/StepConfig.jsnu�[��������import {memo, useEffect} from "@wordpress/element"; import {__} from "@wordpress/i18n"; import useOnboardingData from "../OnboardingData"; import useFields from "../../Settings/FieldsData"; import Host from "../../Settings/Host/Host"; import ListItem from "../Items/ListItem"; const StepConfig = ({isModal}) => { const { fetchFieldsData, getField, fieldsLoaded, updateField, setChangedField, saveFields} = useFields(); const { currentStep, } = useOnboardingData(); useEffect(() => { if ( !fieldsLoaded ) { fetchFieldsData(); } }, []); let otherHostsField = fieldsLoaded && getField('other_host_type'); let items = currentStep.items ? currentStep.items : []; if ( rsssl_settings.cloudflare ) { let cfItem = { status: 'success', title: "CloudFlare", id: 'cf' } items.unshift(cfItem); } return ( <> { isModal && <Host field={otherHostsField} showDisabledWhenSaving={false}/>} <ul> { <ul> { items && items.map( (item, index) => <ListItem key={'step-config-'+index} item={item} />) } </ul> } </ul> </> ); } export default memo(StepConfig)PK�������!�.Jy��y��,��settings/src/Onboarding/Steps/StepPlugins.jsnu�[��������import {memo, useEffect} from "@wordpress/element"; import useOnboardingData from "../OnboardingData"; import CheckboxItem from "../Items/CheckboxItem"; const StepPlugins = () => { const { currentStep, currentStepIndex, setCurrentStepIndex, } = useOnboardingData(); useEffect(()=> { //if all plugins are already activated, we skip the plugins step let plugins = currentStep.items; if ( plugins.filter(item => item.action !== 'none').length === 0) { setCurrentStepIndex(currentStepIndex+1); } }, [] ); let plugins = currentStep.items; return ( <> <ul> { plugins && plugins.map( (item, index) => <CheckboxItem key={'step-plugins'+index} item={item} disabled={item.action==='none'} />) } </ul> </> ); } export default memo(StepPlugins);PK�������!�^:'��'��'��settings/src/Onboarding/onboarding.scssnu�[�������� .rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body, .rsssl-letsencrypt .rsssl-le-activate_ssl { .rsssl-override-detection-toggle { margin-bottom: -15px; } input[type=email] { width: 100%; margin-bottom: var(--rsp-spacing-m); border: 2px solid; height: 50px; border-color: var(--rsp-grey-300); } //hide select label .rsssl-select { label { display: none; } .components-select-control__input{ height:45px; padding: 8px 20px; color: var(--rsp-grey-500); } } .rsssl-activate_ssl, .rsssl-plugins { ul { column-count: 1; } } ul { li { display: flex; align-items: flex-start; margin-bottom: var(--rsp-spacing-xxs); &.rsssl-is-plugin{ background-color: var(--rsp-grey-100); border: none; margin: 10px 0; padding:5px 0; position:relative; } .rsssl-icon{ margin-right:7px; } } } }PK�������!�m �� ��*��settings/src/Onboarding/OnboardingModal.jsnu�[��������import {useEffect} from "@wordpress/element"; import Onboarding from "./Onboarding"; import Placeholder from '../Placeholder/Placeholder'; import { __ } from '@wordpress/i18n'; import Icon from "../utils/Icon"; import useOnboardingData from "./OnboardingData"; import useFields from "../Settings/FieldsData"; import RssslModal from "../../../modal/src/components/Modal/RssslModal"; import OnboardingControls from "./OnboardingControls"; const OnboardingModal = () => { const {footerStatus, showOnboardingModal, fetchOnboardingModalStatus, modalStatusLoaded, currentStep, dismissModal} = useOnboardingData(); const {fieldsLoaded} = useFields(); useEffect(() => { if ( !modalStatusLoaded ) { fetchOnboardingModalStatus(); } }, []); useEffect(()=> { if ( showOnboardingModal ) { dismissModal(false); } }, [showOnboardingModal]); const modalContent = () => { return ( <> { !fieldsLoaded && <> <ul> <li><Icon name = "loading" />{__("Please wait while we detect your setup", "really-simple-ssl")}</li> </ul> <Placeholder lines="3"></Placeholder> </> } { fieldsLoaded && <Onboarding isModal={true} /> } </> ) } const setOpen = (open) => { if ( !open ) { dismissModal(true); } } const handleFooterStatus = () => { if ( footerStatus.length === 0 ) { return false; } return ( <> <Icon name = "loading" color = 'grey' /> {footerStatus} </> ) } return ( <> <RssslModal className={"rsssl-onboarding-modal"} title={currentStep.title} subTitle={currentStep.subtitle} content={modalContent()} isOpen={showOnboardingModal} setOpen={setOpen} buttons = <OnboardingControls isModal={true} /> footer = {handleFooterStatus() } /> </> ) } export default OnboardingModal;PK�������!�1Z��Z��%��settings/src/Onboarding/checkbox.scssnu�[��������.rsssl-modal-body, .rsssl-le-activate_ssl { .rsssl-modal-checkbox-container { margin-right: 35px; display: block; position: relative; margin-bottom: 5px; padding-left: 10px; cursor: pointer; font-size: 12px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; overflow:unset !important; &:hover input ~ .rsssl-checkmark { background-color: var(--rsp-grey-400); border: 1px solid var(--rsp-grey-400); border-radius: 3px; } input:checked ~ .rsssl-checkmark { background-color: var(--rsp-dark-blue); border: 1px solid var(--rsp-dark-blue); } input:disabled ~ .rsssl-checkmark { background-color: var(--rsp-grey-400); border: 1px solid var(--rsp-grey-400); } input:checked ~ .rsssl-checkmark:after { display: block; } .rsssl-checkmark::after { left: 6px; top: 3px; width: 5px; height: 7px; border: solid white; border-width: 0 2px 2px 0; transform: rotate(45deg); -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); } input { position: absolute; height: 0; width: 0; opacity: 0; cursor: pointer; } .rsssl-checkmark { background-color: var(--rsp-grey-300); border: 1px solid var(--rsp-grey-400); position: absolute; top: 0; left: 0; height: var(--rsp-fs-600); aspect-ratio: 1; } .rsssl-checkmark::after { content: ""; position: absolute; display: none; } } } PK�������!�u������(��settings/src/Onboarding/PremiumItem.scssnu�[��������.rsssl-modal-premium-container { background-color: var(--rsp-dark-blue); color:#fff; padding:0 5px; margin-right:22px; }PK�������!�\L����-��settings/src/Onboarding/OnboardingControls.jsnu�[��������import { Button } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; import useMenu from "../Menu/MenuData"; import useFields from "../Settings/FieldsData"; import useOnboardingData from "./OnboardingData"; import useProgress from "../Dashboard/Progress/ProgressData"; import useRiskData from "../Settings/RiskConfiguration/RiskData"; import useSslLabs from "../Dashboard/SslLabs/SslLabsData"; const OnboardingControls = ({isModal}) => { const { getProgressData} = useProgress(); const { updateField, setChangedField, updateFieldsData, fetchFieldsData, saveFields} = useFields(); const { setSelectedMainMenuItem, selectedSubMenuItem} = useMenu(); const { fetchFirstRun, fetchVulnerabilities } = useRiskData(); const { setSslScanStatus, } = useSslLabs(); const { dismissModal, activateSSL, certificateValid, setFooterStatus, networkwide, processing, setProcessing, steps, currentStepIndex, currentStep, setCurrentStepIndex, overrideSSL, email, saveEmail, pluginInstaller, } = useOnboardingData(); const goToDashboard = () => { if ( isModal ) { dismissModal(true); } setSelectedMainMenuItem('dashboard'); } const saveAndContinue = async () => { let vulnerabilityDetectionEnabled = false; if (currentStep.id === 'features') { setCurrentStepIndex(currentStepIndex+1); setProcessing(true); //loop through all items of currentStep.items for (const item of currentStep.items){ if ( item.id=== 'health_scan' && item.activated ) { setFooterStatus(__("Starting SSL health scan...", "really-simple-ssl") ); setSslScanStatus('active'); } if ( ! item.premium || ! item.activated ) { for (const fieldId of Object.values(item.options)) { updateField(fieldId, item.activated); setChangedField(fieldId, item.activated); } } if ( item.id === 'vulnerability_detection' ) { vulnerabilityDetectionEnabled = item.activated; } } setFooterStatus(__("Activating options...", "really-simple-ssl") ); await saveFields(true, false); if (vulnerabilityDetectionEnabled) { setFooterStatus(__("Initializing vulnerability detection...", "really-simple-ssl") ); await fetchFirstRun(); setFooterStatus(__("Scanning for vulnerabilities...", "really-simple-ssl") ); await fetchVulnerabilities(); } setFooterStatus(__("Updating dashboard...", "really-simple-ssl") ); await getProgressData(); setFooterStatus( '' ); setProcessing(false); } if ( currentStep.id === 'email' ) { await saveEmail(); setCurrentStepIndex(currentStepIndex+1); updateField('send_notifications_email', true ); updateField('notifications_email_address', email ); updateFieldsData(selectedSubMenuItem); } if ( currentStep.id === 'plugins' ) { setCurrentStepIndex(currentStepIndex+1) for (const item of currentStep.items) { if (item.action !== 'none' && item.action !== null ) { // Add the promise returned by pluginInstaller to the array await pluginInstaller(item.id, item.action, item.title ); } } setFooterStatus('') } if ( currentStep.id === 'pro' ) { if ( rsssl_settings.pro_plugin_active ) { setProcessing(true); //loop through all items of currentStep.items for (const item of currentStep.items) { if (item.activated) { for (const fieldId of Object.values(item.options)) { updateField(fieldId, true); setChangedField(fieldId, true); } } } setFooterStatus(__("Activating options...", "really-simple-ssl")); await saveFields(true, false); setFooterStatus(__("Updating dashboard...", "really-simple-ssl")); await getProgressData(); setFooterStatus(''); setProcessing(false); } goToDashboard(); } } const handleActivateSSL = async () => { await activateSSL(); await getProgressData(); await fetchFieldsData( ); } const goToLetsEncrypt = () => { if (isModal) dismissModal(true); window.location.href=rsssl_settings.letsencrypt_url; } let ActivateSSLText = networkwide ? __("Activate SSL networkwide", "really-simple-ssl") : __("Activate SSL", "really-simple-ssl"); if ( currentStepIndex === 0 ) { return ( <> { isModal && !certificateValid && <Button onClick={() => {goToLetsEncrypt()}}>{__("Install SSL", "really-simple-ssl")}</Button>} <Button disabled={processing || (!certificateValid && !overrideSSL) } isPrimary onClick={() => {handleActivateSSL()}}>{ActivateSSLText}</Button> </> ); } if (currentStepIndex>0 && currentStepIndex<steps.length-1) { return ( <> <Button onClick={() => {setCurrentStepIndex(currentStepIndex+1)}}>{__('Skip', 'really-simple-ssl')}</Button> <Button isPrimary onClick={() => saveAndContinue() }> {currentStep.button} </Button> </> ); } //for last step only if ( steps.length-1 === currentStepIndex ) { let upgradeText = rsssl_settings.is_bf ? __("Get 40% off", "really-simple-ssl") : __("Get PRO", "really-simple-ssl"); return ( <> <Button isPrimary onClick={() => saveAndContinue() }>{__('Finish', 'really-simple-ssl')}</Button> { !rsssl_settings.pro_plugin_active && <Button rel="noreferrer noopener" target="_blank" isPrimary href={rsssl_settings.upgrade_link} >{upgradeText}</Button>} </> ); } } export default OnboardingControls;PK�������!�����%��settings/src/Onboarding/Onboarding.jsnu�[��������import { useEffect } from "@wordpress/element"; import { __ } from '@wordpress/i18n'; import Icon from "../utils/Icon"; import Placeholder from '../Placeholder/Placeholder'; import useFields from "../Settings/FieldsData"; import useOnboardingData from "./OnboardingData"; import OnboardingControls from "./OnboardingControls"; import StepEmail from "./Steps/StepEmail"; import StepConfig from "./Steps/StepConfig"; import StepFeatures from "./Steps/StepFeatures"; import StepPlugins from "./Steps/StepPlugins"; import StepPro from "./Steps/StepPro"; import './PremiumItem.scss'; import './checkbox.scss'; import './onboarding.scss'; import DOMPurify from 'dompurify'; const Onboarding = ({isModal}) => { const { fetchFieldsData, fieldsLoaded} = useFields(); const { getSteps, error, networkwide, sslEnabled, dataLoaded, processing, currentStep, currentStepIndex, setCurrentStepIndex, networkActivationStatus, networkProgress, activateSSLNetworkWide, } = useOnboardingData(); useEffect( () => { if (networkwide && networkActivationStatus==='main_site_activated') { //run networkwide activation with a delay setTimeout( () => { activateSSLNetworkWide(); }, 1000); } }, [networkActivationStatus, networkProgress]) useEffect(() => { if ( !fieldsLoaded ) { fetchFieldsData(); } }, []); useEffect( () => { const run = async () => { await getSteps(false); if ( dataLoaded && sslEnabled && currentStepIndex===0) { setCurrentStepIndex(1) } } run(); }, []) if (error){ return ( <Placeholder lines="3" error={error}></Placeholder> ) } let processingClass = '';//processing ? 'rsssl-processing' : ''; //get 'other_host_type' field from fields return ( <> { !dataLoaded && <> <div className="rsssl-onboarding-placeholder"> <ul> <li><Icon name = "loading" color = 'grey' />{__("Fetching next step...", "really-simple-ssl")}</li> </ul> <Placeholder lines="3" ></Placeholder> </div> </> } { dataLoaded && <div className={ processingClass+" rsssl-"+currentStep.id }> { currentStep.id === 'activate_ssl' && <> <StepConfig isModal={isModal}/> </> } { currentStep.id === 'features'&& <> <StepFeatures /> </> } { currentStep.id === 'email'&& <> <StepEmail /> </> } { currentStep.id === 'plugins' && <> <StepPlugins /> </> } { currentStep.id === 'pro' && <> <StepPro /> </> } { !isModal && <OnboardingControls isModal={false}/> } </div> } </> ) } export default Onboarding;PK�������!�=Z%��%��)��settings/src/Onboarding/OnboardingData.jsnu�[��������import {create} from 'zustand'; import {produce} from 'immer'; import * as rsssl_api from "../utils/api"; import {__} from "@wordpress/i18n"; const useOnboardingData = create(( set, get ) => ({ steps: [], currentStepIndex: 0, currentStep: {}, error: false, networkProgress: 0, networkActivationStatus: '', certificateValid: '', networkwide: false, sslEnabled: false, overrideSSL: false, showOnboardingModal: false, modalStatusLoaded: false, dataLoaded: false, processing: false, email: '', includeTips:false, sendTestEmail:true, overrideSSLDetection:false, footerStatus: '', setFooterStatus: (footerStatus) => { set({footerStatus:footerStatus}) }, setIncludeTips: (includeTips) => { set(state => ({ includeTips })) }, setSendTestEmail: (sendTestEmail) => { set(state => ({ sendTestEmail })) }, setEmail: (email) => { set(state => ({ email })) }, setShowOnboardingModal: (showOnboardingModal) => { set(state => ({ showOnboardingModal })) }, setProcessing: (processing) => { set(state => ({ processing })) }, setCurrentStepIndex: (currentStepIndex) => { const currentStep = get().steps[currentStepIndex]; set(state => ({ currentStepIndex, currentStep })) }, dismissModal: async (dismiss) => { let data={}; data.dismiss = dismiss; //dismiss is opposite of showOnboardingModal, so we check the inverse. set(() => ({showOnboardingModal: !dismiss})); await rsssl_api.doAction('dismiss_modal', data); }, setOverrideSSL: async (override) => { set({overrideSSL: override}); let data = { overrideSSL: override, }; await rsssl_api.doAction('override_ssl_detection',data ); }, activateSSL: () => { set((state) => ({processing:true})); rsssl_api.runTest('activate_ssl' ).then( async ( response ) => { set((state) => ({processing:false})); get().setCurrentStepIndex( get().currentStepIndex+1 ); //change url to https, after final check if ( response.success ) { if ( response.site_url_changed ) { window.location.reload(); } else { if ( get().networkwide ) { set(state => ({ networkActivationStatus:'main_site_activated' })) } } set({ sslEnabled: true}) } }); }, saveEmail:() => { get().setFooterStatus( __("Updating email preferences..", "really-simple-ssl") ); let data={}; data.email = get().email; data.includeTips = get().includeTips; data.sendTestEmail = get().sendTestEmail; set((state) => ({processing:true})); rsssl_api.doAction('update_email', data).then(( response ) => { set((state) => ({processing:false})); get().setFooterStatus('' ); }); }, updateItemStatus: (stepId, id, action, status, activated) => { const index = get().steps.findIndex(item => { return item.id===stepId; }); const itemIndex = get().steps[index].items.findIndex(item => {return item.id===id;}); set( produce((state) => { if (typeof action !== 'undefined') state.steps[index].items[itemIndex].action = action; if (typeof status !== 'undefined') state.steps[index].items[itemIndex].status = status; if (typeof activated !== 'undefined') state.steps[index].items[itemIndex].activated = activated; }) ) let currentStep = get().steps[get().currentStepIndex]; set( produce((state) => { state.currentStep = currentStep; } )) }, fetchOnboardingModalStatus: async () => { rsssl_api.doAction('get_modal_status').then((response) => { set({ showOnboardingModal: !response.dismissed, modalStatusLoaded: true, }) }); }, setShowOnBoardingModal: (showOnboardingModal) => set(state => ({ showOnboardingModal })), pluginInstaller: async (id, action, title) => { if ( !action ) { return; } set(() => ({processing:true})); get().updateItemStatus('plugins', id, action, 'processing'); get().setFooterStatus(__("Installing %d...", "really-simple-ssl").replace("%d", title)); let nextAction = await processAction(action, id); get().updateItemStatus('plugins', id, nextAction); if ( nextAction!=='none' && nextAction!=='completed') { get().setFooterStatus(__("Activating %d...", "really-simple-ssl").replace("%d", title)); nextAction = await processAction(nextAction, id); get().updateItemStatus('plugins', id, nextAction); } else { get().setFooterStatus(''); } set((state) => ({processing:false})); }, getSteps: async (forceRefresh) => { const {steps, networkActivationStatus, certificateValid, networkProgress, networkwide, overrideSSL, error, sslEnabled} = await retrieveSteps(forceRefresh); //if ssl is already enabled, the server will send only one step. In that case we can skip the below. //it's only needed when SSL is activated just now, client side. let currentStepIndex = 0; if ( sslEnabled || ( networkwide && networkActivationStatus === 'completed') ) { currentStepIndex = 1; } set({ steps: steps, currentStepIndex:currentStepIndex, currentStep: steps[currentStepIndex], networkActivationStatus: networkActivationStatus, certificateValid: certificateValid, networkProgress: networkProgress, networkwide: networkwide, overrideSSL: overrideSSL, sslEnabled: sslEnabled, dataLoaded: true, error:error, }); if (networkActivationStatus==='completed') { set( {networkProgress: 100} ); } }, refreshSSLStatus: (e) => { e.preventDefault(); set( {processing: true} ); set( produce((state) => { const stepIndex = state.steps.findIndex(step => { return step.id==='activate_ssl'; }); const step = state.steps[stepIndex]; step.items.forEach(function(item, j){ if (item.status==='error') { step.items[j].status = 'processing'; step.items[j].title = __("Re-checking SSL certificate, please wait...","really-simple-ssl"); } }); state.steps[stepIndex] = step; }) ) setTimeout(async function () { const { steps, certificateValid, error, } = await retrieveSteps(true); set({ steps: steps, certificateValid: certificateValid, processing: false, error: error, }); }, 1000) //add a delay, otherwise it's so fast the user may not trust it. }, activateSSLNetworkWide: () => { let progress = get().networkProgress; if (typeof progress !== 'undefined') { get().setFooterStatus(__("%d% of subsites activated.").replace('%d', progress)); } if (get().networkProgress>=100) { set({ sslEnabled: true, networkActivationStatus:'completed' }); return; } set( () => ({processing: true})); rsssl_api.runTest('activate_ssl_networkwide' ).then( ( response ) => { if (response.success) { set({ networkProgress: response.progress, processing:false, }); get().setFooterStatus(__("%d% of subsites activated.").replace('%d', response.progress)); if (response.progress>=100) { get().setFooterStatus(''); set({ sslEnabled: true, networkActivationStatus:'completed' }); } } }); } })); const retrieveSteps = (forceRefresh) => { let data={}; data.forceRefresh = forceRefresh; return rsssl_api.doAction('onboarding_data', data).then( ( response ) => { let steps = response.steps; let sslEnabled= response.ssl_enabled; let networkActivationStatus= response.network_activation_status; let certificateValid = response.certificate_valid; let networkProgress = response.network_progress; let networkwide = response.networkwide; let overrideSSL = response.ssl_detection_overridden; let error = response.error; return {steps, networkActivationStatus, certificateValid, networkProgress, networkwide, overrideSSL, error, sslEnabled}; }); } const processAction = async (action, id) => { let data={}; data.id = id; return await rsssl_api.doAction(action, data).then( async ( response ) => { if ( response.success ){ return response.next_action; } else { return 'failed'; } }).catch(error => { return 'failed'; }); } export default useOnboardingData;PK�������!�,H1��1��9��settings/src/Dashboard/Vulnerabilities/Vulnerabilities.jsnu�[��������import Icon from "../../utils/Icon"; import {__, _n} from "@wordpress/i18n"; import {useEffect, useState} from "react"; import useFields from "../../Settings/FieldsData"; import useRiskData from "../../Settings/RiskConfiguration/RiskData"; const Vulnerabilities = () => { const { vulnerabilities, vulnerabilityScore, updates, dataLoaded, fetchVulnerabilities } = useRiskData(); const {fields, getFieldValue} = useFields(); const [vulnerabilityWord, setVulnerabilityWord] = useState(''); const [updateWord, setUpdateWord] = useState(''); const [updateWordCapitalized, setUpdateWordCapitalized] = useState(''); const [vulnerabilityWordCapitalized, setVulnerabilityWordCapitalized] = useState(''); const [updateString, setUpdateString] = useState(''); const [hardeningWord, setHardeningWord] = useState(''); const [notEnabledHardeningFields, setNotEnabledHardeningFields] = useState(0); const [vulEnabled, setVulEnabled] = useState(false); useEffect(() => { if (getFieldValue('enable_vulnerability_scanner')==1) { setVulEnabled(true); } }, [fields]); useEffect(() => { if (!dataLoaded) { fetchVulnerabilities(); } }, [vulEnabled]); useEffect(() => { //singular or plural of the word vulnerability const v = (vulnerabilities === 1) ? __("vulnerability", "really-simple-ssl") : __("vulnerabilities", "really-simple-ssl"); setVulnerabilityWordCapitalized(v.charAt(0).toUpperCase() + v.slice(1)); setVulnerabilityWord(v); const u = (updates === 1) ? __("update", "really-simple-ssl") : __("updates", "really-simple-ssl"); const s = _n('You have %s update pending', 'You have %s updates pending', updates, 'really-simple-ssl').replace('%s', updates); setUpdateWord(u); setUpdateWordCapitalized(u.charAt(0).toUpperCase() + u.slice(1)); setUpdateString(s); const h = (notEnabledHardeningFields === 1) ? __("hardening feature", "really-simple-ssl") : __("hardening features", "really-simple-ssl"); setHardeningWord(h); },[vulnerabilities, updates, notEnabledHardeningFields]) useEffect(() => { if (fields.length>0) { let notEnabledFields = fields.filter(field => field.recommended); //we need to filter enabled fields, but also disabled fields, because these are not enabled, but set by another method, so disabled notEnabledFields = notEnabledFields.filter(field => field.value !== 1 && field.disabled !== true); setNotEnabledHardeningFields(notEnabledFields.length); } },[fields]) let vulClass = 'rsssl-inactive'; let badgeVulStyle = vulEnabled?'rsp-success':'rsp-default'; let badgeUpdateStyle = 'rsp-success'; let iconVulColor = 'green'; let iconVulEnabledColor = 'red'; let iconUpdateColor = 'black'; if (vulEnabled || notEnabledHardeningFields > 0 || updates > 0) { //now we calculate the score let score = vulnerabilityScore(); //we create correct badge style if (score >= 5) { badgeVulStyle = 'rsp-critical'; iconVulColor = 'red'; } else if (score < 4 && score > 0) { badgeVulStyle = 'rsp-medium'; iconVulColor = 'yellow'; } if (updates >= 5) { badgeUpdateStyle = 'rsp-critical'; iconUpdateColor = 'red'; } else if (score < 5 && score > 0) { badgeUpdateStyle = 'rsp-medium'; iconUpdateColor = 'yellow'; } if ( score < notEnabledHardeningFields ) { score = notEnabledHardeningFields; } if (score < updates) { score = updates; } if (score === 0) { vulClass = 'rsssl-success'; } else if (score < 5) { vulClass = 'rsssl-warning'; } else { vulClass = 'rsssl-error'; } // if (!vulEnabled) vulClass = "rsssl-inactive"; } const checkVulActive = () => { if (vulEnabled) { // iconVulEnabledColor = 'green'; return (<></>) } return ( <> <div className="rsssl-hardening-list-item"> <Icon name="info" color='yellow'/> <p className={'rsssl-hardening-list-item-text'}> {__("Enable vulnerability detection", "really-simple-ssl")}</p> <a href="#settings/vulnerabilities">{__("Enable", "really-simple-ssl")}</a> </div> </> ) } const checkUpdates = () => { let icon = 'circle-check'; let iconColor = 'green'; if (updates > 0) { icon = 'info'; iconColor = 'yellow'; } if (updates >= 5) { icon = 'circle-times'; iconColor = 'red'; } if (updates) { return ( <> <div className="rsssl-hardening-list-item"> <Icon name={icon} color={iconColor}/> <p className="rsssl-hardening-list-item-text"> {updateString} </p> <a href={rsssl_settings.plugins_url + "?plugin_status=upgrade"} style={linkStyle}>{updateWordCapitalized}</a> </div> </> ) } else { return ( <> <div className="rsssl-hardening-list-item"> <Icon name={icon} color={iconColor}/> <p className="rsssl-hardening-list-item-text"> {updateString} </p> </div> </> ) } } const checkVul = () => { let icon = 'circle-check'; let iconColor = 'green'; if (vulnerabilityScore() > 0) { icon = 'info'; iconColor = 'yellow'; } if (vulnerabilityScore() >= 5) { icon = 'circle-times'; iconColor = 'red'; } if (!vulEnabled) { return ( <> </> ) } if (vulnerabilities) { return ( <> <div className="rsssl-hardening-list-item"> <Icon name={icon} color={iconColor}/> <p className="rsssl-hardening-list-item-text"> {__("You have %s %d", "really-simple-ssl") .replace("%s", vulnerabilities) .replace("%d", vulnerabilityWord) } </p> <a style={linkStyle} href={'#settings/vulnerabilities'}>{__('Learn more', 'really-simple-ssl')}</a> </div> </> ) } else { return ( <> <div className="rsssl-hardening-list-item"> <Icon name="circle-check" color='green'/> <p className="rsssl-hardening-list-item-text"> {__("You have %s %d", "really-simple-ssl") .replace("%d", vulnerabilityWord) .replace("%s", vulnerabilities) } </p> </div> </> ) } } const linkStyle = { marginLeft: '0.3em' } const checknotEnabledHardeningFields = () => { if (notEnabledHardeningFields) { let icon = 'circle-check'; let iconColor = 'green'; if (notEnabledHardeningFields > 0) { icon = 'info'; iconColor = 'yellow'; } if (notEnabledHardeningFields >= 5) { icon = 'circle-times'; iconColor = 'red'; } return ( <> <div className="rsssl-hardening-list-item"> <Icon name={icon} color={iconColor}/> <p className={"rsssl-hardening-list-item-text"}> {__("You have %s open %d", "really-simple-ssl").replace("%s", notEnabledHardeningFields).replace('%d',hardeningWord)} </p> <a href="#settings/hardening">{__("Settings", "really-simple-ssl")}</a> </div> </> ) } else { return (<> <div className="rsssl-hardening-list-item"> <Icon name="circle-check" color='green'/> <p className={"rsssl-hardening-list-item-text"}>{__("Hardening features are configured", "really-simple-ssl")}</p> {/*@todo link toevoegen?*/} <a style={linkStyle} href={'#settings/vulnerabilities'} target="_blank" rel="noopener noreferrer">{__('What now', 'really-simple-ssl')}?</a> </div> </>) } } return ( <> {dataLoaded ? <div className={'rsssl-hardening'}> <div className="rsssl-gridblock-progress" ></div> <div className={"rsssl-hardening-select " + vulClass}> <div className="rsssl-hardening-select-item"> {vulEnabled ? <Icon color={iconVulColor} size={23} name="radar-duotone"></Icon> : <Icon size={23} color={iconVulEnabledColor} name="satellite-dish-duotone"></Icon>} <h2>{vulEnabled ? vulnerabilities : '?'}</h2> <span className={"rsssl-badge " + badgeVulStyle}>{vulnerabilityWordCapitalized}</span> </div> <div className="rsssl-hardening-select-item"> { updates ? <Icon size={23} color={iconUpdateColor} name="rotate-exclamation-light"></Icon> : <Icon size={23} color={'black'} name="rotate-light"></Icon>} <h2>{updates}</h2> <span className={"rsssl-badge " + badgeUpdateStyle}>{updateWordCapitalized}</span> </div> </div> <div className="rsssl-hardening-list"> {checknotEnabledHardeningFields()} {checkVulActive()} {checkVul()} {checkUpdates()} </div> </div> : <div className="rsssl-hardening"> <div className="rsssl-gridblock-progress" ></div> <div className="rsssl-hardening-select"> <div className="rsssl-hardening-select-item"> <Icon size={23} color={'grey'} name="radar-duotone"></Icon> <h2>0</h2> <span className={"rsssl-badge rsp-default"}>{vulnerabilityWordCapitalized}</span> </div> <div className="rsssl-hardening-select-item"> <Icon size={23} color={'grey'} name="rotate-exclamation-light"></Icon> <h2>0</h2> <span className={"rsssl-badge rsp-default"}>{updateWordCapitalized}</span> </div> </div> <div className="rsssl-hardening-list"> <div className="rsssl-hardening-list-item"> <Icon color={'grey'} name="circle-check"></Icon> <p className={"rsssl-hardening-list-item-text"}>{__("Loading...", "really-simple-ssl")}</p> </div> <div className="rsssl-hardening-list-item"> <Icon color={'grey'} name="circle-check"></Icon> <p className={"rsssl-hardening-list-item-text"}>{__("Loading...", "really-simple-ssl")}</p> </div> <div className="rsssl-hardening-list-item"> <Icon color={'grey'} name="circle-check"></Icon> <p className={"rsssl-hardening-list-item-text"}>{__("Loading...", "really-simple-ssl")}</p> </div> </div> </div> } </> ) } export default Vulnerabilities; PK�������!�z#��#��?��settings/src/Dashboard/Vulnerabilities/VulnerabilitiesHeader.jsnu�[��������import { __ } from '@wordpress/i18n'; import {useEffect, useState} from "react"; import useFields from "../../Settings/FieldsData"; const VulnerabilitiesHeader = () => { const {fields, getFieldValue} = useFields(); const [vulEnabled, setVulEnabled] = useState(false); useEffect(() => { if (getFieldValue('enable_vulnerability_scanner')==1) { setVulEnabled(true); } }, [fields]); return ( <> <h3 className="rsssl-grid-title rsssl-h4">{ vulEnabled ? __( "Vulnerabilities", 'really-simple-ssl' ) : __( "Hardening", 'really-simple-ssl' ) }</h3> <div className="rsssl-grid-item-controls"> <span className="rsssl-header-html"></span> </div> </> ) } export default VulnerabilitiesHeader;PK�������!�߱5����?��settings/src/Dashboard/Vulnerabilities/VulnerabilitiesFooter.jsnu�[��������import React, {useEffect, useState} from 'react'; import {__} from '@wordpress/i18n'; import useRiskData from "../../Settings/RiskConfiguration/RiskData"; import useFields from "../../Settings/FieldsData"; import {getRelativeTime} from '../../utils/formatting'; const VulnerabilitiesFooter = (props) => { const {lastChecked} = useRiskData(); const {fields, getFieldValue} = useFields(); const [vulEnabled, setVulEnabled] = useState(false); useEffect(() => { if (getFieldValue('enable_vulnerability_scanner')==1) { setVulEnabled(true); } }, [fields]); const styleFooter = { textAlign: 'right', position: 'relative', right: '0', } return ( <> <a href="#settings/vulnerabilities" className={'button button-default'}>{__('Settings', 'really-simple-ssl')}</a> {vulEnabled? <p className={'rsssl-small-text'}>{getRelativeTime(lastChecked)}</p>: null} </> ) } export default VulnerabilitiesFooter; PK�������!� .^����/��settings/src/Dashboard/Progress/ProgressData.jsnu�[��������import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; const useProgress = create(( set, get ) => ({ filter:'all', progressText:'', notices: [], error:false, percentageCompleted:0, progressLoaded:false, setFilter: (filter) => { sessionStorage.rsssl_task_filter = filter; set(state => ({ filter })) }, fetchFilter: () => { if ( typeof (Storage) !== "undefined" && sessionStorage.rsssl_task_filter ) { let filter = sessionStorage.rsssl_task_filter; set(state => ({ filter:filter })) } }, getProgressData: async () => { const {percentage, text, notices, error } = await rsssl_api.runTest('progressData', 'refresh').then( ( response ) => { return response; }); set(state => ({ notices:notices, percentageCompleted:percentage, progressText:text, progressLoaded:true, error:error, })) }, dismissNotice: async (noticeId) => { let notices = get().notices; notices = notices.filter(function (notice) { return notice.id !== noticeId; }); set(state => ({ notices:notices })) const {percentage} = await rsssl_api.runTest('dismiss_task', noticeId); set({ percentageCompleted:percentage }) } })); export default useProgress; PK�������!�W˃����6��settings/src/Dashboard/Progress/ProgressBlockHeader.jsnu�[��������import { __ } from '@wordpress/i18n'; import { useEffect, } from '@wordpress/element'; import useProgress from "./ProgressData"; const ProgressHeader = () => { const {setFilter, filter, fetchFilter, notices, error } = useProgress(); useEffect( () => { fetchFilter(); }, [] ); const onClickHandler = (e) => { let filter = e.target.getAttribute('data-filter'); if (filter==='all' || filter==='remaining') { setFilter(filter); } } if (error ) { return ( <></> ); } let all_task_count = 0; let open_task_count = 0; all_task_count = notices.length; let openNotices = notices.filter(function (notice) { return notice.output.status==='open' || notice.output.status==='warning'; }); open_task_count = openNotices.length; return ( <> <h3 className="rsssl-grid-title rsssl-h4">{ __( "Progress", 'really-simple-ssl' ) }</h3> <div className="rsssl-grid-item-controls"> <div className={"rsssl-task-switcher-container rsssl-active-filter-"+filter}> <span className="rsssl-task-switcher rsssl-all-tasks" onClick={onClickHandler} htmlFor="rsssl-all-tasks" data-filter="all"> { __( "All tasks", "really-simple-ssl" ) } <span className="rsssl_task_count">({all_task_count})</span> </span> <span className="rsssl-task-switcher rsssl-remaining-tasks" onClick={onClickHandler} htmlFor="rsssl-remaining-tasks" data-filter="remaining"> { __( "Remaining tasks", "really-simple-ssl" )} <span className="rsssl_task_count">({open_task_count})</span> </span> </div> </div> </> ); } export default ProgressHeader; PK�������!�mG �� ��1��settings/src/Dashboard/Progress/ProgressFooter.jsnu�[��������import { __ } from '@wordpress/i18n'; import Icon from "../../utils/Icon"; import useFields from "../../Settings/FieldsData"; import useOnboardingData from "../../Onboarding/OnboardingData"; const ProgressFooter = (props) => { const {setShowOnBoardingModal} = useOnboardingData(); const {fields} = useFields(); let redirectValue = fields.filter( field => field.id==='redirect' )[0].value; let sslEnabled = fields.filter( field => field.id==='ssl_enabled' )[0].value; let wpconfigFixRequired = rsssl_settings.wpconfig_fix_required; let hasMixedContentFixer = fields.filter( field => field.id==='mixed_content_fixer' )[0].value; let hasRedirect = redirectValue=== 'wp_redirect' || redirectValue=== 'htaccess'; let sslStatusText = sslEnabled ? __( "SSL Activated", "really-simple-ssl" ) : __( "SSL not activated", "really-simple-ssl" ); let sslStatusIcon = sslEnabled ? 'circle-check' : 'circle-times'; let sslStatusColor = sslEnabled ? 'green' : 'red'; let redirectIcon = hasRedirect ? 'circle-check' : 'circle-times'; let redirectColor = hasRedirect ? 'green' : 'red'; let mixedContentIcon = hasMixedContentFixer ? 'circle-check' : 'circle-times'; let mixedContentColor = hasMixedContentFixer ? 'green' : 'red'; return ( <> { !sslEnabled && <button disabled={wpconfigFixRequired} onClick={() => setShowOnBoardingModal(true)} className="button button-primary">{__( "Activate SSL", "really-simple-ssl" ) }</button>} { rsssl_settings.pro_plugin_active && <span className="rsssl-footer-left">Really Simple SSL Pro {rsssl_settings.pro_version}</span>} { !rsssl_settings.pro_plugin_active && <a href={rsssl_settings.upgrade_link} target="_blank" rel="noopener noreferrer" className="button button-default">{ __( "Go Pro", "really-simple-ssl" ) }</a>} <div className="rsssl-legend"> <Icon name = {sslStatusIcon} color = {sslStatusColor} /> <div>{sslStatusText}</div> </div> <div className="rsssl-legend"> <Icon name = {mixedContentIcon} color = {mixedContentColor} /> <div>{__( "Mixed content", "really-simple-ssl" )}</div> </div> <div className="rsssl-legend"> <Icon name = {redirectIcon} color = {redirectColor} /> <div>{__( "301 redirect", "really-simple-ssl" )}</div> </div> </> ); } export default ProgressFooter; PK�������!�K�w����0��settings/src/Dashboard/Progress/ProgressBlock.jsnu�[��������import { useState, useEffect, useRef } from '@wordpress/element'; import TaskElement from "./../TaskElement"; import useProgress from "./ProgressData"; import {__} from "@wordpress/i18n"; const ProgressBlock = (props) => { const {percentageCompleted, progressText, filter, notices, progressLoaded, getProgressData, error} = useProgress(); useEffect( () => { getProgressData(); }, [] ); const getStyles = () => { return Object.assign( {}, {width: percentageCompleted+"%"}, ); } let progressBarColor = ''; if ( percentageCompleted<80 ) { progressBarColor += 'rsssl-orange'; } if ( !progressLoaded || error ) { return ( <div className="rsssl-progress-block"> <div className="rsssl-progress-bar"> <div className="rsssl-progress"> <div className={'rsssl-bar rsssl-orange'} style={getStyles()}></div> </div> </div> <div className="rsssl-progress-text"> <h1 className="rsssl-progress-percentage"> 0% </h1> <h5 className="rsssl-progress-text-span"> {__('Loading...', 'really-simple-ssl')} </h5> </div> <div className="rsssl-scroll-container"> <div className="rsssl-task-element"> <span className={'rsssl-task-status rsssl-loading'}>{__('Loading...', 'really-simple-ssl')}</span> <p className="rsssl-task-message">{__('Loading...', 'really-simple-ssl')}</p> </div> </div> </div> ); } let noticesOutput = notices; if ( filter==='remaining' ) { noticesOutput = noticesOutput.filter(function (notice) { return notice.output.status==='open' || notice.output.status==='warning'; }); } return ( <div className="rsssl-progress-block"> <div className="rsssl-progress-bar"> <div className="rsssl-progress"> <div className={'rsssl-bar ' + progressBarColor} style={getStyles()}></div> </div> </div> <div className="rsssl-progress-text"> <AnimatedPercentage percentageCompleted={percentageCompleted} /> <h5 className="rsssl-progress-text-span"> {progressText} </h5> </div> <div className="rsssl-scroll-container"> {noticesOutput.map((notice, i) => <TaskElement key={"task-"+i} notice={notice}/>)} </div> </div> ); } export default ProgressBlock; export const AnimatedPercentage = ({ percentageCompleted }) => { const [displayedPercentage, setDisplayedPercentage] = useState(0); // useRef previous percentageCompleted const prevPercentageCompleted = useRef(0); const easeOutCubic = (t) => { return 1 - Math.pow(1 - t, 3); }; useEffect(() => { const startPercentage = prevPercentageCompleted.current; const animationDuration = 1000; const startTime = Date.now(); const animatePercentage = () => { const elapsedTime = Date.now() - startTime; const progress = Math.min(elapsedTime / animationDuration, 1); const easedProgress = easeOutCubic(progress); const newPercentage = Math.min(startPercentage + (percentageCompleted - startPercentage) * easedProgress, percentageCompleted); if (progress < 1) { // update displayedPercentage setDisplayedPercentage(newPercentage); prevPercentageCompleted.current = percentageCompleted; } else { // update prevPercentageCompleted to the new percentageCompleted clearInterval(animationInterval); } }; const animationInterval = setInterval(animatePercentage, 16); return () => clearInterval(animationInterval); }, [percentageCompleted]); return ( <h1 className="rsssl-progress-percentage"> {Math.round(displayedPercentage)}% </h1> ); };PK�������!�y^��^��9��settings/src/Dashboard/OtherPlugins/OtherPluginsHeader.jsnu�[��������import { __ } from '@wordpress/i18n'; const OtherPluginsHeader = () => { return ( <> <h3 className="rsssl-grid-title rsssl-h4">{ __( "Other Plugins", 'really-simple-ssl' ) }</h3> <div className="rsssl-grid-item-controls"> <span className="rsssl-header-html"> <a className="rsp-logo" href="https://really-simple-plugins.com/"><img src={rsssl_settings.plugin_url+"assets/img/really-simple-plugins.svg"} alt="Really Simple Plugins"/></a> </span> </div> </> ) } export default OtherPluginsHeader;PK�������!�"J �� ��7��settings/src/Dashboard/OtherPlugins/OtherPluginsData.jsnu�[��������import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; import {__} from "@wordpress/i18n"; const useOtherPlugins = create(( set, get ) => ({ error:false, dataLoaded:false, pluginData:[], updatePluginData:(slug, newPluginItem) => { let pluginData = get().pluginData; pluginData.forEach(function(pluginItem, i) { if (pluginItem.slug===slug) { pluginData[i] = newPluginItem; } }); set(state => ({ dataLoaded:true, pluginData:pluginData, })) }, getPluginData: (slug) => { let pluginData = get().pluginData; return pluginData.filter((pluginItem) => { return (pluginItem.slug===slug) })[0]; }, fetchOtherPluginsData: async () => { const {pluginData, error} = await rsssl_api.doAction('otherpluginsdata').then((response) => { let pluginData = []; pluginData = response.plugins; let error = response.error; if (!error) { pluginData.forEach(function (pluginItem, i) { pluginData[i].pluginActionNice = pluginActionNice(pluginItem.pluginAction); }); } return {pluginData, error}; }) set(state => ({ dataLoaded:true, pluginData:pluginData, error:error, })) }, pluginActions: (slug, pluginAction, e) => { if (e) e.preventDefault(); let data = {}; data.slug = slug; data.pluginAction = pluginAction; let pluginItem = get().getPluginData(slug); if ( pluginAction==='download' ) { pluginItem.pluginAction = "downloading"; } else if (pluginAction==='activate') { pluginItem.pluginAction = "activating"; } pluginItem.pluginActionNice = pluginActionNice(pluginItem.pluginAction); get().updatePluginData(slug, pluginItem); if (pluginAction==='installed' || pluginAction === 'upgrade-to-premium') { return; } rsssl_api.doAction('plugin_actions', data).then( ( response ) => { pluginItem = response; get().updatePluginData(slug, pluginItem); get().pluginActions(slug, pluginItem.pluginAction); }) }, })); export default useOtherPlugins; const pluginActionNice = (pluginAction) => { const statuses = { 'download': __("Install", "really-simple-ssl"), 'activate': __("Activate", "really-simple-ssl"), 'activating': __("Activating...", "really-simple-ssl"), 'downloading': __("Downloading...", "really-simple-ssl"), 'upgrade-to-premium': __("Downloading...", "really-simple-ssl"), }; return statuses[pluginAction]; } PK�������!�h0��0��3��settings/src/Dashboard/OtherPlugins/OtherPlugins.jsnu�[��������import { useEffect} from "@wordpress/element"; import { __ } from '@wordpress/i18n'; import Placeholder from '../../Placeholder/Placeholder'; import useOtherPlugins from "./OtherPluginsData"; const OtherPlugins = () => { const {dataLoaded, pluginData, pluginActions, fetchOtherPluginsData, error} = useOtherPlugins(); useEffect(() => { if (!dataLoaded) { fetchOtherPluginsData(); } }, [] ) const otherPluginElement = (plugin, i) => { return ( <div key={"plugin"+i} className={"rsssl-other-plugins-element rsssl-"+plugin.slug}> <a href={plugin.wordpress_url} target="_blank" rel="noopener noreferrer" title={plugin.title}> <div className="rsssl-bullet"></div> <div className="rsssl-other-plugins-content">{plugin.title}</div> </a> <div className="rsssl-other-plugin-status"> {plugin.pluginAction==='upgrade-to-premium' && <><a target="_blank" rel="noopener noreferrer" href={plugin.upgrade_url}>{__("Upgrade", "really-simple-ssl")}</a></>} {plugin.pluginAction!=='upgrade-to-premium' && plugin.pluginAction!=='installed' && <> <a href="#" onClick={ (e) => pluginActions(plugin.slug, plugin.pluginAction, e) } >{plugin.pluginActionNice}</a></>} {plugin.pluginAction==='installed' && <>{__("Installed", "really-simple-ssl")}</>} </div> </div> ) } if ( !dataLoaded || error) { return (<Placeholder lines="3" error={error}></Placeholder>) } return ( <> <div className="rsssl-other-plugins-container"> { pluginData.map((plugin, i) => otherPluginElement(plugin, i)) } </div> </> ) } export default OtherPlugins; PK�������!�7% ��% ��%��settings/src/Dashboard/TaskElement.jsnu�[��������import { __ } from '@wordpress/i18n'; import Icon from '../utils/Icon' import {dispatch,} from '@wordpress/data'; import * as rsssl_api from "../utils/api"; import sleeper from "../utils/sleeper"; import useFields from "../Settings/FieldsData"; import useProgress from "./Progress/ProgressData"; import useMenu from "../Menu/MenuData"; import DOMPurify from "dompurify"; const TaskElement = (props) => { const {dismissNotice} = useProgress(); const {getField, setHighLightField, fetchFieldsData} = useFields(); const {setSelectedSubMenuItem} = useMenu(); const handleClick = async () => { setHighLightField(props.notice.output.highlight_field_id); let highlightField = getField(props.notice.output.highlight_field_id); await setSelectedSubMenuItem(highlightField.menu_id); } const handleClearCache = (cache_id) => { let data = {}; data.cache_id = cache_id; rsssl_api.doAction('clear_cache', data).then( ( response ) => { const notice = dispatch('core/notices').createNotice( 'success', __( 'Re-started test', 'really-simple-ssl' ), { __unstableHTML: true, id: 'rsssl_clear_cache', type: 'snackbar', isDismissible: true, } ).then(sleeper(3000)).then(( response ) => { dispatch('core/notices').removeNotice('rsssl_clear_cache'); }); fetchFieldsData(); }); } let notice = props.notice; let premium = notice.output.icon==='premium'; //treat links to rsssl.com and internal links different. let urlIsExternal = notice.output.url && notice.output.url.indexOf('really-simple-ssl.com') !== -1; return( <div className="rsssl-task-element"> <span className={'rsssl-task-status rsssl-' + notice.output.icon}>{ notice.output.label }</span> <p className="rsssl-task-message" dangerouslySetInnerHTML={{__html: DOMPurify.sanitize( notice.output.msg )}}></p> {/* nosemgrep: react-dangerouslysetinnerhtml */} {urlIsExternal && notice.output.url && <a target="_blank" rel="noopener noreferrer" href={notice.output.url}>{__("More info", "really-simple-ssl")}</a> } {notice.output.clear_cache_id && <span className="rsssl-task-enable button button-secondary" onClick={ () => handleClearCache(notice.output.clear_cache_id ) }>{__("Re-check", "really-simple-ssl")}</span> } {!premium && !urlIsExternal && notice.output.url && <a className="rsssl-task-enable button button-secondary" href={notice.output.url}>{__("View", "really-simple-ssl")}</a> } {!premium && notice.output.highlight_field_id && <span className="rsssl-task-enable button button-secondary" onClick={() => handleClick()}>{__("View", "really-simple-ssl")}</span> } {notice.output.plusone && <span className='rsssl-plusone'>1</span>} {notice.output.dismissible && notice.output.status!=='completed' && <div className="rsssl-task-dismiss"> <button type='button' onClick={(e) => dismissNotice(notice.id) }> <Icon name='times' /> </button> </div> } </div> ); } export default TaskElement;PK�������!�'y��y��#��settings/src/Dashboard/GridBlock.jsnu�[��������const GridBlock = (props) => { const footer =props.block.footer ? props.block.footer : false; const blockData = props.block; let className = "rsssl-grid-item "+blockData.class+" rsssl-"+blockData.id; return ( <div key={"block-"+blockData.id} className={className}> <div key={"header-"+blockData.id} className="rsssl-grid-item-header"> { blockData.header && wp.element.createElement(blockData.header) } { !blockData.header && <> <h3 className="rsssl-grid-title rsssl-h4">{ blockData.title }</h3> <div className="rsssl-grid-item-controls"></div> </> } </div> <div key={"content-"+blockData.id} className="rsssl-grid-item-content">{wp.element.createElement(props.block.content)}</div> { !footer && <div key={"footer-"+blockData.id} className="rsssl-grid-item-footer"></div>} { footer && <div key={"footer-"+blockData.id} className="rsssl-grid-item-footer">{wp.element.createElement(footer)}</div>} </div> ); } export default GridBlock;PK�������!�Ӛ �� ��'��settings/src/Dashboard/DashboardPage.jsnu�[��������import GridBlock from "./GridBlock"; import ProgressHeader from "./Progress/ProgressBlockHeader"; import ProgressBlock from "./Progress/ProgressBlock"; import ProgressFooter from "./Progress/ProgressFooter"; import SslLabsHeader from "./SslLabs/SslLabsHeader"; import SslLabs from "./SslLabs/SslLabs"; import SslLabsFooter from "./SslLabs/SslLabsFooter"; import VulnerabilitiesHeader from "./Vulnerabilities/VulnerabilitiesHeader"; import Vulnerabilities from "./Vulnerabilities/Vulnerabilities"; import VulnerabilitiesFooter from "./Vulnerabilities/VulnerabilitiesFooter"; import TipsTricks from "./TipsTricks/TipsTricks"; import TipsTricksFooter from "./TipsTricks/TipsTricksFooter"; import OtherPluginsHeader from "./OtherPlugins/OtherPluginsHeader"; import OtherPlugins from "./OtherPlugins/OtherPlugins"; import { __ } from '@wordpress/i18n'; import DashboardPlaceholder from "../Placeholder/DashboardPlaceholder"; import useFields from "../Settings/FieldsData"; import ErrorBoundary from "../utils/ErrorBoundary"; const DashboardPage = () => { const {fieldsLoaded} = useFields(); const blocks = [ { id: 'progress', header: ProgressHeader, content: ProgressBlock, footer: ProgressFooter, class: ' rsssl-column-2', }, { id: 'ssllabs', header: SslLabsHeader, content: SslLabs, footer: SslLabsFooter, class: 'border-to-border', }, { id: 'wpvul', header: VulnerabilitiesHeader, content: Vulnerabilities, footer: VulnerabilitiesFooter, class: 'border-to-border', }, { id: 'tips_tricks', title: __("Tips & Tricks", 'really-simple-ssl'), content: TipsTricks, footer: TipsTricksFooter, class: ' rsssl-column-2', }, { id: 'other-plugins', header: OtherPluginsHeader, content: OtherPlugins, class: ' rsssl-column-2 no-border no-background', }, ] return ( <> {!fieldsLoaded && <DashboardPlaceholder></DashboardPlaceholder>} {fieldsLoaded && blocks.map((block, i) => <ErrorBoundary key={"grid_"+i} fallback={"Could not load dashboard block"}><GridBlock block={block}/></ErrorBoundary>)} </> ); } export default DashboardPagePK�������!�a^��^��5��settings/src/Dashboard/TipsTricks/TipsTricksFooter.jsnu�[��������import { __ } from '@wordpress/i18n'; const TipsTricksFooter = () => { return ( <> <a href="https://really-simple-ssl.com/knowledge-base-overview/" target="_blank"rel="noopener noreferrer" className="button button-secondary">{ __("Documentation", "really-simple-ssl")}</a> </> ); } export default TipsTricksFooterPK�������!� ����/��settings/src/Dashboard/TipsTricks/TipsTricks.jsnu�[��������const Tip = ({link, content}) => { return ( <div className="rsssl-tips-tricks-element"> <a href={link} target="_blank" rel="noopener noreferrer" title="{content}"> <div className="rsssl-icon"> <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height="15"> <path fill="var(--rsp-grey-300)" d="M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"/> </svg> </div> <div className="rsssl-tips-tricks-content">{content}</div> </a> </div> ) } const TipsTricks = () => { const items = [ { content: "Definition: What is a Content Security Policy?", link: 'https://really-simple-ssl.com/definition/What-is-a-Content-Security-Policy/', }, { content: "Installing a Let's Encrypt certificate", link: 'https://really-simple-ssl.com/install-ssl-certificate/', }, { content: "Improve Security: (HSTS) HTTP Strict Transport Security", link: 'https://really-simple-ssl.com/instructions/about-hsts/', }, { content: "Improve Security: About vulnerabilities", link: 'https://really-simple-ssl.com/instructions/about-vulnerabilities', }, { content: "Instructions: Debugging with Really Simple SSL", link: 'https://really-simple-ssl.com/instructions/debugging/', }, { content: "Instructions: Configuring Hardening Features", link: 'https://really-simple-ssl.com/instructions/about-hardening-features/', }, ]; return ( <div className="rsssl-tips-tricks-container"> {items.map((item, i) => <Tip key={"trick-"+i} link={item.link} content={item.content} /> ) } </div> ); } export default TipsTricksPK�������!�5"0��0��)��settings/src/Dashboard/SslLabs/SslLabs.jsnu�[��������import { useEffect, useState, useRef} from "@wordpress/element"; import { __ } from '@wordpress/i18n'; import Icon from "../../utils/Icon"; import useSslLabs from "./SslLabsData"; import {getRelativeTime} from "../../utils/formatting"; const ScoreElement = ({className, content, id}) => { const [hover, setHover] = useState(false); let hoverClass = hover ? 'rsssl-hover' : ''; return ( <div key={'score_container-'+id} className="rsssl-score-container"><div onMouseEnter={()=> setHover(true)} onMouseLeave={() => setHover(false)} className={"rsssl-score-snippet "+className+' '+hoverClass}>{content}</div></div> ) } const SslLabs = () => { const { dataLoaded, clearCache, endpointData, setEndpointData, sslData, setSslData, sslScanStatus, setSslScanStatus, isLocalHost, fetchSslData, runSslTest, intervalId, setIntervalId, requestActive, setRequestActive, setClearCache } = useSslLabs(); const hasRunOnce = useRef(false); useEffect(()=>{ if ( !dataLoaded ) { fetchSslData(); } } , []) const neverScannedYet = () => { return !sslData; } useEffect(()=> { if ( isLocalHost() ) { return; } if (sslScanStatus==='active' && sslData.summary && sslData.summary.progress>=100 ) { setClearCache(true); hasRunOnce.current = false; setSslData(false); setEndpointData(false); } if (sslScanStatus==='active' && sslData.status === 'ERROR' ) { setClearCache(true); setSslData(false); setEndpointData(false); } let scanInComplete = (sslData && sslData.status !== 'READY'); let userClickedStartScan = sslScanStatus==='active'; if (clearCache) scanInComplete = true; let hasErrors = sslData.errors || sslData.status === 'ERROR'; let startScan = !hasErrors && (scanInComplete || userClickedStartScan); if ( !requestActive && startScan ) { setSslScanStatus('active'); setRequestActive(true); if ( !hasRunOnce.current ) { runSslTest(); if (!intervalId) { let newIntervalId = setInterval(function () { runSslTest(); }, 4000); setIntervalId(newIntervalId); } hasRunOnce.current = true; } } else if ( sslData && sslData.status === 'READY' ) { setSslScanStatus('completed'); clearInterval(intervalId); } }, [sslScanStatus, sslData]); /** * Get some styles for the progress bar * @returns {{width: string}} */ const getStyles = () => { let progress = 0; if (sslData && sslData.summary.progress) { progress = sslData.summary.progress; } else if (progress==0 && sslScanStatus ==='active') { progress=5; } return Object.assign( {}, {width: progress+"%"}, ); } const scoreSnippet = (className, content, id) => { return ( <ScoreElement className={className} content={content} id={id}/> ) } /** * Retrieve information from SSL labs if HSTS is detected * * @returns {JSX.Element} */ const hasHSTS = () => { let status = 'processing'; if ( neverScannedYet() ){ status = 'inactive'; } if ( endpointData && endpointData.length>0 ) { let failedData = endpointData.filter(function (endpoint) { return endpoint.details.hstsPolicy && endpoint.details.hstsPolicy.status!=='present'; }); status = failedData.length>0 ? 'error' : 'success'; } return ( <> {(status==='inactive') && scoreSnippet("rsssl-test-inactive", "HSTS",'hsts')} {status==='processing' && scoreSnippet("rsssl-test-processing", "HSTS...", 'hsts')} {status==='error' && scoreSnippet("rsssl-test-error", "No HSTS header", 'hsts')} {status==='success' && scoreSnippet("rsssl-test-success", "HSTS header detected", 'hsts')} </> ) } /** * Calculate cipher strength * @returns {JSX.Element} */ const cipherStrength = () => { // Start with the score of the strongest cipher. // Add the score of the weakest cipher. // Divide the total by 2. let rating = 0; let ratingClass = 'rsssl-test-processing'; if ( neverScannedYet() ){ ratingClass = 'rsssl-test-inactive'; } if ( endpointData && endpointData.length>0 ) { let weakest = 256; let strongest = 128; endpointData.forEach(function(endpoint, i){ endpoint.details.suites && endpoint.details.suites.forEach(function(suite, j){ suite.list.forEach(function(cipher, j){ weakest = cipher.cipherStrength<weakest ? cipher.cipherStrength : weakest; strongest = cipher.cipherStrength>strongest ? cipher.cipherStrength : strongest; }); }); }); rating = (getCypherRating(weakest) + getCypherRating(strongest) )/2; rating = Math.round(rating); ratingClass = rating>70 ? "rsssl-test-success" : "rsssl-test-error"; } return ( <> {scoreSnippet(ratingClass, __("Cipher strength","really-simple-ssl")+' '+rating+'%','cipher')} </> ) } /** * https://github.com/ssllabs/research/wiki/SSL-Server-Rating-Guide#Certificate-strength */ const getCypherRating = (strength) => { let score = 0; if (strength==0) { score = 0; } else if (strength<128){ score = 20; } else if (strength<256){ score=80; } else { score=100; } return score; } const certificateStatus = () => { let status = 'processing'; if ( neverScannedYet() ){ status = 'inactive'; } if ( endpointData && endpointData.length>0 ) { let failedData = endpointData.filter(function (endpoint) { return endpoint.grade && endpoint.grade.indexOf('A')===-1; }); status = failedData.length>0 ? 'error' : 'success'; } return ( <> {(status==='inactive') && scoreSnippet("rsssl-test-inactive", "Certificate", "certificate")} {status==='processing' && scoreSnippet("rsssl-test-processing", "Certificate...", "certificate")} {status==='error' && !hasErrors && scoreSnippet("rsssl-test-error", "Certificate issue", "certificate")} {status==='success' && scoreSnippet("rsssl-test-success", "Valid certificate", "certificate")} </> ) } const supportsTlS11 = () => { let status = 'processing'; if ( neverScannedYet() ){ status = 'inactive'; } if ( endpointData && endpointData.length>0 ) { status = 'success'; endpointData.forEach(function(endpoint, i){ endpoint.details.protocols && endpoint.details.protocols.forEach(function(protocol, j){ if (protocol.version==='1.1') status = 'error'; }); }); } return ( <> {(status==='inactive') && scoreSnippet("rsssl-test-inactive", "Protocol support", "protocol")} {(status==='processing') && scoreSnippet("rsssl-test-processing", "Protocol support...", "protocol")} {status==='error' && scoreSnippet("rsssl-test-error", "Supports TLS 1.1", "protocol")} {status==='success' && scoreSnippet("rsssl-test-success", "No TLS 1.1", "protocol")} </> ) } let sslClass = 'rsssl-inactive'; let progress = sslData ? sslData.summary.progress : 0; let startTime = sslData ? sslData.summary.startTime : false; let startTimeNice=''; if ( startTime ) { let newDate = new Date(); newDate.setTime(startTime); startTimeNice = getRelativeTime(startTime); } else { startTimeNice = __("No test started yet","really-simple-ssl") } let statusMessage = sslData ? sslData.summary.statusMessage : false; let grade = sslData ? sslData.summary.grade : '?'; if ( sslData && sslData.status === 'READY' ) { if ( grade.indexOf('A')!==-1 ){ sslClass = "rsssl-success"; } else { sslClass = "rsssl-error"; } } if (neverScannedYet()){ sslClass = "rsssl-inactive"; } let gradeClass = neverScannedYet() ? 'inactive' : grade; let url = 'https://www.ssllabs.com/analyze.html?d='+encodeURIComponent(window.location.protocol + "//" + window.location.host); let hasErrors = false; let errorMessage=''; let sslStatusColor = 'black'; if ( isLocalHost() ) { hasErrors = true; sslStatusColor = 'red'; errorMessage = __("Not available on localhost","really-simple-ssl"); } else if (sslData && (sslData.errors || sslData.status === 'ERROR') ) { hasErrors = true; sslStatusColor = 'red'; errorMessage = statusMessage; } else if (sslData && progress<100 ) { hasErrors = true; sslStatusColor = 'orange'; errorMessage = statusMessage; } return ( <> <div className={'rsssl-ssl-labs'}> <div className={"rsssl-gridblock-progress-container "+sslClass}> <div className="rsssl-gridblock-progress" style={getStyles()}></div> </div> <div className="rsssl-gridblock-progress" style={getStyles()}></div> <div className={"rsssl-ssl-labs-select " + sslClass}> <div className="rsssl-ssl-labs-select-item"> {supportsTlS11()} {hasHSTS()} {certificateStatus()} {cipherStrength()} </div> <div className="rsssl-ssl-labs-select-item"> {!neverScannedYet() ? <h2 className={'big-number'}>{grade}</h2> : <h2 className={'big-number'}>?</h2>} {neverScannedYet() && <div></div>} </div> </div> <div className="rsssl-ssl-labs-list"> <div className="rsssl-ssl-labs-list-item"> <Icon name="info" color={sslStatusColor}/> <p className="rsssl-ssl-labs-list-item-text"> {hasErrors && errorMessage} {!hasErrors && __('What does my score mean?', 'really-simple-ssl')} </p> <a href="https://really-simple-ssl.com/instructions/about-ssl-labs/" target="_blank" rel="noopener noreferrer"> {__('Read more', 'really-simple-ssl')} </a> </div> <div className="rsssl-ssl-labs-list-item"> <Icon name="list" color="black"/> <p className="rsssl-ssl-labs-list-item-text"> {__('Last check:', 'really-simple-ssl')} </p> <p className="rsssl-ssl-labs-list-item-text">{startTimeNice}</p> </div> { <div className="rsssl-ssl-labs-list-item"> <Icon name="external-link" color="black"/> <a href={url} target="_blank" rel="noopener noreferrer">{__('View detailed report on Qualys SSL Labs', 'really-simple-ssl')}</a> </div> } </div> </div> </> ); } export default SslLabs;PK�������!�L����/��settings/src/Dashboard/SslLabs/SslLabsFooter.jsnu�[��������import { __ } from '@wordpress/i18n'; import useSslLabs from "./SslLabsData"; const SslLabsFooter = () => { const {sslScanStatus, setSslScanStatus, isLocalHost} = useSslLabs(); let disabled = sslScanStatus === 'active' || isLocalHost(); return ( <> <button disabled={disabled} onClick={ (e) => setSslScanStatus('active') } className="button button-default"> { sslScanStatus==='paused' && __("Continue SSL Health check", "really-simple-ssl")} { sslScanStatus!=='paused' && __("Check SSL Health", "really-simple-ssl")} </button> </> ) } export default SslLabsFooter;PK�������!�}����/��settings/src/Dashboard/SslLabs/SslLabsHeader.jsnu�[��������import { __ } from '@wordpress/i18n'; const SslLabsHeader = () => { return ( <> <h3 className="rsssl-grid-title rsssl-h4">{ __( "Status", 'really-simple-ssl' ) }</h3> <div className="rsssl-grid-item-controls"> <span className="rsssl-header-html"> {__( "Powered by Qualys", 'really-simple-ssl' )}</span> </div> </> ) } export default SslLabsHeader;PK�������!�R$$��$��-��settings/src/Dashboard/SslLabs/SslLabsData.jsnu�[��������import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; const useSslLabs = create(( set, get ) => ({ debug:false, //set to true for localhost testing, with wordpress.org as domain sslScanStatus: false, sslData: false, endpointData: [], dataLoaded:false, clearCache:false, requestActive:false, intervalId:false, setIntervalId: (intervalId) => set({ intervalId }), setRequestActive: (requestActive) => set({ requestActive }), setSslScanStatus: (sslScanStatus) => set({ sslScanStatus }), setClearCache: (clearCache) => set({ clearCache }), setSslData: (sslData) => set({ sslData }), setEndpointData: (endpointData) => set({ endpointData }), isLocalHost: () => { let debug = get().debug; return debug ? false: window.location.host.indexOf('localhost')!==-1; } , host: () => { let debug = get().debug; return debug ? "wordpress.org" : window.location.host; }, fetchSslData: async () => { rsssl_api.doAction('ssltest_get').then( ( response ) => { if (response.data.hasOwnProperty('host') ) { let data = get().processSslData(response.data); set({ sslData: data, endpointData: data.endpointData, dataLoaded: true, }) } }) }, getSslLabsData: (e) => { let clearCacheUrl = ''; if (get().clearCache){ set({clearCache:false,sslData:false }); clearCacheUrl = '&startNew=on'; } const url = "https://api.ssllabs.com/api/v3/analyze?host="+get().host()+clearCacheUrl; let data = {}; data.url = url; return rsssl_api.doAction('ssltest_run', data).then( ( response ) => { if ( response && !response.errors) { return JSON.parse(response); } else { return false; } }) }, runSslTest: () => { get().getSslLabsData().then((sslData)=>{ if ( sslData.status && sslData.status === 'ERROR' ){ sslData = get().processSslData(sslData); set({ sslData: sslData, sslScanStatus: 'completed', }); clearInterval(get().intervalId); } else if ( sslData.endpoints && sslData.endpoints.filter((endpoint) => endpoint.statusMessage === 'Ready').length>0 ) { let completedEndpoints = sslData.endpoints.filter((endpoint) => endpoint.statusMessage === 'Ready'); let lastCompletedEndpointIndex = completedEndpoints.length-1; let lastCompletedEndpoint = completedEndpoints[ lastCompletedEndpointIndex]; let ipAddress = lastCompletedEndpoint.ipAddress; get().getEndpointData(ipAddress).then( (response ) => { let endpointData = get().endpointData; if (!Array.isArray(endpointData)) endpointData = []; if ( !response.errors ){ //if the endpoint already is stored, replace it. let foundEndpoint = false; if (endpointData.length>0) { endpointData.forEach(function(endpoint, i) { if ( endpoint.ipAddress === response.ipAddress ) { endpointData[i] = response; foundEndpoint = true; } }); } if ( !foundEndpoint ) { endpointData[endpointData.length] = response; } set({endpointData: endpointData}); sslData.endpointData = endpointData; } if ( !sslData.errors ) { rsssl_api.doAction('store_ssl_labs', sslData ); } sslData = get().processSslData(sslData); set({sslData: sslData, requestActive: false}); }); } else { //if there are no errors, this runs when the first endpoint is not completed yet sslData = get().processSslData(sslData); if ( !sslData.errors ) { rsssl_api.doAction('store_ssl_labs', sslData ).then( ( response ) => {}); } set({sslData:sslData,requestActive: false}); } }); }, processSslData: (sslData) => { if ( !sslData ) { sslData = {}; } let progress = sslData.progress ? sslData.progress : 0; let startTime = sslData.startTime ? sslData.startTime : ''; let statusMessage = sslData.statusMessage ? sslData.statusMessage : ''; let grade = sslData.grade ? sslData.grade : '?'; let ipAddress=''; if ( sslData.endpoints ) { let completedEndpoints = sslData.endpoints.filter((endpoint) => endpoint.statusMessage === 'Ready'); let completedEndpointsLength = completedEndpoints.length; let lastCompletedEndpoint = completedEndpoints[ completedEndpointsLength-1]; let activeEndpoint = sslData.endpoints.filter((endpoint) => endpoint.statusMessage === 'In progress')[0]; let activeEndpointProgress = 0; if (activeEndpoint) { activeEndpointProgress = activeEndpoint.progress ? activeEndpoint.progress : 0; statusMessage = activeEndpoint.statusDetailsMessage; ipAddress = activeEndpoint.ipAddress; } if (lastCompletedEndpoint) grade = lastCompletedEndpoint.grade; progress = ( completedEndpointsLength * 100 + activeEndpointProgress ) / sslData.endpoints.length; } if ( sslData.errors ) { grade = '?'; statusMessage = sslData.errors[0].message; progress = 100; } let summary = {}; if ( progress >= 100) { set({sslScanStatus: 'completed'}); } summary.grade = grade; summary.startTime = startTime; summary.statusMessage = statusMessage; summary.ipAddress = ipAddress; summary.progress = progress; sslData.summary = summary; return sslData; }, getEndpointData:(ipAddress) => { const url = 'https://api.ssllabs.com/api/v3/getEndpointData?host='+get().host()+'&s='+ipAddress; let data = {}; data.url = url; return rsssl_api.doAction('ssltest_run', data).then( ( response ) => { if ( response && !response.errors) { return JSON.parse(response); } }) } })); export default useSslLabs; PK�������!�?t4s#���#�����settings/src/index.phpnu�[��������<?php // You don't belong here. ?> PK�������!�;Oj��j����settings/src/utils/getAnchor.jsnu�[��������/* * helper function to delay after a promise * @param ms * @returns {function(*): Promise<unknown>} */ const getAnchor = (level) => { let url = window.location.href; if ( url.indexOf('#') === -1) { return false; } let queryString = url.split('#'); if ( queryString.length === 1) { return false; } let urlPart = queryString[1]; //for submenu, we have to get the string after the slash. if ( level === 'anchor' ) { //if there is no slash, there is no menu level if ( urlPart.indexOf('/') === -1 ) { return false; } else { let urlParts = urlPart.split('/'); if (urlParts.length<=2) { return false; } else { return urlParts[2]; } } } else if ( level === 'menu' ) { //if there is no slash, there is no menu level if ( urlPart.indexOf('/') === -1 ) { return false; } else { let urlParts = urlPart.split('/'); if (urlParts.length<=1) { return false; } else { return urlParts[1]; } } } else { //main, just get the first. if ( urlPart.indexOf('/') === -1 ) { return urlPart; } else { let urlParts = urlPart.split('/'); return urlParts[0]; } } return false; } export default getAnchor; PK�������!� �� ����settings/src/utils/Error.jsnu�[��������import {__} from "@wordpress/i18n"; import Hyperlink from "./Hyperlink"; const Error = (props) => { if (props.error) { console.log("errors detected during the loading of the settings page"); console.log(props.error); } let description = false; let url = 'https://really-simple-ssl.com/instructions/how-to-debug-a-blank-settings-page-in-really-simple-ssl/'; let generic_rest_blocked_message = __("Please check if security settings on the server or a plugin is blocking the requests from Really Simple SSL.", "really-simple-ssl"); let message = false; if (props.error) { message = props.error.message; if ( typeof message !== 'string' ) { message = JSON.stringify(message); } if ( props.error.code==='rest_no_route') { description = __("The Really Simple SSL Rest API is disabled.", "really-simple-ssl")+" "+generic_rest_blocked_message } else if ( props.error.data.status === '404') { description = __("The Really Simple SSL Rest API returned a not found.", "really-simple-ssl")+" "+generic_rest_blocked_message; } else if ( props.error.data.status === '403') { description = __("The Really Simple SSL Rest API returned a 403 forbidden error.", "really-simple-ssl")+" "+generic_rest_blocked_message; } if (message.length>100){ message = message.substring(0, 100)+ '...'; } } return ( <> {props.error && <div className="rsssl-rest-error-message"> <h3>{__("A problem was detected during the loading of the settings", "really-simple-ssl")}</h3> {description && <p>{description}</p> } <div> <p>{__("The request returned the following errors:", "really-simple-ssl")}</p> <ul> {props.error.code && <li>{__("Response code:", "really-simple-ssl")} {props.error.code}</li>} {props.error.data.status && <li>{__("Status code:", "really-simple-ssl")} {props.error.data.status}</li>} {message && <li>{__("Server response:", "really-simple-ssl")} {message}</li>} </ul> </div> <Hyperlink className="button button-default" target="_blank" rel="noopener noreferrer" text={__("More information","really-simple-ssl")} url={url}/> </div>} </> ) } export default ErrorPK�������!�a[D������settings/src/utils/Hyperlink.jsnu�[��������const Hyperlink = (props) => { let label_pre = ''; let label_post = ''; let link_text = ''; // Split the text around '%s' if it exists if (props.text.indexOf('%s') !== -1) { let parts = props.text.split(/%s/); label_pre = parts[0]; link_text = parts[1]; label_post = parts[2]; } else { link_text = props.text; } // Use the passed className or default to 'rsssl-link' let className = props.className ? props.className : 'rsssl-link'; // Include rel attribute in the anchor tag return ( <> {label_pre} <a className={className} target={props.target} rel={props.rel} // Add the rel attribute here href={props.url} > {link_text} </a> {label_post} </> ); } export default Hyperlink;PK�������!�-u4����#��settings/src/utils/ErrorBoundary.jsnu�[��������import React, { Component } from 'react'; import PropTypes from 'prop-types'; class ErrorBoundary extends Component { constructor(props) { super(props); this.state = { hasError: false, error: null, errorInfo: null }; this.resetError = this.resetError.bind(this); } static getDerivedStateFromError(error) { return { hasError: true }; } componentDidCatch(error, errorInfo) { this.setState({ error, errorInfo }); // You can also log the error to an error reporting service console.log('ErrorBoundary', error, errorInfo); } resetError() { this.setState({ hasError: false, error: null, errorInfo: null }); } render() { if (this.state.hasError) { return ( <div> <h1>Something went wrong.</h1> {/* You can render any custom fallback UI */} <p>{this.props.fallback}</p> <button onClick={this.resetError}>Try Again</button> </div> ); } return this.props.children; } } ErrorBoundary.propTypes = { children: PropTypes.node, fallback: PropTypes.node, }; export default ErrorBoundary;PK�������!�ic;Ȑ��Ȑ����settings/src/utils/Icon.jsnu�[��������// import Tooltip from '@mui/material/Tooltip'; import { Tooltip } from "react-tooltip"; // import {styled} from "@mui/material/styles"; // import {opacity} from "../../../../../../wp-includes/js/codemirror/csslint"; const IconHtml = React.forwardRef(function IconHtml(props, ref){ const {name, color, size} = props; // set defaults const iconName = name || 'bullet'; const iconColor = color || 'black'; const iconSize = size || 15; const iconColors = { 'black': 'var(--rsp-black)', 'green': 'var(--rsp-green)', 'yellow': 'var(--rsp-yellow)', 'orange': 'var(--rsp-yellow)', 'red-faded': 'var(--rsp-red-faded)', 'red': 'var(--rsp-red)', 'grey': 'var(--rsp-grey-400)', 'red-warning': 'var(--rsp-red-faded)', }; let renderedIcon = ''; if (iconName === 'bullet') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z"/> </svg> } if (iconName === 'circle') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"/> </svg> } if (iconName === 'check') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"/> </svg> } if (iconName === 'warning') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/> </svg> } if (iconName === 'error') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"/> </svg> } if (iconName === 'times') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"/> </svg> } if (iconName === 'circle-check') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM371.8 211.8C382.7 200.9 382.7 183.1 371.8 172.2C360.9 161.3 343.1 161.3 332.2 172.2L224 280.4L179.8 236.2C168.9 225.3 151.1 225.3 140.2 236.2C129.3 247.1 129.3 264.9 140.2 275.8L204.2 339.8C215.1 350.7 232.9 350.7 243.8 339.8L371.8 211.8z"/> </svg> } if (iconName === 'circle-times') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM175 208.1L222.1 255.1L175 303C165.7 312.4 165.7 327.6 175 336.1C184.4 346.3 199.6 346.3 208.1 336.1L255.1 289.9L303 336.1C312.4 346.3 327.6 346.3 336.1 336.1C346.3 327.6 346.3 312.4 336.1 303L289.9 255.1L336.1 208.1C346.3 199.6 346.3 184.4 336.1 175C327.6 165.7 312.4 165.7 303 175L255.1 222.1L208.1 175C199.6 165.7 184.4 165.7 175 175C165.7 184.4 165.7 199.6 175 208.1V208.1z"/> </svg> } if (iconName === 'chevron-up') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M416 352c-8.188 0-16.38-3.125-22.62-9.375L224 173.3l-169.4 169.4c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25C432.4 348.9 424.2 352 416 352z"/> </svg> } if (iconName === 'chevron-down') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/> </svg> } if (iconName === 'chevron-right') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z"/> </svg> } if (iconName === 'chevron-left') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M224 480c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l169.4 169.4c12.5 12.5 12.5 32.75 0 45.25C240.4 476.9 232.2 480 224 480z"/> </svg> } if (iconName === 'plus') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"/> </svg> } if (iconName === 'minus') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"/> </svg> } if (iconName === 'sync') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M483.515 28.485L431.35 80.65C386.475 35.767 324.485 8 256 8 123.228 8 14.824 112.338 8.31 243.493 7.971 250.311 13.475 256 20.301 256h28.045c6.353 0 11.613-4.952 11.973-11.294C66.161 141.649 151.453 60 256 60c54.163 0 103.157 21.923 138.614 57.386l-54.128 54.129c-7.56 7.56-2.206 20.485 8.485 20.485H492c6.627 0 12-5.373 12-12V36.971c0-10.691-12.926-16.045-20.485-8.486zM491.699 256h-28.045c-6.353 0-11.613 4.952-11.973 11.294C445.839 370.351 360.547 452 256 452c-54.163 0-103.157-21.923-138.614-57.386l54.128-54.129c7.56-7.56 2.206-20.485-8.485-20.485H20c-6.627 0-12 5.373-12 12v143.029c0 10.691 12.926 16.045 20.485 8.485L80.65 431.35C125.525 476.233 187.516 504 256 504c132.773 0 241.176-104.338 247.69-235.493.339-6.818-5.165-12.507-11.991-12.507z"></path> </svg> } if (iconName === 'sync-error') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M256 79.1C178.5 79.1 112.7 130.1 89.2 199.7C84.96 212.2 71.34 218.1 58.79 214.7C46.23 210.5 39.48 196.9 43.72 184.3C73.6 95.8 157.3 32 256 32C337.5 32 408.8 75.53 448 140.6V104C448 90.75 458.7 80 472 80C485.3 80 496 90.75 496 104V200C496 213.3 485.3 224 472 224H376C362.7 224 352 213.3 352 200C352 186.7 362.7 176 376 176H412.8C383.7 118.1 324.4 80 256 80V79.1zM280 263.1C280 277.3 269.3 287.1 256 287.1C242.7 287.1 232 277.3 232 263.1V151.1C232 138.7 242.7 127.1 256 127.1C269.3 127.1 280 138.7 280 151.1V263.1zM224 352C224 334.3 238.3 319.1 256 319.1C273.7 319.1 288 334.3 288 352C288 369.7 273.7 384 256 384C238.3 384 224 369.7 224 352zM40 432C26.75 432 16 421.3 16 408V311.1C16 298.7 26.75 287.1 40 287.1H136C149.3 287.1 160 298.7 160 311.1C160 325.3 149.3 336 136 336H99.19C128.3 393 187.6 432 256 432C333.5 432 399.3 381.9 422.8 312.3C427 299.8 440.7 293 453.2 297.3C465.8 301.5 472.5 315.1 468.3 327.7C438.4 416.2 354.7 480 256 480C174.5 480 103.2 436.5 64 371.4V408C64 421.3 53.25 432 40 432V432z"/> </svg> } if (iconName === 'shortcode') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M128 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h96C145.7 480 160 465.7 160 448S145.7 416 128 416H64V96h64C145.7 96 160 81.67 160 64S145.7 32 128 32zM416 32h-96C302.3 32 288 46.33 288 63.1S302.3 96 319.1 96H384v320h-64C302.3 416 288 430.3 288 447.1S302.3 480 319.1 480H416c17.6 0 32-14.4 32-32V64C448 46.4 433.6 32 416 32z"/> </svg> } if (iconName === 'file') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M0 64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM336 448V160H256C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V448C48 456.8 55.16 464 64 464H320C328.8 464 336 456.8 336 448z"/> </svg> } if (iconName === 'file-disabled') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M639.1 487.1c0-7.119-3.153-14.16-9.191-18.89l-118.8-93.12l.0013-237.3c0-16.97-6.742-33.26-18.74-45.26l-74.63-74.64C406.6 6.742 390.3 0 373.4 0H192C156.7 0 128 28.65 128 64L128 75.01L38.82 5.11C34.41 1.672 29.19 0 24.04 0C10.19 0-.0002 11.3-.0002 23.1c0 7.12 3.153 14.16 9.192 18.89l591.1 463.1C605.6 510.3 610.8 512 615.1 512C629.8 512 639.1 500.6 639.1 487.1zM464 338.4l-287.1-225.7l-.002-48.51c0-8.836 7.164-16 15.1-16h160l-.0065 79.87c0 17.67 14.33 31.1 31.1 31.1L464 159.1V338.4zM448 463.1H192c-8.834 0-15.1-7.164-15.1-16L176 234.6L128 197L128 447.1c0 35.34 28.65 64 63.1 64H448c20.4 0 38.45-9.851 50.19-24.84l-37.72-29.56C457.5 461.4 453.2 463.1 448 463.1z"/> </svg> } if (iconName === 'loading') { renderedIcon = <svg xmlns="http://www.w3.org/2000/svg" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[color]} d="M304 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 416c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM48 304c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm464-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM142.9 437c18.7-18.7 18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zm0-294.2c18.7-18.7 18.7-49.1 0-67.9S93.7 56.2 75 75s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zM369.1 437c18.7 18.7 49.1 18.7 67.9 0s18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9z"/> </svg> } if (iconName === 'file-download') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M216 342.1V240c0-13.25-10.75-24-24-24S168 226.8 168 240v102.1L128.1 303C124.3 298.3 118.2 296 112 296S99.72 298.3 95.03 303c-9.375 9.375-9.375 24.56 0 33.94l80 80c9.375 9.375 24.56 9.375 33.94 0l80-80c9.375-9.375 9.375-24.56 0-33.94s-24.56-9.375-33.94 0L216 342.1zM365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448z"/> </svg> } if (iconName === 'calendar') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z"/> </svg> } if (iconName === 'calendar-error') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M151.1 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V192H47.1V448C47.1 456.8 55.16 464 63.1 464H284.5C296.7 482.8 312.5 499.1 330.8 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24L151.1 64zM576 368C576 447.5 511.5 512 432 512C352.5 512 287.1 447.5 287.1 368C287.1 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM432 416C418.7 416 408 426.7 408 440C408 453.3 418.7 464 432 464C445.3 464 456 453.3 456 440C456 426.7 445.3 416 432 416zM447.1 288C447.1 279.2 440.8 272 431.1 272C423.2 272 415.1 279.2 415.1 288V368C415.1 376.8 423.2 384 431.1 384C440.8 384 447.1 376.8 447.1 368V288z"/> </svg> } if (iconName === 'help') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z"/> </svg> } if (iconName === 'copy') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M502.6 70.63l-61.25-61.25C435.4 3.371 427.2 0 418.7 0H255.1c-35.35 0-64 28.66-64 64l.0195 256C192 355.4 220.7 384 256 384h192c35.2 0 64-28.8 64-64V93.25C512 84.77 508.6 76.63 502.6 70.63zM464 320c0 8.836-7.164 16-16 16H255.1c-8.838 0-16-7.164-16-16L239.1 64.13c0-8.836 7.164-16 16-16h128L384 96c0 17.67 14.33 32 32 32h47.1V320zM272 448c0 8.836-7.164 16-16 16H63.1c-8.838 0-16-7.164-16-16L47.98 192.1c0-8.836 7.164-16 16-16H160V128H63.99c-35.35 0-64 28.65-64 64l.0098 256C.002 483.3 28.66 512 64 512h192c35.2 0 64-28.8 64-64v-32h-47.1L272 448z"/> </svg> } if (iconName === 'info') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"/> </svg> } if (iconName === 'info-open') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM256 304c13.25 0 24-10.75 24-24v-128C280 138.8 269.3 128 256 128S232 138.8 232 152v128C232 293.3 242.8 304 256 304zM256 337.1c-17.36 0-31.44 14.08-31.44 31.44C224.6 385.9 238.6 400 256 400s31.44-14.08 31.44-31.44C287.4 351.2 273.4 337.1 256 337.1z"/> </svg> } if (iconName === 'list') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M184.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 113c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM256 96c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zM192 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zM80 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z"/> </svg> } if (iconName === 'empty') { renderedIcon = <svg height={iconSize} width={iconSize} aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 280.8 363.67"> </svg> } if (iconName === 'external-link') { renderedIcon = <svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <path fill={iconColors[iconColor]} d="M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z"/> </svg> } if (iconName === 'shield') { renderedIcon = <svg height={iconSize} aria-hidden="true" focusable="false" role="img" id="uuid-026a4e87-44db-4336-a398-3c29d25b7317" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 280.8 363.67"> <path fill="#f9c23e" d="M280.8,62.4L140.5,0,0,62.2V213.3c0,10.7,1.6,21.3,4.9,31.5,9.5,29.9,28.2,52.8,54.4,69.5,26,16.6,52.4,32.4,78.6,48.6,2,1.2,3.4,.9,5.1-.2,19.9-12.3,39.8-24.5,59.6-36.8,12.6-7.8,25.5-15.1,36.5-25.1,26.4-24.2,41.4-53.6,41.5-89.9V62.4h.2Z"/> <g> <g> <rect className="uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4" x="155" y="266.8" width="77.6" height="6"/> <path fill="#1d2327" d="M224.4,204.5h-1.8v-10.1c0-15.9-12.9-28.8-28.8-28.8s-28.8,12.9-28.8,28.8v10.1h-1.8c-4.6,0-8.3,3.7-8.3,8.3v51.3h77.6v-51.3c0-4.6-3.7-8.3-8.3-8.3h.2Zm-45.3-10.1c0-8.1,6.6-14.7,14.7-14.7s14.7,6.6,14.7,14.7v10.1h-29.5v-10.1h.1Zm36.6,32.9l-20.7,20.2c-.2,.2-.3,.4-.5,.6l-2,2c-.2,.2-.4,.4-.6,.5l-3.8,3.8-4.5-4.3-2-2c-.2-.2-.4-.4-.5-.6l-9.1-9.1c-2.4-2.4-2.4-6.4,0-8.8l2-2c2.4-2.4,6.4-2.4,8.8,0l5.3,5.3,16.9-16.4c2.4-2.4,6.4-2.4,8.8,0l2,2c2.4,2.4,2.4,6.4,0,8.8h-.1Z"/> </g> <g> <path fill="#1d2327" d="M125.2,192.3c-.5-2.9-.5-5.8-1-8.6-.5-2.4-2.6-4-4.8-3.9-2.3,0-4.2,1.9-4.7,4.3-.2,1,0,1.9,0,2.9,.8,14.6,7.2,26.3,18.2,35.7,2.2,1.9,4.5,3.5,6.9,4.8v-11.8c-7.4-5.8-12.9-14.1-14.6-23.3v-.1Z"/> <path className="uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4" d="M96.4,236.1c-13-15-20-32.3-19.5-52.3,.3-13.1,6.1-23.6,16.6-31.2,11.5-8.5,24.5-10.9,38.3-7.1,12.7,3.5,22,10.7,27.4,22,2.1-2.7,4.5-5.2,7.2-7.4-4-7-9.7-12.9-17-17.4-17-10.4-34.9-11.7-52.9-3.1-19,9.1-28.7,24.7-29.3,45.8,0,5.2,.5,10.2,1.4,15.2,3.4,19.4,13.4,35.2,27.2,48.9,1.1,1.1,2.5,1.6,4.1,1.4,1.8-.2,3.2-1.3,3.8-3,.6-1.8,.4-3.6-1-5.1-2.1-2.2-4.2-4.4-6.2-6.7h-.1Z"/> <path className="uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4" d="M68.1,89.4c1.1-.4,2.1-1,3.1-1.5,17.9-9.1,36.8-12.7,56.8-11.3,12.2,.8,23.9,3.8,35.1,8.7,3,1.3,5.9,2.8,8.9,4.1,2.7,1.1,5.3,0,6.4-2.4,1.1-2.3,0-5-2.3-6.3-11-5.7-22.4-10-34.6-12.3-4.2-.8-8.5-1.1-12.8-1.7h-17.1c-.3,0-.6,.2-.9,.2-11.2,.8-22,3.2-32.5,7.2-4.9,1.9-9.7,4.1-14.3,6.6-2.5,1.3-3.4,4.2-2.2,6.5,1.1,2.2,4,3.2,6.4,2.1v.1Z"/> <path className="uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4" d="M61.1,153.5c13.6-21.6,33.6-31.5,58.7-32.1h6c.8,0,1.6,.2,2.3,.3,13.4,1.7,25.5,6.6,35.9,15.4,5.8,4.9,10.5,10.3,14.1,16.2,3.1-1.2,6.4-2,9.8-2.5-4.7-8.7-11.3-16.3-19.6-22.7-19-14.6-40.5-19.5-64.1-15.1-14.3,2.7-26.9,9-37.7,18.8-10.4,9.5-17.8,20.9-21.2,34.6-2.8,11.3-2.6,22.7-.9,34.1,1.1,7,2.9,13.9,5.4,20.5,.9,2.3,3,3.7,5.2,3.5,2.1-.2,3.9-2,4.3-4.3,.2-1.1-.2-2.2-.6-3.2-4.3-11.9-6.3-24.1-5.6-36.7,.5-9.6,2.8-18.7,8-26.8h0Z"/> <path className="uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4" d="M139.8,240.6c-20.9-8.4-34.1-23.7-38.4-46.7-.8-4.3-1.4-8.7-.4-13,1.8-7.1,6.4-11.4,13.4-13.5,11.8-3.4,24.7,5.3,24.5,17.6,0,4.8,1.4,9.3,4,13.4,.3,.5,.6,.9,.9,1.3,1.6-2.4,3.7-4.6,6.1-6.2,0-.9,0-1.9,.2-2.8-.7-1.7-1.1-3.5-1.2-5.3-.3-6.1-1.6-11.9-5.5-16.8-6.8-8.8-15.9-12.4-27-11.5-11.3,.9-21.6,9.6-24.5,20.6-1.8,6.6-.9,13.3,.4,19.8,2.4,12.9,8.2,24,17.1,33.7,8.6,9.4,18.8,15.8,30.6,19.8v-10.4h-.2Z"/> <path className="uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4" d="M47.5,133.2c6.8-8.8,15-16,24.6-21.6,20.8-12,43.2-15.2,66.6-11,14.8,2.7,28.2,8.7,39.9,18.2,6.3,5,11.6,11,16.4,17.4,1.9,2.5,4.8,2.8,7,1.1,2.1-1.7,2.4-4.5,.6-7-5.9-8.2-12.8-15.3-20.9-21.3-18.3-13.6-39.1-19.6-61.7-20-6.3,0-12.5,.6-18.6,1.6-15.7,2.8-30.1,8.6-42.9,18.1-8.3,6.2-15.5,13.5-21.5,22-1.6,2.3-1.3,5.1,.7,6.7,2.1,1.7,4.9,1.5,6.8-.7,1-1.2,1.9-2.5,2.9-3.7l.1,.2Z"/> </g> </g> </svg> } if (iconName === 'file-search') { renderedIcon = <svg xmlns="http://www.w3.org/2000/svg" height={iconSize} fill="none" viewBox="0 0 384 512"> <path d="M374.6 150.6l-141.3-141.3C227.4 3.371 219.2 0 210.7 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.35 0 64-28.66 64-64V173.3C384 164.8 380.6 156.6 374.6 150.6zM224 22.63L361.4 160H248C234.8 160 224 149.2 224 136V22.63zM368 448c0 26.47-21.53 48-48 48H64c-26.47 0-48-21.53-48-48V64c0-26.47 21.53-48 48-48h144v120c0 22.06 17.94 40 40 40h120V448zM176 208c-53.02 0-96 42.98-96 96s42.98 96 96 96c23.62 0 44.96-8.859 61.68-23l68.66 68.66C307.9 447.2 309.9 448 312 448s4.094-.7813 5.656-2.344c3.125-3.125 3.125-8.188 0-11.31l-68.66-68.66C263.1 348.1 272 327.6 272 304C272 250.1 229 208 176 208zM176 384C131.9 384 96 348.1 96 304S131.9 224 176 224S256 259.9 256 304S220.1 384 176 384z"/> </svg> } if (iconName === 'download') { renderedIcon = <svg xmlns="http://www.w3.org/2000/svg" height={iconSize} fill="none" viewBox="0 0 512 512"> <path d="M480 352h-88C387.6 352 384 355.6 384 360s3.582 8 8 8H480c8.822 0 16 7.178 16 16v96c0 8.822-7.178 16-16 16H32c-8.822 0-16-7.178-16-16v-96c0-8.822 7.178-16 16-16h88C124.4 368 128 364.4 128 360S124.4 352 120 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96C512 366.3 497.7 352 480 352zM464 432c0-17.6-14.4-32-32-32s-32 14.4-32 32c0 17.6 14.4 32 32 32S464 449.6 464 432zM416 432c0-8.822 7.178-16 16-16s16 7.178 16 16S440.8 448 432 448S416 440.8 416 432zM250.3 413.7c3.125 3.125 8.188 3.125 11.31 0l152-152C415.2 260.1 416 258.1 416 256s-.7813-4.094-2.344-5.656c-3.125-3.125-8.188-3.125-11.31 0L264 388.7V8C264 3.594 260.4 0 256 0S248 3.594 248 8v380.7L109.7 250.3c-3.125-3.125-8.188-3.125-11.31 0s-3.125 8.188 0 11.31L250.3 413.7z"/> </svg> } if (iconName === 'satellite-dish') { renderedIcon = <svg xmlns="http://www.w3.org/2000/svg" color={iconColors[iconColor]} height={iconSize} viewBox="0 0 512 512"> <path d="M208 0c-8.8 0-16 7.2-16 16s7.2 16 16 16c150.2 0 272 121.8 272 272c0 8.8 7.2 16 16 16s16-7.2 16-16C512 136.1 375.9 0 208 0zm0 96c-8.8 0-16 7.2-16 16s7.2 16 16 16c97.2 0 176 78.8 176 176c0 8.8 7.2 16 16 16s16-7.2 16-16c0-114.9-93.1-208-208-208zM32 304c0-24.5 5-47.7 13.9-68.8L276.8 466.1C255.7 475 232.5 480 208 480c-97.2 0-176-78.8-176-176zm33.5-94.5c-14-14-37.3-12.1-45.7 5.8C7.1 242.2 0 272.3 0 304C0 418.9 93.1 512 208 512c31.7 0 61.8-7.1 88.7-19.8c17.9-8.4 19.8-31.8 5.8-45.7L195.3 339.3l24-24c6.3 3 13.3 4.7 20.7 4.7c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48c0 7.4 1.7 14.4 4.7 20.7l-24 24L65.5 209.5zM224 272a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"/> </svg> } if (iconName === 'rotate-light') { renderedIcon = <svg xmlns="http://www.w3.org/2000/svg" color={iconColors[iconColor]} height={iconSize} viewBox="0 0 512 512"><path d="M426.1 301.2C406.2 376.5 337.6 432 256 432c-51 0-96.9-21.7-129-56.3l41-41c5.1-5.1 8-12.1 8-19.3c0-15.1-12.2-27.3-27.3-27.3H48c-8.8 0-16 7.2-16 16V404.7C32 419.8 44.2 432 59.3 432c7.2 0 14.2-2.9 19.3-8l25.7-25.7C142.3 438.7 196.2 464 256 464c97.4 0 179.2-67 201.8-157.4c2.4-9.7-5.2-18.6-15.2-18.6c-7.8 0-14.5 5.6-16.5 13.2zM385 136.3l-41 41c-5.1 5.1-8 12.1-8 19.3c0 15.1 12.2 27.3 27.3 27.3H464c8.8 0 16-7.2 16-16V107.3C480 92.2 467.8 80 452.7 80c-7.2 0-14.2 2.9-19.3 8l-25.7 25.7C369.7 73.3 315.8 48 256 48C158.6 48 76.8 115 54.2 205.4c-2.4 9.7 5.2 18.6 15.2 18.6c7.8 0 14.5-5.6 16.5-13.2C105.8 135.5 174.4 80 256 80c51 0 96.9 21.7 129.1 56.3zM448 192H374.6L448 118.6V192zM64 320h73.4L64 393.4V320z"/> </svg> } if (iconName === 'rotate-exclamation-light') { renderedIcon = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize} > <defs> <style>{` .fa-secondary { opacity: 0.4; color: ${iconColors[iconColor]}; } `}</style> </defs> <path className="fa-primary" d="M280 152c0-13.3-10.7-24-24-24s-24 10.7-24 24V264c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM256 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"/> <path className="fa-secondary" d="M432 117.4C391 65.4 327.4 32 256 32C158.4 32 75.5 94.4 44.8 181.3c-5.9 16.7 2.8 34.9 19.5 40.8s34.9-2.8 40.8-19.5C127.1 140.5 186.4 96 256 96c52.3 0 98.8 25.1 128 64H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h84.3c.5 0 1 0 1.5 0H464c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v37.4zm35.2 213.2c5.9-16.7-2.8-34.9-19.5-40.8s-34.9 2.8-40.8 19.5C384.9 371.5 325.6 416 256 416c-52.3 0-98.8-25.1-128-64h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32V432c0 17.7 14.3 32 32 32s32-14.3 32-32V394.6c41 52 104.6 85.4 176 85.4c97.6 0 180.5-62.4 211.2-149.3z"/> </svg> } if (iconName === 'radar-duotone') { renderedIcon = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize} > <defs> <style>{` .fa-secondary { color: ${iconColors[iconColor]} !important; } `}</style> </defs> <path className="fa-primary" d="M497 49c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-182 182c-7.7-3.3-16.1-5.1-25-5.1c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64c0-8.9-1.8-17.3-5.1-25L497 49z"/> <path className="fa-secondary" d="M350.9 127.2l-46.1 46.1c-14.3-8.4-31-13.3-48.8-13.3c-53 0-96 43-96 96s43 96 96 96s96-43 96-96h64c0 73.5-49.6 135.5-117.2 154.2C290.8 394.7 274.7 384 256 384s-34.8 10.7-42.8 26.2c-51.7-14.3-92.8-53.9-109.4-104.6c14.4-8.3 24.1-23.8 24.1-41.7c0-19.4-11.5-36.1-28-43.7C116.2 149.1 179.9 96 256 96c35.5 0 68.3 11.6 94.9 31.2zm22.8-22.8C341.2 79 300.4 64 256 64C163.1 64 85.7 129.9 67.9 217.6C47.2 222.9 32 241.7 32 264c0 23.8 17.3 43.6 40.1 47.4c19.3 64.3 71.5 114.4 137 130.9C213.8 463.8 233 480 256 480s42.2-16.2 46.9-37.8C386.3 421.3 448 345.9 448 256h64c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0c62.1 0 118.9 22.1 163.3 58.8l-45.5 45.5z"/> </svg> } if (iconName === 'satellite-dish-duotone') { renderedIcon = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height={iconSize}> <defs> <style>{` .fa-secondary { color: ${iconColors[iconColor]} !important; } `}</style> </defs> <path className="fa-primary" d="M60.6 220.6c-14.5-14.5-38.8-11.8-46.3 7.3C5.1 251.5 0 277.1 0 304C0 418.9 93.1 512 208 512c26.9 0 52.5-5.1 76.1-14.4c19-7.5 21.8-31.8 7.3-46.3L187.3 347.3l28.4-28.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3l-28.4 28.4L60.6 220.6z"/> <path className="fa-secondary" d="M224 0c-17.7 0-32 14.3-32 32s14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0zm0 96c-17.7 0-32 14.3-32 32s14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192z"/> </svg> } if (iconName === 'spinner') { renderedIcon = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="20" height="20"> <defs> <style> {` .fa-secondary { opacity: 0.4; } `} </style> </defs> <path className="fa-primary" d="M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 256A48 48 0 1 0 0 256a48 48 0 1 0 96 0zM75 142.9A48 48 0 1 0 142.9 75 48 48 0 1 0 75 142.9z"/> <path className="fa-secondary" d="M369.1 75A48 48 0 1 1 437 142.9 48 48 0 1 1 369.1 75zM416 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM208 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM75 369.1A48 48 0 1 1 142.9 437 48 48 0 1 1 75 369.1zm294.2 0A48 48 0 1 1 437 437a48 48 0 1 1 -67.9-67.9z"/> </svg> } return ( <div {...props} ref={ref}>{renderedIcon}</div> ) }); const Icon = ({name, color, size, tooltip}) => { // set defaults if not set const iconName = name || 'bullet'; const iconColor = color || 'black'; let iconSize = size || 15; let tooltipClass = tooltip ? 'tooltip-' : ''; let randomId= Math.floor(Math.random() * 1000000000); if ( tooltip ) { return ( <div className={'rsssl-' + tooltipClass + 'icon rsssl-icon-' + iconName + ' rsssl-' + iconColor}> <IconHtml data-for={".rsssl-"+randomId} name={iconName} color={iconColor} size={iconSize} id={randomId} className={"rsssl-"+randomId} data-tooltip-delay-hide={200}/> <Tooltip style={{ zIndex: 99 }} id={randomId} place="bottom" anchorSelect={".rsssl-"+randomId} content={tooltip} /> </div> ); } return ( <div className={'rsssl-' + tooltipClass + 'icon rsssl-icon-' + iconName + ' rsssl-' + iconColor}> <IconHtml name={iconName} color={iconColor} size={iconSize} /> </div> ); } export default Icon;PK�������!�:ł,��,�� ��settings/src/utils/formatting.jsnu�[��������/** Takes a relative date and an optional date parameter, and returns a human-readable string representing the difference between the two dates. @function @param {number|Date} relativeDate - The relative date (can be a number representing an UTC timestamp, or a Date object). @param {Date} [date=new Date()] - An optional date parameter to compare the relative date to. Defaults to the current date and time. @returns {string} A human-readable string representing the difference between the two dates (e.g., "in 3 months", "5 hours ago", etc.). Returns "-" if the input date is invalid or not yet loaded. @example const timestamp = Date.now() / 1000 + 60 * 60 * 24 * 3; // UTC timestamp 3 days from now console.log(getRelativeTime(timestamp)); // Output: "in 3 days" */ export const getRelativeTime = (relativeDate, date = new Date()) => { // if relativeDate is a number, we assume it is an UTC timestamp if (typeof relativeDate === 'number') { // count charachters to check if in seconds or milliseconds if (relativeDate.toString().length < 13) { relativeDate = relativeDate * 1000; } // convert to date object relativeDate = new Date(relativeDate); } if (!(relativeDate instanceof Date)) { // invalid date, probably still loading return '-'; } let units = { year : 24 * 60 * 60 * 1000 * 365, month : 24 * 60 * 60 * 1000 * 365/12, day : 24 * 60 * 60 * 1000, hour : 60 * 60 * 1000, minute: 60 * 1000, second: 1000 } let rtf = new Intl.RelativeTimeFormat('en', { numeric: 'auto' }) let elapsed = relativeDate - date // "Math.abs" accounts for both "past" & "future" scenarios for (let u in units) { if (Math.abs(elapsed) > units[u] || u === 'second') { return rtf.format(Math.round(elapsed/units[u]), u) } } }PK�������!�n:S������settings/src/utils/lib.jsnu�[��������export const in_array = (needle, haystack) => { let length = haystack.length; for(let i = 0; i < length; i++) { if( haystack[i] == needle ) return true; } return false; } export const errorMsg = (error) => { let length = haystack.length; for(let i = 0; i < length; i++) { if( haystack[i] == needle ) return true; } return false; } PK�������!�3~������settings/src/utils/api.jsnu�[��������import getAnchor from "./getAnchor"; import axios from 'axios'; import apiFetch from '@wordpress/api-fetch'; /* * Makes a get request to the fields list * * @param {string|boolean} restBase - rest base for the query. * @param {object} args * @returns {AxiosPromise<any>} */ export const getNonce = () => { return '&nonce='+rsssl_settings.rsssl_nonce+'&token='+Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 5); }; const usesPlainPermalinks = () => { return rsssl_settings.site_url.indexOf('?') !==-1; }; const ajaxPost = (path, requestData) => { return new Promise(function (resolve, reject) { let url = siteUrl('ajax'); let xhr = new XMLHttpRequest(); xhr.open('POST', url ); xhr.onload = function () { let response; try { response = JSON.parse(xhr.response); } catch (error) { resolve(invalidDataError(xhr.response, 500, 'invalid_data') ); } if (xhr.status >= 200 && xhr.status < 300) { resolve(response); } else { resolve(invalidDataError(xhr.response, xhr.status, xhr.statusText) ); } }; xhr.onerror = function () { resolve(invalidDataError(xhr.response, xhr.status, xhr.statusText) ); }; let data = {}; data['path'] = path; data['data'] = requestData; data = JSON.stringify(data, stripControls); xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8'); xhr.send(data); }); } /** * All data elements with 'Control' in the name are dropped, to prevent: * TypeError: Converting circular structure to JSON * @param key * @param value * @returns {any|undefined} */ const stripControls = (key, value) => { if (!key){return value} if (key && key.includes("Control")) { return undefined; } if (typeof value === "object") { return JSON.parse(JSON.stringify(value, stripControls)); } return value; } const ajaxGet = (path) => { return new Promise(function (resolve, reject) { let url = siteUrl('ajax'); url+='&rest_action='+path.replace('?', '&'); let xhr = new XMLHttpRequest(); xhr.open('GET', url); xhr.onload = function () { let response; try { response = JSON.parse(xhr.response); } catch (error) { resolve(invalidDataError(xhr.response, 500, 'invalid_data') ); } if (xhr.status >= 200 && xhr.status < 300) { if ( !response.hasOwnProperty('request_success') ) { resolve(invalidDataError(xhr.response, 500, 'invalid_data') ); } resolve(response); } else { resolve(invalidDataError(xhr.response, xhr.status, xhr.statusText) ); } }; xhr.onerror = function () { resolve(invalidDataError(xhr.response, xhr.status, xhr.statusText) ); }; xhr.send(); }); } /** * if the site is loaded over https, but the site url is not https, force to use https anyway, because otherwise we get mixed content issues. * @returns {*} */ const siteUrl = (type) => { let url; if (typeof type ==='undefined') { url = rsssl_settings.site_url; } else { url = rsssl_settings.admin_ajax_url } if ( window.location.protocol === "https:" && url.indexOf('https://')===-1 ) { return url.replace('http://', 'https://'); } return url; } const invalidDataError = (apiResponse, status, code ) => { let response = {} let error = {}; let data = {}; data.status = status; error.code = code; error.data = data; error.message = apiResponse; response.error = error; return response; } const apiGet = (path) => { if ( usesPlainPermalinks() ) { let config = { headers: { 'X-WP-Nonce': rsssl_settings.nonce, } } return axios.get(siteUrl()+path, config ).then( ( response ) => { if (!response.data.request_success) { return ajaxGet(path); } return response.data; } ).catch((error) => { //try with admin-ajax return ajaxGet(path); }); } else { return apiFetch( { path: path } ).then((response) => { if ( !response.request_success ) { return ajaxGet(path); } return response; }).catch((error) => { return ajaxGet(path); }); } } const apiPost = (path, data) => { if ( usesPlainPermalinks() ) { let config = { headers: { 'X-WP-Nonce': rsssl_settings.nonce, } } return axios.post(siteUrl()+path, data, config ).then( ( response ) => {return response.data;}).catch((error) => { return ajaxPost(path, data); }); } else { return apiFetch( { path: path, method: 'POST', data: data, } ).catch((error) => { return ajaxPost(path, data); }); } } const glue = () => { return rsssl_settings.site_url.indexOf('?')!==-1 ? '&' : '?' } export const getFields = () => { //we pass the anchor, so we know when LE is loaded let anchor = getAnchor('main'); return apiGet('reallysimplessl/v1/fields/get'+glue()+anchor+getNonce(), 'GET'); }; /* * Post our data to the back-end * @param data * @returns {Promise<AxiosResponse<any>>} */ export const setFields = (data) => { //we pass the anchor, so we know when LE is loaded let anchor = getAnchor('main'); let nonce = {'nonce': rsssl_settings.rsssl_nonce}; data.push(nonce); return apiPost('reallysimplessl/v1/fields/set' + glue() + anchor, data); } export const runTest = (test, state, data ) => { if ( !state ){ state = false; } if ( !data ) { data = false; } data = encodeURIComponent(JSON.stringify(data)); return apiGet('reallysimplessl/v1/tests/'+test+glue()+'state='+state+getNonce()+'&data='+data) }; export const runLetsEncryptTest = (test, id ) => { return apiGet('reallysimplessl/v1/tests/'+test+glue()+'letsencrypt=1&id='+id+getNonce()); } export const doAction = (action, data) => { const newData = { ...data }; newData.nonce = rsssl_settings.rsssl_nonce; return apiPost('reallysimplessl/v1/do_action/'+action, newData); } PK�������!�//������settings/src/utils/sleeper.jsnu�[��������/* * helper function to delay after a promise * @param ms * @returns {function(*): Promise<unknown>} */ const sleeper = (ms) => { return function(x) { return new Promise(resolve => setTimeout(() => resolve(x), ms)); }; } export default sleeper;PK�������!�l/&��&����settings/src/utils/Flag/Flag.jsnu�[��������import * as Flags from './Flags'; const Flag = ({ countryCode, style, title }) => { const FlagComponent = Flags[countryCode]; return FlagComponent ? <span title={title} ><FlagComponent style={style} /></span> : ( <span title={title}>{countryCode}</span> ); }; export default Flag;PK�������!�)+O����+��settings/src/Placeholder/PagePlaceholder.jsnu�[��������import Error from '../utils/Error'; const PagePlaceholder = (props) => { return ( <> <div className="rsssl-header-container"> <div className="rsssl-header"> <img className="rsssl-logo" src={rsssl_settings.plugin_url + 'assets/img/really-simple-ssl-logo.svg'} alt="Really Simple SSL logo"/> </div> </div> <div className="rsssl-content-area rsssl-grid rsssl-dashboard rsssl-page-placeholder"> <div className="rsssl-grid-item rsssl-column-2 rsssl-row-2 "> {props.error && <Error error={props.error} /> } </div> <div className="rsssl-grid-item rsssl-row-2"></div> <div className="rsssl-grid-item rsssl-row-2"></div> <div className="rsssl-grid-item rsssl-column-2"></div> </div> </> ); } export default PagePlaceholder; PK�������!�C1_W����0��settings/src/Placeholder/DashboardPlaceholder.jsnu�[��������const DashboardPlaceholder = (props) => { return ( <> <div className="rsssl-grid-item rsssl-column-2 rsssl-dashboard-placeholder"></div> <div className="rsssl-grid-item rsssl-row-2 rsssl-dashboard-placeholder"></div> <div className="rsssl-grid-item rsssl-row-2 rsssl-dashboard-placeholder"></div> </> ); } export default DashboardPlaceholder; PK�������!�� ����'��settings/src/Placeholder/Placeholder.jsnu�[��������import Error from "../utils/Error"; const Placeholder = (props) => { let lines = props.lines; if ( !lines ) lines = 4; if (props.error) { lines = 0; } return ( <div className="rsssl-placeholder"> {props.error && <Error error={props.error} /> } {Array.from({length: lines}).map((item, i) => (<div className="rsssl-placeholder-line" key={"placeholder-"+i} ></div>))} </div> ); } export default Placeholder;PK�������!�C>k��k��+��settings/src/Placeholder/MenuPlaceholder.jsnu�[��������const MenuPlaceholder = () => { return ( <div className="rsssl-wizard-menu rsssl-grid-item rsssl-menu-placeholder"> <div className="rsssl-grid-item-header"> <h1 className="rsssl-h4"></h1> </div> <div className="rsssl-grid-item-content"></div> </div> ); } export default MenuPlaceholder;PK�������!�*l��l��0��settings/src/Placeholder/DatatablePlaceholder.jsnu�[��������import React from "react"; const DatatablePlaceholder = (props) => { let lines = props.lines; if ( !lines ) lines = 3; return ( <div className="rsssl-datatable-placeholder"> {Array.from({length: lines}).map((item, i) => (<div key={'datatable-placeholder-'+i} ></div>))} </div> ); } export default DatatablePlaceholder;PK�������!�G5��5��/��settings/src/Placeholder/SettingsPlaceholder.jsnu�[��������import Placeholder from "./Placeholder"; /** * Menu block, rendering the entire menu */ const SettingsPlaceholder = () => { return( <div className="rsssl-wizard-settings rsssl-column-2 rsssl-settings-placeholder"> <div className="rsssl-grid-item"> <div className="rsssl-grid-item-content"> <div className="rsssl-settings-block-intro"></div> </div> </div> <div className="rsssl-grid-item-footer"></div> </div> ) } export default SettingsPlaceholder; PK�������!�<ڢ �� ����settings/src/Modal/Modal.jsnu�[��������import { __ } from '@wordpress/i18n'; import * as rsssl_api from "../utils/api"; import Icon from "../utils/Icon"; import useModal from "./ModalData"; import {useState} from '@wordpress/element'; const Modal = (props) => { const {handleModal, modalData, setModalData, showModal, setIgnoredItemId, setFixedItemId, item} = useModal(); const [buttonsDisabled, setButtonsDisabled] = useState(false); const dismissModal = () => { handleModal(false, null, null); } const handleFix = (e, type) => { //set to disabled let action = modalData.action; setButtonsDisabled(true); rsssl_api.runTest(action, 'refresh', modalData ).then( ( response ) => { let data = {...modalData}; data.description = response.msg; data.subtitle = ''; setModalData(data); setButtonsDisabled(false); if (response.success) { if (type==='ignore' && item !==false ) { setIgnoredItemId(item.id); } else { setFixedItemId(item.id); } handleModal(false, null); } }); } if (!showModal) { return (<></>); } let disabled = buttonsDisabled ? 'disabled' : ''; let description = modalData.description; if ( !Array.isArray(description) ) { description = [description]; } return ( <div> <div className="rsssl-modal-backdrop" onClick={ (e) => dismissModal(e) }> </div> <div className="rsssl-modal" id="{id}"> <div className="rsssl-modal-header"> <h2 className="modal-title"> {modalData.title} </h2> <button type="button" className="rsssl-modal-close" data-dismiss="modal" aria-label="Close" onClick={ (e) => dismissModal(e) }> <Icon name='times' /> </button> </div> <div className="rsssl-modal-content"> { modalData.subtitle && <div className="rsssl-modal-subtitle">{modalData.subtitle}</div>} { Array.isArray(description) && description.map((s, i) => <div key={"modalDescription-"+i} className="rsssl-modal-description">{s}</div>) } </div> <div className="rsssl-modal-footer"> { modalData.edit && <a href={modalData.edit} target="_blank" rel="noopener noreferrer" className="button button-secondary">{__("Edit", "really-simple-ssl")}</a>} { modalData.help && <a href={modalData.help} target="_blank" rel="noopener noreferrer" className="button rsssl-button-help">{__("Help", "really-simple-ssl")}</a>} { (!modalData.ignored && modalData.action==='ignore_url') && <button disabled={disabled} className="button button-primary" onClick={ (e) => handleFix(e, 'ignore') }>{ __("Ignore", "really-simple-ssl")}</button>} { modalData.action!=='ignore_url' && <button disabled={disabled} className="button button-primary" onClick={ (e) => handleFix(e, 'fix') }>{__("Fix", "really-simple-ssl")}</button> } </div> </div> </div> ) } export default Modal;PK�������!�$h����"��settings/src/Modal/ModalControl.jsnu�[��������import useModal from "./ModalData"; /** * Button to open the modal * @param props * @returns {JSX.Element} * @constructor */ const ModalControl = (props) => { const {handleModal} = useModal(); const onClickHandler = () => { handleModal(true, props.modalData, props.item ); } return ( <button className={"button button-" + props.btnStyle} onClick={ (e) => onClickHandler(e) }>{props.btnText}</button> ) } export default ModalControlPK�������!�Y!��!����settings/src/Modal/ModalData.jsnu�[��������import {create} from 'zustand'; const useModalData = create(( set, get ) => ({ modalData: [], buttonsDisabled: false, showModal:false, ignoredItems:[], fixedItems:[], item:false, setIgnoredItemId: (ignoredItemId) => { let ignoredItems = get().ignoredItems; ignoredItems.push(ignoredItemId); set({ignoredItems: ignoredItems, }); }, setFixedItemId: (fixedItemId) => { let fixedItems = get().fixedItems; fixedItems.push(fixedItemId); set({fixedItems: fixedItems, }); }, handleModal: (showModal, modalData, item) => { set({showModal: showModal, modalData:modalData, item:item }); }, setModalData: (modalData) => { set({modalData:modalData }); }, })); export default useModalData; PK�������!�^HZ'��Z'����settings/src/Menu/MenuData.jsnu�[��������import {create} from 'zustand'; import getAnchor from "../utils/getAnchor"; const useMenu = create(( set, get ) => ({ menu: [], subMenuLoaded:false, previousMenuItem:false, nextMenuItem:false, selectedMainMenuItem:false, selectedSubMenuItem:false, selectedFilter: false, activeGroupId: false, hasPremiumItems:false, subMenu:{title:' ',menu_items:[]}, setSelectedSubMenuItem: async (selectedSubMenuItem) => { let selectedMainMenuItem = getMainMenuForSubMenu(selectedSubMenuItem); set(state => ({ selectedSubMenuItem,selectedMainMenuItem })) // window.location.href=rsssl_settings.dashboard_url+'#'+selectedMainMenuItem+'/'+selectedSubMenuItem; window.location.hash = selectedMainMenuItem+'/'+selectedSubMenuItem; }, setSelectedMainMenuItem: (selectedMainMenuItem) => { set(state => ({ selectedMainMenuItem })) // window.location.href=rsssl_settings.dashboard_url+'#'+selectedMainMenuItem; window.location.hash = selectedMainMenuItem; }, //we need to get the main menu item directly from the anchor, otherwise we have to wait for the menu to load in page.js fetchSelectedMainMenuItem: () => { let selectedMainMenuItem = getAnchor('main') || 'dashboard'; set((state) => ({selectedMainMenuItem: selectedMainMenuItem})); }, fetchSelectedSubMenuItem: async () => { let selectedSubMenuItem = getAnchor('menu') || 'general'; set((state) => ({selectedSubMenuItem: selectedSubMenuItem})); }, fetchMenuData: (fields) => { let menu = rsssl_settings.menu; menu = Object.values(menu); const selectedMainMenuItem = getAnchor('main') || 'dashboard'; menu = menu.filter( item => !item.default_hidden || selectedMainMenuItem===item.id); if ( typeof fields !== 'undefined' ) { let subMenu = getSubMenu(menu, selectedMainMenuItem); const selectedSubMenuItem = getSelectedSubMenuItem(subMenu, fields); subMenu.menu_items = dropEmptyMenuItems(subMenu.menu_items, fields, selectedSubMenuItem); const { nextMenuItem, previousMenuItem } = getPreviousAndNextMenuItems(menu, selectedSubMenuItem, fields); const hasPremiumItems = subMenu.menu_items.filter((item) => {return (item.premium===true)}).length>0; set((state) => ({subMenuLoaded:true, menu: menu, nextMenuItem:nextMenuItem, previousMenuItem:previousMenuItem, selectedMainMenuItem: selectedMainMenuItem, selectedSubMenuItem:selectedSubMenuItem, subMenu: subMenu, hasPremiumItems: hasPremiumItems})); } else { set((state) => ({menu: menu, selectedMainMenuItem: selectedMainMenuItem})); } }, getDefaultSubMenuItem: async (fields) => { let subMenuLoaded = get().subMenuLoaded; if (!subMenuLoaded){ await get().fetchMenuData(fields); } let subMenu = get().subMenu; let fallBackMenuItem = subMenuLoaded && subMenu.hasOwnProperty(0) ? subMenu[0].id : 'general'; let anchor = getAnchor('menu'); let foundAnchorInMenu = false; //check if this anchor actually exists in our current submenu. If not, clear it for (const key in this.menu.menu_items) { if ( subMenu.hasOwnProperty(key) && subMenu[key].id === anchor ){ foundAnchorInMenu=true; } } if ( !foundAnchorInMenu ) anchor = false; return anchor ? anchor : fallBackMenuItem; } })); export default useMenu; // Parses menu items and nested items in single array const menuItemParser = (parsedMenuItems, menuItems, fields) => { menuItems.forEach((menuItem) => { if( menuItem.visible ) { parsedMenuItems.push(menuItem.id); if( menuItem.hasOwnProperty('menu_items') ) { menuItem.menu_items = dropEmptyMenuItems(menuItem.menu_items, fields ); menuItemParser(parsedMenuItems, menuItem.menu_items, fields); } } }); return parsedMenuItems; } const getPreviousAndNextMenuItems = (menu, selectedSubMenuItem, fields) => { let previousMenuItem; let nextMenuItem; const parsedMenuItems = []; menuItemParser(parsedMenuItems, menu, fields); // Finds current menu item index const currentMenuItemIndex = parsedMenuItems.findIndex((menuItem) => menuItem === selectedSubMenuItem); if( currentMenuItemIndex !== -1 ) { previousMenuItem = parsedMenuItems[ currentMenuItemIndex === 0 ? '' : currentMenuItemIndex - 1]; //if the previous menu item has a submenu, we should move one more back, because it will select the current sub otherwise. const previousMenuHasSubMenu = getMenuItemByName(previousMenuItem, menu).hasOwnProperty('menu_items'); if (previousMenuHasSubMenu) { previousMenuItem = parsedMenuItems[ currentMenuItemIndex === 0 ? '' : currentMenuItemIndex - 2] } nextMenuItem = parsedMenuItems[ currentMenuItemIndex === parsedMenuItems.length - 1 ? '' : currentMenuItemIndex + 1]; previousMenuItem = previousMenuItem ? previousMenuItem : parsedMenuItems[0]; nextMenuItem = nextMenuItem ? nextMenuItem : parsedMenuItems[parsedMenuItems.length - 1] } return { nextMenuItem, previousMenuItem }; } const dropEmptyMenuItems = (menuItems, fields) => { if (!Array.isArray(fields)) { return menuItems; // return the original menuItems unchanged } const newMenuItems = menuItems; for (const [index, menuItem] of menuItems.entries()) { let menuItemFields = fields.filter((field) => { return (field.menu_id === menuItem.id ) }); menuItemFields = menuItemFields.filter((field) => { return ( field.visible ) }); if ( menuItemFields.length === 0 && !menuItem.hasOwnProperty('menu_items') ) { if (typeof newMenuItems[index] === 'object' && newMenuItems[index] !== null) { newMenuItems[index].visible = false; } } else { if (typeof newMenuItems[index] === 'object' && newMenuItems[index] !== null) { newMenuItems[index].visible = true; } if( menuItem.hasOwnProperty('menu_items') ) { newMenuItems[index].menu_items = dropEmptyMenuItems(menuItem.menu_items, fields); } } } return newMenuItems; } /* * filter sidebar menu from complete menu structure */ const getSubMenu = (menu, selectedMainMenuItem) => { let subMenu = []; for (const key in menu) { if ( menu.hasOwnProperty(key) && menu[key].id === selectedMainMenuItem ){ subMenu = menu[key]; } } subMenu = addVisibleToMenuItems(subMenu); return subMenu; } /* * Get the main menu item for a submenu item */ const getMainMenuForSubMenu = (findMenuItem) => { let menu = rsssl_settings.menu; for (const mainKey in menu) { let mainMenuItem = menu[mainKey]; if (mainMenuItem.id===findMenuItem) { return mainMenuItem.id; } if (mainMenuItem.menu_items){ for (const subKey in mainMenuItem.menu_items) { let subMenuItem = mainMenuItem.menu_items[subKey]; if (subMenuItem.id===findMenuItem) { return mainMenuItem.id; } if (subMenuItem.menu_items){ for (const sub2Key in subMenuItem.menu_items) { let sub2MenuItem = subMenuItem.menu_items[sub2Key]; if (sub2MenuItem.id===findMenuItem) { return mainMenuItem.id; } } } } } } return false; } /** * Get the current selected menu item based on the hash, selecting subitems if the main one is empty. */ const getSelectedSubMenuItem = (subMenu, fields) => { let fallBackMenuItem = subMenu && subMenu.menu_items.hasOwnProperty(0) ? subMenu.menu_items[0].id : 'general'; let foundAnchorInMenu; //get flat array of menu items let parsedMenuItems = menuItemParser([], subMenu.menu_items); let anchor = getAnchor('menu'); //check if this anchor actually exists in our current submenu. If not, clear it foundAnchorInMenu = parsedMenuItems.filter(menu_item => menu_item === anchor); if ( !foundAnchorInMenu ) { anchor = false; } let selectedMenuItem = anchor ? anchor : fallBackMenuItem; //check if menu item has fields. If not, try a subitem let fieldsInMenu = fields.filter(field => field.menu_id === selectedMenuItem); if ( fieldsInMenu.length===0 ) { //look up the current menu item let menuItem = getMenuItemByName(selectedMenuItem, subMenu.menu_items); if (menuItem && menuItem.menu_items && menuItem.menu_items.hasOwnProperty(0)) { selectedMenuItem = menuItem.menu_items[0].id; } } return selectedMenuItem; } //Get a menu item by name from the menu array const getMenuItemByName = (name, menuItems) => { for (const key in menuItems ){ let menuItem = menuItems[key]; if ( menuItem.id === name ) { return menuItem; } if ( menuItem.menu_items ) { let found = getMenuItemByName(name, menuItem.menu_items); if (found) return found; } } return false; } const addVisibleToMenuItems = (menu) => { let newMenuItems = Array.isArray(menu.menu_items) ? menu.menu_items : Object.values(menu.menu_items); for (let [index, menuItem] of newMenuItems.entries()) { if (typeof menuItem === 'object' && menuItem !== null) { menuItem.visible = true; if (menuItem.hasOwnProperty('menu_items')) { menuItem = addVisibleToMenuItems(menuItem); } newMenuItems[index] = menuItem; } } menu.menu_items = newMenuItems; menu.visible = true; return menu; }PK�������!�k/wmq ��q ����settings/src/Menu/MenuItem.jsnu�[��������import { __ } from '@wordpress/i18n'; import useMenu from "./MenuData"; const MenuItem = (props) => { const {selectedSubMenuItem, selectedMainMenuItem, subMenu, menu} = useMenu(); const menuIsSelected = isSelectedMenuItem(selectedSubMenuItem, props.menuItem); const ensureArray = (data) => { return Array.isArray(data) ? data : [data]; } let menuClass = menuIsSelected ? ' rsssl-active' : ''; menuClass += props.menuItem.featured ? ' rsssl-featured' : ''; menuClass += props.menuItem.new ? ' rsssl-new' : ''; menuClass += props.menuItem.premium && !rsssl_settings.pro_plugin_active ? ' rsssl-premium' : ''; let menuLink = props.menuItem.directLink || '#'+selectedMainMenuItem+'/'+props.menuItem.id; return ( <> {props.menuItem.visible && ( <> {props.isMainMenu ? ( <div className="rsssl-main-menu"> <div className={"rsssl-menu-item" + menuClass}> <a href={menuLink}> <span>{props.menuItem.title}</span> {props.menuItem.featured && <span className='rsssl-menu-item-beta-pill'>{__('Beta', 'really-simple-ssl')}</span>} {props.menuItem.new && <span className='rsssl-menu-item-new-pill'>{__('New', 'really-simple-ssl')}</span>} </a> </div> </div> ) : ( <div className={"rsssl-menu-item" + menuClass}> <a href={menuLink}> <span>{props.menuItem.title}</span> {props.menuItem.featured && <span className='rsssl-menu-item-beta-pill'>{__('Beta', 'really-simple-ssl')}</span>} {props.menuItem.new && <span className='rsssl-menu-item-new-pill'>{__('New', 'really-simple-ssl')}</span>} </a> </div> )} {props.menuItem.menu_items && menuIsSelected && ( <div className="rsssl-submenu-item"> {ensureArray(props.menuItem.menu_items).map((subMenuItem, i) => ( subMenuItem.visible && <MenuItem key={"submenuItem" + i} menuItem={subMenuItem} isMainMenu={false} /> ))} </div> )} </> )} </> ); } export default MenuItem /** * Utility function to check if selected menu item is the current menu item or a child of the current menu item * @param selectedSubMenuItem * @param menuItem * @returns {boolean} */ const isSelectedMenuItem = (selectedSubMenuItem, menuItem) => { if (selectedSubMenuItem === menuItem.id) { return true; } if (menuItem.menu_items) { for (const item of menuItem.menu_items) { if (item.id === selectedSubMenuItem) { return true; } } } return false; }; PK�������!�������settings/src/Menu/Menu.jsnu�[��������import MenuPlaceholder from '../Placeholder/MenuPlaceholder'; import MenuItem from './MenuItem'; import { __ } from '@wordpress/i18n'; import useMenu from "./MenuData"; import useLicense from "../Settings/License/LicenseData"; /** * Menu block, rendering the entire menu */ const Menu = () => { const {subMenu, hasPremiumItems, subMenuLoaded} = useMenu(); const {licenseStatus} = useLicense(); if ( !subMenuLoaded ) { return( <MenuPlaceholder /> ) } return ( <div className="rsssl-wizard-menu rsssl-grid-item"> <div className="rsssl-grid-item-header"> <h1 className="rsssl-h4">{subMenu.title}</h1> </div> <div className="rsssl-grid-item-content"> <div className="rsssl-wizard-menu-items"> { subMenu.menu_items.map((menuItem, i) => <MenuItem key={"menuItem-"+i} menuItem={menuItem} isMainMenu={true} /> ) } { hasPremiumItems && !rsssl_settings.pro_plugin_active && licenseStatus!=='valid' && <div className="rsssl-premium-menu-item"><div><a target="_blank" rel="noopener noreferrer" href={rsssl_settings.upgrade_link} className='button button-black'>{__('Upgrade', 'really-simple-ssl')}</a></div></div> } </div> </div> <div className="rsssl-grid-item-footer"> </div> </div> ) } export default Menu; PK�������!�}SI �� ����settings/src/Header.jsnu�[��������import {useEffect} from "@wordpress/element"; import { __ } from '@wordpress/i18n'; import Notices from "./Settings/Notices"; import useMenu from "./Menu/MenuData"; const Header = () => { const {menu, selectedMainMenuItem, fetchMenuData} = useMenu(); let plugin_url = rsssl_settings.plugin_url; useEffect( () => { fetchMenuData(); }, [] ); let menuItems = menu.filter( item => item!==null ); return ( <div className="rsssl-header-container"> <div className="rsssl-header"> <img className="rsssl-logo" src={plugin_url+"assets/img/really-simple-ssl-logo.svg"} alt="Really Simple SSL logo" /> <div className="rsssl-header-left"> <nav className="rsssl-header-menu"> <ul> {menuItems.map((menu_item, i) => <li key={"menu-"+i}><a className={ selectedMainMenuItem === menu_item.id ? 'active' : '' } href={"#" + menu_item.id.toString()} >{menu_item.title}</a></li>)} </ul> </nav> </div> <div className="rsssl-header-right"> { !rsssl_settings.le_generated_by_rsssl && <a className="rsssl-knowledge-base-link" href="https://really-simple-ssl.com/knowledge-base" target="_blank" rel="noopener noreferrer">{__("Documentation", "really-simple-ssl")}</a>} { rsssl_settings.le_generated_by_rsssl && <a href={rsssl_settings.letsencrypt_url}>{__("Let's Encrypt","really-simple-ssl")}</a> } { rsssl_settings.pro_plugin_active && <a href="https://wordpress.org/support/plugin/really-simple-ssl/" className="button button-black" target="_blank" rel="noopener noreferrer">{__("Support", "really-simple-ssl")}</a> } { !rsssl_settings.pro_plugin_active && <a href={rsssl_settings.upgrade_link} className="button button-black" target="_blank" rel="noopener noreferrer">{__("Go Pro", "really-simple-ssl")}</a> } </div> </div> <Notices className="rsssl-wizard-notices"/> </div> ); } export default HeaderPK�������!�X[����!��settings/src/Settings/Settings.jsnu�[��������import {useState, useEffect} from '@wordpress/element'; import SettingsPlaceholder from '../Placeholder/SettingsPlaceholder'; import {in_array} from '../utils/lib'; import SettingsGroup from './SettingsGroup'; import Help from './Help'; import useFields from './FieldsData'; import useMenu from '../Menu/MenuData'; import {__} from '@wordpress/i18n'; import useLetsEncryptData from '../LetsEncrypt/letsEncryptData'; import ErrorBoundary from "../utils/ErrorBoundary"; /** * Renders the selected settings * */ const Settings = () => { const [noticesExpanded, setNoticesExpanded] = useState(true); const { progress, fieldsLoaded, saveFields, fields, nextButtonDisabled, } = useFields(); const { subMenuLoaded, subMenu, selectedSubMenuItem, selectedMainMenuItem, nextMenuItem, previousMenuItem, } = useMenu(); const {setRefreshTests} = useLetsEncryptData(); const toggleNotices = () => { setNoticesExpanded(!noticesExpanded); }; const isTestsOnlyMenu = () => { const {menu_items: menuItems} = subMenu; for (const menuItem of menuItems) { if (menuItem.id === selectedSubMenuItem && menuItem.tests_only) { return true; } } return false; }; const saveData = async (isSaveAndContinueButton) => { if (!isSaveAndContinueButton && isTestsOnlyMenu()) { setRefreshTests(true); } else if (isSaveAndContinueButton) { await saveFields(true, false); } else { await saveFields(true, true); } }; const {menu_items: menuItems} = subMenu; if (!subMenuLoaded || !fieldsLoaded || menuItems.length === 0) { return ( <SettingsPlaceholder/> ); } let selectedFields = fields.filter( field => field.menu_id === selectedSubMenuItem); let groups = []; for (const selectedField of selectedFields) { if (!in_array(selectedField.group_id, groups)) { groups.push(selectedField.group_id); } } //convert progress notices to an array useful for the help blocks let notices = []; for (const notice of progress.notices) { let noticeIsLinkedToField = false; //notices that are linked to a field. Only in case of warnings. if (notice.show_with_options) { let noticeFields = selectedFields.filter( field => notice.show_with_options.includes(field.id)); noticeIsLinkedToField = noticeFields.length > 0; } //notices that are linked to a menu id. if (noticeIsLinkedToField || notice.menu_id === selectedSubMenuItem) { let help = {}; help.title = notice.output.title ? notice.output.title : false; help.label = notice.output.label; help.id = notice.id; help.text = notice.output.msg; help.url = notice.output.url; help.linked_field = notice.show_with_option; notices.push(help); } } //help items belonging to a field //if field is hidden, hide the notice as well for (const notice of selectedFields.filter( field => field.help && !field.conditionallyDisabled)) { let help = notice.help; //check if the notices array already includes this help item let existingNotices = notices.filter( noticeItem => noticeItem.id && noticeItem.id === help.id); if (existingNotices.length === 0) { // if (!help.id ) help['id'] = notice.id; notices.push(notice.help); } } let continueLink = nextButtonDisabled ? `#${selectedMainMenuItem}/${selectedSubMenuItem}` : `#${selectedMainMenuItem}/${nextMenuItem}`; // let btnSaveText = isTestsOnlyMenu() ? __('Refresh', 'really-simple-ssl') : // __('Save', 'really-simple-ssl'); let btnSaveText = __('Save', 'really-simple-ssl'); for (const menuItem of menuItems) { if (menuItem.id === selectedSubMenuItem && menuItem.tests_only) { btnSaveText = __('Refresh', 'really-simple-ssl'); } } return ( <> <div className="rsssl-wizard-settings"> {groups.map((group, i) => <SettingsGroup key={'settingsGroup-' + i} index={i} group={group} fields={selectedFields}/>) } <div className="rsssl-grid-item-footer-container"> <ScrollProgress/> <div className="rsssl-grid-item-footer"> <div className={'rsssl-grid-item-footer-buttons'}> {/*This will be shown only if current step is not the first one*/} {selectedSubMenuItem !== menuItems[0].id && <a className="rsssl-previous" href={`#${selectedMainMenuItem}/${previousMenuItem}`}> {__('Previous', 'really-simple-ssl')} </a> } <button className="button button-secondary" onClick={(e) => saveData(false)}> {btnSaveText} </button> {/*This will be shown only if current step is not the last one*/} {selectedSubMenuItem !== menuItems[menuItems.length - 1].id && <> <button disabled={nextButtonDisabled} className="button button-primary" onClick={(e) => {saveData(true);window.location.href=continueLink;} }> {__('Save and Continue', 'really-simple-ssl')} </button> </> } </div> </div> </div> </div> <div className="rsssl-wizard-help"> <div className="rsssl-help-header"> <div className="rsssl-help-title rsssl-h4"> {__("Notifications", "really-simple-ssl")} </div> <div className="rsssl-help-control" onClick={ () => toggleNotices() }> {!noticesExpanded && __("Expand all","really-simple-ssl")} {noticesExpanded && __("Collapse all","really-simple-ssl")} </div> </div> { notices.map((field, i) => <ErrorBoundary key={'errorboundary-'+i} fallback={"Could not load notices"}> <Help noticesExpanded={noticesExpanded} index={i} help={field} fieldId={field.id}/> </ErrorBoundary> )} </div> </> ); }; export default Settings; export const ScrollProgress = () => { // calculate the scroll progress const [scrollProgress, setScrollProgress] = useState(0); useEffect(() => { window.addEventListener('scroll', () => { let scrollableHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight; let scrollProgressPercentage = Math.round( (window.scrollY / scrollableHeight) * 100); // start at 5% and end at 100% scrollProgressPercentage = Math.max(5, scrollProgressPercentage); setScrollProgress(scrollProgressPercentage); }); }, []); // if you can't scroll return null if (document.documentElement.scrollHeight <= document.documentElement.clientHeight) { return null; } return ( // add width to span <span className={'rsssl-grid-item-footer-scroll-progress-container'}> <span className={'rsssl-grid-item-footer-scroll-progress'} style={{width: scrollProgress + '%'}}>{scrollProgress}%</span> </span> ); }; PK�������!�$������,��settings/src/Settings/License/LicenseData.jsnu�[��������import {create} from 'zustand'; const UseLicenseData = create(( set, get ) => ({ licenseStatus: rsssl_settings.licenseStatus, setLicenseStatus: (licenseStatus) => set(state => ({ licenseStatus })), })); export default UseLicenseData; PK�������!�q �� ��(��settings/src/Settings/License/License.jsnu�[��������import TaskElement from "../../Dashboard/TaskElement"; import * as rsssl_api from "../../utils/api"; import { __ } from '@wordpress/i18n'; import useFields from "./../FieldsData"; import useLicense from "./LicenseData"; import {useState, useEffect} from "@wordpress/element"; const License = (props) => { const {fields, setChangedField, updateField} = useFields(); const {licenseStatus, setLicenseStatus} = useLicense(); const [noticesLoaded, setNoticesLoaded] = useState(false); const [fieldsUpdateComplete, setFieldsUpdateComplete] = useState(false); const [notices, setNotices] = useState(false); const getLicenseNotices = () => { return rsssl_api.runTest('licenseNotices', 'refresh').then( ( response ) => { return response; }); } useEffect( () => { getLicenseNotices().then(( response ) => { setLicenseStatus(response.licenseStatus); setNotices(response.notices); setNoticesLoaded(true); }); }, [fields] ); const onChangeHandler = (fieldValue) => { setChangedField( field.id, fieldValue ) updateField(field.id, fieldValue); } const toggleActivation = () => { setNoticesLoaded(false); if ( licenseStatus==='valid' ) { rsssl_api.runTest('deactivate_license').then( ( response ) => { setLicenseStatus(response.licenseStatus); setNotices(response.notices); setNoticesLoaded(true); }); } else { let data = {}; data.license = props.field.value; rsssl_api.doAction('activate_license', data).then( ( response ) => { setLicenseStatus(response.licenseStatus); setNotices(response.notices); setNoticesLoaded(true); }); } } let field = props.field; /** * There is no "PasswordControl" in WordPress react yet, so we create our own license field. */ return ( <div className="components-base-control"> <div className="components-base-control__field"> <label className="components-base-control__label" htmlFor={field.id}>{field.label}</label> <div className="rsssl-license-field"> <input className="components-text-control__input" type="password" id={field.id} value={field.value} onChange={ ( e ) => onChangeHandler(e.target.value) } /> <button className="button button-default" onClick={ () => toggleActivation() }> {licenseStatus==='valid' && <>{__("Deactivate","really-simple-ssl")}</>} {licenseStatus!=='valid' && <>{__("Activate","really-simple-ssl")}</>} </button> </div> </div> {noticesLoaded && notices.map((notice, i) => <TaskElement key={'task-'+i} index={i} notice={notice} highLightField=""/>)} </div> ); } export default License;PK�������!�yC���� ��settings/src/Settings/Notices.jsnu�[��������/** * Notice after saving was successfull */ import { SnackbarList } from '@wordpress/components'; import { useDispatch, useSelect, } from '@wordpress/data'; import { store as noticesStore } from '@wordpress/notices'; const Notices = () => { const notices = useSelect( ( select ) => select( noticesStore ) .getNotices() .filter( ( notice ) => notice.type === 'snackbar' ), [] ); if ( typeof notices === 'undefined' ) { return (<></>) } const { removeNotice } = useDispatch( noticesStore ); return ( <SnackbarList className="edit-site-notices" notices={ notices } onRemove={ removeNotice } /> ); }; export default Notices;PK�������!�!G��G�� ��settings/src/Settings/Support.jsnu�[��������import {TextareaControl,} from '@wordpress/components'; import {__} from '@wordpress/i18n'; import * as rsssl_api from "../utils/api"; import {useState} from "@wordpress/element"; const Support = () => { const [message, setMessage] = useState(''); const [sending, setSending] = useState(false); const onChangeHandler = (message) => { setMessage(message); } const onClickHandler = () => { setSending(true); return rsssl_api.runTest('supportData', 'refresh').then( ( response ) => { let encodedMessage = message.replace(/(?:\r\n|\r|\n)/g, '--br--'); let url = 'https://really-simple-ssl.com/support' +'?customername=' + encodeURIComponent(response.customer_name) + '&email=' + response.email + '&domain=' + response.domain + '&scanresults=' + encodeURIComponent(response.scan_results) + '&licensekey=' + encodeURIComponent(response.license_key) + '&supportrequest=' + encodeURIComponent(encodedMessage) + '&htaccesscontents=' + encodeURIComponent(response.htaccess_contents) + '&debuglog=' + encodeURIComponent(response.system_status); window.location.assign(url); }); } let disabled = sending || message.length===0; return ( <> <TextareaControl disabled={sending} placeholder={__("Type your question here","really-simple-ssl")} onChange={ ( message ) => onChangeHandler(message) } /> <button className={"button button-secondary"} disabled={disabled} onClick={ ( e ) => onClickHandler(e) }> { __( 'Send', 'really-simple-ssl' ) } </button> </> ); } export default Support;PK�������!�(!��!��3��settings/src/Settings/EventLog/EventLogDataTable.jsnu�[��������import {__} from '@wordpress/i18n'; import React, {useEffect, useState, useRef} from 'react'; import DataTable, {createTheme, ExpanderComponentProps} from "react-data-table-component"; import EventLogDataTableStore from "./EventLogDataTableStore"; import FilterData from "../FilterData"; import * as rsssl_api from "../../utils/api"; import useMenu from "../../Menu/MenuData"; import Flag from "../../utils/Flag/Flag"; import Icon from "../../utils/Icon"; import useFields from "../FieldsData"; const EventLogDataTable = (props) => { const { DynamicDataTable, dataLoaded, pagination, dataActions, handleEventTableRowsChange, fetchDynamicData, handleEventTableSort, handleEventTablePageChange, handleEventTableSearch, handleEventTableFilter, processing, rowCleared, } = EventLogDataTableStore() //here we set the selectedFilter from the Settings group const { selectedFilter, setSelectedFilter, activeGroupId, getCurrentFilter, setProcessingFilter, } = FilterData(); const moduleName = 'rsssl-group-filter-limit_login_attempts_event_log'; const {fields, fieldAlreadyEnabled, getFieldValue} = useFields(); useEffect(() => { const currentFilter = getCurrentFilter(moduleName); if (!currentFilter) { setSelectedFilter('all', moduleName); } setProcessingFilter(processing); handleEventTableFilter('severity', currentFilter); }, [moduleName, handleEventTableFilter, getCurrentFilter(moduleName), setSelectedFilter, moduleName, DynamicDataTable, processing]); //if the dataActions are changed, we fetch the data useEffect(() => { //we make sure the dataActions are changed in the store before we fetch the data if (dataActions) { fetchDynamicData(field.action, dataActions) } }, [dataActions.sortDirection, dataActions.filterValue, dataActions.search, dataActions.page, dataActions.currentRowsPerPage]); //we create the columns let columns = []; //getting the fields from the propsß let field = props.field; //we loop through the fields field.columns.forEach(function (item, i) { let newItem = buildColumn(item) columns.push(newItem); }); let enabled = getFieldValue('enable_limited_login_attempts'); const customStyles = { headCells: { style: { paddingLeft: '0', // override the cell padding for head cells paddingRight: '0', }, }, cells: { style: { paddingLeft: '0', // override the cell padding for data cells paddingRight: '0', }, }, }; createTheme('really-simple-plugins', { divider: { default: 'transparent', }, }, 'light'); //only show the datatable if the data is loaded if (!dataLoaded && columns.length === 0 && DynamicDataTable.length === 0) { return ( <div className="rsssl-spinner"> <div className="rsssl-spinner__inner"> <div className="rsssl-spinner__icon"></div> <div className="rsssl-spinner__text">{__("Loading...", "really-simple-ssl")}</div> </div> </div> ); } let searchableColumns = []; //setting the searchable columns columns.map(column => { if (column.searchable) { searchableColumns.push(column.column); } }); let data = []; if (DynamicDataTable.data) { data = DynamicDataTable.data.map((dataItem) => { let newItem = {...dataItem}; newItem.iso2_code = generateFlag(newItem.iso2_code, newItem.country_name); newItem.expandableRows = true; return newItem; }); } //we generate an expandable row const ExpandableRow = ({data}) => { let code, icon, color = ''; switch (data.severity) { case 'warning': code = 'rsssl-warning'; icon = 'circle-times'; color = 'red'; break; case 'informational': code = 'rsssl-primary'; icon = 'info'; color = 'black'; break; default: code = 'rsssl-primary'; } return ( <div className={"rsssl-wizard-help-notice " + code} style={{padding: '1em', borderRadius: '5px'}}> {/*now we place a block to the rightcorner with the severity*/} <div style={{float: 'right'}}> <Icon name={icon} color={color}/> </div> <div style={{fontSize: '1em', fontWeight: 'bold'}}> {data.severity.charAt(0).toUpperCase() + data.severity.slice(1)} </div> <div>{data.description}</div> </div> ); }; function generateFlag(flag, title) { return ( <> <Flag countryCode={flag} style={{ fontSize: '2em', marginLeft: '0.3em', }} title={title} ></Flag> </> ) } let paginationSet = true; if (typeof pagination === 'undefined') { paginationSet = false; } return ( <> <div className="rsssl-container"> <div></div> {/*Display the search bar*/} <div className="rsssl-search-bar"> <div className="rsssl-search-bar__inner"> <div className="rsssl-search-bar__icon"></div> <input type="text" className="rsssl-search-bar__input" placeholder={__("Search", "really-simple-ssl")} disabled={processing} onChange={event => handleEventTableSearch(event.target.value, searchableColumns)} /> </div> </div> </div> {/*Display the datatable*/} <DataTable columns={columns} data={processing? [] : data} dense pagination={!processing} paginationServer paginationTotalRows={paginationSet? pagination.totalRows: 10} paginationPerPage={paginationSet? pagination.perPage: 10} paginationDefaultPage={paginationSet?pagination.currentPage: 1} paginationComponentOptions={{ rowsPerPageText: __('Rows per page:', 'really-simple-ssl'), rangeSeparatorText: __('of', 'really-simple-ssl'), noRowsPerPage: false, selectAllRowsItem: false, selectAllRowsItemText: __('All', 'really-simple-ssl'), }} onChangeRowsPerPage={handleEventTableRowsChange} onChangePage={handleEventTablePageChange} expandableRows={!processing} expandableRowsComponent={ExpandableRow} loading={dataLoaded} onSort={handleEventTableSort} sortServer={!processing} paginationRowsPerPageOptions={[5, 10, 25, 50, 100]} noDataComponent={__("No results", "really-simple-ssl")} persistTableHead theme="really-simple-plugins" customStyles={customStyles} ></DataTable> {!enabled && ( <div className="rsssl-locked"> <div className="rsssl-locked-overlay"><span className="rsssl-task-status rsssl-open">{__('Disabled', 'really-simple-ssl')}</span><span>{__('Activate Limit login attempts to enable this block.', 'really-simple-ssl')}</span> </div> </div> )} </> ); } export default EventLogDataTable; function buildColumn(column) { return { name: column.name, sortable: column.sortable, searchable: column.searchable, width: column.width, visible: column.visible, column: column.column, selector: row => row[column.column], }; } PK�������!�7 �� ��8��settings/src/Settings/EventLog/EventLogDataTableStore.jsnu�[��������/* Creates A Store For Risk Data using Zustand */ import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; import {__} from "@wordpress/i18n"; import {produce} from "immer"; import React from "react"; const EventLogDataTableStore = create((set, get) => ({ processing: false, dataLoaded: false, pagination: {}, dataActions: {}, DynamicDataTable: [], sorting: [], rowCleared: false, fetchDynamicData: async (action, dataActions = {}) => { //cool we can fetch the data so first we set the processing to true set({processing: true}); set({dataLoaded: false}); set({rowCleared: true}); if (Object.keys(dataActions).length === 0) { dataActions = get().dataActions; } //now we fetch the data try { const response = await rsssl_api.doAction( action, dataActions ); // now we set the EventLog if (response) { set({DynamicDataTable: response, dataLoaded: true, processing: false, pagination: response.pagination, sorting: response.sorting}); } } catch (e) { console.log(e); } finally { set({processing: false}); set({rowCleared: false}); } }, handleEventTableSearch: async (search, searchColumns) => { //Add the search to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, search, searchColumns}; }) ); }, handleEventTablePageChange: async (page, pageSize) => { //Add the page and pageSize to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, page, pageSize}; }) ); }, handleEventTableRowsChange: async (currentRowsPerPage, currentPage) => { //Add the page and pageSize to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, currentRowsPerPage, currentPage}; }) ); }, //this handles all pagination and sorting handleEventTableSort: async (column, sortDirection) => { set(produce((state) => { state.dataActions = {...state.dataActions, sortColumn: column, sortDirection}; }) ); }, handleEventTableFilter: async (column, filterValue) => { //Add the column and sortDirection to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, filterColumn: column, filterValue}; }) ); }, })); export default EventLogDataTableStore;PK�������!�]'!��'!��&��settings/src/Settings/SettingsGroup.jsnu�[��������import Hyperlink from "../utils/Hyperlink"; import getAnchor from "../utils/getAnchor"; import {__} from '@wordpress/i18n'; import * as rsssl_api from "../utils/api"; import useFields from "../Settings/FieldsData"; import useMenu from "../Menu/MenuData"; import useLicense from "./License/LicenseData"; import filterData from "./FilterData"; import {useEffect, useState} from '@wordpress/element'; import ErrorBoundary from "../utils/ErrorBoundary"; import PremiumOverlay from "./PremiumOverlay"; /** * Render a grouped block of settings */ const SettingsGroup = (props) => { const {fields} = useFields(); const {selectedFilter, setSelectedFilter} = filterData(); const {licenseStatus} = useLicense(); const {selectedSubMenuItem, subMenu} = useMenu(); const [Field, setField] = useState(null); const [updatedIntro, setUpdatedIntro] = useState(null); useEffect(() => { import("./Field").then(({default: Field}) => { setField(() => Field); }); if (activeGroup && activeGroup.intro && typeof activeGroup.intro === 'object') { setUpdatedIntro(activeGroup.intro[selectedFilter[filterId]]); } }, [selectedFilter]); let upgrade = 'https://really-simple-ssl.com/pro/?mtm_campaign=fallback&mtm_source=free&mtm_content=upgrade'; /* * On reset of LE, send this info to the back-end, and redirect to the first step. * reload to ensure that. */ const handleLetsEncryptReset = (e) => { e.preventDefault(); rsssl_api.runLetsEncryptTest('reset').then((response) => { window.location.href = window.location.href.replace(/#letsencrypt.*/, '&r=' + (+new Date()) + '#letsencrypt/le-system-status'); }); } let selectedFields = []; //get all fields with group_id props.group_id for (const selectedField of fields) { if (selectedField.group_id === props.group) { selectedFields.push(selectedField); } } let activeGroup; for (const item of subMenu.menu_items) { if (item.id === selectedSubMenuItem && item.hasOwnProperty('groups')) { for (const group of item.groups) { if (group.group_id === props.group) { activeGroup = group; break; } } } if (activeGroup) break; // Exit the loop once a match is found. } // If activeGroup is not set, then default to the parent menu item. if (!activeGroup) { for (const item of subMenu.menu_items) { if (item.id === selectedSubMenuItem) { activeGroup = item; break; } // Handle the case where there are nested menu items. if (item.menu_items) { const nestedItem = item.menu_items.find(menuItem => menuItem.id === selectedSubMenuItem); if (nestedItem) { activeGroup = nestedItem; break; } } } } // Check for nested groups in the activeGroup. if (activeGroup && activeGroup.groups) { const nestedGroup = activeGroup.groups.find(group => group.group_id === props.group); if (nestedGroup) { activeGroup = nestedGroup; } else { const nestedGroup = activeGroup.groups.find(group => group.group_id === props.group); } } let msg = activeGroup.premium_text ? activeGroup.premium_text : __("Learn more about %sPremium%s", "really-simple-ssl"); if (rsssl_settings.pro_plugin_active) { if (licenseStatus === 'empty' || licenseStatus === 'deactivated') { msg = rsssl_settings.messageInactive; } else { msg = rsssl_settings.messageInvalid; } } let disabled = licenseStatus !== 'valid' && activeGroup.premium; //if a feature can only be used on networkwide or single site setups, pass that info here. let networkwide_error = !rsssl_settings.networkwide_active && activeGroup.networkwide_required; upgrade = activeGroup.upgrade ? activeGroup.upgrade : upgrade; let helplinkText = activeGroup.helpLink_text ? activeGroup.helpLink_text : __("Instructions", "really-simple-ssl"); let anchor = getAnchor('main'); let disabledClass = disabled || networkwide_error ? 'rsssl-disabled' : ''; const filterId = "rsssl-group-filter-" + activeGroup.id; return ( <div className={"rsssl-grid-item rsssl-" + activeGroup.id + ' ' + disabledClass}> {activeGroup.title && <div className="rsssl-grid-item-header"> <h3 className="rsssl-h4">{activeGroup.title}</h3> {activeGroup.groupFilter && ( <div className="rsssl-grid-item-controls"> <select className="rsssl-group-filter" id={filterId} name={filterId} value={selectedFilter[filterId]} onChange={(e) => { const selectedValue = e.target.value; setSelectedFilter(selectedValue, filterId); }} > {activeGroup.groupFilter.options.map((option) => ( //if the value is equal to the selected value, set it as selected <option key={'option-'+option.id} value={option.id} > {option.title} </option> ))} </select> </div> )} {!activeGroup.groupFilter && activeGroup.helpLink && anchor !== 'letsencrypt' && ( <div className="rsssl-grid-item-controls"> <Hyperlink target="_blank" rel="noopener noreferrer" className="rsssl-helplink" text={helplinkText} url={activeGroup.helpLink} /> </div> )} {anchor === 'letsencrypt' && <div className="rsssl-grid-item-controls"> <a href="#" className="rsssl-helplink" onClick={(e) => handleLetsEncryptReset(e)}>{__("Reset Let's Encrypt", "really-simple-ssl")}</a> </div>} </div>} <div className="rsssl-grid-item-content"> {(activeGroup.intro && typeof activeGroup.intro === 'string') && <ErrorBoundary fallback={"Could not load group intro"}> {(activeGroup.intro && typeof activeGroup.intro === 'string') && <div className="rsssl-settings-block-intro">{activeGroup.intro}</div>} {(activeGroup.intro && typeof activeGroup.intro === 'object') && <div className="rsssl-settings-block-intro">{updatedIntro}</div>} </ErrorBoundary>} {Field && selectedFields.map((field, i) => <Field key={"selectedFields-" + i} index={i} field={field} fields={selectedFields}/> )} </div> {disabled && !networkwide_error && <PremiumOverlay msg={activeGroup.premium_text} title={activeGroup.premium_title ? activeGroup.premium_title : activeGroup.title} upgrade={activeGroup.upgrade} url={activeGroup.upgrade} />} {networkwide_error && <div className="rsssl-locked"> <div className="rsssl-locked-overlay"> <span className="rsssl-task-status rsssl-warning">{__("Network feature", "really-simple-ssl")}</span> <span>{__("This feature is only available networkwide.", "really-simple-ssl")}<Hyperlink target="_blank" rel="noopener noreferrer" text={__("Network settings", "really-simple-ssl")} url={rsssl_settings.network_link}/></span> </div> </div>} </div> ) } export default SettingsGroup PK�������!�d_#����9��settings/src/Settings/AutoComplete/AutoCompleteControl.jsnu�[��������/* * The native selectControl doesn't allow disabling per option. */ import DOMPurify from "dompurify"; import {Autocomplete} from "@mui/material"; import TextField from '@material-ui/core/TextField'; import './AutoComplete.scss'; import { makeStyles } from "@material-ui/styles"; import {useEffect, useState} from "react"; const useStyles = makeStyles(() => ({ autoComplete: { fontSize: "12px" } })); const AutoCompleteControl = ({field, disabled, value, options, label, onChange }) => { let selectDisabled = !Array.isArray(disabled) && disabled; const classes = useStyles(); return ( <> <Autocomplete classes={{ input: classes.autoComplete, option: classes.autoComplete }} disabled={selectDisabled} disablePortal value={ value } id={field.id} options={options} getOptionLabel={(option) => { if ( option && option.label ) { return option.label; } const selectedOption = options.find( item => item.value === option ); if ( selectedOption ) { return selectedOption.label; } return option; } } isOptionEqualToValue={(option, value) => { return option.value === value; }} onChange={(event, newValue) => { let value = newValue && newValue.value ? newValue.value : ''; onChange(value); }} renderInput={(params) => <TextField {...params} label={label} margin="normal" variant="outlined" fullWidth />} /> </> ); } export default AutoCompleteControlPK�������!�Ns����4��settings/src/Settings/AutoComplete/AutoComplete.scssnu�[��������.rsssl-modal-body, .rsssl { input.MuiInput-underline:before { display:none; } .MuiAutocomplete-root { .MuiInputLabel-outlined[data-shrink=false] { transform: translate(14px, 16px) scale(1); } .MuiFormLabel-root { font-family:inherit; } .MuiOutlinedInput-root { padding: 0; } } input.MuiAutocomplete-input[type=text] { &:focus { outline: none; box-shadow:none; } border:0; padding-left:12px; } .MuiInputBase-root { font-family: inherit; } .MuiInput-root input.MuiInputBase-input { padding-left:10px; } .MuiPopper-root, .MuiPaper-root { max-height:40vh; div { font-family: inherit !important; } ul { max-height:initial; } } }PK�������!�H������settings/src/Settings/Host.jsnu�[��������import { SelectControl, } from '@wordpress/components'; import {useRef} from "@wordpress/element"; import useFields from "./FieldsData"; const Host = (props) => { const {updateField, setChangedField, saveFields, handleNextButtonDisabled} = useFields(); const disabled = useRef(false); const onChangeHandler = async (fieldValue) => { let field = props.field; //force update, and get new fields. handleNextButtonDisabled(true); disabled.current = true; updateField(field.id, fieldValue); setChangedField(field.id, fieldValue); await saveFields(true, false); handleNextButtonDisabled(false); disabled.current = false; } let fieldValue = props.field.value; let field = props.field; let options = []; if ( field.options ) { for (var key in field.options) { if (field.options.hasOwnProperty(key)) { let item = {}; item.label = field.options[key]; item.value = key; options.push(item); } } } return ( <SelectControl label={ field.label } onChange={ ( fieldValue ) => onChangeHandler(fieldValue) } value= { fieldValue } options={ options } disabled={disabled.current} /> ) } export default Host;PK�������!�*Nq������settings/src/Settings/Help.jsnu�[��������import Icon from "../utils/Icon"; import { __ } from '@wordpress/i18n'; import DOMPurify from "dompurify"; /** * Render a help notice in the sidebar */ const Help = (props) => { let notice = {...props.help}; if ( !notice.title ){ notice.title = notice.text; notice.text = false; } let openStatus = props.noticesExpanded ? 'open' : ''; //we can use notice.linked_field to create a visual link to the field. let target = notice.url && notice.url.indexOf("really-simple-ssl.com") !==-1 ? "_blank" : '_self'; return ( <div> { notice.title && notice.text && <details className={"rsssl-wizard-help-notice rsssl-" + notice.label.toLowerCase()} open={openStatus}> <summary>{notice.title} <Icon name='chevron-down' /></summary> {/*some notices contain html, like for the htaccess notices. A title is required for those options, otherwise the text becomes the title. */} <div dangerouslySetInnerHTML={{__html: DOMPurify.sanitize(notice.text)}}></div> {notice.url && <div className="rsssl-help-more-info"><a target={target} href={notice.url}>{__("More info", "really-simple-ssl")}</a></div>} </details> } { notice.title && !notice.text && <div className={"rsssl-wizard-help-notice rsssl-" + notice.label.toLowerCase()}><p>{notice.title}</p></div> } </div> ); } export default HelpPK�������!�q}l �� ��&��settings/src/Settings/RolesDropDown.jsnu�[��������import React, { useState, useEffect } from 'react'; import Select from 'react-select'; import useFields from "./FieldsData"; import useRolesData from './TwoFA/RolesStore'; import {__} from "@wordpress/i18n"; import './TwoFA/select.scss'; /** * RolesDropDown component represents a dropdown select for excluding roles * from two-factor authentication email. * @param {object} field - The field object containing information about the field. */ const RolesDropDown = ({ field }) => { const {fetchRoles, roles, rolesLoaded} = useRolesData(); const [selectedRoles, setSelectedRoles] = useState([]); const [rolesEnabled, setRolesEnabled] = useState(false); // Custom hook to manage form fields const { updateField, setChangedField, fieldsLoaded,getFieldValue } = useFields(); let enabled = true; useEffect(() => { if (!rolesLoaded) { fetchRoles(field.id); } }, [rolesLoaded]); useEffect(() => { if ( !field.value ) { setChangedField(field.id, field.default); updateField(field.id, field.default); setSelectedRoles( field.default.map((role, index) => ({ value: role, label: role.charAt(0).toUpperCase() + role.slice(1) }))); } setSelectedRoles( field.value.map((role, index) => ({ value: role, label: role.charAt(0).toUpperCase() + role.slice(1) }))); },[fieldsLoaded]); //if the field enforce_frequent_password_change is enabled, then the field is enabled useEffect(() => { setRolesEnabled(getFieldValue('enforce_frequent_password_change')); },[getFieldValue('enforce_frequent_password_change')]); /** * Handles the change event of the react-select component. * @param {array} selectedOptions - The selected options from the dropdown. */ const handleChange = (selectedOptions) => { // Extract the values of the selected options const rolesExcluded = selectedOptions.map(option => option.value); // Update the selectedRoles state setSelectedRoles(selectedOptions); // Update the field and changedField using the custom hook functions updateField(field.id, rolesExcluded); setChangedField(field.id, rolesExcluded); }; const customStyles = { multiValue: (provided) => ({ ...provided, borderRadius: '10px', backgroundColor: '#F5CD54', }), multiValueRemove: (base, state) => ({ ...base, color: state.isHovered ? 'initial' : base.color, opacity: '0.7', ':hover': { backgroundColor: 'initial', color: 'initial', opacity: '1', }, }) }; return ( <div style={{marginTop: '5px'}}> <Select isMulti options={roles} onChange={handleChange} value={selectedRoles} menuPosition={"fixed"} styles={customStyles} isDisabled={!rolesEnabled} /> {! enabled && <div className="rsssl-locked"> <div className="rsssl-locked-overlay"><span className="rsssl-task-status rsssl-open">{__('Disabled', 'really-simple-ssl')}</span><span>{__('Activate login protection to enable this block.', 'really-simple-ssl')}</span> </div> </div> } </div> ); }; export default RolesDropDown; PK�������!�u��u��3��settings/src/Settings/DynamicDataTable/SearchBar.jsnu�[��������import React, { useState } from 'react'; import { __ } from '@wordpress/i18n'; const SearchBar = ({ handleSearch, searchableColumns }) => { const [debounceTimer, setDebounceTimer] = useState(null); const onKeyUp = (event) => { clearTimeout(debounceTimer); setDebounceTimer(setTimeout(() => { handleSearch(event.target.value, searchableColumns) }, 500)); }; return ( <div className="rsssl-search-bar"> <div className="rsssl-search-bar__inner"> <div className="rsssl-search-bar__icon"></div> <input type="text" className="rsssl-search-bar__input" placeholder={__("Search", "really-simple-ssl")} onKeyUp={onKeyUp} /> </div> </div> ) } export default SearchBar;PK�������!�0! �� ��?��settings/src/Settings/DynamicDataTable/DynamicDataTableStore.jsnu�[��������/* Creates A Store For Risk Data using Zustand */ import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; import {produce} from "immer"; import React, {useState} from "react"; const DynamicDataTableStore = create((set, get) => ({ twoFAMethods: {}, setTwoFAMethods: (methods) => set((state) => ({ ...state, twoFAMethods: methods })), processing: false, dataLoaded: false, pagination: {}, dataActions: {}, DynamicDataTable: [], fetchDynamicData: async (action) => { try { const response = await rsssl_api.doAction( action, get().dataActions ); let data = Array.isArray(response.data) ? response.data : []; let pagination = response.pagination ? response.pagination : 1; //now we set the EventLog if ( response ) { set(state => ({ ...state, DynamicDataTable: data, dataLoaded: true, processing: false, pagination: pagination, // Removed the twoFAMethods set from here... })); // Return the response for the calling function to use return response; } } catch (e) { console.log(e); } }, handleTableSearch: async (search, searchColumns) => { set(produce((state) => { state.dataActions = {...state.dataActions, search, searchColumns}; })); }, handleTablePageChange: async (page, pageSize) => { //Add the page and pageSize to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, page, pageSize}; }) ); }, handleTableRowsChange: async (currentRowsPerPage, currentPage) => { //Add the page and pageSize to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, currentRowsPerPage, currentPage}; }) ); }, //this handles all pagination and sorting handleTableSort: async (column, sortDirection) => { //Add the column and sortDirection to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, sortColumn: column, sortDirection}; }) ); }, })); export default DynamicDataTableStore;PK�������!�<W����:��settings/src/Settings/DynamicDataTable/DynamicDataTable.jsnu�[��������import {__} from '@wordpress/i18n'; import React, {useRef, useEffect, useState} from 'react'; import DataTable, {createTheme} from "react-data-table-component"; import apiFetch from '@wordpress/api-fetch'; import useFields from "../FieldsData"; import DynamicDataTableStore from "./DynamicDataTableStore"; const DynamicDataTable = (props) => { const { twoFAMethods, setTwoFAMethods, DynamicDataTable, dataLoaded, pagination, dataActions, handleTableRowsChange, fetchDynamicData, // setDynamicData, handleTableSort, handleTablePageChange, handleTableSearch, } = DynamicDataTableStore(); let field = props.field; const [enabled, setEnabled] = useState(false); const {fields, getFieldValue, saveFields} = useFields(); const twoFAEnabledRef = useRef(); useEffect(() => { twoFAEnabledRef.current = getFieldValue('login_protection_enabled'); saveFields(true, false) }, [getFieldValue('login_protection_enabled')]); useEffect(() => { const value = getFieldValue('login_protection_enabled'); setEnabled(value); }, [fields]); useEffect(() => { if (!dataLoaded || enabled !== getFieldValue('login_protection_enabled')) { fetchDynamicData(field.action) .then(response => { // Check if response.data is defined and is an array before calling reduce if(response.data && Array.isArray(response.data)) { const methods = response.data.reduce((acc, user) => ({...acc, [user.id]: user.rsssl_two_fa_status}), {}); setTwoFAMethods(methods); } else { console.error('Unexpected response:', response); } }) .catch(err => { console.error(err); // Log any errors }); } }, [dataLoaded, field.action, fetchDynamicData, getFieldValue('login_protection_enabled')]); // Add getFieldValue('login_protection_enabled') as a dependency useEffect(() => { if (dataActions) { fetchDynamicData(field.action); } }, [dataActions]); function buildColumn(column) { let newColumn = { name: column.name, column: column.column, sortable: column.sortable, searchable: column.searchable, width: column.width, visible: column.visible, selector: row => row[column.column], }; return newColumn; } let columns = []; field.columns.forEach(function (item, i) { let newItem = { ...item, key: item.column }; newItem = buildColumn(newItem); newItem.visible = newItem.visible ?? true; columns.push(newItem); }); let searchableColumns = columns .filter(column => column.searchable) .map(column => column.column); const customStyles = { headCells: { style: { paddingLeft: '0', paddingRight: '0', }, }, cells: { style: { paddingLeft: '0', paddingRight: '0', }, }, }; createTheme('really-simple-plugins', { divider: { default: 'transparent', }, }, 'light'); return ( <> <div className="rsssl-search-bar"> <div className="rsssl-search-bar__inner"> <div className="rsssl-search-bar__icon"></div> <input type="text" className="rsssl-search-bar__input" placeholder={__("Search", "really-simple-ssl")} onChange={event => handleTableSearch(event.target.value, searchableColumns)} /> </div> </div> {dataLoaded ? <DataTable columns={columns} data={DynamicDataTable} dense pagination paginationServer onChangeRowsPerPage={handleTableRowsChange} onChangePage={handleTablePageChange} sortServer onSort={handleTableSort} paginationRowsPerPageOptions={[10, 25, 50, 100]} noDataComponent={__("No results", "really-simple-ssl")} persistTableHead theme="really-simple-plugins" customStyles={customStyles} ></DataTable> : <div className="rsssl-spinner" style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', marginTop: "100px" }}> <div className="rsssl-spinner__inner"> <div className="rsssl-spinner__icon" style={{ border: '8px solid white', borderTop: '8px solid #f4bf3e', borderRadius: '50%', width: '120px', height: '120px', animation: 'spin 2s linear infinite' }}></div> <div className="rsssl-spinner__text" style={{ position: 'absolute', top: '50%', left: '50%', transform: 'translate(-50%, -50%)', }}>{__("Loading data, please stand by...", "really-simple-ssl")}</div> </div> </div> } { !enabled && <div className="rsssl-locked"> <div className="rsssl-locked-overlay"><span className="rsssl-task-status rsssl-open">{__('Disabled', 'really-simple-ssl')}</span><span>{__('Activate login protection to enable this block.', 'really-simple-ssl')}</span> </div> </div> } </> ); } export default DynamicDataTable; PK�������!�Ş[U��U��3��settings/src/Settings/DynamicDataTable/AddButton.jsnu�[��������import React from 'react'; const AddButton = ({ getCurrentFilter, moduleName, handleOpen, processing, blockedText, allowedText }) => { let buttonText = getCurrentFilter(moduleName) === 'blocked' ? blockedText : allowedText; return ( <div className="rsssl-add-button"> {(getCurrentFilter(moduleName) === 'blocked' || getCurrentFilter(moduleName) === 'allowed') && ( <div className="rsssl-add-button__inner"> <button className="button button-secondary button-datatable rsssl-add-button__button" onClick={handleOpen} disabled={processing} > {buttonText} </button> </div> )} </div> ); }; export default AddButton;PK�������!�ě����&��settings/src/Settings/Host/HostData.jsnu�[��������import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; const useHostData = create(( set, get ) => ({ hosts: [], hostsLoaded:false, fetchHosts: async ( id ) => { try { const response = await rsssl_api.doAction('get_hosts', { id: id }); // Handle the response if ( !response ) { console.error('No response received from the server.'); return; } let hosts = response.hosts; // Set the roles state with formatted data set({hosts: hosts,hostsLoaded:true }); } catch (error) { console.error('Error:', error); } } })); export default useHostData; PK�������!�q?Qz��z��"��settings/src/Settings/Host/Host.jsnu�[��������import {useRef, useEffect, memo} from "@wordpress/element"; import useFields from "../FieldsData"; import AutoCompleteControl from "../AutoComplete/AutoCompleteControl"; import useHostData from "./HostData"; import {__} from "@wordpress/i18n"; const Host = ({field, showDisabledWhenSaving=true}) => { const {updateField, setChangedField, saveFields, handleNextButtonDisabled} = useFields(); const disabled = useRef(false); const {fetchHosts, hosts, hostsLoaded} = useHostData(); useEffect ( () => { if ( !hostsLoaded ) { fetchHosts(); } }, []); const onChangeHandler = async (fieldValue) => { //force update, and get new fields. handleNextButtonDisabled(true); if (showDisabledWhenSaving) { disabled.current = true; } updateField(field.id, fieldValue); setChangedField(field.id, fieldValue); await saveFields(true, false); handleNextButtonDisabled(false); disabled.current = false; } let loadedHosts = hostsLoaded ? hosts : []; let options = []; let item = { label: __('Optional - Select your hosting provider.', 'really-simple-ssl'), value: '', }; if ( field.value.length === 0 ) { options.push(item); } for (let key in loadedHosts) { if (loadedHosts.hasOwnProperty(key)) { let item = {}; item.label = loadedHosts[key].name; item.value = key; options.push(item); } } return ( <AutoCompleteControl className="rsssl-select" field={field} label={ field.label } onChange={ ( fieldValue ) => onChangeHandler(fieldValue) } value= { field.value } options={ options } disabled={disabled.current} /> ) } export default memo(Host);PK�������!�yCY��Y��2��settings/src/Settings/LearningMode/ChangeStatus.jsnu�[��������import { __ } from '@wordpress/i18n'; import useLearningMode from "./LearningModeData"; const ChangeStatus = (props) => { const {updateStatus} = useLearningMode(); let statusClass = props.item.status==1 ? 'button button-primary rsssl-status-allowed' : 'button button-default rsssl-status-revoked'; let label = props.item.status==1 ? __("Revoke", "really-simple-ssl") : __("Allow", "really-simple-ssl"); return ( <button onClick={ () => updateStatus( props.item.status, props.item, props.field.id ) } className={statusClass}>{label}</button> ) } export default ChangeStatusPK�������!�>^? @��@��2��settings/src/Settings/LearningMode/LearningMode.jsnu�[��������import { __ } from '@wordpress/i18n'; import {useState,useEffect} from '@wordpress/element'; import ChangeStatus from "./ChangeStatus"; import Delete from "./Delete"; import Icon from "../../utils/Icon"; import useFields from "./../FieldsData"; import useLearningMode from "./LearningModeData"; import {Button} from "@wordpress/components"; import React from "react"; const LearningMode = (props) => { const {updateField, getFieldValue, getField, setChangedField, highLightField, saveFields} = useFields(); const {fetchLearningModeData, learningModeData, dataLoaded, updateStatus, deleteData } = useLearningMode(); //used to show if a feature is already enforced by a third party const [enforcedByThirdparty, setEnforcedByThirdparty] = useState(0); //toggle from enforced to not enforced const [enforce, setEnforce] = useState(0); //toggle from learning mode to not learning mode const [learningMode, setLearningMode] = useState(0); //set learning mode to completed const [learningModeCompleted, setLearningModeCompleted] = useState(0); const [hasError, setHasError] = useState(false); //check if learningmode has been enabled at least once const [lmEnabledOnce, setLmEnabledOnce] = useState(0); //filter the data const [filterValue, setFilterValue] = useState(-1); //the value that is used to enable or disable this feature. On or of. const [controlField, setControlField] = useState(false); // the value that is used to select and deselect rows const [rowsSelected, setRowsSelected] = useState([]); const [rowCleared, setRowCleared] = useState(false); const [DataTable, setDataTable] = useState(null); const [theme, setTheme] = useState(null); useEffect( () => { import('react-data-table-component').then(({ default: DataTable, createTheme }) => { setDataTable(() => DataTable); setTheme(() => createTheme('really-simple-plugins', { divider: { default: 'transparent', }, }, 'light')); }); }, []); /** * Styling */ const conditionalRowStyles = [ { when: row => row.status ==0, classNames: ['rsssl-datatables-revoked'], }, ]; const customStyles = { headCells: { style: { paddingLeft: '0', // override the cell padding for head cells paddingRight: '0', }, }, cells: { style: { paddingLeft: '0', // override the cell padding for data cells paddingRight: '0', }, }, }; ; /** * Initialize */ useEffect(() => { const run = async () => { await fetchLearningModeData(props.field.id); let controlField = getField(props.field.control_field ); let enforced_by_thirdparty = controlField.value === 'enforced-by-thirdparty'; let enforce = enforced_by_thirdparty || controlField.value === 'enforce'; setControlField(controlField); setEnforcedByThirdparty(enforced_by_thirdparty); setLearningModeCompleted(controlField.value==='completed'); setHasError(controlField.value==='error'); setLmEnabledOnce(getFieldValue(props.field.control_field+'_lm_enabled_once')) setEnforce(enforce); setLearningMode(controlField.value === 'learning_mode'); } run(); }, [enforce, learningMode] ); const toggleEnforce = async (e, enforceValue) => { e.preventDefault(); //enforce this setting let controlFieldValue = enforceValue==1 ? 'enforce' : 'disabled'; setEnforce(enforceValue); setLearningModeCompleted(0); setLearningMode(0); setChangedField(controlField.id, controlFieldValue); updateField(controlField.id, controlFieldValue); await saveFields(true, false); //await fetchLearningModeData(); } const toggleLearningMode = async (e) => { e.preventDefault(); let lmEnabledOnceField = getField(props.field.control_field+'_lm_enabled_once'); if ( learningMode ) { setLmEnabledOnce(1); updateField(lmEnabledOnceField.id, 1); } let controlFieldValue; if ( learningMode || learningModeCompleted ) { setLearningMode(0); controlFieldValue = 'disabled'; } else { setLearningMode(1); controlFieldValue = 'learning_mode'; } setLearningModeCompleted(0); setChangedField(controlField.id, controlFieldValue); updateField(controlField.id, controlFieldValue); setChangedField(lmEnabledOnceField.id, lmEnabledOnceField.value); updateField(lmEnabledOnceField, lmEnabledOnceField.value); await saveFields(true, false); } const Filter = () => ( <> <select onChange={ ( e ) => setFilterValue(e.target.value) } value={filterValue}> <option value="-1" >{__("All", "really-simple-ssl")}</option> <option value="1" >{__("Allowed", "really-simple-ssl")}</option> <option value="0" >{__("Blocked", "really-simple-ssl")}</option> </select> </> ); let field = props.field; let configuringString = __(" The %s is now in report-only mode and will collect directives. This might take a while. Afterwards you can Exit, Edit and Enforce these Directives.", "really-simple-ssl").replace('%s', field.label); let disabledString = __("%s has been disabled.", "really-simple-ssl").replace('%s', field.label); let enforcedString = __("%s is enforced.", "really-simple-ssl").replace('%s', field.label); let enforceDisabled = !lmEnabledOnce; if (enforcedByThirdparty) disabledString = __("%s is already set outside Really Simple SSL.", "really-simple-ssl").replace('%s', field.label); let highLightClass = 'rsssl-field-wrap'; if ( highLightField===props.field.id ) { highLightClass = 'rsssl-field-wrap rsssl-highlight'; } //build our header let columns = []; field.columns.forEach(function(item, i) { let newItem = { name: item.name, sortable: item.sortable, width: item.width, selector: row => row[item.column], } columns.push(newItem); }); let data = learningModeData; data = data.filter(item => item.status<2); if (filterValue!=-1) { data = data.filter(item => item.status==filterValue); } for (const item of data){ if (item.login_status) item.login_statusControl = item.login_status == 1 ? __("success", "really-simple-ssl") : __("failed", "really-simple-ssl"); item.statusControl = <ChangeStatus item={item} field={props.field} />; item.deleteControl = <Delete item={item} field={props.field}/>; item.grouped = <div className="rsssl-action-buttons"> <ChangeStatus item={item} field={props.field} /> <Delete item={item} field={props.field}/> </div> } const handleMultiRowStatus = (status, selectedRows, type) => { selectedRows.forEach(row => { //the updateItemId allows us to update one specific item in a field set. updateStatus(status, row, type); }); setRowCleared(true); setRowsSelected([]); // Reset rowCleared back to false after the DataTable has re-rendered setTimeout(() => setRowCleared(false), 0); } const handleMultiRowDelete = ( selectedRows, type) => { selectedRows.forEach(row => { //the updateItemId allows us to update one specific item in a field set. deleteData( row, type ); }); setRowCleared(true); setRowsSelected([]); // Reset rowCleared back to false after the DataTable has re-rendered setTimeout(() => setRowCleared(false), 0); } function handleSelection(state) { setRowCleared(false); setRowsSelected(state.selectedRows); } if (!DataTable || !theme) return null; return ( <> <div> { !dataLoaded && <> <div className="rsssl-learningmode-placeholder"> <div></div><div></div><div></div><div></div> </div> </>} {rowsSelected.length > 0 && ( <div style={{ marginTop: '1em', marginBottom: '1em', }} > <div className={"rsssl-multiselect-datatable-form rsssl-primary"} > <div> {__("You have selected", "really-simple-ssl")} {rowsSelected.length} {__("rows", "really-simple-ssl")} </div> <div className="rsssl-action-buttons"> {(Number(filterValue) === -1 || Number(filterValue) === 0 ) && <div className="rsssl-action-buttons__inner"> <Button // className={"button button-red rsssl-action-buttons__button"} className={"button button-secondary rsssl-status-allowed rsssl-action-buttons__button"} onClick={ () => handleMultiRowStatus( 0, rowsSelected, props.field.id ) } > {__('Allow', 'really-simple-ssl')} </Button> </div> } {(Number(filterValue) === -1 || Number(filterValue) === 1 ) && <div className="rsssl-action-buttons__inner"> <Button // className={"button button-red rsssl-action-buttons__button"} className={"button button-primary rsssl-action-buttons__button"} onClick={ () => handleMultiRowStatus( 1, rowsSelected, props.field.id ) } > {__('Revoke', 'really-simple-ssl')} </Button> </div> } <div className="rsssl-action-buttons__inner"> <Button // className={"button button-red rsssl-action-buttons__button"} className={"button button-red rsssl-action-buttons__button"} onClick={ () => handleMultiRowDelete( rowsSelected, props.field.id ) } > {__('Remove', 'really-simple-ssl')} </Button> </div> </div> </div> </div> )} {dataLoaded && <> <DataTable columns={columns} data={data} dense pagination noDataComponent={__("No results", "really-simple-ssl")} persistTableHead theme={theme} customStyles={customStyles} conditionalRowStyles={conditionalRowStyles} selectableRows selectableRowsHighlight={true} onSelectedRowsChange={handleSelection} clearSelectedRows={rowCleared} /></> } <div className={"rsssl-learning-mode-footer "}> {hasError && <div className="rsssl-locked"> <div className="rsssl-locked-overlay"> <span className="rsssl-progress-status rsssl-learning-mode-error">{__("Error detected","really-simple-ssl")}</span> {__("%s cannot be implemented due to server limitations. Check your notices for the detected issue.", "really-simple-ssl").replace('%s', field.label)}  <a className="rsssl-learning-mode-link" href="#" onClick={ (e) => toggleEnforce(e, false ) }>{__("Disable", "really-simple-ssl") }</a> </div> </div> } {!hasError && <> { enforce!=1 && <button disabled={enforceDisabled} className="button button-primary" onClick={ (e) => toggleEnforce(e, true ) }>{__("Enforce","really-simple-ssl")}</button> } { !enforcedByThirdparty && enforce==1 && <button className="button" onClick={ (e) => toggleEnforce(e, false ) }>{__("Disable","really-simple-ssl")}</button> } <label> <input type="checkbox" disabled = {enforce} checked ={learningMode==1} value = {learningMode} onChange={ ( e ) => toggleLearningMode(e) } /> {__("Enable Learning Mode to configure automatically","really-simple-ssl")} </label> { enforce==1 && <div className="rsssl-locked"> <div className="rsssl-shield-overlay"> <Icon name = "shield" size="80px"/> </div> <div className="rsssl-locked-overlay"> <span className="rsssl-progress-status rsssl-learning-mode-enforced">{__("Enforced","really-simple-ssl")}</span> {enforcedString}  <a className="rsssl-learning-mode-link" href="#" onClick={ (e) => toggleEnforce(e) }>{__("Disable to configure", "really-simple-ssl") }</a> </div> </div>} {learningMode==1 && <div className="rsssl-locked"> <div className="rsssl-locked-overlay"> <span className="rsssl-progress-status rsssl-learning-mode">{__("Learning Mode","really-simple-ssl")}</span> {configuringString}  <a className="rsssl-learning-mode-link" href="#" onClick={ (e) => toggleLearningMode(e) }>{__("Exit", "really-simple-ssl") }</a> </div> </div>} { learningModeCompleted==1 && <div className="rsssl-locked"> <div className="rsssl-locked-overlay"> <span className="rsssl-progress-status rsssl-learning-mode-completed">{__("Learning Mode","really-simple-ssl")}</span> {__("We finished the configuration.", "really-simple-ssl")}  <a className="rsssl-learning-mode-link" href="#" onClick={ (e) => toggleLearningMode(e) }>{__("Review the settings and enforce the policy", "really-simple-ssl") }</a> </div> </div> } { rsssl_settings.pro_plugin_active && props.disabled && <div className="rsssl-locked "> <div className="rsssl-locked-overlay"> { !enforcedByThirdparty && <span className="rsssl-progress-status rsssl-disabled">{__("Disabled","really-simple-ssl")}</span> } { enforcedByThirdparty && <span className="rsssl-progress-status rsssl-learning-mode-enforced">{__("Enforced","really-simple-ssl")}</span> } { disabledString } </div> </div>} </> } <Filter /> </div> </div> </> ) } export default LearningMode PK�������!�f �� ��6��settings/src/Settings/LearningMode/LearningModeData.jsnu�[��������import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; const UseLearningMode = create(( set, get ) => ({ learningModeData: [], dataLoaded: false, fetchLearningModeData: async (type) => { let data = {}; data.type = type; data.lm_action = 'get'; let learningModeData = await rsssl_api.doAction('learning_mode_data', data).then((response) => { return response; }) if ( typeof learningModeData === 'object' && learningModeData.request_success === true ) { learningModeData = Object.values(learningModeData); } if ( !Array.isArray(learningModeData) ) { learningModeData = []; } set({ learningModeData: learningModeData, dataLoaded:true, }); }, updateStatus: async (enabled, updateItem, type) => { let learningModeData = get().learningModeData; let data = {}; data.type = type; data.updateItemId = updateItem.id; data.enabled = enabled==1 ? 0 : 1; data.lm_action = 'update'; //for fast UX feel, update the state before we post for (const item of learningModeData){ if (updateItem.id === item.id && item.status) { item.status = data.enabled; } } set({ learningModeData: learningModeData, }); learningModeData = await rsssl_api.doAction('learning_mode_data', data).then((response) => { return response; }) if ( typeof learningModeData === 'object' ) { learningModeData = Object.values(learningModeData); } if ( !Array.isArray(learningModeData) ) { learningModeData = []; } set({ learningModeData: learningModeData, dataLoaded:true, }); }, deleteData: async (deleteItem, type) => { let learningModeData = get().learningModeData; let data = {}; data.type = type; data.updateItemId = deleteItem.id; data.lm_action = 'delete'; //for fast UX feel, update the state before we post learningModeData.forEach(function(item, i) { if (item.id === deleteItem.id) { learningModeData.splice(i, 1); } }); set({ learningModeData: learningModeData, }); learningModeData = await rsssl_api.doAction('learning_mode_data', data).then((response) => { return response; }) if ( typeof learningModeData === 'object' ) { learningModeData = Object.values(learningModeData); } if ( !Array.isArray(learningModeData) ) { learningModeData = []; } set({ learningModeData: learningModeData, dataLoaded:true, }); }, })); export default UseLearningMode; PK�������!�u=$����,��settings/src/Settings/LearningMode/Delete.jsnu�[��������import useLearningMode from "./LearningModeData"; import {__} from "@wordpress/i18n"; const Delete = (props) => { const {deleteData} = useLearningMode(); return ( <button type="button" className="button button-red rsssl-learning-mode-delete" onClick={ () => deleteData( props.item, props.field.id ) }> {/*<svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" height="16" >*/} {/* <path fill="#000000" d="M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"/>*/} {/*</svg>*/} {__("Delete", "really-simple-ssl")} </button> ) } export default DeletePK�������!�Q������settings/src/Settings/Button.jsnu�[��������import Hyperlink from "../utils/Hyperlink"; import * as rsssl_api from "../utils/api"; import useFields from "./FieldsData"; import Icon from "../utils/Icon"; import {useState} from "@wordpress/element"; /** * Render a help notice in the sidebar */ const Button = (props) => { const {addHelpNotice} = useFields(); const [processing, setProcessing] = useState(false); const {fields} = useFields(); const onClickHandler = async (action) => { let data = {}; setProcessing(true); data.fields = fields; await rsssl_api.doAction(action, data).then((response) => { let label = response.success ? 'success' : 'warning'; let title = response.title; let text = response.message; setProcessing(false); addHelpNotice(props.field.id, label, text, title, false); }); } let is_disabled = !!props.field.disabled; return ( <> { props.field.url && <Hyperlink className={"button button-default"} disabled={is_disabled} text={props.field.button_text} url={props.field.url}/> } { props.field.action && <button onClick={ () => onClickHandler( props.field.action ) } className="button button-default" disabled={is_disabled}> {props.field.button_text} {processing && <Icon name = "loading" color = 'grey' />} </button> } </> ); } export default ButtonPK�������!�8)������6��settings/src/Settings/RiskConfiguration/datatable.scssnu�[��������.rsssl-vulnerabilities_overview { div[data-column-id="4"].rdt_TableCol { display:block; } .rdt_TableCell:last-child { flex: auto; padding-right: 20px; margin-right: 0; } }PK�������!�G����=��settings/src/Settings/RiskConfiguration/NotificationTester.jsnu�[��������import * as rsssl_api from "../../utils/api"; import useFields from "../FieldsData"; import {__} from "@wordpress/i18n"; import {useEffect, useState} from "react"; import useRiskData from "./RiskData"; const NotificationTester = (props) => { const { fetchVulnerabilities,riskLevels } = useRiskData(); const {field} = props; const [disabled, setDisabled] = useState(true); const [mailNotificationsEnabled, setMailNotificationsEnabled] = useState(true); const [vulnerabilitiesEnabled, setVulnerabilitiesEnabled] = useState(false); const [vulnerabilitiesSaved, setVulnerabilitiesSaved] = useState(false); const {addHelpNotice, fields, getFieldValue, updateField, setChangedField, fieldAlreadyEnabled, fetchFieldsData, updateFieldAttribute} = useFields(); useEffect ( () => { let mailEnabled = getFieldValue('send_notifications_email') == 1; let vulnerabilities = fieldAlreadyEnabled('enable_vulnerability_scanner'); setMailNotificationsEnabled(mailEnabled); let enableButton = mailEnabled && vulnerabilities; setDisabled(!enableButton); setMailNotificationsEnabled(mailEnabled); setVulnerabilitiesSaved(vulnerabilities); setVulnerabilitiesEnabled(getFieldValue('enable_vulnerability_scanner') == 1) },[fields]) const doTestNotification = async () => { //Test the notifications setDisabled(true); rsssl_api.doAction( 'vulnerabilities_test_notification' ).then( () => { setDisabled(false); fetchFieldsData('vulnerabilities'); fetchVulnerabilities(); addHelpNotice( field.id, 'success', __('All notifications are triggered successfully, please check your email to double-check if you can receive emails.','really-simple-ssl'), __('Test notifications','really-simple-ssl'), false ); }); } //ensure that risk levels are enabled cascading useEffect( () => { let dashboardRiskLevel = getFieldValue('vulnerability_notification_dashboard'); dashboardRiskLevel = riskLevels.hasOwnProperty(dashboardRiskLevel) ? riskLevels[dashboardRiskLevel] : 0; // let siteWideRiskLevel = getFieldValue('vulnerability_notification_sitewide'); //the sitewide risk level should be at least as high as the dashboard risk level. Disable lower risk levels in sitewide //create an array of ints from 1 to dashboardRiskLevel, we drop the * from the array let priorDashboardRiskLevel = dashboardRiskLevel>0 ? dashboardRiskLevel-1 :dashboardRiskLevel; let dashboardRiskLevels = Array.from(Array(priorDashboardRiskLevel).keys()).map(x => x ); //convert these integers back to risk levels //find the integer value in the riskLevels object, and return the key dashboardRiskLevels = dashboardRiskLevels.map( (level) => { return Object.keys(riskLevels).find(key => riskLevels[key] === level ); }); if (dashboardRiskLevels.length > 0) { updateFieldAttribute('vulnerability_notification_sitewide', 'disabled', dashboardRiskLevels); //if the current value is below the dashboardRisk Level, set it to the dashboardRiskLevel let siteWideRiskLevel = getFieldValue('vulnerability_notification_sitewide'); siteWideRiskLevel = riskLevels.hasOwnProperty(siteWideRiskLevel) ? riskLevels[siteWideRiskLevel] : 0; if (siteWideRiskLevel<dashboardRiskLevel) { let newRiskLevel = Object.keys(riskLevels).find(key => riskLevels[key] === dashboardRiskLevel ); updateField('vulnerability_notification_sitewide', newRiskLevel); setChangedField('vulnerability_notification_sitewide', newRiskLevel); } } else { updateFieldAttribute('vulnerability_notification_sitewide', 'disabled', false); } },[getFieldValue('vulnerability_notification_dashboard')]) let fieldCopy = {...field}; if (!mailNotificationsEnabled) { fieldCopy.tooltip = __('You have not enabled the email notifications in the general settings.','really-simple-ssl'); fieldCopy.warning = true; } else if (vulnerabilitiesEnabled && !vulnerabilitiesSaved) { fieldCopy.tooltip = __('The notification test only works if you save the setting first.','really-simple-ssl'); fieldCopy.warning = true; } return ( <> <label>{props.labelWrap(fieldCopy)}</label> <button onClick={ () => doTestNotification()} disabled={ disabled } className="button button-default">{field.button_text}</button> </> ) } export default NotificationTesterPK�������!�=K���K���2��settings/src/Settings/RiskConfiguration/modal.scssnu�[��������.rsssl-modal.rsssl-vulnerabilities-modal{ ul { column-count: 1; } }PK�������!� Q��Q��3��settings/src/Settings/RiskConfiguration/RiskData.jsnu�[��������/* Creates A Store For Risk Data using Zustand */ import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; import {__} from "@wordpress/i18n"; import {produce} from "immer"; import React from "react"; const UseRiskData = create((set, get) => ({ dummyRiskData: [ {id:'force_update',name:'Force Update',value:'l',description:__('Force update the plugin or theme','really-simple-ssl')}, {id:'quarantine',name:'Quarantine',value:'m',description:__('Isolates the plugin or theme if no update can be performed','really-simple-ssl')}, ], riskData:[], riskLevels: { l: 1, m: 2, h: 3, c: 4, }, vulnerabilities: [], processing:false, dataLoaded: false, // Stuff we need for the WPVulData component updates: 0, //for letting the component know if there are updates available HighestRisk: false, //for storing the highest risk lastChecked: '', //for storing the last time the data was checked vulEnabled: false, //for storing the status of the vulnerability scan riskNaming: {}, //for storing the risk naming vulList: [], //for storing the list of vulnerabilities setDataLoaded: (value) => set({dataLoaded: value}), //update Risk Data updateRiskData: async (field, value) => { if (get().processing) return; set({processing:true}); set( produce((state) => { let index = state.riskData.findIndex((item) => item.id === field); state.riskData[index].value = value; state.riskData = get().enforceCascadingRiskLevels(state.riskData); }) ); try { await rsssl_api.doAction('vulnerabilities_measures_set', { riskData: get().riskData, }); set({dataLoaded: true, processing:false}); } catch (e) { console.log(e); } set({processing:false}) }, enforceCascadingRiskLevels: (data) => { if (data.length===0) return data; //get risk levels for force_update let forceUpdateRiskLevel = data.filter((item) => item.id==='force_update')[0].value; let quarantineRiskLevel = data.filter((item) => item.id==='quarantine')[0].value; //get the integer value of the risk level forceUpdateRiskLevel = get().riskLevels.hasOwnProperty(forceUpdateRiskLevel) ? get().riskLevels[forceUpdateRiskLevel] : 5; quarantineRiskLevel = get().riskLevels.hasOwnProperty(quarantineRiskLevel) ? get().riskLevels[quarantineRiskLevel] : 5; let quarantineIndex = data.findIndex((item) => item.id==='quarantine'); //if the quarantine risk level is lower than the force update risk level, we set it to the force update risk level if (quarantineRiskLevel<forceUpdateRiskLevel) { data[quarantineIndex].value = Object.keys(get().riskLevels).find(key => get().riskLevels[key] === forceUpdateRiskLevel); } //if the force update risk level is none, set quarantine also to none. if ( forceUpdateRiskLevel===5 ) { data[quarantineIndex].value = '*'; } //disable all values below this value let disableUpTo = forceUpdateRiskLevel>0 ? forceUpdateRiskLevel : 0 //create an array of integers up to the forceUpdateRiskLevel let disabledRiskLevels = Array.from(Array(disableUpTo).keys()).map(x => x); disabledRiskLevels = disabledRiskLevels.map( (level) => { return Object.keys(get().riskLevels).find(key => get().riskLevels[key] === level ); }); data[quarantineIndex].disabledRiskLevels = disabledRiskLevels; return data; }, fetchFirstRun: async () => { if (get().processing) return; set({processing:true}); await rsssl_api.doAction('vulnerabilities_scan_files'); set({processing:false}); }, /* * Functions */ fetchVulnerabilities: async () => { if (get().processing) return; set({processing:true}); let data = {}; try { const fetched = await rsssl_api.doAction('hardening_data', data); let vulList = []; let vulnerabilities = 0; if (fetched.data.vulList) { vulnerabilities = fetched.data.vulnerabilities; vulList = fetched.data.vulList; if (typeof vulList === 'object') { //we make it an array vulList = Object.values(vulList); } vulList.forEach(function (item, i) { let updateUrl = item.update_available ? rsssl_settings.plugins_url + "?plugin_status=upgrade" : '#settings/vulnerabilities'; item.vulnerability_action = <div className="rsssl-action-buttons"> <a className="rsssl-button button-secondary" href={"https://really-simple-ssl.com/vulnerabilities/" + item.rss_identifier} target={"_blank"} rel="noopener noreferrer">{__("Details", "really-simple-ssl")}</a> <a disabled={!item.update_available} href={updateUrl} className="rsssl-button button-primary" >{__("Update", "really-simple-ssl")}</a> </div> }); } let riskData = fetched.data.riskData; if (!Array.isArray(riskData)) {riskData = []} riskData = get().enforceCascadingRiskLevels(riskData); set( produce((state) => { state.vulnerabilities = vulnerabilities; state.vulList = vulList; state.updates = fetched.data.updates; state.dataLoaded = true; state.riskNaming = fetched.data.riskNaming; state.lastChecked = fetched.data.lastChecked; state.vulEnabled = fetched.data.vulEnabled; state.riskData = riskData; state.processing = false; }) ) } catch (e) { console.error(e); } }, vulnerabilityCount: () => { let vuls = get().vulList; //we group the data by risk level //first we make vuls an array let vulsArray = []; Object.keys(vuls).forEach(function (key) { vulsArray.push(vuls[key]); }); let riskLevels = ['c', 'h', 'm', 'l']; //we count the amount of vulnerabilities per risk level return riskLevels.map(function (level) { return { level: level, count: vulsArray.filter(function (vul) { return vul.risk_level === level; }).length }; }); }, vulnerabilityScore: () => { let score = 0; let vulnerabilitiesList = get().vulList; Object.keys(vulnerabilitiesList).forEach(function (key) { //if there are vulnerabilities with critical severity, score is 5 if (vulnerabilitiesList[key].risk_level === 'c') { score = 5; } else if (score < 1) { score = 1; } }); return score; }, hardeningScore: () => { let score = 0; let vulnerabilitiesList = get().vulnerabilities; for (let i = 0; i < vulnerabilitiesList.length; i++) { score += vulnerabilitiesList[i].hardening_score; } return score; }, activateVulnerabilityScanner: async () => { try { const fetched = await rsssl_api.doAction('rsssl_scan_files'); if (fetched.request_success) { //we get the data again await get().fetchVulnerabilities(); } } catch (e) { console.error(e); } } })); export default UseRiskData; PK�������!�nk����B��settings/src/Settings/RiskConfiguration/VulnerabilitiesOverview.jsnu�[��������import {__} from '@wordpress/i18n'; import useRiskData from "./RiskData"; import React, {useEffect, useState} from 'react'; import DataTable, {createTheme} from "react-data-table-component"; import useFields from "../FieldsData"; import useProgress from "../../Dashboard/Progress/ProgressData"; import useRunnerData from "./RunnerData"; import './datatable.scss'; const VulnerabilitiesOverview = (props) => { const {getProgressData} = useProgress(); const [enabled, setEnabled] = useState(false); const { dataLoaded, vulList, fetchVulnerabilities, setDataLoaded, fetchFirstRun } = useRiskData(); const {getFieldValue, handleNextButtonDisabled, fieldAlreadyEnabled, fieldsLoaded} = useFields(); const [searchTerm, setSearchTerm] = useState(""); //we create the columns let columns = []; //getting the fields from the props let field = props.field; const customStyles = { headCells: { style: { paddingLeft: '0', // override the cell padding for head cells paddingRight: '0', }, }, cells: { style: { paddingLeft: '0', // override the cell padding for data cells paddingRight: '0', }, }, }; createTheme('really-simple-plugins', { divider: { default: 'transparent', }, }, 'light'); function buildColumn(column) { return { name: column.name, sortable: column.sortable, visible: column.visible, selector: row => row[column.column], searchable: column.searchable, grow:column.grow, width: column.width, }; } useEffect(() => { if (!fieldsLoaded) return; setEnabled(getFieldValue('enable_vulnerability_scanner')==1); },[fieldsLoaded]); let dummyData = [['', '', '', '', ''], ['', '', '', '', ''], ['', '', '', '', '']]; field.columns.forEach(function (item, i) { let newItem = buildColumn(item) columns.push(newItem); }); //get data if field was already enabled, so not changed right now. useEffect(() => { let vulnerabilityDetectionEnabledAndSaved = fieldAlreadyEnabled('enable_vulnerability_scanner'); let vulnerabilityDetectionEnabled = getFieldValue('enable_vulnerability_scanner')==1; //if the field is just toggled on, disable the next button //this prevents the user from continuing without having completed the modal. if (vulnerabilityDetectionEnabled && !vulnerabilityDetectionEnabledAndSaved) { handleNextButtonDisabled(true); } else { handleNextButtonDisabled(false); } // let introShown = getFieldValue('vulnerabilities_intro_shown') == 1; if ( !vulnerabilityDetectionEnabledAndSaved ) { return; } setDataLoaded(false); }, [ getFieldValue('enable_vulnerability_scanner') ]); useEffect(() => { if ( dataLoaded ) { return; } let vulnerabilityDetectionEnabledAndSaved = fieldAlreadyEnabled('enable_vulnerability_scanner'); if ( vulnerabilityDetectionEnabledAndSaved ) { //if just enabled, but intro already shown, just get the first run data. initialize(); } }, [ dataLoaded ]); const initialize = async () => { await fetchFirstRun(); await fetchVulnerabilities(); await getProgressData(); } if ( ! enabled ) { return ( //If there is no data or vulnerabilities scanner is disabled we show some dummy data behind a mask <> <DataTable columns={columns} data={dummyData} dense pagination noDataComponent={__("No results", "really-simple-ssl")} persistTableHead theme="really-simple-plugins" customStyles={customStyles} > </DataTable> <div className="rsssl-locked"> <div className="rsssl-locked-overlay"><span className="rsssl-task-status rsssl-open">{__('Disabled', 'really-simple-ssl')}</span><span>{__('Activate vulnerability detection to enable this block.', 'really-simple-ssl')}</span> </div> </div> </> ) } let data = vulList.map(item => ({ ...item, risk_name: <span className={"rsssl-badge-large rsp-risk-level-" + item.risk_level}>{item.risk_name.replace('-risk', '')}</span> })); if (searchTerm.length > 0) { data = data.filter(function (item) { //we check if the search value is in the name or the risk name if (item.Name.toLowerCase().includes(searchTerm.toLowerCase())) { return item; } }); } return ( <> {/* We add a searchbox */} <div className="rsssl-container"> <div> </div> {/*Display the search bar*/} <div className="rsssl-search-bar"> <div className="rsssl-search-bar__inner"> <div className="rsssl-search-bar__icon"></div> <input type="text" className="rsssl-search-bar__input" placeholder={__("Search", "really-simple-ssl")} onKeyUp={event => { //we get the value from the search bar setSearchTerm(event.target.value); }} /> </div> </div> </div> <DataTable columns={columns} data={data} dense pagination persistTableHead noDataComponent={__("No vulnerabilities found", "really-simple-ssl")} theme="really-simple-plugins" customStyles={customStyles} > </DataTable> </> ) } export default VulnerabilitiesOverview; PK�������!�1Ra����5��settings/src/Settings/RiskConfiguration/RunnerData.jsnu�[��������import {create} from "zustand"; import {produce} from "immer"; import {__} from "@wordpress/i18n"; const useRunnerData = create((set, get) => ({ showIntro:false, setShowIntro: (value) => set({showIntro: value}), disabled:true, introCompleted: false, //for storing the status of the first run setIntroCompleted: (value) => { set({introCompleted: value}); }, setDisabled(disabled) { set(state => ({disabled})) }, list:[ { 'id':'initialize', 'icon':'loading', 'color':'black', 'text': __("Preparing vulnerability detection", "really-simple-ssl"), }, { 'id':'fetchVulnerabilities', 'icon':'loading', 'color':'black', 'text': __("Collecting plugin, theme and core data", "really-simple-ssl"), }, { 'id':'scan', 'icon':'loading', 'color':'black', 'text': __("Scanning your WordPress configuration", "really-simple-ssl"), }, { 'id':'enabled', 'icon':'loading', 'color':'black', 'text': __("Reporting enabled", "really-simple-ssl"), }, ], setItemCompleted: async (id) => { const stepIndex = get().list.findIndex(item => { return item.id===id; }); set( produce((state) => { const item = state.list[stepIndex]; item.icon = 'circle-check'; item.color = 'green'; state.list[stepIndex] = item; }) ) }, })); export default useRunnerData;PK�������!�Ų�=��=��8��settings/src/Settings/RiskConfiguration/RiskComponent.jsnu�[��������import React, {useEffect,useState} from 'react'; import UseRiskData from "./RiskData"; import useFields from "../FieldsData"; const RiskComponent = (props) => { //first we put the data in a state const {riskData, dummyRiskData, processing, dataLoaded, fetchVulnerabilities, updateRiskData} = UseRiskData(); const { fields, fieldAlreadyEnabled, getFieldValue, setChangedField, updateField, saveFields} = useFields(); const [measuresEnabled, setMeasuresEnabled] = useState(false); const [vulnerabilityDetectionEnabled, setVulnerabilityDetectionEnabled] = useState(false); const [DataTable, setDataTable] = useState(null); const [theme, setTheme] = useState(null); useEffect( () => { import('react-data-table-component').then(({ default: DataTable, createTheme }) => { setDataTable(() => DataTable); setTheme(() => createTheme('really-simple-plugins', { divider: { default: 'transparent', }, }, 'light')); }); }, []); useEffect(() => { if ( fieldAlreadyEnabled('enable_vulnerability_scanner')) { if (!dataLoaded) { fetchVulnerabilities(); } } let vulnerabilitiesEnabled = fieldAlreadyEnabled('enable_vulnerability_scanner' ); setVulnerabilityDetectionEnabled(vulnerabilitiesEnabled); let measuresOn = getFieldValue('measures_enabled')==1; setMeasuresEnabled(measuresOn); }, [fields]); /** * Initialize */ useEffect(() => { let enabled = getFieldValue('measures_enabled')==1; setMeasuresEnabled(enabled); }, [] ); //we create the columns let columns = []; //getting the fields from the props let field = props.field; //we loop through the fields field.columns.forEach(function (item, i) { let newItem = buildColumn(item) columns.push(newItem); }); //now we get the options for the select control let options = props.field.options; //we divide the key into label and the value into value options = Object.entries(options).map((item) => { return {label: item[1], value: item[0]}; }); //and we add the select control to the data let data = Array.isArray(riskData) ? [...riskData] : []; data = data.length===0 ? [...dummyRiskData] : data; let disabled = !vulnerabilityDetectionEnabled || !measuresEnabled; for (const key in data) { let dataItem = {...data[key]} dataItem.riskSelection = <select disabled={processing || disabled} value={dataItem.value} onChange={(e) => onChangeHandler(e.target.value, dataItem)}> {options.map((option,i) => <option key={'risk-'+i} value={option.value} disabled={ dataItem.disabledRiskLevels && dataItem.disabledRiskLevels.includes(option.value)} >{option.label}</option>) } </select> data[key] = dataItem; } let processingClass = disabled ? 'rsssl-processing' : ''; return ( <div className={processingClass}> {DataTable && <DataTable columns={columns} data={Object.values(data)} theme={theme} /> } </div> ) function buildColumn(column) { return { name: column.name, sortable: column.sortable, width: column.width, selector: row => row[column.column], grow: column.grow, }; } function onChangeHandler(fieldValue, item) { updateRiskData(item.id, fieldValue); } } export default RiskComponent; PK�������!�, �� ��(��settings/src/Settings/CheckboxControl.jsnu�[��������/* * The tooltip can't be included in the native toggleControl, so we have to build our own. */ import { useState, useEffect } from "@wordpress/element"; import { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components'; const CheckboxControl = (props) => { const [ isOpen, setIsOpen ] = useState( false ); const onChangeHandler = (e) => { //wordpress <6.0 does not have the confirmdialog component if ( !ConfirmDialog ) { executeAction(); return; } if (props.field.warning && props.field.warning.length>0 && !props.field.value) { setIsOpen( true ); } else { executeAction(); } } const handleConfirm = async () => { setIsOpen( false ); executeAction(); }; const handleCancel = () => { setIsOpen( false ); }; const executeAction = (e) => { let fieldValue = !props.field.value; props.onChangeHandler(fieldValue) } const handleKeyDown = (e) => { if (e.key === 'Enter') { e.preventDefault(); onChangeHandler(true); } } let field = props.field; let is_checked = field.value ? 'is-checked' : ''; let is_disabled = props.disabled ? 'is-disabled' : ''; return ( <> {ConfirmDialog && <ConfirmDialog isOpen={ isOpen } onConfirm={ handleConfirm } onCancel={ handleCancel } > {field.warning} </ConfirmDialog> } <div className="components-base-control components-toggle-control"> <div className="components-base-control__field"> <div data-wp-component="HStack" className="components-flex components-h-stack"> <span className={ "components-form-toggle "+is_checked + ' ' +is_disabled}> <input onKeyDown={(e) => handleKeyDown(e)} checked={field.value} className="components-form-toggle__input" onChange={ ( e ) => onChangeHandler(e) } id={field.id} type="checkbox" disabled={props.disabled} /> <span className="components-form-toggle__track"></span> <span className="components-form-toggle__thumb"></span> </span> <label htmlFor={field.id} className="components-toggle-control__label">{props.label}</label> </div> </div> </div> </> ); } export default CheckboxControlPK�������!�L^5����1��settings/src/Settings/TwoFA/TwoFaRolesDropDown.jsnu�[��������import React, { useState, useEffect } from 'react'; import Select from 'react-select'; import useFields from "../FieldsData"; import useRolesData from './RolesStore'; import {__} from "@wordpress/i18n"; import './select.scss'; /** * TwoFaRolesDropDown component represents a dropdown select for excluding roles * from two-factor authentication email. * @param {object} field - The field object containing information about the field. */ const TwoFaRolesDropDown = ({ field }) => { const {fetchRoles, roles, rolesLoaded} = useRolesData(); const [selectedRoles, setSelectedRoles] = useState([]); const [otherRoles, setOtherRoles] = useState([]); // Custom hook to manage form fields const { updateField, getFieldValue, setChangedField, getField, fieldsLoaded } = useFields(); let enabled = true; useEffect(() => { if (!rolesLoaded) { fetchRoles(field.id); } }, [rolesLoaded]); useEffect(() => { if ( field.id==='two_fa_forced_roles' ) { let otherField = getField('two_fa_optional_roles'); let roles = Array.isArray(otherField.value) ? otherField.value : []; setOtherRoles(roles); } else { let otherField = getField('two_fa_forced_roles'); let roles = Array.isArray(otherField.value) ? otherField.value : []; setOtherRoles(roles); } }, [selectedRoles, getField('two_fa_optional_roles'), getField('two_fa_forced_roles')]); useEffect(() => { if ( !field.value ) { setChangedField(field.id, field.default); updateField(field.id, field.default); setSelectedRoles(field.default.map((role, index) => ({ value: role, label: role.charAt(0).toUpperCase() + role.slice(1) }))); } else { setSelectedRoles(field.value.map((role, index) => ({ value: role, label: role.charAt(0).toUpperCase() + role.slice(1) }))); } },[fieldsLoaded]); /** * Handles the change event of the react-select component. * @param {array} selectedOptions - The selected options from the dropdown. */ const handleChange = (selectedOptions) => { // Extract the values of the selected options const rolesExcluded = selectedOptions.map(option => option.value); // Update the selectedRoles state setSelectedRoles(selectedOptions); // Update the field and changedField using the custom hook functions updateField(field.id, rolesExcluded); setChangedField(field.id, rolesExcluded); }; const customStyles = { multiValue: (provided) => ({ ...provided, borderRadius: '10px', backgroundColor: field.id === 'two_fa_forced_roles' ? '#F5CD54' : field.id === 'two_fa_optional_roles' ? '#FDF5DC' : 'default', }), multiValueRemove: (base, state) => ({ ...base, color: state.isHovered ? 'initial' : base.color, opacity: '0.7', ':hover': { backgroundColor: 'initial', color: 'initial', opacity: '1', }, }) }; if (field.id === 'two_fa_optional_roles') { enabled = getFieldValue('login_protection_enabled'); } const alreadySelected = selectedRoles.map(option => option.value); let filteredRoles = []; //from roles, remove roles in the usedRoles array //merge alreadyselected and otherroles in one array let inRolesInUse = [...alreadySelected, ...otherRoles]; roles.forEach(function (item, i) { if ( Array.isArray(inRolesInUse) && inRolesInUse.includes(item.value) ) { filteredRoles.splice(i, 1); } else { filteredRoles.push(item); } }); return ( <div style={{marginTop: '5px'}}> <Select isMulti options={filteredRoles} onChange={handleChange} value={selectedRoles} menuPosition={"fixed"} styles={customStyles} /> {! enabled && <div className="rsssl-locked"> <div className="rsssl-locked-overlay"><span className="rsssl-task-status rsssl-open">{__('Disabled', 'really-simple-ssl')}</span><span>{__('Activate login protection to enable this block.', 'really-simple-ssl')}</span> </div> </div> } </div> ); }; export default TwoFaRolesDropDown; PK�������!�e6A��A��)��settings/src/Settings/TwoFA/RolesStore.jsnu�[��������import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; import {produce} from "immer"; const useRolesData = create(( set, get ) => ({ roles: [], rolesLoaded:false, fetchRoles: async ( id ) => { try { // Fetch the roles from the server using rsssl_api.getUserRoles() const response = await rsssl_api.doAction('get_roles', { id: id }); // Handle the response if ( !response ) { console.error('No response received from the server.'); return; } const data = response.roles; if (typeof data !== 'object') { console.error('Invalid data received in the server response. Expected an object.'); return; } // Convert the object to an array const dataArray = Object.values(data); // Format the data into options array for react-select const formattedData = dataArray.map((role, index) => ({ value: role, label: role.charAt(0).toUpperCase() + role.slice(1) })); // Set the roles state with formatted data set({roles: formattedData,rolesLoaded:true }); } catch (error) { console.error('Error:', error); } } })); export default useRolesData; PK�������!�9ô*���*���'��settings/src/Settings/TwoFA/select.scssnu�[��������div[class$="MenuPortal"] { z-index:20; }PK�������!�a׳����2��settings/src/Settings/TwoFA/TwoFaDataTableStore.jsnu�[��������/* Creates A Store For Risk Data using Zustand */ import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; import {produce} from "immer"; import apiFetch from "@wordpress/api-fetch"; const DynamicDataTableStore = create((set, get) => ({ processing: false, dataLoaded: false, pagination: {}, dataActions: {currentPage:1, currentRowsPerPage:5, filterValue: 'active',filterColumn: 'rsssl_two_fa_status'}, totalRecords:0, DynamicDataTable: [], setDataLoaded: (dataLoaded) => set((state) => ({ ...state, dataLoaded: dataLoaded })), resetUserMethod: async (id, optionalRoles, currentRole) => { if (get().processing) { return; } if ( optionalRoles.includes(currentRole) ) { set({processing: true}); const response = await apiFetch({ path: `/wp/v2/users/${id}`, method: 'POST', data: { meta: { rsssl_two_fa_status: 'open', }, }, }).catch((error) => { console.error(error); }); set({processing: false}); } }, fetchDynamicData: async () => { if (get().processing) return; set({processing: true}); try { const response = await rsssl_api.doAction( 'two_fa_table', get().dataActions ); if (response) { set(state => ({ ...state, DynamicDataTable: response.data, dataLoaded: true, processing: false, pagination: response.pagination, totalRecords: response.totalRecords, })); // Return the response for the calling function to use return response; } } catch (e) { console.log(e); } }, handleTableSearch: async (search, searchColumns) => { const typingTimer = setTimeout(async () => { set(produce((state) => { state.dataActions = {...state.dataActions, search, searchColumns}; })); await get().fetchDynamicData(); }, 500); return () => { clearTimeout(typingTimer); }; }, handlePageChange: async (page, pageSize) => { //Add the page and pageSize to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, currentPage: page}; }) ); await get().fetchDynamicData(); }, handleRowsPerPageChange: async (currentRowsPerPage, currentPage) => { //Add the page and pageSize to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, currentRowsPerPage, currentPage}; }) ); await get().fetchDynamicData(); }, //this handles all pagination and sorting handleTableSort: async (sortColumn, sortDirection) => { //Add the column and sortDirection to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, sortColumn: sortColumn.column, sortDirection}; }) ); await get().fetchDynamicData(); }, handleUsersTableFilter: async (column, filterValue) => { //Add the column and sortDirection to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, filterColumn: column, filterValue}; }) ); // We fetch the data again await get().fetchDynamicData(); }, })); export default DynamicDataTableStore;PK�������!�B�(��(��-��settings/src/Settings/TwoFA/TwoFaDataTable.jsnu�[��������import {__} from '@wordpress/i18n'; import React, {useRef, useEffect, useState} from 'react'; import DataTable, {createTheme} from "react-data-table-component"; import useFields from "../FieldsData"; import TwoFaDataTableStore from "./TwoFaDataTableStore"; import FilterData from "../FilterData"; const DynamicDataTable = (props) => { const { resetUserMethod, handleUsersTableFilter, handleRowsPerPageChange, totalRecords, DynamicDataTable, setDataLoaded, dataLoaded, pagination, dataActions, fetchDynamicData, handleTableSort, handlePageChange, handleTableSearch, processing } = TwoFaDataTableStore(); const { setSelectedFilter, getCurrentFilter } = FilterData(); const moduleName = 'rsssl-group-filter-two_fa_users'; let field = props.field; const [enabled, setEnabled] = useState(false); const [reloadWhenSaved, setReloadWhenSaved] = useState(false); const {fields, getFieldValue, saveFields, changedFields} = useFields(); const [rowsSelected, setRowsSelected] = useState([]); const [rowCleared, setRowCleared] = useState(false); const twoFAEnabledRef = useRef(); useEffect(() => { twoFAEnabledRef.current = getFieldValue('two_fa_enabled'); saveFields(true, false) }, [getFieldValue('two_fa_enabled')]); //we want to reload the table, but only after the save action has completed. So we store this for now. useEffect(() => { setReloadWhenSaved(true); }, [getFieldValue('two_fa_forced_roles'), getFieldValue('two_fa_optional_roles')]); //when the data is saved, changefields=0 again, useEffect(() => { if (!reloadWhenSaved) { return; } if (changedFields.length===0) { setDataLoaded(false); setReloadWhenSaved(false); fetchDynamicData(); } }, [changedFields]); useEffect(() => { if (!dataLoaded) { return; } const currentFilter = getCurrentFilter(moduleName); if ( !currentFilter ) { setSelectedFilter('active', moduleName); } setRowCleared(true); handleUsersTableFilter('rsssl_two_fa_status', currentFilter); }, [getCurrentFilter(moduleName)]); useEffect(() => { const value = getFieldValue('two_fa_enabled'); setEnabled(value); }, [fields]); useEffect(() => { if (!dataLoaded || enabled !== getFieldValue('two_fa_enabled')) { fetchDynamicData() } }, [dataLoaded, getFieldValue('two_fa_enabled')]); // Add getFieldValue('login_protection_enabled') as a dependency const allAreForced = (users) => { let forcedRoles = getFieldValue('two_fa_forced_roles'); if (!Array.isArray(forcedRoles)) { forcedRoles = []; } if (Array.isArray(users)) { //for each users, check if the user has a forced role for (const user of users) { if ( !forcedRoles.includes(user.user_role.toLowerCase()) ) { return false; } } return true; } else { return forcedRoles.includes(users.user_role.toLowerCase()); } } /** * Check if the one, or all users have an open status * @param users * @returns {boolean} */ const allAreOpen = (users) => { if (Array.isArray(users)) { //for each users, check if the user has a forced role for (const user of users) { if ( user.rsssl_two_fa_status !== 'open' ) { return false; } } return true; } else { return users.rsssl_two_fa_status === 'open'; } } function buildColumn(column) { let newColumn = { name: column.name, column: column.column, sortable: column.sortable, searchable: column.searchable, width: column.width, visible: column.visible, selector: row => row[column.column], }; return newColumn; } let columns = []; field.columns.forEach(function (item, i) { let newItem = {...item, key: item.column}; newItem = buildColumn(newItem); newItem.visible = newItem.visible ?? true; columns.push(newItem); }); let searchableColumns = columns .filter(column => column.searchable) .map(column => column.column); const customStyles = { headCells: { style: { paddingLeft: '0', paddingRight: '0', }, }, cells: { style: { paddingLeft: '0', paddingRight: '0', }, }, padding: '0' }; createTheme('really-simple-plugins', { divider: { default: 'transparent', }, }, 'light'); async function handleReset(users) { // Function to handle reset logic const resetRoles = getFieldValue('two_fa_optional_roles'); if (Array.isArray(users)) { //loop through all users one by one, and reset the user for (const user of users) { await resetUserMethod(user.id, resetRoles, user.user_role.toLowerCase()); } } else { await resetUserMethod(users.id, resetRoles, users.user_role.toLowerCase()); } await fetchDynamicData(); setRowsSelected([]); setRowCleared(true); } const rowStyles = { cursor: 'pointer', // Change cursor on hover backgroundColor: '#f0f0f0', // Change background color color: 'blue', // Change text color }; function handleSelection(state) { setRowsSelected(state.selectedRows); } let resetDisabled = allAreForced(rowsSelected) || allAreOpen(rowsSelected); let displayData = []; let inputData= DynamicDataTable ? DynamicDataTable : []; inputData.forEach(user => { let recordCopy = {...user} //forced roles can't be reset if it's just the email method. An open status also can't be reset. let btnDisabled = allAreForced(user) || allAreOpen(user); recordCopy.resetControl = <button disabled={processing || btnDisabled} className="button button-red rsssl-action-buttons__button" onClick={() => handleReset(user)} > {__("Reset", "really-simple-ssl")} </button> displayData.push(recordCopy); }); return ( <> <div className="rsssl-container" style={ { marginTop: "20px", } }> <div> {/* Reserved for actions left */} </div> <div className="rsssl-search-bar"> <div className="rsssl-search-bar__inner"> <div className="rsssl-search-bar__icon"></div> <input type="text" className="rsssl-search-bar__input" placeholder={__("Search", "really-simple-ssl")} onChange={event => handleTableSearch(event.target.value, searchableColumns)} /> </div> </div> </div> {rowsSelected.length > 0 && ( <div style={{ marginTop: '1em', marginBottom: '1em', }} > <div className={"rsssl-multiselect-datatable-form rsssl-primary"}> <div> {__("You have selected %s users", "really-simple-ssl").replace("%s", rowsSelected.length)} </div> <div className="rsssl-action-buttons"> <div className="rsssl-action-buttons__inner"> <button disabled={resetDisabled || processing} className="button button-red rsssl-action-buttons__button" onClick={() => handleReset(rowsSelected)} > {__("Reset", "really-simple-ssl")} </button> </div> </div> </div> </div> )} {dataLoaded && <DataTable columns={columns} data={displayData} dense pagination paginationServer onChangePage={handlePageChange} onChangeRowsPerPage={handleRowsPerPageChange} paginationTotalRows={totalRecords} paginationRowsPerPageOptions={[5, 25, 50, 100]} paginationPerPage={dataActions.currentRowsPerPage} paginationState={pagination} sortServer onSort={handleTableSort} noDataComponent={__("No results", "really-simple-ssl")} persistTableHead selectableRows selectableRowsHighlight={true} onSelectedRowsChange={handleSelection} clearSelectedRows={rowCleared} theme="really-simple-plugins" customStyles={customStyles} ></DataTable> } {!enabled && <div className="rsssl-locked"> <div className="rsssl-locked-overlay"><span className="rsssl-task-status rsssl-open">{__('Disabled', 'really-simple-ssl')}</span><span>{__('Activate Two Step Verification to enable this block.', 'really-simple-ssl')}</span> </div> </div> } </> ); } export default DynamicDataTable; PK�������!�l����&��settings/src/Settings/SelectControl.jsnu�[��������/* * The native selectControl doesn't allow disabling per option. */ import DOMPurify from "dompurify"; const SelectControl = (props) => { let field = props.field; let selectDisabled = !Array.isArray(props.disabled) && props.disabled; let optionsDisabled = Array.isArray(props.disabled) ? props.disabled : false; return ( <> <div className="components-base-control"> <div className="components-base-control__field"> <div data-wp-component="HStack" className="components-flex components-select-control"> <label htmlFor={field.id} className="components-toggle-control__label">{props.label}</label> <select disabled={selectDisabled} value={props.value} onChange={(e) => props.onChangeHandler(e.target.value)}> {props.options.map((option,i) => <option key={'option-'+i} value={option.value} disabled={optionsDisabled && optionsDisabled.includes(option.value)}>{option.label}</option>) } </select> </div> </div> </div> {field.comment && ( <div className="rsssl-comment" dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(field.comment) }} ></div> /* nosemgrep: react-dangerouslysetinnerhtml */ )} </> ); } export default SelectControlPK�������!�H��H��2��settings/src/Settings/GeoBlockList/GeoDatatable.jsnu�[��������import React, {useEffect, useState, useCallback, useReducer} from 'react'; import DataTable, {createTheme} from "react-data-table-component"; import FieldsData from "../FieldsData"; import GeoDataTableStore from "./GeoDataTableStore"; import EventLogDataTableStore from "../EventLog/EventLogDataTableStore"; import FilterData from "../FilterData"; import Flag from "../../utils/Flag/Flag"; import {__} from '@wordpress/i18n'; import useFields from "../FieldsData"; /** * A component for displaying a geo datatable. * * @param {Object} props - The component props. * @param {string} props.field - The field to display. * * @returns {JSX.Element} The rendered component. */ const GeoDatatable = (props) => { const { CountryDataTable, dataLoaded, fetchCountryData, processing, addRow, addMultiRow, removeRegion, removeRegionMulti, addRegion, addRegionsMulti, removeRow, removeRowMulti, rowCleared, resetRowSelection, } = GeoDataTableStore(); const moduleName = 'rsssl-group-filter-geo_block_list_listing'; const [localData, setLocalData] = useState([]); const [searchTerm, setSearchTerm] = useState(''); const [visualData, setVisualData] = useState([]); const {showSavedSettingsNotice, saveFields} = FieldsData(); const [rowsSelected, setRowsSelected] = useState([]); const [columns, setColumns] = useState([]); const {fields, fieldAlreadyEnabled, getFieldValue} = useFields(); const [currentPage, setCurrentPage] = useState(1); const [rowsPerPage, setRowsPerPage] = useState(10); let enabled = getFieldValue('geo_blocklist_enabled'); const handlePageChange = (page) => { setCurrentPage(page); }; const handlePerRowsChange = (newRowsPerPage) => { setRowsPerPage(newRowsPerPage); }; const { selectedFilter, setSelectedFilter, activeGroupId, getCurrentFilter, setProcessingFilter, } = FilterData(); const [filter, setFilter] = useState(getCurrentFilter(moduleName)); const buildColumn = useCallback((column) => ({ //if the filter is set to region and the columns = status we do not want to show the column omit: filter === 'regions' && (column.column === 'country_name' || column.column === 'flag'), name: (column.column === 'action' && 'regions' === filter) ? __('Block / Allow All', 'really-simple-ssl') : column.name, sortable: column.sortable, searchable: column.searchable, width: column.width, visible: column.visible, column: column.column, selector: row => row[column.column], }), [filter]); let field = props.field; const blockCountryByCode = useCallback(async (code, name) => { if (Array.isArray(code)) { //We get all the iso2 codes and names from the array const ids = code.map(item => ({ country_code: item.iso2_code, country_name: item.country_name })); //we loop through the ids and block them one by one await addMultiRow(ids).then( (response) => { if (response.success) { showSavedSettingsNotice(response.message); } else { showSavedSettingsNotice(response.message, 'error'); } } ); await fetchCountryData(field.action, filter); setRowsSelected([]); } else { await addRow(code, name).then((result) => { showSavedSettingsNotice(result.message); if (result.success) { fetchCountryData(field.action, filter); } }); } }, [addRow, filter, localData, enabled]); const allowRegionByCode = useCallback(async (code, regionName = '') => { if (Array.isArray(code)) { const ids = code.map(item => ({ iso2_code: item.iso2_code, country_name: item.country_name })); await removeRegionMulti(ids).then( (response) => { if (response.success) { showSavedSettingsNotice(response.message); if (response.success) { fetchCountryData(field.action, filter); } } else { showSavedSettingsNotice(response.message, 'error'); } } ); setRowsSelected([]); } else { await removeRegion(code).then((result) => { showSavedSettingsNotice(result.message); if (result.success) { fetchCountryData(field.action, filter); } }); } }, [removeRegion, filter]); const blockRegionByCode = useCallback(async (code, region = '') => { if (Array.isArray(code)) { const ids = code.map(item => ({ iso2_code: item.iso2_code, country_name: item.country_name })); await addRegionsMulti(ids).then( (response) => { if (response.success) { showSavedSettingsNotice(response.message); } else { showSavedSettingsNotice(response.message, 'error'); } } ); await fetchCountryData(field.action, filter); setRowsSelected([]); } else { await addRegion(code).then((result) => { if (result.success) { showSavedSettingsNotice(result.message); } else { showSavedSettingsNotice(result.message, 'error'); } }); await fetchCountryData(field.action, filter); } }, [addRegion, filter]); const allowCountryByCode = useCallback(async (code) => { if (Array.isArray(code)) { const ids = code.map(item => ({ country_code: item.iso2_code, country_name: item.country_name })); //we loop through the ids and allow them one by one await removeRowMulti(ids).then( (response) => { if (response.success) { showSavedSettingsNotice(response.message); } else { showSavedSettingsNotice(response.message, 'error'); } } ); setRowsSelected([]); await fetchCountryData(field.action, filter); } else { await removeRow(code).then((result) => { showSavedSettingsNotice(result.message); }); await fetchCountryData(field.action, filter); } }, [removeRow, filter]); const ActionButton = ({onClick, children, className, disabled = false}) => ( // <div className={`rsssl-action-buttons__inner`}> <button className={`button ${className} rsssl-action-buttons__button`} onClick={onClick} disabled={disabled} > {children} </button> // </div> ); const customStyles = { headCells: { style: { paddingLeft: '0', paddingRight: '0', }, }, cells: { style: { paddingLeft: '0', paddingRight: '0', }, }, }; const generateActionButtons = useCallback((code, name, region_name, showBlockButton = true, showAllowButton = true) => { return (<div className="rsssl-action-buttons"> {filter === 'blocked' && ( <ActionButton onClick={() => allowCountryByCode(code)} className="button-secondary"> {__("Allow", "really-simple-ssl")} </ActionButton> )} {filter === 'regions' && ( <> <ActionButton onClick={() => blockRegionByCode(code, region_name)} className="button-primary" disabled={!showBlockButton} > {__("Block", "really-simple-ssl")} </ActionButton> <ActionButton onClick={() => allowRegionByCode(code, region_name)} className="button-secondary" disabled={!showAllowButton} > {__("Allow", "really-simple-ssl")} </ActionButton> </> )} {filter === 'countries' && ( <ActionButton onClick={() => blockCountryByCode(code, name)} className="button-primary"> {__("Block", "really-simple-ssl")} </ActionButton> )} </div>) }, [filter]); const generateFlag = useCallback((flag, title) => { return ( <> <Flag countryCode={flag} style={{ fontSize: '2em', }} title={title} continent={(getCurrentFilter(moduleName) === 'regions')} /> </> ) }, [filter]); useEffect(() => { const currentFilter = getCurrentFilter(moduleName); if (typeof currentFilter === 'undefined') { setFilter('blocked'); } else { setFilter(currentFilter); } setRowsSelected([]); resetRowSelection(true); resetRowSelection(false); }, [getCurrentFilter(moduleName)]); useEffect(() => { if (filter !== undefined) { const fetchData = async () => { await fetchCountryData(field.action, filter); } fetchData(); } }, [filter]); useEffect(() => { if (dataLoaded && CountryDataTable.data !== undefined) { setLocalData(CountryDataTable.data); } }, [dataLoaded]); const handleSelection = useCallback((state) => { console.log(state); //based on the current page and the rows per page we get the rows that are selected const {selectedCount, selectedRows, allSelected, allRowsSelected} = state; let rows = []; if (allSelected) { rows = selectedRows.slice((currentPage - 1) * rowsPerPage, currentPage * rowsPerPage); setRowsSelected(rows); } else { setRowsSelected(selectedRows); } }, [currentPage, rowsPerPage, visualData]); useEffect(() => { let FilterColumns = field.columns.map(buildColumn); // Find the index of the 'action' column const actionIndex = FilterColumns.findIndex(column => column.column === 'action'); // If 'filter' equals 'regions' and 'action' column exists, then do the rearrangement if (filter === 'regions' && actionIndex !== -1) { const actionColumn = FilterColumns[actionIndex]; // Remove 'action' column from its current place FilterColumns.splice(actionIndex, 1); const emptyColumn = { name: '', selector: '', sortable: false, omit: false, searchable: false, }; // Push 'action' column to the end of the array FilterColumns.push(emptyColumn, actionColumn); } setColumns(FilterColumns); const generatedVisualData = (localData || []) .filter((row) => { return Object.values(row).some((val) => ((val ?? '').toString().toLowerCase()).includes(searchTerm.toLowerCase())); }).map((row) => { const newRow = {...row}; columns.forEach((column) => { newRow[column.column] = row[column.column]; }); if (filter === 'regions') { let showBlockButton = (newRow.region_count - newRow.blocked_count) > 0; let showAllowButton = (newRow.blocked_count > 0); newRow.action = generateActionButtons(newRow.iso2_code, newRow.country_name, newRow.region, showBlockButton, showAllowButton); } else if (filter === 'countries') { newRow.action = generateActionButtons(newRow.iso2_code, newRow.country_name, newRow.region); } else { newRow.action = generateActionButtons(newRow.iso2_code, newRow.status, newRow.region); } newRow.flag = generateFlag(newRow.iso2_code, newRow.country_name); if (newRow.status) { newRow.status = __(newRow.status.charAt(0).toUpperCase() + newRow.status.slice(1), 'really-simple-ssl'); if ('regions' === filter) { // So i all is blocked we don't want to show the count also if all are allowed we don't want to show the count if (newRow.blocked_count === newRow.region_count || newRow.blocked_count === 0) { newRow.status = newRow.status; } else { newRow.status = newRow.status + ' (' + newRow.blocked_count + '/ ' + newRow.region_count + ')'; } } } return newRow; }); setVisualData(generatedVisualData); }, [localData, searchTerm]); useEffect(() => { if ( rowsSelected.length === 0 ) { resetRowSelection } }, [rowsSelected]); return ( <> <div className="rsssl-container"> <div> {/* reserved for left side buttons */} </div> <div className="rsssl-search-bar"> <div className="rsssl-search-bar__inner"> <div className="rsssl-search-bar__icon"></div> <input type="text" className="rsssl-search-bar__input" placeholder={__("Search", "really-simple-ssl")} onChange={e => setSearchTerm(e.target.value)} /> </div> </div> </div> {rowsSelected.length > 0 && ( <div style={{ marginTop: '1em', marginBottom: '1em', }} > <div className={"rsssl-multiselect-datatable-form rsssl-primary"}> <div> {__("You have selected %s rows", "really-simple-ssl").replace('%s', rowsSelected.length)} </div> <div className="rsssl-action-buttons"> {filter === 'countries' && ( <> <ActionButton onClick={() => blockCountryByCode(rowsSelected)} className="button-primary"> {__("Block", "really-simple-ssl")} </ActionButton> </> )} {filter === 'regions' && ( <> <ActionButton onClick={() => allowRegionByCode(rowsSelected)} className="button-secondary"> {__("Allow", "really-simple-ssl")} </ActionButton> <ActionButton onClick={() => blockRegionByCode(rowsSelected)} className="button-primary"> {__("Block", "really-simple-ssl")} </ActionButton> </> )} {filter === 'blocked' && ( <ActionButton onClick={() => allowCountryByCode(rowsSelected)}> {__("Allow", "really-simple-ssl")} </ActionButton> )} </div> </div> </div> )} <DataTable columns={columns} data={visualData} dense pagination={true} paginationComponentOptions={{ rowsPerPageText: __('Rows per page:', 'really-simple-ssl'), rangeSeparatorText: __('of', 'really-simple-ssl'), noRowsPerPage: false, selectAllRowsItem: false, selectAllRowsItemText: __('All', 'really-simple-ssl'), }} noDataComponent={__("No results", "really-simple-ssl")} persistTableHead selectableRows={true} paginationPerPage={rowsPerPage} onChangePage={handlePageChange} onChangeRowsPerPage={handlePerRowsChange} onSelectedRowsChange={handleSelection} clearSelectedRows={rowCleared} theme="really-simple-plugins" customStyles={customStyles} > </DataTable> {!getFieldValue('geo_blocklist_enabled') && ( <div className="rsssl-locked"> <div className="rsssl-locked-overlay"><span className="rsssl-task-status rsssl-open">{__('Disabled', 'really-simple-ssl')}</span><span>{__('Restrict access from specific countries or continents. You can also allow only specific countries.', 'really-simple-ssl')}</span> </div> </div> )} </> ) } export default GeoDatatable; PK�������!�!J��J��9��settings/src/Settings/GeoBlockList/TrustIpAddressModal.jsnu�[��������import React, {useEffect, useState} from 'react'; import { Modal, MenuItem, SelectControl, Button, __experimentalConfirmDialog as ConfirmDialog } from "@wordpress/components"; import {__} from "@wordpress/i18n"; import IpAddressInput from "../LimitLoginAttempts/IpAddressInput"; import FieldsData from "../FieldsData"; import WhiteListTableStore from "./WhiteListTableStore"; const TrustIpAddressModal = (props) => { const { inputRangeValidated,note, setNote, ipAddress, setIpAddress, maskError, dataLoaded, updateRow, resetRange} = WhiteListTableStore(); const [rangeDisplay, setRangeDisplay] = useState(false); const [resetFlag, setResetFlag] = useState(false); const {showSavedSettingsNotice} = FieldsData(); //we add a function to handle the range fill const handleRangeFill = () => { //we toggle the range display. setRangeDisplay(!rangeDisplay); } async function handleSubmit() { // we check if statusSelected is not empty if (ipAddress && maskError === false) { await updateRow(ipAddress, note, props.dataActions).then((response) => { if (response.success) { showSavedSettingsNotice(response.message); } else { showSavedSettingsNotice(response.message, 'error'); } }); //we clear the input resetRange(); //we close the modal props.onRequestClose(); } } function handleCancel() { // Reset all local state setRangeDisplay(false); resetRange(); // Close the modal props.onRequestClose(); } if (!props.isOpen) { return null; } return ( <Modal title={__("Add IP Address", "really-simple-ssl")} shouldCloseOnClickOutside={true} shouldCloseOnEsc={true} overlayClassName="rsssl-modal-overlay" className="rsssl-modal" onRequestClose={props.onRequestClose} > <div className="modal-content"> <div className="modal-body" style={{ padding: "0.5em", }} > <div style={{ width: "95%", height: "100%", padding: "10px", }} > <div> <IpAddressInput label={__("IP Address", "really-simple-ssl")} id="ip-address" name="ip-address" showSwitch={true} value={ipAddress} onChange={(e) => setIpAddress(e.target.value)} /> <label htmlFor={'note'} className={'rsssl-label'} >{__('Notes', 'really-simple-ssl')}</label> <input name={'note'} id={'note'} type={'text'} value={note} onChange={(e) => setNote(e.target.value)} style={{ width: '100%', }} /> </div> </div> </div> <div className="modal-footer"> {/*//we add two buttons here for add row and cancel*/} <div className={'rsssl-grid-item-footer'} style ={{ display: 'flex', justifyContent: 'flex-end', alignItems: 'center', padding: '1em', } } > <Button isSecondary onClick={handleCancel} style={{ marginRight: '10px' }} > {__("Cancel", "really-simple-ssl")} </Button> <Button isPrimary onClick={handleSubmit} > {__("Add", "really-simple-ssl")} </Button> </div> </div> </div> </Modal> ) } export default TrustIpAddressModal;PK�������!�2:��2:��8��settings/src/Settings/GeoBlockList/WhiteListDatatable.jsnu�[��������import React, { useEffect, useState, useCallback } from 'react'; import DataTable, { createTheme } from "react-data-table-component"; import FieldsData from "../FieldsData"; import WhiteListTableStore from "./WhiteListTableStore"; import FilterData from "../FilterData"; import Flag from "../../utils/Flag/Flag"; import { __ } from '@wordpress/i18n'; import useFields from "../FieldsData"; import SearchBar from "../DynamicDataTable/SearchBar"; import AddButton from "./AddButton"; import AddIpAddressModal from "../LimitLoginAttempts/AddIpAddressModal"; import TrustIpAddressModal from "./TrustIpAddressModal"; const WhiteListDatatable = (props) => { const { WhiteListTable, dataLoaded, fetchWhiteListData, processing, ipAddress, addRow, removeRow, pagination, addRegion, removeRegion, resetRow, rowCleared, } = WhiteListTableStore(); const {showSavedSettingsNotice, saveFields} = FieldsData(); const [rowsSelected, setRowsSelected] = useState([]); const [modalOpen, setModalOpen] = useState(false); const [tableHeight, setTableHeight] = useState(600); // Starting height const rowHeight = 50; // Height of each row. const moduleName = 'rsssl-group-filter-geo_block_list_white_listing'; const {fields, fieldAlreadyEnabled, getFieldValue} = useFields(); const [searchTerm, setSearchTerm] = useState(''); const [currentPage, setCurrentPage] = useState(1); const [rowsPerPage, setRowsPerPage] = useState(10); const handlePageChange = (page) => { setCurrentPage(page); }; const handlePerRowsChange = (newRowsPerPage) => { setRowsPerPage(newRowsPerPage); }; /** * Build a column configuration object. * * @param {object} column - The column object. * @param {string} column.name - The name of the column. * @param {boolean} column.sortable - Whether the column is sortable. * @param {boolean} column.searchable - Whether the column is searchable. * @param {number} column.width - The width of the column. * @param {boolean} column.visible - Whether the column is visible. * @param {string} column.column - The column identifier. * * @returns {object} The column configuration object. */ const buildColumn = useCallback((column) => ({ //if the filter is set to region and the columns = status we do not want to show the column name: column.name, sortable: column.sortable, searchable: column.searchable, width: column.width, visible: column.visible, column: column.column, selector: row => row[column.column], }), []); let field = props.field; const columns = field.columns.map(buildColumn); const searchableColumns = columns .filter(column => column.searchable) .map(column => column.column); useEffect(() => { setRowsSelected([]); }, [WhiteListTable]); useEffect(() => { fetchWhiteListData(field.action); }, [fieldAlreadyEnabled('geo_blocklist_enabled')]); let enabled = getFieldValue('geo_blocklist_enabled'); useEffect(() => { return () => { saveFields(false, false) }; }, [enabled]); const customStyles = { headCells: { style: { paddingLeft: '0', paddingRight: '0', }, }, cells: { style: { paddingLeft: '0', paddingRight: '0', }, }, }; createTheme('really-simple-plugins', { divider: { default: 'transparent', }, }, 'light'); const handleSelection = useCallback((state) => { //based on the current page and the rows per page we get the rows that are selected const {selectedCount, selectedRows, allSelected, allRowsSelected} = state; let rows = []; if (allSelected) { rows = selectedRows.slice((currentPage - 1) * rowsPerPage, currentPage * rowsPerPage); setRowsSelected(rows); } else { setRowsSelected(selectedRows); } }, [currentPage, rowsPerPage]); const allowRegionByCode = useCallback(async (code, regionName = '') => { if (Array.isArray(code)) { const ids = code.map(item => ({ iso2_code: item.iso2_code, country_name: item.country_name })); ids.forEach((id) => { removeRegion(id.iso2_code).then((result) => { showSavedSettingsNotice(result.message); }); }); setRowsSelected([]); await fetchWhiteListData(field.action); setRowsSelected([]); } else { await removeRegion(code).then((result) => { showSavedSettingsNotice(result.message); }); } }, [removeRegion]); const allowById = useCallback((id) => { //We check if the id is an array if (Array.isArray(id)) { //We get all the iso2 codes and names from the array const ids = id.map(item => ({ id: item.id, })); //we loop through the ids and allow them one by one ids.forEach((id) => { resetRow(id.id).then((result) => { showSavedSettingsNotice(result.message); }); }); setRowsSelected([]); } else { resetRow(id).then((result) => { showSavedSettingsNotice(result.message); }); } fetchWhiteListData(field.action); }, [resetRow]); const blockRegionByCode = useCallback(async (code, region = '') => { if (Array.isArray(code)) { const ids = code.map(item => ({ iso2_code: item.iso2_code, country_name: item.country_name })); ids.forEach((id) => { addRegion(id.iso2_code).then((result) => { showSavedSettingsNotice(result.message); }); }); setRowsSelected([]); await fetchWhiteListData(field.action); setRowsSelected([]); } else { await addRegion(code).then((result) => { showSavedSettingsNotice(result.message); }); } }, [addRegion]); const allowCountryByCode = useCallback(async (code) => { if (Array.isArray(code)) { const ids = code.map(item => ({ iso2_code: item.iso2_code, country_name: item.country_name })); //we loop through the ids and allow them one by one ids.forEach((id) => { removeRow(id.iso2_code).then((result) => { showSavedSettingsNotice(result.message); }); }); setRowsSelected([]); await fetchWhiteListData(field.action); } else { await removeRow(code).then((result) => { showSavedSettingsNotice(result.message); }); } }, [removeRow]); const blockCountryByCode = useCallback(async (code, name) => { if (Array.isArray(code)) { //We get all the iso2 codes and names from the array const ids = code.map(item => ({ iso2_code: item.iso2_code, country_name: item.country_name })); //we loop through the ids and block them one by one ids.forEach((id) => { addRow(id.iso2_code, id.country_name).then((result) => { showSavedSettingsNotice(result.message); }); }); setRowsSelected([]); } else { await addRow(code, name).then((result) => { showSavedSettingsNotice(result.message); }); } }, [addRow]); const data = {...WhiteListTable.data}; const generateFlag = useCallback((flag, title) => ( <> <Flag countryCode={flag} style={{ fontSize: '2em', }} title={title} /> </> ), []); const ActionButton = ({ onClick, children, className }) => ( // <div className={`rsssl-action-buttons__inner`}> <button className={`button ${className} rsssl-action-buttons__button`} onClick={onClick} disabled={processing} > {children} </button> // </div> ); const handleClose = () => { setModalOpen(false); } const handleOpen = () => { setModalOpen(true); } const generateActionButtons = useCallback((id) => { return (<div className="rsssl-action-buttons"> <ActionButton onClick={() => allowById(id)} className="button-red"> {__("Reset", "really-simple-ssl")} </ActionButton> </div>) }, [moduleName, allowById, blockRegionByCode, allowRegionByCode, blockCountryByCode, allowCountryByCode]); for (const key in data) { const dataItem = {...data[key]}; dataItem.action = generateActionButtons(dataItem.id); dataItem.flag = generateFlag(dataItem.iso2_code, dataItem.country_name); dataItem.status = __(dataItem.status = dataItem.status.charAt(0).toUpperCase() + dataItem.status.slice(1), 'really-simple-ssl'); data[key] = dataItem; } let paginationSet; paginationSet = typeof pagination !== 'undefined'; useEffect(() => { if (Object.keys(data).length === 0 ) { setTableHeight(100); // Adjust depending on your UI measurements } else { setTableHeight(rowHeight * (paginationSet ? pagination.perPage + 2 : 12)); // Adjust depending on your UI measurements } }, [paginationSet, pagination?.perPage, data]); useEffect(() => { const filteredData = Object.entries(data) .filter(([_, dataItem]) => { return Object.values(dataItem).some(val => ((val ?? '').toString().toLowerCase().includes(searchTerm.toLowerCase()))); }) .map(([key, dataItem]) => { const newItem = { ...dataItem }; newItem.action = generateActionButtons(newItem.id); newItem.flag = generateFlag(newItem.iso2_code, newItem.country_name); newItem.status = __(newItem.status = newItem.status.charAt(0).toUpperCase() + newItem.status.slice(1), 'really-simple-ssl'); return [key, newItem]; }) .reduce((obj, [key, val]) => ({ ...obj, [key]: val }), {}); }, [searchTerm, data]); return ( <> <TrustIpAddressModal isOpen={modalOpen} onRequestClose={handleClose} value={ipAddress} status={'trusted'} > </TrustIpAddressModal> <div className="rsssl-container"> {/*display the add button on left side*/} <AddButton moduleName={moduleName} handleOpen={handleOpen} processing={processing} blockedText={__("Block IP Address", "really-simple-ssl")} allowedText={__("Trust IP Address", "really-simple-ssl")} /> <div className="rsssl-search-bar"> <div className="rsssl-search-bar__inner"> <div className="rsssl-search-bar__icon"></div> <input type="text" className="rsssl-search-bar__input" placeholder={__("Search", "really-simple-ssl")} onChange={e => setSearchTerm(e.target.value)} /> </div> </div> </div> {rowsSelected.length > 0 && ( <div style={{ marginTop: '1em', marginBottom: '1em', }} > <div className={"rsssl-multiselect-datatable-form rsssl-primary"}> <div> {__("You have selected %s rows", "really-simple-ssl").replace('%s', rowsSelected.length)} </div> <div className="rsssl-action-buttons"> <> <ActionButton onClick={() => allowById(rowsSelected)} className="button-red"> {__("Reset", "really-simple-ssl")} </ActionButton> </> </div> </div> </div> )} <DataTable columns={columns} data={Object.values(data).filter((row) => { return Object.values(row).some((val) => ((val ?? '').toString().toLowerCase()).includes(searchTerm.toLowerCase())); })} dense pagination={true} paginationComponentOptions={{ rowsPerPageText: __('Rows per page:', 'really-simple-ssl'), rangeSeparatorText: __('of', 'really-simple-ssl'), noRowsPerPage: false, selectAllRowsItem: false, selectAllRowsItemText: __('All', 'really-simple-ssl'), }} noDataComponent={__("No results", "really-simple-ssl")} persistTableHead selectableRows={true} clearSelectedRows={rowCleared} paginationPerPage={rowsPerPage} onChangePage={handlePageChange} onChangeRowsPerPage={handlePerRowsChange} onSelectedRowsChange={handleSelection} theme="really-simple-plugins" customStyles={customStyles} /> {!enabled && ( <div className="rsssl-locked"> <div className="rsssl-locked-overlay"><span className="rsssl-task-status rsssl-open">{__('Disabled', 'really-simple-ssl')}</span><span>{__('Here you can add IP addresses that should never be blocked by region restrictions.', 'really-simple-ssl')}</span> </div> </div> )} </> ); } export default WhiteListDatatable;PK�������!�i��i��9��settings/src/Settings/GeoBlockList/WhiteListTableStore.jsnu�[��������/* Creates A Store For Risk Data using Zustand */ import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; import {__} from "@wordpress/i18n"; import {produce} from "immer"; import React from "react"; import GeoDatatable from "./GeoDatatable"; const WhiteListTableStore = create((set, get) => ({ processing: false, dataLoaded: false, pagination: {}, dataActions: {}, WhiteListTable: [], rowCleared: false, maskError: false, ipAddress: '', note: '', fetchWhiteListData: async (action) => { //we check if the processing is already true, if so we return set({processing: true}); set({dataLoaded: false}); set({rowCleared: true}); try { const response = await rsssl_api.doAction( action ); //now we set the EventLog if (response && response.request_success) { set({WhiteListTable: response, dataLoaded: true, processing: false, pagination: response.pagination}); } set({ rowCleared: true }); } catch (e) { console.error(e); } finally { set({processing: false}); set({rowCleared: false}); } }, resetRow: async (id, dataActions) => { set({processing: true}); let data = { id: id }; try { const response = await rsssl_api.doAction('geo_block_reset_ip', data); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { // Potentially notify the user of success, if needed. return { success: true, message: response.message, response }; } else { // Handle any unsuccessful response if needed. return { success: false, message: response?.message || 'Failed to reset Ip', response }; } } catch (e) { console.error(e); // Notify the user of an error. return { success: false, message: 'Error occurred', error: e }; } finally { set({processing: false}); } } , updateRow: async (ip, note, dataActions) => { set({processing: true}); let data = { ip_address: ip, note: note }; try { const response = await rsssl_api.doAction('geo_block_add_white_list_ip', data); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { await get().fetchWhiteListData('rsssl_geo_white_list'); // Potentially notify the user of success, if needed. return { success: true, message: response.message, response }; } else { // Handle any unsuccessful response if needed. return { success: false, message: response?.message || 'Failed to add Ip', response }; } } catch (e) { console.error(e); // Notify the user of an error. return { success: false, message: 'Error occurred', error: e }; } finally { set({processing: false}); } }, removeRow: async (country, dataActions) => { set({processing: true}); let data = { country_code: country }; try { const response = await rsssl_api.doAction('geo_block_remove_blocked_country', data); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { await get().fetchCountryData('rsssl_geo_white_list'); // Potentially notify the user of success, if needed. return { success: true, message: response.message, response }; } else { // Handle any unsuccessful response if needed. return { success: false, message: response?.message || 'Failed to remove country', response }; } } catch (e) { console.error(e); // Notify the user of an error. return { success: false, message: 'Error occurred', error: e }; } finally { set({processing: false}); } }, /* * This function sets the ip address and is used by Cidr and IpAddressInput */ setIpAddress: (ipAddress) => { if(ipAddress.length === 0) { return; } let ipRegex = /^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$|^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,4}|((25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9]))|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9]))$/; if (ipAddress.includes('/')) { let finalIp = ''; // Split the input into IP and CIDR mask let [ip, mask] = ipAddress.split('/'); //if , we change it to . ip = ip.replace(/,/g, '.'); if (mask.length <= 0 ) { if (!ipRegex.test(ip)) { set({maskError: true}); } else { set({maskError: false}); } finalIp = `${ip}/${mask}`; } else { finalIp = mask ? `${ip}/${mask}` : ip; } set({ ipAddress: finalIp }) } else { if (!ipRegex.test(ipAddress)) { set({maskError: true}); } else { set({maskError: false}); } set({ ipAddress: ipAddress.replace(/,/g, '.') }) } }, setNote: (note) => { set({note}); }, resetRange: () => { set({inputRangeValidated: false}); set({highestIP: ''}); set({lowestIP: ''}); set({ipAddress: ''}); set({maskError: false}); }, })); export default WhiteListTableStore;PK�������!�_|¶.��.��7��settings/src/Settings/GeoBlockList/GeoDataTableStore.jsnu�[��������/* Creates A Store For Risk Data using Zustand */ import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; import {__} from "@wordpress/i18n"; import {produce} from "immer"; import React from "react"; import GeoDatatable from "./GeoDatatable"; const GeoDataTableStore = create((set, get) => ({ processing: false, dataLoaded: false, pagination: {}, dataActions: {}, CountryDataTable: [], rowCleared: false, fetchCountryData: async (action, filterValue) => { //we check if the processing is already true, if so we return set({ processing: true, rowCleared: true, dataLoaded: false }); // if the filterValue is not set, we do nothing. if (!filterValue) { set({processing: false}); return; } try { const response = await rsssl_api.doAction( action, {filterValue} ); //now we set the EventLog if (response && response.request_success) { set({ CountryDataTable: response, dataLoaded: true, processing: false }); } set({ rowCleared: true }); } catch (e) { console.error(e); } }, handleCountryTableSearch: async (search, searchColumns) => { //Add the search to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, search, searchColumns}; }) ); }, handleCountryTablePageChange: async (page, pageSize) => { //Add the page and pageSize to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, page, pageSize}; }) ); }, handleCountryTableRowsChange: async (currentRowsPerPage, currentPage) => { //Add the page and pageSize to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, currentRowsPerPage, currentPage}; }) ); }, //this handles all pagination and sorting handleCountryTableSort: async (column, sortDirection) => { //Add the column and sortDirection to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, sortColumn: column, sortDirection}; }) ); }, handleCountryTableFilter: async (column, filterValue) => { //Add the column and sortDirection to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, filterColumn: column, filterValue}; }) ); }, /* * This function add a new row to the table */ addRow: async (country, name) => { set({rowCleared: false}); let data = { country_code: country, country_name: name }; try { const response = await rsssl_api.doAction('geo_block_add_blocked_country', data); if (response && response.request_success) { set({rowCleared: true}); return { success: true, message: response.message, response }; } else { // Return a custom error message or the API response message. return { success: false, message: response?.message || 'Failed to add country', response }; } } catch (e) { console.error(e); // Return the caught error with a custom message. return { success: false, message: 'Error occurred', error: e }; } }, addMultiRow: async (countries) => { set({processing: true}); set({rowCleared: false}); let data = { country_codes: countries }; try { const response = await rsssl_api.doAction('geo_block_add_blocked_country', data); if (response && response.request_success) { set({rowCleared: true}); // Return the success message from the API response. return { success: true, message: response.message, response }; } else { set({rowCleared: true}); // Return a custom error message or the API response message. return { success: false, message: response?.message || 'Failed to add countries', response }; } } catch (e) { console.error(e); set({rowCleared: true}); // Return the caught error with a custom message. return { success: false, message: 'Error occurred', error: e }; } finally { set({processing: false}); set({rowCleared: true}); } }, removeRowMulti: async (countries, dataActions) => { set({processing: true}); set({rowCleared: false}); let data = { country_codes: countries }; try { const response = await rsssl_api.doAction('geo_block_remove_blocked_country', data); if (response && response.request_success) { set({rowCleared: true}); // Return the success message from the API response. return { success: true, message: response.message, response }; } else { // Return a custom error message or the API response message. return { success: false, message: response?.message || 'Failed to remove countries', response }; } } catch (e) { console.error(e); set({rowCleared: true}); // Return the caught error with a custom message. return { success: false, message: 'Error occurred', error: e }; } finally { set({rowCleared: true}); set({processing: false}); } }, removeRow: async (country) => { set({processing: true}); set({rowCleared: false}); let data = { country_code: country }; try { const response = await rsssl_api.doAction('geo_block_remove_blocked_country', data); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { set({rowCleared: true}); // Potentially notify the user of success, if needed. return { success: true, message: response.message, response }; } else { // Handle any unsuccessful response if needed. set({rowCleared: true}); return { success: false, message: response?.message || 'Failed to remove country', response }; } } catch (e) { console.error(e); // Notify the user of an error. return { success: false, message: 'Error occurred', error: e }; } finally { set({rowCleared: true}); set({processing: false}); } }, addRegion: async (region) => { set({processing: true}); set({rowCleared: false}); let data = { region_code: region }; try { const response = await rsssl_api.doAction('geo_block_add_blocked_region', data); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { set({rowCleared: true}); // Potentially notify the user of success, if needed. return { success: true, message: response.message, response }; } else { // Handle any unsuccessful response if needed. set({rowCleared: true}); return { success: false, message: response?.message || 'Failed to add region', response }; } } catch (e) { console.error(e); // Notify the user of an error. return { success: false, message: 'Error occurred', error: e }; } finally { set({processing: false}); set({rowCleared: true}); } }, addRegionsMulti: async (regions, dataActions) => { set({processing: true}); set({rowCleared: false}); let data = { region_codes: regions }; try { const response = await rsssl_api.doAction('geo_block_add_blocked_region', data); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { set({rowCleared: true}); // Potentially notify the user of success, if needed. return { success: true, message: response.message, response }; } else { set({rowCleared: true}); // Handle any unsuccessful response if needed. return { success: false, message: response?.message || 'Failed to add regions', response }; } } catch (e) { console.error(e); // Notify the user of an error. return { success: false, message: 'Error occurred', error: e }; } finally { set({rowCleared: true}); set({processing: false}); } }, removeRegion: async (region) => { set({processing: true}); set({rowCleared: false}); let data = { region_code: region }; try { const response = await rsssl_api.doAction('geo_block_remove_blocked_region', data); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { set({rowCleared: true}); // Potentially notify the user of success, if needed. return { success: true, message: response.message, response }; } else { // Handle any unsuccessful response if needed. set({rowCleared: true}); return { success: false, message: response?.message || 'Failed to remove region', response }; } } catch (e) { console.error(e); // Notify the user of an error. return { success: false, message: 'Error occurred', error: e }; } finally { set({processing: false}); set({rowCleared: true}); } }, removeRegionMulti: async (regions) => { set({processing: true}); set({rowCleared: false}); let data = { region_codes: regions }; try { const response = await rsssl_api.doAction('geo_block_remove_blocked_region', data); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { // Potentially notify the user of success, if needed. set({rowCleared: true}); return { success: true, message: response.message, response }; } else { set({rowCleared: true}); // Handle any unsuccessful response if needed. return { success: false, message: response?.message || 'Failed to remove regions', response }; } } catch (e) { console.error(e); // Notify the user of an error. set({rowCleared: true}); return { success: false, message: 'Error occurred', error: e }; } finally { set({processing: false}); set({rowCleared: true}); } }, resetRowSelection: async (on_off) => { set({rowCleared: on_off}); } })); export default GeoDataTableStore;PK�������!� -{��{��/��settings/src/Settings/GeoBlockList/AddButton.jsnu�[��������import React from 'react'; const AddButton = ({ getCurrentFilter, moduleName, handleOpen, processing, blockedText, allowedText }) => { return ( <div className="rsssl-add-button"> <div className="rsssl-add-button__inner"> <button className="button button-secondary button-datatable rsssl-add-button__button" onClick={handleOpen} disabled={processing} > {allowedText} </button> </div> </div> ); }; export default AddButton;PK�������!�,_E;��;��#��settings/src/Settings/FieldsData.jsnu�[��������import {create} from 'zustand'; import {produce} from 'immer'; import * as rsssl_api from "../utils/api"; import {__} from '@wordpress/i18n'; import {toast} from 'react-toastify'; const fetchFields = () => { return rsssl_api.getFields().then((response) => { let fields = response.fields; let progress = response.progress; let error = response.error; return {fields, progress, error}; }).catch((error) => { console.error(error); }); } const useFields = create(( set, get ) => ({ fieldsLoaded: false, error:false, fields: [], changedFields:[], progress:[], nextButtonDisabled:false, overrideNextButtonDisabled:false, refreshTests:false, highLightField: '', setHighLightField: (highLightField) => { set(state => ({ highLightField })) }, setRefreshTests: (refreshTests) => set(state => ({ refreshTests })), handleNextButtonDisabled: (nextButtonDisabled) => { set({overrideNextButtonDisabled: nextButtonDisabled}); }, setChangedField: (id, value) => { set( produce((state) => { //remove current reference const existingFieldIndex = state.changedFields.findIndex(field => { return field.id===id; }); if (existingFieldIndex!==-1){ state.changedFields.splice(existingFieldIndex, 1); } //add again, with new value let field = {}; field.id = id; field.value = value; state.changedFields.push(field); }) ) }, showSavedSettingsNotice : (text) => { handleShowSavedSettingsNotice(text); }, updateField: (id, value) => { set( produce((state) => { let index = state.fields.findIndex(fieldItem => fieldItem.id === id); if (index !== -1) { state.fields[index].value = value; } }) ) }, updateFieldAttribute: (id, attribute, value) => { set( produce((state) => { let index = state.fields.findIndex(fieldItem => fieldItem.id === id); if (index !== -1) { state.fields[index][attribute] = value; } }) ) }, updateSubField: (id, subItemId, value) => { set( produce((state) => { let index = state.fields.findIndex(fieldItem => fieldItem.id === id); let itemValue = state.fields[index].value; if (!Array.isArray(itemValue)) { itemValue = []; } let subIndex = itemValue.findIndex(subItem => subItem.id === subItemId); if (subIndex !== -1) { state.fields[index].updateItemId = subItemId; state.fields[index].value[subIndex]['value'] = value; state.fields[index].value = itemValue.map(item => { const { deleteControl, valueControl, statusControl, ...rest } = item; return rest; }); } }) ) }, removeHelpNotice: (id) => { set( produce((state) => { const fieldIndex = state.fields.findIndex(field => { return field.id===id; }); state.fields[fieldIndex].help = false; }) ) }, addHelpNotice : (id, label, text, title, url) => { get().removeHelpNotice(id); //create help object let help = {}; help.label=label; help.text=text; if (url) help.url=url; if (title) help.title=title; set( produce((state) => { const fieldIndex = state.fields.findIndex(field => { return field.id===id; }); if (fieldIndex!==-1) { state.fields[fieldIndex].help = help; } }) ) }, fieldAlreadyEnabled: (id) => { let fieldIsChanged = get().changedFields.filter(field => field.id === id ).length>0; let fieldIsEnabled = get().getFieldValue(id); return !fieldIsChanged && fieldIsEnabled; }, getFieldValue : (id) => { let fields = get().fields; let fieldItem = fields.filter(field => field.id === id )[0]; if (fieldItem){ return fieldItem.value; } return false; }, getField : (id) => { let fields = get().fields; let fieldItem = fields.filter(field => field.id === id )[0]; if (fieldItem){ return fieldItem; } return false; }, saveFields: async (skipRefreshTests, showSavedNotice) => { let refreshTests = typeof skipRefreshTests !== 'undefined' ? skipRefreshTests : true; showSavedNotice = typeof showSavedNotice !== 'undefined' ? showSavedNotice : true; let fields = get().fields; fields = fields.filter(field => field.data_target !== 'banner'); let changedFields = get().changedFields; let saveFields = []; //data_target for (const field of fields) { let fieldIsIncluded = changedFields.filter(changedField => changedField.id === field.id).length > 0; //also check if there's no saved value yet for radio fields, by checking the never_saved attribute. //a radio or select field looks like it's completed, but won't save if it isn't changed. //this should not be the case for disabled fields, as these fields often are enabled server side because they're enabled outside Really Simple SSL. let select_or_radio = field.type === 'select' || field.type === 'radio'; if (fieldIsIncluded || (field.never_saved && !field.disabled && select_or_radio)) { saveFields.push(field); } } //if no fields were changed, do nothing. if (saveFields.length > 0) { let response = rsssl_api.setFields(saveFields).then((response) => { return response; }) if (showSavedNotice) { toast.promise( response, { pending: __('Saving settings...', 'really-simple-ssl'), success: __('Settings saved', 'really-simple-ssl'), error: __('Something went wrong', 'really-simple-ssl'), } ); } await response.then((response) => { set( produce((state) => { state.changedFields = []; state.fields = response.fields; state.progress = response.progress; state.refreshTests = refreshTests; }) ) }); } if (showSavedNotice && saveFields.length === 0) { //nothing to save. show instant success. toast.promise( Promise.resolve(), { success: __('Settings saved', 'really-simple-ssl'), } ); } }, updateFieldsData: (selectedSubMenuItem) => { let fields = get().fields; fields = updateFieldsListWithConditions(fields); //only if selectedSubMenuItem is actually passed if (selectedSubMenuItem) { let nextButtonDisabled = isNextButtonDisabled(fields, selectedSubMenuItem); //if the button was set to disabled with the handleNextButtonDisabled function, we give that priority until it's released. if (get().overrideNextButtonDisabled) { nextButtonDisabled = get().overrideNextButtonDisabled; } set( produce((state) => { state.nextButtonDisabled = nextButtonDisabled; }) ) } set( produce((state) => { state.fields = fields; }) ) }, fetchFieldsData: async ( selectedSubMenuItem ) => { const { fields, progress, error } = await fetchFields(); let conditionallyEnabledFields = updateFieldsListWithConditions(fields); let selectedFields = conditionallyEnabledFields.filter(field => field.menu_id === selectedSubMenuItem); set({fieldsLoaded: true, fields:conditionallyEnabledFields, selectedFields:selectedFields, progress:progress, error: error }); } })); export default useFields; //check if all required fields have been enabled. If so, enable save/continue button const isNextButtonDisabled = (fields, selectedMenuItem) => { let fieldsOnPage = []; //get all fields with group_id this.props.group_id for (const field of fields){ if (field.menu_id === selectedMenuItem ){ fieldsOnPage.push(field); } } let requiredFields = fieldsOnPage.filter(field => field.required && !field.conditionallyDisabled && (field.value.length==0 || !field.value) ); return requiredFields.length > 0; } const updateFieldsListWithConditions = (fields) => { let newFields = []; if (!fields || !Array.isArray(fields)) { return []; } fields.forEach(function(field, i) { let enabled = !( field.hasOwnProperty('react_conditions') && !validateConditions(field.react_conditions, fields, field.id) ); let previouslyEnabled = !field.conditionallyDisabled; //we want to update the changed fields if this field has just become visible. Otherwise the new field won't get saved. const newField = {...field}; newField.conditionallyDisabled = !enabled; newField.visible = !(!enabled && (newField.type === 'letsencrypt' || newField.condition_action === 'hide')); newFields.push(newField); //if this is a learning mode field, do not add it to the changed fields list if ( !previouslyEnabled && newField.enabled && field.type!=='learningmode') { set().setChangedField(field.id, field.value); } }); return newFields; } const handleShowSavedSettingsNotice = (text) => { if (typeof text === 'undefined') { text = __( 'Settings Saved', 'really-simple-ssl' ); } toast.success(text); } const validateConditions = (conditions, fields, fieldId) => { let relation = conditions[0].relation === 'OR' ? 'OR' : 'AND'; let conditionApplies = relation==='AND'; for (const key in conditions) { if ( conditions.hasOwnProperty(key) ) { let thisConditionApplies = relation==='AND'; let subConditionsArray = conditions[key]; if ( subConditionsArray.hasOwnProperty('relation') ) { thisConditionApplies = validateConditions(subConditionsArray, fields, fieldId) } else { for ( let conditionField in subConditionsArray ) { let invert = conditionField.indexOf('!')===0; if ( subConditionsArray.hasOwnProperty(conditionField) ) { let conditionValue = subConditionsArray[conditionField]; conditionField = conditionField.replace('!',''); let conditionFields = fields.filter(field => field.id === conditionField); if ( conditionFields.hasOwnProperty(0) ){ let field = conditionFields[0]; let actualValue = field.value; if ( field.type==='text_checkbox' ) { thisConditionApplies = actualValue.hasOwnProperty('show') && actualValue['show'] == conditionValue;//can be 1/true or 0/false } else if ( field.type==='checkbox' ) { thisConditionApplies = actualValue == conditionValue;//can be 1/true or 0/false } else if ( field.type==='multicheckbox' ) { //multicheckbox conditions //loop through objects thisConditionApplies = false; let arrayValue = actualValue; if ( arrayValue.length===0 ) { thisConditionApplies = false; } else { for (const key of Object.keys(arrayValue)) { if ( !Array.isArray(conditionValue) ) conditionValue = [conditionValue]; if ( conditionValue.includes(arrayValue[key])){ thisConditionApplies = true; break; } } } } else if ( field.type==='radio' ) { //as the regions field can be both radio and multicheckbox, an array is possible for a radio field if ( Array.isArray(conditionValue) ) { thisConditionApplies = conditionValue.includes(actualValue); } else { thisConditionApplies = conditionValue === actualValue; } } else { if (conditionValue === true ) { thisConditionApplies = actualValue===1 || actualValue === "1" || actualValue === true; } else if (conditionValue === false ) { thisConditionApplies = actualValue === 0 || actualValue === "0" || actualValue === false; } else if (conditionValue.indexOf('EMPTY')!==-1) { thisConditionApplies = actualValue.length === 0; } else { thisConditionApplies = String(actualValue).toLowerCase() === conditionValue.toLowerCase(); } } } } if ( invert ){ thisConditionApplies = !thisConditionApplies; } if ( relation === 'AND' ) { conditionApplies = conditionApplies && thisConditionApplies; } else { conditionApplies = conditionApplies || thisConditionApplies; } } if ( relation === 'AND' ) { conditionApplies = conditionApplies && thisConditionApplies; } else { conditionApplies = conditionApplies || thisConditionApplies; } } } } return conditionApplies ? 1 : 0; } PK�������!�CSN��N��#��settings/src/Settings/FilterData.jsnu�[��������// FilterData.js import {create} from 'zustand'; const filterData = create((set, get) => ({ selectedFilter: [], processingFilter: false, setSelectedFilter: (selectedFilter, activeGroupId) => { set((state) => ({ //we make it an array, so we can have multiple filters selectedFilter: {...state.selectedFilter, [activeGroupId]: selectedFilter}, })); }, getCurrentFilter: (activeGroupId) => get().selectedFilter[activeGroupId], setProcessingFilter: (processingFilter) => set({processingFilter}), })); export default filterData; PK�������!�3T'��'��:��settings/src/Settings/MixedContentScan/MixedContentScan.jsnu�[��������import {useState, useEffect} from "@wordpress/element"; import {Button, ToggleControl} from '@wordpress/components'; import { __ } from '@wordpress/i18n'; import ModalControl from "../../Modal/ModalControl"; import Icon from "../../utils/Icon"; import UseMixedContent from "./MixedContentData"; import useModal from "../../Modal/ModalData"; import React from "react"; const MixedContentScan = (props) => { const {fixedItems, ignoredItems} = useModal(); const {fetchMixedContentData, mixedContentData, runScanIteration, start, stop, dataLoaded, action, scanStatus, progress, completedStatus, nonce, removeDataItem, ignoreDataItem} = UseMixedContent(); const [showIgnoredUrls, setShowIgnoredUrls] = useState(false); const [resetPaginationToggle, setResetPaginationToggle] = useState(false); const [DataTable, setDataTable] = useState(null); const [theme, setTheme] = useState(null); useEffect( () => { import('react-data-table-component').then(({ default: DataTable, createTheme }) => { setDataTable(() => DataTable); setTheme(() => createTheme('really-simple-plugins', { divider: { default: 'transparent', }, }, 'light')); }); }, []); useEffect( () => { fetchMixedContentData(); }, [] ); useEffect( () => { if (scanStatus==='running') { runScanIteration() } }, [progress, scanStatus] ); const toggleIgnoredUrls = (e) => { setShowIgnoredUrls(!showIgnoredUrls); } let field = props.field; let columns = []; field.columns.forEach(function(item, i) { let newItem = { name: item.name, sortable: item.sortable, grow: item.grow, selector: row => row[item.column], right: !!item.right, } columns.push(newItem); }); let dataTable = dataLoaded ? mixedContentData : []; for (const item of dataTable) { item.warningControl = <span className="rsssl-task-status rsssl-warning">{__("Warning", "really-simple-ssl")}</span> //check if an item was recently fixed or ignored, and update the table if (fixedItems.includes(item.id)) { item.fixed = true; } if (ignoredItems.includes(item.id)) { item.ignored = true; } //give fix and details the url as prop if ( item.fix ) { item.fix.url = item.blocked_url; item.fix.nonce = nonce; } if (item.details) { item.details.url = item.blocked_url; item.details.nonce = nonce; item.details.ignored = item.ignored; } if (item.location.length > 0) { if (item.location.indexOf('http://') !== -1 || item.location.indexOf('https://') !== -1) { item.locationControl = <a href={item.location} target="_blank" rel="noopener noreferrer">{__("View", "really-simple-ssl")}</a> } else { item.locationControl = item.location; } } item.detailsControl = item.details && <ModalControl handleModal={props.handleModal} item={item} id={item.id} btnText={__("Details", "really-simple-ssl")} btnStyle={"secondary"} modalData={item.details}/>; item.fixControl = item.fix && <ModalControl className={"button button-primary"} handleModal={props.handleModal} item={item} id={item.id} btnText={__("Fix", "really-simple-ssl")} btnStyle={"primary"} modalData={item.fix}/>; } if ( !showIgnoredUrls ) { dataTable = dataTable.filter( item => !item.ignored, ); } //filter also recently fixed items dataTable = dataTable.filter( item => !item.fixed, ); let progressOutput =progress+'%'; let startDisabled = scanStatus === 'running'; let stopDisabled = scanStatus !== 'running'; const customStyles = { headCells: { style: { paddingLeft: '0', // override the cell padding for head cells paddingRight: '0', }, }, cells: { style: { paddingLeft: '0', // override the cell padding for data cells paddingRight: '0', }, }, }; const ExpandableRow = ({ data, disabled, handleFix }) => { return ( <div className="rsssl-container"> <div> <p> {data.details.description.map((item, i) => ( <React.Fragment key={'fragment-'+i}> <span>{item}</span> <br /> </React.Fragment> ))} </p> </div> <div className="" style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }} > {data.details.edit && ( <a href={data.details.edit} target="_blank" rel="noopener noreferrer" className="button button-secondary" style={{display: 'flex', alignItems: 'center', justifyContent: 'center', marginRight: '10px' }} > {__("Edit", "really-simple-ssl")} </a> )} {data.details.help && ( <button href={data.details.help} target="_blank" rel="noopener noreferrer" className="button button-red" style={{display: 'flex', alignItems: 'center', justifyContent: 'center', marginRight: '10px'}} > {__("Help", "really-simple-ssl")} </button> )} {!data.details.ignored && data.details.action === 'ignore_url' && ( <button disabled={disabled} className="button button-primary" onClick={(e) => handleFix(e, 'ignore')} style={{display: 'flex', alignItems: 'center', justifyContent: 'center', marginRight: '10px'}} > {__("Ignore", "really-simple-ssl")} </button> )} {data.details.action !== 'ignore_url' && ( <button disabled={disabled} className="button button-primary rsssl-action-buttons__button" onClick={(e) => handleFix(e, 'fix')} > {__("Fix", "really-simple-ssl")} </button> )} </div> </div> ); }; return ( <> <div className="rsssl-progress-container"> <div className="rsssl-progress-bar" style={{width: progressOutput}} ></div> </div> {scanStatus==='running' && <div className="rsssl-current-scan-action">{action}</div>} {dataTable.length===0 && <> <div className="rsssl-mixed-content-description"> {scanStatus!=='running' && completedStatus==='never' && __("No results. Start your first scan","really-simple-ssl")} {scanStatus!=='running' && completedStatus==='completed' && __("Everything is now served over SSL","really-simple-ssl")} </div> { (scanStatus ==='running' || completedStatus!=='completed') && <div className="rsssl-mixed-content-placeholder"> <div></div><div></div><div></div> </div> } { scanStatus!=='running' && completedStatus==='completed' && <div className="rsssl-shield-overlay"> <Icon name = "shield" size="80px"/> </div> } </>} { DataTable && dataTable.length>0 && <div className={'rsssl-mixed-content-datatable'}> <DataTable columns={columns} data={dataTable} expandableRows expandableRowsComponent={ExpandableRow} dense pagination paginationResetDefaultPage={resetPaginationToggle} // optionally, a hook to reset pagination to page 1 noDataComponent={__("No results", "really-simple-ssl")} //or your component theme={theme} customStyles={customStyles} /> </div> } <div className="rsssl-grid-item-content-footer"> <button className="button" disabled={startDisabled} onClick={ () => start() }>{__("Start scan","really-simple-ssl")}</button> <button className="button" disabled={stopDisabled} onClick={ () => stop() }>{__("Stop","really-simple-ssl")}</button> <ToggleControl checked= { showIgnoredUrls==1 } onChange={ (e) => toggleIgnoredUrls(e) } /> <label>{__('Show ignored URLs', 'really-simple-ssl')}</label> </div> </> ) } export default MixedContentScan; PK�������!�EL �� ��:��settings/src/Settings/MixedContentScan/MixedContentData.jsnu�[��������import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; const UseMixedContent = create(( set, get ) => ({ mixedContentData: [], dataLoaded:false, fixedItemId:false, action:'', nonce:'', completedStatus:'never', progress:0, scanStatus:false, fetchMixedContentData: async () => { set({ scanStatus: 'running' } ); const {data, progress, state, action, nonce, completed_status } = await getScanIteration(false); set({ scanStatus: state, mixedContentData: data, progress: progress, action: action, nonce: nonce, completedStatus: completed_status, dataLoaded: true, }); }, start: async () => { const {data, progress, state, action, nonce, completed_status } = await getScanIteration('start'); set({ scanStatus: state, mixedContentData: data, progress: progress, action: action, nonce: nonce, completedStatus: completed_status, dataLoaded:true, }); }, runScanIteration: async () => { let currentState = get().scanStatus; if ( currentState==='stop' ) { return; } const {data, progress, state, action, nonce, completed_status } = await getScanIteration(currentState); if ( get().scanStatus !== 'stop' ) { set({ scanStatus: state, mixedContentData: data, progress: progress, action: action, nonce: nonce, completedStatus: completed_status, dataLoaded:true, }); } }, stop: async () => { set({ scanStatus: 'stop' } ); const {data, progress, state, action, nonce, completed_status } = await getScanIteration('stop'); set({ scanStatus: 'stop', mixedContentData: data, progress: progress, action: action, nonce: nonce, completedStatus: completed_status, }); }, removeDataItem: (removeItem) => { let data = get().mixedContentData; for (const item of data) { if (item.id===removeItem.id){ item.fixed = true; } } set({ mixedContentData: data, }); }, ignoreDataItem: (ignoreItem) => { let data = get().mixedContentData; for (const item of data) { if (item.id===ignoreItem.id){ item.ignored = true; } } set({ mixedContentData: data, }); } })); export default UseMixedContent; const getScanIteration = async (state) => { return await rsssl_api.runTest('mixed_content_scan', state).then((response) => { let data = response.data; if (typeof data === 'object') { data = Object.values(data); } if ( !Array.isArray(data) ) { data = []; } response.data = data; if ( state==='stop' ) { response.state = 'stop'; } return response; }) } PK�������!�9��9��C��settings/src/Settings/LimitLoginAttempts/IpAddressDataTableStore.jsnu�[��������/* Creates A Store For Risk Data using Zustand */ import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; import {__} from "@wordpress/i18n"; import {produce} from "immer"; import React from "react"; const IpAddressDataTableStore = create((set, get) => ({ processing: false, dataLoaded: false, ipAddress: '', highestIP: '', lowestIP: '', statusSelected: 'blocked', inputRangeValidated: false, cidr: '', ip_count: '', canSetCidr: false, ipRange: {}, idSelected: '', pagination: {}, dataActions: {}, IpDataTable: [], maskError: false, rowCleared: false, setMaskError: (maskError) => { set({maskError}); }, /* * This function fetches the data from the server and fills the property IpDataTable * Note this function works with the DataTable class on serverside */ fetchIpData: async (action, dataActions) => { set({processing: true}); set({dataLoaded: false}); set({rowCleared: true}); //if the dataActions is empty we do nothing if (Object.keys(dataActions).length === 0) { return; } try { const response = await rsssl_api.doAction( action, dataActions ); //now we set the EventLog if (response) { //if the response is empty we set the dummyData set({IpDataTable: response, dataLoaded: true, processing: false, pagination: response.pagination}); } } catch (e) { console.log(e); } finally { set({processing: false}); set({rowCleared: false}); } }, /* * This function handles the search, it is called from the search from it's parent class */ handleIpTableSearch: async (search, searchColumns) => { //Add the search to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, search, searchColumns}; }) ); }, /* * This function handles the page change, it is called from the DataTable class */ handleIpTablePageChange: async (page, pageSize) => { //Add the page and pageSize to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, page, pageSize}; }) ); }, /* * This function handles the rows change, it is called from the DataTable class */ handleIpTableRowsChange: async (currentRowsPerPage, currentPage) => { //Add the page and pageSize to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, currentRowsPerPage, currentPage}; }) ); }, /* * This function handles the sort, it is called from the DataTable class */ handleIpTableSort: async (column, sortDirection) => { //Add the column and sortDirection to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, sortColumn: column, sortDirection}; }) ); }, /* * This function handles the filter, it is called from the GroupSetting class */ handleIpTableFilter: async (column, filterValue) => { //Add the column and sortDirection to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, filterColumn: column, filterValue}; }) ); }, /* * This function sets the ip address and is used by Cidr and IpAddressInput */ setIpAddress: (ipAddress) => { if(ipAddress.length === 0) { return; } let ipRegex = /^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$|^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,4}|((25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9]))|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9]))$/; if (ipAddress.includes('/')) { let finalIp = ''; // Split the input into IP and CIDR mask let [ip, mask] = ipAddress.split('/'); //if , we change it to . ip = ip.replace(/,/g, '.'); if (mask.length <= 0 ) { if (!ipRegex.test(ip)) { set({maskError: true}); } else { set({maskError: false}); } finalIp = `${ip}/${mask}`; } else { finalIp = mask ? `${ip}/${mask}` : ip; } set({ ipAddress: finalIp }) } else { if (!ipRegex.test(ipAddress)) { set({maskError: true}); } else { set({maskError: false}); } set({ ipAddress: ipAddress.replace(/,/g, '.') }) } }, resetRange: () => { set({inputRangeValidated: false}); set({highestIP: ''}); set({lowestIP: ''}); set({ipAddress: ''}); set({maskError: false}); }, /* * This function sets the status selected and is used by Cidr and IpAddressInput and from the options */ setStatusSelected: (statusSelected) => { set({statusSelected}); }, /* * This function sets the id selected and is used by Cidr and IpAddressInput and from the options */ setId: (idSelected) => { set({idSelected}); }, /* * This function updates the row only changing the status */ updateRow: async (id, status, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction( 'ip_update_row', {id, status} ); //now we set the EventLog if (response && response.request_success) { await get().fetchIpData('ip_list', dataActions); } } catch (e) { console.log(e); } finally { set({processing: false}); } }, /* * This function add a new row to the table */ addRow: async (ipAddress, status, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction('ip_add_ip_address', {ipAddress, status}); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { await get().fetchIpData('ip_list', dataActions); // Potentially notify the user of success, if needed. } else { // Handle any unsuccessful response if needed. console.log("Failed to add IP address: ", response.message); //we also clear the form set({ipAddress: ''}); } } catch (e) { console.log(e); // Notify the user of an error. } finally { set({processing: false}); //we also clear the form set({ipAddress: ''}); } }, /** * This function validates the ip address string if it is a proper ip address * This checks ipv4 addresses * * @param ip * @returns {boolean} */ validateIpv4: (ip) => { const parts = ip.split("."); if (parts.length !== 4) return false; for (let part of parts) { const num = parseInt(part, 10); console.log(num); if (isNaN(num) || num < 0 || num > 255) return false; } return true; }, /** * This function validates the ip address string if it is a proper ip address * This checks ipv6 addresses * * @param ip * @returns {boolean} */ validateIpv6: (ip) => { const parts = ip.split(":"); if (parts.length !== 8) return false; for (let part of parts) { if (part.length > 4 || !/^[0-9a-fA-F]+$/.test(part)) return false; } return true; }, extendIpV6: (ip) => { // Handle the special case of '::' at the start or end if (ip === '::') ip = '0::0'; // Handle the '::' within the address if (ip.includes('::')) { const parts = ip.split('::'); if (parts.length > 2) return false; const left = parts[0].split(':').filter(Boolean); const right = parts[1].split(':').filter(Boolean); // Calculate how many zeros are needed const zerosNeeded = 8 - (left.length + right.length); // Concatenate all parts with the appropriate number of zeros return [...left, ...Array(zerosNeeded).fill('0'), ...right].join(':'); } return ip; }, /** * This function converts the ip address to a number * * @param ip * @returns {*} */ ipToNumber: (ip) => { if (get().validateIpv4(ip)) { return get().ipV4ToNumber(ip); } else if (get().validateIpv6(get().extendIpV6(ip))) { return get().ipV6ToNumber(get().extendIpV6(ip)); } }, /** * This function converts the ip address to a number if it is a ipv4 address * @param ip * @returns {*} */ ipV4ToNumber: (ip) => { return ip.split(".").reduce((acc, cur) => (acc * 256 + parseInt(cur, 10)) >>> 0, 0); }, /** * This function converts the ip address to a number if it is a ipv6 address * @param ip * @returns {*} */ ipV6ToNumber: (ip) => { return ip.split(":").reduce((acc, cur) => { const segmentValue = parseInt(cur, 16); if (isNaN(segmentValue)) { console.warn(`Invalid segment in IPv6 address: ${oldIp}`); return acc; } return (acc << BigInt(16)) + BigInt(segmentValue); }, BigInt(0)); }, // ipV6ToNumber: (ip) => { // return ip.split(":").reduce((acc, cur) => (acc << BigInt(16)) + BigInt(parseInt(cur, 16)), BigInt(0)); // }, /** * This function validates the ip range, if the lowest is lower than the highest * This checks ipv4 and ipv6 addresses * * @param lowest * @param highest */ validateIpRange: (lowest, highest) => { set({inputRangeValidated: false}); let from = ''; let to = ''; //first we determine if the IP is ipv4 or ipv6 if (lowest && highest) { if (get().validateIpv4(lowest) && get().validateIpv4(highest)) { //now we check if the lowest is lower than the highest if (get().ipToNumber(lowest) > get().ipToNumber(highest)) { console.warn('lowest is higher than highest'); set({inputRangeValidated: false}); return; } from = lowest; to = highest; set({inputRangeValidated: true}); } else if (get().validateIpv6(get().extendIpV6(lowest)) && get().validateIpv6(get().extendIpV6(highest))) { //now we check if the lowest is lower than the highest if (get().ipToNumber(get().extendIpV6(lowest)) > get().ipToNumber(get().extendIpV6(highest))) { console.warn('lowest is higher than highest'); set({inputRangeValidated: false}); return; } from = get().extendIpV6(lowest); to = get().extendIpV6(highest); set({inputRangeValidated: true}); } } if (get().inputRangeValidated) { let lowest = from; let highest = to; set({ipRange: {lowest, highest}}); get().fetchCidrData('get_mask_from_range'); } }, /** * This function fetches the cidr data from the server and sets the cidr and ip_count * This function is called from the Cidr class * * @param action * @returns {Promise<void>} */ fetchCidrData: async (action) => { try { const response = await rsssl_api.doAction( action, get().ipRange ); //now we set the EventLog if (response) { //we set the cidrFound and cidrCount set({cidr: response.cidr, ipAddress: response.cidr, ip_count: response.ip_count, canSetCidr: true}); //we reload the event log } } catch (e) { console.log(e); } }, updateMultiRow: async (ids, status, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction( 'ip_update_multi_row', {ids, status} ); //now we set the EventLog if (response && response.request_success) { await get().fetchIpData('ip_list', dataActions); } } catch (e) { console.log(e); } finally { set({processing: false}); } }, resetRow: async (id, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction('delete_entry', {id} ); //now we set the EventLog if (response && response.request_success) { await get().fetchIpData('ip_list', get().dataActions); } else { console.log("Failed to remove IP address: ", response.message); } } catch (e) { console.log(e); } finally { set({processing: false}); } }, resetMultiRow: async (ids, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction( 'delete_multi_entries', {ids} ); //now we set the EventLog if (response && response.request_success) { await get().fetchIpData('ip_list', get().dataActions); } } catch (e) { console.log(e); } finally { set({processing: false}); } } })); export default IpAddressDataTableStore;PK�������!�! �� ��8��settings/src/Settings/LimitLoginAttempts/AddUserModal.jsnu�[��������import React, {useEffect, useState} from 'react'; import {Modal, MenuItem, SelectControl, Button} from "@wordpress/components"; import UserDataTableStore from "./UserDataTableStore"; import EventLogDataTableStore from "../EventLog/EventLogDataTableStore"; import {__} from "@wordpress/i18n"; const AddUserModal = (props) => { if (!props.isOpen) return null; const {addRow, maskError} = UserDataTableStore(); const {fetchDynamicData} = EventLogDataTableStore(); const [user, setUser] = useState(''); async function handleSubmit() { let status = props.status; // we check if statusSelected is not empty if (user !== '') { await addRow(user, status, props.dataActions); //we clear the input setUser(''); await fetchDynamicData('event_log'); //we close the modal props.onRequestClose(); } } return ( <Modal title={__("Add User", "really-simple-ssl")} shouldCloseOnClickOutside={true} shouldCloseOnEsc={true} overlayClassName="rsssl-modal-overlay" className="rsssl-modal" onRequestClose={props.onRequestClose} > <div className="modal-content"> <div className="modal-body" style={{ padding: "1em", }} > <div style={{ width: "95%", height: "100%", padding: "10px", }} > <p> <label htmlFor="username" className="rsssl-label" >{__("Username", "really-simple-ssl")}</label> <input type="text" className="rsssl-input full" id="username" name="username" onChange={(e) => setUser(e.target.value)} /> </p> </div> </div> <div className="modal-footer"> {/*//we add two buttons here for add row and cancel*/} <div className={'rsssl-grid-item-footer'} style ={{ display: 'flex', justifyContent: 'flex-end', alignItems: 'center', padding: '1em', } } > <Button isSecondary onClick={props.onRequestClose} style={{marginRight: '10px'}} > {__("Cancel", "really-simple-ssl")} </Button> <Button isPrimary onClick={handleSubmit} > {__("Add", "really-simple-ssl")} </Button> </div> </div> </div> </Modal> ) } export default AddUserModal;PK�������!�Np2 �� ��0��settings/src/Settings/LimitLoginAttempts/Cidr.jsnu�[��������import React, { useState, useEffect } from "react"; import IpAddressDataTableStore from "./IpAddressDataTableStore"; import IpAddressInput from "./IpAddressInput"; const Cidr = () => { const [lowestIP, setLowestIP] = useState(""); const [highestIP, setHighestIP] = useState(""); const [validated, setValidated] = useState(false); const { setIpAddress, validateIpRange, setIpRange } = IpAddressDataTableStore(); const cleanupIpAddress = (ipAddress) => { return ipAddress.replace(/,/g, '.'); } const handleLowestIPChange = (ip) => { setLowestIP(cleanupIpAddress(ip)); } const handleHighestIPChange = (ip) => { setHighestIP(cleanupIpAddress(ip)); } return ( <> <div className="rsssl-ip-address-input"> <div className="rsssl-ip-address-input__inner"> <div className="rsssl-ip-address-input__icon"></div> <IpAddressInput id="lowestIP" type="text" className="rsssl-ip-address-input__input" value={lowestIP} onChange={ (e) => handleLowestIPChange(e.target.value)} /> </div> <div className="rsssl-ip-address-input__inner"> <div className="rsssl-ip-address-input__icon"></div> <IpAddressInput id="highestIP" type="text" className="rsssl-ip-address-input__input" value={highestIP} onChange={(e) => handleHighestIPChange(e.target.value)} /> </div> <div className={'rsssl-container'}> <div className={'rsssl-container__inner'}> <button className={'button button--primary'} onClick={() => { validateIpRange(lowestIP, highestIP); }} > Validate </button> </div> </div> </div> </> ); } export default Cidr; PK�������!�82(��(��A��settings/src/Settings/LimitLoginAttempts/CountryDataTableStore.jsnu�[��������/* Creates A Store For Risk Data using Zustand */ import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; import {__} from "@wordpress/i18n"; import {produce} from "immer"; import React from "react"; import CountryDatatable from "./CountryDatatable"; const CountryDataTableStore = create((set, get) => ({ processing: false, dataLoaded: false, pagination: {}, dataActions: {}, CountryDataTable: [], rowCleared: false, fetchCountryData: async (action, dataActions) => { //we check if the processing is already true, if so we return set({processing: true}); set({dataLoaded: false}); set({rowCleared: true}); if (Object.keys(dataActions).length === 0) { return; } try { const response = await rsssl_api.doAction( action, dataActions ); //now we set the EventLog if (response && response.request_success) { set({CountryDataTable: response, dataLoaded: true, processing: false, pagination: response.pagination}); } set({ rowCleared: true }); } catch (e) { console.log(e); } finally { set({processing: false}); set({rowCleared: false}); } }, handleCountryTableSearch: async (search, searchColumns) => { //Add the search to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, search, searchColumns}; }) ); }, handleCountryTablePageChange: async (page, pageSize) => { //Add the page and pageSize to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, page, pageSize}; }) ); }, handleCountryTableRowsChange: async (currentRowsPerPage, currentPage) => { //Add the page and pageSize to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, currentRowsPerPage, currentPage}; }) ); }, //this handles all pagination and sorting handleCountryTableSort: async (column, sortDirection) => { //Add the column and sortDirection to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, sortColumn: column, sortDirection}; }) ); }, handleCountryTableFilter: async (column, filterValue) => { //Add the column and sortDirection to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, filterColumn: column, filterValue}; }) ); }, /* * This function add a new row to the table */ addRow: async (country, status, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction('add_country_to_list', {country, status}); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { await get().fetchCountryData('country_list', dataActions); // Potentially notify the user of success, if needed. } else { // Handle any unsuccessful response if needed. } } catch (e) { console.log(e); // Notify the user of an error. } finally { set({processing: false}); } }, addRowMultiple: async (countries, status, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction('add_countries_to_list', {countries, status}); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { await get().fetchCountryData('country_list', dataActions); // Potentially notify the user of success, if needed. } else { // Handle any unsuccessful response if needed. } } catch (e) { console.error(e); // Notify the user of an error. } finally { set({processing: false}); } }, removeRowMultiple: async (countries, status, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction('remove_countries_from_list', {countries, status}); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { await get().fetchCountryData('country_list', dataActions); // Potentially notify the user of success, if needed. } else { // Handle any unsuccessful response if needed. } } catch (e) { console.error(e); // Notify the user of an error. } finally { set({processing: false}); } }, removeRow: async (country, status, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction('remove_country_from_list', {country, status}); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { await get().fetchCountryData('country_list', dataActions); // Potentially notify the user of success, if needed. } else { // Handle any unsuccessful response if needed. } } catch (e) { console.log(e); // Notify the user of an error. } finally { set({processing: false}); } }, addRegion: async (region, status, dataActions) => { try { const response = await rsssl_api.doAction('add_region_to_list', {region, status}); if (response && response.request_success) { // Do any immediate operations here if needed await get().fetchCountryData('country_list', dataActions); } else { console.error("Failed to add region: ", response.message); } } catch (e) { console.error(e); } finally { set({processing: false}); } }, addRegions: async (regions, status, dataActions) => { try { const response = await rsssl_api.doAction('add_regions_to_list', {regions, status}); if (response && response.request_success) { // Do any immediate operations here if needed await get().fetchCountryData('country_list', dataActions); } else { console.error("Failed to add regions: ", response.message); } } catch (e) { console.error(e); } finally { set({processing: false}); } }, removeRegion: async (region, status, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction('remove_region_from_list', {region, status}); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { await get().fetchCountryData('country_list', dataActions); // Potentially notify the user of success, if needed. } else { // Handle any unsuccessful response if needed. console.error("Failed to remove region: ", response.message); } } catch (e) { console.error(e); // Notify the user of an error. } finally { set({processing: false}); } }, removeRegions: async (regions, status, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction('remove_regions_from_list', {regions, status}); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { // Potentially notify the user of success, if needed. await get().fetchCountryData('country_list', dataActions); } else { // Handle any unsuccessful response if needed. console.error("Failed to remove regions: ", response.message); } } catch (e) { console.error(e); // Notify the user of an error. } finally { set({processing: false}); } }, updateMultiRow: async (ids, status, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction( 'update_multi_row', {ids, status} ); //now we set the EventLog if (response) { await get().fetchCountryData('country_list', dataActions); } } catch (e) { console.log(e); } finally { set({processing: false}); } }, resetRow: async (id, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction( 'delete_entry', {id} ); //now we set the EventLog if (response) { await get().fetchCountryData('country_list', dataActions); } } catch (e) { console.log(e); } finally { set({processing: false}); } }, resetMultiRow: async (ids, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction( 'delete_multi_entries', {ids} ); //now we set the EventLog if (response) { await get().fetchCountryData('country_list', dataActions); } } catch (e) { console.log(e); } finally { set({processing: false}); } } })); export default CountryDataTableStore;PK�������!�^!��!��=��settings/src/Settings/LimitLoginAttempts/AddIpAddressModal.jsnu�[��������import React, {useEffect, useState} from 'react'; import { Modal, MenuItem, SelectControl, Button, __experimentalConfirmDialog as ConfirmDialog } from "@wordpress/components"; import IpAddressDataTableStore from "./IpAddressDataTableStore"; import {__} from "@wordpress/i18n"; import IpAddressInput from "./IpAddressInput"; import Cidr from "./Cidr"; import EventLogDataTableStore from "../EventLog/EventLogDataTableStore"; const AddIpAddressModal = (props) => { const { inputRangeValidated, fetchCidrData, ipAddress, setIpAddress, maskError, dataLoaded, addRow, resetRange} = IpAddressDataTableStore(); const [rangeDisplay, setRangeDisplay] = useState(false); const {fetchDynamicData} = EventLogDataTableStore(); const [resetFlag, setResetFlag] = useState(false); //we add a function to handle the range fill const handleRangeFill = () => { //we toggle the range displayß setRangeDisplay(!rangeDisplay); } useEffect(() => { //we validate the range if (inputRangeValidated) { //we get the mask fetchCidrData('get_mask_from_range') } }, [inputRangeValidated]); function handleSubmit() { let status = props.status; // we check if statusSelected is not empty if (ipAddress && maskError === false) { addRow(ipAddress, status, props.dataActions); //we clear the input resetRange(); //we close the modal props.onRequestClose(); //we fetch the data again fetchDynamicData('event_log') } } function handleCancel() { // Reset all local state setRangeDisplay(false); resetRange(); // Close the modal props.onRequestClose(); } if (!props.isOpen) { return null; } return ( <Modal title={__("Add IP Address", "really-simple-ssl")} shouldCloseOnClickOutside={true} shouldCloseOnEsc={true} overlayClassName="rsssl-modal-overlay" className="rsssl-modal" onRequestClose={props.onRequestClose} > <div className="modal-content"> <div className="modal-body" style={{ padding: "1em", }} > <div style={{ width: "95%", height: "100%", padding: "10px", }} > <div> <IpAddressInput label={__("IP Address", "really-simple-ssl")} id="ip-address" name="ip-address" showSwitch={true} value={ipAddress} onChange={(e) => setIpAddress(e.target.value)} /> </div> </div> </div> <div className="modal-footer"> {/*//we add two buttons here for add row and cancel*/} <div className={'rsssl-grid-item-footer'} style ={{ display: 'flex', justifyContent: 'flex-end', alignItems: 'center', padding: '1em', } } > <Button isSecondary onClick={handleCancel} style={{ marginRight: '10px' }} > {__("Cancel", "really-simple-ssl")} </Button> <Button isPrimary onClick={handleSubmit} > {__("Add", "really-simple-ssl")} </Button> </div> </div> </div> </Modal> ) } export default AddIpAddressModal;PK�������!�"7*!����:��settings/src/Settings/LimitLoginAttempts/IpAddressInput.jsnu�[��������import React, {useEffect, useState} from 'react'; import {__} from "@wordpress/i18n"; import Icon from "../../utils/Icon"; import IpAddressDataTableStore from "./IpAddressDataTableStore"; /** * Visual aid for adding an IP address to the list of blocked IP addresses * * @param props * @returns {*} * @constructor */ const IpAddressInput = (props) => { const [value, setValue] = useState(""); const [error, setError] = useState(false); const {maskError, setMaskError} = IpAddressDataTableStore(); return ( <> <label htmlFor={props.id} className="rsssl-label" >{props.label}</label> <br></br> <div className="input-container"> <input type="text" id={props.id} name={props.name} value={props.value} className={`rsssl-input full ${maskError ? 'rsssl-error' : 'rsssl-success'}`} onChange={props.onChange} /> </div> {maskError && <span style={{color: 'red', marginLeft: '10px'}}>{__('Invalid ip address', 'really-simple-ssl')}</span>} </> ) } export default IpAddressInput;PK�������!�<;=��=��<��settings/src/Settings/LimitLoginAttempts/CountryDatatable.jsnu�[��������import { useEffect, useState, useCallback } from 'react'; import DataTable, { createTheme } from "react-data-table-component"; import FieldsData from "../FieldsData"; import CountryDataTableStore from "./CountryDataTableStore"; import EventLogDataTableStore from "../EventLog/EventLogDataTableStore"; import FilterData from "../FilterData"; import Flag from "../../utils/Flag/Flag"; import { __ } from '@wordpress/i18n'; import useFields from "../FieldsData"; const CountryDatatable = (props) => { const { CountryDataTable, dataLoaded, fetchCountryData, processing, handleCountryTableFilter, addRow, removeRow, pagination, handleCountryTablePageChange, handleCountryTableRowsChange, handleCountryTableSort, handleCountryTableSearch, addRegion, removeRegion, addRowMultiple, removeRowMultiple, resetRow, resetMultiRow, dataActions, rowCleared, } = CountryDataTableStore(); const {showSavedSettingsNotice, saveFields} = FieldsData(); const { DynamicDataTable, fetchDynamicData, } = EventLogDataTableStore(); const { selectedFilter, setSelectedFilter, activeGroupId, getCurrentFilter, setProcessingFilter, } = FilterData(); const [rowsSelected, setRowsSelected] = useState([]); const moduleName = 'rsssl-group-filter-limit_login_attempts_country'; const {fields, fieldAlreadyEnabled, getFieldValue} = useFields(); const buildColumn = useCallback((column) => ({ //if the filter is set to region and the columns = status we do not want to show the column omit: getCurrentFilter(moduleName) === 'regions' && column.column === 'status', name: column.name, sortable: column.sortable, searchable: column.searchable, width: column.width, visible: column.visible, column: column.column, selector: row => row[column.column], }), []); let field = props.field; const columns = field.columns.map(buildColumn); const searchableColumns = columns .filter(column => column.searchable) .map(column => column.column); useEffect(() => { const currentFilter = getCurrentFilter(moduleName); if (!currentFilter) { setSelectedFilter('blocked', moduleName); } setProcessingFilter(processing); handleCountryTableFilter('status', currentFilter); }, [moduleName, handleCountryTableFilter, getCurrentFilter(moduleName), setSelectedFilter, CountryDatatable, processing]); useEffect(() => { setRowsSelected([]); }, [CountryDataTable]); //if the dataActions are changed, we fetch the data useEffect(() => { //we make sure the dataActions are changed in the store before we fetch the data if (dataActions) { fetchCountryData(field.action, dataActions) } }, [dataActions.sortDirection, dataActions.filterValue, dataActions.search, dataActions.page, dataActions.currentRowsPerPage, fieldAlreadyEnabled('enable_limited_login_attempts')]); let enabled = getFieldValue('enable_limited_login_attempts'); useEffect(() => { return () => { saveFields(false, false) }; }, [enabled]); const customStyles = { headCells: { style: { paddingLeft: '0', paddingRight: '0', }, }, cells: { style: { paddingLeft: '0', paddingRight: '0', }, }, }; createTheme('really-simple-plugins', { divider: { default: 'transparent', }, }, 'light'); const handleSelection = useCallback((state) => { setRowsSelected(state.selectedRows); }, []); const allowRegionByCode = useCallback(async (code, regionName = '') => { if (Array.isArray(code)) { const ids = code.map(item => item.id); const regions = code.map(item => item.region); await removeRegions(ids, '',dataActions); let regionsString = regions.join(', '); showSavedSettingsNotice(__('%s is now allowed', 'really-simple-ssl') .replace('%s',regionsString)); setRowsSelected([]); } else { await removeRegion(code, 'blocked', dataActions); showSavedSettingsNotice(__('%s is now allowed', 'really-simple-ssl') .replace('%s',regionName)); } await fetchDynamicData('event_log'); }, [removeRegion, getCurrentFilter(moduleName), dataActions]); const allowMultiple = useCallback((rows) => { const ids = rows.map(item => item.id); resetMultiRow(ids, 'blocked', dataActions); }, [resetMultiRow, getCurrentFilter(moduleName), dataActions]); const allowById = useCallback((id) => { resetRow(id, 'blocked', dataActions); }, [resetRow,getCurrentFilter(moduleName), dataActions]); const blockRegionByCode = useCallback(async (code, region = '') => { if (Array.isArray(code)) { const ids = code.map(item => item.id); const regions = code.map(item => item.region); await addRegions(ids, 'blocked', dataActions); let regionsString = regions.join(', '); showSavedSettingsNotice(__('%s has been blocked', 'really-simple-ssl') .replace('%s',regionsString)); setRowsSelected([]); } else { await addRegion(code, 'blocked', dataActions); showSavedSettingsNotice(__('%s has been blocked', 'really-simple-ssl') .replace('%s',region)); } await fetchDynamicData('event_log'); }, [addRegion, getCurrentFilter(moduleName), dataActions]); const allowCountryByCode = useCallback(async (code) => { if (Array.isArray(code)) { const ids = code.map(item => item.iso2_code); await removeRowMultiple(ids, 'blocked', dataActions ); setRowsSelected([]); } else { await removeRow(code, 'blocked', dataActions); } await fetchDynamicData('event_log'); }, [removeRow, removeRowMultiple, dataActions, getCurrentFilter(moduleName)]); const blockCountryByCode = useCallback(async (code) => { if (Array.isArray(code)) { const ids = code.map(item => item.iso2_code); await addRowMultiple(ids, 'blocked', dataActions); setRowsSelected([]); } else { await addRow(code, 'blocked', dataActions); } await fetchDynamicData('event_log'); }, [addRow, addRowMultiple, dataActions, getCurrentFilter(moduleName)]); const data = {...CountryDataTable.data}; const generateFlag = useCallback((flag, title) => ( <> <Flag countryCode={flag} style={{ fontSize: '2em', }} title={title} /> </> ), []); const ActionButton = ({ onClick, children, className }) => ( // <div className={`rsssl-action-buttons__inner`}> <button className={`button ${className} rsssl-action-buttons__button`} onClick={onClick} disabled={processing} > {children} </button> // </div> ); const generateActionButtons = useCallback((id, status, region_name) => ( <div className="rsssl-action-buttons"> {getCurrentFilter(moduleName) === 'blocked' && ( <ActionButton onClick={() => allowById(id)} className="button-secondary"> {__("Allow", "really-simple-ssl")} </ActionButton> )} {getCurrentFilter(moduleName) === 'regions' && ( <> <ActionButton onClick={() => blockRegionByCode(id, region_name)} className="button-primary"> {__("Block", "really-simple-ssl")} </ActionButton> <ActionButton onClick={() => allowRegionByCode(id, region_name)} className="button-secondary"> {__("Allow", "really-simple-ssl")} </ActionButton> </> )} {getCurrentFilter(moduleName) === 'countries' && ( <> {status === 'blocked' ? ( <ActionButton onClick={() => allowCountryByCode(id)} className="button-secondary"> {__("Allow", "really-simple-ssl")} </ActionButton> ) : ( <ActionButton onClick={() => blockCountryByCode(id)} className="button-primary"> {__("Block", "really-simple-ssl")} </ActionButton> )} </> )} </div> ), [getCurrentFilter, moduleName, allowById, blockRegionByCode, allowRegionByCode, blockCountryByCode, allowCountryByCode]); for (const key in data) { const dataItem = {...data[key]}; if (getCurrentFilter(moduleName) === 'regions' || getCurrentFilter(moduleName) === 'countries') { dataItem.action = generateActionButtons(dataItem.attempt_value, dataItem.status, dataItem.region); } else { dataItem.action = generateActionButtons(dataItem.id); } dataItem.attempt_value = generateFlag(dataItem.attempt_value, dataItem.country_name); dataItem.status = __(dataItem.status = dataItem.status.charAt(0).toUpperCase() + dataItem.status.slice(1), 'really-simple-ssl'); data[key] = dataItem; } const options = Object.entries(props.field.options).map(([value, label]) => ({ value, label })); let paginationSet = true; if (typeof pagination === 'undefined') { paginationSet = false; } return ( <> <div className="rsssl-container"> <div> {/* reserved for left side buttons */} </div> <div className="rsssl-search-bar"> <div className="rsssl-search-bar__inner"> <div className="rsssl-search-bar__icon"></div> <input type="text" className="rsssl-search-bar__input" placeholder={__("Search", "really-simple-ssl")} disabled={processing} onKeyUp={event => { if (event.key === 'Enter') { handleCountryTableSearch(event.target.value, searchableColumns); } }} /> </div> </div> </div> {rowsSelected.length > 0 && ( <div style={{ marginTop: '1em', marginBottom: '1em', }} > <div className={"rsssl-multiselect-datatable-form rsssl-primary"}> <div> {__("You have selected %s rows", "really-simple-ssl").replace('%s', rowsSelected.length)} </div> <div className="rsssl-action-buttons"> {getCurrentFilter(moduleName) === 'countries' && ( <> <ActionButton onClick={() => allowCountryByCode(rowsSelected)}> {__("Allow", "really-simple-ssl")} </ActionButton> <ActionButton onClick={() => blockCountryByCode(rowsSelected)} className="button-primary"> {__("Block", "really-simple-ssl")} </ActionButton> </> )} {getCurrentFilter(moduleName) === 'blocked' && ( <ActionButton onClick={() => allowMultiple(rowsSelected)}> {__("Allow", "really-simple-ssl")} </ActionButton> )} {getCurrentFilter(moduleName) === 'regions' && ( <> <ActionButton onClick={() => allowRegionByCode(rowsSelected)} className="button-primary"> {__("Allow", "really-simple-ssl")} </ActionButton> <ActionButton onClick={() => blockRegionByCode(rowsSelected)}> {__("Block", "really-simple-ssl")} </ActionButton> </> )} </div> </div> </div> )} <DataTable columns={columns} data={processing? [] : Object.values(data)} dense pagination={!processing} paginationServer paginationTotalRows={paginationSet? pagination.totalRows: 10} paginationPerPage={paginationSet? pagination.perPage: 10} paginationDefaultPage={paginationSet?pagination.currentPage: 1} paginationComponentOptions={{ rowsPerPageText: __('Rows per page:', 'really-simple-ssl'), rangeSeparatorText: __('of', 'really-simple-ssl'), noRowsPerPage: false, selectAllRowsItem: false, selectAllRowsItemText: __('All', 'really-simple-ssl'), }} onChangeRowsPerPage={handleCountryTableRowsChange} onChangePage={handleCountryTablePageChange} sortServer={!processing} onSort={handleCountryTableSort} paginationRowsPerPageOptions={[10, 25, 50, 100]} noDataComponent={__("No results", "really-simple-ssl")} persistTableHead selectableRows={!processing} clearSelectedRows={rowCleared} onSelectedRowsChange={handleSelection} theme="really-simple-plugins" customStyles={customStyles} /> {!enabled && ( <div className="rsssl-locked"> <div className="rsssl-locked-overlay"><span className="rsssl-task-status rsssl-open">{__('Disabled', 'really-simple-ssl')}</span><span>{__('Activate Limit login attempts to enable this block.', 'really-simple-ssl')}</span> </div> </div> )} </> ); } export default CountryDatatable; PK�������!�6��6��>��settings/src/Settings/LimitLoginAttempts/IpAddressDatatable.jsnu�[��������import {__} from '@wordpress/i18n'; import React, {useEffect, useRef, useState, StrictMode, useCallback} from 'react'; import DataTable, {createTheme} from "react-data-table-component"; import IpAddressDataTableStore from "./IpAddressDataTableStore"; import EventLogDataTableStore from "../EventLog/EventLogDataTableStore"; import FilterData from "../FilterData"; import Flag from "../../utils/Flag/Flag"; import AddIpAddressModal from "./AddIpAddressModal"; import useFields from "../FieldsData"; const IpAddressDatatable = (props) => { const { IpDataTable, dataLoaded, dataActions, handleIpTableRowsChange, updateMultiRow, fetchIpData, handleIpTableSort, handleIpTablePageChange, handleIpTableSearch, handleIpTableFilter, ipAddress, updateRow, pagination, resetRow, resetMultiRow, setStatusSelected, rowCleared, processing } = IpAddressDataTableStore() const { DynamicDataTable, fetchDynamicData, } = EventLogDataTableStore(); //here we set the selectedFilter from the Settings group const { selectedFilter, setSelectedFilter, activeGroupId, getCurrentFilter, setProcessingFilter, } = FilterData(); const [addingIpAddress, setAddingIpAddress] = useState(false); const [rowsSelected, setRowsSelected] = useState([]); const {fields, fieldAlreadyEnabled, getFieldValue, saveFields} = useFields(); const moduleName = 'rsssl-group-filter-limit_login_attempts_ip_address'; const buildColumn = useCallback((column) => ({ name: column.name, sortable: column.sortable, searchable: column.searchable, width: column.width, visible: column.visible, column: column.column, selector: row => row[column.column], }), []); //getting the fields from the props let field = props.field; //we loop through the fields const columns = field.columns.map(buildColumn); useEffect(() => { const currentFilter = getCurrentFilter(moduleName); if (!currentFilter) { setSelectedFilter('locked', moduleName); } setProcessingFilter(processing); handleIpTableFilter('status', currentFilter); }, [moduleName, handleIpTableFilter, getCurrentFilter(moduleName), setSelectedFilter, IpDataTable, processing]); useEffect(() => { setRowsSelected([]); }, [IpDataTable]); //if the dataActions are changed, we fetch the data useEffect(() => { //we make sure the dataActions are changed in the store before we fetch the data if (dataActions) { fetchIpData(field.action, dataActions); } }, [dataActions.sortDirection, dataActions.filterValue, dataActions.search, dataActions.page, dataActions.currentRowsPerPage, fieldAlreadyEnabled('enable_limited_login_attempts')]); const customStyles = { headCells: { style: { paddingLeft: '0', // override the cell padding for head cells paddingRight: '0', }, }, cells: { style: { paddingLeft: '0', // override the cell padding for data cells paddingRight: '0', }, }, }; createTheme('really-simple-plugins', { divider: { default: 'transparent', }, }, 'light'); let enabled = getFieldValue('enable_limited_login_attempts'); const handleOpen = () => { setAddingIpAddress(true); }; const handleClose = () => { setAddingIpAddress(false); }; let searchableColumns = []; //setting the searchable columns columns.map(column => { if (column.searchable) { searchableColumns.push(column.column); } }); //now we get the options for the select control let options = props.field.options; //we divide the key into label and the value into value options = Object.entries(options).map((item) => { return {label: item[1], value: item[0]}; }); function handleStatusChange(value, id) { //if the id is not 'new' we update the row if (id !== 'new') { updateRow(id, value); } else { //if the id is 'new' we set the statusSelected setStatusSelected(value); } } //we convert the data to an array let data = Object.values({...IpDataTable.data}); const blockIpAddresses = useCallback(async (data) => { //we check if the data is an array if (Array.isArray(data)) { const ids = data.map((item) => item.id); await updateMultiRow(ids, 'blocked'); setRowsSelected([]); } else { await updateRow(data, 'blocked'); } await fetchDynamicData('event_log') }, [updateMultiRow, updateRow, fetchDynamicData]); const allowIpAddresses = useCallback(async (data) => { //we check if the data is an array if (Array.isArray(data)) { const ids = data.map((item) => item.id); await updateMultiRow(ids, 'allowed'); setRowsSelected([]); } else { await updateRow(data, 'allowed'); } await fetchDynamicData('event_log') }, [updateMultiRow, updateRow, fetchDynamicData]); const resetIpAddresses = useCallback(async (data) => { //we check if the data is an array if (Array.isArray(data)) { const ids = data.map((item) => item.id); await resetMultiRow(ids, dataActions); //we emtry the rowsSelected setRowsSelected([]); } else { await resetRow(data, dataActions); } fetchDynamicData('event_log') }, [resetMultiRow, resetRow, fetchDynamicData]); function generateOptions(status, id) { //if the there is no id we set it to new if (!id) { id = 'new'; } return ( <select className="rsssl-select" value={status} onChange={(event) => handleStatusChange(event.target.value, id)} > {options.map((item, i) => { //if item value = locked the option will show but is nog selectable let disabled = false; if (item.value === 'locked') { disabled = true; } return ( <option key={'ip-options-'+i} value={item.value} disabled={disabled}> {item.label} </option> ); })} </select> ); } function generateFlag(flag, title) { return ( <> <Flag countryCode={flag} style={{ fontSize: '2em', marginLeft: '0.3em', }} title={title} ></Flag> </> ) } const ActionButton = ({onClick, children, className}) => ( <div className={`rsssl-action-buttons__inner`}> <button className={`button ${className} rsssl-action-buttons__button`} onClick={onClick} disabled={processing} > {children} </button> </div> ); function generateActionbuttons(id) { return ( <> <div className="rsssl-action-buttons"> <ActionButton className="button-red" onClick={() => { resetIpAddresses(id); }}> {__("Delete", "really-simple-ssl")} </ActionButton> </div> </> ); } for (const key in data) { let dataItem = {...data[key]} dataItem.action = generateActionbuttons(dataItem.id); dataItem.status = __(dataItem.status = dataItem.status.charAt(0).toUpperCase() + dataItem.status.slice(1), 'really-simple-ssl'); data[key] = dataItem; } function handleSelection(state) { setRowsSelected(state.selectedRows); } let paginationSet = true; if (typeof pagination === 'undefined') { paginationSet = false; } return ( <> <AddIpAddressModal isOpen={addingIpAddress} onRequestClose={handleClose} options={options} value={ipAddress} status={getCurrentFilter(moduleName)} dataActions={dataActions} > </AddIpAddressModal> <div className="rsssl-container"> {/*display the add button on left side*/} <div className="rsssl-add-button"> {(getCurrentFilter(moduleName) === 'blocked' || getCurrentFilter(moduleName) === 'allowed') && ( <div className="rsssl-add-button__inner"> <button className="button button-secondary button-datatable rsssl-add-button__button" onClick={handleOpen} disabled={processing} > {getCurrentFilter(moduleName) === 'blocked' && ( <>{__("Block IP Address", "really-simple-ssl")}</> )} {getCurrentFilter(moduleName) === 'allowed' && ( <>{__("Trust IP Address", "really-simple-ssl")}</> )} </button> </div> )} </div> {/*Display the search bar*/} <div className="rsssl-search-bar"> <div className="rsssl-search-bar__inner"> <div className="rsssl-search-bar__icon"></div> <input type="text" className="rsssl-search-bar__input" placeholder={__("Search", "really-simple-ssl")} disabled={processing} onKeyUp={(event) => { if (event.key === 'Enter') { handleIpTableSearch(event.target.value, searchableColumns); } }} /> </div> </div> </div> { /*Display the action form what to do with the selected*/} {rowsSelected.length > 0 && ( <div style={{ marginTop: '1em', marginBottom: '1em', }}> <div className={"rsssl-multiselect-datatable-form rsssl-primary"} > <div> {__("You have selected %s rows", "really-simple-ssl").replace('%s', rowsSelected.length)} </div> <div className="rsssl-action-buttons"> <ActionButton className="button-red" onClick={() => { resetIpAddresses(rowsSelected); }} > {__("Delete", "really-simple-ssl")} </ActionButton> </div> </div> </div> )} {/*Display the datatable*/} <DataTable columns={columns} data={processing ? [] : data} dense paginationServer paginationTotalRows={paginationSet? pagination.totalRows: 10} paginationPerPage={paginationSet? pagination.perPage: 10} paginationDefaultPage={paginationSet?pagination.currentPage: 1} paginationComponentOptions={{ rowsPerPageText: __('Rows per page:', 'really-simple-ssl'), rangeSeparatorText: __('of', 'really-simple-ssl'), noRowsPerPage: false, selectAllRowsItem: false, selectAllRowsItemText: __('All', 'really-simple-ssl'), }} loading={dataLoaded} pagination={!processing} onChangeRowsPerPage={handleIpTableRowsChange} onChangePage={handleIpTablePageChange} sortServer={!processing} onSort={handleIpTableSort} paginationRowsPerPageOptions={[10, 25, 50, 100]} noDataComponent={__("No results", "really-simple-ssl")} persistTableHead selectableRows={!processing} onSelectedRowsChange={handleSelection} clearSelectedRows={rowCleared} theme="really-simple-plugins" customStyles={customStyles} ></DataTable> {!enabled && ( <div className="rsssl-locked"> <div className="rsssl-locked-overlay"><span className="rsssl-task-status rsssl-open">{__('Disabled', 'really-simple-ssl')}</span><span>{__('Activate Limit login attempts to enable this block.', 'really-simple-ssl')}</span> </div> </div> )} </> ); } export default IpAddressDatatable;PK�������!�b����B��settings/src/Settings/LimitLoginAttempts/LimitLoginAttemptsData.jsnu�[��������/* Creates A Store For Risk Data using Zustand */ import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; import {__} from "@wordpress/i18n"; import {produce} from "immer"; import React from "react"; const LimitLoginAttemptsData = create((set, get) => ({ processing:false, dataLoaded: false, EventLog: [], fetchEventLog: async (selectedFilter) => { set({processing:true}); try { let response = await rsssl_api.doAction(selectedFilter); set({EventLog: response, dataLoaded: true, processing:false}); } catch (e) { console.log(e); } } })); export default LimitLoginAttemptsData;PK�������!�ڷW,��,��9��settings/src/Settings/LimitLoginAttempts/UserDatatable.jsnu�[��������import {__} from '@wordpress/i18n'; import React, {useCallback, useEffect, useRef, useState} from 'react'; import DataTable, {createTheme} from "react-data-table-component"; import UserDataTableStore from "./UserDataTableStore"; import FilterData from "../FilterData"; import {button} from "@wordpress/components"; import {produce} from "immer"; import AddIpAddressModal from "./AddIpAddressModal"; import AddUserModal from "./AddUserModal"; import EventLogDataTableStore from "../EventLog/EventLogDataTableStore"; import useFields from "../FieldsData"; const UserDatatable = (props) => { const { UserDataTable, dataLoaded, fetchUserData, processing, handleUserTableFilter, handleUserTablePageChange, pagination, resetRow, resetMultiRow, dataActions, handleUserTableRowsChange, handleUserTableSort, handleUserTableSearch, updateMultiRow, updateRow, rowCleared } = UserDataTableStore() const { DynamicDataTable, fetchDynamicData, } = EventLogDataTableStore(); //here we set the selectedFilter from the Settings group const { selectedFilter, setSelectedFilter, activeGroupId, getCurrentFilter, setProcessingFilter, } = FilterData(); const [rowsSelected, setRowsSelected] = useState([]); const [addingUser, setAddingUser] = useState(false); const [user, setUser] = useState(''); const moduleName = 'rsssl-group-filter-limit_login_attempts_users'; const {fields, fieldAlreadyEnabled, getFieldValue, saveFields} = useFields(); const buildColumn = useCallback((column) => ({ name: column.name, sortable: column.sortable, searchable: column.searchable, width: column.width, visible: column.visible, column: column.column, selector: row => row[column.column], }), []); //getting the fields from the props let field = props.field; //we loop through the fields const columns = field.columns.map(buildColumn); const searchableColumns = columns .filter(column => column.searchable) .map(column => column.column); useEffect(() => { const currentFilter = getCurrentFilter(moduleName); if (!currentFilter) { setSelectedFilter('locked', moduleName); } setProcessingFilter(processing); handleUserTableFilter('status', currentFilter); }, [moduleName, handleUserTableFilter, getCurrentFilter(moduleName), setSelectedFilter, UserDatatable, processing]); useEffect(() => { setRowsSelected([]); }, [UserDataTable]); //if the dataActions are changed, we fetch the data useEffect(() => { //we make sure the dataActions are changed in the store before we fetch the data if (dataActions) { fetchUserData(field.action, dataActions) } }, [dataActions.sortDirection, dataActions.filterValue, dataActions.search, dataActions.page, dataActions.currentRowsPerPage, fieldAlreadyEnabled('enable_limited_login_attempts')]); let enabled = getFieldValue('enable_limited_login_attempts'); const customStyles = { headCells: { style: { paddingLeft: '0', // override the cell padding for head cells paddingRight: '0', }, }, cells: { style: { paddingLeft: '0', // override the cell padding for data cells paddingRight: '0', }, }, }; createTheme('really-simple-plugins', { divider: { default: 'transparent', }, }, 'light'); const handleOpen = () => { setAddingUser(true); }; const handleClose = () => { setAddingUser(false); }; //now we get the options for the select control let options = props.field.options; //we divide the key into label and the value into value options = Object.entries(options).map((item) => { return {label: item[1], value: item[0]}; }); const blockUsers = useCallback(async (data) => { if (Array.isArray(data)) { const ids = data.map((item) => item.id); await updateMultiRow(ids, 'blocked'); setRowsSelected([]); } else { await updateRow(data, 'blocked'); } await fetchDynamicData('event_log'); }, [updateMultiRow, updateRow, fetchDynamicData]); const allowUsers = useCallback(async (data) => { if (Array.isArray(data)) { const ids = data.map((item) => item.id); await updateMultiRow(ids, 'allowed'); setRowsSelected([]); } else { await updateRow(data, 'allowed'); } await fetchDynamicData('event_log'); }, [updateMultiRow, updateRow, fetchDynamicData]); const resetUsers = useCallback(async (data) => { if (Array.isArray(data)) { const ids = data.map((item) => item.id); await resetMultiRow(ids, dataActions); setRowsSelected([]); } else { await resetRow(data, dataActions); } await fetchDynamicData('event_log'); }, [resetMultiRow, resetRow, fetchDynamicData, dataActions]); const handleSelection = useCallback((state) => { setRowsSelected(state.selectedRows); }, []); const ActionButton = ({onClick, children, className}) => ( <div className={`rsssl-action-buttons__inner`}> <button className={`button ${className} rsssl-action-buttons__button`} onClick={onClick} disabled={processing} > {children} </button> </div> ); const generateActionButtons = useCallback((id, status, region_name) => ( <div className="rsssl-action-buttons"> <ActionButton onClick={() => { resetUsers(id); }} className="button-red"> {__("Delete", "really-simple-ssl")} </ActionButton> </div> ), [getCurrentFilter(moduleName), moduleName, resetUsers, blockUsers, allowUsers]); //we convert the data to an array let data = {...UserDataTable.data}; for (const key in data) { let dataItem = {...data[key]} //we add the action buttons dataItem.action = generateActionButtons(dataItem.id); dataItem.status = __(dataItem.status = dataItem.status.charAt(0).toUpperCase() + dataItem.status.slice(1), 'really-simple-ssl'); data[key] = dataItem; } let paginationSet = true; if (typeof pagination === 'undefined') { paginationSet = false; } return ( <> <AddUserModal isOpen={addingUser} onRequestClose={handleClose} options={options} value={user} status={getCurrentFilter(moduleName)} dataActions={dataActions} > </AddUserModal> <div className="rsssl-container"> {/*display the add button on left side*/} <div className="rsssl-add-button"> {(getCurrentFilter(moduleName) === 'blocked' || getCurrentFilter(moduleName) === 'allowed') && ( <div className="rsssl-add-button__inner"> <button className="button button-secondary rsssl-add-button__button" disabled={processing} onClick={handleOpen} > {getCurrentFilter(moduleName) === 'blocked' && ( <>{__("Block username", "really-simple-ssl")}</> )} {getCurrentFilter(moduleName) === 'allowed' && ( <>{__("Trust username", "really-simple-ssl")}</> )} </button> </div> )} </div> {/*Display the search bar*/} <div className="rsssl-search-bar"> <div className="rsssl-search-bar__inner"> <div className="rsssl-search-bar__icon"></div> <input type="text" className="rsssl-search-bar__input" placeholder={__("Search", "really-simple-ssl")} disabled={processing} onKeyUp={event => { if (event.key === 'Enter') { handleUserTableSearch(event.target.value, searchableColumns) } }} /> </div> </div> </div> { /*Display the action form what to do with the selected*/} {rowsSelected.length > 0 && ( <div style={{ marginTop: '1em', marginBottom: '1em', }}> <div className={"rsssl-multiselect-datatable-form rsssl-primary"} > <div> {__("You have selected %s rows", "really-simple-ssl").replace('%s', rowsSelected.length)} </div> <div className="rsssl-action-buttons"> {/* if the id is new we show the Delete button */} <ActionButton className="button button-red rsssl-action-buttons__button" onClick={() => {resetUsers(rowsSelected)}}> {__("Delete", "really-simple-ssl")} </ActionButton> </div> </div> </div> )} {/*Display the datatable*/} <DataTable columns={columns} data={processing && !dataLoaded? [] : Object.values(data)} dense pagination={!processing} paginationServer paginationTotalRows={paginationSet? pagination.totalRows: 10} onChangeRowsPerPage={handleUserTableRowsChange} onChangePage={handleUserTablePageChange} sortServer={!processing} onSort={handleUserTableSort} paginationRowsPerPageOptions={[10, 25, 50, 100]} selectableRows={!processing} onSelectedRowsChange={handleSelection} clearSelectedRows={rowCleared} noDataComponent={__("No results", "really-simple-ssl")} persistTableHead theme="really-simple-plugins" customStyles={customStyles} ></DataTable> {!enabled && ( <div className="rsssl-locked"> <div className="rsssl-locked-overlay"><span className="rsssl-task-status rsssl-open">{__('Disabled', 'really-simple-ssl')}</span><span>{__('Activate Limit login attempts to enable this block.', 'really-simple-ssl')}</span> </div> </div> )} </> ); } export default UserDatatable; PK�������!�e5,��,��>��settings/src/Settings/LimitLoginAttempts/UserDataTableStore.jsnu�[��������/* Creates A Store For Risk Data using Zustand */ import {create} from 'zustand'; import * as rsssl_api from "../../utils/api"; import {__} from "@wordpress/i18n"; import {produce} from "immer"; import React from "react"; const UserDataTableStore = create((set, get) => ({ processing: false, dataLoaded: false, pagination: {}, dataActions: {}, UserDataTable: [], rowCleared: false, fetchUserData: async (action, dataActions) => { //we check if the processing is already true, if so we return set({processing: true}); set({dataLoaded: false}); set({rowCleared: true}); if (Object.keys(dataActions).length === 0) { let dataActions = get().dataActions; } if ( !get().processing ) { return; } //we empty all existing data set({UserDataTable: []}); try { const response = await rsssl_api.doAction( action, dataActions ); //now we set the EventLog //now we set the EventLog if (response && response.request_success) { set({UserDataTable: response, dataLoaded: true, processing: false, pagination: response.pagination}); } set({ rowCleared: true }); } catch (e) { console.log(e); } finally { set({processing: false}); set({rowCleared: false}); } }, handleUserTableSearch: async (search, searchColumns) => { //Add the search to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, search, searchColumns}; }) ); }, handleUserTablePageChange: async (page, pageSize) => { //Add the page and pageSize to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, page, pageSize}; }) ); }, handleUserTableRowsChange: async (currentRowsPerPage, currentPage) => { //Add the page and pageSize to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, currentRowsPerPage, currentPage}; }) ); }, //this handles all pagination and sorting handleUserTableSort: async (column, sortDirection) => { //Add the column and sortDirection to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, sortColumn: column, sortDirection}; }) ); }, handleUserTableFilter: async (column, filterValue) => { //Add the column and sortDirection to the dataActions set(produce((state) => { state.dataActions = {...state.dataActions, filterColumn: column, filterValue}; }) ); }, /* * This function add a new row to the table */ addRow: async (user, status, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction('user_add_user', {user, status}); // Consider checking the response structure for any specific success or failure signals if (response && response.request_success) { await get().fetchUserData('user_list', dataActions); // Potentially notify the user of success, if needed. } else { // Handle any unsuccessful response if needed. console.log("Failed to add User: ", response.message); } } catch (e) { console.log(e); // Notify the user of an error. } finally { set({processing: false}); } }, /* * This function updates the row only changing the status */ updateRow: async (id, status, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction( 'user_update_row', {id, status} ); //now we set the EventLog if (response) { await get().fetchUserData('user_list', dataActions); } } catch (e) { console.log(e); } finally { set({processing: false}); } }, updateMultiRow: async (ids, status, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction( 'user_update_multi_row', {ids, status} ); //now we set the EventLog if (response && response.request_success) { await get().fetchUserData('user_list', dataActions); } } catch (e) { console.log(e); } finally { set({processing: false}); } }, resetRow: async (id, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction( 'delete_entry', {id} ); //now we set the EventLog if (response) { await get().fetchUserData('user_list', dataActions); } } catch (e) { console.log(e); } finally { set({processing: false}); } }, resetMultiRow: async (ids, dataActions) => { set({processing: true}); try { const response = await rsssl_api.doAction( 'delete_multi_entries', {ids} ); //now we set the EventLog if (response) { await get().fetchUserData('user_list', dataActions); } } catch (e) { console.log(e); } finally { set({processing: false}); } } })); export default UserDataTableStore;PK�������!�@9'��'��%��settings/src/Settings/PostDropDown.jsnu�[��������/** * This file contains the PostDropdown component. * * This component displays a dropdown menu that allows the user to select a post * from a list of posts fetched from the WordPress database. The selected post * is then used to set a value in an options array stored in the WordPress * database. The component also allows the user to search for posts by typing * in a search box. */ import React, { useState, useEffect } from "react"; import { __ } from '@wordpress/i18n'; import TextField from '@material-ui/core/TextField'; import apiFetch from '@wordpress/api-fetch'; import useFields from "./FieldsData"; const PostDropdown = ({ field }) => { const [posts, setPosts] = useState([]); const [selectedPost, setSelectedPost] = useState(""); const {updateField, setChangedField} = useFields(); const [ThemeProvider, setThemeProvider] = useState(null); const [theme, setTheme] = useState(null); const [Autocomplete, setAutocomplete] = useState(null); useEffect( () => { import('@material-ui/lab/Autocomplete').then(({ default: Autocomplete }) => { setAutocomplete(() => Autocomplete); }); import ('@material-ui/core/styles').then(({ createTheme, ThemeProvider }) => { setThemeProvider(() => ThemeProvider); setTheme(() => createTheme({ typography: { fontSize: 12, fontFamily: 'inherit', }, overrides: { MuiInputBase: { root: { fontSize: '12px', fontFamily: 'inherit', height: '40px', } }, MuiList: { root: { fontSize: '8px', } }, MuiAutocomplete: { inputRoot: { '& .MuiAutocomplete-input': { border: 0, }, flexWrap: 'inherit', }, popper: { fontSize: '12px', }, paper: { fontSize: '12px', }, option: { fontSize: '12px', }, root: { padding: 0, } }, }, }) ); }); }, []); // Fetch the list of posts from the WordPress database when the component mounts. useEffect(() => { apiFetch({ path: '/wp/v2/pages?per_page=100' }) .then((data) => { const formattedData = data.map(post => ({ title: post.title.rendered, id: post.id })); setPosts([{ 'title': "404 (default)", 'id': "404_default" }, ...formattedData]); }); }, []); // Fetch the data for the selected post from the WordPress database when the component mounts. useEffect(() => { if (field.value !== '404_default') { apiFetch({ path: `wp/v2/pages/${field.value}` }) .then((data) => { if (data.title) { setSelectedPost({ 'title': data.title.rendered, 'id': field.value }) } else { setSelectedPost({ 'title': "404 (default)", 'id': '404_default' }) } }); } else { setSelectedPost({ 'title': "404 (default)", 'id': '404_default' }) } }, [field.value]); if (!Autocomplete || !ThemeProvider || !theme) { return null; } return ( <div> <label htmlFor="rsssl-filter-post-input"> {__("Redirect to this post when someone tries to access /wp-admin or /wp-login.php. The default is a 404 page.","really-simple-ssl")} </label> <ThemeProvider theme={theme}> <Autocomplete options={posts} getOptionLabel={(option) => option.title ? option.title : ''} renderInput={(params) => ( <TextField {...params} variant="outlined" placeholder={__('Search for a post.','really-simple-ssl')} /> )} getOptionSelected={(option, value) => { return option.id === value.id; }} onChange={(event, newValue) => { let value = newValue && newValue.id ? newValue.id : '404_default'; updateField(field.id, value); setChangedField( field.id, value ); }} value={selectedPost} /> </ThemeProvider> </div> ); }; export default PostDropdown;PK�������!� 1w��w��'��settings/src/Settings/PremiumOverlay.jsnu�[��������import {__} from "@wordpress/i18n"; import Hyperlink from "../utils/Hyperlink"; import useLicense from "./License/LicenseData"; const PremiumOverlay = ({msg, title, url, upgrade}) => { const {licenseStatus} = useLicense(); let pro_plugin_active = rsssl_settings.pro_plugin_active; let upgradeUrl = upgrade ? upgrade : 'https://really-simple-ssl.com/pro/?mtm_campaign=fallback&mtm_source=free&mtm_content=upgrade'; let message = msg ? msg : __("Learn more about %sPremium%s", "really-simple-ssl"); if (rsssl_settings.pro_plugin_active) { if (licenseStatus === 'empty' || licenseStatus === 'deactivated') { message = rsssl_settings.messageInactive; } else { message = rsssl_settings.messageInvalid; } } return ( <div className="rsssl-locked rsssl-locked-premium"> <div className="rsssl-locked-overlay rsssl-premium"> {/* header */} <div className="rsssl-locked-header"> <h5 className={'rsssl-locked-header-title'}>{title}</h5> </div> <div className="rsssl-locked-content"> {pro_plugin_active && <span>{message}  <a className="rsssl-locked-link" rel="noopener noreferrer" href="#settings/license">{__("Check license", "really-simple-ssl")} </a> </span>} {!pro_plugin_active && <span>{message}</span>} </div> <div className="rsssl-locked-footer"> {/* We place a button on the left side */} <div className="rsssl-grid-item-footer-buttons"> <a target="_blank" className="button button-primary left" href={url ? url : "https://really-simple-ssl.com/pro/"} >{__("Go Pro", "really-simple-ssl")}</a> </div> </div> </div> </div> ); } export default PremiumOverlay;PK�������!�6����!��settings/src/Settings/Password.jsnu�[��������import useFields from "./FieldsData"; const Password = (props) => { const {updateField, setChangedField} = useFields(); const onChangeHandler = (fieldValue) => { updateField( props.field.id, fieldValue ); setChangedField( props.field.id, fieldValue ); } /** * There is no "PasswordControl" in WordPress react yet, so we create our own license field. */ return ( <div className="components-base-control"> <div className="components-base-control__field"> <label className="components-base-control__label" htmlFor={props.field.id}>{props.field.label}</label> <input className="components-text-control__input" type="password" id={props.field.id} value={props.field.value} onChange={ ( e ) => onChangeHandler(e.target.value) } /> </div> </div> ); } export default Password;PK�������!�WQ>��>����settings/src/Settings/Field.jsnu�[��������import { TextControl, RadioControl, TextareaControl, __experimentalNumberControl as NumberControl } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; import License from "./License/License"; import Password from "./Password"; import SelectControl from "./SelectControl"; import Host from "./Host/Host"; import Hyperlink from "../utils/Hyperlink"; import LetsEncrypt from "../LetsEncrypt/LetsEncrypt"; import Activate from "../LetsEncrypt/Activate"; import MixedContentScan from "./MixedContentScan/MixedContentScan"; import PermissionsPolicy from "./PermissionsPolicy"; import CheckboxControl from "./CheckboxControl"; import Support from "./Support"; import LearningMode from "./LearningMode/LearningMode"; import RiskComponent from "./RiskConfiguration/RiskComponent"; import VulnerabilitiesOverview from "./RiskConfiguration/vulnerabilitiesOverview"; import IpAddressDatatable from "./LimitLoginAttempts/IpAddressDatatable"; import TwoFaRolesDropDown from "./TwoFA/TwoFaRolesDropDown"; import Button from "./Button"; import Icon from "../utils/Icon"; import { useEffect, useState } from "@wordpress/element"; import useFields from "./FieldsData"; import PostDropdown from "./PostDropDown"; import NotificationTester from "./RiskConfiguration/NotificationTester"; import getAnchor from "../utils/getAnchor"; import useMenu from "../Menu/MenuData"; import UserDatatable from "./LimitLoginAttempts/UserDatatable"; import CountryDatatable from "./LimitLoginAttempts/CountryDatatable"; // import DynamicDataTable from "./DynamicDataTable/DynamicDataTable"; import TwoFaDataTable from "./TwoFA/TwoFaDataTable"; import EventLogDataTable from "./EventLog/EventLogDataTable"; import DOMPurify from "dompurify"; import RolesDropDown from "./RolesDropDown"; const Field = (props) => { let scrollAnchor = React.createRef(); const {updateField, setChangedField, highLightField} = useFields(); const [anchor, setAnchor] = useState(null); const {selectedFilter, setSelectedFilter} = useMenu(); const handleFilterChange = (value) => { setSelectedFilter(value); // Update selectedFilter when the filter value changes }; useEffect( () => { //check if the url contains the query variable 'anchor' setAnchor(getAnchor('anchor')) handleAnchor(); if ( highLightField===props.field.id && scrollAnchor.current ) { scrollAnchor.current.scrollIntoView({ behavior: 'smooth', block: 'start' }); } },[]); useEffect( () => { handleAnchor(); },[anchor]); window.addEventListener('hashchange', (e) => { setAnchor(getAnchor('anchor')); }); const handleAnchor = () => { if ( anchor && anchor === props.field.id ) { scrollAnchor.current.scrollIntoView({ behavior: 'smooth', block: 'start' }); } } const onChangeHandler = (fieldValue) => { let field = props.field; if (field.pattern) { const regex = new RegExp(field.pattern, 'g'); const allowedCharactersArray = fieldValue.match(regex); fieldValue = allowedCharactersArray ? allowedCharactersArray.join('') : ''; } updateField(field.id, fieldValue); // we can configure other fields if a field is enabled, or set to a certain value. let configureFieldCondition = false; if ( field.configure_on_activation ) { if ( field.configure_on_activation.hasOwnProperty('condition') && props.field.value==field.configure_on_activation.condition ) { configureFieldCondition = true; } let configureField = field.configure_on_activation[0]; for (let fieldId in configureField ) { if ( configureFieldCondition && configureField.hasOwnProperty(fieldId) ) { updateField(fieldId, configureField[fieldId] ); } } } setChangedField( field.id, fieldValue ); } const labelWrap = (field) => { let tooltipColor = field.warning ? 'red': 'black'; return ( <> <div className="cmplz-label-text">{field.label}</div> {field.tooltip && <Icon name = "info-open" tooltip={field.tooltip} color = {tooltipColor} />} </> ) } let field = props.field; let fieldValue = field.value; let disabled = field.disabled; let highLightClass = 'rsssl-field-wrap'; if ( highLightField===props.field.id ) { highLightClass = 'rsssl-field-wrap rsssl-highlight'; } let options = []; if ( field.options ) { for (var key in field.options) { if (field.options.hasOwnProperty(key)) { let item = {}; item.label = field.options[key]; item.value = key; options.push(item); } } } //if a feature can only be used on networkwide or single site setups, pass that info here. if ( !rsssl_settings.networkwide_active && field.networkwide_required ) { disabled = true; field.comment = <> {__("This feature is only available networkwide.","really-simple-ssl")} <Hyperlink target="_blank" rel="noopener noreferrer" text={__("Network settings","really-simple-ssl")} url={rsssl_settings.network_link}/> </> } if ( field.conditionallyDisabled ) { disabled = true; } if ( !field.visible ) { return ( <></> ); } if ( field.type==='checkbox' ) { return ( <div className={highLightClass} ref={scrollAnchor}> <CheckboxControl label={labelWrap(field)} field={field} disabled={disabled} onChangeHandler={ ( fieldValue ) => onChangeHandler( fieldValue ) } /> { field.comment && <div className="rsssl-comment" dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(field.comment) }} /> /* nosemgrep: react-dangerouslysetinnerhtml */ } </div> ); } if ( field.type==='hidden' ){ return ( <input type="hidden" value={field.value}/> ); } if ( field.type==='radio' ){ return ( <div className={highLightClass} ref={scrollAnchor}> <RadioControl label={labelWrap(field)} onChange={ ( fieldValue ) => onChangeHandler(fieldValue) } selected={ fieldValue } options={ options } /> </div> ); } if (field.type==='email'){ const sendVerificationEmailField = props.fields.find(field => field.id === 'send_verification_email'); const emailIsVerified = sendVerificationEmailField && sendVerificationEmailField.disabled; return ( <div className={highLightClass} ref={scrollAnchor} style={{position: 'relative'}}> <TextControl required={ field.required } placeholder={ field.placeholder } disabled={ disabled } help={ field.comment } label={labelWrap(field)} onChange={ ( fieldValue ) => onChangeHandler(fieldValue) } value= { fieldValue } /> { sendVerificationEmailField && <div className="rsssl-email-verified" > {emailIsVerified ? <Icon name='circle-check' color={'green'} /> : <Icon name='circle-times' color={'red'} />} </div> } </div> ); } if (field.type==='text' ){ return ( <div className={highLightClass} ref={scrollAnchor} style={{position: 'relative'}}> <TextControl required={ field.required } placeholder={ field.placeholder } disabled={ disabled } help={ field.comment } label={labelWrap(field)} onChange={ ( fieldValue ) => onChangeHandler(fieldValue) } value= { fieldValue } /> </div> ); } if ( field.type==='button' ){ return ( <div className={'rsssl-field-button ' + highLightClass} ref={scrollAnchor}> <label>{field.label}</label> <Button field={field}/> </div> ); } if ( field.type==='password' ){ return ( <div className={ highLightClass} ref={scrollAnchor}> <Password index={ props.index } field={ field } /> </div> ); } if ( field.type==='textarea' ){ return ( <div className={highLightClass} ref={scrollAnchor}> <TextareaControl label={ field.label } help={ field.comment } value= { fieldValue } onChange={ ( fieldValue ) => onChangeHandler(fieldValue) } disabled={ field.disabled } /> </div> ); } if ( field.type==='license' ){ let field = props.field; let fieldValue = field.value; return ( <div className={highLightClass} ref={scrollAnchor}> <License index={props.index} field={field} fieldValue={fieldValue}/> </div> ); } if ( field.type==='number' ){ return ( <div className={highLightClass} ref={scrollAnchor}> <NumberControl onChange={ ( fieldValue ) => onChangeHandler(fieldValue) } help={ field.comment } label={ field.label } value= { fieldValue } /> </div> ); } if ( field.type==='email' ){ return ( <div className={this.highLightClass} ref={this.scrollAnchor}> <TextControl help={ field.comment } label={ field.label } onChange={ ( fieldValue ) => this.onChangeHandler(fieldValue) } value= { fieldValue } /> </div> ); } if ( field.type==='host') { return ( <div className={highLightClass} ref={scrollAnchor}> <Host index={props.index} field={props.field} /> </div> ) } if ( field.type==='select') { return ( <div className={highLightClass} ref={scrollAnchor}> <SelectControl disabled={ disabled } label={labelWrap(field)} onChangeHandler={ ( fieldValue ) => onChangeHandler(fieldValue) } value= { fieldValue } options={ options } field={field} /> </div> ) } if ( field.type==='support' ) { return ( <div className={highLightClass} ref={scrollAnchor}> <Support/> </div> ) } if ( field.type==='postdropdown' ) { return ( <div className={highLightClass} ref={scrollAnchor}> <PostDropdown field={props.field}/> </div> ) } if ( field.type==='permissionspolicy' ) { return ( <div className={highLightClass} ref={scrollAnchor}> <PermissionsPolicy disabled={disabled} field={props.field} options={options}/> </div> ) } if ( field.type==='learningmode' ) { return( <div className={highLightClass} ref={scrollAnchor}> <LearningMode disabled={disabled} field={props.field}/> </div> ) } if ( field.type==='riskcomponent' ) { return (<div className={highLightClass} ref={scrollAnchor}> <RiskComponent field={props.field}/> </div>) } if ( field.type === 'mixedcontentscan' ) { return ( <div className={highLightClass} ref={scrollAnchor}> <MixedContentScan field={props.field}/> </div> ) } if (field.type === 'vulnerabilitiestable') { return ( <div className={highLightClass} ref={scrollAnchor}> <VulnerabilitiesOverview field={props.field} /> </div> ) } if (field.type === 'two_fa_roles') { return ( <div className={highLightClass} ref={scrollAnchor}> <label htmlFor="rsssl-two-fa-dropdown-{field.id}"> {labelWrap(field)} </label> <TwoFaRolesDropDown field={props.field} /> </div> ); } if (field.type === 'eventlog-datatable') { return ( <div className={highLightClass} ref={scrollAnchor}> <EventLogDataTable field={props.field} action={props.field.action} /> </div> ) } if (field.type === 'twofa-datatable') { return ( <div className={highLightClass} ref={scrollAnchor}> <TwoFaDataTable field={props.field} action={props.field.action} /> </div> ) } // if (field.type === 'dynamic-datatable') { // return ( // <div className={highLightClass} ref={scrollAnchor}> // <DynamicDataTable // field={props.field} // action={props.field.action} // /> // </div> // ) // } if (field.type === 'ip-address-datatable') { return ( <div className={highLightClass} ref={scrollAnchor}> <IpAddressDatatable field={props.field} action={props.field.action} /> </div> ) } if (field.type === 'user-datatable') { return ( <div className={highLightClass} ref={scrollAnchor}> <UserDatatable field={props.field} action={props.field.action} /> </div> ) } if (field.type === 'country-datatable') { return ( <div className={highLightClass} ref={scrollAnchor}> <CountryDatatable field={props.field} action={props.field.action} /> </div> ) } if (field.type === 'roles_dropdown') { return ( <div className={highLightClass} ref={scrollAnchor}> <label htmlFor="rsssl-roles-dropdown-{field.id}"> {labelWrap(field)} </label> <RolesDropDown field={props.field} /> </div> ); } if(field.type === 'notificationtester') { return ( <div className={'rsssl-field-button ' + highLightClass} ref={scrollAnchor}> <NotificationTester field={props.field} labelWrap={labelWrap}/> </div> ) } if ( field.type === 'letsencrypt' ) { return ( <LetsEncrypt field={field} /> ) } if ( field.type === 'activate' ) { return ( <Activate field={field}/> ) } return ( 'not found field type '+field.type ); } export default Field;PK�������!�fe3����*��settings/src/Settings/PermissionsPolicy.jsnu�[��������import { Button, SelectControl, } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; import {useState,useEffect} from '@wordpress/element'; import Icon from "../utils/Icon"; import useFields from "./FieldsData"; import React from "react"; const PermissionsPolicy = (props) => { const {fields, updateField, updateSubField, setChangedField, saveFields} = useFields(); const [enablePermissionsPolicy, setEnablePermissionsPolicy] = useState(0); const [DataTable, setDataTable] = useState(null); const [theme, setTheme] = useState(null); const [rowsSelected, setRowsSelected] = useState([]); const [rowCleared, setRowCleared] = useState(false); useEffect( () => { import('react-data-table-component').then(({ default: DataTable, createTheme }) => { setDataTable(() => DataTable); setTheme(() => createTheme('really-simple-plugins', { divider: { default: 'transparent', }, }, 'light')); }); }, []); useEffect( () => { let field = fields.filter(field => field.id === 'enable_permissions_policy')[0]; setEnablePermissionsPolicy(field.value); }, [] ); const onChangeHandler = (value, clickedItem ) => { let field= props.field; if (typeof field.value === 'object') { updateField(field.id, Object.values(field.value)) } //the updateItemId allows us to update one specific item in a field set. updateSubField(field.id, clickedItem.id, value); setChangedField(field.id, value); saveFields(true, false); } const OnClickHandler = (selectedRows, value) => { let field= props.field; if (typeof field.value === 'object') { updateField(field.id, Object.values(field.value)) } selectedRows.forEach(row => { //the updateItemId allows us to update one specific item in a field set. updateSubField(field.id, row.id, value); setChangedField(field.id, value); }); saveFields(true, false); setRowCleared(true); setRowsSelected([]); // Reset rowCleared back to false after the DataTable has re-rendered setTimeout(() => setRowCleared(false), 0); } const togglePermissionsPolicyStatus = (e, enforce) => { e.preventDefault(); //look up permissions policy enable field //enable_permissions_policy let field = fields.filter(field => field.id === 'enable_permissions_policy')[0]; //enforce setting setEnablePermissionsPolicy(enforce); updateField(field.id, enforce); setChangedField(field.id, field.value); saveFields(true, false); } let field = props.field; let fieldValue = field.value; const buttons = [ 'button-secondary', 'button-primary', 'button-red', ]; //we add a button property to the options let options = props.options.map((option, index) => { option.button = buttons[index]; return option; }); columns = []; field.columns.forEach(function(item, i) { let newItem = { name: item.name, sortable: item.sortable, width: item.width, selector: row => row[item.column], } columns.push(newItem); }); let data = field.value; if (typeof data === 'object') { data = Object.values(data); } if (!Array.isArray(data) ) { data = []; } let disabled = false; let outputData = []; for (const item of data){ let itemCopy = {...item}; itemCopy.valueControl = <SelectControl help='' value={item.value} disabled={disabled} options={options} label='' onChange={ ( fieldValue ) => onChangeHandler( fieldValue, item, 'value' ) } /> outputData.push(itemCopy); } const customStyles = { headCells: { style: { paddingLeft: '0', // override the cell padding for head cells paddingRight: '0', }, }, cells: { style: { paddingLeft: '0', // override the cell padding for data cells paddingRight: '0', }, }, }; function handleSelection(state) { setRowCleared(false); setRowsSelected(state.selectedRows); } if (!DataTable || !theme) return null; return ( <div> {rowsSelected.length > 0 && ( <div style={{ marginTop: '1em', marginBottom: '1em', }} > <div className={"rsssl-multiselect-datatable-form rsssl-primary"} > <div> {__("You have selected", "really-simple-ssl")} {rowsSelected.length} {__("rows", "really-simple-ssl")} </div> <div className="rsssl-action-buttons"> {options.map((option) => ( <div className="rsssl-action-buttons__inner" key={'option-'+option.value}> <Button // className={"button button-red rsssl-action-buttons__button"} className={"button " + option.button + " rsssl-action-buttons__button"} onClick={ ( fieldValue ) => OnClickHandler( rowsSelected, option.value ) } > {option.value === 'self' ? __("Reset", "really-simple-ssl") : __(option.label, "really-simple-ssl")} </Button> </div> ))} </div> </div> </div> )} <DataTable columns={columns} data={outputData} dense pagination={false} customStyles={customStyles} theme={theme} selectableRows selectableRowsHighlight={true} onSelectedRowsChange={handleSelection} clearSelectedRows={rowCleared} /> { enablePermissionsPolicy!=1 && <button className="button button-primary" onClick={ (e) => togglePermissionsPolicyStatus(e, true ) }>{__("Enforce","really-simple-ssl")}</button> } { enablePermissionsPolicy==1 && <div className="rsssl-locked"> <div className="rsssl-shield-overlay"> <Icon name = "shield" size="80px"/> </div> <div className="rsssl-locked-overlay"> <span className="rsssl-progress-status rsssl-learning-mode-enforced">{__("Enforced","really-simple-ssl")}</span> { props.disabled && <>{ __("Permissions Policy is set outside Really Simple SSL.", "really-simple-ssl")} </>} { !props.disabled && <>{__("Permissions Policy is enforced.", "really-simple-ssl")} </>} { !props.disabled && <a className="rsssl-learning-mode-link" href="#" onClick={ (e) => togglePermissionsPolicyStatus(e, false) }>{__("Disable", "really-simple-ssl") }</a> } </div> </div>} { props.disabled && enablePermissionsPolicy!=1 && <div className="rsssl-locked"> <div className="rsssl-locked-overlay"> <span className="rsssl-progress-status rsssl-disabled">{__("Disabled","really-simple-ssl")}</span> {__("The Permissions Policy has been disabled.", "really-simple-ssl")} </div> </div>} </div> ) } export default PermissionsPolicyPK�������!�1X"��"����settings/src/Page.jsnu�[��������import {useEffect, useState} from "@wordpress/element"; import Header from "./Header"; import PagePlaceholder from './Placeholder/PagePlaceholder'; import getAnchor from "./utils/getAnchor"; import useFields from "./Settings/FieldsData"; import useMenu from "./Menu/MenuData"; import useOnboardingData from "./Onboarding/OnboardingData"; import useModal from "./Modal/ModalData"; import {setLocaleData} from "@wordpress/i18n"; import ErrorBoundary from "./utils/ErrorBoundary"; const Page = () => { const {error, fields, changedFields, fetchFieldsData, updateFieldsData, fieldsLoaded} = useFields(); const {showOnboardingModal, fetchOnboardingModalStatus, modalStatusLoaded,} = useOnboardingData(); const {selectedMainMenuItem, fetchMenuData } = useMenu(); const {showModal} = useModal(); const [Settings, setSettings] = useState(null); const [DashboardPage, setDashboardPage] = useState(null); const [Notices, setNotices] = useState(null); const [Menu, setMenu] = useState(null); const [ToastContainer, setToastContainer] = useState(null); useEffect(() => { if ( !modalStatusLoaded ) { fetchOnboardingModalStatus(); } }, []); //load the chunk translations passed to us from the rsssl_settings object //only works in build mode, not in dev mode. useEffect(() => { rsssl_settings.json_translations.forEach( (translationsString) => { let translations = JSON.parse(translationsString); let localeData = translations.locale_data[ 'really-simple-ssl' ] || translations.locale_data.messages; localeData[""].domain = 'really-simple-ssl'; setLocaleData( localeData, 'really-simple-ssl' ); }); },[]); useEffect( () => { if (selectedMainMenuItem !== 'dashboard' ){ if (!Settings) { import ("./Settings/Settings").then(({default: Settings}) => { setSettings(() => Settings); }); } if (!Notices) { import("./Settings/Notices").then(({default: Notices}) => { setNotices(() => Notices); }); } if (!Menu) { import ("./Menu/Menu").then(({default: Menu}) => { setMenu(() => Menu); }); } } if (selectedMainMenuItem === 'dashboard' && !DashboardPage ){ import ( "./Dashboard/DashboardPage").then(async ({default: DashboardPage}) => { setDashboardPage(() => DashboardPage); }); } }, [selectedMainMenuItem]); const [OnboardingModal, setOnboardingModal] = useState(null); useEffect( () => { if ( showOnboardingModal && !OnboardingModal ){ import ("./Onboarding/OnboardingModal").then(({ default: OnboardingModal }) => { setOnboardingModal(() => OnboardingModal); }); } }, [showOnboardingModal]); const [Modal, setModal] = useState(null); useEffect( () => { if ( showModal && !Modal ){ import ( "./Modal/Modal").then(({ default: Modal }) => { setModal(() => Modal); }); } }, [showModal]); // async load react-toastify useEffect(() => { import('react-toastify').then((module) => { const ToastContainer = module.ToastContainer; setToastContainer(() => ToastContainer); }); }, []); useEffect( () => { if ( fieldsLoaded ) { fetchMenuData(fields); window.addEventListener('hashchange', (e) => { fetchMenuData(fields); }); } }, [fields] ); useEffect( () => { let subMenuItem = getAnchor('menu'); updateFieldsData(subMenuItem); }, [changedFields] ); useEffect( () => { let subMenuItem = getAnchor('menu'); fetchFieldsData(subMenuItem); }, [] ); if (error) { return ( <> <PagePlaceholder error={error}></PagePlaceholder> </> ) } return ( <div className="rsssl-wrapper"> {OnboardingModal && <ErrorBoundary fallback={"Could not load onboarding modal"}><OnboardingModal /></ErrorBoundary>} {Modal && <ErrorBoundary fallback={"Could not load modal"}><Modal/></ErrorBoundary>} { <> <Header /> <div className={"rsssl-content-area rsssl-grid rsssl-" + selectedMainMenuItem}> { selectedMainMenuItem !== 'dashboard' && Settings && Menu && Notices && <> <ErrorBoundary fallback={"Could not load menu"}><Menu /></ErrorBoundary> <ErrorBoundary fallback={"Could not load settings"}><Settings/></ErrorBoundary> <ErrorBoundary fallback={"Could not load notices"}><Notices className="rsssl-wizard-notices"/></ErrorBoundary> </> } { selectedMainMenuItem === 'dashboard' && DashboardPage && <ErrorBoundary fallback={"Could not load menu"}><DashboardPage /></ErrorBoundary> } </div> </> } {ToastContainer && ( <ToastContainer position="bottom-right" autoClose={2000} limit={3} hideProgressBar newestOnTop closeOnClick pauseOnFocusLoss pauseOnHover theme="light" /> )} </div> ); } export default PagePK�������!�9��������settings/config/mails.phpnu�[��������<?php defined('ABSPATH') or die(); /** * @param $fields * * @return mixed */ function rsssl_mails(){ return apply_filters('rsssl_mails', [ ]); } PK�������!�l ������settings/config/config.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); function rsssl_fields( $load_values = true ) { if ( ! rsssl_user_can_manage() ) { return []; } $fields = [ [ 'id' => 'ssl_enabled', 'menu_id' => 'general', 'group_id' => 'general', 'type' => 'hidden', 'label' => 'ssl_enabled', 'disabled' => false, 'default' => false, ], [ 'id' => 'site_has_ssl', 'menu_id' => 'general', 'group_id' => 'general', 'type' => 'hidden', 'label' => '', 'disabled' => false, 'default' => false, ], [ 'id' => 'other_host_type', 'menu_id' => 'general', 'group_id' => 'general', 'type' => 'host', //options loaded in data store 'default' => false, 'label' => __( "Hosting provider", 'really-simple-ssl' ), 'required' => false, 'disabled' => false, ], [ 'id' => 'review_notice_shown', 'menu_id' => 'general', 'group_id' => 'general', 'type' => 'hidden', 'label' => '', 'disabled' => false, 'default' => false, ], [ 'id' => 'dismiss_all_notices', 'menu_id' => 'general', 'group_id' => 'general', 'type' => 'checkbox', 'label' => __("Dismiss all notifications", 'really-simple-ssl'), 'disabled' => false, 'default' => false, ], [ 'id' => 'download-system-status', 'menu_id' => 'general', 'group_id' => 'general', 'type' => 'button', 'url' => trailingslashit(rsssl_url).'system-status.php?download', 'button_text' => __("Download", "really-simple-ssl"), 'label' => __("System status", 'really-simple-ssl'), 'disabled' => false, 'default' => false, ], [ 'id' => 'delete_data_on_uninstall', 'menu_id' => 'general', 'group_id' => 'general', 'type' => 'checkbox', 'label' => __("Delete all data on plugin deletion", 'really-simple-ssl'), 'default' => false, ], [ 'id' => 'letsencrypt', 'menu_id' => 'encryption_lets_encrypt', 'group_id' => 'encryption_lets_encrypt', 'type' => 'lets-encrypt', 'default' => false, 'server_conditions' => [ 'relation' => 'AND', [ 'rsssl_letsencrypt_generation_allowed' => true, ] ], ], [ 'id' => 'redirect', 'menu_id' => 'encryption', 'group_id' => 'encryption_redirect', 'type' => 'select', 'tooltip' => __( "Changing redirect methods should be done with caution. Please make sure you have read our instructions beforehand at the right-hand side.", 'really-simple-ssl' ), 'label' => __( "Redirect method", 'really-simple-ssl' ), 'warning' => true, 'options' => [ 'none' => __( "No redirect", "really-simple-ssl" ), 'wp_redirect' => __( "301 PHP redirect", "really-simple-ssl" ), 'htaccess' => __( "301 .htaccess redirect (read instructions first)", "really-simple-ssl" ), ], 'help' => [ 'label' => 'default', 'title' => __( "Redirect method", 'really-simple-ssl' ), 'text' => __( 'Redirects your site to https with a SEO friendly 301 redirect if it is requested over http.', 'really-simple-ssl' ), ], 'email' => [ 'title' => __("Settings update: .htaccess redirect", 'really-simple-ssl'), 'message' => __("The .htaccess redirect has been enabled on your site. If the server configuration is non-standard, this might cause issues. Please check if all pages on your site are functioning properly.", 'really-simple-ssl'), 'url' => 'https://really-simple-ssl.com/remove-htaccess-redirect-site-lockout/', 'condition' => ['redirect' => 'htaccess'] ], 'react_conditions' => [ 'relation' => 'AND', [ 'ssl_enabled' => '1', ] ], 'default' => false, ], [ 'id' => 'mixed_content_fixer', 'menu_id' => 'encryption', 'group_id' => 'mixed-content-general', 'type' => 'checkbox', 'label' => __("Mixed content fixer", 'really-simple-ssl'), 'disabled' => false, 'default' => true, ], [ 'id' => 'switch_mixed_content_fixer_hook', 'menu_id' => 'encryption', 'group_id' => 'mixed-content-general', 'type' => 'checkbox', 'label' => __("Mixed content fixer - init hook", 'really-simple-ssl'), 'help' => [ 'label' => 'default', 'title' => __("Mixed content fixer - init hook", 'really-simple-ssl'), 'text' => __('If this option is set to true, the mixed content fixer will fire on the init hook instead of the template_redirect hook. Only use this option when you experience problems with the mixed content fixer.', 'really-simple-ssl'), ], 'disabled' => false, 'required' => false, 'default' => false, 'tooltip' => __("Only enable if the default mixed content fixer does not fix your front-end mixed content.", 'really-simple-ssl'), 'react_conditions' => [ 'relation' => 'AND', [ 'mixed_content_fixer' => 1, ] ], ], [ 'id' => 'admin_mixed_content_fixer', 'menu_id' => 'encryption', 'group_id' => 'mixed-content-general', 'type' => 'checkbox', 'label' => __("Mixed content fixer - back-end", "really-simple-ssl"), 'tooltip' => __("Only enable this if you experience mixed content in the admin environment of your WordPress website.", 'really-simple-ssl'), 'disabled' => false, 'default' => false, ], [ 'id' => 'notifications_email_address', 'menu_id' => 'general', 'group_id' => 'general_email', 'type' => 'email', 'label' => __( "Email address", 'really-simple-ssl' ), 'disabled' => false, 'default' => get_bloginfo('admin_email'), ], [ 'id' => 'send_verification_email', 'menu_id' => 'general', 'group_id' => 'general_email', 'type' => 'button', 'action' => 'send_verification_mail', 'button_text' => __( "Send", "really-simple-ssl" ), 'warning' => true, 'label' => __( "Email verification", 'really-simple-ssl' ), 'disabled' => rsssl_is_email_verified(), 'tooltip' => __( "Verify your email address to get the most out of Really Simple SSL.", 'really-simple-ssl' ), ], [ 'id' => 'send_notifications_email', 'menu_id' => 'general', 'group_id' => 'general_email', 'type' => 'checkbox', 'label' => __("Notifications by email", 'really-simple-ssl'), 'tooltip' => __("Get notified of important changes, updates and settings. Recommended when using security features.", 'really-simple-ssl'), 'disabled' => false, 'default' => false, ], [ 'id' => 'premium_support', 'menu_id' => 'general', 'group_id' => 'support', 'type' => 'support', 'label' => __("Premium support", 'really-simple-ssl'), 'disabled' => false, 'default' => false, ], /* section limited_login_attempts */ [ 'id' => 'enable_limited_login_attempts', 'menu_id' => 'limit_login_attempts', 'group_id' => 'limit_login_attempts_general', 'type' => 'checkbox', 'label' => __('Enable Limit Login Attempts', 'really-simple-ssl'), 'help' => [ 'label' => 'default', 'url' => 'https://really-simple-ssl.com/instructions/limit-login-attempts/?mtm_campaign=definition&mtm_source=free', 'title' => __( "About Limit Login Attempts", 'really-simple-ssl' ), 'text' => __( 'Limit Login Attempts protects your site from login attempts by unauthorized users. When you enable Limit Login Attempts, all login attempts are logged and repeated attempts to login with invalid credentials will be blocked automatically.', 'really-simple-ssl' ).' '.__('They might be misused if you don’t actively tell the browser to disable these features.', 'really-simple-ssl' ), ], 'disabled' => false, ], [ 'id' => 'limit_login_attempts_amount', 'menu_id' => 'limit_login_attempts', 'group_id' => 'limit_login_attempts_advanced', 'type' => 'select', 'tooltip' => __("After this number of failed login attempts the user and IP address will be temporarily blocked.", 'really-simple-ssl'), 'label' => __('Login attempts', 'really-simple-ssl'), 'options' => [ '3' => sprintf('%d %s', 3, __('attempts', 'really-simple-ssl')), '5' => sprintf('%d %s', 5, __('attempts', 'really-simple-ssl')), '10' => sprintf('%d %s', 10, __('attempts', 'really-simple-ssl')), '15' => sprintf('%d %s', 15, __('attempts', 'really-simple-ssl')), ], 'disabled' => false, 'default' => '5', 'react_conditions' => [ 'relation' => 'AND', [ 'enable_limited_login_attempts' => true, ] ], ], [ 'id' => 'limit_login_attempts_duration', 'menu_id' => 'limit_login_attempts', 'group_id' => 'limit_login_attempts_advanced', 'type' => 'select', 'tooltip' => __("If the number of failed login attempts is exceeded within this timeframe, the IP address and user will be blocked.", 'really-simple-ssl'), 'label' => __('Interval', 'really-simple-ssl'), 'options' => [ '15' => sprintf(__('%s minutes', 'really-simple-ssl'), 15), '30' => sprintf(__('%s minutes', 'really-simple-ssl'), 30), '60' => sprintf(__('%s hour', 'really-simple-ssl'), 1), '240' => sprintf(__('%s hours', 'really-simple-ssl'), 4), '1440' => sprintf(__('%s day', 'really-simple-ssl'), 1), ], 'disabled' => false, 'default' => '15', 'react_conditions' => [ 'relation' => 'AND', [ 'enable_limited_login_attempts' => true, ] ], ], [ 'id' => 'limit_login_attempts_locked_out_duration', 'menu_id' => 'limit_login_attempts', 'group_id' => 'limit_login_attempts_advanced', 'type' => 'select', 'tooltip' => __("The user and IP address will be temporarily unable to login for the specified duration. You can block IP addresses indefinitely via the IP addresses block.", 'really-simple-ssl'), 'label' => __('Lockout duration', 'really-simple-ssl'), 'options' => [ '15' => sprintf(__('%s minutes', 'really-simple-ssl'), 15), '30' => sprintf(__('%s minutes', 'really-simple-ssl'), 30), '60' => sprintf(__('%s hour', 'really-simple-ssl'), 1), '240' => sprintf(__('%s hours', 'really-simple-ssl'), 4), '1440' => sprintf(__('%s day', 'really-simple-ssl'), 1), ], 'disabled' => false, 'default' => '30', 'react_conditions' => [ 'relation' => 'AND', [ 'enable_limited_login_attempts' => true, ] ], ], [ 'id' => 'limit_login_attempts_users_view', 'menu_id' => 'limit_login_attempts', 'group_id' => 'limit_login_attempts_users', 'type' => 'user-datatable', 'action' => 'user_list', 'options' => [ 'blocked' => __('Blocked', 'really-simple-ssl'), 'locked' => __('Locked-out', 'really-simple-ssl'), 'trusted' => __('Trusted', 'really-simple-ssl'), ], 'disabled' => false, 'default' => false, 'react_conditions' => [ 'relation' => 'AND', [ 'enable_limited_login_attempts' => true, ] ], 'columns' => [ [ 'name' => __('Username', 'really-simple-ssl'), 'sortable' => true, 'searchable' => true, 'column' => 'attempt_value', 'width' => '50%', ], [ 'name' => __('Status', 'really-simple-ssl'), 'sortable' => false, 'column' => 'status', 'width' => '10%', ], [ 'name' => __('Date', 'really-simple-ssl'), 'sortable' => true, 'column' => 'datetime', ], [ 'name' => '', 'sortable' => false, 'column' => 'action', ], ], ], [ 'id' => 'limit_login_attempts_ip_view', 'menu_id' => 'limit_login_attempts', 'group_id' => 'limit_login_attempts_ip_address', 'type' => 'ip-address-datatable', 'action' => 'ip_list', 'options' => [ 'blocked' => __('Blocked', 'really-simple-ssl'), 'locked' => __('Locked-out', 'really-simple-ssl'), 'trusted' => __('Trusted', 'really-simple-ssl'), ], 'label' => __('Enable open source blocklist API etc.', 'really-simple-ssl'), 'disabled' => false, 'default' => false, 'react_conditions' => [ 'relation' => 'AND', [ 'enable_limited_login_attempts' => true, ] ], 'columns' => [ [ 'name' => __('IP Address', 'really-simple-ssl'), 'sortable' => true, 'searchable' => true, 'column' => 'attempt_value', 'width' => '50%', ], [ 'name' => __('Status', 'really-simple-ssl'), 'sortable' => false, 'column' => 'status', 'width' => '10%', ], [ 'name' => __('Date', 'really-simple-ssl'), 'sortable' => true, 'column' => 'datetime', ], [ 'name' => '', 'sortable' => false, 'column' => 'action', ], ], ], [ 'id' => 'limit_login_attempts_country_view', 'menu_id' => 'limit_login_attempts', 'group_id' => 'limit_login_attempts_country', 'type' => 'country-datatable', 'action' => 'country_list', 'options' => [ 'blocked' => __('Blocked', 'really-simple-ssl'), 'locked' => __('Locked-out', 'really-simple-ssl'), 'trusted' => __('Trusted', 'really-simple-ssl'), ], 'disabled' => false, 'default' => false, 'react_conditions' => [ 'relation' => 'AND', [ 'enable_limited_login_attempts' => true, ] ], 'columns' => [ [ 'name' => '', 'sortable' => false, 'searchable' => true, 'column' => 'attempt_value', 'width' => '4%', ], [ 'name' => __('Country', 'really-simple-ssl'), 'sortable' => true, 'searchable' => true, 'visible' => false, 'column' => 'country_name', 'width' => '20%', ], [ 'name' => __('Continent', 'really-simple-ssl'), 'sortable' => true, 'searchable' => true, 'column' => 'region', 'width' => '20%', ], [ 'name' => __('Status', 'really-simple-ssl'), 'sortable' => false, 'column' => 'status', 'width' => '10%', ], [ 'name' => '', 'sortable' => false, 'column' => 'action', ], ], ], [ 'id' => 'event_log_viewer', 'menu_id' => 'limit_login_attempts', 'group_id' => 'limit_login_attempts_event_log', 'type' => 'eventlog-datatable', 'action' => 'event_log', 'label' => __('IP address overview', 'really-simple-ssl'), 'disabled' => false, 'default' => false, 'react_conditions' => [ 'relation' => 'AND', [ 'enable_limited_login_attempts' => true, ] ], 'columns' => [ [ 'name' => __('Country', 'really-simple-ssl'), 'sortable' => true, 'column' => 'iso2_code', 'width' => '8%', ], [ 'name' => __('Date', 'really-simple-ssl'), 'sortable' => true, 'column' => 'datetime', 'width' => '12%', ], [ 'name' => __('User', 'really-simple-ssl'), 'sortable' => true, 'column' => 'username', 'searchable' => true, 'type' => 'text', 'width' => '12%', ], [ 'name' => __('IP Address', 'really-simple-ssl'), 'sortable' => true, 'searchable' => true, 'column' => 'source_ip', 'type' => 'text', 'width' => '32%', ], [ 'name' => __('Event', 'really-simple-ssl'), 'sortable' => true, 'column' => 'event_name', 'width' => '28%', ] // // [ // 'width' => '1px', // ] ], ], [ 'id' => 'x_xss_protection', 'menu_id' => 'recommended_security_headers', 'group_id' => 'recommended_security_headers', 'type' => 'select', 'label' => __("X-XSS-Protection", "really-simple-ssl"), 'options' => [ 'disabled' => __("disabled", "really-simple-ssl"), 'zero' => "0 ".__("(recommended)", "really-simple-ssl"), 'one' => "1", 'mode_block' => "1; mode=block", ], 'disabled' => false, 'default' => 'zero', 'help' => [ 'label' => 'default', 'url' => 'https://really-simple-ssl.com/definition/about-recommended-security-headers/?mtm_campaign=definition&mtm_source=free', 'title' => __("About Recommended Security Headers", 'really-simple-ssl'), 'text' => __('These security headers are the fundamental security measures to protect your website visitors while visiting your website.', 'really-simple-ssl'), ], ], [ 'id' => 'x_content_type_options', 'menu_id' => 'recommended_security_headers', 'group_id' => 'recommended_security_headers', 'type' => 'checkbox', 'label' => __("X-Content-Type options", "really-simple-ssl"), 'disabled' => false, 'default' => false, ], [ 'id' => 'x_frame_options', 'menu_id' => 'recommended_security_headers', 'group_id' => 'recommended_security_headers', 'type' => 'select', 'options' => [ 'disabled' => __("Off", "really-simple-ssl"), 'DENY' => 'DENY', 'SAMEORIGIN' => 'SAMEORIGIN', ], 'label' => __("X-Frame options", "really-simple-ssl"), 'disabled' => false, 'default' => false, ], [ 'id' => 'referrer_policy', 'menu_id' => 'recommended_security_headers', 'group_id' => 'recommended_security_headers', 'type' => 'select', 'options' => [ 'disabled' => __("Off", "really-simple-ssl"), 'strict-origin-when-cross-origin' => 'strict-origin-when-cross-origin'.' ('.__("recommended", "really-simple-ssl").')', 'no-referrer' => 'no-referrer', 'origin' => 'origin', 'no-referrer-when-downgrade' => 'no-referrer-when-downgrade', 'unsafe-url' => 'unsafe-url', 'origin-when-cross-origin' => 'origin-when-cross-origin', 'strict-origin' => 'strict-origin', 'same-origin' => 'same-origin', ], 'label' => __("Referrer Policy", "really-simple-ssl"), 'disabled' => false, 'default' => 'strict-origin-when-cross-origin', ], [ 'id' => 'hsts', 'menu_id' => 'hsts', 'group_id' => 'hsts', 'type' => 'checkbox', 'label' => __("HTTP Strict Transport Security", "really-simple-ssl"), 'disabled' => false, 'default' => false, 'help' => [ 'label' => 'default', 'url' => 'https://really-simple-ssl.com/definition/what-is-hsts/?mtm_campaign=definition&mtm_source=free', 'title' => __("About HTTP Strict Transport Security", 'really-simple-ssl'), 'text' => __('Leveraging your SSL certificate with HSTS is a staple for every website. Force your website over SSL, mitigating risks of malicious counterfeit websites in your name.', 'really-simple-ssl'), ], 'react_conditions' => [ 'relation' => 'AND', [ 'ssl_enabled' => '1', ] ], ], [ 'id' => 'hsts_preload', 'menu_id' => 'hsts', 'group_id' => 'hsts', 'type' => 'checkbox', 'label' => __("Include preload", "really-simple-ssl"), 'comment' => sprintf(__("After enabling this feature, you can submit your site to %shstspreload.org%s", "really-simple-ssl"), '<a target="_blank" href="https://hstspreload.org?domain='.site_url().'">', "</a>"), 'react_conditions' => [ 'relation' => 'AND', [ 'hsts' => true, ] ], 'configure_on_activation' => [ 'condition' => 1, [ 'hsts_subdomains' => true, 'hsts_max_age' => 63072000, ] ], 'disabled' => false, 'default' => false, ], [ 'id' => 'hsts_subdomains', 'menu_id' => 'hsts', 'group_id' => 'hsts', 'type' => 'checkbox', 'label' => __("Include subdomains", "really-simple-ssl"), 'react_conditions' => [ 'relation' => 'AND', [ 'hsts' => true, ] ], 'disabled' => false, 'default' => false, ], [ 'id' => 'hsts_max_age', 'menu_id' => 'hsts', 'group_id' => 'hsts', 'type' => 'select', 'options' => [ '86400' => __('One day (for testing only)', 'really-simple-ssl'), '31536000' => __('One year', 'really-simple-ssl'), '63072000' => __('Two years (required for preload)', 'really-simple-ssl'), ], 'label' => __("Choose the max-age for HSTS", "really-simple-ssl"), 'react_conditions' => [ 'relation' => 'AND', [ 'hsts' => true, ] ], 'disabled' => false, 'default' => '63072000', ], [ 'id' => 'cross_origin_opener_policy', 'menu_id' => 'cross_origin_policy', 'group_id' => 'cross_origin_policy', 'type' => 'select', 'options' => [ 'disabled' => __('Off', 'really-simple-ssl'), 'unsafe-none' => 'unsafe-none', 'same-origin-allow-popups' => 'same-origin-allow-popups', 'same-origin' => 'same-origin', ], 'help' => [ 'label' => 'default', 'url' => 'https://really-simple-ssl.com/definition/what-is-a-cross-origin-policy/?mtm_campaign=definition&mtm_source=free', 'title' => __("About Cross Origin Policies", 'really-simple-ssl'), 'text' => __('One of the most powerful features, and therefore the most complex are the Cross-Origin headers that can isolate your website so any data leaks are minimized.', 'really-simple-ssl'), ], 'label' => __("Cross Origin Opener Policy", "really-simple-ssl"), 'disabled' => false, 'default' => 'disabled', ], [ 'id' => 'cross_origin_resource_policy', 'menu_id' => 'cross_origin_policy', 'group_id' => 'cross_origin_policy', 'type' => 'select', 'options' => [ 'disabled' => __('Off', 'really-simple-ssl'), 'same-site' => 'same-site', 'same-origin' => 'same-origin', 'cross-origin' => 'cross-origin', ], 'label' => __("Cross Origin Resource Policy", "really-simple-ssl"), 'disabled' => false, 'default' => 'disabled', ], [ 'id' => 'cross_origin_embedder_policy', 'menu_id' => 'cross_origin_policy', 'group_id' => 'cross_origin_policy', 'type' => 'select', 'options' => [ 'disabled' => __('Off', 'really-simple-ssl'), 'require-corp' => 'require-corp', 'same-origin' => 'same-origin', 'unsafe-none' => 'unsafe-none', ], 'label' => __("Cross Origin Embedder Policy", "really-simple-ssl"), 'disabled' => false, 'default' => 'disabled', ], [ 'id' => 'do_not_edit_htaccess', 'menu_id' => 'general', 'group_id' => 'general', 'type' => 'checkbox', 'label' => __( "Stop editing the .htaccess file", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, //on multisite this setting can only be set networkwide 'networkwide_required' => true, 'server_conditions' => [ 'relation' => 'AND', [ 'RSSSL()->server->uses_htaccess()' => true, ] ], ], [ 'id' => 'disable_anyone_can_register', 'menu_id' => 'hardening-basic', 'group_id' => 'hardening-basic', 'type' => 'checkbox', 'label' => __( "Disable \"anyone can register\"", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, 'help' => [ 'label' => 'default', 'url' => 'https://really-simple-ssl.com/definition/what-are-hardening-features/?mtm_campaign=definition&mtm_source=free', 'title' => __( "About Hardening", 'really-simple-ssl' ), 'text' => __( 'Hardening features limit the possibility of potential weaknesses and vulnerabilities which can be misused.', 'really-simple-ssl' ), ], 'recommended' => true, ], [ 'id' => 'disable_file_editing', 'menu_id' => 'hardening-basic', 'group_id' => 'hardening-basic', 'type' => 'checkbox', 'label' => __( "Disable the built-in file editors", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, 'recommended' => true, ], [ 'id' => 'block_code_execution_uploads', 'menu_id' => 'hardening-basic', 'group_id' => 'hardening-basic', 'type' => 'checkbox', 'label' => __( "Prevent code execution in the public 'Uploads' folder", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, 'recommended' => true, ], [ 'id' => 'hide_wordpress_version', 'menu_id' => 'hardening-basic', 'group_id' => 'hardening-basic', 'type' => 'checkbox', 'label' => __( "Hide your WordPress version", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, 'recommended' => true, ], [ 'id' => 'disable_login_feedback', 'menu_id' => 'hardening-basic', 'group_id' => 'hardening-basic', 'type' => 'checkbox', 'tooltip' => __( "By default, WordPress shows if a username or email address exists when a login fails. This will change it to generic feedback.", 'really-simple-ssl' ), 'label' => __( "Prevent login feedback", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, 'recommended' => true, ], [ 'id' => 'disable_indexing', 'menu_id' => 'hardening-basic', 'group_id' => 'hardening-basic', 'type' => 'checkbox', 'label' => __( "Disable directory browsing", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, 'recommended' => true, ], [ 'id' => 'disable_user_enumeration', 'menu_id' => 'hardening-basic', 'group_id' => 'hardening-basic', 'type' => 'checkbox', 'label' => __( "Disable user enumeration", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, 'recommended' => true, ], [ 'id' => 'rename_admin_user', 'menu_id' => 'hardening-basic', 'warning' => true, 'group_id' => 'hardening-basic', 'type' => 'checkbox', 'label' => __( "Block the username 'admin'", 'really-simple-ssl' ), 'email' => [ 'title' => __( "Settings update: Username 'admin' renamed", 'really-simple-ssl' ), 'message' => sprintf(__( "As a security precaution, the username ‘admin’ has been changed on %s. From now on, you can login with '%s' or an email address.", 'really-simple-ssl' ), '{site_url}','{username}'), 'url' => 'https://really-simple-ssl.com/instructions/locked-our-after-renaming-the-admin-username/', 'condition' => 'rsssl_username_admin_changed', ], 'tooltip' => __( "If the username 'admin' currently exists, you can rename it here. Please note that you can no longer use this username, and should use the new username or an email address", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, ], [ 'id' => 'new_admin_user_login', 'menu_id' => 'hardening-basic', 'group_id' => 'hardening-basic', 'type' => 'text', 'label' => __( "Choose new username to replace 'admin'", 'really-simple-ssl' ), 'disabled' => false, 'default' => '', 'required' => true, 'condition_action' => 'hide', 'react_conditions' => [ 'relation' => 'AND', [ 'rename_admin_user' => 1, ] ], 'server_conditions' => [ 'relation' => 'AND', [ 'rsssl_has_admin_user()' => true, ] ], ], [ 'id' => 'disable_xmlrpc', 'menu_id' => 'hardening-basic', 'group_id' => 'hardening-basic', 'type' => 'checkbox', 'label' => __( "Disable XML-RPC", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, ], [ 'id' => 'block_display_is_login', 'menu_id' => 'hardening-basic', 'group_id' => 'hardening-basic', 'type' => 'checkbox', 'label' => __( "Block user registrations when login and display name are the same", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, ], [ 'id' => 'disable_http_methods', 'menu_id' => 'hardening-extended', 'group_id' => 'hardening-extended', 'type' => 'checkbox', 'tooltip' => __( "This will limit or fully disable HTTP requests that are not needed, but could be used with malicious intent.", 'really-simple-ssl' ), 'label' => __( "Disable HTTP methods", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, ], [ 'id' => 'rename_db_prefix', 'menu_id' => 'hardening-extended', 'group_id' => 'hardening-extended', 'email' => [ 'title' => __( "Settings update: Database prefix changed", 'really-simple-ssl' ), 'message' => __( "Security through obscurity. Your site is no longer using the default wp_ prefix for database tables. The process has been designed to only complete and replace the tables after all wp_ tables are successfully renamed. In the unlikely event that this does lead to database issues on your site, please navigate to our troubleshooting article.", 'really-simple-ssl' ), 'url' => 'https://really-simple-ssl.com/instructions/database-issues-after-changing-prefix/', ], 'tooltip' => __( "This will permanently change your database prefixes and you can NOT rollback this feature. Please make sure you have a back-up.", 'really-simple-ssl' ), 'warning' => __( "This will permanently change your database prefixes and you can NOT rollback this feature. Please make sure you have a back-up.", 'really-simple-ssl' ), 'type' => 'checkbox', 'label' => __( "Rename and randomize your database prefix", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, ], [ 'id' => 'change_debug_log_location', 'group_id' => 'hardening-extended', 'menu_id' => 'hardening-extended', 'type' => 'checkbox', 'tooltip' => __( "A debug.log is publicly accessibile and has a standard location. This will change the location to a randomly named folder in /wp-content/", 'really-simple-ssl' ), 'email' => [ 'title' => __( "Settings update: Debug.log file relocated", 'really-simple-ssl' ), 'message' => __( "From now on, the debug.log won’t be publicly accessible whenever wp-debugging is enabled. The debug log will be stored in a randomly named folder in /wp-content/. This prevents possible leakage of sensitive debugging information.", 'really-simple-ssl' ), 'url' => 'https://really-simple-ssl.com/instructions/debug-log-has-been-relocated-but-where/', ], 'label' => __( "Change debug.log file location", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, ], [ 'id' => 'disable_application_passwords', 'menu_id' => 'hardening-extended', 'group_id' => 'hardening-extended', 'type' => 'checkbox', 'label' => __( "Disable application passwords", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, ], [ 'id' => 'block_admin_creation', 'menu_id' => 'hardening-extended', 'group_id' => 'hardening-extended', 'type' => 'checkbox', 'warning' => __( "This setting will block attempts to assign administrator roles outside the native user creation process by WordPress. This might include other plugins that create, edit or assign roles to users. If you need to create an administrator in a third-party plugin, temporarily disable this setting while you make the changes.", 'really-simple-ssl' ), 'tooltip' => __( "This setting will block attempts to assign administrator roles outside the native user creation process by WordPress. This might include other plugins that create, edit or assign roles to users. If you need to create an administrator in a third-party plugin, temporarily disable this setting while you make the changes.", 'really-simple-ssl' ), 'help' => [ 'label' => 'default', 'url' => 'https://really-simple-ssl.com/instructions/about-hardening-features/', 'title' => __( "Unauthorized administrators", 'really-simple-ssl' ), 'text' => __( 'Many vulnerabilities are exploited by injecting a user with administrator capabilities outside of the native WordPress creation process. Under advanced hardening you can prevent this from happening.', 'really-simple-ssl' ), ], 'label' => __( "Restrict creation of administrator roles", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, ], [ 'id' => 'change_login_url_enabled', 'menu_id' => 'hardening-extended', 'group_id' => 'hardening-extended', 'warning' => true, 'type' => 'checkbox', 'tooltip' => __( "Allows you to enter a custom login URL.", 'really-simple-ssl' ), 'label' => __( "Enable Custom login URL", 'really-simple-ssl' ), 'email' => [ 'title' => __( "You have changed your login URL", 'really-simple-ssl' ), 'message' => __( "Your login URL has changed to {login_url} to prevent common bot attacks on standard login URLs. Learn more about this feature, common questions and measures to prevent any issues.", 'really-simple-ssl' ), 'url' => 'https://really-simple-ssl.com/instructions/login-url-changed', ], 'disabled' => false, 'default' => false, ], [ 'id' => 'change_login_url', 'menu_id' => 'hardening-extended', 'group_id' => 'hardening-extended', 'type' => 'text', 'tooltip' => __( "Enter a custom login URL. This allows you to log in via this custom URL instead of /wp-admin or /wp-login.php", 'really-simple-ssl' ), 'placeholder' => __( "Example: If you want to change your login page from /wp-admin/ to /control/ answer: control", 'really-simple-ssl' ), 'label' => __( "Custom login URL", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, 'condition_action' => 'hide', 'pattern' => '[a-zA-Z0-9\-_]+', 'react_conditions' => [ 'relation' => 'AND', [ 'change_login_url_enabled' => 1, ] ], ], [ 'id' => 'change_login_url_failure_url', 'menu_id' => 'hardening-extended', 'group_id' => 'hardening-extended', 'type' => 'postdropdown', 'tooltip' => __( "Users trying to enter via /wp-admin or /wp-login.php will be redirected to this URL.", 'really-simple-ssl' ), 'label' => '', 'disabled' => false, 'default' => '404_default', 'condition_action' => 'hide', 'react_conditions' => [ 'relation' => 'AND', [ 'change_login_url_enabled' => 1, ] ], ], [ 'id' => 'xmlrpc_status', 'menu_id' => 'hardening-xml', 'group_id' => 'hardening-xml', 'type' => 'hidden', 'label' => '', 'disabled' => false, 'default' => false, ], [ 'id' => 'xmlrpc_status_lm_enabled_once', 'menu_id' => 'hardening-xml', 'group_id' => 'hardening-xml', 'type' => 'hidden', 'label' => '', 'disabled' => false, 'default' => false, ], [ 'id' => 'xmlrpc_allow_list', 'control_field' => 'xmlrpc_status', 'menu_id' => 'hardening-xml', 'group_id' => 'hardening-xml', 'type' => 'learningmode', 'label' => __( "XML-RPC", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, 'help' => [ 'label' => 'default', 'url' => 'https://really-simple-ssl.com/definition/what-is-xml-rpc/', 'title' => __( "About XML-RPC", 'really-simple-ssl' ), 'text' => __( 'XML-RPC is a mechanism originally implemented into WordPress to publish content without the need to actually login to the backend. It is also used to login to WordPress from devices other than desktop, or the regular wp-admin interface.', 'really-simple-ssl' ), ], 'react_conditions' => [ 'relation' => 'AND', [ 'disable_xmlrpc' => false, ] ], 'columns' => [ [ 'name' => __( 'Method', 'really-simple-ssl' ), 'sortable' => false, 'column' => 'method', 'width' => '20%', ], [ 'name' => __( 'Login status', 'really-simple-ssl' ), 'sortable' => false, 'column' => 'login_statusControl', 'width' => '20%', ], [ 'name' => __( 'Count', 'really-simple-ssl' ), 'sortable' => false, 'column' => 'count', 'width' => '20%', ], [ 'name' => '', 'sortable' => false, 'column' => 'statusControl', 'width' => '20%', ], [ 'name' => '', 'sortable' => false, 'column' => 'deleteControl', 'width' => '20%', ], ], ], [ 'id' => 'login_protection_enabled', 'menu_id' => 'two-fa', 'group_id' => 'two_fa_general', 'type' => 'checkbox', 'label' => __( "Enable login protection", "really-simple-ssl" ), 'help' => [ 'label' => 'default', 'url' => 'https://really-simple-ssl.com/instructions/about-login-protection/?mtm_campaign=instructions&mtm_source=2fa', 'title' => __("About Login Protection", 'really-simple-ssl'), 'text' => __('Two-step verification is the first feature we regard as login protection. Want to know more about this feature, and what is to come?', 'really-simple-ssl'), ], 'disabled' => false, 'default' => 'disabled', 'server_conditions' => [ 'relation' => 'AND', [ 'is_multisite' => false, ] ], ], [ 'id' => 'two_fa_enabled', 'menu_id' => 'two-fa', 'group_id' => 'two_fa_email', 'type' => 'checkbox', 'label' => __( "Enable two-step verification", "really-simple-ssl" ), 'tooltip' => __( "By enabling this feature you understand that email validation is required, and you can send email from your server reliably.", 'really-simple-ssl' ), 'disabled' => false, 'warning' => true, 'default' => 'disabled', 'server_conditions' => [ 'relation' => 'AND', [ 'is_multisite' => false, ] ], ], [ 'id' => 'two_fa_optional_roles', 'forced_roles_id' => 'two_fa_forced_roles', 'optional_roles_id' => 'two_fa_optional_roles', 'menu_id' => 'two-fa', 'group_id' => 'two_fa_email', 'type' => 'two_fa_roles', 'default' => [ 'editor', 'author', 'contributor', 'administrator' ], 'label' => __( "Optional for:", "really-simple-ssl" ), 'tooltip' => __( "Two-step verification will be optional for these user roles, and they can disable it on first login.", 'really-simple-ssl' ), 'server_conditions' => [ 'relation' => 'AND', [ 'is_multisite' => false, ] ], ], [ 'id' => 'two_fa_forced_roles', 'forced_roles_id' => 'two_fa_forced_roles', 'optional_roles_id' => 'two_fa_optional_roles', 'menu_id' => 'two-fa', 'group_id' => 'two_fa_email', 'type' => 'two_fa_roles', 'default' => [], 'label' => __( "Force on:", "really-simple-ssl" ), 'tooltip' => __( "These user roles are forced to enter the authentication code.", 'really-simple-ssl' ), 'server_conditions' => [ 'relation' => 'AND', [ 'is_multisite' => false, ] ], ], [ 'id' => 'two_fa_users_table', 'menu_id' => 'two-fa', 'group_id' => 'two_fa_users', 'type' => 'twofa-datatable', 'action' => 'two_fa_table', 'label' => __('Users', 'really-simple-ssl'), 'disabled' => false, 'default' => false, 'columns' => [ [ 'name' => __( 'Username', 'really-simple-ssl' ), 'sortable' => false, 'searchable' => true, 'visible' => true, 'column' => 'user', 'width' => '20%', ], [ 'name' => __( 'Status', 'really-simple-ssl' ), 'sortable' => false, 'searchable' => false, 'visible' => true, 'column' => 'status_for_user', 'width' => '20%', ], [ 'name' => __( 'User role', 'really-simple-ssl' ), 'sortable' => false, 'searchable' => false, 'visible' => true, 'column' => 'user_role', 'width' => '20%', ], [ 'name' => __( '', 'really-simple-ssl' ), 'sortable' => false, 'searchable' => false, 'visible' => true, 'width' => '40%', 'column' => 'resetControl', ], ], ], [ 'id' => 'mixedcontentscan', 'menu_id' => 'encryption', 'group_id' => 'mixed-content-scan', 'type' => 'mixedcontentscan', 'label' => __( "Mixed content scan", "really-simple-ssl" ), 'help' => [ 'label' => 'default', 'url' => 'https://really-simple-ssl.com/definition/what-is-mixed-content/?mtm_campaign=definition&mtm_source=free', 'title' => __( "About the Mixed Content Scan", 'really-simple-ssl' ), 'text' => __( 'The extensive mixed content scan will list all current and future issues and provide a fix, or instructions to fix manually.', 'really-simple-ssl' ), ], 'columns' => [ [ 'name' => __( 'Type', 'really-simple-ssl' ), 'sortable' => true, 'column' => 'warningControl', 'grow' => 5, 'width' => '5%', ], [ 'name' => __( 'Description', 'really-simple-ssl' ), 'sortable' => true, 'column' => 'description', 'grow' => 15, ], [ 'name' => __( 'Location', 'really-simple-ssl' ), 'sortable' => true, 'column' => 'locationControl', 'grow' => 4, ], [ 'name' => __( '', 'really-simple-ssl' ), 'sortable' => false, 'column' => 'detailsControl', 'grow' => 5, ], [ 'name' => __( '', 'really-simple-ssl' ), 'sortable' => false, 'column' => 'fixControl', 'grow' => 5, 'right' => true, ], ], 'disabled' => false, 'default' => false, ], [ 'id' => 'permissions_policy', 'menu_id' => 'permissions_policy', 'group_id' => 'permissions_policy', 'type' => 'permissionspolicy', 'options' => [ '*' => __( "Allow", "really-simple-ssl" ), '()' => __( "Disable", "really-simple-ssl" ), 'self' => __( "Self (Default)", "really-simple-ssl" ) ], 'label' => __( "Permissions Policy", 'really-simple-ssl' ), 'disabled' => false, 'help' => [ 'label' => 'default', 'url' => 'https://really-simple-ssl.com/definition/what-is-a-permissions-policy/?mtm_campaign=definition&mtm_source=free', 'title' => __( "About the Permission Policy", 'really-simple-ssl' ), 'text' => __( 'Browser features are plentiful, but most are not needed on your website.', 'really-simple-ssl' ).' '.__('They might be misused if you don’t actively tell the browser to disable these features.', 'really-simple-ssl' ), ], 'columns' => [ [ 'name' => __( 'Feature', 'really-simple-ssl' ), 'sortable' => true, 'column' => 'title', ], [ 'name' => __( '', 'really-simple-ssl' ), 'sortable' => false, 'column' => 'valueControl', ], ], 'default' => [ [ 'id' => 'accelerometer', 'title' => 'Accelerometer', 'value' => 'self', 'status' => true, ], [ 'id' => 'autoplay', 'title' => 'Autoplay', 'value' => 'self', 'status' => false, ], [ 'id' => 'camera', 'title' => 'Camera', 'value' => 'self', 'status' => false, ], [ 'id' => 'encrypted-media', 'title' => 'Encrypted Media', 'value' => 'self', 'status' => false, ], [ 'id' => 'fullscreen', 'title' => 'Fullscreen', 'value' => 'self', 'status' => false, ], [ 'id' => 'geolocation', 'title' => 'Geolocation', 'value' => '*', 'status' => false, ], [ 'id' => 'microphone', 'title' => 'Microphone', 'value' => 'self', 'status' => false, ], [ 'id' => 'midi', 'title' => 'Midi', 'value' => 'self', 'status' => false, ], [ 'id' => 'payment', 'title' => 'Payment', 'value' => 'self', 'status' => false, ], [ 'id' => 'display-capture', 'title' => 'Display Capture', 'value' => 'self', 'status' => false, ], ], ], [ 'id' => 'enable_permissions_policy', 'menu_id' => 'permissions_policy', 'group_id' => 'permissions_policy', 'type' => 'hidden', 'label' => __( "Enable Permissions Policy", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, ], [ 'id' => 'upgrade_insecure_requests', 'menu_id' => 'content_security_policy', 'group_id' => 'upgrade_insecure_requests', 'type' => 'checkbox', 'label' => __( "Serve encrypted and authenticated responses", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, 'help' => [ 'label' => 'default', 'url' => 'https://really-simple-ssl.com/definition/what-is-a-content-security-policy/?mtm_campaign=definition&mtm_source=free', 'title' => __( "About the Content Security Policy", 'really-simple-ssl' ), 'text' => __( 'The content security policy has many options, so we always recommend starting in ‘learning mode’ to see what files and scripts are loaded.', 'really-simple-ssl' ), ], 'react_conditions' => [ 'relation' => 'AND', [ 'ssl_enabled' => '1', ] ], ], [ 'id' => 'csp_frame_ancestors', 'menu_id' => 'content_security_policy', 'group_id' => 'frame_ancestors', 'type' => 'select', 'options' => [ 'disabled' => __( "Disable (Default)", "really-simple-ssl" ), 'none' => "None", 'self' => "Self", ], 'label' => __( "Allow your domain to be embedded", "really-simple-ssl" ), 'disabled' => false, 'default' => 'disabled', ], [ 'id' => 'csp_frame_ancestors_urls', 'menu_id' => 'content_security_policy', 'group_id' => 'frame_ancestors', 'type' => 'textarea', 'label' => __( "Add additional domains which can embed your website, if needed. Comma seperated.", "really-simple-ssl" ), 'disabled' => false, 'default' => false, ], [ 'id' => 'csp_status', 'menu_id' => 'content_security_policy', 'group_id' => 'content_security_policy_source_directives', 'type' => 'hidden', 'label' => '', 'disabled' => false, 'default' => false, ], [ 'id' => 'csp_status_lm_enabled_once', 'menu_id' => 'content_security_policy', 'group_id' => 'content_security_policy_source_directives', 'type' => 'hidden', 'label' => '', 'disabled' => false, 'default' => false, ], [ 'id' => 'content_security_policy_source_directives', 'control_field' => 'csp_status', 'menu_id' => 'content_security_policy', 'group_id' => 'content_security_policy_source_directives', 'type' => 'learningmode', 'label' => "Content Security Policy", 'disabled' => false, 'default' => false, 'columns' => [ [ 'name' => __( 'Location', 'really-simple-ssl' ), 'sortable' => false, 'column' => 'documenturi', 'grow' => 2, ], [ 'name' => __( 'Directive', 'really-simple-ssl' ), 'sortable' => false, 'column' => 'violateddirective', 'grow' => 1, ], [ 'name' => __( 'Source', 'really-simple-ssl' ), 'sortable' => false, 'column' => 'blockeduri', 'grow' => 1, ], [ 'name' => __( 'Action', 'really-simple-ssl' ), 'sortable' => false, 'column' => 'statusControl', 'grow' => 1, ], [ 'name' => __('Delete', 'really-simple-ssl'), 'sortable' => false, 'column' => 'deleteControl', 'grow' => 1, ], [ //placeholder until we have resolved the columns 'name' => '', ], ], ], /* Vulnerability basic Section */ [ 'id' => 'enable_vulnerability_scanner', 'menu_id' => 'vulnerabilities_basic', 'group_id' => 'vulnerabilities_basic', 'type' => 'checkbox', 'label' => __('Vulnerability detection', 'really-simple-ssl'), 'tooltip' => __( "This feature depends on multiple standard background processes. If a process fails or is unavailable on your system, detection might not work. We run frequent tests for this purpose. We will notify you accordingly if there are any issues.", 'really-simple-ssl' ), 'disabled' => false, 'default' => false, 'warning' => true, 'help' => [ 'label' => 'default', 'url' => 'https://really-simple-ssl.com/instructions/about-vulnerabilities/', 'title' => __( "About Vulnerabilities", 'really-simple-ssl' ), 'text' => __( 'Really Simple SSL collects information about plugins, themes, and core vulnerabilities from our database powered by WPVulnerability. Anonymized data about these vulnerable components will be sent to Really Simple SSL for statistical analysis to improve open-source contributions. For more information, please read our privacy statement.', 'really-simple-ssl' ), ], ], [ 'id' => 'vulnerabilities_intro_shown', 'menu_id' => 'vulnerabilities_basic', 'group_id' => 'vulnerabilities_basic', 'type' => 'hidden', 'label' => '', 'disabled' => false, 'default' => false, ], [ 'id' => 'enable_feedback_in_plugin', 'menu_id' => 'vulnerabilities_basic', 'group_id' => 'vulnerabilities_basic', 'tooltip' => __( "If there's a vulnerability, you will also get feedback on the themes and plugin overview.", 'really-simple-ssl' ), 'warning' => false, 'type' => 'checkbox', 'label' => __('Feedback in plugin overview', 'really-simple-ssl'), 'disabled' => false, 'default' => false, 'react_conditions' => [ 'relation' => 'AND', [ 'enable_vulnerability_scanner' => 1, ] ], ], /* Vulnerability advanced Section */ [ 'id' => 'vulnerability_notification_dashboard', 'menu_id' => 'vulnerabilities_notifications', 'group_id' => 'vulnerabilities_notifications', 'type' => 'select', 'options' => [ '*' => __('None', 'really-simple-ssl'), 'l' => __('Low-risk (default)', 'really-simple-ssl'), 'm' => __('Medium-risk', 'really-simple-ssl'), 'h' => __('High-risk', 'really-simple-ssl'), 'c' => __('Critical', 'really-simple-ssl'), ], 'label' => __('Really Simple SSL dashboard', 'really-simple-ssl'), 'disabled' => false, 'default' => 'l', 'react_conditions' => [ 'relation' => 'AND', [ 'enable_vulnerability_scanner' => 1, ] ], ], [ 'id' => 'vulnerability_notification_sitewide', 'menu_id' => 'vulnerabilities_notifications', 'group_id' => 'vulnerabilities_notifications', 'type' => 'select', 'options' => [ '*' => __('None', 'really-simple-ssl'), 'l' => __('Low-risk ', 'really-simple-ssl'), 'm' => __('Medium-risk', 'really-simple-ssl'), 'h' => __('High-risk (default)', 'really-simple-ssl'), 'c' => __('Critical', 'really-simple-ssl'), ], 'label' => __('Site-wide, admin notification', 'really-simple-ssl'), 'disabled' => false, 'default' => 'h', 'react_conditions' => [ 'relation' => 'AND', [ 'enable_vulnerability_scanner' => 1, ] ], ], [ 'id' => 'vulnerability_notification_email_admin', 'menu_id' => 'vulnerabilities_notifications', 'group_id' => 'vulnerabilities_notifications', 'type' => 'select', 'options' => [ '*' => __('None', 'really-simple-ssl'), 'l' => __('Low-risk', 'really-simple-ssl'), 'm' => __('Medium-risk', 'really-simple-ssl'), 'h' => __('High-risk', 'really-simple-ssl'), 'c' => __('Critical (default)', 'really-simple-ssl'), ], 'label' => __('Email', 'really-simple-ssl'), 'tooltip' => __( "This will send emails about vulnerabilities directly from your server. Make sure you can receive emails by the testing a preview below. If this feature is disabled, please enable notifications under general settings.", 'really-simple-ssl' ), 'warning' => true, 'disabled' => false, 'default' => 'c', 'react_conditions' => [ 'relation' => 'AND', [ 'enable_vulnerability_scanner' => 1, ], [ 'send_notifications_email' => 1, ] ], ], [ 'id' => 'vulnerabilities_test', 'menu_id' => 'vulnerabilities_notifications', 'group_id' => 'vulnerabilities_notifications', 'type' => 'notificationtester', 'action' => 'test_vulnerability_notification', 'label' => __('Test notifications', 'really-simple-ssl'), 'tooltip' => __('Test notifications can be used to test email delivery and shows how vulnerabilities will be reported on your WordPress installation.', 'really-simple-ssl'), 'disabled' => false, 'button_text' => __( "Test notifications", "really-simple-ssl" ), 'react_conditions' => [ 'relation' => 'AND', [ 'enable_vulnerability_scanner' => 1, 'send_notifications_email' => 1, ] ], ], [ 'id' => 'vulnerabilities-overview', 'menu_id' => 'vulnerabilities_notifications', 'group_id' => 'vulnerabilities_overview', 'type' => 'vulnerabilitiestable', 'label' => __('Vulnerabilities Overview', 'really-simple-ssl'), 'disabled' => false, 'default' => false, 'react_conditions' => [ 'relation' => 'AND', [ 'enable_vulnerability_scanner' => 1, ] ], 'columns' => [ [ 'id' => 'component', 'name' => __('Component', 'really-simple-ssl'), 'sortable' => false, 'column' => 'Name', 'width' => '55%', 'searchable' => true, ], [ 'id' => 'date', 'name' => __('Date', 'really-simple-ssl'), 'sortable' => false, 'column' => 'date', 'width' => '15%', ], [ 'id' => 'risk', 'name' => __('Risk', 'really-simple-ssl'), 'sortable' => false, 'column' => 'risk_name', 'width' => '10%', 'searchable' => true, ], [ 'id' => 'action', 'name' => __('', 'really-simple-ssl'), 'sortable' => false, 'column' => 'vulnerability_action', 'width' => '20%', ] ] ], [ 'id' => 'vulnerabilities_measures', 'menu_id' => 'vulnerabilities-measures-overview', 'group_id' => 'vulnerabilities_measures', 'type' => 'riskcomponent', 'options' => [ '*' => __('None', 'really-simple-ssl'), 'l' => __('Low-risk', 'really-simple-ssl'), 'm' => __('Medium-risk', 'really-simple-ssl'), 'h' => __('High-risk', 'really-simple-ssl'), 'c' => __('Critical', 'really-simple-ssl'), ], 'react_conditions' => [ 'relation' => 'AND', [ 'measures_enabled' => true, ] ], 'disabled' => false, 'default' => false, 'columns' => [ [ 'name' => __( 'Action', 'really-simple-ssl' ), 'sortable' => false, 'column' => 'name', 'width' => '25%', ], [ 'name' => __( 'Risk', 'really-simple-ssl' ), 'sortable' => false, 'column' => 'riskSelection', 'width' => '20%', ], [ 'name' => __( 'Description', 'really-simple-ssl' ), 'sortable' => false, 'column' => 'description', 'type' => 'text', 'minWidth' => '300px', ], [] ], ], [ 'id' => 'measures_enabled', 'menu_id' => 'vulnerabilities_measures', 'group_id' => 'vulnerabilities_measures', 'type' => 'checkbox', 'label' => __("I have read and understood the risks to intervene with these measures.","really-simple-ssl"), 'comment' => '<a href="https://really-simple-ssl.com/instructions/about-vulnerabilities#measures" target="_blank" rel="noopener noreferrer">'.__("Read more", "really-simple-ssl") .'</a>', 'disabled' => false, 'default' => false, 'react_conditions' => [ 'relation' => 'AND', [ 'enable_vulnerability_scanner' => true, ] ], ], [ 'id' => 'enforce_password_security_enabled', 'menu_id' => 'password_security', 'group_id' => 'password_security_passwords', 'type' => 'checkbox', 'label' => __( "Enforce strong passwords", "really-simple-ssl" ), 'help' => [ 'label' => 'default', 'url' => 'https://really-simple-ssl.com/instructions/password-security/?mtm_campaign=definition&mtm_source=free', 'title' => __( "Enforce strong passwords", 'really-simple-ssl' ), 'text' => __( 'Improve the default WordPress password strength check. You can also enforce frequent password changes for user roles.', 'really-simple-ssl' ).' '.__('They might be misused if you don’t actively tell the browser to disable these features.', 'really-simple-ssl' ), ], 'disabled' => false, 'default' => 'disabled', 'tooltip' => __( "This adds extra requirements for strong passwords for new users and updated passwords.", 'really-simple-ssl' ), ], [ 'id' => 'enforce_frequent_password_change', 'menu_id' => 'password_security', 'group_id' => 'password_security_passwords', 'type' => 'checkbox', 'label' => __( "Enforce frequent password change", "really-simple-ssl" ), 'disabled' => false, 'default' => 'disabled', 'react_conditions' => [ 'relation' => 'AND', [ 'enforce_password_security_enabled' => 1, ] ], ], [ 'id' => 'password_change_roles', 'menu_id' => 'password_security', 'group_id' => 'password_security_passwords', 'type' => 'roles_dropdown', 'default' => [ 'administrator'], 'label' => __( "User roles for password change", "really-simple-ssl" ), 'react_conditions' => [ 'relation' => 'AND', [ 'enforce_frequent_password_change' => 1, ] ], ], [ 'id' => 'password_change_frequency', 'menu_id' => 'password_security', 'group_id' => 'password_security_passwords', 'type' => 'select', 'default' => '12', 'options' => [ '6' => __( "6 months", "really-simple-ssl" ), '12' => __( "1 year", "really-simple-ssl" ), '24' => __( "2 years", "really-simple-ssl" ), ], 'label' => __( "Change passwords every", "really-simple-ssl" ), 'react_conditions' => [ 'relation' => 'AND', [ 'enforce_frequent_password_change' => 1, ] ], ], [ 'id' => 'login_cookie_expiration', 'menu_id' => 'password_security', 'group_id' => 'password_security_passwords', 'type' => 'select', 'default' => '48', 'options' => [ '6' => __( "8 hours (recommended)", "really-simple-ssl" ), '48' => __( "48 hours", "really-simple-ssl" ), ], 'label' => __( "Let login cookie expire after", "really-simple-ssl" ), ], ]; $fields = apply_filters( 'rsssl_fields', $fields ); if ( is_multisite() && rsssl_is_networkwide_active() ) { $stored_options = get_site_option( 'rsssl_options', [] ); } else { $stored_options = get_option( 'rsssl_options', [] ); } foreach ( $fields as $key => $field ) { $field = wp_parse_args( $field, [ 'default' => '', 'id' => false, 'visible' => true, 'disabled' => false, 'recommended' => false ] ); //handle server side conditions //but not if outside our settings pages if ( rsssl_is_logged_in_rest() && isset( $field['server_conditions'] ) ) { if ( ! rsssl_conditions_apply( $field['server_conditions'] ) ) { unset( $fields[ $key ] ); continue; } } if ( $load_values ) { $value = rsssl_sanitize_field( rsssl_get_option( $field['id'], $field['default'] ), $field['type'], $field['id'] ); $field['never_saved'] = !array_key_exists( $field['id'], $stored_options ); $field['value'] = apply_filters( 'rsssl_field_value_' . $field['id'], $value, $field ); $fields[ $key ] = apply_filters( 'rsssl_field', $field, $field['id'] ); } } $fields = apply_filters( 'rsssl_fields_values', $fields ); return array_values( $fields ); } PK�������!�RYњ������settings/config/menu.phpnu�[��������<?php defined('ABSPATH') or die(); function rsssl_menu() { if ( ! rsssl_user_can_manage() ) { return []; } $menu_items = [ [ "id" => "dashboard", "title" => __( "Dashboard", 'really-simple-ssl' ), 'default_hidden' => false, 'menu_items' => [], ], [ "id" => "settings", "title" => __( "Settings", 'really-simple-ssl' ), 'default_hidden' => false, 'menu_items' => [ [ 'id' => 'general', 'group_id' => 'general', 'title' => __( 'General', 'really-simple-ssl' ), 'helpLink' => 'https://really-simple-ssl.com/instructions/about-our-general-settings/?mtm_campaign=instructions&mtm_source=free', 'groups' => [ [ 'id' => 'general_settings', 'group_id' => 'general_settings', 'title' => __( 'General', 'really-simple-ssl' ), 'helpLink' => 'https://really-simple-ssl.com/instructions/about-our-general-settings/?mtm_campaign=instructions&mtm_source=free', ], [ 'id' => 'general_email', 'group_id' => 'general_email', 'title' => __( 'E-mail', 'really-simple-ssl' ), 'helpLink' => 'https://really-simple-ssl.com/instructions/about-our-general-settings/?mtm_campaign=instructions&mtm_source=free', ], [ 'id' => 'support', 'group_id' => 'support', 'title' => __('Premium Support', 'really-simple-ssl'), 'intro' => __('The following information is attached when you send this form: license key, scan results, your domain, .htaccess file, debug log and a list of active plugins.', 'really-simple-ssl'), 'premium' => true, 'premium_text' => __("Elevate your security with our Premium Support! Our expert team ensures simple, hassle-free assistance whenever you need it.", 'really-simple-ssl'), 'premium_title' => __('Why Premium Support?', 'really-simple-ssl'), 'helpLink' => 'https://really-simple-ssl.com/instructions/debugging/?mtm_campaign=instructions&mtm_source=free', 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=premiumsupport&mtm_source=free&mtm_content=upgrade', 'helpLink_text' => __('Debugging with Really Simple SSL', "really-simple-ssl"), ], ], ], [ 'id' => 'encryption', 'title' => 'SSL', 'groups' => [ [ 'id' => 'encryption_lets_encrypt', 'group_id' => 'encryption_lets_encrypt', 'title' => __( 'Let\'s Encrypt', 'really-simple-ssl' ), 'intro' => __( 'Let\'s Encrypt.', 'really-simple-ssl' ), 'helpLink' => 'https://really-simple-ssl.com/about-lets-encrypt/?mtm_campaign=letsencrypt&mtm_source=free', 'directLink' => rsssl_letsencrypt_wizard_url(), ], [ 'id' => 'encryption_redirect', 'group_id' => 'encryption_redirect', 'title' => __( 'Redirection', 'really-simple-ssl' ), 'helpLink' => 'https://really-simple-ssl.com/remove-htaccess-redirect-site-lockout/?mtm_source=free', ], [ 'id' => 'mixed-content-general', 'group_id' => 'mixed-content-general', 'title' => __( 'Mixed Content', 'really-simple-ssl' ), 'helpLink' => 'https://really-simple-ssl.com/remove-htaccess-redirect-site-lockout/?mtm_source=free', ], [ 'id' => 'mixed-content-scan', 'group_id' => 'mixed-content-scan', 'title' => __( 'Mixed Content Scan', 'really-simple-ssl' ), 'premium' => true, 'premium_title' => __( "Mixed Content Scan", 'really-simple-ssl' ), 'premium_text' => __( "The extensive mixed content scan will list all current and future issues and provide a fix, or instructions to fix manually.", 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=mixedcontent&mtm_source=free&mtm_content=upgrade', 'helpLink' => 'https://really-simple-ssl.com/pro/?mtm_campaign=mixedcontent&mtm_source=free&mtm_content=instructions', ], ], ], [ 'id' => 'security_headers', 'title' => __( 'Security Headers', 'really-simple-ssl' ), 'featured' => false, 'menu_items' => [ [ 'id' => 'recommended_security_headers', 'group_id' => 'recommended_security_headers', 'title' => __( 'Recommended Security Headers', 'really-simple-ssl' ), 'networkwide_required' => true, 'premium_title' => __( "The Essentials", 'really-simple-ssl' ), 'premium' => true, 'premium_text' => __( "Protecting your website visitors from malicious attacks and data breaches should be your #1 priority, start with the essentials with Really Simple Security", 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=recommendedheaders&mtm_source=free&mtm_content=upgrade', 'helpLink' => 'https://really-simple-ssl.com/instructions/about-recommended-security-headers/?mtm_campaign=instructions&mtm_source=free', ], [ 'id' => 'hsts', 'group_id' => 'hsts', 'premium' => true, 'networkwide_required' => true, 'premium_text' => __( "HSTS forces browsers always to load a website via HTTPS. It prevents unnecessary redirects and prevents manipulation of data originating from communication with your website.", 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=hsts&mtm_source=free&mtm_content=upgrade', 'title' => 'HTTP Strict Transport Security', 'helpLink' => 'https://really-simple-ssl.com/instructions/about-hsts/?mtm_campaign=instructions&mtm_source=free', ], [ 'id' => 'permissions_policy', 'group_id' => 'permissions_policy', 'title' => 'Permissions Policy', 'premium_text' => __( "Control browser features that could allow third parties to misuse data collected by microphone, camera, GEO Location etc, when enabled for your website.", 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=permissionspolicy&mtm_source=free&mtm_content=upgrade', 'helpLink' => 'https://really-simple-ssl.com/instructions/about-permissions-policy/?mtm_campaign=instructions&mtm_source=free', 'networkwide_required' => true, 'premium' => true, ], [ 'id' => 'content_security_policy', 'group_id' => 'content_security_policy', 'title' => __( 'Content Security Policy', 'really-simple-ssl' ), 'intro' => __( 'Content Security Policy Headers', 'really-simple-ssl' ), 'premium' => true, 'networkwide_required' => true, 'helpLink' => 'https://really-simple-ssl.com/instructions/configuring-the-content-security-policy/?mtm_campaign=instructions&mtm_source=free', 'groups' => [ [ 'id' => 'upgrade_insecure_requests', 'group_id' => 'upgrade_insecure_requests', 'networkwide_required' => true, 'premium' => true, 'premium_text' => __( "A correctly configured Content Security Policy can protect your visitors from the most common web attacks. It all starts with denying and upgrading insecure requests on your website.", 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=upgradeinsecurerequests&mtm_source=free&mtm_content=upgrade', 'helpLink' => 'https://really-simple-ssl.com/instructions/configuring-the-content-security-policy/?mtm_campaign=instructions&mtm_source=free', 'title' => 'Upgrade Insecure Requests', ], [ 'id' => 'frame_ancestors', 'group_id' => 'frame_ancestors', 'networkwide_required' => true, 'premium' => true, 'premium_text' => __( "Prevent clickjacking and other malicious attacks by restricting sources that are permitted to embed content from your website.", 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=frameancestors&mtm_source=free&mtm_content=upgrade', 'helpLink' => 'https://really-simple-ssl.com/instructions/frame-ancestors/?mtm_campaign=instructions&mtm_source=free', 'title' => 'Frame Ancestors', ], [ 'id' => 'content_security_policy_source_directives', 'group_id' => 'content_security_policy_source_directives', 'networkwide_required' => true, 'helpLink' => 'https://really-simple-ssl.com/instructions/source-directives/', 'premium' => true, 'premium_title' => 'Source Directives with Learning Mode', 'premium_text' => __( "Allow only necessary third party resources to be loaded on your website, thus preventing common attacks. Use our unique learning mode to automatically configure your Content Security Policy.", 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=csp&mtm_source=free&mtm_content=upgrade', 'title' => 'Source Directives', ] ], ], [ 'id' => 'cross_origin_policy', 'group_id' => 'cross_origin_policy', 'networkwide_required' => true, 'premium' => true, 'premium_text' => __( 'This is a security feature implemented by web browsers to control how web pages from different origins can interact with each other.', 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=cops&mtm_source=free&mtm_content=upgrade', 'title' => 'Cross Origin Policy', 'premium_title' => 'Advanced: Cross Origin Policy', 'helpLink' => 'https://really-simple-ssl.com/instructions/cross-origin-policies/?mtm_campaign=instructions&mtm_source=free', ], ], ], [ 'id' => 'vulnerabilities', 'title' => __( 'Vulnerabilities', 'really-simple-ssl' ), 'menu_items' => [ [ 'id' => 'vulnerabilities_basic', 'group_id' => 'vulnerabilities_basic', 'title' => __( 'Detection', 'really-simple-ssl' ), 'intro' => __( 'Here you can configure vulnerability detection, notifications and measures. To learn more about the features displayed, please use the instructions linked in the top-right corner.', 'really-simple-ssl' ), 'helpLink' => 'https://really-simple-ssl.com/instructions/about-vulnerabilities/', 'featured' => true, ], [ 'id' => 'vulnerabilities_notifications', 'group_id' => 'vulnerabilities_notifications', 'title' => __( 'Notifications', 'really-simple-ssl' ), 'groups' => [ [ 'id' => 'vulnerabilities_notifications', 'group_id' => 'vulnerabilities_notifications', 'title' => __( 'Notifications', 'really-simple-ssl' ), 'intro' => __( 'These notifications are set to the minimum risk level that triggers a notification. For example, the default site-wide notification triggers on high-risk and critical vulnerabilities.', 'really-simple-ssl' ), 'helpLink' => 'https://really-simple-ssl.com/instructions/about-vulnerabilities#notifications', ], [ 'id' => 'vulnerabilities_overview', 'group_id' => 'vulnerabilities_overview', 'title' => __( 'Overview', 'really-simple-ssl' ), 'intro' => __( 'This is the vulnerability overview. Here you will find current known vulnerabilities on your system. You can find more information and helpful, actionable insights for every vulnerability under details.', 'really-simple-ssl' ), 'helpLink' => 'https://really-simple-ssl.com/instructions/about-vulnerabilities#components', ], ], ], [ 'id' => 'vulnerabilities-measures-overview', 'group_id' => 'vulnerabilities-measures-overview', 'title' => __( 'Measures', 'really-simple-ssl' ), 'groups' => [ [ 'id' => 'vulnerabilities_measures', 'group_id' => 'vulnerabilities_measures', 'title' => __( 'Measures', 'really-simple-ssl' ), 'intro' => __( 'You can choose to automate the most common actions for a vulnerability. Each action is set to a minimum risk level, similar to the notifications. Please read the instructions to learn more about the process.', 'really-simple-ssl' ), 'premium' => true, 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=vulnerabilities&mtm_source=free&mtm_content=upgrade', 'helpLink' => 'https://really-simple-ssl.com/instructions/about-vulnerabilities#measures', 'premium_title' => __( "Automated Measures", 'really-simple-ssl' ), 'premium_text' => __( "Maintain peace of mind with our simple, but effective automated measures when vulnerabilities are discovered. When needed Really Simple Security will force update or quarantaine vulnerable components, on your terms!", 'really-simple-ssl' ), ], ], ], ], ], [ 'id' => 'hardening', 'title' => __( 'Hardening', 'really-simple-ssl' ), 'featured' => false, 'menu_items' => [ [ 'id' => 'hardening-basic', 'group_id' => 'hardening-basic', 'title' => __( 'Basic', 'really-simple-ssl' ), 'helpLink' => 'https://really-simple-ssl.com/instructions/about-hardening-features/?mtm_campaign=instructions&mtm_source=free', ], [ 'id' => 'hardening-extended', 'group_id' => 'hardening-extended', 'title' => __( 'Advanced', 'really-simple-ssl' ), 'premium' => true, 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=hardening&mtm_source=free&mtm_content=upgrade', 'helpLink' => 'https://really-simple-ssl.com/instructions/about-hardening-features#advanced/?mtm_campaign=instructions&mtm_source=free', 'premium_title' => __( "Advanced Hardening", 'really-simple-ssl' ), 'premium_text' => __( "Advanced hardening features complement the basic hardening functions by protecting your site against advanced threats and attacks.", 'really-simple-ssl' ), ], [ 'id' => 'hardening-xml', 'group_id' => 'hardening-xml', 'title' => __( 'XML-RPC', 'really-simple-ssl' ), 'premium_title' => __( 'XML-RPC with Learning Mode', 'really-simple-ssl' ), 'premium' => true, 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=hardening&mtm_source=free&mtm_content=upgrade', 'helpLink' => 'https://really-simple-ssl.com/instructions/about-hardening-features#xml-rpc?mtm_campaign=instructions&mtm_source=free', 'premium_text' => __( "Not sure if you're using XML-RPC, or want to restrict unauthorized use of XML-RPC? With learning mode you can see exactly which sources use XML-RPC, and you can revoke where necessary.", 'really-simple-ssl' ), ], ], ], [ 'id' => 'login-security', 'title' => __('Login Protection', 'really-simple-ssl'), 'featured' => false, 'new' => true, 'menu_items' => [ [ 'id' => 'two-fa', 'networkwide_required' => true, 'premium' => true, 'premium_text' => __( 'Get two-factor authentication with Really Simple SSL Pro', 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=2fa&mtm_source=free&mtm_content=upgrade', 'helpLink' => 'https://really-simple-ssl.com/instructions/about-login-protection/?mtm_campaign=instructions&mtm_source=free', 'title' => __('Two-step verification', 'really-simple-ssl'), 'groups' => [ [ 'id' => 'two_fa_general', 'group_id' => 'two_fa_general', 'premium' => true, 'premium_text' => __( "Start login protection by adding an additional layer during authentication. This will leave authentication less dependent on just a single password. Want to force strong passwords? Check out Password Security.", 'really-simple-ssl' ), 'helpLink' => 'https://really-simple-ssl.com/instructions/about-login-protection', 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=2fa&mtm_source=free&mtm_content=upgrade', 'title' => __( 'Two-step verification', 'really-simple-ssl' ), 'intro' => __( 'Enhancing the authentication process and optimizing user management makes Login Protection a foundational element in securing your website.', 'really-simple-ssl' ), ], [ 'id' => 'two_fa_email', 'group_id' => 'two_fa_email', 'premium' => true, 'premium_text' => __( "Send an email code during login. You can force user roles to use two-step verification, or leave the choose with your users, if so desired.", 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=2fa&mtm_source=free&mtm_content=upgrade', 'helpLink' => 'https://really-simple-ssl.com/instructions/about-login-protection', 'title' => __( 'Email', 'really-simple-ssl' ), 'intro' => __( 'Two-step verification will enhance the authentication process by adding an additional layer. Selected users will be required to enter their correct credentials first, and then they must provide a one-time code sent to their email as an extra step.', 'really-simple-ssl' ), ], [ 'id' => 'two_fa_users', 'group_id' => 'two_fa_users', 'premium' => true, 'premium_text' => __( "Here you control the users that are automatically, and temporarily blocked. You can also add or remove users manually. We recommend blocking ‘admin’ as username as a start.", 'really-simple-ssl' ), 'helpLink' => 'https://really-simple-ssl.com/instructions/about-login-protection', 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=2fa&mtm_source=free&mtm_content=upgrade', 'title' => __( 'Users', 'really-simple-ssl' ), 'intro' => __( 'Here you can see which users have enabled two-step login, or change the status per user.', 'really-simple-ssl' ), 'groupFilter' => [ 'default' => 'active', 'id' => 'two_fa_user_filter', 'options' => [ [ 'id' => 'active', 'title' => __('Active', 'really-simple-ssl'), ], [ 'id' => 'open', 'title' => __('Open', 'really-simple-ssl'), ], [ 'id' => 'disabled', 'title' => __('Disabled', 'really-simple-ssl'), ] ], ], ], ], ], [ 'id' => 'password_security', 'networkwide_required' => true, 'title' => __('Password security','really-simple-ssl'), 'helpLink' => 'https://really-simple-ssl.com/instructions/password-security/?mtm_campaign=instructions&mtm_source=free', 'groups' => [ [ 'id' => 'password_security_passwords', 'group_id' => 'password_security_passwords', 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=passwordsecurity&mtm_source=free&mtm_content=upgrade', 'premium_title' => __( 'Password security', 'really-simple-ssl' ), 'premium_text' => __( 'Enforce secure password policies for your users by requiring strong passwords, and expiring passwords after a period of your choosing.', 'really-simple-ssl' ), 'premium' => true, 'helpLink' => 'https://really-simple-ssl.com/instructions/password-security/?mtm_campaign=instructions&mtm_source=free', 'title' => __( 'Passwords', 'really-simple-ssl' ), 'intro' => __( 'Improve security by requiring strong passwords and forced periodic password changes', 'really-simple-ssl' ), ], ] ], [ 'id' => 'limit_login_attempts', 'title' => __( 'Limit Login Attempts', 'really-simple-ssl' ), 'premium' => true, 'groups' => [ [ 'id' => 'limit_login_attempts_general', 'group_id' => 'limit_login_attempts_general', 'helpLink' => 'https://really-simple-ssl.com/instructions/limit-login-attempts/?mtm_campaign=instructions&mtm_source=free', 'premium' => true, 'premium_title' => __( 'Limit Login Attempts', 'really-simple-ssl' ), 'premium_text' => __( 'Customize login attempts, intervals, and temporary lockouts according to your preferences to regulate the level of security on your website during authentication. No additional settings required', 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=lla&mtm_source=free&mtm_content=upgrade', 'title' => __( 'General', 'really-simple-ssl' ), 'intro' => __( 'Protect your site against brute force login attacks by limiting the number of login attempts. Enabling this feature will temporary lock-out a username and the IP address that tries to login, after the set number of false logins.', 'really-simple-ssl' ), ], [ 'id' => 'limit_login_attempts_advanced', 'group_id' => 'limit_login_attempts_advanced', 'premium' => true, 'premium_title' => __( 'Settings', 'really-simple-ssl' ), 'premium_text' => __( 'Customize login attempts, intervals, and temporary lockouts according to your preferences to regulate the level of security on your website during authentication. No additional settings required', 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=lla&mtm_source=free&mtm_content=upgrade', 'helpLink' => 'https://really-simple-ssl.com/instructions/limit-login-attempts/?mtm_campaign=instructions&mtm_source=free', 'title' => __( 'Limit Attempts', 'really-simple-ssl' ), 'intro' => __( 'The settings below determine how strict your site will be protected. You can leave these settings on their default values, unless you experience issues.', 'really-simple-ssl' ), ], [ 'id' => 'limit_login_attempts_users', 'group_id' => 'limit_login_attempts_users', 'premium' => true, 'premium_title' => __( 'Users', 'really-simple-ssl' ), 'premium_text' => __( 'Here you control the users that are automatically, and temporarily blocked. You can also add or remove users manually. We recommend blocking ‘admin’ as username as a start.', 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=lla&mtm_source=free&mtm_content=upgrade', 'groupFilter' => [ 'default' => 'limit_login_attempts_advanced_filter_log', 'id' => 'limit_login_attempts_advanced_filter', 'options' => [ [ 'id' => 'blocked', 'title' => __( 'Permanent block', 'really-simple-ssl' ), ], [ 'id' => 'allowed', 'title' => __( 'Trusted', 'really-simple-ssl' ), ], [ 'id' => 'locked', 'title' => __( 'Temporary block', 'really-simple-ssl' ), ], ], ], 'title' => __( 'Users', 'really-simple-ssl' ), 'intro' => [ 'locked' => __( 'Blocked usernames will be automatically unblocked after the above-configured interval. In the table below you can instantly unblock usernames.', 'really-simple-ssl' ), 'allowed' => __( 'You can prevent usernames from being temporarily blocked by adding them to this list. The IP address that triggers false logins will still be blocked.', 'really-simple-ssl' ), 'blocked' => __( 'You can add any non-existing username to this table, to instantly block IP addresses that try common usernames like "admin".', 'really-simple-ssl' ), ], ], [ 'id' => 'limit_login_attempts_ip_address', 'group_id' => 'limit_login_attempts_ip_address', 'premium' => true, 'premium_title' => __( 'IP Addresses', 'really-simple-ssl' ), 'premium_text' => __( 'IP Addresses can be allowed, blocked or will show up when your settings add them to a temporary blocklist. If you want to add your IP to the allowlist, please read the article provided at the right-hand side for instructions.', 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=lla&mtm_source=free&mtm_content=upgrade', 'groupFilter' => [ 'default' => 'limit_login_attempts_advanced_filter_log', 'id' => 'limit_login_attempts_advanced_filter', 'options' => [ [ 'id' => 'blocked', 'title' => __( 'Permanent block', 'really-simple-ssl' ), ], [ 'id' => 'allowed', 'title' => __( 'Trusted', 'really-simple-ssl' ), ], [ 'id' => 'locked', 'title' => __( 'Temporary block', 'really-simple-ssl' ), ], ], ], 'title' => __( 'IP Addresses', 'really-simple-ssl' ), 'intro' => [ 'locked' => __( 'Blocked IP addresses will be automatically unblocked after the above-configured interval. In the table below you can instantly unblock IP addresses.', 'really-simple-ssl' ), 'allowed' => __( 'You can prevent IP addresses from being temporarily blocked by adding them to this list. This can be convenient if you share an IP address with other site users. Usernames that trigger false logins will still be blocked.', 'really-simple-ssl' ), 'blocked' => __( 'You can indefinitely block known abusive IP addresses, to completely prevent them from trying to login.', 'really-simple-ssl' ), ], ], [ 'id' => 'limit_login_attempts_event_log', 'group_id' => 'limit_login_attempts_event_log', 'premium' => true, 'premium_title' => __( 'Event Log', 'really-simple-ssl' ), 'premium_text' => __( 'The Event Log shows all relevant events related to limit login attempts. You can filter the log using the dropdown on the top-right to only show warnings.', 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=lla&mtm_source=free&mtm_content=upgrade', 'groupFilter' => [ 'default' => 'limit_login_attempts_advanced_filter_log', 'id' => 'limit_login_attempts_advanced_filter', 'options' => [ [ 'id' => 'warning', 'title' => __( 'Warnings', 'really-simple-ssl' ), ], [ 'id' => 'all', 'title' => __( 'All', 'really-simple-ssl' ), ], ], ], 'title' => __( 'Event Log', 'really-simple-ssl' ), 'intro' => __( 'The Event Log shows all relevant events related to limit login attempts. You can filter the log using the dropdown on the top-right to only show warnings.', 'really-simple-ssl' ), ], [ 'id' => 'limit_login_attempts_country', 'group_id' => 'limit_login_attempts_country', 'premium' => true, 'premium_title' => __( 'Regions', 'really-simple-ssl' ), 'premium_text' => __( 'You can easily block countries, or entire continents. You can act on the event log below and see which countries are suspicious, or exclude all countries but your own.', 'really-simple-ssl' ), 'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=lla&mtm_source=free&mtm_content=upgrade', 'groupFilter' => [ 'default' => 'limit_login_attempts_advanced_filter_log', 'id' => 'limit_login_attempts_advanced_filter', 'options' => [ [ 'id' => 'blocked', 'title' => __( 'Blocked', 'really-simple-ssl' ), ], [ 'id' => 'regions', 'title' => __( 'Continents', 'really-simple-ssl' ), ], [ 'id' => 'countries', 'title' => __( 'Countries', 'really-simple-ssl' ), ], ], ], 'title' => __( 'Regions', 'really-simple-ssl' ), 'intro' => __( 'If your site is only intended for users to login from specific geographical regions, you can entirely prevent logins from certain continents or countries.', 'really-simple-ssl' ), ] ], ], ], ], ], ], [ "id" => "letsencrypt", 'default_hidden' => true, "title" => "Let's Encrypt", 'intro' => sprintf( __( 'We have tried to make our Wizard as simple and fast as possible. Although these questions are all necessary, if there’s any way you think we can improve the plugin, please let us %sknow%s!', 'really-simple-ssl' ), '<a target="_blank" rel="noopener noreferrer" href="https://really-simple-ssl.com/contact/?mtm_campaign=instructions&mtm_source=free">', '</a>' ) . sprintf( __( ' Please note that you can always save and finish the wizard later, use our %sdocumentation%s for additional information or log a %ssupport ticket%s if you need our assistance.', 'really-simple-ssl' ), '<a target="_blank" rel="noopener noreferrer" href="https://really-simple-ssl.com/install-ssl-certificate/?mtm_campaign=instructions&mtm_source=free">', '</a>', '<a target="_blank" rel="noopener noreferrer" href="https://wordpress.org/support/plugin/really-simple-ssl/">', '</a>' ), 'menu_items' => [ [ 'id' => 'le-system-status', 'group_id' => 'le-system-status', 'title' => __('System Status', 'really-simple-ssl'), 'intro' => __('Letʼs Encrypt is a free, automated and open certificate authority brought to you by the nonprofit Internet Security Research Group (ISRG).', 'really-simple-ssl'), 'helpLink' => 'https://really-simple-ssl.com/about-lets-encrypt/?mtm_campaign=letsencrypt&mtm_source=free', 'tests_only' => true, ], [ 'id' => 'le-general', 'title' => __('General Settings', 'really-simple-ssl'), ], [ 'id' => 'le-hosting', 'title' => __('Hosting', 'really-simple-ssl'), 'intro' => __('Below you will find the instructions for different hosting environments and configurations. If you start the process with the necessary instructions and credentials the next steps will be done in no time.', 'really-simple-ssl'), ], [ 'id' => 'le-directories', 'title' => __('Directories', 'really-simple-ssl'), 'tests_only' => true, ], [ 'id' => 'le-dns-verification', 'title' => __('DNS verification', 'really-simple-ssl'), 'tests_only' => true, ], [ 'id' => 'le-generation', 'title' => __('Generation', 'really-simple-ssl'), 'tests_only' => true, ], [ 'id' => 'le-installation', 'title' => __('Installation', 'really-simple-ssl'), 'tests_only' => true, ], [ 'id' => 'le-activate_ssl', 'title' => __('Activate', 'really-simple-ssl'), 'tests_only' => true, ], ], ], ]; return apply_filters('rsssl_menu', $menu_items); } PK�������!�b ��b ��)��settings/config/disable-fields-filter.phpnu�[��������<?php defined('ABSPATH') or die(); /** * @param $fields * * @return mixed */ function rsssl_remove_fields($fields){ $redirect_index = array_search( 'redirect', array_column( $fields, 'id' ), true ); if ( !rsssl_uses_htaccess() ){ unset($fields[$redirect_index]['options']['htaccess']); } else { $fields[$redirect_index]['warning'] = true; $fields[$redirect_index]['tooltip'] = ' '.__('On Apache you can use a .htaccess redirect, which is usually faster, but may cause issues on some configurations. Read the instructions in the sidebar first.', 'really-simple-ssl'); $fields[$redirect_index]['help'] = [ 'label' => 'warning', 'title' => __( "Redirect method", 'really-simple-ssl' ), 'text' => __( 'Enable .htaccess only if you know how to regain access in case of issues.', 'really-simple-ssl' ).' '.__( 'Redirects your site to https with a SEO friendly 301 redirect if it is requested over http.', 'really-simple-ssl' ), 'url' => 'https://really-simple-ssl.com/remove-htaccess-redirect-site-lockout/', ]; } if ( is_multisite() && !rsssl_is_networkwide_active() ){ unset($fields[$redirect_index]['options']['htaccess']); $fields = array_values($fields); } // 2FA and LLA e-mail verification help texts if ( ! rsssl_is_email_verified() ) { $index = array_search( 'send_verification_email', array_column( $fields, 'id' ), true ); $fields[$index]['help'] = rsssl_email_help_text(); $fields = array_values($fields); } if ( ! rsssl_is_email_verified() && rsssl_get_option('two_fa_enabled') == '1' ) { $index = array_search( 'two_fa_enabled', array_column( $fields, 'id' ), true ); $fields[$index]['help'] = rsssl_email_help_text(); $fields = array_values($fields); } if ( ! rsssl_is_email_verified() && rsssl_get_option('enable_limited_login_attempts') == '1' ) { $index = array_search( 'limit_login_attempts_amount', array_column( $fields, 'id' ), true ); //if LLA is not included yet, this index will be false. if ( $index !== false ) { $fields[$index]['help'] = rsssl_email_help_text(); $fields = array_values($fields); } } return $fields; } add_filter('rsssl_fields', 'rsssl_remove_fields', 10, 1); function rsssl_email_help_text() { return [ 'label' => rsssl_is_email_verified() ? 'success' : 'warning', 'title' => __( "Email validation", 'really-simple-ssl' ), 'url' => add_query_arg( [ 'page' => 'really-simple-security#settings/general/email' ], rsssl_admin_url() ), 'text' => rsssl_is_email_verified() ? __( "Email validation completed", 'really-simple-ssl' ) : ( rsssl_check_if_email_essential_feature() ? __( "You're using a feature where email is an essential part of the functionality. Please validate that you can send emails on your server.", 'really-simple-ssl' ) : __("Email not verified yet. Verify your email address to get the most out of Really Simple SSL", "really-simple-ssl") ), ]; } PK�������!�?t4s#���#�����settings/config/index.phpnu�[��������<?php // You don't belong here. ?> PK�������!�0wyB �� ����settings/webpack.prod.jsnu�[��������const defaultConfig = require("@wordpress/scripts/config/webpack.config"); module.exports = { ...defaultConfig, output: { ...defaultConfig.output, filename: '[name].[contenthash].js', chunkFilename: '[name].[contenthash].js', }, };PK�������!�%}}��}����settings/webpack.config.jsnu�[��������const defaultConfig = require("@wordpress/scripts/config/webpack.config"); module.exports = { ...defaultConfig, output: { ...defaultConfig.output, filename: '[name].[contenthash].js', chunkFilename: '[name].[contenthash].js', }, resolve: { ...defaultConfig.resolve, fallback: { "path": require.resolve("path-browserify"), }, }, module: { ...defaultConfig.module, rules: [ ...defaultConfig.module.rules, { test: /\.node$/, loader: 'node-loader', }, ], }, };PK�������!�:Ьy��y����settings/settings.phpnu�[��������<?php defined('ABSPATH') or die(); /** * Enqueue Gutenberg block assets for backend editor. * * @since 1.0.0 */ require_once(rsssl_path.'settings/config/config.php'); require_once(rsssl_path.'settings/config/menu.php'); require_once(rsssl_path.'settings/config/disable-fields-filter.php'); /** * Fix for WPML issue where WPML breaks the rest api by adding a language locale in the url * * @param $url * @param $path * @param $blog_id * @param $scheme * * @return string */ function rsssl_fix_rest_url_for_wpml($url, $path, $blog_id, $scheme) { if (strpos($url, 'reallysimplessl/v') === false) { return $url; } $current_language = false; if (function_exists('icl_register_string')) { $current_language = apply_filters('wpml_current_language', null); } if (function_exists('qtranxf_getLanguage')) { $current_language = qtranxf_getLanguage(); } if ($current_language) { if (strpos($url, '/'.$current_language.'/wp-json/')) { $url = str_replace('/'.$current_language.'/wp-json/', '/wp-json/', $url); } } return $url; } add_filter('rest_url', 'rsssl_fix_rest_url_for_wpml', 10, 4); /** * WordPress doesn't allow for translation of chunks resulting of code splitting. * Several workarounds have popped up in JetPack and Woocommerce: https://developer.wordpress.com/2022/01/06/wordpress-plugin-i18n-webpack-and-composer/ * Below is mainly based on the Woocommerce solution, which seems to be the most simple approach. Simplicity is king here. * * @return array */ function rsssl_get_chunk_translations($path = 'settings/build' ) { //get all files from the settings/build folder $files = scandir(rsssl_path . $path ); $json_translations = []; // filter the filenames to get the JavaScript and asset filenames $jsFilename = ''; $assetFilename = ''; foreach ($files as $file) { if (strpos($file, 'index.') === 0) { if (substr($file, -3) === '.js') { $jsFilename = $file; } elseif (substr($file, -10) === '.asset.php') { $assetFilename = $file; } } if (strpos($file, '.js') === false) { continue; } $chunk_handle = str_replace('.js', '', $file ); //temporarily register the script, so we can get a translations object. wp_register_script( $chunk_handle, plugins_url('build/'.$file, __FILE__), [], true ); $language_path = defined('rsssl_pro') ? rsssl_path . 'languages' : false; $localeData = load_script_textdomain( $chunk_handle, 'really-simple-ssl', $language_path ); if (!empty($localeData)){ $json_translations[] = $localeData; } wp_deregister_script( $chunk_handle ); } if (empty($jsFilename) || empty($assetFilename) ) { return []; } $assetFile = require( rsssl_path . trailingslashit( $path ) . $assetFilename ); return [ 'json_translations' => $json_translations, 'dependencies' => $assetFile['dependencies'], 'version' => $assetFile['version'], 'js_file' => $jsFilename, ]; } function rsssl_plugin_admin_scripts() { $js_data = rsssl_get_chunk_translations(); // check if the necessary files are found if ( !empty($js_data) ) { $handle = 'rsssl-settings'; wp_enqueue_script( $handle); wp_enqueue_script( 'rsssl-settings', plugins_url( 'build/' . $js_data['js_file'], __FILE__ ), $js_data['dependencies'], $js_data['version'], true ); wp_set_script_translations($handle, 'really-simple-ssl'); wp_localize_script( 'rsssl-settings', 'rsssl_settings', apply_filters('rsssl_localize_script', [ 'json_translations' => $js_data['json_translations'], 'menu' => rsssl_menu(), 'is_bf' => RSSSL()->admin->is_bf(), 'site_url' => get_rest_url(), 'plugins_url' => admin_url('update-core.php'), 'admin_ajax_url' => add_query_arg( array( 'type' => 'errors', 'action' => 'rsssl_rest_api_fallback' ), admin_url('admin-ajax.php')), 'dashboard_url' => add_query_arg(['page' => 'really-simple-security'], rsssl_admin_url()), 'letsencrypt_url' => rsssl_letsencrypt_wizard_url(), 'le_generated_by_rsssl' => rsssl_generated_by_rsssl(), 'upgrade_link' => is_multisite() ? 'https://really-simple-ssl.com/pro/?mtm_campaign=fallback&mtm_source=free&mtm_content=upgrade' : 'https://really-simple-ssl.com/pro/?mtm_campaign=fallback&mtm_source=free&mtm_content=upgrade', 'plugin_url' => rsssl_url, 'network_link' => network_site_url('plugins.php'), 'pro_plugin_active' => defined('rsssl_pro'), 'networkwide_active' => !is_multisite() || rsssl_is_networkwide_active(),//true for single sites and network wide activated 'nonce' => wp_create_nonce('wp_rest'),//to authenticate the logged-in user 'rsssl_nonce' => wp_create_nonce('rsssl_nonce'), 'wpconfig_fix_required' => RSSSL()->admin->do_wpconfig_loadbalancer_fix() && !RSSSL()->admin->wpconfig_has_fixes(), 'cloudflare' => rsssl_uses_cloudflare(), ]) ); } } /** * Check if this server is behind CloudFlare * * @return bool */ function rsssl_uses_cloudflare(): bool { return isset( $_SERVER['HTTP_CF_CONNECTING_IP'] ); } /** * Add SSL menu * * @return void */ function rsssl_add_option_menu() { if ( ! rsssl_user_can_manage()) { return; } //hides the settings page the plugin is network activated. The settings can be found on the network settings menu. if (is_multisite() && rsssl_is_networkwide_active()) { return; } $count = RSSSL()->admin->count_plusones(); $update_count = $count > 0 ? "<span class='update-plugins rsssl-update-count'><span class='update-count'>$count</span></span>" : ""; $page_hook_suffix = add_options_page( __("SSL & Security", "really-simple-ssl"), __("SSL & Security", "really-simple-ssl").$update_count, 'manage_security', 'really-simple-security', 'rsssl_settings_page' ); add_action("admin_print_scripts-{$page_hook_suffix}", 'rsssl_plugin_admin_scripts'); } add_action('admin_menu', 'rsssl_add_option_menu'); /** * Render the settings page */ function rsssl_settings_page() { if ( ! rsssl_user_can_manage()) { return; } ?> <div id="really-simple-ssl" class="rsssl"></div> <div id="really-simple-ssl-modal"></div> <?php } /** * If the rest api is blocked, the code will try an admin ajax call as fall back. * * @return void */ function rsssl_rest_api_fallback() { $response = $data = []; $error = $action = $test = $do_action = false; if ( ! rsssl_user_can_manage()) { $error = true; } //if the site is using this fallback, we want to show a notice update_option('rsssl_ajax_fallback_active', time(), false); if (isset($_GET['rest_action'])) { $action = sanitize_text_field($_GET['rest_action']); if (strpos($action, 'reallysimplessl/v1/tests/') !== false) { $test = strtolower(str_replace('reallysimplessl/v1/tests/', '', $action)); } } $requestData = json_decode(file_get_contents('php://input'), true); if ($requestData) { $action = $requestData['path'] ?? false; $action = sanitize_text_field($action); $data = $requestData['data'] ?? false; if (strpos($action, 'reallysimplessl/v1/do_action/') !== false) { $do_action = strtolower(str_replace('reallysimplessl/v1/do_action/', '', $action)); } } if (!$error) { if (strpos($action, 'fields/get') !== false) { $response = rsssl_rest_api_fields_get(); } else if (strpos($action, 'fields/set') !== false) { $request = new WP_REST_Request(); $response = rsssl_rest_api_fields_set($request, $data); } else if ($test) { $request = new WP_REST_Request(); $data = $_GET['data'] ?? false; $data = json_decode(stripcslashes($data)); $data = (array)$data; $nonce = isset($_GET['nonce']) ? sanitize_text_field($_GET['nonce']) : false; $id = isset($_GET['id']) ? sanitize_text_field($_GET['id']) : false; $state = isset($_GET['state']) ? sanitize_title($_GET['state']) : false; $request->set_param('test', $test); $request->set_param('state', $state); $request->set_param('id', $id); $request->set_param('nonce', $nonce); //remove foreach ($_GET as $key => $value) { $data[$key] = sanitize_text_field($value); } $response = rsssl_run_test($request, $data); } elseif ($do_action) { $request = new WP_REST_Request(); $request->set_param('action', $do_action); $response = rsssl_do_action($request, $data); } } header("Content-Type: application/json"); echo json_encode($response); exit; } add_action('wp_ajax_rsssl_rest_api_fallback', 'rsssl_rest_api_fallback'); add_action('rest_api_init', 'rsssl_settings_rest_route', 10); function rsssl_settings_rest_route() { if (!rsssl_user_can_manage()) { return; } register_rest_route('reallysimplessl/v1', 'fields/get', array( 'methods' => 'GET', 'callback' => 'rsssl_rest_api_fields_get', 'permission_callback' => function () { return rsssl_user_can_manage(); } )); register_rest_route('reallysimplessl/v1', 'fields/set', array( 'methods' => 'POST', 'callback' => 'rsssl_rest_api_fields_set', 'permission_callback' => function () { return rsssl_user_can_manage(); } )); register_rest_route('reallysimplessl/v1', 'tests/(?P<test>[a-z\_\-]+)', array( 'methods' => 'GET', 'callback' => 'rsssl_run_test', 'permission_callback' => function () { return rsssl_user_can_manage(); } )); register_rest_route('reallysimplessl/v1', 'do_action/(?P<action>[a-z\_\-]+)', array( 'methods' => 'POST', 'callback' => 'rsssl_do_action', 'permission_callback' => function () { return rsssl_user_can_manage(); } )); } /** * Store SSL Labs result * @param array $data * * @return array */ function rsssl_store_ssl_labs($data) { if (!rsssl_user_can_manage()) { return []; } update_option('rsssl_ssl_labs_data', $data, false); return []; } function rsssl_remove_fallback_notice() { if (get_option('rsssl_ajax_fallback_active') !== false) { delete_option('rsssl_ajax_fallback_active'); } } /** * @param WP_REST_Request $request * @param array|bool $ajax_data * * @return void */ function rsssl_do_action($request, $ajax_data = false) { if (!rsssl_user_can_manage()) { return; } if (!$ajax_data) { rsssl_remove_fallback_notice(); } $action = sanitize_title($request->get_param('action')); $data = $ajax_data !== false ? $ajax_data : $request->get_params(); $nonce = $data['nonce']; if (!wp_verify_nonce($nonce, 'rsssl_nonce')) { return; } switch ($action) { case 'ssltest_get': $response = ['data' => get_option('rsssl_ssl_labs_data')]; break; case 'ssltest_run': $response = rsssl_ssltest_run($data); break; case 'store_ssl_labs': $response = rsssl_store_ssl_labs($data); break; case 'send_test_mail': $mailer = new rsssl_mailer(); $response = $mailer->send_test_mail(); break; case 'send_verification_mail': $mailer = new rsssl_mailer(); $response = $mailer->send_verification_mail( rsssl_get_option('notifications_email_address') ); break; case 'plugin_actions': $response = rsssl_plugin_actions($data); break; case 'clear_cache': $response = rsssl_clear_test_caches($data); break; case 'otherpluginsdata': $response = rsssl_other_plugins_data(); break; case 'get_roles': $roles = rsssl_get_roles(); $response = []; $response['roles'] = $roles; break; case 'get_hosts': if ( !class_exists('rsssl_le_hosts')) { require_once( rsssl_path . 'lets-encrypt/config/class-hosts.php'); } $response = []; $response['hosts'] = ( new rsssl_le_hosts() )->hosts; break; default: $response = apply_filters("rsssl_do_action", [], $action, $data); } if (is_array($response)) { $response['request_success'] = true; } return $response; } /** * @param array $data * * @return array */ function rsssl_clear_test_caches($data) { if (!rsssl_user_can_manage()) { return []; } $cache_id = sanitize_title($data['cache_id']); do_action('rsssl_clear_test_caches', $data); return []; } /** * Process plugin installation or activation actions * * @param array $data * * @return array */ function rsssl_plugin_actions($data) { if (!rsssl_user_can_manage()) { return []; } $slug = sanitize_title($data['slug']); $action = sanitize_title($data['pluginAction']); $installer = new rsssl_installer($slug); if ($action === 'download') { $installer->download_plugin(); } elseif ($action === 'activate') { $installer->activate_plugin(); } return rsssl_other_plugins_data($slug); } /** * Run a request to SSL Labs * * @param $data * * @return string */ function rsssl_ssltest_run( $data ) { if ( ! rsssl_user_can_manage() ) { return ''; } $url = $data['url']; $response = wp_safe_remote_get( $url ); $data = wp_remote_retrieve_body( $response ); if ( empty( $data ) ) { $data = [ 'errors' => 'Request failed, please try again.' ]; } return $data; } /** * @param WP_REST_Request $request * * @return array */ function rsssl_run_test($request, $ajax_data = false) { if (!rsssl_user_can_manage()) { return []; } if (!$ajax_data) { rsssl_remove_fallback_notice(); } $nonce = $request->get_param('nonce'); if (!wp_verify_nonce($nonce, 'rsssl_nonce')) { return []; } $data = $ajax_data !== false ? $ajax_data : $request->get_params(); $test = sanitize_title($request->get_param('test')); $state = $request->get_param('state'); $state = $state !== 'undefined' && $state !== 'false' ? $state : false; switch ($test) { case 'progressdata': $response = RSSSL()->progress->get(); break; case 'dismiss_task': $response = RSSSL()->progress->dismiss_task($state); break; default: $response = apply_filters("rsssl_run_test", [], $test, $data); } if (is_array($response)) { $response['request_success'] = true; } return $response; } /** * Get plugin data for other plugin section * @param string $slug * @return array */ function rsssl_other_plugins_data($slug = false) { if (!rsssl_user_can_manage()) { return []; } $plugins = array( [ 'slug' => 'burst-statistics', 'constant_free' => 'burst_version', 'constant_premium' => 'burst_pro', 'wordpress_url' => 'https://wordpress.org/plugins/burst-statistics/', 'upgrade_url' => 'https://burst-statistics.com/pricing?src=rsssl-plugin', 'title' => 'Burst Statistics - '. __("Self-hosted and privacy-friendly analytics tool.", 'really-simple-ssl'), ], [ 'slug' => 'complianz-gdpr', 'constant_free' => 'cmplz_plugin', 'constant_premium' => 'cmplz_premium', 'wordpress_url' => 'https://wordpress.org/plugins/complianz-gdpr/', 'upgrade_url' => 'https://complianz.io/pricing?src=rsssl-plugin', 'title' => __("Complianz - Consent Management as it should be", "really-simple-ssl"), ], [ 'slug' => 'complianz-terms-conditions', 'constant_free' => 'cmplz_tc_version', 'wordpress_url' => 'https://wordpress.org/plugins/complianz-terms-conditions/', 'upgrade_url' => 'https://complianz.io?src=rsssl-plugin', 'title' => 'Complianz - ' . __("Terms and Conditions", "really-simple-ssl"), ], ); foreach ($plugins as $index => $plugin) { $installer = new rsssl_installer($plugin['slug']); if (isset($plugin['constant_premium']) && defined($plugin['constant_premium'])) { $plugins[$index]['pluginAction'] = 'installed'; } else if (!$installer->plugin_is_downloaded() && !$installer->plugin_is_activated()) { $plugins[$index]['pluginAction'] = 'download'; } else if ($installer->plugin_is_downloaded() && !$installer->plugin_is_activated()) { $plugins[$index]['pluginAction'] = 'activate'; } else { if (isset($plugin['constant_premium'])) { $plugins[$index]['pluginAction'] = 'upgrade-to-premium'; } else { $plugins[$index]['pluginAction'] = 'installed'; } } } if ($slug) { foreach ($plugins as $key => $plugin) { if ($plugin['slug'] === $slug) { return $plugin; } } } return ['plugins' => $plugins]; } /** * List of allowed field types * @param $type * * @return mixed|string */ function rsssl_sanitize_field_type($type) { $types = [ 'hidden', 'license', 'database', 'checkbox', 'password', 'radio', 'text', 'textarea', 'number', 'email', 'select', 'host', 'permissionspolicy', 'learningmode', 'mixedcontentscan', 'vulnerablemeasures', 'LetsEncrypt', 'postdropdown', 'two_fa_roles', 'roles_dropdown', // 'two_fa_table', // 'verify_email', ]; if ( in_array( $type, $types, true ) ) { return $type; } return 'checkbox'; } /** * @param WP_REST_Request $request * @param array $ajax_data * * @return array */ function rsssl_rest_api_fields_set(WP_REST_Request $request, $ajax_data = false): array { if (!rsssl_user_can_manage()) { return []; } $fields = $ajax_data ?: $request->get_json_params(); //get the nonce $nonce = false; foreach ($fields as $index => $field) { if (isset($field['nonce'])) { $nonce = $field['nonce']; unset($fields[$index]); } } if (!wp_verify_nonce($nonce, 'rsssl_nonce')) { return []; } $config_fields = rsssl_fields(false); $config_ids = array_column($config_fields, 'id'); foreach ($fields as $index => $field) { $config_field_index = array_search($field['id'], $config_ids); $config_field = $config_fields[$config_field_index]; if ($config_field_index === false) { unset($fields[$index]); continue; } $type = rsssl_sanitize_field_type($field['type']); $field_id = sanitize_text_field($field['id']); $value = rsssl_sanitize_field($field['value'], $type, $field_id); //if an endpoint is defined, we use that endpoint instead if (isset($config_field['data_endpoint'])) { //the updateItemId allows us to update one specific item in a field set. $update_item_id = isset($field['updateItemId']) ? $field['updateItemId'] : false; $action = isset($field['action']) && $field['action'] === 'delete' ? 'delete' : 'update'; $endpoint = $config_field['data_endpoint']; if (is_array($endpoint)) { $main = $endpoint[0]; $class = $endpoint[1]; $function = $endpoint[2]; if (function_exists($main)) { $main()->$class->$function($value, $update_item_id, $action); } } else if (function_exists($endpoint)) { $endpoint($value, $update_item_id, $action); } unset($fields[$index]); continue; } $field['value'] = $value; $fields[$index] = $field; } if (is_multisite() && rsssl_is_networkwide_active()) { $options = get_site_option('rsssl_options', []); } else { $options = get_option('rsssl_options', []); } //build a new options array foreach ($fields as $field) { $prev_value = isset($options[$field['id']]) ? $options[$field['id']] : false; do_action("rsssl_before_save_option", $field['id'], $field['value'], $prev_value, $field['type']); $options[$field['id']] = apply_filters("rsssl_fieldvalue", $field['value'], $field['id'], $field['type']); } if (!empty($options)) { if (is_multisite() && rsssl_is_networkwide_active()) { update_site_option('rsssl_options', $options); } else { update_option('rsssl_options', $options); } } RSSSL()->admin->clear_admin_notices_cache(); do_action('rsssl_after_saved_fields', $fields ); foreach ( $fields as $field ) { do_action( "rsssl_after_save_field", $field['id'], $field['value'], $prev_value, $field['type'] ); } return [ 'success' => true, 'progress' => RSSSL()->progress->get(), 'fields' => rsssl_fields(true), ]; } /** * Update a rsssl option * @param string $name * @param mixed $value * * @return void */ function rsssl_update_option($name, $value) { if (!rsssl_user_can_manage()) { return; } $config_fields = rsssl_fields(false); $config_ids = array_column($config_fields, 'id'); $config_field_index = array_search($name, $config_ids); if ($config_field_index === false) { return; } $config_field = $config_fields[$config_field_index]; $type = $config_field['type'] ?? false; if (!$type) { return; } if (is_multisite() && rsssl_is_networkwide_active()) { $options = get_site_option('rsssl_options', []); } else { $options = get_option('rsssl_options', []); } if (!is_array($options)) $options = []; $prev_value = $options[$name] ?? false; $name = sanitize_text_field($name); $type = rsssl_sanitize_field_type($config_field['type']); $value = rsssl_sanitize_field($value, $type, $name); $value = apply_filters("rsssl_fieldvalue", $value, sanitize_text_field($name), $type); #skip if value wasn't changed if (isset($options[$name]) && $options[$name] === $value) { return; } $options[$name] = $value; if ( is_multisite() && rsssl_is_networkwide_active() ) { update_site_option( 'rsssl_options', $options ); } else { update_option( 'rsssl_options', $options ); } $config_field['value'] = $value; RSSSL()->admin->clear_admin_notices_cache(); do_action('rsssl_after_saved_fields',[$config_field] ); do_action( "rsssl_after_save_field", $name, $value, $prev_value, $type ); } /** * Get the rest api fields * @return array */ function rsssl_rest_api_fields_get() { if (!rsssl_user_can_manage()) { return []; } // rsssl_update_option('vulnerabilities_intro_shown', false); $output = array(); $fields = rsssl_fields(); foreach ($fields as $index => $field) { /** * Load data from source */ if (isset($field['data_source'])) { $data_source = $field['data_source']; if (is_array($data_source)) { $main = $data_source[0]; $class = $data_source[1]; $function = $data_source[2]; $field['value'] = []; if (function_exists($main)) { $field['value'] = $main()->$class->$function(); } } else if (function_exists($field['data_source'])) { $func = $field['data_source']; $field['value'] = $func(); } } $fields[$index] = $field; } $output['fields'] = $fields; $output['request_success'] = true; $output['progress'] = RSSSL()->progress->get(); return apply_filters('rsssl_rest_api_fields_get', $output); } /** * Sanitize a field * * @param mixed $value * @param string $type * @oaram string $id * * @return array|bool|int|string|void */ function rsssl_sanitize_field($value, string $type, string $id) { switch ($type) { case 'checkbox': case 'number': return (int)$value; case 'hidden': return sanitize_title($value); case 'select': case 'host': case 'text': case 'textarea': case 'license': case 'postdropdown': return sanitize_text_field($value); case 'multicheckbox': if (!is_array($value)) { $value = array($value); } return array_map('sanitize_text_field', $value); case 'password': return rsssl_encode_password($value); case 'email': return sanitize_email($value); case 'url': return esc_url_raw($value); case 'permissionspolicy': return rsssl_sanitize_permissions_policy($value, $type, $id); case 'learningmode': return rsssl_sanitize_datatable($value, $type, $id); case 'mixedcontentscan': return $value; case 'roles_dropdown': case 'two_fa_roles': $value = !is_array($value) ? [] : $value; $roles = rsssl_get_roles(); foreach ($value as $index => $role) { if (! in_array( $role, $roles, true ) ) { unset($value[$index]); } } return $value; default: return sanitize_text_field($value); } } /** * Sanitize and encode a password * * @param $password * * @return mixed|string */ function rsssl_encode_password($password) { if (!rsssl_user_can_manage()) { return $password; } if (strlen(trim($password)) === 0) { return $password; } $password = sanitize_text_field($password); if (strpos($password, 'rsssl_') !== FALSE) { return $password; } $key = get_site_option('rsssl_key'); if (!$key) { update_site_option('rsssl_key', time()); $key = get_site_option('rsssl_key'); } $ivlength = openssl_cipher_iv_length('aes-256-cbc'); $iv = openssl_random_pseudo_bytes($ivlength); $ciphertext_raw = openssl_encrypt($password, 'aes-256-cbc', $key, 0, $iv); $key = base64_encode($iv . $ciphertext_raw); return 'rsssl_' . $key; } /** * Dedicated permission policy sanitization * * @param $value * @param $type * @param $field_name * * @return array|false */ function rsssl_sanitize_permissions_policy($value, $type, $field_name) { $possible_keys = apply_filters("rsssl_datatable_datatypes_$type", [ 'id' => 'string', 'title' => 'string', 'status' => 'boolean', ]); // Datatable array will look something like this, whith 0 the row index, and id, title the col indexes. // [0] => Array // ( // [id] => camera // [title] => Camera // [value] => () // [status] => 1/0 // ) //) $config_fields = rsssl_fields(false); //check if there is a default available $default = false; foreach ($config_fields as $config_field) { if ($config_field['id'] === $field_name) { $default = isset($config_field['default']) ? $config_field['default'] : false; } } $stored_ids = []; if (!is_array($value)) { return $default; } else { foreach ($value as $row_index => $row) { //check if we have invalid values if (is_array($row)) { foreach ($row as $column_index => $row_value) { if ($column_index === 'id' && $row_value === false) { unset($value[$column_index]); } } } //has to be an array. if (!is_array($row)) { if (isset($default[$row_index])) { $value[$row_index] = $default[$row_index]; } else { unset($value[$row_index]); } } foreach ($row as $col_index => $col_value) { if (!isset($possible_keys[$col_index])) { unset($value[$row_index][$col_index]); } else { $datatype = $possible_keys[$col_index]; switch ($datatype) { case 'string': $value[$row_index][$col_index] = sanitize_text_field($col_value); break; case 'int': case 'boolean': default: $value[$row_index][$col_index] = intval($col_value); break; } } } //Ensure that all required keys are set with at least an empty value foreach ($possible_keys as $key => $data_type) { if (!isset($value[$row_index][$key])) { $value[$row_index][$key] = false; } } } } //ensure that there are no duplicate ids foreach ($value as $index => $item) { if (in_array($item['id'], $stored_ids)) { unset($value[$index]); continue; } $stored_ids[] = $item['id']; } //if the default contains items not in the setting (newly added), add them. if (count($value) < count($default)) { foreach ($default as $def_row_index => $def_row) { //check if it is available in the array. If not, add if (!in_array($def_row['id'], $stored_ids)) { $value[] = $def_row; } } } return $value; } function rsssl_sanitize_datatable($value, $type, $field_name) { $possible_keys = apply_filters("rsssl_datatable_datatypes_$type", [ 'id' => 'string', 'title' => 'string', 'status' => 'boolean', ]); if (!is_array($value)) { return false; } else { foreach ($value as $row_index => $row) { //check if we have invalid values if (is_array($row)) { foreach ($row as $column_index => $row_value) { if ($column_index === 'id' && $row_value === false) { unset($value[$column_index]); } } } //has to be an array. if (!is_array($row)) { unset($value[$row_index]); } foreach ($row as $col_index => $col_value) { if (!isset($possible_keys[$col_index])) { unset($value[$row_index][$col_index]); } else { $datatype = $possible_keys[$col_index]; switch ($datatype) { case 'string': $value[$row_index][$col_index] = sanitize_text_field($col_value); break; case 'int': case 'boolean': default: $value[$row_index][$col_index] = intval($col_value); break; } } } //Ensure that all required keys are set with at least an empty value foreach ($possible_keys as $key => $data_type) { if (!isset($value[$row_index][$key])) { $value[$row_index][$key] = false; } } } } return $value; } /** * Check if the server side conditions apply * * @param array $conditions * * @return bool */ function rsssl_conditions_apply(array $conditions) { $defaults = ['relation' => 'AND']; $conditions = wp_parse_args($conditions, $defaults); $relation = $conditions['relation'] === 'AND' ? 'AND' : 'OR'; unset($conditions['relation']); $condition_applies = true; foreach ($conditions as $condition => $condition_value) { $invert = substr($condition, 1) === '!'; $condition = ltrim($condition, '!'); if (is_array($condition_value)) { $this_condition_applies = rsssl_conditions_apply($condition_value); } else { //check if it's a function if (substr($condition, -2) === '()') { $func = $condition; if (preg_match('/(.*)\(\)\-\>(.*)->(.*)/i', $func, $matches)) { $base = $matches[1]; $class = $matches[2]; $func = $matches[3]; $func = str_replace('()', '', $func); $this_condition_applies = call_user_func(array($base()->{$class}, $func)) === $condition_value; } else { $func = str_replace('()', '', $func); $this_condition_applies = $func() === $condition_value; } } else { $var = $condition; if (preg_match('/(.*)\(\)\-\>(.*)->(.*)/i', $var, $matches)) { $base = $matches[1]; $class = $matches[2]; $var = $matches[3]; $this_condition_applies = $base()->{$class}->_get($var) === $condition_value; } else { $this_condition_applies = rsssl_get_option($var) === $condition_value; } } if ($invert) { $this_condition_applies = !$this_condition_applies; } } if ($relation === 'AND') { $condition_applies = $condition_applies && $this_condition_applies; } else { $condition_applies = $condition_applies || $this_condition_applies; } } return $condition_applies; } /** * Fetch all user roles. * * Tries to get roles from cache first. If roles are not in cache, it fetches them and stores them in cache. * * @return array An array of roles, each role being an associative array with 'label' and 'value' keys. */ function rsssl_get_roles( ): array { if ( ! rsssl_admin_logged_in() ) { return []; } global $wp_roles; // Try to get roles from cache $roles = wp_cache_get( 'rsssl_roles' ); // If roles are not in cache, fetch and set cache if ( ! $roles ) { // Just return the names, not the capabilities $roles_names = array_keys( $wp_roles->roles ); // Extract unique role values from the role names $roles = array_values( array_unique( $roles_names )); // Set the roles in cache for future use wp_cache_set( 'rsssl_roles', $roles ); } return $roles; } /** * @param $response * @param $user * @param $request * * @return mixed * * Add user roles to /users endpoint */ function rsssl_add_user_role_to_api_response( $response, $user, $request ) { if ( rsssl_is_logged_in_rest() ) { $data = $response->get_data(); $data['roles'] = $user->roles; $response->set_data( $data ); } return $response; } add_filter( 'rest_prepare_user', 'rsssl_add_user_role_to_api_response', 10, 3 );PK�������!�?t4s#���#�����settings/index.phpnu�[��������<?php // You don't belong here. ?> PK�������!�M��������settings/webpack.dev.jsnu�[��������const defaultConfig = require("@wordpress/scripts/config/webpack.config"); module.exports = { ...defaultConfig, output: { ...defaultConfig.output, filename: '[name].js', chunkFilename: '[name].js', }, }; PK�������!�%����*��settings/build/393.558c6c40a4c776a58969.jsnu�[��������"use strict";(globalThis.webpackChunkreally_simple_ssl=globalThis.webpackChunkreally_simple_ssl||[]).push([[393],{3393:(e,t,r)=>{r.r(t),r.d(t,{MuiThemeProvider:()=>G,ServerStyleSheets:()=>j,StylesProvider:()=>_.Ay,ThemeProvider:()=>G,alpha:()=>n.X4,createGenerateClassName:()=>H.A,createMuiTheme:()=>o.D,createStyles:()=>s,createTheme:()=>o.A,darken:()=>n.e$,decomposeColor:()=>n.rP,duration:()=>w.p0,easing:()=>w.cz,emphasize:()=>n.tL,fade:()=>n.Rv,getContrastRatio:()=>n.eM,getLuminance:()=>n.J1,hexToRgb:()=>n.E2,hslToRgb:()=>n.YL,jssPreset:()=>X.A,lighten:()=>n.a,makeStyles:()=>h,recomposeColor:()=>n.X0,responsiveFontSizes:()=>A,rgbToHex:()=>n.Ob,styled:()=>R,unstable_createMuiStrictModeTheme:()=>a,useTheme:()=>x.A,withStyles:()=>E.A,withTheme:()=>z});var n=r(9773),o=r(6440),i=r(2851);function a(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return o.A.apply(void 0,[(0,i.A)({unstable_strictMode:!0},e)].concat(r))}function s(e){return e}var l=r(8168),u=r(9815),c=r(7114);const h=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,u.A)(e,(0,l.A)({defaultTheme:c.A},t))};var f=r(7860),m=r(4467);function v(e){return String(parseFloat(e)).length===String(e).length}function p(e){return parseFloat(e)}function d(e){var t=e.lineHeight;return e.pixels/(t*e.htmlFontSize)}function A(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.breakpoints,n=void 0===r?["sm","md","lg"]:r,o=t.disableAlign,i=void 0!==o&&o,a=t.factor,s=void 0===a?2:a,u=t.variants,c=void 0===u?["h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","button","overline"]:u,h=(0,l.A)({},e);h.typography=(0,l.A)({},h.typography);var A,g=h.typography,y=(A=g.htmlFontSize,function(e,t){var r=String(e).match(/[\d.\-+]*\s*(.*)/)[1]||"";if(r===t)return e;var n=p(e);if("px"!==r)if("em"===r)n=p(e)*p(A);else if("rem"===r)return n=p(e)*p(A),e;var o=n;if("px"!==t)if("em"===t)o=n/p(A);else{if("rem"!==t)return e;o=n/p(A)}return parseFloat(o.toFixed(5))+t}),S=n.map((function(e){return h.breakpoints.values[e]}));return c.forEach((function(e){var t=g[e],r=parseFloat(y(t.fontSize,"rem"));if(!(r<=1)){var n=r,o=1+(n-1)/s,a=t.lineHeight;if(!v(a)&&!i)throw new Error((0,f.A)(6));v(a)||(a=parseFloat(y(a,"rem"))/parseFloat(r));var u=null;i||(u=function(e){return(r=(t={size:e,grid:d({pixels:4,lineHeight:a,htmlFontSize:g.htmlFontSize})}).size)-(o=r-r%(n=t.grid))<(i=o+n)-r?o:i;var t,r,n,o,i}),g[e]=(0,l.A)({},t,function(e){var t=e.cssProperty,r=e.min,n=e.max,o=e.unit,i=void 0===o?"rem":o,a=e.breakpoints,s=void 0===a?[600,960,1280]:a,l=e.transform,u=void 0===l?null:l,c=(0,m.A)({},t,"".concat(r).concat(i)),h=(n-r)/s[s.length-1];return s.forEach((function(e){var n=r+h*e;null!==u&&(n=u(n)),c["@media (min-width:".concat(e,"px)")]=(0,m.A)({},t,"".concat(Math.round(1e4*n)/1e4).concat(i))})),c}({cssProperty:"fontSize",min:o,max:n,unit:"rem",breakpoints:S,transform:u}))}})),h}var g=r(45),y=r(1609),S=r.n(y),b=r(53),T=r(4146),k=r.n(T);const R=function(e){var t=function(e){return function(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.name,i=(0,g.A)(n,["name"]),a=o,s="function"==typeof t?function(e){return{root:function(r){return t((0,l.A)({theme:e},r))}}}:{root:t},c=(0,u.A)(s,(0,l.A)({Component:e,name:o||e.displayName,classNamePrefix:a},i));t.filterProps&&(r=t.filterProps,delete t.filterProps),t.propTypes&&(t.propTypes,delete t.propTypes);var h=S().forwardRef((function(t,n){var o,i,a,s=t.children,u=t.className,h=t.clone,f=t.component,m=(0,g.A)(t,["children","className","clone","component"]),v=c(t),p=(0,b.A)(v.root,u),d=m;if(r&&(o=d,i=r,a={},Object.keys(o).forEach((function(e){-1===i.indexOf(e)&&(a[e]=o[e])})),d=a),h)return S().cloneElement(s,(0,l.A)({className:(0,b.A)(s.props.className,p)},d));if("function"==typeof s)return s((0,l.A)({className:p},d));var A=f||e;return S().createElement(A,(0,l.A)({ref:n,className:p},d),s)}));return k()(h,e),h}}(e);return function(e,r){return t(e,(0,l.A)({defaultTheme:c.A},r))}};var w=r(3870),x=r(6232),E=r(5192),F=r(2143);function P(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).defaultTheme;return function(t){var r=S().forwardRef((function(r,n){var o=r.innerRef,i=(0,g.A)(r,["innerRef"]),a=(0,F.A)()||e;return S().createElement(t,(0,l.A)({theme:a,ref:o||n},i))}));return k()(r,t),r}}P();const z=P({defaultTheme:c.A});var M=r(3029),N=r(2901),C=r(3317),_=r(9117),H=r(1233),j=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,M.A)(this,e),this.options=t}return(0,N.A)(e,[{key:"collect",value:function(e){var t=new Map;this.sheetsRegistry=new C.SN;var r=(0,H.A)();return S().createElement(_.Ay,(0,l.A)({sheetsManager:t,serverGenerateClassName:r,sheetsRegistry:this.sheetsRegistry},this.options),e)}},{key:"toString",value:function(){return this.sheetsRegistry?this.sheetsRegistry.toString():""}},{key:"getStyleElement",value:function(e){return S().createElement("style",(0,l.A)({id:"jss-server-side",key:"jss-server-side",dangerouslySetInnerHTML:{__html:this.toString()}},e))}}]),e}(),L=r(6895),O=r(4910);const G=function(e){var t=e.children,r=e.theme,n=(0,F.A)(),o=S().useMemo((function(){var e=null===n?r:function(e,t){return"function"==typeof t?t(e):(0,l.A)({},e,t)}(n,r);return null!=e&&(e[O.A]=null!==n),e}),[r,n]);return S().createElement(L.A.Provider,{value:o},t)};var X=r(9350)}}]);PK�������!�5dV�V�,��settings/build/index.949c228dda25c895581b.jsnu�[��������(()=>{var e,t,n={2043:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(1621),s=n(5511);const o=(0,r.vt)(((e,t)=>({menu:[],subMenuLoaded:!1,previousMenuItem:!1,nextMenuItem:!1,selectedMainMenuItem:!1,selectedSubMenuItem:!1,selectedFilter:!1,activeGroupId:!1,hasPremiumItems:!1,subMenu:{title:" ",menu_items:[]},setSelectedSubMenuItem:async t=>{let n=u(t);e((e=>({selectedSubMenuItem:t,selectedMainMenuItem:n}))),window.location.hash=n+"/"+t},setSelectedMainMenuItem:t=>{e((e=>({selectedMainMenuItem:t}))),window.location.hash=t},fetchSelectedMainMenuItem:()=>{let t=(0,s.A)("main")||"dashboard";e((e=>({selectedMainMenuItem:t})))},fetchSelectedSubMenuItem:async()=>{let t=(0,s.A)("menu")||"general";e((e=>({selectedSubMenuItem:t})))},fetchMenuData:t=>{let n=rsssl_settings.menu;n=Object.values(n);const r=(0,s.A)("main")||"dashboard";if(n=n.filter((e=>!e.default_hidden||r===e.id)),void 0!==t){let s=c(n,r);const o=d(s,t);s.menu_items=l(s.menu_items,t,o);const{nextMenuItem:i,previousMenuItem:u}=a(n,o,t),f=s.menu_items.filter((e=>!0===e.premium)).length>0;e((e=>({subMenuLoaded:!0,menu:n,nextMenuItem:i,previousMenuItem:u,selectedMainMenuItem:r,selectedSubMenuItem:o,subMenu:s,hasPremiumItems:f})))}else e((e=>({menu:n,selectedMainMenuItem:r})))},getDefaultSubMenuItem:async e=>{let n=t().subMenuLoaded;n||await t().fetchMenuData(e);let r=t().subMenu,o=n&&r.hasOwnProperty(0)?r[0].id:"general",i=(0,s.A)("menu"),a=!1;for(const e in(void 0).menu.menu_items)r.hasOwnProperty(e)&&r[e].id===i&&(a=!0);return a||(i=!1),i||o}}))),i=(e,t,n)=>(t.forEach((t=>{t.visible&&(e.push(t.id),t.hasOwnProperty("menu_items")&&(t.menu_items=l(t.menu_items,n),i(e,t.menu_items,n)))})),e),a=(e,t,n)=>{let r,s;const o=[];i(o,e,n);const a=o.findIndex((e=>e===t));return-1!==a&&(r=o[0===a?"":a-1],f(r,e).hasOwnProperty("menu_items")&&(r=o[0===a?"":a-2]),s=o[a===o.length-1?"":a+1],r=r||o[0],s=s||o[o.length-1]),{nextMenuItem:s,previousMenuItem:r}},l=(e,t)=>{if(!Array.isArray(t))return e;const n=e;for(const[r,s]of e.entries()){let e=t.filter((e=>e.menu_id===s.id));e=e.filter((e=>e.visible)),0!==e.length||s.hasOwnProperty("menu_items")?("object"==typeof n[r]&&null!==n[r]&&(n[r].visible=!0),s.hasOwnProperty("menu_items")&&(n[r].menu_items=l(s.menu_items,t))):"object"==typeof n[r]&&null!==n[r]&&(n[r].visible=!1)}return n},c=(e,t)=>{let n=[];for(const r in e)e.hasOwnProperty(r)&&e[r].id===t&&(n=e[r]);return n=p(n),n},u=e=>{let t=rsssl_settings.menu;for(const n in t){let r=t[n];if(r.id===e)return r.id;if(r.menu_items)for(const t in r.menu_items){let n=r.menu_items[t];if(n.id===e)return r.id;if(n.menu_items)for(const t in n.menu_items)if(n.menu_items[t].id===e)return r.id}}return!1},d=(e,t)=>{let n,r=e&&e.menu_items.hasOwnProperty(0)?e.menu_items[0].id:"general",o=i([],e.menu_items),a=(0,s.A)("menu");n=o.filter((e=>e===a)),n||(a=!1);let l=a||r;if(0===t.filter((e=>e.menu_id===l)).length){let t=f(l,e.menu_items);t&&t.menu_items&&t.menu_items.hasOwnProperty(0)&&(l=t.menu_items[0].id)}return l},f=(e,t)=>{for(const n in t){let r=t[n];if(r.id===e)return r;if(r.menu_items){let t=f(e,r.menu_items);if(t)return t}}return!1},p=e=>{let t=Array.isArray(e.menu_items)?e.menu_items:Object.values(e.menu_items);for(let[e,n]of t.entries())"object"==typeof n&&null!==n&&(n.visible=!0,n.hasOwnProperty("menu_items")&&(n=p(n)),t[e]=n);return e.menu_items=t,e.visible=!0,e}},5319:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=(0,n(1621).vt)(((e,t)=>({modalData:[],buttonsDisabled:!1,showModal:!1,ignoredItems:[],fixedItems:[],item:!1,setIgnoredItemId:n=>{let r=t().ignoredItems;r.push(n),e({ignoredItems:r})},setFixedItemId:n=>{let r=t().fixedItems;r.push(n),e({fixedItems:r})},handleModal:(t,n,r)=>{e({showModal:t,modalData:n,item:r})},setModalData:t=>{e({modalData:t})}})))},7283:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(1621),s=n(6535),o=n(207),i=n(7723);const a=(0,r.vt)(((e,t)=>({steps:[],currentStepIndex:0,currentStep:{},error:!1,networkProgress:0,networkActivationStatus:"",certificateValid:"",networkwide:!1,sslEnabled:!1,overrideSSL:!1,showOnboardingModal:!1,modalStatusLoaded:!1,dataLoaded:!1,processing:!1,email:"",includeTips:!1,sendTestEmail:!0,overrideSSLDetection:!1,footerStatus:"",setFooterStatus:t=>{e({footerStatus:t})},setIncludeTips:t=>{e((e=>({includeTips:t})))},setSendTestEmail:t=>{e((e=>({sendTestEmail:t})))},setEmail:t=>{e((e=>({email:t})))},setShowOnboardingModal:t=>{e((e=>({showOnboardingModal:t})))},setProcessing:t=>{e((e=>({processing:t})))},setCurrentStepIndex:n=>{const r=t().steps[n];e((e=>({currentStepIndex:n,currentStep:r})))},dismissModal:async t=>{let n={};n.dismiss=t,e((()=>({showOnboardingModal:!t}))),await o.Eo("dismiss_modal",n)},setOverrideSSL:async t=>{e({overrideSSL:t});let n={overrideSSL:t};await o.Eo("override_ssl_detection",n)},activateSSL:()=>{e((e=>({processing:!0}))),o.YA("activate_ssl").then((async n=>{e((e=>({processing:!1}))),t().setCurrentStepIndex(t().currentStepIndex+1),n.success&&(n.site_url_changed?window.location.reload():t().networkwide&&e((e=>({networkActivationStatus:"main_site_activated"}))),e({sslEnabled:!0}))}))},saveEmail:()=>{t().setFooterStatus((0,i.__)("Updating email preferences..","really-simple-ssl"));let n={};n.email=t().email,n.includeTips=t().includeTips,n.sendTestEmail=t().sendTestEmail,e((e=>({processing:!0}))),o.Eo("update_email",n).then((n=>{e((e=>({processing:!1}))),t().setFooterStatus("")}))},updateItemStatus:(n,r,o,i,a)=>{const l=t().steps.findIndex((e=>e.id===n)),c=t().steps[l].items.findIndex((e=>e.id===r));e((0,s.jM)((e=>{void 0!==o&&(e.steps[l].items[c].action=o),void 0!==i&&(e.steps[l].items[c].status=i),void 0!==a&&(e.steps[l].items[c].activated=a)})));let u=t().steps[t().currentStepIndex];e((0,s.jM)((e=>{e.currentStep=u})))},fetchOnboardingModalStatus:async()=>{o.Eo("get_modal_status").then((t=>{e({showOnboardingModal:!t.dismissed,modalStatusLoaded:!0})}))},setShowOnBoardingModal:t=>e((e=>({showOnboardingModal:t}))),pluginInstaller:async(n,r,s)=>{if(!r)return;e((()=>({processing:!0}))),t().updateItemStatus("plugins",n,r,"processing"),t().setFooterStatus((0,i.__)("Installing %d...","really-simple-ssl").replace("%d",s));let o=await c(r,n);t().updateItemStatus("plugins",n,o),"none"!==o&&"completed"!==o?(t().setFooterStatus((0,i.__)("Activating %d...","really-simple-ssl").replace("%d",s)),o=await c(o,n),t().updateItemStatus("plugins",n,o)):t().setFooterStatus(""),e((e=>({processing:!1})))},getSteps:async t=>{const{steps:n,networkActivationStatus:r,certificateValid:s,networkProgress:o,networkwide:i,overrideSSL:a,error:c,sslEnabled:u}=await l(t);let d=0;(u||i&&"completed"===r)&&(d=1),e({steps:n,currentStepIndex:d,currentStep:n[d],networkActivationStatus:r,certificateValid:s,networkProgress:o,networkwide:i,overrideSSL:a,sslEnabled:u,dataLoaded:!0,error:c}),"completed"===r&&e({networkProgress:100})},refreshSSLStatus:t=>{t.preventDefault(),e({processing:!0}),e((0,s.jM)((e=>{const t=e.steps.findIndex((e=>"activate_ssl"===e.id)),n=e.steps[t];n.items.forEach((function(e,t){"error"===e.status&&(n.items[t].status="processing",n.items[t].title=(0,i.__)("Re-checking SSL certificate, please wait...","really-simple-ssl"))})),e.steps[t]=n}))),setTimeout((async function(){const{steps:t,certificateValid:n,error:r}=await l(!0);e({steps:t,certificateValid:n,processing:!1,error:r})}),1e3)},activateSSLNetworkWide:()=>{let n=t().networkProgress;void 0!==n&&t().setFooterStatus((0,i.__)("%d% of subsites activated.").replace("%d",n)),t().networkProgress>=100?e({sslEnabled:!0,networkActivationStatus:"completed"}):(e((()=>({processing:!0}))),o.YA("activate_ssl_networkwide").then((n=>{n.success&&(e({networkProgress:n.progress,processing:!1}),t().setFooterStatus((0,i.__)("%d% of subsites activated.").replace("%d",n.progress)),n.progress>=100&&(t().setFooterStatus(""),e({sslEnabled:!0,networkActivationStatus:"completed"})))})))}}))),l=e=>{let t={};return t.forceRefresh=e,o.Eo("onboarding_data",t).then((e=>{let t=e.steps,n=e.ssl_enabled;return{steps:t,networkActivationStatus:e.network_activation_status,certificateValid:e.certificate_valid,networkProgress:e.network_progress,networkwide:e.networkwide,overrideSSL:e.ssl_detection_overridden,error:e.error,sslEnabled:n}}))},c=async(e,t)=>{let n={};return n.id=t,await o.Eo(e,n).then((async e=>e.success?e.next_action:"failed")).catch((e=>"failed"))},u=a},6975:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(1621),s=n(6535),o=n(207),i=n(7723),a=n(9571);const l=(0,r.vt)(((e,t)=>({fieldsLoaded:!1,error:!1,fields:[],changedFields:[],progress:[],nextButtonDisabled:!1,overrideNextButtonDisabled:!1,refreshTests:!1,highLightField:"",setHighLightField:t=>{e((e=>({highLightField:t})))},setRefreshTests:t=>e((e=>({refreshTests:t}))),handleNextButtonDisabled:t=>{e({overrideNextButtonDisabled:t})},setChangedField:(t,n)=>{e((0,s.jM)((e=>{const r=e.changedFields.findIndex((e=>e.id===t));-1!==r&&e.changedFields.splice(r,1);let s={};s.id=t,s.value=n,e.changedFields.push(s)})))},showSavedSettingsNotice:e=>{d(e)},updateField:(t,n)=>{e((0,s.jM)((e=>{let r=e.fields.findIndex((e=>e.id===t));-1!==r&&(e.fields[r].value=n)})))},updateFieldAttribute:(t,n,r)=>{e((0,s.jM)((e=>{let s=e.fields.findIndex((e=>e.id===t));-1!==s&&(e.fields[s][n]=r)})))},updateSubField:(t,n,r)=>{e((0,s.jM)((e=>{let s=e.fields.findIndex((e=>e.id===t)),o=e.fields[s].value;Array.isArray(o)||(o=[]);let i=o.findIndex((e=>e.id===n));-1!==i&&(e.fields[s].updateItemId=n,e.fields[s].value[i].value=r,e.fields[s].value=o.map((e=>{const{deleteControl:t,valueControl:n,statusControl:r,...s}=e;return s})))})))},removeHelpNotice:t=>{e((0,s.jM)((e=>{const n=e.fields.findIndex((e=>e.id===t));e.fields[n].help=!1})))},addHelpNotice:(n,r,o,i,a)=>{t().removeHelpNotice(n);let l={};l.label=r,l.text=o,a&&(l.url=a),i&&(l.title=i),e((0,s.jM)((e=>{const t=e.fields.findIndex((e=>e.id===n));-1!==t&&(e.fields[t].help=l)})))},fieldAlreadyEnabled:e=>{let n=t().changedFields.filter((t=>t.id===e)).length>0,r=t().getFieldValue(e);return!n&&r},getFieldValue:e=>{let n=t().fields.filter((t=>t.id===e))[0];return!!n&&n.value},getField:e=>t().fields.filter((t=>t.id===e))[0]||!1,saveFields:async(n,r)=>{let l=void 0===n||n;r=void 0===r||r;let c=t().fields;c=c.filter((e=>"banner"!==e.data_target));let u=t().changedFields,d=[];for(const e of c){let t=u.filter((t=>t.id===e.id)).length>0,n="select"===e.type||"radio"===e.type;(t||e.never_saved&&!e.disabled&&n)&&d.push(e)}if(d.length>0){let t=o.Ey(d).then((e=>e));r&&a.toast.promise(t,{pending:(0,i.__)("Saving settings...","really-simple-ssl"),success:(0,i.__)("Settings saved","really-simple-ssl"),error:(0,i.__)("Something went wrong","really-simple-ssl")}),await t.then((t=>{e((0,s.jM)((e=>{e.changedFields=[],e.fields=t.fields,e.progress=t.progress,e.refreshTests=l})))}))}r&&0===d.length&&a.toast.promise(Promise.resolve(),{success:(0,i.__)("Settings saved","really-simple-ssl")})},updateFieldsData:n=>{let r=t().fields;if(r=u(r),n){let o=c(r,n);t().overrideNextButtonDisabled&&(o=t().overrideNextButtonDisabled),e((0,s.jM)((e=>{e.nextButtonDisabled=o})))}e((0,s.jM)((e=>{e.fields=r})))},fetchFieldsData:async t=>{const{fields:n,progress:r,error:s}=await o.ww().then((e=>({fields:e.fields,progress:e.progress,error:e.error}))).catch((e=>{console.error(e)}));let i=u(n),a=i.filter((e=>e.menu_id===t));e({fieldsLoaded:!0,fields:i,selectedFields:a,progress:r,error:s})}}))),c=(e,t)=>{let n=[];for(const r of e)r.menu_id===t&&n.push(r);return n.filter((e=>e.required&&!e.conditionallyDisabled&&(0==e.value.length||!e.value))).length>0},u=e=>{let t=[];return e&&Array.isArray(e)?(e.forEach((function(n,r){let s=!(n.hasOwnProperty("react_conditions")&&!f(n.react_conditions,e,n.id)),o=!n.conditionallyDisabled;const i={...n};i.conditionallyDisabled=!s,i.visible=!(!s&&("letsencrypt"===i.type||"hide"===i.condition_action)),t.push(i),!o&&i.enabled&&"learningmode"!==n.type&&set().setChangedField(n.id,n.value)})),t):[]},d=e=>{void 0===e&&(e=(0,i.__)("Settings Saved","really-simple-ssl")),a.toast.success(e)},f=(e,t,n)=>{let r="OR"===e[0].relation?"OR":"AND",s="AND"===r;for(const o in e)if(e.hasOwnProperty(o)){let i="AND"===r,a=e[o];if(a.hasOwnProperty("relation"))i=f(a,t,n);else{for(let e in a){let n=0===e.indexOf("!");if(a.hasOwnProperty(e)){let n=a[e];e=e.replace("!","");let r=t.filter((t=>t.id===e));if(r.hasOwnProperty(0)){let e=r[0],t=e.value;if("text_checkbox"===e.type)i=t.hasOwnProperty("show")&&t.show==n;else if("checkbox"===e.type)i=t==n;else if("multicheckbox"===e.type){i=!1;let e=t;if(0===e.length)i=!1;else for(const t of Object.keys(e))if(Array.isArray(n)||(n=[n]),n.includes(e[t])){i=!0;break}}else i="radio"===e.type?Array.isArray(n)?n.includes(t):n===t:!0===n?1===t||"1"===t||!0===t:!1===n?0===t||"0"===t||!1===t:-1!==n.indexOf("EMPTY")?0===t.length:String(t).toLowerCase()===n.toLowerCase()}}n&&(i=!i),s="AND"===r?s&&i:s||i}s="AND"===r?s&&i:s||i}}return s?1:0}},1446:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(1609),s=n(6427),o=n(7143);const i=window.wp.notices,a=()=>{const e=(0,o.useSelect)((e=>e(i.store).getNotices().filter((e=>"snackbar"===e.type))),[]);if(void 0===e)return(0,r.createElement)(r.Fragment,null);const{removeNotice:t}=(0,o.useDispatch)(i.store);return(0,r.createElement)(s.SnackbarList,{className:"edit-site-notices",notices:e,onRemove:t})}},3972:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(1609),s=n(7723),o=n(4124);const i=e=>{e.error&&(console.log("errors detected during the loading of the settings page"),console.log(e.error));let t=!1,n=(0,s.__)("Please check if security settings on the server or a plugin is blocking the requests from Really Simple SSL.","really-simple-ssl"),i=!1;return e.error&&(i=e.error.message,"string"!=typeof i&&(i=JSON.stringify(i)),"rest_no_route"===e.error.code?t=(0,s.__)("The Really Simple SSL Rest API is disabled.","really-simple-ssl")+" "+n:"404"===e.error.data.status?t=(0,s.__)("The Really Simple SSL Rest API returned a not found.","really-simple-ssl")+" "+n:"403"===e.error.data.status&&(t=(0,s.__)("The Really Simple SSL Rest API returned a 403 forbidden error.","really-simple-ssl")+" "+n),i.length>100&&(i=i.substring(0,100)+"...")),(0,r.createElement)(r.Fragment,null,e.error&&(0,r.createElement)("div",{className:"rsssl-rest-error-message"},(0,r.createElement)("h3",null,(0,s.__)("A problem was detected during the loading of the settings","really-simple-ssl")),t&&(0,r.createElement)("p",null,t),(0,r.createElement)("div",null,(0,r.createElement)("p",null,(0,s.__)("The request returned the following errors:","really-simple-ssl")),(0,r.createElement)("ul",null,e.error.code&&(0,r.createElement)("li",null,(0,s.__)("Response code:","really-simple-ssl")," ",e.error.code),e.error.data.status&&(0,r.createElement)("li",null,(0,s.__)("Status code:","really-simple-ssl")," ",e.error.data.status),i&&(0,r.createElement)("li",null,(0,s.__)("Server response:","really-simple-ssl")," ",i))),(0,r.createElement)(o.A,{className:"button button-default",target:"_blank",rel:"noopener noreferrer",text:(0,s.__)("More information","really-simple-ssl"),url:"https://really-simple-ssl.com/instructions/how-to-debug-a-blank-settings-page-in-really-simple-ssl/"})))}},5170:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(1609),s=n(5556),o=n.n(s);class i extends r.Component{constructor(e){super(e),this.state={hasError:!1,error:null,errorInfo:null},this.resetError=this.resetError.bind(this)}static getDerivedStateFromError(e){return{hasError:!0}}componentDidCatch(e,t){this.setState({error:e,errorInfo:t}),console.log("ErrorBoundary",e,t)}resetError(){this.setState({hasError:!1,error:null,errorInfo:null})}render(){return this.state.hasError?(0,r.createElement)("div",null,(0,r.createElement)("h1",null,"Something went wrong."),(0,r.createElement)("p",null,this.props.fallback),(0,r.createElement)("button",{onClick:this.resetError},"Try Again")):this.props.children}}i.propTypes={children:o().node,fallback:o().node};const a=i},4124:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1609);const s=e=>{let t="",n="",s="";if(-1!==e.text.indexOf("%s")){let r=e.text.split(/%s/);t=r[0],s=r[1],n=r[2]}else s=e.text;let o=e.className?e.className:"rsssl-link";return(0,r.createElement)(r.Fragment,null,t,(0,r.createElement)("a",{className:o,target:e.target,rel:e.rel,href:e.url},s),n)}},207:(e,t,n)=>{"use strict";n.d(t,{Eo:()=>ct,ww:()=>ot,bl:()=>lt,YA:()=>at,Ey:()=>it});var r={};n.r(r),n.d(r,{hasBrowserEnv:()=>se,hasStandardBrowserEnv:()=>oe,hasStandardBrowserWebWorkerEnv:()=>ae});var s=n(5511);function o(e,t){return function(){return e.apply(t,arguments)}}const{toString:i}=Object.prototype,{getPrototypeOf:a}=Object,l=(c=Object.create(null),e=>{const t=i.call(e);return c[t]||(c[t]=t.slice(8,-1).toLowerCase())});var c;const u=e=>(e=e.toLowerCase(),t=>l(t)===e),d=e=>t=>typeof t===e,{isArray:f}=Array,p=d("undefined"),m=u("ArrayBuffer"),h=d("string"),g=d("function"),y=d("number"),b=e=>null!==e&&"object"==typeof e,v=e=>{if("object"!==l(e))return!1;const t=a(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},E=u("Date"),w=u("File"),S=u("Blob"),_=u("FileList"),O=u("URLSearchParams");function T(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,s;if("object"!=typeof e&&(e=[e]),f(e))for(r=0,s=e.length;r<s;r++)t.call(null,e[r],r,e);else{const s=n?Object.getOwnPropertyNames(e):Object.keys(e),o=s.length;let i;for(r=0;r<o;r++)i=s[r],t.call(null,e[i],i,e)}}function A(e,t){t=t.toLowerCase();const n=Object.keys(e);let r,s=n.length;for(;s-- >0;)if(r=n[s],t===r.toLowerCase())return r;return null}const P="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,R=e=>!p(e)&&e!==P,x=(N="undefined"!=typeof Uint8Array&&a(Uint8Array),e=>N&&e instanceof N);var N;const C=u("HTMLFormElement"),I=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),k=u("RegExp"),j=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};T(n,((n,s)=>{let o;!1!==(o=t(n,s,e))&&(r[s]=o||n)})),Object.defineProperties(e,r)},L="abcdefghijklmnopqrstuvwxyz",D="0123456789",M={DIGIT:D,ALPHA:L,ALPHA_DIGIT:L+L.toUpperCase()+D},F=u("AsyncFunction"),B={isArray:f,isArrayBuffer:m,isBuffer:function(e){return null!==e&&!p(e)&&null!==e.constructor&&!p(e.constructor)&&g(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||g(e.append)&&("formdata"===(t=l(e))||"object"===t&&g(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&m(e.buffer),t},isString:h,isNumber:y,isBoolean:e=>!0===e||!1===e,isObject:b,isPlainObject:v,isUndefined:p,isDate:E,isFile:w,isBlob:S,isRegExp:k,isFunction:g,isStream:e=>b(e)&&g(e.pipe),isURLSearchParams:O,isTypedArray:x,isFileList:_,forEach:T,merge:function e(){const{caseless:t}=R(this)&&this||{},n={},r=(r,s)=>{const o=t&&A(n,s)||s;v(n[o])&&v(r)?n[o]=e(n[o],r):v(r)?n[o]=e({},r):f(r)?n[o]=r.slice():n[o]=r};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&T(arguments[e],r);return n},extend:(e,t,n,{allOwnKeys:r}={})=>(T(t,((t,r)=>{n&&g(t)?e[r]=o(t,n):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let s,o,i;const l={};if(t=t||{},null==e)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],r&&!r(i,e,t)||l[i]||(t[i]=e[i],l[i]=!0);e=!1!==n&&a(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:l,kindOfTest:u,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(f(e))return e;let t=e.length;if(!y(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:C,hasOwnProperty:I,hasOwnProp:I,reduceDescriptors:j,freezeMethods:e=>{j(e,((t,n)=>{if(g(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];g(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return f(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:A,global:P,isContextDefined:R,ALPHABET:M,generateString:(e=16,t=M.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&g(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(b(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const s=f(e)?[]:{};return T(e,((e,t)=>{const o=n(e,r+1);!p(o)&&(s[t]=o)})),t[r]=void 0,s}}return e};return n(e,0)},isAsyncFn:F,isThenable:e=>e&&(b(e)||g(e))&&g(e.then)&&g(e.catch)};function U(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s)}B.inherits(U,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:B.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const q=U.prototype,z={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{z[e]={value:e}})),Object.defineProperties(U,z),Object.defineProperty(q,"isAxiosError",{value:!0}),U.from=(e,t,n,r,s,o)=>{const i=Object.create(q);return B.toFlatObject(e,i,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),U.call(i,e.message,t,n,r,s),i.cause=e,i.name=e.name,o&&Object.assign(i,o),i};const H=U;function $(e){return B.isPlainObject(e)||B.isArray(e)}function V(e){return B.endsWith(e,"[]")?e.slice(0,-2):e}function W(e,t,n){return e?e.concat(t).map((function(e,t){return e=V(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const J=B.toFlatObject(B,{},null,(function(e){return/^is[A-Z]/.test(e)})),K=function(e,t,n){if(!B.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=B.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!B.isUndefined(t[e])}))).metaTokens,s=n.visitor||c,o=n.dots,i=n.indexes,a=(n.Blob||"undefined"!=typeof Blob&&Blob)&&B.isSpecCompliantForm(t);if(!B.isFunction(s))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(B.isDate(e))return e.toISOString();if(!a&&B.isBlob(e))throw new H("Blob is not supported. Use a Buffer instead.");return B.isArrayBuffer(e)||B.isTypedArray(e)?a&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,s){let a=e;if(e&&!s&&"object"==typeof e)if(B.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(B.isArray(e)&&function(e){return B.isArray(e)&&!e.some($)}(e)||(B.isFileList(e)||B.endsWith(n,"[]"))&&(a=B.toArray(e)))return n=V(n),a.forEach((function(e,r){!B.isUndefined(e)&&null!==e&&t.append(!0===i?W([n],r,o):null===i?n:n+"[]",l(e))})),!1;return!!$(e)||(t.append(W(s,n,o),l(e)),!1)}const u=[],d=Object.assign(J,{defaultVisitor:c,convertValue:l,isVisitable:$});if(!B.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!B.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+r.join("."));u.push(n),B.forEach(n,(function(n,o){!0===(!(B.isUndefined(n)||null===n)&&s.call(t,n,B.isString(o)?o.trim():o,r,d))&&e(n,r?r.concat(o):[o])})),u.pop()}}(e),t};function G(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function X(e,t){this._pairs=[],e&&K(e,this,t)}const Q=X.prototype;Q.append=function(e,t){this._pairs.push([e,t])},Q.toString=function(e){const t=e?function(t){return e.call(this,t,G)}:G;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};const Y=X;function Z(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ee(e,t,n){if(!t)return e;const r=n&&n.encode||Z,s=n&&n.serialize;let o;if(o=s?s(t,n):B.isURLSearchParams(t)?t.toString():new Y(t,n).toString(r),o){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}const te=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){B.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},ne={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},re={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Y,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},se="undefined"!=typeof window&&"undefined"!=typeof document,oe=(ie="undefined"!=typeof navigator&&navigator.product,se&&["ReactNative","NativeScript","NS"].indexOf(ie)<0);var ie;const ae="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,le={...r,...re},ce=function(e){function t(e,n,r,s){let o=e[s++];if("__proto__"===o)return!0;const i=Number.isFinite(+o),a=s>=e.length;return o=!o&&B.isArray(r)?r.length:o,a?(B.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!i):(r[o]&&B.isObject(r[o])||(r[o]=[]),t(e,n,r[o],s)&&B.isArray(r[o])&&(r[o]=function(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r<s;r++)o=n[r],t[o]=e[o];return t}(r[o])),!i)}if(B.isFormData(e)&&B.isFunction(e.entries)){const n={};return B.forEachEntry(e,((e,r)=>{t(function(e){return B.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null},ue={transitional:ne,adapter:["xhr","http"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,s=B.isObject(e);if(s&&B.isHTMLForm(e)&&(e=new FormData(e)),B.isFormData(e))return r?JSON.stringify(ce(e)):e;if(B.isArrayBuffer(e)||B.isBuffer(e)||B.isStream(e)||B.isFile(e)||B.isBlob(e))return e;if(B.isArrayBufferView(e))return e.buffer;if(B.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let o;if(s){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return K(e,new le.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return le.isNode&&B.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((o=B.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return K(o?{"files[]":e}:e,t&&new t,this.formSerializer)}}return s||r?(t.setContentType("application/json",!1),function(e,t,n){if(B.isString(e))try{return(0,JSON.parse)(e),B.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||ue.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&B.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw H.from(e,H.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:le.classes.FormData,Blob:le.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};B.forEach(["delete","get","head","post","put","patch"],(e=>{ue.headers[e]={}}));const de=ue,fe=B.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),pe=Symbol("internals");function me(e){return e&&String(e).trim().toLowerCase()}function he(e){return!1===e||null==e?e:B.isArray(e)?e.map(he):String(e)}function ge(e,t,n,r,s){return B.isFunction(r)?r.call(this,t,n):(s&&(t=n),B.isString(t)?B.isString(r)?-1!==t.indexOf(r):B.isRegExp(r)?r.test(t):void 0:void 0)}class ye{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function s(e,t,n){const s=me(t);if(!s)throw new Error("header name must be a non-empty string");const o=B.findKey(r,s);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||t]=he(e))}const o=(e,t)=>B.forEach(e,((e,n)=>s(e,n,t)));return B.isPlainObject(e)||e instanceof this.constructor?o(e,t):B.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?o((e=>{const t={};let n,r,s;return e&&e.split("\n").forEach((function(e){s=e.indexOf(":"),n=e.substring(0,s).trim().toLowerCase(),r=e.substring(s+1).trim(),!n||t[n]&&fe[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t):null!=e&&s(t,e,n),this}get(e,t){if(e=me(e)){const n=B.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(B.isFunction(t))return t.call(this,e,n);if(B.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=me(e)){const n=B.findKey(this,e);return!(!n||void 0===this[n]||t&&!ge(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function s(e){if(e=me(e)){const s=B.findKey(n,e);!s||t&&!ge(0,n[s],s,t)||(delete n[s],r=!0)}}return B.isArray(e)?e.forEach(s):s(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const s=t[n];e&&!ge(0,this[s],s,e,!0)||(delete this[s],r=!0)}return r}normalize(e){const t=this,n={};return B.forEach(this,((r,s)=>{const o=B.findKey(n,s);if(o)return t[o]=he(r),void delete t[s];const i=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(s):String(s).trim();i!==s&&delete t[s],t[i]=he(r),n[i]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return B.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&B.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[pe]=this[pe]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=me(e);t[r]||(function(e,t){const n=B.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,s){return this[r].call(this,t,e,n,s)},configurable:!0})}))}(n,e),t[r]=!0)}return B.isArray(e)?e.forEach(r):r(e),this}}ye.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),B.reduceDescriptors(ye.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),B.freezeMethods(ye);const be=ye;function ve(e,t){const n=this||de,r=t||n,s=be.from(r.headers);let o=r.data;return B.forEach(e,(function(e){o=e.call(n,o,s.normalize(),t?t.status:void 0)})),s.normalize(),o}function Ee(e){return!(!e||!e.__CANCEL__)}function we(e,t,n){H.call(this,null==e?"canceled":e,H.ERR_CANCELED,t,n),this.name="CanceledError"}B.inherits(we,H,{__CANCEL__:!0});const Se=we,_e=le.hasStandardBrowserEnv?{write(e,t,n,r,s,o){const i=[e+"="+encodeURIComponent(t)];B.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),B.isString(r)&&i.push("path="+r),B.isString(s)&&i.push("domain="+s),!0===o&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Oe(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const Te=le.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=B.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0};function Ae(e,t){let n=0;const r=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s,o=0,i=0;return t=void 0!==t?t:1e3,function(a){const l=Date.now(),c=r[i];s||(s=l),n[o]=a,r[o]=l;let u=i,d=0;for(;u!==o;)d+=n[u++],u%=e;if(o=(o+1)%e,o===i&&(i=(i+1)%e),l-s<t)return;const f=c&&l-c;return f?Math.round(1e3*d/f):void 0}}(50,250);return s=>{const o=s.loaded,i=s.lengthComputable?s.total:void 0,a=o-n,l=r(a);n=o;const c={loaded:o,total:i,progress:i?o/i:void 0,bytes:a,rate:l||void 0,estimated:l&&i&&o<=i?(i-o)/l:void 0,event:s};c[t?"download":"upload"]=!0,e(c)}}const Pe={http:null,xhr:"undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){let r=e.data;const s=be.from(e.headers).normalize();let o,i,{responseType:a,withXSRFToken:l}=e;function c(){e.cancelToken&&e.cancelToken.unsubscribe(o),e.signal&&e.signal.removeEventListener("abort",o)}if(B.isFormData(r))if(le.hasStandardBrowserEnv||le.hasStandardBrowserWebWorkerEnv)s.setContentType(!1);else if(!1!==(i=s.getContentType())){const[e,...t]=i?i.split(";").map((e=>e.trim())).filter(Boolean):[];s.setContentType([e||"multipart/form-data",...t].join("; "))}let u=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",n=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";s.set("Authorization","Basic "+btoa(t+":"+n))}const d=Oe(e.baseURL,e.url);function f(){if(!u)return;const r=be.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders());!function(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new H("Request failed with status code "+n.status,[H.ERR_BAD_REQUEST,H.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}((function(e){t(e),c()}),(function(e){n(e),c()}),{data:a&&"text"!==a&&"json"!==a?u.response:u.responseText,status:u.status,statusText:u.statusText,headers:r,config:e,request:u}),u=null}if(u.open(e.method.toUpperCase(),ee(d,e.params,e.paramsSerializer),!0),u.timeout=e.timeout,"onloadend"in u?u.onloadend=f:u.onreadystatechange=function(){u&&4===u.readyState&&(0!==u.status||u.responseURL&&0===u.responseURL.indexOf("file:"))&&setTimeout(f)},u.onabort=function(){u&&(n(new H("Request aborted",H.ECONNABORTED,e,u)),u=null)},u.onerror=function(){n(new H("Network Error",H.ERR_NETWORK,e,u)),u=null},u.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||ne;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new H(t,r.clarifyTimeoutError?H.ETIMEDOUT:H.ECONNABORTED,e,u)),u=null},le.hasStandardBrowserEnv&&(l&&B.isFunction(l)&&(l=l(e)),l||!1!==l&&Te(d))){const t=e.xsrfHeaderName&&e.xsrfCookieName&&_e.read(e.xsrfCookieName);t&&s.set(e.xsrfHeaderName,t)}void 0===r&&s.setContentType(null),"setRequestHeader"in u&&B.forEach(s.toJSON(),(function(e,t){u.setRequestHeader(t,e)})),B.isUndefined(e.withCredentials)||(u.withCredentials=!!e.withCredentials),a&&"json"!==a&&(u.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&u.addEventListener("progress",Ae(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&u.upload&&u.upload.addEventListener("progress",Ae(e.onUploadProgress)),(e.cancelToken||e.signal)&&(o=t=>{u&&(n(!t||t.type?new Se(null,e,u):t),u.abort(),u=null)},e.cancelToken&&e.cancelToken.subscribe(o),e.signal&&(e.signal.aborted?o():e.signal.addEventListener("abort",o)));const p=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(d);p&&-1===le.protocols.indexOf(p)?n(new H("Unsupported protocol "+p+":",H.ERR_BAD_REQUEST,e)):u.send(r||null)}))}};B.forEach(Pe,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const Re=e=>`- ${e}`,xe=e=>B.isFunction(e)||null===e||!1===e,Ne=e=>{e=B.isArray(e)?e:[e];const{length:t}=e;let n,r;const s={};for(let o=0;o<t;o++){let t;if(n=e[o],r=n,!xe(n)&&(r=Pe[(t=String(n)).toLowerCase()],void 0===r))throw new H(`Unknown adapter '${t}'`);if(r)break;s[t||"#"+o]=r}if(!r){const e=Object.entries(s).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));let n=t?e.length>1?"since :\n"+e.map(Re).join("\n"):" "+Re(e[0]):"as no adapter specified";throw new H("There is no suitable adapter to dispatch the request "+n,"ERR_NOT_SUPPORT")}return r};function Ce(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Se(null,e)}function Ie(e){return Ce(e),e.headers=be.from(e.headers),e.data=ve.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Ne(e.adapter||de.adapter)(e).then((function(t){return Ce(e),t.data=ve.call(e,e.transformResponse,t),t.headers=be.from(t.headers),t}),(function(t){return Ee(t)||(Ce(e),t&&t.response&&(t.response.data=ve.call(e,e.transformResponse,t.response),t.response.headers=be.from(t.response.headers))),Promise.reject(t)}))}const ke=e=>e instanceof be?{...e}:e;function je(e,t){t=t||{};const n={};function r(e,t,n){return B.isPlainObject(e)&&B.isPlainObject(t)?B.merge.call({caseless:n},e,t):B.isPlainObject(t)?B.merge({},t):B.isArray(t)?t.slice():t}function s(e,t,n){return B.isUndefined(t)?B.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function o(e,t){if(!B.isUndefined(t))return r(void 0,t)}function i(e,t){return B.isUndefined(t)?B.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function a(n,s,o){return o in t?r(n,s):o in e?r(void 0,n):void 0}const l={url:o,method:o,data:o,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(e,t)=>s(ke(e),ke(t),!0)};return B.forEach(Object.keys(Object.assign({},e,t)),(function(r){const o=l[r]||s,i=o(e[r],t[r],r);B.isUndefined(i)&&o!==a||(n[r]=i)})),n}const Le={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Le[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const De={};Le.transitional=function(e,t,n){function r(e,t){return"[Axios v1.6.8] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,s,o)=>{if(!1===e)throw new H(r(s," has been removed"+(t?" in "+t:"")),H.ERR_DEPRECATED);return t&&!De[s]&&(De[s]=!0,console.warn(r(s," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,s,o)}};const Me={assertOptions:function(e,t,n){if("object"!=typeof e)throw new H("options must be an object",H.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const t=e[o],n=void 0===t||i(t,o,e);if(!0!==n)throw new H("option "+o+" must be "+n,H.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new H("Unknown option "+o,H.ERR_BAD_OPTION)}},validators:Le},Fe=Me.validators;class Be{constructor(e){this.defaults=e,this.interceptors={request:new te,response:new te}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t;Error.captureStackTrace?Error.captureStackTrace(t={}):t=new Error;const n=t.stack?t.stack.replace(/^.+\n/,""):"";e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+n):e.stack=n}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=je(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:s}=t;void 0!==n&&Me.assertOptions(n,{silentJSONParsing:Fe.transitional(Fe.boolean),forcedJSONParsing:Fe.transitional(Fe.boolean),clarifyTimeoutError:Fe.transitional(Fe.boolean)},!1),null!=r&&(B.isFunction(r)?t.paramsSerializer={serialize:r}:Me.assertOptions(r,{encode:Fe.function,serialize:Fe.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let o=s&&B.merge(s.common,s[t.method]);s&&B.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete s[e]})),t.headers=be.concat(o,s);const i=[];let a=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(a=a&&e.synchronous,i.unshift(e.fulfilled,e.rejected))}));const l=[];let c;this.interceptors.response.forEach((function(e){l.push(e.fulfilled,e.rejected)}));let u,d=0;if(!a){const e=[Ie.bind(this),void 0];for(e.unshift.apply(e,i),e.push.apply(e,l),u=e.length,c=Promise.resolve(t);d<u;)c=c.then(e[d++],e[d++]);return c}u=i.length;let f=t;for(d=0;d<u;){const e=i[d++],t=i[d++];try{f=e(f)}catch(e){t.call(this,e);break}}try{c=Ie.call(this,f)}catch(e){return Promise.reject(e)}for(d=0,u=l.length;d<u;)c=c.then(l[d++],l[d++]);return c}getUri(e){return ee(Oe((e=je(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}B.forEach(["delete","get","head","options"],(function(e){Be.prototype[e]=function(t,n){return this.request(je(n||{},{method:e,url:t,data:(n||{}).data}))}})),B.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,s){return this.request(je(s||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}Be.prototype[e]=t(),Be.prototype[e+"Form"]=t(!0)}));const Ue=Be;class qe{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const n=this;this.promise.then((e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,s){n.reason||(n.reason=new Se(e,r,s),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new qe((function(t){e=t})),cancel:e}}}const ze=qe,He={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(He).forEach((([e,t])=>{He[t]=e}));const $e=He,Ve=function e(t){const n=new Ue(t),r=o(Ue.prototype.request,n);return B.extend(r,Ue.prototype,n,{allOwnKeys:!0}),B.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(je(t,n))},r}(de);Ve.Axios=Ue,Ve.CanceledError=Se,Ve.CancelToken=ze,Ve.isCancel=Ee,Ve.VERSION="1.6.8",Ve.toFormData=K,Ve.AxiosError=H,Ve.Cancel=Ve.CanceledError,Ve.all=function(e){return Promise.all(e)},Ve.spread=function(e){return function(t){return e.apply(null,t)}},Ve.isAxiosError=function(e){return B.isObject(e)&&!0===e.isAxiosError},Ve.mergeConfig=je,Ve.AxiosHeaders=be,Ve.formToJSON=e=>ce(B.isHTMLForm(e)?new FormData(e):e),Ve.getAdapter=Ne,Ve.HttpStatusCode=$e,Ve.default=Ve;const We=Ve;var Je=n(1455),Ke=n.n(Je);const Ge=()=>"&nonce="+rsssl_settings.rsssl_nonce+"&token="+Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5),Xe=()=>-1!==rsssl_settings.site_url.indexOf("?"),Qe=(e,t)=>new Promise((function(n,r){let s=et("ajax"),o=new XMLHttpRequest;o.open("POST",s),o.onload=function(){let e;try{e=JSON.parse(o.response)}catch(e){n(tt(o.response,500,"invalid_data"))}o.status>=200&&o.status<300?n(e):n(tt(o.response,o.status,o.statusText))},o.onerror=function(){n(tt(o.response,o.status,o.statusText))};let i={};i.path=e,i.data=t,i=JSON.stringify(i,Ye),o.setRequestHeader("Content-Type","application/json; charset=UTF-8"),o.send(i)})),Ye=(e,t)=>e?e&&e.includes("Control")?void 0:"object"==typeof t?JSON.parse(JSON.stringify(t,Ye)):t:t,Ze=e=>new Promise((function(t,n){let r=et("ajax");r+="&rest_action="+e.replace("?","&");let s=new XMLHttpRequest;s.open("GET",r),s.onload=function(){let e;try{e=JSON.parse(s.response)}catch(e){t(tt(s.response,500,"invalid_data"))}s.status>=200&&s.status<300?(e.hasOwnProperty("request_success")||t(tt(s.response,500,"invalid_data")),t(e)):t(tt(s.response,s.status,s.statusText))},s.onerror=function(){t(tt(s.response,s.status,s.statusText))},s.send()})),et=e=>{let t;return t=void 0===e?rsssl_settings.site_url:rsssl_settings.admin_ajax_url,"https:"===window.location.protocol&&-1===t.indexOf("https://")?t.replace("http://","https://"):t},tt=(e,t,n)=>{let r={},s={},o={};return o.status=t,s.code=n,s.data=o,s.message=e,r.error=s,r},nt=e=>{if(Xe()){let t={headers:{"X-WP-Nonce":rsssl_settings.nonce}};return We.get(et()+e,t).then((t=>t.data.request_success?t.data:Ze(e))).catch((t=>Ze(e)))}return Ke()({path:e}).then((t=>t.request_success?t:Ze(e))).catch((t=>Ze(e)))},rt=(e,t)=>{if(Xe()){let n={headers:{"X-WP-Nonce":rsssl_settings.nonce}};return We.post(et()+e,t,n).then((e=>e.data)).catch((n=>Qe(e,t)))}return Ke()({path:e,method:"POST",data:t}).catch((n=>Qe(e,t)))},st=()=>-1!==rsssl_settings.site_url.indexOf("?")?"&":"?",ot=()=>{let e=(0,s.A)("main");return nt("reallysimplessl/v1/fields/get"+st()+e+Ge())},it=e=>{let t=(0,s.A)("main"),n={nonce:rsssl_settings.rsssl_nonce};return e.push(n),rt("reallysimplessl/v1/fields/set"+st()+t,e)},at=(e,t,n)=>(t||(t=!1),n||(n=!1),n=encodeURIComponent(JSON.stringify(n)),nt("reallysimplessl/v1/tests/"+e+st()+"state="+t+Ge()+"&data="+n)),lt=(e,t)=>nt("reallysimplessl/v1/tests/"+e+st()+"letsencrypt=1&id="+t+Ge()),ct=(e,t)=>{const n={...t};return n.nonce=rsssl_settings.rsssl_nonce,rt("reallysimplessl/v1/do_action/"+e,n)}},5511:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=e=>{let t=window.location.href;if(-1===t.indexOf("#"))return!1;let n=t.split("#");if(1===n.length)return!1;let r=n[1];if("anchor"===e){if(-1===r.indexOf("/"))return!1;{let e=r.split("/");return!(e.length<=2)&&e[2]}}if("menu"===e){if(-1===r.indexOf("/"))return!1;{let e=r.split("/");return!(e.length<=1)&&e[1]}}return-1===r.indexOf("/")?r:r.split("/")[0]}},53:(e,t,n)=>{"use strict";function r(e){var t,n,s="";if("string"==typeof e||"number"==typeof e)s+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(s&&(s+=" "),s+=n);else for(t in e)e[t]&&(s&&(s+=" "),s+=t);return s}n.d(t,{A:()=>s});const s=function(){for(var e,t,n=0,s="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(s&&(s+=" "),s+=t);return s}},2694:(e,t,n)=>{"use strict";var r=n(6925);function s(){}function o(){}o.resetWarningCache=s,e.exports=function(){function e(e,t,n,s,o,i){if(i!==r){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:s};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},1063:(e,t,n)=>{"use strict";var r=n(1609),s="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,a=r.useLayoutEffect,l=r.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!s(e,n)}catch(e){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),s=r[0].inst,u=r[1];return a((function(){s.value=n,s.getSnapshot=t,c(s)&&u({inst:s})}),[e,n,t]),i((function(){return c(s)&&u({inst:s}),e((function(){c(s)&&u({inst:s})}))}),[e]),l(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:u},8940:(e,t,n)=>{"use strict";var r=n(1609),s=n(9888),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=s.useSyncExternalStore,a=r.useRef,l=r.useEffect,c=r.useMemo,u=r.useDebugValue;t.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var d=a(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c((function(){function e(e){if(!l){if(l=!0,i=e,e=r(e),void 0!==s&&f.hasValue){var t=f.value;if(s(t,e))return a=t}return a=e}if(t=a,o(i,e))return t;var n=r(e);return void 0!==s&&s(t,n)?t:(i=e,a=n)}var i,a,l=!1,c=void 0===n?null:n;return[function(){return e(t())},null===c?void 0:function(){return e(c())}]}),[t,n,r,s]);var p=i(e,d[0],d[1]);return l((function(){f.hasValue=!0,f.value=p}),[p]),u(p),p}},9888:(e,t,n)=>{"use strict";e.exports=n(1063)},9242:(e,t,n)=>{"use strict";e.exports=n(8940)},1609:e=>{"use strict";e.exports=window.React},5795:e=>{"use strict";e.exports=window.ReactDOM},1455:e=>{"use strict";e.exports=window.wp.apiFetch},6427:e=>{"use strict";e.exports=window.wp.components},7143:e=>{"use strict";e.exports=window.wp.data},6087:e=>{"use strict";e.exports=window.wp.element},7723:e=>{"use strict";e.exports=window.wp.i18n},6535:(e,t,n)=>{"use strict";function r(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];throw Error("[Immer] minified error nr: "+e+(n.length?" "+n.map((function(e){return"'"+e+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function s(e){return!!e&&!!e[H]}function o(e){var t;return!!e&&(function(e){if(!e||"object"!=typeof e)return!1;var t=Object.getPrototypeOf(e);if(null===t)return!0;var n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return n===Object||"function"==typeof n&&Function.toString.call(n)===$}(e)||Array.isArray(e)||!!e[z]||!!(null===(t=e.constructor)||void 0===t?void 0:t[z])||u(e)||d(e))}function i(e,t,n){void 0===n&&(n=!1),0===a(e)?(n?Object.keys:V)(e).forEach((function(r){n&&"symbol"==typeof r||t(r,e[r],e)})):e.forEach((function(n,r){return t(r,n,e)}))}function a(e){var t=e[H];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:u(e)?2:d(e)?3:0}function l(e,t){return 2===a(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function c(e,t,n){var r=a(e);2===r?e.set(t,n):3===r?e.add(n):e[t]=n}function u(e){return F&&e instanceof Map}function d(e){return B&&e instanceof Set}function f(e){return e.o||e.t}function p(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=W(e);delete t[H];for(var n=V(t),r=0;r<n.length;r++){var s=n[r],o=t[s];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(t[s]={configurable:!0,writable:!0,enumerable:o.enumerable,value:e[s]})}return Object.create(Object.getPrototypeOf(e),t)}function m(e,t){return void 0===t&&(t=!1),g(e)||s(e)||!o(e)||(a(e)>1&&(e.set=e.add=e.clear=e.delete=h),Object.freeze(e),t&&i(e,(function(e,t){return m(t,!0)}),!0)),e}function h(){r(2)}function g(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function y(e){var t=J[e];return t||r(18,e),t}function b(){return D}function v(e,t){t&&(y("Patches"),e.u=[],e.s=[],e.v=t)}function E(e){w(e),e.p.forEach(_),e.p=null}function w(e){e===D&&(D=e.l)}function S(e){return D={p:[],l:D,h:e,m:!0,_:0}}function _(e){var t=e[H];0===t.i||1===t.i?t.j():t.g=!0}function O(e,t){t._=t.p.length;var n=t.p[0],s=void 0!==e&&e!==n;return t.h.O||y("ES5").S(t,e,s),s?(n[H].P&&(E(t),r(4)),o(e)&&(e=T(t,e),t.l||P(t,e)),t.u&&y("Patches").M(n[H].t,e,t.u,t.s)):e=T(t,n,[]),E(t),t.u&&t.v(t.u,t.s),e!==q?e:void 0}function T(e,t,n){if(g(t))return t;var r=t[H];if(!r)return i(t,(function(s,o){return A(e,r,t,s,o,n)}),!0),t;if(r.A!==e)return t;if(!r.P)return P(e,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var s=4===r.i||5===r.i?r.o=p(r.k):r.o,o=s,a=!1;3===r.i&&(o=new Set(s),s.clear(),a=!0),i(o,(function(t,o){return A(e,r,s,t,o,n,a)})),P(e,s,!1),n&&e.u&&y("Patches").N(r,n,e.u,e.s)}return r.o}function A(e,t,n,r,i,a,u){if(s(i)){var d=T(e,i,a&&t&&3!==t.i&&!l(t.R,r)?a.concat(r):void 0);if(c(n,r,d),!s(d))return;e.m=!1}else u&&n.add(i);if(o(i)&&!g(i)){if(!e.h.D&&e._<1)return;T(e,i),t&&t.A.l||P(e,i)}}function P(e,t,n){void 0===n&&(n=!1),!e.l&&e.h.D&&e.m&&m(t,n)}function R(e,t){var n=e[H];return(n?f(n):e)[t]}function x(e,t){if(t in e)for(var n=Object.getPrototypeOf(e);n;){var r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Object.getPrototypeOf(n)}}function N(e){e.P||(e.P=!0,e.l&&N(e.l))}function C(e){e.o||(e.o=p(e.t))}function I(e,t,n){var r=u(t)?y("MapSet").F(t,n):d(t)?y("MapSet").T(t,n):e.O?function(e,t){var n=Array.isArray(e),r={i:n?1:0,A:t?t.A:b(),P:!1,I:!1,R:{},l:t,t:e,k:null,o:null,j:null,C:!1},s=r,o=K;n&&(s=[r],o=G);var i=Proxy.revocable(s,o),a=i.revoke,l=i.proxy;return r.k=l,r.j=a,l}(t,n):y("ES5").J(t,n);return(n?n.A:b()).p.push(r),r}function k(e){return s(e)||r(22,e),function e(t){if(!o(t))return t;var n,r=t[H],s=a(t);if(r){if(!r.P&&(r.i<4||!y("ES5").K(r)))return r.t;r.I=!0,n=j(t,s),r.I=!1}else n=j(t,s);return i(n,(function(t,s){r&&function(e,t){return 2===a(e)?e.get(t):e[t]}(r.t,t)===s||c(n,t,e(s))})),3===s?new Set(n):n}(e)}function j(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return p(e)}n.d(t,{Ay:()=>Z,jM:()=>Y});var L,D,M="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),F="undefined"!=typeof Map,B="undefined"!=typeof Set,U="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,q=M?Symbol.for("immer-nothing"):((L={})["immer-nothing"]=!0,L),z=M?Symbol.for("immer-draftable"):"__$immer_draftable",H=M?Symbol.for("immer-state"):"__$immer_state",$=("undefined"!=typeof Symbol&&Symbol.iterator,""+Object.prototype.constructor),V="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,W=Object.getOwnPropertyDescriptors||function(e){var t={};return V(e).forEach((function(n){t[n]=Object.getOwnPropertyDescriptor(e,n)})),t},J={},K={get:function(e,t){if(t===H)return e;var n=f(e);if(!l(n,t))return function(e,t,n){var r,s=x(t,n);return s?"value"in s?s.value:null===(r=s.get)||void 0===r?void 0:r.call(e.k):void 0}(e,n,t);var r=n[t];return e.I||!o(r)?r:r===R(e.t,t)?(C(e),e.o[t]=I(e.A.h,r,e)):r},has:function(e,t){return t in f(e)},ownKeys:function(e){return Reflect.ownKeys(f(e))},set:function(e,t,n){var r=x(f(e),t);if(null==r?void 0:r.set)return r.set.call(e.k,n),!0;if(!e.P){var s=R(f(e),t),o=null==s?void 0:s[H];if(o&&o.t===n)return e.o[t]=n,e.R[t]=!1,!0;if(function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}(n,s)&&(void 0!==n||l(e.t,t)))return!0;C(e),N(e)}return e.o[t]===n&&(void 0!==n||t in e.o)||Number.isNaN(n)&&Number.isNaN(e.o[t])||(e.o[t]=n,e.R[t]=!0),!0},deleteProperty:function(e,t){return void 0!==R(e.t,t)||t in e.t?(e.R[t]=!1,C(e),N(e)):delete e.R[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var n=f(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r?{writable:!0,configurable:1!==e.i||"length"!==t,enumerable:r.enumerable,value:n[t]}:r},defineProperty:function(){r(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){r(12)}},G={};i(K,(function(e,t){G[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),G.deleteProperty=function(e,t){return G.set.call(this,e,t,void 0)},G.set=function(e,t,n){return K.set.call(this,e[0],t,n,e[0])};var X=function(){function e(e){var t=this;this.O=U,this.D=!0,this.produce=function(e,n,s){if("function"==typeof e&&"function"!=typeof n){var i=n;n=e;var a=t;return function(e){var t=this;void 0===e&&(e=i);for(var r=arguments.length,s=Array(r>1?r-1:0),o=1;o<r;o++)s[o-1]=arguments[o];return a.produce(e,(function(e){var r;return(r=n).call.apply(r,[t,e].concat(s))}))}}var l;if("function"!=typeof n&&r(6),void 0!==s&&"function"!=typeof s&&r(7),o(e)){var c=S(t),u=I(t,e,void 0),d=!0;try{l=n(u),d=!1}finally{d?E(c):w(c)}return"undefined"!=typeof Promise&&l instanceof Promise?l.then((function(e){return v(c,s),O(e,c)}),(function(e){throw E(c),e})):(v(c,s),O(l,c))}if(!e||"object"!=typeof e){if(void 0===(l=n(e))&&(l=e),l===q&&(l=void 0),t.D&&m(l,!0),s){var f=[],p=[];y("Patches").M(e,l,f,p),s(f,p)}return l}r(21,e)},this.produceWithPatches=function(e,n){if("function"==typeof e)return function(n){for(var r=arguments.length,s=Array(r>1?r-1:0),o=1;o<r;o++)s[o-1]=arguments[o];return t.produceWithPatches(n,(function(t){return e.apply(void 0,[t].concat(s))}))};var r,s,o=t.produce(e,n,(function(e,t){r=e,s=t}));return"undefined"!=typeof Promise&&o instanceof Promise?o.then((function(e){return[e,r,s]})):[o,r,s]},"boolean"==typeof(null==e?void 0:e.useProxies)&&this.setUseProxies(e.useProxies),"boolean"==typeof(null==e?void 0:e.autoFreeze)&&this.setAutoFreeze(e.autoFreeze)}var t=e.prototype;return t.createDraft=function(e){o(e)||r(8),s(e)&&(e=k(e));var t=S(this),n=I(this,e,void 0);return n[H].C=!0,w(t),n},t.finishDraft=function(e,t){var n=(e&&e[H]).A;return v(n,t),O(void 0,n)},t.setAutoFreeze=function(e){this.D=e},t.setUseProxies=function(e){e&&!U&&r(20),this.O=e},t.applyPatches=function(e,t){var n;for(n=t.length-1;n>=0;n--){var r=t[n];if(0===r.path.length&&"replace"===r.op){e=r.value;break}}n>-1&&(t=t.slice(n+1));var o=y("Patches").$;return s(e)?o(e,t):this.produce(e,(function(e){return o(e,t)}))},e}(),Q=new X,Y=Q.produce;Q.produceWithPatches.bind(Q),Q.setAutoFreeze.bind(Q),Q.setUseProxies.bind(Q),Q.applyPatches.bind(Q),Q.createDraft.bind(Q),Q.finishDraft.bind(Q);const Z=Y},9571:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Bounce:()=>O,Flip:()=>P,Icons:()=>h,Slide:()=>T,ToastContainer:()=>R,Zoom:()=>A,collapseToast:()=>u,cssTransition:()=>d,toast:()=>F,useToast:()=>v,useToastContainer:()=>g});var r=n(1609),s=n(53);const o=e=>"number"==typeof e&&!isNaN(e),i=e=>"string"==typeof e,a=e=>"function"==typeof e,l=e=>i(e)||a(e)?e:null,c=e=>(0,r.isValidElement)(e)||i(e)||a(e)||o(e);function u(e,t,n){void 0===n&&(n=300);const{scrollHeight:r,style:s}=e;requestAnimationFrame((()=>{s.minHeight="initial",s.height=r+"px",s.transition=`all ${n}ms`,requestAnimationFrame((()=>{s.height="0",s.padding="0",s.margin="0",setTimeout(t,n)}))}))}function d(e){let{enter:t,exit:n,appendPosition:s=!1,collapse:o=!0,collapseDuration:i=300}=e;return function(e){let{children:a,position:l,preventExitTransition:c,done:d,nodeRef:f,isIn:p}=e;const m=s?`${t}--${l}`:t,h=s?`${n}--${l}`:n,g=(0,r.useRef)(0);return(0,r.useLayoutEffect)((()=>{const e=f.current,t=m.split(" "),n=r=>{r.target===f.current&&(e.dispatchEvent(new Event("d")),e.removeEventListener("animationend",n),e.removeEventListener("animationcancel",n),0===g.current&&"animationcancel"!==r.type&&e.classList.remove(...t))};e.classList.add(...t),e.addEventListener("animationend",n),e.addEventListener("animationcancel",n)}),[]),(0,r.useEffect)((()=>{const e=f.current,t=()=>{e.removeEventListener("animationend",t),o?u(e,d,i):d()};p||(c?t():(g.current=1,e.className+=` ${h}`,e.addEventListener("animationend",t)))}),[p]),r.createElement(r.Fragment,null,a)}}function f(e,t){return null!=e?{content:e.content,containerId:e.props.containerId,id:e.props.toastId,theme:e.props.theme,type:e.props.type,data:e.props.data||{},isLoading:e.props.isLoading,icon:e.props.icon,status:t}:{}}const p={list:new Map,emitQueue:new Map,on(e,t){return this.list.has(e)||this.list.set(e,[]),this.list.get(e).push(t),this},off(e,t){if(t){const n=this.list.get(e).filter((e=>e!==t));return this.list.set(e,n),this}return this.list.delete(e),this},cancelEmit(e){const t=this.emitQueue.get(e);return t&&(t.forEach(clearTimeout),this.emitQueue.delete(e)),this},emit(e){this.list.has(e)&&this.list.get(e).forEach((t=>{const n=setTimeout((()=>{t(...[].slice.call(arguments,1))}),0);this.emitQueue.has(e)||this.emitQueue.set(e,[]),this.emitQueue.get(e).push(n)}))}},m=e=>{let{theme:t,type:n,...s}=e;return r.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:"colored"===t?"currentColor":`var(--toastify-icon-color-${n})`,...s})},h={info:function(e){return r.createElement(m,{...e},r.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))},warning:function(e){return r.createElement(m,{...e},r.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))},success:function(e){return r.createElement(m,{...e},r.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))},error:function(e){return r.createElement(m,{...e},r.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))},spinner:function(){return r.createElement("div",{className:"Toastify__spinner"})}};function g(e){const[,t]=(0,r.useReducer)((e=>e+1),0),[n,s]=(0,r.useState)([]),u=(0,r.useRef)(null),d=(0,r.useRef)(new Map).current,m=e=>-1!==n.indexOf(e),g=(0,r.useRef)({toastKey:1,displayedToast:0,count:0,queue:[],props:e,containerId:null,isToastActive:m,getToast:e=>d.get(e)}).current;function y(e){let{containerId:t}=e;const{limit:n}=g.props;!n||t&&g.containerId!==t||(g.count-=g.queue.length,g.queue=[])}function b(e){s((t=>null==e?[]:t.filter((t=>t!==e))))}function v(){const{toastContent:e,toastProps:t,staleId:n}=g.queue.shift();w(e,t,n)}function E(e,n){let{delay:s,staleId:m,...y}=n;if(!c(e)||function(e){return!u.current||g.props.enableMultiContainer&&e.containerId!==g.props.containerId||d.has(e.toastId)&&null==e.updateId}(y))return;const{toastId:E,updateId:S,data:_}=y,{props:O}=g,T=()=>b(E),A=null==S;A&&g.count++;const P={...O,style:O.toastStyle,key:g.toastKey++,...Object.fromEntries(Object.entries(y).filter((e=>{let[t,n]=e;return null!=n}))),toastId:E,updateId:S,data:_,closeToast:T,isIn:!1,className:l(y.className||O.toastClassName),bodyClassName:l(y.bodyClassName||O.bodyClassName),progressClassName:l(y.progressClassName||O.progressClassName),autoClose:!y.isLoading&&(R=y.autoClose,x=O.autoClose,!1===R||o(R)&&R>0?R:x),deleteToast(){const e=f(d.get(E),"removed");d.delete(E),p.emit(4,e);const n=g.queue.length;if(g.count=null==E?g.count-g.displayedToast:g.count-1,g.count<0&&(g.count=0),n>0){const e=null==E?g.props.limit:1;if(1===n||1===e)g.displayedToast++,v();else{const t=e>n?n:e;g.displayedToast=t;for(let e=0;e<t;e++)v()}}else t()}};var R,x;P.iconOut=function(e){let{theme:t,type:n,isLoading:s,icon:l}=e,c=null;const u={theme:t,type:n};return!1===l||(a(l)?c=l(u):(0,r.isValidElement)(l)?c=(0,r.cloneElement)(l,u):i(l)||o(l)?c=l:s?c=h.spinner():(e=>e in h)(n)&&(c=h[n](u))),c}(P),a(y.onOpen)&&(P.onOpen=y.onOpen),a(y.onClose)&&(P.onClose=y.onClose),P.closeButton=O.closeButton,!1===y.closeButton||c(y.closeButton)?P.closeButton=y.closeButton:!0===y.closeButton&&(P.closeButton=!c(O.closeButton)||O.closeButton);let N=e;(0,r.isValidElement)(e)&&!i(e.type)?N=(0,r.cloneElement)(e,{closeToast:T,toastProps:P,data:_}):a(e)&&(N=e({closeToast:T,toastProps:P,data:_})),O.limit&&O.limit>0&&g.count>O.limit&&A?g.queue.push({toastContent:N,toastProps:P,staleId:m}):o(s)?setTimeout((()=>{w(N,P,m)}),s):w(N,P,m)}function w(e,t,n){const{toastId:r}=t;n&&d.delete(n);const o={content:e,props:t};d.set(r,o),s((e=>[...e,r].filter((e=>e!==n)))),p.emit(4,f(o,null==o.props.updateId?"added":"updated"))}return(0,r.useEffect)((()=>(g.containerId=e.containerId,p.cancelEmit(3).on(0,E).on(1,(e=>u.current&&b(e))).on(5,y).emit(2,g),()=>{d.clear(),p.emit(3,g)})),[]),(0,r.useEffect)((()=>{g.props=e,g.isToastActive=m,g.displayedToast=n.length})),{getToastToRender:function(t){const n=new Map,r=Array.from(d.values());return e.newestOnTop&&r.reverse(),r.forEach((e=>{const{position:t}=e.props;n.has(t)||n.set(t,[]),n.get(t).push(e)})),Array.from(n,(e=>t(e[0],e[1])))},containerRef:u,isToastActive:m}}function y(e){return e.targetTouches&&e.targetTouches.length>=1?e.targetTouches[0].clientX:e.clientX}function b(e){return e.targetTouches&&e.targetTouches.length>=1?e.targetTouches[0].clientY:e.clientY}function v(e){const[t,n]=(0,r.useState)(!1),[s,o]=(0,r.useState)(!1),i=(0,r.useRef)(null),l=(0,r.useRef)({start:0,x:0,y:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,boundingRect:null,didMove:!1}).current,c=(0,r.useRef)(e),{autoClose:u,pauseOnHover:d,closeToast:f,onClick:p,closeOnClick:m}=e;function h(t){if(e.draggable){"touchstart"===t.nativeEvent.type&&t.nativeEvent.preventDefault(),l.didMove=!1,document.addEventListener("mousemove",w),document.addEventListener("mouseup",S),document.addEventListener("touchmove",w),document.addEventListener("touchend",S);const n=i.current;l.canCloseOnClick=!0,l.canDrag=!0,l.boundingRect=n.getBoundingClientRect(),n.style.transition="",l.x=y(t.nativeEvent),l.y=b(t.nativeEvent),"x"===e.draggableDirection?(l.start=l.x,l.removalDistance=n.offsetWidth*(e.draggablePercent/100)):(l.start=l.y,l.removalDistance=n.offsetHeight*(80===e.draggablePercent?1.5*e.draggablePercent:e.draggablePercent/100))}}function g(t){if(l.boundingRect){const{top:n,bottom:r,left:s,right:o}=l.boundingRect;"touchend"!==t.nativeEvent.type&&e.pauseOnHover&&l.x>=s&&l.x<=o&&l.y>=n&&l.y<=r?E():v()}}function v(){n(!0)}function E(){n(!1)}function w(n){const r=i.current;l.canDrag&&r&&(l.didMove=!0,t&&E(),l.x=y(n),l.y=b(n),l.delta="x"===e.draggableDirection?l.x-l.start:l.y-l.start,l.start!==l.x&&(l.canCloseOnClick=!1),r.style.transform=`translate${e.draggableDirection}(${l.delta}px)`,r.style.opacity=""+(1-Math.abs(l.delta/l.removalDistance)))}function S(){document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",S),document.removeEventListener("touchmove",w),document.removeEventListener("touchend",S);const t=i.current;if(l.canDrag&&l.didMove&&t){if(l.canDrag=!1,Math.abs(l.delta)>l.removalDistance)return o(!0),void e.closeToast();t.style.transition="transform 0.2s, opacity 0.2s",t.style.transform=`translate${e.draggableDirection}(0)`,t.style.opacity="1"}}(0,r.useEffect)((()=>{c.current=e})),(0,r.useEffect)((()=>(i.current&&i.current.addEventListener("d",v,{once:!0}),a(e.onOpen)&&e.onOpen((0,r.isValidElement)(e.children)&&e.children.props),()=>{const e=c.current;a(e.onClose)&&e.onClose((0,r.isValidElement)(e.children)&&e.children.props)})),[]),(0,r.useEffect)((()=>(e.pauseOnFocusLoss&&(document.hasFocus()||E(),window.addEventListener("focus",v),window.addEventListener("blur",E)),()=>{e.pauseOnFocusLoss&&(window.removeEventListener("focus",v),window.removeEventListener("blur",E))})),[e.pauseOnFocusLoss]);const _={onMouseDown:h,onTouchStart:h,onMouseUp:g,onTouchEnd:g};return u&&d&&(_.onMouseEnter=E,_.onMouseLeave=v),m&&(_.onClick=e=>{p&&p(e),l.canCloseOnClick&&f()}),{playToast:v,pauseToast:E,isRunning:t,preventExitTransition:s,toastRef:i,eventHandlers:_}}function E(e){let{closeToast:t,theme:n,ariaLabel:s="close"}=e;return r.createElement("button",{className:`Toastify__close-button Toastify__close-button--${n}`,type:"button",onClick:e=>{e.stopPropagation(),t(e)},"aria-label":s},r.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},r.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}function w(e){let{delay:t,isRunning:n,closeToast:o,type:i="default",hide:l,className:c,style:u,controlledProgress:d,progress:f,rtl:p,isIn:m,theme:h}=e;const g=l||d&&0===f,y={...u,animationDuration:`${t}ms`,animationPlayState:n?"running":"paused",opacity:g?0:1};d&&(y.transform=`scaleX(${f})`);const b=(0,s.A)("Toastify__progress-bar",d?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${h}`,`Toastify__progress-bar--${i}`,{"Toastify__progress-bar--rtl":p}),v=a(c)?c({rtl:p,type:i,defaultClassName:b}):(0,s.A)(b,c);return r.createElement("div",{role:"progressbar","aria-hidden":g?"true":"false","aria-label":"notification timer",className:v,style:y,[d&&f>=1?"onTransitionEnd":"onAnimationEnd"]:d&&f<1?null:()=>{m&&o()}})}const S=e=>{const{isRunning:t,preventExitTransition:n,toastRef:o,eventHandlers:i}=v(e),{closeButton:l,children:c,autoClose:u,onClick:d,type:f,hideProgressBar:p,closeToast:m,transition:h,position:g,className:y,style:b,bodyClassName:S,bodyStyle:_,progressClassName:O,progressStyle:T,updateId:A,role:P,progress:R,rtl:x,toastId:N,deleteToast:C,isIn:I,isLoading:k,iconOut:j,closeOnClick:L,theme:D}=e,M=(0,s.A)("Toastify__toast",`Toastify__toast-theme--${D}`,`Toastify__toast--${f}`,{"Toastify__toast--rtl":x},{"Toastify__toast--close-on-click":L}),F=a(y)?y({rtl:x,position:g,type:f,defaultClassName:M}):(0,s.A)(M,y),B=!!R||!u,U={closeToast:m,type:f,theme:D};let q=null;return!1===l||(q=a(l)?l(U):(0,r.isValidElement)(l)?(0,r.cloneElement)(l,U):E(U)),r.createElement(h,{isIn:I,done:C,position:g,preventExitTransition:n,nodeRef:o},r.createElement("div",{id:N,onClick:d,className:F,...i,style:b,ref:o},r.createElement("div",{...I&&{role:P},className:a(S)?S({type:f}):(0,s.A)("Toastify__toast-body",S),style:_},null!=j&&r.createElement("div",{className:(0,s.A)("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!k})},j),r.createElement("div",null,c)),q,r.createElement(w,{...A&&!B?{key:`pb-${A}`}:{},rtl:x,theme:D,delay:u,isRunning:t,isIn:I,closeToast:m,hide:p,type:f,style:T,className:O,controlledProgress:B,progress:R||0})))},_=function(e,t){return void 0===t&&(t=!1),{enter:`Toastify--animate Toastify__${e}-enter`,exit:`Toastify--animate Toastify__${e}-exit`,appendPosition:t}},O=d(_("bounce",!0)),T=d(_("slide",!0)),A=d(_("zoom")),P=d(_("flip")),R=(0,r.forwardRef)(((e,t)=>{const{getToastToRender:n,containerRef:o,isToastActive:i}=g(e),{className:c,style:u,rtl:d,containerId:f}=e;function p(e){const t=(0,s.A)("Toastify__toast-container",`Toastify__toast-container--${e}`,{"Toastify__toast-container--rtl":d});return a(c)?c({position:e,rtl:d,defaultClassName:t}):(0,s.A)(t,l(c))}return(0,r.useEffect)((()=>{t&&(t.current=o.current)}),[]),r.createElement("div",{ref:o,className:"Toastify",id:f},n(((e,t)=>{const n=t.length?{...u}:{...u,pointerEvents:"none"};return r.createElement("div",{className:p(e),style:n,key:`container-${e}`},t.map(((e,n)=>{let{content:s,props:o}=e;return r.createElement(S,{...o,isIn:i(o.toastId),style:{...o.style,"--nth":n+1,"--len":t.length},key:`toast-${o.key}`},s)})))})))}));R.displayName="ToastContainer",R.defaultProps={position:"top-right",transition:O,autoClose:5e3,closeButton:E,pauseOnHover:!0,pauseOnFocusLoss:!0,closeOnClick:!0,draggable:!0,draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light"};let x,N=new Map,C=[],I=1;function k(){return""+I++}function j(e){return e&&(i(e.toastId)||o(e.toastId))?e.toastId:k()}function L(e,t){return N.size>0?p.emit(0,e,t):C.push({content:e,options:t}),t.toastId}function D(e,t){return{...t,type:t&&t.type||e,toastId:j(t)}}function M(e){return(t,n)=>L(t,D(e,n))}function F(e,t){return L(e,D("default",t))}F.loading=(e,t)=>L(e,D("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...t})),F.promise=function(e,t,n){let r,{pending:s,error:o,success:l}=t;s&&(r=i(s)?F.loading(s,n):F.loading(s.render,{...n,...s}));const c={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},u=(e,t,s)=>{if(null==t)return void F.dismiss(r);const o={type:e,...c,...n,data:s},a=i(t)?{render:t}:t;return r?F.update(r,{...o,...a}):F(a.render,{...o,...a}),s},d=a(e)?e():e;return d.then((e=>u("success",l,e))).catch((e=>u("error",o,e))),d},F.success=M("success"),F.info=M("info"),F.error=M("error"),F.warning=M("warning"),F.warn=F.warning,F.dark=(e,t)=>L(e,D("default",{theme:"dark",...t})),F.dismiss=e=>{N.size>0?p.emit(1,e):C=C.filter((t=>null!=e&&t.options.toastId!==e))},F.clearWaitingQueue=function(e){return void 0===e&&(e={}),p.emit(5,e)},F.isActive=e=>{let t=!1;return N.forEach((n=>{n.isToastActive&&n.isToastActive(e)&&(t=!0)})),t},F.update=function(e,t){void 0===t&&(t={}),setTimeout((()=>{const n=function(e,t){let{containerId:n}=t;const r=N.get(n||x);return r&&r.getToast(e)}(e,t);if(n){const{props:r,content:s}=n,o={delay:100,...r,...t,toastId:t.toastId||e,updateId:k()};o.toastId!==e&&(o.staleId=e);const i=o.render||s;delete o.render,L(i,o)}}),0)},F.done=e=>{F.update(e,{progress:1})},F.onChange=e=>(p.on(4,e),()=>{p.off(4,e)}),F.POSITION={TOP_LEFT:"top-left",TOP_RIGHT:"top-right",TOP_CENTER:"top-center",BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right",BOTTOM_CENTER:"bottom-center"},F.TYPE={INFO:"info",SUCCESS:"success",WARNING:"warning",ERROR:"error",DEFAULT:"default"},p.on(2,(e=>{x=e.containerId||e,N.set(x,e),C.forEach((e=>{p.emit(0,e.content,e.options)})),C=[]})).on(3,(e=>{N.delete(e.containerId||e),0===N.size&&p.off(0).off(1).off(5)}))},1621:(e,t,n)=>{"use strict";n.d(t,{vt:()=>d});const r=e=>{let t;const n=new Set,r=(e,r)=>{const s="function"==typeof e?e(t):e;if(!Object.is(s,t)){const e=t;t=(null!=r?r:"object"!=typeof s||null===s)?s:Object.assign({},t,s),n.forEach((n=>n(t,e)))}},s=()=>t,o={setState:r,getState:s,getInitialState:()=>i,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},i=t=e(r,s,o);return o};var s=n(1609),o=n(9242);const{useDebugValue:i}=s,{useSyncExternalStoreWithSelector:a}=o;let l=!1;const c=e=>e,u=e=>{"function"!=typeof e&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t="function"==typeof e?(e=>e?r(e):r)(e):e,n=(e,n)=>function(e,t=c,n){n&&!l&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),l=!0);const r=a(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return i(r),r}(t,e,n);return Object.assign(n,t),n},d=e=>e?u(e):u}},r={};function s(e){var t=r[e];if(void 0!==t)return t.exports;var o=r[e]={exports:{}};return n[e].call(o.exports,o,o.exports,s),o.exports}s.m=n,s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce(((t,n)=>(s.f[n](e,t),t)),[])),s.u=e=>e+"."+{8:"01179b5213247b02e257",43:"5782841cd77291fd781f",59:"2b8cb9a1b67150ada2fd",124:"4fd0d3c41809db0344d3",307:"38249a2a2ddf98a57875",361:"2faddb7f371fc911c2f1",393:"558c6c40a4c776a58969",439:"98a0ea7305ad7622c383",588:"2934ac808737314da558",778:"f7f7013a567067838984",814:"3a902150d64a573787ce",838:"27735719272896b2c464"}[e]+".js",s.miniCssF=e=>e+".css",s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="really-simple-ssl:",s.l=(n,r,o,i)=>{if(e[n])e[n].push(r);else{var a,l;if(void 0!==o)for(var c=document.getElementsByTagName("script"),u=0;u<c.length;u++){var d=c[u];if(d.getAttribute("src")==n||d.getAttribute("data-webpack")==t+o){a=d;break}}a||(l=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,s.nc&&a.setAttribute("nonce",s.nc),a.setAttribute("data-webpack",t+o),a.src=n),e[n]=[r];var f=(t,r)=>{a.onerror=a.onload=null,clearTimeout(p);var s=e[n];if(delete e[n],a.parentNode&&a.parentNode.removeChild(a),s&&s.forEach((e=>e(r))),t)return t(r)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=f.bind(null,a.onerror),a.onload=f.bind(null,a.onload),l&&document.head.appendChild(a)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;s.g.importScripts&&(e=s.g.location+"");var t=s.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var r=n.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=n[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{if("undefined"!=typeof document){var e={57:0};s.f.miniCss=(t,n)=>{e[t]?n.push(e[t]):0!==e[t]&&{124:1,814:1}[t]&&n.push(e[t]=(e=>new Promise(((t,n)=>{var r=s.miniCssF(e),o=s.p+r;if(((e,t)=>{for(var n=document.getElementsByTagName("link"),r=0;r<n.length;r++){var s=(i=n[r]).getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(s===e||s===t))return i}var o=document.getElementsByTagName("style");for(r=0;r<o.length;r++){var i;if((s=(i=o[r]).getAttribute("data-href"))===e||s===t)return i}})(r,o))return t();((e,t,n,r,o)=>{var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",s.nc&&(i.nonce=s.nc),i.onerror=i.onload=n=>{if(i.onerror=i.onload=null,"load"===n.type)r();else{var s=n&&n.type,a=n&&n.target&&n.target.href||t,l=new Error("Loading CSS chunk "+e+" failed.\n("+s+": "+a+")");l.name="ChunkLoadError",l.code="CSS_CHUNK_LOAD_FAILED",l.type=s,l.request=a,i.parentNode&&i.parentNode.removeChild(i),o(l)}},i.href=t,document.head.appendChild(i)})(e,o,0,t,n)})))(t).then((()=>{e[t]=0}),(n=>{throw delete e[t],n})))}}})(),(()=>{var e={57:0};s.f.j=(t,n)=>{var r=s.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var o=new Promise(((n,s)=>r=e[t]=[n,s]));n.push(r[2]=o);var i=s.p+s.u(t),a=new Error;s.l(i,(n=>{if(s.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;a.message="Loading chunk "+t+" failed.\n("+o+": "+i+")",a.name="ChunkLoadError",a.type=o,a.request=i,r[1](a)}}),"chunk-"+t,t)}};var t=(t,n)=>{var r,o,[i,a,l]=n,c=0;if(i.some((t=>0!==e[t]))){for(r in a)s.o(a,r)&&(s.m[r]=a[r]);l&&l(s)}for(t&&t(n);c<i.length;c++)o=i[c],s.o(e,o)&&e[o]&&e[o][0](),e[o]=0},n=globalThis.webpackChunkreally_simple_ssl=globalThis.webpackChunkreally_simple_ssl||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),s.nc=void 0,(()=>{"use strict";var e=s(1609),t=s(6087),n=s(7723),r=s(1446),o=s(2043);const i=()=>{const{menu:s,selectedMainMenuItem:i,fetchMenuData:a}=(0,o.A)();let l=rsssl_settings.plugin_url;(0,t.useEffect)((()=>{a()}),[]);let c=s.filter((e=>null!==e));return(0,e.createElement)("div",{className:"rsssl-header-container"},(0,e.createElement)("div",{className:"rsssl-header"},(0,e.createElement)("img",{className:"rsssl-logo",src:l+"assets/img/really-simple-ssl-logo.svg",alt:"Really Simple SSL logo"}),(0,e.createElement)("div",{className:"rsssl-header-left"},(0,e.createElement)("nav",{className:"rsssl-header-menu"},(0,e.createElement)("ul",null,c.map(((t,n)=>(0,e.createElement)("li",{key:"menu-"+n},(0,e.createElement)("a",{className:i===t.id?"active":"",href:"#"+t.id.toString()},t.title))))))),(0,e.createElement)("div",{className:"rsssl-header-right"},!rsssl_settings.le_generated_by_rsssl&&(0,e.createElement)("a",{className:"rsssl-knowledge-base-link",href:"https://really-simple-ssl.com/knowledge-base",target:"_blank",rel:"noopener noreferrer"},(0,n.__)("Documentation","really-simple-ssl")),rsssl_settings.le_generated_by_rsssl&&(0,e.createElement)("a",{href:rsssl_settings.letsencrypt_url},(0,n.__)("Let's Encrypt","really-simple-ssl")),rsssl_settings.pro_plugin_active&&(0,e.createElement)("a",{href:"https://wordpress.org/support/plugin/really-simple-ssl/",className:"button button-black",target:"_blank",rel:"noopener noreferrer"},(0,n.__)("Support","really-simple-ssl")),!rsssl_settings.pro_plugin_active&&(0,e.createElement)("a",{href:rsssl_settings.upgrade_link,className:"button button-black",target:"_blank",rel:"noopener noreferrer"},(0,n.__)("Go Pro","really-simple-ssl")))),(0,e.createElement)(r.default,{className:"rsssl-wizard-notices"}))};var a=s(3972);const l=t=>(0,e.createElement)(e.Fragment,null,(0,e.createElement)("div",{className:"rsssl-header-container"},(0,e.createElement)("div",{className:"rsssl-header"},(0,e.createElement)("img",{className:"rsssl-logo",src:rsssl_settings.plugin_url+"assets/img/really-simple-ssl-logo.svg",alt:"Really Simple SSL logo"}))),(0,e.createElement)("div",{className:"rsssl-content-area rsssl-grid rsssl-dashboard rsssl-page-placeholder"},(0,e.createElement)("div",{className:"rsssl-grid-item rsssl-column-2 rsssl-row-2 "},t.error&&(0,e.createElement)(a.A,{error:t.error})),(0,e.createElement)("div",{className:"rsssl-grid-item rsssl-row-2"}),(0,e.createElement)("div",{className:"rsssl-grid-item rsssl-row-2"}),(0,e.createElement)("div",{className:"rsssl-grid-item rsssl-column-2"})));var c=s(5511),u=s(6975),d=s(7283),f=s(5319),p=s(5170);const m=()=>{const{error:r,fields:a,changedFields:m,fetchFieldsData:h,updateFieldsData:g,fieldsLoaded:y}=(0,u.A)(),{showOnboardingModal:b,fetchOnboardingModalStatus:v,modalStatusLoaded:E}=(0,d.A)(),{selectedMainMenuItem:w,fetchMenuData:S}=(0,o.A)(),{showModal:_}=(0,f.A)(),[O,T]=(0,t.useState)(null),[A,P]=(0,t.useState)(null),[R,x]=(0,t.useState)(null),[N,C]=(0,t.useState)(null),[I,k]=(0,t.useState)(null);(0,t.useEffect)((()=>{E||v()}),[]),(0,t.useEffect)((()=>{rsssl_settings.json_translations.forEach((e=>{let t=JSON.parse(e),r=t.locale_data["really-simple-ssl"]||t.locale_data.messages;r[""].domain="really-simple-ssl",(0,n.setLocaleData)(r,"really-simple-ssl")}))}),[]),(0,t.useEffect)((()=>{"dashboard"!==w&&(O||Promise.all([s.e(8),s.e(838),s.e(778)]).then(s.bind(s,9778)).then((({default:e})=>{T((()=>e))})),R||Promise.resolve().then(s.bind(s,1446)).then((({default:e})=>{x((()=>e))})),N||s.e(588).then(s.bind(s,3588)).then((({default:e})=>{C((()=>e))}))),"dashboard"!==w||A||Promise.all([s.e(8),s.e(838),s.e(43)]).then(s.bind(s,8043)).then((async({default:e})=>{P((()=>e))}))}),[w]);const[j,L]=(0,t.useState)(null);(0,t.useEffect)((()=>{b&&!j&&Promise.all([s.e(8),s.e(838),s.e(59),s.e(814)]).then(s.bind(s,814)).then((({default:e})=>{L((()=>e))}))}),[b]);const[D,M]=(0,t.useState)(null);return(0,t.useEffect)((()=>{_&&!D&&Promise.all([s.e(8),s.e(439)]).then(s.bind(s,1439)).then((({default:e})=>{M((()=>e))}))}),[_]),(0,t.useEffect)((()=>{Promise.resolve().then(s.bind(s,9571)).then((e=>{const t=e.ToastContainer;k((()=>t))}))}),[]),(0,t.useEffect)((()=>{y&&(S(a),window.addEventListener("hashchange",(e=>{S(a)})))}),[a]),(0,t.useEffect)((()=>{let e=(0,c.A)("menu");g(e)}),[m]),(0,t.useEffect)((()=>{let e=(0,c.A)("menu");h(e)}),[]),r?(0,e.createElement)(e.Fragment,null,(0,e.createElement)(l,{error:r})):(0,e.createElement)("div",{className:"rsssl-wrapper"},j&&(0,e.createElement)(p.A,{fallback:"Could not load onboarding modal"},(0,e.createElement)(j,null)),D&&(0,e.createElement)(p.A,{fallback:"Could not load modal"},(0,e.createElement)(D,null)),(0,e.createElement)(e.Fragment,null,(0,e.createElement)(i,null),(0,e.createElement)("div",{className:"rsssl-content-area rsssl-grid rsssl-"+w},"dashboard"!==w&&O&&N&&R&&(0,e.createElement)(e.Fragment,null,(0,e.createElement)(p.A,{fallback:"Could not load menu"},(0,e.createElement)(N,null)),(0,e.createElement)(p.A,{fallback:"Could not load settings"},(0,e.createElement)(O,null)),(0,e.createElement)(p.A,{fallback:"Could not load notices"},(0,e.createElement)(R,{className:"rsssl-wizard-notices"}))),"dashboard"===w&&A&&(0,e.createElement)(p.A,{fallback:"Could not load menu"},(0,e.createElement)(A,null)))),I&&(0,e.createElement)(I,{position:"bottom-right",autoClose:2e3,limit:3,hideProgressBar:!0,newestOnTop:!0,closeOnClick:!0,pauseOnFocusLoss:!0,pauseOnHover:!0,theme:"light"}))};document.addEventListener("DOMContentLoaded",(()=>{const n=document.getElementById("really-simple-ssl");n&&(t.createRoot?(0,t.createRoot)(n).render((0,e.createElement)(m,null)):(0,t.render)((0,e.createElement)(m,null),n))})),document.addEventListener("click",(e=>{e.target.closest("#ssl-labs-check-button")&&(document.querySelector(".rsssl-ssllabs").classList.add("rsssl-block-highlight"),setTimeout((function(){document.querySelector(".rsssl-ssllabs").classList.remove("rsssl-block-highlight")}),6e3))}))})()})();PK�������!�PqP����*��settings/build/814.3a902150d64a573787ce.jsnu�[��������"use strict";(globalThis.webpackChunkreally_simple_ssl=globalThis.webpackChunkreally_simple_ssl||[]).push([[814],{2828:(e,t,l)=>{l.d(t,{A:()=>r});var s=l(1621),a=l(207);const r=(0,s.vt)(((e,t)=>({filter:"all",progressText:"",notices:[],error:!1,percentageCompleted:0,progressLoaded:!1,setFilter:t=>{sessionStorage.rsssl_task_filter=t,e((e=>({filter:t})))},fetchFilter:()=>{if("undefined"!=typeof Storage&&sessionStorage.rsssl_task_filter){let t=sessionStorage.rsssl_task_filter;e((e=>({filter:t})))}},getProgressData:async()=>{const{percentage:t,text:l,notices:s,error:r}=await a.YA("progressData","refresh").then((e=>e));e((e=>({notices:s,percentageCompleted:t,progressText:l,progressLoaded:!0,error:r})))},dismissNotice:async l=>{let s=t().notices;s=s.filter((function(e){return e.id!==l})),e((e=>({notices:s})));const{percentage:r}=await a.YA("dismiss_task",l);e({percentageCompleted:r})}})))},3056:(e,t,l)=>{l.d(t,{A:()=>r});var s=l(1621),a=l(207);const r=(0,s.vt)(((e,t)=>({debug:!1,sslScanStatus:!1,sslData:!1,endpointData:[],dataLoaded:!1,clearCache:!1,requestActive:!1,intervalId:!1,setIntervalId:t=>e({intervalId:t}),setRequestActive:t=>e({requestActive:t}),setSslScanStatus:t=>e({sslScanStatus:t}),setClearCache:t=>e({clearCache:t}),setSslData:t=>e({sslData:t}),setEndpointData:t=>e({endpointData:t}),isLocalHost:()=>!t().debug&&-1!==window.location.host.indexOf("localhost"),host:()=>t().debug?"wordpress.org":window.location.host,fetchSslData:async()=>{a.Eo("ssltest_get").then((l=>{if(l.data.hasOwnProperty("host")){let s=t().processSslData(l.data);e({sslData:s,endpointData:s.endpointData,dataLoaded:!0})}}))},getSslLabsData:l=>{let s="";t().clearCache&&(e({clearCache:!1,sslData:!1}),s="&startNew=on");const r="https://api.ssllabs.com/api/v3/analyze?host="+t().host()+s;let n={};return n.url=r,a.Eo("ssltest_run",n).then((e=>!(!e||e.errors)&&JSON.parse(e)))},runSslTest:()=>{t().getSslLabsData().then((l=>{if(l.status&&"ERROR"===l.status)l=t().processSslData(l),e({sslData:l,sslScanStatus:"completed"}),clearInterval(t().intervalId);else if(l.endpoints&&l.endpoints.filter((e=>"Ready"===e.statusMessage)).length>0){let s=l.endpoints.filter((e=>"Ready"===e.statusMessage)),r=s[s.length-1].ipAddress;t().getEndpointData(r).then((s=>{let r=t().endpointData;if(Array.isArray(r)||(r=[]),!s.errors){let t=!1;r.length>0&&r.forEach((function(e,l){e.ipAddress===s.ipAddress&&(r[l]=s,t=!0)})),t||(r[r.length]=s),e({endpointData:r}),l.endpointData=r}l.errors||a.Eo("store_ssl_labs",l),l=t().processSslData(l),e({sslData:l,requestActive:!1})}))}else(l=t().processSslData(l)).errors||a.Eo("store_ssl_labs",l).then((e=>{})),e({sslData:l,requestActive:!1})}))},processSslData:t=>{t||(t={});let l=t.progress?t.progress:0,s=t.startTime?t.startTime:"",a=t.statusMessage?t.statusMessage:"",r=t.grade?t.grade:"?",n="";if(t.endpoints){let e=t.endpoints.filter((e=>"Ready"===e.statusMessage)),s=e.length,c=e[s-1],i=t.endpoints.filter((e=>"In progress"===e.statusMessage))[0],o=0;i&&(o=i.progress?i.progress:0,a=i.statusDetailsMessage,n=i.ipAddress),c&&(r=c.grade),l=(100*s+o)/t.endpoints.length}t.errors&&(r="?",a=t.errors[0].message,l=100);let c={};return l>=100&&e({sslScanStatus:"completed"}),c.grade=r,c.startTime=s,c.statusMessage=a,c.ipAddress=n,c.progress=l,t.summary=c,t},getEndpointData:e=>{const l="https://api.ssllabs.com/api/v3/getEndpointData?host="+t().host()+"&s="+e;let s={};return s.url=l,a.Eo("ssltest_run",s).then((e=>{if(e&&!e.errors)return JSON.parse(e)}))}})))},5801:(e,t,l)=>{l.d(t,{A:()=>C});var s=l(1609),a=l(6087),r=l(7723),n=l(4937),c=l(9695),i=l(6975),o=l(7283),m=l(5281);const d=(0,a.memo)((()=>{const{fetchFieldsData:e,getFieldValue:t,fieldsLoaded:l}=(0,i.A)(),{email:n,setEmail:c,includeTips:m,setIncludeTips:d}=(0,o.A)();return(0,a.useEffect)((()=>{l||e()}),[]),(0,a.useEffect)((()=>{""!==t("notifications_email_address")&&""===n&&c(t("notifications_email_address"))}),[]),(0,s.createElement)(s.Fragment,null,(0,s.createElement)("div",null,(0,s.createElement)("input",{type:"email",value:n,placeholder:(0,r.__)("Your email address","really-simple-ssl"),onChange:e=>c(e.target.value)})),(0,s.createElement)("div",null,(0,s.createElement)("label",null,(0,s.createElement)("input",{onChange:e=>d(e.target.checked),type:"checkbox",checked:m}),(0,r.__)("Include 6 Tips & Tricks to get started with Really Simple SSL.","really-simple-ssl")," ",(0,s.createElement)("a",{href:"https://really-simple-ssl.com/legal/privacy-statement/",target:"_blank"},(0,r.__)("Privacy Statement","really-simple-ssl")))))}));var u=l(489);const h=(0,a.memo)((({item:e})=>{let{title:t,status:l,id:a}=e;const{overrideSSL:c,setOverrideSSL:i,certificateValid:m}=(0,o.A)(),d={inactive:{icon:"info",color:"grey"},warning:{icon:"circle-times",color:"orange"},error:{icon:"circle-times",color:"red"},success:{icon:"circle-check",color:"green"},processing:{icon:"loading",color:"black"}},u="success"!==e.status&&"none"===e.current_action?"empty":d[l].icon,h=d[l].color;return(0,s.createElement)(s.Fragment,null,(0,s.createElement)("li",null,(0,s.createElement)(n.default,{name:u,color:h}),t,"certificate"===a&&!m&&(0,s.createElement)(s.Fragment,null," ",(0,s.createElement)("a",{href:"#",onClick:e=>refreshSSLStatus(e)},(0,r.__)("Check again","really-simple-ssl")))),"certificate"===a&&!m&&(0,s.createElement)("li",null,(0,s.createElement)("label",{className:"rsssl-override-detection-toggle"},(0,s.createElement)("input",{onChange:e=>i(e.target.checked),type:"checkbox",checked:c}),(0,r.__)("Override SSL detection.","really-simple-ssl"))))})),g=(0,a.memo)((({isModal:e})=>{const{fetchFieldsData:t,getField:l,fieldsLoaded:r,updateField:n,setChangedField:c,saveFields:m}=(0,i.A)(),{currentStep:d}=(0,o.A)();(0,a.useEffect)((()=>{r||t()}),[]);let g=r&&l("other_host_type"),p=d.items?d.items:[];if(rsssl_settings.cloudflare){let e={status:"success",title:"CloudFlare",id:"cf"};p.unshift(e)}return(0,s.createElement)(s.Fragment,null,e&&(0,s.createElement)(u.A,{field:g,showDisabledWhenSaving:!1}),(0,s.createElement)("ul",null,(0,s.createElement)("ul",null,p&&p.map(((e,t)=>(0,s.createElement)(h,{key:"step-config-"+t,item:e}))))))})),p=(0,a.memo)((({item:e,disabled:t})=>{const{updateItemStatus:l,currentStep:a}=(0,o.A)();let{title:r,description:n,id:c,activated:i}=e;return(0,s.createElement)("li",null,(0,s.createElement)("label",{className:"rsssl-modal-checkbox-container"},(0,s.createElement)("input",{type:"checkbox",disabled:t,checked:i,value:c,id:c,onChange:e=>l(a.id,c,null,null,e.target.checked)}),(0,s.createElement)("span",{className:"rsssl-checkmark"})),r,n&&(0,s.createElement)(s.Fragment,null," - ",n))})),f=(0,a.memo)((({item:e})=>{let{title:t}=e;return(0,s.createElement)("li",null,(0,s.createElement)("div",{className:"rsssl-modal-premium-container"},"PRO"),t)})),v=(0,a.memo)((()=>{const{currentStep:e}=(0,o.A)();let t=e.items?e.items:[],l=t.filter((e=>!e.premium)),a=t.filter((e=>e.premium));return(0,s.createElement)(s.Fragment,null,(0,s.createElement)("ul",null,l&&l.map(((e,t)=>(0,s.createElement)(p,{key:"step-features"+t,item:e}))),a&&a.map(((e,t)=>(0,s.createElement)(f,{key:"step-features"+t,item:e})))))})),w=(0,a.memo)((()=>{const{currentStep:e,currentStepIndex:t,setCurrentStepIndex:l}=(0,o.A)();(0,a.useEffect)((()=>{0===e.items.filter((e=>"none"!==e.action)).length&&l(t+1)}),[]);let r=e.items;return(0,s.createElement)(s.Fragment,null,(0,s.createElement)("ul",null,r&&r.map(((e,t)=>(0,s.createElement)(p,{key:"step-plugins"+t,item:e,disabled:"none"===e.action})))))})),E=(0,a.memo)((()=>{const{currentStep:e}=(0,o.A)();let t=e.items;return(0,s.createElement)(s.Fragment,null,(0,s.createElement)("ul",null,!rsssl_settings.pro_plugin_active&&t&&t.map(((e,t)=>(0,s.createElement)(f,{key:"step-pro"+t,item:e}))),rsssl_settings.pro_plugin_active&&t&&t.map(((e,t)=>(0,s.createElement)(p,{key:"step-pro"+t,item:e})))))}));l(2838);const C=({isModal:e})=>{const{fetchFieldsData:t,fieldsLoaded:l}=(0,i.A)(),{getSteps:u,error:h,networkwide:p,sslEnabled:f,dataLoaded:C,processing:b,currentStep:y,currentStepIndex:_,setCurrentStepIndex:M,networkActivationStatus:S,networkProgress:z,activateSSLNetworkWide:L}=(0,o.A)();return(0,a.useEffect)((()=>{p&&"main_site_activated"===S&&setTimeout((()=>{L()}),1e3)}),[S,z]),(0,a.useEffect)((()=>{l||t()}),[]),(0,a.useEffect)((()=>{(async()=>{await u(!1),C&&f&&0===_&&M(1)})()}),[]),h?(0,s.createElement)(c.A,{lines:"3",error:h}):(0,s.createElement)(s.Fragment,null,!C&&(0,s.createElement)(s.Fragment,null,(0,s.createElement)("div",{className:"rsssl-onboarding-placeholder"},(0,s.createElement)("ul",null,(0,s.createElement)("li",null,(0,s.createElement)(n.default,{name:"loading",color:"grey"}),(0,r.__)("Fetching next step...","really-simple-ssl"))),(0,s.createElement)(c.A,{lines:"3"}))),C&&(0,s.createElement)("div",{className:" rsssl-"+y.id},"activate_ssl"===y.id&&(0,s.createElement)(s.Fragment,null,(0,s.createElement)(g,{isModal:e})),"features"===y.id&&(0,s.createElement)(s.Fragment,null,(0,s.createElement)(v,null)),"email"===y.id&&(0,s.createElement)(s.Fragment,null,(0,s.createElement)(d,null)),"plugins"===y.id&&(0,s.createElement)(s.Fragment,null,(0,s.createElement)(w,null)),"pro"===y.id&&(0,s.createElement)(s.Fragment,null,(0,s.createElement)(E,null)),!e&&(0,s.createElement)(m.A,{isModal:!1})))}},5281:(e,t,l)=>{l.d(t,{A:()=>u});var s=l(1609),a=l(6427),r=l(7723),n=l(2043),c=l(6975),i=l(7283),o=l(2828),m=l(4449),d=l(3056);const u=({isModal:e})=>{const{getProgressData:t}=(0,o.A)(),{updateField:l,setChangedField:u,updateFieldsData:h,fetchFieldsData:g,saveFields:p}=(0,c.A)(),{setSelectedMainMenuItem:f,selectedSubMenuItem:v}=(0,n.A)(),{fetchFirstRun:w,fetchVulnerabilities:E}=(0,m.A)(),{setSslScanStatus:C}=(0,d.A)(),{dismissModal:b,activateSSL:y,certificateValid:_,setFooterStatus:M,networkwide:S,processing:z,setProcessing:L,steps:x,currentStepIndex:k,currentStep:V,setCurrentStepIndex:A,overrideSSL:H,email:F,saveEmail:D,pluginInstaller:B}=(0,i.A)(),N=async()=>{let s=!1;if("features"===V.id){A(k+1),L(!0);for(const e of V.items){if("health_scan"===e.id&&e.activated&&(M((0,r.__)("Starting SSL health scan...","really-simple-ssl")),C("active")),!e.premium||!e.activated)for(const t of Object.values(e.options))l(t,e.activated),u(t,e.activated);"vulnerability_detection"===e.id&&(s=e.activated)}M((0,r.__)("Activating options...","really-simple-ssl")),await p(!0,!1),s&&(M((0,r.__)("Initializing vulnerability detection...","really-simple-ssl")),await w(),M((0,r.__)("Scanning for vulnerabilities...","really-simple-ssl")),await E()),M((0,r.__)("Updating dashboard...","really-simple-ssl")),await t(),M(""),L(!1)}if("email"===V.id&&(await D(),A(k+1),l("send_notifications_email",!0),l("notifications_email_address",F),h(v)),"plugins"===V.id){A(k+1);for(const e of V.items)"none"!==e.action&&null!==e.action&&await B(e.id,e.action,e.title);M("")}if("pro"===V.id){if(rsssl_settings.pro_plugin_active){L(!0);for(const e of V.items)if(e.activated)for(const t of Object.values(e.options))l(t,!0),u(t,!0);M((0,r.__)("Activating options...","really-simple-ssl")),await p(!0,!1),M((0,r.__)("Updating dashboard...","really-simple-ssl")),await t(),M(""),L(!1)}e&&b(!0),f("dashboard")}};let O=S?(0,r.__)("Activate SSL networkwide","really-simple-ssl"):(0,r.__)("Activate SSL","really-simple-ssl");if(0===k)return(0,s.createElement)(s.Fragment,null,e&&!_&&(0,s.createElement)(a.Button,{onClick:()=>{e&&b(!0),window.location.href=rsssl_settings.letsencrypt_url}},(0,r.__)("Install SSL","really-simple-ssl")),(0,s.createElement)(a.Button,{disabled:z||!_&&!H,isPrimary:!0,onClick:()=>{(async()=>{await y(),await t(),await g()})()}},O));if(k>0&&k<x.length-1)return(0,s.createElement)(s.Fragment,null,(0,s.createElement)(a.Button,{onClick:()=>{A(k+1)}},(0,r.__)("Skip","really-simple-ssl")),(0,s.createElement)(a.Button,{isPrimary:!0,onClick:()=>N()},V.button));if(x.length-1===k){let e=rsssl_settings.is_bf?(0,r.__)("Get 40% off","really-simple-ssl"):(0,r.__)("Get PRO","really-simple-ssl");return(0,s.createElement)(s.Fragment,null,(0,s.createElement)(a.Button,{isPrimary:!0,onClick:()=>N()},(0,r.__)("Finish","really-simple-ssl")),!rsssl_settings.pro_plugin_active&&(0,s.createElement)(a.Button,{rel:"noreferrer noopener",target:"_blank",isPrimary:!0,href:rsssl_settings.upgrade_link},e))}}},814:(e,t,l)=>{l.r(t),l.d(t,{default:()=>p});var s=l(1609),a=l(6087),r=l(5801),n=l(9695),c=l(7723),i=l(4937),o=l(7283),m=l(6975),d=l(6427),u=l(5170);const h=({title:e,subTitle:t,buttons:r,content:n,list:i,confirmAction:o,confirmText:m,alternativeAction:h,alternativeText:g,alternativeClassName:p,isOpen:f,setOpen:v,className:w})=>{const[E,C]=(0,a.useState)(null);let b="undefined"!=typeof rsssl_modal?rsssl_modal.plugin_url:rsssl_settings.plugin_url;p=p||"rsssl-warning",(0,a.useEffect)((()=>{E||Promise.resolve().then(l.bind(l,4937)).then((({default:e})=>{C((()=>e))}))}),[]);let y=w?" "+w:"";return wp.element.createElement(s.Fragment,null,f&&wp.element.createElement(s.Fragment,null,wp.element.createElement(u.A,{fallback:"Error loading modal"},wp.element.createElement(d.Modal,{className:"rsssl-modal"+y,shouldCloseOnClickOutside:!1,shouldCloseOnEsc:!1,title:e,onRequestClose:()=>v(!1),open:f},wp.element.createElement("div",{className:"rsssl-modal-body"},t&&wp.element.createElement("p",null,t),n&&wp.element.createElement(s.Fragment,null,n),i&&E&&wp.element.createElement("ul",null,i.map(((e,t)=>wp.element.createElement("li",{key:t},wp.element.createElement(E,{name:e.icon,color:e.color}),e.text))))),wp.element.createElement("div",{className:"rsssl-modal-footer"},wp.element.createElement("div",{className:"rsssl-modal-footer-image"},wp.element.createElement("img",{className:"rsssl-logo",src:b+"assets/img/really-simple-ssl-logo.svg",alt:"Really Simple SSL"})),wp.element.createElement("div",{className:"rsssl-modal-footer-buttons"},wp.element.createElement(d.Button,{onClick:()=>v(!1)},(0,c.__)("Cancel","really-simple-ssl")),r&&wp.element.createElement(s.Fragment,null,r),!r&&wp.element.createElement(s.Fragment,null,g&&wp.element.createElement(d.Button,{className:p,onClick:()=>h()},g),m&&wp.element.createElement(d.Button,{isPrimary:!0,onClick:()=>o()},m))))))))};var g=l(5281);const p=()=>{const{footerStatus:e,showOnboardingModal:t,fetchOnboardingModalStatus:l,modalStatusLoaded:d,currentStep:u,dismissModal:p}=(0,o.A)(),{fieldsLoaded:f}=(0,m.A)();return(0,a.useEffect)((()=>{d||l()}),[]),(0,a.useEffect)((()=>{t&&p(!1)}),[t]),(0,s.createElement)(s.Fragment,null,(0,s.createElement)(h,{className:"rsssl-onboarding-modal",title:u.title,subTitle:u.subtitle,content:(0,s.createElement)(s.Fragment,null,!f&&(0,s.createElement)(s.Fragment,null,(0,s.createElement)("ul",null,(0,s.createElement)("li",null,(0,s.createElement)(i.default,{name:"loading"}),(0,c.__)("Please wait while we detect your setup","really-simple-ssl"))),(0,s.createElement)(n.A,{lines:"3"})),f&&(0,s.createElement)(r.A,{isModal:!0})),isOpen:t,setOpen:e=>{e||p(!0)},buttons:(0,s.createElement)(g.A,{isModal:!0}),footer:0!==e.length&&(0,s.createElement)(s.Fragment,null,(0,s.createElement)(i.default,{name:"loading",color:"grey"}),e)}))}},9695:(e,t,l)=>{l.d(t,{A:()=>r});var s=l(1609),a=l(3972);const r=e=>{let t=e.lines;return t||(t=4),e.error&&(t=0),(0,s.createElement)("div",{className:"rsssl-placeholder"},e.error&&(0,s.createElement)(a.A,{error:e.error}),Array.from({length:t}).map(((e,t)=>(0,s.createElement)("div",{className:"rsssl-placeholder-line",key:"placeholder-"+t}))))}},489:(e,t,l)=>{l.d(t,{A:()=>g});var s=l(1609),a=l(6087),r=l(6975),n=(l(2838),l(9342)),c=l(1082);const i=(0,l(9815).A)((()=>({autoComplete:{fontSize:"12px"}}))),o=({field:e,disabled:t,value:l,options:a,label:r,onChange:o})=>{let m=!Array.isArray(t)&&t;const d=i();return(0,s.createElement)(s.Fragment,null,(0,s.createElement)(n.A,{classes:{input:d.autoComplete,option:d.autoComplete},disabled:m,disablePortal:!0,value:l,id:e.id,options:a,getOptionLabel:e=>{if(e&&e.label)return e.label;const t=a.find((t=>t.value===e));return t?t.label:e},isOptionEqualToValue:(e,t)=>e.value===t,onChange:(e,t)=>{let l=t&&t.value?t.value:"";o(l)},renderInput:e=>(0,s.createElement)(c.A,{...e,label:r,margin:"normal",variant:"outlined",fullWidth:!0})}))};var m=l(1621),d=l(207);const u=(0,m.vt)(((e,t)=>({hosts:[],hostsLoaded:!1,fetchHosts:async t=>{try{const l=await d.Eo("get_hosts",{id:t});if(!l)return void console.error("No response received from the server.");let s=l.hosts;e({hosts:s,hostsLoaded:!0})}catch(e){console.error("Error:",e)}}})));var h=l(7723);const g=(0,a.memo)((({field:e,showDisabledWhenSaving:t=!0})=>{const{updateField:l,setChangedField:n,saveFields:c,handleNextButtonDisabled:i}=(0,r.A)(),m=(0,a.useRef)(!1),{fetchHosts:d,hosts:g,hostsLoaded:p}=u();(0,a.useEffect)((()=>{p||d()}),[]);let f=p?g:[],v=[],w={label:(0,h.__)("Optional - Select your hosting provider.","really-simple-ssl"),value:""};0===e.value.length&&v.push(w);for(let e in f)if(f.hasOwnProperty(e)){let t={};t.label=f[e].name,t.value=e,v.push(t)}return(0,s.createElement)(o,{className:"rsssl-select",field:e,label:e.label,onChange:s=>(async s=>{i(!0),t&&(m.current=!0),l(e.id,s),n(e.id,s),await c(!0,!1),i(!1),m.current=!1})(s),value:e.value,options:v,disabled:m.current})}))},4449:(e,t,l)=>{l.d(t,{A:()=>i});var s=l(1609),a=l(1621),r=l(207),n=l(7723),c=l(6535);const i=(0,a.vt)(((e,t)=>({dummyRiskData:[{id:"force_update",name:"Force Update",value:"l",description:(0,n.__)("Force update the plugin or theme","really-simple-ssl")},{id:"quarantine",name:"Quarantine",value:"m",description:(0,n.__)("Isolates the plugin or theme if no update can be performed","really-simple-ssl")}],riskData:[],riskLevels:{l:1,m:2,h:3,c:4},vulnerabilities:[],processing:!1,dataLoaded:!1,updates:0,HighestRisk:!1,lastChecked:"",vulEnabled:!1,riskNaming:{},vulList:[],setDataLoaded:t=>e({dataLoaded:t}),updateRiskData:async(l,s)=>{if(!t().processing){e({processing:!0}),e((0,c.jM)((e=>{let a=e.riskData.findIndex((e=>e.id===l));e.riskData[a].value=s,e.riskData=t().enforceCascadingRiskLevels(e.riskData)})));try{await r.Eo("vulnerabilities_measures_set",{riskData:t().riskData}),e({dataLoaded:!0,processing:!1})}catch(e){console.log(e)}e({processing:!1})}},enforceCascadingRiskLevels:e=>{if(0===e.length)return e;let l=e.filter((e=>"force_update"===e.id))[0].value,s=e.filter((e=>"quarantine"===e.id))[0].value;l=t().riskLevels.hasOwnProperty(l)?t().riskLevels[l]:5,s=t().riskLevels.hasOwnProperty(s)?t().riskLevels[s]:5;let a=e.findIndex((e=>"quarantine"===e.id));s<l&&(e[a].value=Object.keys(t().riskLevels).find((e=>t().riskLevels[e]===l))),5===l&&(e[a].value="*");let r=l>0?l:0,n=Array.from(Array(r).keys()).map((e=>e));return n=n.map((e=>Object.keys(t().riskLevels).find((l=>t().riskLevels[l]===e)))),e[a].disabledRiskLevels=n,e},fetchFirstRun:async()=>{t().processing||(e({processing:!0}),await r.Eo("vulnerabilities_scan_files"),e({processing:!1}))},fetchVulnerabilities:async()=>{if(t().processing)return;e({processing:!0});let l={};try{const a=await r.Eo("hardening_data",l);let i=[],o=0;a.data.vulList&&(o=a.data.vulnerabilities,i=a.data.vulList,"object"==typeof i&&(i=Object.values(i)),i.forEach((function(e,t){let l=e.update_available?rsssl_settings.plugins_url+"?plugin_status=upgrade":"#settings/vulnerabilities";e.vulnerability_action=(0,s.createElement)("div",{className:"rsssl-action-buttons"},(0,s.createElement)("a",{className:"rsssl-button button-secondary",href:"https://really-simple-ssl.com/vulnerabilities/"+e.rss_identifier,target:"_blank",rel:"noopener noreferrer"},(0,n.__)("Details","really-simple-ssl")),(0,s.createElement)("a",{disabled:!e.update_available,href:l,className:"rsssl-button button-primary"},(0,n.__)("Update","really-simple-ssl")))})));let m=a.data.riskData;Array.isArray(m)||(m=[]),m=t().enforceCascadingRiskLevels(m),e((0,c.jM)((e=>{e.vulnerabilities=o,e.vulList=i,e.updates=a.data.updates,e.dataLoaded=!0,e.riskNaming=a.data.riskNaming,e.lastChecked=a.data.lastChecked,e.vulEnabled=a.data.vulEnabled,e.riskData=m,e.processing=!1})))}catch(e){console.error(e)}},vulnerabilityCount:()=>{let e=t().vulList,l=[];return Object.keys(e).forEach((function(t){l.push(e[t])})),["c","h","m","l"].map((function(e){return{level:e,count:l.filter((function(t){return t.risk_level===e})).length}}))},vulnerabilityScore:()=>{let e=0,l=t().vulList;return Object.keys(l).forEach((function(t){"c"===l[t].risk_level?e=5:e<1&&(e=1)})),e},hardeningScore:()=>{let e=0,l=t().vulnerabilities;for(let t=0;t<l.length;t++)e+=l[t].hardening_score;return e},activateVulnerabilityScanner:async()=>{try{(await r.Eo("rsssl_scan_files")).request_success&&await t().fetchVulnerabilities()}catch(e){console.error(e)}}})))},4937:(e,t,l)=>{l.r(t),l.d(t,{default:()=>n});var s=l(1609),a=l(7008);const r=React.forwardRef((function(e,t){const{name:l,color:a,size:r}=e,n=l||"bullet",c=a||"black",i=r||15,o={black:"var(--rsp-black)",green:"var(--rsp-green)",yellow:"var(--rsp-yellow)",orange:"var(--rsp-yellow)","red-faded":"var(--rsp-red-faded)",red:"var(--rsp-red)",grey:"var(--rsp-grey-400)","red-warning":"var(--rsp-red-faded)"};let m="";return"bullet"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z"}))),"circle"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"}))),"check"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"}))),"warning"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"}))),"error"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"}))),"times"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"}))),"circle-check"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM371.8 211.8C382.7 200.9 382.7 183.1 371.8 172.2C360.9 161.3 343.1 161.3 332.2 172.2L224 280.4L179.8 236.2C168.9 225.3 151.1 225.3 140.2 236.2C129.3 247.1 129.3 264.9 140.2 275.8L204.2 339.8C215.1 350.7 232.9 350.7 243.8 339.8L371.8 211.8z"}))),"circle-times"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM175 208.1L222.1 255.1L175 303C165.7 312.4 165.7 327.6 175 336.1C184.4 346.3 199.6 346.3 208.1 336.1L255.1 289.9L303 336.1C312.4 346.3 327.6 346.3 336.1 336.1C346.3 327.6 346.3 312.4 336.1 303L289.9 255.1L336.1 208.1C346.3 199.6 346.3 184.4 336.1 175C327.6 165.7 312.4 165.7 303 175L255.1 222.1L208.1 175C199.6 165.7 184.4 165.7 175 175C165.7 184.4 165.7 199.6 175 208.1V208.1z"}))),"chevron-up"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M416 352c-8.188 0-16.38-3.125-22.62-9.375L224 173.3l-169.4 169.4c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25C432.4 348.9 424.2 352 416 352z"}))),"chevron-down"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"}))),"chevron-right"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z"}))),"chevron-left"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M224 480c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l169.4 169.4c12.5 12.5 12.5 32.75 0 45.25C240.4 476.9 232.2 480 224 480z"}))),"plus"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"}))),"minus"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"}))),"sync"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M483.515 28.485L431.35 80.65C386.475 35.767 324.485 8 256 8 123.228 8 14.824 112.338 8.31 243.493 7.971 250.311 13.475 256 20.301 256h28.045c6.353 0 11.613-4.952 11.973-11.294C66.161 141.649 151.453 60 256 60c54.163 0 103.157 21.923 138.614 57.386l-54.128 54.129c-7.56 7.56-2.206 20.485 8.485 20.485H492c6.627 0 12-5.373 12-12V36.971c0-10.691-12.926-16.045-20.485-8.486zM491.699 256h-28.045c-6.353 0-11.613 4.952-11.973 11.294C445.839 370.351 360.547 452 256 452c-54.163 0-103.157-21.923-138.614-57.386l54.128-54.129c7.56-7.56 2.206-20.485-8.485-20.485H20c-6.627 0-12 5.373-12 12v143.029c0 10.691 12.926 16.045 20.485 8.485L80.65 431.35C125.525 476.233 187.516 504 256 504c132.773 0 241.176-104.338 247.69-235.493.339-6.818-5.165-12.507-11.991-12.507z"}))),"sync-error"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M256 79.1C178.5 79.1 112.7 130.1 89.2 199.7C84.96 212.2 71.34 218.1 58.79 214.7C46.23 210.5 39.48 196.9 43.72 184.3C73.6 95.8 157.3 32 256 32C337.5 32 408.8 75.53 448 140.6V104C448 90.75 458.7 80 472 80C485.3 80 496 90.75 496 104V200C496 213.3 485.3 224 472 224H376C362.7 224 352 213.3 352 200C352 186.7 362.7 176 376 176H412.8C383.7 118.1 324.4 80 256 80V79.1zM280 263.1C280 277.3 269.3 287.1 256 287.1C242.7 287.1 232 277.3 232 263.1V151.1C232 138.7 242.7 127.1 256 127.1C269.3 127.1 280 138.7 280 151.1V263.1zM224 352C224 334.3 238.3 319.1 256 319.1C273.7 319.1 288 334.3 288 352C288 369.7 273.7 384 256 384C238.3 384 224 369.7 224 352zM40 432C26.75 432 16 421.3 16 408V311.1C16 298.7 26.75 287.1 40 287.1H136C149.3 287.1 160 298.7 160 311.1C160 325.3 149.3 336 136 336H99.19C128.3 393 187.6 432 256 432C333.5 432 399.3 381.9 422.8 312.3C427 299.8 440.7 293 453.2 297.3C465.8 301.5 472.5 315.1 468.3 327.7C438.4 416.2 354.7 480 256 480C174.5 480 103.2 436.5 64 371.4V408C64 421.3 53.25 432 40 432V432z"}))),"shortcode"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M128 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h96C145.7 480 160 465.7 160 448S145.7 416 128 416H64V96h64C145.7 96 160 81.67 160 64S145.7 32 128 32zM416 32h-96C302.3 32 288 46.33 288 63.1S302.3 96 319.1 96H384v320h-64C302.3 416 288 430.3 288 447.1S302.3 480 319.1 480H416c17.6 0 32-14.4 32-32V64C448 46.4 433.6 32 416 32z"}))),"file"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M0 64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM336 448V160H256C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V448C48 456.8 55.16 464 64 464H320C328.8 464 336 456.8 336 448z"}))),"file-disabled"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M639.1 487.1c0-7.119-3.153-14.16-9.191-18.89l-118.8-93.12l.0013-237.3c0-16.97-6.742-33.26-18.74-45.26l-74.63-74.64C406.6 6.742 390.3 0 373.4 0H192C156.7 0 128 28.65 128 64L128 75.01L38.82 5.11C34.41 1.672 29.19 0 24.04 0C10.19 0-.0002 11.3-.0002 23.1c0 7.12 3.153 14.16 9.192 18.89l591.1 463.1C605.6 510.3 610.8 512 615.1 512C629.8 512 639.1 500.6 639.1 487.1zM464 338.4l-287.1-225.7l-.002-48.51c0-8.836 7.164-16 15.1-16h160l-.0065 79.87c0 17.67 14.33 31.1 31.1 31.1L464 159.1V338.4zM448 463.1H192c-8.834 0-15.1-7.164-15.1-16L176 234.6L128 197L128 447.1c0 35.34 28.65 64 63.1 64H448c20.4 0 38.45-9.851 50.19-24.84l-37.72-29.56C457.5 461.4 453.2 463.1 448 463.1z"}))),"loading"===n&&(m=(0,s.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[a],d:"M304 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 416c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM48 304c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm464-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM142.9 437c18.7-18.7 18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zm0-294.2c18.7-18.7 18.7-49.1 0-67.9S93.7 56.2 75 75s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zM369.1 437c18.7 18.7 49.1 18.7 67.9 0s18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9z"}))),"file-download"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M216 342.1V240c0-13.25-10.75-24-24-24S168 226.8 168 240v102.1L128.1 303C124.3 298.3 118.2 296 112 296S99.72 298.3 95.03 303c-9.375 9.375-9.375 24.56 0 33.94l80 80c9.375 9.375 24.56 9.375 33.94 0l80-80c9.375-9.375 9.375-24.56 0-33.94s-24.56-9.375-33.94 0L216 342.1zM365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448z"}))),"calendar"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z"}))),"calendar-error"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M151.1 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V192H47.1V448C47.1 456.8 55.16 464 63.1 464H284.5C296.7 482.8 312.5 499.1 330.8 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24L151.1 64zM576 368C576 447.5 511.5 512 432 512C352.5 512 287.1 447.5 287.1 368C287.1 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM432 416C418.7 416 408 426.7 408 440C408 453.3 418.7 464 432 464C445.3 464 456 453.3 456 440C456 426.7 445.3 416 432 416zM447.1 288C447.1 279.2 440.8 272 431.1 272C423.2 272 415.1 279.2 415.1 288V368C415.1 376.8 423.2 384 431.1 384C440.8 384 447.1 376.8 447.1 368V288z"}))),"help"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z"}))),"copy"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M502.6 70.63l-61.25-61.25C435.4 3.371 427.2 0 418.7 0H255.1c-35.35 0-64 28.66-64 64l.0195 256C192 355.4 220.7 384 256 384h192c35.2 0 64-28.8 64-64V93.25C512 84.77 508.6 76.63 502.6 70.63zM464 320c0 8.836-7.164 16-16 16H255.1c-8.838 0-16-7.164-16-16L239.1 64.13c0-8.836 7.164-16 16-16h128L384 96c0 17.67 14.33 32 32 32h47.1V320zM272 448c0 8.836-7.164 16-16 16H63.1c-8.838 0-16-7.164-16-16L47.98 192.1c0-8.836 7.164-16 16-16H160V128H63.99c-35.35 0-64 28.65-64 64l.0098 256C.002 483.3 28.66 512 64 512h192c35.2 0 64-28.8 64-64v-32h-47.1L272 448z"}))),"info"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"}))),"info-open"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM256 304c13.25 0 24-10.75 24-24v-128C280 138.8 269.3 128 256 128S232 138.8 232 152v128C232 293.3 242.8 304 256 304zM256 337.1c-17.36 0-31.44 14.08-31.44 31.44C224.6 385.9 238.6 400 256 400s31.44-14.08 31.44-31.44C287.4 351.2 273.4 337.1 256 337.1z"}))),"list"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M184.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 113c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM256 96c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zM192 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zM80 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z"}))),"empty"===n&&(m=(0,s.createElement)("svg",{height:i,width:i,"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 280.8 363.67"})),"external-link"===n&&(m=(0,s.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("path",{fill:o[c],d:"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z"}))),"shield"===n&&(m=(0,s.createElement)("svg",{height:i,"aria-hidden":"true",focusable:"false",role:"img",id:"uuid-026a4e87-44db-4336-a398-3c29d25b7317",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 280.8 363.67"},(0,s.createElement)("path",{fill:"#f9c23e",d:"M280.8,62.4L140.5,0,0,62.2V213.3c0,10.7,1.6,21.3,4.9,31.5,9.5,29.9,28.2,52.8,54.4,69.5,26,16.6,52.4,32.4,78.6,48.6,2,1.2,3.4,.9,5.1-.2,19.9-12.3,39.8-24.5,59.6-36.8,12.6-7.8,25.5-15.1,36.5-25.1,26.4-24.2,41.4-53.6,41.5-89.9V62.4h.2Z"}),(0,s.createElement)("g",null,(0,s.createElement)("g",null,(0,s.createElement)("rect",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",x:"155",y:"266.8",width:"77.6",height:"6"}),(0,s.createElement)("path",{fill:"#1d2327",d:"M224.4,204.5h-1.8v-10.1c0-15.9-12.9-28.8-28.8-28.8s-28.8,12.9-28.8,28.8v10.1h-1.8c-4.6,0-8.3,3.7-8.3,8.3v51.3h77.6v-51.3c0-4.6-3.7-8.3-8.3-8.3h.2Zm-45.3-10.1c0-8.1,6.6-14.7,14.7-14.7s14.7,6.6,14.7,14.7v10.1h-29.5v-10.1h.1Zm36.6,32.9l-20.7,20.2c-.2,.2-.3,.4-.5,.6l-2,2c-.2,.2-.4,.4-.6,.5l-3.8,3.8-4.5-4.3-2-2c-.2-.2-.4-.4-.5-.6l-9.1-9.1c-2.4-2.4-2.4-6.4,0-8.8l2-2c2.4-2.4,6.4-2.4,8.8,0l5.3,5.3,16.9-16.4c2.4-2.4,6.4-2.4,8.8,0l2,2c2.4,2.4,2.4,6.4,0,8.8h-.1Z"})),(0,s.createElement)("g",null,(0,s.createElement)("path",{fill:"#1d2327",d:"M125.2,192.3c-.5-2.9-.5-5.8-1-8.6-.5-2.4-2.6-4-4.8-3.9-2.3,0-4.2,1.9-4.7,4.3-.2,1,0,1.9,0,2.9,.8,14.6,7.2,26.3,18.2,35.7,2.2,1.9,4.5,3.5,6.9,4.8v-11.8c-7.4-5.8-12.9-14.1-14.6-23.3v-.1Z"}),(0,s.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M96.4,236.1c-13-15-20-32.3-19.5-52.3,.3-13.1,6.1-23.6,16.6-31.2,11.5-8.5,24.5-10.9,38.3-7.1,12.7,3.5,22,10.7,27.4,22,2.1-2.7,4.5-5.2,7.2-7.4-4-7-9.7-12.9-17-17.4-17-10.4-34.9-11.7-52.9-3.1-19,9.1-28.7,24.7-29.3,45.8,0,5.2,.5,10.2,1.4,15.2,3.4,19.4,13.4,35.2,27.2,48.9,1.1,1.1,2.5,1.6,4.1,1.4,1.8-.2,3.2-1.3,3.8-3,.6-1.8,.4-3.6-1-5.1-2.1-2.2-4.2-4.4-6.2-6.7h-.1Z"}),(0,s.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M68.1,89.4c1.1-.4,2.1-1,3.1-1.5,17.9-9.1,36.8-12.7,56.8-11.3,12.2,.8,23.9,3.8,35.1,8.7,3,1.3,5.9,2.8,8.9,4.1,2.7,1.1,5.3,0,6.4-2.4,1.1-2.3,0-5-2.3-6.3-11-5.7-22.4-10-34.6-12.3-4.2-.8-8.5-1.1-12.8-1.7h-17.1c-.3,0-.6,.2-.9,.2-11.2,.8-22,3.2-32.5,7.2-4.9,1.9-9.7,4.1-14.3,6.6-2.5,1.3-3.4,4.2-2.2,6.5,1.1,2.2,4,3.2,6.4,2.1v.1Z"}),(0,s.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M61.1,153.5c13.6-21.6,33.6-31.5,58.7-32.1h6c.8,0,1.6,.2,2.3,.3,13.4,1.7,25.5,6.6,35.9,15.4,5.8,4.9,10.5,10.3,14.1,16.2,3.1-1.2,6.4-2,9.8-2.5-4.7-8.7-11.3-16.3-19.6-22.7-19-14.6-40.5-19.5-64.1-15.1-14.3,2.7-26.9,9-37.7,18.8-10.4,9.5-17.8,20.9-21.2,34.6-2.8,11.3-2.6,22.7-.9,34.1,1.1,7,2.9,13.9,5.4,20.5,.9,2.3,3,3.7,5.2,3.5,2.1-.2,3.9-2,4.3-4.3,.2-1.1-.2-2.2-.6-3.2-4.3-11.9-6.3-24.1-5.6-36.7,.5-9.6,2.8-18.7,8-26.8h0Z"}),(0,s.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M139.8,240.6c-20.9-8.4-34.1-23.7-38.4-46.7-.8-4.3-1.4-8.7-.4-13,1.8-7.1,6.4-11.4,13.4-13.5,11.8-3.4,24.7,5.3,24.5,17.6,0,4.8,1.4,9.3,4,13.4,.3,.5,.6,.9,.9,1.3,1.6-2.4,3.7-4.6,6.1-6.2,0-.9,0-1.9,.2-2.8-.7-1.7-1.1-3.5-1.2-5.3-.3-6.1-1.6-11.9-5.5-16.8-6.8-8.8-15.9-12.4-27-11.5-11.3,.9-21.6,9.6-24.5,20.6-1.8,6.6-.9,13.3,.4,19.8,2.4,12.9,8.2,24,17.1,33.7,8.6,9.4,18.8,15.8,30.6,19.8v-10.4h-.2Z"}),(0,s.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M47.5,133.2c6.8-8.8,15-16,24.6-21.6,20.8-12,43.2-15.2,66.6-11,14.8,2.7,28.2,8.7,39.9,18.2,6.3,5,11.6,11,16.4,17.4,1.9,2.5,4.8,2.8,7,1.1,2.1-1.7,2.4-4.5,.6-7-5.9-8.2-12.8-15.3-20.9-21.3-18.3-13.6-39.1-19.6-61.7-20-6.3,0-12.5,.6-18.6,1.6-15.7,2.8-30.1,8.6-42.9,18.1-8.3,6.2-15.5,13.5-21.5,22-1.6,2.3-1.3,5.1,.7,6.7,2.1,1.7,4.9,1.5,6.8-.7,1-1.2,1.9-2.5,2.9-3.7l.1,.2Z"}))))),"file-search"===n&&(m=(0,s.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",height:i,fill:"none",viewBox:"0 0 384 512"},(0,s.createElement)("path",{d:"M374.6 150.6l-141.3-141.3C227.4 3.371 219.2 0 210.7 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.35 0 64-28.66 64-64V173.3C384 164.8 380.6 156.6 374.6 150.6zM224 22.63L361.4 160H248C234.8 160 224 149.2 224 136V22.63zM368 448c0 26.47-21.53 48-48 48H64c-26.47 0-48-21.53-48-48V64c0-26.47 21.53-48 48-48h144v120c0 22.06 17.94 40 40 40h120V448zM176 208c-53.02 0-96 42.98-96 96s42.98 96 96 96c23.62 0 44.96-8.859 61.68-23l68.66 68.66C307.9 447.2 309.9 448 312 448s4.094-.7813 5.656-2.344c3.125-3.125 3.125-8.188 0-11.31l-68.66-68.66C263.1 348.1 272 327.6 272 304C272 250.1 229 208 176 208zM176 384C131.9 384 96 348.1 96 304S131.9 224 176 224S256 259.9 256 304S220.1 384 176 384z"}))),"download"===n&&(m=(0,s.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",height:i,fill:"none",viewBox:"0 0 512 512"},(0,s.createElement)("path",{d:"M480 352h-88C387.6 352 384 355.6 384 360s3.582 8 8 8H480c8.822 0 16 7.178 16 16v96c0 8.822-7.178 16-16 16H32c-8.822 0-16-7.178-16-16v-96c0-8.822 7.178-16 16-16h88C124.4 368 128 364.4 128 360S124.4 352 120 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96C512 366.3 497.7 352 480 352zM464 432c0-17.6-14.4-32-32-32s-32 14.4-32 32c0 17.6 14.4 32 32 32S464 449.6 464 432zM416 432c0-8.822 7.178-16 16-16s16 7.178 16 16S440.8 448 432 448S416 440.8 416 432zM250.3 413.7c3.125 3.125 8.188 3.125 11.31 0l152-152C415.2 260.1 416 258.1 416 256s-.7813-4.094-2.344-5.656c-3.125-3.125-8.188-3.125-11.31 0L264 388.7V8C264 3.594 260.4 0 256 0S248 3.594 248 8v380.7L109.7 250.3c-3.125-3.125-8.188-3.125-11.31 0s-3.125 8.188 0 11.31L250.3 413.7z"}))),"satellite-dish"===n&&(m=(0,s.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",color:o[c],height:i,viewBox:"0 0 512 512"},(0,s.createElement)("path",{d:"M208 0c-8.8 0-16 7.2-16 16s7.2 16 16 16c150.2 0 272 121.8 272 272c0 8.8 7.2 16 16 16s16-7.2 16-16C512 136.1 375.9 0 208 0zm0 96c-8.8 0-16 7.2-16 16s7.2 16 16 16c97.2 0 176 78.8 176 176c0 8.8 7.2 16 16 16s16-7.2 16-16c0-114.9-93.1-208-208-208zM32 304c0-24.5 5-47.7 13.9-68.8L276.8 466.1C255.7 475 232.5 480 208 480c-97.2 0-176-78.8-176-176zm33.5-94.5c-14-14-37.3-12.1-45.7 5.8C7.1 242.2 0 272.3 0 304C0 418.9 93.1 512 208 512c31.7 0 61.8-7.1 88.7-19.8c17.9-8.4 19.8-31.8 5.8-45.7L195.3 339.3l24-24c6.3 3 13.3 4.7 20.7 4.7c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48c0 7.4 1.7 14.4 4.7 20.7l-24 24L65.5 209.5zM224 272a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"}))),"rotate-light"===n&&(m=(0,s.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",color:o[c],height:i,viewBox:"0 0 512 512"},(0,s.createElement)("path",{d:"M426.1 301.2C406.2 376.5 337.6 432 256 432c-51 0-96.9-21.7-129-56.3l41-41c5.1-5.1 8-12.1 8-19.3c0-15.1-12.2-27.3-27.3-27.3H48c-8.8 0-16 7.2-16 16V404.7C32 419.8 44.2 432 59.3 432c7.2 0 14.2-2.9 19.3-8l25.7-25.7C142.3 438.7 196.2 464 256 464c97.4 0 179.2-67 201.8-157.4c2.4-9.7-5.2-18.6-15.2-18.6c-7.8 0-14.5 5.6-16.5 13.2zM385 136.3l-41 41c-5.1 5.1-8 12.1-8 19.3c0 15.1 12.2 27.3 27.3 27.3H464c8.8 0 16-7.2 16-16V107.3C480 92.2 467.8 80 452.7 80c-7.2 0-14.2 2.9-19.3 8l-25.7 25.7C369.7 73.3 315.8 48 256 48C158.6 48 76.8 115 54.2 205.4c-2.4 9.7 5.2 18.6 15.2 18.6c7.8 0 14.5-5.6 16.5-13.2C105.8 135.5 174.4 80 256 80c51 0 96.9 21.7 129.1 56.3zM448 192H374.6L448 118.6V192zM64 320h73.4L64 393.4V320z"}))),"rotate-exclamation-light"===n&&(m=(0,s.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("defs",null,(0,s.createElement)("style",null,`\n .fa-secondary {\n opacity: 0.4;\n color: ${o[c]};\n }\n `)),(0,s.createElement)("path",{className:"fa-primary",d:"M280 152c0-13.3-10.7-24-24-24s-24 10.7-24 24V264c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM256 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"}),(0,s.createElement)("path",{className:"fa-secondary",d:"M432 117.4C391 65.4 327.4 32 256 32C158.4 32 75.5 94.4 44.8 181.3c-5.9 16.7 2.8 34.9 19.5 40.8s34.9-2.8 40.8-19.5C127.1 140.5 186.4 96 256 96c52.3 0 98.8 25.1 128 64H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h84.3c.5 0 1 0 1.5 0H464c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v37.4zm35.2 213.2c5.9-16.7-2.8-34.9-19.5-40.8s-34.9 2.8-40.8 19.5C384.9 371.5 325.6 416 256 416c-52.3 0-98.8-25.1-128-64h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32V432c0 17.7 14.3 32 32 32s32-14.3 32-32V394.6c41 52 104.6 85.4 176 85.4c97.6 0 180.5-62.4 211.2-149.3z"}))),"radar-duotone"===n&&(m=(0,s.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("defs",null,(0,s.createElement)("style",null,`\n .fa-secondary {\n color: ${o[c]} !important;\n } \n `)),(0,s.createElement)("path",{className:"fa-primary",d:"M497 49c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-182 182c-7.7-3.3-16.1-5.1-25-5.1c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64c0-8.9-1.8-17.3-5.1-25L497 49z"}),(0,s.createElement)("path",{className:"fa-secondary",d:"M350.9 127.2l-46.1 46.1c-14.3-8.4-31-13.3-48.8-13.3c-53 0-96 43-96 96s43 96 96 96s96-43 96-96h64c0 73.5-49.6 135.5-117.2 154.2C290.8 394.7 274.7 384 256 384s-34.8 10.7-42.8 26.2c-51.7-14.3-92.8-53.9-109.4-104.6c14.4-8.3 24.1-23.8 24.1-41.7c0-19.4-11.5-36.1-28-43.7C116.2 149.1 179.9 96 256 96c35.5 0 68.3 11.6 94.9 31.2zm22.8-22.8C341.2 79 300.4 64 256 64C163.1 64 85.7 129.9 67.9 217.6C47.2 222.9 32 241.7 32 264c0 23.8 17.3 43.6 40.1 47.4c19.3 64.3 71.5 114.4 137 130.9C213.8 463.8 233 480 256 480s42.2-16.2 46.9-37.8C386.3 421.3 448 345.9 448 256h64c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0c62.1 0 118.9 22.1 163.3 58.8l-45.5 45.5z"}))),"satellite-dish-duotone"===n&&(m=(0,s.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,s.createElement)("defs",null,(0,s.createElement)("style",null,`\n .fa-secondary {\n color: ${o[c]} !important;\n } \n `)),(0,s.createElement)("path",{className:"fa-primary",d:"M60.6 220.6c-14.5-14.5-38.8-11.8-46.3 7.3C5.1 251.5 0 277.1 0 304C0 418.9 93.1 512 208 512c26.9 0 52.5-5.1 76.1-14.4c19-7.5 21.8-31.8 7.3-46.3L187.3 347.3l28.4-28.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3l-28.4 28.4L60.6 220.6z"}),(0,s.createElement)("path",{className:"fa-secondary",d:"M224 0c-17.7 0-32 14.3-32 32s14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0zm0 96c-17.7 0-32 14.3-32 32s14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192z"}))),"spinner"===n&&(m=(0,s.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",width:"20",height:"20"},(0,s.createElement)("defs",null,(0,s.createElement)("style",null,"\n .fa-secondary {\n opacity: 0.4;\n }\n ")),(0,s.createElement)("path",{className:"fa-primary",d:"M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 256A48 48 0 1 0 0 256a48 48 0 1 0 96 0zM75 142.9A48 48 0 1 0 142.9 75 48 48 0 1 0 75 142.9z"}),(0,s.createElement)("path",{className:"fa-secondary",d:"M369.1 75A48 48 0 1 1 437 142.9 48 48 0 1 1 369.1 75zM416 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM208 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM75 369.1A48 48 0 1 1 142.9 437 48 48 0 1 1 75 369.1zm294.2 0A48 48 0 1 1 437 437a48 48 0 1 1 -67.9-67.9z"}))),(0,s.createElement)("div",{...e,ref:t},m)})),n=({name:e,color:t,size:l,tooltip:n})=>{const c=e||"bullet",i=t||"black";let o=l||15,m=n?"tooltip-":"",d=Math.floor(1e9*Math.random());return n?(0,s.createElement)("div",{className:"rsssl-"+m+"icon rsssl-icon-"+c+" rsssl-"+i},(0,s.createElement)(r,{"data-for":".rsssl-"+d,name:c,color:i,size:o,id:d,className:"rsssl-"+d,"data-tooltip-delay-hide":200}),(0,s.createElement)(a.m_,{style:{zIndex:99},id:d,place:"bottom",anchorSelect:".rsssl-"+d,content:n})):(0,s.createElement)("div",{className:"rsssl-"+m+"icon rsssl-icon-"+c+" rsssl-"+i},(0,s.createElement)(r,{name:c,color:i,size:o}))}}}]);PK�������!�xVB��B����settings/build/124.cssnu�[��������.rsssl input.MuiInput-underline:before,.rsssl-modal-body input.MuiInput-underline:before{display:none}.rsssl .MuiAutocomplete-root .MuiInputLabel-outlined[data-shrink=false],.rsssl-modal-body .MuiAutocomplete-root .MuiInputLabel-outlined[data-shrink=false]{transform:translate(14px,16px) scale(1)}.rsssl .MuiAutocomplete-root .MuiFormLabel-root,.rsssl-modal-body .MuiAutocomplete-root .MuiFormLabel-root{font-family:inherit}.rsssl .MuiAutocomplete-root .MuiOutlinedInput-root,.rsssl-modal-body .MuiAutocomplete-root .MuiOutlinedInput-root{padding:0}.rsssl input.MuiAutocomplete-input[type=text],.rsssl-modal-body input.MuiAutocomplete-input[type=text]{border:0;padding-left:12px}.rsssl input.MuiAutocomplete-input[type=text]:focus,.rsssl-modal-body input.MuiAutocomplete-input[type=text]:focus{box-shadow:none;outline:none}.rsssl .MuiInputBase-root,.rsssl-modal-body .MuiInputBase-root{font-family:inherit}.rsssl .MuiInput-root input.MuiInputBase-input,.rsssl-modal-body .MuiInput-root input.MuiInputBase-input{padding-left:10px}.rsssl .MuiPaper-root,.rsssl .MuiPopper-root,.rsssl-modal-body .MuiPaper-root,.rsssl-modal-body .MuiPopper-root{max-height:40vh}.rsssl .MuiPaper-root div,.rsssl .MuiPopper-root div,.rsssl-modal-body .MuiPaper-root div,.rsssl-modal-body .MuiPopper-root div{font-family:inherit!important}.rsssl .MuiPaper-root ul,.rsssl .MuiPopper-root ul,.rsssl-modal-body .MuiPaper-root ul,.rsssl-modal-body .MuiPopper-root ul{max-height:none} .rsssl-modal-premium-container{background-color:var(--rsp-dark-blue);color:#fff;margin-right:22px;padding:0 5px} .rsssl-le-activate_ssl .rsssl-modal-checkbox-container,.rsssl-modal-body .rsssl-modal-checkbox-container{cursor:pointer;display:block;font-size:12px;margin-bottom:5px;margin-right:35px;overflow:unset!important;padding-left:10px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container:hover input~.rsssl-checkmark,.rsssl-modal-body .rsssl-modal-checkbox-container:hover input~.rsssl-checkmark{background-color:var(--rsp-grey-400);border:1px solid var(--rsp-grey-400);border-radius:3px}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container input:checked~.rsssl-checkmark,.rsssl-modal-body .rsssl-modal-checkbox-container input:checked~.rsssl-checkmark{background-color:var(--rsp-dark-blue);border:1px solid var(--rsp-dark-blue)}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container input:disabled~.rsssl-checkmark,.rsssl-modal-body .rsssl-modal-checkbox-container input:disabled~.rsssl-checkmark{background-color:var(--rsp-grey-400);border:1px solid var(--rsp-grey-400)}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container input:checked~.rsssl-checkmark:after,.rsssl-modal-body .rsssl-modal-checkbox-container input:checked~.rsssl-checkmark:after{display:block}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container .rsssl-checkmark:after,.rsssl-modal-body .rsssl-modal-checkbox-container .rsssl-checkmark:after{border:solid #fff;border-width:0 2px 2px 0;height:7px;left:6px;top:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);width:5px}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container input,.rsssl-modal-body .rsssl-modal-checkbox-container input{cursor:pointer;height:0;opacity:0;position:absolute;width:0}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container .rsssl-checkmark,.rsssl-modal-body .rsssl-modal-checkbox-container .rsssl-checkmark{aspect-ratio:1;background-color:var(--rsp-grey-300);border:1px solid var(--rsp-grey-400);height:var(--rsp-fs-600);left:0;position:absolute;top:0}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container .rsssl-checkmark:after,.rsssl-modal-body .rsssl-modal-checkbox-container .rsssl-checkmark:after{content:"";display:none;position:absolute} .rsssl-letsencrypt .rsssl-le-activate_ssl .rsssl-override-detection-toggle,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body .rsssl-override-detection-toggle{margin-bottom:-15px}.rsssl-letsencrypt .rsssl-le-activate_ssl input[type=email],.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body input[type=email]{border:2px solid;border-color:var(--rsp-grey-300);height:50px;margin-bottom:var(--rsp-spacing-m);width:100%}.rsssl-letsencrypt .rsssl-le-activate_ssl .rsssl-select label,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body .rsssl-select label{display:none}.rsssl-letsencrypt .rsssl-le-activate_ssl .rsssl-select .components-select-control__input,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body .rsssl-select .components-select-control__input{color:var(--rsp-grey-500);height:45px;padding:8px 20px}.rsssl-letsencrypt .rsssl-le-activate_ssl .rsssl-activate_ssl ul,.rsssl-letsencrypt .rsssl-le-activate_ssl .rsssl-plugins ul,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body .rsssl-activate_ssl ul,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body .rsssl-plugins ul{-moz-column-count:1;column-count:1}.rsssl-letsencrypt .rsssl-le-activate_ssl ul li,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body ul li{align-items:flex-start;display:flex;margin-bottom:var(--rsp-spacing-xxs)}.rsssl-letsencrypt .rsssl-le-activate_ssl ul li.rsssl-is-plugin,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body ul li.rsssl-is-plugin{background-color:var(--rsp-grey-100);border:none;margin:10px 0;padding:5px 0;position:relative}.rsssl-letsencrypt .rsssl-le-activate_ssl ul li .rsssl-icon,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body ul li .rsssl-icon{margin-right:7px} .rsssl-vulnerabilities_overview div[data-column-id="4"].rdt_TableCol{display:block}.rsssl-vulnerabilities_overview .rdt_TableCell:last-child{flex:auto;margin-right:0;padding-right:20px} div[class$=MenuPortal]{z-index:20} PK�������!�fS��*��settings/build/307.38249a2a2ddf98a57875.jsnu�[��������(globalThis.webpackChunkreally_simple_ssl=globalThis.webpackChunkreally_simple_ssl||[]).push([[307],{3757:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(1609),r=n(5713);function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a,s=function(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}(o),l=i(o),c=i(r);function u(e,t){return e[t]}function d(e=[],t,n=0){return[...e.slice(0,n),t,...e.slice(n)]}function p(e=[],t,n="id"){const o=e.slice(),r=u(t,n);return r?o.splice(o.findIndex((e=>u(e,n)===r)),1):o.splice(o.findIndex((e=>e===t)),1),o}function f(e){return e.map(((e,t)=>{const n=Object.assign(Object.assign({},e),{sortable:e.sortable||!!e.sortFunction||void 0});return e.id||(n.id=t+1),n}))}function g(e,t){return Math.ceil(e/t)}function h(e,t){return Math.min(e,t)}!function(e){e.ASC="asc",e.DESC="desc"}(a||(a={}));const m=()=>null;function b(e,t=[],n=[]){let o={},r=[...n];return t.length&&t.forEach((t=>{if(!t.when||"function"!=typeof t.when)throw new Error('"when" must be defined in the conditional style object and must be function');t.when(e)&&(o=t.style||{},t.classNames&&(r=[...r,...t.classNames]),"function"==typeof t.style&&(o=t.style(e)||{}))})),{conditionalStyle:o,classNames:r.join(" ")}}function v(e,t=[],n="id"){const o=u(e,n);return o?t.some((e=>u(e,n)===o)):t.some((t=>t===e))}function w(e,t){return t?e.findIndex((e=>y(e.id,t))):-1}function y(e,t){return e==t}function C(e,t){const n=!e.toggleOnSelectedRowsChange;switch(t.type){case"SELECT_ALL_ROWS":{const{keyField:n,rows:o,rowCount:r,mergeSelections:i}=t,a=!e.allSelected,s=!e.toggleOnSelectedRowsChange;if(i){const t=a?[...e.selectedRows,...o.filter((t=>!v(t,e.selectedRows,n)))]:e.selectedRows.filter((e=>!v(e,o,n)));return Object.assign(Object.assign({},e),{allSelected:a,selectedCount:t.length,selectedRows:t,toggleOnSelectedRowsChange:s})}return Object.assign(Object.assign({},e),{allSelected:a,selectedCount:a?r:0,selectedRows:a?o:[],toggleOnSelectedRowsChange:s})}case"SELECT_SINGLE_ROW":{const{keyField:o,row:r,isSelected:i,rowCount:a,singleSelect:s}=t;return s?i?Object.assign(Object.assign({},e),{selectedCount:0,allSelected:!1,selectedRows:[],toggleOnSelectedRowsChange:n}):Object.assign(Object.assign({},e),{selectedCount:1,allSelected:!1,selectedRows:[r],toggleOnSelectedRowsChange:n}):i?Object.assign(Object.assign({},e),{selectedCount:e.selectedRows.length>0?e.selectedRows.length-1:0,allSelected:!1,selectedRows:p(e.selectedRows,r,o),toggleOnSelectedRowsChange:n}):Object.assign(Object.assign({},e),{selectedCount:e.selectedRows.length+1,allSelected:e.selectedRows.length+1===a,selectedRows:d(e.selectedRows,r),toggleOnSelectedRowsChange:n})}case"SELECT_MULTIPLE_ROWS":{const{keyField:o,selectedRows:r,totalRows:i,mergeSelections:a}=t;if(a){const t=[...e.selectedRows,...r.filter((t=>!v(t,e.selectedRows,o)))];return Object.assign(Object.assign({},e),{selectedCount:t.length,allSelected:!1,selectedRows:t,toggleOnSelectedRowsChange:n})}return Object.assign(Object.assign({},e),{selectedCount:r.length,allSelected:r.length===i,selectedRows:r,toggleOnSelectedRowsChange:n})}case"CLEAR_SELECTED_ROWS":{const{selectedRowsFlag:n}=t;return Object.assign(Object.assign({},e),{allSelected:!1,selectedCount:0,selectedRows:[],selectedRowsFlag:n})}case"SORT_CHANGE":{const{sortDirection:o,selectedColumn:r,clearSelectedOnSort:i}=t;return Object.assign(Object.assign(Object.assign({},e),{selectedColumn:r,sortDirection:o,currentPage:1}),i&&{allSelected:!1,selectedCount:0,selectedRows:[],toggleOnSelectedRowsChange:n})}case"CHANGE_PAGE":{const{page:o,paginationServer:r,visibleOnly:i,persistSelectedOnPageChange:a}=t,s=r&&a,l=r&&!a||i;return Object.assign(Object.assign(Object.assign(Object.assign({},e),{currentPage:o}),s&&{allSelected:!1}),l&&{allSelected:!1,selectedCount:0,selectedRows:[],toggleOnSelectedRowsChange:n})}case"CHANGE_ROWS_PER_PAGE":{const{rowsPerPage:n,page:o}=t;return Object.assign(Object.assign({},e),{currentPage:o,rowsPerPage:n})}}}const x=r.css` pointer-events: none; opacity: 0.4; `,S=c.default.div` position: relative; box-sizing: border-box; display: flex; flex-direction: column; width: 100%; height: 100%; max-width: 100%; ${({disabled:e})=>e&&x}; ${({theme:e})=>e.table.style}; `,O=r.css` position: sticky; position: -webkit-sticky; /* Safari */ top: 0; z-index: 1; `,R=c.default.div` display: flex; width: 100%; ${({$fixedHeader:e})=>e&&O}; ${({theme:e})=>e.head.style}; `,E=c.default.div` display: flex; align-items: stretch; width: 100%; ${({theme:e})=>e.headRow.style}; ${({$dense:e,theme:t})=>e&&t.headRow.denseStyle}; `,k=(e,...t)=>r.css` @media screen and (max-width: ${599}px) { ${r.css(e,...t)} } `,P=(e,...t)=>r.css` @media screen and (max-width: ${959}px) { ${r.css(e,...t)} } `,A=(e,...t)=>r.css` @media screen and (max-width: ${1280}px) { ${r.css(e,...t)} } `,I=c.default.div` position: relative; display: flex; align-items: center; box-sizing: border-box; line-height: normal; ${({theme:e,$headCell:t})=>e[t?"headCells":"cells"].style}; ${({$noPadding:e})=>e&&"padding: 0"}; `,D=c.default(I)` flex-grow: ${({button:e,grow:t})=>0===t||e?0:t||1}; flex-shrink: 0; flex-basis: 0; max-width: ${({maxWidth:e})=>e||"100%"}; min-width: ${({minWidth:e})=>e||"100px"}; ${({width:e})=>e&&r.css` min-width: ${e}; max-width: ${e}; `}; ${({right:e})=>e&&"justify-content: flex-end"}; ${({button:e,center:t})=>(t||e)&&"justify-content: center"}; ${({compact:e,button:t})=>(e||t)&&"padding: 0"}; /* handle hiding cells */ ${({hide:e})=>e&&"sm"===e&&k` display: none; `}; ${({hide:e})=>e&&"md"===e&&P` display: none; `}; ${({hide:e})=>e&&"lg"===e&&A` display: none; `}; ${({hide:e})=>e&&Number.isInteger(e)&&(e=>(t,...n)=>r.css` @media screen and (max-width: ${e}px) { ${r.css(t,...n)} } `)(e)` display: none; `}; `,M=r.css` div:first-child { white-space: ${({$wrapCell:e})=>e?"normal":"nowrap"}; overflow: ${({$allowOverflow:e})=>e?"visible":"hidden"}; text-overflow: ellipsis; } `,F=c.default(D).attrs((e=>({style:e.style})))` ${({$renderAsCell:e})=>!e&&M}; ${({theme:e,$isDragging:t})=>t&&e.cells.draggingStyle}; ${({$cellStyle:e})=>e}; `;var T=s.memo((function({id:e,column:t,row:n,rowIndex:o,dataTag:r,isDragging:i,onDragStart:a,onDragOver:l,onDragEnd:c,onDragEnter:u,onDragLeave:d}){const{conditionalStyle:p,classNames:f}=b(n,t.conditionalCellStyles,["rdt_TableCell"]);return s.createElement(F,{id:e,"data-column-id":t.id,role:"cell",className:f,"data-tag":r,$cellStyle:t.style,$renderAsCell:!!t.cell,$allowOverflow:t.allowOverflow,button:t.button,center:t.center,compact:t.compact,grow:t.grow,hide:t.hide,maxWidth:t.maxWidth,minWidth:t.minWidth,right:t.right,width:t.width,$wrapCell:t.wrap,style:p,$isDragging:i,onDragStart:a,onDragOver:l,onDragEnd:c,onDragEnter:u,onDragLeave:d},!t.cell&&s.createElement("div",{"data-tag":r},function(e,t,n,o){return t?n&&"function"==typeof n?n(e,o):t(e,o):null}(n,t.selector,t.format,o)),t.cell&&t.cell(n,o,t,e))}));const L="input";var V=s.memo((function({name:e,component:t=L,componentOptions:n={style:{}},indeterminate:o=!1,checked:r=!1,disabled:i=!1,onClick:a=m}){const l=t,c=l!==L?n.style:(e=>Object.assign(Object.assign({fontSize:"18px"},!e&&{cursor:"pointer"}),{padding:0,marginTop:"1px",verticalAlign:"middle",position:"relative"}))(i),u=s.useMemo((()=>function(e,...t){let n;return Object.keys(e).map((t=>e[t])).forEach(((o,r)=>{const i=e;"function"==typeof o&&(n=Object.assign(Object.assign({},i),{[Object.keys(e)[r]]:o(...t)}))})),n||e}(n,o)),[n,o]);return s.createElement(l,Object.assign({type:"checkbox",ref:e=>{e&&(e.indeterminate=o)},style:c,onClick:i?m:a,name:e,"aria-label":e,checked:r,disabled:i},u,{onChange:m}))}));const H=c.default(I)` flex: 0 0 48px; min-width: 48px; justify-content: center; align-items: center; user-select: none; white-space: nowrap; `;function $({name:e,keyField:t,row:n,rowCount:o,selected:r,selectableRowsComponent:i,selectableRowsComponentProps:a,selectableRowsSingle:l,selectableRowDisabled:c,onSelectedRow:u}){const d=!(!c||!c(n));return s.createElement(H,{onClick:e=>e.stopPropagation(),className:"rdt_TableCell",$noPadding:!0},s.createElement(V,{name:e,component:i,componentOptions:a,checked:r,"aria-checked":r,onClick:()=>{u({type:"SELECT_SINGLE_ROW",row:n,isSelected:r,keyField:t,rowCount:o,singleSelect:l})},disabled:d}))}const j=c.default.button` display: inline-flex; align-items: center; user-select: none; white-space: nowrap; border: none; background-color: transparent; ${({theme:e})=>e.expanderButton.style}; `;function _({disabled:e=!1,expanded:t=!1,expandableIcon:n,id:o,row:r,onToggled:i}){const a=t?n.expanded:n.collapsed;return s.createElement(j,{"aria-disabled":e,onClick:()=>i&&i(r),"data-testid":`expander-button-${o}`,disabled:e,"aria-label":t?"Collapse Row":"Expand Row",role:"button",type:"button"},a)}const N=c.default(I)` white-space: nowrap; font-weight: 400; min-width: 48px; ${({theme:e})=>e.expanderCell.style}; `;function z({row:e,expanded:t=!1,expandableIcon:n,id:o,onToggled:r,disabled:i=!1}){return s.createElement(N,{onClick:e=>e.stopPropagation(),$noPadding:!0},s.createElement(_,{id:o,row:e,expanded:t,expandableIcon:n,disabled:i,onToggled:r}))}const B=c.default.div` width: 100%; box-sizing: border-box; ${({theme:e})=>e.expanderRow.style}; ${({$extendedRowStyle:e})=>e}; `;var Y=s.memo((function({data:e,ExpanderComponent:t,expanderComponentProps:n,extendedRowStyle:o,extendedClassNames:r}){const i=["rdt_ExpanderRow",...r.split(" ").filter((e=>"rdt_TableRow"!==e))].join(" ");return s.createElement(B,{className:i,$extendedRowStyle:o},s.createElement(t,Object.assign({data:e},n)))}));const W="allowRowEvents";var U,G,q;t.Direction=void 0,(U=t.Direction||(t.Direction={})).LTR="ltr",U.RTL="rtl",U.AUTO="auto",t.Alignment=void 0,(G=t.Alignment||(t.Alignment={})).LEFT="left",G.RIGHT="right",G.CENTER="center",t.Media=void 0,(q=t.Media||(t.Media={})).SM="sm",q.MD="md",q.LG="lg";const X=r.css` &:hover { ${({$highlightOnHover:e,theme:t})=>e&&t.rows.highlightOnHoverStyle}; } `,K=r.css` &:hover { cursor: pointer; } `,Z=c.default.div.attrs((e=>({style:e.style})))` display: flex; align-items: stretch; align-content: stretch; width: 100%; box-sizing: border-box; ${({theme:e})=>e.rows.style}; ${({$dense:e,theme:t})=>e&&t.rows.denseStyle}; ${({$striped:e,theme:t})=>e&&t.rows.stripedStyle}; ${({$highlightOnHover:e})=>e&&X}; ${({$pointerOnHover:e})=>e&&K}; ${({$selected:e,theme:t})=>e&&t.rows.selectedHighlightStyle}; ${({$conditionalStyle:e})=>e}; `;function J({columns:e=[],conditionalRowStyles:t=[],defaultExpanded:n=!1,defaultExpanderDisabled:o=!1,dense:r=!1,expandableIcon:i,expandableRows:a=!1,expandableRowsComponent:l,expandableRowsComponentProps:c,expandableRowsHideExpander:d,expandOnRowClicked:p=!1,expandOnRowDoubleClicked:f=!1,highlightOnHover:g=!1,id:h,expandableInheritConditionalStyles:v,keyField:w,onRowClicked:C=m,onRowDoubleClicked:x=m,onRowMouseEnter:S=m,onRowMouseLeave:O=m,onRowExpandToggled:R=m,onSelectedRow:E=m,pointerOnHover:k=!1,row:P,rowCount:A,rowIndex:I,selectableRowDisabled:D=null,selectableRows:M=!1,selectableRowsComponent:F,selectableRowsComponentProps:L,selectableRowsHighlight:V=!1,selectableRowsSingle:H=!1,selected:j,striped:_=!1,draggingColumnId:N,onDragStart:B,onDragOver:U,onDragEnd:G,onDragEnter:q,onDragLeave:X}){const[K,J]=s.useState(n);s.useEffect((()=>{J(n)}),[n]);const Q=s.useCallback((()=>{J(!K),R(!K,P)}),[K,R,P]),ee=k||a&&(p||f),te=s.useCallback((e=>{e.target.getAttribute("data-tag")===W&&(C(P,e),!o&&a&&p&&Q())}),[o,p,a,Q,C,P]),ne=s.useCallback((e=>{e.target.getAttribute("data-tag")===W&&(x(P,e),!o&&a&&f&&Q())}),[o,f,a,Q,x,P]),oe=s.useCallback((e=>{S(P,e)}),[S,P]),re=s.useCallback((e=>{O(P,e)}),[O,P]),ie=u(P,w),{conditionalStyle:ae,classNames:se}=b(P,t,["rdt_TableRow"]),le=V&&j,ce=v?ae:{},ue=_&&I%2==0;return s.createElement(s.Fragment,null,s.createElement(Z,{id:`row-${h}`,role:"row",$striped:ue,$highlightOnHover:g,$pointerOnHover:!o&&ee,$dense:r,onClick:te,onDoubleClick:ne,onMouseEnter:oe,onMouseLeave:re,className:se,$selected:le,$conditionalStyle:ae},M&&s.createElement($,{name:`select-row-${ie}`,keyField:w,row:P,rowCount:A,selected:j,selectableRowsComponent:F,selectableRowsComponentProps:L,selectableRowDisabled:D,selectableRowsSingle:H,onSelectedRow:E}),a&&!d&&s.createElement(z,{id:ie,expandableIcon:i,expanded:K,row:P,onToggled:Q,disabled:o}),e.map((e=>e.omit?null:s.createElement(T,{id:`cell-${e.id}-${ie}`,key:`cell-${e.id}-${ie}`,dataTag:e.ignoreRowClick||e.button?null:W,column:e,row:P,rowIndex:I,isDragging:y(N,e.id),onDragStart:B,onDragOver:U,onDragEnd:G,onDragEnter:q,onDragLeave:X})))),a&&K&&s.createElement(Y,{key:`expander-${ie}`,data:P,extendedRowStyle:ce,extendedClassNames:se,ExpanderComponent:l,expanderComponentProps:c}))}const Q=c.default.span` padding: 2px; color: inherit; flex-grow: 0; flex-shrink: 0; ${({$sortActive:e})=>e?"opacity: 1":"opacity: 0"}; ${({$sortDirection:e})=>"desc"===e&&"transform: rotate(180deg)"}; `,ee=({sortActive:e,sortDirection:t})=>l.default.createElement(Q,{$sortActive:e,$sortDirection:t},"▲"),te=c.default(D)` ${({button:e})=>e&&"text-align: center"}; ${({theme:e,$isDragging:t})=>t&&e.headCells.draggingStyle}; `,ne=r.css` cursor: pointer; span.__rdt_custom_sort_icon__ { i, svg { transform: 'translate3d(0, 0, 0)'; ${({$sortActive:e})=>e?"opacity: 1":"opacity: 0"}; color: inherit; font-size: 18px; height: 18px; width: 18px; backface-visibility: hidden; transform-style: preserve-3d; transition-duration: 95ms; transition-property: transform; } &.asc i, &.asc svg { transform: rotate(180deg); } } ${({$sortActive:e})=>!e&&r.css` &:hover, &:focus { opacity: 0.7; span, span.__rdt_custom_sort_icon__ * { opacity: 0.7; } } `}; `,oe=c.default.div` display: inline-flex; align-items: center; justify-content: inherit; height: 100%; width: 100%; outline: none; user-select: none; overflow: hidden; ${({disabled:e})=>!e&&ne}; `,re=c.default.div` overflow: hidden; white-space: nowrap; text-overflow: ellipsis; `;var ie=s.memo((function({column:e,disabled:t,draggingColumnId:n,selectedColumn:o={},sortDirection:r,sortIcon:i,sortServer:l,pagination:c,paginationServer:u,persistSelectedOnSort:d,selectableRowsVisibleOnly:p,onSort:f,onDragStart:g,onDragOver:h,onDragEnd:m,onDragEnter:b,onDragLeave:v}){s.useEffect((()=>{"string"==typeof e.selector&&console.error(`Warning: ${e.selector} is a string based column selector which has been deprecated as of v7 and will be removed in v8. Instead, use a selector function e.g. row => row[field]...`)}),[]);const[w,C]=s.useState(!1),x=s.useRef(null);if(s.useEffect((()=>{x.current&&C(x.current.scrollWidth>x.current.clientWidth)}),[w]),e.omit)return null;const S=()=>{if(!e.sortable&&!e.selector)return;let t=r;y(o.id,e.id)&&(t=r===a.ASC?a.DESC:a.ASC),f({type:"SORT_CHANGE",sortDirection:t,selectedColumn:e,clearSelectedOnSort:c&&u&&!d||l||p})},O=e=>s.createElement(ee,{sortActive:e,sortDirection:r}),R=()=>s.createElement("span",{className:[r,"__rdt_custom_sort_icon__"].join(" ")},i),E=!(!e.sortable||!y(o.id,e.id)),k=!e.sortable||t,P=e.sortable&&!i&&!e.right,A=e.sortable&&!i&&e.right,I=e.sortable&&i&&!e.right,D=e.sortable&&i&&e.right;return s.createElement(te,{"data-column-id":e.id,className:"rdt_TableCol",$headCell:!0,allowOverflow:e.allowOverflow,button:e.button,compact:e.compact,grow:e.grow,hide:e.hide,maxWidth:e.maxWidth,minWidth:e.minWidth,right:e.right,center:e.center,width:e.width,draggable:e.reorder,$isDragging:y(e.id,n),onDragStart:g,onDragOver:h,onDragEnd:m,onDragEnter:b,onDragLeave:v},e.name&&s.createElement(oe,{"data-column-id":e.id,"data-sort-id":e.id,role:"columnheader",tabIndex:0,className:"rdt_TableCol_Sortable",onClick:k?void 0:S,onKeyPress:k?void 0:e=>{"Enter"===e.key&&S()},$sortActive:!k&&E,disabled:k},!k&&D&&R(),!k&&A&&O(E),"string"==typeof e.name?s.createElement(re,{title:w?e.name:void 0,ref:x,"data-column-id":e.id},e.name):e.name,!k&&I&&R(),!k&&P&&O(E)))}));const ae=c.default(I)` flex: 0 0 48px; justify-content: center; align-items: center; user-select: none; white-space: nowrap; font-size: unset; `;function se({headCell:e=!0,rowData:t,keyField:n,allSelected:o,mergeSelections:r,selectedRows:i,selectableRowsComponent:a,selectableRowsComponentProps:l,selectableRowDisabled:c,onSelectAllRows:u}){const d=i.length>0&&!o,p=c?t.filter((e=>!c(e))):t,f=0===p.length,g=Math.min(t.length,p.length);return s.createElement(ae,{className:"rdt_TableCol",$headCell:e,$noPadding:!0},s.createElement(V,{name:"select-all-rows",component:a,componentOptions:l,onClick:()=>{u({type:"SELECT_ALL_ROWS",rows:p,rowCount:g,mergeSelections:r,keyField:n})},checked:o,indeterminate:d,disabled:f}))}function le(e=t.Direction.AUTO){const n="object"==typeof window,[o,r]=s.useState(!1);return s.useEffect((()=>{if(n)if("auto"!==e)r("rtl"===e);else{const e=!(!window.document||!window.document.createElement),t=document.getElementsByTagName("BODY")[0],n=document.getElementsByTagName("HTML")[0],o="rtl"===t.dir||"rtl"===n.dir;r(e&&o)}}),[e,n]),o}const ce=c.default.div` display: flex; align-items: center; flex: 1 0 auto; height: 100%; color: ${({theme:e})=>e.contextMenu.fontColor}; font-size: ${({theme:e})=>e.contextMenu.fontSize}; font-weight: 400; `,ue=c.default.div` display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; `,de=c.default.div` position: absolute; top: 0; left: 0; width: 100%; height: 100%; box-sizing: inherit; z-index: 1; align-items: center; justify-content: space-between; display: flex; ${({$rtl:e})=>e&&"direction: rtl"}; ${({theme:e})=>e.contextMenu.style}; ${({theme:e,$visible:t})=>t&&e.contextMenu.activeStyle}; `;function pe({contextMessage:e,contextActions:t,contextComponent:n,selectedCount:o,direction:r}){const i=le(r),a=o>0;return n?s.createElement(de,{$visible:a},s.cloneElement(n,{selectedCount:o})):s.createElement(de,{$visible:a,$rtl:i},s.createElement(ce,null,((e,t,n)=>{if(0===t)return null;const o=1===t?e.singular:e.plural;return n?`${t} ${e.message||""} ${o}`:`${t} ${o} ${e.message||""}`})(e,o,i)),s.createElement(ue,null,t))}const fe=c.default.div` position: relative; box-sizing: border-box; overflow: hidden; display: flex; flex: 1 1 auto; align-items: center; justify-content: space-between; width: 100%; flex-wrap: wrap; ${({theme:e})=>e.header.style} `,ge=c.default.div` flex: 1 0 auto; color: ${({theme:e})=>e.header.fontColor}; font-size: ${({theme:e})=>e.header.fontSize}; font-weight: 400; `,he=c.default.div` flex: 1 0 auto; display: flex; align-items: center; justify-content: flex-end; > * { margin-left: 5px; } `,me=({title:e,actions:t=null,contextMessage:n,contextActions:o,contextComponent:r,selectedCount:i,direction:a,showMenu:l=!0})=>s.createElement(fe,{className:"rdt_TableHeader",role:"heading","aria-level":1},s.createElement(ge,null,e),t&&s.createElement(he,null,t),l&&s.createElement(pe,{contextMessage:n,contextActions:o,contextComponent:r,direction:a,selectedCount:i}));function be(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}"function"==typeof SuppressedError&&SuppressedError;const ve={left:"flex-start",right:"flex-end",center:"center"},we=c.default.header` position: relative; display: flex; flex: 1 1 auto; box-sizing: border-box; align-items: center; padding: 4px 16px 4px 24px; width: 100%; justify-content: ${({align:e})=>ve[e]}; flex-wrap: ${({$wrapContent:e})=>e?"wrap":"nowrap"}; ${({theme:e})=>e.subHeader.style} `,ye=e=>{var{align:t="right",wrapContent:n=!0}=e,o=be(e,["align","wrapContent"]);return s.createElement(we,Object.assign({align:t,$wrapContent:n},o))},Ce=c.default.div` display: flex; flex-direction: column; `,xe=c.default.div` position: relative; width: 100%; border-radius: inherit; ${({$responsive:e,$fixedHeader:t})=>e&&r.css` overflow-x: auto; // hidden prevents vertical scrolling in firefox when fixedHeader is disabled overflow-y: ${t?"auto":"hidden"}; min-height: 0; `}; ${({$fixedHeader:e=!1,$fixedHeaderScrollHeight:t="100vh"})=>e&&r.css` max-height: ${t}; -webkit-overflow-scrolling: touch; `}; ${({theme:e})=>e.responsiveWrapper.style}; `,Se=c.default.div` position: relative; box-sizing: border-box; width: 100%; height: 100%; ${e=>e.theme.progress.style}; `,Oe=c.default.div` position: relative; width: 100%; ${({theme:e})=>e.tableWrapper.style}; `,Re=c.default(I)` white-space: nowrap; ${({theme:e})=>e.expanderCell.style}; `,Ee=c.default.div` box-sizing: border-box; width: 100%; height: 100%; ${({theme:e})=>e.noData.style}; `,ke=()=>l.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},l.default.createElement("path",{d:"M7 10l5 5 5-5z"}),l.default.createElement("path",{d:"M0 0h24v24H0z",fill:"none"})),Pe=c.default.select` cursor: pointer; height: 24px; max-width: 100%; user-select: none; padding-left: 8px; padding-right: 24px; box-sizing: content-box; font-size: inherit; color: inherit; border: none; background-color: transparent; appearance: none; direction: ltr; flex-shrink: 0; &::-ms-expand { display: none; } &:disabled::-ms-expand { background: #f60; } option { color: initial; } `,Ae=c.default.div` position: relative; flex-shrink: 0; font-size: inherit; color: inherit; margin-top: 1px; svg { top: 0; right: 0; color: inherit; position: absolute; fill: currentColor; width: 24px; height: 24px; display: inline-block; user-select: none; pointer-events: none; } `,Ie=e=>{var{defaultValue:t,onChange:n}=e,o=be(e,["defaultValue","onChange"]);return s.createElement(Ae,null,s.createElement(Pe,Object.assign({onChange:n,defaultValue:t},o)),s.createElement(ke,null))},De={columns:[],data:[],title:"",keyField:"id",selectableRows:!1,selectableRowsHighlight:!1,selectableRowsNoSelectAll:!1,selectableRowSelected:null,selectableRowDisabled:null,selectableRowsComponent:"input",selectableRowsComponentProps:{},selectableRowsVisibleOnly:!1,selectableRowsSingle:!1,clearSelectedRows:!1,expandableRows:!1,expandableRowDisabled:null,expandableRowExpanded:null,expandOnRowClicked:!1,expandableRowsHideExpander:!1,expandOnRowDoubleClicked:!1,expandableInheritConditionalStyles:!1,expandableRowsComponent:function(){return l.default.createElement("div",null,"To add an expander pass in a component instance via ",l.default.createElement("strong",null,"expandableRowsComponent"),". You can then access props.data from this component.")},expandableIcon:{collapsed:l.default.createElement((()=>l.default.createElement("svg",{fill:"currentColor",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},l.default.createElement("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),l.default.createElement("path",{d:"M0-.25h24v24H0z",fill:"none"}))),null),expanded:l.default.createElement((()=>l.default.createElement("svg",{fill:"currentColor",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},l.default.createElement("path",{d:"M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z"}),l.default.createElement("path",{d:"M0-.75h24v24H0z",fill:"none"}))),null)},expandableRowsComponentProps:{},progressPending:!1,progressComponent:l.default.createElement("div",{style:{fontSize:"24px",fontWeight:700,padding:"24px"}},"Loading..."),persistTableHead:!1,sortIcon:null,sortFunction:null,sortServer:!1,striped:!1,highlightOnHover:!1,pointerOnHover:!1,noContextMenu:!1,contextMessage:{singular:"item",plural:"items",message:"selected"},actions:null,contextActions:null,contextComponent:null,defaultSortFieldId:null,defaultSortAsc:!0,responsive:!0,noDataComponent:l.default.createElement("div",{style:{padding:"24px"}},"There are no records to display"),disabled:!1,noTableHead:!1,noHeader:!1,subHeader:!1,subHeaderAlign:t.Alignment.RIGHT,subHeaderWrap:!0,subHeaderComponent:null,fixedHeader:!1,fixedHeaderScrollHeight:"100vh",pagination:!1,paginationServer:!1,paginationServerOptions:{persistSelectedOnSort:!1,persistSelectedOnPageChange:!1},paginationDefaultPage:1,paginationResetDefaultPage:!1,paginationTotalRows:0,paginationPerPage:10,paginationRowsPerPageOptions:[10,15,20,25,30],paginationComponent:null,paginationComponentOptions:{},paginationIconFirstPage:l.default.createElement((()=>l.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","aria-hidden":"true",role:"presentation"},l.default.createElement("path",{d:"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),l.default.createElement("path",{fill:"none",d:"M24 24H0V0h24v24z"}))),null),paginationIconLastPage:l.default.createElement((()=>l.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","aria-hidden":"true",role:"presentation"},l.default.createElement("path",{d:"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),l.default.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}))),null),paginationIconNext:l.default.createElement((()=>l.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","aria-hidden":"true",role:"presentation"},l.default.createElement("path",{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),l.default.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}))),null),paginationIconPrevious:l.default.createElement((()=>l.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","aria-hidden":"true",role:"presentation"},l.default.createElement("path",{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"}),l.default.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}))),null),dense:!1,conditionalRowStyles:[],theme:"default",customStyles:{},direction:t.Direction.AUTO,onChangePage:m,onChangeRowsPerPage:m,onRowClicked:m,onRowDoubleClicked:m,onRowMouseEnter:m,onRowMouseLeave:m,onRowExpandToggled:m,onSelectedRowsChange:m,onSort:m,onColumnOrderChange:m},Me={rowsPerPageText:"Rows per page:",rangeSeparatorText:"of",noRowsPerPage:!1,selectAllRowsItem:!1,selectAllRowsItemText:"All"},Fe=c.default.nav` display: flex; flex: 1 1 auto; justify-content: flex-end; align-items: center; box-sizing: border-box; padding-right: 8px; padding-left: 8px; width: 100%; ${({theme:e})=>e.pagination.style}; `,Te=c.default.button` position: relative; display: block; user-select: none; border: none; ${({theme:e})=>e.pagination.pageButtonsStyle}; ${({$isRTL:e})=>e&&"transform: scale(-1, -1)"}; `,Le=c.default.div` display: flex; align-items: center; border-radius: 4px; white-space: nowrap; ${k` width: 100%; justify-content: space-around; `}; `,Ve=c.default.span` flex-shrink: 1; user-select: none; `,He=c.default(Ve)` margin: 0 24px; `,$e=c.default(Ve)` margin: 0 4px; `;var je=s.memo((function({rowsPerPage:e,rowCount:t,currentPage:n,direction:o=De.direction,paginationRowsPerPageOptions:r=De.paginationRowsPerPageOptions,paginationIconLastPage:i=De.paginationIconLastPage,paginationIconFirstPage:a=De.paginationIconFirstPage,paginationIconNext:l=De.paginationIconNext,paginationIconPrevious:c=De.paginationIconPrevious,paginationComponentOptions:u=De.paginationComponentOptions,onChangeRowsPerPage:d=De.onChangeRowsPerPage,onChangePage:p=De.onChangePage}){const f=(()=>{const e="object"==typeof window;function t(){return{width:e?window.innerWidth:void 0,height:e?window.innerHeight:void 0}}const[n,o]=s.useState(t);return s.useEffect((()=>{if(!e)return()=>null;function n(){o(t())}return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)}),[]),n})(),h=le(o),m=f.width&&f.width>599,b=g(t,e),v=n*e,w=v-e+1,y=1===n,C=n===b,x=Object.assign(Object.assign({},Me),u),S=n===b?`${w}-${t} ${x.rangeSeparatorText} ${t}`:`${w}-${v} ${x.rangeSeparatorText} ${t}`,O=s.useCallback((()=>p(n-1)),[n,p]),R=s.useCallback((()=>p(n+1)),[n,p]),E=s.useCallback((()=>p(1)),[p]),k=s.useCallback((()=>p(g(t,e))),[p,t,e]),P=s.useCallback((e=>d(Number(e.target.value),n)),[n,d]),A=r.map((e=>s.createElement("option",{key:e,value:e},e)));x.selectAllRowsItem&&A.push(s.createElement("option",{key:-1,value:t},x.selectAllRowsItemText));const I=s.createElement(Ie,{onChange:P,defaultValue:e,"aria-label":x.rowsPerPageText},A);return s.createElement(Fe,{className:"rdt_Pagination"},!x.noRowsPerPage&&m&&s.createElement(s.Fragment,null,s.createElement($e,null,x.rowsPerPageText),I),m&&s.createElement(He,null,S),s.createElement(Le,null,s.createElement(Te,{id:"pagination-first-page",type:"button","aria-label":"First Page","aria-disabled":y,onClick:E,disabled:y,$isRTL:h},a),s.createElement(Te,{id:"pagination-previous-page",type:"button","aria-label":"Previous Page","aria-disabled":y,onClick:O,disabled:y,$isRTL:h},c),!x.noRowsPerPage&&!m&&I,s.createElement(Te,{id:"pagination-next-page",type:"button","aria-label":"Next Page","aria-disabled":C,onClick:R,disabled:C,$isRTL:h},l),s.createElement(Te,{id:"pagination-last-page",type:"button","aria-label":"Last Page","aria-disabled":C,onClick:k,disabled:C,$isRTL:h},i)))}));const _e=(e,t)=>{const n=s.useRef(!0);s.useEffect((()=>{n.current?n.current=!1:e()}),t)};var Ne=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===ze}(e)}(e)},ze="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function Be(e,t){return!1!==t.clone&&t.isMergeableObject(e)?Ge((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function Ye(e,t,n){return e.concat(t).map((function(e){return Be(e,n)}))}function We(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function Ue(e,t){try{return t in e}catch(e){return!1}}function Ge(e,t,n){(n=n||{}).arrayMerge=n.arrayMerge||Ye,n.isMergeableObject=n.isMergeableObject||Ne,n.cloneUnlessOtherwiseSpecified=Be;var o=Array.isArray(t);return o===Array.isArray(e)?o?n.arrayMerge(e,t,n):function(e,t,n){var o={};return n.isMergeableObject(e)&&We(e).forEach((function(t){o[t]=Be(e[t],n)})),We(t).forEach((function(r){(function(e,t){return Ue(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,r)||(Ue(e,r)&&n.isMergeableObject(t[r])?o[r]=function(e,t){if(!t.customMerge)return Ge;var n=t.customMerge(e);return"function"==typeof n?n:Ge}(r,n)(e[r],t[r],n):o[r]=Be(t[r],n))})),o}(e,t,n):Be(t,n)}Ge.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,n){return Ge(e,n,t)}),{})};var qe=function(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}(Ge);const Xe={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)"},background:{default:"#FFFFFF"},context:{background:"#e3f2fd",text:"rgba(0, 0, 0, 0.87)"},divider:{default:"rgba(0,0,0,.12)"},button:{default:"rgba(0,0,0,.54)",focus:"rgba(0,0,0,.12)",hover:"rgba(0,0,0,.12)",disabled:"rgba(0, 0, 0, .18)"},selected:{default:"#e3f2fd",text:"rgba(0, 0, 0, 0.87)"},highlightOnHover:{default:"#EEEEEE",text:"rgba(0, 0, 0, 0.87)"},striped:{default:"#FAFAFA",text:"rgba(0, 0, 0, 0.87)"}},Ke={default:Xe,light:Xe,dark:{text:{primary:"#FFFFFF",secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(0,0,0,.12)"},background:{default:"#424242"},context:{background:"#E91E63",text:"#FFFFFF"},divider:{default:"rgba(81, 81, 81, 1)"},button:{default:"#FFFFFF",focus:"rgba(255, 255, 255, .54)",hover:"rgba(255, 255, 255, .12)",disabled:"rgba(255, 255, 255, .18)"},selected:{default:"rgba(0, 0, 0, .7)",text:"#FFFFFF"},highlightOnHover:{default:"rgba(0, 0, 0, .7)",text:"#FFFFFF"},striped:{default:"rgba(0, 0, 0, .87)",text:"#FFFFFF"}}};function Ze(e,t,n,o){const[r,i]=s.useState((()=>f(e))),[l,c]=s.useState(""),u=s.useRef("");_e((()=>{i(f(e))}),[e]);const d=s.useCallback((e=>{var t,n,o;const{attributes:i}=e.target,a=null===(t=i.getNamedItem("data-column-id"))||void 0===t?void 0:t.value;a&&(u.current=(null===(o=null===(n=r[w(r,a)])||void 0===n?void 0:n.id)||void 0===o?void 0:o.toString())||"",c(u.current))}),[r]),p=s.useCallback((e=>{var n;const{attributes:o}=e.target,a=null===(n=o.getNamedItem("data-column-id"))||void 0===n?void 0:n.value;if(a&&u.current&&a!==u.current){const e=w(r,u.current),n=w(r,a),o=[...r];o[e]=r[n],o[n]=r[e],i(o),t(o)}}),[t,r]),g=s.useCallback((e=>{e.preventDefault()}),[]),h=s.useCallback((e=>{e.preventDefault()}),[]),m=s.useCallback((e=>{e.preventDefault(),u.current="",c("")}),[]),b=function(e=!1){return e?a.ASC:a.DESC}(o),v=s.useMemo((()=>r[w(r,null==n?void 0:n.toString())]||{}),[n,r]);return{tableColumns:r,draggingColumnId:l,handleDragStart:d,handleDragEnter:p,handleDragOver:g,handleDragLeave:h,handleDragEnd:m,defaultSortDirection:b,defaultSortColumn:v}}var Je=s.memo((function(e){const{data:t=De.data,columns:n=De.columns,title:o=De.title,actions:i=De.actions,keyField:l=De.keyField,striped:c=De.striped,highlightOnHover:d=De.highlightOnHover,pointerOnHover:p=De.pointerOnHover,dense:f=De.dense,selectableRows:m=De.selectableRows,selectableRowsSingle:b=De.selectableRowsSingle,selectableRowsHighlight:w=De.selectableRowsHighlight,selectableRowsNoSelectAll:y=De.selectableRowsNoSelectAll,selectableRowsVisibleOnly:x=De.selectableRowsVisibleOnly,selectableRowSelected:O=De.selectableRowSelected,selectableRowDisabled:k=De.selectableRowDisabled,selectableRowsComponent:P=De.selectableRowsComponent,selectableRowsComponentProps:A=De.selectableRowsComponentProps,onRowExpandToggled:D=De.onRowExpandToggled,onSelectedRowsChange:M=De.onSelectedRowsChange,expandableIcon:F=De.expandableIcon,onChangeRowsPerPage:T=De.onChangeRowsPerPage,onChangePage:L=De.onChangePage,paginationServer:V=De.paginationServer,paginationServerOptions:H=De.paginationServerOptions,paginationTotalRows:$=De.paginationTotalRows,paginationDefaultPage:j=De.paginationDefaultPage,paginationResetDefaultPage:_=De.paginationResetDefaultPage,paginationPerPage:N=De.paginationPerPage,paginationRowsPerPageOptions:z=De.paginationRowsPerPageOptions,paginationIconLastPage:B=De.paginationIconLastPage,paginationIconFirstPage:Y=De.paginationIconFirstPage,paginationIconNext:W=De.paginationIconNext,paginationIconPrevious:U=De.paginationIconPrevious,paginationComponent:G=De.paginationComponent,paginationComponentOptions:q=De.paginationComponentOptions,responsive:X=De.responsive,progressPending:K=De.progressPending,progressComponent:Z=De.progressComponent,persistTableHead:Q=De.persistTableHead,noDataComponent:ee=De.noDataComponent,disabled:te=De.disabled,noTableHead:ne=De.noTableHead,noHeader:oe=De.noHeader,fixedHeader:re=De.fixedHeader,fixedHeaderScrollHeight:ae=De.fixedHeaderScrollHeight,pagination:le=De.pagination,subHeader:ce=De.subHeader,subHeaderAlign:ue=De.subHeaderAlign,subHeaderWrap:de=De.subHeaderWrap,subHeaderComponent:pe=De.subHeaderComponent,noContextMenu:fe=De.noContextMenu,contextMessage:ge=De.contextMessage,contextActions:he=De.contextActions,contextComponent:be=De.contextComponent,expandableRows:ve=De.expandableRows,onRowClicked:we=De.onRowClicked,onRowDoubleClicked:ke=De.onRowDoubleClicked,onRowMouseEnter:Pe=De.onRowMouseEnter,onRowMouseLeave:Ae=De.onRowMouseLeave,sortIcon:Ie=De.sortIcon,onSort:Me=De.onSort,sortFunction:Fe=De.sortFunction,sortServer:Te=De.sortServer,expandableRowsComponent:Le=De.expandableRowsComponent,expandableRowsComponentProps:Ve=De.expandableRowsComponentProps,expandableRowDisabled:He=De.expandableRowDisabled,expandableRowsHideExpander:$e=De.expandableRowsHideExpander,expandOnRowClicked:Ne=De.expandOnRowClicked,expandOnRowDoubleClicked:ze=De.expandOnRowDoubleClicked,expandableRowExpanded:Be=De.expandableRowExpanded,expandableInheritConditionalStyles:Ye=De.expandableInheritConditionalStyles,defaultSortFieldId:We=De.defaultSortFieldId,defaultSortAsc:Ue=De.defaultSortAsc,clearSelectedRows:Ge=De.clearSelectedRows,conditionalRowStyles:Xe=De.conditionalRowStyles,theme:Je=De.theme,customStyles:Qe=De.customStyles,direction:et=De.direction,onColumnOrderChange:tt=De.onColumnOrderChange,className:nt}=e,{tableColumns:ot,draggingColumnId:rt,handleDragStart:it,handleDragEnter:at,handleDragOver:st,handleDragLeave:lt,handleDragEnd:ct,defaultSortDirection:ut,defaultSortColumn:dt}=Ze(n,tt,We,Ue),[{rowsPerPage:pt,currentPage:ft,selectedRows:gt,allSelected:ht,selectedCount:mt,selectedColumn:bt,sortDirection:vt,toggleOnSelectedRowsChange:wt},yt]=s.useReducer(C,{allSelected:!1,selectedCount:0,selectedRows:[],selectedColumn:dt,toggleOnSelectedRowsChange:!1,sortDirection:ut,currentPage:j,rowsPerPage:N,selectedRowsFlag:!1,contextMessage:De.contextMessage}),{persistSelectedOnSort:Ct=!1,persistSelectedOnPageChange:xt=!1}=H,St=!(!V||!xt&&!Ct),Ot=le&&!K&&t.length>0,Rt=G||je,Et=s.useMemo((()=>((e={},t="default",n="default")=>{const o=Ke[t]?t:n;return qe({table:{style:{color:(r=Ke[o]).text.primary,backgroundColor:r.background.default}},tableWrapper:{style:{display:"table"}},responsiveWrapper:{style:{}},header:{style:{fontSize:"22px",color:r.text.primary,backgroundColor:r.background.default,minHeight:"56px",paddingLeft:"16px",paddingRight:"8px"}},subHeader:{style:{backgroundColor:r.background.default,minHeight:"52px"}},head:{style:{color:r.text.primary,fontSize:"12px",fontWeight:500}},headRow:{style:{backgroundColor:r.background.default,minHeight:"52px",borderBottomWidth:"1px",borderBottomColor:r.divider.default,borderBottomStyle:"solid"},denseStyle:{minHeight:"32px"}},headCells:{style:{paddingLeft:"16px",paddingRight:"16px"},draggingStyle:{cursor:"move"}},contextMenu:{style:{backgroundColor:r.context.background,fontSize:"18px",fontWeight:400,color:r.context.text,paddingLeft:"16px",paddingRight:"8px",transform:"translate3d(0, -100%, 0)",transitionDuration:"125ms",transitionTimingFunction:"cubic-bezier(0, 0, 0.2, 1)",willChange:"transform"},activeStyle:{transform:"translate3d(0, 0, 0)"}},cells:{style:{paddingLeft:"16px",paddingRight:"16px",wordBreak:"break-word"},draggingStyle:{}},rows:{style:{fontSize:"13px",fontWeight:400,color:r.text.primary,backgroundColor:r.background.default,minHeight:"48px","&:not(:last-of-type)":{borderBottomStyle:"solid",borderBottomWidth:"1px",borderBottomColor:r.divider.default}},denseStyle:{minHeight:"32px"},selectedHighlightStyle:{"&:nth-of-type(n)":{color:r.selected.text,backgroundColor:r.selected.default,borderBottomColor:r.background.default}},highlightOnHoverStyle:{color:r.highlightOnHover.text,backgroundColor:r.highlightOnHover.default,transitionDuration:"0.15s",transitionProperty:"background-color",borderBottomColor:r.background.default,outlineStyle:"solid",outlineWidth:"1px",outlineColor:r.background.default},stripedStyle:{color:r.striped.text,backgroundColor:r.striped.default}},expanderRow:{style:{color:r.text.primary,backgroundColor:r.background.default}},expanderCell:{style:{flex:"0 0 48px"}},expanderButton:{style:{color:r.button.default,fill:r.button.default,backgroundColor:"transparent",borderRadius:"2px",transition:"0.25s",height:"100%",width:"100%","&:hover:enabled":{cursor:"pointer"},"&:disabled":{color:r.button.disabled},"&:hover:not(:disabled)":{cursor:"pointer",backgroundColor:r.button.hover},"&:focus":{outline:"none",backgroundColor:r.button.focus},svg:{margin:"auto"}}},pagination:{style:{color:r.text.secondary,fontSize:"13px",minHeight:"56px",backgroundColor:r.background.default,borderTopStyle:"solid",borderTopWidth:"1px",borderTopColor:r.divider.default},pageButtonsStyle:{borderRadius:"50%",height:"40px",width:"40px",padding:"8px",margin:"px",cursor:"pointer",transition:"0.4s",color:r.button.default,fill:r.button.default,backgroundColor:"transparent","&:disabled":{cursor:"unset",color:r.button.disabled,fill:r.button.disabled},"&:hover:not(:disabled)":{backgroundColor:r.button.hover},"&:focus":{outline:"none",backgroundColor:r.button.focus}}},noData:{style:{display:"flex",alignItems:"center",justifyContent:"center",color:r.text.primary,backgroundColor:r.background.default}},progress:{style:{display:"flex",alignItems:"center",justifyContent:"center",color:r.text.primary,backgroundColor:r.background.default}}},e);var r})(Qe,Je)),[Qe,Je]),kt=s.useMemo((()=>Object.assign({},"auto"!==et&&{dir:et})),[et]),Pt=s.useMemo((()=>{if(Te)return t;if((null==bt?void 0:bt.sortFunction)&&"function"==typeof bt.sortFunction){const e=bt.sortFunction,n=vt===a.ASC?e:(t,n)=>-1*e(t,n);return[...t].sort(n)}return function(e,t,n,o){return t?o&&"function"==typeof o?o(e.slice(0),t,n):e.slice(0).sort(((e,o)=>{const r=t(e),i=t(o);if("asc"===n){if(r<i)return-1;if(r>i)return 1}if("desc"===n){if(r>i)return-1;if(r<i)return 1}return 0})):e}(t,null==bt?void 0:bt.selector,vt,Fe)}),[Te,bt,vt,t,Fe]),At=s.useMemo((()=>{if(le&&!V){const e=ft*pt,t=e-pt;return Pt.slice(t,e)}return Pt}),[ft,le,V,pt,Pt]),It=s.useCallback((e=>{yt(e)}),[]),Dt=s.useCallback((e=>{yt(e)}),[]),Mt=s.useCallback((e=>{yt(e)}),[]),Ft=s.useCallback(((e,t)=>we(e,t)),[we]),Tt=s.useCallback(((e,t)=>ke(e,t)),[ke]),Lt=s.useCallback(((e,t)=>Pe(e,t)),[Pe]),Vt=s.useCallback(((e,t)=>Ae(e,t)),[Ae]),Ht=s.useCallback((e=>yt({type:"CHANGE_PAGE",page:e,paginationServer:V,visibleOnly:x,persistSelectedOnPageChange:xt})),[V,xt,x]),$t=s.useCallback((e=>{const t=g($||At.length,e),n=h(ft,t);V||Ht(n),yt({type:"CHANGE_ROWS_PER_PAGE",page:n,rowsPerPage:e})}),[ft,Ht,V,$,At.length]);if(le&&!V&&Pt.length>0&&0===At.length){const e=g(Pt.length,pt),t=h(ft,e);Ht(t)}_e((()=>{M({allSelected:ht,selectedCount:mt,selectedRows:gt.slice(0)})}),[wt]),_e((()=>{Me(bt,vt,Pt.slice(0))}),[bt,vt]),_e((()=>{L(ft,$||Pt.length)}),[ft]),_e((()=>{T(pt,ft)}),[pt]),_e((()=>{Ht(j)}),[j,_]),_e((()=>{if(le&&V&&$>0){const e=g($,pt),t=h(ft,e);ft!==t&&Ht(t)}}),[$]),s.useEffect((()=>{yt({type:"CLEAR_SELECTED_ROWS",selectedRowsFlag:Ge})}),[b,Ge]),s.useEffect((()=>{if(!O)return;const e=Pt.filter((e=>O(e))),t=b?e.slice(0,1):e;yt({type:"SELECT_MULTIPLE_ROWS",keyField:l,selectedRows:t,totalRows:Pt.length,mergeSelections:St})}),[t,O]);const jt=x?At:Pt,_t=xt||b||y;return s.createElement(r.ThemeProvider,{theme:Et},!oe&&(!!o||!!i)&&s.createElement(me,{title:o,actions:i,showMenu:!fe,selectedCount:mt,direction:et,contextActions:he,contextComponent:be,contextMessage:ge}),ce&&s.createElement(ye,{align:ue,wrapContent:de},pe),s.createElement(xe,Object.assign({$responsive:X,$fixedHeader:re,$fixedHeaderScrollHeight:ae,className:nt},kt),s.createElement(Oe,null,K&&!Q&&s.createElement(Se,null,Z),s.createElement(S,{disabled:te,className:"rdt_Table",role:"table"},!ne&&(!!Q||Pt.length>0&&!K)&&s.createElement(R,{className:"rdt_TableHead",role:"rowgroup",$fixedHeader:re},s.createElement(E,{className:"rdt_TableHeadRow",role:"row",$dense:f},m&&(_t?s.createElement(I,{style:{flex:"0 0 48px"}}):s.createElement(se,{allSelected:ht,selectedRows:gt,selectableRowsComponent:P,selectableRowsComponentProps:A,selectableRowDisabled:k,rowData:jt,keyField:l,mergeSelections:St,onSelectAllRows:Dt})),ve&&!$e&&s.createElement(Re,null),ot.map((e=>s.createElement(ie,{key:e.id,column:e,selectedColumn:bt,disabled:K||0===Pt.length,pagination:le,paginationServer:V,persistSelectedOnSort:Ct,selectableRowsVisibleOnly:x,sortDirection:vt,sortIcon:Ie,sortServer:Te,onSort:It,onDragStart:it,onDragOver:st,onDragEnd:ct,onDragEnter:at,onDragLeave:lt,draggingColumnId:rt}))))),!Pt.length&&!K&&s.createElement(Ee,null,ee),K&&Q&&s.createElement(Se,null,Z),!K&&Pt.length>0&&s.createElement(Ce,{className:"rdt_TableBody",role:"rowgroup"},At.map(((e,t)=>{const n=u(e,l),o=function(e=""){return"number"!=typeof e&&(!e||0===e.length)}(n)?t:n,r=v(e,gt,l),i=!!(ve&&Be&&Be(e)),a=!!(ve&&He&&He(e));return s.createElement(J,{id:o,key:o,keyField:l,"data-row-id":o,columns:ot,row:e,rowCount:Pt.length,rowIndex:t,selectableRows:m,expandableRows:ve,expandableIcon:F,highlightOnHover:d,pointerOnHover:p,dense:f,expandOnRowClicked:Ne,expandOnRowDoubleClicked:ze,expandableRowsComponent:Le,expandableRowsComponentProps:Ve,expandableRowsHideExpander:$e,defaultExpanderDisabled:a,defaultExpanded:i,expandableInheritConditionalStyles:Ye,conditionalRowStyles:Xe,selected:r,selectableRowsHighlight:w,selectableRowsComponent:P,selectableRowsComponentProps:A,selectableRowDisabled:k,selectableRowsSingle:b,striped:c,onRowExpandToggled:D,onRowClicked:Ft,onRowDoubleClicked:Tt,onRowMouseEnter:Lt,onRowMouseLeave:Vt,onSelectedRow:Mt,draggingColumnId:rt,onDragStart:it,onDragOver:st,onDragEnd:ct,onDragEnter:at,onDragLeave:lt})})))))),Ot&&s.createElement("div",null,s.createElement(Rt,{onChangePage:Ht,onChangeRowsPerPage:$t,rowCount:$||Pt.length,currentPage:ft,rowsPerPage:pt,direction:et,paginationRowsPerPageOptions:z,paginationIconLastPage:B,paginationIconFirstPage:Y,paginationIconNext:W,paginationIconPrevious:U,paginationComponentOptions:q})))}));t.STOP_PROP_TAG=W,t.createTheme=function(e="default",t,n="default"){return Ke[e]||(Ke[e]=qe(Ke[n],t||{})),Ke[e]=qe(Ke[e],t||{}),Ke[e]},t.default=Je,t.defaultThemes=Ke},6047:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>ht});var o=n(4467);function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){(0,o.A)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var a=n(296),s=n(45),l=n(1609),c=["defaultInputValue","defaultMenuIsOpen","defaultValue","inputValue","menuIsOpen","onChange","onInputChange","onMenuClose","onMenuOpen","value"],u=n(8168),d=n(3029),p=n(2901),f=n(3662);function g(e){return g=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},g(e)}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(h=function(){return!!e})()}var m=n(2284),b=n(9417);var v=n(5458),w=n(7437),y=n(5795),C=n(2425);const x=l.useLayoutEffect;var S=["className","clearValue","cx","getStyles","getClassNames","getValue","hasValue","isMulti","isRtl","options","selectOption","selectProps","setValue","theme"],O=function(){};function R(e,t){return t?"-"===t[0]?e+t:e+"__"+t:e}function E(e,t){for(var n=arguments.length,o=new Array(n>2?n-2:0),r=2;r<n;r++)o[r-2]=arguments[r];var i=[].concat(o);if(t&&e)for(var a in t)t.hasOwnProperty(a)&&t[a]&&i.push("".concat(R(e,a)));return i.filter((function(e){return e})).map((function(e){return String(e).trim()})).join(" ")}var k=function(e){return t=e,Array.isArray(t)?e.filter(Boolean):"object"===(0,m.A)(e)&&null!==e?[e]:[];var t},P=function(e){return e.className,e.clearValue,e.cx,e.getStyles,e.getClassNames,e.getValue,e.hasValue,e.isMulti,e.isRtl,e.options,e.selectOption,e.selectProps,e.setValue,e.theme,i({},(0,s.A)(e,S))},A=function(e,t,n){var o=e.cx,r=e.getStyles,i=e.getClassNames,a=e.className;return{css:r(t,e),className:o(null!=n?n:{},i(t,e),a)}};function I(e){return[document.documentElement,document.body,window].indexOf(e)>-1}function D(e){return I(e)?window.pageYOffset:e.scrollTop}function M(e,t){I(e)?window.scrollTo(0,t):e.scrollTop=t}function F(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:O,r=D(e),i=t-r,a=0;!function t(){var s,l=i*((s=(s=a+=10)/n-1)*s*s+1)+r;M(e,l),a<n?window.requestAnimationFrame(t):o(e)}()}function T(e,t){var n=e.getBoundingClientRect(),o=t.getBoundingClientRect(),r=t.offsetHeight/3;o.bottom+r>n.bottom?M(e,Math.min(t.offsetTop+t.clientHeight-e.offsetHeight+r,e.scrollHeight)):o.top-r<n.top&&M(e,Math.max(t.offsetTop-r,0))}function L(){try{return document.createEvent("TouchEvent"),!0}catch(e){return!1}}var V=!1,H={get passive(){return V=!0}},$="undefined"!=typeof window?window:{};$.addEventListener&&$.removeEventListener&&($.addEventListener("p",O,H),$.removeEventListener("p",O,!1));var j=V;function _(e){return null!=e}function N(e,t,n){return e?t:n}var z=["children","innerProps"],B=["children","innerProps"];var Y,W,U,G=function(e){return"auto"===e?"bottom":e},q=(0,l.createContext)(null),X=function(e){var t=e.children,n=e.minMenuHeight,o=e.maxMenuHeight,r=e.menuPlacement,s=e.menuPosition,c=e.menuShouldScrollIntoView,u=e.theme,d=((0,l.useContext)(q)||{}).setPortalPlacement,p=(0,l.useRef)(null),f=(0,l.useState)(o),g=(0,a.A)(f,2),h=g[0],m=g[1],b=(0,l.useState)(null),v=(0,a.A)(b,2),w=v[0],y=v[1],C=u.spacing.controlHeight;return x((function(){var e=p.current;if(e){var t="fixed"===s,i=function(e){var t=e.maxHeight,n=e.menuEl,o=e.minHeight,r=e.placement,i=e.shouldScroll,a=e.isFixedPosition,s=e.controlHeight,l=function(e){var t=getComputedStyle(e),n="absolute"===t.position,o=/(auto|scroll)/;if("fixed"===t.position)return document.documentElement;for(var r=e;r=r.parentElement;)if(t=getComputedStyle(r),(!n||"static"!==t.position)&&o.test(t.overflow+t.overflowY+t.overflowX))return r;return document.documentElement}(n),c={placement:"bottom",maxHeight:t};if(!n||!n.offsetParent)return c;var u,d=l.getBoundingClientRect().height,p=n.getBoundingClientRect(),f=p.bottom,g=p.height,h=p.top,m=n.offsetParent.getBoundingClientRect().top,b=a||I(u=l)?window.innerHeight:u.clientHeight,v=D(l),w=parseInt(getComputedStyle(n).marginBottom,10),y=parseInt(getComputedStyle(n).marginTop,10),C=m-y,x=b-h,S=C+v,O=d-v-h,R=f-b+v+w,E=v+h-y,k=160;switch(r){case"auto":case"bottom":if(x>=g)return{placement:"bottom",maxHeight:t};if(O>=g&&!a)return i&&F(l,R,k),{placement:"bottom",maxHeight:t};if(!a&&O>=o||a&&x>=o)return i&&F(l,R,k),{placement:"bottom",maxHeight:a?x-w:O-w};if("auto"===r||a){var P=t,A=a?C:S;return A>=o&&(P=Math.min(A-w-s,t)),{placement:"top",maxHeight:P}}if("bottom"===r)return i&&M(l,R),{placement:"bottom",maxHeight:t};break;case"top":if(C>=g)return{placement:"top",maxHeight:t};if(S>=g&&!a)return i&&F(l,E,k),{placement:"top",maxHeight:t};if(!a&&S>=o||a&&C>=o){var T=t;return(!a&&S>=o||a&&C>=o)&&(T=a?C-y:S-y),i&&F(l,E,k),{placement:"top",maxHeight:T}}return{placement:"bottom",maxHeight:t};default:throw new Error('Invalid placement provided "'.concat(r,'".'))}return c}({maxHeight:o,menuEl:e,minHeight:n,placement:r,shouldScroll:c&&!t,isFixedPosition:t,controlHeight:C});m(i.maxHeight),y(i.placement),null==d||d(i.placement)}}),[o,r,s,c,n,d,C]),t({ref:p,placerProps:i(i({},e),{},{placement:w||G(r),maxHeight:h})})},K=function(e,t){var n=e.theme,o=n.spacing.baseUnit,r=n.colors;return i({textAlign:"center"},t?{}:{color:r.neutral40,padding:"".concat(2*o,"px ").concat(3*o,"px")})},Z=K,J=K,Q=["size"],ee=["innerProps","isRtl","size"],te={name:"8mmkcg",styles:"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0"},ne=function(e){var t=e.size,n=(0,s.A)(e,Q);return(0,w.Y)("svg",(0,u.A)({height:t,width:t,viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",css:te},n))},oe=function(e){return(0,w.Y)(ne,(0,u.A)({size:20},e),(0,w.Y)("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"}))},re=function(e){return(0,w.Y)(ne,(0,u.A)({size:20},e),(0,w.Y)("path",{d:"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"}))},ie=function(e,t){var n=e.isFocused,o=e.theme,r=o.spacing.baseUnit,a=o.colors;return i({label:"indicatorContainer",display:"flex",transition:"color 150ms"},t?{}:{color:n?a.neutral60:a.neutral20,padding:2*r,":hover":{color:n?a.neutral80:a.neutral40}})},ae=ie,se=ie,le=(0,w.i7)(Y||(W=["\n 0%, 80%, 100% { opacity: 0; }\n 40% { opacity: 1; }\n"],U||(U=W.slice(0)),Y=Object.freeze(Object.defineProperties(W,{raw:{value:Object.freeze(U)}})))),ce=function(e){var t=e.delay,n=e.offset;return(0,w.Y)("span",{css:(0,w.AH)({animation:"".concat(le," 1s ease-in-out ").concat(t,"ms infinite;"),backgroundColor:"currentColor",borderRadius:"1em",display:"inline-block",marginLeft:n?"1em":void 0,height:"1em",verticalAlign:"top",width:"1em"},"","")})},ue=["data"],de=["innerRef","isDisabled","isHidden","inputClassName"],pe={gridArea:"1 / 2",font:"inherit",minWidth:"2px",border:0,margin:0,outline:0,padding:0},fe={flex:"1 1 auto",display:"inline-grid",gridArea:"1 / 1 / 2 / 3",gridTemplateColumns:"0 min-content","&:after":i({content:'attr(data-value) " "',visibility:"hidden",whiteSpace:"pre"},pe)},ge=function(e){return i({label:"input",color:"inherit",background:0,opacity:e?0:1,width:"100%"},pe)},he=function(e){var t=e.children,n=e.innerProps;return(0,w.Y)("div",n,t)},me={ClearIndicator:function(e){var t=e.children,n=e.innerProps;return(0,w.Y)("div",(0,u.A)({},A(e,"clearIndicator",{indicator:!0,"clear-indicator":!0}),n),t||(0,w.Y)(oe,null))},Control:function(e){var t=e.children,n=e.isDisabled,o=e.isFocused,r=e.innerRef,i=e.innerProps,a=e.menuIsOpen;return(0,w.Y)("div",(0,u.A)({ref:r},A(e,"control",{control:!0,"control--is-disabled":n,"control--is-focused":o,"control--menu-is-open":a}),i,{"aria-disabled":n||void 0}),t)},DropdownIndicator:function(e){var t=e.children,n=e.innerProps;return(0,w.Y)("div",(0,u.A)({},A(e,"dropdownIndicator",{indicator:!0,"dropdown-indicator":!0}),n),t||(0,w.Y)(re,null))},DownChevron:re,CrossIcon:oe,Group:function(e){var t=e.children,n=e.cx,o=e.getStyles,r=e.getClassNames,i=e.Heading,a=e.headingProps,s=e.innerProps,l=e.label,c=e.theme,d=e.selectProps;return(0,w.Y)("div",(0,u.A)({},A(e,"group",{group:!0}),s),(0,w.Y)(i,(0,u.A)({},a,{selectProps:d,theme:c,getStyles:o,getClassNames:r,cx:n}),l),(0,w.Y)("div",null,t))},GroupHeading:function(e){var t=P(e);t.data;var n=(0,s.A)(t,ue);return(0,w.Y)("div",(0,u.A)({},A(e,"groupHeading",{"group-heading":!0}),n))},IndicatorsContainer:function(e){var t=e.children,n=e.innerProps;return(0,w.Y)("div",(0,u.A)({},A(e,"indicatorsContainer",{indicators:!0}),n),t)},IndicatorSeparator:function(e){var t=e.innerProps;return(0,w.Y)("span",(0,u.A)({},t,A(e,"indicatorSeparator",{"indicator-separator":!0})))},Input:function(e){var t=e.cx,n=e.value,o=P(e),r=o.innerRef,i=o.isDisabled,a=o.isHidden,l=o.inputClassName,c=(0,s.A)(o,de);return(0,w.Y)("div",(0,u.A)({},A(e,"input",{"input-container":!0}),{"data-value":n||""}),(0,w.Y)("input",(0,u.A)({className:t({input:!0},l),ref:r,style:ge(a),disabled:i},c)))},LoadingIndicator:function(e){var t=e.innerProps,n=e.isRtl,o=e.size,r=void 0===o?4:o,a=(0,s.A)(e,ee);return(0,w.Y)("div",(0,u.A)({},A(i(i({},a),{},{innerProps:t,isRtl:n,size:r}),"loadingIndicator",{indicator:!0,"loading-indicator":!0}),t),(0,w.Y)(ce,{delay:0,offset:n}),(0,w.Y)(ce,{delay:160,offset:!0}),(0,w.Y)(ce,{delay:320,offset:!n}))},Menu:function(e){var t=e.children,n=e.innerRef,o=e.innerProps;return(0,w.Y)("div",(0,u.A)({},A(e,"menu",{menu:!0}),{ref:n},o),t)},MenuList:function(e){var t=e.children,n=e.innerProps,o=e.innerRef,r=e.isMulti;return(0,w.Y)("div",(0,u.A)({},A(e,"menuList",{"menu-list":!0,"menu-list--is-multi":r}),{ref:o},n),t)},MenuPortal:function(e){var t=e.appendTo,n=e.children,o=e.controlElement,r=e.innerProps,s=e.menuPlacement,c=e.menuPosition,d=(0,l.useRef)(null),p=(0,l.useRef)(null),f=(0,l.useState)(G(s)),g=(0,a.A)(f,2),h=g[0],m=g[1],b=(0,l.useMemo)((function(){return{setPortalPlacement:m}}),[]),v=(0,l.useState)(null),S=(0,a.A)(v,2),O=S[0],R=S[1],E=(0,l.useCallback)((function(){if(o){var e=function(e){var t=e.getBoundingClientRect();return{bottom:t.bottom,height:t.height,left:t.left,right:t.right,top:t.top,width:t.width}}(o),t="fixed"===c?0:window.pageYOffset,n=e[h]+t;n===(null==O?void 0:O.offset)&&e.left===(null==O?void 0:O.rect.left)&&e.width===(null==O?void 0:O.rect.width)||R({offset:n,rect:e})}}),[o,c,h,null==O?void 0:O.offset,null==O?void 0:O.rect.left,null==O?void 0:O.rect.width]);x((function(){E()}),[E]);var k=(0,l.useCallback)((function(){"function"==typeof p.current&&(p.current(),p.current=null),o&&d.current&&(p.current=(0,C.ll)(o,d.current,E,{elementResize:"ResizeObserver"in window}))}),[o,E]);x((function(){k()}),[k]);var P=(0,l.useCallback)((function(e){d.current=e,k()}),[k]);if(!t&&"fixed"!==c||!O)return null;var I=(0,w.Y)("div",(0,u.A)({ref:P},A(i(i({},e),{},{offset:O.offset,position:c,rect:O.rect}),"menuPortal",{"menu-portal":!0}),r),n);return(0,w.Y)(q.Provider,{value:b},t?(0,y.createPortal)(I,t):I)},LoadingMessage:function(e){var t=e.children,n=void 0===t?"Loading...":t,o=e.innerProps,r=(0,s.A)(e,B);return(0,w.Y)("div",(0,u.A)({},A(i(i({},r),{},{children:n,innerProps:o}),"loadingMessage",{"menu-notice":!0,"menu-notice--loading":!0}),o),n)},NoOptionsMessage:function(e){var t=e.children,n=void 0===t?"No options":t,o=e.innerProps,r=(0,s.A)(e,z);return(0,w.Y)("div",(0,u.A)({},A(i(i({},r),{},{children:n,innerProps:o}),"noOptionsMessage",{"menu-notice":!0,"menu-notice--no-options":!0}),o),n)},MultiValue:function(e){var t=e.children,n=e.components,o=e.data,r=e.innerProps,a=e.isDisabled,s=e.removeProps,l=e.selectProps,c=n.Container,u=n.Label,d=n.Remove;return(0,w.Y)(c,{data:o,innerProps:i(i({},A(e,"multiValue",{"multi-value":!0,"multi-value--is-disabled":a})),r),selectProps:l},(0,w.Y)(u,{data:o,innerProps:i({},A(e,"multiValueLabel",{"multi-value__label":!0})),selectProps:l},t),(0,w.Y)(d,{data:o,innerProps:i(i({},A(e,"multiValueRemove",{"multi-value__remove":!0})),{},{"aria-label":"Remove ".concat(t||"option")},s),selectProps:l}))},MultiValueContainer:he,MultiValueLabel:he,MultiValueRemove:function(e){var t=e.children,n=e.innerProps;return(0,w.Y)("div",(0,u.A)({role:"button"},n),t||(0,w.Y)(oe,{size:14}))},Option:function(e){var t=e.children,n=e.isDisabled,o=e.isFocused,r=e.isSelected,i=e.innerRef,a=e.innerProps;return(0,w.Y)("div",(0,u.A)({},A(e,"option",{option:!0,"option--is-disabled":n,"option--is-focused":o,"option--is-selected":r}),{ref:i,"aria-disabled":n},a),t)},Placeholder:function(e){var t=e.children,n=e.innerProps;return(0,w.Y)("div",(0,u.A)({},A(e,"placeholder",{placeholder:!0}),n),t)},SelectContainer:function(e){var t=e.children,n=e.innerProps,o=e.isDisabled,r=e.isRtl;return(0,w.Y)("div",(0,u.A)({},A(e,"container",{"--is-disabled":o,"--is-rtl":r}),n),t)},SingleValue:function(e){var t=e.children,n=e.isDisabled,o=e.innerProps;return(0,w.Y)("div",(0,u.A)({},A(e,"singleValue",{"single-value":!0,"single-value--is-disabled":n}),o),t)},ValueContainer:function(e){var t=e.children,n=e.innerProps,o=e.isMulti,r=e.hasValue;return(0,w.Y)("div",(0,u.A)({},A(e,"valueContainer",{"value-container":!0,"value-container--is-multi":o,"value-container--has-value":r}),n),t)}},be=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function ve(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(!((o=e[n])===(r=t[n])||be(o)&&be(r)))return!1;var o,r;return!0}for(var we={name:"7pg0cj-a11yText",styles:"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap"},ye=function(e){return(0,w.Y)("span",(0,u.A)({css:we},e))},Ce={guidance:function(e){var t=e.isSearchable,n=e.isMulti,o=e.tabSelectsValue,r=e.context,i=e.isInitialFocus;switch(r){case"menu":return"Use Up and Down to choose options, press Enter to select the currently focused option, press Escape to exit the menu".concat(o?", press Tab to select the option and exit the menu":"",".");case"input":return i?"".concat(e["aria-label"]||"Select"," is focused ").concat(t?",type to refine list":"",", press Down to open the menu, ").concat(n?" press left to focus selected values":""):"";case"value":return"Use left and right to toggle between focused values, press Backspace to remove the currently focused value";default:return""}},onChange:function(e){var t=e.action,n=e.label,o=void 0===n?"":n,r=e.labels,i=e.isDisabled;switch(t){case"deselect-option":case"pop-value":case"remove-value":return"option ".concat(o,", deselected.");case"clear":return"All selected options have been cleared.";case"initial-input-focus":return"option".concat(r.length>1?"s":""," ").concat(r.join(","),", selected.");case"select-option":return"option ".concat(o,i?" is disabled. Select another option.":", selected.");default:return""}},onFocus:function(e){var t=e.context,n=e.focused,o=e.options,r=e.label,i=void 0===r?"":r,a=e.selectValue,s=e.isDisabled,l=e.isSelected,c=e.isAppleDevice,u=function(e,t){return e&&e.length?"".concat(e.indexOf(t)+1," of ").concat(e.length):""};if("value"===t&&a)return"value ".concat(i," focused, ").concat(u(a,n),".");if("menu"===t&&c){var d=s?" disabled":"",p="".concat(l?" selected":"").concat(d);return"".concat(i).concat(p,", ").concat(u(o,n),".")}return""},onFilter:function(e){var t=e.inputValue,n=e.resultsMessage;return"".concat(n).concat(t?" for search term "+t:"",".")}},xe=function(e){var t=e.ariaSelection,n=e.focusedOption,o=e.focusedValue,r=e.focusableOptions,a=e.isFocused,s=e.selectValue,c=e.selectProps,u=e.id,d=e.isAppleDevice,p=c.ariaLiveMessages,f=c.getOptionLabel,g=c.inputValue,h=c.isMulti,m=c.isOptionDisabled,b=c.isSearchable,v=c.menuIsOpen,y=c.options,C=c.screenReaderStatus,x=c.tabSelectsValue,S=c.isLoading,O=c["aria-label"],R=c["aria-live"],E=(0,l.useMemo)((function(){return i(i({},Ce),p||{})}),[p]),k=(0,l.useMemo)((function(){var e,n="";if(t&&E.onChange){var o=t.option,r=t.options,a=t.removedValue,l=t.removedValues,c=t.value,u=a||o||(e=c,Array.isArray(e)?null:e),d=u?f(u):"",p=r||l||void 0,g=p?p.map(f):[],h=i({isDisabled:u&&m(u,s),label:d,labels:g},t);n=E.onChange(h)}return n}),[t,E,m,s,f]),P=(0,l.useMemo)((function(){var e="",t=n||o,i=!!(n&&s&&s.includes(n));if(t&&E.onFocus){var a={focused:t,label:f(t),isDisabled:m(t,s),isSelected:i,options:r,context:t===n?"menu":"value",selectValue:s,isAppleDevice:d};e=E.onFocus(a)}return e}),[n,o,f,m,E,r,s,d]),A=(0,l.useMemo)((function(){var e="";if(v&&y.length&&!S&&E.onFilter){var t=C({count:r.length});e=E.onFilter({inputValue:g,resultsMessage:t})}return e}),[r,g,v,E,y,C,S]),I="initial-input-focus"===(null==t?void 0:t.action),D=(0,l.useMemo)((function(){var e="";if(E.guidance){var t=o?"value":v?"menu":"input";e=E.guidance({"aria-label":O,context:t,isDisabled:n&&m(n,s),isMulti:h,isSearchable:b,tabSelectsValue:x,isInitialFocus:I})}return e}),[O,n,o,h,m,b,v,E,s,x,I]),M=(0,w.Y)(l.Fragment,null,(0,w.Y)("span",{id:"aria-selection"},k),(0,w.Y)("span",{id:"aria-focused"},P),(0,w.Y)("span",{id:"aria-results"},A),(0,w.Y)("span",{id:"aria-guidance"},D));return(0,w.Y)(l.Fragment,null,(0,w.Y)(ye,{id:u},I&&M),(0,w.Y)(ye,{"aria-live":R,"aria-atomic":"false","aria-relevant":"additions text",role:"log"},a&&!I&&M))},Se=[{base:"A",letters:"AⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"ÆǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČÇḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃÑṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲÝŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"æǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċčçḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ"},{base:"nj",letters:"nj"},{base:"o",letters:"oⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔꝋꝍɵ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢsßśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}],Oe=new RegExp("["+Se.map((function(e){return e.letters})).join("")+"]","g"),Re={},Ee=0;Ee<Se.length;Ee++)for(var ke=Se[Ee],Pe=0;Pe<ke.letters.length;Pe++)Re[ke.letters[Pe]]=ke.base;var Ae=function(e){return e.replace(Oe,(function(e){return Re[e]}))},Ie=function(e,t){void 0===t&&(t=ve);var n=null;function o(){for(var o=[],r=0;r<arguments.length;r++)o[r]=arguments[r];if(n&&n.lastThis===this&&t(o,n.lastArgs))return n.lastResult;var i=e.apply(this,o);return n={lastResult:i,lastArgs:o,lastThis:this},i}return o.clear=function(){n=null},o}(Ae),De=function(e){return e.replace(/^\s+|\s+$/g,"")},Me=function(e){return"".concat(e.label," ").concat(e.value)},Fe=["innerRef"];function Te(e){var t=e.innerRef,n=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];var r=Object.entries(e).filter((function(e){var t=(0,a.A)(e,1)[0];return!n.includes(t)}));return r.reduce((function(e,t){var n=(0,a.A)(t,2),o=n[0],r=n[1];return e[o]=r,e}),{})}((0,s.A)(e,Fe),"onExited","in","enter","exit","appear");return(0,w.Y)("input",(0,u.A)({ref:t},n,{css:(0,w.AH)({label:"dummyInput",background:0,border:0,caretColor:"transparent",fontSize:"inherit",gridArea:"1 / 1 / 2 / 3",outline:0,padding:0,width:1,color:"transparent",left:-100,opacity:0,position:"relative",transform:"scale(.01)"},"","")}))}var Le=["boxSizing","height","overflow","paddingRight","position"],Ve={boxSizing:"border-box",overflow:"hidden",position:"relative",height:"100%"};function He(e){e.preventDefault()}function $e(e){e.stopPropagation()}function je(){var e=this.scrollTop,t=this.scrollHeight,n=e+this.offsetHeight;0===e?this.scrollTop=1:n===t&&(this.scrollTop=e-1)}function _e(){return"ontouchstart"in window||navigator.maxTouchPoints}var Ne=!("undefined"==typeof window||!window.document||!window.document.createElement),ze=0,Be={capture:!1,passive:!1},Ye=function(e){var t=e.target;return t.ownerDocument.activeElement&&t.ownerDocument.activeElement.blur()},We={name:"1kfdb0e",styles:"position:fixed;left:0;bottom:0;right:0;top:0"};function Ue(e){var t=e.children,n=e.lockEnabled,o=e.captureEnabled,r=function(e){var t=e.isEnabled,n=e.onBottomArrive,o=e.onBottomLeave,r=e.onTopArrive,i=e.onTopLeave,a=(0,l.useRef)(!1),s=(0,l.useRef)(!1),c=(0,l.useRef)(0),u=(0,l.useRef)(null),d=(0,l.useCallback)((function(e,t){if(null!==u.current){var l=u.current,c=l.scrollTop,d=l.scrollHeight,p=l.clientHeight,f=u.current,g=t>0,h=d-p-c,m=!1;h>t&&a.current&&(o&&o(e),a.current=!1),g&&s.current&&(i&&i(e),s.current=!1),g&&t>h?(n&&!a.current&&n(e),f.scrollTop=d,m=!0,a.current=!0):!g&&-t>c&&(r&&!s.current&&r(e),f.scrollTop=0,m=!0,s.current=!0),m&&function(e){e.cancelable&&e.preventDefault(),e.stopPropagation()}(e)}}),[n,o,r,i]),p=(0,l.useCallback)((function(e){d(e,e.deltaY)}),[d]),f=(0,l.useCallback)((function(e){c.current=e.changedTouches[0].clientY}),[]),g=(0,l.useCallback)((function(e){var t=c.current-e.changedTouches[0].clientY;d(e,t)}),[d]),h=(0,l.useCallback)((function(e){if(e){var t=!!j&&{passive:!1};e.addEventListener("wheel",p,t),e.addEventListener("touchstart",f,t),e.addEventListener("touchmove",g,t)}}),[g,f,p]),m=(0,l.useCallback)((function(e){e&&(e.removeEventListener("wheel",p,!1),e.removeEventListener("touchstart",f,!1),e.removeEventListener("touchmove",g,!1))}),[g,f,p]);return(0,l.useEffect)((function(){if(t){var e=u.current;return h(e),function(){m(e)}}}),[t,h,m]),function(e){u.current=e}}({isEnabled:void 0===o||o,onBottomArrive:e.onBottomArrive,onBottomLeave:e.onBottomLeave,onTopArrive:e.onTopArrive,onTopLeave:e.onTopLeave}),i=function(e){var t=e.isEnabled,n=e.accountForScrollbars,o=void 0===n||n,r=(0,l.useRef)({}),i=(0,l.useRef)(null),a=(0,l.useCallback)((function(e){if(Ne){var t=document.body,n=t&&t.style;if(o&&Le.forEach((function(e){var t=n&&n[e];r.current[e]=t})),o&&ze<1){var i=parseInt(r.current.paddingRight,10)||0,a=document.body?document.body.clientWidth:0,s=window.innerWidth-a+i||0;Object.keys(Ve).forEach((function(e){var t=Ve[e];n&&(n[e]=t)})),n&&(n.paddingRight="".concat(s,"px"))}t&&_e()&&(t.addEventListener("touchmove",He,Be),e&&(e.addEventListener("touchstart",je,Be),e.addEventListener("touchmove",$e,Be))),ze+=1}}),[o]),s=(0,l.useCallback)((function(e){if(Ne){var t=document.body,n=t&&t.style;ze=Math.max(ze-1,0),o&&ze<1&&Le.forEach((function(e){var t=r.current[e];n&&(n[e]=t)})),t&&_e()&&(t.removeEventListener("touchmove",He,Be),e&&(e.removeEventListener("touchstart",je,Be),e.removeEventListener("touchmove",$e,Be)))}}),[o]);return(0,l.useEffect)((function(){if(t){var e=i.current;return a(e),function(){s(e)}}}),[t,a,s]),function(e){i.current=e}}({isEnabled:n});return(0,w.Y)(l.Fragment,null,n&&(0,w.Y)("div",{onClick:Ye,css:We}),t((function(e){r(e),i(e)})))}var Ge={name:"1a0ro4n-requiredInput",styles:"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%"},qe=function(e){var t=e.name,n=e.onFocus;return(0,w.Y)("input",{required:!0,name:t,tabIndex:-1,"aria-hidden":"true",onFocus:n,css:Ge,value:"",onChange:function(){}})};function Xe(e){var t;return"undefined"!=typeof window&&null!=window.navigator&&e.test((null===(t=window.navigator.userAgentData)||void 0===t?void 0:t.platform)||window.navigator.platform)}function Ke(){return Xe(/^Mac/i)}var Ze={clearIndicator:se,container:function(e){var t=e.isDisabled;return{label:"container",direction:e.isRtl?"rtl":void 0,pointerEvents:t?"none":void 0,position:"relative"}},control:function(e,t){var n=e.isDisabled,o=e.isFocused,r=e.theme,a=r.colors,s=r.borderRadius;return i({label:"control",alignItems:"center",cursor:"default",display:"flex",flexWrap:"wrap",justifyContent:"space-between",minHeight:r.spacing.controlHeight,outline:"0 !important",position:"relative",transition:"all 100ms"},t?{}:{backgroundColor:n?a.neutral5:a.neutral0,borderColor:n?a.neutral10:o?a.primary:a.neutral20,borderRadius:s,borderStyle:"solid",borderWidth:1,boxShadow:o?"0 0 0 1px ".concat(a.primary):void 0,"&:hover":{borderColor:o?a.primary:a.neutral30}})},dropdownIndicator:ae,group:function(e,t){var n=e.theme.spacing;return t?{}:{paddingBottom:2*n.baseUnit,paddingTop:2*n.baseUnit}},groupHeading:function(e,t){var n=e.theme,o=n.colors,r=n.spacing;return i({label:"group",cursor:"default",display:"block"},t?{}:{color:o.neutral40,fontSize:"75%",fontWeight:500,marginBottom:"0.25em",paddingLeft:3*r.baseUnit,paddingRight:3*r.baseUnit,textTransform:"uppercase"})},indicatorsContainer:function(){return{alignItems:"center",alignSelf:"stretch",display:"flex",flexShrink:0}},indicatorSeparator:function(e,t){var n=e.isDisabled,o=e.theme,r=o.spacing.baseUnit,a=o.colors;return i({label:"indicatorSeparator",alignSelf:"stretch",width:1},t?{}:{backgroundColor:n?a.neutral10:a.neutral20,marginBottom:2*r,marginTop:2*r})},input:function(e,t){var n=e.isDisabled,o=e.value,r=e.theme,a=r.spacing,s=r.colors;return i(i({visibility:n?"hidden":"visible",transform:o?"translateZ(0)":""},fe),t?{}:{margin:a.baseUnit/2,paddingBottom:a.baseUnit/2,paddingTop:a.baseUnit/2,color:s.neutral80})},loadingIndicator:function(e,t){var n=e.isFocused,o=e.size,r=e.theme,a=r.colors,s=r.spacing.baseUnit;return i({label:"loadingIndicator",display:"flex",transition:"color 150ms",alignSelf:"center",fontSize:o,lineHeight:1,marginRight:o,textAlign:"center",verticalAlign:"middle"},t?{}:{color:n?a.neutral60:a.neutral20,padding:2*s})},loadingMessage:J,menu:function(e,t){var n,r=e.placement,a=e.theme,s=a.borderRadius,l=a.spacing,c=a.colors;return i((n={label:"menu"},(0,o.A)(n,function(e){return e?{bottom:"top",top:"bottom"}[e]:"bottom"}(r),"100%"),(0,o.A)(n,"position","absolute"),(0,o.A)(n,"width","100%"),(0,o.A)(n,"zIndex",1),n),t?{}:{backgroundColor:c.neutral0,borderRadius:s,boxShadow:"0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)",marginBottom:l.menuGutter,marginTop:l.menuGutter})},menuList:function(e,t){var n=e.maxHeight,o=e.theme.spacing.baseUnit;return i({maxHeight:n,overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},t?{}:{paddingBottom:o,paddingTop:o})},menuPortal:function(e){var t=e.rect,n=e.offset,o=e.position;return{left:t.left,position:o,top:n,width:t.width,zIndex:1}},multiValue:function(e,t){var n=e.theme,o=n.spacing,r=n.borderRadius,a=n.colors;return i({label:"multiValue",display:"flex",minWidth:0},t?{}:{backgroundColor:a.neutral10,borderRadius:r/2,margin:o.baseUnit/2})},multiValueLabel:function(e,t){var n=e.theme,o=n.borderRadius,r=n.colors,a=e.cropWithEllipsis;return i({overflow:"hidden",textOverflow:a||void 0===a?"ellipsis":void 0,whiteSpace:"nowrap"},t?{}:{borderRadius:o/2,color:r.neutral80,fontSize:"85%",padding:3,paddingLeft:6})},multiValueRemove:function(e,t){var n=e.theme,o=n.spacing,r=n.borderRadius,a=n.colors,s=e.isFocused;return i({alignItems:"center",display:"flex"},t?{}:{borderRadius:r/2,backgroundColor:s?a.dangerLight:void 0,paddingLeft:o.baseUnit,paddingRight:o.baseUnit,":hover":{backgroundColor:a.dangerLight,color:a.danger}})},noOptionsMessage:Z,option:function(e,t){var n=e.isDisabled,o=e.isFocused,r=e.isSelected,a=e.theme,s=a.spacing,l=a.colors;return i({label:"option",cursor:"default",display:"block",fontSize:"inherit",width:"100%",userSelect:"none",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)"},t?{}:{backgroundColor:r?l.primary:o?l.primary25:"transparent",color:n?l.neutral20:r?l.neutral0:"inherit",padding:"".concat(2*s.baseUnit,"px ").concat(3*s.baseUnit,"px"),":active":{backgroundColor:n?void 0:r?l.primary:l.primary50}})},placeholder:function(e,t){var n=e.theme,o=n.spacing,r=n.colors;return i({label:"placeholder",gridArea:"1 / 1 / 2 / 3"},t?{}:{color:r.neutral50,marginLeft:o.baseUnit/2,marginRight:o.baseUnit/2})},singleValue:function(e,t){var n=e.isDisabled,o=e.theme,r=o.spacing,a=o.colors;return i({label:"singleValue",gridArea:"1 / 1 / 2 / 3",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},t?{}:{color:n?a.neutral40:a.neutral80,marginLeft:r.baseUnit/2,marginRight:r.baseUnit/2})},valueContainer:function(e,t){var n=e.theme.spacing,o=e.isMulti,r=e.hasValue,a=e.selectProps.controlShouldRenderValue;return i({alignItems:"center",display:o&&r&&a?"flex":"grid",flex:1,flexWrap:"wrap",WebkitOverflowScrolling:"touch",position:"relative",overflow:"hidden"},t?{}:{padding:"".concat(n.baseUnit/2,"px ").concat(2*n.baseUnit,"px")})}},Je={borderRadius:4,colors:{primary:"#2684FF",primary75:"#4C9AFF",primary50:"#B2D4FF",primary25:"#DEEBFF",danger:"#DE350B",dangerLight:"#FFBDAD",neutral0:"hsl(0, 0%, 100%)",neutral5:"hsl(0, 0%, 95%)",neutral10:"hsl(0, 0%, 90%)",neutral20:"hsl(0, 0%, 80%)",neutral30:"hsl(0, 0%, 70%)",neutral40:"hsl(0, 0%, 60%)",neutral50:"hsl(0, 0%, 50%)",neutral60:"hsl(0, 0%, 40%)",neutral70:"hsl(0, 0%, 30%)",neutral80:"hsl(0, 0%, 20%)",neutral90:"hsl(0, 0%, 10%)"},spacing:{baseUnit:4,controlHeight:38,menuGutter:8}},Qe={"aria-live":"polite",backspaceRemovesValue:!0,blurInputOnSelect:L(),captureMenuScroll:!L(),classNames:{},closeMenuOnSelect:!0,closeMenuOnScroll:!1,components:{},controlShouldRenderValue:!0,escapeClearsValue:!1,filterOption:function(e,t){if(e.data.__isNew__)return!0;var n=i({ignoreCase:!0,ignoreAccents:!0,stringify:Me,trim:!0,matchFrom:"any"},undefined),o=n.ignoreCase,r=n.ignoreAccents,a=n.stringify,s=n.trim,l=n.matchFrom,c=s?De(t):t,u=s?De(a(e)):a(e);return o&&(c=c.toLowerCase(),u=u.toLowerCase()),r&&(c=Ie(c),u=Ae(u)),"start"===l?u.substr(0,c.length)===c:u.indexOf(c)>-1},formatGroupLabel:function(e){return e.label},getOptionLabel:function(e){return e.label},getOptionValue:function(e){return e.value},isDisabled:!1,isLoading:!1,isMulti:!1,isRtl:!1,isSearchable:!0,isOptionDisabled:function(e){return!!e.isDisabled},loadingMessage:function(){return"Loading..."},maxMenuHeight:300,minMenuHeight:140,menuIsOpen:!1,menuPlacement:"bottom",menuPosition:"absolute",menuShouldBlockScroll:!1,menuShouldScrollIntoView:!function(){try{return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}catch(e){return!1}}(),noOptionsMessage:function(){return"No options"},openMenuOnFocus:!1,openMenuOnClick:!0,options:[],pageSize:5,placeholder:"Select...",screenReaderStatus:function(e){var t=e.count;return"".concat(t," result").concat(1!==t?"s":""," available")},styles:{},tabIndex:0,tabSelectsValue:!0,unstyled:!1};function et(e,t,n,o){return{type:"option",data:t,isDisabled:lt(e,t,n),isSelected:ct(e,t,n),label:at(e,t),value:st(e,t),index:o}}function tt(e,t){return e.options.map((function(n,o){if("options"in n){var r=n.options.map((function(n,o){return et(e,n,t,o)})).filter((function(t){return rt(e,t)}));return r.length>0?{type:"group",data:n,options:r,index:o}:void 0}var i=et(e,n,t,o);return rt(e,i)?i:void 0})).filter(_)}function nt(e){return e.reduce((function(e,t){return"group"===t.type?e.push.apply(e,(0,v.A)(t.options.map((function(e){return e.data})))):e.push(t.data),e}),[])}function ot(e,t){return e.reduce((function(e,n){return"group"===n.type?e.push.apply(e,(0,v.A)(n.options.map((function(e){return{data:e.data,id:"".concat(t,"-").concat(n.index,"-").concat(e.index)}})))):e.push({data:n.data,id:"".concat(t,"-").concat(n.index)}),e}),[])}function rt(e,t){var n=e.inputValue,o=void 0===n?"":n,r=t.data,i=t.isSelected,a=t.label,s=t.value;return(!dt(e)||!i)&&ut(e,{label:a,value:s,data:r},o)}var it=function(e,t){var n;return(null===(n=e.find((function(e){return e.data===t})))||void 0===n?void 0:n.id)||null},at=function(e,t){return e.getOptionLabel(t)},st=function(e,t){return e.getOptionValue(t)};function lt(e,t,n){return"function"==typeof e.isOptionDisabled&&e.isOptionDisabled(t,n)}function ct(e,t,n){if(n.indexOf(t)>-1)return!0;if("function"==typeof e.isOptionSelected)return e.isOptionSelected(t,n);var o=st(e,t);return n.some((function(t){return st(e,t)===o}))}function ut(e,t,n){return!e.filterOption||e.filterOption(t,n)}var dt=function(e){var t=e.hideSelectedOptions,n=e.isMulti;return void 0===t?n:t},pt=1,ft=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,f.A)(e,t)}(r,e);var t,n,o=(t=r,n=h(),function(){var e,o=g(t);if(n){var r=g(this).constructor;e=Reflect.construct(o,arguments,r)}else e=o.apply(this,arguments);return function(e,t){if(t&&("object"===(0,m.A)(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,b.A)(e)}(this,e)});function r(e){var t;if((0,d.A)(this,r),(t=o.call(this,e)).state={ariaSelection:null,focusedOption:null,focusedOptionId:null,focusableOptionsWithIds:[],focusedValue:null,inputIsHidden:!1,isFocused:!1,selectValue:[],clearFocusValueOnUpdate:!1,prevWasFocused:!1,inputIsHiddenAfterUpdate:void 0,prevProps:void 0,instancePrefix:""},t.blockOptionHover=!1,t.isComposing=!1,t.commonProps=void 0,t.initialTouchX=0,t.initialTouchY=0,t.openAfterFocus=!1,t.scrollToFocusedOptionOnUpdate=!1,t.userIsDragging=void 0,t.isAppleDevice=Ke()||Xe(/^iPhone/i)||Xe(/^iPad/i)||Ke()&&navigator.maxTouchPoints>1,t.controlRef=null,t.getControlRef=function(e){t.controlRef=e},t.focusedOptionRef=null,t.getFocusedOptionRef=function(e){t.focusedOptionRef=e},t.menuListRef=null,t.getMenuListRef=function(e){t.menuListRef=e},t.inputRef=null,t.getInputRef=function(e){t.inputRef=e},t.focus=t.focusInput,t.blur=t.blurInput,t.onChange=function(e,n){var o=t.props,r=o.onChange,i=o.name;n.name=i,t.ariaOnChange(e,n),r(e,n)},t.setValue=function(e,n,o){var r=t.props,i=r.closeMenuOnSelect,a=r.isMulti,s=r.inputValue;t.onInputChange("",{action:"set-value",prevInputValue:s}),i&&(t.setState({inputIsHiddenAfterUpdate:!a}),t.onMenuClose()),t.setState({clearFocusValueOnUpdate:!0}),t.onChange(e,{action:n,option:o})},t.selectOption=function(e){var n=t.props,o=n.blurInputOnSelect,r=n.isMulti,i=n.name,a=t.state.selectValue,s=r&&t.isOptionSelected(e,a),l=t.isOptionDisabled(e,a);if(s){var c=t.getOptionValue(e);t.setValue(a.filter((function(e){return t.getOptionValue(e)!==c})),"deselect-option",e)}else{if(l)return void t.ariaOnChange(e,{action:"select-option",option:e,name:i});r?t.setValue([].concat((0,v.A)(a),[e]),"select-option",e):t.setValue(e,"select-option")}o&&t.blurInput()},t.removeValue=function(e){var n=t.props.isMulti,o=t.state.selectValue,r=t.getOptionValue(e),i=o.filter((function(e){return t.getOptionValue(e)!==r})),a=N(n,i,i[0]||null);t.onChange(a,{action:"remove-value",removedValue:e}),t.focusInput()},t.clearValue=function(){var e=t.state.selectValue;t.onChange(N(t.props.isMulti,[],null),{action:"clear",removedValues:e})},t.popValue=function(){var e=t.props.isMulti,n=t.state.selectValue,o=n[n.length-1],r=n.slice(0,n.length-1),i=N(e,r,r[0]||null);t.onChange(i,{action:"pop-value",removedValue:o})},t.getFocusedOptionId=function(e){return it(t.state.focusableOptionsWithIds,e)},t.getFocusableOptionsWithIds=function(){return ot(tt(t.props,t.state.selectValue),t.getElementId("option"))},t.getValue=function(){return t.state.selectValue},t.cx=function(){for(var e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];return E.apply(void 0,[t.props.classNamePrefix].concat(n))},t.getOptionLabel=function(e){return at(t.props,e)},t.getOptionValue=function(e){return st(t.props,e)},t.getStyles=function(e,n){var o=t.props.unstyled,r=Ze[e](n,o);r.boxSizing="border-box";var i=t.props.styles[e];return i?i(r,n):r},t.getClassNames=function(e,n){var o,r;return null===(o=(r=t.props.classNames)[e])||void 0===o?void 0:o.call(r,n)},t.getElementId=function(e){return"".concat(t.state.instancePrefix,"-").concat(e)},t.getComponents=function(){return e=t.props,i(i({},me),e.components);var e},t.buildCategorizedOptions=function(){return tt(t.props,t.state.selectValue)},t.getCategorizedOptions=function(){return t.props.menuIsOpen?t.buildCategorizedOptions():[]},t.buildFocusableOptions=function(){return nt(t.buildCategorizedOptions())},t.getFocusableOptions=function(){return t.props.menuIsOpen?t.buildFocusableOptions():[]},t.ariaOnChange=function(e,n){t.setState({ariaSelection:i({value:e},n)})},t.onMenuMouseDown=function(e){0===e.button&&(e.stopPropagation(),e.preventDefault(),t.focusInput())},t.onMenuMouseMove=function(e){t.blockOptionHover=!1},t.onControlMouseDown=function(e){if(!e.defaultPrevented){var n=t.props.openMenuOnClick;t.state.isFocused?t.props.menuIsOpen?"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&t.onMenuClose():n&&t.openMenu("first"):(n&&(t.openAfterFocus=!0),t.focusInput()),"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&e.preventDefault()}},t.onDropdownIndicatorMouseDown=function(e){if(!(e&&"mousedown"===e.type&&0!==e.button||t.props.isDisabled)){var n=t.props,o=n.isMulti,r=n.menuIsOpen;t.focusInput(),r?(t.setState({inputIsHiddenAfterUpdate:!o}),t.onMenuClose()):t.openMenu("first"),e.preventDefault()}},t.onClearIndicatorMouseDown=function(e){e&&"mousedown"===e.type&&0!==e.button||(t.clearValue(),e.preventDefault(),t.openAfterFocus=!1,"touchend"===e.type?t.focusInput():setTimeout((function(){return t.focusInput()})))},t.onScroll=function(e){"boolean"==typeof t.props.closeMenuOnScroll?e.target instanceof HTMLElement&&I(e.target)&&t.props.onMenuClose():"function"==typeof t.props.closeMenuOnScroll&&t.props.closeMenuOnScroll(e)&&t.props.onMenuClose()},t.onCompositionStart=function(){t.isComposing=!0},t.onCompositionEnd=function(){t.isComposing=!1},t.onTouchStart=function(e){var n=e.touches,o=n&&n.item(0);o&&(t.initialTouchX=o.clientX,t.initialTouchY=o.clientY,t.userIsDragging=!1)},t.onTouchMove=function(e){var n=e.touches,o=n&&n.item(0);if(o){var r=Math.abs(o.clientX-t.initialTouchX),i=Math.abs(o.clientY-t.initialTouchY);t.userIsDragging=r>5||i>5}},t.onTouchEnd=function(e){t.userIsDragging||(t.controlRef&&!t.controlRef.contains(e.target)&&t.menuListRef&&!t.menuListRef.contains(e.target)&&t.blurInput(),t.initialTouchX=0,t.initialTouchY=0)},t.onControlTouchEnd=function(e){t.userIsDragging||t.onControlMouseDown(e)},t.onClearIndicatorTouchEnd=function(e){t.userIsDragging||t.onClearIndicatorMouseDown(e)},t.onDropdownIndicatorTouchEnd=function(e){t.userIsDragging||t.onDropdownIndicatorMouseDown(e)},t.handleInputChange=function(e){var n=t.props.inputValue,o=e.currentTarget.value;t.setState({inputIsHiddenAfterUpdate:!1}),t.onInputChange(o,{action:"input-change",prevInputValue:n}),t.props.menuIsOpen||t.onMenuOpen()},t.onInputFocus=function(e){t.props.onFocus&&t.props.onFocus(e),t.setState({inputIsHiddenAfterUpdate:!1,isFocused:!0}),(t.openAfterFocus||t.props.openMenuOnFocus)&&t.openMenu("first"),t.openAfterFocus=!1},t.onInputBlur=function(e){var n=t.props.inputValue;t.menuListRef&&t.menuListRef.contains(document.activeElement)?t.inputRef.focus():(t.props.onBlur&&t.props.onBlur(e),t.onInputChange("",{action:"input-blur",prevInputValue:n}),t.onMenuClose(),t.setState({focusedValue:null,isFocused:!1}))},t.onOptionHover=function(e){if(!t.blockOptionHover&&t.state.focusedOption!==e){var n=t.getFocusableOptions().indexOf(e);t.setState({focusedOption:e,focusedOptionId:n>-1?t.getFocusedOptionId(e):null})}},t.shouldHideSelectedOptions=function(){return dt(t.props)},t.onValueInputFocus=function(e){e.preventDefault(),e.stopPropagation(),t.focus()},t.onKeyDown=function(e){var n=t.props,o=n.isMulti,r=n.backspaceRemovesValue,i=n.escapeClearsValue,a=n.inputValue,s=n.isClearable,l=n.isDisabled,c=n.menuIsOpen,u=n.onKeyDown,d=n.tabSelectsValue,p=n.openMenuOnFocus,f=t.state,g=f.focusedOption,h=f.focusedValue,m=f.selectValue;if(!(l||"function"==typeof u&&(u(e),e.defaultPrevented))){switch(t.blockOptionHover=!0,e.key){case"ArrowLeft":if(!o||a)return;t.focusValue("previous");break;case"ArrowRight":if(!o||a)return;t.focusValue("next");break;case"Delete":case"Backspace":if(a)return;if(h)t.removeValue(h);else{if(!r)return;o?t.popValue():s&&t.clearValue()}break;case"Tab":if(t.isComposing)return;if(e.shiftKey||!c||!d||!g||p&&t.isOptionSelected(g,m))return;t.selectOption(g);break;case"Enter":if(229===e.keyCode)break;if(c){if(!g)return;if(t.isComposing)return;t.selectOption(g);break}return;case"Escape":c?(t.setState({inputIsHiddenAfterUpdate:!1}),t.onInputChange("",{action:"menu-close",prevInputValue:a}),t.onMenuClose()):s&&i&&t.clearValue();break;case" ":if(a)return;if(!c){t.openMenu("first");break}if(!g)return;t.selectOption(g);break;case"ArrowUp":c?t.focusOption("up"):t.openMenu("last");break;case"ArrowDown":c?t.focusOption("down"):t.openMenu("first");break;case"PageUp":if(!c)return;t.focusOption("pageup");break;case"PageDown":if(!c)return;t.focusOption("pagedown");break;case"Home":if(!c)return;t.focusOption("first");break;case"End":if(!c)return;t.focusOption("last");break;default:return}e.preventDefault()}},t.state.instancePrefix="react-select-"+(t.props.instanceId||++pt),t.state.selectValue=k(e.value),e.menuIsOpen&&t.state.selectValue.length){var n=t.getFocusableOptionsWithIds(),a=t.buildFocusableOptions(),s=a.indexOf(t.state.selectValue[0]);t.state.focusableOptionsWithIds=n,t.state.focusedOption=a[s],t.state.focusedOptionId=it(n,a[s])}return t}return(0,p.A)(r,[{key:"componentDidMount",value:function(){this.startListeningComposition(),this.startListeningToTouch(),this.props.closeMenuOnScroll&&document&&document.addEventListener&&document.addEventListener("scroll",this.onScroll,!0),this.props.autoFocus&&this.focusInput(),this.props.menuIsOpen&&this.state.focusedOption&&this.menuListRef&&this.focusedOptionRef&&T(this.menuListRef,this.focusedOptionRef)}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.isDisabled,o=t.menuIsOpen,r=this.state.isFocused;(r&&!n&&e.isDisabled||r&&o&&!e.menuIsOpen)&&this.focusInput(),r&&n&&!e.isDisabled?this.setState({isFocused:!1},this.onMenuClose):r||n||!e.isDisabled||this.inputRef!==document.activeElement||this.setState({isFocused:!0}),this.menuListRef&&this.focusedOptionRef&&this.scrollToFocusedOptionOnUpdate&&(T(this.menuListRef,this.focusedOptionRef),this.scrollToFocusedOptionOnUpdate=!1)}},{key:"componentWillUnmount",value:function(){this.stopListeningComposition(),this.stopListeningToTouch(),document.removeEventListener("scroll",this.onScroll,!0)}},{key:"onMenuOpen",value:function(){this.props.onMenuOpen()}},{key:"onMenuClose",value:function(){this.onInputChange("",{action:"menu-close",prevInputValue:this.props.inputValue}),this.props.onMenuClose()}},{key:"onInputChange",value:function(e,t){this.props.onInputChange(e,t)}},{key:"focusInput",value:function(){this.inputRef&&this.inputRef.focus()}},{key:"blurInput",value:function(){this.inputRef&&this.inputRef.blur()}},{key:"openMenu",value:function(e){var t=this,n=this.state,o=n.selectValue,r=n.isFocused,i=this.buildFocusableOptions(),a="first"===e?0:i.length-1;if(!this.props.isMulti){var s=i.indexOf(o[0]);s>-1&&(a=s)}this.scrollToFocusedOptionOnUpdate=!(r&&this.menuListRef),this.setState({inputIsHiddenAfterUpdate:!1,focusedValue:null,focusedOption:i[a],focusedOptionId:this.getFocusedOptionId(i[a])},(function(){return t.onMenuOpen()}))}},{key:"focusValue",value:function(e){var t=this.state,n=t.selectValue,o=t.focusedValue;if(this.props.isMulti){this.setState({focusedOption:null});var r=n.indexOf(o);o||(r=-1);var i=n.length-1,a=-1;if(n.length){switch(e){case"previous":a=0===r?0:-1===r?i:r-1;break;case"next":r>-1&&r<i&&(a=r+1)}this.setState({inputIsHidden:-1!==a,focusedValue:n[a]})}}}},{key:"focusOption",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"first",t=this.props.pageSize,n=this.state.focusedOption,o=this.getFocusableOptions();if(o.length){var r=0,i=o.indexOf(n);n||(i=-1),"up"===e?r=i>0?i-1:o.length-1:"down"===e?r=(i+1)%o.length:"pageup"===e?(r=i-t)<0&&(r=0):"pagedown"===e?(r=i+t)>o.length-1&&(r=o.length-1):"last"===e&&(r=o.length-1),this.scrollToFocusedOptionOnUpdate=!0,this.setState({focusedOption:o[r],focusedValue:null,focusedOptionId:this.getFocusedOptionId(o[r])})}}},{key:"getTheme",value:function(){return this.props.theme?"function"==typeof this.props.theme?this.props.theme(Je):i(i({},Je),this.props.theme):Je}},{key:"getCommonProps",value:function(){var e=this.clearValue,t=this.cx,n=this.getStyles,o=this.getClassNames,r=this.getValue,i=this.selectOption,a=this.setValue,s=this.props,l=s.isMulti,c=s.isRtl,u=s.options;return{clearValue:e,cx:t,getStyles:n,getClassNames:o,getValue:r,hasValue:this.hasValue(),isMulti:l,isRtl:c,options:u,selectOption:i,selectProps:s,setValue:a,theme:this.getTheme()}}},{key:"hasValue",value:function(){return this.state.selectValue.length>0}},{key:"hasOptions",value:function(){return!!this.getFocusableOptions().length}},{key:"isClearable",value:function(){var e=this.props,t=e.isClearable,n=e.isMulti;return void 0===t?n:t}},{key:"isOptionDisabled",value:function(e,t){return lt(this.props,e,t)}},{key:"isOptionSelected",value:function(e,t){return ct(this.props,e,t)}},{key:"filterOption",value:function(e,t){return ut(this.props,e,t)}},{key:"formatOptionLabel",value:function(e,t){if("function"==typeof this.props.formatOptionLabel){var n=this.props.inputValue,o=this.state.selectValue;return this.props.formatOptionLabel(e,{context:t,inputValue:n,selectValue:o})}return this.getOptionLabel(e)}},{key:"formatGroupLabel",value:function(e){return this.props.formatGroupLabel(e)}},{key:"startListeningComposition",value:function(){document&&document.addEventListener&&(document.addEventListener("compositionstart",this.onCompositionStart,!1),document.addEventListener("compositionend",this.onCompositionEnd,!1))}},{key:"stopListeningComposition",value:function(){document&&document.removeEventListener&&(document.removeEventListener("compositionstart",this.onCompositionStart),document.removeEventListener("compositionend",this.onCompositionEnd))}},{key:"startListeningToTouch",value:function(){document&&document.addEventListener&&(document.addEventListener("touchstart",this.onTouchStart,!1),document.addEventListener("touchmove",this.onTouchMove,!1),document.addEventListener("touchend",this.onTouchEnd,!1))}},{key:"stopListeningToTouch",value:function(){document&&document.removeEventListener&&(document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd))}},{key:"renderInput",value:function(){var e=this.props,t=e.isDisabled,n=e.isSearchable,o=e.inputId,r=e.inputValue,a=e.tabIndex,s=e.form,c=e.menuIsOpen,d=e.required,p=this.getComponents().Input,f=this.state,g=f.inputIsHidden,h=f.ariaSelection,m=this.commonProps,b=o||this.getElementId("input"),v=i(i(i({"aria-autocomplete":"list","aria-expanded":c,"aria-haspopup":!0,"aria-errormessage":this.props["aria-errormessage"],"aria-invalid":this.props["aria-invalid"],"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],"aria-required":d,role:"combobox","aria-activedescendant":this.isAppleDevice?void 0:this.state.focusedOptionId||""},c&&{"aria-controls":this.getElementId("listbox")}),!n&&{"aria-readonly":!0}),this.hasValue()?"initial-input-focus"===(null==h?void 0:h.action)&&{"aria-describedby":this.getElementId("live-region")}:{"aria-describedby":this.getElementId("placeholder")});return n?l.createElement(p,(0,u.A)({},m,{autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",id:b,innerRef:this.getInputRef,isDisabled:t,isHidden:g,onBlur:this.onInputBlur,onChange:this.handleInputChange,onFocus:this.onInputFocus,spellCheck:"false",tabIndex:a,form:s,type:"text",value:r},v)):l.createElement(Te,(0,u.A)({id:b,innerRef:this.getInputRef,onBlur:this.onInputBlur,onChange:O,onFocus:this.onInputFocus,disabled:t,tabIndex:a,inputMode:"none",form:s,value:""},v))}},{key:"renderPlaceholderOrValue",value:function(){var e=this,t=this.getComponents(),n=t.MultiValue,o=t.MultiValueContainer,r=t.MultiValueLabel,i=t.MultiValueRemove,a=t.SingleValue,s=t.Placeholder,c=this.commonProps,d=this.props,p=d.controlShouldRenderValue,f=d.isDisabled,g=d.isMulti,h=d.inputValue,m=d.placeholder,b=this.state,v=b.selectValue,w=b.focusedValue,y=b.isFocused;if(!this.hasValue()||!p)return h?null:l.createElement(s,(0,u.A)({},c,{key:"placeholder",isDisabled:f,isFocused:y,innerProps:{id:this.getElementId("placeholder")}}),m);if(g)return v.map((function(t,a){var s=t===w,d="".concat(e.getOptionLabel(t),"-").concat(e.getOptionValue(t));return l.createElement(n,(0,u.A)({},c,{components:{Container:o,Label:r,Remove:i},isFocused:s,isDisabled:f,key:d,index:a,removeProps:{onClick:function(){return e.removeValue(t)},onTouchEnd:function(){return e.removeValue(t)},onMouseDown:function(e){e.preventDefault()}},data:t}),e.formatOptionLabel(t,"value"))}));if(h)return null;var C=v[0];return l.createElement(a,(0,u.A)({},c,{data:C,isDisabled:f}),this.formatOptionLabel(C,"value"))}},{key:"renderClearIndicator",value:function(){var e=this.getComponents().ClearIndicator,t=this.commonProps,n=this.props,o=n.isDisabled,r=n.isLoading,i=this.state.isFocused;if(!this.isClearable()||!e||o||!this.hasValue()||r)return null;var a={onMouseDown:this.onClearIndicatorMouseDown,onTouchEnd:this.onClearIndicatorTouchEnd,"aria-hidden":"true"};return l.createElement(e,(0,u.A)({},t,{innerProps:a,isFocused:i}))}},{key:"renderLoadingIndicator",value:function(){var e=this.getComponents().LoadingIndicator,t=this.commonProps,n=this.props,o=n.isDisabled,r=n.isLoading,i=this.state.isFocused;return e&&r?l.createElement(e,(0,u.A)({},t,{innerProps:{"aria-hidden":"true"},isDisabled:o,isFocused:i})):null}},{key:"renderIndicatorSeparator",value:function(){var e=this.getComponents(),t=e.DropdownIndicator,n=e.IndicatorSeparator;if(!t||!n)return null;var o=this.commonProps,r=this.props.isDisabled,i=this.state.isFocused;return l.createElement(n,(0,u.A)({},o,{isDisabled:r,isFocused:i}))}},{key:"renderDropdownIndicator",value:function(){var e=this.getComponents().DropdownIndicator;if(!e)return null;var t=this.commonProps,n=this.props.isDisabled,o=this.state.isFocused,r={onMouseDown:this.onDropdownIndicatorMouseDown,onTouchEnd:this.onDropdownIndicatorTouchEnd,"aria-hidden":"true"};return l.createElement(e,(0,u.A)({},t,{innerProps:r,isDisabled:n,isFocused:o}))}},{key:"renderMenu",value:function(){var e=this,t=this.getComponents(),n=t.Group,o=t.GroupHeading,r=t.Menu,i=t.MenuList,a=t.MenuPortal,s=t.LoadingMessage,c=t.NoOptionsMessage,d=t.Option,p=this.commonProps,f=this.state.focusedOption,g=this.props,h=g.captureMenuScroll,m=g.inputValue,b=g.isLoading,v=g.loadingMessage,w=g.minMenuHeight,y=g.maxMenuHeight,C=g.menuIsOpen,x=g.menuPlacement,S=g.menuPosition,O=g.menuPortalTarget,R=g.menuShouldBlockScroll,E=g.menuShouldScrollIntoView,k=g.noOptionsMessage,P=g.onMenuScrollToTop,A=g.onMenuScrollToBottom;if(!C)return null;var I,D=function(t,n){var o=t.type,r=t.data,i=t.isDisabled,a=t.isSelected,s=t.label,c=t.value,g=f===r,h=i?void 0:function(){return e.onOptionHover(r)},m=i?void 0:function(){return e.selectOption(r)},b="".concat(e.getElementId("option"),"-").concat(n),v={id:b,onClick:m,onMouseMove:h,onMouseOver:h,tabIndex:-1,role:"option","aria-selected":e.isAppleDevice?void 0:a};return l.createElement(d,(0,u.A)({},p,{innerProps:v,data:r,isDisabled:i,isSelected:a,key:b,label:s,type:o,value:c,isFocused:g,innerRef:g?e.getFocusedOptionRef:void 0}),e.formatOptionLabel(t.data,"menu"))};if(this.hasOptions())I=this.getCategorizedOptions().map((function(t){if("group"===t.type){var r=t.data,i=t.options,a=t.index,s="".concat(e.getElementId("group"),"-").concat(a),c="".concat(s,"-heading");return l.createElement(n,(0,u.A)({},p,{key:s,data:r,options:i,Heading:o,headingProps:{id:c,data:t.data},label:e.formatGroupLabel(t.data)}),t.options.map((function(e){return D(e,"".concat(a,"-").concat(e.index))})))}if("option"===t.type)return D(t,"".concat(t.index))}));else if(b){var M=v({inputValue:m});if(null===M)return null;I=l.createElement(s,p,M)}else{var F=k({inputValue:m});if(null===F)return null;I=l.createElement(c,p,F)}var T={minMenuHeight:w,maxMenuHeight:y,menuPlacement:x,menuPosition:S,menuShouldScrollIntoView:E},L=l.createElement(X,(0,u.A)({},p,T),(function(t){var n=t.ref,o=t.placerProps,a=o.placement,s=o.maxHeight;return l.createElement(r,(0,u.A)({},p,T,{innerRef:n,innerProps:{onMouseDown:e.onMenuMouseDown,onMouseMove:e.onMenuMouseMove},isLoading:b,placement:a}),l.createElement(Ue,{captureEnabled:h,onTopArrive:P,onBottomArrive:A,lockEnabled:R},(function(t){return l.createElement(i,(0,u.A)({},p,{innerRef:function(n){e.getMenuListRef(n),t(n)},innerProps:{role:"listbox","aria-multiselectable":p.isMulti,id:e.getElementId("listbox")},isLoading:b,maxHeight:s,focusedOption:f}),I)})))}));return O||"fixed"===S?l.createElement(a,(0,u.A)({},p,{appendTo:O,controlElement:this.controlRef,menuPlacement:x,menuPosition:S}),L):L}},{key:"renderFormField",value:function(){var e=this,t=this.props,n=t.delimiter,o=t.isDisabled,r=t.isMulti,i=t.name,a=t.required,s=this.state.selectValue;if(a&&!this.hasValue()&&!o)return l.createElement(qe,{name:i,onFocus:this.onValueInputFocus});if(i&&!o){if(r){if(n){var c=s.map((function(t){return e.getOptionValue(t)})).join(n);return l.createElement("input",{name:i,type:"hidden",value:c})}var u=s.length>0?s.map((function(t,n){return l.createElement("input",{key:"i-".concat(n),name:i,type:"hidden",value:e.getOptionValue(t)})})):l.createElement("input",{name:i,type:"hidden",value:""});return l.createElement("div",null,u)}var d=s[0]?this.getOptionValue(s[0]):"";return l.createElement("input",{name:i,type:"hidden",value:d})}}},{key:"renderLiveRegion",value:function(){var e=this.commonProps,t=this.state,n=t.ariaSelection,o=t.focusedOption,r=t.focusedValue,i=t.isFocused,a=t.selectValue,s=this.getFocusableOptions();return l.createElement(xe,(0,u.A)({},e,{id:this.getElementId("live-region"),ariaSelection:n,focusedOption:o,focusedValue:r,isFocused:i,selectValue:a,focusableOptions:s,isAppleDevice:this.isAppleDevice}))}},{key:"render",value:function(){var e=this.getComponents(),t=e.Control,n=e.IndicatorsContainer,o=e.SelectContainer,r=e.ValueContainer,i=this.props,a=i.className,s=i.id,c=i.isDisabled,d=i.menuIsOpen,p=this.state.isFocused,f=this.commonProps=this.getCommonProps();return l.createElement(o,(0,u.A)({},f,{className:a,innerProps:{id:s,onKeyDown:this.onKeyDown},isDisabled:c,isFocused:p}),this.renderLiveRegion(),l.createElement(t,(0,u.A)({},f,{innerRef:this.getControlRef,innerProps:{onMouseDown:this.onControlMouseDown,onTouchEnd:this.onControlTouchEnd},isDisabled:c,isFocused:p,menuIsOpen:d}),l.createElement(r,(0,u.A)({},f,{isDisabled:c}),this.renderPlaceholderOrValue(),this.renderInput()),l.createElement(n,(0,u.A)({},f,{isDisabled:c}),this.renderClearIndicator(),this.renderLoadingIndicator(),this.renderIndicatorSeparator(),this.renderDropdownIndicator())),this.renderMenu(),this.renderFormField())}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,o=t.clearFocusValueOnUpdate,r=t.inputIsHiddenAfterUpdate,a=t.ariaSelection,s=t.isFocused,l=t.prevWasFocused,c=t.instancePrefix,u=e.options,d=e.value,p=e.menuIsOpen,f=e.inputValue,g=e.isMulti,h=k(d),m={};if(n&&(d!==n.value||u!==n.options||p!==n.menuIsOpen||f!==n.inputValue)){var b=p?function(e,t){return nt(tt(e,t))}(e,h):[],v=p?ot(tt(e,h),"".concat(c,"-option")):[],w=o?function(e,t){var n=e.focusedValue,o=e.selectValue.indexOf(n);if(o>-1){if(t.indexOf(n)>-1)return n;if(o<t.length)return t[o]}return null}(t,h):null,y=function(e,t){var n=e.focusedOption;return n&&t.indexOf(n)>-1?n:t[0]}(t,b);m={selectValue:h,focusedOption:y,focusedOptionId:it(v,y),focusableOptionsWithIds:v,focusedValue:w,clearFocusValueOnUpdate:!1}}var C=null!=r&&e!==n?{inputIsHidden:r,inputIsHiddenAfterUpdate:void 0}:{},x=a,S=s&&l;return s&&!S&&(x={value:N(g,h,h[0]||null),options:h,action:"initial-input-focus"},S=!l),"initial-input-focus"===(null==a?void 0:a.action)&&(x=null),i(i(i({},m),C),{},{prevProps:e,ariaSelection:x,prevWasFocused:S})}}]),r}(l.Component);ft.defaultProps=Qe,n(4300);var gt=(0,l.forwardRef)((function(e,t){var n=function(e){var t=e.defaultInputValue,n=void 0===t?"":t,o=e.defaultMenuIsOpen,r=void 0!==o&&o,u=e.defaultValue,d=void 0===u?null:u,p=e.inputValue,f=e.menuIsOpen,g=e.onChange,h=e.onInputChange,m=e.onMenuClose,b=e.onMenuOpen,v=e.value,w=(0,s.A)(e,c),y=(0,l.useState)(void 0!==p?p:n),C=(0,a.A)(y,2),x=C[0],S=C[1],O=(0,l.useState)(void 0!==f?f:r),R=(0,a.A)(O,2),E=R[0],k=R[1],P=(0,l.useState)(void 0!==v?v:d),A=(0,a.A)(P,2),I=A[0],D=A[1],M=(0,l.useCallback)((function(e,t){"function"==typeof g&&g(e,t),D(e)}),[g]),F=(0,l.useCallback)((function(e,t){var n;"function"==typeof h&&(n=h(e,t)),S(void 0!==n?n:e)}),[h]),T=(0,l.useCallback)((function(){"function"==typeof b&&b(),k(!0)}),[b]),L=(0,l.useCallback)((function(){"function"==typeof m&&m(),k(!1)}),[m]),V=void 0!==p?p:x,H=void 0!==f?f:E,$=void 0!==v?v:I;return i(i({},w),{},{inputValue:V,menuIsOpen:H,onChange:M,onInputChange:F,onMenuClose:L,onMenuOpen:T,value:$})}(e);return l.createElement(ft,(0,u.A)({ref:t},n))})),ht=gt},2833:e=>{e.exports=function(e,t,n,o){var r=n?n.call(o,e,t):void 0;if(void 0!==r)return!!r;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),l=0;l<i.length;l++){var c=i[l];if(!s(c))return!1;var u=e[c],d=t[c];if(!1===(r=n?n.call(o,u,d,c):void 0)||void 0===r&&u!==d)return!1}return!0}},5713:(e,t,n)=>{"use strict";n.r(t),n.d(t,{ServerStyleSheet:()=>_e,StyleSheetConsumer:()=>re,StyleSheetContext:()=>oe,StyleSheetManager:()=>ue,ThemeConsumer:()=>Me,ThemeContext:()=>De,ThemeProvider:()=>Fe,__PRIVATE__:()=>Be,createGlobalStyle:()=>$e,css:()=>ye,default:()=>Ye,isStyledComponent:()=>y,keyframes:()=>je,useTheme:()=>ze,version:()=>x,withTheme:()=>Ne});var o=n(4363),r=n(1609),i=n.n(r),a=n(2833),s=n.n(a);const l=function(e){function t(e,o,l,c,p){for(var f,g,h,m,y,x=0,S=0,O=0,R=0,E=0,M=0,T=h=f=0,V=0,H=0,$=0,j=0,_=l.length,N=_-1,z="",B="",Y="",W="";V<_;){if(g=l.charCodeAt(V),V===N&&0!==S+R+O+x&&(0!==S&&(g=47===S?10:47),R=O=x=0,_++,N++),0===S+R+O+x){if(V===N&&(0<H&&(z=z.replace(d,"")),0<z.trim().length)){switch(g){case 32:case 9:case 59:case 13:case 10:break;default:z+=l.charAt(V)}g=59}switch(g){case 123:for(f=(z=z.trim()).charCodeAt(0),h=1,j=++V;V<_;){switch(g=l.charCodeAt(V)){case 123:h++;break;case 125:h--;break;case 47:switch(g=l.charCodeAt(V+1)){case 42:case 47:e:{for(T=V+1;T<N;++T)switch(l.charCodeAt(T)){case 47:if(42===g&&42===l.charCodeAt(T-1)&&V+2!==T){V=T+1;break e}break;case 10:if(47===g){V=T+1;break e}}V=T}}break;case 91:g++;case 40:g++;case 34:case 39:for(;V++<N&&l.charCodeAt(V)!==g;);}if(0===h)break;V++}if(h=l.substring(j,V),0===f&&(f=(z=z.replace(u,"").trim()).charCodeAt(0)),64===f){switch(0<H&&(z=z.replace(d,"")),g=z.charCodeAt(1)){case 100:case 109:case 115:case 45:H=o;break;default:H=D}if(j=(h=t(o,H,h,g,p+1)).length,0<F&&(y=s(3,h,H=n(D,z,$),o,P,k,j,g,p,c),z=H.join(""),void 0!==y&&0===(j=(h=y.trim()).length)&&(g=0,h="")),0<j)switch(g){case 115:z=z.replace(C,a);case 100:case 109:case 45:h=z+"{"+h+"}";break;case 107:h=(z=z.replace(b,"$1 $2"))+"{"+h+"}",h=1===I||2===I&&i("@"+h,3)?"@-webkit-"+h+"@"+h:"@"+h;break;default:h=z+h,112===c&&(B+=h,h="")}else h=""}else h=t(o,n(o,z,$),h,c,p+1);Y+=h,h=$=H=T=f=0,z="",g=l.charCodeAt(++V);break;case 125:case 59:if(1<(j=(z=(0<H?z.replace(d,""):z).trim()).length))switch(0===T&&(f=z.charCodeAt(0),45===f||96<f&&123>f)&&(j=(z=z.replace(" ",":")).length),0<F&&void 0!==(y=s(1,z,o,e,P,k,B.length,c,p,c))&&0===(j=(z=y.trim()).length)&&(z="\0\0"),f=z.charCodeAt(0),g=z.charCodeAt(1),f){case 0:break;case 64:if(105===g||99===g){W+=z+l.charAt(V);break}default:58!==z.charCodeAt(j-1)&&(B+=r(z,f,g,z.charCodeAt(2)))}$=H=T=f=0,z="",g=l.charCodeAt(++V)}}switch(g){case 13:case 10:47===S?S=0:0===1+f&&107!==c&&0<z.length&&(H=1,z+="\0"),0<F*L&&s(0,z,o,e,P,k,B.length,c,p,c),k=1,P++;break;case 59:case 125:if(0===S+R+O+x){k++;break}default:switch(k++,m=l.charAt(V),g){case 9:case 32:if(0===R+x+S)switch(E){case 44:case 58:case 9:case 32:m="";break;default:32!==g&&(m=" ")}break;case 0:m="\\0";break;case 12:m="\\f";break;case 11:m="\\v";break;case 38:0===R+S+x&&(H=$=1,m="\f"+m);break;case 108:if(0===R+S+x+A&&0<T)switch(V-T){case 2:112===E&&58===l.charCodeAt(V-3)&&(A=E);case 8:111===M&&(A=M)}break;case 58:0===R+S+x&&(T=V);break;case 44:0===S+O+R+x&&(H=1,m+="\r");break;case 34:case 39:0===S&&(R=R===g?0:0===R?g:R);break;case 91:0===R+S+O&&x++;break;case 93:0===R+S+O&&x--;break;case 41:0===R+S+x&&O--;break;case 40:0===R+S+x&&(0===f&&(2*E+3*M==533||(f=1)),O++);break;case 64:0===S+O+R+x+T+h&&(h=1);break;case 42:case 47:if(!(0<R+x+O))switch(S){case 0:switch(2*g+3*l.charCodeAt(V+1)){case 235:S=47;break;case 220:j=V,S=42}break;case 42:47===g&&42===E&&j+2!==V&&(33===l.charCodeAt(j+2)&&(B+=l.substring(j,V+1)),m="",S=0)}}0===S&&(z+=m)}M=E,E=g,V++}if(0<(j=B.length)){if(H=o,0<F&&void 0!==(y=s(2,B,H,e,P,k,j,c,p,c))&&0===(B=y).length)return W+B+Y;if(B=H.join(",")+"{"+B+"}",0!=I*A){switch(2!==I||i(B,2)||(A=0),A){case 111:B=B.replace(w,":-moz-$1")+B;break;case 112:B=B.replace(v,"::-webkit-input-$1")+B.replace(v,"::-moz-$1")+B.replace(v,":-ms-input-$1")+B}A=0}}return W+B+Y}function n(e,t,n){var r=t.trim().split(h);t=r;var i=r.length,a=e.length;switch(a){case 0:case 1:var s=0;for(e=0===a?"":e[0]+" ";s<i;++s)t[s]=o(e,t[s],n).trim();break;default:var l=s=0;for(t=[];s<i;++s)for(var c=0;c<a;++c)t[l++]=o(e[c]+" ",r[s],n).trim()}return t}function o(e,t,n){var o=t.charCodeAt(0);switch(33>o&&(o=(t=t.trim()).charCodeAt(0)),o){case 38:return t.replace(m,"$1"+e.trim());case 58:return e.trim()+t.replace(m,"$1"+e.trim());default:if(0<1*n&&0<t.indexOf("\f"))return t.replace(m,(58===e.charCodeAt(0)?"":"$1")+e.trim())}return e+t}function r(e,t,n,o){var a=e+";",s=2*t+3*n+4*o;if(944===s){e=a.indexOf(":",9)+1;var l=a.substring(e,a.length-1).trim();return l=a.substring(0,e).trim()+l+";",1===I||2===I&&i(l,1)?"-webkit-"+l+l:l}if(0===I||2===I&&!i(a,1))return a;switch(s){case 1015:return 97===a.charCodeAt(10)?"-webkit-"+a+a:a;case 951:return 116===a.charCodeAt(3)?"-webkit-"+a+a:a;case 963:return 110===a.charCodeAt(5)?"-webkit-"+a+a:a;case 1009:if(100!==a.charCodeAt(4))break;case 969:case 942:return"-webkit-"+a+a;case 978:return"-webkit-"+a+"-moz-"+a+a;case 1019:case 983:return"-webkit-"+a+"-moz-"+a+"-ms-"+a+a;case 883:if(45===a.charCodeAt(8))return"-webkit-"+a+a;if(0<a.indexOf("image-set(",11))return a.replace(E,"$1-webkit-$2")+a;break;case 932:if(45===a.charCodeAt(4))switch(a.charCodeAt(5)){case 103:return"-webkit-box-"+a.replace("-grow","")+"-webkit-"+a+"-ms-"+a.replace("grow","positive")+a;case 115:return"-webkit-"+a+"-ms-"+a.replace("shrink","negative")+a;case 98:return"-webkit-"+a+"-ms-"+a.replace("basis","preferred-size")+a}return"-webkit-"+a+"-ms-"+a+a;case 964:return"-webkit-"+a+"-ms-flex-"+a+a;case 1023:if(99!==a.charCodeAt(8))break;return"-webkit-box-pack"+(l=a.substring(a.indexOf(":",15)).replace("flex-","").replace("space-between","justify"))+"-webkit-"+a+"-ms-flex-pack"+l+a;case 1005:return f.test(a)?a.replace(p,":-webkit-")+a.replace(p,":-moz-")+a:a;case 1e3:switch(t=(l=a.substring(13).trim()).indexOf("-")+1,l.charCodeAt(0)+l.charCodeAt(t)){case 226:l=a.replace(y,"tb");break;case 232:l=a.replace(y,"tb-rl");break;case 220:l=a.replace(y,"lr");break;default:return a}return"-webkit-"+a+"-ms-"+l+a;case 1017:if(-1===a.indexOf("sticky",9))break;case 975:switch(t=(a=e).length-10,s=(l=(33===a.charCodeAt(t)?a.substring(0,t):a).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(111>l.charCodeAt(8))break;case 115:a=a.replace(l,"-webkit-"+l)+";"+a;break;case 207:case 102:a=a.replace(l,"-webkit-"+(102<s?"inline-":"")+"box")+";"+a.replace(l,"-webkit-"+l)+";"+a.replace(l,"-ms-"+l+"box")+";"+a}return a+";";case 938:if(45===a.charCodeAt(5))switch(a.charCodeAt(6)){case 105:return l=a.replace("-items",""),"-webkit-"+a+"-webkit-box-"+l+"-ms-flex-"+l+a;case 115:return"-webkit-"+a+"-ms-flex-item-"+a.replace(S,"")+a;default:return"-webkit-"+a+"-ms-flex-line-pack"+a.replace("align-content","").replace(S,"")+a}break;case 973:case 989:if(45!==a.charCodeAt(3)||122===a.charCodeAt(4))break;case 931:case 953:if(!0===R.test(e))return 115===(l=e.substring(e.indexOf(":")+1)).charCodeAt(0)?r(e.replace("stretch","fill-available"),t,n,o).replace(":fill-available",":stretch"):a.replace(l,"-webkit-"+l)+a.replace(l,"-moz-"+l.replace("fill-",""))+a;break;case 962:if(a="-webkit-"+a+(102===a.charCodeAt(5)?"-ms-"+a:"")+a,211===n+o&&105===a.charCodeAt(13)&&0<a.indexOf("transform",10))return a.substring(0,a.indexOf(";",27)+1).replace(g,"$1-webkit-$2")+a}return a}function i(e,t){var n=e.indexOf(1===t?":":"{"),o=e.substring(0,3!==t?n:10);return n=e.substring(n+1,e.length-1),T(2!==t?o:o.replace(O,"$1"),n,t)}function a(e,t){var n=r(t,t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2));return n!==t+";"?n.replace(x," or ($1)").substring(4):"("+t+")"}function s(e,t,n,o,r,i,a,s,l,u){for(var d,p=0,f=t;p<F;++p)switch(d=M[p].call(c,e,f,n,o,r,i,a,s,l,u)){case void 0:case!1:case!0:case null:break;default:f=d}if(f!==t)return f}function l(e){return void 0!==(e=e.prefix)&&(T=null,e?"function"!=typeof e?I=1:(I=2,T=e):I=0),l}function c(e,n){var o=e;if(33>o.charCodeAt(0)&&(o=o.trim()),o=[o],0<F){var r=s(-1,n,o,o,P,k,0,0,0,0);void 0!==r&&"string"==typeof r&&(n=r)}var i=t(D,o,n,0,0);return 0<F&&void 0!==(r=s(-2,i,o,o,P,k,i.length,0,0,0))&&(i=r),A=0,k=P=1,i}var u=/^\0+/g,d=/[\0\r\f]/g,p=/: */g,f=/zoo|gra/,g=/([,: ])(transform)/g,h=/,\r+?/g,m=/([\t\r\n ])*\f?&/g,b=/@(k\w+)\s*(\S*)\s*/,v=/::(place)/g,w=/:(read-only)/g,y=/[svh]\w+-[tblr]{2}/,C=/\(\s*(.*)\s*\)/g,x=/([\s\S]*?);/g,S=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\w-]+)[^]*/,R=/stretch|:\s*\w+\-(?:conte|avail)/,E=/([^-])(image-set\()/,k=1,P=1,A=0,I=1,D=[],M=[],F=0,T=null,L=0;return c.use=function e(t){switch(t){case void 0:case null:F=M.length=0;break;default:if("function"==typeof t)M[F++]=t;else if("object"==typeof t)for(var n=0,o=t.length;n<o;++n)e(t[n]);else L=0|!!t}return e},c.set=l,void 0!==e&&l(e),c},c={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var u=n(1907),d=n(4146),p=n.n(d);function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}var g=function(e,t){for(var n=[e[0]],o=0,r=t.length;o<r;o+=1)n.push(t[o],e[o+1]);return n},h=function(e){return null!==e&&"object"==typeof e&&"[object Object]"===(e.toString?e.toString():Object.prototype.toString.call(e))&&!(0,o.typeOf)(e)},m=Object.freeze([]),b=Object.freeze({});function v(e){return"function"==typeof e}function w(e){return e.displayName||e.name||"Component"}function y(e){return e&&"string"==typeof e.styledComponentId}var C="undefined"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||"data-styled",x="5.3.11",S="undefined"!=typeof window&&"HTMLElement"in window,O=Boolean("boolean"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:"undefined"!=typeof process&&void 0!==process.env&&(void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&""!==process.env.REACT_APP_SC_DISABLE_SPEEDY?"false"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:void 0!==process.env.SC_DISABLE_SPEEDY&&""!==process.env.SC_DISABLE_SPEEDY&&"false"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY)),R={};function E(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];throw new Error("An error occurred. See https://git.io/JUIaE#"+e+" for more information."+(n.length>0?" Args: "+n.join(", "):""))}var k=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,n=0;n<e;n++)t+=this.groupSizes[n];return t},t.insertRules=function(e,t){if(e>=this.groupSizes.length){for(var n=this.groupSizes,o=n.length,r=o;e>=r;)(r<<=1)<0&&E(16,""+e);this.groupSizes=new Uint32Array(r),this.groupSizes.set(n),this.length=r;for(var i=o;i<r;i++)this.groupSizes[i]=0}for(var a=this.indexOfGroup(e+1),s=0,l=t.length;s<l;s++)this.tag.insertRule(a,t[s])&&(this.groupSizes[e]++,a++)},t.clearGroup=function(e){if(e<this.length){var t=this.groupSizes[e],n=this.indexOfGroup(e),o=n+t;this.groupSizes[e]=0;for(var r=n;r<o;r++)this.tag.deleteRule(n)}},t.getGroup=function(e){var t="";if(e>=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],o=this.indexOfGroup(e),r=o+n,i=o;i<r;i++)t+=this.tag.getRule(i)+"/*!sc*/\n";return t},e}(),P=new Map,A=new Map,I=1,D=function(e){if(P.has(e))return P.get(e);for(;A.has(I);)I++;var t=I++;return P.set(e,t),A.set(t,e),t},M=function(e){return A.get(e)},F=function(e,t){t>=I&&(I=t+1),P.set(e,t),A.set(t,e)},T="style["+C+'][data-styled-version="5.3.11"]',L=new RegExp("^"+C+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),V=function(e,t,n){for(var o,r=n.split(","),i=0,a=r.length;i<a;i++)(o=r[i])&&e.registerName(t,o)},H=function(e,t){for(var n=(t.textContent||"").split("/*!sc*/\n"),o=[],r=0,i=n.length;r<i;r++){var a=n[r].trim();if(a){var s=a.match(L);if(s){var l=0|parseInt(s[1],10),c=s[2];0!==l&&(F(c,l),V(e,c,s[3]),e.getTag().insertRules(l,o)),o.length=0}else o.push(a)}}},$=function(){return n.nc},j=function(e){var t=document.head,n=e||t,o=document.createElement("style"),r=function(e){for(var t=e.childNodes,n=t.length;n>=0;n--){var o=t[n];if(o&&1===o.nodeType&&o.hasAttribute(C))return o}}(n),i=void 0!==r?r.nextSibling:null;o.setAttribute(C,"active"),o.setAttribute("data-styled-version","5.3.11");var a=$();return a&&o.setAttribute("nonce",a),n.insertBefore(o,i),o},_=function(){function e(e){var t=this.element=j(e);t.appendChild(document.createTextNode("")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,o=t.length;n<o;n++){var r=t[n];if(r.ownerNode===e)return r}E(17)}(t),this.length=0}var t=e.prototype;return t.insertRule=function(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}},t.deleteRule=function(e){this.sheet.deleteRule(e),this.length--},t.getRule=function(e){var t=this.sheet.cssRules[e];return void 0!==t&&"string"==typeof t.cssText?t.cssText:""},e}(),N=function(){function e(e){var t=this.element=j(e);this.nodes=t.childNodes,this.length=0}var t=e.prototype;return t.insertRule=function(e,t){if(e<=this.length&&e>=0){var n=document.createTextNode(t),o=this.nodes[e];return this.element.insertBefore(n,o||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e<this.length?this.nodes[e].textContent:""},e}(),z=function(){function e(e){this.rules=[],this.length=0}var t=e.prototype;return t.insertRule=function(e,t){return e<=this.length&&(this.rules.splice(e,0,t),this.length++,!0)},t.deleteRule=function(e){this.rules.splice(e,1),this.length--},t.getRule=function(e){return e<this.length?this.rules[e]:""},e}(),B=S,Y={isServer:!S,useCSSOMInjection:!O},W=function(){function e(e,t,n){void 0===e&&(e=b),void 0===t&&(t={}),this.options=f({},Y,{},e),this.gs=t,this.names=new Map(n),this.server=!!e.isServer,!this.server&&S&&B&&(B=!1,function(e){for(var t=document.querySelectorAll(T),n=0,o=t.length;n<o;n++){var r=t[n];r&&"active"!==r.getAttribute(C)&&(H(e,r),r.parentNode&&r.parentNode.removeChild(r))}}(this))}e.registerId=function(e){return D(e)};var t=e.prototype;return t.reconstructWithOptions=function(t,n){return void 0===n&&(n=!0),new e(f({},this.options,{},t),this.gs,n&&this.names||void 0)},t.allocateGSInstance=function(e){return this.gs[e]=(this.gs[e]||0)+1},t.getTag=function(){return this.tag||(this.tag=(n=(t=this.options).isServer,o=t.useCSSOMInjection,r=t.target,e=n?new z(r):o?new _(r):new N(r),new k(e)));var e,t,n,o,r},t.hasNameForId=function(e,t){return this.names.has(e)&&this.names.get(e).has(t)},t.registerName=function(e,t){if(D(e),this.names.has(e))this.names.get(e).add(t);else{var n=new Set;n.add(t),this.names.set(e,n)}},t.insertRules=function(e,t,n){this.registerName(e,t),this.getTag().insertRules(D(e),n)},t.clearNames=function(e){this.names.has(e)&&this.names.get(e).clear()},t.clearRules=function(e){this.getTag().clearGroup(D(e)),this.clearNames(e)},t.clearTag=function(){this.tag=void 0},t.toString=function(){return function(e){for(var t=e.getTag(),n=t.length,o="",r=0;r<n;r++){var i=M(r);if(void 0!==i){var a=e.names.get(i),s=t.getGroup(r);if(a&&s&&a.size){var l=C+".g"+r+'[id="'+i+'"]',c="";void 0!==a&&a.forEach((function(e){e.length>0&&(c+=e+",")})),o+=""+s+l+'{content:"'+c+'"}/*!sc*/\n'}}}return o}(this)},e}(),U=/(a)(d)/gi,G=function(e){return String.fromCharCode(e+(e>25?39:97))};function q(e){var t,n="";for(t=Math.abs(e);t>52;t=t/52|0)n=G(t%52)+n;return(G(t%52)+n).replace(U,"$1-$2")}var X=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},K=function(e){return X(5381,e)};function Z(e){for(var t=0;t<e.length;t+=1){var n=e[t];if(v(n)&&!y(n))return!1}return!0}var J=K("5.3.11"),Q=function(){function e(e,t,n){this.rules=e,this.staticRulesId="",this.isStatic=(void 0===n||n.isStatic)&&Z(e),this.componentId=t,this.baseHash=X(J,t),this.baseStyle=n,W.registerId(t)}return e.prototype.generateAndInjectStyles=function(e,t,n){var o=this.componentId,r=[];if(this.baseStyle&&r.push(this.baseStyle.generateAndInjectStyles(e,t,n)),this.isStatic&&!n.hash)if(this.staticRulesId&&t.hasNameForId(o,this.staticRulesId))r.push(this.staticRulesId);else{var i=ve(this.rules,e,t,n).join(""),a=q(X(this.baseHash,i)>>>0);if(!t.hasNameForId(o,a)){var s=n(i,"."+a,void 0,o);t.insertRules(o,a,s)}r.push(a),this.staticRulesId=a}else{for(var l=this.rules.length,c=X(this.baseHash,n.hash),u="",d=0;d<l;d++){var p=this.rules[d];if("string"==typeof p)u+=p;else if(p){var f=ve(p,e,t,n),g=Array.isArray(f)?f.join(""):f;c=X(c,g+d),u+=g}}if(u){var h=q(c>>>0);if(!t.hasNameForId(o,h)){var m=n(u,"."+h,void 0,o);t.insertRules(o,h,m)}r.push(h)}}return r.join(" ")},e}(),ee=/^\s*\/\/.*$/gm,te=[":","[",".","#"];function ne(e){var t,n,o,r,i=void 0===e?b:e,a=i.options,s=void 0===a?b:a,c=i.plugins,u=void 0===c?m:c,d=new l(s),p=[],f=function(e){function t(t){if(t)try{e(t+"}")}catch(e){}}return function(n,o,r,i,a,s,l,c,u,d){switch(n){case 1:if(0===u&&64===o.charCodeAt(0))return e(o+";"),"";break;case 2:if(0===c)return o+"/*|*/";break;case 3:switch(c){case 102:case 112:return e(r[0]+o),"";default:return o+(0===d?"/*|*/":"")}case-2:o.split("/*|*/}").forEach(t)}}}((function(e){p.push(e)})),g=function(e,o,i){return 0===o&&-1!==te.indexOf(i[n.length])||i.match(r)?e:"."+t};function h(e,i,a,s){void 0===s&&(s="&");var l=e.replace(ee,""),c=i&&a?a+" "+i+" { "+l+" }":l;return t=s,n=i,o=new RegExp("\\"+n+"\\b","g"),r=new RegExp("(\\"+n+"\\b){2,}"),d(a||!i?"":i,c)}return d.use([].concat(u,[function(e,t,r){2===e&&r.length&&r[0].lastIndexOf(n)>0&&(r[0]=r[0].replace(o,g))},f,function(e){if(-2===e){var t=p;return p=[],t}}])),h.hash=u.length?u.reduce((function(e,t){return t.name||E(15),X(e,t.name)}),5381).toString():"",h}var oe=i().createContext(),re=oe.Consumer,ie=i().createContext(),ae=(ie.Consumer,new W),se=ne();function le(){return(0,r.useContext)(oe)||ae}function ce(){return(0,r.useContext)(ie)||se}function ue(e){var t=(0,r.useState)(e.stylisPlugins),n=t[0],o=t[1],a=le(),l=(0,r.useMemo)((function(){var t=a;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target]),c=(0,r.useMemo)((function(){return ne({options:{prefix:!e.disableVendorPrefixes},plugins:n})}),[e.disableVendorPrefixes,n]);return(0,r.useEffect)((function(){s()(n,e.stylisPlugins)||o(e.stylisPlugins)}),[e.stylisPlugins]),i().createElement(oe.Provider,{value:l},i().createElement(ie.Provider,{value:c},e.children))}var de=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=se);var o=n.name+t.hash;e.hasNameForId(n.id,o)||e.insertRules(n.id,o,t(n.rules,o,"@keyframes"))},this.toString=function(){return E(12,String(n.name))},this.name=e,this.id="sc-keyframes-"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=se),this.name+e.hash},e}(),pe=/([A-Z])/,fe=/([A-Z])/g,ge=/^ms-/,he=function(e){return"-"+e.toLowerCase()};function me(e){return pe.test(e)?e.replace(fe,he).replace(ge,"-ms-"):e}var be=function(e){return null==e||!1===e||""===e};function ve(e,t,n,o){if(Array.isArray(e)){for(var r,i=[],a=0,s=e.length;a<s;a+=1)""!==(r=ve(e[a],t,n,o))&&(Array.isArray(r)?i.push.apply(i,r):i.push(r));return i}return be(e)?"":y(e)?"."+e.styledComponentId:v(e)?"function"!=typeof(l=e)||l.prototype&&l.prototype.isReactComponent||!t?e:ve(e(t),t,n,o):e instanceof de?n?(e.inject(n,o),e.getName(o)):e:h(e)?function e(t,n){var o,r,i=[];for(var a in t)t.hasOwnProperty(a)&&!be(t[a])&&(Array.isArray(t[a])&&t[a].isCss||v(t[a])?i.push(me(a)+":",t[a],";"):h(t[a])?i.push.apply(i,e(t[a],a)):i.push(me(a)+": "+(o=a,(null==(r=t[a])||"boolean"==typeof r||""===r?"":"number"!=typeof r||0===r||o in c||o.startsWith("--")?String(r).trim():r+"px")+";")));return n?[n+" {"].concat(i,["}"]):i}(e):e.toString();var l}var we=function(e){return Array.isArray(e)&&(e.isCss=!0),e};function ye(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];return v(e)||h(e)?we(ve(g(m,[e].concat(n)))):0===n.length&&1===e.length&&"string"==typeof e[0]?e:we(ve(g(e,n)))}new Set;var Ce=function(e,t,n){return void 0===n&&(n=b),e.theme!==n.theme&&e.theme||t||n.theme},xe=/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~-]+/g,Se=/(^-|-$)/g;function Oe(e){return e.replace(xe,"-").replace(Se,"")}var Re=function(e){return q(K(e)>>>0)};function Ee(e){return"string"==typeof e&&!0}var ke=function(e){return"function"==typeof e||"object"==typeof e&&null!==e&&!Array.isArray(e)},Pe=function(e){return"__proto__"!==e&&"constructor"!==e&&"prototype"!==e};function Ae(e,t,n){var o=e[n];ke(t)&&ke(o)?Ie(o,t):e[n]=t}function Ie(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];for(var r=0,i=n;r<i.length;r++){var a=i[r];if(ke(a))for(var s in a)Pe(s)&&Ae(e,a[s],s)}return e}var De=i().createContext(),Me=De.Consumer;function Fe(e){var t=(0,r.useContext)(De),n=(0,r.useMemo)((function(){return function(e,t){return e?v(e)?e(t):Array.isArray(e)||"object"!=typeof e?E(8):t?f({},t,{},e):e:E(14)}(e.theme,t)}),[e.theme,t]);return e.children?i().createElement(De.Provider,{value:n},e.children):null}var Te={};function Le(e,t,n){var o=y(e),a=!Ee(e),s=t.attrs,l=void 0===s?m:s,c=t.componentId,d=void 0===c?function(e,t){var n="string"!=typeof e?"sc":Oe(e);Te[n]=(Te[n]||0)+1;var o=n+"-"+Re("5.3.11"+n+Te[n]);return t?t+"-"+o:o}(t.displayName,t.parentComponentId):c,g=t.displayName,h=void 0===g?function(e){return Ee(e)?"styled."+e:"Styled("+w(e)+")"}(e):g,C=t.displayName&&t.componentId?Oe(t.displayName)+"-"+t.componentId:t.componentId||d,x=o&&e.attrs?Array.prototype.concat(e.attrs,l).filter(Boolean):l,S=t.shouldForwardProp;o&&e.shouldForwardProp&&(S=t.shouldForwardProp?function(n,o,r){return e.shouldForwardProp(n,o,r)&&t.shouldForwardProp(n,o,r)}:e.shouldForwardProp);var O,R=new Q(n,C,o?e.componentStyle:void 0),E=R.isStatic&&0===l.length,k=function(e,t){return function(e,t,n,o){var i=e.attrs,a=e.componentStyle,s=e.defaultProps,l=e.foldedComponentIds,c=e.shouldForwardProp,d=e.styledComponentId,p=e.target,g=function(e,t,n){void 0===e&&(e=b);var o=f({},t,{theme:e}),r={};return n.forEach((function(e){var t,n,i,a=e;for(t in v(a)&&(a=a(o)),a)o[t]=r[t]="className"===t?(n=r[t],i=a[t],n&&i?n+" "+i:n||i):a[t]})),[o,r]}(Ce(t,(0,r.useContext)(De),s)||b,t,i),h=g[0],m=g[1],w=function(e,t,n,o){var r=le(),i=ce();return t?e.generateAndInjectStyles(b,r,i):e.generateAndInjectStyles(n,r,i)}(a,o,h),y=n,C=m.$as||t.$as||m.as||t.as||p,x=Ee(C),S=m!==t?f({},t,{},m):t,O={};for(var R in S)"$"!==R[0]&&"as"!==R&&("forwardedAs"===R?O.as=S[R]:(c?c(R,u.A,C):!x||(0,u.A)(R))&&(O[R]=S[R]));return t.style&&m.style!==t.style&&(O.style=f({},t.style,{},m.style)),O.className=Array.prototype.concat(l,d,w!==d?w:null,t.className,m.className).filter(Boolean).join(" "),O.ref=y,(0,r.createElement)(C,O)}(O,e,t,E)};return k.displayName=h,(O=i().forwardRef(k)).attrs=x,O.componentStyle=R,O.displayName=h,O.shouldForwardProp=S,O.foldedComponentIds=o?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):m,O.styledComponentId=C,O.target=o?e.target:e,O.withComponent=function(e){var o=t.componentId,r=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(t,["componentId"]),i=o&&o+"-"+(Ee(e)?e:Oe(w(e)));return Le(e,f({},r,{attrs:x,componentId:i}),n)},Object.defineProperty(O,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=o?Ie({},e.defaultProps,t):t}}),Object.defineProperty(O,"toString",{value:function(){return"."+O.styledComponentId}}),a&&p()(O,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),O}var Ve=function(e){return function e(t,n,r){if(void 0===r&&(r=b),!(0,o.isValidElementType)(n))return E(1,String(n));var i=function(){return t(n,r,ye.apply(void 0,arguments))};return i.withConfig=function(o){return e(t,n,f({},r,{},o))},i.attrs=function(o){return e(t,n,f({},r,{attrs:Array.prototype.concat(r.attrs,o).filter(Boolean)}))},i}(Le,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach((function(e){Ve[e]=Ve(e)}));var He=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=Z(e),W.registerId(this.componentId+1)}var t=e.prototype;return t.createStyles=function(e,t,n,o){var r=o(ve(this.rules,t,n,o).join(""),""),i=this.componentId+e;n.insertRules(i,i,r)},t.removeStyles=function(e,t){t.clearRules(this.componentId+e)},t.renderStyles=function(e,t,n,o){e>2&&W.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,o)},e}();function $e(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];var a=ye.apply(void 0,[e].concat(n)),s="sc-global-"+Re(JSON.stringify(a)),l=new He(a,s);function c(e){var t=le(),n=ce(),o=(0,r.useContext)(De),i=(0,r.useRef)(t.allocateGSInstance(s)).current;return t.server&&u(i,e,t,o,n),(0,r.useLayoutEffect)((function(){if(!t.server)return u(i,e,t,o,n),function(){return l.removeStyles(i,t)}}),[i,e,t,o,n]),null}function u(e,t,n,o,r){if(l.isStatic)l.renderStyles(e,R,n,r);else{var i=f({},t,{theme:Ce(t,o,c.defaultProps)});l.renderStyles(e,i,n,r)}}return i().memo(c)}function je(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];var r=ye.apply(void 0,[e].concat(n)).join(""),i=Re(r);return new de(i,r)}var _e=function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return"";var n=$();return"<style "+[n&&'nonce="'+n+'"',C+'="true"','data-styled-version="5.3.11"'].filter(Boolean).join(" ")+">"+t+"</style>"},this.getStyleTags=function(){return e.sealed?E(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return E(2);var n=((t={})[C]="",t["data-styled-version"]="5.3.11",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),o=$();return o&&(n.nonce=o),[i().createElement("style",f({},n,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new W({isServer:!0}),this.sealed=!1}var t=e.prototype;return t.collectStyles=function(e){return this.sealed?E(2):i().createElement(ue,{sheet:this.instance},e)},t.interleaveWithNodeStream=function(e){return E(3)},e}(),Ne=function(e){var t=i().forwardRef((function(t,n){var o=(0,r.useContext)(De),a=e.defaultProps,s=Ce(t,o,a);return i().createElement(e,f({},t,{theme:s,ref:n}))}));return p()(t,e),t.displayName="WithTheme("+w(e)+")",t},ze=function(){return(0,r.useContext)(De)},Be={StyleSheet:W,masterSheet:ae};const Ye=Ve}}]);PK�������!�_(������3��settings/build/index.949c228dda25c895581b.asset.phpnu�[��������<?php return array('dependencies' => array('react', 'react-dom', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-notices'), 'version' => '949c228dda25c895581b'); PK�������!�#: �� ��*��settings/build/588.2934ac808737314da558.jsnu�[��������"use strict";(globalThis.webpackChunkreally_simple_ssl=globalThis.webpackChunkreally_simple_ssl||[]).push([[588],{3588:(e,s,t)=>{t.r(s),t.d(s,{default:()=>d});var l=t(1609);const m=()=>(0,l.createElement)("div",{className:"rsssl-wizard-menu rsssl-grid-item rsssl-menu-placeholder"},(0,l.createElement)("div",{className:"rsssl-grid-item-header"},(0,l.createElement)("h1",{className:"rsssl-h4"})),(0,l.createElement)("div",{className:"rsssl-grid-item-content"}));var n=t(7723),a=t(2043);const r=e=>{const{selectedSubMenuItem:s,selectedMainMenuItem:t,subMenu:m,menu:i}=(0,a.A)(),c=u(s,e.menuItem);let d=c?" rsssl-active":"";d+=e.menuItem.featured?" rsssl-featured":"",d+=e.menuItem.new?" rsssl-new":"",d+=e.menuItem.premium&&!rsssl_settings.pro_plugin_active?" rsssl-premium":"";let p=e.menuItem.directLink||"#"+t+"/"+e.menuItem.id;return(0,l.createElement)(l.Fragment,null,e.menuItem.visible&&(0,l.createElement)(l.Fragment,null,e.isMainMenu?(0,l.createElement)("div",{className:"rsssl-main-menu"},(0,l.createElement)("div",{className:"rsssl-menu-item"+d},(0,l.createElement)("a",{href:p},(0,l.createElement)("span",null,e.menuItem.title),e.menuItem.featured&&(0,l.createElement)("span",{className:"rsssl-menu-item-beta-pill"},(0,n.__)("Beta","really-simple-ssl")),e.menuItem.new&&(0,l.createElement)("span",{className:"rsssl-menu-item-new-pill"},(0,n.__)("New","really-simple-ssl"))))):(0,l.createElement)("div",{className:"rsssl-menu-item"+d},(0,l.createElement)("a",{href:p},(0,l.createElement)("span",null,e.menuItem.title),e.menuItem.featured&&(0,l.createElement)("span",{className:"rsssl-menu-item-beta-pill"},(0,n.__)("Beta","really-simple-ssl")),e.menuItem.new&&(0,l.createElement)("span",{className:"rsssl-menu-item-new-pill"},(0,n.__)("New","really-simple-ssl")))),e.menuItem.menu_items&&c&&(0,l.createElement)("div",{className:"rsssl-submenu-item"},(E=e.menuItem.menu_items,Array.isArray(E)?E:[E]).map(((e,s)=>e.visible&&(0,l.createElement)(r,{key:"submenuItem"+s,menuItem:e,isMainMenu:!1}))))));var E},i=r,u=(e,s)=>{if(e===s.id)return!0;if(s.menu_items)for(const t of s.menu_items)if(t.id===e)return!0;return!1};var c=t(5683);const d=()=>{const{subMenu:e,hasPremiumItems:s,subMenuLoaded:t}=(0,a.A)(),{licenseStatus:r}=(0,c.A)();return t?(0,l.createElement)("div",{className:"rsssl-wizard-menu rsssl-grid-item"},(0,l.createElement)("div",{className:"rsssl-grid-item-header"},(0,l.createElement)("h1",{className:"rsssl-h4"},e.title)),(0,l.createElement)("div",{className:"rsssl-grid-item-content"},(0,l.createElement)("div",{className:"rsssl-wizard-menu-items"},e.menu_items.map(((e,s)=>(0,l.createElement)(i,{key:"menuItem-"+s,menuItem:e,isMainMenu:!0}))),s&&!rsssl_settings.pro_plugin_active&&"valid"!==r&&(0,l.createElement)("div",{className:"rsssl-premium-menu-item"},(0,l.createElement)("div",null,(0,l.createElement)("a",{target:"_blank",rel:"noopener noreferrer",href:rsssl_settings.upgrade_link,className:"button button-black"},(0,n.__)("Upgrade","really-simple-ssl")))))),(0,l.createElement)("div",{className:"rsssl-grid-item-footer"})):(0,l.createElement)(m,null)}},5683:(e,s,t)=>{t.d(s,{A:()=>l});const l=(0,t(1621).vt)(((e,s)=>({licenseStatus:rsssl_settings.licenseStatus,setLicenseStatus:s=>e((e=>({licenseStatus:s})))})))}}]);PK�������!�R��)��settings/build/59.2b8cb9a1b67150ada2fd.jsnu�[��������(globalThis.webpackChunkreally_simple_ssl=globalThis.webpackChunkreally_simple_ssl||[]).push([[59],{4300:(e,t,n)=>{"use strict";n.d(t,{A:()=>re});var r=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{n.insertRule(e,n.cssRules.length)}catch(e){}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){return e.parentNode&&e.parentNode.removeChild(e)})),this.tags=[],this.ctr=0},e}(),o=Math.abs,i=String.fromCharCode,a=Object.assign;function s(e){return e.trim()}function l(e,t,n){return e.replace(t,n)}function c(e,t){return e.indexOf(t)}function u(e,t){return 0|e.charCodeAt(t)}function d(e,t,n){return e.slice(t,n)}function p(e){return e.length}function f(e){return e.length}function h(e,t){return t.push(e),e}var m=1,v=1,g=0,y=0,b=0,x="";function A(e,t,n,r,o,i,a){return{value:e,root:t,parent:n,type:r,props:o,children:i,line:m,column:v,length:a,return:""}}function w(e,t){return a(A("",null,null,"",null,null,0),e,{length:-e.length},t)}function k(){return b=y>0?u(x,--y):0,v--,10===b&&(v=1,m--),b}function S(){return b=y<g?u(x,y++):0,v++,10===b&&(v=1,m++),b}function C(){return u(x,y)}function E(){return y}function O(e,t){return d(x,e,t)}function R(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function P(e){return m=v=1,g=p(x=e),y=0,[]}function $(e){return x="",e}function M(e){return s(O(y-1,N(91===e?e+2:40===e?e+1:e)))}function T(e){for(;(b=C())&&b<33;)S();return R(e)>2||R(b)>3?"":" "}function I(e,t){for(;--t&&S()&&!(b<48||b>102||b>57&&b<65||b>70&&b<97););return O(e,E()+(t<6&&32==C()&&32==S()))}function N(e){for(;S();)switch(b){case e:return y;case 34:case 39:34!==e&&39!==e&&N(b);break;case 40:41===e&&N(e);break;case 92:S()}return y}function j(e,t){for(;S()&&e+b!==57&&(e+b!==84||47!==C()););return"/*"+O(t,y-1)+"*"+i(47===e?e:S())}function L(e){for(;!R(C());)S();return O(e,y)}var z="-ms-",D="-moz-",F="-webkit-",_="comm",W="rule",B="decl",V="@keyframes";function H(e,t){for(var n="",r=f(e),o=0;o<r;o++)n+=t(e[o],o,e,t)||"";return n}function q(e,t,n,r){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case B:return e.return=e.return||e.value;case _:return"";case V:return e.return=e.value+"{"+H(e.children,r)+"}";case W:e.value=e.props.join(",")}return p(n=H(e.children,r))?e.return=e.value+"{"+n+"}":""}function K(e){return $(U("",null,null,null,[""],e=P(e),0,[0],e))}function U(e,t,n,r,o,a,s,d,f){for(var m=0,v=0,g=s,y=0,b=0,x=0,A=1,w=1,O=1,R=0,P="",$=o,N=a,z=r,D=P;w;)switch(x=R,R=S()){case 40:if(108!=x&&58==u(D,g-1)){-1!=c(D+=l(M(R),"&","&\f"),"&\f")&&(O=-1);break}case 34:case 39:case 91:D+=M(R);break;case 9:case 10:case 13:case 32:D+=T(x);break;case 92:D+=I(E()-1,7);continue;case 47:switch(C()){case 42:case 47:h(G(j(S(),E()),t,n),f);break;default:D+="/"}break;case 123*A:d[m++]=p(D)*O;case 125*A:case 59:case 0:switch(R){case 0:case 125:w=0;case 59+v:-1==O&&(D=l(D,/\f/g,"")),b>0&&p(D)-g&&h(b>32?Y(D+";",r,n,g-1):Y(l(D," ","")+";",r,n,g-2),f);break;case 59:D+=";";default:if(h(z=X(D,t,n,m,v,o,d,P,$=[],N=[],g),a),123===R)if(0===v)U(D,t,z,z,$,a,g,d,N);else switch(99===y&&110===u(D,3)?100:y){case 100:case 108:case 109:case 115:U(e,z,z,r&&h(X(e,z,z,0,0,o,d,P,o,$=[],g),N),o,N,g,d,r?$:N);break;default:U(D,z,z,z,[""],N,0,d,N)}}m=v=b=0,A=O=1,P=D="",g=s;break;case 58:g=1+p(D),b=x;default:if(A<1)if(123==R)--A;else if(125==R&&0==A++&&125==k())continue;switch(D+=i(R),R*A){case 38:O=v>0?1:(D+="\f",-1);break;case 44:d[m++]=(p(D)-1)*O,O=1;break;case 64:45===C()&&(D+=M(S())),y=C(),v=g=p(P=D+=L(E())),R++;break;case 45:45===x&&2==p(D)&&(A=0)}}return a}function X(e,t,n,r,i,a,c,u,p,h,m){for(var v=i-1,g=0===i?a:[""],y=f(g),b=0,x=0,w=0;b<r;++b)for(var k=0,S=d(e,v+1,v=o(x=c[b])),C=e;k<y;++k)(C=s(x>0?g[k]+" "+S:l(S,/&\f/g,g[k])))&&(p[w++]=C);return A(e,t,n,0===i?W:u,p,h,m)}function G(e,t,n){return A(e,t,n,_,i(b),d(e,2,-2),0)}function Y(e,t,n,r){return A(e,t,n,B,d(e,0,r),d(e,r+1,-1),r)}var J=function(e,t,n){for(var r=0,o=0;r=o,o=C(),38===r&&12===o&&(t[n]=1),!R(o);)S();return O(e,y)},Z=new WeakMap,Q=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||Z.get(n))&&!r){Z.set(e,!0);for(var o=[],a=function(e,t){return $(function(e,t){var n=-1,r=44;do{switch(R(r)){case 0:38===r&&12===C()&&(t[n]=1),e[n]+=J(y-1,t,n);break;case 2:e[n]+=M(r);break;case 4:if(44===r){e[++n]=58===C()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=i(r)}}while(r=S());return e}(P(e),t))}(t,o),s=n.props,l=0,c=0;l<a.length;l++)for(var u=0;u<s.length;u++,c++)e.props[c]=o[l]?a[l].replace(/&\f/g,s[u]):s[u]+" "+a[l]}}},ee=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}};function te(e,t){switch(function(e,t){return 45^u(e,0)?(((t<<2^u(e,0))<<2^u(e,1))<<2^u(e,2))<<2^u(e,3):0}(e,t)){case 5103:return F+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return F+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return F+e+D+e+z+e+e;case 6828:case 4268:return F+e+z+e+e;case 6165:return F+e+z+"flex-"+e+e;case 5187:return F+e+l(e,/(\w+).+(:[^]+)/,F+"box-$1$2"+z+"flex-$1$2")+e;case 5443:return F+e+z+"flex-item-"+l(e,/flex-|-self/,"")+e;case 4675:return F+e+z+"flex-line-pack"+l(e,/align-content|flex-|-self/,"")+e;case 5548:return F+e+z+l(e,"shrink","negative")+e;case 5292:return F+e+z+l(e,"basis","preferred-size")+e;case 6060:return F+"box-"+l(e,"-grow","")+F+e+z+l(e,"grow","positive")+e;case 4554:return F+l(e,/([^-])(transform)/g,"$1"+F+"$2")+e;case 6187:return l(l(l(e,/(zoom-|grab)/,F+"$1"),/(image-set)/,F+"$1"),e,"")+e;case 5495:case 3959:return l(e,/(image-set\([^]*)/,F+"$1$`$1");case 4968:return l(l(e,/(.+:)(flex-)?(.*)/,F+"box-pack:$3"+z+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+F+e+e;case 4095:case 3583:case 4068:case 2532:return l(e,/(.+)-inline(.+)/,F+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(p(e)-1-t>6)switch(u(e,t+1)){case 109:if(45!==u(e,t+4))break;case 102:return l(e,/(.+:)(.+)-([^]+)/,"$1"+F+"$2-$3$1"+D+(108==u(e,t+3)?"$3":"$2-$3"))+e;case 115:return~c(e,"stretch")?te(l(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==u(e,t+1))break;case 6444:switch(u(e,p(e)-3-(~c(e,"!important")&&10))){case 107:return l(e,":",":"+F)+e;case 101:return l(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+F+(45===u(e,14)?"inline-":"")+"box$3$1"+F+"$2$3$1"+z+"$2box$3")+e}break;case 5936:switch(u(e,t+11)){case 114:return F+e+z+l(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return F+e+z+l(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return F+e+z+l(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return F+e+z+e+e}return e}var ne=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case B:e.return=te(e.value,e.length);break;case V:return H([w(e,{value:l(e.value,"@","@"+F)})],r);case W:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return H([w(e,{props:[l(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return H([w(e,{props:[l(t,/:(plac\w+)/,":"+F+"input-$1")]}),w(e,{props:[l(t,/:(plac\w+)/,":-moz-$1")]}),w(e,{props:[l(t,/:(plac\w+)/,z+"input-$1")]})],r)}return""}))}}],re=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var o,i,a=e.stylisPlugins||ne,s={},l=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)s[t[n]]=!0;l.push(e)}));var c,u,d,p,h=[q,(p=function(e){c.insert(e)},function(e){e.root||(e=e.return)&&p(e)})],m=(u=[Q,ee].concat(a,h),d=f(u),function(e,t,n,r){for(var o="",i=0;i<d;i++)o+=u[i](e,t,n,r)||"";return o});i=function(e,t,n,r){c=n,H(K(e?e+"{"+t.styles+"}":t.styles),m),r&&(v.inserted[t.name]=!0)};var v={key:t,sheet:new r({key:t,container:o,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:s,registered:{},insert:i};return v.sheet.hydrate(l),v}},1907:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6289),o=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,i=(0,r.A)((function(e){return o.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91}))},6289:(e,t,n)=>{"use strict";function r(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}n.d(t,{A:()=>r})},85:(e,t,n)=>{"use strict";n.d(t,{C:()=>d,E:()=>g,T:()=>f,c:()=>m,h:()=>c,i:()=>l,w:()=>p});var r=n(1609),o=n(4300),i=n(41),a=n(5479),s=n(1287),l=!0,c={}.hasOwnProperty,u=r.createContext("undefined"!=typeof HTMLElement?(0,o.A)({key:"css"}):null),d=u.Provider,p=function(e){return(0,r.forwardRef)((function(t,n){var o=(0,r.useContext)(u);return e(t,o,n)}))};l||(p=function(e){return function(t){var n=(0,r.useContext)(u);return null===n?(n=(0,o.A)({key:"css"}),r.createElement(u.Provider,{value:n},e(t,n))):e(t,n)}});var f=r.createContext({}),h="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",m=function(e,t){var n={};for(var r in t)c.call(t,r)&&(n[r]=t[r]);return n[h]=e,n},v=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return(0,i.SF)(t,n,r),(0,s.s)((function(){return(0,i.sk)(t,n,r)})),null},g=p((function(e,t,n){var o=e.css;"string"==typeof o&&void 0!==t.registered[o]&&(o=t.registered[o]);var s=e[h],l=[o],u="";"string"==typeof e.className?u=(0,i.Rk)(t.registered,l,e.className):null!=e.className&&(u=e.className+" ");var d=(0,a.J)(l,void 0,r.useContext(f));u+=t.key+"-"+d.name;var p={};for(var m in e)c.call(e,m)&&"css"!==m&&m!==h&&(p[m]=e[m]);return p.ref=n,p.className=u,r.createElement(r.Fragment,null,r.createElement(v,{cache:t,serialized:d,isStringTag:"string"==typeof s}),r.createElement(s,p))}))},7437:(e,t,n)=>{"use strict";n.d(t,{AH:()=>u,Y:()=>l,i7:()=>d,mL:()=>c});var r=n(85),o=n(1609),i=n(41),a=n(1287),s=n(5479),l=(n(4300),n(4146),function(e,t){var n=arguments;if(null==t||!r.h.call(t,"css"))return o.createElement.apply(void 0,n);var i=n.length,a=new Array(i);a[0]=r.E,a[1]=(0,r.c)(e,t);for(var s=2;s<i;s++)a[s]=n[s];return o.createElement.apply(null,a)}),c=(0,r.w)((function(e,t){var n=e.styles,l=(0,s.J)([n],void 0,o.useContext(r.T));if(!r.i){for(var c,u=l.name,d=l.styles,p=l.next;void 0!==p;)u+=" "+p.name,d+=p.styles,p=p.next;var f=!0===t.compat,h=t.insert("",{name:u,styles:d},t.sheet,f);return f?null:o.createElement("style",((c={})["data-emotion"]=t.key+"-global "+u,c.dangerouslySetInnerHTML={__html:h},c.nonce=t.sheet.nonce,c))}var m=o.useRef();return(0,a.i)((function(){var e=t.key+"-global",n=new t.sheet.constructor({key:e,nonce:t.sheet.nonce,container:t.sheet.container,speedy:t.sheet.isSpeedy}),r=!1,o=document.querySelector('style[data-emotion="'+e+" "+l.name+'"]');return t.sheet.tags.length&&(n.before=t.sheet.tags[0]),null!==o&&(r=!0,o.setAttribute("data-emotion",e),n.hydrate([o])),m.current=[n,r],function(){n.flush()}}),[t]),(0,a.i)((function(){var e=m.current,n=e[0];if(e[1])e[1]=!1;else{if(void 0!==l.next&&(0,i.sk)(t,l.next,!0),n.tags.length){var r=n.tags[n.tags.length-1].nextElementSibling;n.before=r,n.flush()}t.insert("",l,n,!1)}}),[t,l.name]),null}));function u(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,s.J)(t)}var d=function(){var e=u.apply(void 0,arguments),t="animation-"+e.name;return{name:t,styles:"@keyframes "+t+"{"+e.styles+"}",anim:1,toString:function(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}}},5479:(e,t,n)=>{"use strict";n.d(t,{J:()=>h});var r={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},o=n(6289),i=/[A-Z]|^ms/g,a=/_EMO_([^_]+?)_([^]*?)_EMO_/g,s=function(e){return 45===e.charCodeAt(1)},l=function(e){return null!=e&&"boolean"!=typeof e},c=(0,o.A)((function(e){return s(e)?e:e.replace(i,"-$&").toLowerCase()})),u=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(a,(function(e,t,n){return p={name:t,styles:n,next:p},t}))}return 1===r[e]||s(e)||"number"!=typeof t||0===t?t:t+"px"};function d(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return p={name:n.name,styles:n.styles,next:p},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)p={name:r.name,styles:r.styles,next:p},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o<n.length;o++)r+=d(e,t,n[o])+";";else for(var i in n){var a=n[i];if("object"!=typeof a)null!=t&&void 0!==t[a]?r+=i+"{"+t[a]+"}":l(a)&&(r+=c(i)+":"+u(i,a)+";");else if(!Array.isArray(a)||"string"!=typeof a[0]||null!=t&&void 0!==t[a[0]]){var s=d(e,t,a);switch(i){case"animation":case"animationName":r+=c(i)+":"+s+";";break;default:r+=i+"{"+s+"}"}}else for(var p=0;p<a.length;p++)l(a[p])&&(r+=c(i)+":"+u(i,a[p])+";")}return r}(e,t,n);case"function":if(void 0!==e){var o=p,i=n(e);return p=o,d(e,t,i)}}if(null==t)return n;var a=t[n];return void 0!==a?a:n}var p,f=/label:\s*([^\s;\n{]+)\s*(;|$)/g,h=function(e,t,n){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var r=!0,o="";p=void 0;var i=e[0];null==i||void 0===i.raw?(r=!1,o+=d(n,t,i)):o+=i[0];for(var a=1;a<e.length;a++)o+=d(n,t,e[a]),r&&(o+=i[a]);f.lastIndex=0;for(var s,l="";null!==(s=f.exec(o));)l+="-"+s[1];var c=function(e){for(var t,n=0,r=0,o=e.length;o>=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+l;return{name:c,styles:o,next:p}}},1287:(e,t,n)=>{"use strict";n.d(t,{i:()=>a,s:()=>i});var r=n(1609),o=!!r.useInsertionEffect&&r.useInsertionEffect,i=o||function(e){return e()},a=o||r.useLayoutEffect},41:(e,t,n)=>{"use strict";function r(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}n.d(t,{Rk:()=>r,SF:()=>o,sk:()=>i});var o=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)},i=function(e,t,n){o(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var i=t;do{e.insert(t===i?"."+r:"",i,e.sheet,!0),i=i.next}while(void 0!==i)}}},3148:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(45),o=n(8168),i=n(1609),a=n(53),s=n(5192),l=i.forwardRef((function(e,t){var n=e.classes,s=e.className,l=e.component,c=void 0===l?"div":l,u=e.square,d=void 0!==u&&u,p=e.elevation,f=void 0===p?1:p,h=e.variant,m=void 0===h?"elevation":h,v=(0,r.A)(e,["classes","className","component","square","elevation","variant"]);return i.createElement(c,(0,o.A)({className:(0,a.A)(n.root,s,"outlined"===m?n.outlined:n["elevation".concat(f)],!d&&n.rounded),ref:t},v))}));const c=(0,s.A)((function(e){var t={};return e.shadows.forEach((function(e,n){t["elevation".concat(n)]={boxShadow:e}})),(0,o.A)({root:{backgroundColor:e.palette.background.paper,color:e.palette.text.primary,transition:e.transitions.create("box-shadow")},rounded:{borderRadius:e.shape.borderRadius},outlined:{border:"1px solid ".concat(e.palette.divider)}},t)}),{name:"MuiPaper"})(l)},1846:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(1609),o=n(5795),i=n(4960),a=n(4801),s="undefined"!=typeof window?r.useLayoutEffect:r.useEffect;const l=r.forwardRef((function(e,t){var n=e.children,l=e.container,c=e.disablePortal,u=void 0!==c&&c,d=e.onRendered,p=r.useState(null),f=p[0],h=p[1],m=(0,a.A)(r.isValidElement(n)?n.ref:null,t);return s((function(){u||h(function(e){return e="function"==typeof e?e():e,o.findDOMNode(e)}(l)||document.body)}),[l,u]),s((function(){if(f&&!u)return(0,i.A)(t,f),function(){(0,i.A)(t,null)}}),[t,f,u]),s((function(){d&&(f||u)&&d()}),[d,f,u]),u?r.isValidElement(n)?r.cloneElement(n,{ref:m}):n:f?o.createPortal(n,f):f}))},1082:(e,t,n)=>{"use strict";n.d(t,{A:()=>vt});var r=n(8168),o=n(45),i=n(1609),a=n.n(i),s=n(53),l=n(7860);function c(e){var t=e.props,n=e.states,r=e.muiFormControl;return n.reduce((function(e,n){return e[n]=t[n],r&&void 0===t[n]&&(e[n]=r[n]),e}),{})}var u=i.createContext();const d=u;var p=n(5192),f=n(7515),h=n(4801);function m(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:166;function r(){for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];var a=this;clearTimeout(t),t=setTimeout((function(){e.apply(a,o)}),n)}return r.clear=function(){clearTimeout(t)},r}function v(e,t){return parseInt(e[t],10)||0}var g="undefined"!=typeof window?i.useLayoutEffect:i.useEffect,y={visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"};const b=i.forwardRef((function(e,t){var n=e.onChange,a=e.rows,s=e.rowsMax,l=e.rowsMin,c=e.maxRows,u=e.minRows,d=void 0===u?1:u,p=e.style,f=e.value,b=(0,o.A)(e,["onChange","rows","rowsMax","rowsMin","maxRows","minRows","style","value"]),x=c||s,A=a||l||d,w=i.useRef(null!=f).current,k=i.useRef(null),S=(0,h.A)(t,k),C=i.useRef(null),E=i.useRef(0),O=i.useState({}),R=O[0],P=O[1],$=i.useCallback((function(){var t=k.current,n=window.getComputedStyle(t),r=C.current;r.style.width=n.width,r.value=t.value||e.placeholder||"x","\n"===r.value.slice(-1)&&(r.value+=" ");var o=n["box-sizing"],i=v(n,"padding-bottom")+v(n,"padding-top"),a=v(n,"border-bottom-width")+v(n,"border-top-width"),s=r.scrollHeight-i;r.value="x";var l=r.scrollHeight-i,c=s;A&&(c=Math.max(Number(A)*l,c)),x&&(c=Math.min(Number(x)*l,c));var u=(c=Math.max(c,l))+("border-box"===o?i+a:0),d=Math.abs(c-s)<=1;P((function(e){return E.current<20&&(u>0&&Math.abs((e.outerHeightStyle||0)-u)>1||e.overflow!==d)?(E.current+=1,{overflow:d,outerHeightStyle:u}):e}))}),[x,A,e.placeholder]);return i.useEffect((function(){var e=m((function(){E.current=0,$()}));return window.addEventListener("resize",e),function(){e.clear(),window.removeEventListener("resize",e)}}),[$]),g((function(){$()})),i.useEffect((function(){E.current=0}),[f]),i.createElement(i.Fragment,null,i.createElement("textarea",(0,r.A)({value:f,onChange:function(e){E.current=0,w||$(),n&&n(e)},ref:S,rows:A,style:(0,r.A)({height:R.outerHeightStyle,overflow:R.overflow?"hidden":null},p)},b)),i.createElement("textarea",{"aria-hidden":!0,className:e.className,readOnly:!0,ref:C,tabIndex:-1,style:(0,r.A)({},y,p)}))}));function x(e){return null!=e&&!(Array.isArray(e)&&0===e.length)}function A(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e&&(x(e.value)&&""!==e.value||t&&x(e.defaultValue)&&""!==e.defaultValue)}var w="undefined"==typeof window?i.useEffect:i.useLayoutEffect,k=i.forwardRef((function(e,t){var n=e["aria-describedby"],a=e.autoComplete,p=e.autoFocus,m=e.classes,v=e.className,g=(e.color,e.defaultValue),y=e.disabled,x=e.endAdornment,k=(e.error,e.fullWidth),S=void 0!==k&&k,C=e.id,E=e.inputComponent,O=void 0===E?"input":E,R=e.inputProps,P=void 0===R?{}:R,$=e.inputRef,M=(e.margin,e.multiline),T=void 0!==M&&M,I=e.name,N=e.onBlur,j=e.onChange,L=e.onClick,z=e.onFocus,D=e.onKeyDown,F=e.onKeyUp,_=e.placeholder,W=e.readOnly,B=e.renderSuffix,V=e.rows,H=e.rowsMax,q=e.rowsMin,K=e.maxRows,U=e.minRows,X=e.startAdornment,G=e.type,Y=void 0===G?"text":G,J=e.value,Z=(0,o.A)(e,["aria-describedby","autoComplete","autoFocus","classes","className","color","defaultValue","disabled","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","rowsMax","rowsMin","maxRows","minRows","startAdornment","type","value"]),Q=null!=P.value?P.value:J,ee=i.useRef(null!=Q).current,te=i.useRef(),ne=i.useCallback((function(e){}),[]),re=(0,h.A)(P.ref,ne),oe=(0,h.A)($,re),ie=(0,h.A)(te,oe),ae=i.useState(!1),se=ae[0],le=ae[1],ce=i.useContext(u),ue=c({props:e,muiFormControl:ce,states:["color","disabled","error","hiddenLabel","margin","required","filled"]});ue.focused=ce?ce.focused:se,i.useEffect((function(){!ce&&y&&se&&(le(!1),N&&N())}),[ce,y,se,N]);var de=ce&&ce.onFilled,pe=ce&&ce.onEmpty,fe=i.useCallback((function(e){A(e)?de&&de():pe&&pe()}),[de,pe]);w((function(){ee&&fe({value:Q})}),[Q,fe,ee]),i.useEffect((function(){fe(te.current)}),[]);var he=O,me=(0,r.A)({},P,{ref:ie});return"string"!=typeof he?me=(0,r.A)({inputRef:ie,type:Y},me,{ref:null}):T?!V||K||U||H||q?(me=(0,r.A)({minRows:V||U,rowsMax:H,maxRows:K},me),he=b):he="textarea":me=(0,r.A)({type:Y},me),i.useEffect((function(){ce&&ce.setAdornedStart(Boolean(X))}),[ce,X]),i.createElement("div",(0,r.A)({className:(0,s.A)(m.root,m["color".concat((0,f.A)(ue.color||"primary"))],v,ue.disabled&&m.disabled,ue.error&&m.error,S&&m.fullWidth,ue.focused&&m.focused,ce&&m.formControl,T&&m.multiline,X&&m.adornedStart,x&&m.adornedEnd,"dense"===ue.margin&&m.marginDense),onClick:function(e){te.current&&e.currentTarget===e.target&&te.current.focus(),L&&L(e)},ref:t},Z),X,i.createElement(d.Provider,{value:null},i.createElement(he,(0,r.A)({"aria-invalid":ue.error,"aria-describedby":n,autoComplete:a,autoFocus:p,defaultValue:g,disabled:ue.disabled,id:C,onAnimationStart:function(e){fe("mui-auto-fill-cancel"===e.animationName?te.current:{value:"x"})},name:I,placeholder:_,readOnly:W,required:ue.required,rows:V,value:Q,onKeyDown:D,onKeyUp:F},me,{className:(0,s.A)(m.input,P.className,ue.disabled&&m.disabled,T&&m.inputMultiline,ue.hiddenLabel&&m.inputHiddenLabel,X&&m.inputAdornedStart,x&&m.inputAdornedEnd,"search"===Y&&m.inputTypeSearch,"dense"===ue.margin&&m.inputMarginDense),onBlur:function(e){N&&N(e),P.onBlur&&P.onBlur(e),ce&&ce.onBlur?ce.onBlur(e):le(!1)},onChange:function(e){if(!ee){var t=e.target||te.current;if(null==t)throw new Error((0,l.A)(1));fe({value:t.value})}for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];P.onChange&&P.onChange.apply(P,[e].concat(r)),j&&j.apply(void 0,[e].concat(r))},onFocus:function(e){ue.disabled?e.stopPropagation():(z&&z(e),P.onFocus&&P.onFocus(e),ce&&ce.onFocus?ce.onFocus(e):le(!0))}}))),x,B?B((0,r.A)({},ue,{startAdornment:X})):null)}));const S=(0,p.A)((function(e){var t="light"===e.palette.type,n={color:"currentColor",opacity:t?.42:.5,transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},o={opacity:"0 !important"},i={opacity:t?.42:.5};return{"@global":{"@keyframes mui-auto-fill":{},"@keyframes mui-auto-fill-cancel":{}},root:(0,r.A)({},e.typography.body1,{color:e.palette.text.primary,lineHeight:"1.1876em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center","&$disabled":{color:e.palette.text.disabled,cursor:"default"}}),formControl:{},focused:{},disabled:{},adornedStart:{},adornedEnd:{},error:{},marginDense:{},multiline:{padding:"".concat(6,"px 0 ").concat(7,"px"),"&$marginDense":{paddingTop:3}},colorSecondary:{},fullWidth:{width:"100%"},input:{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"".concat(6,"px 0 ").concat(7,"px"),border:0,boxSizing:"content-box",background:"none",height:"1.1876em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&:-ms-input-placeholder":n,"&::-ms-input-placeholder":n,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{"-webkit-appearance":"none"},"label[data-shrink=false] + $formControl &":{"&::-webkit-input-placeholder":o,"&::-moz-placeholder":o,"&:-ms-input-placeholder":o,"&::-ms-input-placeholder":o,"&:focus::-webkit-input-placeholder":i,"&:focus::-moz-placeholder":i,"&:focus:-ms-input-placeholder":i,"&:focus::-ms-input-placeholder":i},"&$disabled":{opacity:1},"&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}},inputMarginDense:{paddingTop:3},inputMultiline:{height:"auto",resize:"none",padding:0},inputTypeSearch:{"-moz-appearance":"textfield","-webkit-appearance":"textfield"},inputAdornedStart:{},inputAdornedEnd:{},inputHiddenLabel:{}}}),{name:"MuiInputBase"})(k);var C=i.forwardRef((function(e,t){var n=e.disableUnderline,a=e.classes,l=e.fullWidth,c=void 0!==l&&l,u=e.inputComponent,d=void 0===u?"input":u,p=e.multiline,f=void 0!==p&&p,h=e.type,m=void 0===h?"text":h,v=(0,o.A)(e,["disableUnderline","classes","fullWidth","inputComponent","multiline","type"]);return i.createElement(S,(0,r.A)({classes:(0,r.A)({},a,{root:(0,s.A)(a.root,!n&&a.underline),underline:null}),fullWidth:c,inputComponent:d,multiline:f,ref:t,type:m},v))}));C.muiName="Input";const E=(0,p.A)((function(e){var t="light"===e.palette.type?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return{root:{position:"relative"},formControl:{"label + &":{marginTop:16}},focused:{},disabled:{},colorSecondary:{"&$underline:after":{borderBottomColor:e.palette.secondary.main}},underline:{"&:after":{borderBottom:"2px solid ".concat(e.palette.primary.main),left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},"&$focused:after":{transform:"scaleX(1)"},"&$error:after":{borderBottomColor:e.palette.error.main,transform:"scaleX(1)"},"&:before":{borderBottom:"1px solid ".concat(t),left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},"&:hover:not($disabled):before":{borderBottom:"2px solid ".concat(e.palette.text.primary),"@media (hover: none)":{borderBottom:"1px solid ".concat(t)}},"&$disabled:before":{borderBottomStyle:"dotted"}},error:{},marginDense:{},multiline:{},fullWidth:{},input:{},inputMarginDense:{},inputMultiline:{},inputTypeSearch:{}}}),{name:"MuiInput"})(C);var O=i.forwardRef((function(e,t){var n=e.disableUnderline,a=e.classes,l=e.fullWidth,c=void 0!==l&&l,u=e.inputComponent,d=void 0===u?"input":u,p=e.multiline,f=void 0!==p&&p,h=e.type,m=void 0===h?"text":h,v=(0,o.A)(e,["disableUnderline","classes","fullWidth","inputComponent","multiline","type"]);return i.createElement(S,(0,r.A)({classes:(0,r.A)({},a,{root:(0,s.A)(a.root,!n&&a.underline),underline:null}),fullWidth:c,inputComponent:d,multiline:f,ref:t,type:m},v))}));O.muiName="Input";const R=(0,p.A)((function(e){var t="light"===e.palette.type,n=t?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",r=t?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.09)";return{root:{position:"relative",backgroundColor:r,borderTopLeftRadius:e.shape.borderRadius,borderTopRightRadius:e.shape.borderRadius,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:t?"rgba(0, 0, 0, 0.13)":"rgba(255, 255, 255, 0.13)","@media (hover: none)":{backgroundColor:r}},"&$focused":{backgroundColor:t?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.09)"},"&$disabled":{backgroundColor:t?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)"}},colorSecondary:{"&$underline:after":{borderBottomColor:e.palette.secondary.main}},underline:{"&:after":{borderBottom:"2px solid ".concat(e.palette.primary.main),left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},"&$focused:after":{transform:"scaleX(1)"},"&$error:after":{borderBottomColor:e.palette.error.main,transform:"scaleX(1)"},"&:before":{borderBottom:"1px solid ".concat(n),left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},"&:hover:before":{borderBottom:"1px solid ".concat(e.palette.text.primary)},"&$disabled:before":{borderBottomStyle:"dotted"}},focused:{},disabled:{},adornedStart:{paddingLeft:12},adornedEnd:{paddingRight:12},error:{},marginDense:{},multiline:{padding:"27px 12px 10px","&$marginDense":{paddingTop:23,paddingBottom:6}},input:{padding:"27px 12px 10px","&:-webkit-autofill":{WebkitBoxShadow:"light"===e.palette.type?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===e.palette.type?null:"#fff",caretColor:"light"===e.palette.type?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},inputMarginDense:{paddingTop:23,paddingBottom:6},inputHiddenLabel:{paddingTop:18,paddingBottom:19,"&$inputMarginDense":{paddingTop:10,paddingBottom:11}},inputMultiline:{padding:0},inputAdornedStart:{paddingLeft:0},inputAdornedEnd:{paddingRight:0}}}),{name:"MuiFilledInput"})(O);var P=n(4467),$=n(6232),M=i.forwardRef((function(e,t){e.children;var n=e.classes,a=e.className,l=e.label,c=e.labelWidth,u=e.notched,d=e.style,p=(0,o.A)(e,["children","classes","className","label","labelWidth","notched","style"]),h="rtl"===(0,$.A)().direction?"right":"left";if(void 0!==l)return i.createElement("fieldset",(0,r.A)({"aria-hidden":!0,className:(0,s.A)(n.root,a),ref:t,style:d},p),i.createElement("legend",{className:(0,s.A)(n.legendLabelled,u&&n.legendNotched)},l?i.createElement("span",null,l):i.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}})));var m=c>0?.75*c+8:.01;return i.createElement("fieldset",(0,r.A)({"aria-hidden":!0,style:(0,r.A)((0,P.A)({},"padding".concat((0,f.A)(h)),8),d),className:(0,s.A)(n.root,a),ref:t},p),i.createElement("legend",{className:n.legend,style:{width:u?m:.01}},i.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}})))}));const T=(0,p.A)((function(e){return{root:{position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden"},legend:{textAlign:"left",padding:0,lineHeight:"11px",transition:e.transitions.create("width",{duration:150,easing:e.transitions.easing.easeOut})},legendLabelled:{display:"block",width:"auto",textAlign:"left",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:e.transitions.create("max-width",{duration:50,easing:e.transitions.easing.easeOut}),"& > span":{paddingLeft:5,paddingRight:5,display:"inline-block"}},legendNotched:{maxWidth:1e3,transition:e.transitions.create("max-width",{duration:100,easing:e.transitions.easing.easeOut,delay:50})}}}),{name:"PrivateNotchedOutline"})(M);var I=i.forwardRef((function(e,t){var n=e.classes,a=e.fullWidth,l=void 0!==a&&a,c=e.inputComponent,u=void 0===c?"input":c,d=e.label,p=e.labelWidth,f=void 0===p?0:p,h=e.multiline,m=void 0!==h&&h,v=e.notched,g=e.type,y=void 0===g?"text":g,b=(0,o.A)(e,["classes","fullWidth","inputComponent","label","labelWidth","multiline","notched","type"]);return i.createElement(S,(0,r.A)({renderSuffix:function(e){return i.createElement(T,{className:n.notchedOutline,label:d,labelWidth:f,notched:void 0!==v?v:Boolean(e.startAdornment||e.filled||e.focused)})},classes:(0,r.A)({},n,{root:(0,s.A)(n.root,n.underline),notchedOutline:null}),fullWidth:l,inputComponent:u,multiline:m,ref:t,type:y},b))}));I.muiName="Input";const N=(0,p.A)((function(e){var t="light"===e.palette.type?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{root:{position:"relative",borderRadius:e.shape.borderRadius,"&:hover $notchedOutline":{borderColor:e.palette.text.primary},"@media (hover: none)":{"&:hover $notchedOutline":{borderColor:t}},"&$focused $notchedOutline":{borderColor:e.palette.primary.main,borderWidth:2},"&$error $notchedOutline":{borderColor:e.palette.error.main},"&$disabled $notchedOutline":{borderColor:e.palette.action.disabled}},colorSecondary:{"&$focused $notchedOutline":{borderColor:e.palette.secondary.main}},focused:{},disabled:{},adornedStart:{paddingLeft:14},adornedEnd:{paddingRight:14},error:{},marginDense:{},multiline:{padding:"18.5px 14px","&$marginDense":{paddingTop:10.5,paddingBottom:10.5}},notchedOutline:{borderColor:t},input:{padding:"18.5px 14px","&:-webkit-autofill":{WebkitBoxShadow:"light"===e.palette.type?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===e.palette.type?null:"#fff",caretColor:"light"===e.palette.type?null:"#fff",borderRadius:"inherit"}},inputMarginDense:{paddingTop:10.5,paddingBottom:10.5},inputMultiline:{padding:0},inputAdornedStart:{paddingLeft:0},inputAdornedEnd:{paddingRight:0}}}),{name:"MuiOutlinedInput"})(I);function j(){return i.useContext(d)}var L=i.forwardRef((function(e,t){var n=e.children,a=e.classes,l=e.className,u=(e.color,e.component),d=void 0===u?"label":u,p=(e.disabled,e.error,e.filled,e.focused,e.required,(0,o.A)(e,["children","classes","className","color","component","disabled","error","filled","focused","required"])),h=c({props:e,muiFormControl:j(),states:["color","required","focused","disabled","error","filled"]});return i.createElement(d,(0,r.A)({className:(0,s.A)(a.root,a["color".concat((0,f.A)(h.color||"primary"))],l,h.disabled&&a.disabled,h.error&&a.error,h.filled&&a.filled,h.focused&&a.focused,h.required&&a.required),ref:t},p),n,h.required&&i.createElement("span",{"aria-hidden":!0,className:(0,s.A)(a.asterisk,h.error&&a.error)}," ","*"))}));const z=(0,p.A)((function(e){return{root:(0,r.A)({color:e.palette.text.secondary},e.typography.body1,{lineHeight:1,padding:0,"&$focused":{color:e.palette.primary.main},"&$disabled":{color:e.palette.text.disabled},"&$error":{color:e.palette.error.main}}),colorSecondary:{"&$focused":{color:e.palette.secondary.main}},focused:{},disabled:{},error:{},filled:{},required:{},asterisk:{"&$error":{color:e.palette.error.main}}}}),{name:"MuiFormLabel"})(L);var D=i.forwardRef((function(e,t){var n=e.classes,a=e.className,l=e.disableAnimation,u=void 0!==l&&l,d=(e.margin,e.shrink),p=(e.variant,(0,o.A)(e,["classes","className","disableAnimation","margin","shrink","variant"])),f=j(),h=d;void 0===h&&f&&(h=f.filled||f.focused||f.adornedStart);var m=c({props:e,muiFormControl:f,states:["margin","variant"]});return i.createElement(z,(0,r.A)({"data-shrink":h,className:(0,s.A)(n.root,a,f&&n.formControl,!u&&n.animated,h&&n.shrink,"dense"===m.margin&&n.marginDense,{filled:n.filled,outlined:n.outlined}[m.variant]),classes:{focused:n.focused,disabled:n.disabled,error:n.error,required:n.required,asterisk:n.asterisk},ref:t},p))}));const F=(0,p.A)((function(e){return{root:{display:"block",transformOrigin:"top left"},focused:{},disabled:{},error:{},required:{},asterisk:{},formControl:{position:"absolute",left:0,top:0,transform:"translate(0, 24px) scale(1)"},marginDense:{transform:"translate(0, 21px) scale(1)"},shrink:{transform:"translate(0, 1.5px) scale(0.75)",transformOrigin:"top left"},animated:{transition:e.transitions.create(["color","transform"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})},filled:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 20px) scale(1)","&$marginDense":{transform:"translate(12px, 17px) scale(1)"},"&$shrink":{transform:"translate(12px, 10px) scale(0.75)","&$marginDense":{transform:"translate(12px, 7px) scale(0.75)"}}},outlined:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 20px) scale(1)","&$marginDense":{transform:"translate(14px, 12px) scale(1)"},"&$shrink":{transform:"translate(14px, -6px) scale(0.75)"}}}}),{name:"MuiInputLabel"})(D);function _(e,t){return i.isValidElement(e)&&-1!==t.indexOf(e.type.muiName)}var W=i.forwardRef((function(e,t){var n=e.children,a=e.classes,l=e.className,c=e.color,u=void 0===c?"primary":c,p=e.component,h=void 0===p?"div":p,m=e.disabled,v=void 0!==m&&m,g=e.error,y=void 0!==g&&g,b=e.fullWidth,x=void 0!==b&&b,w=e.focused,k=e.hiddenLabel,S=void 0!==k&&k,C=e.margin,E=void 0===C?"none":C,O=e.required,R=void 0!==O&&O,P=e.size,$=e.variant,M=void 0===$?"standard":$,T=(0,o.A)(e,["children","classes","className","color","component","disabled","error","fullWidth","focused","hiddenLabel","margin","required","size","variant"]),I=i.useState((function(){var e=!1;return n&&i.Children.forEach(n,(function(t){if(_(t,["Input","Select"])){var n=_(t,["Select"])?t.props.input:t;n&&n.props.startAdornment&&(e=!0)}})),e})),N=I[0],j=I[1],L=i.useState((function(){var e=!1;return n&&i.Children.forEach(n,(function(t){_(t,["Input","Select"])&&A(t.props,!0)&&(e=!0)})),e})),z=L[0],D=L[1],F=i.useState(!1),W=F[0],B=F[1],V=void 0!==w?w:W;v&&V&&B(!1);var H=i.useCallback((function(){D(!0)}),[]),q={adornedStart:N,setAdornedStart:j,color:u,disabled:v,error:y,filled:z,focused:V,fullWidth:x,hiddenLabel:S,margin:("small"===P?"dense":void 0)||E,onBlur:function(){B(!1)},onEmpty:i.useCallback((function(){D(!1)}),[]),onFilled:H,onFocus:function(){B(!0)},registerEffect:void 0,required:R,variant:M};return i.createElement(d.Provider,{value:q},i.createElement(h,(0,r.A)({className:(0,s.A)(a.root,l,"none"!==E&&a["margin".concat((0,f.A)(E))],x&&a.fullWidth),ref:t},T),n))}));const B=(0,p.A)({root:{display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top"},marginNormal:{marginTop:16,marginBottom:8},marginDense:{marginTop:8,marginBottom:4},fullWidth:{width:"100%"}},{name:"MuiFormControl"})(W);var V=i.forwardRef((function(e,t){var n=e.children,a=e.classes,l=e.className,u=e.component,d=void 0===u?"p":u,p=(e.disabled,e.error,e.filled,e.focused,e.margin,e.required,e.variant,(0,o.A)(e,["children","classes","className","component","disabled","error","filled","focused","margin","required","variant"])),f=c({props:e,muiFormControl:j(),states:["variant","margin","disabled","error","filled","focused","required"]});return i.createElement(d,(0,r.A)({className:(0,s.A)(a.root,("filled"===f.variant||"outlined"===f.variant)&&a.contained,l,f.disabled&&a.disabled,f.error&&a.error,f.filled&&a.filled,f.focused&&a.focused,f.required&&a.required,"dense"===f.margin&&a.marginDense),ref:t},p)," "===n?i.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}}):n)}));const H=(0,p.A)((function(e){return{root:(0,r.A)({color:e.palette.text.secondary},e.typography.caption,{textAlign:"left",marginTop:3,margin:0,"&$disabled":{color:e.palette.text.disabled},"&$error":{color:e.palette.error.main}}),error:{},disabled:{},marginDense:{marginTop:4},contained:{marginLeft:14,marginRight:14},focused:{},filled:{},required:{}}}),{name:"MuiFormHelperText"})(V);var q=n(3043),K=n(296),U=n(2284);function X(e){return e&&e.ownerDocument||document}n(4363);var G=n(5795),Y=n.n(G);function J(e){return X(e).defaultView||window}var Z=n(8521),Q=n(2143),ee=n(6081),te=n(1846),ne=n(2319),re=n(9474),oe=n(3029),ie=n(2901),ae=n(5458);function se(){var e=document.createElement("div");e.style.width="99px",e.style.height="99px",e.style.position="absolute",e.style.top="-9999px",e.style.overflow="scroll",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),t}function le(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function ce(e){return parseInt(window.getComputedStyle(e)["padding-right"],10)||0}function ue(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=arguments.length>4?arguments[4]:void 0,i=[t,n].concat((0,ae.A)(r)),a=["TEMPLATE","SCRIPT","STYLE"];[].forEach.call(e.children,(function(e){1===e.nodeType&&-1===i.indexOf(e)&&-1===a.indexOf(e.tagName)&&le(e,o)}))}function de(e,t){var n=-1;return e.some((function(e,r){return!!t(e)&&(n=r,!0)})),n}var pe=function(){function e(){(0,oe.A)(this,e),this.modals=[],this.containers=[]}return(0,ie.A)(e,[{key:"add",value:function(e,t){var n=this.modals.indexOf(e);if(-1!==n)return n;n=this.modals.length,this.modals.push(e),e.modalRef&&le(e.modalRef,!1);var r=function(e){var t=[];return[].forEach.call(e.children,(function(e){e.getAttribute&&"true"===e.getAttribute("aria-hidden")&&t.push(e)})),t}(t);ue(t,e.mountNode,e.modalRef,r,!0);var o=de(this.containers,(function(e){return e.container===t}));return-1!==o?(this.containers[o].modals.push(e),n):(this.containers.push({modals:[e],container:t,restore:null,hiddenSiblingNodes:r}),n)}},{key:"mount",value:function(e,t){var n=de(this.containers,(function(t){return-1!==t.modals.indexOf(e)})),r=this.containers[n];r.restore||(r.restore=function(e,t){var n,r=[],o=[],i=e.container;if(!t.disableScrollLock){if(function(e){var t=X(e);return t.body===e?J(t).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}(i)){var a=se();r.push({value:i.style.paddingRight,key:"padding-right",el:i}),i.style["padding-right"]="".concat(ce(i)+a,"px"),n=X(i).querySelectorAll(".mui-fixed"),[].forEach.call(n,(function(e){o.push(e.style.paddingRight),e.style.paddingRight="".concat(ce(e)+a,"px")}))}var s=i.parentElement,l="HTML"===s.nodeName&&"scroll"===window.getComputedStyle(s)["overflow-y"]?s:i;r.push({value:l.style.overflow,key:"overflow",el:l}),l.style.overflow="hidden"}return function(){n&&[].forEach.call(n,(function(e,t){o[t]?e.style.paddingRight=o[t]:e.style.removeProperty("padding-right")})),r.forEach((function(e){var t=e.value,n=e.el,r=e.key;t?n.style.setProperty(r,t):n.style.removeProperty(r)}))}}(r,t))}},{key:"remove",value:function(e){var t=this.modals.indexOf(e);if(-1===t)return t;var n=de(this.containers,(function(t){return-1!==t.modals.indexOf(e)})),r=this.containers[n];if(r.modals.splice(r.modals.indexOf(e),1),this.modals.splice(t,1),0===r.modals.length)r.restore&&r.restore(),e.modalRef&&le(e.modalRef,!0),ue(r.container,e.mountNode,e.modalRef,r.hiddenSiblingNodes,!1),this.containers.splice(n,1);else{var o=r.modals[r.modals.length-1];o.modalRef&&le(o.modalRef,!1)}return t}},{key:"isTopModal",value:function(e){return this.modals.length>0&&this.modals[this.modals.length-1]===e}}]),e}();const fe=function(e){var t=e.children,n=e.disableAutoFocus,r=void 0!==n&&n,o=e.disableEnforceFocus,a=void 0!==o&&o,s=e.disableRestoreFocus,l=void 0!==s&&s,c=e.getDoc,u=e.isEnabled,d=e.open,p=i.useRef(),f=i.useRef(null),m=i.useRef(null),v=i.useRef(),g=i.useRef(null),y=i.useCallback((function(e){g.current=G.findDOMNode(e)}),[]),b=(0,h.A)(t.ref,y),x=i.useRef();return i.useEffect((function(){x.current=d}),[d]),!x.current&&d&&"undefined"!=typeof window&&(v.current=c().activeElement),i.useEffect((function(){if(d){var e=X(g.current);r||!g.current||g.current.contains(e.activeElement)||(g.current.hasAttribute("tabIndex")||g.current.setAttribute("tabIndex",-1),g.current.focus());var t=function(){null!==g.current&&(e.hasFocus()&&!a&&u()&&!p.current?g.current&&!g.current.contains(e.activeElement)&&g.current.focus():p.current=!1)},n=function(t){!a&&u()&&9===t.keyCode&&e.activeElement===g.current&&(p.current=!0,t.shiftKey?m.current.focus():f.current.focus())};e.addEventListener("focus",t,!0),e.addEventListener("keydown",n,!0);var o=setInterval((function(){t()}),50);return function(){clearInterval(o),e.removeEventListener("focus",t,!0),e.removeEventListener("keydown",n,!0),l||(v.current&&v.current.focus&&v.current.focus(),v.current=null)}}}),[r,a,l,u,d]),i.createElement(i.Fragment,null,i.createElement("div",{tabIndex:0,ref:f,"data-test":"sentinelStart"}),i.cloneElement(t,{ref:b}),i.createElement("div",{tabIndex:0,ref:m,"data-test":"sentinelEnd"}))};var he={root:{zIndex:-1,position:"fixed",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},invisible:{backgroundColor:"transparent"}};const me=i.forwardRef((function(e,t){var n=e.invisible,a=void 0!==n&&n,s=e.open,l=(0,o.A)(e,["invisible","open"]);return s?i.createElement("div",(0,r.A)({"aria-hidden":!0,ref:t},l,{style:(0,r.A)({},he.root,a?he.invisible:{},l.style)})):null}));var ve=new pe;const ge=i.forwardRef((function(e,t){var n=(0,Q.A)(),a=(0,ee.A)({name:"MuiModal",props:(0,r.A)({},e),theme:n}),s=a.BackdropComponent,l=void 0===s?me:s,c=a.BackdropProps,u=a.children,d=a.closeAfterTransition,p=void 0!==d&&d,f=a.container,m=a.disableAutoFocus,v=void 0!==m&&m,g=a.disableBackdropClick,y=void 0!==g&&g,b=a.disableEnforceFocus,x=void 0!==b&&b,A=a.disableEscapeKeyDown,w=void 0!==A&&A,k=a.disablePortal,S=void 0!==k&&k,C=a.disableRestoreFocus,E=void 0!==C&&C,O=a.disableScrollLock,R=void 0!==O&&O,P=a.hideBackdrop,$=void 0!==P&&P,M=a.keepMounted,T=void 0!==M&&M,I=a.manager,N=void 0===I?ve:I,j=a.onBackdropClick,L=a.onClose,z=a.onEscapeKeyDown,D=a.onRendered,F=a.open,_=(0,o.A)(a,["BackdropComponent","BackdropProps","children","closeAfterTransition","container","disableAutoFocus","disableBackdropClick","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","manager","onBackdropClick","onClose","onEscapeKeyDown","onRendered","open"]),W=i.useState(!0),B=W[0],V=W[1],H=i.useRef({}),q=i.useRef(null),K=i.useRef(null),U=(0,h.A)(K,t),Y=function(e){return!!e.children&&e.children.props.hasOwnProperty("in")}(a),J=function(){return X(q.current)},oe=function(){return H.current.modalRef=K.current,H.current.mountNode=q.current,H.current},ie=function(){N.mount(oe(),{disableScrollLock:R}),K.current.scrollTop=0},ae=(0,ne.A)((function(){var e=function(e){return e="function"==typeof e?e():e,G.findDOMNode(e)}(f)||J().body;N.add(oe(),e),K.current&&ie()})),se=i.useCallback((function(){return N.isTopModal(oe())}),[N]),ce=(0,ne.A)((function(e){q.current=e,e&&(D&&D(),F&&se()?ie():le(K.current,!0))})),ue=i.useCallback((function(){N.remove(oe())}),[N]);if(i.useEffect((function(){return function(){ue()}}),[ue]),i.useEffect((function(){F?ae():Y&&p||ue()}),[F,ue,Y,p,ae]),!T&&!F&&(!Y||B))return null;var de=function(e){return{root:{position:"fixed",zIndex:e.zIndex.modal,right:0,bottom:0,top:0,left:0},hidden:{visibility:"hidden"}}}(n||{zIndex:re.A}),pe={};return void 0===u.props.tabIndex&&(pe.tabIndex=u.props.tabIndex||"-1"),Y&&(pe.onEnter=(0,Z.A)((function(){V(!1)}),u.props.onEnter),pe.onExited=(0,Z.A)((function(){V(!0),p&&ue()}),u.props.onExited)),i.createElement(te.A,{ref:ce,container:f,disablePortal:S},i.createElement("div",(0,r.A)({ref:U,onKeyDown:function(e){"Escape"===e.key&&se()&&(z&&z(e),w||(e.stopPropagation(),L&&L(e,"escapeKeyDown")))},role:"presentation"},_,{style:(0,r.A)({},de.root,!F&&B?de.hidden:{},_.style)}),$?null:i.createElement(l,(0,r.A)({open:F,onClick:function(e){e.target===e.currentTarget&&(j&&j(e),!y&&L&&L(e,"backdropClick"))}},c)),i.createElement(fe,{disableEnforceFocus:x,disableAutoFocus:v,disableRestoreFocus:E,getDoc:J,isEnabled:se,open:F},i.cloneElement(u,pe))))}));var ye=n(8587),be=n(7387);var xe=n(7241),Ae="unmounted",we="exited",ke="entering",Se="entered",Ce="exiting",Ee=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var o,i=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?i?(o=we,r.appearStatus=ke):o=Se:o=t.unmountOnExit||t.mountOnEnter?Ae:we,r.state={status:o},r.nextCallback=null,r}(0,be.A)(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===Ae?{status:we}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==ke&&n!==Se&&(t=ke):n!==ke&&n!==Se||(t=Ce)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!=typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t)if(this.cancelNextCallback(),t===ke){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:Y().findDOMNode(this);n&&function(e){e.scrollTop}(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===we&&this.setState({status:Ae})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,o=this.props.nodeRef?[r]:[Y().findDOMNode(this),r],i=o[0],a=o[1],s=this.getTimeouts(),l=r?s.appear:s.enter;e||n?(this.props.onEnter(i,a),this.safeSetState({status:ke},(function(){t.props.onEntering(i,a),t.onTransitionEnd(l,(function(){t.safeSetState({status:Se},(function(){t.props.onEntered(i,a)}))}))}))):this.safeSetState({status:Se},(function(){t.props.onEntered(i)}))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:Y().findDOMNode(this);t?(this.props.onExit(r),this.safeSetState({status:Ce},(function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:we},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:we},(function(){e.props.onExited(r)}))},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:Y().findDOMNode(this),r=null==e&&!this.props.addEndListener;if(n&&!r){if(this.props.addEndListener){var o=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],i=o[0],a=o[1];this.props.addEndListener(i,a)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===Ae)return null;var t=this.props,n=t.children,r=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,(0,ye.A)(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return a().createElement(xe.A.Provider,{value:null},"function"==typeof n?n(e,r):a().cloneElement(a().Children.only(n),r))},t}(a().Component);function Oe(){}Ee.contextType=xe.A,Ee.propTypes={},Ee.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:Oe,onEntering:Oe,onEntered:Oe,onExit:Oe,onExiting:Oe,onExited:Oe},Ee.UNMOUNTED=Ae,Ee.EXITED=we,Ee.ENTERING=ke,Ee.ENTERED=Se,Ee.EXITING=Ce;const Re=Ee;function Pe(e,t){var n=e.timeout,r=e.style,o=void 0===r?{}:r;return{duration:o.transitionDuration||"number"==typeof n?n:n[t.mode]||0,delay:o.transitionDelay}}function $e(e){return"scale(".concat(e,", ").concat(Math.pow(e,2),")")}var Me={entering:{opacity:1,transform:$e(1)},entered:{opacity:1,transform:"none"}},Te=i.forwardRef((function(e,t){var n=e.children,a=e.disableStrictModeCompat,s=void 0!==a&&a,l=e.in,c=e.onEnter,u=e.onEntered,d=e.onEntering,p=e.onExit,f=e.onExited,m=e.onExiting,v=e.style,g=e.timeout,y=void 0===g?"auto":g,b=e.TransitionComponent,x=void 0===b?Re:b,A=(0,o.A)(e,["children","disableStrictModeCompat","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"]),w=i.useRef(),k=i.useRef(),S=(0,$.A)(),C=S.unstable_strictMode&&!s,E=i.useRef(null),O=(0,h.A)(n.ref,t),R=(0,h.A)(C?E:void 0,O),P=function(e){return function(t,n){if(e){var r=C?[E.current,t]:[t,n],o=(0,K.A)(r,2),i=o[0],a=o[1];void 0===a?e(i):e(i,a)}}},M=P(d),T=P((function(e,t){!function(e){e.scrollTop}(e);var n,r=Pe({style:v,timeout:y},{mode:"enter"}),o=r.duration,i=r.delay;"auto"===y?(n=S.transitions.getAutoHeightDuration(e.clientHeight),k.current=n):n=o,e.style.transition=[S.transitions.create("opacity",{duration:n,delay:i}),S.transitions.create("transform",{duration:.666*n,delay:i})].join(","),c&&c(e,t)})),I=P(u),N=P(m),j=P((function(e){var t,n=Pe({style:v,timeout:y},{mode:"exit"}),r=n.duration,o=n.delay;"auto"===y?(t=S.transitions.getAutoHeightDuration(e.clientHeight),k.current=t):t=r,e.style.transition=[S.transitions.create("opacity",{duration:t,delay:o}),S.transitions.create("transform",{duration:.666*t,delay:o||.333*t})].join(","),e.style.opacity="0",e.style.transform=$e(.75),p&&p(e)})),L=P(f);return i.useEffect((function(){return function(){clearTimeout(w.current)}}),[]),i.createElement(x,(0,r.A)({appear:!0,in:l,nodeRef:C?E:void 0,onEnter:T,onEntered:I,onEntering:M,onExit:j,onExited:L,onExiting:N,addEndListener:function(e,t){var n=C?e:t;"auto"===y&&(w.current=setTimeout(n,k.current||0))},timeout:"auto"===y?null:y},A),(function(e,t){return i.cloneElement(n,(0,r.A)({style:(0,r.A)({opacity:0,transform:$e(.75),visibility:"exited"!==e||l?void 0:"hidden"},Me[e],v,n.props.style),ref:R},t))}))}));Te.muiSupportAuto=!0;const Ie=Te;var Ne=n(3148);function je(e,t){var n=0;return"number"==typeof t?n=t:"center"===t?n=e.height/2:"bottom"===t&&(n=e.height),n}function Le(e,t){var n=0;return"number"==typeof t?n=t:"center"===t?n=e.width/2:"right"===t&&(n=e.width),n}function ze(e){return[e.horizontal,e.vertical].map((function(e){return"number"==typeof e?"".concat(e,"px"):e})).join(" ")}function De(e){return"function"==typeof e?e():e}var Fe=i.forwardRef((function(e,t){var n=e.action,a=e.anchorEl,l=e.anchorOrigin,c=void 0===l?{vertical:"top",horizontal:"left"}:l,u=e.anchorPosition,d=e.anchorReference,p=void 0===d?"anchorEl":d,f=e.children,h=e.classes,v=e.className,g=e.container,y=e.elevation,b=void 0===y?8:y,x=e.getContentAnchorEl,A=e.marginThreshold,w=void 0===A?16:A,k=e.onEnter,S=e.onEntered,C=e.onEntering,E=e.onExit,O=e.onExited,R=e.onExiting,P=e.open,$=e.PaperProps,M=void 0===$?{}:$,T=e.transformOrigin,I=void 0===T?{vertical:"top",horizontal:"left"}:T,N=e.TransitionComponent,j=void 0===N?Ie:N,L=e.transitionDuration,z=void 0===L?"auto":L,D=e.TransitionProps,F=void 0===D?{}:D,_=(0,o.A)(e,["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","classes","className","container","elevation","getContentAnchorEl","marginThreshold","onEnter","onEntered","onEntering","onExit","onExited","onExiting","open","PaperProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps"]),W=i.useRef(),B=i.useCallback((function(e){if("anchorPosition"===p)return u;var t=De(a),n=(t&&1===t.nodeType?t:X(W.current).body).getBoundingClientRect(),r=0===e?c.vertical:"center";return{top:n.top+je(n,r),left:n.left+Le(n,c.horizontal)}}),[a,c.horizontal,c.vertical,u,p]),V=i.useCallback((function(e){var t=0;if(x&&"anchorEl"===p){var n=x(e);if(n&&e.contains(n)){var r=function(e,t){for(var n=t,r=0;n&&n!==e;)r+=(n=n.parentElement).scrollTop;return r}(e,n);t=n.offsetTop+n.clientHeight/2-r||0}}return t}),[c.vertical,p,x]),H=i.useCallback((function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return{vertical:je(e,I.vertical)+t,horizontal:Le(e,I.horizontal)}}),[I.horizontal,I.vertical]),q=i.useCallback((function(e){var t=V(e),n={width:e.offsetWidth,height:e.offsetHeight},r=H(n,t);if("none"===p)return{top:null,left:null,transformOrigin:ze(r)};var o=B(t),i=o.top-r.vertical,s=o.left-r.horizontal,l=i+n.height,c=s+n.width,u=J(De(a)),d=u.innerHeight-w,f=u.innerWidth-w;if(i<w){var h=i-w;i-=h,r.vertical+=h}else if(l>d){var m=l-d;i-=m,r.vertical+=m}if(s<w){var v=s-w;s-=v,r.horizontal+=v}else if(c>f){var g=c-f;s-=g,r.horizontal+=g}return{top:"".concat(Math.round(i),"px"),left:"".concat(Math.round(s),"px"),transformOrigin:ze(r)}}),[a,p,B,V,H,w]),K=i.useCallback((function(){var e=W.current;if(e){var t=q(e);null!==t.top&&(e.style.top=t.top),null!==t.left&&(e.style.left=t.left),e.style.transformOrigin=t.transformOrigin}}),[q]),U=i.useCallback((function(e){W.current=G.findDOMNode(e)}),[]);i.useEffect((function(){P&&K()})),i.useImperativeHandle(n,(function(){return P?{updatePosition:function(){K()}}:null}),[P,K]),i.useEffect((function(){if(P){var e=m((function(){K()}));return window.addEventListener("resize",e),function(){e.clear(),window.removeEventListener("resize",e)}}}),[P,K]);var Y=z;"auto"!==z||j.muiSupportAuto||(Y=void 0);var Q=g||(a?X(De(a)).body:void 0);return i.createElement(ge,(0,r.A)({container:Q,open:P,ref:t,BackdropProps:{invisible:!0},className:(0,s.A)(h.root,v)},_),i.createElement(j,(0,r.A)({appear:!0,in:P,onEnter:k,onEntered:S,onExit:E,onExited:O,onExiting:R,timeout:Y},F,{onEntering:(0,Z.A)((function(e,t){C&&C(e,t),K()}),F.onEntering)}),i.createElement(Ne.A,(0,r.A)({elevation:b,ref:U},M,{className:(0,s.A)(h.paper,M.className)}),f)))}));const _e=(0,p.A)({root:{},paper:{position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}},{name:"MuiPopover"})(Fe),We=i.createContext({});var Be=i.forwardRef((function(e,t){var n=e.children,a=e.classes,l=e.className,c=e.component,u=void 0===c?"ul":c,d=e.dense,p=void 0!==d&&d,f=e.disablePadding,h=void 0!==f&&f,m=e.subheader,v=(0,o.A)(e,["children","classes","className","component","dense","disablePadding","subheader"]),g=i.useMemo((function(){return{dense:p}}),[p]);return i.createElement(We.Provider,{value:g},i.createElement(u,(0,r.A)({className:(0,s.A)(a.root,l,p&&a.dense,!h&&a.padding,m&&a.subheader),ref:t},v),m,n))}));const Ve=(0,p.A)({root:{listStyle:"none",margin:0,padding:0,position:"relative"},padding:{paddingTop:8,paddingBottom:8},dense:{},subheader:{paddingTop:0}},{name:"MuiList"})(Be);function He(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function qe(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function Ke(e,t){if(void 0===t)return!0;var n=e.innerText;return void 0===n&&(n=e.textContent),0!==(n=n.trim().toLowerCase()).length&&(t.repeating?n[0]===t.keys[0]:0===n.indexOf(t.keys.join("")))}function Ue(e,t,n,r,o,i){for(var a=!1,s=o(e,t,!!t&&n);s;){if(s===e.firstChild){if(a)return;a=!0}var l=!r&&(s.disabled||"true"===s.getAttribute("aria-disabled"));if(s.hasAttribute("tabindex")&&Ke(s,i)&&!l)return void s.focus();s=o(e,s,n)}}var Xe="undefined"==typeof window?i.useEffect:i.useLayoutEffect;const Ge=i.forwardRef((function(e,t){var n=e.actions,a=e.autoFocus,s=void 0!==a&&a,l=e.autoFocusItem,c=void 0!==l&&l,u=e.children,d=e.className,p=e.disabledItemsFocusable,f=void 0!==p&&p,m=e.disableListWrap,v=void 0!==m&&m,g=e.onKeyDown,y=e.variant,b=void 0===y?"selectedMenu":y,x=(0,o.A)(e,["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"]),A=i.useRef(null),w=i.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});Xe((function(){s&&A.current.focus()}),[s]),i.useImperativeHandle(n,(function(){return{adjustStyleForScrollbar:function(e,t){var n=!A.current.style.width;if(e.clientHeight<A.current.clientHeight&&n){var r="".concat(se(),"px");A.current.style["rtl"===t.direction?"paddingLeft":"paddingRight"]=r,A.current.style.width="calc(100% + ".concat(r,")")}return A.current}}}),[]);var k=i.useCallback((function(e){A.current=G.findDOMNode(e)}),[]),S=(0,h.A)(k,t),C=-1;i.Children.forEach(u,(function(e,t){i.isValidElement(e)&&(e.props.disabled||("selectedMenu"===b&&e.props.selected||-1===C)&&(C=t))}));var E=i.Children.map(u,(function(e,t){if(t===C){var n={};return c&&(n.autoFocus=!0),void 0===e.props.tabIndex&&"selectedMenu"===b&&(n.tabIndex=0),i.cloneElement(e,n)}return e}));return i.createElement(Ve,(0,r.A)({role:"menu",ref:S,className:d,onKeyDown:function(e){var t=A.current,n=e.key,r=X(t).activeElement;if("ArrowDown"===n)e.preventDefault(),Ue(t,r,v,f,He);else if("ArrowUp"===n)e.preventDefault(),Ue(t,r,v,f,qe);else if("Home"===n)e.preventDefault(),Ue(t,null,v,f,He);else if("End"===n)e.preventDefault(),Ue(t,null,v,f,qe);else if(1===n.length){var o=w.current,i=n.toLowerCase(),a=performance.now();o.keys.length>0&&(a-o.lastTime>500?(o.keys=[],o.repeating=!0,o.previousKeyMatched=!0):o.repeating&&i!==o.keys[0]&&(o.repeating=!1)),o.lastTime=a,o.keys.push(i);var s=r&&!o.repeating&&Ke(r,o);o.previousKeyMatched&&(s||Ue(t,r,!1,f,He,o))?e.preventDefault():o.previousKeyMatched=!1}g&&g(e)},tabIndex:s?0:-1},x),E)}));var Ye=n(4960),Je={vertical:"top",horizontal:"right"},Ze={vertical:"top",horizontal:"left"},Qe=i.forwardRef((function(e,t){var n=e.autoFocus,a=void 0===n||n,l=e.children,c=e.classes,u=e.disableAutoFocusItem,d=void 0!==u&&u,p=e.MenuListProps,f=void 0===p?{}:p,h=e.onClose,m=e.onEntering,v=e.open,g=e.PaperProps,y=void 0===g?{}:g,b=e.PopoverClasses,x=e.transitionDuration,A=void 0===x?"auto":x,w=e.TransitionProps,k=(w=void 0===w?{}:w).onEntering,S=(0,o.A)(w,["onEntering"]),C=e.variant,E=void 0===C?"selectedMenu":C,O=(0,o.A)(e,["autoFocus","children","classes","disableAutoFocusItem","MenuListProps","onClose","onEntering","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant"]),R=(0,$.A)(),P=a&&!d&&v,M=i.useRef(null),T=i.useRef(null),I=-1;i.Children.map(l,(function(e,t){i.isValidElement(e)&&(e.props.disabled||("menu"!==E&&e.props.selected||-1===I)&&(I=t))}));var N=i.Children.map(l,(function(e,t){return t===I?i.cloneElement(e,{ref:function(t){T.current=G.findDOMNode(t),(0,Ye.A)(e.ref,t)}}):e}));return i.createElement(_e,(0,r.A)({getContentAnchorEl:function(){return T.current},classes:b,onClose:h,TransitionProps:(0,r.A)({onEntering:function(e,t){M.current&&M.current.adjustStyleForScrollbar(e,R),m&&m(e,t),k&&k(e,t)}},S),anchorOrigin:"rtl"===R.direction?Je:Ze,transformOrigin:"rtl"===R.direction?Je:Ze,PaperProps:(0,r.A)({},y,{classes:(0,r.A)({},y.classes,{root:c.paper})}),open:v,ref:t,transitionDuration:A},O),i.createElement(Ge,(0,r.A)({onKeyDown:function(e){"Tab"===e.key&&(e.preventDefault(),h&&h(e,"tabKeyDown"))},actions:M,autoFocus:a&&(-1===I||d),autoFocusItem:P,variant:E},f,{className:(0,s.A)(c.list,f.className)}),N))}));const et=(0,p.A)({paper:{maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"},list:{outline:0}},{name:"MuiMenu"})(Qe);var tt=n(8060);function nt(e,t){return"object"===(0,U.A)(t)&&null!==t?e===t:String(e)===String(t)}const rt=i.forwardRef((function(e,t){var n=e["aria-label"],a=e.autoFocus,c=e.autoWidth,u=e.children,d=e.classes,p=e.className,m=e.defaultValue,v=e.disabled,g=e.displayEmpty,y=e.IconComponent,b=e.inputRef,x=e.labelId,w=e.MenuProps,k=void 0===w?{}:w,S=e.multiple,C=e.name,E=e.onBlur,O=e.onChange,R=e.onClose,P=e.onFocus,$=e.onOpen,M=e.open,T=e.readOnly,I=e.renderValue,N=e.SelectDisplayProps,j=void 0===N?{}:N,L=e.tabIndex,z=(e.type,e.value),D=e.variant,F=void 0===D?"standard":D,_=(0,o.A)(e,["aria-label","autoFocus","autoWidth","children","classes","className","defaultValue","disabled","displayEmpty","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"]),W=(0,tt.A)({controlled:z,default:m,name:"Select"}),B=(0,K.A)(W,2),V=B[0],H=B[1],q=i.useRef(null),U=i.useState(null),G=U[0],Y=U[1],J=i.useRef(null!=M).current,Z=i.useState(),Q=Z[0],ee=Z[1],te=i.useState(!1),ne=te[0],re=te[1],oe=(0,h.A)(t,b);i.useImperativeHandle(oe,(function(){return{focus:function(){G.focus()},node:q.current,value:V}}),[G,V]),i.useEffect((function(){a&&G&&G.focus()}),[a,G]),i.useEffect((function(){if(G){var e=X(G).getElementById(x);if(e){var t=function(){getSelection().isCollapsed&&G.focus()};return e.addEventListener("click",t),function(){e.removeEventListener("click",t)}}}}),[x,G]);var ie,ae,se=function(e,t){e?$&&$(t):R&&R(t),J||(ee(c?null:G.clientWidth),re(e))},le=i.Children.toArray(u),ce=function(e){return function(t){var n;if(S||se(!1,t),S){n=Array.isArray(V)?V.slice():[];var r=V.indexOf(e.props.value);-1===r?n.push(e.props.value):n.splice(r,1)}else n=e.props.value;e.props.onClick&&e.props.onClick(t),V!==n&&(H(n),O&&(t.persist(),Object.defineProperty(t,"target",{writable:!0,value:{value:n,name:C}}),O(t,e)))}},ue=null!==G&&(J?M:ne);delete _["aria-invalid"];var de=[],pe=!1;(A({value:V})||g)&&(I?ie=I(V):pe=!0);var fe=le.map((function(e){if(!i.isValidElement(e))return null;var t;if(S){if(!Array.isArray(V))throw new Error((0,l.A)(2));(t=V.some((function(t){return nt(t,e.props.value)})))&&pe&&de.push(e.props.children)}else(t=nt(V,e.props.value))&&pe&&(ae=e.props.children);return i.cloneElement(e,{"aria-selected":t?"true":void 0,onClick:ce(e),onKeyUp:function(t){" "===t.key&&t.preventDefault(),e.props.onKeyUp&&e.props.onKeyUp(t)},role:"option",selected:t,value:void 0,"data-value":e.props.value})}));pe&&(ie=S?de.join(", "):ae);var he,me=Q;!c&&J&&G&&(me=G.clientWidth),he=void 0!==L?L:v?null:0;var ve=j.id||(C?"mui-component-select-".concat(C):void 0);return i.createElement(i.Fragment,null,i.createElement("div",(0,r.A)({className:(0,s.A)(d.root,d.select,d.selectMenu,d[F],p,v&&d.disabled),ref:Y,tabIndex:he,role:"button","aria-disabled":v?"true":void 0,"aria-expanded":ue?"true":void 0,"aria-haspopup":"listbox","aria-label":n,"aria-labelledby":[x,ve].filter(Boolean).join(" ")||void 0,onKeyDown:function(e){T||-1!==[" ","ArrowUp","ArrowDown","Enter"].indexOf(e.key)&&(e.preventDefault(),se(!0,e))},onMouseDown:v||T?null:function(e){0===e.button&&(e.preventDefault(),G.focus(),se(!0,e))},onBlur:function(e){!ue&&E&&(e.persist(),Object.defineProperty(e,"target",{writable:!0,value:{value:V,name:C}}),E(e))},onFocus:P},j,{id:ve}),function(e){return null==e||"string"==typeof e&&!e.trim()}(ie)?i.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}}):ie),i.createElement("input",(0,r.A)({value:Array.isArray(V)?V.join(","):V,name:C,ref:q,"aria-hidden":!0,onChange:function(e){var t=le.map((function(e){return e.props.value})).indexOf(e.target.value);if(-1!==t){var n=le[t];H(n.props.value),O&&O(e,n)}},tabIndex:-1,className:d.nativeInput,autoFocus:a},_)),i.createElement(y,{className:(0,s.A)(d.icon,d["icon".concat((0,f.A)(F))],ue&&d.iconOpen,v&&d.disabled)}),i.createElement(et,(0,r.A)({id:"menu-".concat(C||""),anchorEl:G,open:ue,onClose:function(e){se(!1,e)}},k,{MenuListProps:(0,r.A)({"aria-labelledby":x,role:"listbox",disableListWrap:!0},k.MenuListProps),PaperProps:(0,r.A)({},k.PaperProps,{style:(0,r.A)({minWidth:me},null!=k.PaperProps?k.PaperProps.style:null)})}),fe))})),ot=(0,n(4507).A)(i.createElement("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown"),it=i.forwardRef((function(e,t){var n=e.classes,a=e.className,l=e.disabled,c=e.IconComponent,u=e.inputRef,d=e.variant,p=void 0===d?"standard":d,h=(0,o.A)(e,["classes","className","disabled","IconComponent","inputRef","variant"]);return i.createElement(i.Fragment,null,i.createElement("select",(0,r.A)({className:(0,s.A)(n.root,n.select,n[p],a,l&&n.disabled),disabled:l,ref:u||t},h)),e.multiple?null:i.createElement(c,{className:(0,s.A)(n.icon,n["icon".concat((0,f.A)(p))],l&&n.disabled)}))}));var at=function(e){return{root:{},select:{"-moz-appearance":"none","-webkit-appearance":"none",userSelect:"none",borderRadius:0,minWidth:16,cursor:"pointer","&:focus":{backgroundColor:"light"===e.palette.type?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)",borderRadius:0},"&::-ms-expand":{display:"none"},"&$disabled":{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:e.palette.background.paper},"&&":{paddingRight:24}},filled:{"&&":{paddingRight:32}},outlined:{borderRadius:e.shape.borderRadius,"&&":{paddingRight:32}},selectMenu:{height:"auto",minHeight:"1.1876em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},disabled:{},icon:{position:"absolute",right:0,top:"calc(50% - 12px)",pointerEvents:"none",color:e.palette.action.active,"&$disabled":{color:e.palette.action.disabled}},iconOpen:{transform:"rotate(180deg)"},iconFilled:{right:7},iconOutlined:{right:7},nativeInput:{bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%"}}},st=i.createElement(E,null),lt=i.forwardRef((function(e,t){var n=e.children,a=e.classes,s=e.IconComponent,l=void 0===s?ot:s,u=e.input,d=void 0===u?st:u,p=e.inputProps,f=(e.variant,(0,o.A)(e,["children","classes","IconComponent","input","inputProps","variant"])),h=c({props:e,muiFormControl:j(),states:["variant"]});return i.cloneElement(d,(0,r.A)({inputComponent:it,inputProps:(0,r.A)({children:n,classes:a,IconComponent:l,variant:h.variant,type:void 0},p,d?d.props.inputProps:{}),ref:t},f))}));lt.muiName="Select",(0,p.A)(at,{name:"MuiNativeSelect"})(lt);var ct=at,ut=i.createElement(E,null),dt=i.createElement(R,null),pt=i.forwardRef((function e(t,n){var a=t.autoWidth,s=void 0!==a&&a,l=t.children,u=t.classes,d=t.displayEmpty,p=void 0!==d&&d,f=t.IconComponent,h=void 0===f?ot:f,m=t.id,v=t.input,g=t.inputProps,y=t.label,b=t.labelId,x=t.labelWidth,A=void 0===x?0:x,w=t.MenuProps,k=t.multiple,S=void 0!==k&&k,C=t.native,E=void 0!==C&&C,O=t.onClose,R=t.onOpen,P=t.open,$=t.renderValue,M=t.SelectDisplayProps,T=t.variant,I=void 0===T?"standard":T,L=(0,o.A)(t,["autoWidth","children","classes","displayEmpty","IconComponent","id","input","inputProps","label","labelId","labelWidth","MenuProps","multiple","native","onClose","onOpen","open","renderValue","SelectDisplayProps","variant"]),z=E?it:rt,D=c({props:t,muiFormControl:j(),states:["variant"]}).variant||I,F=v||{standard:ut,outlined:i.createElement(N,{label:y,labelWidth:A}),filled:dt}[D];return i.cloneElement(F,(0,r.A)({inputComponent:z,inputProps:(0,r.A)({children:l,IconComponent:h,variant:D,type:void 0,multiple:S},E?{id:m}:{autoWidth:s,displayEmpty:p,labelId:b,MenuProps:w,onClose:O,onOpen:R,open:P,renderValue:$,SelectDisplayProps:(0,r.A)({id:m},M)},g,{classes:g?(0,q.A)({baseClasses:u,newClasses:g.classes,Component:e}):u},v?v.props.inputProps:{}),ref:n},L))}));pt.muiName="Select";const ft=(0,p.A)(ct,{name:"MuiSelect"})(pt);var ht={standard:E,filled:R,outlined:N},mt=i.forwardRef((function(e,t){var n=e.autoComplete,a=e.autoFocus,l=void 0!==a&&a,c=e.children,u=e.classes,d=e.className,p=e.color,f=void 0===p?"primary":p,h=e.defaultValue,m=e.disabled,v=void 0!==m&&m,g=e.error,y=void 0!==g&&g,b=e.FormHelperTextProps,x=e.fullWidth,A=void 0!==x&&x,w=e.helperText,k=e.hiddenLabel,S=e.id,C=e.InputLabelProps,E=e.inputProps,O=e.InputProps,R=e.inputRef,P=e.label,$=e.multiline,M=void 0!==$&&$,T=e.name,I=e.onBlur,N=e.onChange,j=e.onFocus,L=e.placeholder,z=e.required,D=void 0!==z&&z,_=e.rows,W=e.rowsMax,V=e.maxRows,q=e.minRows,K=e.select,U=void 0!==K&&K,X=e.SelectProps,G=e.type,Y=e.value,J=e.variant,Z=void 0===J?"standard":J,Q=(0,o.A)(e,["autoComplete","autoFocus","children","classes","className","color","defaultValue","disabled","error","FormHelperTextProps","fullWidth","helperText","hiddenLabel","id","InputLabelProps","inputProps","InputProps","inputRef","label","multiline","name","onBlur","onChange","onFocus","placeholder","required","rows","rowsMax","maxRows","minRows","select","SelectProps","type","value","variant"]),ee={};if("outlined"===Z&&(C&&void 0!==C.shrink&&(ee.notched=C.shrink),P)){var te,ne=null!==(te=null==C?void 0:C.required)&&void 0!==te?te:D;ee.label=i.createElement(i.Fragment,null,P,ne&&" *")}U&&(X&&X.native||(ee.id=void 0),ee["aria-describedby"]=void 0);var re=w&&S?"".concat(S,"-helper-text"):void 0,oe=P&&S?"".concat(S,"-label"):void 0,ie=ht[Z],ae=i.createElement(ie,(0,r.A)({"aria-describedby":re,autoComplete:n,autoFocus:l,defaultValue:h,fullWidth:A,multiline:M,name:T,rows:_,rowsMax:W,maxRows:V,minRows:q,type:G,value:Y,id:S,inputRef:R,onBlur:I,onChange:N,onFocus:j,placeholder:L,inputProps:E},ee,O));return i.createElement(B,(0,r.A)({className:(0,s.A)(u.root,d),disabled:v,error:y,fullWidth:A,hiddenLabel:k,ref:t,required:D,color:f,variant:Z},Q),P&&i.createElement(F,(0,r.A)({htmlFor:S,id:oe},C),P),U?i.createElement(ft,(0,r.A)({"aria-describedby":re,id:S,labelId:oe,value:Y,input:ae},X),c):ae,w&&i.createElement(H,(0,r.A)({id:re},b),w))}));const vt=(0,p.A)({root:{}},{name:"MuiTextField"})(mt)},9773:(e,t,n)=>{"use strict";n.d(t,{E2:()=>i,J1:()=>d,Ob:()=>a,Rv:()=>f,X0:()=>c,X4:()=>h,YL:()=>s,a:()=>v,e$:()=>m,eM:()=>u,rP:()=>l,tL:()=>p});var r=n(7860);function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Math.min(Math.max(t,e),n)}function i(e){e=e.substr(1);var t=new RegExp(".{1,".concat(e.length>=6?2:1,"}"),"g"),n=e.match(t);return n&&1===n[0].length&&(n=n.map((function(e){return e+e}))),n?"rgb".concat(4===n.length?"a":"","(").concat(n.map((function(e,t){return t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3})).join(", "),")"):""}function a(e){if(0===e.indexOf("#"))return e;var t=l(e).values;return"#".concat(t.map((function(e){return 1===(t=e.toString(16)).length?"0".concat(t):t;var t})).join(""))}function s(e){var t=(e=l(e)).values,n=t[0],r=t[1]/100,o=t[2]/100,i=r*Math.min(o,1-o),a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e+n/30)%12;return o-i*Math.max(Math.min(t-3,9-t,1),-1)},s="rgb",u=[Math.round(255*a(0)),Math.round(255*a(8)),Math.round(255*a(4))];return"hsla"===e.type&&(s+="a",u.push(t[3])),c({type:s,values:u})}function l(e){if(e.type)return e;if("#"===e.charAt(0))return l(i(e));var t=e.indexOf("("),n=e.substring(0,t);if(-1===["rgb","rgba","hsl","hsla"].indexOf(n))throw new Error((0,r.A)(3,e));var o=e.substring(t+1,e.length-1).split(",");return{type:n,values:o=o.map((function(e){return parseFloat(e)}))}}function c(e){var t=e.type,n=e.values;return-1!==t.indexOf("rgb")?n=n.map((function(e,t){return t<3?parseInt(e,10):e})):-1!==t.indexOf("hsl")&&(n[1]="".concat(n[1],"%"),n[2]="".concat(n[2],"%")),"".concat(t,"(").concat(n.join(", "),")")}function u(e,t){var n=d(e),r=d(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function d(e){var t="hsl"===(e=l(e)).type?l(s(e)).values:e.values;return t=t.map((function(e){return(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)})),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.15;return d(e)>.5?m(e,t):v(e,t)}function f(e,t){return h(e,t)}function h(e,t){return e=l(e),t=o(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),e.values[3]=t,c(e)}function m(e,t){if(e=l(e),t=o(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]*=1-t;return c(e)}function v(e,t){if(e=l(e),t=o(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;return c(e)}},6440:(e,t,n)=>{"use strict";n.d(t,{D:()=>U,A:()=>X});var r=n(45),o=n(2851),i=n(8168),a=["xs","sm","md","lg","xl"],s=n(4467);function l(e,t,n){var r;return(0,i.A)({gutters:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return console.warn(["Material-UI: theme.mixins.gutters() is deprecated.","You can use the source of the mixin directly:","\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n },\n "].join("\n")),(0,i.A)({paddingLeft:t(2),paddingRight:t(2)},n,(0,s.A)({},e.up("sm"),(0,i.A)({paddingLeft:t(3),paddingRight:t(3)},n[e.up("sm")])))},toolbar:(r={minHeight:56},(0,s.A)(r,"".concat(e.up("xs")," and (orientation: landscape)"),{minHeight:48}),(0,s.A)(r,e.up("sm"),{minHeight:64}),r)},n)}var c=n(7860);const u={black:"#000",white:"#fff"},d={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#d5d5d5",A200:"#aaaaaa",A400:"#303030",A700:"#616161"},p={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"},f={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"},h={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},m={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},v={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},g={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"};var y=n(9773),b={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",hint:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:u.white,default:d[50]},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},x={text:{primary:u.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",hint:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:d[800],default:"#303030"},action:{active:u.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function A(e,t,n,r){var o=r.light||r,i=r.dark||1.5*r;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=(0,y.a)(e.main,o):"dark"===t&&(e.dark=(0,y.e$)(e.main,i)))}function w(e){return Math.round(1e5*e)/1e5}function k(e){return w(e)}var S={textTransform:"uppercase"},C='"Roboto", "Helvetica", "Arial", sans-serif';function E(e,t){var n="function"==typeof t?t(e):t,a=n.fontFamily,s=void 0===a?C:a,l=n.fontSize,c=void 0===l?14:l,u=n.fontWeightLight,d=void 0===u?300:u,p=n.fontWeightRegular,f=void 0===p?400:p,h=n.fontWeightMedium,m=void 0===h?500:h,v=n.fontWeightBold,g=void 0===v?700:v,y=n.htmlFontSize,b=void 0===y?16:y,x=n.allVariants,A=n.pxToRem,E=(0,r.A)(n,["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"]),O=c/14,R=A||function(e){return"".concat(e/b*O,"rem")},P=function(e,t,n,r,o){return(0,i.A)({fontFamily:s,fontWeight:e,fontSize:R(t),lineHeight:n},s===C?{letterSpacing:"".concat(w(r/t),"em")}:{},o,x)},$={h1:P(d,96,1.167,-1.5),h2:P(d,60,1.2,-.5),h3:P(f,48,1.167,0),h4:P(f,34,1.235,.25),h5:P(f,24,1.334,0),h6:P(m,20,1.6,.15),subtitle1:P(f,16,1.75,.15),subtitle2:P(m,14,1.57,.1),body1:P(f,16,1.5,.15),body2:P(f,14,1.43,.15),button:P(m,14,1.75,.4,S),caption:P(f,12,1.66,.4),overline:P(f,12,2.66,1,S)};return(0,o.A)((0,i.A)({htmlFontSize:b,pxToRem:R,round:k,fontFamily:s,fontSize:c,fontWeightLight:d,fontWeightRegular:f,fontWeightMedium:m,fontWeightBold:g},$),E,{clone:!1})}function O(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(.2,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(.14,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(.12,")")].join(",")}const R=["none",O(0,2,1,-1,0,1,1,0,0,1,3,0),O(0,3,1,-2,0,2,2,0,0,1,5,0),O(0,3,3,-2,0,3,4,0,0,1,8,0),O(0,2,4,-1,0,4,5,0,0,1,10,0),O(0,3,5,-1,0,5,8,0,0,1,14,0),O(0,3,5,-1,0,6,10,0,0,1,18,0),O(0,4,5,-2,0,7,10,1,0,2,16,1),O(0,5,5,-3,0,8,10,1,0,3,14,2),O(0,5,6,-3,0,9,12,1,0,3,16,2),O(0,6,6,-3,0,10,14,1,0,4,18,3),O(0,6,7,-4,0,11,15,1,0,4,20,3),O(0,7,8,-4,0,12,17,2,0,5,22,4),O(0,7,8,-4,0,13,19,2,0,5,24,4),O(0,7,9,-4,0,14,21,2,0,5,26,4),O(0,8,9,-5,0,15,22,2,0,6,28,5),O(0,8,10,-5,0,16,24,2,0,6,30,5),O(0,8,11,-5,0,17,26,2,0,6,32,5),O(0,9,11,-5,0,18,28,2,0,7,34,6),O(0,9,12,-6,0,19,29,2,0,7,36,6),O(0,10,13,-6,0,20,31,3,0,8,38,7),O(0,10,13,-6,0,21,33,3,0,8,40,7),O(0,10,14,-6,0,22,35,3,0,8,42,7),O(0,11,14,-7,0,23,36,3,0,9,44,8),O(0,11,15,-7,0,24,38,3,0,9,46,8)],P={borderRadius:4};var $=n(296),M=n(2284),T={xs:0,sm:600,md:960,lg:1280,xl:1920},I={keys:["xs","sm","md","lg","xl"],up:function(e){return"@media (min-width:".concat(T[e],"px)")}};const N=function(e,t){return t?(0,o.A)(e,t,{clone:!1}):e};var j,L,z={m:"margin",p:"padding"},D={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},F={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},_=(j=function(e){if(e.length>2){if(!F[e])return[e];e=F[e]}var t=e.split(""),n=(0,$.A)(t,2),r=n[0],o=n[1],i=z[r],a=D[o]||"";return Array.isArray(a)?a.map((function(e){return i+e})):[i+a]},L={},function(e){return void 0===L[e]&&(L[e]=j(e)),L[e]}),W=["m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY"];function B(e){var t=e.spacing||8;return"number"==typeof t?function(e){return t*e}:Array.isArray(t)?function(e){return t[e]}:"function"==typeof t?t:function(){}}function V(e){var t=B(e.theme);return Object.keys(e).map((function(n){if(-1===W.indexOf(n))return null;var r=function(e,t){return function(n){return e.reduce((function(e,r){return e[r]=function(e,t){if("string"==typeof t||null==t)return t;var n=e(Math.abs(t));return t>=0?n:"number"==typeof n?-n:"-".concat(n)}(t,n),e}),{})}}(_(n),t),o=e[n];return function(e,t,n){if(Array.isArray(t)){var r=e.theme.breakpoints||I;return t.reduce((function(e,o,i){return e[r.up(r.keys[i])]=n(t[i]),e}),{})}if("object"===(0,M.A)(t)){var o=e.theme.breakpoints||I;return Object.keys(t).reduce((function(e,r){return e[o.up(r)]=n(t[r]),e}),{})}return n(t)}(e,o,r)})).reduce(N,{})}V.propTypes={},V.filterProps=W;var H=n(3870),q=n(9474);function K(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.breakpoints,n=void 0===t?{}:t,s=e.mixins,w=void 0===s?{}:s,k=e.palette,S=void 0===k?{}:k,C=e.spacing,O=e.typography,$=void 0===O?{}:O,M=(0,r.A)(e,["breakpoints","mixins","palette","spacing","typography"]),T=function(e){var t=e.primary,n=void 0===t?{light:p[300],main:p[500],dark:p[700]}:t,a=e.secondary,s=void 0===a?{light:f.A200,main:f.A400,dark:f.A700}:a,l=e.error,w=void 0===l?{light:h[300],main:h[500],dark:h[700]}:l,k=e.warning,S=void 0===k?{light:m[300],main:m[500],dark:m[700]}:k,C=e.info,E=void 0===C?{light:v[300],main:v[500],dark:v[700]}:C,O=e.success,R=void 0===O?{light:g[300],main:g[500],dark:g[700]}:O,P=e.type,$=void 0===P?"light":P,M=e.contrastThreshold,T=void 0===M?3:M,I=e.tonalOffset,N=void 0===I?.2:I,j=(0,r.A)(e,["primary","secondary","error","warning","info","success","type","contrastThreshold","tonalOffset"]);function L(e){return(0,y.eM)(e,x.text.primary)>=T?x.text.primary:b.text.primary}var z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:300,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:700;if(!(e=(0,i.A)({},e)).main&&e[t]&&(e.main=e[t]),!e.main)throw new Error((0,c.A)(4,t));if("string"!=typeof e.main)throw new Error((0,c.A)(5,JSON.stringify(e.main)));return A(e,"light",n,N),A(e,"dark",r,N),e.contrastText||(e.contrastText=L(e.main)),e},D={dark:x,light:b};return(0,o.A)((0,i.A)({common:u,type:$,primary:z(n),secondary:z(s,"A400","A200","A700"),error:z(w),warning:z(S),info:z(E),success:z(R),grey:d,contrastThreshold:T,getContrastText:L,augmentColor:z,tonalOffset:N},D[$]),j)}(S),I=function(e){var t=e.values,n=void 0===t?{xs:0,sm:600,md:960,lg:1280,xl:1920}:t,o=e.unit,s=void 0===o?"px":o,l=e.step,c=void 0===l?5:l,u=(0,r.A)(e,["values","unit","step"]);function d(e){var t="number"==typeof n[e]?n[e]:e;return"@media (min-width:".concat(t).concat(s,")")}function p(e,t){var r=a.indexOf(t);return r===a.length-1?d(e):"@media (min-width:".concat("number"==typeof n[e]?n[e]:e).concat(s,") and ")+"(max-width:".concat((-1!==r&&"number"==typeof n[a[r+1]]?n[a[r+1]]:t)-c/100).concat(s,")")}return(0,i.A)({keys:a,values:n,up:d,down:function(e){var t=a.indexOf(e)+1,r=n[a[t]];return t===a.length?d("xs"):"@media (max-width:".concat(("number"==typeof r&&t>0?r:e)-c/100).concat(s,")")},between:p,only:function(e){return p(e,e)},width:function(e){return n[e]}},u)}(n),N=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;if(e.mui)return e;var t=B({spacing:e}),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return 0===n.length?t(1):1===n.length?t(n[0]):n.map((function(e){if("string"==typeof e)return e;var n=t(e);return"number"==typeof n?"".concat(n,"px"):n})).join(" ")};return Object.defineProperty(n,"unit",{get:function(){return e}}),n.mui=!0,n}(C),j=(0,o.A)({breakpoints:I,direction:"ltr",mixins:l(I,N,w),overrides:{},palette:T,props:{},shadows:R,typography:E(T,$),spacing:N,shape:P,transitions:H.Ay,zIndex:q.A},M),L=arguments.length,z=new Array(L>1?L-1:0),D=1;D<L;D++)z[D-1]=arguments[D];return z.reduce((function(e,t){return(0,o.A)(e,t)}),j)}function U(){return K.apply(void 0,arguments)}const X=K},7114:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=(0,n(6440).A)()},3870:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>s,cz:()=>o,p0:()=>i});var r=n(45),o={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},i={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function a(e){return"".concat(Math.round(e),"ms")}const s={easing:o,duration:i,create:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["all"],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.duration,s=void 0===n?i.standard:n,l=t.easing,c=void 0===l?o.easeInOut:l,u=t.delay,d=void 0===u?0:u;return(0,r.A)(t,["duration","easing","delay"]),(Array.isArray(e)?e:[e]).map((function(e){return"".concat(e," ").concat("string"==typeof s?s:a(s)," ").concat(c," ").concat("string"==typeof d?d:a(d))})).join(",")},getAutoHeightDuration:function(e){if(!e)return 0;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}}},6232:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(2143),o=(n(1609),n(7114));function i(){return(0,r.A)()||o.A}},5192:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(8168),o=n(45),i=n(1609),a=n.n(i),s=n(4146),l=n.n(s),c=n(9815),u=n(6081),d=n(2143);var p=n(7114);const f=function(e,t){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(n){var i=t.defaultTheme,s=t.withTheme,p=void 0!==s&&s,f=t.name,h=(0,o.A)(t,["defaultTheme","withTheme","name"]),m=f,v=(0,c.A)(e,(0,r.A)({defaultTheme:i,Component:n,name:f||n.displayName,classNamePrefix:m},h)),g=a().forwardRef((function(e,t){e.classes;var s,l=e.innerRef,c=(0,o.A)(e,["classes","innerRef"]),h=v((0,r.A)({},n.defaultProps,e)),m=c;return("string"==typeof f||p)&&(s=(0,d.A)()||i,f&&(m=(0,u.A)({theme:s,name:f,props:c})),p&&!m.theme&&(m.theme=s)),a().createElement(n,(0,r.A)({ref:l||t,classes:h},m))}));return l()(g,n),g}}(e,(0,r.A)({defaultTheme:p.A},t))}},9474:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r={mobileStepper:1e3,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500}},7515:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(7860);function o(e){if("string"!=typeof e)throw new Error((0,r.A)(7));return e.charAt(0).toUpperCase()+e.slice(1)}},8521:(e,t,n)=>{"use strict";function r(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){return null==t?e:function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];e.apply(this,r),t.apply(this,r)}}),(function(){}))}n.d(t,{A:()=>r})},4507:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(8168),o=n(1609),i=n.n(o),a=n(45),s=n(53),l=n(5192),c=n(7515),u=o.forwardRef((function(e,t){var n=e.children,i=e.classes,l=e.className,u=e.color,d=void 0===u?"inherit":u,p=e.component,f=void 0===p?"svg":p,h=e.fontSize,m=void 0===h?"medium":h,v=e.htmlColor,g=e.titleAccess,y=e.viewBox,b=void 0===y?"0 0 24 24":y,x=(0,a.A)(e,["children","classes","className","color","component","fontSize","htmlColor","titleAccess","viewBox"]);return o.createElement(f,(0,r.A)({className:(0,s.A)(i.root,l,"inherit"!==d&&i["color".concat((0,c.A)(d))],"default"!==m&&"medium"!==m&&i["fontSize".concat((0,c.A)(m))]),focusable:"false",viewBox:b,color:v,"aria-hidden":!g||void 0,role:g?"img":void 0,ref:t},x),n,g?o.createElement("title",null,g):null)}));u.muiName="SvgIcon";const d=(0,l.A)((function(e){return{root:{userSelect:"none",width:"1em",height:"1em",display:"inline-block",fill:"currentColor",flexShrink:0,fontSize:e.typography.pxToRem(24),transition:e.transitions.create("fill",{duration:e.transitions.duration.shorter})},colorPrimary:{color:e.palette.primary.main},colorSecondary:{color:e.palette.secondary.main},colorAction:{color:e.palette.action.active},colorError:{color:e.palette.error.main},colorDisabled:{color:e.palette.action.disabled},fontSizeInherit:{fontSize:"inherit"},fontSizeSmall:{fontSize:e.typography.pxToRem(20)},fontSizeLarge:{fontSize:e.typography.pxToRem(35)}}}),{name:"MuiSvgIcon"})(u);function p(e,t){var n=function(t,n){return i().createElement(d,(0,r.A)({ref:n},t),e)};return n.muiName=d.muiName,i().memo(i().forwardRef(n))}},4960:(e,t,n)=>{"use strict";function r(e,t){"function"==typeof e?e(t):e&&(e.current=t)}n.d(t,{A:()=>r})},8060:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(1609);function o(e){var t=e.controlled,n=e.default,o=(e.name,e.state,r.useRef(void 0!==t).current),i=r.useState(n),a=i[0],s=i[1];return[o?t:a,r.useCallback((function(e){o||s(e)}),[])]}},2319:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(1609),o="undefined"!=typeof window?r.useLayoutEffect:r.useEffect;function i(e){var t=r.useRef(e);return o((function(){t.current=e})),r.useCallback((function(){return t.current.apply(void 0,arguments)}),[])}},4801:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(1609),o=n(4960);function i(e,t){return r.useMemo((function(){return null==e&&null==t?null:function(n){(0,o.A)(e,n),(0,o.A)(t,n)}}),[e,t])}},9117:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>h,si:()=>f});var r,o=n(8168),i=n(45),a=n(1609),s=n.n(a),l=n(1233),c=n(3317),u=n(9350),d=(0,c.vt)((0,u.A)()),p={disableGeneration:!1,generateClassName:(0,l.A)(),jss:d,sheetsCache:null,sheetsManager:new Map,sheetsRegistry:null},f=s().createContext(p);function h(e){var t=e.children,n=e.injectFirst,a=void 0!==n&&n,l=e.disableGeneration,d=void 0!==l&&l,p=(0,i.A)(e,["children","injectFirst","disableGeneration"]),h=s().useContext(f),m=(0,o.A)({},h,{disableGeneration:d},p);if(!m.jss.options.insertionPoint&&a&&"undefined"!=typeof window){if(!r){var v=document.head;r=document.createComment("mui-inject-first"),v.insertBefore(r,v.firstChild)}m.jss=(0,c.vt)({plugins:(0,u.A)().plugins,insertionPoint:r})}return s().createElement(f.Provider,{value:m},t)}},4910:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r="function"==typeof Symbol&&Symbol.for?Symbol.for("mui.nested"):"__THEME_NESTED__"},1233:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(4910),o=["checked","disabled","error","focused","focusVisible","required","expanded","selected"];function i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.disableGlobal,n=void 0!==t&&t,i=e.productionPrefix,a=void 0===i?"jss":i,s=e.seed,l=void 0===s?"":s,c=""===l?"":"".concat(l,"-"),u=0,d=function(){return u+=1};return function(e,t){var i=t.options.name;if(i&&0===i.indexOf("Mui")&&!t.options.link&&!n){if(-1!==o.indexOf(e.key))return"Mui-".concat(e.key);var s="".concat(c).concat(i,"-").concat(e.key);return t.options.theme[r.A]&&""===l?"".concat(s,"-").concat(d()):s}return"".concat(c).concat(a).concat(d())}}},6081:(e,t,n)=>{"use strict";function r(e){var t=e.theme,n=e.name,r=e.props;if(!t||!t.props||!t.props[n])return r;var o,i=t.props[n];for(o in i)void 0===r[o]&&(r[o]=i[o]);return r}n.d(t,{A:()=>r})},9350:(e,t,n)=>{"use strict";n.d(t,{A:()=>Ne});var r=n(3317),o=Date.now(),i="fnValues"+o,a="fnStyle"+ ++o;const s=function(){return{onCreateRule:function(e,t,n){if("function"!=typeof t)return null;var o=(0,r.D_)(e,{},n);return o[a]=t,o},onProcessStyle:function(e,t){if(i in t||a in t)return e;var n={};for(var r in e){var o=e[r];"function"==typeof o&&(delete e[r],n[r]=o)}return t[i]=n,e},onUpdate:function(e,t,n,r){var o=t,s=o[a];s&&(o.style=s(e)||{});var l=o[i];if(l)for(var c in l)o.prop(c,l[c](e),r)}}};var l=n(8168),c="@global",u=function(){function e(e,t,n){for(var o in this.type="global",this.at=c,this.isProcessed=!1,this.key=e,this.options=n,this.rules=new r.VZ((0,l.A)({},n,{parent:this})),t)this.rules.add(o,t[o]);this.rules.process()}var t=e.prototype;return t.getRule=function(e){return this.rules.get(e)},t.addRule=function(e,t,n){var r=this.rules.add(e,t,n);return r&&this.options.jss.plugins.onProcessRule(r),r},t.replaceRule=function(e,t,n){var r=this.rules.replace(e,t,n);return r&&this.options.jss.plugins.onProcessRule(r),r},t.indexOf=function(e){return this.rules.indexOf(e)},t.toString=function(e){return this.rules.toString(e)},e}(),d=function(){function e(e,t,n){this.type="global",this.at=c,this.isProcessed=!1,this.key=e,this.options=n;var r=e.substr(8);this.rule=n.jss.createRule(r,t,(0,l.A)({},n,{parent:this}))}return e.prototype.toString=function(e){return this.rule?this.rule.toString(e):""},e}(),p=/\s*,\s*/g;function f(e,t){for(var n=e.split(p),r="",o=0;o<n.length;o++)r+=t+" "+n[o].trim(),n[o+1]&&(r+=", ");return r}const h=function(){return{onCreateRule:function(e,t,n){if(!e)return null;if(e===c)return new u(e,t,n);if("@"===e[0]&&"@global "===e.substr(0,8))return new d(e,t,n);var r=n.parent;return r&&("global"===r.type||r.options.parent&&"global"===r.options.parent.type)&&(n.scoped=!1),n.selector||!1!==n.scoped||(n.selector=e),null},onProcessRule:function(e,t){"style"===e.type&&t&&(function(e,t){var n=e.options,r=e.style,o=r?r[c]:null;if(o){for(var i in o)t.addRule(i,o[i],(0,l.A)({},n,{selector:f(i,e.selector)}));delete r[c]}}(e,t),function(e,t){var n=e.options,r=e.style;for(var o in r)if("@"===o[0]&&o.substr(0,7)===c){var i=f(o.substr(7),e.selector);t.addRule(i,r[o],(0,l.A)({},n,{selector:i})),delete r[o]}}(e,t))}}};var m=/\s*,\s*/g,v=/&/g,g=/\$([\w-]+)/g;const y=function(){function e(e,t){return function(n,r){var o=e.getRule(r)||t&&t.getRule(r);return o?o.selector:r}}function t(e,t){for(var n=t.split(m),r=e.split(m),o="",i=0;i<n.length;i++)for(var a=n[i],s=0;s<r.length;s++){var l=r[s];o&&(o+=", "),o+=-1!==l.indexOf("&")?l.replace(v,a):a+" "+l}return o}function n(e,t,n){if(n)return(0,l.A)({},n,{index:n.index+1});var r=e.options.nestingLevel;r=void 0===r?1:r+1;var o=(0,l.A)({},e.options,{nestingLevel:r,index:t.indexOf(e)+1});return delete o.name,o}return{onProcessStyle:function(r,o,i){if("style"!==o.type)return r;var a,s,c=o,u=c.options.parent;for(var d in r){var p=-1!==d.indexOf("&"),f="@"===d[0];if(p||f){if(a=n(c,u,a),p){var h=t(d,c.selector);s||(s=e(u,i)),h=h.replace(g,s);var m=c.key+"-"+d;"replaceRule"in u?u.replaceRule(m,r[d],(0,l.A)({},a,{selector:h})):u.addRule(m,r[d],(0,l.A)({},a,{selector:h}))}else f&&u.addRule(d,{},a).addRule(c.key,r[d],{selector:c.selector});delete r[d]}}return r}}};var b=/[A-Z]/g,x=/^ms-/,A={};function w(e){return"-"+e.toLowerCase()}const k=function(e){if(A.hasOwnProperty(e))return A[e];var t=e.replace(b,w);return A[e]=x.test(t)?"-"+t:t};function S(e){var t={};for(var n in e)t[0===n.indexOf("--")?n:k(n)]=e[n];return e.fallbacks&&(Array.isArray(e.fallbacks)?t.fallbacks=e.fallbacks.map(S):t.fallbacks=S(e.fallbacks)),t}const C=function(){return{onProcessStyle:function(e){if(Array.isArray(e)){for(var t=0;t<e.length;t++)e[t]=S(e[t]);return e}return S(e)},onChangeValue:function(e,t,n){if(0===t.indexOf("--"))return e;var r=k(t);return t===r?e:(n.prop(r,e),null)}}};var E=r.rN&&CSS?CSS.px:"px",O=r.rN&&CSS?CSS.ms:"ms",R=r.rN&&CSS?CSS.percent:"%";function P(e){var t=/(-[a-z])/g,n=function(e){return e[1].toUpperCase()},r={};for(var o in e)r[o]=e[o],r[o.replace(t,n)]=e[o];return r}var $=P({"animation-delay":O,"animation-duration":O,"background-position":E,"background-position-x":E,"background-position-y":E,"background-size":E,border:E,"border-bottom":E,"border-bottom-left-radius":E,"border-bottom-right-radius":E,"border-bottom-width":E,"border-left":E,"border-left-width":E,"border-radius":E,"border-right":E,"border-right-width":E,"border-top":E,"border-top-left-radius":E,"border-top-right-radius":E,"border-top-width":E,"border-width":E,"border-block":E,"border-block-end":E,"border-block-end-width":E,"border-block-start":E,"border-block-start-width":E,"border-block-width":E,"border-inline":E,"border-inline-end":E,"border-inline-end-width":E,"border-inline-start":E,"border-inline-start-width":E,"border-inline-width":E,"border-start-start-radius":E,"border-start-end-radius":E,"border-end-start-radius":E,"border-end-end-radius":E,margin:E,"margin-bottom":E,"margin-left":E,"margin-right":E,"margin-top":E,"margin-block":E,"margin-block-end":E,"margin-block-start":E,"margin-inline":E,"margin-inline-end":E,"margin-inline-start":E,padding:E,"padding-bottom":E,"padding-left":E,"padding-right":E,"padding-top":E,"padding-block":E,"padding-block-end":E,"padding-block-start":E,"padding-inline":E,"padding-inline-end":E,"padding-inline-start":E,"mask-position-x":E,"mask-position-y":E,"mask-size":E,height:E,width:E,"min-height":E,"max-height":E,"min-width":E,"max-width":E,bottom:E,left:E,top:E,right:E,inset:E,"inset-block":E,"inset-block-end":E,"inset-block-start":E,"inset-inline":E,"inset-inline-end":E,"inset-inline-start":E,"box-shadow":E,"text-shadow":E,"column-gap":E,"column-rule":E,"column-rule-width":E,"column-width":E,"font-size":E,"font-size-delta":E,"letter-spacing":E,"text-decoration-thickness":E,"text-indent":E,"text-stroke":E,"text-stroke-width":E,"word-spacing":E,motion:E,"motion-offset":E,outline:E,"outline-offset":E,"outline-width":E,perspective:E,"perspective-origin-x":R,"perspective-origin-y":R,"transform-origin":R,"transform-origin-x":R,"transform-origin-y":R,"transform-origin-z":R,"transition-delay":O,"transition-duration":O,"vertical-align":E,"flex-basis":E,"shape-margin":E,size:E,gap:E,grid:E,"grid-gap":E,"row-gap":E,"grid-row-gap":E,"grid-column-gap":E,"grid-template-rows":E,"grid-template-columns":E,"grid-auto-rows":E,"grid-auto-columns":E,"box-shadow-x":E,"box-shadow-y":E,"box-shadow-blur":E,"box-shadow-spread":E,"font-line-height":E,"text-shadow-x":E,"text-shadow-y":E,"text-shadow-blur":E});function M(e,t,n){if(null==t)return t;if(Array.isArray(t))for(var r=0;r<t.length;r++)t[r]=M(e,t[r],n);else if("object"==typeof t)if("fallbacks"===e)for(var o in t)t[o]=M(o,t[o],n);else for(var i in t)t[i]=M(e+"-"+i,t[i],n);else if("number"==typeof t&&!1===isNaN(t)){var a=n[e]||$[e];return!a||0===t&&a===E?t.toString():"function"==typeof a?a(t).toString():""+t+a}return t}const T=function(e){void 0===e&&(e={});var t=P(e);return{onProcessStyle:function(e,n){if("style"!==n.type)return e;for(var r in e)e[r]=M(r,e[r],t);return e},onChangeValue:function(e,n){return M(n,e,t)}}};var I=n(4175),N=n(5458),j="",L="",z="",D="",F=I.A&&"ontouchstart"in document.documentElement;if(I.A){var _={Moz:"-moz-",ms:"-ms-",O:"-o-",Webkit:"-webkit-"},W=document.createElement("p").style;for(var B in _)if(B+"Transform"in W){j=B,L=_[B];break}"Webkit"===j&&"msHyphens"in W&&(j="ms",L=_.ms,D="edge"),"Webkit"===j&&"-apple-trailing-word"in W&&(z="apple")}var V=j,H=L,q=z,K=D,U=F,X={noPrefill:["appearance"],supportedProperty:function(e){return"appearance"===e&&("ms"===V?"-webkit-"+e:H+e)}},G={noPrefill:["color-adjust"],supportedProperty:function(e){return"color-adjust"===e&&("Webkit"===V?H+"print-"+e:e)}},Y=/[-\s]+(.)?/g;function J(e,t){return t?t.toUpperCase():""}function Z(e){return e.replace(Y,J)}function Q(e){return Z("-"+e)}var ee,te={noPrefill:["mask"],supportedProperty:function(e,t){if(!/^mask/.test(e))return!1;if("Webkit"===V){var n="mask-image";if(Z(n)in t)return e;if(V+Q(n)in t)return H+e}return e}},ne={noPrefill:["text-orientation"],supportedProperty:function(e){return"text-orientation"===e&&("apple"!==q||U?e:H+e)}},re={noPrefill:["transform"],supportedProperty:function(e,t,n){return"transform"===e&&(n.transform?e:H+e)}},oe={noPrefill:["transition"],supportedProperty:function(e,t,n){return"transition"===e&&(n.transition?e:H+e)}},ie={noPrefill:["writing-mode"],supportedProperty:function(e){return"writing-mode"===e&&("Webkit"===V||"ms"===V&&"edge"!==K?H+e:e)}},ae={noPrefill:["user-select"],supportedProperty:function(e){return"user-select"===e&&("Moz"===V||"ms"===V||"apple"===q?H+e:e)}},se={supportedProperty:function(e,t){return!!/^break-/.test(e)&&("Webkit"===V?"WebkitColumn"+Q(e)in t&&H+"column-"+e:"Moz"===V&&"page"+Q(e)in t&&"page-"+e)}},le={supportedProperty:function(e,t){if(!/^(border|margin|padding)-inline/.test(e))return!1;if("Moz"===V)return e;var n=e.replace("-inline","");return V+Q(n)in t&&H+n}},ce={supportedProperty:function(e,t){return Z(e)in t&&e}},ue={supportedProperty:function(e,t){var n=Q(e);return"-"===e[0]||"-"===e[0]&&"-"===e[1]?e:V+n in t?H+e:"Webkit"!==V&&"Webkit"+n in t&&"-webkit-"+e}},de={supportedProperty:function(e){return"scroll-snap"===e.substring(0,11)&&("ms"===V?""+H+e:e)}},pe={supportedProperty:function(e){return"overscroll-behavior"===e&&("ms"===V?H+"scroll-chaining":e)}},fe={"flex-grow":"flex-positive","flex-shrink":"flex-negative","flex-basis":"flex-preferred-size","justify-content":"flex-pack",order:"flex-order","align-items":"flex-align","align-content":"flex-line-pack"},he={supportedProperty:function(e,t){var n=fe[e];return!!n&&V+Q(n)in t&&H+n}},me={flex:"box-flex","flex-grow":"box-flex","flex-direction":["box-orient","box-direction"],order:"box-ordinal-group","align-items":"box-align","flex-flow":["box-orient","box-direction"],"justify-content":"box-pack"},ve=Object.keys(me),ge=function(e){return H+e},ye={supportedProperty:function(e,t,n){var r=n.multiple;if(ve.indexOf(e)>-1){var o=me[e];if(!Array.isArray(o))return V+Q(o)in t&&H+o;if(!r)return!1;for(var i=0;i<o.length;i++)if(!(V+Q(o[0])in t))return!1;return o.map(ge)}return!1}},be=[X,G,te,ne,re,oe,ie,ae,se,le,ce,ue,de,pe,he,ye],xe=be.filter((function(e){return e.supportedProperty})).map((function(e){return e.supportedProperty})),Ae=be.filter((function(e){return e.noPrefill})).reduce((function(e,t){return e.push.apply(e,(0,N.A)(t.noPrefill)),e}),[]),we={};if(I.A){ee=document.createElement("p");var ke=window.getComputedStyle(document.documentElement,"");for(var Se in ke)isNaN(Se)||(we[ke[Se]]=ke[Se]);Ae.forEach((function(e){return delete we[e]}))}function Ce(e,t){if(void 0===t&&(t={}),!ee)return e;if(null!=we[e])return we[e];"transition"!==e&&"transform"!==e||(t[e]=e in ee.style);for(var n=0;n<xe.length&&(we[e]=xe[n](e,ee.style,t),!we[e]);n++);try{ee.style[e]=""}catch(e){return!1}return we[e]}var Ee,Oe={},Re={transition:1,"transition-property":1,"-webkit-transition":1,"-webkit-transition-property":1},Pe=/(^\s*[\w-]+)|, (\s*[\w-]+)(?![^()]*\))/g;function $e(e,t,n){return"var"===t?"var":"all"===t?"all":"all"===n?", all":(t?Ce(t):", "+Ce(n))||t||n}function Me(e,t){var n=t;if(!Ee||"content"===e)return t;if("string"!=typeof n||!isNaN(parseInt(n,10)))return n;var r=e+n;if(null!=Oe[r])return Oe[r];try{Ee.style[e]=n}catch(e){return Oe[r]=!1,!1}if(Re[e])n=n.replace(Pe,$e);else if(""===Ee.style[e]&&("-ms-flex"===(n=H+n)&&(Ee.style[e]="-ms-flexbox"),Ee.style[e]=n,""===Ee.style[e]))return Oe[r]=!1,!1;return Ee.style[e]="",Oe[r]=n,Oe[r]}I.A&&(Ee=document.createElement("p"));const Te=function(){function e(t){for(var n in t){var o=t[n];if("fallbacks"===n&&Array.isArray(o))t[n]=o.map(e);else{var i=!1,a=Ce(n);a&&a!==n&&(i=!0);var s=!1,l=Me(a,(0,r.Sg)(o));l&&l!==o&&(s=!0),(i||s)&&(i&&delete t[n],t[a||n]=l||o)}}return t}return{onProcessRule:function(e){if("keyframes"===e.type){var t=e;t.at=function(e){return"-"===e[1]||"ms"===V?e:"@"+H+"keyframes"+e.substr(10)}(t.at)}},onProcessStyle:function(t,n){return"style"!==n.type?t:e(t)},onChangeValue:function(e,t){return Me(t,(0,r.Sg)(e))||e}}},Ie=function(){var e=function(e,t){return e.length===t.length?e>t?1:-1:e.length-t.length};return{onProcessStyle:function(t,n){if("style"!==n.type)return t;for(var r={},o=Object.keys(t).sort(e),i=0;i<o.length;i++)r[o[i]]=t[o[i]];return r}}};function Ne(){return{plugins:[s(),h(),y(),C(),T(),"undefined"==typeof window?null:Te(),Ie()]}}},9815:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(45),o=n(8168),i=n(1609),a=n.n(i),s=n(3317),l=n(3043);const c={set:function(e,t,n,r){var o=e.get(t);o||(o=new Map,e.set(t,o)),o.set(n,r)},get:function(e,t,n){var r=e.get(t);return r?r.get(n):void 0},delete:function(e,t,n){e.get(t).delete(n)}};var u=n(2143),d=n(9117),p=-1e9,f=n(2851);const h={};function m(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.name,i=t.classNamePrefix,m=t.Component,v=t.defaultTheme,g=void 0===v?h:v,y=(0,r.A)(t,["name","classNamePrefix","Component","defaultTheme"]),b=function(e){var t="function"==typeof e;return{create:function(n,r){var i;try{i=t?e(n):e}catch(e){throw e}if(!r||!n.overrides||!n.overrides[r])return i;var a=n.overrides[r],s=(0,o.A)({},i);return Object.keys(a).forEach((function(e){s[e]=(0,f.A)(s[e],a[e])})),s},options:{}}}(e),x=n||i||"makeStyles";return b.options={index:p+=1,name:n,meta:x,classNamePrefix:x},function(){var e,t,r,i,p,f=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},h=(0,u.A)()||g,v=(0,o.A)({},a().useContext(d.si),y),x=a().useRef(),A=a().useRef();e=function(){var e={name:n,state:{},stylesCreator:b,stylesOptions:v,theme:h};return function(e,t){var n=e.state,r=e.theme,i=e.stylesOptions,a=e.stylesCreator,u=e.name;if(!i.disableGeneration){var d=c.get(i.sheetsManager,a,r);d||(d={refs:0,staticSheet:null,dynamicStyles:null},c.set(i.sheetsManager,a,r,d));var p=(0,o.A)({},a.options,i,{theme:r,flip:"boolean"==typeof i.flip?i.flip:"rtl"===r.direction});p.generateId=p.serverGenerateClassName||p.generateClassName;var f=i.sheetsRegistry;if(0===d.refs){var h;i.sheetsCache&&(h=c.get(i.sheetsCache,a,r));var m=a.create(r,u);h||((h=i.jss.createStyleSheet(m,(0,o.A)({link:!1},p))).attach(),i.sheetsCache&&c.set(i.sheetsCache,a,r,h)),f&&f.add(h),d.staticSheet=h,d.dynamicStyles=(0,s.ih)(m)}if(d.dynamicStyles){var v=i.jss.createStyleSheet(d.dynamicStyles,(0,o.A)({link:!0},p));v.update(t),v.attach(),n.dynamicSheet=v,n.classes=(0,l.A)({baseClasses:d.staticSheet.classes,newClasses:v.classes}),f&&f.add(v)}else n.classes=d.staticSheet.classes;d.refs+=1}}(e,f),A.current=!1,x.current=e,function(){!function(e){var t=e.state,n=e.theme,r=e.stylesOptions,o=e.stylesCreator;if(!r.disableGeneration){var i=c.get(r.sheetsManager,o,n);i.refs-=1;var a=r.sheetsRegistry;0===i.refs&&(c.delete(r.sheetsManager,o,n),r.jss.removeStyleSheet(i.staticSheet),a&&a.remove(i.staticSheet)),t.dynamicSheet&&(r.jss.removeStyleSheet(t.dynamicSheet),a&&a.remove(t.dynamicSheet))}}(e)}},t=[h,b],i=a().useRef([]),p=a().useMemo((function(){return{}}),t),i.current!==p&&(i.current=p,r=e()),a().useEffect((function(){return function(){r&&r()}}),[p]),a().useEffect((function(){A.current&&function(e,t){var n=e.state;n.dynamicSheet&&n.dynamicSheet.update(t)}(x.current,f),A.current=!0}));var w=function(e,t,n){var r=e.state;if(e.stylesOptions.disableGeneration)return t||{};r.cacheClasses||(r.cacheClasses={value:null,lastProp:null,lastJSS:{}});var o=!1;return r.classes!==r.cacheClasses.lastJSS&&(r.cacheClasses.lastJSS=r.classes,o=!0),t!==r.cacheClasses.lastProp&&(r.cacheClasses.lastProp=t,o=!0),o&&(r.cacheClasses.value=(0,l.A)({baseClasses:r.cacheClasses.lastJSS,newClasses:t,Component:n})),r.cacheClasses.value}(x.current,f.classes,m);return w}}},3043:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(8168);function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.baseClasses,n=e.newClasses;if(e.Component,!n)return t;var o=(0,r.A)({},t);return Object.keys(n).forEach((function(e){n[e]&&(o[e]="".concat(t[e]," ").concat(n[e]))})),o}},6895:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(1609);const o=n.n(r)().createContext(null)},2143:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(1609),o=n.n(r),i=n(6895);function a(){return o().useContext(i.A)}},2851:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(8168),o=n(2284);function i(e){return e&&"object"===(0,o.A)(e)&&e.constructor===Object}function a(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{clone:!0},o=n.clone?(0,r.A)({},e):e;return i(e)&&i(t)&&Object.keys(t).forEach((function(r){"__proto__"!==r&&(i(t[r])&&r in e?o[r]=a(e[r],t[r],n):o[r]=t[r])})),o}},7860:(e,t,n)=>{"use strict";function r(e){for(var t="https://mui.com/production-error/?code="+e,n=1;n<arguments.length;n+=1)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified Material-UI error #"+e+"; visit "+t+" for the full message."}n.d(t,{A:()=>r})},9342:(e,t,n)=>{"use strict";n.d(t,{A:()=>$r});var r=n(8587),o=n(8168),i=n(1609);function a(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=a(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}const s=function(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=a(e))&&(r&&(r+=" "),r+=t);return r};let l=0;const c=i["useId".toString()];function u({controlled:e,default:t,name:n,state:r="value"}){const{current:o}=i.useRef(void 0!==e),[a,s]=i.useState(t);return[o?e:a,i.useCallback((e=>{o||s(e)}),[])]}const d="undefined"!=typeof window?i.useLayoutEffect:i.useEffect,p=function(e){const t=i.useRef(e);return d((()=>{t.current=e})),i.useRef(((...e)=>(0,t.current)(...e))).current};function f(e,t){"function"==typeof e?e(t):e&&(e.current=t)}function h(e){return void 0!==e.normalize?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):e}function m(e,t){for(let n=0;n<e.length;n+=1)if(t(e[n]))return n;return-1}const v=function(e={}){const{ignoreAccents:t=!0,ignoreCase:n=!0,limit:r,matchFrom:o="any",stringify:i,trim:a=!1}=e;return(e,{inputValue:s,getOptionLabel:l})=>{let c=a?s.trim():s;n&&(c=c.toLowerCase()),t&&(c=h(c));const u=c?e.filter((e=>{let r=(i||l)(e);return n&&(r=r.toLowerCase()),t&&(r=h(r)),"start"===o?0===r.indexOf(c):r.indexOf(c)>-1})):e;return"number"==typeof r?u.slice(0,r):u}}(),g=e=>{var t;return null!==e.current&&(null==(t=e.current.parentElement)?void 0:t.contains(document.activeElement))};function y(e){const{unstable_isActiveElementInListbox:t=g,unstable_classNamePrefix:n="Mui",autoComplete:r=!1,autoHighlight:a=!1,autoSelect:s=!1,blurOnSelect:d=!1,clearOnBlur:h=!e.freeSolo,clearOnEscape:y=!1,componentName:b="useAutocomplete",defaultValue:x=(e.multiple?[]:null),disableClearable:A=!1,disableCloseOnSelect:w=!1,disabled:k,disabledItemsFocusable:S=!1,disableListWrap:C=!1,filterOptions:E=v,filterSelectedOptions:O=!1,freeSolo:R=!1,getOptionDisabled:P,getOptionKey:$,getOptionLabel:M=(e=>{var t;return null!=(t=e.label)?t:e}),groupBy:T,handleHomeEndKeys:I=!e.freeSolo,id:N,includeInputInList:j=!1,inputValue:L,isOptionEqualToValue:z=((e,t)=>e===t),multiple:D=!1,onChange:F,onClose:_,onHighlightChange:W,onInputChange:B,onOpen:V,open:H,openOnFocus:q=!1,options:K,readOnly:U=!1,selectOnFocus:X=!e.freeSolo,value:G}=e,Y=function(e){if(void 0!==c){const t=c();return null!=e?e:t}return function(e){const[t,n]=i.useState(e),r=e||t;return i.useEffect((()=>{null==t&&(l+=1,n(`mui-${l}`))}),[t]),r}(e)}(N);let J=M;J=e=>{const t=M(e);return"string"!=typeof t?String(t):t};const Z=i.useRef(!1),Q=i.useRef(!0),ee=i.useRef(null),te=i.useRef(null),[ne,re]=i.useState(null),[oe,ie]=i.useState(-1),ae=a?0:-1,se=i.useRef(ae),[le,ce]=u({controlled:G,default:x,name:b}),[ue,de]=u({controlled:L,default:"",name:b,state:"inputValue"}),[pe,fe]=i.useState(!1),he=i.useCallback(((e,t)=>{if(!(D?le.length<t.length:null!==t)&&!h)return;let n;if(D)n="";else if(null==t)n="";else{const e=J(t);n="string"==typeof e?e:""}ue!==n&&(de(n),B&&B(e,n,"reset"))}),[J,ue,D,B,de,h,le]),[me,ve]=u({controlled:H,default:!1,name:b,state:"open"}),[ge,ye]=i.useState(!0),be=!D&&null!=le&&ue===J(le),xe=me&&!U,Ae=xe?E(K.filter((e=>!O||!(D?le:[le]).some((t=>null!==t&&z(e,t))))),{inputValue:be&&ge?"":ue,getOptionLabel:J}):[],we=(e=>{const t=i.useRef({});return i.useEffect((()=>{t.current=e})),t.current})({filteredOptions:Ae,value:le,inputValue:ue});i.useEffect((()=>{const e=le!==we.value;pe&&!e||R&&!e||he(null,le)}),[le,he,pe,we.value,R]);const ke=me&&Ae.length>0&&!U,Se=p((e=>{-1===e?ee.current.focus():ne.querySelector(`[data-tag-index="${e}"]`).focus()}));i.useEffect((()=>{D&&oe>le.length-1&&(ie(-1),Se(-1))}),[le,D,oe,Se]);const Ce=p((({event:e,index:t,reason:r="auto"})=>{if(se.current=t,-1===t?ee.current.removeAttribute("aria-activedescendant"):ee.current.setAttribute("aria-activedescendant",`${Y}-option-${t}`),W&&W(e,-1===t?null:Ae[t],r),!te.current)return;const o=te.current.querySelector(`[role="option"].${n}-focused`);o&&(o.classList.remove(`${n}-focused`),o.classList.remove(`${n}-focusVisible`));let i=te.current;if("listbox"!==te.current.getAttribute("role")&&(i=te.current.parentElement.querySelector('[role="listbox"]')),!i)return;if(-1===t)return void(i.scrollTop=0);const a=te.current.querySelector(`[data-option-index="${t}"]`);if(a&&(a.classList.add(`${n}-focused`),"keyboard"===r&&a.classList.add(`${n}-focusVisible`),i.scrollHeight>i.clientHeight&&"mouse"!==r&&"touch"!==r)){const e=a,t=i.clientHeight+i.scrollTop,n=e.offsetTop+e.offsetHeight;n>t?i.scrollTop=n-i.clientHeight:e.offsetTop-e.offsetHeight*(T?1.3:0)<i.scrollTop&&(i.scrollTop=e.offsetTop-e.offsetHeight*(T?1.3:0))}})),Ee=p((({event:e,diff:t,direction:n="next",reason:o="auto"})=>{if(!xe)return;const i=function(e,t){if(!te.current||e<0||e>=Ae.length)return-1;let n=e;for(;;){const r=te.current.querySelector(`[data-option-index="${n}"]`),o=!S&&(!r||r.disabled||"true"===r.getAttribute("aria-disabled"));if(r&&r.hasAttribute("tabindex")&&!o)return n;if(n="next"===t?(n+1)%Ae.length:(n-1+Ae.length)%Ae.length,n===e)return-1}}((()=>{const e=Ae.length-1;if("reset"===t)return ae;if("start"===t)return 0;if("end"===t)return e;const n=se.current+t;return n<0?-1===n&&j?-1:C&&-1!==se.current||Math.abs(t)>1?0:e:n>e?n===e+1&&j?-1:C||Math.abs(t)>1?e:0:n})(),n);if(Ce({index:i,reason:o,event:e}),r&&"reset"!==t)if(-1===i)ee.current.value=ue;else{const e=J(Ae[i]);ee.current.value=e,0===e.toLowerCase().indexOf(ue.toLowerCase())&&ue.length>0&&ee.current.setSelectionRange(ue.length,e.length)}})),Oe=i.useCallback((()=>{if(!xe)return;const e=(()=>{if(-1!==se.current&&we.filteredOptions&&we.filteredOptions.length!==Ae.length&&we.inputValue===ue&&(D?le.length===we.value.length&&we.value.every(((e,t)=>J(le[t])===J(e))):(e=we.value,t=le,(e?J(e):"")===(t?J(t):"")))){const e=we.filteredOptions[se.current];if(e)return m(Ae,(t=>J(t)===J(e)))}var e,t;return-1})();if(-1!==e)return void(se.current=e);const t=D?le[0]:le;if(0!==Ae.length&&null!=t){if(te.current)if(null==t)se.current>=Ae.length-1?Ce({index:Ae.length-1}):Ce({index:se.current});else{const e=Ae[se.current];if(D&&e&&-1!==m(le,(t=>z(e,t))))return;const n=m(Ae,(e=>z(e,t)));-1===n?Ee({diff:"reset"}):Ce({index:n})}}else Ee({diff:"reset"})}),[Ae.length,!D&&le,O,Ee,Ce,xe,ue,D]),Re=p((e=>{f(te,e),e&&Oe()}));i.useEffect((()=>{Oe()}),[Oe]);const Pe=e=>{me||(ve(!0),ye(!0),V&&V(e))},$e=(e,t)=>{me&&(ve(!1),_&&_(e,t))},Me=(e,t,n,r)=>{if(D){if(le.length===t.length&&le.every(((e,n)=>e===t[n])))return}else if(le===t)return;F&&F(e,t,n,r),ce(t)},Te=i.useRef(!1),Ie=(e,t,n="selectOption",r="options")=>{let o=n,i=t;if(D){i=Array.isArray(le)?le.slice():[];const e=m(i,(e=>z(t,e)));-1===e?i.push(t):"freeSolo"!==r&&(i.splice(e,1),o="removeOption")}he(e,i),Me(e,i,o,{option:t}),w||e&&(e.ctrlKey||e.metaKey)||$e(e,o),(!0===d||"touch"===d&&Te.current||"mouse"===d&&!Te.current)&&ee.current.blur()},Ne=(e,t)=>{if(!D)return;""===ue&&$e(e,"toggleInput");let n=oe;-1===oe?""===ue&&"previous"===t&&(n=le.length-1):(n+="next"===t?1:-1,n<0&&(n=0),n===le.length&&(n=-1)),n=function(e,t){if(-1===e)return-1;let n=e;for(;;){if("next"===t&&n===le.length||"previous"===t&&-1===n)return-1;const e=ne.querySelector(`[data-tag-index="${n}"]`);if(e&&e.hasAttribute("tabindex")&&!e.disabled&&"true"!==e.getAttribute("aria-disabled"))return n;n+="next"===t?1:-1}}(n,t),ie(n),Se(n)},je=e=>{Z.current=!0,de(""),B&&B(e,"","clear"),Me(e,D?[]:null,"clear")},Le=e=>t=>{if(e.onKeyDown&&e.onKeyDown(t),!t.defaultMuiPrevented&&(-1!==oe&&-1===["ArrowLeft","ArrowRight"].indexOf(t.key)&&(ie(-1),Se(-1)),229!==t.which))switch(t.key){case"Home":xe&&I&&(t.preventDefault(),Ee({diff:"start",direction:"next",reason:"keyboard",event:t}));break;case"End":xe&&I&&(t.preventDefault(),Ee({diff:"end",direction:"previous",reason:"keyboard",event:t}));break;case"PageUp":t.preventDefault(),Ee({diff:-5,direction:"previous",reason:"keyboard",event:t}),Pe(t);break;case"PageDown":t.preventDefault(),Ee({diff:5,direction:"next",reason:"keyboard",event:t}),Pe(t);break;case"ArrowDown":t.preventDefault(),Ee({diff:1,direction:"next",reason:"keyboard",event:t}),Pe(t);break;case"ArrowUp":t.preventDefault(),Ee({diff:-1,direction:"previous",reason:"keyboard",event:t}),Pe(t);break;case"ArrowLeft":Ne(t,"previous");break;case"ArrowRight":Ne(t,"next");break;case"Enter":if(-1!==se.current&&xe){const e=Ae[se.current],n=!!P&&P(e);if(t.preventDefault(),n)return;Ie(t,e,"selectOption"),r&&ee.current.setSelectionRange(ee.current.value.length,ee.current.value.length)}else R&&""!==ue&&!1===be&&(D&&t.preventDefault(),Ie(t,ue,"createOption","freeSolo"));break;case"Escape":xe?(t.preventDefault(),t.stopPropagation(),$e(t,"escape")):y&&(""!==ue||D&&le.length>0)&&(t.preventDefault(),t.stopPropagation(),je(t));break;case"Backspace":if(D&&!U&&""===ue&&le.length>0){const e=-1===oe?le.length-1:oe,n=le.slice();n.splice(e,1),Me(t,n,"removeOption",{option:le[e]})}break;case"Delete":if(D&&!U&&""===ue&&le.length>0&&-1!==oe){const e=oe,n=le.slice();n.splice(e,1),Me(t,n,"removeOption",{option:le[e]})}}},ze=e=>{fe(!0),q&&!Z.current&&Pe(e)},De=e=>{t(te)?ee.current.focus():(fe(!1),Q.current=!0,Z.current=!1,s&&-1!==se.current&&xe?Ie(e,Ae[se.current],"blur"):s&&R&&""!==ue?Ie(e,ue,"blur","freeSolo"):h&&he(e,le),$e(e,"blur"))},Fe=e=>{const t=e.target.value;ue!==t&&(de(t),ye(!1),B&&B(e,t,"input")),""===t?A||D||Me(e,null,"clear"):Pe(e)},_e=e=>{const t=Number(e.currentTarget.getAttribute("data-option-index"));se.current!==t&&Ce({event:e,index:t,reason:"mouse"})},We=e=>{Ce({event:e,index:Number(e.currentTarget.getAttribute("data-option-index")),reason:"touch"}),Te.current=!0},Be=e=>{const t=Number(e.currentTarget.getAttribute("data-option-index"));Ie(e,Ae[t],"selectOption"),Te.current=!1},Ve=e=>t=>{const n=le.slice();n.splice(e,1),Me(t,n,"removeOption",{option:le[e]})},He=e=>{me?$e(e,"toggleInput"):Pe(e)},qe=e=>{e.currentTarget.contains(e.target)&&e.target.getAttribute("id")!==Y&&e.preventDefault()},Ke=e=>{e.currentTarget.contains(e.target)&&(ee.current.focus(),X&&Q.current&&ee.current.selectionEnd-ee.current.selectionStart==0&&ee.current.select(),Q.current=!1)},Ue=e=>{k||""!==ue&&me||He(e)};let Xe=R&&ue.length>0;Xe=Xe||(D?le.length>0:null!==le);let Ge=Ae;return T&&(new Map,Ge=Ae.reduce(((e,t,n)=>{const r=T(t);return e.length>0&&e[e.length-1].group===r?e[e.length-1].options.push(t):e.push({key:n,index:n,group:r,options:[t]}),e}),[])),k&&pe&&De(),{getRootProps:(e={})=>(0,o.A)({"aria-owns":ke?`${Y}-listbox`:null},e,{onKeyDown:Le(e),onMouseDown:qe,onClick:Ke}),getInputLabelProps:()=>({id:`${Y}-label`,htmlFor:Y}),getInputProps:()=>({id:Y,value:ue,onBlur:De,onFocus:ze,onChange:Fe,onMouseDown:Ue,"aria-activedescendant":xe?"":null,"aria-autocomplete":r?"both":"list","aria-controls":ke?`${Y}-listbox`:void 0,"aria-expanded":ke,autoComplete:"off",ref:ee,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:k}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:je}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:He}),getTagProps:({index:e})=>(0,o.A)({key:e,"data-tag-index":e,tabIndex:-1},!U&&{onDelete:Ve(e)}),getListboxProps:()=>({role:"listbox",id:`${Y}-listbox`,"aria-labelledby":`${Y}-label`,ref:Re,onMouseDown:e=>{e.preventDefault()}}),getOptionProps:({index:e,option:t})=>{var n;const r=(D?le:[le]).some((e=>null!=e&&z(t,e))),o=!!P&&P(t);return{key:null!=(n=null==$?void 0:$(t))?n:J(t),tabIndex:-1,role:"option",id:`${Y}-option-${e}`,onMouseMove:_e,onClick:Be,onTouchStart:We,"data-option-index":e,"aria-disabled":o,"aria-selected":r}},id:Y,inputValue:ue,value:le,dirty:Xe,expanded:xe&&ne,popupOpen:xe,focused:pe||-1!==oe,anchorEl:ne,setAnchorEl:re,focusedTag:oe,groupedOptions:Ge}}function b(e,t,n=void 0){const r={};return Object.keys(e).forEach((o=>{r[o]=e[o].reduce(((e,r)=>{if(r){const o=t(r);""!==o&&e.push(o),n&&n[r]&&e.push(n[r])}return e}),[]).join(" ")})),r}var x=n(771);function A(...e){return i.useMemo((()=>e.every((e=>null==e))?null:t=>{e.forEach((e=>{f(e,t)}))}),e)}function w(e){return e&&e.ownerDocument||document}function k(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function S(e){return e instanceof k(e).Element||e instanceof Element}function C(e){return e instanceof k(e).HTMLElement||e instanceof HTMLElement}function E(e){return"undefined"!=typeof ShadowRoot&&(e instanceof k(e).ShadowRoot||e instanceof ShadowRoot)}var O=Math.max,R=Math.min,P=Math.round;function $(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function M(){return!/^((?!chrome|android).)*safari/i.test($())}function T(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var r=e.getBoundingClientRect(),o=1,i=1;t&&C(e)&&(o=e.offsetWidth>0&&P(r.width)/e.offsetWidth||1,i=e.offsetHeight>0&&P(r.height)/e.offsetHeight||1);var a=(S(e)?k(e):window).visualViewport,s=!M()&&n,l=(r.left+(s&&a?a.offsetLeft:0))/o,c=(r.top+(s&&a?a.offsetTop:0))/i,u=r.width/o,d=r.height/i;return{width:u,height:d,top:c,right:l+u,bottom:c+d,left:l,x:l,y:c}}function I(e){var t=k(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function N(e){return e?(e.nodeName||"").toLowerCase():null}function j(e){return((S(e)?e.ownerDocument:e.document)||window.document).documentElement}function L(e){return T(j(e)).left+I(e).scrollLeft}function z(e){return k(e).getComputedStyle(e)}function D(e){var t=z(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function F(e,t,n){void 0===n&&(n=!1);var r,o,i=C(t),a=C(t)&&function(e){var t=e.getBoundingClientRect(),n=P(t.width)/e.offsetWidth||1,r=P(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),s=j(t),l=T(e,a,n),c={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(i||!i&&!n)&&(("body"!==N(t)||D(s))&&(c=(r=t)!==k(r)&&C(r)?{scrollLeft:(o=r).scrollLeft,scrollTop:o.scrollTop}:I(r)),C(t)?((u=T(t,!0)).x+=t.clientLeft,u.y+=t.clientTop):s&&(u.x=L(s))),{x:l.left+c.scrollLeft-u.x,y:l.top+c.scrollTop-u.y,width:l.width,height:l.height}}function _(e){var t=T(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function W(e){return"html"===N(e)?e:e.assignedSlot||e.parentNode||(E(e)?e.host:null)||j(e)}function B(e){return["html","body","#document"].indexOf(N(e))>=0?e.ownerDocument.body:C(e)&&D(e)?e:B(W(e))}function V(e,t){var n;void 0===t&&(t=[]);var r=B(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),i=k(r),a=o?[i].concat(i.visualViewport||[],D(r)?r:[]):r,s=t.concat(a);return o?s:s.concat(V(W(a)))}function H(e){return["table","td","th"].indexOf(N(e))>=0}function q(e){return C(e)&&"fixed"!==z(e).position?e.offsetParent:null}function K(e){for(var t=k(e),n=q(e);n&&H(n)&&"static"===z(n).position;)n=q(n);return n&&("html"===N(n)||"body"===N(n)&&"static"===z(n).position)?t:n||function(e){var t=/firefox/i.test($());if(/Trident/i.test($())&&C(e)&&"fixed"===z(e).position)return null;var n=W(e);for(E(n)&&(n=n.host);C(n)&&["html","body"].indexOf(N(n))<0;){var r=z(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t}var U="top",X="bottom",G="right",Y="left",J="auto",Z=[U,X,G,Y],Q="start",ee="end",te="viewport",ne="popper",re=Z.reduce((function(e,t){return e.concat([t+"-"+Q,t+"-"+ee])}),[]),oe=[].concat(Z,[J]).reduce((function(e,t){return e.concat([t,t+"-"+Q,t+"-"+ee])}),[]),ie=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function ae(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}var se={placement:"bottom",modifiers:[],strategy:"absolute"};function le(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some((function(e){return!(e&&"function"==typeof e.getBoundingClientRect)}))}function ce(e){void 0===e&&(e={});var t=e,n=t.defaultModifiers,r=void 0===n?[]:n,o=t.defaultOptions,i=void 0===o?se:o;return function(e,t,n){void 0===n&&(n=i);var o,a,s={placement:"bottom",orderedModifiers:[],options:Object.assign({},se,i),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},l=[],c=!1,u={state:s,setOptions:function(n){var o="function"==typeof n?n(s.options):n;d(),s.options=Object.assign({},i,s.options,o),s.scrollParents={reference:S(e)?V(e):e.contextElement?V(e.contextElement):[],popper:V(t)};var a,c,p=function(e){var t=ae(e);return ie.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}((a=[].concat(r,s.options.modifiers),c=a.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{}),Object.keys(c).map((function(e){return c[e]}))));return s.orderedModifiers=p.filter((function(e){return e.enabled})),s.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,r=void 0===n?{}:n,o=e.effect;if("function"==typeof o){var i=o({state:s,name:t,instance:u,options:r});l.push(i||function(){})}})),u.update()},forceUpdate:function(){if(!c){var e=s.elements,t=e.reference,n=e.popper;if(le(t,n)){s.rects={reference:F(t,K(n),"fixed"===s.options.strategy),popper:_(n)},s.reset=!1,s.placement=s.options.placement,s.orderedModifiers.forEach((function(e){return s.modifiersData[e.name]=Object.assign({},e.data)}));for(var r=0;r<s.orderedModifiers.length;r++)if(!0!==s.reset){var o=s.orderedModifiers[r],i=o.fn,a=o.options,l=void 0===a?{}:a,d=o.name;"function"==typeof i&&(s=i({state:s,options:l,name:d,instance:u})||s)}else s.reset=!1,r=-1}}},update:(o=function(){return new Promise((function(e){u.forceUpdate(),e(s)}))},function(){return a||(a=new Promise((function(e){Promise.resolve().then((function(){a=void 0,e(o())}))}))),a}),destroy:function(){d(),c=!0}};if(!le(e,t))return u;function d(){l.forEach((function(e){return e()})),l=[]}return u.setOptions(n).then((function(e){!c&&n.onFirstUpdate&&n.onFirstUpdate(e)})),u}}var ue={passive:!0};function de(e){return e.split("-")[0]}function pe(e){return e.split("-")[1]}function fe(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function he(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?de(o):null,a=o?pe(o):null,s=n.x+n.width/2-r.width/2,l=n.y+n.height/2-r.height/2;switch(i){case U:t={x:s,y:n.y-r.height};break;case X:t={x:s,y:n.y+n.height};break;case G:t={x:n.x+n.width,y:l};break;case Y:t={x:n.x-r.width,y:l};break;default:t={x:n.x,y:n.y}}var c=i?fe(i):null;if(null!=c){var u="y"===c?"height":"width";switch(a){case Q:t[c]=t[c]-(n[u]/2-r[u]/2);break;case ee:t[c]=t[c]+(n[u]/2-r[u]/2)}}return t}var me={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ve(e){var t,n=e.popper,r=e.popperRect,o=e.placement,i=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,c=e.adaptive,u=e.roundOffsets,d=e.isFixed,p=a.x,f=void 0===p?0:p,h=a.y,m=void 0===h?0:h,v="function"==typeof u?u({x:f,y:m}):{x:f,y:m};f=v.x,m=v.y;var g=a.hasOwnProperty("x"),y=a.hasOwnProperty("y"),b=Y,x=U,A=window;if(c){var w=K(n),S="clientHeight",C="clientWidth";w===k(n)&&"static"!==z(w=j(n)).position&&"absolute"===s&&(S="scrollHeight",C="scrollWidth"),(o===U||(o===Y||o===G)&&i===ee)&&(x=X,m-=(d&&w===A&&A.visualViewport?A.visualViewport.height:w[S])-r.height,m*=l?1:-1),o!==Y&&(o!==U&&o!==X||i!==ee)||(b=G,f-=(d&&w===A&&A.visualViewport?A.visualViewport.width:w[C])-r.width,f*=l?1:-1)}var E,O=Object.assign({position:s},c&&me),R=!0===u?function(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:P(n*o)/o||0,y:P(r*o)/o||0}}({x:f,y:m},k(n)):{x:f,y:m};return f=R.x,m=R.y,l?Object.assign({},O,((E={})[x]=y?"0":"",E[b]=g?"0":"",E.transform=(A.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",E)):Object.assign({},O,((t={})[x]=y?m+"px":"",t[b]=g?f+"px":"",t.transform="",t))}var ge={left:"right",right:"left",bottom:"top",top:"bottom"};function ye(e){return e.replace(/left|right|bottom|top/g,(function(e){return ge[e]}))}var be={start:"end",end:"start"};function xe(e){return e.replace(/start|end/g,(function(e){return be[e]}))}function Ae(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&E(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function we(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function ke(e,t,n){return t===te?we(function(e,t){var n=k(e),r=j(e),o=n.visualViewport,i=r.clientWidth,a=r.clientHeight,s=0,l=0;if(o){i=o.width,a=o.height;var c=M();(c||!c&&"fixed"===t)&&(s=o.offsetLeft,l=o.offsetTop)}return{width:i,height:a,x:s+L(e),y:l}}(e,n)):S(t)?function(e,t){var n=T(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):we(function(e){var t,n=j(e),r=I(e),o=null==(t=e.ownerDocument)?void 0:t.body,i=O(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=O(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-r.scrollLeft+L(e),l=-r.scrollTop;return"rtl"===z(o||n).direction&&(s+=O(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:a,x:s,y:l}}(j(e)))}function Se(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Ce(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function Ee(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=void 0===r?e.placement:r,i=n.strategy,a=void 0===i?e.strategy:i,s=n.boundary,l=void 0===s?"clippingParents":s,c=n.rootBoundary,u=void 0===c?te:c,d=n.elementContext,p=void 0===d?ne:d,f=n.altBoundary,h=void 0!==f&&f,m=n.padding,v=void 0===m?0:m,g=Se("number"!=typeof v?v:Ce(v,Z)),y=p===ne?"reference":ne,b=e.rects.popper,x=e.elements[h?y:p],A=function(e,t,n,r){var o="clippingParents"===t?function(e){var t=V(W(e)),n=["absolute","fixed"].indexOf(z(e).position)>=0&&C(e)?K(e):e;return S(n)?t.filter((function(e){return S(e)&&Ae(e,n)&&"body"!==N(e)})):[]}(e):[].concat(t),i=[].concat(o,[n]),a=i[0],s=i.reduce((function(t,n){var o=ke(e,n,r);return t.top=O(o.top,t.top),t.right=R(o.right,t.right),t.bottom=R(o.bottom,t.bottom),t.left=O(o.left,t.left),t}),ke(e,a,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}(S(x)?x:x.contextElement||j(e.elements.popper),l,u,a),w=T(e.elements.reference),k=he({reference:w,element:b,strategy:"absolute",placement:o}),E=we(Object.assign({},b,k)),P=p===ne?E:w,$={top:A.top-P.top+g.top,bottom:P.bottom-A.bottom+g.bottom,left:A.left-P.left+g.left,right:P.right-A.right+g.right},M=e.modifiersData.offset;if(p===ne&&M){var I=M[o];Object.keys($).forEach((function(e){var t=[G,X].indexOf(e)>=0?1:-1,n=[U,X].indexOf(e)>=0?"y":"x";$[e]+=I[n]*t}))}return $}function Oe(e,t,n){return O(e,R(t,n))}function Re(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Pe(e){return[U,G,X,Y].some((function(t){return e[t]>=0}))}var $e=ce({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,r=e.options,o=r.scroll,i=void 0===o||o,a=r.resize,s=void 0===a||a,l=k(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&c.forEach((function(e){e.addEventListener("scroll",n.update,ue)})),s&&l.addEventListener("resize",n.update,ue),function(){i&&c.forEach((function(e){e.removeEventListener("scroll",n.update,ue)})),s&&l.removeEventListener("resize",n.update,ue)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=he({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=void 0===r||r,i=n.adaptive,a=void 0===i||i,s=n.roundOffsets,l=void 0===s||s,c={placement:de(t.placement),variation:pe(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,ve(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,ve(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},o=t.elements[e];C(o)&&N(o)&&(Object.assign(o.style,n),Object.keys(r).forEach((function(e){var t=r[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var r=t.elements[e],o=t.attributes[e]||{},i=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});C(r)&&N(r)&&(Object.assign(r.style,i),Object.keys(o).forEach((function(e){r.removeAttribute(e)})))}))}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,i=void 0===o?[0,0]:o,a=oe.reduce((function(e,n){return e[n]=function(e,t,n){var r=de(e),o=[Y,U].indexOf(r)>=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[Y,G].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],l=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,l=n.fallbackPlacements,c=n.padding,u=n.boundary,d=n.rootBoundary,p=n.altBoundary,f=n.flipVariations,h=void 0===f||f,m=n.allowedAutoPlacements,v=t.options.placement,g=de(v),y=l||(g!==v&&h?function(e){if(de(e)===J)return[];var t=ye(e);return[xe(e),t,xe(t)]}(v):[ye(v)]),b=[v].concat(y).reduce((function(e,n){return e.concat(de(n)===J?function(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,c=void 0===l?oe:l,u=pe(r),d=u?s?re:re.filter((function(e){return pe(e)===u})):Z,p=d.filter((function(e){return c.indexOf(e)>=0}));0===p.length&&(p=d);var f=p.reduce((function(t,n){return t[n]=Ee(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[de(n)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}(t,{placement:n,boundary:u,rootBoundary:d,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,A=t.rects.popper,w=new Map,k=!0,S=b[0],C=0;C<b.length;C++){var E=b[C],O=de(E),R=pe(E)===Q,P=[U,X].indexOf(O)>=0,$=P?"width":"height",M=Ee(t,{placement:E,boundary:u,rootBoundary:d,altBoundary:p,padding:c}),T=P?R?G:Y:R?X:U;x[$]>A[$]&&(T=ye(T));var I=ye(T),N=[];if(i&&N.push(M[O]<=0),s&&N.push(M[T]<=0,M[I]<=0),N.every((function(e){return e}))){S=E,k=!1;break}w.set(E,N)}if(k)for(var j=function(e){var t=b.find((function(t){var n=w.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return S=t,"break"},L=h?3:1;L>0&&"break"!==j(L);L--);t.placement!==S&&(t.modifiersData[r]._skip=!0,t.placement=S,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0!==a&&a,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,d=n.padding,p=n.tether,f=void 0===p||p,h=n.tetherOffset,m=void 0===h?0:h,v=Ee(t,{boundary:l,rootBoundary:c,padding:d,altBoundary:u}),g=de(t.placement),y=pe(t.placement),b=!y,x=fe(g),A="x"===x?"y":"x",w=t.modifiersData.popperOffsets,k=t.rects.reference,S=t.rects.popper,C="function"==typeof m?m(Object.assign({},t.rects,{placement:t.placement})):m,E="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),P=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,$={x:0,y:0};if(w){if(i){var M,T="y"===x?U:Y,I="y"===x?X:G,N="y"===x?"height":"width",j=w[x],L=j+v[T],z=j-v[I],D=f?-S[N]/2:0,F=y===Q?k[N]:S[N],W=y===Q?-S[N]:-k[N],B=t.elements.arrow,V=f&&B?_(B):{width:0,height:0},H=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},q=H[T],J=H[I],Z=Oe(0,k[N],V[N]),ee=b?k[N]/2-D-Z-q-E.mainAxis:F-Z-q-E.mainAxis,te=b?-k[N]/2+D+Z+J+E.mainAxis:W+Z+J+E.mainAxis,ne=t.elements.arrow&&K(t.elements.arrow),re=ne?"y"===x?ne.clientTop||0:ne.clientLeft||0:0,oe=null!=(M=null==P?void 0:P[x])?M:0,ie=j+te-oe,ae=Oe(f?R(L,j+ee-oe-re):L,j,f?O(z,ie):z);w[x]=ae,$[x]=ae-j}if(s){var se,le="x"===x?U:Y,ce="x"===x?X:G,ue=w[A],he="y"===A?"height":"width",me=ue+v[le],ve=ue-v[ce],ge=-1!==[U,Y].indexOf(g),ye=null!=(se=null==P?void 0:P[A])?se:0,be=ge?me:ue-k[he]-S[he]-ye+E.altAxis,xe=ge?ue+k[he]+S[he]-ye-E.altAxis:ve,Ae=f&&ge?function(e,t,n){var r=Oe(e,t,n);return r>n?n:r}(be,ue,xe):Oe(f?be:me,ue,f?xe:ve);w[A]=Ae,$[A]=Ae-ue}t.modifiersData[r]=$}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=de(n.placement),l=fe(s),c=[Y,G].indexOf(s)>=0?"height":"width";if(i&&a){var u=function(e,t){return Se("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Ce(e,Z))}(o.padding,n),d=_(i),p="y"===l?U:Y,f="y"===l?X:G,h=n.rects.reference[c]+n.rects.reference[l]-a[l]-n.rects.popper[c],m=a[l]-n.rects.reference[l],v=K(i),g=v?"y"===l?v.clientHeight||0:v.clientWidth||0:0,y=h/2-m/2,b=u[p],x=g-d[c]-u[f],A=g/2-d[c]/2+y,w=Oe(b,A,x),k=l;n.modifiersData[r]=((t={})[k]=w,t.centerOffset=w-A,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&Ae(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=Ee(t,{elementContext:"reference"}),s=Ee(t,{altBoundary:!0}),l=Re(a,r),c=Re(s,o,i),u=Pe(l),d=Pe(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}}]}),Me=n(5795),Te=n(4848);const Ie=i.forwardRef((function(e,t){const{children:n,container:r,disablePortal:o=!1}=e,[a,s]=i.useState(null),l=A(i.isValidElement(n)?n.ref:null,t);if(d((()=>{o||s(function(e){return"function"==typeof e?e():e}(r)||document.body)}),[r,o]),d((()=>{if(a&&!o)return f(t,a),()=>{f(t,null)}}),[t,a,o]),o){if(i.isValidElement(n)){const e={ref:l};return i.cloneElement(n,e)}return(0,Te.jsx)(i.Fragment,{children:n})}return(0,Te.jsx)(i.Fragment,{children:a?Me.createPortal(n,a):a})})),Ne=e=>e,je=(()=>{let e=Ne;return{configure(t){e=t},generate:t=>e(t),reset(){e=Ne}}})(),Le={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function ze(e,t,n="Mui"){const r=Le[t];return r?`${n}-${r}`:`${je.generate(e)}-${t}`}const De="base";function Fe(e,t){const n=Le[t];return n?`${De}--${n}`:function(e,t){return`${De}-${e}-${t}`}(e,t)}const _e="Popper";function We(e){return Fe(_e,e)}function Be(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=Be(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}!function(e,t){const n={};["root"].forEach((t=>{n[t]=Fe(e,t)}))}(_e);const Ve=function(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=Be(e))&&(r&&(r+=" "),r+=t);return r};function He(e){if(void 0===e)return{};const t={};return Object.keys(e).filter((t=>!(t.match(/^on[A-Z]/)&&"function"==typeof e[t]))).forEach((n=>{t[n]=e[n]})),t}const qe=["elementType","externalSlotProps","ownerState","skipResolvingSlotProps"];function Ke(e){var t;const{elementType:n,externalSlotProps:i,ownerState:a,skipResolvingSlotProps:s=!1}=e,l=(0,r.A)(e,qe),c=s?{}:function(e,t,n){return"function"==typeof e?e(t,void 0):e}(i,a),{props:u,internalRef:d}=function(e){const{getSlotProps:t,additionalProps:n,externalSlotProps:r,externalForwardedProps:i,className:a}=e;if(!t){const e=Ve(null==n?void 0:n.className,a,null==i?void 0:i.className,null==r?void 0:r.className),t=(0,o.A)({},null==n?void 0:n.style,null==i?void 0:i.style,null==r?void 0:r.style),s=(0,o.A)({},n,i,r);return e.length>0&&(s.className=e),Object.keys(t).length>0&&(s.style=t),{props:s,internalRef:void 0}}const s=function(e,t=[]){if(void 0===e)return{};const n={};return Object.keys(e).filter((n=>n.match(/^on[A-Z]/)&&"function"==typeof e[n]&&!t.includes(n))).forEach((t=>{n[t]=e[t]})),n}((0,o.A)({},i,r)),l=He(r),c=He(i),u=t(s),d=Ve(null==u?void 0:u.className,null==n?void 0:n.className,a,null==i?void 0:i.className,null==r?void 0:r.className),p=(0,o.A)({},null==u?void 0:u.style,null==n?void 0:n.style,null==i?void 0:i.style,null==r?void 0:r.style),f=(0,o.A)({},u,n,c,l);return d.length>0&&(f.className=d),Object.keys(p).length>0&&(f.style=p),{props:f,internalRef:u.ref}}((0,o.A)({},l,{externalSlotProps:c})),p=A(d,null==c?void 0:c.ref,null==(t=e.additionalProps)?void 0:t.ref),f=function(e,t,n){return void 0===e||"string"==typeof e?t:(0,o.A)({},t,{ownerState:(0,o.A)({},t.ownerState,n)})}(n,(0,o.A)({},u,{ref:p}),a);return f}const Ue={disableDefaultClasses:!1},Xe=i.createContext(Ue),Ge=["anchorEl","children","direction","disablePortal","modifiers","open","placement","popperOptions","popperRef","slotProps","slots","TransitionProps","ownerState"],Ye=["anchorEl","children","container","direction","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","style","transition","slotProps","slots"];function Je(e){return"function"==typeof e?e():e}const Ze={},Qe=i.forwardRef((function(e,t){var n;const{anchorEl:a,children:s,direction:l,disablePortal:c,modifiers:u,open:p,placement:f,popperOptions:h,popperRef:m,slotProps:v={},slots:g={},TransitionProps:y}=e,x=(0,r.A)(e,Ge),w=i.useRef(null),k=A(w,t),S=i.useRef(null),C=A(S,m),E=i.useRef(C);d((()=>{E.current=C}),[C]),i.useImperativeHandle(m,(()=>S.current),[]);const O=function(e,t){if("ltr"===t)return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}(f,l),[R,P]=i.useState(O),[$,M]=i.useState(Je(a));i.useEffect((()=>{S.current&&S.current.forceUpdate()})),i.useEffect((()=>{a&&M(Je(a))}),[a]),d((()=>{if(!$||!p)return;let e=[{name:"preventOverflow",options:{altBoundary:c}},{name:"flip",options:{altBoundary:c}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:e})=>{P(e.placement)}}];null!=u&&(e=e.concat(u)),h&&null!=h.modifiers&&(e=e.concat(h.modifiers));const t=$e($,w.current,(0,o.A)({placement:O},h,{modifiers:e}));return E.current(t),()=>{t.destroy(),E.current(null)}}),[$,c,u,p,h,O]);const T={placement:R};null!==y&&(T.TransitionProps=y);const I=b({root:["root"]},function(e){const{disableDefaultClasses:t}=i.useContext(Xe);return n=>t?"":e(n)}(We)),N=null!=(n=g.root)?n:"div",j=Ke({elementType:N,externalSlotProps:v.root,externalForwardedProps:x,additionalProps:{role:"tooltip",ref:k},ownerState:e,className:I.root});return(0,Te.jsx)(N,(0,o.A)({},j,{children:"function"==typeof s?s(T):s}))})),et=i.forwardRef((function(e,t){const{anchorEl:n,children:a,container:s,direction:l="ltr",disablePortal:c=!1,keepMounted:u=!1,modifiers:d,open:p,placement:f="bottom",popperOptions:h=Ze,popperRef:m,style:v,transition:g=!1,slotProps:y={},slots:b={}}=e,x=(0,r.A)(e,Ye),[A,k]=i.useState(!0);if(!u&&!p&&(!g||A))return null;let S;if(s)S=s;else if(n){const e=Je(n);S=e&&void 0!==e.nodeType?w(e).body:w(null).body}const C=p||!u||g&&!A?void 0:"none",E=g?{in:p,onEnter:()=>{k(!1)},onExited:()=>{k(!0)}}:void 0;return(0,Te.jsx)(Ie,{disablePortal:c,container:S,children:(0,Te.jsx)(Qe,(0,o.A)({anchorEl:n,direction:l,disablePortal:c,modifiers:d,ref:t,open:g?!A:p,placement:f,popperOptions:h,popperRef:m,slotProps:y,slots:b},x,{style:(0,o.A)({position:"fixed",top:0,left:0,display:C},v),TransitionProps:E,children:a}))})}));var tt=n(2923),nt=n(6461),rt=n(5697),ot=n(4521),it=n(4188),at=n(3571),st=n(8749);const lt={black:"#000",white:"#fff"},ct={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},ut={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},dt={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},pt={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},ft={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},ht={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},mt={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},vt=["mode","contrastThreshold","tonalOffset"],gt={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:lt.white,default:lt.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},yt={text:{primary:lt.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:lt.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function bt(e,t,n,r){const o=r.light||r,i=r.dark||1.5*r;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=(0,x.a)(e.main,o):"dark"===t&&(e.dark=(0,x.e$)(e.main,i)))}const xt=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"],At={textTransform:"uppercase"},wt='"Roboto", "Helvetica", "Arial", sans-serif';function kt(e,t){const n="function"==typeof t?t(e):t,{fontFamily:i=wt,fontSize:a=14,fontWeightLight:s=300,fontWeightRegular:l=400,fontWeightMedium:c=500,fontWeightBold:u=700,htmlFontSize:d=16,allVariants:p,pxToRem:f}=n,h=(0,r.A)(n,xt),m=a/14,v=f||(e=>e/d*m+"rem"),g=(e,t,n,r,a)=>{return(0,o.A)({fontFamily:i,fontWeight:e,fontSize:v(t),lineHeight:n},i===wt?{letterSpacing:(s=r/t,Math.round(1e5*s)/1e5+"em")}:{},a,p);var s},y={h1:g(s,96,1.167,-1.5),h2:g(s,60,1.2,-.5),h3:g(l,48,1.167,0),h4:g(l,34,1.235,.25),h5:g(l,24,1.334,0),h6:g(c,20,1.6,.15),subtitle1:g(l,16,1.75,.15),subtitle2:g(c,14,1.57,.1),body1:g(l,16,1.5,.15),body2:g(l,14,1.43,.15),button:g(c,14,1.75,.4,At),caption:g(l,12,1.66,.4),overline:g(l,12,2.66,1,At),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return(0,ot.A)((0,o.A)({htmlFontSize:d,pxToRem:v,fontFamily:i,fontSize:a,fontWeightLight:s,fontWeightRegular:l,fontWeightMedium:c,fontWeightBold:u},y),h,{clone:!1})}function St(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,0.2)`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,0.14)`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,0.12)`].join(",")}const Ct=["none",St(0,2,1,-1,0,1,1,0,0,1,3,0),St(0,3,1,-2,0,2,2,0,0,1,5,0),St(0,3,3,-2,0,3,4,0,0,1,8,0),St(0,2,4,-1,0,4,5,0,0,1,10,0),St(0,3,5,-1,0,5,8,0,0,1,14,0),St(0,3,5,-1,0,6,10,0,0,1,18,0),St(0,4,5,-2,0,7,10,1,0,2,16,1),St(0,5,5,-3,0,8,10,1,0,3,14,2),St(0,5,6,-3,0,9,12,1,0,3,16,2),St(0,6,6,-3,0,10,14,1,0,4,18,3),St(0,6,7,-4,0,11,15,1,0,4,20,3),St(0,7,8,-4,0,12,17,2,0,5,22,4),St(0,7,8,-4,0,13,19,2,0,5,24,4),St(0,7,9,-4,0,14,21,2,0,5,26,4),St(0,8,9,-5,0,15,22,2,0,6,28,5),St(0,8,10,-5,0,16,24,2,0,6,30,5),St(0,8,11,-5,0,17,26,2,0,6,32,5),St(0,9,11,-5,0,18,28,2,0,7,34,6),St(0,9,12,-6,0,19,29,2,0,7,36,6),St(0,10,13,-6,0,20,31,3,0,8,38,7),St(0,10,13,-6,0,21,33,3,0,8,40,7),St(0,10,14,-6,0,22,35,3,0,8,42,7),St(0,11,14,-7,0,23,36,3,0,9,44,8),St(0,11,15,-7,0,24,38,3,0,9,46,8)],Et=["duration","easing","delay"],Ot={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},Rt={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function Pt(e){return`${Math.round(e)}ms`}function $t(e){if(!e)return 0;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}function Mt(e){const t=(0,o.A)({},Ot,e.easing),n=(0,o.A)({},Rt,e.duration);return(0,o.A)({getAutoHeightDuration:$t,create:(e=["all"],o={})=>{const{duration:i=n.standard,easing:a=t.easeInOut,delay:s=0}=o;return(0,r.A)(o,Et),(Array.isArray(e)?e:[e]).map((e=>`${e} ${"string"==typeof i?i:Pt(i)} ${a} ${"string"==typeof s?s:Pt(s)}`)).join(",")}},e,{easing:t,duration:n})}const Tt={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},It=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];const Nt=function(e={},...t){const{mixins:n={},palette:i={},transitions:a={},typography:s={}}=e,l=(0,r.A)(e,It);if(e.vars)throw new Error((0,rt.A)(18));const c=function(e){const{mode:t="light",contrastThreshold:n=3,tonalOffset:i=.2}=e,a=(0,r.A)(e,vt),s=e.primary||function(e="light"){return"dark"===e?{main:ft[200],light:ft[50],dark:ft[400]}:{main:ft[700],light:ft[400],dark:ft[800]}}(t),l=e.secondary||function(e="light"){return"dark"===e?{main:ut[200],light:ut[50],dark:ut[400]}:{main:ut[500],light:ut[300],dark:ut[700]}}(t),c=e.error||function(e="light"){return"dark"===e?{main:dt[500],light:dt[300],dark:dt[700]}:{main:dt[700],light:dt[400],dark:dt[800]}}(t),u=e.info||function(e="light"){return"dark"===e?{main:ht[400],light:ht[300],dark:ht[700]}:{main:ht[700],light:ht[500],dark:ht[900]}}(t),d=e.success||function(e="light"){return"dark"===e?{main:mt[400],light:mt[300],dark:mt[700]}:{main:mt[800],light:mt[500],dark:mt[900]}}(t),p=e.warning||function(e="light"){return"dark"===e?{main:pt[400],light:pt[300],dark:pt[700]}:{main:"#ed6c02",light:pt[500],dark:pt[900]}}(t);function f(e){return(0,x.eM)(e,yt.text.primary)>=n?yt.text.primary:gt.text.primary}const h=({color:e,name:t,mainShade:n=500,lightShade:r=300,darkShade:a=700})=>{if(!(e=(0,o.A)({},e)).main&&e[n]&&(e.main=e[n]),!e.hasOwnProperty("main"))throw new Error((0,rt.A)(11,t?` (${t})`:"",n));if("string"!=typeof e.main)throw new Error((0,rt.A)(12,t?` (${t})`:"",JSON.stringify(e.main)));return bt(e,"light",r,i),bt(e,"dark",a,i),e.contrastText||(e.contrastText=f(e.main)),e},m={dark:yt,light:gt};return(0,ot.A)((0,o.A)({common:(0,o.A)({},lt),mode:t,primary:h({color:s,name:"primary"}),secondary:h({color:l,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:h({color:c,name:"error"}),warning:h({color:p,name:"warning"}),info:h({color:u,name:"info"}),success:h({color:d,name:"success"}),grey:ct,contrastThreshold:n,getContrastText:f,augmentColor:h,tonalOffset:i},m[t]),a)}(i),u=(0,st.A)(e);let d=(0,ot.A)(u,{mixins:(p=u.breakpoints,f=n,(0,o.A)({toolbar:{minHeight:56,[p.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[p.up("sm")]:{minHeight:64}}},f)),palette:c,shadows:Ct.slice(),typography:kt(c,s),transitions:Mt(a),zIndex:(0,o.A)({},Tt)});var p,f;return d=(0,ot.A)(d,l),d=t.reduce(((e,t)=>(0,ot.A)(e,t)),d),d.unstable_sxConfig=(0,o.A)({},it.A,null==l?void 0:l.unstable_sxConfig),d.unstable_sx=function(e){return(0,at.A)({sx:e,theme:this})},d}(),jt="$$material",Lt=(0,nt.Ay)({themeId:jt,defaultTheme:Nt,rootShouldForwardProp:e=>function(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}(e)&&"classes"!==e});function zt(e,t){const n=(0,o.A)({},t);return Object.keys(e).forEach((r=>{if(r.toString().match(/^(components|slots)$/))n[r]=(0,o.A)({},e[r],n[r]);else if(r.toString().match(/^(componentsProps|slotProps)$/)){const i=e[r]||{},a=t[r];n[r]={},a&&Object.keys(a)?i&&Object.keys(i)?(n[r]=(0,o.A)({},a),Object.keys(i).forEach((e=>{n[r][e]=zt(i[e],a[e])}))):n[r]=a:n[r]=i}else void 0===n[r]&&(n[r]=e[r])})),n}function Dt(e){const{theme:t,name:n,props:r}=e;return t&&t.components&&t.components[n]&&t.components[n].defaultProps?zt(t.components[n].defaultProps,r):r}var Ft=n(85);const _t=(0,st.A)(),Wt=function(e=_t){return function(e=null){const t=i.useContext(Ft.T);return t&&(n=t,0!==Object.keys(n).length)?t:e;var n}(e)};function Bt({props:e,name:t}){return function({props:e,name:t,defaultTheme:n,themeId:r}){let o=Wt(n);return r&&(o=o[r]||o),Dt({theme:o,name:t,props:e})}({props:e,name:t,defaultTheme:Nt,themeId:jt})}const Vt=["anchorEl","component","components","componentsProps","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","transition","slots","slotProps"],Ht=Lt(et,{name:"MuiPopper",slot:"Root",overridesResolver:(e,t)=>t.root})({}),qt=i.forwardRef((function(e,t){var n;const i=(0,tt.A)(),a=Bt({props:e,name:"MuiPopper"}),{anchorEl:s,component:l,components:c,componentsProps:u,container:d,disablePortal:p,keepMounted:f,modifiers:h,open:m,placement:v,popperOptions:g,popperRef:y,transition:b,slots:x,slotProps:A}=a,w=(0,r.A)(a,Vt),k=null!=(n=null==x?void 0:x.root)?n:null==c?void 0:c.Root,S=(0,o.A)({anchorEl:s,container:d,disablePortal:p,keepMounted:f,modifiers:h,open:m,placement:v,popperOptions:g,popperRef:y,transition:b},w);return(0,Te.jsx)(Ht,(0,o.A)({as:l,direction:null==i?void 0:i.direction,slots:{root:k},slotProps:null!=A?A:u},S,{ref:t}))})),Kt=n(8659).A;function Ut(e,t,n="Mui"){const r={};return t.forEach((t=>{r[t]=ze(e,t,n)})),r}function Xt(e){return ze("MuiListSubheader",e)}Ut("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);const Gt=["className","color","component","disableGutters","disableSticky","inset"],Yt=Lt("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,"default"!==n.color&&t[`color${Kt(n.color)}`],!n.disableGutters&&t.gutters,n.inset&&t.inset,!n.disableSticky&&t.sticky]}})((({theme:e,ownerState:t})=>(0,o.A)({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(e.vars||e).palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14)},"primary"===t.color&&{color:(e.vars||e).palette.primary.main},"inherit"===t.color&&{color:"inherit"},!t.disableGutters&&{paddingLeft:16,paddingRight:16},t.inset&&{paddingLeft:72},!t.disableSticky&&{position:"sticky",top:0,zIndex:1,backgroundColor:(e.vars||e).palette.background.paper}))),Jt=i.forwardRef((function(e,t){const n=Bt({props:e,name:"MuiListSubheader"}),{className:i,color:a="default",component:l="li",disableGutters:c=!1,disableSticky:u=!1,inset:d=!1}=n,p=(0,r.A)(n,Gt),f=(0,o.A)({},n,{color:a,component:l,disableGutters:c,disableSticky:u,inset:d}),h=(e=>{const{classes:t,color:n,disableGutters:r,inset:o,disableSticky:i}=e;return b({root:["root","default"!==n&&`color${Kt(n)}`,!r&&"gutters",o&&"inset",!i&&"sticky"]},Xt,t)})(f);return(0,Te.jsx)(Yt,(0,o.A)({as:l,className:s(h.root,i),ref:t,ownerState:f},p))}));Jt.muiSkipListHighlight=!0;const Zt=Jt,Qt=e=>{let t;return t=e<1?5.11916*e**2:4.5*Math.log(e+1)+2,(t/100).toFixed(2)};function en(e){return ze("MuiPaper",e)}Ut("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);const tn=["className","component","elevation","square","variant"],nn=Lt("div",{name:"MuiPaper",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],!n.square&&t.rounded,"elevation"===n.variant&&t[`elevation${n.elevation}`]]}})((({theme:e,ownerState:t})=>{var n;return(0,o.A)({backgroundColor:(e.vars||e).palette.background.paper,color:(e.vars||e).palette.text.primary,transition:e.transitions.create("box-shadow")},!t.square&&{borderRadius:e.shape.borderRadius},"outlined"===t.variant&&{border:`1px solid ${(e.vars||e).palette.divider}`},"elevation"===t.variant&&(0,o.A)({boxShadow:(e.vars||e).shadows[t.elevation]},!e.vars&&"dark"===e.palette.mode&&{backgroundImage:`linear-gradient(${(0,x.X4)("#fff",Qt(t.elevation))}, ${(0,x.X4)("#fff",Qt(t.elevation))})`},e.vars&&{backgroundImage:null==(n=e.vars.overlays)?void 0:n[t.elevation]}))})),rn=i.forwardRef((function(e,t){const n=Bt({props:e,name:"MuiPaper"}),{className:i,component:a="div",elevation:l=1,square:c=!1,variant:u="elevation"}=n,d=(0,r.A)(n,tn),p=(0,o.A)({},n,{component:a,elevation:l,square:c,variant:u}),f=(e=>{const{square:t,elevation:n,variant:r,classes:o}=e;return b({root:["root",r,!t&&"rounded","elevation"===r&&`elevation${n}`]},en,o)})(p);return(0,Te.jsx)(nn,(0,o.A)({as:a,ownerState:p,className:s(f.root,i),ref:t},d))})),on=A,an=p,sn={},ln=[];class cn{constructor(){this.currentId=null,this.clear=()=>{null!==this.currentId&&(clearTimeout(this.currentId),this.currentId=null)},this.disposeEffect=()=>this.clear}static create(){return new cn}start(e,t){this.clear(),this.currentId=setTimeout((()=>{this.currentId=null,t()}),e)}}let un=!0,dn=!1;const pn=new cn,fn={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function hn(e){e.metaKey||e.altKey||e.ctrlKey||(un=!0)}function mn(){un=!1}function vn(){"hidden"===this.visibilityState&&dn&&(un=!0)}const gn=function(){const e=i.useCallback((e=>{var t;null!=e&&((t=e.ownerDocument).addEventListener("keydown",hn,!0),t.addEventListener("mousedown",mn,!0),t.addEventListener("pointerdown",mn,!0),t.addEventListener("touchstart",mn,!0),t.addEventListener("visibilitychange",vn,!0))}),[]),t=i.useRef(!1);return{isFocusVisibleRef:t,onFocus:function(e){return!!function(e){const{target:t}=e;try{return t.matches(":focus-visible")}catch(e){}return un||function(e){const{type:t,tagName:n}=e;return!("INPUT"!==n||!fn[t]||e.readOnly)||"TEXTAREA"===n&&!e.readOnly||!!e.isContentEditable}(t)}(e)&&(t.current=!0,!0)},onBlur:function(){return!!t.current&&(dn=!0,pn.start(100,(()=>{dn=!1})),t.current=!1,!0)},ref:e}};var yn=n(2618),bn=n(7437);const xn=Ut("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),An=["center","classes","className"];let wn,kn,Sn,Cn,En=e=>e;const On=(0,bn.i7)(wn||(wn=En` 0% { transform: scale(0); opacity: 0.1; } 100% { transform: scale(1); opacity: 0.3; } `)),Rn=(0,bn.i7)(kn||(kn=En` 0% { opacity: 1; } 100% { opacity: 0; } `)),Pn=(0,bn.i7)(Sn||(Sn=En` 0% { transform: scale(1); } 50% { transform: scale(0.92); } 100% { transform: scale(1); } `)),$n=Lt("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),Mn=Lt((function(e){const{className:t,classes:n,pulsate:r=!1,rippleX:o,rippleY:a,rippleSize:l,in:c,onExited:u,timeout:d}=e,[p,f]=i.useState(!1),h=s(t,n.ripple,n.rippleVisible,r&&n.ripplePulsate),m={width:l,height:l,top:-l/2+a,left:-l/2+o},v=s(n.child,p&&n.childLeaving,r&&n.childPulsate);return c||p||f(!0),i.useEffect((()=>{if(!c&&null!=u){const e=setTimeout(u,d);return()=>{clearTimeout(e)}}}),[u,c,d]),(0,Te.jsx)("span",{className:h,style:m,children:(0,Te.jsx)("span",{className:v})})}),{name:"MuiTouchRipple",slot:"Ripple"})(Cn||(Cn=En` opacity: 0; position: absolute; &.${0} { opacity: 0.3; transform: scale(1); animation-name: ${0}; animation-duration: ${0}ms; animation-timing-function: ${0}; } &.${0} { animation-duration: ${0}ms; } & .${0} { opacity: 1; display: block; width: 100%; height: 100%; border-radius: 50%; background-color: currentColor; } & .${0} { opacity: 0; animation-name: ${0}; animation-duration: ${0}ms; animation-timing-function: ${0}; } & .${0} { position: absolute; /* @noflip */ left: 0px; top: 0; animation-name: ${0}; animation-duration: 2500ms; animation-timing-function: ${0}; animation-iteration-count: infinite; animation-delay: 200ms; } `),xn.rippleVisible,On,550,(({theme:e})=>e.transitions.easing.easeInOut),xn.ripplePulsate,(({theme:e})=>e.transitions.duration.shorter),xn.child,xn.childLeaving,Rn,550,(({theme:e})=>e.transitions.easing.easeInOut),xn.childPulsate,Pn,(({theme:e})=>e.transitions.easing.easeInOut)),Tn=i.forwardRef((function(e,t){const n=Bt({props:e,name:"MuiTouchRipple"}),{center:a=!1,classes:l={},className:c}=n,u=(0,r.A)(n,An),[d,p]=i.useState([]),f=i.useRef(0),h=i.useRef(null);i.useEffect((()=>{h.current&&(h.current(),h.current=null)}),[d]);const m=i.useRef(!1),v=function(){const e=function(e,t){const n=i.useRef(sn);return n.current===sn&&(n.current=e(void 0)),n}(cn.create).current;var t;return t=e.disposeEffect,i.useEffect(t,ln),e}(),g=i.useRef(null),y=i.useRef(null),b=i.useCallback((e=>{const{pulsate:t,rippleX:n,rippleY:r,rippleSize:o,cb:i}=e;p((e=>[...e,(0,Te.jsx)(Mn,{classes:{ripple:s(l.ripple,xn.ripple),rippleVisible:s(l.rippleVisible,xn.rippleVisible),ripplePulsate:s(l.ripplePulsate,xn.ripplePulsate),child:s(l.child,xn.child),childLeaving:s(l.childLeaving,xn.childLeaving),childPulsate:s(l.childPulsate,xn.childPulsate)},timeout:550,pulsate:t,rippleX:n,rippleY:r,rippleSize:o},f.current)])),f.current+=1,h.current=i}),[l]),x=i.useCallback(((e={},t={},n=(()=>{}))=>{const{pulsate:r=!1,center:o=a||t.pulsate,fakeElement:i=!1}=t;if("mousedown"===(null==e?void 0:e.type)&&m.current)return void(m.current=!1);"touchstart"===(null==e?void 0:e.type)&&(m.current=!0);const s=i?null:y.current,l=s?s.getBoundingClientRect():{width:0,height:0,left:0,top:0};let c,u,d;if(o||void 0===e||0===e.clientX&&0===e.clientY||!e.clientX&&!e.touches)c=Math.round(l.width/2),u=Math.round(l.height/2);else{const{clientX:t,clientY:n}=e.touches&&e.touches.length>0?e.touches[0]:e;c=Math.round(t-l.left),u=Math.round(n-l.top)}if(o)d=Math.sqrt((2*l.width**2+l.height**2)/3),d%2==0&&(d+=1);else{const e=2*Math.max(Math.abs((s?s.clientWidth:0)-c),c)+2,t=2*Math.max(Math.abs((s?s.clientHeight:0)-u),u)+2;d=Math.sqrt(e**2+t**2)}null!=e&&e.touches?null===g.current&&(g.current=()=>{b({pulsate:r,rippleX:c,rippleY:u,rippleSize:d,cb:n})},v.start(80,(()=>{g.current&&(g.current(),g.current=null)}))):b({pulsate:r,rippleX:c,rippleY:u,rippleSize:d,cb:n})}),[a,b,v]),A=i.useCallback((()=>{x({},{pulsate:!0})}),[x]),w=i.useCallback(((e,t)=>{if(v.clear(),"touchend"===(null==e?void 0:e.type)&&g.current)return g.current(),g.current=null,void v.start(0,(()=>{w(e,t)}));g.current=null,p((e=>e.length>0?e.slice(1):e)),h.current=t}),[v]);return i.useImperativeHandle(t,(()=>({pulsate:A,start:x,stop:w})),[A,x,w]),(0,Te.jsx)($n,(0,o.A)({className:s(xn.root,l.root,c),ref:y},u,{children:(0,Te.jsx)(yn.A,{component:null,exit:!0,children:d})}))})),In=Tn;function Nn(e){return ze("MuiButtonBase",e)}const jn=Ut("MuiButtonBase",["root","disabled","focusVisible"]),Ln=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],zn=Lt("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${jn.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),Dn=i.forwardRef((function(e,t){const n=Bt({props:e,name:"MuiButtonBase"}),{action:a,centerRipple:l=!1,children:c,className:u,component:d="button",disabled:p=!1,disableRipple:f=!1,disableTouchRipple:h=!1,focusRipple:m=!1,LinkComponent:v="a",onBlur:g,onClick:y,onContextMenu:x,onDragLeave:A,onFocus:w,onFocusVisible:k,onKeyDown:S,onKeyUp:C,onMouseDown:E,onMouseLeave:O,onMouseUp:R,onTouchEnd:P,onTouchMove:$,onTouchStart:M,tabIndex:T=0,TouchRippleProps:I,touchRippleRef:N,type:j}=n,L=(0,r.A)(n,Ln),z=i.useRef(null),D=i.useRef(null),F=on(D,N),{isFocusVisibleRef:_,onFocus:W,onBlur:B,ref:V}=gn(),[H,q]=i.useState(!1);p&&H&&q(!1),i.useImperativeHandle(a,(()=>({focusVisible:()=>{q(!0),z.current.focus()}})),[]);const[K,U]=i.useState(!1);i.useEffect((()=>{U(!0)}),[]);const X=K&&!f&&!p;function G(e,t,n=h){return an((r=>(t&&t(r),!n&&D.current&&D.current[e](r),!0)))}i.useEffect((()=>{H&&m&&!f&&K&&D.current.pulsate()}),[f,m,H,K]);const Y=G("start",E),J=G("stop",x),Z=G("stop",A),Q=G("stop",R),ee=G("stop",(e=>{H&&e.preventDefault(),O&&O(e)})),te=G("start",M),ne=G("stop",P),re=G("stop",$),oe=G("stop",(e=>{B(e),!1===_.current&&q(!1),g&&g(e)}),!1),ie=an((e=>{z.current||(z.current=e.currentTarget),W(e),!0===_.current&&(q(!0),k&&k(e)),w&&w(e)})),ae=()=>{const e=z.current;return d&&"button"!==d&&!("A"===e.tagName&&e.href)},se=i.useRef(!1),le=an((e=>{m&&!se.current&&H&&D.current&&" "===e.key&&(se.current=!0,D.current.stop(e,(()=>{D.current.start(e)}))),e.target===e.currentTarget&&ae()&&" "===e.key&&e.preventDefault(),S&&S(e),e.target===e.currentTarget&&ae()&&"Enter"===e.key&&!p&&(e.preventDefault(),y&&y(e))})),ce=an((e=>{m&&" "===e.key&&D.current&&H&&!e.defaultPrevented&&(se.current=!1,D.current.stop(e,(()=>{D.current.pulsate(e)}))),C&&C(e),y&&e.target===e.currentTarget&&ae()&&" "===e.key&&!e.defaultPrevented&&y(e)}));let ue=d;"button"===ue&&(L.href||L.to)&&(ue=v);const de={};"button"===ue?(de.type=void 0===j?"button":j,de.disabled=p):(L.href||L.to||(de.role="button"),p&&(de["aria-disabled"]=p));const pe=on(t,V,z),fe=(0,o.A)({},n,{centerRipple:l,component:d,disabled:p,disableRipple:f,disableTouchRipple:h,focusRipple:m,tabIndex:T,focusVisible:H}),he=(e=>{const{disabled:t,focusVisible:n,focusVisibleClassName:r,classes:o}=e,i=b({root:["root",t&&"disabled",n&&"focusVisible"]},Nn,o);return n&&r&&(i.root+=` ${r}`),i})(fe);return(0,Te.jsxs)(zn,(0,o.A)({as:ue,className:s(he.root,u),ownerState:fe,onBlur:oe,onClick:y,onContextMenu:J,onFocus:ie,onKeyDown:le,onKeyUp:ce,onMouseDown:Y,onMouseLeave:ee,onMouseUp:Q,onDragLeave:Z,onTouchEnd:ne,onTouchMove:re,onTouchStart:te,ref:pe,tabIndex:p?-1:T,type:j},de,L,{children:[c,X?(0,Te.jsx)(In,(0,o.A)({ref:F,center:l},I)):null]}))})),Fn=Dn;function Wn(e){return ze("MuiIconButton",e)}const Bn=Ut("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge"]),Vn=["edge","children","className","color","disabled","disableFocusRipple","size"],Hn=Lt(Fn,{name:"MuiIconButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,"default"!==n.color&&t[`color${Kt(n.color)}`],n.edge&&t[`edge${Kt(n.edge)}`],t[`size${Kt(n.size)}`]]}})((({theme:e,ownerState:t})=>(0,o.A)({textAlign:"center",flex:"0 0 auto",fontSize:e.typography.pxToRem(24),padding:8,borderRadius:"50%",overflow:"visible",color:(e.vars||e).palette.action.active,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest})},!t.disableRipple&&{"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.activeChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,x.X4)(e.palette.action.active,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"start"===t.edge&&{marginLeft:"small"===t.size?-3:-12},"end"===t.edge&&{marginRight:"small"===t.size?-3:-12})),(({theme:e,ownerState:t})=>{var n;const r=null==(n=(e.vars||e).palette)?void 0:n[t.color];return(0,o.A)({},"inherit"===t.color&&{color:"inherit"},"inherit"!==t.color&&"default"!==t.color&&(0,o.A)({color:null==r?void 0:r.main},!t.disableRipple&&{"&:hover":(0,o.A)({},r&&{backgroundColor:e.vars?`rgba(${r.mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,x.X4)(r.main,e.palette.action.hoverOpacity)},{"@media (hover: none)":{backgroundColor:"transparent"}})}),"small"===t.size&&{padding:5,fontSize:e.typography.pxToRem(18)},"large"===t.size&&{padding:12,fontSize:e.typography.pxToRem(28)},{[`&.${Bn.disabled}`]:{backgroundColor:"transparent",color:(e.vars||e).palette.action.disabled}})})),qn=i.forwardRef((function(e,t){const n=Bt({props:e,name:"MuiIconButton"}),{edge:i=!1,children:a,className:l,color:c="default",disabled:u=!1,disableFocusRipple:d=!1,size:p="medium"}=n,f=(0,r.A)(n,Vn),h=(0,o.A)({},n,{edge:i,color:c,disabled:u,disableFocusRipple:d,size:p}),m=(e=>{const{classes:t,disabled:n,color:r,edge:o,size:i}=e;return b({root:["root",n&&"disabled","default"!==r&&`color${Kt(r)}`,o&&`edge${Kt(o)}`,`size${Kt(i)}`]},Wn,t)})(h);return(0,Te.jsx)(Hn,(0,o.A)({className:s(m.root,l),centerRipple:!0,focusRipple:!d,disabled:u,ref:t},f,{ownerState:h,children:a}))}));function Kn(e){return ze("MuiSvgIcon",e)}Ut("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);const Un=["children","className","color","component","fontSize","htmlColor","inheritViewBox","titleAccess","viewBox"],Xn=Lt("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,"inherit"!==n.color&&t[`color${Kt(n.color)}`],t[`fontSize${Kt(n.fontSize)}`]]}})((({theme:e,ownerState:t})=>{var n,r,o,i,a,s,l,c,u,d,p,f,h;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",fill:t.hasSvgAsChild?void 0:"currentColor",flexShrink:0,transition:null==(n=e.transitions)||null==(r=n.create)?void 0:r.call(n,"fill",{duration:null==(o=e.transitions)||null==(o=o.duration)?void 0:o.shorter}),fontSize:{inherit:"inherit",small:(null==(i=e.typography)||null==(a=i.pxToRem)?void 0:a.call(i,20))||"1.25rem",medium:(null==(s=e.typography)||null==(l=s.pxToRem)?void 0:l.call(s,24))||"1.5rem",large:(null==(c=e.typography)||null==(u=c.pxToRem)?void 0:u.call(c,35))||"2.1875rem"}[t.fontSize],color:null!=(d=null==(p=(e.vars||e).palette)||null==(p=p[t.color])?void 0:p.main)?d:{action:null==(f=(e.vars||e).palette)||null==(f=f.action)?void 0:f.active,disabled:null==(h=(e.vars||e).palette)||null==(h=h.action)?void 0:h.disabled,inherit:void 0}[t.color]}})),Gn=i.forwardRef((function(e,t){const n=Bt({props:e,name:"MuiSvgIcon"}),{children:a,className:l,color:c="inherit",component:u="svg",fontSize:d="medium",htmlColor:p,inheritViewBox:f=!1,titleAccess:h,viewBox:m="0 0 24 24"}=n,v=(0,r.A)(n,Un),g=i.isValidElement(a)&&"svg"===a.type,y=(0,o.A)({},n,{color:c,component:u,fontSize:d,instanceFontSize:e.fontSize,inheritViewBox:f,viewBox:m,hasSvgAsChild:g}),x={};f||(x.viewBox=m);const A=(e=>{const{color:t,fontSize:n,classes:r}=e;return b({root:["root","inherit"!==t&&`color${Kt(t)}`,`fontSize${Kt(n)}`]},Kn,r)})(y);return(0,Te.jsxs)(Xn,(0,o.A)({as:u,className:s(A.root,l),focusable:"false",color:p,"aria-hidden":!h||void 0,role:h?"img":void 0,ref:t},x,v,g&&a.props,{ownerState:y,children:[g?a.props.children:a,h?(0,Te.jsx)("title",{children:h}):null]}))}));Gn.muiName="SvgIcon";const Yn=Gn;function Jn(e,t){function n(n,r){return(0,Te.jsx)(Yn,(0,o.A)({"data-testid":`${t}Icon`,ref:r},n,{children:e}))}return n.muiName=Yn.muiName,i.memo(i.forwardRef(n))}const Zn=Jn((0,Te.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");function Qn(e){return ze("MuiChip",e)}const er=Ut("MuiChip",["root","sizeSmall","sizeMedium","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","clickableColorPrimary","clickableColorSecondary","deletable","deletableColorPrimary","deletableColorSecondary","outlined","filled","outlinedPrimary","outlinedSecondary","filledPrimary","filledSecondary","avatar","avatarSmall","avatarMedium","avatarColorPrimary","avatarColorSecondary","icon","iconSmall","iconMedium","iconColorPrimary","iconColorSecondary","label","labelSmall","labelMedium","deleteIcon","deleteIconSmall","deleteIconMedium","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","deleteIconFilledColorPrimary","deleteIconFilledColorSecondary","focusVisible"]),tr=["avatar","className","clickable","color","component","deleteIcon","disabled","icon","label","onClick","onDelete","onKeyDown","onKeyUp","size","variant","tabIndex","skipFocusWhenDisabled"],nr=Lt("div",{name:"MuiChip",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e,{color:r,iconColor:o,clickable:i,onDelete:a,size:s,variant:l}=n;return[{[`& .${er.avatar}`]:t.avatar},{[`& .${er.avatar}`]:t[`avatar${Kt(s)}`]},{[`& .${er.avatar}`]:t[`avatarColor${Kt(r)}`]},{[`& .${er.icon}`]:t.icon},{[`& .${er.icon}`]:t[`icon${Kt(s)}`]},{[`& .${er.icon}`]:t[`iconColor${Kt(o)}`]},{[`& .${er.deleteIcon}`]:t.deleteIcon},{[`& .${er.deleteIcon}`]:t[`deleteIcon${Kt(s)}`]},{[`& .${er.deleteIcon}`]:t[`deleteIconColor${Kt(r)}`]},{[`& .${er.deleteIcon}`]:t[`deleteIcon${Kt(l)}Color${Kt(r)}`]},t.root,t[`size${Kt(s)}`],t[`color${Kt(r)}`],i&&t.clickable,i&&"default"!==r&&t[`clickableColor${Kt(r)})`],a&&t.deletable,a&&"default"!==r&&t[`deletableColor${Kt(r)}`],t[l],t[`${l}${Kt(r)}`]]}})((({theme:e,ownerState:t})=>{const n="light"===e.palette.mode?e.palette.grey[700]:e.palette.grey[300];return(0,o.A)({maxWidth:"100%",fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,color:(e.vars||e).palette.text.primary,backgroundColor:(e.vars||e).palette.action.selected,borderRadius:16,whiteSpace:"nowrap",transition:e.transitions.create(["background-color","box-shadow"]),cursor:"unset",outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box",[`&.${er.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`& .${er.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:e.vars?e.vars.palette.Chip.defaultAvatarColor:n,fontSize:e.typography.pxToRem(12)},[`& .${er.avatarColorPrimary}`]:{color:(e.vars||e).palette.primary.contrastText,backgroundColor:(e.vars||e).palette.primary.dark},[`& .${er.avatarColorSecondary}`]:{color:(e.vars||e).palette.secondary.contrastText,backgroundColor:(e.vars||e).palette.secondary.dark},[`& .${er.avatarSmall}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:e.typography.pxToRem(10)},[`& .${er.icon}`]:(0,o.A)({marginLeft:5,marginRight:-6},"small"===t.size&&{fontSize:18,marginLeft:4,marginRight:-4},t.iconColor===t.color&&(0,o.A)({color:e.vars?e.vars.palette.Chip.defaultIconColor:n},"default"!==t.color&&{color:"inherit"})),[`& .${er.deleteIcon}`]:(0,o.A)({WebkitTapHighlightColor:"transparent",color:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / 0.26)`:(0,x.X4)(e.palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / 0.4)`:(0,x.X4)(e.palette.text.primary,.4)}},"small"===t.size&&{fontSize:16,marginRight:4,marginLeft:-4},"default"!==t.color&&{color:e.vars?`rgba(${e.vars.palette[t.color].contrastTextChannel} / 0.7)`:(0,x.X4)(e.palette[t.color].contrastText,.7),"&:hover, &:active":{color:(e.vars||e).palette[t.color].contrastText}})},"small"===t.size&&{height:24},"default"!==t.color&&{backgroundColor:(e.vars||e).palette[t.color].main,color:(e.vars||e).palette[t.color].contrastText},t.onDelete&&{[`&.${er.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,x.X4)(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},t.onDelete&&"default"!==t.color&&{[`&.${er.focusVisible}`]:{backgroundColor:(e.vars||e).palette[t.color].dark}})}),(({theme:e,ownerState:t})=>(0,o.A)({},t.clickable&&{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,x.X4)(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity)},[`&.${er.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.action.selectedChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,x.X4)(e.palette.action.selected,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)},"&:active":{boxShadow:(e.vars||e).shadows[1]}},t.clickable&&"default"!==t.color&&{[`&:hover, &.${er.focusVisible}`]:{backgroundColor:(e.vars||e).palette[t.color].dark}})),(({theme:e,ownerState:t})=>(0,o.A)({},"outlined"===t.variant&&{backgroundColor:"transparent",border:e.vars?`1px solid ${e.vars.palette.Chip.defaultBorder}`:`1px solid ${"light"===e.palette.mode?e.palette.grey[400]:e.palette.grey[700]}`,[`&.${er.clickable}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${er.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`& .${er.avatar}`]:{marginLeft:4},[`& .${er.avatarSmall}`]:{marginLeft:2},[`& .${er.icon}`]:{marginLeft:4},[`& .${er.iconSmall}`]:{marginLeft:2},[`& .${er.deleteIcon}`]:{marginRight:5},[`& .${er.deleteIconSmall}`]:{marginRight:3}},"outlined"===t.variant&&"default"!==t.color&&{color:(e.vars||e).palette[t.color].main,border:`1px solid ${e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / 0.7)`:(0,x.X4)(e.palette[t.color].main,.7)}`,[`&.${er.clickable}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,x.X4)(e.palette[t.color].main,e.palette.action.hoverOpacity)},[`&.${er.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.focusOpacity})`:(0,x.X4)(e.palette[t.color].main,e.palette.action.focusOpacity)},[`& .${er.deleteIcon}`]:{color:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / 0.7)`:(0,x.X4)(e.palette[t.color].main,.7),"&:hover, &:active":{color:(e.vars||e).palette[t.color].main}}}))),rr=Lt("span",{name:"MuiChip",slot:"Label",overridesResolver:(e,t)=>{const{ownerState:n}=e,{size:r}=n;return[t.label,t[`label${Kt(r)}`]]}})((({ownerState:e})=>(0,o.A)({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap"},"outlined"===e.variant&&{paddingLeft:11,paddingRight:11},"small"===e.size&&{paddingLeft:8,paddingRight:8},"small"===e.size&&"outlined"===e.variant&&{paddingLeft:7,paddingRight:7})));function or(e){return"Backspace"===e.key||"Delete"===e.key}const ir=i.forwardRef((function(e,t){const n=Bt({props:e,name:"MuiChip"}),{avatar:a,className:l,clickable:c,color:u="default",component:d,deleteIcon:p,disabled:f=!1,icon:h,label:m,onClick:v,onDelete:g,onKeyDown:y,onKeyUp:x,size:A="medium",variant:w="filled",tabIndex:k,skipFocusWhenDisabled:S=!1}=n,C=(0,r.A)(n,tr),E=i.useRef(null),O=on(E,t),R=e=>{e.stopPropagation(),g&&g(e)},P=!(!1===c||!v)||c,$=P||g?Fn:d||"div",M=(0,o.A)({},n,{component:$,disabled:f,size:A,color:u,iconColor:i.isValidElement(h)&&h.props.color||u,onDelete:!!g,clickable:P,variant:w}),T=(e=>{const{classes:t,disabled:n,size:r,color:o,iconColor:i,onDelete:a,clickable:s,variant:l}=e;return b({root:["root",l,n&&"disabled",`size${Kt(r)}`,`color${Kt(o)}`,s&&"clickable",s&&`clickableColor${Kt(o)}`,a&&"deletable",a&&`deletableColor${Kt(o)}`,`${l}${Kt(o)}`],label:["label",`label${Kt(r)}`],avatar:["avatar",`avatar${Kt(r)}`,`avatarColor${Kt(o)}`],icon:["icon",`icon${Kt(r)}`,`iconColor${Kt(i)}`],deleteIcon:["deleteIcon",`deleteIcon${Kt(r)}`,`deleteIconColor${Kt(o)}`,`deleteIcon${Kt(l)}Color${Kt(o)}`]},Qn,t)})(M),I=$===Fn?(0,o.A)({component:d||"div",focusVisibleClassName:T.focusVisible},g&&{disableRipple:!0}):{};let N=null;g&&(N=p&&i.isValidElement(p)?i.cloneElement(p,{className:s(p.props.className,T.deleteIcon),onClick:R}):(0,Te.jsx)(Zn,{className:s(T.deleteIcon),onClick:R}));let j=null;a&&i.isValidElement(a)&&(j=i.cloneElement(a,{className:s(T.avatar,a.props.className)}));let L=null;return h&&i.isValidElement(h)&&(L=i.cloneElement(h,{className:s(T.icon,h.props.className)})),(0,Te.jsxs)(nr,(0,o.A)({as:$,className:s(T.root,l),disabled:!(!P||!f)||void 0,onClick:v,onKeyDown:e=>{e.currentTarget===e.target&&or(e)&&e.preventDefault(),y&&y(e)},onKeyUp:e=>{e.currentTarget===e.target&&(g&&or(e)?g(e):"Escape"===e.key&&E.current&&E.current.blur()),x&&x(e)},ref:O,tabIndex:S&&f?-1:k,ownerState:M},I,C,{children:[j||L,(0,Te.jsx)(rr,{className:s(T.label),ownerState:M,children:m}),N]}))})),ar=Ut("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]),sr=(0,o.A)({},ar,Ut("MuiInput",["root","underline","input"])),lr=(0,o.A)({},ar,Ut("MuiOutlinedInput",["root","notchedOutline","input"])),cr=(0,o.A)({},ar,Ut("MuiFilledInput",["root","underline","input"])),ur=Jn((0,Te.jsx)("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),dr=Jn((0,Te.jsx)("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown");function pr(e){return ze("MuiAutocomplete",e)}const fr=Ut("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var hr,mr;const vr=["autoComplete","autoHighlight","autoSelect","blurOnSelect","ChipProps","className","clearIcon","clearOnBlur","clearOnEscape","clearText","closeText","componentsProps","defaultValue","disableClearable","disableCloseOnSelect","disabled","disabledItemsFocusable","disableListWrap","disablePortal","filterOptions","filterSelectedOptions","forcePopupIcon","freeSolo","fullWidth","getLimitTagsText","getOptionDisabled","getOptionKey","getOptionLabel","isOptionEqualToValue","groupBy","handleHomeEndKeys","id","includeInputInList","inputValue","limitTags","ListboxComponent","ListboxProps","loading","loadingText","multiple","noOptionsText","onChange","onClose","onHighlightChange","onInputChange","onOpen","open","openOnFocus","openText","options","PaperComponent","PopperComponent","popupIcon","readOnly","renderGroup","renderInput","renderOption","renderTags","selectOnFocus","size","slotProps","value"],gr=["ref"],yr=Bt,br=Lt("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e,{fullWidth:r,hasClearIcon:o,hasPopupIcon:i,inputFocused:a,size:s}=n;return[{[`& .${fr.tag}`]:t.tag},{[`& .${fr.tag}`]:t[`tagSize${Kt(s)}`]},{[`& .${fr.inputRoot}`]:t.inputRoot},{[`& .${fr.input}`]:t.input},{[`& .${fr.input}`]:a&&t.inputFocused},t.root,r&&t.fullWidth,i&&t.hasPopupIcon,o&&t.hasClearIcon]}})({[`&.${fr.focused} .${fr.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${fr.clearIndicator}`]:{visibility:"visible"}},[`& .${fr.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${fr.inputRoot}`]:{flexWrap:"wrap",[`.${fr.hasPopupIcon}&, .${fr.hasClearIcon}&`]:{paddingRight:30},[`.${fr.hasPopupIcon}.${fr.hasClearIcon}&`]:{paddingRight:56},[`& .${fr.input}`]:{width:0,minWidth:30}},[`& .${sr.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${sr.root}.${ar.sizeSmall}`]:{[`& .${sr.input}`]:{padding:"2px 4px 3px 0"}},[`& .${lr.root}`]:{padding:9,[`.${fr.hasPopupIcon}&, .${fr.hasClearIcon}&`]:{paddingRight:39},[`.${fr.hasPopupIcon}.${fr.hasClearIcon}&`]:{paddingRight:65},[`& .${fr.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${fr.endAdornment}`]:{right:9}},[`& .${lr.root}.${ar.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${fr.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${cr.root}`]:{paddingTop:19,paddingLeft:8,[`.${fr.hasPopupIcon}&, .${fr.hasClearIcon}&`]:{paddingRight:39},[`.${fr.hasPopupIcon}.${fr.hasClearIcon}&`]:{paddingRight:65},[`& .${cr.input}`]:{padding:"7px 4px"},[`& .${fr.endAdornment}`]:{right:9}},[`& .${cr.root}.${ar.sizeSmall}`]:{paddingBottom:1,[`& .${cr.input}`]:{padding:"2.5px 4px"}},[`& .${ar.hiddenLabel}`]:{paddingTop:8},[`& .${cr.root}.${ar.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${fr.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${cr.root}.${ar.hiddenLabel}.${ar.sizeSmall}`]:{[`& .${fr.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${fr.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${fr.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${fr.input}`]:{opacity:1}}}]}),xr=Lt("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(e,t)=>t.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),Ar=Lt(qn,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(e,t)=>t.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),wr=Lt(qn,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:({ownerState:e},t)=>(0,o.A)({},t.popupIndicator,e.popupOpen&&t.popupIndicatorOpen)})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),kr=Lt(qt,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${fr.option}`]:t.option},t.popper,n.disablePortal&&t.popperDisablePortal]}})((({theme:e})=>({zIndex:(e.vars||e).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]}))),Sr=Lt(rn,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(e,t)=>t.paper})((({theme:e})=>(0,o.A)({},e.typography.body1,{overflow:"auto"}))),Cr=Lt("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(e,t)=>t.loading})((({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"}))),Er=Lt("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(e,t)=>t.noOptions})((({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"}))),Or=Lt("div",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(e,t)=>t.listbox})((({theme:e})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${fr.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[e.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${fr.focused}`]:{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${fr.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,x.X4)(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${fr.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,x.X4)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(e.vars||e).palette.action.selected}},[`&.${fr.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,x.X4)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}}}))),Rr=Lt(Zt,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(e,t)=>t.groupLabel})((({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,top:-8}))),Pr=Lt("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(e,t)=>t.groupUl})({padding:0,[`& .${fr.option}`]:{paddingLeft:24}}),$r=i.forwardRef((function(e,t){var n,a,l,c;const u=yr({props:e,name:"MuiAutocomplete"}),{autoComplete:d=!1,autoHighlight:p=!1,autoSelect:f=!1,blurOnSelect:h=!1,ChipProps:m,className:v,clearIcon:g=hr||(hr=(0,Te.jsx)(ur,{fontSize:"small"})),clearOnBlur:x=!u.freeSolo,clearOnEscape:A=!1,clearText:w="Clear",closeText:k="Close",componentsProps:S={},defaultValue:C=(u.multiple?[]:null),disableClearable:E=!1,disableCloseOnSelect:O=!1,disabled:R=!1,disabledItemsFocusable:P=!1,disableListWrap:$=!1,disablePortal:M=!1,filterSelectedOptions:T=!1,forcePopupIcon:I="auto",freeSolo:N=!1,fullWidth:j=!1,getLimitTagsText:L=(e=>`+${e}`),getOptionLabel:z,groupBy:D,handleHomeEndKeys:F=!u.freeSolo,includeInputInList:_=!1,limitTags:W=-1,ListboxComponent:B="ul",ListboxProps:V,loading:H=!1,loadingText:q="Loading…",multiple:K=!1,noOptionsText:U="No options",openOnFocus:X=!1,openText:G="Open",PaperComponent:Y=rn,PopperComponent:J=qt,popupIcon:Z=mr||(mr=(0,Te.jsx)(dr,{})),readOnly:Q=!1,renderGroup:ee,renderInput:te,renderOption:ne,renderTags:re,selectOnFocus:oe=!u.freeSolo,size:ie="medium",slotProps:ae={}}=u,se=(0,r.A)(u,vr),{getRootProps:le,getInputProps:ce,getInputLabelProps:ue,getPopupIndicatorProps:de,getClearProps:pe,getTagProps:fe,getListboxProps:he,getOptionProps:me,value:ve,dirty:ge,expanded:ye,id:be,popupOpen:xe,focused:Ae,focusedTag:we,anchorEl:ke,setAnchorEl:Se,inputValue:Ce,groupedOptions:Ee}=y((0,o.A)({},u,{componentName:"Autocomplete"})),Oe=!E&&!R&&ge&&!Q,Re=(!N||!0===I)&&!1!==I,{onMouseDown:Pe}=ce(),{ref:$e}=null!=V?V:{},Me=he(),{ref:Ie}=Me,Ne=(0,r.A)(Me,gr),je=on(Ie,$e),Le=z||(e=>{var t;return null!=(t=e.label)?t:e}),ze=(0,o.A)({},u,{disablePortal:M,expanded:ye,focused:Ae,fullWidth:j,getOptionLabel:Le,hasClearIcon:Oe,hasPopupIcon:Re,inputFocused:-1===we,popupOpen:xe,size:ie}),De=(e=>{const{classes:t,disablePortal:n,expanded:r,focused:o,fullWidth:i,hasClearIcon:a,hasPopupIcon:s,inputFocused:l,popupOpen:c,size:u}=e;return b({root:["root",r&&"expanded",o&&"focused",i&&"fullWidth",a&&"hasClearIcon",s&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",l&&"inputFocused"],tag:["tag",`tagSize${Kt(u)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",c&&"popupIndicatorOpen"],popper:["popper",n&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]},pr,t)})(ze);let Fe;if(K&&ve.length>0){const e=e=>(0,o.A)({className:De.tag,disabled:R},fe(e));Fe=re?re(ve,e,ze):ve.map(((t,n)=>(0,Te.jsx)(ir,(0,o.A)({label:Le(t),size:ie},e({index:n}),m))))}if(W>-1&&Array.isArray(Fe)){const e=Fe.length-W;!Ae&&e>0&&(Fe=Fe.splice(0,W),Fe.push((0,Te.jsx)("span",{className:De.tag,children:L(e)},Fe.length)))}const _e=ee||(e=>(0,Te.jsxs)("li",{children:[(0,Te.jsx)(Rr,{className:De.groupLabel,ownerState:ze,component:"div",children:e.group}),(0,Te.jsx)(Pr,{className:De.groupUl,ownerState:ze,children:e.children})]},e.key)),We=ne||((e,t)=>(0,i.createElement)("li",(0,o.A)({},e,{key:e.key}),Le(t))),Be=(e,t)=>{const n=me({option:e,index:t});return We((0,o.A)({},n,{className:De.option}),e,{selected:n["aria-selected"],index:t,inputValue:Ce},ze)},Ve=null!=(n=ae.clearIndicator)?n:S.clearIndicator,He=null!=(a=ae.paper)?a:S.paper,qe=null!=(l=ae.popper)?l:S.popper,Ke=null!=(c=ae.popupIndicator)?c:S.popupIndicator,Ue=e=>(0,Te.jsx)(kr,(0,o.A)({as:J,disablePortal:M,style:{width:ke?ke.clientWidth:null},ownerState:ze,role:"presentation",anchorEl:ke,open:xe},qe,{className:s(De.popper,null==qe?void 0:qe.className),children:(0,Te.jsx)(Sr,(0,o.A)({ownerState:ze,as:Y},He,{className:s(De.paper,null==He?void 0:He.className),children:e}))}));let Xe=null;return!H&&Ee.length>0?Xe=Ue((0,Te.jsx)(Or,(0,o.A)({as:B,className:De.listbox,ownerState:ze},Ne,V,{ref:je,children:Ee.map(((e,t)=>D?_e({key:e.key,group:e.group,children:e.options.map(((t,n)=>Be(t,e.index+n)))}):Be(e,t)))}))):H&&0===Ee.length?Xe=Ue((0,Te.jsx)(Cr,{className:De.loading,ownerState:ze,children:q})):0!==Ee.length||N||H||(Xe=Ue((0,Te.jsx)(Er,{className:De.noOptions,ownerState:ze,role:"presentation",onMouseDown:e=>{e.preventDefault()},children:U}))),(0,Te.jsxs)(i.Fragment,{children:[(0,Te.jsx)(br,(0,o.A)({ref:t,className:s(De.root,v),ownerState:ze},le(se),{children:te({id:be,disabled:R,fullWidth:!0,size:"small"===ie?"small":void 0,InputLabelProps:ue(),InputProps:(0,o.A)({ref:Se,className:De.inputRoot,startAdornment:Fe,onClick:e=>{e.target===e.currentTarget&&Pe(e)}},(Oe||Re)&&{endAdornment:(0,Te.jsxs)(xr,{className:De.endAdornment,ownerState:ze,children:[Oe?(0,Te.jsx)(Ar,(0,o.A)({},pe(),{"aria-label":w,title:w,ownerState:ze},Ve,{className:s(De.clearIndicator,null==Ve?void 0:Ve.className),children:g})):null,Re?(0,Te.jsx)(wr,(0,o.A)({},de(),{disabled:R,"aria-label":xe?k:G,title:xe?k:G,ownerState:ze},Ke,{className:s(De.popupIndicator,null==Ke?void 0:Ke.className),children:Z})):null]})}),inputProps:(0,o.A)({className:De.input,disabled:R,readOnly:Q},ce())})})),ke?Xe:null]})}))},7540:(e,t,n)=>{"use strict";n.r(t),n.d(t,{GlobalStyles:()=>A,StyledEngineProvider:()=>x,ThemeContext:()=>a.T,css:()=>v.AH,default:()=>w,internal_processStyles:()=>k,keyframes:()=>v.i7});var r=n(8168),o=n(1609),i=n(1907),a=n(85),s=n(41),l=n(5479),c=n(1287),u=i.A,d=function(e){return"theme"!==e},p=function(e){return"string"==typeof e&&e.charCodeAt(0)>96?u:d},f=function(e,t,n){var r;if(t){var o=t.shouldForwardProp;r=e.__emotion_forwardProp&&o?function(t){return e.__emotion_forwardProp(t)&&o(t)}:o}return"function"!=typeof r&&n&&(r=e.__emotion_forwardProp),r},h=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return(0,s.SF)(t,n,r),(0,c.s)((function(){return(0,s.sk)(t,n,r)})),null},m=function e(t,n){var i,c,u=t.__emotion_real===t,d=u&&t.__emotion_base||t;void 0!==n&&(i=n.label,c=n.target);var m=f(t,n,u),v=m||p(d),g=!v("as");return function(){var y=arguments,b=u&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==i&&b.push("label:"+i+";"),null==y[0]||void 0===y[0].raw)b.push.apply(b,y);else{b.push(y[0][0]);for(var x=y.length,A=1;A<x;A++)b.push(y[A],y[0][A])}var w=(0,a.w)((function(e,t,n){var r=g&&e.as||d,i="",u=[],f=e;if(null==e.theme){for(var y in f={},e)f[y]=e[y];f.theme=o.useContext(a.T)}"string"==typeof e.className?i=(0,s.Rk)(t.registered,u,e.className):null!=e.className&&(i=e.className+" ");var x=(0,l.J)(b.concat(u),t.registered,f);i+=t.key+"-"+x.name,void 0!==c&&(i+=" "+c);var A=g&&void 0===m?p(r):v,w={};for(var k in e)g&&"as"===k||A(k)&&(w[k]=e[k]);return w.className=i,w.ref=n,o.createElement(o.Fragment,null,o.createElement(h,{cache:t,serialized:x,isStringTag:"string"==typeof r}),o.createElement(r,w))}));return w.displayName=void 0!==i?i:"Styled("+("string"==typeof d?d:d.displayName||d.name||"Component")+")",w.defaultProps=t.defaultProps,w.__emotion_real=w,w.__emotion_base=d,w.__emotion_styles=b,w.__emotion_forwardProp=m,Object.defineProperty(w,"toString",{value:function(){return"."+c}}),w.withComponent=function(t,o){return e(t,(0,r.A)({},n,o,{shouldForwardProp:f(w,o,!0)})).apply(void 0,b)},w}}.bind();["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach((function(e){m[e]=m(e)}));var v=n(7437),g=n(4300),y=n(4848);let b;function x(e){const{injectFirst:t,children:n}=e;return t&&b?(0,y.jsx)(a.C,{value:b,children:n}):n}function A(e){const{styles:t,defaultTheme:n={}}=e,r="function"==typeof t?e=>{return t(null==(r=e)||0===Object.keys(r).length?n:e);var r}:t;return(0,y.jsx)(v.mL,{styles:r})}function w(e,t){return m(e,t)}"object"==typeof document&&(b=(0,g.A)({key:"css",prepend:!0}));const k=(e,t)=>{Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}},771:(e,t,n)=>{"use strict";var r=n(4994);t.X4=function(e,t){return e=s(e),t=a(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),"color"===e.type?e.values[3]=`/${t}`:e.values[3]=t,l(e)},t.e$=function(e,t){if(e=s(e),t=a(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb")||-1!==e.type.indexOf("color"))for(let n=0;n<3;n+=1)e.values[n]*=1-t;return l(e)},t.eM=function(e,t){const n=c(e),r=c(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)},t.a=function(e,t){if(e=s(e),t=a(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(let n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(-1!==e.type.indexOf("color"))for(let n=0;n<3;n+=1)e.values[n]+=(1-e.values[n])*t;return l(e)};var o=r(n(2108)),i=r(n(6379));function a(e,t=0,n=1){return(0,i.default)(e,t,n)}function s(e){if(e.type)return e;if("#"===e.charAt(0))return s(function(e){e=e.slice(1);const t=new RegExp(`.{1,${e.length>=6?2:1}}`,"g");let n=e.match(t);return n&&1===n[0].length&&(n=n.map((e=>e+e))),n?`rgb${4===n.length?"a":""}(${n.map(((e,t)=>t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3)).join(", ")})`:""}(e));const t=e.indexOf("("),n=e.substring(0,t);if(-1===["rgb","rgba","hsl","hsla","color"].indexOf(n))throw new Error((0,o.default)(9,e));let r,i=e.substring(t+1,e.length-1);if("color"===n){if(i=i.split(" "),r=i.shift(),4===i.length&&"/"===i[3].charAt(0)&&(i[3]=i[3].slice(1)),-1===["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(r))throw new Error((0,o.default)(10,r))}else i=i.split(",");return i=i.map((e=>parseFloat(e))),{type:n,values:i,colorSpace:r}}function l(e){const{type:t,colorSpace:n}=e;let{values:r}=e;return-1!==t.indexOf("rgb")?r=r.map(((e,t)=>t<3?parseInt(e,10):e)):-1!==t.indexOf("hsl")&&(r[1]=`${r[1]}%`,r[2]=`${r[2]}%`),r=-1!==t.indexOf("color")?`${n} ${r.join(" ")}`:`${r.join(", ")}`,`${t}(${r})`}function c(e){let t="hsl"===(e=s(e)).type||"hsla"===e.type?s(function(e){e=s(e);const{values:t}=e,n=t[0],r=t[1]/100,o=t[2]/100,i=r*Math.min(o,1-o),a=(e,t=(e+n/30)%12)=>o-i*Math.max(Math.min(t-3,9-t,1),-1);let c="rgb";const u=[Math.round(255*a(0)),Math.round(255*a(8)),Math.round(255*a(4))];return"hsla"===e.type&&(c+="a",u.push(t[3])),l({type:c,values:u})}(e)).values:e.values;return t=t.map((t=>("color"!==e.type&&(t/=255),t<=.03928?t/12.92:((t+.055)/1.055)**2.4))),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}},6461:(e,t,n)=>{"use strict";var r=n(4994);t.Ay=function(e={}){const{themeId:t,defaultTheme:n=m,rootShouldForwardProp:r=h,slotShouldForwardProp:l=h}=e,u=e=>(0,c.default)((0,o.default)({},e,{theme:g((0,o.default)({},e,{defaultTheme:n,themeId:t}))}));return u.__mui_systemSx=!0,(e,c={})=>{(0,a.internal_processStyles)(e,(e=>e.filter((e=>!(null!=e&&e.__mui_systemSx)))));const{name:d,slot:f,skipVariantsResolver:m,skipSx:x,overridesResolver:A=y(v(f))}=c,w=(0,i.default)(c,p),k=void 0!==m?m:f&&"Root"!==f&&"root"!==f||!1,S=x||!1;let C=h;"Root"===f||"root"===f?C=r:f?C=l:function(e){return"string"==typeof e&&e.charCodeAt(0)>96}(e)&&(C=void 0);const E=(0,a.default)(e,(0,o.default)({shouldForwardProp:C,label:void 0},w)),O=e=>"function"==typeof e&&e.__emotion_real!==e||(0,s.isPlainObject)(e)?r=>b(e,(0,o.default)({},r,{theme:g({theme:r.theme,defaultTheme:n,themeId:t})})):e,R=(r,...i)=>{let a=O(r);const s=i?i.map(O):[];d&&A&&s.push((e=>{const r=g((0,o.default)({},e,{defaultTheme:n,themeId:t}));if(!r.components||!r.components[d]||!r.components[d].styleOverrides)return null;const i=r.components[d].styleOverrides,a={};return Object.entries(i).forEach((([t,n])=>{a[t]=b(n,(0,o.default)({},e,{theme:r}))})),A(e,a)})),d&&!k&&s.push((e=>{var r;const i=g((0,o.default)({},e,{defaultTheme:n,themeId:t}));return b({variants:null==i||null==(r=i.components)||null==(r=r[d])?void 0:r.variants},(0,o.default)({},e,{theme:i}))})),S||s.push(u);const l=s.length-i.length;if(Array.isArray(r)&&l>0){const e=new Array(l).fill("");a=[...r,...e],a.raw=[...r.raw,...e]}const c=E(a,...s);return e.muiName&&(c.muiName=e.muiName),c};return E.withConfig&&(R.withConfig=E.withConfig),R}};var o=r(n(4634)),i=r(n(4893)),a=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}(n(7540)),s=n(819),l=(r(n(8217)),r(n(1172)),r(n(3142))),c=r(n(2891));const u=["ownerState"],d=["variants"],p=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}function h(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}const m=(0,l.default)(),v=e=>e?e.charAt(0).toLowerCase()+e.slice(1):e;function g({defaultTheme:e,theme:t,themeId:n}){return r=t,0===Object.keys(r).length?e:t[n]||t;var r}function y(e){return e?(t,n)=>n[e]:null}function b(e,t){let{ownerState:n}=t,r=(0,i.default)(t,u);const a="function"==typeof e?e((0,o.default)({ownerState:n},r)):e;if(Array.isArray(a))return a.flatMap((e=>b(e,(0,o.default)({ownerState:n},r))));if(a&&"object"==typeof a&&Array.isArray(a.variants)){const{variants:e=[]}=a;let t=(0,i.default)(a,d);return e.forEach((e=>{let i=!0;"function"==typeof e.props?i=e.props((0,o.default)({ownerState:n},r,n)):Object.keys(e.props).forEach((t=>{(null==n?void 0:n[t])!==e.props[t]&&r[t]!==e.props[t]&&(i=!1)})),i&&(Array.isArray(t)||(t=[t]),t.push("function"==typeof e.style?e.style((0,o.default)({ownerState:n},r,n)):e.style))})),t}return a}},9452:(e,t,n)=>{"use strict";n.d(t,{EU:()=>a,NI:()=>i,vf:()=>s,zu:()=>r});const r={xs:0,sm:600,md:900,lg:1200,xl:1536},o={keys:["xs","sm","md","lg","xl"],up:e=>`@media (min-width:${r[e]}px)`};function i(e,t,n){const i=e.theme||{};if(Array.isArray(t)){const e=i.breakpoints||o;return t.reduce(((r,o,i)=>(r[e.up(e.keys[i])]=n(t[i]),r)),{})}if("object"==typeof t){const e=i.breakpoints||o;return Object.keys(t).reduce(((o,i)=>{if(-1!==Object.keys(e.values||r).indexOf(i))o[e.up(i)]=n(t[i],i);else{const e=i;o[e]=t[e]}return o}),{})}return n(t)}function a(e={}){var t;return(null==(t=e.keys)?void 0:t.reduce(((t,n)=>(t[e.up(n)]={},t)),{}))||{}}function s(e,t){return e.reduce(((e,t)=>{const n=e[t];return(!n||0===Object.keys(n).length)&&delete e[t],e}),t)}},8336:(e,t,n)=>{"use strict";function r(e,t){const n=this;return n.vars&&"function"==typeof n.getColorSchemeSelector?{[n.getColorSchemeSelector(e).replace(/(\[[^\]]+\])/,"*:where($1)")]:t}:n.palette.mode===e?t:{}}n.d(t,{A:()=>r})},8094:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(8587),o=n(8168);const i=["values","unit","step"],a=e=>{const t=Object.keys(e).map((t=>({key:t,val:e[t]})))||[];return t.sort(((e,t)=>e.val-t.val)),t.reduce(((e,t)=>(0,o.A)({},e,{[t.key]:t.val})),{})};function s(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n="px",step:s=5}=e,l=(0,r.A)(e,i),c=a(t),u=Object.keys(c);function d(e){return`@media (min-width:${"number"==typeof t[e]?t[e]:e}${n})`}function p(e){return`@media (max-width:${("number"==typeof t[e]?t[e]:e)-s/100}${n})`}function f(e,r){const o=u.indexOf(r);return`@media (min-width:${"number"==typeof t[e]?t[e]:e}${n}) and (max-width:${(-1!==o&&"number"==typeof t[u[o]]?t[u[o]]:r)-s/100}${n})`}return(0,o.A)({keys:u,values:c,up:d,down:p,between:f,only:function(e){return u.indexOf(e)+1<u.length?f(e,u[u.indexOf(e)+1]):d(e)},not:function(e){const t=u.indexOf(e);return 0===t?d(u[1]):t===u.length-1?p(u[t]):f(e,u[u.indexOf(e)+1]).replace("@media","@media not all and")},unit:n},l)}},8749:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(8168),o=n(8587),i=n(4521),a=n(8094);const s={borderRadius:4};var l=n(8248),c=n(3571),u=n(4188),d=n(8336);const p=["breakpoints","palette","spacing","shape"],f=function(e={},...t){const{breakpoints:n={},palette:f={},spacing:h,shape:m={}}=e,v=(0,o.A)(e,p),g=(0,a.A)(n),y=function(e=8){if(e.mui)return e;const t=(0,l.LX)({spacing:e}),n=(...e)=>(0===e.length?[1]:e).map((e=>{const n=t(e);return"number"==typeof n?`${n}px`:n})).join(" ");return n.mui=!0,n}(h);let b=(0,i.A)({breakpoints:g,direction:"ltr",components:{},palette:(0,r.A)({mode:"light"},f),spacing:y,shape:(0,r.A)({},s,m)},v);return b.applyStyles=d.A,b=t.reduce(((e,t)=>(0,i.A)(e,t)),b),b.unstable_sxConfig=(0,r.A)({},u.A,null==v?void 0:v.unstable_sxConfig),b.unstable_sx=function(e){return(0,c.A)({sx:e,theme:this})},b}},3142:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r.A,private_createBreakpoints:()=>o.A,unstable_applyStyles:()=>i.A});var r=n(8749),o=n(8094),i=n(8336)},4620:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(4521);const o=function(e,t){return t?(0,r.A)(e,t,{clone:!1}):e}},8248:(e,t,n)=>{"use strict";n.d(t,{LX:()=>h,MA:()=>f,_W:()=>m,Lc:()=>g,Ms:()=>y});var r=n(9452),o=n(6481),i=n(4620);const a={m:"margin",p:"padding"},s={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},l={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},c=function(e){const t={};return e=>(void 0===t[e]&&(t[e]=(e=>{if(e.length>2){if(!l[e])return[e];e=l[e]}const[t,n]=e.split(""),r=a[t],o=s[n]||"";return Array.isArray(o)?o.map((e=>r+e)):[r+o]})(e)),t[e])}(),u=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],d=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"],p=[...u,...d];function f(e,t,n,r){var i;const a=null!=(i=(0,o.Yn)(e,t,!1))?i:n;return"number"==typeof a?e=>"string"==typeof e?e:a*e:Array.isArray(a)?e=>"string"==typeof e?e:a[e]:"function"==typeof a?a:()=>{}}function h(e){return f(e,"spacing",8)}function m(e,t){if("string"==typeof t||null==t)return t;const n=e(Math.abs(t));return t>=0?n:"number"==typeof n?-n:`-${n}`}function v(e,t){const n=h(e.theme);return Object.keys(e).map((o=>function(e,t,n,o){if(-1===t.indexOf(n))return null;const i=function(e,t){return n=>e.reduce(((e,r)=>(e[r]=m(t,n),e)),{})}(c(n),o),a=e[n];return(0,r.NI)(e,a,i)}(e,t,o,n))).reduce(i.A,{})}function g(e){return v(e,u)}function y(e){return v(e,d)}function b(e){return v(e,p)}g.propTypes={},g.filterProps=u,y.propTypes={},y.filterProps=d,b.propTypes={},b.filterProps=p},6481:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>s,BO:()=>a,Yn:()=>i});var r=n(8659),o=n(9452);function i(e,t,n=!0){if(!t||"string"!=typeof t)return null;if(e&&e.vars&&n){const n=`vars.${t}`.split(".").reduce(((e,t)=>e&&e[t]?e[t]:null),e);if(null!=n)return n}return t.split(".").reduce(((e,t)=>e&&null!=e[t]?e[t]:null),e)}function a(e,t,n,r=n){let o;return o="function"==typeof e?e(n):Array.isArray(e)?e[n]||r:i(e,n)||r,t&&(o=t(o,r,e)),o}const s=function(e){const{prop:t,cssProperty:n=e.prop,themeKey:s,transform:l}=e,c=e=>{if(null==e[t])return null;const c=e[t],u=i(e.theme,s)||{};return(0,o.NI)(e,c,(e=>{let o=a(u,l,e);return e===o&&"string"==typeof e&&(o=a(u,l,`${t}${"default"===e?"":(0,r.A)(e)}`,e)),!1===n?o:{[n]:o}}))};return c.propTypes={},c.filterProps=[t],c}},4188:(e,t,n)=>{"use strict";n.d(t,{A:()=>N});var r=n(8248),o=n(6481),i=n(4620);const a=function(...e){const t=e.reduce(((e,t)=>(t.filterProps.forEach((n=>{e[n]=t})),e)),{}),n=e=>Object.keys(e).reduce(((n,r)=>t[r]?(0,i.A)(n,t[r](e)):n),{});return n.propTypes={},n.filterProps=e.reduce(((e,t)=>e.concat(t.filterProps)),[]),n};var s=n(9452);function l(e){return"number"!=typeof e?e:`${e}px solid`}function c(e,t){return(0,o.Ay)({prop:e,themeKey:"borders",transform:t})}const u=c("border",l),d=c("borderTop",l),p=c("borderRight",l),f=c("borderBottom",l),h=c("borderLeft",l),m=c("borderColor"),v=c("borderTopColor"),g=c("borderRightColor"),y=c("borderBottomColor"),b=c("borderLeftColor"),x=c("outline",l),A=c("outlineColor"),w=e=>{if(void 0!==e.borderRadius&&null!==e.borderRadius){const t=(0,r.MA)(e.theme,"shape.borderRadius",4,"borderRadius"),n=e=>({borderRadius:(0,r._W)(t,e)});return(0,s.NI)(e,e.borderRadius,n)}return null};w.propTypes={},w.filterProps=["borderRadius"],a(u,d,p,f,h,m,v,g,y,b,w,x,A);const k=e=>{if(void 0!==e.gap&&null!==e.gap){const t=(0,r.MA)(e.theme,"spacing",8,"gap"),n=e=>({gap:(0,r._W)(t,e)});return(0,s.NI)(e,e.gap,n)}return null};k.propTypes={},k.filterProps=["gap"];const S=e=>{if(void 0!==e.columnGap&&null!==e.columnGap){const t=(0,r.MA)(e.theme,"spacing",8,"columnGap"),n=e=>({columnGap:(0,r._W)(t,e)});return(0,s.NI)(e,e.columnGap,n)}return null};S.propTypes={},S.filterProps=["columnGap"];const C=e=>{if(void 0!==e.rowGap&&null!==e.rowGap){const t=(0,r.MA)(e.theme,"spacing",8,"rowGap"),n=e=>({rowGap:(0,r._W)(t,e)});return(0,s.NI)(e,e.rowGap,n)}return null};function E(e,t){return"grey"===t?t:e}function O(e){return e<=1&&0!==e?100*e+"%":e}C.propTypes={},C.filterProps=["rowGap"],a(k,S,C,(0,o.Ay)({prop:"gridColumn"}),(0,o.Ay)({prop:"gridRow"}),(0,o.Ay)({prop:"gridAutoFlow"}),(0,o.Ay)({prop:"gridAutoColumns"}),(0,o.Ay)({prop:"gridAutoRows"}),(0,o.Ay)({prop:"gridTemplateColumns"}),(0,o.Ay)({prop:"gridTemplateRows"}),(0,o.Ay)({prop:"gridTemplateAreas"}),(0,o.Ay)({prop:"gridArea"})),a((0,o.Ay)({prop:"color",themeKey:"palette",transform:E}),(0,o.Ay)({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:E}),(0,o.Ay)({prop:"backgroundColor",themeKey:"palette",transform:E}));const R=(0,o.Ay)({prop:"width",transform:O}),P=e=>{if(void 0!==e.maxWidth&&null!==e.maxWidth){const t=t=>{var n,r;const o=(null==(n=e.theme)||null==(n=n.breakpoints)||null==(n=n.values)?void 0:n[t])||s.zu[t];return o?"px"!==(null==(r=e.theme)||null==(r=r.breakpoints)?void 0:r.unit)?{maxWidth:`${o}${e.theme.breakpoints.unit}`}:{maxWidth:o}:{maxWidth:O(t)}};return(0,s.NI)(e,e.maxWidth,t)}return null};P.filterProps=["maxWidth"];const $=(0,o.Ay)({prop:"minWidth",transform:O}),M=(0,o.Ay)({prop:"height",transform:O}),T=(0,o.Ay)({prop:"maxHeight",transform:O}),I=(0,o.Ay)({prop:"minHeight",transform:O}),N=((0,o.Ay)({prop:"size",cssProperty:"width",transform:O}),(0,o.Ay)({prop:"size",cssProperty:"height",transform:O}),a(R,P,$,M,T,I,(0,o.Ay)({prop:"boxSizing"})),{border:{themeKey:"borders",transform:l},borderTop:{themeKey:"borders",transform:l},borderRight:{themeKey:"borders",transform:l},borderBottom:{themeKey:"borders",transform:l},borderLeft:{themeKey:"borders",transform:l},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:l},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:w},color:{themeKey:"palette",transform:E},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:E},backgroundColor:{themeKey:"palette",transform:E},p:{style:r.Ms},pt:{style:r.Ms},pr:{style:r.Ms},pb:{style:r.Ms},pl:{style:r.Ms},px:{style:r.Ms},py:{style:r.Ms},padding:{style:r.Ms},paddingTop:{style:r.Ms},paddingRight:{style:r.Ms},paddingBottom:{style:r.Ms},paddingLeft:{style:r.Ms},paddingX:{style:r.Ms},paddingY:{style:r.Ms},paddingInline:{style:r.Ms},paddingInlineStart:{style:r.Ms},paddingInlineEnd:{style:r.Ms},paddingBlock:{style:r.Ms},paddingBlockStart:{style:r.Ms},paddingBlockEnd:{style:r.Ms},m:{style:r.Lc},mt:{style:r.Lc},mr:{style:r.Lc},mb:{style:r.Lc},ml:{style:r.Lc},mx:{style:r.Lc},my:{style:r.Lc},margin:{style:r.Lc},marginTop:{style:r.Lc},marginRight:{style:r.Lc},marginBottom:{style:r.Lc},marginLeft:{style:r.Lc},marginX:{style:r.Lc},marginY:{style:r.Lc},marginInline:{style:r.Lc},marginInlineStart:{style:r.Lc},marginInlineEnd:{style:r.Lc},marginBlock:{style:r.Lc},marginBlockStart:{style:r.Lc},marginBlockEnd:{style:r.Lc},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:k},rowGap:{style:C},columnGap:{style:S},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:O},maxWidth:{style:P},minWidth:{transform:O},height:{transform:O},maxHeight:{transform:O},minHeight:{transform:O},boxSizing:{},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}})},2891:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r.A,extendSxProp:()=>u,unstable_createStyleFunctionSx:()=>r.k,unstable_defaultSxConfig:()=>s.A});var r=n(3571),o=n(8168),i=n(8587),a=n(4521),s=n(4188);const l=["sx"],c=e=>{var t,n;const r={systemProps:{},otherProps:{}},o=null!=(t=null==e||null==(n=e.theme)?void 0:n.unstable_sxConfig)?t:s.A;return Object.keys(e).forEach((t=>{o[t]?r.systemProps[t]=e[t]:r.otherProps[t]=e[t]})),r};function u(e){const{sx:t}=e,n=(0,i.A)(e,l),{systemProps:r,otherProps:s}=c(n);let u;return u=Array.isArray(t)?[r,...t]:"function"==typeof t?(...e)=>{const n=t(...e);return(0,a.Q)(n)?(0,o.A)({},r,n):r}:(0,o.A)({},r,t),(0,o.A)({},s,{sx:u})}},3571:(e,t,n)=>{"use strict";n.d(t,{A:()=>u,k:()=>l});var r=n(8659),o=n(4620),i=n(6481),a=n(9452),s=n(4188);function l(){function e(e,t,n,o){const s={[e]:t,theme:n},l=o[e];if(!l)return{[e]:t};const{cssProperty:c=e,themeKey:u,transform:d,style:p}=l;if(null==t)return null;if("typography"===u&&"inherit"===t)return{[e]:t};const f=(0,i.Yn)(n,u)||{};return p?p(s):(0,a.NI)(s,t,(t=>{let n=(0,i.BO)(f,d,t);return t===n&&"string"==typeof t&&(n=(0,i.BO)(f,d,`${e}${"default"===t?"":(0,r.A)(t)}`,t)),!1===c?n:{[c]:n}}))}return function t(n){var r;const{sx:i,theme:l={}}=n||{};if(!i)return null;const c=null!=(r=l.unstable_sxConfig)?r:s.A;function u(n){let r=n;if("function"==typeof n)r=n(l);else if("object"!=typeof n)return n;if(!r)return null;const i=(0,a.EU)(l.breakpoints),s=Object.keys(i);let u=i;return Object.keys(r).forEach((n=>{const i="function"==typeof(s=r[n])?s(l):s;var s;if(null!=i)if("object"==typeof i)if(c[n])u=(0,o.A)(u,e(n,i,l,c));else{const e=(0,a.NI)({theme:l},i,(e=>({[n]:e})));!function(...e){const t=e.reduce(((e,t)=>e.concat(Object.keys(t))),[]),n=new Set(t);return e.every((e=>n.size===Object.keys(e).length))}(e,i)?u=(0,o.A)(u,e):u[n]=t({sx:i,theme:l})}else u=(0,o.A)(u,e(n,i,l,c))})),(0,a.vf)(s,u)}return Array.isArray(i)?i.map(u):u(i)}}const c=l();c.filterProps=["sx"];const u=c},2923:(e,t,n)=>{"use strict";t.A=void 0;var r=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var r={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=o?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}return r.default=e,n&&n.set(e,r),r}(n(1609)),o=n(7540);function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}t.A=function(e=null){const t=r.useContext(o.ThemeContext);return t&&(n=t,0!==Object.keys(n).length)?t:e;var n}},8659:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(5697);function o(e){if("string"!=typeof e)throw new Error((0,r.A)(7));return e.charAt(0).toUpperCase()+e.slice(1)}},8217:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r.A});var r=n(8659)},6379:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=function(e,t=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,n))}},4521:(e,t,n)=>{"use strict";n.d(t,{A:()=>a,Q:()=>o});var r=n(8168);function o(e){if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)}function i(e){if(!o(e))return e;const t={};return Object.keys(e).forEach((n=>{t[n]=i(e[n])})),t}function a(e,t,n={clone:!0}){const s=n.clone?(0,r.A)({},e):e;return o(e)&&o(t)&&Object.keys(t).forEach((r=>{"__proto__"!==r&&(o(t[r])&&r in e&&o(e[r])?s[r]=a(e[r],t[r],n):n.clone?s[r]=o(t[r])?i(t[r]):t[r]:s[r]=t[r])})),s}},819:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r.A,isPlainObject:()=>r.Q});var r=n(4521)},5697:(e,t,n)=>{"use strict";function r(e){let t="https://mui.com/production-error/?code="+e;for(let e=1;e<arguments.length;e+=1)t+="&args[]="+encodeURIComponent(arguments[e]);return"Minified MUI error #"+e+"; visit "+t+" for the full message."}n.d(t,{A:()=>r})},2108:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r.A});var r=n(5697)},1172:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l,getFunctionName:()=>i});var r=n(5492);const o=/^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/;function i(e){const t=`${e}`.match(o);return t&&t[1]||""}function a(e,t=""){return e.displayName||e.name||i(e)||t}function s(e,t,n){const r=a(t);return e.displayName||(""!==r?`${n}(${r})`:n)}function l(e){if(null!=e){if("string"==typeof e)return e;if("function"==typeof e)return a(e,"Component");if("object"==typeof e)switch(e.$$typeof){case r.ForwardRef:return s(e,e.render,"ForwardRef");case r.Memo:return s(e,e.type,"memo");default:return}}}},7064:(e,t)=>{"use strict";Symbol.for("react.element"),Symbol.for("react.portal"),Symbol.for("react.fragment"),Symbol.for("react.strict_mode"),Symbol.for("react.profiler"),Symbol.for("react.provider"),Symbol.for("react.context"),Symbol.for("react.server_context");var n=Symbol.for("react.forward_ref"),r=(Symbol.for("react.suspense"),Symbol.for("react.suspense_list"),Symbol.for("react.memo"));Symbol.for("react.lazy"),Symbol.for("react.offscreen");Symbol.for("react.module.reference"),t.ForwardRef=n,t.Memo=r},5492:(e,t,n)=>{"use strict";e.exports=n(7064)},4146:(e,t,n)=>{"use strict";var r=n(3404),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?a:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=a;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var o=f(n);o&&o!==h&&e(t,o,r)}var a=u(n);d&&(a=a.concat(d(n)));for(var s=l(t),m=l(n),v=0;v<a.length;++v){var g=a[v];if(!(i[g]||r&&r[g]||m&&m[g]||s&&s[g])){var y=p(n,g);try{c(t,g,y)}catch(e){}}}}return t}},3072:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,i=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,v=n?Symbol.for("react.lazy"):60116,g=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,b=n?Symbol.for("react.responder"):60118,x=n?Symbol.for("react.scope"):60119;function A(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case i:case s:case a:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case v:case m:case l:return e;default:return t}}case o:return t}}}function w(e){return A(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=p,t.Fragment=i,t.Lazy=v,t.Memo=m,t.Portal=o,t.Profiler=s,t.StrictMode=a,t.Suspense=f,t.isAsyncMode=function(e){return w(e)||A(e)===u},t.isConcurrentMode=w,t.isContextConsumer=function(e){return A(e)===c},t.isContextProvider=function(e){return A(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return A(e)===p},t.isFragment=function(e){return A(e)===i},t.isLazy=function(e){return A(e)===v},t.isMemo=function(e){return A(e)===m},t.isPortal=function(e){return A(e)===o},t.isProfiler=function(e){return A(e)===s},t.isStrictMode=function(e){return A(e)===a},t.isSuspense=function(e){return A(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===i||e===d||e===s||e===a||e===f||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===v||e.$$typeof===m||e.$$typeof===l||e.$$typeof===c||e.$$typeof===p||e.$$typeof===y||e.$$typeof===b||e.$$typeof===x||e.$$typeof===g)},t.typeOf=A},3404:(e,t,n)=>{"use strict";e.exports=n(3072)},4175:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};const o="object"===("undefined"==typeof window?"undefined":r(window))&&"object"===("undefined"==typeof document?"undefined":r(document))&&9===document.nodeType},3317:(e,t,n)=>{"use strict";n.d(t,{D_:()=>d,SN:()=>J,Sg:()=>f,VZ:()=>X,ih:()=>ge,rN:()=>ve,vt:()=>me});var r=n(8168),o=n(4175),i=n(2901),a=n(7387),s=n(9417),l=n(8587),c={}.constructor;function u(e){if(null==e||"object"!=typeof e)return e;if(Array.isArray(e))return e.map(u);if(e.constructor!==c)return e;var t={};for(var n in e)t[n]=u(e[n]);return t}function d(e,t,n){void 0===e&&(e="unnamed");var r=n.jss,o=u(t);return r.plugins.onCreateRule(e,o,n)||(e[0],null)}var p=function(e,t){for(var n="",r=0;r<e.length&&"!important"!==e[r];r++)n&&(n+=t),n+=e[r];return n},f=function(e){if(!Array.isArray(e))return e;var t="";if(Array.isArray(e[0]))for(var n=0;n<e.length&&"!important"!==e[n];n++)t&&(t+=", "),t+=p(e[n]," ");else t=p(e,", ");return"!important"===e[e.length-1]&&(t+=" !important"),t};function h(e){return e&&!1===e.format?{linebreak:"",space:""}:{linebreak:"\n",space:" "}}function m(e,t){for(var n="",r=0;r<t;r++)n+=" ";return n+e}function v(e,t,n){void 0===n&&(n={});var r="";if(!t)return r;var o=n.indent,i=void 0===o?0:o,a=t.fallbacks;!1===n.format&&(i=-1/0);var s=h(n),l=s.linebreak,c=s.space;if(e&&i++,a)if(Array.isArray(a))for(var u=0;u<a.length;u++){var d=a[u];for(var p in d){var v=d[p];null!=v&&(r&&(r+=l),r+=m(p+":"+c+f(v)+";",i))}}else for(var g in a){var y=a[g];null!=y&&(r&&(r+=l),r+=m(g+":"+c+f(y)+";",i))}for(var b in t){var x=t[b];null!=x&&"fallbacks"!==b&&(r&&(r+=l),r+=m(b+":"+c+f(x)+";",i))}return(r||n.allowEmpty)&&e?(r&&(r=""+l+r+l),m(""+e+c+"{"+r,--i)+m("}",i)):r}var g=/([[\].#*$><+~=|^:(),"'`\s])/g,y="undefined"!=typeof CSS&&CSS.escape,b=function(e){return y?y(e):e.replace(g,"\\$1")},x=function(){function e(e,t,n){this.type="style",this.isProcessed=!1;var r=n.sheet,o=n.Renderer;this.key=e,this.options=n,this.style=t,r?this.renderer=r.renderer:o&&(this.renderer=new o)}return e.prototype.prop=function(e,t,n){if(void 0===t)return this.style[e];var r=!!n&&n.force;if(!r&&this.style[e]===t)return this;var o=t;n&&!1===n.process||(o=this.options.jss.plugins.onChangeValue(t,e,this));var i=null==o||!1===o,a=e in this.style;if(i&&!a&&!r)return this;var s=i&&a;if(s?delete this.style[e]:this.style[e]=o,this.renderable&&this.renderer)return s?this.renderer.removeProperty(this.renderable,e):this.renderer.setProperty(this.renderable,e,o),this;var l=this.options.sheet;return l&&l.attached,this},e}(),A=function(e){function t(t,n,r){var o;o=e.call(this,t,n,r)||this;var i=r.selector,a=r.scoped,l=r.sheet,c=r.generateId;return i?o.selectorText=i:!1!==a&&(o.id=c((0,s.A)((0,s.A)(o)),l),o.selectorText="."+b(o.id)),o}(0,a.A)(t,e);var n=t.prototype;return n.applyTo=function(e){var t=this.renderer;if(t){var n=this.toJSON();for(var r in n)t.setProperty(e,r,n[r])}return this},n.toJSON=function(){var e={};for(var t in this.style){var n=this.style[t];"object"!=typeof n?e[t]=n:Array.isArray(n)&&(e[t]=f(n))}return e},n.toString=function(e){var t=this.options.sheet,n=t&&t.options.link?(0,r.A)({},e,{allowEmpty:!0}):e;return v(this.selectorText,this.style,n)},(0,i.A)(t,[{key:"selector",set:function(e){if(e!==this.selectorText){this.selectorText=e;var t=this.renderer,n=this.renderable;n&&t&&(t.setSelector(n,e)||t.replaceRule(n,this))}},get:function(){return this.selectorText}}]),t}(x),w={onCreateRule:function(e,t,n){return"@"===e[0]||n.parent&&"keyframes"===n.parent.type?null:new A(e,t,n)}},k={indent:1,children:!0},S=/@([\w-]+)/,C=function(){function e(e,t,n){this.type="conditional",this.isProcessed=!1,this.key=e;var o=e.match(S);for(var i in this.at=o?o[1]:"unknown",this.query=n.name||"@"+this.at,this.options=n,this.rules=new X((0,r.A)({},n,{parent:this})),t)this.rules.add(i,t[i]);this.rules.process()}var t=e.prototype;return t.getRule=function(e){return this.rules.get(e)},t.indexOf=function(e){return this.rules.indexOf(e)},t.addRule=function(e,t,n){var r=this.rules.add(e,t,n);return r?(this.options.jss.plugins.onProcessRule(r),r):null},t.replaceRule=function(e,t,n){var r=this.rules.replace(e,t,n);return r&&this.options.jss.plugins.onProcessRule(r),r},t.toString=function(e){void 0===e&&(e=k);var t=h(e).linebreak;if(null==e.indent&&(e.indent=k.indent),null==e.children&&(e.children=k.children),!1===e.children)return this.query+" {}";var n=this.rules.toString(e);return n?this.query+" {"+t+n+t+"}":""},e}(),E=/@container|@media|@supports\s+/,O={onCreateRule:function(e,t,n){return E.test(e)?new C(e,t,n):null}},R={indent:1,children:!0},P=/@keyframes\s+([\w-]+)/,$=function(){function e(e,t,n){this.type="keyframes",this.at="@keyframes",this.isProcessed=!1;var o=e.match(P);o&&o[1]?this.name=o[1]:this.name="noname",this.key=this.type+"-"+this.name,this.options=n;var i=n.scoped,a=n.sheet,s=n.generateId;for(var l in this.id=!1===i?this.name:b(s(this,a)),this.rules=new X((0,r.A)({},n,{parent:this})),t)this.rules.add(l,t[l],(0,r.A)({},n,{parent:this}));this.rules.process()}return e.prototype.toString=function(e){void 0===e&&(e=R);var t=h(e).linebreak;if(null==e.indent&&(e.indent=R.indent),null==e.children&&(e.children=R.children),!1===e.children)return this.at+" "+this.id+" {}";var n=this.rules.toString(e);return n&&(n=""+t+n+t),this.at+" "+this.id+" {"+n+"}"},e}(),M=/@keyframes\s+/,T=/\$([\w-]+)/g,I=function(e,t){return"string"==typeof e?e.replace(T,(function(e,n){return n in t?t[n]:e})):e},N=function(e,t,n){var r=e[t],o=I(r,n);o!==r&&(e[t]=o)},j={onCreateRule:function(e,t,n){return"string"==typeof e&&M.test(e)?new $(e,t,n):null},onProcessStyle:function(e,t,n){return"style"===t.type&&n?("animation-name"in e&&N(e,"animation-name",n.keyframes),"animation"in e&&N(e,"animation",n.keyframes),e):e},onChangeValue:function(e,t,n){var r=n.options.sheet;if(!r)return e;switch(t){case"animation":case"animation-name":return I(e,r.keyframes);default:return e}}},L=function(e){function t(){return e.apply(this,arguments)||this}return(0,a.A)(t,e),t.prototype.toString=function(e){var t=this.options.sheet,n=t&&t.options.link?(0,r.A)({},e,{allowEmpty:!0}):e;return v(this.key,this.style,n)},t}(x),z={onCreateRule:function(e,t,n){return n.parent&&"keyframes"===n.parent.type?new L(e,t,n):null}},D=function(){function e(e,t,n){this.type="font-face",this.at="@font-face",this.isProcessed=!1,this.key=e,this.style=t,this.options=n}return e.prototype.toString=function(e){var t=h(e).linebreak;if(Array.isArray(this.style)){for(var n="",r=0;r<this.style.length;r++)n+=v(this.at,this.style[r]),this.style[r+1]&&(n+=t);return n}return v(this.at,this.style,e)},e}(),F=/@font-face/,_={onCreateRule:function(e,t,n){return F.test(e)?new D(e,t,n):null}},W=function(){function e(e,t,n){this.type="viewport",this.at="@viewport",this.isProcessed=!1,this.key=e,this.style=t,this.options=n}return e.prototype.toString=function(e){return v(this.key,this.style,e)},e}(),B={onCreateRule:function(e,t,n){return"@viewport"===e||"@-ms-viewport"===e?new W(e,t,n):null}},V=function(){function e(e,t,n){this.type="simple",this.isProcessed=!1,this.key=e,this.value=t,this.options=n}return e.prototype.toString=function(e){if(Array.isArray(this.value)){for(var t="",n=0;n<this.value.length;n++)t+=this.key+" "+this.value[n]+";",this.value[n+1]&&(t+="\n");return t}return this.key+" "+this.value+";"},e}(),H={"@charset":!0,"@import":!0,"@namespace":!0},q=[w,O,j,z,_,B,{onCreateRule:function(e,t,n){return e in H?new V(e,t,n):null}}],K={process:!0},U={force:!0,process:!0},X=function(){function e(e){this.map={},this.raw={},this.index=[],this.counter=0,this.options=e,this.classes=e.classes,this.keyframes=e.keyframes}var t=e.prototype;return t.add=function(e,t,n){var o=this.options,i=o.parent,a=o.sheet,s=o.jss,l=o.Renderer,c=o.generateId,u=o.scoped,p=(0,r.A)({classes:this.classes,parent:i,sheet:a,jss:s,Renderer:l,generateId:c,scoped:u,name:e,keyframes:this.keyframes,selector:void 0},n),f=e;e in this.raw&&(f=e+"-d"+this.counter++),this.raw[f]=t,f in this.classes&&(p.selector="."+b(this.classes[f]));var h=d(f,t,p);if(!h)return null;this.register(h);var m=void 0===p.index?this.index.length:p.index;return this.index.splice(m,0,h),h},t.replace=function(e,t,n){var o=this.get(e),i=this.index.indexOf(o);o&&this.remove(o);var a=n;return-1!==i&&(a=(0,r.A)({},n,{index:i})),this.add(e,t,a)},t.get=function(e){return this.map[e]},t.remove=function(e){this.unregister(e),delete this.raw[e.key],this.index.splice(this.index.indexOf(e),1)},t.indexOf=function(e){return this.index.indexOf(e)},t.process=function(){var e=this.options.jss.plugins;this.index.slice(0).forEach(e.onProcessRule,e)},t.register=function(e){this.map[e.key]=e,e instanceof A?(this.map[e.selector]=e,e.id&&(this.classes[e.key]=e.id)):e instanceof $&&this.keyframes&&(this.keyframes[e.name]=e.id)},t.unregister=function(e){delete this.map[e.key],e instanceof A?(delete this.map[e.selector],delete this.classes[e.key]):e instanceof $&&delete this.keyframes[e.name]},t.update=function(){var e,t,n;if("string"==typeof(arguments.length<=0?void 0:arguments[0])?(e=arguments.length<=0?void 0:arguments[0],t=arguments.length<=1?void 0:arguments[1],n=arguments.length<=2?void 0:arguments[2]):(t=arguments.length<=0?void 0:arguments[0],n=arguments.length<=1?void 0:arguments[1],e=null),e)this.updateOne(this.get(e),t,n);else for(var r=0;r<this.index.length;r++)this.updateOne(this.index[r],t,n)},t.updateOne=function(t,n,r){void 0===r&&(r=K);var o=this.options,i=o.jss.plugins,a=o.sheet;if(t.rules instanceof e)t.rules.update(n,r);else{var s=t.style;if(i.onUpdate(n,t,a,r),r.process&&s&&s!==t.style){for(var l in i.onProcessStyle(t.style,t,a),t.style){var c=t.style[l];c!==s[l]&&t.prop(l,c,U)}for(var u in s){var d=t.style[u],p=s[u];null==d&&d!==p&&t.prop(u,null,U)}}}},t.toString=function(e){for(var t="",n=this.options.sheet,r=!!n&&n.options.link,o=h(e).linebreak,i=0;i<this.index.length;i++){var a=this.index[i].toString(e);(a||r)&&(t&&(t+=o),t+=a)}return t},e}(),G=function(){function e(e,t){for(var n in this.attached=!1,this.deployed=!1,this.classes={},this.keyframes={},this.options=(0,r.A)({},t,{sheet:this,parent:this,classes:this.classes,keyframes:this.keyframes}),t.Renderer&&(this.renderer=new t.Renderer(this)),this.rules=new X(this.options),e)this.rules.add(n,e[n]);this.rules.process()}var t=e.prototype;return t.attach=function(){return this.attached||(this.renderer&&this.renderer.attach(),this.attached=!0,this.deployed||this.deploy()),this},t.detach=function(){return this.attached?(this.renderer&&this.renderer.detach(),this.attached=!1,this):this},t.addRule=function(e,t,n){var r=this.queue;this.attached&&!r&&(this.queue=[]);var o=this.rules.add(e,t,n);return o?(this.options.jss.plugins.onProcessRule(o),this.attached?this.deployed?(r?r.push(o):(this.insertRule(o),this.queue&&(this.queue.forEach(this.insertRule,this),this.queue=void 0)),o):o:(this.deployed=!1,o)):null},t.replaceRule=function(e,t,n){var r=this.rules.get(e);if(!r)return this.addRule(e,t,n);var o=this.rules.replace(e,t,n);return o&&this.options.jss.plugins.onProcessRule(o),this.attached?this.deployed?(this.renderer&&(o?r.renderable&&this.renderer.replaceRule(r.renderable,o):this.renderer.deleteRule(r)),o):o:(this.deployed=!1,o)},t.insertRule=function(e){this.renderer&&this.renderer.insertRule(e)},t.addRules=function(e,t){var n=[];for(var r in e){var o=this.addRule(r,e[r],t);o&&n.push(o)}return n},t.getRule=function(e){return this.rules.get(e)},t.deleteRule=function(e){var t="object"==typeof e?e:this.rules.get(e);return!(!t||this.attached&&!t.renderable)&&(this.rules.remove(t),!(this.attached&&t.renderable&&this.renderer)||this.renderer.deleteRule(t.renderable))},t.indexOf=function(e){return this.rules.indexOf(e)},t.deploy=function(){return this.renderer&&this.renderer.deploy(),this.deployed=!0,this},t.update=function(){var e;return(e=this.rules).update.apply(e,arguments),this},t.updateOne=function(e,t,n){return this.rules.updateOne(e,t,n),this},t.toString=function(e){return this.rules.toString(e)},e}(),Y=function(){function e(){this.plugins={internal:[],external:[]},this.registry={}}var t=e.prototype;return t.onCreateRule=function(e,t,n){for(var r=0;r<this.registry.onCreateRule.length;r++){var o=this.registry.onCreateRule[r](e,t,n);if(o)return o}return null},t.onProcessRule=function(e){if(!e.isProcessed){for(var t=e.options.sheet,n=0;n<this.registry.onProcessRule.length;n++)this.registry.onProcessRule[n](e,t);e.style&&this.onProcessStyle(e.style,e,t),e.isProcessed=!0}},t.onProcessStyle=function(e,t,n){for(var r=0;r<this.registry.onProcessStyle.length;r++)t.style=this.registry.onProcessStyle[r](t.style,t,n)},t.onProcessSheet=function(e){for(var t=0;t<this.registry.onProcessSheet.length;t++)this.registry.onProcessSheet[t](e)},t.onUpdate=function(e,t,n,r){for(var o=0;o<this.registry.onUpdate.length;o++)this.registry.onUpdate[o](e,t,n,r)},t.onChangeValue=function(e,t,n){for(var r=e,o=0;o<this.registry.onChangeValue.length;o++)r=this.registry.onChangeValue[o](r,t,n);return r},t.use=function(e,t){void 0===t&&(t={queue:"external"});var n=this.plugins[t.queue];-1===n.indexOf(e)&&(n.push(e),this.registry=[].concat(this.plugins.external,this.plugins.internal).reduce((function(e,t){for(var n in t)n in e&&e[n].push(t[n]);return e}),{onCreateRule:[],onProcessRule:[],onProcessStyle:[],onProcessSheet:[],onChangeValue:[],onUpdate:[]}))},e}(),J=function(){function e(){this.registry=[]}var t=e.prototype;return t.add=function(e){var t=this.registry,n=e.options.index;if(-1===t.indexOf(e))if(0===t.length||n>=this.index)t.push(e);else for(var r=0;r<t.length;r++)if(t[r].options.index>n)return void t.splice(r,0,e)},t.reset=function(){this.registry=[]},t.remove=function(e){var t=this.registry.indexOf(e);this.registry.splice(t,1)},t.toString=function(e){for(var t=void 0===e?{}:e,n=t.attached,r=(0,l.A)(t,["attached"]),o=h(r).linebreak,i="",a=0;a<this.registry.length;a++){var s=this.registry[a];null!=n&&s.attached!==n||(i&&(i+=o),i+=s.toString(r))}return i},(0,i.A)(e,[{key:"index",get:function(){return 0===this.registry.length?0:this.registry[this.registry.length-1].options.index}}]),e}(),Z=new J,Q="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window&&window.Math===Math?window:"undefined"!=typeof self&&self.Math===Math?self:Function("return this")(),ee="2f1acc6c3a606b082e5eef5e54414ffb";null==Q[ee]&&(Q[ee]=0);var te=Q[ee]++,ne=function(e){void 0===e&&(e={});var t=0;return function(n,r){t+=1;var o="",i="";return r&&(r.options.classNamePrefix&&(i=r.options.classNamePrefix),null!=r.options.jss.id&&(o=String(r.options.jss.id))),e.minify?""+(i||"c")+te+o+t:i+n.key+"-"+te+(o?"-"+o:"")+"-"+t}},re=function(e){var t;return function(){return t||(t=e()),t}},oe=function(e,t){try{return e.attributeStyleMap?e.attributeStyleMap.get(t):e.style.getPropertyValue(t)}catch(e){return""}},ie=function(e,t,n){try{var r=n;if(Array.isArray(n)&&(r=f(n)),e.attributeStyleMap)e.attributeStyleMap.set(t,r);else{var o=r?r.indexOf("!important"):-1,i=o>-1?r.substr(0,o-1):r;e.style.setProperty(t,i,o>-1?"important":"")}}catch(e){return!1}return!0},ae=function(e,t){try{e.attributeStyleMap?e.attributeStyleMap.delete(t):e.style.removeProperty(t)}catch(e){}},se=function(e,t){return e.selectorText=t,e.selectorText===t},le=re((function(){return document.querySelector("head")}));var ce=re((function(){var e=document.querySelector('meta[property="csp-nonce"]');return e?e.getAttribute("content"):null})),ue=function(e,t,n){try{"insertRule"in e?e.insertRule(t,n):"appendRule"in e&&e.appendRule(t)}catch(e){return!1}return e.cssRules[n]},de=function(e,t){var n=e.cssRules.length;return void 0===t||t>n?n:t},pe=function(){function e(e){this.getPropertyValue=oe,this.setProperty=ie,this.removeProperty=ae,this.setSelector=se,this.hasInsertedRules=!1,this.cssRules=[],e&&Z.add(e),this.sheet=e;var t,n=this.sheet?this.sheet.options:{},r=n.media,o=n.meta,i=n.element;this.element=i||((t=document.createElement("style")).textContent="\n",t),this.element.setAttribute("data-jss",""),r&&this.element.setAttribute("media",r),o&&this.element.setAttribute("data-meta",o);var a=ce();a&&this.element.setAttribute("nonce",a)}var t=e.prototype;return t.attach=function(){if(!this.element.parentNode&&this.sheet){!function(e,t){var n=t.insertionPoint,r=function(e){var t=Z.registry;if(t.length>0){var n=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r.attached&&r.options.index>t.index&&r.options.insertionPoint===t.insertionPoint)return r}return null}(t,e);if(n&&n.renderer)return{parent:n.renderer.element.parentNode,node:n.renderer.element};if(n=function(e,t){for(var n=e.length-1;n>=0;n--){var r=e[n];if(r.attached&&r.options.insertionPoint===t.insertionPoint)return r}return null}(t,e),n&&n.renderer)return{parent:n.renderer.element.parentNode,node:n.renderer.element.nextSibling}}var r=e.insertionPoint;if(r&&"string"==typeof r){var o=function(e){for(var t=le(),n=0;n<t.childNodes.length;n++){var r=t.childNodes[n];if(8===r.nodeType&&r.nodeValue.trim()===e)return r}return null}(r);if(o)return{parent:o.parentNode,node:o.nextSibling}}return!1}(t);if(!1!==r&&r.parent)r.parent.insertBefore(e,r.node);else if(n&&"number"==typeof n.nodeType){var o=n,i=o.parentNode;i&&i.insertBefore(e,o.nextSibling)}else le().appendChild(e)}(this.element,this.sheet.options);var e=Boolean(this.sheet&&this.sheet.deployed);this.hasInsertedRules&&e&&(this.hasInsertedRules=!1,this.deploy())}},t.detach=function(){if(this.sheet){var e=this.element.parentNode;e&&e.removeChild(this.element),this.sheet.options.link&&(this.cssRules=[],this.element.textContent="\n")}},t.deploy=function(){var e=this.sheet;e&&(e.options.link?this.insertRules(e.rules):this.element.textContent="\n"+e.toString()+"\n")},t.insertRules=function(e,t){for(var n=0;n<e.index.length;n++)this.insertRule(e.index[n],n,t)},t.insertRule=function(e,t,n){if(void 0===n&&(n=this.element.sheet),e.rules){var r=e,o=n;if("conditional"===e.type||"keyframes"===e.type){var i=de(n,t);if(!1===(o=ue(n,r.toString({children:!1}),i)))return!1;this.refCssRule(e,i,o)}return this.insertRules(r.rules,o),o}var a=e.toString();if(!a)return!1;var s=de(n,t),l=ue(n,a,s);return!1!==l&&(this.hasInsertedRules=!0,this.refCssRule(e,s,l),l)},t.refCssRule=function(e,t,n){e.renderable=n,e.options.parent instanceof G&&this.cssRules.splice(t,0,n)},t.deleteRule=function(e){var t=this.element.sheet,n=this.indexOf(e);return-1!==n&&(t.deleteRule(n),this.cssRules.splice(n,1),!0)},t.indexOf=function(e){return this.cssRules.indexOf(e)},t.replaceRule=function(e,t){var n=this.indexOf(e);return-1!==n&&(this.element.sheet.deleteRule(n),this.cssRules.splice(n,1),this.insertRule(t,n))},t.getRules=function(){return this.element.sheet.cssRules},e}(),fe=0,he=function(){function e(e){this.id=fe++,this.version="10.10.0",this.plugins=new Y,this.options={id:{minify:!1},createGenerateId:ne,Renderer:o.A?pe:null,plugins:[]},this.generateId=ne({minify:!1});for(var t=0;t<q.length;t++)this.plugins.use(q[t],{queue:"internal"});this.setup(e)}var t=e.prototype;return t.setup=function(e){return void 0===e&&(e={}),e.createGenerateId&&(this.options.createGenerateId=e.createGenerateId),e.id&&(this.options.id=(0,r.A)({},this.options.id,e.id)),(e.createGenerateId||e.id)&&(this.generateId=this.options.createGenerateId(this.options.id)),null!=e.insertionPoint&&(this.options.insertionPoint=e.insertionPoint),"Renderer"in e&&(this.options.Renderer=e.Renderer),e.plugins&&this.use.apply(this,e.plugins),this},t.createStyleSheet=function(e,t){void 0===t&&(t={});var n=t.index;"number"!=typeof n&&(n=0===Z.index?0:Z.index+1);var o=new G(e,(0,r.A)({},t,{jss:this,generateId:t.generateId||this.generateId,insertionPoint:this.options.insertionPoint,Renderer:this.options.Renderer,index:n}));return this.plugins.onProcessSheet(o),o},t.removeStyleSheet=function(e){return e.detach(),Z.remove(e),this},t.createRule=function(e,t,n){if(void 0===t&&(t={}),void 0===n&&(n={}),"object"==typeof e)return this.createRule(void 0,e,t);var o=(0,r.A)({},n,{name:e,jss:this,Renderer:this.options.Renderer});o.generateId||(o.generateId=this.generateId),o.classes||(o.classes={}),o.keyframes||(o.keyframes={});var i=d(e,t,o);return i&&this.plugins.onProcessRule(i),i},t.use=function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return n.forEach((function(t){e.plugins.use(t)})),this},e}(),me=function(e){return new he(e)},ve="object"==typeof CSS&&null!=CSS&&"number"in CSS;function ge(e){var t=null;for(var n in e){var r=e[n],o=typeof r;if("function"===o)t||(t={}),t[n]=r;else if("object"===o&&null!==r&&!Array.isArray(r)){var i=ge(r);i&&(t||(t={}),t[n]=i)}}return t}me()},2799:(e,t)=>{"use strict";var n=60103,r=60106,o=60107,i=60108,a=60114,s=60109,l=60110,c=60112,u=60113,d=60120,p=60115,f=60116,h=60121,m=60122,v=60117,g=60129,y=60131;if("function"==typeof Symbol&&Symbol.for){var b=Symbol.for;n=b("react.element"),r=b("react.portal"),o=b("react.fragment"),i=b("react.strict_mode"),a=b("react.profiler"),s=b("react.provider"),l=b("react.context"),c=b("react.forward_ref"),u=b("react.suspense"),d=b("react.suspense_list"),p=b("react.memo"),f=b("react.lazy"),h=b("react.block"),m=b("react.server.block"),v=b("react.fundamental"),g=b("react.debug_trace_mode"),y=b("react.legacy_hidden")}t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===a||e===g||e===i||e===u||e===d||e===y||"object"==typeof e&&null!==e&&(e.$$typeof===f||e.$$typeof===p||e.$$typeof===s||e.$$typeof===l||e.$$typeof===c||e.$$typeof===v||e.$$typeof===h||e[0]===m)},t.typeOf=function(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case o:case a:case i:case u:case d:return e;default:switch(e=e&&e.$$typeof){case l:case c:case f:case p:case s:return e;default:return t}}case r:return t}}}},4363:(e,t,n)=>{"use strict";e.exports=n(2799)},2618:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(8587),o=n(8168),i=n(9417),a=n(7387),s=n(1609),l=n.n(s),c=n(7241);function u(e,t){var n=Object.create(null);return e&&s.Children.map(e,(function(e){return e})).forEach((function(e){n[e.key]=function(e){return t&&(0,s.isValidElement)(e)?t(e):e}(e)})),n}function d(e,t,n){return null!=n[t]?n[t]:e.props[t]}function p(e,t,n){var r=u(e.children),o=function(e,t){function n(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var r,o=Object.create(null),i=[];for(var a in e)a in t?i.length&&(o[a]=i,i=[]):i.push(a);var s={};for(var l in t){if(o[l])for(r=0;r<o[l].length;r++){var c=o[l][r];s[o[l][r]]=n(c)}s[l]=n(l)}for(r=0;r<i.length;r++)s[i[r]]=n(i[r]);return s}(t,r);return Object.keys(o).forEach((function(i){var a=o[i];if((0,s.isValidElement)(a)){var l=i in t,c=i in r,u=t[i],p=(0,s.isValidElement)(u)&&!u.props.in;!c||l&&!p?c||!l||p?c&&l&&(0,s.isValidElement)(u)&&(o[i]=(0,s.cloneElement)(a,{onExited:n.bind(null,a),in:u.props.in,exit:d(a,"exit",e),enter:d(a,"enter",e)})):o[i]=(0,s.cloneElement)(a,{in:!1}):o[i]=(0,s.cloneElement)(a,{onExited:n.bind(null,a),in:!0,exit:d(a,"exit",e),enter:d(a,"enter",e)})}})),o}var f=Object.values||function(e){return Object.keys(e).map((function(t){return e[t]}))},h=function(e){function t(t,n){var r,o=(r=e.call(this,t,n)||this).handleExited.bind((0,i.A)(r));return r.state={contextValue:{isMounting:!0},handleExited:o,firstRender:!0},r}(0,a.A)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.mounted=!0,this.setState({contextValue:{isMounting:!1}})},n.componentWillUnmount=function(){this.mounted=!1},t.getDerivedStateFromProps=function(e,t){var n,r,o=t.children,i=t.handleExited;return{children:t.firstRender?(n=e,r=i,u(n.children,(function(e){return(0,s.cloneElement)(e,{onExited:r.bind(null,e),in:!0,appear:d(e,"appear",n),enter:d(e,"enter",n),exit:d(e,"exit",n)})}))):p(e,o,i),firstRender:!1}},n.handleExited=function(e,t){var n=u(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState((function(t){var n=(0,o.A)({},t.children);return delete n[e.key],{children:n}})))},n.render=function(){var e=this.props,t=e.component,n=e.childFactory,o=(0,r.A)(e,["component","childFactory"]),i=this.state.contextValue,a=f(this.state.children).map(n);return delete o.appear,delete o.enter,delete o.exit,null===t?l().createElement(c.A.Provider,{value:i},a):l().createElement(c.A.Provider,{value:i},l().createElement(t,o,a))},t}(l().Component);h.propTypes={},h.defaultProps={component:"div",childFactory:function(e){return e}};const m=h},7241:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(1609);const o=n.n(r)().createContext(null)},1020:(e,t,n)=>{"use strict";var r=n(1609),o=Symbol.for("react.element"),i=(Symbol.for("react.fragment"),Object.prototype.hasOwnProperty),a=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function l(e,t,n){var r,l={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!s.hasOwnProperty(r)&&(l[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===l[r]&&(l[r]=t[r]);return{$$typeof:o,type:e,key:c,ref:u,props:l,_owner:a.current}}t.jsx=l,t.jsxs=l},4848:(e,t,n)=>{"use strict";e.exports=n(1020)},4634:e=>{function t(){return e.exports=t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},e.exports.__esModule=!0,e.exports.default=e.exports,t.apply(this,arguments)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},4994:e=>{e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports},4893:e=>{e.exports=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o},e.exports.__esModule=!0,e.exports.default=e.exports},3145:(e,t,n)=>{"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{A:()=>r})},9417:(e,t,n)=>{"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{A:()=>r})},3029:(e,t,n)=>{"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{A:()=>r})},2901:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(816);function o(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,(0,r.A)(o.key),o)}}function i(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}},4467:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(816);function o(e,t,n){return(t=(0,r.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},8168:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{A:()=>r})},7387:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(3662);function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,r.A)(e,t)}},45:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(8587);function o(e,t){if(null==e)return{};var n,o,i=(0,r.A)(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}},8587:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{A:()=>r})},3662:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{A:()=>r})},296:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(7800);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,s=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return s}}(e,t)||(0,r.A)(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},5458:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(3145),o=n(7800);function i(e){return function(e){if(Array.isArray(e))return(0,r.A)(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||(0,o.A)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},816:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(2284);function o(e){var t=function(e,t){if("object"!=(0,r.A)(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,"string");if("object"!=(0,r.A)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==(0,r.A)(t)?t:t+""}},2284:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{A:()=>r})},7800:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(3145);function o(e,t){if(e){if("string"==typeof e)return(0,r.A)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.A)(e,t):void 0}}}}]);PK�������!�h<��<��(��settings/build/8.01179b5213247b02e257.jsnu�[��������(globalThis.webpackChunkreally_simple_ssl=globalThis.webpackChunkreally_simple_ssl||[]).push([[8],{6942:(e,t)=>{var o;!function(){"use strict";var n={}.hasOwnProperty;function r(){for(var e="",t=0;t<arguments.length;t++){var o=arguments[t];o&&(e=i(e,l(o)))}return e}function l(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return r.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var t="";for(var o in e)n.call(e,o)&&e[o]&&(t=i(t,o));return t}function i(e,t){return t?e?e+" "+t:e+t:e}e.exports?(r.default=r,e.exports=r):void 0===(o=function(){return r}.apply(t,[]))||(e.exports=o)}()},5361:(e,t,o)=>{"use strict";o.d(t,{BN:()=>u,UE:()=>c,UU:()=>s,cY:()=>a,rD:()=>l});var n=o(7193);function r(e,t,o){let{reference:r,floating:l}=e;const i=(0,n.TV)(t),c=(0,n.Dz)(t),s=(0,n.sq)(c),a=(0,n.C0)(t),u="y"===i,d=r.x+r.width/2-l.width/2,f=r.y+r.height/2-l.height/2,p=r[s]/2-l[s]/2;let m;switch(a){case"top":m={x:d,y:r.y-l.height};break;case"bottom":m={x:d,y:r.y+r.height};break;case"right":m={x:r.x+r.width,y:f};break;case"left":m={x:r.x-l.width,y:f};break;default:m={x:r.x,y:r.y}}switch((0,n.Sg)(t)){case"start":m[c]-=p*(o&&u?-1:1);break;case"end":m[c]+=p*(o&&u?-1:1)}return m}const l=async(e,t,o)=>{const{placement:n="bottom",strategy:l="absolute",middleware:i=[],platform:c}=o,s=i.filter(Boolean),a=await(null==c.isRTL?void 0:c.isRTL(t));let u=await c.getElementRects({reference:e,floating:t,strategy:l}),{x:d,y:f}=r(u,n,a),p=n,m={},y=0;for(let o=0;o<s.length;o++){const{name:i,fn:v}=s[o],{x:h,y:w,data:g,reset:b}=await v({x:d,y:f,initialPlacement:n,placement:p,strategy:l,middlewareData:m,rects:u,platform:c,elements:{reference:e,floating:t}});d=null!=h?h:d,f=null!=w?w:f,m={...m,[i]:{...m[i],...g}},b&&y<=50&&(y++,"object"==typeof b&&(b.placement&&(p=b.placement),b.rects&&(u=!0===b.rects?await c.getElementRects({reference:e,floating:t,strategy:l}):b.rects),({x:d,y:f}=r(u,p,a))),o=-1)}return{x:d,y:f,placement:p,strategy:l,middlewareData:m}};async function i(e,t){var o;void 0===t&&(t={});const{x:r,y:l,platform:i,rects:c,elements:s,strategy:a}=e,{boundary:u="clippingAncestors",rootBoundary:d="viewport",elementContext:f="floating",altBoundary:p=!1,padding:m=0}=(0,n._3)(t,e),y=(0,n.nI)(m),v=s[p?"floating"===f?"reference":"floating":f],h=(0,n.B1)(await i.getClippingRect({element:null==(o=await(null==i.isElement?void 0:i.isElement(v)))||o?v:v.contextElement||await(null==i.getDocumentElement?void 0:i.getDocumentElement(s.floating)),boundary:u,rootBoundary:d,strategy:a})),w="floating"===f?{...c.floating,x:r,y:l}:c.reference,g=await(null==i.getOffsetParent?void 0:i.getOffsetParent(s.floating)),b=await(null==i.isElement?void 0:i.isElement(g))&&await(null==i.getScale?void 0:i.getScale(g))||{x:1,y:1},x=(0,n.B1)(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:w,offsetParent:g,strategy:a}):w);return{top:(h.top-x.top+y.top)/b.y,bottom:(x.bottom-h.bottom+y.bottom)/b.y,left:(h.left-x.left+y.left)/b.x,right:(x.right-h.right+y.right)/b.x}}const c=e=>({name:"arrow",options:e,async fn(t){const{x:o,y:r,placement:l,rects:i,platform:c,elements:s,middlewareData:a}=t,{element:u,padding:d=0}=(0,n._3)(e,t)||{};if(null==u)return{};const f=(0,n.nI)(d),p={x:o,y:r},m=(0,n.Dz)(l),y=(0,n.sq)(m),v=await c.getDimensions(u),h="y"===m,w=h?"top":"left",g=h?"bottom":"right",b=h?"clientHeight":"clientWidth",x=i.reference[y]+i.reference[m]-p[m]-i.floating[y],_=p[m]-i.reference[m],E=await(null==c.getOffsetParent?void 0:c.getOffsetParent(u));let S=E?E[b]:0;S&&await(null==c.isElement?void 0:c.isElement(E))||(S=s.floating[b]||i.floating[y]);const T=x/2-_/2,A=S/2-v[y]/2-1,R=(0,n.jk)(f[w],A),k=(0,n.jk)(f[g],A),L=R,O=S-v[y]-k,C=S/2-v[y]/2+T,D=(0,n.qE)(L,C,O),N=!a.arrow&&null!=(0,n.Sg)(l)&&C!==D&&i.reference[y]/2-(C<L?R:k)-v[y]/2<0,I=N?C<L?C-L:C-O:0;return{[m]:p[m]+I,data:{[m]:D,centerOffset:C-D-I,...N&&{alignmentOffset:I}},reset:N}}}),s=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var o,r;const{placement:l,middlewareData:c,rects:s,initialPlacement:a,platform:u,elements:d}=t,{mainAxis:f=!0,crossAxis:p=!0,fallbackPlacements:m,fallbackStrategy:y="bestFit",fallbackAxisSideDirection:v="none",flipAlignment:h=!0,...w}=(0,n._3)(e,t);if(null!=(o=c.arrow)&&o.alignmentOffset)return{};const g=(0,n.C0)(l),b=(0,n.C0)(a)===a,x=await(null==u.isRTL?void 0:u.isRTL(d.floating)),_=m||(b||!h?[(0,n.bV)(a)]:(0,n.WJ)(a));m||"none"===v||_.push(...(0,n.lP)(a,h,v,x));const E=[a,..._],S=await i(t,w),T=[];let A=(null==(r=c.flip)?void 0:r.overflows)||[];if(f&&T.push(S[g]),p){const e=(0,n.w7)(l,s,x);T.push(S[e[0]],S[e[1]])}if(A=[...A,{placement:l,overflows:T}],!T.every((e=>e<=0))){var R,k;const e=((null==(R=c.flip)?void 0:R.index)||0)+1,t=E[e];if(t)return{data:{index:e,overflows:A},reset:{placement:t}};let o=null==(k=A.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:k.placement;if(!o)switch(y){case"bestFit":{var L;const e=null==(L=A.map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:L[0];e&&(o=e);break}case"initialPlacement":o=a}if(l!==o)return{reset:{placement:o}}}return{}}}},a=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var o,r;const{x:l,y:i,placement:c,middlewareData:s}=t,a=await async function(e,t){const{placement:o,platform:r,elements:l}=e,i=await(null==r.isRTL?void 0:r.isRTL(l.floating)),c=(0,n.C0)(o),s=(0,n.Sg)(o),a="y"===(0,n.TV)(o),u=["left","top"].includes(c)?-1:1,d=i&&a?-1:1,f=(0,n._3)(t,e);let{mainAxis:p,crossAxis:m,alignmentAxis:y}="number"==typeof f?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...f};return s&&"number"==typeof y&&(m="end"===s?-1*y:y),a?{x:m*d,y:p*u}:{x:p*u,y:m*d}}(t,e);return c===(null==(o=s.offset)?void 0:o.placement)&&null!=(r=s.arrow)&&r.alignmentOffset?{}:{x:l+a.x,y:i+a.y,data:{...a,placement:c}}}}},u=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:o,y:r,placement:l}=t,{mainAxis:c=!0,crossAxis:s=!1,limiter:a={fn:e=>{let{x:t,y:o}=e;return{x:t,y:o}}},...u}=(0,n._3)(e,t),d={x:o,y:r},f=await i(t,u),p=(0,n.TV)((0,n.C0)(l)),m=(0,n.PG)(p);let y=d[m],v=d[p];if(c){const e="y"===m?"bottom":"right",t=y+f["y"===m?"top":"left"],o=y-f[e];y=(0,n.qE)(t,y,o)}if(s){const e="y"===p?"bottom":"right",t=v+f["y"===p?"top":"left"],o=v-f[e];v=(0,n.qE)(t,v,o)}const h=a.fn({...t,[m]:y,[p]:v});return{...h,data:{x:h.x-o,y:h.y-r}}}}}},2425:(e,t,o)=>{"use strict";o.d(t,{UE:()=>W,ll:()=>$,rD:()=>H,UU:()=>z,BN:()=>P});var n=o(7193),r=o(5361);function l(e){return s(e)?(e.nodeName||"").toLowerCase():"#document"}function i(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function c(e){var t;return null==(t=(s(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function s(e){return e instanceof Node||e instanceof i(e).Node}function a(e){return e instanceof Element||e instanceof i(e).Element}function u(e){return e instanceof HTMLElement||e instanceof i(e).HTMLElement}function d(e){return"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof i(e).ShadowRoot)}function f(e){const{overflow:t,overflowX:o,overflowY:n,display:r}=h(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+o)&&!["inline","contents"].includes(r)}function p(e){return["table","td","th"].includes(l(e))}function m(e){const t=y(),o=h(e);return"none"!==o.transform||"none"!==o.perspective||!!o.containerType&&"normal"!==o.containerType||!t&&!!o.backdropFilter&&"none"!==o.backdropFilter||!t&&!!o.filter&&"none"!==o.filter||["transform","perspective","filter"].some((e=>(o.willChange||"").includes(e)))||["paint","layout","strict","content"].some((e=>(o.contain||"").includes(e)))}function y(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function v(e){return["html","body","#document"].includes(l(e))}function h(e){return i(e).getComputedStyle(e)}function w(e){return a(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function g(e){if("html"===l(e))return e;const t=e.assignedSlot||e.parentNode||d(e)&&e.host||c(e);return d(t)?t.host:t}function b(e){const t=g(e);return v(t)?e.ownerDocument?e.ownerDocument.body:e.body:u(t)&&f(t)?t:b(t)}function x(e,t,o){var n;void 0===t&&(t=[]),void 0===o&&(o=!0);const r=b(e),l=r===(null==(n=e.ownerDocument)?void 0:n.body),c=i(r);return l?t.concat(c,c.visualViewport||[],f(r)?r:[],c.frameElement&&o?x(c.frameElement):[]):t.concat(r,x(r,[],o))}function _(e){const t=h(e);let o=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const l=u(e),i=l?e.offsetWidth:o,c=l?e.offsetHeight:r,s=(0,n.LI)(o)!==i||(0,n.LI)(r)!==c;return s&&(o=i,r=c),{width:o,height:r,$:s}}function E(e){return a(e)?e:e.contextElement}function S(e){const t=E(e);if(!u(t))return(0,n.Jx)(1);const o=t.getBoundingClientRect(),{width:r,height:l,$:i}=_(t);let c=(i?(0,n.LI)(o.width):o.width)/r,s=(i?(0,n.LI)(o.height):o.height)/l;return c&&Number.isFinite(c)||(c=1),s&&Number.isFinite(s)||(s=1),{x:c,y:s}}const T=(0,n.Jx)(0);function A(e){const t=i(e);return y()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:T}function R(e,t,o,r){void 0===t&&(t=!1),void 0===o&&(o=!1);const l=e.getBoundingClientRect(),c=E(e);let s=(0,n.Jx)(1);t&&(r?a(r)&&(s=S(r)):s=S(e));const u=function(e,t,o){return void 0===t&&(t=!1),!(!o||t&&o!==i(e))&&t}(c,o,r)?A(c):(0,n.Jx)(0);let d=(l.left+u.x)/s.x,f=(l.top+u.y)/s.y,p=l.width/s.x,m=l.height/s.y;if(c){const e=i(c),t=r&&a(r)?i(r):r;let o=e,n=o.frameElement;for(;n&&r&&t!==o;){const e=S(n),t=n.getBoundingClientRect(),r=h(n),l=t.left+(n.clientLeft+parseFloat(r.paddingLeft))*e.x,c=t.top+(n.clientTop+parseFloat(r.paddingTop))*e.y;d*=e.x,f*=e.y,p*=e.x,m*=e.y,d+=l,f+=c,o=i(n),n=o.frameElement}}return(0,n.B1)({width:p,height:m,x:d,y:f})}const k=[":popover-open",":modal"];function L(e){return k.some((t=>{try{return e.matches(t)}catch(e){return!1}}))}function O(e){return R(c(e)).left+w(e).scrollLeft}function C(e,t,o){let r;if("viewport"===t)r=function(e,t){const o=i(e),n=c(e),r=o.visualViewport;let l=n.clientWidth,s=n.clientHeight,a=0,u=0;if(r){l=r.width,s=r.height;const e=y();(!e||e&&"fixed"===t)&&(a=r.offsetLeft,u=r.offsetTop)}return{width:l,height:s,x:a,y:u}}(e,o);else if("document"===t)r=function(e){const t=c(e),o=w(e),r=e.ownerDocument.body,l=(0,n.T9)(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),i=(0,n.T9)(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let s=-o.scrollLeft+O(e);const a=-o.scrollTop;return"rtl"===h(r).direction&&(s+=(0,n.T9)(t.clientWidth,r.clientWidth)-l),{width:l,height:i,x:s,y:a}}(c(e));else if(a(t))r=function(e,t){const o=R(e,!0,"fixed"===t),r=o.top+e.clientTop,l=o.left+e.clientLeft,i=u(e)?S(e):(0,n.Jx)(1);return{width:e.clientWidth*i.x,height:e.clientHeight*i.y,x:l*i.x,y:r*i.y}}(t,o);else{const o=A(e);r={...t,x:t.x-o.x,y:t.y-o.y}}return(0,n.B1)(r)}function D(e,t){const o=g(e);return!(o===t||!a(o)||v(o))&&("fixed"===h(o).position||D(o,t))}function N(e,t,o){const r=u(t),i=c(t),s="fixed"===o,a=R(e,!0,s,t);let d={scrollLeft:0,scrollTop:0};const p=(0,n.Jx)(0);if(r||!r&&!s)if(("body"!==l(t)||f(i))&&(d=w(t)),r){const e=R(t,!0,s,t);p.x=e.x+t.clientLeft,p.y=e.y+t.clientTop}else i&&(p.x=O(i));return{x:a.left+d.scrollLeft-p.x,y:a.top+d.scrollTop-p.y,width:a.width,height:a.height}}function I(e,t){return u(e)&&"fixed"!==h(e).position?t?t(e):e.offsetParent:null}function B(e,t){const o=i(e);if(!u(e)||L(e))return o;let n=I(e,t);for(;n&&p(n)&&"static"===h(n).position;)n=I(n,t);return n&&("html"===l(n)||"body"===l(n)&&"static"===h(n).position&&!m(n))?o:n||function(e){let t=g(e);for(;u(t)&&!v(t);){if(m(t))return t;t=g(t)}return null}(e)||o}const j={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:o,offsetParent:r,strategy:i}=e;const s="fixed"===i,a=c(r),d=!!t&&L(t.floating);if(r===a||d&&s)return o;let p={scrollLeft:0,scrollTop:0},m=(0,n.Jx)(1);const y=(0,n.Jx)(0),v=u(r);if((v||!v&&!s)&&(("body"!==l(r)||f(a))&&(p=w(r)),u(r))){const e=R(r);m=S(r),y.x=e.x+r.clientLeft,y.y=e.y+r.clientTop}return{width:o.width*m.x,height:o.height*m.y,x:o.x*m.x-p.scrollLeft*m.x+y.x,y:o.y*m.y-p.scrollTop*m.y+y.y}},getDocumentElement:c,getClippingRect:function(e){let{element:t,boundary:o,rootBoundary:r,strategy:i}=e;const c=[..."clippingAncestors"===o?function(e,t){const o=t.get(e);if(o)return o;let n=x(e,[],!1).filter((e=>a(e)&&"body"!==l(e))),r=null;const i="fixed"===h(e).position;let c=i?g(e):e;for(;a(c)&&!v(c);){const t=h(c),o=m(c);o||"fixed"!==t.position||(r=null),(i?!o&&!r:!o&&"static"===t.position&&r&&["absolute","fixed"].includes(r.position)||f(c)&&!o&&D(e,c))?n=n.filter((e=>e!==c)):r=t,c=g(c)}return t.set(e,n),n}(t,this._c):[].concat(o),r],s=c[0],u=c.reduce(((e,o)=>{const r=C(t,o,i);return e.top=(0,n.T9)(r.top,e.top),e.right=(0,n.jk)(r.right,e.right),e.bottom=(0,n.jk)(r.bottom,e.bottom),e.left=(0,n.T9)(r.left,e.left),e}),C(t,s,i));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}},getOffsetParent:B,getElementRects:async function(e){const t=this.getOffsetParent||B,o=this.getDimensions;return{reference:N(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,...await o(e.floating)}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:o}=_(e);return{width:t,height:o}},getScale:S,isElement:a,isRTL:function(e){return"rtl"===h(e).direction}};function $(e,t,o,r){void 0===r&&(r={});const{ancestorScroll:l=!0,ancestorResize:i=!0,elementResize:s="function"==typeof ResizeObserver,layoutShift:a="function"==typeof IntersectionObserver,animationFrame:u=!1}=r,d=E(e),f=l||i?[...d?x(d):[],...x(t)]:[];f.forEach((e=>{l&&e.addEventListener("scroll",o,{passive:!0}),i&&e.addEventListener("resize",o)}));const p=d&&a?function(e,t){let o,r=null;const l=c(e);function i(){var e;clearTimeout(o),null==(e=r)||e.disconnect(),r=null}return function c(s,a){void 0===s&&(s=!1),void 0===a&&(a=1),i();const{left:u,top:d,width:f,height:p}=e.getBoundingClientRect();if(s||t(),!f||!p)return;const m={rootMargin:-(0,n.RI)(d)+"px "+-(0,n.RI)(l.clientWidth-(u+f))+"px "+-(0,n.RI)(l.clientHeight-(d+p))+"px "+-(0,n.RI)(u)+"px",threshold:(0,n.T9)(0,(0,n.jk)(1,a))||1};let y=!0;function v(e){const t=e[0].intersectionRatio;if(t!==a){if(!y)return c();t?c(!1,t):o=setTimeout((()=>{c(!1,1e-7)}),100)}y=!1}try{r=new IntersectionObserver(v,{...m,root:l.ownerDocument})}catch(e){r=new IntersectionObserver(v,m)}r.observe(e)}(!0),i}(d,o):null;let m,y=-1,v=null;s&&(v=new ResizeObserver((e=>{let[n]=e;n&&n.target===d&&v&&(v.unobserve(t),cancelAnimationFrame(y),y=requestAnimationFrame((()=>{var e;null==(e=v)||e.observe(t)}))),o()})),d&&!u&&v.observe(d),v.observe(t));let h=u?R(e):null;return u&&function t(){const n=R(e);!h||n.x===h.x&&n.y===h.y&&n.width===h.width&&n.height===h.height||o(),h=n,m=requestAnimationFrame(t)}(),o(),()=>{var e;f.forEach((e=>{l&&e.removeEventListener("scroll",o),i&&e.removeEventListener("resize",o)})),null==p||p(),null==(e=v)||e.disconnect(),v=null,u&&cancelAnimationFrame(m)}}const P=r.BN,z=r.UU,W=r.UE,H=(e,t,o)=>{const n=new Map,l={platform:j,...o},i={...l.platform,_c:n};return(0,r.rD)(e,t,{...l,platform:i})}},7193:(e,t,o)=>{"use strict";o.d(t,{B1:()=>S,C0:()=>f,Dz:()=>h,Jx:()=>c,LI:()=>l,PG:()=>m,RI:()=>i,Sg:()=>p,T9:()=>r,TV:()=>v,WJ:()=>g,_3:()=>d,bV:()=>_,jk:()=>n,lP:()=>x,nI:()=>E,qE:()=>u,sq:()=>y,w7:()=>w});const n=Math.min,r=Math.max,l=Math.round,i=Math.floor,c=e=>({x:e,y:e}),s={left:"right",right:"left",bottom:"top",top:"bottom"},a={start:"end",end:"start"};function u(e,t,o){return r(e,n(t,o))}function d(e,t){return"function"==typeof e?e(t):e}function f(e){return e.split("-")[0]}function p(e){return e.split("-")[1]}function m(e){return"x"===e?"y":"x"}function y(e){return"y"===e?"height":"width"}function v(e){return["top","bottom"].includes(f(e))?"y":"x"}function h(e){return m(v(e))}function w(e,t,o){void 0===o&&(o=!1);const n=p(e),r=h(e),l=y(r);let i="x"===r?n===(o?"end":"start")?"right":"left":"start"===n?"bottom":"top";return t.reference[l]>t.floating[l]&&(i=_(i)),[i,_(i)]}function g(e){const t=_(e);return[b(e),t,b(t)]}function b(e){return e.replace(/start|end/g,(e=>a[e]))}function x(e,t,o,n){const r=p(e);let l=function(e,t,o){const n=["left","right"],r=["right","left"],l=["top","bottom"],i=["bottom","top"];switch(e){case"top":case"bottom":return o?t?r:n:t?n:r;case"left":case"right":return t?l:i;default:return[]}}(f(e),"start"===o,n);return r&&(l=l.map((e=>e+"-"+r)),t&&(l=l.concat(l.map(b)))),l}function _(e){return e.replace(/left|right|bottom|top/g,(e=>s[e]))}function E(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}function S(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}},7008:(e,t,o)=>{"use strict";o.d(t,{m_:()=>S});var n=o(1609),r=o(5361),l=o(2425),i=o(6942);const c={core:!1,base:!1};function s({css:e,id:t="react-tooltip-base-styles",type:o="base",ref:n}){var r,l;if(!e||"undefined"==typeof document||c[o])return;if("core"===o&&"undefined"!=typeof process&&(null===(r=null===process||void 0===process?void 0:process.env)||void 0===r?void 0:r.REACT_TOOLTIP_DISABLE_CORE_STYLES))return;if("base"!==o&&"undefined"!=typeof process&&(null===(l=null===process||void 0===process?void 0:process.env)||void 0===l?void 0:l.REACT_TOOLTIP_DISABLE_BASE_STYLES))return;"core"===o&&(t="react-tooltip-core-styles"),n||(n={});const{insertAt:i}=n;if(document.getElementById(t))return void console.warn(`[react-tooltip] Element with id '${t}' already exists. Call \`removeStyle()\` first`);const s=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.id=t,a.type="text/css","top"===i&&s.firstChild?s.insertBefore(a,s.firstChild):s.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e)),c[o]=!0}const a=async({elementReference:e=null,tooltipReference:t=null,tooltipArrowReference:o=null,place:n="top",offset:i=10,strategy:c="absolute",middlewares:s=[(0,r.cY)(Number(i)),(0,l.UU)({fallbackAxisSideDirection:"start"}),(0,l.BN)({padding:5})],border:a})=>{if(!e)return{tooltipStyles:{},tooltipArrowStyles:{},place:n};if(null===t)return{tooltipStyles:{},tooltipArrowStyles:{},place:n};const u=s;return o?(u.push((0,l.UE)({element:o,padding:5})),(0,l.rD)(e,t,{placement:n,strategy:c,middleware:u}).then((({x:e,y:t,placement:o,middlewareData:n})=>{var r,l;const i={left:`${e}px`,top:`${t}px`,border:a},{x:c,y:s}=null!==(r=n.arrow)&&void 0!==r?r:{x:0,y:0},u=null!==(l={top:"bottom",right:"left",bottom:"top",left:"right"}[o.split("-")[0]])&&void 0!==l?l:"bottom",d=a&&{borderBottom:a,borderRight:a};let f=0;if(a){const e=`${a}`.match(/(\d+)px/);f=(null==e?void 0:e[1])?Number(e[1]):1}return{tooltipStyles:i,tooltipArrowStyles:{left:null!=c?`${c}px`:"",top:null!=s?`${s}px`:"",right:"",bottom:"",...d,[u]:`-${4+f}px`},place:o}}))):(0,l.rD)(e,t,{placement:"bottom",strategy:c,middleware:u}).then((({x:e,y:t,placement:o})=>({tooltipStyles:{left:`${e}px`,top:`${t}px`},tooltipArrowStyles:{},place:o})))},u=(e,t)=>!("CSS"in window&&"supports"in window.CSS)||window.CSS.supports(e,t),d=(e,t,o)=>{let n=null;const r=function(...r){const l=()=>{n=null,o||e.apply(this,r)};o&&!n&&(e.apply(this,r),n=setTimeout(l,t)),o||(n&&clearTimeout(n),n=setTimeout(l,t))};return r.cancel=()=>{n&&(clearTimeout(n),n=null)},r},f=e=>null!==e&&!Array.isArray(e)&&"object"==typeof e,p=(e,t)=>{if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every(((e,o)=>p(e,t[o])));if(Array.isArray(e)!==Array.isArray(t))return!1;if(!f(e)||!f(t))return e===t;const o=Object.keys(e),n=Object.keys(t);return o.length===n.length&&o.every((o=>p(e[o],t[o])))},m=e=>{if(!(e instanceof HTMLElement||e instanceof SVGElement))return!1;const t=getComputedStyle(e);return["overflow","overflow-x","overflow-y"].some((e=>{const o=t.getPropertyValue(e);return"auto"===o||"scroll"===o}))},y=e=>{if(!e)return null;let t=e.parentElement;for(;t;){if(m(t))return t;t=t.parentElement}return document.scrollingElement||document.documentElement},v="undefined"!=typeof window?n.useLayoutEffect:n.useEffect,h={anchorRefs:new Set,activeAnchor:{current:null},attach:()=>{},detach:()=>{},setActiveAnchor:()=>{}},w=(0,n.createContext)({getTooltipData:()=>h});function g(e="DEFAULT_TOOLTIP_ID"){return(0,n.useContext)(w).getTooltipData(e)}var b={tooltip:"core-styles-module_tooltip__3vRRp",fixed:"core-styles-module_fixed__pcSol",arrow:"core-styles-module_arrow__cvMwQ",noArrow:"core-styles-module_noArrow__xock6",clickable:"core-styles-module_clickable__ZuTTB",show:"core-styles-module_show__Nt9eE",closing:"core-styles-module_closing__sGnxF"},x={tooltip:"styles-module_tooltip__mnnfp",arrow:"styles-module_arrow__K0L3T",dark:"styles-module_dark__xNqje",light:"styles-module_light__Z6W-X",success:"styles-module_success__A2AKt",warning:"styles-module_warning__SCK0X",error:"styles-module_error__JvumD",info:"styles-module_info__BWdHW"};const _=({forwardRef:e,id:t,className:o,classNameArrow:r,variant:c="dark",anchorId:s,anchorSelect:u,place:f="top",offset:m=10,events:h=["hover"],openOnClick:w=!1,positionStrategy:_="absolute",middlewares:E,wrapper:S,delayShow:T=0,delayHide:A=0,float:R=!1,hidden:k=!1,noArrow:L=!1,clickable:O=!1,closeOnEsc:C=!1,closeOnScroll:D=!1,closeOnResize:N=!1,openEvents:I,closeEvents:B,globalCloseEvents:j,imperativeModeOnly:$,style:P,position:z,afterShow:W,afterHide:H,content:q,contentWrapperRef:V,isOpen:F,defaultIsOpen:M=!1,setIsOpen:U,activeAnchor:J,setActiveAnchor:K,border:X,opacity:Y,arrowColor:G,role:Z="tooltip"})=>{var Q;const ee=(0,n.useRef)(null),te=(0,n.useRef)(null),oe=(0,n.useRef)(null),ne=(0,n.useRef)(null),re=(0,n.useRef)(null),[le,ie]=(0,n.useState)({tooltipStyles:{},tooltipArrowStyles:{},place:f}),[ce,se]=(0,n.useState)(!1),[ae,ue]=(0,n.useState)(!1),[de,fe]=(0,n.useState)(null),pe=(0,n.useRef)(!1),me=(0,n.useRef)(null),{anchorRefs:ye,setActiveAnchor:ve}=g(t),he=(0,n.useRef)(!1),[we,ge]=(0,n.useState)([]),be=(0,n.useRef)(!1),xe=w||h.includes("click"),_e=xe||(null==I?void 0:I.click)||(null==I?void 0:I.dblclick)||(null==I?void 0:I.mousedown),Ee=I?{...I}:{mouseenter:!0,focus:!0,click:!1,dblclick:!1,mousedown:!1};!I&&xe&&Object.assign(Ee,{mouseenter:!1,focus:!1,click:!0});const Se=B?{...B}:{mouseleave:!0,blur:!0,click:!1,dblclick:!1,mouseup:!1};!B&&xe&&Object.assign(Se,{mouseleave:!1,blur:!1});const Te=j?{...j}:{escape:C||!1,scroll:D||!1,resize:N||!1,clickOutsideAnchor:_e||!1};$&&(Object.assign(Ee,{mouseenter:!1,focus:!1,click:!1,dblclick:!1,mousedown:!1}),Object.assign(Se,{mouseleave:!1,blur:!1,click:!1,dblclick:!1,mouseup:!1}),Object.assign(Te,{escape:!1,scroll:!1,resize:!1,clickOutsideAnchor:!1})),v((()=>(be.current=!0,()=>{be.current=!1})),[]);const Ae=e=>{be.current&&(e&&ue(!0),setTimeout((()=>{be.current&&(null==U||U(e),void 0===F&&se(e))}),10))};(0,n.useEffect)((()=>{if(void 0===F)return()=>null;F&&ue(!0);const e=setTimeout((()=>{se(F)}),10);return()=>{clearTimeout(e)}}),[F]),(0,n.useEffect)((()=>{if(ce!==pe.current)if(re.current&&clearTimeout(re.current),pe.current=ce,ce)null==W||W();else{const e=(e=>{const t=getComputedStyle(document.body).getPropertyValue("--rt-transition-show-delay").match(/^([\d.]+)(ms|s)$/);if(!t)return 0;const[,o,n]=t;return Number(o)*("ms"===n?1:1e3)})();re.current=setTimeout((()=>{ue(!1),fe(null),null==H||H()}),e+25)}}),[ce]);const Re=e=>{ie((t=>p(t,e)?t:e))},ke=(e=T)=>{oe.current&&clearTimeout(oe.current),ae?Ae(!0):oe.current=setTimeout((()=>{Ae(!0)}),e)},Le=(e=A)=>{ne.current&&clearTimeout(ne.current),ne.current=setTimeout((()=>{he.current||Ae(!1)}),e)},Oe=e=>{var t;if(!e)return;const o=null!==(t=e.currentTarget)&&void 0!==t?t:e.target;if(!(null==o?void 0:o.isConnected))return K(null),void ve({current:null});T?ke():Ae(!0),K(o),ve({current:o}),ne.current&&clearTimeout(ne.current)},Ce=()=>{O?Le(A||100):A?Le():Ae(!1),oe.current&&clearTimeout(oe.current)},De=({x:e,y:t})=>{var o;const n={getBoundingClientRect:()=>({x:e,y:t,width:0,height:0,top:t,left:e,right:e,bottom:t})};a({place:null!==(o=null==de?void 0:de.place)&&void 0!==o?o:f,offset:m,elementReference:n,tooltipReference:ee.current,tooltipArrowReference:te.current,strategy:_,middlewares:E,border:X}).then((e=>{Re(e)}))},Ne=e=>{if(!e)return;const t=e,o={x:t.clientX,y:t.clientY};De(o),me.current=o},Ie=e=>{var t;if(!ce)return;const o=e.target;o.isConnected&&((null===(t=ee.current)||void 0===t?void 0:t.contains(o))||[document.querySelector(`[id='${s}']`),...we].some((e=>null==e?void 0:e.contains(o)))||(Ae(!1),oe.current&&clearTimeout(oe.current)))},Be=d(Oe,50,!0),je=d(Ce,50,!0),$e=e=>{je.cancel(),Be(e)},Pe=()=>{Be.cancel(),je()},ze=(0,n.useCallback)((()=>{var e,t;const o=null!==(e=null==de?void 0:de.position)&&void 0!==e?e:z;o?De(o):R?me.current&&De(me.current):(null==J?void 0:J.isConnected)&&a({place:null!==(t=null==de?void 0:de.place)&&void 0!==t?t:f,offset:m,elementReference:J,tooltipReference:ee.current,tooltipArrowReference:te.current,strategy:_,middlewares:E,border:X}).then((e=>{be.current&&Re(e)}))}),[ce,J,q,P,f,null==de?void 0:de.place,m,_,z,null==de?void 0:de.position,R]);(0,n.useEffect)((()=>{var e,t;const o=new Set(ye);we.forEach((e=>{o.add({current:e})}));const n=document.querySelector(`[id='${s}']`);n&&o.add({current:n});const r=()=>{Ae(!1)},i=y(J),c=y(ee.current);Te.scroll&&(window.addEventListener("scroll",r),null==i||i.addEventListener("scroll",r),null==c||c.addEventListener("scroll",r));let a=null;Te.resize?window.addEventListener("resize",r):J&&ee.current&&(a=(0,l.ll)(J,ee.current,ze,{ancestorResize:!0,elementResize:!0,layoutShift:!0}));const u=e=>{"Escape"===e.key&&Ae(!1)};Te.escape&&window.addEventListener("keydown",u),Te.clickOutsideAnchor&&window.addEventListener("click",Ie);const d=[],f=e=>{ce&&(null==e?void 0:e.target)===J||Oe(e)},p=e=>{ce&&(null==e?void 0:e.target)===J&&Ce()},m=["mouseenter","mouseleave","focus","blur"],v=["click","dblclick","mousedown","mouseup"];Object.entries(Ee).forEach((([e,t])=>{t&&(m.includes(e)?d.push({event:e,listener:$e}):v.includes(e)&&d.push({event:e,listener:f}))})),Object.entries(Se).forEach((([e,t])=>{t&&(m.includes(e)?d.push({event:e,listener:Pe}):v.includes(e)&&d.push({event:e,listener:p}))})),R&&d.push({event:"pointermove",listener:Ne});const h=()=>{he.current=!0},w=()=>{he.current=!1,Ce()};return O&&!_e&&(null===(e=ee.current)||void 0===e||e.addEventListener("mouseenter",h),null===(t=ee.current)||void 0===t||t.addEventListener("mouseleave",w)),d.forEach((({event:e,listener:t})=>{o.forEach((o=>{var n;null===(n=o.current)||void 0===n||n.addEventListener(e,t)}))})),()=>{var e,t;Te.scroll&&(window.removeEventListener("scroll",r),null==i||i.removeEventListener("scroll",r),null==c||c.removeEventListener("scroll",r)),Te.resize?window.removeEventListener("resize",r):null==a||a(),Te.clickOutsideAnchor&&window.removeEventListener("click",Ie),Te.escape&&window.removeEventListener("keydown",u),O&&!_e&&(null===(e=ee.current)||void 0===e||e.removeEventListener("mouseenter",h),null===(t=ee.current)||void 0===t||t.removeEventListener("mouseleave",w)),d.forEach((({event:e,listener:t})=>{o.forEach((o=>{var n;null===(n=o.current)||void 0===n||n.removeEventListener(e,t)}))}))}}),[J,ze,ae,ye,we,I,B,j,xe,T,A]),(0,n.useEffect)((()=>{var e,o;let n=null!==(o=null!==(e=null==de?void 0:de.anchorSelect)&&void 0!==e?e:u)&&void 0!==o?o:"";!n&&t&&(n=`[data-tooltip-id='${t}']`);const r=new MutationObserver((e=>{const o=[],r=[];e.forEach((e=>{if("attributes"===e.type&&"data-tooltip-id"===e.attributeName&&(e.target.getAttribute("data-tooltip-id")===t?o.push(e.target):e.oldValue===t&&r.push(e.target)),"childList"===e.type){if(J){const t=[...e.removedNodes].filter((e=>1===e.nodeType));if(n)try{r.push(...t.filter((e=>e.matches(n)))),r.push(...t.flatMap((e=>[...e.querySelectorAll(n)])))}catch(e){}t.some((e=>{var t;return!!(null===(t=null==e?void 0:e.contains)||void 0===t?void 0:t.call(e,J))&&(ue(!1),Ae(!1),K(null),oe.current&&clearTimeout(oe.current),ne.current&&clearTimeout(ne.current),!0)}))}if(n)try{const t=[...e.addedNodes].filter((e=>1===e.nodeType));o.push(...t.filter((e=>e.matches(n)))),o.push(...t.flatMap((e=>[...e.querySelectorAll(n)])))}catch(e){}}})),(o.length||r.length)&&ge((e=>[...e.filter((e=>!r.includes(e))),...o]))}));return r.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-tooltip-id"],attributeOldValue:!0}),()=>{r.disconnect()}}),[t,u,null==de?void 0:de.anchorSelect,J]),(0,n.useEffect)((()=>{ze()}),[ze]),(0,n.useEffect)((()=>{if(!(null==V?void 0:V.current))return()=>null;const e=new ResizeObserver((()=>{setTimeout((()=>ze()))}));return e.observe(V.current),()=>{e.disconnect()}}),[q,null==V?void 0:V.current]),(0,n.useEffect)((()=>{var e;const t=document.querySelector(`[id='${s}']`),o=[...we,t];J&&o.includes(J)||K(null!==(e=we[0])&&void 0!==e?e:t)}),[s,we,J]),(0,n.useEffect)((()=>(M&&Ae(!0),()=>{oe.current&&clearTimeout(oe.current),ne.current&&clearTimeout(ne.current)})),[]),(0,n.useEffect)((()=>{var e;let o=null!==(e=null==de?void 0:de.anchorSelect)&&void 0!==e?e:u;if(!o&&t&&(o=`[data-tooltip-id='${t}']`),o)try{const e=Array.from(document.querySelectorAll(o));ge(e)}catch(e){ge([])}}),[t,u,null==de?void 0:de.anchorSelect]),(0,n.useEffect)((()=>{oe.current&&(clearTimeout(oe.current),ke(T))}),[T]);const We=null!==(Q=null==de?void 0:de.content)&&void 0!==Q?Q:q,He=ce&&Object.keys(le.tooltipStyles).length>0;return(0,n.useImperativeHandle)(e,(()=>({open:e=>{if(null==e?void 0:e.anchorSelect)try{document.querySelector(e.anchorSelect)}catch(t){return void console.warn(`[react-tooltip] "${e.anchorSelect}" is not a valid CSS selector`)}fe(null!=e?e:null),(null==e?void 0:e.delay)?ke(e.delay):Ae(!0)},close:e=>{(null==e?void 0:e.delay)?Le(e.delay):Ae(!1)},activeAnchor:J,place:le.place,isOpen:Boolean(ae&&!k&&We&&He)}))),ae&&!k&&We?n.createElement(S,{id:t,role:Z,className:i("react-tooltip",b.tooltip,x.tooltip,x[c],o,`react-tooltip__place-${le.place}`,b[He?"show":"closing"],He?"react-tooltip__show":"react-tooltip__closing","fixed"===_&&b.fixed,O&&b.clickable),onTransitionEnd:e=>{re.current&&clearTimeout(re.current),ce||"opacity"!==e.propertyName||(ue(!1),fe(null),null==H||H())},style:{...P,...le.tooltipStyles,opacity:void 0!==Y&&He?Y:void 0},ref:ee},We,n.createElement(S,{className:i("react-tooltip-arrow",b.arrow,x.arrow,r,L&&b.noArrow),style:{...le.tooltipArrowStyles,background:G?`linear-gradient(to right bottom, transparent 50%, ${G} 50%)`:void 0},ref:te})):null},E=({content:e})=>n.createElement("span",{dangerouslySetInnerHTML:{__html:e}}),S=n.forwardRef((({id:e,anchorId:t,anchorSelect:o,content:r,html:l,render:c,className:s,classNameArrow:a,variant:d="dark",place:f="top",offset:p=10,wrapper:m="div",children:y=null,events:v=["hover"],openOnClick:h=!1,positionStrategy:w="absolute",middlewares:b,delayShow:x=0,delayHide:S=0,float:T=!1,hidden:A=!1,noArrow:R=!1,clickable:k=!1,closeOnEsc:L=!1,closeOnScroll:O=!1,closeOnResize:C=!1,openEvents:D,closeEvents:N,globalCloseEvents:I,imperativeModeOnly:B=!1,style:j,position:$,isOpen:P,defaultIsOpen:z=!1,disableStyleInjection:W=!1,border:H,opacity:q,arrowColor:V,setIsOpen:F,afterShow:M,afterHide:U,role:J="tooltip"},K)=>{const[X,Y]=(0,n.useState)(r),[G,Z]=(0,n.useState)(l),[Q,ee]=(0,n.useState)(f),[te,oe]=(0,n.useState)(d),[ne,re]=(0,n.useState)(p),[le,ie]=(0,n.useState)(x),[ce,se]=(0,n.useState)(S),[ae,ue]=(0,n.useState)(T),[de,fe]=(0,n.useState)(A),[pe,me]=(0,n.useState)(m),[ye,ve]=(0,n.useState)(v),[he,we]=(0,n.useState)(w),[ge,be]=(0,n.useState)(null),[xe,_e]=(0,n.useState)(null),Ee=(0,n.useRef)(W),{anchorRefs:Se,activeAnchor:Te}=g(e),Ae=e=>null==e?void 0:e.getAttributeNames().reduce(((t,o)=>{var n;return o.startsWith("data-tooltip-")&&(t[o.replace(/^data-tooltip-/,"")]=null!==(n=null==e?void 0:e.getAttribute(o))&&void 0!==n?n:null),t}),{}),Re=e=>{const t={place:e=>{var t;ee(null!==(t=e)&&void 0!==t?t:f)},content:e=>{Y(null!=e?e:r)},html:e=>{Z(null!=e?e:l)},variant:e=>{var t;oe(null!==(t=e)&&void 0!==t?t:d)},offset:e=>{re(null===e?p:Number(e))},wrapper:e=>{var t;me(null!==(t=e)&&void 0!==t?t:m)},events:e=>{const t=null==e?void 0:e.split(" ");ve(null!=t?t:v)},"position-strategy":e=>{var t;we(null!==(t=e)&&void 0!==t?t:w)},"delay-show":e=>{ie(null===e?x:Number(e))},"delay-hide":e=>{se(null===e?S:Number(e))},float:e=>{ue(null===e?T:"true"===e)},hidden:e=>{fe(null===e?A:"true"===e)},"class-name":e=>{be(e)}};Object.values(t).forEach((e=>e(null))),Object.entries(e).forEach((([e,o])=>{var n;null===(n=t[e])||void 0===n||n.call(t,o)}))};(0,n.useEffect)((()=>{Y(r)}),[r]),(0,n.useEffect)((()=>{Z(l)}),[l]),(0,n.useEffect)((()=>{ee(f)}),[f]),(0,n.useEffect)((()=>{oe(d)}),[d]),(0,n.useEffect)((()=>{re(p)}),[p]),(0,n.useEffect)((()=>{ie(x)}),[x]),(0,n.useEffect)((()=>{se(S)}),[S]),(0,n.useEffect)((()=>{ue(T)}),[T]),(0,n.useEffect)((()=>{fe(A)}),[A]),(0,n.useEffect)((()=>{we(w)}),[w]),(0,n.useEffect)((()=>{Ee.current!==W&&console.warn("[react-tooltip] Do not change `disableStyleInjection` dynamically.")}),[W]),(0,n.useEffect)((()=>{"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent("react-tooltip-inject-styles",{detail:{disableCore:"core"===W,disableBase:W}}))}),[]),(0,n.useEffect)((()=>{var n;const r=new Set(Se);let l=o;if(!l&&e&&(l=`[data-tooltip-id='${e}']`),l)try{document.querySelectorAll(l).forEach((e=>{r.add({current:e})}))}catch(n){console.warn(`[react-tooltip] "${l}" is not a valid CSS selector`)}const i=document.querySelector(`[id='${t}']`);if(i&&r.add({current:i}),!r.size)return()=>null;const c=null!==(n=null!=xe?xe:i)&&void 0!==n?n:Te.current,s=new MutationObserver((e=>{e.forEach((e=>{var t;if(!c||"attributes"!==e.type||!(null===(t=e.attributeName)||void 0===t?void 0:t.startsWith("data-tooltip-")))return;const o=Ae(c);Re(o)}))})),a={attributes:!0,childList:!1,subtree:!1};if(c){const e=Ae(c);Re(e),s.observe(c,a)}return()=>{s.disconnect()}}),[Se,Te,xe,t,o]),(0,n.useEffect)((()=>{(null==j?void 0:j.border)&&console.warn("[react-tooltip] Do not set `style.border`. Use `border` prop instead."),H&&!u("border",`${H}`)&&console.warn(`[react-tooltip] "${H}" is not a valid \`border\`.`),(null==j?void 0:j.opacity)&&console.warn("[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead."),q&&!u("opacity",`${q}`)&&console.warn(`[react-tooltip] "${q}" is not a valid \`opacity\`.`)}),[]);let ke=y;const Le=(0,n.useRef)(null);if(c){const e=c({content:(null==xe?void 0:xe.getAttribute("data-tooltip-content"))||X||null,activeAnchor:xe});ke=e?n.createElement("div",{ref:Le,className:"react-tooltip-content-wrapper"},e):null}else X&&(ke=X);G&&(ke=n.createElement(E,{content:G}));const Oe={forwardRef:K,id:e,anchorId:t,anchorSelect:o,className:i(s,ge),classNameArrow:a,content:ke,contentWrapperRef:Le,place:Q,variant:te,offset:ne,wrapper:pe,events:ye,openOnClick:h,positionStrategy:he,middlewares:b,delayShow:le,delayHide:ce,float:ae,hidden:de,noArrow:R,clickable:k,closeOnEsc:L,closeOnScroll:O,closeOnResize:C,openEvents:D,closeEvents:N,globalCloseEvents:I,imperativeModeOnly:B,style:j,position:$,isOpen:P,defaultIsOpen:z,border:H,opacity:q,arrowColor:V,setIsOpen:F,afterShow:M,afterHide:U,activeAnchor:xe,setActiveAnchor:e=>_e(e),role:J};return n.createElement(_,{...Oe})}));"undefined"!=typeof window&&window.addEventListener("react-tooltip-inject-styles",(e=>{e.detail.disableCore||s({css:":root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9;--rt-transition-show-delay:0.15s;--rt-transition-closing-delay:0.15s}.core-styles-module_tooltip__3vRRp{position:absolute;top:0;left:0;pointer-events:none;opacity:0;will-change:opacity}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{position:absolute;background:inherit}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);transition:opacity var(--rt-transition-show-delay)ease-out}.core-styles-module_closing__sGnxF{opacity:0;transition:opacity var(--rt-transition-closing-delay)ease-in}",type:"core"}),e.detail.disableBase||s({css:"\n.styles-module_tooltip__mnnfp{padding:8px 16px;border-radius:3px;font-size:90%;width:max-content}.styles-module_arrow__K0L3T{width:8px;height:8px}[class*='react-tooltip__place-top']>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*='react-tooltip__place-right']>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*='react-tooltip__place-bottom']>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*='react-tooltip__place-left']>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}",type:"base"})}))}}]);PK�������!�$��$����settings/build/814.cssnu�[��������.rsssl input.MuiInput-underline:before,.rsssl-modal-body input.MuiInput-underline:before{display:none}.rsssl .MuiAutocomplete-root .MuiInputLabel-outlined[data-shrink=false],.rsssl-modal-body .MuiAutocomplete-root .MuiInputLabel-outlined[data-shrink=false]{transform:translate(14px,16px) scale(1)}.rsssl .MuiAutocomplete-root .MuiFormLabel-root,.rsssl-modal-body .MuiAutocomplete-root .MuiFormLabel-root{font-family:inherit}.rsssl .MuiAutocomplete-root .MuiOutlinedInput-root,.rsssl-modal-body .MuiAutocomplete-root .MuiOutlinedInput-root{padding:0}.rsssl input.MuiAutocomplete-input[type=text],.rsssl-modal-body input.MuiAutocomplete-input[type=text]{border:0;padding-left:12px}.rsssl input.MuiAutocomplete-input[type=text]:focus,.rsssl-modal-body input.MuiAutocomplete-input[type=text]:focus{box-shadow:none;outline:none}.rsssl .MuiInputBase-root,.rsssl-modal-body .MuiInputBase-root{font-family:inherit}.rsssl .MuiInput-root input.MuiInputBase-input,.rsssl-modal-body .MuiInput-root input.MuiInputBase-input{padding-left:10px}.rsssl .MuiPaper-root,.rsssl .MuiPopper-root,.rsssl-modal-body .MuiPaper-root,.rsssl-modal-body .MuiPopper-root{max-height:40vh}.rsssl .MuiPaper-root div,.rsssl .MuiPopper-root div,.rsssl-modal-body .MuiPaper-root div,.rsssl-modal-body .MuiPopper-root div{font-family:inherit!important}.rsssl .MuiPaper-root ul,.rsssl .MuiPopper-root ul,.rsssl-modal-body .MuiPaper-root ul,.rsssl-modal-body .MuiPopper-root ul{max-height:none} .rsssl-modal-premium-container{background-color:var(--rsp-dark-blue);color:#fff;margin-right:22px;padding:0 5px} .rsssl-le-activate_ssl .rsssl-modal-checkbox-container,.rsssl-modal-body .rsssl-modal-checkbox-container{cursor:pointer;display:block;font-size:12px;margin-bottom:5px;margin-right:35px;overflow:unset!important;padding-left:10px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container:hover input~.rsssl-checkmark,.rsssl-modal-body .rsssl-modal-checkbox-container:hover input~.rsssl-checkmark{background-color:var(--rsp-grey-400);border:1px solid var(--rsp-grey-400);border-radius:3px}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container input:checked~.rsssl-checkmark,.rsssl-modal-body .rsssl-modal-checkbox-container input:checked~.rsssl-checkmark{background-color:var(--rsp-dark-blue);border:1px solid var(--rsp-dark-blue)}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container input:disabled~.rsssl-checkmark,.rsssl-modal-body .rsssl-modal-checkbox-container input:disabled~.rsssl-checkmark{background-color:var(--rsp-grey-400);border:1px solid var(--rsp-grey-400)}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container input:checked~.rsssl-checkmark:after,.rsssl-modal-body .rsssl-modal-checkbox-container input:checked~.rsssl-checkmark:after{display:block}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container .rsssl-checkmark:after,.rsssl-modal-body .rsssl-modal-checkbox-container .rsssl-checkmark:after{border:solid #fff;border-width:0 2px 2px 0;height:7px;left:6px;top:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);width:5px}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container input,.rsssl-modal-body .rsssl-modal-checkbox-container input{cursor:pointer;height:0;opacity:0;position:absolute;width:0}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container .rsssl-checkmark,.rsssl-modal-body .rsssl-modal-checkbox-container .rsssl-checkmark{aspect-ratio:1;background-color:var(--rsp-grey-300);border:1px solid var(--rsp-grey-400);height:var(--rsp-fs-600);left:0;position:absolute;top:0}.rsssl-le-activate_ssl .rsssl-modal-checkbox-container .rsssl-checkmark:after,.rsssl-modal-body .rsssl-modal-checkbox-container .rsssl-checkmark:after{content:"";display:none;position:absolute} .rsssl-letsencrypt .rsssl-le-activate_ssl .rsssl-override-detection-toggle,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body .rsssl-override-detection-toggle{margin-bottom:-15px}.rsssl-letsencrypt .rsssl-le-activate_ssl input[type=email],.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body input[type=email]{border:2px solid;border-color:var(--rsp-grey-300);height:50px;margin-bottom:var(--rsp-spacing-m);width:100%}.rsssl-letsencrypt .rsssl-le-activate_ssl .rsssl-select label,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body .rsssl-select label{display:none}.rsssl-letsencrypt .rsssl-le-activate_ssl .rsssl-select .components-select-control__input,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body .rsssl-select .components-select-control__input{color:var(--rsp-grey-500);height:45px;padding:8px 20px}.rsssl-letsencrypt .rsssl-le-activate_ssl .rsssl-activate_ssl ul,.rsssl-letsencrypt .rsssl-le-activate_ssl .rsssl-plugins ul,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body .rsssl-activate_ssl ul,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body .rsssl-plugins ul{-moz-column-count:1;column-count:1}.rsssl-letsencrypt .rsssl-le-activate_ssl ul li,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body ul li{align-items:flex-start;display:flex;margin-bottom:var(--rsp-spacing-xxs)}.rsssl-letsencrypt .rsssl-le-activate_ssl ul li.rsssl-is-plugin,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body ul li.rsssl-is-plugin{background-color:var(--rsp-grey-100);border:none;margin:10px 0;padding:5px 0;position:relative}.rsssl-letsencrypt .rsssl-le-activate_ssl ul li .rsssl-icon,.rsssl-modal.rsssl-onboarding-modal .rsssl-modal-body ul li .rsssl-icon{margin-right:7px} :root{--rsp-spacing-xxs:5px;--rsp-spacing-xs:10px;--rsp-spacing-s:15px;--rsp-spacing-m:20px;--rsp-spacing-l:25px;--rsp-spacing-xl:30px;--rsp-grid-margin:var(--rsp-spacing-s);--rsp-grid-gap:var(--rsp-spacing-m);--rsp-border-radius:12px;--rsp-border-radius-s:8px;--rsp-border-radius-xs:3px;--rsp-border:1px solid var(--rsp-border-color);--rsp-box-shadow:rgba(0,0,0,.1) 0px 4px 6px -1px,rgba(0,0,0,.06) 0px 2px 4px -1px;--rsp-box-shadow-dark:rgba(0,0,0,.2) 0px 4px 6px -1px,rgba(0,0,0,.12) 1px 0px 4px 1px;--rsp-border-color:#dfdfdf;--rsp-black:#333;--rsp-white:#fff;--rsp-yellow:#fbc43e;--rsp-blue:#009fff;--rsp-dark-yellow:#e6a800;--rsp-dark-blue:#1e73be;--rsp-green:#2e8a37;--rsp-red:#d7263d;--rsp-dark-red:#9b0212;--rsp-pink:#e35899;--rsp-wp-blue:#007cba;--rsp-yellow-faded:#fdf4df;--rsp-blue-faded:#ecf8fe;--rsp-dark-blue-faded:#ebf2f9;--rsp-green-faded:#ecf4ed;--rsp-red-faded:#fbebed;--rsp-pink-faded:#fceff5;--rsp-wp-blue-faded:#c6e0ef;--rsp-background-block-color:var(--rsp-white);--rsp-background-color:#f0f0f1;--rsp-input-background-color:#fff;--rsp-input-text-color:var(--rsp-text-color);--rsp-input-border-color:var(--rsp-grey-400);--rsp-text-color:rgba(26,26,26,.9);--rsp-text-color-invert:hsla(0,0%,100%,.9);--rsp-text-color-white:hsla(0,0%,100%,.9);--rsp-text-color-light:rgba(69,69,82,.9);--rsp-text-color-hover:var(--rsp-green);--rsp-grey-100:#fafafa;--rsp-grey-200:#f7f7f7;--rsp-grey-300:#ededed;--rsp-grey-400:#c6c6c6;--rsp-grey-500:#737373;--rsp-grey-600:#696969;--rsp-color-success:var(--rsp-green);--rsp-color-error:var(--rsp-red);--rsp-color-warning:var(--rsp-yellow);--rsp-color-open:var(--rsp-yellow);--rsp-color-disabled:var(--rsp-grey-300);--rsp-fs-100:0.6875rem;--rsp-fs-200:0.75rem;--rsp-fs-300:0.8125rem;--rsp-fs-400:0.875rem;--rsp-fs-500:1rem;--rsp-fs-600:1.125rem;--rsp-fs-700:1.25rem;--rsp-fs-800:1.5rem;--rsp-fs-850:2.8rem;--rsp-fs-900:3.5rem}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.rsssl-modal{border-radius:var(--rsp-border-radius) var(--rsp-border-radius);border-top:1px solid var(--rsp-grey-300);box-shadow:var(--rsp-box-shadow);margin:auto;max-height:calc(100% - 120px);padding:var(--rsp-spacing-m) var(--rsp-spacing-l);width:700px}@media(max-width:768px){.rsssl-modal{width:100%}}.rsssl-modal .components-modal__content{margin-top:45px;min-height:250px;padding:0}.rsssl-modal .components-modal__content>div:nth-child(2){display:flex;flex-direction:column;height:100%}.rsssl-modal .rsssl-modal-body{flex-grow:1;padding:12px 8px 80px}@media(max-width:768px){.rsssl-modal .rsssl-modal-body{padding:12px 8px 180px}}.rsssl-modal .rsssl-modal-body p{margin-top:0}.rsssl-modal .rsssl-modal-body ul{-moz-column-count:2;column-count:2;-moz-column-gap:20px;column-gap:20px;margin-bottom:0}.rsssl-modal .rsssl-modal-body ul li{display:flex;padding-bottom:5px}.rsssl-modal .rsssl-modal-body ul li .rsssl-icon{margin-right:10px;margin-top:2px}.rsssl-modal .rsssl-modal-footer{align-items:center;background-color:var(--rsp-grey-200);border-top:1px solid var(--rsp-grey-400);bottom:0;display:flex;justify-content:space-between;left:0;padding:20px 32px;position:absolute;right:0}.rsssl-modal .rsssl-modal-footer img{width:150px}@media(max-width:768px){.rsssl-modal .rsssl-modal-footer .rsssl-modal-footer-image{display:none}.rsssl-modal .rsssl-modal-footer .rsssl-modal-footer-buttons{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%}.rsssl-modal .rsssl-modal-footer .rsssl-modal-footer-buttons button{margin:0;width:100%}}.rsssl-modal .rsssl-modal-footer button+a,.rsssl-modal .rsssl-modal-footer button+button{margin-left:10px}.rsssl-modal .rsssl-modal-footer button:not(.is-primary){background-color:transparent;border:1px solid var(--wp-admin-theme-color,#3858e9);color:var(--wp-admin-theme-color,#3858e9)}.rsssl-modal .rsssl-modal-footer button.rsssl-modal-warning{background-color:transparent;border:1px solid var(--rsp-red);color:var(--rsp-red)} PK�������!�+~��~��*��settings/build/439.98a0ea7305ad7622c383.jsnu�[��������"use strict";(globalThis.webpackChunkreally_simple_ssl=globalThis.webpackChunkreally_simple_ssl||[]).push([[439],{1439:(e,l,t)=>{t.r(l),t.d(l,{default:()=>o});var c=t(1609),a=t(7723),s=t(207),r=t(4937),n=t(5319),i=t(6087);const o=e=>{const{handleModal:l,modalData:t,setModalData:o,showModal:h,setIgnoredItemId:m,setFixedItemId:d,item:g}=(0,n.A)(),[w,C]=(0,i.useState)(!1),v=()=>{l(!1,null,null)},f=(e,c)=>{let a=t.action;C(!0),s.YA(a,"refresh",t).then((e=>{let a={...t};a.description=e.msg,a.subtitle="",o(a),C(!1),e.success&&("ignore"===c&&!1!==g?m(g.id):d(g.id),l(!1,null))}))};if(!h)return(0,c.createElement)(c.Fragment,null);let p=w?"disabled":"",u=t.description;return Array.isArray(u)||(u=[u]),(0,c.createElement)("div",null,(0,c.createElement)("div",{className:"rsssl-modal-backdrop",onClick:e=>v()}," "),(0,c.createElement)("div",{className:"rsssl-modal",id:"{id}"},(0,c.createElement)("div",{className:"rsssl-modal-header"},(0,c.createElement)("h2",{className:"modal-title"},t.title),(0,c.createElement)("button",{type:"button",className:"rsssl-modal-close","data-dismiss":"modal","aria-label":"Close",onClick:e=>v()},(0,c.createElement)(r.default,{name:"times"}))),(0,c.createElement)("div",{className:"rsssl-modal-content"},t.subtitle&&(0,c.createElement)("div",{className:"rsssl-modal-subtitle"},t.subtitle),Array.isArray(u)&&u.map(((e,l)=>(0,c.createElement)("div",{key:"modalDescription-"+l,className:"rsssl-modal-description"},e)))),(0,c.createElement)("div",{className:"rsssl-modal-footer"},t.edit&&(0,c.createElement)("a",{href:t.edit,target:"_blank",rel:"noopener noreferrer",className:"button button-secondary"},(0,a.__)("Edit","really-simple-ssl")),t.help&&(0,c.createElement)("a",{href:t.help,target:"_blank",rel:"noopener noreferrer",className:"button rsssl-button-help"},(0,a.__)("Help","really-simple-ssl")),!t.ignored&&"ignore_url"===t.action&&(0,c.createElement)("button",{disabled:p,className:"button button-primary",onClick:e=>f(0,"ignore")},(0,a.__)("Ignore","really-simple-ssl")),"ignore_url"!==t.action&&(0,c.createElement)("button",{disabled:p,className:"button button-primary",onClick:e=>f(0,"fix")},(0,a.__)("Fix","really-simple-ssl")))))}},4937:(e,l,t)=>{t.r(l),t.d(l,{default:()=>r});var c=t(1609),a=t(7008);const s=React.forwardRef((function(e,l){const{name:t,color:a,size:s}=e,r=t||"bullet",n=a||"black",i=s||15,o={black:"var(--rsp-black)",green:"var(--rsp-green)",yellow:"var(--rsp-yellow)",orange:"var(--rsp-yellow)","red-faded":"var(--rsp-red-faded)",red:"var(--rsp-red)",grey:"var(--rsp-grey-400)","red-warning":"var(--rsp-red-faded)"};let h="";return"bullet"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z"}))),"circle"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"}))),"check"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"}))),"warning"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"}))),"error"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"}))),"times"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"}))),"circle-check"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM371.8 211.8C382.7 200.9 382.7 183.1 371.8 172.2C360.9 161.3 343.1 161.3 332.2 172.2L224 280.4L179.8 236.2C168.9 225.3 151.1 225.3 140.2 236.2C129.3 247.1 129.3 264.9 140.2 275.8L204.2 339.8C215.1 350.7 232.9 350.7 243.8 339.8L371.8 211.8z"}))),"circle-times"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM175 208.1L222.1 255.1L175 303C165.7 312.4 165.7 327.6 175 336.1C184.4 346.3 199.6 346.3 208.1 336.1L255.1 289.9L303 336.1C312.4 346.3 327.6 346.3 336.1 336.1C346.3 327.6 346.3 312.4 336.1 303L289.9 255.1L336.1 208.1C346.3 199.6 346.3 184.4 336.1 175C327.6 165.7 312.4 165.7 303 175L255.1 222.1L208.1 175C199.6 165.7 184.4 165.7 175 175C165.7 184.4 165.7 199.6 175 208.1V208.1z"}))),"chevron-up"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M416 352c-8.188 0-16.38-3.125-22.62-9.375L224 173.3l-169.4 169.4c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25C432.4 348.9 424.2 352 416 352z"}))),"chevron-down"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"}))),"chevron-right"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z"}))),"chevron-left"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M224 480c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l169.4 169.4c12.5 12.5 12.5 32.75 0 45.25C240.4 476.9 232.2 480 224 480z"}))),"plus"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"}))),"minus"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"}))),"sync"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M483.515 28.485L431.35 80.65C386.475 35.767 324.485 8 256 8 123.228 8 14.824 112.338 8.31 243.493 7.971 250.311 13.475 256 20.301 256h28.045c6.353 0 11.613-4.952 11.973-11.294C66.161 141.649 151.453 60 256 60c54.163 0 103.157 21.923 138.614 57.386l-54.128 54.129c-7.56 7.56-2.206 20.485 8.485 20.485H492c6.627 0 12-5.373 12-12V36.971c0-10.691-12.926-16.045-20.485-8.486zM491.699 256h-28.045c-6.353 0-11.613 4.952-11.973 11.294C445.839 370.351 360.547 452 256 452c-54.163 0-103.157-21.923-138.614-57.386l54.128-54.129c7.56-7.56 2.206-20.485-8.485-20.485H20c-6.627 0-12 5.373-12 12v143.029c0 10.691 12.926 16.045 20.485 8.485L80.65 431.35C125.525 476.233 187.516 504 256 504c132.773 0 241.176-104.338 247.69-235.493.339-6.818-5.165-12.507-11.991-12.507z"}))),"sync-error"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M256 79.1C178.5 79.1 112.7 130.1 89.2 199.7C84.96 212.2 71.34 218.1 58.79 214.7C46.23 210.5 39.48 196.9 43.72 184.3C73.6 95.8 157.3 32 256 32C337.5 32 408.8 75.53 448 140.6V104C448 90.75 458.7 80 472 80C485.3 80 496 90.75 496 104V200C496 213.3 485.3 224 472 224H376C362.7 224 352 213.3 352 200C352 186.7 362.7 176 376 176H412.8C383.7 118.1 324.4 80 256 80V79.1zM280 263.1C280 277.3 269.3 287.1 256 287.1C242.7 287.1 232 277.3 232 263.1V151.1C232 138.7 242.7 127.1 256 127.1C269.3 127.1 280 138.7 280 151.1V263.1zM224 352C224 334.3 238.3 319.1 256 319.1C273.7 319.1 288 334.3 288 352C288 369.7 273.7 384 256 384C238.3 384 224 369.7 224 352zM40 432C26.75 432 16 421.3 16 408V311.1C16 298.7 26.75 287.1 40 287.1H136C149.3 287.1 160 298.7 160 311.1C160 325.3 149.3 336 136 336H99.19C128.3 393 187.6 432 256 432C333.5 432 399.3 381.9 422.8 312.3C427 299.8 440.7 293 453.2 297.3C465.8 301.5 472.5 315.1 468.3 327.7C438.4 416.2 354.7 480 256 480C174.5 480 103.2 436.5 64 371.4V408C64 421.3 53.25 432 40 432V432z"}))),"shortcode"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M128 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h96C145.7 480 160 465.7 160 448S145.7 416 128 416H64V96h64C145.7 96 160 81.67 160 64S145.7 32 128 32zM416 32h-96C302.3 32 288 46.33 288 63.1S302.3 96 319.1 96H384v320h-64C302.3 416 288 430.3 288 447.1S302.3 480 319.1 480H416c17.6 0 32-14.4 32-32V64C448 46.4 433.6 32 416 32z"}))),"file"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M0 64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM336 448V160H256C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V448C48 456.8 55.16 464 64 464H320C328.8 464 336 456.8 336 448z"}))),"file-disabled"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M639.1 487.1c0-7.119-3.153-14.16-9.191-18.89l-118.8-93.12l.0013-237.3c0-16.97-6.742-33.26-18.74-45.26l-74.63-74.64C406.6 6.742 390.3 0 373.4 0H192C156.7 0 128 28.65 128 64L128 75.01L38.82 5.11C34.41 1.672 29.19 0 24.04 0C10.19 0-.0002 11.3-.0002 23.1c0 7.12 3.153 14.16 9.192 18.89l591.1 463.1C605.6 510.3 610.8 512 615.1 512C629.8 512 639.1 500.6 639.1 487.1zM464 338.4l-287.1-225.7l-.002-48.51c0-8.836 7.164-16 15.1-16h160l-.0065 79.87c0 17.67 14.33 31.1 31.1 31.1L464 159.1V338.4zM448 463.1H192c-8.834 0-15.1-7.164-15.1-16L176 234.6L128 197L128 447.1c0 35.34 28.65 64 63.1 64H448c20.4 0 38.45-9.851 50.19-24.84l-37.72-29.56C457.5 461.4 453.2 463.1 448 463.1z"}))),"loading"===r&&(h=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[a],d:"M304 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 416c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM48 304c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm464-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM142.9 437c18.7-18.7 18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zm0-294.2c18.7-18.7 18.7-49.1 0-67.9S93.7 56.2 75 75s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zM369.1 437c18.7 18.7 49.1 18.7 67.9 0s18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9z"}))),"file-download"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M216 342.1V240c0-13.25-10.75-24-24-24S168 226.8 168 240v102.1L128.1 303C124.3 298.3 118.2 296 112 296S99.72 298.3 95.03 303c-9.375 9.375-9.375 24.56 0 33.94l80 80c9.375 9.375 24.56 9.375 33.94 0l80-80c9.375-9.375 9.375-24.56 0-33.94s-24.56-9.375-33.94 0L216 342.1zM365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448z"}))),"calendar"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z"}))),"calendar-error"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M151.1 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V192H47.1V448C47.1 456.8 55.16 464 63.1 464H284.5C296.7 482.8 312.5 499.1 330.8 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24L151.1 64zM576 368C576 447.5 511.5 512 432 512C352.5 512 287.1 447.5 287.1 368C287.1 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM432 416C418.7 416 408 426.7 408 440C408 453.3 418.7 464 432 464C445.3 464 456 453.3 456 440C456 426.7 445.3 416 432 416zM447.1 288C447.1 279.2 440.8 272 431.1 272C423.2 272 415.1 279.2 415.1 288V368C415.1 376.8 423.2 384 431.1 384C440.8 384 447.1 376.8 447.1 368V288z"}))),"help"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z"}))),"copy"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M502.6 70.63l-61.25-61.25C435.4 3.371 427.2 0 418.7 0H255.1c-35.35 0-64 28.66-64 64l.0195 256C192 355.4 220.7 384 256 384h192c35.2 0 64-28.8 64-64V93.25C512 84.77 508.6 76.63 502.6 70.63zM464 320c0 8.836-7.164 16-16 16H255.1c-8.838 0-16-7.164-16-16L239.1 64.13c0-8.836 7.164-16 16-16h128L384 96c0 17.67 14.33 32 32 32h47.1V320zM272 448c0 8.836-7.164 16-16 16H63.1c-8.838 0-16-7.164-16-16L47.98 192.1c0-8.836 7.164-16 16-16H160V128H63.99c-35.35 0-64 28.65-64 64l.0098 256C.002 483.3 28.66 512 64 512h192c35.2 0 64-28.8 64-64v-32h-47.1L272 448z"}))),"info"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"}))),"info-open"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM256 304c13.25 0 24-10.75 24-24v-128C280 138.8 269.3 128 256 128S232 138.8 232 152v128C232 293.3 242.8 304 256 304zM256 337.1c-17.36 0-31.44 14.08-31.44 31.44C224.6 385.9 238.6 400 256 400s31.44-14.08 31.44-31.44C287.4 351.2 273.4 337.1 256 337.1z"}))),"list"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M184.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 113c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM256 96c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zM192 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zM80 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z"}))),"empty"===r&&(h=(0,c.createElement)("svg",{height:i,width:i,"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 280.8 363.67"})),"external-link"===r&&(h=(0,c.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("path",{fill:o[n],d:"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z"}))),"shield"===r&&(h=(0,c.createElement)("svg",{height:i,"aria-hidden":"true",focusable:"false",role:"img",id:"uuid-026a4e87-44db-4336-a398-3c29d25b7317",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 280.8 363.67"},(0,c.createElement)("path",{fill:"#f9c23e",d:"M280.8,62.4L140.5,0,0,62.2V213.3c0,10.7,1.6,21.3,4.9,31.5,9.5,29.9,28.2,52.8,54.4,69.5,26,16.6,52.4,32.4,78.6,48.6,2,1.2,3.4,.9,5.1-.2,19.9-12.3,39.8-24.5,59.6-36.8,12.6-7.8,25.5-15.1,36.5-25.1,26.4-24.2,41.4-53.6,41.5-89.9V62.4h.2Z"}),(0,c.createElement)("g",null,(0,c.createElement)("g",null,(0,c.createElement)("rect",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",x:"155",y:"266.8",width:"77.6",height:"6"}),(0,c.createElement)("path",{fill:"#1d2327",d:"M224.4,204.5h-1.8v-10.1c0-15.9-12.9-28.8-28.8-28.8s-28.8,12.9-28.8,28.8v10.1h-1.8c-4.6,0-8.3,3.7-8.3,8.3v51.3h77.6v-51.3c0-4.6-3.7-8.3-8.3-8.3h.2Zm-45.3-10.1c0-8.1,6.6-14.7,14.7-14.7s14.7,6.6,14.7,14.7v10.1h-29.5v-10.1h.1Zm36.6,32.9l-20.7,20.2c-.2,.2-.3,.4-.5,.6l-2,2c-.2,.2-.4,.4-.6,.5l-3.8,3.8-4.5-4.3-2-2c-.2-.2-.4-.4-.5-.6l-9.1-9.1c-2.4-2.4-2.4-6.4,0-8.8l2-2c2.4-2.4,6.4-2.4,8.8,0l5.3,5.3,16.9-16.4c2.4-2.4,6.4-2.4,8.8,0l2,2c2.4,2.4,2.4,6.4,0,8.8h-.1Z"})),(0,c.createElement)("g",null,(0,c.createElement)("path",{fill:"#1d2327",d:"M125.2,192.3c-.5-2.9-.5-5.8-1-8.6-.5-2.4-2.6-4-4.8-3.9-2.3,0-4.2,1.9-4.7,4.3-.2,1,0,1.9,0,2.9,.8,14.6,7.2,26.3,18.2,35.7,2.2,1.9,4.5,3.5,6.9,4.8v-11.8c-7.4-5.8-12.9-14.1-14.6-23.3v-.1Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M96.4,236.1c-13-15-20-32.3-19.5-52.3,.3-13.1,6.1-23.6,16.6-31.2,11.5-8.5,24.5-10.9,38.3-7.1,12.7,3.5,22,10.7,27.4,22,2.1-2.7,4.5-5.2,7.2-7.4-4-7-9.7-12.9-17-17.4-17-10.4-34.9-11.7-52.9-3.1-19,9.1-28.7,24.7-29.3,45.8,0,5.2,.5,10.2,1.4,15.2,3.4,19.4,13.4,35.2,27.2,48.9,1.1,1.1,2.5,1.6,4.1,1.4,1.8-.2,3.2-1.3,3.8-3,.6-1.8,.4-3.6-1-5.1-2.1-2.2-4.2-4.4-6.2-6.7h-.1Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M68.1,89.4c1.1-.4,2.1-1,3.1-1.5,17.9-9.1,36.8-12.7,56.8-11.3,12.2,.8,23.9,3.8,35.1,8.7,3,1.3,5.9,2.8,8.9,4.1,2.7,1.1,5.3,0,6.4-2.4,1.1-2.3,0-5-2.3-6.3-11-5.7-22.4-10-34.6-12.3-4.2-.8-8.5-1.1-12.8-1.7h-17.1c-.3,0-.6,.2-.9,.2-11.2,.8-22,3.2-32.5,7.2-4.9,1.9-9.7,4.1-14.3,6.6-2.5,1.3-3.4,4.2-2.2,6.5,1.1,2.2,4,3.2,6.4,2.1v.1Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M61.1,153.5c13.6-21.6,33.6-31.5,58.7-32.1h6c.8,0,1.6,.2,2.3,.3,13.4,1.7,25.5,6.6,35.9,15.4,5.8,4.9,10.5,10.3,14.1,16.2,3.1-1.2,6.4-2,9.8-2.5-4.7-8.7-11.3-16.3-19.6-22.7-19-14.6-40.5-19.5-64.1-15.1-14.3,2.7-26.9,9-37.7,18.8-10.4,9.5-17.8,20.9-21.2,34.6-2.8,11.3-2.6,22.7-.9,34.1,1.1,7,2.9,13.9,5.4,20.5,.9,2.3,3,3.7,5.2,3.5,2.1-.2,3.9-2,4.3-4.3,.2-1.1-.2-2.2-.6-3.2-4.3-11.9-6.3-24.1-5.6-36.7,.5-9.6,2.8-18.7,8-26.8h0Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M139.8,240.6c-20.9-8.4-34.1-23.7-38.4-46.7-.8-4.3-1.4-8.7-.4-13,1.8-7.1,6.4-11.4,13.4-13.5,11.8-3.4,24.7,5.3,24.5,17.6,0,4.8,1.4,9.3,4,13.4,.3,.5,.6,.9,.9,1.3,1.6-2.4,3.7-4.6,6.1-6.2,0-.9,0-1.9,.2-2.8-.7-1.7-1.1-3.5-1.2-5.3-.3-6.1-1.6-11.9-5.5-16.8-6.8-8.8-15.9-12.4-27-11.5-11.3,.9-21.6,9.6-24.5,20.6-1.8,6.6-.9,13.3,.4,19.8,2.4,12.9,8.2,24,17.1,33.7,8.6,9.4,18.8,15.8,30.6,19.8v-10.4h-.2Z"}),(0,c.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M47.5,133.2c6.8-8.8,15-16,24.6-21.6,20.8-12,43.2-15.2,66.6-11,14.8,2.7,28.2,8.7,39.9,18.2,6.3,5,11.6,11,16.4,17.4,1.9,2.5,4.8,2.8,7,1.1,2.1-1.7,2.4-4.5,.6-7-5.9-8.2-12.8-15.3-20.9-21.3-18.3-13.6-39.1-19.6-61.7-20-6.3,0-12.5,.6-18.6,1.6-15.7,2.8-30.1,8.6-42.9,18.1-8.3,6.2-15.5,13.5-21.5,22-1.6,2.3-1.3,5.1,.7,6.7,2.1,1.7,4.9,1.5,6.8-.7,1-1.2,1.9-2.5,2.9-3.7l.1,.2Z"}))))),"file-search"===r&&(h=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",height:i,fill:"none",viewBox:"0 0 384 512"},(0,c.createElement)("path",{d:"M374.6 150.6l-141.3-141.3C227.4 3.371 219.2 0 210.7 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.35 0 64-28.66 64-64V173.3C384 164.8 380.6 156.6 374.6 150.6zM224 22.63L361.4 160H248C234.8 160 224 149.2 224 136V22.63zM368 448c0 26.47-21.53 48-48 48H64c-26.47 0-48-21.53-48-48V64c0-26.47 21.53-48 48-48h144v120c0 22.06 17.94 40 40 40h120V448zM176 208c-53.02 0-96 42.98-96 96s42.98 96 96 96c23.62 0 44.96-8.859 61.68-23l68.66 68.66C307.9 447.2 309.9 448 312 448s4.094-.7813 5.656-2.344c3.125-3.125 3.125-8.188 0-11.31l-68.66-68.66C263.1 348.1 272 327.6 272 304C272 250.1 229 208 176 208zM176 384C131.9 384 96 348.1 96 304S131.9 224 176 224S256 259.9 256 304S220.1 384 176 384z"}))),"download"===r&&(h=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",height:i,fill:"none",viewBox:"0 0 512 512"},(0,c.createElement)("path",{d:"M480 352h-88C387.6 352 384 355.6 384 360s3.582 8 8 8H480c8.822 0 16 7.178 16 16v96c0 8.822-7.178 16-16 16H32c-8.822 0-16-7.178-16-16v-96c0-8.822 7.178-16 16-16h88C124.4 368 128 364.4 128 360S124.4 352 120 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96C512 366.3 497.7 352 480 352zM464 432c0-17.6-14.4-32-32-32s-32 14.4-32 32c0 17.6 14.4 32 32 32S464 449.6 464 432zM416 432c0-8.822 7.178-16 16-16s16 7.178 16 16S440.8 448 432 448S416 440.8 416 432zM250.3 413.7c3.125 3.125 8.188 3.125 11.31 0l152-152C415.2 260.1 416 258.1 416 256s-.7813-4.094-2.344-5.656c-3.125-3.125-8.188-3.125-11.31 0L264 388.7V8C264 3.594 260.4 0 256 0S248 3.594 248 8v380.7L109.7 250.3c-3.125-3.125-8.188-3.125-11.31 0s-3.125 8.188 0 11.31L250.3 413.7z"}))),"satellite-dish"===r&&(h=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",color:o[n],height:i,viewBox:"0 0 512 512"},(0,c.createElement)("path",{d:"M208 0c-8.8 0-16 7.2-16 16s7.2 16 16 16c150.2 0 272 121.8 272 272c0 8.8 7.2 16 16 16s16-7.2 16-16C512 136.1 375.9 0 208 0zm0 96c-8.8 0-16 7.2-16 16s7.2 16 16 16c97.2 0 176 78.8 176 176c0 8.8 7.2 16 16 16s16-7.2 16-16c0-114.9-93.1-208-208-208zM32 304c0-24.5 5-47.7 13.9-68.8L276.8 466.1C255.7 475 232.5 480 208 480c-97.2 0-176-78.8-176-176zm33.5-94.5c-14-14-37.3-12.1-45.7 5.8C7.1 242.2 0 272.3 0 304C0 418.9 93.1 512 208 512c31.7 0 61.8-7.1 88.7-19.8c17.9-8.4 19.8-31.8 5.8-45.7L195.3 339.3l24-24c6.3 3 13.3 4.7 20.7 4.7c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48c0 7.4 1.7 14.4 4.7 20.7l-24 24L65.5 209.5zM224 272a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"}))),"rotate-light"===r&&(h=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",color:o[n],height:i,viewBox:"0 0 512 512"},(0,c.createElement)("path",{d:"M426.1 301.2C406.2 376.5 337.6 432 256 432c-51 0-96.9-21.7-129-56.3l41-41c5.1-5.1 8-12.1 8-19.3c0-15.1-12.2-27.3-27.3-27.3H48c-8.8 0-16 7.2-16 16V404.7C32 419.8 44.2 432 59.3 432c7.2 0 14.2-2.9 19.3-8l25.7-25.7C142.3 438.7 196.2 464 256 464c97.4 0 179.2-67 201.8-157.4c2.4-9.7-5.2-18.6-15.2-18.6c-7.8 0-14.5 5.6-16.5 13.2zM385 136.3l-41 41c-5.1 5.1-8 12.1-8 19.3c0 15.1 12.2 27.3 27.3 27.3H464c8.8 0 16-7.2 16-16V107.3C480 92.2 467.8 80 452.7 80c-7.2 0-14.2 2.9-19.3 8l-25.7 25.7C369.7 73.3 315.8 48 256 48C158.6 48 76.8 115 54.2 205.4c-2.4 9.7 5.2 18.6 15.2 18.6c7.8 0 14.5-5.6 16.5-13.2C105.8 135.5 174.4 80 256 80c51 0 96.9 21.7 129.1 56.3zM448 192H374.6L448 118.6V192zM64 320h73.4L64 393.4V320z"}))),"rotate-exclamation-light"===r&&(h=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,`\n .fa-secondary {\n opacity: 0.4;\n color: ${o[n]};\n }\n `)),(0,c.createElement)("path",{className:"fa-primary",d:"M280 152c0-13.3-10.7-24-24-24s-24 10.7-24 24V264c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM256 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M432 117.4C391 65.4 327.4 32 256 32C158.4 32 75.5 94.4 44.8 181.3c-5.9 16.7 2.8 34.9 19.5 40.8s34.9-2.8 40.8-19.5C127.1 140.5 186.4 96 256 96c52.3 0 98.8 25.1 128 64H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h84.3c.5 0 1 0 1.5 0H464c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v37.4zm35.2 213.2c5.9-16.7-2.8-34.9-19.5-40.8s-34.9 2.8-40.8 19.5C384.9 371.5 325.6 416 256 416c-52.3 0-98.8-25.1-128-64h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32V432c0 17.7 14.3 32 32 32s32-14.3 32-32V394.6c41 52 104.6 85.4 176 85.4c97.6 0 180.5-62.4 211.2-149.3z"}))),"radar-duotone"===r&&(h=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,`\n .fa-secondary {\n color: ${o[n]} !important;\n } \n `)),(0,c.createElement)("path",{className:"fa-primary",d:"M497 49c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-182 182c-7.7-3.3-16.1-5.1-25-5.1c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64c0-8.9-1.8-17.3-5.1-25L497 49z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M350.9 127.2l-46.1 46.1c-14.3-8.4-31-13.3-48.8-13.3c-53 0-96 43-96 96s43 96 96 96s96-43 96-96h64c0 73.5-49.6 135.5-117.2 154.2C290.8 394.7 274.7 384 256 384s-34.8 10.7-42.8 26.2c-51.7-14.3-92.8-53.9-109.4-104.6c14.4-8.3 24.1-23.8 24.1-41.7c0-19.4-11.5-36.1-28-43.7C116.2 149.1 179.9 96 256 96c35.5 0 68.3 11.6 94.9 31.2zm22.8-22.8C341.2 79 300.4 64 256 64C163.1 64 85.7 129.9 67.9 217.6C47.2 222.9 32 241.7 32 264c0 23.8 17.3 43.6 40.1 47.4c19.3 64.3 71.5 114.4 137 130.9C213.8 463.8 233 480 256 480s42.2-16.2 46.9-37.8C386.3 421.3 448 345.9 448 256h64c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0c62.1 0 118.9 22.1 163.3 58.8l-45.5 45.5z"}))),"satellite-dish-duotone"===r&&(h=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,`\n .fa-secondary {\n color: ${o[n]} !important;\n } \n `)),(0,c.createElement)("path",{className:"fa-primary",d:"M60.6 220.6c-14.5-14.5-38.8-11.8-46.3 7.3C5.1 251.5 0 277.1 0 304C0 418.9 93.1 512 208 512c26.9 0 52.5-5.1 76.1-14.4c19-7.5 21.8-31.8 7.3-46.3L187.3 347.3l28.4-28.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3l-28.4 28.4L60.6 220.6z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M224 0c-17.7 0-32 14.3-32 32s14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0zm0 96c-17.7 0-32 14.3-32 32s14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192z"}))),"spinner"===r&&(h=(0,c.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",width:"20",height:"20"},(0,c.createElement)("defs",null,(0,c.createElement)("style",null,"\n .fa-secondary {\n opacity: 0.4;\n }\n ")),(0,c.createElement)("path",{className:"fa-primary",d:"M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 256A48 48 0 1 0 0 256a48 48 0 1 0 96 0zM75 142.9A48 48 0 1 0 142.9 75 48 48 0 1 0 75 142.9z"}),(0,c.createElement)("path",{className:"fa-secondary",d:"M369.1 75A48 48 0 1 1 437 142.9 48 48 0 1 1 369.1 75zM416 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM208 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM75 369.1A48 48 0 1 1 142.9 437 48 48 0 1 1 75 369.1zm294.2 0A48 48 0 1 1 437 437a48 48 0 1 1 -67.9-67.9z"}))),(0,c.createElement)("div",{...e,ref:l},h)})),r=({name:e,color:l,size:t,tooltip:r})=>{const n=e||"bullet",i=l||"black";let o=t||15,h=r?"tooltip-":"",m=Math.floor(1e9*Math.random());return r?(0,c.createElement)("div",{className:"rsssl-"+h+"icon rsssl-icon-"+n+" rsssl-"+i},(0,c.createElement)(s,{"data-for":".rsssl-"+m,name:n,color:i,size:o,id:m,className:"rsssl-"+m,"data-tooltip-delay-hide":200}),(0,c.createElement)(a.m_,{style:{zIndex:99},id:m,place:"bottom",anchorSelect:".rsssl-"+m,content:r})):(0,c.createElement)("div",{className:"rsssl-"+h+"icon rsssl-icon-"+n+" rsssl-"+i},(0,c.createElement)(s,{name:n,color:i,size:o}))}}}]);PK�������!��NmQ��mQ��*��settings/build/838.27735719272896b2c464.jsnu�[��������(globalThis.webpackChunkreally_simple_ssl=globalThis.webpackChunkreally_simple_ssl||[]).push([[838],{2838:function(e){e.exports=function(){"use strict";const{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:o,getOwnPropertyDescriptor:r}=Object;let{freeze:i,seal:a,create:l}=Object,{apply:c,construct:s}="undefined"!=typeof Reflect&&Reflect;i||(i=function(e){return e}),a||(a=function(e){return e}),c||(c=function(e,t,n){return e.apply(t,n)}),s||(s=function(e,t){return new e(...t)});const u=b(Array.prototype.forEach),m=b(Array.prototype.pop),p=b(Array.prototype.push),f=b(String.prototype.toLowerCase),d=b(String.prototype.toString),h=b(String.prototype.match),g=b(String.prototype.replace),T=b(String.prototype.indexOf),y=b(String.prototype.trim),E=b(Object.prototype.hasOwnProperty),A=b(RegExp.prototype.test),_=(N=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return s(N,t)});var N;function b(e){return function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];return c(e,t,o)}}function S(e,o){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f;t&&t(e,null);let i=o.length;for(;i--;){let t=o[i];if("string"==typeof t){const e=r(t);e!==t&&(n(o)||(o[i]=e),t=e)}e[t]=!0}return e}function R(e){for(let t=0;t<e.length;t++)E(e,t)||(e[t]=null);return e}function w(t){const n=l(null);for(const[o,r]of e(t))E(t,o)&&(Array.isArray(r)?n[o]=R(r):r&&"object"==typeof r&&r.constructor===Object?n[o]=w(r):n[o]=r);return n}function C(e,t){for(;null!==e;){const n=r(e,t);if(n){if(n.get)return b(n.get);if("function"==typeof n.value)return b(n.value)}e=o(e)}return function(){return null}}const L=i(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),D=i(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),k=i(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),O=i(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),v=i(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),x=i(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),I=i(["#text"]),M=i(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),U=i(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),P=i(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),H=i(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),F=a(/\{\{[\w\W]*|[\w\W]*\}\}/gm),z=a(/<%[\w\W]*|[\w\W]*%>/gm),B=a(/\${[\w\W]*}/gm),W=a(/^data-[\-\w.\u00B7-\uFFFF]/),G=a(/^aria-[\-\w]+$/),Y=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),j=a(/^(?:\w+script|data):/i),q=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),X=a(/^html$/i),$=a(/^[a-z][.\w]*(-[.\w]+)+$/i);var K=Object.freeze({__proto__:null,MUSTACHE_EXPR:F,ERB_EXPR:z,TMPLIT_EXPR:B,DATA_ATTR:W,ARIA_ATTR:G,IS_ALLOWED_URI:Y,IS_SCRIPT_OR_DATA:j,ATTR_WHITESPACE:q,DOCTYPE_NAME:X,CUSTOM_ELEMENT:$});const V=function(){return"undefined"==typeof window?null:window};return function t(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:V();const o=e=>t(e);if(o.version="3.0.11",o.removed=[],!n||!n.document||9!==n.document.nodeType)return o.isSupported=!1,o;let{document:r}=n;const a=r,c=a.currentScript,{DocumentFragment:s,HTMLTemplateElement:N,Node:b,Element:R,NodeFilter:F,NamedNodeMap:z=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:B,DOMParser:W,trustedTypes:G}=n,j=R.prototype,q=C(j,"cloneNode"),$=C(j,"nextSibling"),Z=C(j,"childNodes"),J=C(j,"parentNode");if("function"==typeof N){const e=r.createElement("template");e.content&&e.content.ownerDocument&&(r=e.content.ownerDocument)}let Q,ee="";const{implementation:te,createNodeIterator:ne,createDocumentFragment:oe,getElementsByTagName:re}=r,{importNode:ie}=a;let ae={};o.isSupported="function"==typeof e&&"function"==typeof J&&te&&void 0!==te.createHTMLDocument;const{MUSTACHE_EXPR:le,ERB_EXPR:ce,TMPLIT_EXPR:se,DATA_ATTR:ue,ARIA_ATTR:me,IS_SCRIPT_OR_DATA:pe,ATTR_WHITESPACE:fe,CUSTOM_ELEMENT:de}=K;let{IS_ALLOWED_URI:he}=K,ge=null;const Te=S({},[...L,...D,...k,...v,...I]);let ye=null;const Ee=S({},[...M,...U,...P,...H]);let Ae=Object.seal(l(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),_e=null,Ne=null,be=!0,Se=!0,Re=!1,we=!0,Ce=!1,Le=!1,De=!1,ke=!1,Oe=!1,ve=!1,xe=!1,Ie=!0,Me=!1,Ue=!0,Pe=!1,He={},Fe=null;const ze=S({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Be=null;const We=S({},["audio","video","img","source","image","track"]);let Ge=null;const Ye=S({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),je="http://www.w3.org/1998/Math/MathML",qe="http://www.w3.org/2000/svg",Xe="http://www.w3.org/1999/xhtml";let $e=Xe,Ke=!1,Ve=null;const Ze=S({},[je,qe,Xe],d);let Je=null;const Qe=["application/xhtml+xml","text/html"];let et=null,tt=null;const nt=r.createElement("form"),ot=function(e){return e instanceof RegExp||e instanceof Function},rt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!tt||tt!==e){if(e&&"object"==typeof e||(e={}),e=w(e),Je=-1===Qe.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,et="application/xhtml+xml"===Je?d:f,ge=E(e,"ALLOWED_TAGS")?S({},e.ALLOWED_TAGS,et):Te,ye=E(e,"ALLOWED_ATTR")?S({},e.ALLOWED_ATTR,et):Ee,Ve=E(e,"ALLOWED_NAMESPACES")?S({},e.ALLOWED_NAMESPACES,d):Ze,Ge=E(e,"ADD_URI_SAFE_ATTR")?S(w(Ye),e.ADD_URI_SAFE_ATTR,et):Ye,Be=E(e,"ADD_DATA_URI_TAGS")?S(w(We),e.ADD_DATA_URI_TAGS,et):We,Fe=E(e,"FORBID_CONTENTS")?S({},e.FORBID_CONTENTS,et):ze,_e=E(e,"FORBID_TAGS")?S({},e.FORBID_TAGS,et):{},Ne=E(e,"FORBID_ATTR")?S({},e.FORBID_ATTR,et):{},He=!!E(e,"USE_PROFILES")&&e.USE_PROFILES,be=!1!==e.ALLOW_ARIA_ATTR,Se=!1!==e.ALLOW_DATA_ATTR,Re=e.ALLOW_UNKNOWN_PROTOCOLS||!1,we=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Ce=e.SAFE_FOR_TEMPLATES||!1,Le=e.WHOLE_DOCUMENT||!1,Oe=e.RETURN_DOM||!1,ve=e.RETURN_DOM_FRAGMENT||!1,xe=e.RETURN_TRUSTED_TYPE||!1,ke=e.FORCE_BODY||!1,Ie=!1!==e.SANITIZE_DOM,Me=e.SANITIZE_NAMED_PROPS||!1,Ue=!1!==e.KEEP_CONTENT,Pe=e.IN_PLACE||!1,he=e.ALLOWED_URI_REGEXP||Y,$e=e.NAMESPACE||Xe,Ae=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&ot(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Ae.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ot(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Ae.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Ae.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Ce&&(Se=!1),ve&&(Oe=!0),He&&(ge=S({},I),ye=[],!0===He.html&&(S(ge,L),S(ye,M)),!0===He.svg&&(S(ge,D),S(ye,U),S(ye,H)),!0===He.svgFilters&&(S(ge,k),S(ye,U),S(ye,H)),!0===He.mathMl&&(S(ge,v),S(ye,P),S(ye,H))),e.ADD_TAGS&&(ge===Te&&(ge=w(ge)),S(ge,e.ADD_TAGS,et)),e.ADD_ATTR&&(ye===Ee&&(ye=w(ye)),S(ye,e.ADD_ATTR,et)),e.ADD_URI_SAFE_ATTR&&S(Ge,e.ADD_URI_SAFE_ATTR,et),e.FORBID_CONTENTS&&(Fe===ze&&(Fe=w(Fe)),S(Fe,e.FORBID_CONTENTS,et)),Ue&&(ge["#text"]=!0),Le&&S(ge,["html","head","body"]),ge.table&&(S(ge,["tbody"]),delete _e.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');Q=e.TRUSTED_TYPES_POLICY,ee=Q.createHTML("")}else void 0===Q&&(Q=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}}(G,c)),null!==Q&&"string"==typeof ee&&(ee=Q.createHTML(""));i&&i(e),tt=e}},it=S({},["mi","mo","mn","ms","mtext"]),at=S({},["foreignobject","desc","title","annotation-xml"]),lt=S({},["title","style","font","a","script"]),ct=S({},[...D,...k,...O]),st=S({},[...v,...x]),ut=function(e){p(o.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){e.remove()}},mt=function(e,t){try{p(o.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){p(o.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!ye[e])if(Oe||ve)try{ut(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},pt=function(e){let t=null,n=null;if(ke)e="<remove></remove>"+e;else{const t=h(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===Je&&$e===Xe&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");const o=Q?Q.createHTML(e):e;if($e===Xe)try{t=(new W).parseFromString(o,Je)}catch(e){}if(!t||!t.documentElement){t=te.createDocument($e,"template",null);try{t.documentElement.innerHTML=Ke?ee:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),$e===Xe?re.call(t,Le?"html":"body")[0]:Le?t.documentElement:i},ft=function(e){return ne.call(e.ownerDocument||e,e,F.SHOW_ELEMENT|F.SHOW_COMMENT|F.SHOW_TEXT|F.SHOW_PROCESSING_INSTRUCTION|F.SHOW_CDATA_SECTION,null)},dt=function(e){return"function"==typeof b&&e instanceof b},ht=function(e,t,n){ae[e]&&u(ae[e],(e=>{e.call(o,t,n,tt)}))},gt=function(e){let t=null;if(ht("beforeSanitizeElements",e,null),(n=e)instanceof B&&("string"!=typeof n.nodeName||"string"!=typeof n.textContent||"function"!=typeof n.removeChild||!(n.attributes instanceof z)||"function"!=typeof n.removeAttribute||"function"!=typeof n.setAttribute||"string"!=typeof n.namespaceURI||"function"!=typeof n.insertBefore||"function"!=typeof n.hasChildNodes))return ut(e),!0;var n;const r=et(e.nodeName);if(ht("uponSanitizeElement",e,{tagName:r,allowedTags:ge}),e.hasChildNodes()&&!dt(e.firstElementChild)&&A(/<[/\w]/g,e.innerHTML)&&A(/<[/\w]/g,e.textContent))return ut(e),!0;if(7===e.nodeType)return ut(e),!0;if(!ge[r]||_e[r]){if(!_e[r]&&yt(r)){if(Ae.tagNameCheck instanceof RegExp&&A(Ae.tagNameCheck,r))return!1;if(Ae.tagNameCheck instanceof Function&&Ae.tagNameCheck(r))return!1}if(Ue&&!Fe[r]){const t=J(e)||e.parentNode,n=Z(e)||e.childNodes;if(n&&t)for(let o=n.length-1;o>=0;--o)t.insertBefore(q(n[o],!0),$(e))}return ut(e),!0}return e instanceof R&&!function(e){let t=J(e);t&&t.tagName||(t={namespaceURI:$e,tagName:"template"});const n=f(e.tagName),o=f(t.tagName);return!!Ve[e.namespaceURI]&&(e.namespaceURI===qe?t.namespaceURI===Xe?"svg"===n:t.namespaceURI===je?"svg"===n&&("annotation-xml"===o||it[o]):Boolean(ct[n]):e.namespaceURI===je?t.namespaceURI===Xe?"math"===n:t.namespaceURI===qe?"math"===n&&at[o]:Boolean(st[n]):e.namespaceURI===Xe?!(t.namespaceURI===qe&&!at[o])&&!(t.namespaceURI===je&&!it[o])&&!st[n]&&(lt[n]||!ct[n]):!("application/xhtml+xml"!==Je||!Ve[e.namespaceURI]))}(e)?(ut(e),!0):"noscript"!==r&&"noembed"!==r&&"noframes"!==r||!A(/<\/no(script|embed|frames)/i,e.innerHTML)?(Ce&&3===e.nodeType&&(t=e.textContent,u([le,ce,se],(e=>{t=g(t,e," ")})),e.textContent!==t&&(p(o.removed,{element:e.cloneNode()}),e.textContent=t)),ht("afterSanitizeElements",e,null),!1):(ut(e),!0)},Tt=function(e,t,n){if(Ie&&("id"===t||"name"===t)&&(n in r||n in nt))return!1;if(Se&&!Ne[t]&&A(ue,t));else if(be&&A(me,t));else if(!ye[t]||Ne[t]){if(!(yt(e)&&(Ae.tagNameCheck instanceof RegExp&&A(Ae.tagNameCheck,e)||Ae.tagNameCheck instanceof Function&&Ae.tagNameCheck(e))&&(Ae.attributeNameCheck instanceof RegExp&&A(Ae.attributeNameCheck,t)||Ae.attributeNameCheck instanceof Function&&Ae.attributeNameCheck(t))||"is"===t&&Ae.allowCustomizedBuiltInElements&&(Ae.tagNameCheck instanceof RegExp&&A(Ae.tagNameCheck,n)||Ae.tagNameCheck instanceof Function&&Ae.tagNameCheck(n))))return!1}else if(Ge[t]);else if(A(he,g(n,fe,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==T(n,"data:")||!Be[e])if(Re&&!A(pe,g(n,fe,"")));else if(n)return!1;return!0},yt=function(e){return"annotation-xml"!==e&&h(e,de)},Et=function(e){ht("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ye};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=et(a);let p="value"===a?c:y(c);if(n.attrName=s,n.attrValue=p,n.keepAttr=!0,n.forceKeepAttr=void 0,ht("uponSanitizeAttribute",e,n),p=n.attrValue,n.forceKeepAttr)continue;if(mt(a,e),!n.keepAttr)continue;if(!we&&A(/\/>/i,p)){mt(a,e);continue}Ce&&u([le,ce,se],(e=>{p=g(p,e," ")}));const f=et(e.nodeName);if(Tt(f,s,p)){if(!Me||"id"!==s&&"name"!==s||(mt(a,e),p="user-content-"+p),Q&&"object"==typeof G&&"function"==typeof G.getAttributeType)if(l);else switch(G.getAttributeType(f,s)){case"TrustedHTML":p=Q.createHTML(p);break;case"TrustedScriptURL":p=Q.createScriptURL(p)}try{l?e.setAttributeNS(l,a,p):e.setAttribute(a,p),m(o.removed)}catch(e){}}}ht("afterSanitizeAttributes",e,null)},At=function e(t){let n=null;const o=ft(t);for(ht("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)ht("uponSanitizeShadowNode",n,null),gt(n)||(n.content instanceof s&&e(n.content),Et(n));ht("afterSanitizeShadowDOM",t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,i=null,l=null;if(Ke=!e,Ke&&(e="\x3c!--\x3e"),"string"!=typeof e&&!dt(e)){if("function"!=typeof e.toString)throw _("toString is not a function");if("string"!=typeof(e=e.toString()))throw _("dirty is not a string, aborting")}if(!o.isSupported)return e;if(De||rt(t),o.removed=[],"string"==typeof e&&(Pe=!1),Pe){if(e.nodeName){const t=et(e.nodeName);if(!ge[t]||_e[t])throw _("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof b)n=pt("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),1===r.nodeType&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!Oe&&!Ce&&!Le&&-1===e.indexOf("<"))return Q&&xe?Q.createHTML(e):e;if(n=pt(e),!n)return Oe?null:xe?ee:""}n&&ke&&ut(n.firstChild);const c=ft(Pe?e:n);for(;i=c.nextNode();)gt(i)||(i.content instanceof s&&At(i.content),Et(i));if(Pe)return e;if(Oe){if(ve)for(l=oe.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(ye.shadowroot||ye.shadowrootmode)&&(l=ie.call(a,l,!0)),l}let m=Le?n.outerHTML:n.innerHTML;return Le&&ge["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&A(X,n.ownerDocument.doctype.name)&&(m="<!DOCTYPE "+n.ownerDocument.doctype.name+">\n"+m),Ce&&u([le,ce,se],(e=>{m=g(m,e," ")})),Q&&xe?Q.createHTML(m):m},o.setConfig=function(){rt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),De=!0},o.clearConfig=function(){tt=null,De=!1},o.isValidAttribute=function(e,t,n){tt||rt({});const o=et(e),r=et(t);return Tt(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&(ae[e]=ae[e]||[],p(ae[e],t))},o.removeHook=function(e){if(ae[e])return m(ae[e])},o.removeHooks=function(e){ae[e]&&(ae[e]=[])},o.removeAllHooks=function(){ae={}},o}()}()}}]);PK�������!�.I��I��*��settings/build/361.2faddb7f371fc911c2f1.jsnu�[��������"use strict";(globalThis.webpackChunkreally_simple_ssl=globalThis.webpackChunkreally_simple_ssl||[]).push([[361],{1361:(e,t,n)=>{n.r(t),n.d(t,{createFilterOptions:()=>ot,default:()=>ut});var o=n(45),r=n(4467),i=n(8168),a=n(1609),l=n(53),c=n(5192),s="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,u=function(){for(var e=["Edge","Trident","Firefox"],t=0;t<e.length;t+=1)if(s&&navigator.userAgent.indexOf(e[t])>=0)return 1;return 0}(),p=s&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then((function(){t=!1,e()})))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout((function(){t=!1,e()}),u))}};function d(e){return e&&"[object Function]"==={}.toString.call(e)}function f(e,t){if(1!==e.nodeType)return[];var n=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?n[t]:n}function m(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function h(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=f(e),n=t.overflow,o=t.overflowX,r=t.overflowY;return/(auto|scroll|overlay)/.test(n+r+o)?e:h(m(e))}function g(e){return e&&e.referenceNode?e.referenceNode:e}var v=s&&!(!window.MSInputMethodContext||!document.documentMode),b=s&&/MSIE 10/.test(navigator.userAgent);function y(e){return 11===e?v:10===e?b:v||b}function x(e){if(!e)return document.documentElement;for(var t=y(10)?document.body:null,n=e.offsetParent||null;n===t&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var o=n&&n.nodeName;return o&&"BODY"!==o&&"HTML"!==o?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===f(n,"position")?x(n):n:e?e.ownerDocument.documentElement:document.documentElement}function w(e){return null!==e.parentNode?w(e.parentNode):e}function E(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,o=n?e:t,r=n?t:e,i=document.createRange();i.setStart(o,0),i.setEnd(r,0);var a,l,c=i.commonAncestorContainer;if(e!==c&&t!==c||o.contains(r))return"BODY"===(l=(a=c).nodeName)||"HTML"!==l&&x(a.firstElementChild)!==a?x(c):c;var s=w(e);return s.host?E(s.host,t):E(e,w(t).host)}function A(e){var t="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=e.nodeName;if("BODY"===n||"HTML"===n){var o=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||o)[t]}return e[t]}function C(e,t){var n="x"===t?"Left":"Top",o="Left"===n?"Right":"Bottom";return parseFloat(e["border"+n+"Width"])+parseFloat(e["border"+o+"Width"])}function k(e,t,n,o){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],y(10)?parseInt(n["offset"+e])+parseInt(o["margin"+("Height"===e?"Top":"Left")])+parseInt(o["margin"+("Height"===e?"Bottom":"Right")]):0)}function O(e){var t=e.body,n=e.documentElement,o=y(10)&&getComputedStyle(n);return{height:k("Height",t,n,o),width:k("Width",t,n,o)}}var S=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),T=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},I=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e};function L(e){return I({},e,{right:e.left+e.width,bottom:e.top+e.height})}function R(e){var t={};try{if(y(10)){t=e.getBoundingClientRect();var n=A(e,"top"),o=A(e,"left");t.top+=n,t.left+=o,t.bottom+=n,t.right+=o}else t=e.getBoundingClientRect()}catch(e){}var r={left:t.left,top:t.top,width:t.right-t.left,height:t.bottom-t.top},i="HTML"===e.nodeName?O(e.ownerDocument):{},a=i.width||e.clientWidth||r.width,l=i.height||e.clientHeight||r.height,c=e.offsetWidth-a,s=e.offsetHeight-l;if(c||s){var u=f(e);c-=C(u,"x"),s-=C(u,"y"),r.width-=c,r.height-=s}return L(r)}function D(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=y(10),r="HTML"===t.nodeName,i=R(e),a=R(t),l=h(e),c=f(t),s=parseFloat(c.borderTopWidth),u=parseFloat(c.borderLeftWidth);n&&r&&(a.top=Math.max(a.top,0),a.left=Math.max(a.left,0));var p=L({top:i.top-a.top-s,left:i.left-a.left-u,width:i.width,height:i.height});if(p.marginTop=0,p.marginLeft=0,!o&&r){var d=parseFloat(c.marginTop),m=parseFloat(c.marginLeft);p.top-=s-d,p.bottom-=s-d,p.left-=u-m,p.right-=u-m,p.marginTop=d,p.marginLeft=m}return(o&&!n?t.contains(l):t===l&&"BODY"!==l.nodeName)&&(p=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=A(t,"top"),r=A(t,"left"),i=n?-1:1;return e.top+=o*i,e.bottom+=o*i,e.left+=r*i,e.right+=r*i,e}(p,t)),p}function P(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===f(e,"position"))return!0;var n=m(e);return!!n&&P(n)}function M(e){if(!e||!e.parentElement||y())return document.documentElement;for(var t=e.parentElement;t&&"none"===f(t,"transform");)t=t.parentElement;return t||document.documentElement}function N(e,t,n,o){var r=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i={top:0,left:0},a=r?M(e):E(e,g(t));if("viewport"===o)i=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,o=D(e,n),r=Math.max(n.clientWidth,window.innerWidth||0),i=Math.max(n.clientHeight,window.innerHeight||0),a=t?0:A(n),l=t?0:A(n,"left");return L({top:a-o.top+o.marginTop,left:l-o.left+o.marginLeft,width:r,height:i})}(a,r);else{var l=void 0;"scrollParent"===o?"BODY"===(l=h(m(t))).nodeName&&(l=e.ownerDocument.documentElement):l="window"===o?e.ownerDocument.documentElement:o;var c=D(l,a,r);if("HTML"!==l.nodeName||P(a))i=c;else{var s=O(e.ownerDocument),u=s.height,p=s.width;i.top+=c.top-c.marginTop,i.bottom=u+c.top,i.left+=c.left-c.marginLeft,i.right=p+c.left}}var d="number"==typeof(n=n||0);return i.left+=d?n:n.left||0,i.top+=d?n:n.top||0,i.right-=d?n:n.right||0,i.bottom-=d?n:n.bottom||0,i}function F(e){return e.width*e.height}function $(e,t,n,o,r){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var a=N(n,o,i,r),l={top:{width:a.width,height:t.top-a.top},right:{width:a.right-t.right,height:a.height},bottom:{width:a.width,height:a.bottom-t.bottom},left:{width:t.left-a.left,height:a.height}},c=Object.keys(l).map((function(e){return I({key:e},l[e],{area:F(l[e])})})).sort((function(e,t){return t.area-e.area})),s=c.filter((function(e){var t=e.width,o=e.height;return t>=n.clientWidth&&o>=n.clientHeight})),u=s.length>0?s[0].key:c[0].key,p=e.split("-")[1];return u+(p?"-"+p:"")}function H(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return D(n,o?M(t):E(t,g(n)),o)}function z(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),n=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),o=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+o,height:e.offsetHeight+n}}function B(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,(function(e){return t[e]}))}function W(e,t,n){n=n.split("-")[0];var o=z(e),r={width:o.width,height:o.height},i=-1!==["right","left"].indexOf(n),a=i?"top":"left",l=i?"left":"top",c=i?"height":"width",s=i?"width":"height";return r[a]=t[a]+t[c]/2-o[c]/2,r[l]=n===l?t[l]-o[s]:t[B(l)],r}function V(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function U(e,t,n){return(void 0===n?e:e.slice(0,function(e,t,n){if(Array.prototype.findIndex)return e.findIndex((function(e){return e[t]===n}));var o=V(e,(function(e){return e[t]===n}));return e.indexOf(o)}(e,"name",n))).forEach((function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=e.function||e.fn;e.enabled&&d(n)&&(t.offsets.popper=L(t.offsets.popper),t.offsets.reference=L(t.offsets.reference),t=n(t,e))})),t}function X(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=H(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=$(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=W(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=U(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function K(e,t){return e.some((function(e){var n=e.name;return e.enabled&&n===t}))}function j(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),o=0;o<t.length;o++){var r=t[o],i=r?""+r+n:e;if(void 0!==document.body.style[i])return i}return null}function Y(){return this.state.isDestroyed=!0,K(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[j("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function q(e){var t=e.ownerDocument;return t?t.defaultView:window}function G(e,t,n,o){var r="BODY"===e.nodeName,i=r?e.ownerDocument.defaultView:e;i.addEventListener(t,n,{passive:!0}),r||G(h(i.parentNode),t,n,o),o.push(i)}function _(e,t,n,o){n.updateBound=o,q(e).addEventListener("resize",n.updateBound,{passive:!0});var r=h(e);return G(r,"scroll",n.updateBound,n.scrollParents),n.scrollElement=r,n.eventsEnabled=!0,n}function J(){this.state.eventsEnabled||(this.state=_(this.reference,this.options,this.state,this.scheduleUpdate))}function Q(){var e,t;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(e=this.reference,t=this.state,q(e).removeEventListener("resize",t.updateBound),t.scrollParents.forEach((function(e){e.removeEventListener("scroll",t.updateBound)})),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t))}function Z(e){return""!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function ee(e,t){Object.keys(t).forEach((function(n){var o="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&Z(t[n])&&(o="px"),e.style[n]=t[n]+o}))}var te=s&&/Firefox/i.test(navigator.userAgent);function ne(e,t,n){var o=V(e,(function(e){return e.name===t})),r=!!o&&e.some((function(e){return e.name===n&&e.enabled&&e.order<o.order}));if(!r){var i="`"+t+"`",a="`"+n+"`";console.warn(a+" modifier is required by "+i+" modifier in order to work, be sure to include it before "+i+"!")}return r}var oe=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],re=oe.slice(3);function ie(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=re.indexOf(e),o=re.slice(n+1).concat(re.slice(0,n));return t?o.reverse():o}var ae={shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,n=t.split("-")[0],o=t.split("-")[1];if(o){var r=e.offsets,i=r.reference,a=r.popper,l=-1!==["bottom","top"].indexOf(n),c=l?"left":"top",s=l?"width":"height",u={start:T({},c,i[c]),end:T({},c,i[c]+i[s]-a[s])};e.offsets.popper=I({},a,u[o])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var n,o=t.offset,r=e.placement,i=e.offsets,a=i.popper,l=i.reference,c=r.split("-")[0];return n=Z(+o)?[+o,0]:function(e,t,n,o){var r=[0,0],i=-1!==["right","left"].indexOf(o),a=e.split(/(\+|\-)/).map((function(e){return e.trim()})),l=a.indexOf(V(a,(function(e){return-1!==e.search(/,|\s/)})));a[l]&&-1===a[l].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var c=/\s*,\s*|\s+/,s=-1!==l?[a.slice(0,l).concat([a[l].split(c)[0]]),[a[l].split(c)[1]].concat(a.slice(l+1))]:[a];return(s=s.map((function(e,o){var r=(1===o?!i:i)?"height":"width",a=!1;return e.reduce((function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,a=!0,e):a?(e[e.length-1]+=t,a=!1,e):e.concat(t)}),[]).map((function(e){return function(e,t,n,o){var r=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),i=+r[1],a=r[2];return i?0===a.indexOf("%")?L("%p"===a?n:o)[t]/100*i:"vh"===a||"vw"===a?("vh"===a?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*i:i:e}(e,r,t,n)}))}))).forEach((function(e,t){e.forEach((function(n,o){Z(n)&&(r[t]+=n*("-"===e[o-1]?-1:1))}))})),r}(o,a,l,c),"left"===c?(a.top+=n[0],a.left-=n[1]):"right"===c?(a.top+=n[0],a.left+=n[1]):"top"===c?(a.left+=n[0],a.top-=n[1]):"bottom"===c&&(a.left+=n[0],a.top+=n[1]),e.popper=a,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var n=t.boundariesElement||x(e.instance.popper);e.instance.reference===n&&(n=x(n));var o=j("transform"),r=e.instance.popper.style,i=r.top,a=r.left,l=r[o];r.top="",r.left="",r[o]="";var c=N(e.instance.popper,e.instance.reference,t.padding,n,e.positionFixed);r.top=i,r.left=a,r[o]=l,t.boundaries=c;var s=t.priority,u=e.offsets.popper,p={primary:function(e){var n=u[e];return u[e]<c[e]&&!t.escapeWithReference&&(n=Math.max(u[e],c[e])),T({},e,n)},secondary:function(e){var n="right"===e?"left":"top",o=u[n];return u[e]>c[e]&&!t.escapeWithReference&&(o=Math.min(u[n],c[e]-("right"===e?u.width:u.height))),T({},n,o)}};return s.forEach((function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=I({},u,p[t](e))})),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,o=t.reference,r=e.placement.split("-")[0],i=Math.floor,a=-1!==["top","bottom"].indexOf(r),l=a?"right":"bottom",c=a?"left":"top",s=a?"width":"height";return n[l]<i(o[c])&&(e.offsets.popper[c]=i(o[c])-n[s]),n[c]>i(o[l])&&(e.offsets.popper[c]=i(o[l])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!ne(e.instance.modifiers,"arrow","keepTogether"))return e;var o=t.element;if("string"==typeof o){if(!(o=e.instance.popper.querySelector(o)))return e}else if(!e.instance.popper.contains(o))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,a=i.popper,l=i.reference,c=-1!==["left","right"].indexOf(r),s=c?"height":"width",u=c?"Top":"Left",p=u.toLowerCase(),d=c?"left":"top",m=c?"bottom":"right",h=z(o)[s];l[m]-h<a[p]&&(e.offsets.popper[p]-=a[p]-(l[m]-h)),l[p]+h>a[m]&&(e.offsets.popper[p]+=l[p]+h-a[m]),e.offsets.popper=L(e.offsets.popper);var g=l[p]+l[s]/2-h/2,v=f(e.instance.popper),b=parseFloat(v["margin"+u]),y=parseFloat(v["border"+u+"Width"]),x=g-e.offsets.popper[p]-b-y;return x=Math.max(Math.min(a[s]-h,x),0),e.arrowElement=o,e.offsets.arrow=(T(n={},p,Math.round(x)),T(n,d,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(e,t){if(K(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var n=N(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),o=e.placement.split("-")[0],r=B(o),i=e.placement.split("-")[1]||"",a=[];switch(t.behavior){case"flip":a=[o,r];break;case"clockwise":a=ie(o);break;case"counterclockwise":a=ie(o,!0);break;default:a=t.behavior}return a.forEach((function(l,c){if(o!==l||a.length===c+1)return e;o=e.placement.split("-")[0],r=B(o);var s=e.offsets.popper,u=e.offsets.reference,p=Math.floor,d="left"===o&&p(s.right)>p(u.left)||"right"===o&&p(s.left)<p(u.right)||"top"===o&&p(s.bottom)>p(u.top)||"bottom"===o&&p(s.top)<p(u.bottom),f=p(s.left)<p(n.left),m=p(s.right)>p(n.right),h=p(s.top)<p(n.top),g=p(s.bottom)>p(n.bottom),v="left"===o&&f||"right"===o&&m||"top"===o&&h||"bottom"===o&&g,b=-1!==["top","bottom"].indexOf(o),y=!!t.flipVariations&&(b&&"start"===i&&f||b&&"end"===i&&m||!b&&"start"===i&&h||!b&&"end"===i&&g),x=!!t.flipVariationsByContent&&(b&&"start"===i&&m||b&&"end"===i&&f||!b&&"start"===i&&g||!b&&"end"===i&&h),w=y||x;(d||v||w)&&(e.flipped=!0,(d||v)&&(o=a[c+1]),w&&(i=function(e){return"end"===e?"start":"start"===e?"end":e}(i)),e.placement=o+(i?"-"+i:""),e.offsets.popper=I({},e.offsets.popper,W(e.instance.popper,e.offsets.reference,e.placement)),e=U(e.instance.modifiers,e,"flip"))})),e},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],o=e.offsets,r=o.popper,i=o.reference,a=-1!==["left","right"].indexOf(n),l=-1===["top","left"].indexOf(n);return r[a?"left":"top"]=i[n]-(l?r[a?"width":"height"]:0),e.placement=B(t),e.offsets.popper=L(r),e}},hide:{order:800,enabled:!0,fn:function(e){if(!ne(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=V(e.instance.modifiers,(function(e){return"preventOverflow"===e.name})).boundaries;if(t.bottom<n.top||t.left>n.right||t.top>n.bottom||t.right<n.left){if(!0===e.hide)return e;e.hide=!0,e.attributes["x-out-of-boundaries"]=""}else{if(!1===e.hide)return e;e.hide=!1,e.attributes["x-out-of-boundaries"]=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var n=t.x,o=t.y,r=e.offsets.popper,i=V(e.instance.modifiers,(function(e){return"applyStyle"===e.name})).gpuAcceleration;void 0!==i&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var a,l,c=void 0!==i?i:t.gpuAcceleration,s=x(e.instance.popper),u=R(s),p={position:r.position},d=function(e,t){var n=e.offsets,o=n.popper,r=n.reference,i=Math.round,a=Math.floor,l=function(e){return e},c=i(r.width),s=i(o.width),u=-1!==["left","right"].indexOf(e.placement),p=-1!==e.placement.indexOf("-"),d=t?u||p||c%2==s%2?i:a:l,f=t?i:l;return{left:d(c%2==1&&s%2==1&&!p&&t?o.left-1:o.left),top:f(o.top),bottom:f(o.bottom),right:d(o.right)}}(e,window.devicePixelRatio<2||!te),f="bottom"===n?"top":"bottom",m="right"===o?"left":"right",h=j("transform");if(l="bottom"===f?"HTML"===s.nodeName?-s.clientHeight+d.bottom:-u.height+d.bottom:d.top,a="right"===m?"HTML"===s.nodeName?-s.clientWidth+d.right:-u.width+d.right:d.left,c&&h)p[h]="translate3d("+a+"px, "+l+"px, 0)",p[f]=0,p[m]=0,p.willChange="transform";else{var g="bottom"===f?-1:1,v="right"===m?-1:1;p[f]=l*g,p[m]=a*v,p.willChange=f+", "+m}var b={"x-placement":e.placement};return e.attributes=I({},b,e.attributes),e.styles=I({},p,e.styles),e.arrowStyles=I({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(e){var t,n;return ee(e.instance.popper,e.styles),t=e.instance.popper,n=e.attributes,Object.keys(n).forEach((function(e){!1!==n[e]?t.setAttribute(e,n[e]):t.removeAttribute(e)})),e.arrowElement&&Object.keys(e.arrowStyles).length&&ee(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,n,o,r){var i=H(r,t,e,n.positionFixed),a=$(n.placement,i,t,e,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return t.setAttribute("x-placement",a),ee(t,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}},le={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:ae},ce=function(){function e(t,n){var o=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(o.update)},this.update=p(this.update.bind(this)),this.options=I({},e.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(I({},e.Defaults.modifiers,r.modifiers)).forEach((function(t){o.options.modifiers[t]=I({},e.Defaults.modifiers[t]||{},r.modifiers?r.modifiers[t]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(e){return I({name:e},o.options.modifiers[e])})).sort((function(e,t){return e.order-t.order})),this.modifiers.forEach((function(e){e.enabled&&d(e.onLoad)&&e.onLoad(o.reference,o.popper,o.options,e,o.state)})),this.update();var i=this.options.eventsEnabled;i&&this.enableEventListeners(),this.state.eventsEnabled=i}return S(e,[{key:"update",value:function(){return X.call(this)}},{key:"destroy",value:function(){return Y.call(this)}},{key:"enableEventListeners",value:function(){return J.call(this)}},{key:"disableEventListeners",value:function(){return Q.call(this)}}]),e}();ce.Utils=("undefined"!=typeof window?window:n.g).PopperUtils,ce.placements=oe,ce.Defaults=le;const se=ce;var ue=n(2143),pe=n(1846),de=n(8521),fe=n(4960),me=n(4801);function he(e){return"function"==typeof e?e():e}var ge="undefined"!=typeof window?a.useLayoutEffect:a.useEffect,ve={},be=a.forwardRef((function(e,t){var n=e.anchorEl,r=e.children,l=e.container,c=e.disablePortal,s=void 0!==c&&c,u=e.keepMounted,p=void 0!==u&&u,d=e.modifiers,f=e.open,m=e.placement,h=void 0===m?"bottom":m,g=e.popperOptions,v=void 0===g?ve:g,b=e.popperRef,y=e.style,x=e.transition,w=void 0!==x&&x,E=(0,o.A)(e,["anchorEl","children","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","style","transition"]),A=a.useRef(null),C=(0,me.A)(A,t),k=a.useRef(null),O=(0,me.A)(k,b),S=a.useRef(O);ge((function(){S.current=O}),[O]),a.useImperativeHandle(b,(function(){return k.current}),[]);var T=a.useState(!0),I=T[0],L=T[1],R=function(e,t){if("ltr"===(t&&t.direction||"ltr"))return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}(h,(0,ue.A)()),D=a.useState(R),P=D[0],M=D[1];a.useEffect((function(){k.current&&k.current.update()}));var N=a.useCallback((function(){if(A.current&&n&&f){k.current&&(k.current.destroy(),S.current(null));var e=function(e){M(e.placement)},t=(he(n),new se(he(n),A.current,(0,i.A)({placement:R},v,{modifiers:(0,i.A)({},s?{}:{preventOverflow:{boundariesElement:"window"}},d,v.modifiers),onCreate:(0,de.A)(e,v.onCreate),onUpdate:(0,de.A)(e,v.onUpdate)})));S.current(t)}}),[n,s,d,f,R,v]),F=a.useCallback((function(e){(0,fe.A)(C,e),N()}),[C,N]),$=function(){k.current&&(k.current.destroy(),S.current(null))};if(a.useEffect((function(){return function(){$()}}),[]),a.useEffect((function(){f||w||$()}),[f,w]),!p&&!f&&(!w||I))return null;var H={placement:P};return w&&(H.TransitionProps={in:f,onEnter:function(){L(!1)},onExited:function(){L(!0),$()}}),a.createElement(pe.A,{disablePortal:s,container:l},a.createElement("div",(0,i.A)({ref:F,role:"tooltip"},E,{style:(0,i.A)({position:"fixed",top:0,left:0,display:f||!p||w?null:"none"},y)}),"function"==typeof r?r(H):r))}));const ye=be;var xe=n(7515),we=a.forwardRef((function(e,t){var n=e.classes,r=e.className,c=e.color,s=void 0===c?"default":c,u=e.component,p=void 0===u?"li":u,d=e.disableGutters,f=void 0!==d&&d,m=e.disableSticky,h=void 0!==m&&m,g=e.inset,v=void 0!==g&&g,b=(0,o.A)(e,["classes","className","color","component","disableGutters","disableSticky","inset"]);return a.createElement(p,(0,i.A)({className:(0,l.A)(n.root,r,"default"!==s&&n["color".concat((0,xe.A)(s))],v&&n.inset,!h&&n.sticky,!f&&n.gutters),ref:t},b))}));const Ee=(0,c.A)((function(e){return{root:{boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:e.palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14)},colorPrimary:{color:e.palette.primary.main},colorInherit:{color:"inherit"},gutters:{paddingLeft:16,paddingRight:16},inset:{paddingLeft:72},sticky:{position:"sticky",top:0,zIndex:1,backgroundColor:"inherit"}}}),{name:"MuiListSubheader"})(we);var Ae=n(3148),Ce=n(9773),ke=n(5795),Oe=n(2319),Se=!0,Te=!1,Ie=null,Le={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function Re(e){e.metaKey||e.altKey||e.ctrlKey||(Se=!0)}function De(){Se=!1}function Pe(){"hidden"===this.visibilityState&&Te&&(Se=!0)}function Me(e){var t,n,o,r=e.target;try{return r.matches(":focus-visible")}catch(e){}return Se||(n=(t=r).type,!("INPUT"!==(o=t.tagName)||!Le[n]||t.readOnly)||"TEXTAREA"===o&&!t.readOnly||!!t.isContentEditable)}function Ne(){Te=!0,window.clearTimeout(Ie),Ie=window.setTimeout((function(){Te=!1}),100)}function Fe(){return{isFocusVisible:Me,onBlurVisible:Ne,ref:a.useCallback((function(e){var t,n=ke.findDOMNode(e);null!=n&&((t=n.ownerDocument).addEventListener("keydown",Re,!0),t.addEventListener("mousedown",De,!0),t.addEventListener("pointerdown",De,!0),t.addEventListener("touchstart",De,!0),t.addEventListener("visibilitychange",Pe,!0))}),[])}}var $e=n(5458),He=n(2618),ze="undefined"==typeof window?a.useEffect:a.useLayoutEffect;const Be=function(e){var t=e.classes,n=e.pulsate,o=void 0!==n&&n,r=e.rippleX,i=e.rippleY,c=e.rippleSize,s=e.in,u=e.onExited,p=void 0===u?function(){}:u,d=e.timeout,f=a.useState(!1),m=f[0],h=f[1],g=(0,l.A)(t.ripple,t.rippleVisible,o&&t.ripplePulsate),v={width:c,height:c,top:-c/2+i,left:-c/2+r},b=(0,l.A)(t.child,m&&t.childLeaving,o&&t.childPulsate),y=(0,Oe.A)(p);return ze((function(){if(!s){h(!0);var e=setTimeout(y,d);return function(){clearTimeout(e)}}}),[y,s,d]),a.createElement("span",{className:g,style:v},a.createElement("span",{className:b}))};var We=a.forwardRef((function(e,t){var n=e.center,r=void 0!==n&&n,c=e.classes,s=e.className,u=(0,o.A)(e,["center","classes","className"]),p=a.useState([]),d=p[0],f=p[1],m=a.useRef(0),h=a.useRef(null);a.useEffect((function(){h.current&&(h.current(),h.current=null)}),[d]);var g=a.useRef(!1),v=a.useRef(null),b=a.useRef(null),y=a.useRef(null);a.useEffect((function(){return function(){clearTimeout(v.current)}}),[]);var x=a.useCallback((function(e){var t=e.pulsate,n=e.rippleX,o=e.rippleY,r=e.rippleSize,i=e.cb;f((function(e){return[].concat((0,$e.A)(e),[a.createElement(Be,{key:m.current,classes:c,timeout:550,pulsate:t,rippleX:n,rippleY:o,rippleSize:r})])})),m.current+=1,h.current=i}),[c]),w=a.useCallback((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,o=t.pulsate,i=void 0!==o&&o,a=t.center,l=void 0===a?r||t.pulsate:a,c=t.fakeElement,s=void 0!==c&&c;if("mousedown"===e.type&&g.current)g.current=!1;else{"touchstart"===e.type&&(g.current=!0);var u,p,d,f=s?null:y.current,m=f?f.getBoundingClientRect():{width:0,height:0,left:0,top:0};if(l||0===e.clientX&&0===e.clientY||!e.clientX&&!e.touches)u=Math.round(m.width/2),p=Math.round(m.height/2);else{var h=e.touches?e.touches[0]:e,w=h.clientX,E=h.clientY;u=Math.round(w-m.left),p=Math.round(E-m.top)}if(l)(d=Math.sqrt((2*Math.pow(m.width,2)+Math.pow(m.height,2))/3))%2==0&&(d+=1);else{var A=2*Math.max(Math.abs((f?f.clientWidth:0)-u),u)+2,C=2*Math.max(Math.abs((f?f.clientHeight:0)-p),p)+2;d=Math.sqrt(Math.pow(A,2)+Math.pow(C,2))}e.touches?null===b.current&&(b.current=function(){x({pulsate:i,rippleX:u,rippleY:p,rippleSize:d,cb:n})},v.current=setTimeout((function(){b.current&&(b.current(),b.current=null)}),80)):x({pulsate:i,rippleX:u,rippleY:p,rippleSize:d,cb:n})}}),[r,x]),E=a.useCallback((function(){w({},{pulsate:!0})}),[w]),A=a.useCallback((function(e,t){if(clearTimeout(v.current),"touchend"===e.type&&b.current)return e.persist(),b.current(),b.current=null,void(v.current=setTimeout((function(){A(e,t)})));b.current=null,f((function(e){return e.length>0?e.slice(1):e})),h.current=t}),[]);return a.useImperativeHandle(t,(function(){return{pulsate:E,start:w,stop:A}}),[E,w,A]),a.createElement("span",(0,i.A)({className:(0,l.A)(c.root,s),ref:y},u),a.createElement(He.A,{component:null,exit:!0},d))}));const Ve=(0,c.A)((function(e){return{root:{overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"},ripple:{opacity:0,position:"absolute"},rippleVisible:{opacity:.3,transform:"scale(1)",animation:"$enter ".concat(550,"ms ").concat(e.transitions.easing.easeInOut)},ripplePulsate:{animationDuration:"".concat(e.transitions.duration.shorter,"ms")},child:{opacity:1,display:"block",width:"100%",height:"100%",borderRadius:"50%",backgroundColor:"currentColor"},childLeaving:{opacity:0,animation:"$exit ".concat(550,"ms ").concat(e.transitions.easing.easeInOut)},childPulsate:{position:"absolute",left:0,top:0,animation:"$pulsate 2500ms ".concat(e.transitions.easing.easeInOut," 200ms infinite")},"@keyframes enter":{"0%":{transform:"scale(0)",opacity:.1},"100%":{transform:"scale(1)",opacity:.3}},"@keyframes exit":{"0%":{opacity:1},"100%":{opacity:0}},"@keyframes pulsate":{"0%":{transform:"scale(1)"},"50%":{transform:"scale(0.92)"},"100%":{transform:"scale(1)"}}}}),{flip:!1,name:"MuiTouchRipple"})(a.memo(We));var Ue=a.forwardRef((function(e,t){var n=e.action,r=e.buttonRef,c=e.centerRipple,s=void 0!==c&&c,u=e.children,p=e.classes,d=e.className,f=e.component,m=void 0===f?"button":f,h=e.disabled,g=void 0!==h&&h,v=e.disableRipple,b=void 0!==v&&v,y=e.disableTouchRipple,x=void 0!==y&&y,w=e.focusRipple,E=void 0!==w&&w,A=e.focusVisibleClassName,C=e.onBlur,k=e.onClick,O=e.onFocus,S=e.onFocusVisible,T=e.onKeyDown,I=e.onKeyUp,L=e.onMouseDown,R=e.onMouseLeave,D=e.onMouseUp,P=e.onTouchEnd,M=e.onTouchMove,N=e.onTouchStart,F=e.onDragLeave,$=e.tabIndex,H=void 0===$?0:$,z=e.TouchRippleProps,B=e.type,W=void 0===B?"button":B,V=(0,o.A)(e,["action","buttonRef","centerRipple","children","classes","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","onBlur","onClick","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","onDragLeave","tabIndex","TouchRippleProps","type"]),U=a.useRef(null),X=a.useRef(null),K=a.useState(!1),j=K[0],Y=K[1];g&&j&&Y(!1);var q=Fe(),G=q.isFocusVisible,_=q.onBlurVisible,J=q.ref;function Q(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:x;return(0,Oe.A)((function(o){return t&&t(o),!n&&X.current&&X.current[e](o),!0}))}a.useImperativeHandle(n,(function(){return{focusVisible:function(){Y(!0),U.current.focus()}}}),[]),a.useEffect((function(){j&&E&&!b&&X.current.pulsate()}),[b,E,j]);var Z=Q("start",L),ee=Q("stop",F),te=Q("stop",D),ne=Q("stop",(function(e){j&&e.preventDefault(),R&&R(e)})),oe=Q("start",N),re=Q("stop",P),ie=Q("stop",M),ae=Q("stop",(function(e){j&&(_(e),Y(!1)),C&&C(e)}),!1),le=(0,Oe.A)((function(e){U.current||(U.current=e.currentTarget),G(e)&&(Y(!0),S&&S(e)),O&&O(e)})),ce=function(){var e=ke.findDOMNode(U.current);return m&&"button"!==m&&!("A"===e.tagName&&e.href)},se=a.useRef(!1),ue=(0,Oe.A)((function(e){E&&!se.current&&j&&X.current&&" "===e.key&&(se.current=!0,e.persist(),X.current.stop(e,(function(){X.current.start(e)}))),e.target===e.currentTarget&&ce()&&" "===e.key&&e.preventDefault(),T&&T(e),e.target===e.currentTarget&&ce()&&"Enter"===e.key&&!g&&(e.preventDefault(),k&&k(e))})),pe=(0,Oe.A)((function(e){E&&" "===e.key&&X.current&&j&&!e.defaultPrevented&&(se.current=!1,e.persist(),X.current.stop(e,(function(){X.current.pulsate(e)}))),I&&I(e),k&&e.target===e.currentTarget&&ce()&&" "===e.key&&!e.defaultPrevented&&k(e)})),de=m;"button"===de&&V.href&&(de="a");var fe={};"button"===de?(fe.type=W,fe.disabled=g):("a"===de&&V.href||(fe.role="button"),fe["aria-disabled"]=g);var he=(0,me.A)(r,t),ge=(0,me.A)(J,U),ve=(0,me.A)(he,ge),be=a.useState(!1),ye=be[0],xe=be[1];a.useEffect((function(){xe(!0)}),[]);var we=ye&&!b&&!g;return a.createElement(de,(0,i.A)({className:(0,l.A)(p.root,d,j&&[p.focusVisible,A],g&&p.disabled),onBlur:ae,onClick:k,onFocus:le,onKeyDown:ue,onKeyUp:pe,onMouseDown:Z,onMouseLeave:ne,onMouseUp:te,onDragLeave:ee,onTouchEnd:re,onTouchMove:ie,onTouchStart:oe,ref:ve,tabIndex:g?-1:H},fe,V),u,we?a.createElement(Ve,(0,i.A)({ref:X,center:s},z)):null)}));const Xe=(0,c.A)({root:{display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle","-moz-appearance":"none","-webkit-appearance":"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},"&$disabled":{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}},disabled:{},focusVisible:{}},{name:"MuiButtonBase"})(Ue);var Ke=a.forwardRef((function(e,t){var n=e.edge,r=void 0!==n&&n,c=e.children,s=e.classes,u=e.className,p=e.color,d=void 0===p?"default":p,f=e.disabled,m=void 0!==f&&f,h=e.disableFocusRipple,g=void 0!==h&&h,v=e.size,b=void 0===v?"medium":v,y=(0,o.A)(e,["edge","children","classes","className","color","disabled","disableFocusRipple","size"]);return a.createElement(Xe,(0,i.A)({className:(0,l.A)(s.root,u,"default"!==d&&s["color".concat((0,xe.A)(d))],m&&s.disabled,"small"===b&&s["size".concat((0,xe.A)(b))],{start:s.edgeStart,end:s.edgeEnd}[r]),centerRipple:!0,focusRipple:!g,disabled:m,ref:t},y),a.createElement("span",{className:s.label},c))}));const je=(0,c.A)((function(e){return{root:{textAlign:"center",flex:"0 0 auto",fontSize:e.typography.pxToRem(24),padding:12,borderRadius:"50%",overflow:"visible",color:e.palette.action.active,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{backgroundColor:(0,Ce.X4)(e.palette.action.active,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"&$disabled":{backgroundColor:"transparent",color:e.palette.action.disabled}},edgeStart:{marginLeft:-12,"$sizeSmall&":{marginLeft:-3}},edgeEnd:{marginRight:-12,"$sizeSmall&":{marginRight:-3}},colorInherit:{color:"inherit"},colorPrimary:{color:e.palette.primary.main,"&:hover":{backgroundColor:(0,Ce.X4)(e.palette.primary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},colorSecondary:{color:e.palette.secondary.main,"&:hover":{backgroundColor:(0,Ce.X4)(e.palette.secondary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},disabled:{},sizeSmall:{padding:3,fontSize:e.typography.pxToRem(18)},label:{width:"100%",display:"flex",alignItems:"inherit",justifyContent:"inherit"}}}),{name:"MuiIconButton"})(Ke);var Ye=n(4507);const qe=(0,Ye.A)(a.createElement("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");function Ge(e){return"Backspace"===e.key||"Delete"===e.key}var _e=a.forwardRef((function(e,t){var n=e.avatar,r=e.classes,c=e.className,s=e.clickable,u=e.color,p=void 0===u?"default":u,d=e.component,f=e.deleteIcon,m=e.disabled,h=void 0!==m&&m,g=e.icon,v=e.label,b=e.onClick,y=e.onDelete,x=e.onKeyDown,w=e.onKeyUp,E=e.size,A=void 0===E?"medium":E,C=e.variant,k=void 0===C?"default":C,O=(0,o.A)(e,["avatar","classes","className","clickable","color","component","deleteIcon","disabled","icon","label","onClick","onDelete","onKeyDown","onKeyUp","size","variant"]),S=a.useRef(null),T=(0,me.A)(S,t),I=function(e){e.stopPropagation(),y&&y(e)},L=!(!1===s||!b)||s,R="small"===A,D=d||(L?Xe:"div"),P=D===Xe?{component:"div"}:{},M=null;if(y){var N=(0,l.A)("default"!==p&&("default"===k?r["deleteIconColor".concat((0,xe.A)(p))]:r["deleteIconOutlinedColor".concat((0,xe.A)(p))]),R&&r.deleteIconSmall);M=f&&a.isValidElement(f)?a.cloneElement(f,{className:(0,l.A)(f.props.className,r.deleteIcon,N),onClick:I}):a.createElement(qe,{className:(0,l.A)(r.deleteIcon,N),onClick:I})}var F=null;n&&a.isValidElement(n)&&(F=a.cloneElement(n,{className:(0,l.A)(r.avatar,n.props.className,R&&r.avatarSmall,"default"!==p&&r["avatarColor".concat((0,xe.A)(p))])}));var $=null;return g&&a.isValidElement(g)&&($=a.cloneElement(g,{className:(0,l.A)(r.icon,g.props.className,R&&r.iconSmall,"default"!==p&&r["iconColor".concat((0,xe.A)(p))])})),a.createElement(D,(0,i.A)({role:L||y?"button":void 0,className:(0,l.A)(r.root,c,"default"!==p&&[r["color".concat((0,xe.A)(p))],L&&r["clickableColor".concat((0,xe.A)(p))],y&&r["deletableColor".concat((0,xe.A)(p))]],"default"!==k&&[r.outlined,{primary:r.outlinedPrimary,secondary:r.outlinedSecondary}[p]],h&&r.disabled,R&&r.sizeSmall,L&&r.clickable,y&&r.deletable),"aria-disabled":!!h||void 0,tabIndex:L||y?0:void 0,onClick:b,onKeyDown:function(e){e.currentTarget===e.target&&Ge(e)&&e.preventDefault(),x&&x(e)},onKeyUp:function(e){e.currentTarget===e.target&&(y&&Ge(e)?y(e):"Escape"===e.key&&S.current&&S.current.blur()),w&&w(e)},ref:T},P,O),F||$,a.createElement("span",{className:(0,l.A)(r.label,R&&r.labelSmall)},v),M)}));const Je=(0,c.A)((function(e){var t="light"===e.palette.type?e.palette.grey[300]:e.palette.grey[700],n=(0,Ce.X4)(e.palette.text.primary,.26);return{root:{fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,color:e.palette.getContrastText(t),backgroundColor:t,borderRadius:16,whiteSpace:"nowrap",transition:e.transitions.create(["background-color","box-shadow"]),cursor:"default",outline:0,textDecoration:"none",border:"none",padding:0,verticalAlign:"middle",boxSizing:"border-box","&$disabled":{opacity:.5,pointerEvents:"none"},"& $avatar":{marginLeft:5,marginRight:-6,width:24,height:24,color:"light"===e.palette.type?e.palette.grey[700]:e.palette.grey[300],fontSize:e.typography.pxToRem(12)},"& $avatarColorPrimary":{color:e.palette.primary.contrastText,backgroundColor:e.palette.primary.dark},"& $avatarColorSecondary":{color:e.palette.secondary.contrastText,backgroundColor:e.palette.secondary.dark},"& $avatarSmall":{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:e.typography.pxToRem(10)}},sizeSmall:{height:24},colorPrimary:{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText},colorSecondary:{backgroundColor:e.palette.secondary.main,color:e.palette.secondary.contrastText},disabled:{},clickable:{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover, &:focus":{backgroundColor:(0,Ce.tL)(t,.08)},"&:active":{boxShadow:e.shadows[1]}},clickableColorPrimary:{"&:hover, &:focus":{backgroundColor:(0,Ce.tL)(e.palette.primary.main,.08)}},clickableColorSecondary:{"&:hover, &:focus":{backgroundColor:(0,Ce.tL)(e.palette.secondary.main,.08)}},deletable:{"&:focus":{backgroundColor:(0,Ce.tL)(t,.08)}},deletableColorPrimary:{"&:focus":{backgroundColor:(0,Ce.tL)(e.palette.primary.main,.2)}},deletableColorSecondary:{"&:focus":{backgroundColor:(0,Ce.tL)(e.palette.secondary.main,.2)}},outlined:{backgroundColor:"transparent",border:"1px solid ".concat("light"===e.palette.type?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),"$clickable&:hover, $clickable&:focus, $deletable&:focus":{backgroundColor:(0,Ce.X4)(e.palette.text.primary,e.palette.action.hoverOpacity)},"& $avatar":{marginLeft:4},"& $avatarSmall":{marginLeft:2},"& $icon":{marginLeft:4},"& $iconSmall":{marginLeft:2},"& $deleteIcon":{marginRight:5},"& $deleteIconSmall":{marginRight:3}},outlinedPrimary:{color:e.palette.primary.main,border:"1px solid ".concat(e.palette.primary.main),"$clickable&:hover, $clickable&:focus, $deletable&:focus":{backgroundColor:(0,Ce.X4)(e.palette.primary.main,e.palette.action.hoverOpacity)}},outlinedSecondary:{color:e.palette.secondary.main,border:"1px solid ".concat(e.palette.secondary.main),"$clickable&:hover, $clickable&:focus, $deletable&:focus":{backgroundColor:(0,Ce.X4)(e.palette.secondary.main,e.palette.action.hoverOpacity)}},avatar:{},avatarSmall:{},avatarColorPrimary:{},avatarColorSecondary:{},icon:{color:"light"===e.palette.type?e.palette.grey[700]:e.palette.grey[300],marginLeft:5,marginRight:-6},iconSmall:{width:18,height:18,marginLeft:4,marginRight:-4},iconColorPrimary:{color:"inherit"},iconColorSecondary:{color:"inherit"},label:{overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap"},labelSmall:{paddingLeft:8,paddingRight:8},deleteIcon:{WebkitTapHighlightColor:"transparent",color:n,height:22,width:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:(0,Ce.X4)(n,.4)}},deleteIconSmall:{height:16,width:16,marginRight:4,marginLeft:-4},deleteIconColorPrimary:{color:(0,Ce.X4)(e.palette.primary.contrastText,.7),"&:hover, &:active":{color:e.palette.primary.contrastText}},deleteIconColorSecondary:{color:(0,Ce.X4)(e.palette.secondary.contrastText,.7),"&:hover, &:active":{color:e.palette.secondary.contrastText}},deleteIconOutlinedColorPrimary:{color:(0,Ce.X4)(e.palette.primary.main,.7),"&:hover, &:active":{color:e.palette.primary.main}},deleteIconOutlinedColorSecondary:{color:(0,Ce.X4)(e.palette.secondary.main,.7),"&:hover, &:active":{color:e.palette.secondary.main}}}}),{name:"MuiChip"})(_e),Qe=(0,Ye.A)(a.createElement("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),Ze=(0,Ye.A)(a.createElement("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown");var et=n(296),tt=n(8060);function nt(e){return void 0!==e.normalize?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):e}function ot(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.ignoreAccents,n=void 0===t||t,o=e.ignoreCase,r=void 0===o||o,i=e.limit,a=e.matchFrom,l=void 0===a?"any":a,c=e.stringify,s=e.trim,u=void 0!==s&&s;return function(e,t){var o=t.inputValue,a=t.getOptionLabel,s=u?o.trim():o;r&&(s=s.toLowerCase()),n&&(s=nt(s));var p=e.filter((function(e){var t=(c||a)(e);return r&&(t=t.toLowerCase()),n&&(t=nt(t)),"start"===l?0===t.indexOf(s):t.indexOf(s)>-1}));return"number"==typeof i?p.slice(0,i):p}}function rt(e,t){for(var n=0;n<e.length;n+=1)if(t(e[n]))return n;return-1}var it=ot();function at(e){e.anchorEl,e.open;var t=(0,o.A)(e,["anchorEl","open"]);return a.createElement("div",t)}var lt=a.createElement(Qe,{fontSize:"small"}),ct=a.createElement(Ze,null),st=a.forwardRef((function(e,t){e.autoComplete,e.autoHighlight,e.autoSelect,e.blurOnSelect;var n,r=e.ChipProps,c=e.classes,s=e.className,u=(void 0===e.clearOnBlur&&e.freeSolo,e.clearOnEscape,e.clearText),p=void 0===u?"Clear":u,d=e.closeIcon,f=void 0===d?lt:d,m=e.closeText,h=void 0===m?"Close":m,g=(void 0===(e.debug,e.defaultValue)&&e.multiple,e.disableClearable),v=void 0!==g&&g,b=(e.disableCloseOnSelect,e.disabled),y=void 0!==b&&b,x=(e.disabledItemsFocusable,e.disableListWrap,e.disablePortal),w=void 0!==x&&x,E=(e.filterOptions,e.filterSelectedOptions,e.forcePopupIcon),A=void 0===E?"auto":E,C=e.freeSolo,k=void 0!==C&&C,O=e.fullWidth,S=void 0!==O&&O,T=e.getLimitTagsText,I=void 0===T?function(e){return"+".concat(e)}:T,L=(e.getOptionDisabled,e.getOptionLabel),R=void 0===L?function(e){return e}:L,D=(e.getOptionSelected,e.groupBy),P=(void 0===e.handleHomeEndKeys&&e.freeSolo,e.id,e.includeInputInList,e.inputValue,e.limitTags),M=void 0===P?-1:P,N=e.ListboxComponent,F=void 0===N?"ul":N,$=e.ListboxProps,H=e.loading,z=void 0!==H&&H,B=e.loadingText,W=void 0===B?"Loading…":B,V=e.multiple,U=void 0!==V&&V,X=e.noOptionsText,K=void 0===X?"No options":X,j=(e.onChange,e.onClose,e.onHighlightChange,e.onInputChange,e.onOpen,e.open,e.openOnFocus,e.openText),Y=void 0===j?"Open":j,q=(e.options,e.PaperComponent),G=void 0===q?Ae.A:q,_=e.PopperComponent,J=void 0===_?ye:_,Q=e.popupIcon,Z=void 0===Q?ct:Q,ee=e.renderGroup,te=e.renderInput,ne=e.renderOption,oe=e.renderTags,re=(void 0===e.selectOnFocus&&e.freeSolo,e.size),ie=void 0===re?"medium":re,ae=(e.value,(0,o.A)(e,["autoComplete","autoHighlight","autoSelect","blurOnSelect","ChipProps","classes","className","clearOnBlur","clearOnEscape","clearText","closeIcon","closeText","debug","defaultValue","disableClearable","disableCloseOnSelect","disabled","disabledItemsFocusable","disableListWrap","disablePortal","filterOptions","filterSelectedOptions","forcePopupIcon","freeSolo","fullWidth","getLimitTagsText","getOptionDisabled","getOptionLabel","getOptionSelected","groupBy","handleHomeEndKeys","id","includeInputInList","inputValue","limitTags","ListboxComponent","ListboxProps","loading","loadingText","multiple","noOptionsText","onChange","onClose","onHighlightChange","onInputChange","onOpen","open","openOnFocus","openText","options","PaperComponent","PopperComponent","popupIcon","renderGroup","renderInput","renderOption","renderTags","selectOnFocus","size","value"])),le=w?at:J,ce=function(e){var t=e.autoComplete,n=void 0!==t&&t,o=e.autoHighlight,r=void 0!==o&&o,l=e.autoSelect,c=void 0!==l&&l,s=e.blurOnSelect,u=void 0!==s&&s,p=e.clearOnBlur,d=void 0===p?!e.freeSolo:p,f=e.clearOnEscape,m=void 0!==f&&f,h=e.componentName,g=void 0===h?"useAutocomplete":h,v=e.debug,b=void 0!==v&&v,y=e.defaultValue,x=void 0===y?e.multiple?[]:null:y,w=e.disableClearable,E=void 0!==w&&w,A=e.disableCloseOnSelect,C=void 0!==A&&A,k=e.disabledItemsFocusable,O=void 0!==k&&k,S=e.disableListWrap,T=void 0!==S&&S,I=e.filterOptions,L=void 0===I?it:I,R=e.filterSelectedOptions,D=void 0!==R&&R,P=e.freeSolo,M=void 0!==P&&P,N=e.getOptionDisabled,F=e.getOptionLabel,$=void 0===F?function(e){return e}:F,H=e.getOptionSelected,z=void 0===H?function(e,t){return e===t}:H,B=e.groupBy,W=e.handleHomeEndKeys,V=void 0===W?!e.freeSolo:W,U=e.id,X=e.includeInputInList,K=void 0!==X&&X,j=e.inputValue,Y=e.multiple,q=void 0!==Y&&Y,G=e.onChange,_=e.onClose,J=e.onHighlightChange,Q=e.onInputChange,Z=e.onOpen,ee=e.open,te=e.openOnFocus,ne=void 0!==te&&te,oe=e.options,re=e.selectOnFocus,ie=void 0===re?!e.freeSolo:re,ae=e.value,le=function(e){var t=a.useState(e),n=t[0],o=t[1],r=e||n;return a.useEffect((function(){null==n&&o("mui-".concat(Math.round(1e5*Math.random())))}),[n]),r}(U),ce=$,se=a.useRef(!1),ue=a.useRef(!0),pe=a.useRef(null),de=a.useRef(null),me=a.useState(null),he=me[0],ge=me[1],ve=a.useState(-1),be=ve[0],ye=ve[1],xe=r?0:-1,we=a.useRef(xe),Ee=(0,tt.A)({controlled:ae,default:x,name:g}),Ae=(0,et.A)(Ee,2),Ce=Ae[0],ke=Ae[1],Se=(0,tt.A)({controlled:j,default:"",name:g,state:"inputValue"}),Te=(0,et.A)(Se,2),Ie=Te[0],Le=Te[1],Re=a.useState(!1),De=Re[0],Pe=Re[1],Me=(0,Oe.A)((function(e,t){var n;if(q)n="";else if(null==t)n="";else{var o=ce(t);n="string"==typeof o?o:""}Ie!==n&&(Le(n),Q&&Q(e,n,"reset"))}));a.useEffect((function(){Me(null,Ce)}),[Ce,Me]);var Ne=(0,tt.A)({controlled:ee,default:!1,name:g,state:"open"}),Fe=(0,et.A)(Ne,2),$e=Fe[0],He=Fe[1],ze=!q&&null!=Ce&&Ie===ce(Ce),Be=$e,We=Be?L(oe.filter((function(e){return!D||!(q?Ce:[Ce]).some((function(t){return null!==t&&z(e,t)}))})),{inputValue:ze?"":Ie,getOptionLabel:ce}):[],Ve=(0,Oe.A)((function(e){-1===e?pe.current.focus():he.querySelector('[data-tag-index="'.concat(e,'"]')).focus()}));a.useEffect((function(){q&&be>Ce.length-1&&(ye(-1),Ve(-1))}),[Ce,q,be,Ve]);var Ue=(0,Oe.A)((function(e){var t=e.event,n=e.index,o=e.reason,r=void 0===o?"auto":o;if(we.current=n,-1===n?pe.current.removeAttribute("aria-activedescendant"):pe.current.setAttribute("aria-activedescendant","".concat(le,"-option-").concat(n)),J&&J(t,-1===n?null:We[n],r),de.current){var i=de.current.querySelector("[data-focus]");i&&i.removeAttribute("data-focus");var a=de.current.parentElement.querySelector('[role="listbox"]');if(a)if(-1!==n){var l=de.current.querySelector('[data-option-index="'.concat(n,'"]'));if(l&&(l.setAttribute("data-focus","true"),a.scrollHeight>a.clientHeight&&"mouse"!==r)){var c=l,s=a.clientHeight+a.scrollTop,u=c.offsetTop+c.offsetHeight;u>s?a.scrollTop=u-a.clientHeight:c.offsetTop-c.offsetHeight*(B?1.3:0)<a.scrollTop&&(a.scrollTop=c.offsetTop-c.offsetHeight*(B?1.3:0))}}else a.scrollTop=0}})),Xe=(0,Oe.A)((function(e){var t=e.event,o=e.diff,r=e.direction,i=void 0===r?"next":r,a=e.reason,l=void 0===a?"auto":a;if(Be){var c=function(e,t){if(!de.current||-1===e)return-1;for(var n=e;;){if("next"===t&&n===We.length||"previous"===t&&-1===n)return-1;var o=de.current.querySelector('[data-option-index="'.concat(n,'"]')),r=!O&&o&&(o.disabled||"true"===o.getAttribute("aria-disabled"));if(!(o&&!o.hasAttribute("tabindex")||r))return n;n+="next"===t?1:-1}}(function(){var e=We.length-1;if("reset"===o)return xe;if("start"===o)return 0;if("end"===o)return e;var t=we.current+o;return t<0?-1===t&&K?-1:T&&-1!==we.current||Math.abs(o)>1?0:e:t>e?t===e+1&&K?-1:T||Math.abs(o)>1?e:0:t}(),i);if(Ue({index:c,reason:l,event:t}),n&&"reset"!==o)if(-1===c)pe.current.value=Ie;else{var s=ce(We[c]);pe.current.value=s,0===s.toLowerCase().indexOf(Ie.toLowerCase())&&Ie.length>0&&pe.current.setSelectionRange(Ie.length,s.length)}}})),Ke=a.useCallback((function(){if(Be){var e=q?Ce[0]:Ce;if(0!==We.length&&null!=e){if(de.current)if(D||null==e)we.current>=We.length-1?Ue({index:We.length-1}):Ue({index:we.current});else{var t=We[we.current];if(q&&t&&-1!==rt(Ce,(function(e){return z(t,e)})))return;var n=rt(We,(function(t){return z(t,e)}));-1===n?Xe({diff:"reset"}):Ue({index:n})}}else Xe({diff:"reset"})}}),[0===We.length,!q&&Ce,D,Xe,Ue,Be,Ie,q]),je=(0,Oe.A)((function(e){(0,fe.A)(de,e),e&&Ke()}));a.useEffect((function(){Ke()}),[Ke]);var Ye=function(e){$e||(He(!0),Z&&Z(e))},qe=function(e,t){$e&&(He(!1),_&&_(e,t))},Ge=function(e,t,n,o){Ce!==t&&(G&&G(e,t,n,o),ke(t))},_e=a.useRef(!1),Je=function(e,t){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"options",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"select-option",r=t;if(q){var i=rt(r=Array.isArray(Ce)?Ce.slice():[],(function(e){return z(t,e)}));-1===i?r.push(t):"freeSolo"!==n&&(r.splice(i,1),o="remove-option")}Me(e,r),Ge(e,r,o,{option:t}),C||qe(e,o),(!0===u||"touch"===u&&_e.current||"mouse"===u&&!_e.current)&&pe.current.blur()},Qe=function(e,t){if(q){qe(e,"toggleInput");var n=be;-1===be?""===Ie&&"previous"===t&&(n=Ce.length-1):((n+="next"===t?1:-1)<0&&(n=0),n===Ce.length&&(n=-1)),n=function(e,t){if(-1===e)return-1;for(var n=e;;){if("next"===t&&n===Ce.length||"previous"===t&&-1===n)return-1;var o=he.querySelector('[data-tag-index="'.concat(n,'"]'));if(!o||o.hasAttribute("tabindex")&&!o.disabled&&"true"!==o.getAttribute("aria-disabled"))return n;n+="next"===t?1:-1}}(n,t),ye(n),Ve(n)}},Ze=function(e){se.current=!0,Le(""),Q&&Q(e,"","clear"),Ge(e,q?[]:null,"clear")},nt=function(e){return function(t){switch(-1!==be&&-1===["ArrowLeft","ArrowRight"].indexOf(t.key)&&(ye(-1),Ve(-1)),t.key){case"Home":Be&&V&&(t.preventDefault(),Xe({diff:"start",direction:"next",reason:"keyboard",event:t}));break;case"End":Be&&V&&(t.preventDefault(),Xe({diff:"end",direction:"previous",reason:"keyboard",event:t}));break;case"PageUp":t.preventDefault(),Xe({diff:-5,direction:"previous",reason:"keyboard",event:t}),Ye(t);break;case"PageDown":t.preventDefault(),Xe({diff:5,direction:"next",reason:"keyboard",event:t}),Ye(t);break;case"ArrowDown":t.preventDefault(),Xe({diff:1,direction:"next",reason:"keyboard",event:t}),Ye(t);break;case"ArrowUp":t.preventDefault(),Xe({diff:-1,direction:"previous",reason:"keyboard",event:t}),Ye(t);break;case"ArrowLeft":Qe(t,"previous");break;case"ArrowRight":Qe(t,"next");break;case"Enter":if(229===t.which)break;if(-1!==we.current&&Be){var o=We[we.current],r=!!N&&N(o);if(t.preventDefault(),r)return;Je(t,o,"select-option"),n&&pe.current.setSelectionRange(pe.current.value.length,pe.current.value.length)}else M&&""!==Ie&&!1===ze&&(q&&t.preventDefault(),Je(t,Ie,"create-option","freeSolo"));break;case"Escape":Be?(t.preventDefault(),t.stopPropagation(),qe(t,"escape")):m&&(""!==Ie||q&&Ce.length>0)&&(t.preventDefault(),t.stopPropagation(),Ze(t));break;case"Backspace":if(q&&""===Ie&&Ce.length>0){var i=-1===be?Ce.length-1:be,a=Ce.slice();a.splice(i,1),Ge(t,a,"remove-option",{option:Ce[i]})}}e.onKeyDown&&e.onKeyDown(t)}},ot=function(e){Pe(!0),ne&&!se.current&&Ye(e)},at=function(e){null===de.current||document.activeElement!==de.current.parentElement?(Pe(!1),ue.current=!0,se.current=!1,b&&""!==Ie||(c&&-1!==we.current&&Be?Je(e,We[we.current],"blur"):c&&M&&""!==Ie?Je(e,Ie,"blur","freeSolo"):d&&Me(e,Ce),qe(e,"blur"))):pe.current.focus()},lt=function(e){var t=e.target.value;Ie!==t&&(Le(t),Q&&Q(e,t,"input")),""===t?E||q||Ge(e,null,"clear"):Ye(e)},ct=function(e){Ue({event:e,index:Number(e.currentTarget.getAttribute("data-option-index")),reason:"mouse"})},st=function(){_e.current=!0},ut=function(e){var t=Number(e.currentTarget.getAttribute("data-option-index"));Je(e,We[t],"select-option"),_e.current=!1},pt=function(e){return function(t){var n=Ce.slice();n.splice(e,1),Ge(t,n,"remove-option",{option:Ce[e]})}},dt=function(e){$e?qe(e,"toggleInput"):Ye(e)},ft=function(e){e.target.getAttribute("id")!==le&&e.preventDefault()},mt=function(){pe.current.focus(),ie&&ue.current&&pe.current.selectionEnd-pe.current.selectionStart==0&&pe.current.select(),ue.current=!1},ht=function(e){""!==Ie&&$e||dt(e)},gt=M&&Ie.length>0;gt=gt||(q?Ce.length>0:null!==Ce);var vt=We;return B&&(new Map,vt=We.reduce((function(e,t,n){var o=B(t);return e.length>0&&e[e.length-1].group===o?e[e.length-1].options.push(t):e.push({key:n,index:n,group:o,options:[t]}),e}),[])),{getRootProps:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,i.A)({"aria-owns":Be?"".concat(le,"-popup"):null,role:"combobox","aria-expanded":Be},e,{onKeyDown:nt(e),onMouseDown:ft,onClick:mt})},getInputLabelProps:function(){return{id:"".concat(le,"-label"),htmlFor:le}},getInputProps:function(){return{id:le,value:Ie,onBlur:at,onFocus:ot,onChange:lt,onMouseDown:ht,"aria-activedescendant":Be?"":null,"aria-autocomplete":n?"both":"list","aria-controls":Be?"".concat(le,"-popup"):null,autoComplete:"off",ref:pe,autoCapitalize:"none",spellCheck:"false"}},getClearProps:function(){return{tabIndex:-1,onClick:Ze}},getPopupIndicatorProps:function(){return{tabIndex:-1,onClick:dt}},getTagProps:function(e){var t=e.index;return{key:t,"data-tag-index":t,tabIndex:-1,onDelete:pt(t)}},getListboxProps:function(){return{role:"listbox",id:"".concat(le,"-popup"),"aria-labelledby":"".concat(le,"-label"),ref:je,onMouseDown:function(e){e.preventDefault()}}},getOptionProps:function(e){var t=e.index,n=e.option,o=(q?Ce:[Ce]).some((function(e){return null!=e&&z(n,e)})),r=!!N&&N(n);return{key:t,tabIndex:-1,role:"option",id:"".concat(le,"-option-").concat(t),onMouseOver:ct,onClick:ut,onTouchStart:st,"data-option-index":t,"aria-disabled":r,"aria-selected":o}},id:le,inputValue:Ie,value:Ce,dirty:gt,popupOpen:Be,focused:De||-1!==be,anchorEl:he,setAnchorEl:ge,focusedTag:be,groupedOptions:vt}}((0,i.A)({},e,{componentName:"Autocomplete"})),se=ce.getRootProps,ue=ce.getInputProps,pe=ce.getInputLabelProps,de=ce.getPopupIndicatorProps,me=ce.getClearProps,he=ce.getTagProps,ge=ce.getListboxProps,ve=ce.getOptionProps,be=ce.value,xe=ce.dirty,we=ce.id,Ce=ce.popupOpen,ke=ce.focused,Se=ce.focusedTag,Te=ce.anchorEl,Ie=ce.setAnchorEl,Le=ce.inputValue,Re=ce.groupedOptions;if(U&&be.length>0){var De=function(e){return(0,i.A)({className:(0,l.A)(c.tag,"small"===ie&&c.tagSizeSmall),disabled:y},he(e))};n=oe?oe(be,De):be.map((function(e,t){return a.createElement(Je,(0,i.A)({label:R(e),size:ie},De({index:t}),r))}))}if(M>-1&&Array.isArray(n)){var Pe=n.length-M;!ke&&Pe>0&&(n=n.splice(0,M)).push(a.createElement("span",{className:c.tag,key:n.length},I(Pe)))}var Me=ee||function(e){return a.createElement("li",{key:e.key},a.createElement(Ee,{className:c.groupLabel,component:"div"},e.group),a.createElement("ul",{className:c.groupUl},e.children))},Ne=ne||R,Fe=function(e,t){var n=ve({option:e,index:t});return a.createElement("li",(0,i.A)({},n,{className:c.option}),Ne(e,{selected:n["aria-selected"],inputValue:Le}))},$e=!v&&!y,He=(!k||!0===A)&&!1!==A;return a.createElement(a.Fragment,null,a.createElement("div",(0,i.A)({ref:t,className:(0,l.A)(c.root,s,ke&&c.focused,S&&c.fullWidth,$e&&c.hasClearIcon,He&&c.hasPopupIcon)},se(ae)),te({id:we,disabled:y,fullWidth:!0,size:"small"===ie?"small":void 0,InputLabelProps:pe(),InputProps:{ref:Ie,className:c.inputRoot,startAdornment:n,endAdornment:a.createElement("div",{className:c.endAdornment},$e?a.createElement(je,(0,i.A)({},me(),{"aria-label":p,title:p,className:(0,l.A)(c.clearIndicator,xe&&c.clearIndicatorDirty)}),f):null,He?a.createElement(je,(0,i.A)({},de(),{disabled:y,"aria-label":Ce?h:Y,title:Ce?h:Y,className:(0,l.A)(c.popupIndicator,Ce&&c.popupIndicatorOpen)}),Z):null)},inputProps:(0,i.A)({className:(0,l.A)(c.input,-1===Se&&c.inputFocused),disabled:y},ue())})),Ce&&Te?a.createElement(le,{className:(0,l.A)(c.popper,w&&c.popperDisablePortal),style:{width:Te?Te.clientWidth:null},role:"presentation",anchorEl:Te,open:!0},a.createElement(G,{className:c.paper},z&&0===Re.length?a.createElement("div",{className:c.loading},W):null,0!==Re.length||k||z?null:a.createElement("div",{className:c.noOptions},K),Re.length>0?a.createElement(F,(0,i.A)({className:c.listbox},ge(),$),Re.map((function(e,t){return D?Me({key:e.key,group:e.group,children:e.options.map((function(t,n){return Fe(t,e.index+n)}))}):Fe(e,t)}))):null)):null)}));const ut=(0,c.A)((function(e){var t;return{root:{"&$focused $clearIndicatorDirty":{visibility:"visible"},"@media (pointer: fine)":{"&:hover $clearIndicatorDirty":{visibility:"visible"}}},fullWidth:{width:"100%"},focused:{},tag:{margin:3,maxWidth:"calc(100% - 6px)"},tagSizeSmall:{margin:2,maxWidth:"calc(100% - 4px)"},hasPopupIcon:{},hasClearIcon:{},inputRoot:{flexWrap:"wrap","$hasPopupIcon &, $hasClearIcon &":{paddingRight:30},"$hasPopupIcon$hasClearIcon &":{paddingRight:56},"& $input":{width:0,minWidth:30},'&[class*="MuiInput-root"]':{paddingBottom:1,"& $input":{padding:4},"& $input:first-child":{padding:"6px 0"}},'&[class*="MuiInput-root"][class*="MuiInput-marginDense"]':{"& $input":{padding:"4px 4px 5px"},"& $input:first-child":{padding:"3px 0 6px"}},'&[class*="MuiOutlinedInput-root"]':{padding:9,"$hasPopupIcon &, $hasClearIcon &":{paddingRight:39},"$hasPopupIcon$hasClearIcon &":{paddingRight:65},"& $input":{padding:"9.5px 4px"},"& $input:first-child":{paddingLeft:6},"& $endAdornment":{right:9}},'&[class*="MuiOutlinedInput-root"][class*="MuiOutlinedInput-marginDense"]':{padding:6,"& $input":{padding:"4.5px 4px"}},'&[class*="MuiFilledInput-root"]':{paddingTop:19,paddingLeft:8,"$hasPopupIcon &, $hasClearIcon &":{paddingRight:39},"$hasPopupIcon$hasClearIcon &":{paddingRight:65},"& $input":{padding:"9px 4px"},"& $endAdornment":{right:9}},'&[class*="MuiFilledInput-root"][class*="MuiFilledInput-marginDense"]':{paddingBottom:1,"& $input":{padding:"4.5px 4px"}}},input:{flexGrow:1,textOverflow:"ellipsis",opacity:0},inputFocused:{opacity:1},endAdornment:{position:"absolute",right:0,top:"calc(50% - 14px)"},clearIndicator:{marginRight:-2,padding:4,visibility:"hidden"},clearIndicatorDirty:{},popupIndicator:{padding:2,marginRight:-2},popupIndicatorOpen:{transform:"rotate(180deg)"},popper:{zIndex:e.zIndex.modal},popperDisablePortal:{position:"absolute"},paper:(0,i.A)({},e.typography.body1,{overflow:"hidden",margin:"4px 0"}),listbox:{listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto"},loading:{color:e.palette.text.secondary,padding:"14px 16px"},noOptions:{color:e.palette.text.secondary,padding:"14px 16px"},option:(t={minHeight:48,display:"flex",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16},(0,r.A)(t,e.breakpoints.up("sm"),{minHeight:"auto"}),(0,r.A)(t,'&[aria-selected="true"]',{backgroundColor:e.palette.action.selected}),(0,r.A)(t,'&[data-focus="true"]',{backgroundColor:e.palette.action.hover}),(0,r.A)(t,"&:active",{backgroundColor:e.palette.action.selected}),(0,r.A)(t,'&[aria-disabled="true"]',{opacity:e.palette.action.disabledOpacity,pointerEvents:"none"}),t),groupLabel:{backgroundColor:e.palette.background.paper,top:-8},groupUl:{padding:0,"& $option":{paddingLeft:24}}}}),{name:"MuiAutocomplete"})(st)}}]);PK�������!�#P%�%�)��settings/build/43.5782841cd77291fd781f.jsnu�[��������"use strict";(globalThis.webpackChunkreally_simple_ssl=globalThis.webpackChunkreally_simple_ssl||[]).push([[43],{8043:(e,s,t)=>{t.r(s),t.d(s,{default:()=>I});var l=t(1609);const a=e=>{const s=!!e.block.footer&&e.block.footer,t=e.block;let a="rsssl-grid-item "+t.class+" rsssl-"+t.id;return(0,l.createElement)("div",{key:"block-"+t.id,className:a},(0,l.createElement)("div",{key:"header-"+t.id,className:"rsssl-grid-item-header"},t.header&&wp.element.createElement(t.header),!t.header&&(0,l.createElement)(l.Fragment,null,(0,l.createElement)("h3",{className:"rsssl-grid-title rsssl-h4"},t.title),(0,l.createElement)("div",{className:"rsssl-grid-item-controls"}))),(0,l.createElement)("div",{key:"content-"+t.id,className:"rsssl-grid-item-content"},wp.element.createElement(e.block.content)),!s&&(0,l.createElement)("div",{key:"footer-"+t.id,className:"rsssl-grid-item-footer"}),s&&(0,l.createElement)("div",{key:"footer-"+t.id,className:"rsssl-grid-item-footer"},wp.element.createElement(s)))};var r=t(7723),n=t(6087),c=t(2828);const i=()=>{const{setFilter:e,filter:s,fetchFilter:t,notices:a,error:i}=(0,c.A)();(0,n.useEffect)((()=>{t()}),[]);const o=s=>{let t=s.target.getAttribute("data-filter");"all"!==t&&"remaining"!==t||e(t)};if(i)return(0,l.createElement)(l.Fragment,null);let m=0,d=0;return m=a.length,d=a.filter((function(e){return"open"===e.output.status||"warning"===e.output.status})).length,(0,l.createElement)(l.Fragment,null,(0,l.createElement)("h3",{className:"rsssl-grid-title rsssl-h4"},(0,r.__)("Progress","really-simple-ssl")),(0,l.createElement)("div",{className:"rsssl-grid-item-controls"},(0,l.createElement)("div",{className:"rsssl-task-switcher-container rsssl-active-filter-"+s},(0,l.createElement)("span",{className:"rsssl-task-switcher rsssl-all-tasks",onClick:o,htmlFor:"rsssl-all-tasks","data-filter":"all"},(0,r.__)("All tasks","really-simple-ssl"),(0,l.createElement)("span",{className:"rsssl_task_count"},"(",m,")")),(0,l.createElement)("span",{className:"rsssl-task-switcher rsssl-remaining-tasks",onClick:o,htmlFor:"rsssl-remaining-tasks","data-filter":"remaining"},(0,r.__)("Remaining tasks","really-simple-ssl"),(0,l.createElement)("span",{className:"rsssl_task_count"},"(",d,")")))))};var o=t(9684);const m=e=>{const{percentageCompleted:s,progressText:t,filter:a,notices:i,progressLoaded:m,getProgressData:u,error:g}=(0,c.A)();(0,n.useEffect)((()=>{u()}),[]);const h=()=>Object.assign({},{width:s+"%"});let p="";if(s<80&&(p+="rsssl-orange"),!m||g)return(0,l.createElement)("div",{className:"rsssl-progress-block"},(0,l.createElement)("div",{className:"rsssl-progress-bar"},(0,l.createElement)("div",{className:"rsssl-progress"},(0,l.createElement)("div",{className:"rsssl-bar rsssl-orange",style:h()}))),(0,l.createElement)("div",{className:"rsssl-progress-text"},(0,l.createElement)("h1",{className:"rsssl-progress-percentage"},"0%"),(0,l.createElement)("h5",{className:"rsssl-progress-text-span"},(0,r.__)("Loading...","really-simple-ssl"))),(0,l.createElement)("div",{className:"rsssl-scroll-container"},(0,l.createElement)("div",{className:"rsssl-task-element"},(0,l.createElement)("span",{className:"rsssl-task-status rsssl-loading"},(0,r.__)("Loading...","really-simple-ssl")),(0,l.createElement)("p",{className:"rsssl-task-message"},(0,r.__)("Loading...","really-simple-ssl")))));let f=i;return"remaining"===a&&(f=f.filter((function(e){return"open"===e.output.status||"warning"===e.output.status}))),(0,l.createElement)("div",{className:"rsssl-progress-block"},(0,l.createElement)("div",{className:"rsssl-progress-bar"},(0,l.createElement)("div",{className:"rsssl-progress"},(0,l.createElement)("div",{className:"rsssl-bar "+p,style:h()}))),(0,l.createElement)("div",{className:"rsssl-progress-text"},(0,l.createElement)(d,{percentageCompleted:s}),(0,l.createElement)("h5",{className:"rsssl-progress-text-span"},t)),(0,l.createElement)("div",{className:"rsssl-scroll-container"},f.map(((e,s)=>(0,l.createElement)(o.A,{key:"task-"+s,notice:e})))))},d=({percentageCompleted:e})=>{const[s,t]=(0,n.useState)(0),a=(0,n.useRef)(0);return(0,n.useEffect)((()=>{const s=a.current,l=Date.now(),r=setInterval((()=>{const n=Date.now()-l,c=Math.min(n/1e3,1),i=(o=c,1-Math.pow(1-o,3));var o;const m=Math.min(s+(e-s)*i,e);c<1?(t(m),a.current=e):clearInterval(r)}),16);return()=>clearInterval(r)}),[e]),(0,l.createElement)("h1",{className:"rsssl-progress-percentage"},Math.round(s),"%")};var u=t(4937),g=t(6975),h=t(7283);const p=e=>{const{setShowOnBoardingModal:s}=(0,h.A)(),{fields:t}=(0,g.A)();let a=t.filter((e=>"redirect"===e.id))[0].value,n=t.filter((e=>"ssl_enabled"===e.id))[0].value,c=rsssl_settings.wpconfig_fix_required,i=t.filter((e=>"mixed_content_fixer"===e.id))[0].value,o="wp_redirect"===a||"htaccess"===a,m=n?(0,r.__)("SSL Activated","really-simple-ssl"):(0,r.__)("SSL not activated","really-simple-ssl"),d=n?"circle-check":"circle-times",p=n?"green":"red",f=o?"circle-check":"circle-times",v=o?"green":"red",E=i?"circle-check":"circle-times",w=i?"green":"red";return(0,l.createElement)(l.Fragment,null,!n&&(0,l.createElement)("button",{disabled:c,onClick:()=>s(!0),className:"button button-primary"},(0,r.__)("Activate SSL","really-simple-ssl")),rsssl_settings.pro_plugin_active&&(0,l.createElement)("span",{className:"rsssl-footer-left"},"Really Simple SSL Pro ",rsssl_settings.pro_version),!rsssl_settings.pro_plugin_active&&(0,l.createElement)("a",{href:rsssl_settings.upgrade_link,target:"_blank",rel:"noopener noreferrer",className:"button button-default"},(0,r.__)("Go Pro","really-simple-ssl")),(0,l.createElement)("div",{className:"rsssl-legend"},(0,l.createElement)(u.default,{name:d,color:p}),(0,l.createElement)("div",null,m)),(0,l.createElement)("div",{className:"rsssl-legend"},(0,l.createElement)(u.default,{name:E,color:w}),(0,l.createElement)("div",null,(0,r.__)("Mixed content","really-simple-ssl"))),(0,l.createElement)("div",{className:"rsssl-legend"},(0,l.createElement)(u.default,{name:f,color:v}),(0,l.createElement)("div",null,(0,r.__)("301 redirect","really-simple-ssl"))))},f=()=>(0,l.createElement)(l.Fragment,null,(0,l.createElement)("h3",{className:"rsssl-grid-title rsssl-h4"},(0,r.__)("Status","really-simple-ssl")),(0,l.createElement)("div",{className:"rsssl-grid-item-controls"},(0,l.createElement)("span",{className:"rsssl-header-html"}," ",(0,r.__)("Powered by Qualys","really-simple-ssl"))));var v=t(3056);const E=(e,s=new Date)=>{if("number"==typeof e&&(e.toString().length<13&&(e*=1e3),e=new Date(e)),!(e instanceof Date))return"-";let t={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3},l=new Intl.RelativeTimeFormat("en",{numeric:"auto"}),a=e-s;for(let e in t)if(Math.abs(a)>t[e]||"second"===e)return l.format(Math.round(a/t[e]),e)},w=({className:e,content:s,id:t})=>{const[a,r]=(0,n.useState)(!1);let c=a?"rsssl-hover":"";return(0,l.createElement)("div",{key:"score_container-"+t,className:"rsssl-score-container"},(0,l.createElement)("div",{onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),className:"rsssl-score-snippet "+e+" "+c},s))},C=()=>{const{dataLoaded:e,clearCache:s,endpointData:t,setEndpointData:a,sslData:c,setSslData:i,sslScanStatus:o,setSslScanStatus:m,isLocalHost:d,fetchSslData:g,runSslTest:h,intervalId:p,setIntervalId:f,requestActive:C,setRequestActive:_,setClearCache:b}=(0,v.A)(),y=(0,n.useRef)(!1);(0,n.useEffect)((()=>{e||g()}),[]);const N=()=>!c;(0,n.useEffect)((()=>{if(d())return;"active"===o&&c.summary&&c.summary.progress>=100&&(b(!0),y.current=!1,i(!1),a(!1)),"active"===o&&"ERROR"===c.status&&(b(!0),i(!1),a(!1));let e=c&&"READY"!==c.status,t="active"===o;s&&(e=!0);let l=c.errors||"ERROR"===c.status;if(C||l||!e&&!t)c&&"READY"===c.status&&(m("completed"),clearInterval(p));else if(m("active"),_(!0),!y.current){if(h(),!p){let e=setInterval((function(){h()}),4e3);f(e)}y.current=!0}}),[o,c]);const k=()=>{let e=0;return c&&c.summary.progress?e=c.summary.progress:0==e&&"active"===o&&(e=5),Object.assign({},{width:e+"%"})},S=(e,s,t)=>(0,l.createElement)(w,{className:e,content:s,id:t}),M=e=>{let s=0;return s=0==e?0:e<128?20:e<256?80:100,s};let z="rsssl-inactive",L=c?c.summary.progress:0,x=!!c&&c.summary.startTime,H="";x?((new Date).setTime(x),H=E(x)):H=(0,r.__)("No test started yet","really-simple-ssl");let A=!!c&&c.summary.statusMessage,D=c?c.summary.grade:"?";c&&"READY"===c.status&&(z=-1!==D.indexOf("A")?"rsssl-success":"rsssl-error"),N()&&(z="rsssl-inactive"),N();let V="https://www.ssllabs.com/analyze.html?d="+encodeURIComponent(window.location.protocol+"//"+window.location.host),F=!1,B="",R="black";return d()?(F=!0,R="red",B=(0,r.__)("Not available on localhost","really-simple-ssl")):c&&(c.errors||"ERROR"===c.status)?(F=!0,R="red",B=A):c&&L<100&&(F=!0,R="orange",B=A),(0,l.createElement)(l.Fragment,null,(0,l.createElement)("div",{className:"rsssl-ssl-labs"},(0,l.createElement)("div",{className:"rsssl-gridblock-progress-container "+z},(0,l.createElement)("div",{className:"rsssl-gridblock-progress",style:k()})),(0,l.createElement)("div",{className:"rsssl-gridblock-progress",style:k()}),(0,l.createElement)("div",{className:"rsssl-ssl-labs-select "+z},(0,l.createElement)("div",{className:"rsssl-ssl-labs-select-item"},(()=>{let e="processing";return N()&&(e="inactive"),t&&t.length>0&&(e="success",t.forEach((function(s,t){s.details.protocols&&s.details.protocols.forEach((function(s,t){"1.1"===s.version&&(e="error")}))}))),(0,l.createElement)(l.Fragment,null,"inactive"===e&&S("rsssl-test-inactive","Protocol support","protocol"),"processing"===e&&S("rsssl-test-processing","Protocol support...","protocol"),"error"===e&&S("rsssl-test-error","Supports TLS 1.1","protocol"),"success"===e&&S("rsssl-test-success","No TLS 1.1","protocol"))})(),(()=>{let e="processing";return N()&&(e="inactive"),t&&t.length>0&&(e=t.filter((function(e){return e.details.hstsPolicy&&"present"!==e.details.hstsPolicy.status})).length>0?"error":"success"),(0,l.createElement)(l.Fragment,null,"inactive"===e&&S("rsssl-test-inactive","HSTS","hsts"),"processing"===e&&S("rsssl-test-processing","HSTS...","hsts"),"error"===e&&S("rsssl-test-error","No HSTS header","hsts"),"success"===e&&S("rsssl-test-success","HSTS header detected","hsts"))})(),(()=>{let e="processing";return N()&&(e="inactive"),t&&t.length>0&&(e=t.filter((function(e){return e.grade&&-1===e.grade.indexOf("A")})).length>0?"error":"success"),(0,l.createElement)(l.Fragment,null,"inactive"===e&&S("rsssl-test-inactive","Certificate","certificate"),"processing"===e&&S("rsssl-test-processing","Certificate...","certificate"),"error"===e&&!F&&S("rsssl-test-error","Certificate issue","certificate"),"success"===e&&S("rsssl-test-success","Valid certificate","certificate"))})(),(()=>{let e=0,s="rsssl-test-processing";if(N()&&(s="rsssl-test-inactive"),t&&t.length>0){let l=256,a=128;t.forEach((function(e,s){e.details.suites&&e.details.suites.forEach((function(e,s){e.list.forEach((function(e,s){l=e.cipherStrength<l?e.cipherStrength:l,a=e.cipherStrength>a?e.cipherStrength:a}))}))})),e=(M(l)+M(a))/2,e=Math.round(e),s=e>70?"rsssl-test-success":"rsssl-test-error"}return(0,l.createElement)(l.Fragment,null,S(s,(0,r.__)("Cipher strength","really-simple-ssl")+" "+e+"%","cipher"))})()),(0,l.createElement)("div",{className:"rsssl-ssl-labs-select-item"},N()?(0,l.createElement)("h2",{className:"big-number"},"?"):(0,l.createElement)("h2",{className:"big-number"},D),N()&&(0,l.createElement)("div",null))),(0,l.createElement)("div",{className:"rsssl-ssl-labs-list"},(0,l.createElement)("div",{className:"rsssl-ssl-labs-list-item"},(0,l.createElement)(u.default,{name:"info",color:R}),(0,l.createElement)("p",{className:"rsssl-ssl-labs-list-item-text"},F&&B,!F&&(0,r.__)("What does my score mean?","really-simple-ssl")),(0,l.createElement)("a",{href:"https://really-simple-ssl.com/instructions/about-ssl-labs/",target:"_blank",rel:"noopener noreferrer"},(0,r.__)("Read more","really-simple-ssl"))),(0,l.createElement)("div",{className:"rsssl-ssl-labs-list-item"},(0,l.createElement)(u.default,{name:"list",color:"black"}),(0,l.createElement)("p",{className:"rsssl-ssl-labs-list-item-text"},(0,r.__)("Last check:","really-simple-ssl")),(0,l.createElement)("p",{className:"rsssl-ssl-labs-list-item-text"},H)),(0,l.createElement)("div",{className:"rsssl-ssl-labs-list-item"},(0,l.createElement)(u.default,{name:"external-link",color:"black"}),(0,l.createElement)("a",{href:V,target:"_blank",rel:"noopener noreferrer"},(0,r.__)("View detailed report on Qualys SSL Labs","really-simple-ssl"))))))},_=()=>{const{sslScanStatus:e,setSslScanStatus:s,isLocalHost:t}=(0,v.A)();let a="active"===e||t();return(0,l.createElement)(l.Fragment,null,(0,l.createElement)("button",{disabled:a,onClick:e=>s("active"),className:"button button-default"},"paused"===e&&(0,r.__)("Continue SSL Health check","really-simple-ssl"),"paused"!==e&&(0,r.__)("Check SSL Health","really-simple-ssl")))},b=()=>{const{fields:e,getFieldValue:s}=(0,g.A)(),[t,a]=(0,l.useState)(!1);return(0,l.useEffect)((()=>{1==s("enable_vulnerability_scanner")&&a(!0)}),[e]),(0,l.createElement)(l.Fragment,null,(0,l.createElement)("h3",{className:"rsssl-grid-title rsssl-h4"},t?(0,r.__)("Vulnerabilities","really-simple-ssl"):(0,r.__)("Hardening","really-simple-ssl")),(0,l.createElement)("div",{className:"rsssl-grid-item-controls"},(0,l.createElement)("span",{className:"rsssl-header-html"})))};var y=t(4449);const N=()=>{const{vulnerabilities:e,vulnerabilityScore:s,updates:t,dataLoaded:a,fetchVulnerabilities:n}=(0,y.A)(),{fields:c,getFieldValue:i}=(0,g.A)(),[o,m]=(0,l.useState)(""),[d,h]=(0,l.useState)(""),[p,f]=(0,l.useState)(""),[v,E]=(0,l.useState)(""),[w,C]=(0,l.useState)(""),[_,b]=(0,l.useState)(""),[N,k]=(0,l.useState)(0),[S,M]=(0,l.useState)(!1);(0,l.useEffect)((()=>{1==i("enable_vulnerability_scanner")&&M(!0)}),[c]),(0,l.useEffect)((()=>{a||n()}),[S]),(0,l.useEffect)((()=>{const s=1===e?(0,r.__)("vulnerability","really-simple-ssl"):(0,r.__)("vulnerabilities","really-simple-ssl");E(s.charAt(0).toUpperCase()+s.slice(1)),m(s);const l=1===t?(0,r.__)("update","really-simple-ssl"):(0,r.__)("updates","really-simple-ssl"),a=(0,r._n)("You have %s update pending","You have %s updates pending",t,"really-simple-ssl").replace("%s",t);h(l),f(l.charAt(0).toUpperCase()+l.slice(1)),C(a);const n=1===N?(0,r.__)("hardening feature","really-simple-ssl"):(0,r.__)("hardening features","really-simple-ssl");b(n)}),[e,t,N]),(0,l.useEffect)((()=>{if(c.length>0){let e=c.filter((e=>e.recommended));e=e.filter((e=>1!==e.value&&!0!==e.disabled)),k(e.length)}}),[c]);let z="rsssl-inactive",L=S?"rsp-success":"rsp-default",x="rsp-success",H="green",A="black";if(S||N>0||t>0){let e=s();e>=5?(L="rsp-critical",H="red"):e<4&&e>0&&(L="rsp-medium",H="yellow"),t>=5?(x="rsp-critical",A="red"):e<5&&e>0&&(x="rsp-medium",A="yellow"),e<N&&(e=N),e<t&&(e=t),z=0===e?"rsssl-success":e<5?"rsssl-warning":"rsssl-error"}const D={marginLeft:"0.3em"};return(0,l.createElement)(l.Fragment,null,a?(0,l.createElement)("div",{className:"rsssl-hardening"},(0,l.createElement)("div",{className:"rsssl-gridblock-progress"}),(0,l.createElement)("div",{className:"rsssl-hardening-select "+z},(0,l.createElement)("div",{className:"rsssl-hardening-select-item"},S?(0,l.createElement)(u.default,{color:H,size:23,name:"radar-duotone"}):(0,l.createElement)(u.default,{size:23,color:"red",name:"satellite-dish-duotone"}),(0,l.createElement)("h2",null,S?e:"?"),(0,l.createElement)("span",{className:"rsssl-badge "+L},v)),(0,l.createElement)("div",{className:"rsssl-hardening-select-item"},t?(0,l.createElement)(u.default,{size:23,color:A,name:"rotate-exclamation-light"}):(0,l.createElement)(u.default,{size:23,color:"black",name:"rotate-light"}),(0,l.createElement)("h2",null,t),(0,l.createElement)("span",{className:"rsssl-badge "+x},p))),(0,l.createElement)("div",{className:"rsssl-hardening-list"},(()=>{if(N){let e="circle-check",s="green";return N>0&&(e="info",s="yellow"),N>=5&&(e="circle-times",s="red"),(0,l.createElement)(l.Fragment,null,(0,l.createElement)("div",{className:"rsssl-hardening-list-item"},(0,l.createElement)(u.default,{name:e,color:s}),(0,l.createElement)("p",{className:"rsssl-hardening-list-item-text"},(0,r.__)("You have %s open %d","really-simple-ssl").replace("%s",N).replace("%d",_)),(0,l.createElement)("a",{href:"#settings/hardening"},(0,r.__)("Settings","really-simple-ssl"))))}return(0,l.createElement)(l.Fragment,null,(0,l.createElement)("div",{className:"rsssl-hardening-list-item"},(0,l.createElement)(u.default,{name:"circle-check",color:"green"}),(0,l.createElement)("p",{className:"rsssl-hardening-list-item-text"},(0,r.__)("Hardening features are configured","really-simple-ssl")),(0,l.createElement)("a",{style:D,href:"#settings/vulnerabilities",target:"_blank",rel:"noopener noreferrer"},(0,r.__)("What now","really-simple-ssl"),"?")))})(),S?(0,l.createElement)(l.Fragment,null):(0,l.createElement)(l.Fragment,null,(0,l.createElement)("div",{className:"rsssl-hardening-list-item"},(0,l.createElement)(u.default,{name:"info",color:"yellow"}),(0,l.createElement)("p",{className:"rsssl-hardening-list-item-text"}," ",(0,r.__)("Enable vulnerability detection","really-simple-ssl")),(0,l.createElement)("a",{href:"#settings/vulnerabilities"},(0,r.__)("Enable","really-simple-ssl")))),(()=>{let t="circle-check",a="green";return s()>0&&(t="info",a="yellow"),s()>=5&&(t="circle-times",a="red"),S?e?(0,l.createElement)(l.Fragment,null,(0,l.createElement)("div",{className:"rsssl-hardening-list-item"},(0,l.createElement)(u.default,{name:t,color:a}),(0,l.createElement)("p",{className:"rsssl-hardening-list-item-text"},(0,r.__)("You have %s %d","really-simple-ssl").replace("%s",e).replace("%d",o)),(0,l.createElement)("a",{style:D,href:"#settings/vulnerabilities"},(0,r.__)("Learn more","really-simple-ssl")))):(0,l.createElement)(l.Fragment,null,(0,l.createElement)("div",{className:"rsssl-hardening-list-item"},(0,l.createElement)(u.default,{name:"circle-check",color:"green"}),(0,l.createElement)("p",{className:"rsssl-hardening-list-item-text"},(0,r.__)("You have %s %d","really-simple-ssl").replace("%d",o).replace("%s",e)))):(0,l.createElement)(l.Fragment,null)})(),(()=>{let e="circle-check",s="green";return t>0&&(e="info",s="yellow"),t>=5&&(e="circle-times",s="red"),t?(0,l.createElement)(l.Fragment,null,(0,l.createElement)("div",{className:"rsssl-hardening-list-item"},(0,l.createElement)(u.default,{name:e,color:s}),(0,l.createElement)("p",{className:"rsssl-hardening-list-item-text"},w),(0,l.createElement)("a",{href:rsssl_settings.plugins_url+"?plugin_status=upgrade",style:D},p))):(0,l.createElement)(l.Fragment,null,(0,l.createElement)("div",{className:"rsssl-hardening-list-item"},(0,l.createElement)(u.default,{name:e,color:s}),(0,l.createElement)("p",{className:"rsssl-hardening-list-item-text"},w)))})())):(0,l.createElement)("div",{className:"rsssl-hardening"},(0,l.createElement)("div",{className:"rsssl-gridblock-progress"}),(0,l.createElement)("div",{className:"rsssl-hardening-select"},(0,l.createElement)("div",{className:"rsssl-hardening-select-item"},(0,l.createElement)(u.default,{size:23,color:"grey",name:"radar-duotone"}),(0,l.createElement)("h2",null,"0"),(0,l.createElement)("span",{className:"rsssl-badge rsp-default"},v)),(0,l.createElement)("div",{className:"rsssl-hardening-select-item"},(0,l.createElement)(u.default,{size:23,color:"grey",name:"rotate-exclamation-light"}),(0,l.createElement)("h2",null,"0"),(0,l.createElement)("span",{className:"rsssl-badge rsp-default"},p))),(0,l.createElement)("div",{className:"rsssl-hardening-list"},(0,l.createElement)("div",{className:"rsssl-hardening-list-item"},(0,l.createElement)(u.default,{color:"grey",name:"circle-check"}),(0,l.createElement)("p",{className:"rsssl-hardening-list-item-text"},(0,r.__)("Loading...","really-simple-ssl"))),(0,l.createElement)("div",{className:"rsssl-hardening-list-item"},(0,l.createElement)(u.default,{color:"grey",name:"circle-check"}),(0,l.createElement)("p",{className:"rsssl-hardening-list-item-text"},(0,r.__)("Loading...","really-simple-ssl"))),(0,l.createElement)("div",{className:"rsssl-hardening-list-item"},(0,l.createElement)(u.default,{color:"grey",name:"circle-check"}),(0,l.createElement)("p",{className:"rsssl-hardening-list-item-text"},(0,r.__)("Loading...","really-simple-ssl"))))))},k=e=>{const{lastChecked:s}=(0,y.A)(),{fields:t,getFieldValue:a}=(0,g.A)(),[n,c]=(0,l.useState)(!1);return(0,l.useEffect)((()=>{1==a("enable_vulnerability_scanner")&&c(!0)}),[t]),(0,l.createElement)(l.Fragment,null,(0,l.createElement)("a",{href:"#settings/vulnerabilities",className:"button button-default"},(0,r.__)("Settings","really-simple-ssl")),n?(0,l.createElement)("p",{className:"rsssl-small-text"},E(s)):null)},S=({link:e,content:s})=>(0,l.createElement)("div",{className:"rsssl-tips-tricks-element"},(0,l.createElement)("a",{href:e,target:"_blank",rel:"noopener noreferrer",title:"{content}"},(0,l.createElement)("div",{className:"rsssl-icon"},(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:"15"},(0,l.createElement)("path",{fill:"var(--rsp-grey-300)",d:"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"}))),(0,l.createElement)("div",{className:"rsssl-tips-tricks-content"},s))),M=()=>(0,l.createElement)("div",{className:"rsssl-tips-tricks-container"},[{content:"Definition: What is a Content Security Policy?",link:"https://really-simple-ssl.com/definition/What-is-a-Content-Security-Policy/"},{content:"Installing a Let's Encrypt certificate",link:"https://really-simple-ssl.com/install-ssl-certificate/"},{content:"Improve Security: (HSTS) HTTP Strict Transport Security",link:"https://really-simple-ssl.com/instructions/about-hsts/"},{content:"Improve Security: About vulnerabilities",link:"https://really-simple-ssl.com/instructions/about-vulnerabilities"},{content:"Instructions: Debugging with Really Simple SSL",link:"https://really-simple-ssl.com/instructions/debugging/"},{content:"Instructions: Configuring Hardening Features",link:"https://really-simple-ssl.com/instructions/about-hardening-features/"}].map(((e,s)=>(0,l.createElement)(S,{key:"trick-"+s,link:e.link,content:e.content})))),z=()=>(0,l.createElement)(l.Fragment,null,(0,l.createElement)("a",{href:"https://really-simple-ssl.com/knowledge-base-overview/",target:"_blank",rel:"noopener noreferrer",className:"button button-secondary"},(0,r.__)("Documentation","really-simple-ssl"))),L=()=>(0,l.createElement)(l.Fragment,null,(0,l.createElement)("h3",{className:"rsssl-grid-title rsssl-h4"},(0,r.__)("Other Plugins","really-simple-ssl")),(0,l.createElement)("div",{className:"rsssl-grid-item-controls"},(0,l.createElement)("span",{className:"rsssl-header-html"},(0,l.createElement)("a",{className:"rsp-logo",href:"https://really-simple-plugins.com/"},(0,l.createElement)("img",{src:rsssl_settings.plugin_url+"assets/img/really-simple-plugins.svg",alt:"Really Simple Plugins"})))));var x=t(9695),H=t(1621),A=t(207);const D=(0,H.vt)(((e,s)=>({error:!1,dataLoaded:!1,pluginData:[],updatePluginData:(t,l)=>{let a=s().pluginData;a.forEach((function(e,s){e.slug===t&&(a[s]=l)})),e((e=>({dataLoaded:!0,pluginData:a})))},getPluginData:e=>s().pluginData.filter((s=>s.slug===e))[0],fetchOtherPluginsData:async()=>{const{pluginData:s,error:t}=await A.Eo("otherpluginsdata").then((e=>{let s=[];s=e.plugins;let t=e.error;return t||s.forEach((function(e,t){s[t].pluginActionNice=V(e.pluginAction)})),{pluginData:s,error:t}}));e((e=>({dataLoaded:!0,pluginData:s,error:t})))},pluginActions:(e,t,l)=>{l&&l.preventDefault();let a={};a.slug=e,a.pluginAction=t;let r=s().getPluginData(e);"download"===t?r.pluginAction="downloading":"activate"===t&&(r.pluginAction="activating"),r.pluginActionNice=V(r.pluginAction),s().updatePluginData(e,r),"installed"!==t&&"upgrade-to-premium"!==t&&A.Eo("plugin_actions",a).then((t=>{r=t,s().updatePluginData(e,r),s().pluginActions(e,r.pluginAction)}))}}))),V=e=>({download:(0,r.__)("Install","really-simple-ssl"),activate:(0,r.__)("Activate","really-simple-ssl"),activating:(0,r.__)("Activating...","really-simple-ssl"),downloading:(0,r.__)("Downloading...","really-simple-ssl"),"upgrade-to-premium":(0,r.__)("Downloading...","really-simple-ssl")}[e]),F=()=>{const{dataLoaded:e,pluginData:s,pluginActions:t,fetchOtherPluginsData:a,error:c}=D();return(0,n.useEffect)((()=>{e||a()}),[]),!e||c?(0,l.createElement)(x.A,{lines:"3",error:c}):(0,l.createElement)(l.Fragment,null,(0,l.createElement)("div",{className:"rsssl-other-plugins-container"},s.map(((e,s)=>((e,s)=>(0,l.createElement)("div",{key:"plugin"+s,className:"rsssl-other-plugins-element rsssl-"+e.slug},(0,l.createElement)("a",{href:e.wordpress_url,target:"_blank",rel:"noopener noreferrer",title:e.title},(0,l.createElement)("div",{className:"rsssl-bullet"}),(0,l.createElement)("div",{className:"rsssl-other-plugins-content"},e.title)),(0,l.createElement)("div",{className:"rsssl-other-plugin-status"},"upgrade-to-premium"===e.pluginAction&&(0,l.createElement)(l.Fragment,null,(0,l.createElement)("a",{target:"_blank",rel:"noopener noreferrer",href:e.upgrade_url},(0,r.__)("Upgrade","really-simple-ssl"))),"upgrade-to-premium"!==e.pluginAction&&"installed"!==e.pluginAction&&(0,l.createElement)(l.Fragment,null,(0,l.createElement)("a",{href:"#",onClick:s=>t(e.slug,e.pluginAction,s)},e.pluginActionNice)),"installed"===e.pluginAction&&(0,l.createElement)(l.Fragment,null,(0,r.__)("Installed","really-simple-ssl")))))(e,s)))))},B=e=>(0,l.createElement)(l.Fragment,null,(0,l.createElement)("div",{className:"rsssl-grid-item rsssl-column-2 rsssl-dashboard-placeholder"}),(0,l.createElement)("div",{className:"rsssl-grid-item rsssl-row-2 rsssl-dashboard-placeholder"}),(0,l.createElement)("div",{className:"rsssl-grid-item rsssl-row-2 rsssl-dashboard-placeholder"}));var R=t(5170);const I=()=>{const{fieldsLoaded:e}=(0,g.A)(),s=[{id:"progress",header:i,content:m,footer:p,class:" rsssl-column-2"},{id:"ssllabs",header:f,content:C,footer:_,class:"border-to-border"},{id:"wpvul",header:b,content:N,footer:k,class:"border-to-border"},{id:"tips_tricks",title:(0,r.__)("Tips & Tricks","really-simple-ssl"),content:M,footer:z,class:" rsssl-column-2"},{id:"other-plugins",header:L,content:F,class:" rsssl-column-2 no-border no-background"}];return(0,l.createElement)(l.Fragment,null,!e&&(0,l.createElement)(B,null),e&&s.map(((e,s)=>(0,l.createElement)(R.A,{key:"grid_"+s,fallback:"Could not load dashboard block"},(0,l.createElement)(a,{block:e})))))}},2828:(e,s,t)=>{t.d(s,{A:()=>r});var l=t(1621),a=t(207);const r=(0,l.vt)(((e,s)=>({filter:"all",progressText:"",notices:[],error:!1,percentageCompleted:0,progressLoaded:!1,setFilter:s=>{sessionStorage.rsssl_task_filter=s,e((e=>({filter:s})))},fetchFilter:()=>{if("undefined"!=typeof Storage&&sessionStorage.rsssl_task_filter){let s=sessionStorage.rsssl_task_filter;e((e=>({filter:s})))}},getProgressData:async()=>{const{percentage:s,text:t,notices:l,error:r}=await a.YA("progressData","refresh").then((e=>e));e((e=>({notices:l,percentageCompleted:s,progressText:t,progressLoaded:!0,error:r})))},dismissNotice:async t=>{let l=s().notices;l=l.filter((function(e){return e.id!==t})),e((e=>({notices:l})));const{percentage:r}=await a.YA("dismiss_task",t);e({percentageCompleted:r})}})))},3056:(e,s,t)=>{t.d(s,{A:()=>r});var l=t(1621),a=t(207);const r=(0,l.vt)(((e,s)=>({debug:!1,sslScanStatus:!1,sslData:!1,endpointData:[],dataLoaded:!1,clearCache:!1,requestActive:!1,intervalId:!1,setIntervalId:s=>e({intervalId:s}),setRequestActive:s=>e({requestActive:s}),setSslScanStatus:s=>e({sslScanStatus:s}),setClearCache:s=>e({clearCache:s}),setSslData:s=>e({sslData:s}),setEndpointData:s=>e({endpointData:s}),isLocalHost:()=>!s().debug&&-1!==window.location.host.indexOf("localhost"),host:()=>s().debug?"wordpress.org":window.location.host,fetchSslData:async()=>{a.Eo("ssltest_get").then((t=>{if(t.data.hasOwnProperty("host")){let l=s().processSslData(t.data);e({sslData:l,endpointData:l.endpointData,dataLoaded:!0})}}))},getSslLabsData:t=>{let l="";s().clearCache&&(e({clearCache:!1,sslData:!1}),l="&startNew=on");const r="https://api.ssllabs.com/api/v3/analyze?host="+s().host()+l;let n={};return n.url=r,a.Eo("ssltest_run",n).then((e=>!(!e||e.errors)&&JSON.parse(e)))},runSslTest:()=>{s().getSslLabsData().then((t=>{if(t.status&&"ERROR"===t.status)t=s().processSslData(t),e({sslData:t,sslScanStatus:"completed"}),clearInterval(s().intervalId);else if(t.endpoints&&t.endpoints.filter((e=>"Ready"===e.statusMessage)).length>0){let l=t.endpoints.filter((e=>"Ready"===e.statusMessage)),r=l[l.length-1].ipAddress;s().getEndpointData(r).then((l=>{let r=s().endpointData;if(Array.isArray(r)||(r=[]),!l.errors){let s=!1;r.length>0&&r.forEach((function(e,t){e.ipAddress===l.ipAddress&&(r[t]=l,s=!0)})),s||(r[r.length]=l),e({endpointData:r}),t.endpointData=r}t.errors||a.Eo("store_ssl_labs",t),t=s().processSslData(t),e({sslData:t,requestActive:!1})}))}else(t=s().processSslData(t)).errors||a.Eo("store_ssl_labs",t).then((e=>{})),e({sslData:t,requestActive:!1})}))},processSslData:s=>{s||(s={});let t=s.progress?s.progress:0,l=s.startTime?s.startTime:"",a=s.statusMessage?s.statusMessage:"",r=s.grade?s.grade:"?",n="";if(s.endpoints){let e=s.endpoints.filter((e=>"Ready"===e.statusMessage)),l=e.length,c=e[l-1],i=s.endpoints.filter((e=>"In progress"===e.statusMessage))[0],o=0;i&&(o=i.progress?i.progress:0,a=i.statusDetailsMessage,n=i.ipAddress),c&&(r=c.grade),t=(100*l+o)/s.endpoints.length}s.errors&&(r="?",a=s.errors[0].message,t=100);let c={};return t>=100&&e({sslScanStatus:"completed"}),c.grade=r,c.startTime=l,c.statusMessage=a,c.ipAddress=n,c.progress=t,s.summary=c,s},getEndpointData:e=>{const t="https://api.ssllabs.com/api/v3/getEndpointData?host="+s().host()+"&s="+e;let l={};return l.url=t,a.Eo("ssltest_run",l).then((e=>{if(e&&!e.errors)return JSON.parse(e)}))}})))},9684:(e,s,t)=>{t.d(s,{A:()=>h});var l=t(1609),a=t(7723),r=t(4937),n=t(7143),c=t(207),i=t(9166),o=t(6975),m=t(2828),d=t(2043),u=t(2838),g=t.n(u);const h=e=>{const{dismissNotice:s}=(0,m.A)(),{getField:t,setHighLightField:u,fetchFieldsData:h}=(0,o.A)(),{setSelectedSubMenuItem:p}=(0,d.A)();let f=e.notice,v="premium"===f.output.icon,E=f.output.url&&-1!==f.output.url.indexOf("really-simple-ssl.com");return(0,l.createElement)("div",{className:"rsssl-task-element"},(0,l.createElement)("span",{className:"rsssl-task-status rsssl-"+f.output.icon},f.output.label),(0,l.createElement)("p",{className:"rsssl-task-message",dangerouslySetInnerHTML:{__html:g().sanitize(f.output.msg)}})," ",E&&f.output.url&&(0,l.createElement)("a",{target:"_blank",rel:"noopener noreferrer",href:f.output.url},(0,a.__)("More info","really-simple-ssl")),f.output.clear_cache_id&&(0,l.createElement)("span",{className:"rsssl-task-enable button button-secondary",onClick:()=>(e=>{let s={};s.cache_id=e,c.Eo("clear_cache",s).then((e=>{(0,n.dispatch)("core/notices").createNotice("success",(0,a.__)("Re-started test","really-simple-ssl"),{__unstableHTML:!0,id:"rsssl_clear_cache",type:"snackbar",isDismissible:!0}).then((0,i.A)(3e3)).then((e=>{(0,n.dispatch)("core/notices").removeNotice("rsssl_clear_cache")})),h()}))})(f.output.clear_cache_id)},(0,a.__)("Re-check","really-simple-ssl")),!v&&!E&&f.output.url&&(0,l.createElement)("a",{className:"rsssl-task-enable button button-secondary",href:f.output.url},(0,a.__)("View","really-simple-ssl")),!v&&f.output.highlight_field_id&&(0,l.createElement)("span",{className:"rsssl-task-enable button button-secondary",onClick:()=>(async()=>{u(e.notice.output.highlight_field_id);let s=t(e.notice.output.highlight_field_id);await p(s.menu_id)})()},(0,a.__)("View","really-simple-ssl")),f.output.plusone&&(0,l.createElement)("span",{className:"rsssl-plusone"},"1"),f.output.dismissible&&"completed"!==f.output.status&&(0,l.createElement)("div",{className:"rsssl-task-dismiss"},(0,l.createElement)("button",{type:"button",onClick:e=>s(f.id)},(0,l.createElement)(r.default,{name:"times"}))))}},9695:(e,s,t)=>{t.d(s,{A:()=>r});var l=t(1609),a=t(3972);const r=e=>{let s=e.lines;return s||(s=4),e.error&&(s=0),(0,l.createElement)("div",{className:"rsssl-placeholder"},e.error&&(0,l.createElement)(a.A,{error:e.error}),Array.from({length:s}).map(((e,s)=>(0,l.createElement)("div",{className:"rsssl-placeholder-line",key:"placeholder-"+s}))))}},4449:(e,s,t)=>{t.d(s,{A:()=>i});var l=t(1609),a=t(1621),r=t(207),n=t(7723),c=t(6535);const i=(0,a.vt)(((e,s)=>({dummyRiskData:[{id:"force_update",name:"Force Update",value:"l",description:(0,n.__)("Force update the plugin or theme","really-simple-ssl")},{id:"quarantine",name:"Quarantine",value:"m",description:(0,n.__)("Isolates the plugin or theme if no update can be performed","really-simple-ssl")}],riskData:[],riskLevels:{l:1,m:2,h:3,c:4},vulnerabilities:[],processing:!1,dataLoaded:!1,updates:0,HighestRisk:!1,lastChecked:"",vulEnabled:!1,riskNaming:{},vulList:[],setDataLoaded:s=>e({dataLoaded:s}),updateRiskData:async(t,l)=>{if(!s().processing){e({processing:!0}),e((0,c.jM)((e=>{let a=e.riskData.findIndex((e=>e.id===t));e.riskData[a].value=l,e.riskData=s().enforceCascadingRiskLevels(e.riskData)})));try{await r.Eo("vulnerabilities_measures_set",{riskData:s().riskData}),e({dataLoaded:!0,processing:!1})}catch(e){console.log(e)}e({processing:!1})}},enforceCascadingRiskLevels:e=>{if(0===e.length)return e;let t=e.filter((e=>"force_update"===e.id))[0].value,l=e.filter((e=>"quarantine"===e.id))[0].value;t=s().riskLevels.hasOwnProperty(t)?s().riskLevels[t]:5,l=s().riskLevels.hasOwnProperty(l)?s().riskLevels[l]:5;let a=e.findIndex((e=>"quarantine"===e.id));l<t&&(e[a].value=Object.keys(s().riskLevels).find((e=>s().riskLevels[e]===t))),5===t&&(e[a].value="*");let r=t>0?t:0,n=Array.from(Array(r).keys()).map((e=>e));return n=n.map((e=>Object.keys(s().riskLevels).find((t=>s().riskLevels[t]===e)))),e[a].disabledRiskLevels=n,e},fetchFirstRun:async()=>{s().processing||(e({processing:!0}),await r.Eo("vulnerabilities_scan_files"),e({processing:!1}))},fetchVulnerabilities:async()=>{if(s().processing)return;e({processing:!0});let t={};try{const a=await r.Eo("hardening_data",t);let i=[],o=0;a.data.vulList&&(o=a.data.vulnerabilities,i=a.data.vulList,"object"==typeof i&&(i=Object.values(i)),i.forEach((function(e,s){let t=e.update_available?rsssl_settings.plugins_url+"?plugin_status=upgrade":"#settings/vulnerabilities";e.vulnerability_action=(0,l.createElement)("div",{className:"rsssl-action-buttons"},(0,l.createElement)("a",{className:"rsssl-button button-secondary",href:"https://really-simple-ssl.com/vulnerabilities/"+e.rss_identifier,target:"_blank",rel:"noopener noreferrer"},(0,n.__)("Details","really-simple-ssl")),(0,l.createElement)("a",{disabled:!e.update_available,href:t,className:"rsssl-button button-primary"},(0,n.__)("Update","really-simple-ssl")))})));let m=a.data.riskData;Array.isArray(m)||(m=[]),m=s().enforceCascadingRiskLevels(m),e((0,c.jM)((e=>{e.vulnerabilities=o,e.vulList=i,e.updates=a.data.updates,e.dataLoaded=!0,e.riskNaming=a.data.riskNaming,e.lastChecked=a.data.lastChecked,e.vulEnabled=a.data.vulEnabled,e.riskData=m,e.processing=!1})))}catch(e){console.error(e)}},vulnerabilityCount:()=>{let e=s().vulList,t=[];return Object.keys(e).forEach((function(s){t.push(e[s])})),["c","h","m","l"].map((function(e){return{level:e,count:t.filter((function(s){return s.risk_level===e})).length}}))},vulnerabilityScore:()=>{let e=0,t=s().vulList;return Object.keys(t).forEach((function(s){"c"===t[s].risk_level?e=5:e<1&&(e=1)})),e},hardeningScore:()=>{let e=0,t=s().vulnerabilities;for(let s=0;s<t.length;s++)e+=t[s].hardening_score;return e},activateVulnerabilityScanner:async()=>{try{(await r.Eo("rsssl_scan_files")).request_success&&await s().fetchVulnerabilities()}catch(e){console.error(e)}}})))},4937:(e,s,t)=>{t.r(s),t.d(s,{default:()=>n});var l=t(1609),a=t(7008);const r=React.forwardRef((function(e,s){const{name:t,color:a,size:r}=e,n=t||"bullet",c=a||"black",i=r||15,o={black:"var(--rsp-black)",green:"var(--rsp-green)",yellow:"var(--rsp-yellow)",orange:"var(--rsp-yellow)","red-faded":"var(--rsp-red-faded)",red:"var(--rsp-red)",grey:"var(--rsp-grey-400)","red-warning":"var(--rsp-red-faded)"};let m="";return"bullet"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z"}))),"circle"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"}))),"check"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"}))),"warning"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"}))),"error"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"}))),"times"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"}))),"circle-check"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM371.8 211.8C382.7 200.9 382.7 183.1 371.8 172.2C360.9 161.3 343.1 161.3 332.2 172.2L224 280.4L179.8 236.2C168.9 225.3 151.1 225.3 140.2 236.2C129.3 247.1 129.3 264.9 140.2 275.8L204.2 339.8C215.1 350.7 232.9 350.7 243.8 339.8L371.8 211.8z"}))),"circle-times"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM175 208.1L222.1 255.1L175 303C165.7 312.4 165.7 327.6 175 336.1C184.4 346.3 199.6 346.3 208.1 336.1L255.1 289.9L303 336.1C312.4 346.3 327.6 346.3 336.1 336.1C346.3 327.6 346.3 312.4 336.1 303L289.9 255.1L336.1 208.1C346.3 199.6 346.3 184.4 336.1 175C327.6 165.7 312.4 165.7 303 175L255.1 222.1L208.1 175C199.6 165.7 184.4 165.7 175 175C165.7 184.4 165.7 199.6 175 208.1V208.1z"}))),"chevron-up"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M416 352c-8.188 0-16.38-3.125-22.62-9.375L224 173.3l-169.4 169.4c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25C432.4 348.9 424.2 352 416 352z"}))),"chevron-down"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"}))),"chevron-right"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z"}))),"chevron-left"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M224 480c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l169.4 169.4c12.5 12.5 12.5 32.75 0 45.25C240.4 476.9 232.2 480 224 480z"}))),"plus"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"}))),"minus"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"}))),"sync"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M483.515 28.485L431.35 80.65C386.475 35.767 324.485 8 256 8 123.228 8 14.824 112.338 8.31 243.493 7.971 250.311 13.475 256 20.301 256h28.045c6.353 0 11.613-4.952 11.973-11.294C66.161 141.649 151.453 60 256 60c54.163 0 103.157 21.923 138.614 57.386l-54.128 54.129c-7.56 7.56-2.206 20.485 8.485 20.485H492c6.627 0 12-5.373 12-12V36.971c0-10.691-12.926-16.045-20.485-8.486zM491.699 256h-28.045c-6.353 0-11.613 4.952-11.973 11.294C445.839 370.351 360.547 452 256 452c-54.163 0-103.157-21.923-138.614-57.386l54.128-54.129c7.56-7.56 2.206-20.485-8.485-20.485H20c-6.627 0-12 5.373-12 12v143.029c0 10.691 12.926 16.045 20.485 8.485L80.65 431.35C125.525 476.233 187.516 504 256 504c132.773 0 241.176-104.338 247.69-235.493.339-6.818-5.165-12.507-11.991-12.507z"}))),"sync-error"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M256 79.1C178.5 79.1 112.7 130.1 89.2 199.7C84.96 212.2 71.34 218.1 58.79 214.7C46.23 210.5 39.48 196.9 43.72 184.3C73.6 95.8 157.3 32 256 32C337.5 32 408.8 75.53 448 140.6V104C448 90.75 458.7 80 472 80C485.3 80 496 90.75 496 104V200C496 213.3 485.3 224 472 224H376C362.7 224 352 213.3 352 200C352 186.7 362.7 176 376 176H412.8C383.7 118.1 324.4 80 256 80V79.1zM280 263.1C280 277.3 269.3 287.1 256 287.1C242.7 287.1 232 277.3 232 263.1V151.1C232 138.7 242.7 127.1 256 127.1C269.3 127.1 280 138.7 280 151.1V263.1zM224 352C224 334.3 238.3 319.1 256 319.1C273.7 319.1 288 334.3 288 352C288 369.7 273.7 384 256 384C238.3 384 224 369.7 224 352zM40 432C26.75 432 16 421.3 16 408V311.1C16 298.7 26.75 287.1 40 287.1H136C149.3 287.1 160 298.7 160 311.1C160 325.3 149.3 336 136 336H99.19C128.3 393 187.6 432 256 432C333.5 432 399.3 381.9 422.8 312.3C427 299.8 440.7 293 453.2 297.3C465.8 301.5 472.5 315.1 468.3 327.7C438.4 416.2 354.7 480 256 480C174.5 480 103.2 436.5 64 371.4V408C64 421.3 53.25 432 40 432V432z"}))),"shortcode"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M128 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h96C145.7 480 160 465.7 160 448S145.7 416 128 416H64V96h64C145.7 96 160 81.67 160 64S145.7 32 128 32zM416 32h-96C302.3 32 288 46.33 288 63.1S302.3 96 319.1 96H384v320h-64C302.3 416 288 430.3 288 447.1S302.3 480 319.1 480H416c17.6 0 32-14.4 32-32V64C448 46.4 433.6 32 416 32z"}))),"file"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M0 64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM336 448V160H256C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V448C48 456.8 55.16 464 64 464H320C328.8 464 336 456.8 336 448z"}))),"file-disabled"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M639.1 487.1c0-7.119-3.153-14.16-9.191-18.89l-118.8-93.12l.0013-237.3c0-16.97-6.742-33.26-18.74-45.26l-74.63-74.64C406.6 6.742 390.3 0 373.4 0H192C156.7 0 128 28.65 128 64L128 75.01L38.82 5.11C34.41 1.672 29.19 0 24.04 0C10.19 0-.0002 11.3-.0002 23.1c0 7.12 3.153 14.16 9.192 18.89l591.1 463.1C605.6 510.3 610.8 512 615.1 512C629.8 512 639.1 500.6 639.1 487.1zM464 338.4l-287.1-225.7l-.002-48.51c0-8.836 7.164-16 15.1-16h160l-.0065 79.87c0 17.67 14.33 31.1 31.1 31.1L464 159.1V338.4zM448 463.1H192c-8.834 0-15.1-7.164-15.1-16L176 234.6L128 197L128 447.1c0 35.34 28.65 64 63.1 64H448c20.4 0 38.45-9.851 50.19-24.84l-37.72-29.56C457.5 461.4 453.2 463.1 448 463.1z"}))),"loading"===n&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[a],d:"M304 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 416c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM48 304c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm464-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM142.9 437c18.7-18.7 18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zm0-294.2c18.7-18.7 18.7-49.1 0-67.9S93.7 56.2 75 75s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zM369.1 437c18.7 18.7 49.1 18.7 67.9 0s18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9z"}))),"file-download"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M216 342.1V240c0-13.25-10.75-24-24-24S168 226.8 168 240v102.1L128.1 303C124.3 298.3 118.2 296 112 296S99.72 298.3 95.03 303c-9.375 9.375-9.375 24.56 0 33.94l80 80c9.375 9.375 24.56 9.375 33.94 0l80-80c9.375-9.375 9.375-24.56 0-33.94s-24.56-9.375-33.94 0L216 342.1zM365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448z"}))),"calendar"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z"}))),"calendar-error"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M151.1 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V192H47.1V448C47.1 456.8 55.16 464 63.1 464H284.5C296.7 482.8 312.5 499.1 330.8 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24L151.1 64zM576 368C576 447.5 511.5 512 432 512C352.5 512 287.1 447.5 287.1 368C287.1 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM432 416C418.7 416 408 426.7 408 440C408 453.3 418.7 464 432 464C445.3 464 456 453.3 456 440C456 426.7 445.3 416 432 416zM447.1 288C447.1 279.2 440.8 272 431.1 272C423.2 272 415.1 279.2 415.1 288V368C415.1 376.8 423.2 384 431.1 384C440.8 384 447.1 376.8 447.1 368V288z"}))),"help"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z"}))),"copy"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M502.6 70.63l-61.25-61.25C435.4 3.371 427.2 0 418.7 0H255.1c-35.35 0-64 28.66-64 64l.0195 256C192 355.4 220.7 384 256 384h192c35.2 0 64-28.8 64-64V93.25C512 84.77 508.6 76.63 502.6 70.63zM464 320c0 8.836-7.164 16-16 16H255.1c-8.838 0-16-7.164-16-16L239.1 64.13c0-8.836 7.164-16 16-16h128L384 96c0 17.67 14.33 32 32 32h47.1V320zM272 448c0 8.836-7.164 16-16 16H63.1c-8.838 0-16-7.164-16-16L47.98 192.1c0-8.836 7.164-16 16-16H160V128H63.99c-35.35 0-64 28.65-64 64l.0098 256C.002 483.3 28.66 512 64 512h192c35.2 0 64-28.8 64-64v-32h-47.1L272 448z"}))),"info"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"}))),"info-open"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM256 304c13.25 0 24-10.75 24-24v-128C280 138.8 269.3 128 256 128S232 138.8 232 152v128C232 293.3 242.8 304 256 304zM256 337.1c-17.36 0-31.44 14.08-31.44 31.44C224.6 385.9 238.6 400 256 400s31.44-14.08 31.44-31.44C287.4 351.2 273.4 337.1 256 337.1z"}))),"list"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M184.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 113c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM256 96c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zM192 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zM80 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z"}))),"empty"===n&&(m=(0,l.createElement)("svg",{height:i,width:i,"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 280.8 363.67"})),"external-link"===n&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("path",{fill:o[c],d:"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z"}))),"shield"===n&&(m=(0,l.createElement)("svg",{height:i,"aria-hidden":"true",focusable:"false",role:"img",id:"uuid-026a4e87-44db-4336-a398-3c29d25b7317",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 280.8 363.67"},(0,l.createElement)("path",{fill:"#f9c23e",d:"M280.8,62.4L140.5,0,0,62.2V213.3c0,10.7,1.6,21.3,4.9,31.5,9.5,29.9,28.2,52.8,54.4,69.5,26,16.6,52.4,32.4,78.6,48.6,2,1.2,3.4,.9,5.1-.2,19.9-12.3,39.8-24.5,59.6-36.8,12.6-7.8,25.5-15.1,36.5-25.1,26.4-24.2,41.4-53.6,41.5-89.9V62.4h.2Z"}),(0,l.createElement)("g",null,(0,l.createElement)("g",null,(0,l.createElement)("rect",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",x:"155",y:"266.8",width:"77.6",height:"6"}),(0,l.createElement)("path",{fill:"#1d2327",d:"M224.4,204.5h-1.8v-10.1c0-15.9-12.9-28.8-28.8-28.8s-28.8,12.9-28.8,28.8v10.1h-1.8c-4.6,0-8.3,3.7-8.3,8.3v51.3h77.6v-51.3c0-4.6-3.7-8.3-8.3-8.3h.2Zm-45.3-10.1c0-8.1,6.6-14.7,14.7-14.7s14.7,6.6,14.7,14.7v10.1h-29.5v-10.1h.1Zm36.6,32.9l-20.7,20.2c-.2,.2-.3,.4-.5,.6l-2,2c-.2,.2-.4,.4-.6,.5l-3.8,3.8-4.5-4.3-2-2c-.2-.2-.4-.4-.5-.6l-9.1-9.1c-2.4-2.4-2.4-6.4,0-8.8l2-2c2.4-2.4,6.4-2.4,8.8,0l5.3,5.3,16.9-16.4c2.4-2.4,6.4-2.4,8.8,0l2,2c2.4,2.4,2.4,6.4,0,8.8h-.1Z"})),(0,l.createElement)("g",null,(0,l.createElement)("path",{fill:"#1d2327",d:"M125.2,192.3c-.5-2.9-.5-5.8-1-8.6-.5-2.4-2.6-4-4.8-3.9-2.3,0-4.2,1.9-4.7,4.3-.2,1,0,1.9,0,2.9,.8,14.6,7.2,26.3,18.2,35.7,2.2,1.9,4.5,3.5,6.9,4.8v-11.8c-7.4-5.8-12.9-14.1-14.6-23.3v-.1Z"}),(0,l.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M96.4,236.1c-13-15-20-32.3-19.5-52.3,.3-13.1,6.1-23.6,16.6-31.2,11.5-8.5,24.5-10.9,38.3-7.1,12.7,3.5,22,10.7,27.4,22,2.1-2.7,4.5-5.2,7.2-7.4-4-7-9.7-12.9-17-17.4-17-10.4-34.9-11.7-52.9-3.1-19,9.1-28.7,24.7-29.3,45.8,0,5.2,.5,10.2,1.4,15.2,3.4,19.4,13.4,35.2,27.2,48.9,1.1,1.1,2.5,1.6,4.1,1.4,1.8-.2,3.2-1.3,3.8-3,.6-1.8,.4-3.6-1-5.1-2.1-2.2-4.2-4.4-6.2-6.7h-.1Z"}),(0,l.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M68.1,89.4c1.1-.4,2.1-1,3.1-1.5,17.9-9.1,36.8-12.7,56.8-11.3,12.2,.8,23.9,3.8,35.1,8.7,3,1.3,5.9,2.8,8.9,4.1,2.7,1.1,5.3,0,6.4-2.4,1.1-2.3,0-5-2.3-6.3-11-5.7-22.4-10-34.6-12.3-4.2-.8-8.5-1.1-12.8-1.7h-17.1c-.3,0-.6,.2-.9,.2-11.2,.8-22,3.2-32.5,7.2-4.9,1.9-9.7,4.1-14.3,6.6-2.5,1.3-3.4,4.2-2.2,6.5,1.1,2.2,4,3.2,6.4,2.1v.1Z"}),(0,l.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M61.1,153.5c13.6-21.6,33.6-31.5,58.7-32.1h6c.8,0,1.6,.2,2.3,.3,13.4,1.7,25.5,6.6,35.9,15.4,5.8,4.9,10.5,10.3,14.1,16.2,3.1-1.2,6.4-2,9.8-2.5-4.7-8.7-11.3-16.3-19.6-22.7-19-14.6-40.5-19.5-64.1-15.1-14.3,2.7-26.9,9-37.7,18.8-10.4,9.5-17.8,20.9-21.2,34.6-2.8,11.3-2.6,22.7-.9,34.1,1.1,7,2.9,13.9,5.4,20.5,.9,2.3,3,3.7,5.2,3.5,2.1-.2,3.9-2,4.3-4.3,.2-1.1-.2-2.2-.6-3.2-4.3-11.9-6.3-24.1-5.6-36.7,.5-9.6,2.8-18.7,8-26.8h0Z"}),(0,l.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M139.8,240.6c-20.9-8.4-34.1-23.7-38.4-46.7-.8-4.3-1.4-8.7-.4-13,1.8-7.1,6.4-11.4,13.4-13.5,11.8-3.4,24.7,5.3,24.5,17.6,0,4.8,1.4,9.3,4,13.4,.3,.5,.6,.9,.9,1.3,1.6-2.4,3.7-4.6,6.1-6.2,0-.9,0-1.9,.2-2.8-.7-1.7-1.1-3.5-1.2-5.3-.3-6.1-1.6-11.9-5.5-16.8-6.8-8.8-15.9-12.4-27-11.5-11.3,.9-21.6,9.6-24.5,20.6-1.8,6.6-.9,13.3,.4,19.8,2.4,12.9,8.2,24,17.1,33.7,8.6,9.4,18.8,15.8,30.6,19.8v-10.4h-.2Z"}),(0,l.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M47.5,133.2c6.8-8.8,15-16,24.6-21.6,20.8-12,43.2-15.2,66.6-11,14.8,2.7,28.2,8.7,39.9,18.2,6.3,5,11.6,11,16.4,17.4,1.9,2.5,4.8,2.8,7,1.1,2.1-1.7,2.4-4.5,.6-7-5.9-8.2-12.8-15.3-20.9-21.3-18.3-13.6-39.1-19.6-61.7-20-6.3,0-12.5,.6-18.6,1.6-15.7,2.8-30.1,8.6-42.9,18.1-8.3,6.2-15.5,13.5-21.5,22-1.6,2.3-1.3,5.1,.7,6.7,2.1,1.7,4.9,1.5,6.8-.7,1-1.2,1.9-2.5,2.9-3.7l.1,.2Z"}))))),"file-search"===n&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",height:i,fill:"none",viewBox:"0 0 384 512"},(0,l.createElement)("path",{d:"M374.6 150.6l-141.3-141.3C227.4 3.371 219.2 0 210.7 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.35 0 64-28.66 64-64V173.3C384 164.8 380.6 156.6 374.6 150.6zM224 22.63L361.4 160H248C234.8 160 224 149.2 224 136V22.63zM368 448c0 26.47-21.53 48-48 48H64c-26.47 0-48-21.53-48-48V64c0-26.47 21.53-48 48-48h144v120c0 22.06 17.94 40 40 40h120V448zM176 208c-53.02 0-96 42.98-96 96s42.98 96 96 96c23.62 0 44.96-8.859 61.68-23l68.66 68.66C307.9 447.2 309.9 448 312 448s4.094-.7813 5.656-2.344c3.125-3.125 3.125-8.188 0-11.31l-68.66-68.66C263.1 348.1 272 327.6 272 304C272 250.1 229 208 176 208zM176 384C131.9 384 96 348.1 96 304S131.9 224 176 224S256 259.9 256 304S220.1 384 176 384z"}))),"download"===n&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",height:i,fill:"none",viewBox:"0 0 512 512"},(0,l.createElement)("path",{d:"M480 352h-88C387.6 352 384 355.6 384 360s3.582 8 8 8H480c8.822 0 16 7.178 16 16v96c0 8.822-7.178 16-16 16H32c-8.822 0-16-7.178-16-16v-96c0-8.822 7.178-16 16-16h88C124.4 368 128 364.4 128 360S124.4 352 120 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96C512 366.3 497.7 352 480 352zM464 432c0-17.6-14.4-32-32-32s-32 14.4-32 32c0 17.6 14.4 32 32 32S464 449.6 464 432zM416 432c0-8.822 7.178-16 16-16s16 7.178 16 16S440.8 448 432 448S416 440.8 416 432zM250.3 413.7c3.125 3.125 8.188 3.125 11.31 0l152-152C415.2 260.1 416 258.1 416 256s-.7813-4.094-2.344-5.656c-3.125-3.125-8.188-3.125-11.31 0L264 388.7V8C264 3.594 260.4 0 256 0S248 3.594 248 8v380.7L109.7 250.3c-3.125-3.125-8.188-3.125-11.31 0s-3.125 8.188 0 11.31L250.3 413.7z"}))),"satellite-dish"===n&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",color:o[c],height:i,viewBox:"0 0 512 512"},(0,l.createElement)("path",{d:"M208 0c-8.8 0-16 7.2-16 16s7.2 16 16 16c150.2 0 272 121.8 272 272c0 8.8 7.2 16 16 16s16-7.2 16-16C512 136.1 375.9 0 208 0zm0 96c-8.8 0-16 7.2-16 16s7.2 16 16 16c97.2 0 176 78.8 176 176c0 8.8 7.2 16 16 16s16-7.2 16-16c0-114.9-93.1-208-208-208zM32 304c0-24.5 5-47.7 13.9-68.8L276.8 466.1C255.7 475 232.5 480 208 480c-97.2 0-176-78.8-176-176zm33.5-94.5c-14-14-37.3-12.1-45.7 5.8C7.1 242.2 0 272.3 0 304C0 418.9 93.1 512 208 512c31.7 0 61.8-7.1 88.7-19.8c17.9-8.4 19.8-31.8 5.8-45.7L195.3 339.3l24-24c6.3 3 13.3 4.7 20.7 4.7c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48c0 7.4 1.7 14.4 4.7 20.7l-24 24L65.5 209.5zM224 272a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"}))),"rotate-light"===n&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",color:o[c],height:i,viewBox:"0 0 512 512"},(0,l.createElement)("path",{d:"M426.1 301.2C406.2 376.5 337.6 432 256 432c-51 0-96.9-21.7-129-56.3l41-41c5.1-5.1 8-12.1 8-19.3c0-15.1-12.2-27.3-27.3-27.3H48c-8.8 0-16 7.2-16 16V404.7C32 419.8 44.2 432 59.3 432c7.2 0 14.2-2.9 19.3-8l25.7-25.7C142.3 438.7 196.2 464 256 464c97.4 0 179.2-67 201.8-157.4c2.4-9.7-5.2-18.6-15.2-18.6c-7.8 0-14.5 5.6-16.5 13.2zM385 136.3l-41 41c-5.1 5.1-8 12.1-8 19.3c0 15.1 12.2 27.3 27.3 27.3H464c8.8 0 16-7.2 16-16V107.3C480 92.2 467.8 80 452.7 80c-7.2 0-14.2 2.9-19.3 8l-25.7 25.7C369.7 73.3 315.8 48 256 48C158.6 48 76.8 115 54.2 205.4c-2.4 9.7 5.2 18.6 15.2 18.6c7.8 0 14.5-5.6 16.5-13.2C105.8 135.5 174.4 80 256 80c51 0 96.9 21.7 129.1 56.3zM448 192H374.6L448 118.6V192zM64 320h73.4L64 393.4V320z"}))),"rotate-exclamation-light"===n&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("defs",null,(0,l.createElement)("style",null,`\n .fa-secondary {\n opacity: 0.4;\n color: ${o[c]};\n }\n `)),(0,l.createElement)("path",{className:"fa-primary",d:"M280 152c0-13.3-10.7-24-24-24s-24 10.7-24 24V264c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM256 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"}),(0,l.createElement)("path",{className:"fa-secondary",d:"M432 117.4C391 65.4 327.4 32 256 32C158.4 32 75.5 94.4 44.8 181.3c-5.9 16.7 2.8 34.9 19.5 40.8s34.9-2.8 40.8-19.5C127.1 140.5 186.4 96 256 96c52.3 0 98.8 25.1 128 64H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h84.3c.5 0 1 0 1.5 0H464c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v37.4zm35.2 213.2c5.9-16.7-2.8-34.9-19.5-40.8s-34.9 2.8-40.8 19.5C384.9 371.5 325.6 416 256 416c-52.3 0-98.8-25.1-128-64h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32V432c0 17.7 14.3 32 32 32s32-14.3 32-32V394.6c41 52 104.6 85.4 176 85.4c97.6 0 180.5-62.4 211.2-149.3z"}))),"radar-duotone"===n&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("defs",null,(0,l.createElement)("style",null,`\n .fa-secondary {\n color: ${o[c]} !important;\n } \n `)),(0,l.createElement)("path",{className:"fa-primary",d:"M497 49c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-182 182c-7.7-3.3-16.1-5.1-25-5.1c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64c0-8.9-1.8-17.3-5.1-25L497 49z"}),(0,l.createElement)("path",{className:"fa-secondary",d:"M350.9 127.2l-46.1 46.1c-14.3-8.4-31-13.3-48.8-13.3c-53 0-96 43-96 96s43 96 96 96s96-43 96-96h64c0 73.5-49.6 135.5-117.2 154.2C290.8 394.7 274.7 384 256 384s-34.8 10.7-42.8 26.2c-51.7-14.3-92.8-53.9-109.4-104.6c14.4-8.3 24.1-23.8 24.1-41.7c0-19.4-11.5-36.1-28-43.7C116.2 149.1 179.9 96 256 96c35.5 0 68.3 11.6 94.9 31.2zm22.8-22.8C341.2 79 300.4 64 256 64C163.1 64 85.7 129.9 67.9 217.6C47.2 222.9 32 241.7 32 264c0 23.8 17.3 43.6 40.1 47.4c19.3 64.3 71.5 114.4 137 130.9C213.8 463.8 233 480 256 480s42.2-16.2 46.9-37.8C386.3 421.3 448 345.9 448 256h64c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0c62.1 0 118.9 22.1 163.3 58.8l-45.5 45.5z"}))),"satellite-dish-duotone"===n&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:i},(0,l.createElement)("defs",null,(0,l.createElement)("style",null,`\n .fa-secondary {\n color: ${o[c]} !important;\n } \n `)),(0,l.createElement)("path",{className:"fa-primary",d:"M60.6 220.6c-14.5-14.5-38.8-11.8-46.3 7.3C5.1 251.5 0 277.1 0 304C0 418.9 93.1 512 208 512c26.9 0 52.5-5.1 76.1-14.4c19-7.5 21.8-31.8 7.3-46.3L187.3 347.3l28.4-28.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3l-28.4 28.4L60.6 220.6z"}),(0,l.createElement)("path",{className:"fa-secondary",d:"M224 0c-17.7 0-32 14.3-32 32s14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0zm0 96c-17.7 0-32 14.3-32 32s14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192z"}))),"spinner"===n&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",width:"20",height:"20"},(0,l.createElement)("defs",null,(0,l.createElement)("style",null,"\n .fa-secondary {\n opacity: 0.4;\n }\n ")),(0,l.createElement)("path",{className:"fa-primary",d:"M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 256A48 48 0 1 0 0 256a48 48 0 1 0 96 0zM75 142.9A48 48 0 1 0 142.9 75 48 48 0 1 0 75 142.9z"}),(0,l.createElement)("path",{className:"fa-secondary",d:"M369.1 75A48 48 0 1 1 437 142.9 48 48 0 1 1 369.1 75zM416 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM208 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM75 369.1A48 48 0 1 1 142.9 437 48 48 0 1 1 75 369.1zm294.2 0A48 48 0 1 1 437 437a48 48 0 1 1 -67.9-67.9z"}))),(0,l.createElement)("div",{...e,ref:s},m)})),n=({name:e,color:s,size:t,tooltip:n})=>{const c=e||"bullet",i=s||"black";let o=t||15,m=n?"tooltip-":"",d=Math.floor(1e9*Math.random());return n?(0,l.createElement)("div",{className:"rsssl-"+m+"icon rsssl-icon-"+c+" rsssl-"+i},(0,l.createElement)(r,{"data-for":".rsssl-"+d,name:c,color:i,size:o,id:d,className:"rsssl-"+d,"data-tooltip-delay-hide":200}),(0,l.createElement)(a.m_,{style:{zIndex:99},id:d,place:"bottom",anchorSelect:".rsssl-"+d,content:n})):(0,l.createElement)("div",{className:"rsssl-"+m+"icon rsssl-icon-"+c+" rsssl-"+i},(0,l.createElement)(r,{name:c,color:i,size:o}))}},9166:(e,s,t)=>{t.d(s,{A:()=>l});const l=e=>function(s){return new Promise((t=>setTimeout((()=>t(s)),e)))}}}]);PK�������!�5iq�q�*��settings/build/124.4fd0d3c41809db0344d3.jsnu�[��������"use strict";(globalThis.webpackChunkreally_simple_ssl=globalThis.webpackChunkreally_simple_ssl||[]).push([[124],{2828:(e,l,t)=>{t.d(l,{A:()=>s});var a=t(1621),n=t(207);const s=(0,a.vt)(((e,l)=>({filter:"all",progressText:"",notices:[],error:!1,percentageCompleted:0,progressLoaded:!1,setFilter:l=>{sessionStorage.rsssl_task_filter=l,e((e=>({filter:l})))},fetchFilter:()=>{if("undefined"!=typeof Storage&&sessionStorage.rsssl_task_filter){let l=sessionStorage.rsssl_task_filter;e((e=>({filter:l})))}},getProgressData:async()=>{const{percentage:l,text:t,notices:a,error:s}=await n.YA("progressData","refresh").then((e=>e));e((e=>({notices:a,percentageCompleted:l,progressText:t,progressLoaded:!0,error:s})))},dismissNotice:async t=>{let a=l().notices;a=a.filter((function(e){return e.id!==t})),e((e=>({notices:a})));const{percentage:s}=await n.YA("dismiss_task",t);e({percentageCompleted:s})}})))},3056:(e,l,t)=>{t.d(l,{A:()=>s});var a=t(1621),n=t(207);const s=(0,a.vt)(((e,l)=>({debug:!1,sslScanStatus:!1,sslData:!1,endpointData:[],dataLoaded:!1,clearCache:!1,requestActive:!1,intervalId:!1,setIntervalId:l=>e({intervalId:l}),setRequestActive:l=>e({requestActive:l}),setSslScanStatus:l=>e({sslScanStatus:l}),setClearCache:l=>e({clearCache:l}),setSslData:l=>e({sslData:l}),setEndpointData:l=>e({endpointData:l}),isLocalHost:()=>!l().debug&&-1!==window.location.host.indexOf("localhost"),host:()=>l().debug?"wordpress.org":window.location.host,fetchSslData:async()=>{n.Eo("ssltest_get").then((t=>{if(t.data.hasOwnProperty("host")){let a=l().processSslData(t.data);e({sslData:a,endpointData:a.endpointData,dataLoaded:!0})}}))},getSslLabsData:t=>{let a="";l().clearCache&&(e({clearCache:!1,sslData:!1}),a="&startNew=on");const s="https://api.ssllabs.com/api/v3/analyze?host="+l().host()+a;let i={};return i.url=s,n.Eo("ssltest_run",i).then((e=>!(!e||e.errors)&&JSON.parse(e)))},runSslTest:()=>{l().getSslLabsData().then((t=>{if(t.status&&"ERROR"===t.status)t=l().processSslData(t),e({sslData:t,sslScanStatus:"completed"}),clearInterval(l().intervalId);else if(t.endpoints&&t.endpoints.filter((e=>"Ready"===e.statusMessage)).length>0){let a=t.endpoints.filter((e=>"Ready"===e.statusMessage)),s=a[a.length-1].ipAddress;l().getEndpointData(s).then((a=>{let s=l().endpointData;if(Array.isArray(s)||(s=[]),!a.errors){let l=!1;s.length>0&&s.forEach((function(e,t){e.ipAddress===a.ipAddress&&(s[t]=a,l=!0)})),l||(s[s.length]=a),e({endpointData:s}),t.endpointData=s}t.errors||n.Eo("store_ssl_labs",t),t=l().processSslData(t),e({sslData:t,requestActive:!1})}))}else(t=l().processSslData(t)).errors||n.Eo("store_ssl_labs",t).then((e=>{})),e({sslData:t,requestActive:!1})}))},processSslData:l=>{l||(l={});let t=l.progress?l.progress:0,a=l.startTime?l.startTime:"",n=l.statusMessage?l.statusMessage:"",s=l.grade?l.grade:"?",i="";if(l.endpoints){let e=l.endpoints.filter((e=>"Ready"===e.statusMessage)),a=e.length,c=e[a-1],r=l.endpoints.filter((e=>"In progress"===e.statusMessage))[0],d=0;r&&(d=r.progress?r.progress:0,n=r.statusDetailsMessage,i=r.ipAddress),c&&(s=c.grade),t=(100*a+d)/l.endpoints.length}l.errors&&(s="?",n=l.errors[0].message,t=100);let c={};return t>=100&&e({sslScanStatus:"completed"}),c.grade=s,c.startTime=a,c.statusMessage=n,c.ipAddress=i,c.progress=t,l.summary=c,l},getEndpointData:e=>{const t="https://api.ssllabs.com/api/v3/getEndpointData?host="+l().host()+"&s="+e;let a={};return a.url=t,n.Eo("ssltest_run",a).then((e=>{if(e&&!e.errors)return JSON.parse(e)}))}})))},9684:(e,l,t)=>{t.d(l,{A:()=>_});var a=t(1609),n=t(7723),s=t(4937),i=t(7143),c=t(207),r=t(9166),d=t(6975),m=t(2828),h=t(2043),o=t(2838),v=t.n(o);const _=e=>{const{dismissNotice:l}=(0,m.A)(),{getField:t,setHighLightField:o,fetchFieldsData:_}=(0,d.A)(),{setSelectedSubMenuItem:u}=(0,h.A)();let p=e.notice,f="premium"===p.output.icon,E=p.output.url&&-1!==p.output.url.indexOf("really-simple-ssl.com");return(0,a.createElement)("div",{className:"rsssl-task-element"},(0,a.createElement)("span",{className:"rsssl-task-status rsssl-"+p.output.icon},p.output.label),(0,a.createElement)("p",{className:"rsssl-task-message",dangerouslySetInnerHTML:{__html:v().sanitize(p.output.msg)}})," ",E&&p.output.url&&(0,a.createElement)("a",{target:"_blank",rel:"noopener noreferrer",href:p.output.url},(0,n.__)("More info","really-simple-ssl")),p.output.clear_cache_id&&(0,a.createElement)("span",{className:"rsssl-task-enable button button-secondary",onClick:()=>(e=>{let l={};l.cache_id=e,c.Eo("clear_cache",l).then((e=>{(0,i.dispatch)("core/notices").createNotice("success",(0,n.__)("Re-started test","really-simple-ssl"),{__unstableHTML:!0,id:"rsssl_clear_cache",type:"snackbar",isDismissible:!0}).then((0,r.A)(3e3)).then((e=>{(0,i.dispatch)("core/notices").removeNotice("rsssl_clear_cache")})),_()}))})(p.output.clear_cache_id)},(0,n.__)("Re-check","really-simple-ssl")),!f&&!E&&p.output.url&&(0,a.createElement)("a",{className:"rsssl-task-enable button button-secondary",href:p.output.url},(0,n.__)("View","really-simple-ssl")),!f&&p.output.highlight_field_id&&(0,a.createElement)("span",{className:"rsssl-task-enable button button-secondary",onClick:()=>(async()=>{o(e.notice.output.highlight_field_id);let l=t(e.notice.output.highlight_field_id);await u(l.menu_id)})()},(0,n.__)("View","really-simple-ssl")),p.output.plusone&&(0,a.createElement)("span",{className:"rsssl-plusone"},"1"),p.output.dismissible&&"completed"!==p.output.status&&(0,a.createElement)("div",{className:"rsssl-task-dismiss"},(0,a.createElement)("button",{type:"button",onClick:e=>l(p.id)},(0,a.createElement)(s.default,{name:"times"}))))}},5801:(e,l,t)=>{t.d(l,{A:()=>Z});var a=t(1609),n=t(6087),s=t(7723),i=t(4937),c=t(9695),r=t(6975),d=t(7283),m=t(5281);const h=(0,n.memo)((()=>{const{fetchFieldsData:e,getFieldValue:l,fieldsLoaded:t}=(0,r.A)(),{email:i,setEmail:c,includeTips:m,setIncludeTips:h}=(0,d.A)();return(0,n.useEffect)((()=>{t||e()}),[]),(0,n.useEffect)((()=>{""!==l("notifications_email_address")&&""===i&&c(l("notifications_email_address"))}),[]),(0,a.createElement)(a.Fragment,null,(0,a.createElement)("div",null,(0,a.createElement)("input",{type:"email",value:i,placeholder:(0,s.__)("Your email address","really-simple-ssl"),onChange:e=>c(e.target.value)})),(0,a.createElement)("div",null,(0,a.createElement)("label",null,(0,a.createElement)("input",{onChange:e=>h(e.target.checked),type:"checkbox",checked:m}),(0,s.__)("Include 6 Tips & Tricks to get started with Really Simple SSL.","really-simple-ssl")," ",(0,a.createElement)("a",{href:"https://really-simple-ssl.com/legal/privacy-statement/",target:"_blank"},(0,s.__)("Privacy Statement","really-simple-ssl")))))}));var o=t(489);const v=(0,n.memo)((({item:e})=>{let{title:l,status:t,id:n}=e;const{overrideSSL:c,setOverrideSSL:r,certificateValid:m}=(0,d.A)(),h={inactive:{icon:"info",color:"grey"},warning:{icon:"circle-times",color:"orange"},error:{icon:"circle-times",color:"red"},success:{icon:"circle-check",color:"green"},processing:{icon:"loading",color:"black"}},o="success"!==e.status&&"none"===e.current_action?"empty":h[t].icon,v=h[t].color;return(0,a.createElement)(a.Fragment,null,(0,a.createElement)("li",null,(0,a.createElement)(i.default,{name:o,color:v}),l,"certificate"===n&&!m&&(0,a.createElement)(a.Fragment,null," ",(0,a.createElement)("a",{href:"#",onClick:e=>refreshSSLStatus(e)},(0,s.__)("Check again","really-simple-ssl")))),"certificate"===n&&!m&&(0,a.createElement)("li",null,(0,a.createElement)("label",{className:"rsssl-override-detection-toggle"},(0,a.createElement)("input",{onChange:e=>r(e.target.checked),type:"checkbox",checked:c}),(0,s.__)("Override SSL detection.","really-simple-ssl"))))})),_=(0,n.memo)((({isModal:e})=>{const{fetchFieldsData:l,getField:t,fieldsLoaded:s,updateField:i,setChangedField:c,saveFields:m}=(0,r.A)(),{currentStep:h}=(0,d.A)();(0,n.useEffect)((()=>{s||l()}),[]);let _=s&&t("other_host_type"),u=h.items?h.items:[];if(rsssl_settings.cloudflare){let e={status:"success",title:"CloudFlare",id:"cf"};u.unshift(e)}return(0,a.createElement)(a.Fragment,null,e&&(0,a.createElement)(o.A,{field:_,showDisabledWhenSaving:!1}),(0,a.createElement)("ul",null,(0,a.createElement)("ul",null,u&&u.map(((e,l)=>(0,a.createElement)(v,{key:"step-config-"+l,item:e}))))))})),u=(0,n.memo)((({item:e,disabled:l})=>{const{updateItemStatus:t,currentStep:n}=(0,d.A)();let{title:s,description:i,id:c,activated:r}=e;return(0,a.createElement)("li",null,(0,a.createElement)("label",{className:"rsssl-modal-checkbox-container"},(0,a.createElement)("input",{type:"checkbox",disabled:l,checked:r,value:c,id:c,onChange:e=>t(n.id,c,null,null,e.target.checked)}),(0,a.createElement)("span",{className:"rsssl-checkmark"})),s,i&&(0,a.createElement)(a.Fragment,null," - ",i))})),p=(0,n.memo)((({item:e})=>{let{title:l}=e;return(0,a.createElement)("li",null,(0,a.createElement)("div",{className:"rsssl-modal-premium-container"},"PRO"),l)})),f=(0,n.memo)((()=>{const{currentStep:e}=(0,d.A)();let l=e.items?e.items:[],t=l.filter((e=>!e.premium)),n=l.filter((e=>e.premium));return(0,a.createElement)(a.Fragment,null,(0,a.createElement)("ul",null,t&&t.map(((e,l)=>(0,a.createElement)(u,{key:"step-features"+l,item:e}))),n&&n.map(((e,l)=>(0,a.createElement)(p,{key:"step-features"+l,item:e})))))})),E=(0,n.memo)((()=>{const{currentStep:e,currentStepIndex:l,setCurrentStepIndex:t}=(0,d.A)();(0,n.useEffect)((()=>{0===e.items.filter((e=>"none"!==e.action)).length&&t(l+1)}),[]);let s=e.items;return(0,a.createElement)(a.Fragment,null,(0,a.createElement)("ul",null,s&&s.map(((e,l)=>(0,a.createElement)(u,{key:"step-plugins"+l,item:e,disabled:"none"===e.action})))))})),g=(0,n.memo)((()=>{const{currentStep:e}=(0,d.A)();let l=e.items;return(0,a.createElement)(a.Fragment,null,(0,a.createElement)("ul",null,!rsssl_settings.pro_plugin_active&&l&&l.map(((e,l)=>(0,a.createElement)(p,{key:"step-pro"+l,item:e}))),rsssl_settings.pro_plugin_active&&l&&l.map(((e,l)=>(0,a.createElement)(u,{key:"step-pro"+l,item:e})))))}));t(2838);const Z=({isModal:e})=>{const{fetchFieldsData:l,fieldsLoaded:t}=(0,r.A)(),{getSteps:o,error:v,networkwide:u,sslEnabled:p,dataLoaded:Z,processing:y,currentStep:k,currentStepIndex:w,setCurrentStepIndex:M,networkActivationStatus:R,networkProgress:F,activateSSLNetworkWide:H}=(0,d.A)();return(0,n.useEffect)((()=>{u&&"main_site_activated"===R&&setTimeout((()=>{H()}),1e3)}),[R,F]),(0,n.useEffect)((()=>{t||l()}),[]),(0,n.useEffect)((()=>{(async()=>{await o(!1),Z&&p&&0===w&&M(1)})()}),[]),v?(0,a.createElement)(c.A,{lines:"3",error:v}):(0,a.createElement)(a.Fragment,null,!Z&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)("div",{className:"rsssl-onboarding-placeholder"},(0,a.createElement)("ul",null,(0,a.createElement)("li",null,(0,a.createElement)(i.default,{name:"loading",color:"grey"}),(0,s.__)("Fetching next step...","really-simple-ssl"))),(0,a.createElement)(c.A,{lines:"3"}))),Z&&(0,a.createElement)("div",{className:" rsssl-"+k.id},"activate_ssl"===k.id&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)(_,{isModal:e})),"features"===k.id&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)(f,null)),"email"===k.id&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)(h,null)),"plugins"===k.id&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)(E,null)),"pro"===k.id&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)(g,null)),!e&&(0,a.createElement)(m.A,{isModal:!1})))}},5281:(e,l,t)=>{t.d(l,{A:()=>o});var a=t(1609),n=t(6427),s=t(7723),i=t(2043),c=t(6975),r=t(7283),d=t(2828),m=t(4449),h=t(3056);const o=({isModal:e})=>{const{getProgressData:l}=(0,d.A)(),{updateField:t,setChangedField:o,updateFieldsData:v,fetchFieldsData:_,saveFields:u}=(0,c.A)(),{setSelectedMainMenuItem:p,selectedSubMenuItem:f}=(0,i.A)(),{fetchFirstRun:E,fetchVulnerabilities:g}=(0,m.A)(),{setSslScanStatus:Z}=(0,h.A)(),{dismissModal:y,activateSSL:k,certificateValid:w,setFooterStatus:M,networkwide:R,processing:F,setProcessing:H,steps:b,currentStepIndex:C,currentStep:V,setCurrentStepIndex:S,overrideSSL:A,email:U,saveEmail:x,pluginInstaller:T}=(0,r.A)(),D=async()=>{let a=!1;if("features"===V.id){S(C+1),H(!0);for(const e of V.items){if("health_scan"===e.id&&e.activated&&(M((0,s.__)("Starting SSL health scan...","really-simple-ssl")),Z("active")),!e.premium||!e.activated)for(const l of Object.values(e.options))t(l,e.activated),o(l,e.activated);"vulnerability_detection"===e.id&&(a=e.activated)}M((0,s.__)("Activating options...","really-simple-ssl")),await u(!0,!1),a&&(M((0,s.__)("Initializing vulnerability detection...","really-simple-ssl")),await E(),M((0,s.__)("Scanning for vulnerabilities...","really-simple-ssl")),await g()),M((0,s.__)("Updating dashboard...","really-simple-ssl")),await l(),M(""),H(!1)}if("email"===V.id&&(await x(),S(C+1),t("send_notifications_email",!0),t("notifications_email_address",U),v(f)),"plugins"===V.id){S(C+1);for(const e of V.items)"none"!==e.action&&null!==e.action&&await T(e.id,e.action,e.title);M("")}if("pro"===V.id){if(rsssl_settings.pro_plugin_active){H(!0);for(const e of V.items)if(e.activated)for(const l of Object.values(e.options))t(l,!0),o(l,!0);M((0,s.__)("Activating options...","really-simple-ssl")),await u(!0,!1),M((0,s.__)("Updating dashboard...","really-simple-ssl")),await l(),M(""),H(!1)}e&&y(!0),p("dashboard")}};let L=R?(0,s.__)("Activate SSL networkwide","really-simple-ssl"):(0,s.__)("Activate SSL","really-simple-ssl");if(0===C)return(0,a.createElement)(a.Fragment,null,e&&!w&&(0,a.createElement)(n.Button,{onClick:()=>{e&&y(!0),window.location.href=rsssl_settings.letsencrypt_url}},(0,s.__)("Install SSL","really-simple-ssl")),(0,a.createElement)(n.Button,{disabled:F||!w&&!A,isPrimary:!0,onClick:()=>{(async()=>{await k(),await l(),await _()})()}},L));if(C>0&&C<b.length-1)return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(n.Button,{onClick:()=>{S(C+1)}},(0,s.__)("Skip","really-simple-ssl")),(0,a.createElement)(n.Button,{isPrimary:!0,onClick:()=>D()},V.button));if(b.length-1===C){let e=rsssl_settings.is_bf?(0,s.__)("Get 40% off","really-simple-ssl"):(0,s.__)("Get PRO","really-simple-ssl");return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(n.Button,{isPrimary:!0,onClick:()=>D()},(0,s.__)("Finish","really-simple-ssl")),!rsssl_settings.pro_plugin_active&&(0,a.createElement)(n.Button,{rel:"noreferrer noopener",target:"_blank",isPrimary:!0,href:rsssl_settings.upgrade_link},e))}}},7124:(e,l,t)=>{t.r(l),t.d(l,{default:()=>dn});var a={};t.r(a),t.d(a,{AD:()=>xt,AE:()=>dt,AF:()=>gl,AG:()=>Zt,AL:()=>Ut,AM:()=>Tt,AO:()=>Ze,AQ:()=>Ee,AR:()=>ne,AT:()=>Dt,AU:()=>ie,AZ:()=>Lt,BA:()=>Bt,BB:()=>kt,BD:()=>yl,BE:()=>Nt,BF:()=>we,BG:()=>zt,BH:()=>Zl,BI:()=>Me,BJ:()=>ye,BN:()=>wl,BO:()=>Fa,BR:()=>ae,BS:()=>yt,BT:()=>kl,BW:()=>ke,BY:()=>Ot,BZ:()=>vt,CA:()=>le,CD:()=>Se,CF:()=>He,CG:()=>Ve,CH:()=>ua,CI:()=>Ie,CL:()=>Ra,CM:()=>Fe,CN:()=>Rl,CO:()=>se,CR:()=>_t,CU:()=>wt,CV:()=>Re,CY:()=>Fl,CZ:()=>It,DE:()=>ga,DJ:()=>Ae,DK:()=>Gt,DM:()=>Mt,DO:()=>Rt,DZ:()=>ge,EC:()=>Ha,EE:()=>Kt,EG:()=>Ue,ER:()=>Te,ES:()=>ya,ET:()=>Le,FI:()=>Wt,FJ:()=>re,FM:()=>ve,FR:()=>Za,GA:()=>Oe,GB:()=>Ea,GD:()=>Ft,GE:()=>bl,GH:()=>Be,GM:()=>Ne,GN:()=>ze,GQ:()=>xe,GR:()=>jt,GT:()=>pt,GW:()=>Pe,GY:()=>ba,HK:()=>fe,HN:()=>ft,HR:()=>Pt,HT:()=>Ht,HU:()=>qt,ID:()=>Vl,IE:()=>Jt,IL:()=>Ul,IN:()=>Cl,IQ:()=>Al,IR:()=>Sl,IS:()=>Yt,IT:()=>ka,JM:()=>bt,JO:()=>Tl,JP:()=>xl,KE:()=>Ge,KG:()=>Ol,KH:()=>Ml,KI:()=>Ca,KM:()=>Ce,KN:()=>Ct,KP:()=>jl,KR:()=>lt,KW:()=>Ll,KZ:()=>Dl,LA:()=>Nl,LB:()=>Bl,LC:()=>Vt,LI:()=>$t,LK:()=>tt,LR:()=>We,LS:()=>Ke,LT:()=>Xt,LU:()=>ea,LV:()=>Qt,LY:()=>je,MA:()=>Xe,MC:()=>na,MD:()=>aa,ME:()=>sa,MG:()=>qe,MH:()=>_e,MK:()=>la,ML:()=>Je,MM:()=>Kl,MN:()=>Gl,MO:()=>zl,MR:()=>Qe,MT:()=>ta,MU:()=>$e,MV:()=>Il,MW:()=>Ye,MX:()=>te,MY:()=>Pl,MZ:()=>el,NA:()=>ll,NE:()=>tl,NG:()=>al,NI:()=>Et,NL:()=>wa,NO:()=>ia,NP:()=>Wl,NR:()=>Va,NZ:()=>ce,OM:()=>ql,PA:()=>gt,PE:()=>Aa,PG:()=>de,PH:()=>Ql,PK:()=>Yl,PL:()=>Ma,PR:()=>pe,PS:()=>Jl,PT:()=>ca,PW:()=>ue,PY:()=>Sa,QA:()=>$l,RO:()=>ra,RS:()=>ha,RU:()=>da,RW:()=>nl,SA:()=>Xl,SB:()=>me,SC:()=>cl,SD:()=>ol,SE:()=>_a,SG:()=>et,SI:()=>va,SK:()=>oa,SL:()=>rl,SM:()=>ma,SN:()=>il,SO:()=>dl,SS:()=>hl,ST:()=>sl,SV:()=>ut,SY:()=>at,SZ:()=>De,TD:()=>be,TG:()=>_l,TH:()=>it,TJ:()=>st,TL:()=>Hl,TM:()=>rt,TN:()=>ul,TO:()=>Ua,TR:()=>ct,TT:()=>At,TV:()=>xa,TW:()=>nt,TZ:()=>vl,UA:()=>pa,UG:()=>pl,UK:()=>Ea,US:()=>ee,UY:()=>Ta,UZ:()=>mt,VA:()=>fa,VC:()=>St,VE:()=>Da,VN:()=>ht,VU:()=>he,WS:()=>oe,XK:()=>ha,YE:()=>ot,ZA:()=>ml,ZM:()=>fl,ZW:()=>El});var n=t(1609),s=t.n(n),i=t(6427),c=t(7723),r=t(9684),d=t(207),m=t(6975),h=t(5683),o=t(6087);const v=e=>{const{fields:l,setChangedField:t,updateField:a}=(0,m.A)(),{licenseStatus:s,setLicenseStatus:i}=(0,h.A)(),[v,_]=(0,o.useState)(!1),[u,p]=(0,o.useState)(!1),[f,E]=(0,o.useState)(!1);(0,o.useEffect)((()=>{d.YA("licenseNotices","refresh").then((e=>e)).then((e=>{i(e.licenseStatus),E(e.notices),_(!0)}))}),[l]);let g=e.field;return(0,n.createElement)("div",{className:"components-base-control"},(0,n.createElement)("div",{className:"components-base-control__field"},(0,n.createElement)("label",{className:"components-base-control__label",htmlFor:g.id},g.label),(0,n.createElement)("div",{className:"rsssl-license-field"},(0,n.createElement)("input",{className:"components-text-control__input",type:"password",id:g.id,value:g.value,onChange:e=>{return l=e.target.value,t(g.id,l),void a(g.id,l);var l}}),(0,n.createElement)("button",{className:"button button-default",onClick:()=>(()=>{if(_(!1),"valid"===s)d.YA("deactivate_license").then((e=>{i(e.licenseStatus),E(e.notices),_(!0)}));else{let l={};l.license=e.field.value,d.Eo("activate_license",l).then((e=>{i(e.licenseStatus),E(e.notices),_(!0)}))}})()},"valid"===s&&(0,n.createElement)(n.Fragment,null,(0,c.__)("Deactivate","really-simple-ssl")),"valid"!==s&&(0,n.createElement)(n.Fragment,null,(0,c.__)("Activate","really-simple-ssl"))))),v&&f.map(((e,l)=>(0,n.createElement)(r.A,{key:"task-"+l,index:l,notice:e,highLightField:""}))))},_=e=>{const{updateField:l,setChangedField:t}=(0,m.A)();return(0,n.createElement)("div",{className:"components-base-control"},(0,n.createElement)("div",{className:"components-base-control__field"},(0,n.createElement)("label",{className:"components-base-control__label",htmlFor:e.field.id},e.field.label),(0,n.createElement)("input",{className:"components-text-control__input",type:"password",id:e.field.id,value:e.field.value,onChange:a=>{return n=a.target.value,l(e.field.id,n),void t(e.field.id,n);var n}})))};var u=t(2838),p=t.n(u);const f=e=>{let l=e.field,t=!Array.isArray(e.disabled)&&e.disabled,a=!!Array.isArray(e.disabled)&&e.disabled;return(0,n.createElement)(n.Fragment,null,(0,n.createElement)("div",{className:"components-base-control"},(0,n.createElement)("div",{className:"components-base-control__field"},(0,n.createElement)("div",{"data-wp-component":"HStack",className:"components-flex components-select-control"},(0,n.createElement)("label",{htmlFor:l.id,className:"components-toggle-control__label"},e.label),(0,n.createElement)("select",{disabled:t,value:e.value,onChange:l=>e.onChangeHandler(l.target.value)},e.options.map(((e,l)=>(0,n.createElement)("option",{key:"option-"+l,value:e.value,disabled:a&&a.includes(e.value)},e.label))))))),l.comment&&(0,n.createElement)("div",{className:"rsssl-comment",dangerouslySetInnerHTML:{__html:p().sanitize(l.comment)}}))};var E=t(489),g=t(4124),Z=t(9166),y=t(2043),k=t(435);const w=e=>{const{updateVerificationType:l}=(0,k.A)(),{addHelpNotice:t,updateField:a,setChangedField:s,saveFields:r,fetchFieldsData:d}=(0,m.A)(),{setSelectedSubMenuItem:h}=(0,y.A)();let v=e.action;if((0,o.useEffect)((()=>{v&&"challenge_directory_reachable"===v.action&&"error"===v.status&&t(e.field.id,"default",(0,c.__)("The challenge directory is used to verify the domain ownership.","really-simple-ssl")),v&&"check_key_directory"===v.action&&"error"===v.status&&t(e.field.id,"default",(0,c.__)("The key directory is needed to store the generated keys.","really-simple-ssl")+" "+(0,c.__)("By placing it outside the root folder, it is not publicly accessible.","really-simple-ssl")),v&&"check_certs_directory"===v.action&&"error"===v.status&&t(e.field.id,"default",(0,c.__)("The certificate will get stored in this directory.","really-simple-ssl")+" "+(0,c.__)("By placing it outside the root folder, it is not publicly accessible.","really-simple-ssl"))}),[v]),!v)return(0,n.createElement)(n.Fragment,null);const _=async()=>{a("verification_type","dns"),s("verification_type","dns"),await r(!0,!0),await l("dns"),await h("le-dns-verification"),await d("le-directories")};return(0,n.createElement)("div",{className:"rsssl-test-results"},"error"===v.status&&(0,n.createElement)("h4",null,(0,c.__)("Next step","really-simple-ssl")),"error"===v.status&&"challenge_directory_reachable"===v.action&&(0,n.createElement)("div",null,(0,n.createElement)("p",null,(0,c.__)("If the challenge directory cannot be created, or is not reachable, you can either remove the server limitation, or change to DNS verification.","really-simple-ssl")),(0,n.createElement)(i.Button,{variant:"secondary",onClick:()=>_()},(0,c.__)("Switch to DNS verification","really-simple-ssl"))),"cpanel"===rsssl_settings.hosting_dashboard&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)("p",null,(0,n.createElement)(g.A,{target:"_blank",rel:"noopener noreferrer",text:(0,c.__)("If you also want to secure subdomains like mail.domain.com, cpanel.domain.com, you have to use the %sDNS%s challenge.","really-simple-ssl"),url:"https://really-simple-ssl.com/lets-encrypt-authorization-with-dns"})," ",(0,c.__)("Please note that auto-renewal with a DNS challenge might not be possible.","really-simple-ssl")),(0,n.createElement)(i.Button,{variant:"secondary",onClick:()=>_()},(0,c.__)("Switch to DNS verification","really-simple-ssl"))),"error"===v.status&&"check_challenge_directory"===v.action&&(0,n.createElement)("div",null,(0,n.createElement)("h4",null,(0,c.__)("Create a challenge directory","really-simple-ssl")),(0,n.createElement)("p",null,(0,c.__)("Navigate in FTP or File Manager to the root of your WordPress installation:","really-simple-ssl")),(0,n.createElement)("ul",null,(0,n.createElement)("li",{className:"rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"},(0,c.__)("Create a folder called “.well-known”","really-simple-ssl")),(0,n.createElement)("li",{className:"rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"},(0,c.__)("Inside the folder called “.well-known” create a new folder called “acme-challenge”, with 644 writing permissions.","really-simple-ssl")),(0,n.createElement)("li",{className:"rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"},(0,c.__)("Click the refresh button.","really-simple-ssl"))),(0,n.createElement)("h4",null,(0,c.__)("Or you can switch to DNS verification","really-simple-ssl")),(0,n.createElement)("p",null,(0,c.__)("If the challenge directory cannot be created, you can either remove the server limitation, or change to DNS verification.","really-simple-ssl")),(0,n.createElement)(i.Button,{variant:"secondary",onClick:()=>_()},(0,c.__)("Switch to DNS verification","really-simple-ssl"))),"error"===v.status&&"check_key_directory"===v.action&&(0,n.createElement)("div",null,(0,n.createElement)("h4",null,(0,c.__)("Create a key directory","really-simple-ssl")),(0,n.createElement)("p",null,(0,c.__)("Navigate in FTP or File Manager to one level above the root of your WordPress installation:","really-simple-ssl")),(0,n.createElement)("ul",null,(0,n.createElement)("li",{className:"rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"},(0,c.__)("Create a folder called “ssl”","really-simple-ssl")),(0,n.createElement)("li",{className:"rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"},(0,c.__)("Inside the folder called “ssl” create a new folder called “keys”, with 644 writing permissions.","really-simple-ssl")),(0,n.createElement)("li",{className:"rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"},(0,c.__)("Click the refresh button.","really-simple-ssl")))),"error"===v.status&&"check_certs_directory"===v.action&&(0,n.createElement)("div",null,(0,n.createElement)("h4",null,(0,c.__)("Create a certs directory","really-simple-ssl")),(0,n.createElement)("p",null,(0,c.__)("Navigate in FTP or File Manager to one level above the root of your WordPress installation:","really-simple-ssl")),(0,n.createElement)("ul",null,(0,n.createElement)("li",{className:"rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"},(0,c.__)("Create a folder called “ssl”","really-simple-ssl")),(0,n.createElement)("li",{className:"rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"},(0,c.__)("Inside the folder called “ssl” create a new folder called “certs”, with 644 writing permissions.","really-simple-ssl")),(0,n.createElement)("li",{className:"rsssl-tooltip-icon dashicons-before rsssl-icon arrow-right-alt2 dashicons-arrow-right-alt2"},(0,c.__)("Click the refresh button.","really-simple-ssl")))))};var M=t(7143);const R=e=>{const{updateVerificationType:l}=(0,k.A)(),{fields:t,addHelpNotice:a,updateField:s,setChangedField:r,saveFields:d,fetchFieldsData:h,getFieldValue:v}=(0,m.A)(),{selectedSubMenuItem:_,setSelectedSubMenuItem:u}=(0,y.A)(),[p,f]=(0,o.useState)(!1);let E=e.action;return(0,o.useEffect)((()=>{E&&"challenge_directory_reachable"===E.action&&"error"===E.status&&a(e.field.id,"default",(0,c.__)("The challenge directory is used to verify the domain ownership.","really-simple-ssl"));let l=!!E&&E.output;void 0!==l&&0!==l.length||(l=!1),l&&f(l)}),[E]),"dir"===v("verification_type")?(0,n.createElement)(n.Fragment,null):(0,n.createElement)(n.Fragment,null,p&&p.length>0&&(0,n.createElement)("div",{className:"rsssl-test-results"},(0,n.createElement)("h4",null,(0,c.__)("Next step","really-simple-ssl")),(0,n.createElement)("p",null,(0,c.__)("Add the following token as text record to your DNS records. We recommend to use a short TTL during installation, in case you need to change it.","really-simple-ssl"),(0,n.createElement)(g.A,{target:"_blank",rel:"noopener noreferrer",text:(0,c.__)("Read more","really-simple-ssl"),url:"https://really-simple-ssl.com/how-to-add-a-txt-record-to-dns"})),(0,n.createElement)("div",{className:"rsssl-dns-text-records"},(0,n.createElement)("div",null,(0,n.createElement)("div",{className:"rsssl-dns-domain"},"@/",(0,c.__)("domain","really-simple-ssl")),(0,n.createElement)("div",{className:"rsssl-dns-field"},(0,c.__)("Value","really-simple-ssl"))),p.map(((e,l)=>(0,n.createElement)("div",null,(0,n.createElement)("div",{className:"rsssl-dns-"},"_acme-challenge.",e.domain),(0,n.createElement)("div",{className:"rsssl-dns-field rsssl-selectable"},e.token)))))),(0,n.createElement)("div",{className:"rsssl-test-results"},(0,n.createElement)("p",null,(0,c.__)("DNS verification active. You can switch back to directory verification here.","really-simple-ssl")),(0,n.createElement)(i.Button,{variant:"secondary",onClick:()=>(async()=>{await u("le-directories"),await s("verification_type","dir"),await r("verification_type","dir"),await d(!0,!0),await l("dir"),await h("le-directories")})()},(0,c.__)("Switch to directory verification","really-simple-ssl"))))},F=e=>{let l=e.action;return l?(0,n.createElement)("div",{className:"rsssl-test-results"},"error"===l.status&&"verify_dns"===l.action&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)("p",null,(0,c.__)("We could not check the DNS records. If you just added the record, please check in a few minutes.","really-simple-ssl")," ",(0,n.createElement)(g.A,{target:"_blank",rel:"noopener noreferrer",text:(0,c.__)("You can manually check the DNS records in an %sonline tool%s.","really-simple-ssl"),url:"https://mxtoolbox.com/SuperTool.aspx"}),(0,c.__)("If you're sure it's set correctly, you can click the button to skip the DNS check.","really-simple-ssl")," "),(0,n.createElement)(i.Button,{variant:"secondary",onClick:()=>d.bl("skip_dns_check").then((l=>{e.restartTests(),(0,M.dispatch)("core/notices").createNotice("success",(0,c.__)("Skip DNS verification","really-simple-ssl"),{__unstableHTML:!0,id:"rsssl_skip_dns",type:"snackbar",isDismissible:!0}).then((0,Z.A)(3e3)).then((e=>{(0,M.dispatch)("core/notices").removeNotice("rsssl_skip_dns")}))}))},(0,c.__)("Skip DNS check","really-simple-ssl")))):(0,n.createElement)(n.Fragment,null)};var H=t(5801);const b=()=>(0,n.createElement)("div",{className:"rsssl-lets-encrypt-tests"},(0,n.createElement)(H.A,null)),C=e=>{const{addHelpNotice:l}=(0,m.A)(),[t,a]=(0,o.useState)(!1);let s=e.action;(0,o.useEffect)((()=>{s&&"warning"===s.status&&t&&t.generated_by_rsssl&&(l(e.field.id,"default",(0,c.__)("This is the certificate, which you need to install in your hosting dashboard.","really-simple-ssl"),(0,c.__)("Certificate (CRT)","really-simple-ssl")),l(e.field.id,"default",(0,c.__)("The private key can be uploaded or pasted in the appropriate field on your hosting dashboard.","really-simple-ssl"),(0,c.__)("Private Key (KEY)","really-simple-ssl")),l(e.field.id,"default",(0,c.__)("The CA Bundle will sometimes be automatically detected. If not, you can use this file.","really-simple-ssl"),(0,c.__)("Certificate Authority Bundle (CABUNDLE)","really-simple-ssl"))),!s||"error"!==s.status&&"warning"!==s.status||d.bl("installation_data").then((e=>{e&&a(e.output)}))}),[s]);const i=e=>{let l,t=document.querySelector(".rsssl-"+e).innerText;const a=document.createElement("textarea");a.value=t,document.body.appendChild(a),a.select();try{l=document.execCommand("copy")}catch(e){l=!1}document.body.removeChild(a),(0,M.dispatch)("core/notices").createNotice("success",(0,c.__)("Copied!","really-simple-ssl"),{__unstableHTML:!0,id:"rsssl_copied_data",type:"snackbar",isDismissible:!0}).then((0,Z.A)(3e3)).then((e=>{(0,M.dispatch)("core/notices").removeNotice("rsssl_copied_data")}))};return s&&t?(0,n.createElement)("div",{className:"rsssl-test-results"},!t.generated_by_rsssl&&(0,n.createElement)(n.Fragment,null,(0,c.__)("The certificate is not generated by Really Simple SSL, so there are no installation files here","really-simple-ssl")),t.generated_by_rsssl&&"warning"===s.status&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)("h4",null,(0,c.__)("Next step","really-simple-ssl")),(0,n.createElement)("div",{className:"rsssl-template-intro"},(0,c.__)("Install your certificate.","really-simple-ssl")),(0,n.createElement)("h4",null,(0,c.__)("Certificate (CRT)","really-simple-ssl")),(0,n.createElement)("div",{className:"rsssl-certificate-data rsssl-certificate",id:"rsssl-certificate"},t.certificate_content),(0,n.createElement)("a",{href:t.download_url+"&type=certificate",className:"button button-secondary"},(0,c.__)("Download","really-simple-ssl")),(0,n.createElement)("button",{type:"button",onClick:e=>i("certificate"),className:"button button-primary"},(0,c.__)("Copy content","really-simple-ssl")),(0,n.createElement)("h4",null,(0,c.__)("Private Key (KEY)","really-simple-ssl")),(0,n.createElement)("div",{className:"rsssl-certificate-data rsssl-key",id:"rsssl-key"},t.key_content),(0,n.createElement)("a",{href:t.download_url+"&type=private_key",className:"button button-secondary"},(0,c.__)("Download","really-simple-ssl")),(0,n.createElement)("button",{type:"button",className:"button button-primary",onClick:e=>i("key")},(0,c.__)("Copy content","really-simple-ssl")),(0,n.createElement)("h4",null,(0,c.__)("Certificate Authority Bundle (CABUNDLE)","really-simple-ssl")),(0,n.createElement)("div",{className:"rsssl-certificate-data rsssl-cabundle",id:"rsssl-cabundle"},t.ca_bundle_content),(0,n.createElement)("a",{href:t.download_url+"&type=intermediate",className:"button button-secondary"},(0,c.__)("Download","really-simple-ssl")),(0,n.createElement)("button",{type:"button",className:"button button-primary",onClick:e=>i("cabundle")},(0,c.__)("Copy content","really-simple-ssl")))):(0,n.createElement)(n.Fragment,null)};var V=t(4937);const S=e=>{const{handleNextButtonDisabled:l,getFieldValue:t}=(0,m.A)(),{actionsList:a,setActionsList:s,setActionsListItem:i,setActionsListProperty:r,actionIndex:h,setActionIndex:v,attemptCount:_,setAttemptCount:u,progress:f,setProgress:E,refreshTests:g,setRefreshTests:y}=(0,k.A)(),M=(0,o.useRef)(1e3),H=((0,o.useRef)(!1),(0,o.useRef)(-1)),S=(0,o.useRef)(1),A=(0,o.useRef)(0),U=(0,o.useRef)({});(0,o.useEffect)((()=>{T()}),[e.field.id]),(0,o.useEffect)((()=>(a.length>0&&-1===h&&(v(0),L(0,0)),()=>{})),[a]),(0,o.useEffect)((()=>{H.current=h,E(100/S.current*h);let e=a[h];e&&"retry"===e.do&&_>1&&E(90)}),[h]),(0,o.useEffect)((()=>{A.current=f}),[f]),(0,o.useEffect)((()=>{g&&(y(!1),T(),a.forEach((function(e,l){r(l,"status","inactive")})))}),[g]);const x={inactive:{icon:"circle-times",color:"grey"},warning:{icon:"circle-times",color:"orange"},error:{icon:"circle-times",color:"red"},success:{icon:"circle-check",color:"green"}},T=()=>{l(!0),s((()=>{let l=e.field.actions;return"generation"===e.field.id&&(l=D(l)),S.current=l.length,l})()),E(0),A.current=0,v(-1),H.current=-1},D=e=>{let l=t("verification_type");if(l||(l="dir"),"dns"===l){let l=!1;e.forEach((function(e,t){"verify_dns"===e.action&&(l=!0)}));let t=-1;if(e.forEach((function(e,l){"create_bundle_or_renew"===e.action&&(t=l)})),!l&&t>0){let l=[...e],a=l[t],n={action:"verify_dns"};n.description=(0,c.__)("Verifying DNS records...","really-simple-ssl"),n.attempts=2,l[t]=n,l.push(a),e=l}}return e},L=async t=>{let n={...a[t]};if(!n)return;let s=n.action;const c=new Date;await d.bl(s,e.field.id).then((e=>{let l=new Date-c;const a=Math.round(l);n.status=e.status?e.status:"inactive",n.hide=!1,n.description=e.message,n.do=e.action,n.output=!!e.output&&e.output,M.current=500,a<1500&&(M.current=1500-a),i(t,n)})).then((0,Z.A)(M.current)).then((()=>{(async(e,t)=>{"success"===e.status?u(0):(Number.isInteger(e.attemptCount)||u(0),u(_+1));let n=new CustomEvent("rsssl_le_response",{detail:e});document.dispatchEvent(n),"finalize"===e.do?(a.forEach((function(e,l){l>t&&r(l,"hide",!0)})),v(S.current+1),l(!1)):"continue"===e.do||"skip"===e.do?(u(1),"skip"===e.do&&r(t,"hide",!0),S.current-1>t?(v(t+1),await L(t+1)):(v(t+1),l(!1))):"retry"===e.do?_>=e.attempts?v(S.current):(v(t),await L(t)):"stop"===e.do&&v(S.current)})(n,t)}))},O=e=>x.hasOwnProperty(e.status)?x[e.status].icon:x.inactive.icon,N=e=>x.hasOwnProperty(e.status)?x[e.status].color:x.inactive.color;if(!e.field.actions)return(0,n.createElement)(n.Fragment,null);let B=f;S.current===h+1&&(B=100);let z=a.filter((e=>!0!==e.hide)),P=a[h];P?U.current=P:P=U.current;let I="error"===P.status?"rsssl-orange":"";return(0,n.createElement)(n.Fragment,null,(0,n.createElement)("div",{className:"rsssl-lets-encrypt-tests"},(0,n.createElement)("div",{className:"rsssl-progress-bar"},(0,n.createElement)("div",{className:"rsssl-progress"},(0,n.createElement)("div",{className:"rsssl-bar "+I,style:(G=B,Object.assign({},{width:G+"%"}))}))),(0,n.createElement)("div",{className:"rsssl_letsencrypt_container rsssl-progress-container field-group"},(0,n.createElement)("ul",null,z.map(((e,l)=>(0,n.createElement)("li",{key:"action-"+l},(0,n.createElement)(V.default,{name:O(e),color:N(e)}),"retry"===e.do&&_>=1&&(0,n.createElement)(n.Fragment,null,(0,c.__)("Attempt %s.","really-simple-ssl").replace("%s",_)," ")," ",(0,n.createElement)("span",{dangerouslySetInnerHTML:{__html:p().sanitize(e.description)}})," "))))),"directories"===e.field.id&&(0,n.createElement)(w,{field:e.field,action:P}),"dns-verification"===e.field.id&&(0,n.createElement)(R,{field:e.field,action:P}),"generation"===e.field.id&&(0,n.createElement)(F,{field:e.field,action:P}),"installation"===e.field.id&&(0,n.createElement)(C,{field:e.field,action:P}),"activate"===e.field.id&&(0,n.createElement)(b,{field:e.field,action:P})));var G};var A=t(5319);const U=e=>{const{handleModal:l}=(0,A.A)();return(0,n.createElement)("button",{className:"button button-"+e.btnStyle,onClick:t=>{l(!0,e.modalData,e.item)}},e.btnText)};var x=t(1621);const T=(0,x.vt)(((e,l)=>({mixedContentData:[],dataLoaded:!1,fixedItemId:!1,action:"",nonce:"",completedStatus:"never",progress:0,scanStatus:!1,fetchMixedContentData:async()=>{e({scanStatus:"running"});const{data:l,progress:t,state:a,action:n,nonce:s,completed_status:i}=await D(!1);e({scanStatus:a,mixedContentData:l,progress:t,action:n,nonce:s,completedStatus:i,dataLoaded:!0})},start:async()=>{const{data:l,progress:t,state:a,action:n,nonce:s,completed_status:i}=await D("start");e({scanStatus:a,mixedContentData:l,progress:t,action:n,nonce:s,completedStatus:i,dataLoaded:!0})},runScanIteration:async()=>{let t=l().scanStatus;if("stop"===t)return;const{data:a,progress:n,state:s,action:i,nonce:c,completed_status:r}=await D(t);"stop"!==l().scanStatus&&e({scanStatus:s,mixedContentData:a,progress:n,action:i,nonce:c,completedStatus:r,dataLoaded:!0})},stop:async()=>{e({scanStatus:"stop"});const{data:l,progress:t,state:a,action:n,nonce:s,completed_status:i}=await D("stop");e({scanStatus:"stop",mixedContentData:l,progress:t,action:n,nonce:s,completedStatus:i})},removeDataItem:t=>{let a=l().mixedContentData;for(const e of a)e.id===t.id&&(e.fixed=!0);e({mixedContentData:a})},ignoreDataItem:t=>{let a=l().mixedContentData;for(const e of a)e.id===t.id&&(e.ignored=!0);e({mixedContentData:a})}}))),D=async e=>await d.YA("mixed_content_scan",e).then((l=>{let t=l.data;return"object"==typeof t&&(t=Object.values(t)),Array.isArray(t)||(t=[]),l.data=t,"stop"===e&&(l.state="stop"),l})),L=e=>{const{fixedItems:l,ignoredItems:a}=(0,A.A)(),{fetchMixedContentData:r,mixedContentData:d,runScanIteration:m,start:h,stop:v,dataLoaded:_,action:u,scanStatus:p,progress:f,completedStatus:E,nonce:g,removeDataItem:Z,ignoreDataItem:y}=T(),[k,w]=(0,o.useState)(!1),[M,R]=(0,o.useState)(!1),[F,H]=(0,o.useState)(null),[b,C]=(0,o.useState)(null);(0,o.useEffect)((()=>{Promise.resolve().then(t.bind(t,3757)).then((({default:e,createTheme:l})=>{H((()=>e)),C((()=>l("really-simple-plugins",{divider:{default:"transparent"}},"light")))}))}),[]),(0,o.useEffect)((()=>{r()}),[]),(0,o.useEffect)((()=>{"running"===p&&m()}),[f,p]);let S=e.field,x=[];S.columns.forEach((function(e,l){let t={name:e.name,sortable:e.sortable,grow:e.grow,selector:l=>l[e.column],right:!!e.right};x.push(t)}));let D=_?d:[];for(const t of D)t.warningControl=(0,n.createElement)("span",{className:"rsssl-task-status rsssl-warning"},(0,c.__)("Warning","really-simple-ssl")),l.includes(t.id)&&(t.fixed=!0),a.includes(t.id)&&(t.ignored=!0),t.fix&&(t.fix.url=t.blocked_url,t.fix.nonce=g),t.details&&(t.details.url=t.blocked_url,t.details.nonce=g,t.details.ignored=t.ignored),t.location.length>0&&(-1!==t.location.indexOf("http://")||-1!==t.location.indexOf("https://")?t.locationControl=(0,n.createElement)("a",{href:t.location,target:"_blank",rel:"noopener noreferrer"},(0,c.__)("View","really-simple-ssl")):t.locationControl=t.location),t.detailsControl=t.details&&(0,n.createElement)(U,{handleModal:e.handleModal,item:t,id:t.id,btnText:(0,c.__)("Details","really-simple-ssl"),btnStyle:"secondary",modalData:t.details}),t.fixControl=t.fix&&(0,n.createElement)(U,{className:"button button-primary",handleModal:e.handleModal,item:t,id:t.id,btnText:(0,c.__)("Fix","really-simple-ssl"),btnStyle:"primary",modalData:t.fix});k||(D=D.filter((e=>!e.ignored))),D=D.filter((e=>!e.fixed));let L=f+"%",O="running"===p,N="running"!==p;return(0,n.createElement)(n.Fragment,null,(0,n.createElement)("div",{className:"rsssl-progress-container"},(0,n.createElement)("div",{className:"rsssl-progress-bar",style:{width:L}})),"running"===p&&(0,n.createElement)("div",{className:"rsssl-current-scan-action"},u),0===D.length&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)("div",{className:"rsssl-mixed-content-description"},"running"!==p&&"never"===E&&(0,c.__)("No results. Start your first scan","really-simple-ssl"),"running"!==p&&"completed"===E&&(0,c.__)("Everything is now served over SSL","really-simple-ssl")),("running"===p||"completed"!==E)&&(0,n.createElement)("div",{className:"rsssl-mixed-content-placeholder"},(0,n.createElement)("div",null),(0,n.createElement)("div",null),(0,n.createElement)("div",null)),"running"!==p&&"completed"===E&&(0,n.createElement)("div",{className:"rsssl-shield-overlay"},(0,n.createElement)(V.default,{name:"shield",size:"80px"}))),F&&D.length>0&&(0,n.createElement)("div",{className:"rsssl-mixed-content-datatable"},(0,n.createElement)(F,{columns:x,data:D,expandableRows:!0,expandableRowsComponent:({data:e,disabled:l,handleFix:t})=>(0,n.createElement)("div",{className:"rsssl-container"},(0,n.createElement)("div",null,(0,n.createElement)("p",null,e.details.description.map(((e,l)=>(0,n.createElement)(s().Fragment,{key:"fragment-"+l},(0,n.createElement)("span",null,e),(0,n.createElement)("br",null)))))),(0,n.createElement)("div",{className:"",style:{display:"flex",alignItems:"center",justifyContent:"center"}},e.details.edit&&(0,n.createElement)("a",{href:e.details.edit,target:"_blank",rel:"noopener noreferrer",className:"button button-secondary",style:{display:"flex",alignItems:"center",justifyContent:"center",marginRight:"10px"}},(0,c.__)("Edit","really-simple-ssl")),e.details.help&&(0,n.createElement)("button",{href:e.details.help,target:"_blank",rel:"noopener noreferrer",className:"button button-red",style:{display:"flex",alignItems:"center",justifyContent:"center",marginRight:"10px"}},(0,c.__)("Help","really-simple-ssl")),!e.details.ignored&&"ignore_url"===e.details.action&&(0,n.createElement)("button",{disabled:l,className:"button button-primary",onClick:e=>t(e,"ignore"),style:{display:"flex",alignItems:"center",justifyContent:"center",marginRight:"10px"}},(0,c.__)("Ignore","really-simple-ssl")),"ignore_url"!==e.details.action&&(0,n.createElement)("button",{disabled:l,className:"button button-primary rsssl-action-buttons__button",onClick:e=>t(e,"fix")},(0,c.__)("Fix","really-simple-ssl")))),dense:!0,pagination:!0,paginationResetDefaultPage:M,noDataComponent:(0,c.__)("No results","really-simple-ssl"),theme:b,customStyles:{headCells:{style:{paddingLeft:"0",paddingRight:"0"}},cells:{style:{paddingLeft:"0",paddingRight:"0"}}}})),(0,n.createElement)("div",{className:"rsssl-grid-item-content-footer"},(0,n.createElement)("button",{className:"button",disabled:O,onClick:()=>h()},(0,c.__)("Start scan","really-simple-ssl")),(0,n.createElement)("button",{className:"button",disabled:N,onClick:()=>v()},(0,c.__)("Stop","really-simple-ssl")),(0,n.createElement)(i.ToggleControl,{checked:1==k,onChange:e=>{w(!k)}}),(0,n.createElement)("label",null,(0,c.__)("Show ignored URLs","really-simple-ssl"))))},O=e=>{const{fields:l,updateField:a,updateSubField:s,setChangedField:r,saveFields:d}=(0,m.A)(),[h,v]=(0,o.useState)(0),[_,u]=(0,o.useState)(null),[p,f]=(0,o.useState)(null),[E,g]=(0,o.useState)([]),[Z,y]=(0,o.useState)(!1);(0,o.useEffect)((()=>{Promise.resolve().then(t.bind(t,3757)).then((({default:e,createTheme:l})=>{u((()=>e)),f((()=>l("really-simple-plugins",{divider:{default:"transparent"}},"light")))}))}),[]),(0,o.useEffect)((()=>{let e=l.filter((e=>"enable_permissions_policy"===e.id))[0];v(e.value)}),[]);const k=(l,t)=>{let n=e.field;"object"==typeof n.value&&a(n.id,Object.values(n.value)),s(n.id,t.id,l),r(n.id,l),d(!0,!1)},w=(e,t)=>{e.preventDefault();let n=l.filter((e=>"enable_permissions_policy"===e.id))[0];v(t),a(n.id,t),r(n.id,n.value),d(!0,!1)};let M=e.field;M.value;const R=["button-secondary","button-primary","button-red"];let F=e.options.map(((e,l)=>(e.button=R[l],e)));columns=[],M.columns.forEach((function(e,l){let t={name:e.name,sortable:e.sortable,width:e.width,selector:l=>l[e.column]};columns.push(t)}));let H=M.value;"object"==typeof H&&(H=Object.values(H)),Array.isArray(H)||(H=[]);let b=[];for(const e of H){let l={...e};l.valueControl=(0,n.createElement)(i.SelectControl,{help:"",value:e.value,disabled:!1,options:F,label:"",onChange:l=>k(l,e)}),b.push(l)}return _&&p?(0,n.createElement)("div",null,E.length>0&&(0,n.createElement)("div",{style:{marginTop:"1em",marginBottom:"1em"}},(0,n.createElement)("div",{className:"rsssl-multiselect-datatable-form rsssl-primary"},(0,n.createElement)("div",null,(0,c.__)("You have selected","really-simple-ssl")," ",E.length," ",(0,c.__)("rows","really-simple-ssl")),(0,n.createElement)("div",{className:"rsssl-action-buttons"},F.map((l=>(0,n.createElement)("div",{className:"rsssl-action-buttons__inner",key:"option-"+l.value},(0,n.createElement)(i.Button,{className:"button "+l.button+" rsssl-action-buttons__button",onClick:t=>((l,t)=>{let n=e.field;"object"==typeof n.value&&a(n.id,Object.values(n.value)),l.forEach((e=>{s(n.id,e.id,t),r(n.id,t)})),d(!0,!1),y(!0),g([]),setTimeout((()=>y(!1)),0)})(E,l.value)},"self"===l.value?(0,c.__)("Reset","really-simple-ssl"):(0,c.__)(l.label,"really-simple-ssl")))))))),(0,n.createElement)(_,{columns,data:b,dense:!0,pagination:!1,customStyles:{headCells:{style:{paddingLeft:"0",paddingRight:"0"}},cells:{style:{paddingLeft:"0",paddingRight:"0"}}},theme:p,selectableRows:!0,selectableRowsHighlight:!0,onSelectedRowsChange:function(e){y(!1),g(e.selectedRows)},clearSelectedRows:Z}),1!=h&&(0,n.createElement)("button",{className:"button button-primary",onClick:e=>w(e,!0)},(0,c.__)("Enforce","really-simple-ssl")),1==h&&(0,n.createElement)("div",{className:"rsssl-locked"},(0,n.createElement)("div",{className:"rsssl-shield-overlay"},(0,n.createElement)(V.default,{name:"shield",size:"80px"})),(0,n.createElement)("div",{className:"rsssl-locked-overlay"},(0,n.createElement)("span",{className:"rsssl-progress-status rsssl-learning-mode-enforced"},(0,c.__)("Enforced","really-simple-ssl")),e.disabled&&(0,n.createElement)(n.Fragment,null,(0,c.__)("Permissions Policy is set outside Really Simple SSL.","really-simple-ssl")," "),!e.disabled&&(0,n.createElement)(n.Fragment,null,(0,c.__)("Permissions Policy is enforced.","really-simple-ssl")," "),!e.disabled&&(0,n.createElement)("a",{className:"rsssl-learning-mode-link",href:"#",onClick:e=>w(e,!1)},(0,c.__)("Disable","really-simple-ssl")))),e.disabled&&1!=h&&(0,n.createElement)("div",{className:"rsssl-locked"},(0,n.createElement)("div",{className:"rsssl-locked-overlay"},(0,n.createElement)("span",{className:"rsssl-progress-status rsssl-disabled"},(0,c.__)("Disabled","really-simple-ssl")),(0,c.__)("The Permissions Policy has been disabled.","really-simple-ssl")))):null},N=e=>{const[l,t]=(0,o.useState)(!1),a=l=>{i.__experimentalConfirmDialog&&e.field.warning&&e.field.warning.length>0&&!e.field.value?t(!0):s()},s=l=>{let t=!e.field.value;e.onChangeHandler(t)};let c=e.field,r=c.value?"is-checked":"",d=e.disabled?"is-disabled":"";return(0,n.createElement)(n.Fragment,null,i.__experimentalConfirmDialog&&(0,n.createElement)(i.__experimentalConfirmDialog,{isOpen:l,onConfirm:async()=>{t(!1),s()},onCancel:()=>{t(!1)}},c.warning),(0,n.createElement)("div",{className:"components-base-control components-toggle-control"},(0,n.createElement)("div",{className:"components-base-control__field"},(0,n.createElement)("div",{"data-wp-component":"HStack",className:"components-flex components-h-stack"},(0,n.createElement)("span",{className:"components-form-toggle "+r+" "+d},(0,n.createElement)("input",{onKeyDown:e=>(e=>{"Enter"===e.key&&(e.preventDefault(),a())})(e),checked:c.value,className:"components-form-toggle__input",onChange:e=>a(),id:c.id,type:"checkbox",disabled:e.disabled}),(0,n.createElement)("span",{className:"components-form-toggle__track"}),(0,n.createElement)("span",{className:"components-form-toggle__thumb"})),(0,n.createElement)("label",{htmlFor:c.id,className:"components-toggle-control__label"},e.label)))))},B=()=>{const[e,l]=(0,o.useState)(""),[t,a]=(0,o.useState)(!1);let s=t||0===e.length;return(0,n.createElement)(n.Fragment,null,(0,n.createElement)(i.TextareaControl,{disabled:t,placeholder:(0,c.__)("Type your question here","really-simple-ssl"),onChange:e=>(e=>{l(e)})(e)}),(0,n.createElement)("button",{className:"button button-secondary",disabled:s,onClick:l=>(a(!0),d.YA("supportData","refresh").then((l=>{let t=e.replace(/(?:\r\n|\r|\n)/g,"--br--"),a="https://really-simple-ssl.com/support?customername="+encodeURIComponent(l.customer_name)+"&email="+l.email+"&domain="+l.domain+"&scanresults="+encodeURIComponent(l.scan_results)+"&licensekey="+encodeURIComponent(l.license_key)+"&supportrequest="+encodeURIComponent(t)+"&htaccesscontents="+encodeURIComponent(l.htaccess_contents)+"&debuglog="+encodeURIComponent(l.system_status);window.location.assign(a)})))},(0,c.__)("Send","really-simple-ssl")))},z=(0,x.vt)(((e,l)=>({learningModeData:[],dataLoaded:!1,fetchLearningModeData:async l=>{let t={};t.type=l,t.lm_action="get";let a=await d.Eo("learning_mode_data",t).then((e=>e));"object"==typeof a&&!0===a.request_success&&(a=Object.values(a)),Array.isArray(a)||(a=[]),e({learningModeData:a,dataLoaded:!0})},updateStatus:async(t,a,n)=>{let s=l().learningModeData,i={};i.type=n,i.updateItemId=a.id,i.enabled=1==t?0:1,i.lm_action="update";for(const e of s)a.id===e.id&&e.status&&(e.status=i.enabled);e({learningModeData:s}),s=await d.Eo("learning_mode_data",i).then((e=>e)),"object"==typeof s&&(s=Object.values(s)),Array.isArray(s)||(s=[]),e({learningModeData:s,dataLoaded:!0})},deleteData:async(t,a)=>{let n=l().learningModeData,s={};s.type=a,s.updateItemId=t.id,s.lm_action="delete",n.forEach((function(e,l){e.id===t.id&&n.splice(l,1)})),e({learningModeData:n}),n=await d.Eo("learning_mode_data",s).then((e=>e)),"object"==typeof n&&(n=Object.values(n)),Array.isArray(n)||(n=[]),e({learningModeData:n,dataLoaded:!0})}}))),P=e=>{const{updateStatus:l}=z();let t=1==e.item.status?"button button-primary rsssl-status-allowed":"button button-default rsssl-status-revoked",a=1==e.item.status?(0,c.__)("Revoke","really-simple-ssl"):(0,c.__)("Allow","really-simple-ssl");return(0,n.createElement)("button",{onClick:()=>l(e.item.status,e.item,e.field.id),className:t},a)},I=e=>{const{deleteData:l}=z();return(0,n.createElement)("button",{type:"button",className:"button button-red rsssl-learning-mode-delete",onClick:()=>l(e.item,e.field.id)},(0,c.__)("Delete","really-simple-ssl"))},G=e=>{const{updateField:l,getFieldValue:a,getField:s,setChangedField:r,highLightField:d,saveFields:h}=(0,m.A)(),{fetchLearningModeData:v,learningModeData:_,dataLoaded:u,updateStatus:p,deleteData:f}=z(),[E,g]=(0,o.useState)(0),[Z,y]=(0,o.useState)(0),[k,w]=(0,o.useState)(0),[M,R]=(0,o.useState)(0),[F,H]=(0,o.useState)(!1),[b,C]=(0,o.useState)(0),[S,A]=(0,o.useState)(-1),[U,x]=(0,o.useState)(!1),[T,D]=(0,o.useState)([]),[L,O]=(0,o.useState)(!1),[N,B]=(0,o.useState)(null),[G,K]=(0,o.useState)(null);(0,o.useEffect)((()=>{Promise.resolve().then(t.bind(t,3757)).then((({default:e,createTheme:l})=>{B((()=>e)),K((()=>l("really-simple-plugins",{divider:{default:"transparent"}},"light")))}))}),[]),(0,o.useEffect)((()=>{(async()=>{await v(e.field.id);let l=s(e.field.control_field),t="enforced-by-thirdparty"===l.value,n=t||"enforce"===l.value;x(l),g(t),R("completed"===l.value),H("error"===l.value),C(a(e.field.control_field+"_lm_enabled_once")),y(n),w("learning_mode"===l.value)})()}),[Z,k]);const W=async(e,t)=>{e.preventDefault();let a=1==t?"enforce":"disabled";y(t),R(0),w(0),r(U.id,a),l(U.id,a),await h(!0,!1)},j=async t=>{t.preventDefault();let a,n=s(e.field.control_field+"_lm_enabled_once");k&&(C(1),l(n.id,1)),k||M?(w(0),a="disabled"):(w(1),a="learning_mode"),R(0),r(U.id,a),l(U.id,a),r(n.id,n.value),l(n,n.value),await h(!0,!1)};let q=e.field,Y=(0,c.__)(" The %s is now in report-only mode and will collect directives. This might take a while. Afterwards you can Exit, Edit and Enforce these Directives.","really-simple-ssl").replace("%s",q.label),J=(0,c.__)("%s has been disabled.","really-simple-ssl").replace("%s",q.label),Q=(0,c.__)("%s is enforced.","really-simple-ssl").replace("%s",q.label),$=!b;E&&(J=(0,c.__)("%s is already set outside Really Simple SSL.","really-simple-ssl").replace("%s",q.label));let X="rsssl-field-wrap";e.field.id;let ee=[];q.columns.forEach((function(e,l){let t={name:e.name,sortable:e.sortable,width:e.width,selector:l=>l[e.column]};ee.push(t)}));let le=_;le=le.filter((e=>e.status<2)),-1!=S&&(le=le.filter((e=>e.status==S)));for(const l of le)l.login_status&&(l.login_statusControl=1==l.login_status?(0,c.__)("success","really-simple-ssl"):(0,c.__)("failed","really-simple-ssl")),l.statusControl=(0,n.createElement)(P,{item:l,field:e.field}),l.deleteControl=(0,n.createElement)(I,{item:l,field:e.field}),l.grouped=(0,n.createElement)("div",{className:"rsssl-action-buttons"},(0,n.createElement)(P,{item:l,field:e.field}),(0,n.createElement)(I,{item:l,field:e.field}));const te=(e,l,t)=>{l.forEach((l=>{p(e,l,t)})),O(!0),D([]),setTimeout((()=>O(!1)),0)};return N&&G?(0,n.createElement)(n.Fragment,null,(0,n.createElement)("div",null,!u&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)("div",{className:"rsssl-learningmode-placeholder"},(0,n.createElement)("div",null),(0,n.createElement)("div",null),(0,n.createElement)("div",null),(0,n.createElement)("div",null))),T.length>0&&(0,n.createElement)("div",{style:{marginTop:"1em",marginBottom:"1em"}},(0,n.createElement)("div",{className:"rsssl-multiselect-datatable-form rsssl-primary"},(0,n.createElement)("div",null,(0,c.__)("You have selected","really-simple-ssl")," ",T.length," ",(0,c.__)("rows","really-simple-ssl")),(0,n.createElement)("div",{className:"rsssl-action-buttons"},(-1===Number(S)||0===Number(S))&&(0,n.createElement)("div",{className:"rsssl-action-buttons__inner"},(0,n.createElement)(i.Button,{className:"button button-secondary rsssl-status-allowed rsssl-action-buttons__button",onClick:()=>te(0,T,e.field.id)},(0,c.__)("Allow","really-simple-ssl"))),(-1===Number(S)||1===Number(S))&&(0,n.createElement)("div",{className:"rsssl-action-buttons__inner"},(0,n.createElement)(i.Button,{className:"button button-primary rsssl-action-buttons__button",onClick:()=>te(1,T,e.field.id)},(0,c.__)("Revoke","really-simple-ssl"))),(0,n.createElement)("div",{className:"rsssl-action-buttons__inner"},(0,n.createElement)(i.Button,{className:"button button-red rsssl-action-buttons__button",onClick:()=>{return l=T,t=e.field.id,l.forEach((e=>{f(e,t)})),O(!0),D([]),void setTimeout((()=>O(!1)),0);var l,t}},(0,c.__)("Remove","really-simple-ssl")))))),u&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)(N,{columns:ee,data:le,dense:!0,pagination:!0,noDataComponent:(0,c.__)("No results","really-simple-ssl"),persistTableHead:!0,theme:G,customStyles:{headCells:{style:{paddingLeft:"0",paddingRight:"0"}},cells:{style:{paddingLeft:"0",paddingRight:"0"}}},conditionalRowStyles:[{when:e=>0==e.status,classNames:["rsssl-datatables-revoked"]}],selectableRows:!0,selectableRowsHighlight:!0,onSelectedRowsChange:function(e){O(!1),D(e.selectedRows)},clearSelectedRows:L})),(0,n.createElement)("div",{className:"rsssl-learning-mode-footer "},F&&(0,n.createElement)("div",{className:"rsssl-locked"},(0,n.createElement)("div",{className:"rsssl-locked-overlay"},(0,n.createElement)("span",{className:"rsssl-progress-status rsssl-learning-mode-error"},(0,c.__)("Error detected","really-simple-ssl")),(0,c.__)("%s cannot be implemented due to server limitations. Check your notices for the detected issue.","really-simple-ssl").replace("%s",q.label)," ",(0,n.createElement)("a",{className:"rsssl-learning-mode-link",href:"#",onClick:e=>W(e,!1)},(0,c.__)("Disable","really-simple-ssl")))),!F&&(0,n.createElement)(n.Fragment,null,1!=Z&&(0,n.createElement)("button",{disabled:$,className:"button button-primary",onClick:e=>W(e,!0)},(0,c.__)("Enforce","really-simple-ssl")),!E&&1==Z&&(0,n.createElement)("button",{className:"button",onClick:e=>W(e,!1)},(0,c.__)("Disable","really-simple-ssl")),(0,n.createElement)("label",null,(0,n.createElement)("input",{type:"checkbox",disabled:Z,checked:1==k,value:k,onChange:e=>j(e)}),(0,c.__)("Enable Learning Mode to configure automatically","really-simple-ssl")),1==Z&&(0,n.createElement)("div",{className:"rsssl-locked"},(0,n.createElement)("div",{className:"rsssl-shield-overlay"},(0,n.createElement)(V.default,{name:"shield",size:"80px"})),(0,n.createElement)("div",{className:"rsssl-locked-overlay"},(0,n.createElement)("span",{className:"rsssl-progress-status rsssl-learning-mode-enforced"},(0,c.__)("Enforced","really-simple-ssl")),Q," ",(0,n.createElement)("a",{className:"rsssl-learning-mode-link",href:"#",onClick:e=>W(e)},(0,c.__)("Disable to configure","really-simple-ssl")))),1==k&&(0,n.createElement)("div",{className:"rsssl-locked"},(0,n.createElement)("div",{className:"rsssl-locked-overlay"},(0,n.createElement)("span",{className:"rsssl-progress-status rsssl-learning-mode"},(0,c.__)("Learning Mode","really-simple-ssl")),Y," ",(0,n.createElement)("a",{className:"rsssl-learning-mode-link",href:"#",onClick:e=>j(e)},(0,c.__)("Exit","really-simple-ssl")))),1==M&&(0,n.createElement)("div",{className:"rsssl-locked"},(0,n.createElement)("div",{className:"rsssl-locked-overlay"},(0,n.createElement)("span",{className:"rsssl-progress-status rsssl-learning-mode-completed"},(0,c.__)("Learning Mode","really-simple-ssl")),(0,c.__)("We finished the configuration.","really-simple-ssl")," ",(0,n.createElement)("a",{className:"rsssl-learning-mode-link",href:"#",onClick:e=>j(e)},(0,c.__)("Review the settings and enforce the policy","really-simple-ssl")))),rsssl_settings.pro_plugin_active&&e.disabled&&(0,n.createElement)("div",{className:"rsssl-locked "},(0,n.createElement)("div",{className:"rsssl-locked-overlay"},!E&&(0,n.createElement)("span",{className:"rsssl-progress-status rsssl-disabled"},(0,c.__)("Disabled","really-simple-ssl")),E&&(0,n.createElement)("span",{className:"rsssl-progress-status rsssl-learning-mode-enforced"},(0,c.__)("Enforced","really-simple-ssl")),J))),(0,n.createElement)((()=>(0,n.createElement)(n.Fragment,null,(0,n.createElement)("select",{onChange:e=>A(e.target.value),value:S},(0,n.createElement)("option",{value:"-1"},(0,c.__)("All","really-simple-ssl")),(0,n.createElement)("option",{value:"1"},(0,c.__)("Allowed","really-simple-ssl")),(0,n.createElement)("option",{value:"0"},(0,c.__)("Blocked","really-simple-ssl"))))),null)))):null};var K=t(4449);const W=e=>{const{riskData:l,dummyRiskData:a,processing:s,dataLoaded:i,fetchVulnerabilities:c,updateRiskData:r}=(0,K.A)(),{fields:d,fieldAlreadyEnabled:h,getFieldValue:o,setChangedField:v,updateField:_,saveFields:u}=(0,m.A)(),[p,f]=(0,n.useState)(!1),[E,g]=(0,n.useState)(!1),[Z,y]=(0,n.useState)(null),[k,w]=(0,n.useState)(null);(0,n.useEffect)((()=>{Promise.resolve().then(t.bind(t,3757)).then((({default:e,createTheme:l})=>{y((()=>e)),w((()=>l("really-simple-plugins",{divider:{default:"transparent"}},"light")))}))}),[]),(0,n.useEffect)((()=>{h("enable_vulnerability_scanner")&&(i||c());let e=h("enable_vulnerability_scanner");g(e);let l=1==o("measures_enabled");f(l)}),[d]),(0,n.useEffect)((()=>{let e=1==o("measures_enabled");f(e)}),[]);let M=[];e.field.columns.forEach((function(e,l){let t={name:(a=e).name,sortable:a.sortable,width:a.width,selector:e=>e[a.column],grow:a.grow};var a;M.push(t)}));let R=e.field.options;R=Object.entries(R).map((e=>({label:e[1],value:e[0]})));let F=Array.isArray(l)?[...l]:[];F=0===F.length?[...a]:F;let H=!E||!p;for(const e in F){let l={...F[e]};l.riskSelection=(0,n.createElement)("select",{disabled:s||H,value:l.value,onChange:e=>{return t=e.target.value,void r(l.id,t);var t}},R.map(((e,t)=>(0,n.createElement)("option",{key:"risk-"+t,value:e.value,disabled:l.disabledRiskLevels&&l.disabledRiskLevels.includes(e.value)},e.label)))),F[e]=l}let b=H?"rsssl-processing":"";return(0,n.createElement)("div",{className:b},Z&&(0,n.createElement)(Z,{columns:M,data:Object.values(F),theme:k}))};var j=t(3757),q=t(2828),Y=t(6535);(0,x.vt)(((e,l)=>({showIntro:!1,setShowIntro:l=>e({showIntro:l}),disabled:!0,introCompleted:!1,setIntroCompleted:l=>{e({introCompleted:l})},setDisabled(l){e((e=>({disabled:l})))},list:[{id:"initialize",icon:"loading",color:"black",text:(0,c.__)("Preparing vulnerability detection","really-simple-ssl")},{id:"fetchVulnerabilities",icon:"loading",color:"black",text:(0,c.__)("Collecting plugin, theme and core data","really-simple-ssl")},{id:"scan",icon:"loading",color:"black",text:(0,c.__)("Scanning your WordPress configuration","really-simple-ssl")},{id:"enabled",icon:"loading",color:"black",text:(0,c.__)("Reporting enabled","really-simple-ssl")}],setItemCompleted:async t=>{const a=l().list.findIndex((e=>e.id===t));e((0,Y.jM)((e=>{const l=e.list[a];l.icon="circle-check",l.color="green",e.list[a]=l})))}})));const J=e=>{const{getProgressData:l}=(0,q.A)(),[t,a]=(0,n.useState)(!1),{dataLoaded:s,vulList:i,fetchVulnerabilities:r,setDataLoaded:d,fetchFirstRun:h}=(0,K.A)(),{getFieldValue:o,handleNextButtonDisabled:v,fieldAlreadyEnabled:_,fieldsLoaded:u}=(0,m.A)(),[p,f]=(0,n.useState)("");let E=[],g=e.field;const Z={headCells:{style:{paddingLeft:"0",paddingRight:"0"}},cells:{style:{paddingLeft:"0",paddingRight:"0"}}};(0,j.createTheme)("really-simple-plugins",{divider:{default:"transparent"}},"light"),(0,n.useEffect)((()=>{u&&a(1==o("enable_vulnerability_scanner"))}),[u]);g.columns.forEach((function(e,l){let t={name:(a=e).name,sortable:a.sortable,visible:a.visible,selector:e=>e[a.column],searchable:a.searchable,grow:a.grow,width:a.width};var a;E.push(t)})),(0,n.useEffect)((()=>{let e=_("enable_vulnerability_scanner"),l=1==o("enable_vulnerability_scanner");v(!(!l||e)),e&&d(!1)}),[o("enable_vulnerability_scanner")]),(0,n.useEffect)((()=>{s||_("enable_vulnerability_scanner")&&y()}),[s]);const y=async()=>{await h(),await r(),await l()};if(!t)return(0,n.createElement)(n.Fragment,null,(0,n.createElement)(j.default,{columns:E,data:[["","","","",""],["","","","",""],["","","","",""]],dense:!0,pagination:!0,noDataComponent:(0,c.__)("No results","really-simple-ssl"),persistTableHead:!0,theme:"really-simple-plugins",customStyles:Z}),(0,n.createElement)("div",{className:"rsssl-locked"},(0,n.createElement)("div",{className:"rsssl-locked-overlay"},(0,n.createElement)("span",{className:"rsssl-task-status rsssl-open"},(0,c.__)("Disabled","really-simple-ssl")),(0,n.createElement)("span",null,(0,c.__)("Activate vulnerability detection to enable this block.","really-simple-ssl")))));let k=i.map((e=>({...e,risk_name:(0,n.createElement)("span",{className:"rsssl-badge-large rsp-risk-level-"+e.risk_level},e.risk_name.replace("-risk",""))})));return p.length>0&&(k=k.filter((function(e){if(e.Name.toLowerCase().includes(p.toLowerCase()))return e}))),(0,n.createElement)(n.Fragment,null,(0,n.createElement)("div",{className:"rsssl-container"},(0,n.createElement)("div",null),(0,n.createElement)("div",{className:"rsssl-search-bar"},(0,n.createElement)("div",{className:"rsssl-search-bar__inner"},(0,n.createElement)("div",{className:"rsssl-search-bar__icon"}),(0,n.createElement)("input",{type:"text",className:"rsssl-search-bar__input",placeholder:(0,c.__)("Search","really-simple-ssl"),onKeyUp:e=>{f(e.target.value)}})))),(0,n.createElement)(j.default,{columns:E,data:k,dense:!0,pagination:!0,persistTableHead:!0,noDataComponent:(0,c.__)("No vulnerabilities found","really-simple-ssl"),theme:"really-simple-plugins",customStyles:Z}))},Q=(0,x.vt)(((e,l)=>({processing:!1,dataLoaded:!1,ipAddress:"",highestIP:"",lowestIP:"",statusSelected:"blocked",inputRangeValidated:!1,cidr:"",ip_count:"",canSetCidr:!1,ipRange:{},idSelected:"",pagination:{},dataActions:{},IpDataTable:[],maskError:!1,rowCleared:!1,setMaskError:l=>{e({maskError:l})},fetchIpData:async(l,t)=>{if(e({processing:!0}),e({dataLoaded:!1}),e({rowCleared:!0}),0!==Object.keys(t).length)try{const a=await d.Eo(l,t);a&&e({IpDataTable:a,dataLoaded:!0,processing:!1,pagination:a.pagination})}catch(e){console.log(e)}finally{e({processing:!1}),e({rowCleared:!1})}},handleIpTableSearch:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,search:l,searchColumns:t}})))},handleIpTablePageChange:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,page:l,pageSize:t}})))},handleIpTableRowsChange:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,currentRowsPerPage:l,currentPage:t}})))},handleIpTableSort:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,sortColumn:l,sortDirection:t}})))},handleIpTableFilter:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,filterColumn:l,filterValue:t}})))},setIpAddress:l=>{if(0===l.length)return;let t=/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$|^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,4}|((25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9]))|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9]))$/;if(l.includes("/")){let a="",[n,s]=l.split("/");n=n.replace(/,/g,"."),s.length<=0?(t.test(n)?e({maskError:!1}):e({maskError:!0}),a=`${n}/${s}`):a=s?`${n}/${s}`:n,e({ipAddress:a})}else t.test(l)?e({maskError:!1}):e({maskError:!0}),e({ipAddress:l.replace(/,/g,".")})},resetRange:()=>{e({inputRangeValidated:!1}),e({highestIP:""}),e({lowestIP:""}),e({ipAddress:""}),e({maskError:!1})},setStatusSelected:l=>{e({statusSelected:l})},setId:l=>{e({idSelected:l})},updateRow:async(t,a,n)=>{e({processing:!0});try{const e=await d.Eo("ip_update_row",{id:t,status:a});e&&e.request_success&&await l().fetchIpData("ip_list",n)}catch(e){console.log(e)}finally{e({processing:!1})}},addRow:async(t,a,n)=>{e({processing:!0});try{const s=await d.Eo("ip_add_ip_address",{ipAddress:t,status:a});s&&s.request_success?await l().fetchIpData("ip_list",n):(console.log("Failed to add IP address: ",s.message),e({ipAddress:""}))}catch(e){console.log(e)}finally{e({processing:!1}),e({ipAddress:""})}},validateIpv4:e=>{const l=e.split(".");if(4!==l.length)return!1;for(let e of l){const l=parseInt(e,10);if(console.log(l),isNaN(l)||l<0||l>255)return!1}return!0},validateIpv6:e=>{const l=e.split(":");if(8!==l.length)return!1;for(let e of l)if(e.length>4||!/^[0-9a-fA-F]+$/.test(e))return!1;return!0},extendIpV6:e=>{if("::"===e&&(e="0::0"),e.includes("::")){const l=e.split("::");if(l.length>2)return!1;const t=l[0].split(":").filter(Boolean),a=l[1].split(":").filter(Boolean),n=8-(t.length+a.length);return[...t,...Array(n).fill("0"),...a].join(":")}return e},ipToNumber:e=>l().validateIpv4(e)?l().ipV4ToNumber(e):l().validateIpv6(l().extendIpV6(e))?l().ipV6ToNumber(l().extendIpV6(e)):void 0,ipV4ToNumber:e=>e.split(".").reduce(((e,l)=>256*e+parseInt(l,10)>>>0),0),ipV6ToNumber:e=>e.split(":").reduce(((e,l)=>{const t=parseInt(l,16);return isNaN(t)?(console.warn(`Invalid segment in IPv6 address: ${oldIp}`),e):(e<<BigInt(16))+BigInt(t)}),BigInt(0)),validateIpRange:(t,a)=>{e({inputRangeValidated:!1});let n="",s="";if(t&&a)if(l().validateIpv4(t)&&l().validateIpv4(a)){if(l().ipToNumber(t)>l().ipToNumber(a))return console.warn("lowest is higher than highest"),void e({inputRangeValidated:!1});n=t,s=a,e({inputRangeValidated:!0})}else if(l().validateIpv6(l().extendIpV6(t))&&l().validateIpv6(l().extendIpV6(a))){if(l().ipToNumber(l().extendIpV6(t))>l().ipToNumber(l().extendIpV6(a)))return console.warn("lowest is higher than highest"),void e({inputRangeValidated:!1});n=l().extendIpV6(t),s=l().extendIpV6(a),e({inputRangeValidated:!0})}l().inputRangeValidated&&(e({ipRange:{lowest:n,highest:s}}),l().fetchCidrData("get_mask_from_range"))},fetchCidrData:async t=>{try{const a=await d.Eo(t,l().ipRange);a&&e({cidr:a.cidr,ipAddress:a.cidr,ip_count:a.ip_count,canSetCidr:!0})}catch(e){console.log(e)}},updateMultiRow:async(t,a,n)=>{e({processing:!0});try{const e=await d.Eo("ip_update_multi_row",{ids:t,status:a});e&&e.request_success&&await l().fetchIpData("ip_list",n)}catch(e){console.log(e)}finally{e({processing:!1})}},resetRow:async(t,a)=>{e({processing:!0});try{const e=await d.Eo("delete_entry",{id:t});e&&e.request_success?await l().fetchIpData("ip_list",l().dataActions):console.log("Failed to remove IP address: ",e.message)}catch(e){console.log(e)}finally{e({processing:!1})}},resetMultiRow:async(t,a)=>{e({processing:!0});try{const e=await d.Eo("delete_multi_entries",{ids:t});e&&e.request_success&&await l().fetchIpData("ip_list",l().dataActions)}catch(e){console.log(e)}finally{e({processing:!1})}}}))),$=(0,x.vt)(((e,l)=>({processing:!1,dataLoaded:!1,pagination:{},dataActions:{},DynamicDataTable:[],sorting:[],rowCleared:!1,fetchDynamicData:async(t,a={})=>{e({processing:!0}),e({dataLoaded:!1}),e({rowCleared:!0}),0===Object.keys(a).length&&(a=l().dataActions);try{const l=await d.Eo(t,a);l&&e({DynamicDataTable:l,dataLoaded:!0,processing:!1,pagination:l.pagination,sorting:l.sorting})}catch(e){console.log(e)}finally{e({processing:!1}),e({rowCleared:!1})}},handleEventTableSearch:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,search:l,searchColumns:t}})))},handleEventTablePageChange:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,page:l,pageSize:t}})))},handleEventTableRowsChange:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,currentRowsPerPage:l,currentPage:t}})))},handleEventTableSort:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,sortColumn:l,sortDirection:t}})))},handleEventTableFilter:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,filterColumn:l,filterValue:t}})))}})));var X=t(2480);const ee=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"US_-_United_States_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#US_-_United_States_svg__a)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 1v1h16V1H0Zm0 2v1h16V3H0Zm0 3V5h16v1H0Zm0 1v1h16V7H0Zm0 3V9h16v1H0Zm0 2v-1h16v1H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#2E42A5",d:"M0 0h9v7H0z"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"m1.04 2.174.53-.37.411.297h-.233l.471.416-.159.584h-.249l-.242-.536-.206.536H.748l.471.416-.179.657.53-.37.411.297h-.233l.471.416-.159.584h-.249l-.242-.536-.206.536H.748l.471.416-.179.657.53-.37.513.37-.16-.657.412-.416h-.19l.425-.296.411.296h-.233l.471.416-.179.657.53-.37.513.37-.16-.657.412-.416h-.19l.425-.296.411.296h-.233l.471.416-.179.657.53-.37.513.37-.16-.657.412-.416h-.19l.425-.296.411.296h-.233l.471.416-.179.657.53-.37.513.37-.16-.657.412-.416h-.524l-.242-.536-.206.536h-.298l-.142-.584.412-.416h-.19l.425-.296.513.369-.16-.657.412-.416h-.524l-.242-.536-.206.536h-.298l-.142-.584.412-.416h-.19l.425-.296.513.369-.16-.657.412-.416h-.524L7.569.565l-.206.536h-.615l.471.416-.159.584h-.249l-.242-.536-.206.536h-.298l-.142-.584.412-.416h-.524L5.569.565l-.206.536h-.615l.471.416-.159.584h-.249l-.242-.536-.206.536h-.298l-.142-.584.412-.416h-.524L3.569.565l-.206.536h-.615l.471.416-.159.584h-.249l-.242-.536-.206.536h-.298l-.142-.584.412-.416h-.524L1.569.565l-.206.536H.748l.471.416-.179.657ZM7.06 4.1l.159-.584-.47-.416h.232l-.411-.296-.425.296h.19l-.412.416.142.584h.298l.206-.536.242.536h.249Zm-1.079 0-.411-.296-.425.296h.19l-.412.416.142.584h.298l.206-.536.242.536h.249l.159-.584-.47-.416h.232Zm-1.762.416L4.06 5.1h-.249l-.242-.536-.206.536h-.298l-.142-.584.412-.416h-.19l.425-.296.411.296h-.233l.471.416Zm.144-.416h-.298l-.142-.584.412-.416h-.19l.425-.296.411.296h-.233l.471.416-.159.584h-.249l-.242-.536-.206.536Zm-1.303 0 .159-.584-.47-.416h.232l-.411-.296-.425.296h.19l-.412.416.142.584h.298l.206-.536.242.536h.249Zm3.159-1.584L6.06 3.1h-.249l-.242-.536-.206.536h-.298l-.142-.584.412-.416h-.19l.425-.296.411.296h-.233l.471.416ZM3.981 2.1l-.411-.296-.425.296h.19l-.412.416.142.584h.298l.206-.536.242.536h.249l.159-.584-.47-.416h.232Z",clipRule:"evenodd"}))),le=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"CA_-_Canada_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#CA_-_Canada_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",d:"M4 0h8.5v12H4V0Z"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M7.164 4.201 7.987 3 8 10h-.343l.21-1.732s-2.305.423-2.115.21c.191-.214.3-.606.3-.606L4 6.474s.324-.004.587-.164c.264-.16-.263-1.109-.263-1.109l1.036.154.392-.435.782.836h.352l-.352-1.914.63.36ZM8 10V3l.836 1.201.63-.359-.352 1.914h.352l.782-.836.392.435 1.036-.154s-.527.949-.263 1.109c.263.16.587.164.587.164L9.947 7.872s.11.392.3.606c.191.213-2.115-.21-2.115-.21L8.342 10H8ZM12 0h4v12h-4V0ZM0 0h4v12H0V0Z"}))),te=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MX_-_Mexico_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#MX_-_Mexico_svg__a)"},(0,n.createElement)("path",{fill:"#D9071E",fillRule:"evenodd",d:"M11 0h5v12h-5V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#006923",fillRule:"evenodd",d:"M0 0h6v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M5 0h6v12H5V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FCCA3D",fillRule:"evenodd",d:"M7.192 3.957s-.343.266-.279.55c.064.284.74 0 .66-.275-.083-.275-.38-.275-.38-.275Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#A8AC71",fillRule:"evenodd",d:"M6.668 4.634c-.257 0-.364-.214-.311-.442.028-.121.102-.276.222-.476l.43.257a2.861 2.861 0 0 0-.11.198.96.96 0 0 1 .25.113c.234.154.32.428.07.631-.05.04-.128.173-.171.302.12.007.204.025.283.071.221.13.2.37.032.553-.12.13-.278.237-.429.29-.25.091-.516.057-.516-.263v-.002c0-.013-.002-.036.11-.038h.022-.022c-.19-.003-.231-.104-.255-.283a1.853 1.853 0 0 1-.012-.182l-.002-.06-.002-.06-.001-.013c-.004-.058-.007-.097.123-.097h-.29v-.5h.29c.164 0 .255.055.307.17.03-.052.06-.101.094-.145a.386.386 0 0 0-.112-.024Zm.318.878.008-.008-.002.004-.006.004Zm-.218.149Zm0-.189v.008-.015.007Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#8F4620",fillRule:"evenodd",d:"M9.633 6.201s.463-1.37-.272-2.08c-.736-.71-1.585-.662-1.585-.662s-.245.182 0 .32c.245.14.142.272.142.272s-.41-.416-.682-.173c-.272.243.254.206.199.39-.056.182-.292.995.053 1.405.344.41-.326.321-.19.321.137 0 .62.096.62 0 0-.095.168.371.312.371s.255-.164.255-.164.201.164.324.164.552-.107.552-.107l-.81-.682s.049-.301-.066-.366.92.577 1.002.784c.08.207.146.207.146.207Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#9FAB2F",d:"M5.533 5.863s.075-.239.156-.256c.07-.014.216.115.216.115.26 1.445.889 2.01 1.933 2.01 1.055 0 1.695-.43 2.069-1.762 0 0 .198-.203.268-.18.077.024.172.292.172.292-.095 1.559-1.22 2.482-2.492 2.482-1.284 0-2.333-1.035-2.322-2.7Z"}),(0,n.createElement)("path",{fill:"#2FC2DC",fillRule:"evenodd",d:"M6.667 6.828s1.502.319 2.095.319c.593 0-.52.484-.954.484-.435 0-1.14-.803-1.14-.803Z",clipRule:"evenodd"}),(0,n.createElement)("rect",{width:1,height:.536,x:7.333,y:7.05,fill:"#F9AA51",rx:.083}),(0,n.createElement)("path",{fill:"#259485",d:"m6.088 6.068.41-.287c.532.76 1.328 1.009 2.443.748l.114.487c-1.303.305-2.31-.01-2.967-.948Z"}),(0,n.createElement)("path",{fill:"#FCCA3D",fillRule:"evenodd",d:"M8.296 6.175s-.607.32-.405.32c.202 0 .994.16.84 0-.154-.16-.435-.32-.435-.32ZM7.578 5.794s-.115-.333-.355-.333-.172.273-.288.273c-.115 0 .108.193.207.193.1 0 .436-.133.436-.133Z",clipRule:"evenodd"}))),ae=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BR_-_Brazil_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#BR_-_Brazil_svg__a)"},(0,n.createElement)("path",{fill:"#093",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"BR_-_Brazil_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#BR_-_Brazil_svg__b)"},(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",filter:"url(#BR_-_Brazil_svg__c)"},(0,n.createElement)("path",{fill:"#FFD221",d:"m7.963 1.852 6.101 4.252-6.184 3.982L1.904 6.02l6.06-4.169Z"}),(0,n.createElement)("path",{fill:"url(#BR_-_Brazil_svg__d)",d:"m7.963 1.852 6.101 4.252-6.184 3.982L1.904 6.02l6.06-4.169Z"})),(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M8 8.6a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"BR_-_Brazil_svg__e",width:6,height:6,x:5,y:3,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M8 8.6a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fill:"#F7FCFF",mask:"url(#BR_-_Brazil_svg__e)"},(0,n.createElement)("path",{fillRule:"evenodd",d:"m7.19 7.285-.112.059.022-.125-.09-.088.124-.018L7.19 7l.056.113.125.018-.09.088.02.125-.111-.059ZM8.19 7.285l-.112.059.022-.125-.09-.088.124-.018L8.19 7l.056.113.125.018-.09.088.02.125-.111-.059ZM8.19 7.885l-.112.059.022-.125-.09-.088.124-.018.056-.113.056.113.125.018-.09.088.02.125-.111-.059ZM7.69 5.785l-.112.059.022-.125-.09-.088.124-.018.056-.113.056.113.125.018-.09.088.02.125-.111-.059ZM7.69 6.785l-.112.059.022-.125-.09-.088.124-.018.056-.113.056.113.125.018-.09.088.02.125-.111-.059ZM6.99 6.285l-.112.059.022-.125-.09-.088.124-.018L6.99 6l.056.113.125.018-.09.088.02.125-.11-.059ZM6.29 6.685l-.112.059.022-.125-.09-.088.124-.018.056-.113.056.113.125.018-.09.088.02.125-.111-.059ZM8.59 4.985l-.112.059.022-.125-.09-.088.124-.018.056-.113.056.113.125.018-.09.088.02.125-.111-.059Z",clipRule:"evenodd"}),(0,n.createElement)("path",{d:"m4.962 5.499.076-.998c2.399.181 4.292.97 5.656 2.373l-.717.697C8.795 6.355 7.131 5.662 4.962 5.5Z"})))),(0,n.createElement)("defs",null,(0,n.createElement)("linearGradient",{id:"BR_-_Brazil_svg__d",x1:16,x2:16,y1:12,y2:0,gradientUnits:"userSpaceOnUse"},(0,n.createElement)("stop",{stopColor:"#FFC600"}),(0,n.createElement)("stop",{offset:1,stopColor:"#FFDE42"})),(0,n.createElement)("filter",{id:"BR_-_Brazil_svg__c",width:12.16,height:8.234,x:1.904,y:1.852,colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse"},(0,n.createElement)("feFlood",{floodOpacity:0,result:"BackgroundImageFix"}),(0,n.createElement)("feColorMatrix",{in:"SourceAlpha",result:"hardAlpha",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"}),(0,n.createElement)("feOffset",null),(0,n.createElement)("feColorMatrix",{values:"0 0 0 0 0.0313726 0 0 0 0 0.368627 0 0 0 0 0 0 0 0 0.28 0"}),(0,n.createElement)("feBlend",{in2:"BackgroundImageFix",result:"effect1_dropShadow_270_54984"}),(0,n.createElement)("feBlend",{in:"SourceGraphic",in2:"effect1_dropShadow_270_54984",result:"shape"})))),ne=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"AR_-_Argentina_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#AR_-_Argentina_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"AR_-_Argentina_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#AR_-_Argentina_svg__b)"},(0,n.createElement)("path",{fill:"#58A5FF",d:"M0 0v4h16V0H0ZM0 8v4h16V8H0Z"}),(0,n.createElement)("path",{fill:"#FFD018",stroke:"#F19900",strokeOpacity:.98,strokeWidth:.25,d:"M8.276 7.244s-.51 1.059-.96 1.276c.194-.486.265-1.477.265-1.477s-1.165.462-1.575.378c.492-.344 1.175-.98 1.175-.98s-1.509-.494-1.472-.704c.682.122 1.618-.011 1.618-.011s-1.058-1.27-.95-1.364c.16.157 1.43.82 1.43.82s.091-1.13.364-1.511c.033.269.416 1.486.416 1.486s.77-.771 1.198-.771c-.187.233-.632 1.256-.632 1.256s1.108-.018 1.53.19c-.51.072-1.405.521-1.405.521s1.165.884 1.058 1.068a5.166 5.166 0 0 0-1.348-.408s.2 1.23.038 1.507c-.157-.41-.75-1.276-.75-1.276Z"}),(0,n.createElement)("path",{fill:"#FFD018",stroke:"#F19900",strokeOpacity:.98,strokeWidth:.25,d:"M8.21 6.67a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1Z"})))),se=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"CO_-_Colombia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#CO_-_Colombia_svg__a)"},(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"CO_-_Colombia_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#CO_-_Colombia_svg__b)"},(0,n.createElement)("path",{fill:"#FECA00",d:"M0 0v6h16V0H0Z"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 9v3h16V9H0Z"})))),ie=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"AU_-_Australia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#AU_-_Australia_svg__a)"},(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("g",{clipPath:"url(#AU_-_Australia_svg__b)"},(0,n.createElement)("path",{fill:"#2E42A5",d:"M0 0h9v7H0z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"m-1.002 6.5 1.98.869L9.045.944l1.045-1.29-2.118-.29-3.29 2.768-2.649 1.865L-1.002 6.5Z"}),(0,n.createElement)("path",{fill:"#F50100",d:"m-.731 7.108 1.009.505 9.437-8.08H8.298L-.731 7.109Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"m10.002 6.5-1.98.869L-.045.944-1.09-.346l2.118-.29 3.29 2.768 2.649 1.865L10.002 6.5Z"}),(0,n.createElement)("path",{fill:"#F50100",d:"m9.935 6.937-1.01.504-4.018-3.46-1.19-.386L-1.19-.342H.227L5.13 3.502l1.303.463 3.502 2.972Z"}),(0,n.createElement)("path",{fill:"#F50100",fillRule:"evenodd",d:"M4.992 0h-1v3H0v1h3.992v3h1V4H9V3H4.992V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M3.242-.75h2.5v3H9.75v2.5H5.742v3h-2.5v-3H-.75v-2.5h3.992v-3ZM3.992 3H0v1h3.992v3h1V4H9V3H4.992V0h-1v3Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fill:"#F7FCFF",clipPath:"url(#AU_-_Australia_svg__c)"},(0,n.createElement)("path",{d:"m4.408 9.834-.59.546.058-.802-.795-.121.664-.455-.4-.697.768.236.295-.748.295.748.769-.236-.4.697.663.455-.795.121.058.802-.59-.546ZM10.776 6.069l-.394.364.04-.535-.53-.08.442-.304-.267-.464.512.157.197-.499.197.499.512-.157-.267.464.442.303-.53.081.04.535-.394-.364ZM11.715 2.377l-.394.363.04-.534-.53-.081.442-.303-.268-.465.513.157.197-.498.197.498.512-.157-.267.465.442.303-.53.08.04.535-.394-.363ZM14.061 4.223l-.393.364.039-.535-.53-.08.442-.304-.267-.464.513.157.196-.499.197.499.513-.157-.267.464.442.303-.53.081.039.535-.394-.364ZM12.184 9.53l-.394.364.04-.534-.53-.081.442-.303-.267-.465.512.157.197-.498.197.498.512-.157-.267.465.443.303-.53.08.039.535-.394-.363ZM13.827 6.648l-.4.21.076-.445-.323-.316.447-.065.2-.405.2.405.447.065-.324.316.077.445-.4-.21Z"}))),(0,n.createElement)("defs",null,(0,n.createElement)("clipPath",{id:"AU_-_Australia_svg__b"},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h9v7H0z"})),(0,n.createElement)("clipPath",{id:"AU_-_Australia_svg__c"},(0,n.createElement)("path",{fill:"#fff",d:"M3 1h12v10H3z"})))),ce=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"NZ_-_New_Zealand_(Aotearoa)_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#NZ_-_New_Zealand_(Aotearoa)_svg__a)"},(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("g",{clipPath:"url(#NZ_-_New_Zealand_(Aotearoa)_svg__b)"},(0,n.createElement)("path",{fill:"#2E42A5",d:"M0 0h9v7H0z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"m-1.002 6.5 1.98.869L9.045.944l1.045-1.29-2.118-.29-3.29 2.768-2.649 1.865L-1.002 6.5Z"}),(0,n.createElement)("path",{fill:"#F50100",d:"m-.731 7.108 1.009.505 9.436-8.08H8.298L-.731 7.109Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"m10.002 6.5-1.98.869L-.045.944-1.09-.346l2.118-.29 3.29 2.768 2.649 1.865L10.002 6.5Z"}),(0,n.createElement)("path",{fill:"#F50100",d:"m9.935 6.937-1.01.504-4.018-3.46-1.19-.386L-1.19-.342H.227L5.13 3.502l1.303.463 3.502 2.972Z"}),(0,n.createElement)("path",{fill:"#F50100",fillRule:"evenodd",d:"M4.992 0h-1v3H0v1h3.992v3h1V4H9V3H4.992V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M3.242-.75h2.5v3H9.75v2.5H5.742v3h-2.5v-3H-.75v-2.5h3.992v-3ZM3.992 3H0v1h3.992v3h1V4H9V3H4.992V0h-1v3Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#F50100",fillRule:"evenodd",stroke:"#F7FCFF",strokeWidth:.35,d:"m12.427 10.25-.882.463.168-.981L11 9.036l.986-.143.44-.893.441.893.986.143-.713.696.168.982-.881-.464ZM10.6 6.935l-.68.357.13-.757L9.5 6l.76-.11.34-.689.34.689.76.11-.55.536.13.757-.68-.357ZM14.099 6.933l-.68.357.13-.756L13 5.998l.76-.11.339-.688.34.688.759.11-.55.536.13.756-.68-.357ZM12.6 4.135l-.68.357.13-.757-.55-.536.76-.11.34-.689.34.689.76.11-.55.536.13.757-.68-.357Z",clipRule:"evenodd"})),(0,n.createElement)("defs",null,(0,n.createElement)("clipPath",{id:"NZ_-_New_Zealand_(Aotearoa)_svg__b"},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h9v7H0z"})))),re=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"FJ_-_Fiji_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#FJ_-_Fiji_svg__a)"},(0,n.createElement)("path",{fill:"#67BFE5",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("g",{clipPath:"url(#FJ_-_Fiji_svg__b)"},(0,n.createElement)("path",{fill:"#2E42A5",d:"M0 0h9v7H0z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"m-1.002 6.5 1.98.869L9.045.944l1.045-1.29-2.118-.29-3.29 2.768-2.649 1.865L-1.002 6.5Z"}),(0,n.createElement)("path",{fill:"#F50100",d:"m-.731 7.108 1.009.505 9.437-8.08H8.298L-.731 7.109Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"m10.002 6.5-1.98.869L-.045.944-1.09-.346l2.118-.29 3.29 2.768 2.649 1.865L10.002 6.5Z"}),(0,n.createElement)("path",{fill:"#F50100",d:"m9.935 6.937-1.01.504-4.018-3.46-1.19-.386L-1.19-.342H.227L5.13 3.502l1.303.463 3.502 2.972Z"}),(0,n.createElement)("path",{fill:"#F50100",fillRule:"evenodd",d:"M4.992 0h-1v3H0v1h3.992v3h1V4H9V3H4.992V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M3.242-.75h2.5v3H9.75v2.5H5.742v3h-2.5v-3H-.75v-2.5h3.992v-3ZM3.992 3H0v1h3.992v3h1V4H9V3H4.992V0h-1v3Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M10 5h4.828v4.167S14.423 11 12.414 11C10.404 11 10 9.167 10 9.167V5Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"FJ_-_Fiji_svg__c",width:5,height:6,x:10,y:5,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M10 5h4.828v4.167S14.423 11 12.414 11C10.404 11 10 9.167 10 9.167V5Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#FJ_-_Fiji_svg__c)"},(0,n.createElement)("path",{fill:"#C3352C",d:"M10 5h4.828v1.5H10z"}),(0,n.createElement)("path",{fill:"#C3352C",d:"M12.069 6.333h.69V11h-.69z"}),(0,n.createElement)("path",{fill:"#C3352C",fillRule:"evenodd",d:"M10 8.167h4.828v.666H10v-.666Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#979797",fillRule:"evenodd",d:"M11.27 10.368c.29.41.527.571.694.33.118-.17.13-.34-.037-.374a2.778 2.778 0 0 1-.205-.287l.005-.005c.047-.046.049-.107.04-.13-.004-.03.02-.073.17-.188.137-.104.198-.203.108-.311-.047-.057-.09-.068-.223-.089l-.04-.006a.716.716 0 0 1-.087-.018l-.093-.178a1.145 1.145 0 0 0-.51.098l-.152.064c-.05.021-.06.026-.061.025l.002-.002c.004-.003.01-.008.001-.008-.035 0-.073-.004-.178-.017l-.02-.003c-.302-.038-.378-.037-.427.104-.074.214.367.605.6.653.118.023.258.135.413.342Zm.328-.294a.27.27 0 0 0 .07-.006l.006-.013a.13.13 0 0 1-.076.02Zm-1.101-.59c-.006-.007-.008-.017-.004-.029 0 .003.002.008.008.016a.348.348 0 0 0 .026.03.061.061 0 0 1-.03-.017Zm.41.296c-.084-.016-.297-.194-.38-.28.022.006.051.01.083.013l.043.004.02.003c.118.015.159.02.209.02.029 0 .023.009.02.015-.002.002-.003.003-.002.004a.758.758 0 0 0 .138-.055l.15-.064a.943.943 0 0 1 .259-.072c.01.042.034.08.073.11a.444.444 0 0 0 .217.076c-.128.106-.193.194-.213.28-.116.037-.105.167-.036.298.048.09.14.219.276.39l.098.046c-.03 0-.046-.013-.058-.023-.015-.013-.024-.02-.045.01-.002.002-.093-.06-.287-.334-.19-.254-.376-.402-.565-.44Zm.61.15v-.005.005Zm.08-.106h-.008.007Zm.001 0h-.002.002Z",clipRule:"evenodd"}),(0,n.createElement)("path",{stroke:"#964C36",strokeWidth:.5,d:"M10.828 8.055s-.239-.33-.239-.448"}),(0,n.createElement)("path",{stroke:"#2A8E51",strokeWidth:.5,d:"M10.68 7.771s-.306-.13-.306 0M10.674 7.634s-.214-.272-.375-.272c-.162 0-.158.136-.158.136M10.552 7.361s-.096-.446-.249-.446-.153.223-.153.223M10.59 7.36s-.042-.382.155-.382"}),(0,n.createElement)("path",{stroke:"#964C36",strokeWidth:.5,d:"M11.13 7.99s-.11-.391-.07-.502"}),(0,n.createElement)("path",{stroke:"#2A8E51",strokeWidth:.5,d:"M11.088 7.673s-.242-.226-.286-.104M11.13 7.543s-.108-.33-.26-.385c-.15-.055-.194.074-.194.074M11.11 7.244s.062-.452-.082-.505c-.144-.052-.22.158-.22.158M11.146 7.257s.09-.375.276-.307"}),(0,n.createElement)("path",{stroke:"#964C36",strokeWidth:.35,d:"M11.376 8.13s.158-.375.132-.49"}),(0,n.createElement)("path",{stroke:"#2A8E51",strokeWidth:.35,d:"M11.457 7.82s.268-.195.297-.068M11.43 7.686s.148-.314.305-.35c.158-.037.184.097.184.097M11.488 7.392s-.007-.457.143-.491c.149-.035.2.183.2.183M11.45 7.4s-.044-.383-.236-.338M13.349 7.9s.121-.556.465-.556c.345 0 .499.588.499.588"}),(0,n.createElement)("path",{stroke:"#2A8E51",strokeWidth:.35,d:"M13.065 7.52s.185-.328.797-.301c.612.027.723.302.723.302M12.941 7.103s.336-.417.807-.064l.16.064s.16-.472.933 0"}),(0,n.createElement)("path",{stroke:"#964C36",strokeWidth:.5,d:"M13.87 8.018s.024-.52.106-.662M14.55 9.157s-.31-.145-.402 0c-.093.145-1.207 1.48-1.207 1.48"}),(0,n.createElement)("path",{fill:"#FFF203",fillRule:"evenodd",d:"m13.482 9.298.69.482s.318-.226.16-.354c-.16-.128-.592-.354-.592-.354l-.258.226Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#00A651",fillRule:"evenodd",d:"M13.458 9.322s-.16.168-.16.296c0 .128-.149.47-.149.47s.417.257.503.094c.087-.164.648-.066.549-.315-.1-.25-.743-.545-.743-.545Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFD100",fillRule:"evenodd",d:"M10.528 5.591s.369-.189.551 0c.183.19.332-.016.332-.13s.29-.506.29-.188-.09.498.165.498c.254 0 1.401-.44 1.676-.31.275.13.486.098.416-.088-.07-.187-.25-.303-.596-.201-.346.101-.264.2-.563.2-.3 0-.632-.099-.632-.099s.093-.167.435-.048c.341.119.812-.147.94-.147.128 0 .48-.008.515.094.035.101.248.195.086.29-.162.094-.43.153-.246.275.184.121.608.098.628.224.02.126.221.315.14.315-.08 0-.225.178-.36.124-.136-.054-.152-.102-.022-.146s.128-.228.021-.228-.055.064-.299 0c-.244-.065-.567-.137-.547 0 .02.136.178.346-.115.374-.293.028-.43.14-.487.05-.057-.09-.261-.211-.1-.25.16-.038.313.131.37.104.058-.028.189-.043.08-.16-.11-.118-.29-.187-.123-.275.167-.088.035-.09-.284.092-.32.182-.497.337-.777.315-.28-.022-.386.008-.476-.022-.09-.03-.528.326-.655.236-.126-.09-.534-.125-.46-.236.073-.11.171-.168.281-.11.11.056.22.113.293.056.074-.057.288-.253.234-.292-.054-.04-.002-.171-.306-.171s-.412.147-.484.054c-.072-.092.08-.2.08-.2Z",clipRule:"evenodd"}))),(0,n.createElement)("defs",null,(0,n.createElement)("clipPath",{id:"FJ_-_Fiji_svg__b"},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h9v7H0z"})))),de=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"PG_-_Papua_New_Guinea_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#PG_-_Papua_New_Guinea_svg__a)"},(0,n.createElement)("path",{fill:"#E11C1B",d:"M0 0h16v12H0z"}),(0,n.createElement)("path",{fill:"#1D1D1D",fillRule:"evenodd",d:"m0 0 16 12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#EEEEF6",fillRule:"evenodd",d:"M3.542 9.134h.666l.316-.746.373.741.682.037-.583.635.3.765-.742-.426-.684.43.258-.743-.586-.693ZM1.542 7.134h.666l.316-.746.373.741.682.038-.583.634.3.765-.742-.426-.684.43.258-.743-.586-.693ZM3.542 6.134h.666l.316-.746.373.741.682.038-.583.634.3.765-.742-.426-.684.43.258-.743-.586-.693Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#EEEEF6",fillRule:"evenodd",d:"m4.856 8.282.457-.015.166-.472.185.47.421.04-.379.268.306.475-.53-.199-.46.205.242-.468-.408-.304ZM5.856 7.282l.457-.015.166-.472.185.47.421.04-.379.268.306.475-.53-.199-.46.205.242-.468-.408-.304Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FBCD17",fillRule:"evenodd",d:"M10.542 1s-1.544.308-1.111 2.455h-.22s.018-.112-.194-.178c-.212-.065-.17-.04-.279 0-.11.041-.774 0-.774 0v.082l.47.204s-.011.169.186.263c.196.093.34.139.34.139s.028.186-.156.186-.926-.24-1.19.35C7.351 5.093 7 5.526 7 5.526h.395l-.106.132h.446l-.12.069s.55-.006.593-.069c.043-.062 0 .169 0 .169s.534-.244.563-.3l.249.17.071-.289.267.118.073-.275s.756 1.264 1.33 1.192v-.21l.523.21.066-.094s.632.258.827.282l-.139-.282h.139l-.139-.522h.139l-.278-.419.078-.113-.051-.15s1.017.325.971.84c-.046.517-.499.725-.499.725s-.434.133-.827.104c0 0 .312.368.971.244.66-.125.878-.764.878-.764s.302.628.053.958c-.248.33-1.357.562-1.357.562s.401.235.781.175.972-.391 1.086-.931c.115-.54-.395-1.536-.626-1.65l-.091-.345.207.083-.426-1.042.207.045-.603-.75.166-.051-.833-.6.25-.065s-.617-.312-1.319.066l.007-.13-.185.03.011-.143.184-.278-.276-.106s.223-.335.19-.33c0 0-.249.071-.235.041 0 0 .125-.322.092-.313 0 0-.287.097-.245.048l.11-.196L10.543 1Z",clipRule:"evenodd"}))),me=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SB_-_Solomon_Islands_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#SB_-_Solomon_Islands_svg__a)"},(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"SB_-_Solomon_Islands_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#SB_-_Solomon_Islands_svg__b)"},(0,n.createElement)("path",{fill:"#579D20",fillRule:"evenodd",d:"M0 12h16V0L0 12Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",d:"m-.391 12.373-.902-1.248L16.837-.977 17.74.27-.39 12.373Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"m1.827 3.273.681-.473.714.425-.25-.762.5-.545h-.677l-.287-.801-.286.8-.678.029.5.517-.217.81Zm2.829 0 .681-.473.714.425-.25-.762.5-.545h-.677l-.287-.801-.286.8-.678.029.5.517-.217.81Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"m3.324 4.727.682-.473.714.425-.25-.762.499-.545h-.677l-.286-.801-.287.8-.678.029.5.517-.217.81ZM2.508 5.8l-.681.473.217-.81-.5-.517.678-.028.286-.801.287.8h.677l-.5.546.25.762-.714-.425Zm2.83 0-.682.473.218-.81-.501-.517.678-.028.286-.801.287.8h.677l-.5.546.25.762-.714-.425Z",clipRule:"evenodd"})))),he=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"VU_-_Vanuatu_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#VU_-_Vanuatu_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",fillRule:"evenodd",d:"m0-1 8.335 7L0 13V-1Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"VU_-_Vanuatu_svg__b",width:18,height:21,x:-1,y:-4.677,fill:"#000",maskUnits:"userSpaceOnUse"},(0,n.createElement)("path",{fill:"#fff",d:"M-1-4.677h18v21H-1z"}),(0,n.createElement)("path",{fillRule:"evenodd",d:"M0-1.677 8.704 5H16v2H8.585L0 13.406V11.17L7 6 0 .767v-2.444Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#FFD018",fillRule:"evenodd",d:"M0-1.677 8.704 5H16v2H8.585L0 13.406V11.17L7 6 0 .767v-2.444Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",d:"m8.704 5-.609.793.27.207h.34V5ZM0-1.677l.609-.794L-1-3.705v2.028h1ZM16 5h1V4h-1v1Zm0 2v1h1V7h-1ZM8.585 7V6h-.332l-.266.199.598.801ZM0 13.406h-1V15.4l1.598-1.193L0 13.406Zm0-2.236-.594-.804-.406.3v.504h1ZM7 6l.594.804 1.083-.8L7.599 5.2 7 6ZM0 .767h-1v.501l.401.3.599-.8Zm9.313 3.44L.609-2.471-.61-.884l8.704 6.677 1.218-1.586ZM16 4H8.704v2H16V4Zm1 3V5h-2v2h2ZM8.585 8H16V6H8.585v2ZM.598 14.207l8.585-6.406L7.987 6.2l-8.585 6.405 1.196 1.603ZM-1 11.17v2.236h2V11.17h-2Zm7.406-5.974-7 5.17 1.188 1.609 7-5.17-1.188-1.61ZM-.6 1.568l7 5.233L7.6 5.199l-7-5.233L-.6 1.568ZM-1-1.677V.767h2v-2.444h-2Z",mask:"url(#VU_-_Vanuatu_svg__b)"}),(0,n.createElement)("path",{fill:"#FFD018",d:"M2.437 8.384v-.79c.705-.155 1.171-.358 1.399-.6.559-.69.187-2.304-.962-2.294-.569 0-1.157.272-1.157.91 0 .793.163 1.132.72 1.132.555 0 .759.03 1.124-.469l.396.123c-.391.533-.919.955-1.52.955-.991 0-1.53-.747-1.53-1.611 0-1.067.866-1.814 1.91-1.814.779 0 2.01.954 2.01 1.814 0 .86 0 1.253-.675 1.854a3.666 3.666 0 0 1-1.715.79Z"}),(0,n.createElement)("path",{fill:"#FFD018",fillRule:"evenodd",d:"M2.496 4.94a.071.071 0 0 0-.088.05l-.027.104-.004-.005a.071.071 0 0 0-.113.087l.049.064-.082.076a.071.071 0 0 0 .097.105l.072-.068.125.164-.137.074a.071.071 0 0 0 .068.126l.156-.084.107.143-.188.1a.071.071 0 1 0 .068.127l.205-.111a14 14 0 0 1 .144.2l-.131.07a.071.071 0 0 0 .067.126l.146-.078c.06.09.091.144.091.159a.071.071 0 1 0 .143 0c0-.037-.037-.113-.116-.235a.075.075 0 0 0 .003-.006l.106-.232a.071.071 0 1 0-.13-.06l-.072.16a10.927 10.927 0 0 0-.159-.221l.075-.165a.071.071 0 1 0-.13-.06l-.042.093-.072-.096.101-.223a.071.071 0 1 0-.13-.059l-.069.152-.138-.18.056-.21a.071.071 0 0 0-.051-.087Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFD018",fillRule:"evenodd",d:"M2.976 4.94a.071.071 0 0 1 .087.05l.028.104.004-.005a.071.071 0 0 1 .113.087l-.05.064.083.076a.071.071 0 0 1-.097.105l-.072-.068-.125.164.137.074a.071.071 0 1 1-.068.126l-.156-.084-.107.143.188.1a.071.071 0 1 1-.068.127l-.206-.111a14 14 0 0 0-.143.2l.131.07a.071.071 0 1 1-.067.126l-.146-.078a.665.665 0 0 0-.092.159.071.071 0 1 1-.142 0c0-.037.037-.113.116-.235a.075.075 0 0 1-.003-.006l-.106-.232a.071.071 0 1 1 .13-.06l.072.16c.045-.065.098-.139.159-.221L2.5 5.61a.071.071 0 1 1 .13-.06l.042.093.072-.096-.101-.223a.071.071 0 0 1 .13-.059l.069.152.138-.18-.056-.21a.071.071 0 0 1 .051-.087Z",clipRule:"evenodd"}))),oe=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"WS_-_Samoa_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#WS_-_Samoa_svg__a)"},(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"WS_-_Samoa_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#WS_-_Samoa_svg__b)"},(0,n.createElement)("path",{fill:"#2E42A5",d:"M0 0v7h8V0H0Z"}),(0,n.createElement)("path",{fill:"#FEFFFF",d:"m1.783 3.886-.53.32.12-.624-.44-.468.597-.025.253-.583.253.583h.596l-.44.493.133.624-.542-.32ZM5.783 3.886l-.53.32.12-.624-.44-.468.597-.025.253-.583.253.583h.596l-.44.493.133.624-.542-.32ZM3.733 2.069l-.499.301.114-.588-.416-.44.563-.023.238-.549.238.549h.561l-.414.463.125.588-.51-.301ZM4.273 4.213l-.312.188.071-.367-.26-.275.352-.015.15-.343.148.343h.35l-.258.29.078.367-.319-.188ZM3.704 6.414l-.748.452.17-.882-.622-.66.843-.035.357-.823.357.823h.843l-.622.695.187.882-.765-.452Z"})))),ve=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"FM_-_Federated_States_of_Micronesia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#FM_-_Federated_States_of_Micronesia_svg__a)"},(0,n.createElement)("path",{fill:"#63B3E1",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"FM_-_Federated_States_of_Micronesia_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fill:"#F7FCFF",fillRule:"evenodd",clipRule:"evenodd",mask:"url(#FM_-_Federated_States_of_Micronesia_svg__b)"},(0,n.createElement)("path",{d:"m8 3.65-.882.464.169-.982-.714-.696.986-.143L8 1.4l.44.893.987.143-.714.696.169.982L8 3.65ZM8 9.65l-.882.463.169-.981-.714-.696.986-.143L8 7.4l.442.893.986.143-.714.696.169.982L8 9.65ZM4.9 6.75l-.882.464.169-.982-.714-.696.986-.143L4.9 4.5l.44.893.987.143-.714.696.169.982L4.9 6.75ZM11 6.75l-.882.464.169-.982-.714-.696.986-.143L11 4.5l.44.893.987.143-.714.696.169.982L11 6.75Z"})))),_e=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MH_-_Marshall_Islands_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("rect",{width:16,height:12,fill:"#fff",rx:0})),(0,n.createElement)("g",{mask:"url(#MH_-_Marshall_Islands_svg__a)"},(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"MH_-_Marshall_Islands_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#MH_-_Marshall_Islands_svg__b)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"m4 5.5-.409 1.472.004-1.528-.79 1.308.416-1.47-1.114 1.045.797-1.303-1.355.706 1.12-1.04-1.496.315 1.358-.7-1.524-.1 1.496-.307-1.44-.508 1.524.108-1.25-.878 1.438.515-.968-1.183 1.246.884-.612-1.4.961 1.188-.211-1.513.605 1.403L4 1l.204 1.514.605-1.403-.211 1.513.96-1.187-.611 1.4 1.246-.885-.968 1.183 1.439-.515-1.25.878 1.523-.108-1.44.508 1.496.307-1.524.1 1.358.7-1.495-.315L6.45 5.73l-1.355-.706.797 1.303L4.78 5.282l.416 1.47-.79-1.308.003 1.528L4 5.5Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#fff",d:"M-.391 12.373 16.629.607v3.836l-17.02 7.93Z"}),(0,n.createElement)("path",{fill:"#E2AE57",d:"m-.391 12.373 17.02-14.766v3.836L-.39 12.373Z"})))),ue=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"PW_-_Palau_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#PW_-_Palau_svg__a)"},(0,n.createElement)("path",{fill:"#61C6F0",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"PW_-_Palau_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#PW_-_Palau_svg__b)"},(0,n.createElement)("path",{fill:"#FBCD17",fillRule:"evenodd",d:"M5.75 9a3.25 3.25 0 1 0 0-6.5 3.25 3.25 0 0 0 0 6.5Z",clipRule:"evenodd"})))),pe=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"PR_-_Puerto_Rico_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#PR_-_Puerto_Rico_svg__a)"},(0,n.createElement)("path",{fill:"#EF0000",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"PR_-_Puerto_Rico_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#PR_-_Puerto_Rico_svg__b)"},(0,n.createElement)("path",{fill:"#EF0000",stroke:"#F7FCFF",strokeWidth:2,d:"M0 4h-1v4h18V4H0Z"})),(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 0v12l9-6-9-6Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"PR_-_Puerto_Rico_svg__c",width:9,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12l9-6-9-6Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#PR_-_Puerto_Rico_svg__c)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"m3.344 7.108-1.836.97.894-1.948-1.14-1.04 1.407-.052.675-1.76.515 1.76h1.404L4.327 6.13l.744 1.947-1.727-.969Z",clipRule:"evenodd"})))),fe=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"HK_-_Hong_Kong_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#HK_-_Hong_Kong_svg__a)"},(0,n.createElement)("path",{fill:"#EA1A1A",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"HK_-_Hong_Kong_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#HK_-_Hong_Kong_svg__b)"},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M7.935 5.787s-2.895-2.581.56-4.085c0 0 1.004 1.108.25 2.352-.247.408-.456.7-.612.919-.321.448-.425.593-.198.814ZM3.662 3.934C3.464 7.696 7.067 6.26 7.067 6.26c-.3.104-.382-.054-.64-.541-.126-.238-.293-.555-.548-.959-.776-1.23-2.217-.827-2.217-.827Zm5.457 1.98s3.716 1.112 1.224 3.938c0 0-1.38-.579-1.224-2.025.051-.474.117-.826.166-1.091.1-.543.133-.718-.166-.822Zm-.977.867s.667 3.821-2.975 2.855c0 0-.1-1.492 1.264-2 .447-.166.791-.265 1.05-.34.53-.152.701-.2.661-.515Zm4.597-1.643c-2.277-3.001-4.102.421-4.102.421.162-.272.327-.206.838 0 .25.1.582.234 1.038.378 1.387.439 2.226-.8 2.226-.8Z",clipRule:"evenodd"}),(0,n.createElement)("path",{stroke:"#EA1A1A",strokeWidth:.5,d:"M5.08 5.104S5.809 6.25 7 6.25M7.93 3.525s-.653 1.205-.093 2.258M11.055 4.88s-1.525-.23-2.323.655M10.164 7.672S9.86 6.16 8.754 5.714M6.967 8.493S8.284 7.69 8.325 6.5"})))),Ee=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"AQ_-_Antarctica_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#AQ_-_Antarctica_svg__a)"},(0,n.createElement)("path",{fill:"#5196ED",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"AQ_-_Antarctica_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",filter:"url(#AQ_-_Antarctica_svg__c)",mask:"url(#AQ_-_Antarctica_svg__b)"},(0,n.createElement)("path",{fill:"#fff",d:"M4.359 3.947s1.032.566 1.175.723c.144.156.374.732.732.406.36-.325.718-.072.718-.59s.535-1.72 1.312-1.419c.777.301 1.416.113 1.596.233.179.12.61.719.944.719.335 0 .502.35.526.855.024.506-.107.555.203.615.311.06.43.29.276.59-.156.302-.144.17-.12.482.024.314-.31 2.161-1.34 2.342-1.028.18-2.002.084-1.74-.265.264-.35.628-.752.09-.836-.538-.084-.877-.156-1.415-.012-.538.145-1.1.374-1.435-.06-.335-.434-.263-.747-.538-.952-.275-.205-.61-.168-.335-.566.275-.398.502-.25.275-.562C5.056 5.336 4.2 5.2 4.2 4.887c0-.314-.546-1 .16-.94Z"}),(0,n.createElement)("path",{fill:"#F5F8FB",d:"M4.359 3.947s1.032.566 1.175.723c.144.156.374.732.732.406.36-.325.718-.072.718-.59s.535-1.72 1.312-1.419c.777.301 1.416.113 1.596.233.179.12.61.719.944.719.335 0 .502.35.526.855.024.506-.107.555.203.615.311.06.43.29.276.59-.156.302-.144.17-.12.482.024.314-.31 2.161-1.34 2.342-1.028.18-2.002.084-1.74-.265.264-.35.628-.752.09-.836-.538-.084-.877-.156-1.415-.012-.538.145-1.1.374-1.435-.06-.335-.434-.263-.747-.538-.952-.275-.205-.61-.168-.335-.566.275-.398.502-.25.275-.562C5.056 5.336 4.2 5.2 4.2 4.887c0-.314-.546-1 .16-.94Z"}))),(0,n.createElement)("defs",null,(0,n.createElement)("filter",{id:"AQ_-_Antarctica_svg__c",width:8.511,height:6.573,x:3.698,y:2.719,colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse"},(0,n.createElement)("feFlood",{floodOpacity:0,result:"BackgroundImageFix"}),(0,n.createElement)("feColorMatrix",{in:"SourceAlpha",result:"hardAlpha",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"}),(0,n.createElement)("feOffset",null),(0,n.createElement)("feGaussianBlur",{stdDeviation:.15}),(0,n.createElement)("feColorMatrix",{values:"0 0 0 0 0.0941176 0 0 0 0 0.32549 0 0 0 0 0.639216 0 0 0 0.43 0"}),(0,n.createElement)("feBlend",{in2:"BackgroundImageFix",result:"effect1_dropShadow_270_54950"}),(0,n.createElement)("feBlend",{in:"SourceGraphic",in2:"effect1_dropShadow_270_54950",result:"shape"})))),ge=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M8 0h8v12H8V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#36A400",fillRule:"evenodd",d:"M0 0h8v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"red",fillRule:"evenodd",d:"M9.313 2.816c.775 0 1.49.26 2.061.696a4.268 4.268 0 1 0-.276 5.595 3.398 3.398 0 1 1-1.785-6.291Zm1.432 1.252-1.07 1.213-1.537-.424.852 1.333-.852 1.419 1.612-.58.881 1.375V6.807l1.44-.617-1.44-.516.114-1.606Z",clipRule:"evenodd"})),Ze=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"AO_-_Angola_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#AO_-_Angola_svg__a)"},(0,n.createElement)("path",{fill:"#1D1D1D",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"AO_-_Angola_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#AO_-_Angola_svg__b)"},(0,n.createElement)("path",{fill:"#F50100",d:"M0 0v6h16V0H0Z"}),(0,n.createElement)("g",{filter:"url(#AO_-_Angola_svg__c)"},(0,n.createElement)("path",{fill:"#FCFF01",d:"M7.775 6.696c.388-.479.509-1.098.509-1.485 0-2.059-2.569-3.198-2.569-3.198 1.766 0 3.733 1.432 3.733 3.198 0 .748-.256 1.442-.686 1.994.787.392 1.453.699 1.453.699.247.162.316.594.154.841a.536.536 0 0 1-.741.154s-.632-.373-1.017-.626a15.58 15.58 0 0 0-.598-.37c-.505.34-1.111.54-1.763.54 0 0-2.348-.288-2.281-1.492 0 0 .568.435 2.241.435.266 0 .5-.037.705-.103-.724-.395-1.338-.709-1.338-.709-.248-.162-.89-.983-.729-1.23.162-.248 1.143.032 1.39.194 0 0 .343.472.829.76.214.128.456.263.708.398ZM6.59 4.901l-.505.337.162-.577-.371-.368.502-.02.212-.57.213.57h.5l-.37.388.186.543L6.59 4.9Z"}),(0,n.createElement)("path",{fill:"#FFEA42",d:"M7.775 6.696c.388-.479.509-1.098.509-1.485 0-2.059-2.569-3.198-2.569-3.198 1.766 0 3.733 1.432 3.733 3.198 0 .748-.256 1.442-.686 1.994.787.392 1.453.699 1.453.699.247.162.316.594.154.841a.536.536 0 0 1-.741.154s-.632-.373-1.017-.626a15.58 15.58 0 0 0-.598-.37c-.505.34-1.111.54-1.763.54 0 0-2.348-.288-2.281-1.492 0 0 .568.435 2.241.435.266 0 .5-.037.705-.103-.724-.395-1.338-.709-1.338-.709-.248-.162-.89-.983-.729-1.23.162-.248 1.143.032 1.39.194 0 0 .343.472.829.76.214.128.456.263.708.398ZM6.59 4.901l-.505.337.162-.577-.371-.368.502-.02.212-.57.213.57h.5l-.37.388.186.543L6.59 4.9Z"})))),(0,n.createElement)("defs",null,(0,n.createElement)("filter",{id:"AO_-_Angola_svg__c",width:6.489,height:6.974,x:3.968,y:2.013,colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse"},(0,n.createElement)("feFlood",{floodOpacity:0,result:"BackgroundImageFix"}),(0,n.createElement)("feColorMatrix",{in:"SourceAlpha",result:"hardAlpha",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"}),(0,n.createElement)("feOffset",null),(0,n.createElement)("feColorMatrix",{values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0"}),(0,n.createElement)("feBlend",{in2:"BackgroundImageFix",result:"effect1_dropShadow_270_54949"}),(0,n.createElement)("feBlend",{in:"SourceGraphic",in2:"effect1_dropShadow_270_54949",result:"shape"})))),ye=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BJ_-_Benin_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#BJ_-_Benin_svg__a)"},(0,n.createElement)("path",{fill:"#DD2C2B",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M0 0v7h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#5EAA22",d:"M0 0h7v12H0z"}))),ke=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BW_-_Botswana_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#BW_-_Botswana_svg__a)"},(0,n.createElement)("path",{fill:"#42ADDF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"BW_-_Botswana_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#BW_-_Botswana_svg__b)"},(0,n.createElement)("path",{fill:"#58A5FF",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",stroke:"#F7FCFF",d:"M0 4.5h-.5v3h17v-3H0Z"})))),we=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BF_-_Burkina_Faso_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#BF_-_Burkina_Faso_svg__a)"},(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"BF_-_Burkina_Faso_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#BF_-_Burkina_Faso_svg__b)"},(0,n.createElement)("path",{fill:"#C51918",d:"M0 0v6h16V0H0Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"m8.018 7.885-2.352 1.78.753-2.899-2.206-1.764h2.629l1.175-2.573 1.176 2.573h2.629l-2.23 1.767.776 2.896-2.35-1.78Z"})))),Me=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BI_-_Burundi_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#BI_-_Burundi_svg__a)"},(0,n.createElement)("rect",{width:16,height:12,fill:"#5EAA22",rx:1}),(0,n.createElement)("mask",{id:"BI_-_Burundi_svg__b",width:24,height:16,x:-4,y:-2,fill:"#000",maskUnits:"userSpaceOnUse"},(0,n.createElement)("path",{fill:"#fff",d:"M-4-2h24v16H-4z"}),(0,n.createElement)("path",{fillRule:"evenodd",d:"m8 6 8-6H0l8 6Zm0 0-8 6h16L8 6Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#DD2C2B",fillRule:"evenodd",d:"m8 6 8-6H0l8 6Zm0 0-8 6h16L8 6Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#fff",d:"m16 0 .75 1 3-2.25H16V0ZM0 0v-1.25h-3.75l3 2.25L0 0Zm0 12-.75-1-3 2.25H0V12Zm16 0v1.25h3.75l-3-2.25-.75 1Zm-.75-13-8 6 1.5 2 8-6-1.5-2ZM0 1.25h16v-2.5H0v2.5ZM8.75 5l-8-6-1.5 2 8 6 1.5-2Zm-1.5 0-8 6 1.5 2 8-6-1.5-2ZM0 13.25h16v-2.5H0v2.5ZM16.75 11l-8-6-1.5 2 8 6 1.5-2Z",mask:"url(#BI_-_Burundi_svg__b)"}),(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M8 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#DD2C2B",fillRule:"evenodd",d:"m8.084 5.214-.588.31.112-.655-.476-.464h.658l.294-.69.293.69h.658l-.476.464.112.654-.587-.309ZM6.681 7.214l-.588.31.113-.655-.476-.464h.657l.294-.69.294.69h.657l-.475.464.112.654-.588-.309ZM9.481 7.214l-.588.31.113-.655-.476-.464h.657l.294-.69.294.69h.657l-.475.464.112.654-.588-.309Z",clipRule:"evenodd"}))),Re=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"CV_-_Cabo_Verde_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#CV_-_Cabo_Verde_svg__a)"},(0,n.createElement)("path",{fill:"#4141DB",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"CV_-_Cabo_Verde_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#CV_-_Cabo_Verde_svg__b)"},(0,n.createElement)("path",{fill:"#F90000",stroke:"#F7FCFF",d:"M0 6.5h-.5v2h17v-2H0Z"}),(0,n.createElement)("path",{stroke:"#FFDE00",d:"M5.5 11a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z",clipRule:"evenodd"})))),Fe=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"CM_-_Cameroon_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#CM_-_Cameroon_svg__a)"},(0,n.createElement)("path",{fill:"#E11C1B",d:"M5 0h6v12H5V0Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"m8.038 7.245-1.743 1.21.557-2.071-1.28-1.323 1.733-.072.733-2.047.733 2.047h1.73L9.223 6.384l.639 1.948-1.825-1.087Z"}),(0,n.createElement)("path",{fill:"#FBCD17",d:"M11 0h5v12h-5V0Z"}),(0,n.createElement)("path",{fill:"#0B9E7A",d:"M0 0h5v12H0V0Z"}))),He=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"CF_-_Central_African_Republic_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#CF_-_Central_African_Republic_svg__a)"},(0,n.createElement)("path",{fill:"#3D58DB",d:"M0 0h16v3H0V0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 3h16v3H0V3Z"}),(0,n.createElement)("path",{fill:"#73BE4A",d:"M0 6h16v3H0V6Z"}),(0,n.createElement)("path",{fill:"#FFD018",d:"M0 9h16v3H0V9Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"m2.265 2.708-1.213.84.388-1.44-.89-.92 1.205-.049.51-1.424.51 1.424h1.203l-.888.97.444 1.355-1.27-.756Z"}),(0,n.createElement)("path",{fill:"#E11C1B",d:"M6 0h4v12H6V0Z"}))),be=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"TD_-_Chad_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#TD_-_Chad_svg__a)"},(0,n.createElement)("path",{fill:"#E11C1B",d:"M11 0h5v12h-5V0Z"}),(0,n.createElement)("path",{fill:"#2E42A5",d:"M0 0h6v12H0V0Z"}),(0,n.createElement)("path",{fill:"#FBCD17",d:"M5 0h6v12H5V0Z"}))),Ce=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("path",{fill:"#5196ED",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"KM_-_Comors_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#KM_-_Comors_svg__a)"},(0,n.createElement)("path",{fill:"#AF0100",d:"M0 6v3h16V6H0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 3v3h16V3H0Z"}),(0,n.createElement)("path",{fill:"#FBCD17",d:"M0 0v3h16V0H0Z"}),(0,n.createElement)("path",{fill:"#5EAA22",d:"m0 0 8 6-8 6V0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M3.152 8.728S1.361 8.06 1.424 5.972c.063-2.088 1.888-2.497 1.888-2.497C2.672 2.97.387 3.56.314 5.972.24 8.383 2.47 8.92 3.152 8.728Zm.095-3.585.068-.393-.286-.278.395-.057.176-.358.176.358.395.057-.286.278.068.393-.353-.186-.353.186Zm.068.607-.068.393.353-.186.353.186-.068-.393.286-.278-.395-.057-.176-.358-.176.358-.395.057.286.278Zm-.068 1.393.068-.393-.286-.278.395-.057.176-.358.176.358.395.057-.286.278.068.393-.353-.186-.353.186Zm0 1 .068-.393-.286-.278.395-.057.176-.358.176.358.395.057-.286.278.068.393-.353-.186-.353.186Z"}))),Ve=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"CG_-_Republic_of_the_Congo_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("rect",{width:16,height:12,fill:"#fff",rx:.25})),(0,n.createElement)("g",{mask:"url(#CG_-_Republic_of_the_Congo_svg__a)"},(0,n.createElement)("path",{fill:"#FA1111",fillRule:"evenodd",d:"M16 0v12H0L16 0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#07A907",fillRule:"evenodd",d:"M0 12V0h16L0 12Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FBCD17",fillRule:"evenodd",d:"M14.746-2.9-.5 11.788l3.026 1.506L17.32-.106 14.746-2.9Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"CG_-_Republic_of_the_Congo_svg__b",width:19,height:17,x:-1,y:-3,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M14.746-2.9-.5 11.788l3.026 1.506L17.32-.106 14.746-2.9Z",clipRule:"evenodd"})))),Se=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"CD_-_Democratic_Republic_of_the_Congo_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#CD_-_Democratic_Republic_of_the_Congo_svg__a)"},(0,n.createElement)("path",{fill:"#3195F9",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"CD_-_Democratic_Republic_of_the_Congo_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#CD_-_Democratic_Republic_of_the_Congo_svg__b)"},(0,n.createElement)("path",{fill:"#E31D1C",stroke:"#FECA00",strokeWidth:1.25,d:"m-.91 12.72.346.52.52-.348L18.086.791l.52-.347-.347-.52-1.11-1.664-.347-.52-.52.348-18.13 12.101-.52.347.347.52 1.11 1.664Z"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M2.465 4.303.723 5.512l.556-2.07L0 2.119l1.732-.072L2.465 0l.733 2.047h1.73L3.65 3.442l.64 1.948-1.826-1.087Z",clipRule:"evenodd"})))),Ae=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"DJ_-_Djibouti_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#DJ_-_Djibouti_svg__a)"},(0,n.createElement)("path",{fill:"#73BE4A",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"DJ_-_Djibouti_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#DJ_-_Djibouti_svg__b)"},(0,n.createElement)("path",{fill:"#69F",fillRule:"evenodd",d:"M0-1v7h16v-7H0Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12l9-6-9-6Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"DJ_-_Djibouti_svg__c",width:9,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12l9-6-9-6Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#DJ_-_Djibouti_svg__c)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M3.501 6.947 2.254 7.7l.285-1.47L1.5 5.132l1.406-.06.595-1.371.595 1.372H5.5L4.464 6.23 4.776 7.7 3.5 6.947Z",clipRule:"evenodd"})))),Ue=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"EG_-_Egypt_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#EG_-_Egypt_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"EG_-_Egypt_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#EG_-_Egypt_svg__b)"},(0,n.createElement)("path",{fill:"#BF2714",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C09302",d:"m6.13 5.11.5.023-.126 2.735-.5-.023.126-2.735ZM6.652 5.28l.5.028-.126 2.218-.5-.028.126-2.218Z"}),(0,n.createElement)("path",{fill:"#C09302",d:"m7.174 5.446.499.04-.126 1.529-.498-.041.125-1.528ZM9.87 5.11l-.5.023.126 2.735.5-.023L9.87 5.11ZM9.348 5.28l-.5.028.126 2.218.5-.028-.126-2.218Z"}),(0,n.createElement)("path",{fill:"#C09302",d:"m8.826 5.446-.499.04.126 1.529.498-.041-.125-1.528ZM7.987 7.663l-.488-.111.207-.9.487.111-.206.9Z"}),(0,n.createElement)("path",{fill:"#C09302",d:"m8.36 7.663.487-.111-.206-.9-.488.111.207.9Z"}),(0,n.createElement)("path",{fill:"#C09302",d:"M8.236 7.655h-.5v-.884h.5v.884ZM7.317 5.457l.5.012-.029 1.19-.5-.012.03-1.19ZM8.187 5.457l.5.012-.03 1.19-.5-.012.03-1.19Z"}),(0,n.createElement)("path",{fill:"#C09302",d:"m6.669 7.961.13-.482c.53.142.938.213 1.215.213.278 0 .686-.07 1.216-.213l.13.482c-.57.153-1.016.23-1.346.23-.33 0-.776-.077-1.345-.23ZM6.141 5.111c-.033-.33.16-.554.488-.525.107.01.228.041.39.096l.092.032c.222.08.282.1.295.102-.05-.011.095-.273.128-.317.004.028-.012.024-.052.016l-.451-.09.32-.33a.585.585 0 0 1 .433-.171c.018 0 .034-.001.088-.005l.085-.004c.312-.01.536.078.536.399 0 .115.015.3.038.44.009.047.024.09-.022.11.002-.017.111-.06.281-.13l.02-.01c.494-.206.552-.225.711-.128.106.065.207.18.32.353l-.418.274a.872.872 0 0 0-.159-.198c.063.044-.149.114-.26.161l-.02.008c-.385.161-.436.18-.546.18-.299 0-.406-.306-.436-.745-.092.304-.367.687-.594.687-.1 0-.052.016-.464-.13l-.086-.03a1.345 1.345 0 0 0-.272-.072.227.227 0 0 1 .02-.02l-.465.047Z"})))),xe=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"GQ_-_Equatorial_Guinea_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#GQ_-_Equatorial_Guinea_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12.288h16.384V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"GQ_-_Equatorial_Guinea_svg__b",width:17,height:13,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12.288h16.384V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#GQ_-_Equatorial_Guinea_svg__b)"},(0,n.createElement)("path",{fill:"#009D00",d:"M0 0v4.096h16.384V0H0Z"}),(0,n.createElement)("path",{fill:"#fff",d:"M0 4.096v4.096h16.384V4.096H0Z"}),(0,n.createElement)("path",{fill:"#F80000",d:"M0 8.192v4.096h16.384V8.192H0Z"})),(0,n.createElement)("path",{fill:"#0075D5",fillRule:"evenodd",d:"M0 0v12.288l4.096-6.066L0 0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"GQ_-_Equatorial_Guinea_svg__c",width:5,height:13,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12.288l4.096-6.066L0 0Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#FFD500",stroke:"#000",strokeWidth:.03,d:"m7.46 4.55.003.011-.016-.014-.103-.095-.012.139h.011l-.019.012-.122.068.128.055.005-.01.004.02.028.138.092-.105-.009-.008.022.003.138.016-.071-.12-.01.006.01-.02.058-.127-.137.031ZM7.972 4.55l.003.011-.016-.014-.103-.095-.012.139h.011l-.02.012-.12.068.127.055.005-.01.004.02.027.138.093-.105-.01-.008.023.003.138.016-.071-.12-.01.006.01-.02.058-.127-.137.031ZM8.484 4.55l.003.011-.016-.014-.103-.095-.012.139h.011l-.019.012-.122.068.129.055.004-.01.004.02.028.138.092-.105-.009-.008.022.003.138.016-.071-.12-.01.006.01-.02.058-.127-.137.031ZM8.996 4.55 9 4.561l-.016-.014-.103-.095-.012.139h.011l-.019.012-.122.068.128.055.005-.01.004.02.028.138.092-.105-.009-.008.022.003.138.016-.071-.12-.01.006.01-.02.058-.127-.137.031ZM9.508 4.55l.003.011-.016-.014-.103-.095-.012.139h.011l-.019.012-.122.068.128.055.005-.01.004.02.027.138.093-.105-.009-.008.022.003.138.016-.071-.12-.01.006.01-.02.058-.127-.137.031ZM10.02 4.55l.003.011-.016-.014-.103-.095-.012.139h.011l-.019.012-.122.068.129.055.004-.01.004.02.028.138.092-.105-.009-.008.022.003.138.016-.071-.12-.01.006.01-.02.058-.127-.136.031Z"}),(0,n.createElement)("path",{stroke:"#373737",strokeWidth:.06,d:"M7.71 5.15h1.988v1.506a.994.994 0 1 1-1.988 0V5.15Z"}),(0,n.createElement)("path",{fill:"#6F3E1D",fillRule:"evenodd",d:"M8.564 6.123s-.103 1.211-.206 1.285c-.104.073.494.11.55.055.058-.055-.26-1.042-.15-1.34.109-.297.285-.321.285-.321s-.222-.047-.286.042c-.063.09-.252-.042-.252-.042l.059.321Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#009D29",fillRule:"evenodd",d:"M8.541 6.055h-.08s-.053.21-.176.105c-.124-.105-.298-.068-.298-.068s.016-.126.205-.176c.19-.05.27-.456.27-.456s.268-.1.431.105c.163.204.393.117.393.117s.168.095.084.234-.227.24-.352.139c-.125-.102-.477 0-.477 0Z",clipRule:"evenodd"}))),Te=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:17,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"ER_-_Eritrea_svg__a",width:17,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h17v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#ER_-_Eritrea_svg__a)"},(0,n.createElement)("path",{fill:"#43B764",d:"M0 0v6h16V0H0Z"}),(0,n.createElement)("path",{fill:"#B4D7F4",d:"M0 6v6h16V6H0Z"}),(0,n.createElement)("path",{fill:"#BE0027",d:"m0 0 16.5 6L0 12V0Z"}),(0,n.createElement)("path",{fill:"#F3E294",d:"m4.557 8.684-.477.01a4.742 4.742 0 0 1-.096-.128 3.157 3.157 0 0 1-.355-1.458v.129c-.002.582-.002.828.355 1.33.102.197.225.39.37.58l.616-.473-.413.01Z"}),(0,n.createElement)("path",{fill:"#F3E294",d:"M1 6.25a3.25 3.25 0 1 0 6.5 0 3.25 3.25 0 0 0-6.5 0Zm5.5 0a2.25 2.25 0 1 1-4.5 0 2.25 2.25 0 0 1 4.5 0Z"}))),De=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SZ_-_Swaziland_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#SZ_-_Swaziland_svg__a)"},(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",stroke:"#FFD018",d:"M0 2.5h-.5v7h17v-7H0Z"}),(0,n.createElement)("path",{fill:"#FFD018",d:"M3.575 4.666c-.06 0-.109-.136-.109-.303 0-.168.049-.303.109-.303h8.705c.06 0 .109.135.109.303 0 .167-.049.303-.109.303H3.575Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"m12.048 4.301.505-.645.895.645-.895.662-.505-.662Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFD018",d:"M3.575 6.666c-.06 0-.109-.136-.109-.303 0-.168.049-.303.109-.303h8.705c.06 0 .109.135.109.303 0 .167-.049.303-.109.303H3.575Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"m12.048 6.301.505-.645.895.645-.895.662-.505-.662Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFD018",d:"M2.173 7.91c-.08 0-.146-.153-.146-.343 0-.19.065-.344.146-.344h11.672c.08 0 .145.154.145.344 0 .19-.065.344-.145.344H2.173Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M4.409 6.026s1.42-2.99 3.452-2.99 3.5 2.99 3.5 2.99S9.57 8.977 7.886 8.977c-1.683 0-3.476-2.95-3.476-2.95Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"SZ_-_Swaziland_svg__b",width:8,height:6,x:4,y:3,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M4.409 6.026s1.42-2.99 3.452-2.99 3.5 2.99 3.5 2.99S9.57 8.977 7.886 8.977c-1.683 0-3.476-2.95-3.476-2.95Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#SZ_-_Swaziland_svg__b)"},(0,n.createElement)("path",{fill:"#272727",d:"M7.962 2.84s-.463.563-.309 1.1c.155.537.515.48.515.953s-.167.955 0 .955c.166 0 .224.327.072.548-.152.221-.287.228-.278.588.01.36.796.714.415.714-.381 0-.884.37-.724.37.16 0 .996.288.996.666v.682H4.286V2.84h3.676Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M5.91 4.962h-.218v.884h.218v-.884Zm.64 0h-.217v.884h.217v-.884Zm-.537 0h.217v.884h-.217v-.884Zm.858 0h-.218v.884h.218v-.884Zm.103 0h.217v.884h-.217v-.884Zm.537 0h-.217v.884h.217v-.884ZM5.692 6.23h.218v.884h-.218v-.884Zm.858 0h-.217v.884h.217v-.884Zm-.537 0h.217v.884h-.217v-.884Zm.858 0h-.218v.884h.218v-.884Zm.103 0h.217v.884h-.217v-.884Zm.537 0h-.217v.884h.217v-.884Z"}),(0,n.createElement)("path",{fill:"#272727",d:"M8.489 4.962H8.27v.884h.218v-.884Zm.64 0h-.217v.884h.217v-.884Zm-.537 0h.217v.884h-.217v-.884Zm.858 0h-.217v.884h.217v-.884Zm.103 0h.217v.884h-.217v-.884Zm.537 0h-.217v.884h.218v-.884ZM8.271 6.23h.218v.884H8.27v-.884Zm.858 0h-.217v.884h.217v-.884Zm-.537 0h.217v.884h-.217v-.884Zm.858 0h-.217v.884h.217v-.884Zm.103 0h.217v.884h-.217v-.884Zm.537 0h-.217v.884h.218v-.884Z"}),(0,n.createElement)("path",{fill:"#3D58DB",d:"M6.616 3.536c-.304.094-.444.892-.41 1.085.034.193.138-.024.138-.024s.21.457.232.58c.022.123.132-.186.132-.186s.366.252.415.532c.05.28.124-.32.124-.32l.082-.015-.052-.297.158.135-.049-.276s.119.155.089-.016l-.047-.266-.041-.234.156-.027s-.623-.765-.927-.671Z"})),(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M13.044 6.848c-.316.04-.591.802-.591.997 0 .196.139 0 .139 0s.128.488.128.613.163-.16.163-.16.316.31.316.595.177-.294.177-.294h.084v-.302l.132.16v-.28s.09.174.09 0V7.67h.159s-.48-.862-.797-.822ZM2.796 6.733c.316.04.592.801.592.997 0 .196-.14 0-.14 0s-.127.487-.127.612-.163-.16-.163-.16-.316.311-.316.596c0 .284-.178-.295-.178-.295H2.38v-.301l-.131.16v-.28s-.09.173-.09 0v-.508H2s.48-.861.796-.821Z",clipRule:"evenodd"}))),Le=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"ET_-_Ethiopia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#ET_-_Ethiopia_svg__a)"},(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"ET_-_Ethiopia_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#ET_-_Ethiopia_svg__b)"},(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#2B77B8",fillRule:"evenodd",d:"M8 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z",clipRule:"evenodd"}),(0,n.createElement)("path",{stroke:"#FECA00",strokeWidth:.75,d:"m8 7-1.381.463.43-1.154-.937-1.118h1.3L8 4l.588 1.191h1.328l-.965 1.118.343 1.154L8 7Z",clipRule:"evenodd"}),(0,n.createElement)("path",{stroke:"#2B77B8",strokeWidth:.5,d:"m7.848 6.017-1.042 2.18M7.684 5.74h-2M8.06 6.419l1.955.902M8.483 5.937l1.415-1.549"})))),Oe=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"GA_-_Gabon_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#GA_-_Gabon_svg__a)"},(0,n.createElement)("path",{fill:"#40A8FF",d:"M0 8h16v4H0V8Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"M0 4h16v4H0V4Z"}),(0,n.createElement)("path",{fill:"#73BE4A",d:"M0 0h16v4H0V0Z"}))),Ne=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"GM_-_Gambia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#GM_-_Gambia_svg__a)"},(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M0 8h16v4H0V8Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0h16v4H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#3D58DB",stroke:"#fff",strokeWidth:1.5,d:"M0 4.25h-.75v3.5h17.5v-3.5H0Z"}))),Be=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"GH_-_Ghana_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#GH_-_Ghana_svg__a)"},(0,n.createElement)("path",{fill:"#5EAA22",d:"M0 8h16v4H0V8Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"M0 4h16v4H0V4Z"}),(0,n.createElement)("path",{fill:"#E11C1B",d:"M0 0h16v4H0V0Z"}),(0,n.createElement)("path",{fill:"#1D1D1D",d:"M8.038 7.245 6.295 8.454l.557-2.07-1.28-1.323 1.733-.072.733-2.047.733 2.047h1.73L9.223 6.384l.639 1.948-1.825-1.087Z",opacity:.9}))),ze=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"GN_-_Guinea_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#GN_-_Guinea_svg__a)"},(0,n.createElement)("path",{fill:"#FBCD17",d:"M5 0h6v12H5V0Z"}),(0,n.createElement)("path",{fill:"#0B9E7A",d:"M11 0h5v12h-5V0Z"}),(0,n.createElement)("path",{fill:"#E11C1B",d:"M0 0h5v12H0V0Z"}))),Pe=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"GW_-_Guinea-Bissau_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#GW_-_Guinea-Bissau_svg__a)"},(0,n.createElement)("path",{fill:"#FBCD17",d:"M8 0h8v6H8V0Z"}),(0,n.createElement)("path",{fill:"#0B9E7A",d:"M8 6h8v6H8V6Z"}),(0,n.createElement)("path",{fill:"#E11C1B",d:"M0 0h8v12H0V0Z"}),(0,n.createElement)("path",{fill:"#1D1D1D",d:"M4.465 7.303 2.723 8.512l.556-2.07L2 5.119l1.732-.072L4.465 3l.733 2.047h1.73L5.65 6.442l.64 1.948-1.826-1.087Z"}))),Ie=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"CI_-_C\\xF4te_d'Ivoire_(Ivory_Coast)_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#CI_-_C\\xF4te_d'Ivoire_(Ivory_Coast)_svg__a)"},(0,n.createElement)("path",{fill:"#67BD38",d:"M11 0h5v12h-5V0Z"}),(0,n.createElement)("path",{fill:"#E47E00",d:"M0 0h5v12H0V0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M5 0h6v12H5V0Z"}))),Ge=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"KE_-_Kenia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#KE_-_Kenia_svg__a)"},(0,n.createElement)("path",{fill:"#0067C3",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#4E8B1D",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",stroke:"#F7FCFF",d:"M0 3.5h-.5v5h17v-5H0Z"})),(0,n.createElement)("path",{fill:"#fff",d:"M9.812 2.015c.114-.205.42-.43.92-.673a.068.068 0 0 1 .056 0c.03.012.043.044.028.07l-5.179 9.314-.27-.116L9.932 2.4c-.206-.03-.247-.158-.12-.385Z"}),(0,n.createElement)("path",{fill:"#fff",d:"M6.183 2.015c.126.227.086.356-.12.385l4.564 8.21-.27.116L5.18 1.412c-.015-.026-.003-.058.027-.07a.068.068 0 0 1 .056 0c.5.244.807.468.92.673Z"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M8 10.474c.598 0 3-1.885 3-4.21 0-2.326-2.402-4.211-3-4.211-.598 0-3 1.885-3 4.21 0 2.326 2.402 4.21 3 4.21Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"KE_-_Kenia_svg__b",width:6,height:9,x:5,y:2,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M8 10.474c.598 0 3-1.885 3-4.21 0-2.326-2.402-4.211-3-4.211-.598 0-3 1.885-3 4.21 0 2.326 2.402 4.21 3 4.21Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#KE_-_Kenia_svg__b)"},(0,n.createElement)("path",{fill:"#272727",d:"M2.5 9.947c2.32 0 4.2-1.65 4.2-3.684 0-2.035-1.88-3.684-4.2-3.684-2.32 0-4.2 1.65-4.2 3.684 0 2.035 1.88 3.684 4.2 3.684ZM13.5 9.947c2.32 0 4.2-1.65 4.2-3.684 0-2.035-1.88-3.684-4.2-3.684-2.32 0-4.2 1.65-4.2 3.684 0 2.035 1.88 3.684 4.2 3.684Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M8.12 5.7c.274-.17.48-.914.48-1.805 0-.891-.206-1.635-.48-1.806V5.7Zm-.3-.047c-.243-.235-.42-.933-.42-1.758s.177-1.523.42-1.758v3.516Zm0 1.22v3.516c-.243-.234-.42-.933-.42-1.757 0-.825.177-1.523.42-1.758Zm.3 3.564v-3.61c.274.17.48.913.48 1.805 0 .89-.206 1.634-.48 1.805Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M8 5.737c.331 0 .6.235.6.526 0 .29-.269.526-.6.526-.331 0-.6-.235-.6-.526 0-.29.269-.526.6-.526Z"}))),Ke=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"LS_-_Lesotho_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#LS_-_Lesotho_svg__a)"},(0,n.createElement)("path",{fill:"#55BA07",d:"M0 8h16v4H0V8Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 4h16v4H0V4Z"}),(0,n.createElement)("path",{fill:"#3D58DB",d:"M0 0h16v4H0V0Z"}),(0,n.createElement)("path",{fill:"#1D1D1D",d:"M7.625 4.12c-.261.07-.4.25-.4.57 0 .366.18.708.4.885V4.12Zm.625 1.445c.214-.179.386-.515.386-.874 0-.31-.136-.49-.386-.564v1.438Zm-.021-1.699c.41.091.705.37.705.823 0 .329-.156.73-.4 1.004l1.218 1.193.3-.098.448.68S9.367 8 7.967 8 5.5 7.467 5.5 7.467l.382-.58.308.1 1.129-1.273c-.254-.275-.418-.688-.418-1.026 0-.468.317-.75.749-.83a.313.313 0 0 1 .579.008Z"}))),We=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"LR_-_Liberia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#LR_-_Liberia_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M.014 2.75h16v1.5h-16z"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0h16v1.5H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M-.029 5.5h16V7h-16zM.056 8.2h16v1.5h-16zM.051 10.75h16v1.5h-16z"}),(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 0h8v7H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M4.066 4.607 2.606 5.62l.466-1.736L2 2.776l1.452-.06L4.066 1l.615 1.716H6.13L5.06 3.884l.536 1.633-1.53-.91Z",clipRule:"evenodd"}))),je=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"LY_-_Libya_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#LY_-_Libya_svg__a)"},(0,n.createElement)("path",{fill:"#55BA07",d:"M0 9h16v3H0V9Z"}),(0,n.createElement)("path",{fill:"#1D1D1D",d:"M0 3h16v6H0V3Z"}),(0,n.createElement)("path",{fill:"#E11C1B",d:"M0 0h16v3H0V0Z"}),(0,n.createElement)("path",{fill:"#fff",d:"M7.899 7.533c-.896-.185-1.124-.72-1.115-1.444 0-.765.399-1.473 1.106-1.558.707-.085 1.285.18 1.589.547-.254-.999-1.095-1.108-1.74-1.108-.972-.008-1.998.664-1.998 2.194 0 1.369.908 2.046 2.026 2.068 1.398 0 1.616-.965 1.657-1.294a2.492 2.492 0 0 0-.234.2c-.28.258-.585.541-1.291.395Zm2.209-1.926-.638.247.662.292-.024.775.502-.535.729.15-.442-.593.386-.571-.61.128-.43-.486-.135.593Z"}))),qe=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MG_-_Madagascar_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#MG_-_Madagascar_svg__a)"},(0,n.createElement)("path",{fill:"#78D843",d:"M6 6h10v6H6V6Z"}),(0,n.createElement)("path",{fill:"#EA1A1A",d:"M6 0h10v6H6V0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 0h6v12H0V0Z"}))),Ye=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MW_-_Malawi_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#MW_-_Malawi_svg__a)"},(0,n.createElement)("path",{fill:"#E11C1B",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"MW_-_Malawi_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#MW_-_Malawi_svg__b)"},(0,n.createElement)("path",{fill:"#272727",d:"M0 0v5h16V0H0Z"}),(0,n.createElement)("path",{fill:"#5EAA22",d:"M0 8v4h16V8H0Z"}),(0,n.createElement)("path",{fill:"#E11C1B",d:"M2 6.973v-.001h-.004.005Zm.315-1.91h.051l-.078-.012.027.012Zm1.464 0c.026-.05.053-.1.082-.149l-1.145-.758 1.35.44c.076-.106.157-.208.243-.307l-.992-.945 1.264.66c.093-.089.19-.174.291-.255L4.07 2.641l1.133.867a4.78 4.78 0 0 1 .327-.2l-.578-1.24.957 1.051c.114-.05.231-.098.35-.14l-.325-1.333.741 1.202c.12-.032.24-.06.364-.083l-.054-1.378.493 1.312a5.46 5.46 0 0 1 .37-.027L8.07 1.3l.224 1.372c.124.005.247.015.369.028l.493-1.313-.054 1.38c.122.023.243.051.362.083l.743-1.204-.326 1.336c.118.042.235.09.348.14l.96-1.054-.58 1.245c.111.062.22.128.324.198l1.138-.87-.806 1.113c.1.08.197.165.288.253l1.271-.663-.997.95c.085.098.165.2.24.304l1.358-.442-1.152.763.08.144h-.983c-.677-.938-1.915-1.566-3.33-1.566-1.414 0-2.651.628-3.328 1.566h-.933Zm1.5 0c.642-.661 1.65-1.087 2.782-1.087 1.132 0 2.14.426 2.781 1.087H5.28Zm8.495 0h.052l.027-.012-.079.012Zm.367 1.909h.004-.004Z"})))),Je=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"ML_-_Mali_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("rect",{width:16,height:12,fill:"#fff",rx:0})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#ML_-_Mali_svg__a)"},(0,n.createElement)("path",{fill:"#FBCD17",d:"M5 0h6v12H5V0Z"}),(0,n.createElement)("path",{fill:"#E11C1B",d:"M11 0h5v12h-5V0Z"}),(0,n.createElement)("path",{fill:"#0B9E7A",d:"M0 0h5v12H0V0Z"}))),Qe=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MR_-_Mauritania_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#MR_-_Mauritania_svg__a)"},(0,n.createElement)("path",{fill:"#1C7B4D",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"MR_-_Mauritania_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#MR_-_Mauritania_svg__b)"},(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 0v3h16V0H0ZM0 9v3h16V9H0Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"M8.121 7.19c2.593.014 3.323-2.157 3.323-2.157C11.297 6.89 10.27 8.15 8.12 8.15S5.183 6.518 4.798 4.89c0 0 .73 2.285 3.323 2.3Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"m8.819 4.907.168.982-.882-.464-.881.464.168-.982-.713-.767h.985l.441-.965.441.965h.986l-.713.767Z"})))),$e=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MU_-_Mauritius_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#MU_-_Mauritius_svg__a)"},(0,n.createElement)("path",{fill:"#579D20",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"MU_-_Mauritius_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#MU_-_Mauritius_svg__b)"},(0,n.createElement)("path",{fill:"#FECA00",d:"M0 6v3h16V6H0Z"}),(0,n.createElement)("path",{fill:"#3D58DB",d:"M0 3v3h16V3H0Z"}),(0,n.createElement)("path",{fill:"#E11C1B",d:"M0 0v3h16V0H0Z"})))),Xe=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MA_-_Morocco_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#MA_-_Morocco_svg__a)"},(0,n.createElement)("path",{fill:"#C51918",d:"M0 0h16v11a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V0Z"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 0h16v12H0V0Z"}),(0,n.createElement)("path",{fill:"#579D20",d:"M11.241 9.813 8.083 1.35h-.137L4.898 9.813 8.063 7.91l3.178 1.903ZM7.733 4.111l.339-1.32.351 1.358 1.01 2.828.592 1.37-1.28-.902-.682-.41-.673.405-1.25.906.578-1.397 1.015-2.838Z"}),(0,n.createElement)("path",{fill:"#579D20",d:"M6.331 6.737 8.08 7.899 9.71 6.737l3.098-2.619H3.193L6.33 6.737Zm.037-1-1.19-.727h5.613l-1.021.646-1.698 1.288-1.704-1.207Z"}))),el=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MZ_-_Mozambique_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#MZ_-_Mozambique_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"MZ_-_Mozambique_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#MZ_-_Mozambique_svg__b)"},(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#093",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",stroke:"#fff",d:"M0 3.5h-.5v5h17v-5H0Z"})),(0,n.createElement)("path",{fill:"#F50100",fillRule:"evenodd",d:"M0 0v12l9-6-9-6Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"MZ_-_Mozambique_svg__c",width:9,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12l9-6-9-6Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#MZ_-_Mozambique_svg__c)"},(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"m4.034 7.177-1.89 1.525.868-2.038-1.49-1.435H3.28L4.002 3.5l.766 1.73h1.754L4.955 6.663l.784 2.038-1.705-1.525Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"m3.078 5.992-.32 1.07s1.081-.01 1.211.099c.392-.244 1.198-.099 1.198-.099l-.429-1.145s-.543-.246-.769-.111c-.552-.125-.891.186-.891.186Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#000",d:"M5.782 7.608a.25.25 0 0 1-.4.3l-2.09-2.775a.25.25 0 1 1 .4-.3l2.09 2.775Z"}),(0,n.createElement)("path",{stroke:"#000",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:.5,d:"m3.487 4.92-.2-.24"}),(0,n.createElement)("path",{fill:"#000",fillRule:"evenodd",d:"m2.802 4.681-.604.968.302.523.691-1.027.125-.317-.125-.147h-.389ZM2.02 7.554l.464.54 3.514-4.072-1.597.995-2.382 2.537Z",clipRule:"evenodd"})))),ll=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"NA_-_Namibia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#NA_-_Namibia_svg__a)"},(0,n.createElement)("path",{fill:"#093",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"NA_-_Namibia_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#NA_-_Namibia_svg__b)"},(0,n.createElement)("path",{fill:"#3195F9",fillRule:"evenodd",d:"M0 0v12L16 0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",stroke:"#F7FCFF",d:"m-.506 13.547.265.48.454-.308L17.629 1.864l.35-.24-.178-.384-1.171-2.52-.246-.528-.485.323-17.678 11.778-.382.255.222.403 1.433 2.596Z"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"m3.115 4.622-.647.808-.157-1.023-.964.376.376-.964L.7 3.662l.807-.647L.7 2.368l1.023-.157-.376-.964.964.376L2.468.6l.647.807L3.762.6l.157 1.023.964-.376-.376.964 1.023.157-.808.647.808.647-1.023.157.376.964-.964-.376-.157 1.023-.647-.808Zm0-.357a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Zm1-1.25a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z",clipRule:"evenodd"})))),tl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"NE_-_Niger_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#NE_-_Niger_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"NE_-_Niger_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#NE_-_Niger_svg__b)"},(0,n.createElement)("path",{fill:"#FC6500",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#5EAA22",d:"M0 8v4h16V8H0Z"}),(0,n.createElement)("path",{fill:"#FC6500",d:"M8 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"})))),al=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"NG_-_Nigeria_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#NG_-_Nigeria_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 0h16v12H0V0Z"}),(0,n.createElement)("path",{fill:"#093",d:"M11 0h5v12h-5V0ZM0 0h5v12H0V0Z"}))),nl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"RW_-_Rwanda_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#RW_-_Rwanda_svg__a)"},(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"RW_-_Rwanda_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#RW_-_Rwanda_svg__b)"},(0,n.createElement)("path",{fill:"#3CA5D9",d:"M0 0v7h16V0H0Z"}),(0,n.createElement)("path",{fill:"#5A962A",d:"M0 9v3h16V9H0Z"}),(0,n.createElement)("path",{fill:"#FFDC17",d:"M12.04 5.933a2.07 2.07 0 0 1-.092 0l-.302.987-.064-1.028a1.996 1.996 0 0 1-.09-.021l-.524.89.177-1.014a1.955 1.955 0 0 1-.085-.041l-.715.745.408-.944-.073-.06-.87.561.617-.824c-.02-.025-.04-.05-.058-.076l-.975.347.79-.66a1.966 1.966 0 0 1-.038-.089l-1.028.116.922-.462a1.887 1.887 0 0 1-.017-.095l-1.026-.122 1.004-.24.006-.096-.97-.353 1.032-.003.028-.094-.86-.563 1.005.232.05-.085-.706-.745.924.456c.022-.024.045-.048.068-.07l-.513-.887.793.654.082-.053-.293-.98.62.818a2 2 0 0 1 .092-.033l-.057-1.02.413.938a2.04 2.04 0 0 1 .097-.011L11.995 1l.183 1.009c.032.002.064.006.096.01l.413-.939-.057 1.024c.03.01.06.02.09.032l.622-.82-.294.984c.027.016.054.034.08.052l.797-.657-.516.89.065.07.929-.459-.71.75c.017.026.032.054.048.081l1.01-.233-.865.567.027.09 1.038.003-.975.355.005.093 1.011.24-1.033.123-.016.092.928.465-1.034-.116a1.836 1.836 0 0 1-.037.084l.795.665-.98-.35-.056.074.62.83-.874-.565-.07.059.41.948-.719-.748a1.995 1.995 0 0 1-.082.041l.178 1.017-.525-.892-.09.021-.064 1.03-.302-.987Zm-.067-.726c.7 0 1.268-.559 1.268-1.25 0-.69-.568-1.249-1.268-1.249-.7 0-1.268.56-1.268 1.25s.568 1.25 1.268 1.25Zm.73-1.213a.715.715 0 1 1-1.43 0 .715.715 0 0 1 1.43 0Z"})))),sl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"ST_-_Sao_Tome_and_Principe_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#ST_-_Sao_Tome_and_Principe_svg__a)"},(0,n.createElement)("path",{fill:"#FBCD17",d:"M0 0v12h16V0H0Z"}),(0,n.createElement)("path",{fill:"#73BE4A",d:"M0 0v4h16V0H0ZM0 8v4h16V8H0Z"}),(0,n.createElement)("path",{fill:"#C51918",d:"M0 0v12l5-6-5-6Z"}),(0,n.createElement)("path",{fill:"#272727",d:"m8.5 6.935-.934.565.213-1.102L7 5.573l1.055-.044L8.5 4.5l.446 1.029H10l-.777.87.234 1.101-.956-.565ZM12.5 6.935l-.934.565.213-1.102L11 5.573l1.055-.044L12.5 4.5l.446 1.029H14l-.777.87.234 1.101-.956-.565Z"}))),il=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SN_-_Senegal_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#SN_-_Senegal_svg__a)"},(0,n.createElement)("path",{fill:"#FBCD17",d:"M5 0h6v12H5V0Z"}),(0,n.createElement)("path",{fill:"#006923",d:"m8.038 7.245-1.743 1.21.557-2.071-1.28-1.323 1.733-.072.733-2.047.733 2.047h1.73L9.223 6.384l.639 1.948-1.825-1.087Z"}),(0,n.createElement)("path",{fill:"#E11C1B",d:"M11 0h5v12h-5V0Z"}),(0,n.createElement)("path",{fill:"#006923",d:"M0 0h5v12H0V0Z"}))),cl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SC_-_Seychelles_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#SC_-_Seychelles_svg__a)"},(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"SC_-_Seychelles_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#SC_-_Seychelles_svg__b)"},(0,n.createElement)("path",{fill:"#FFD018",fillRule:"evenodd",d:"M0 11.998 8.076-1h8.075L0 11.998Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 11.998 17.232 5.5v-8.05L0 11.998Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 11.998 17.232 9.5V5.45L0 11.998Z"}),(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M0 11.998h17.232v-3.55L0 11.998Z",clipRule:"evenodd"})))),rl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SL_-_Sierra_Leone_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#SL_-_Sierra_Leone_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"SL_-_Sierra_Leone_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#SL_-_Sierra_Leone_svg__b)"},(0,n.createElement)("path",{fill:"#78D843",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#3D58DB",d:"M0 8v4h16V8H0Z"})))),dl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SO_-_Somalia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#SO_-_Somalia_svg__a)"},(0,n.createElement)("path",{fill:"#56C6F5",d:"M0 0h16v12H0V0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M7.99 7.359 6.106 8.555l.632-2.094-1.343-1.369 1.85-.04.82-2.068.746 2.095 1.846.032-1.387 1.394.647 1.992L7.99 7.36Z"}))),ml=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"ZA_-_South_Africa_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#ZA_-_South_Africa_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"ZA_-_South_Africa_svg__b",width:18,height:20,x:-1,y:-4,fill:"#000",maskUnits:"userSpaceOnUse"},(0,n.createElement)("path",{fill:"#fff",d:"M-1-4h18v20H-1z"}),(0,n.createElement)("path",{fillRule:"evenodd",d:"M7.714 5 0-1v14l7.714-6H16V5H7.714Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M7.714 5 0-1v14l7.714-6H16V5H7.714Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"m0-1 .614-.79L-1-3.044V-1h1Zm7.714 6-.614.79.271.21h.343V5ZM0 13h-1v2.045l1.614-1.256L0 13Zm7.714-6V6h-.343l-.27.21.613.79ZM16 7v1h1V7h-1Zm0-2h1V4h-1v1ZM-.614-.21l7.714 6 1.228-1.58-7.714-6L-.614-.21ZM1 13V-1h-2v14h2Zm6.1-6.79-7.714 6 1.228 1.58 7.714-6L7.1 6.21ZM16 6H7.714v2H16V6Zm-1-1v2h2V5h-2ZM7.714 6H16V4H7.714v2Z",mask:"url(#ZA_-_South_Africa_svg__b)"}),(0,n.createElement)("path",{fill:"#272727",stroke:"#FECA00",d:"M.3 2.6-.5 2v8l.8-.6 4-3 .533-.4-.533-.4-4-3Z"}))),hl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SS_-_South_Sudan_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("rect",{width:16,height:12,fill:"#fff",rx:0})),(0,n.createElement)("g",{mask:"url(#SS_-_South_Sudan_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#4E8B1D",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",stroke:"#F7FCFF",d:"M0 3.5h-.5v5h17v-5H0Z"}),(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"m0 0 10 6-10 6V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"m3.324 7.204-1.01 1.05-.105-1.492L.92 5.968l1.343-.421.22-1.48.93 1.172 1.355-.363-.7 1.387.681 1.339-1.426-.398Z",clipRule:"evenodd"}))),ol=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SD_-_Sudan_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#SD_-_Sudan_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 0h16v12H0V0Z"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#272727",d:"M0 8v4h16V8H0Z"}),(0,n.createElement)("path",{fill:"#5EAA22",d:"m0 0 8 6-8 6V0Z"}))),vl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"TZ_-_Tanzania_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#TZ_-_Tanzania_svg__a)"},(0,n.createElement)("path",{fill:"#3195F9",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"TZ_-_Tanzania_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#TZ_-_Tanzania_svg__b)"},(0,n.createElement)("path",{fill:"#73BE4A",fillRule:"evenodd",d:"M0 0v12L16 0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",stroke:"#FFD018",strokeWidth:1.25,d:"m-.91 12.72.346.52.52-.348L18.086.791l.52-.347-.347-.52-1.11-1.664-.347-.52-.52.348-18.13 12.101-.52.347.347.52 1.11 1.664Z"})))),_l=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"TG_-_Togo_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#TG_-_Togo_svg__a)"},(0,n.createElement)("path",{fill:"#5EAA22",stroke:"#F7FCFF",d:"M0-.5h-.5v13h17v-13H0Z"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M0 3v2h16V3H0ZM0 7v2h16V7H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F50101",d:"M0 0h8v7H0z"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"m4.125 5.072-1.86 1.15.722-1.931L1.5 2.99h1.824l.801-1.925.611 1.925h1.802L5.273 4.29l.623 1.837-1.771-1.056Z",clipRule:"evenodd"}))),ul=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"TN_-_Tunisia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#TN_-_Tunisia_svg__a)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"TN_-_Tunisia_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#TN_-_Tunisia_svg__b)"},(0,n.createElement)("path",{fill:"#F7FCFF",d:"M8 10a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M8.701 8.825S6.593 8.25 6.593 5.987c0-2.264 2.108-2.888 2.108-2.888-.871-.338-3.423.18-3.423 2.888 0 2.707 2.623 3.195 3.423 2.838Zm-.116-3.33-1.046.381 1.125.393.037 1.053.685-.818 1.128.08-.813-.663.49-.957-.957.321-.662-.828.013 1.037Z"})))),pl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"UG_-_Uganda_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("rect",{width:16,height:12,fill:"#fff",rx:0})),(0,n.createElement)("g",{mask:"url(#UG_-_Uganda_svg__a)"},(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"UG_-_Uganda_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#UG_-_Uganda_svg__b)"},(0,n.createElement)("path",{fill:"#272727",d:"M0 0h16v2H0z"}),(0,n.createElement)("path",{fill:"#D74800",d:"M0 4h16v2H0z"}),(0,n.createElement)("path",{fill:"#272727",d:"M0 6h16v2H0z"}),(0,n.createElement)("path",{fill:"#D74800",d:"M0 10h16v2H0z"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M8 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",fillRule:"evenodd",d:"m6.84 4.164-.53.174.53.045s.085.21 0 .373c-.022.041-.078.094-.15.162-.21.2-.553.525-.553 1.055 0 .71 1.37 1.032 1.37 1.032v.337s.159.1-.748.1c-.787 0-.738.298-.711.461a.436.436 0 0 1 .008.065c0 .129.378-.13.555-.387.093-.135.483-.128.884-.09.031.002.324.62.07.94-.107.135-.474.152-.704.163-.117.006-.199.01-.191.026.006.013.075.009.176.003.125-.008.3-.018.461-.003.024.003-.07.085-.166.168-.099.086-.199.172-.17.174.031.001.216-.101.384-.194.139-.077.266-.148.285-.148.127 0 .241.016.342.03.168.023.296.04.377-.03.025-.021-.12-.056-.267-.091-.151-.036-.306-.073-.282-.098.14-.138.081-.428.036-.656a1.198 1.198 0 0 1-.036-.251c.012-.207.232-.099.404-.013.075.037.142.07.178.07.327 0-.079-.413-.301-.64l-.054-.054c-.113-.117-.034-.101.146-.066.137.027.332.066.544.066.49 0 .848-.16.724-.591-.082-.285-.531-.381-1-.483-.243-.052-.49-.105-.695-.186-.505-.199-.48-.49-.457-.734.004-.048.008-.094.008-.137 0-.266.449-.592.449-.592s-.205-.343-.545-.343c-.34 0-.371.343-.371.343Zm.924 3.124v-.25s.21-.008.283.169c.074.176-.283.081-.283.081Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#D74800",fillRule:"evenodd",d:"m6.538 3.356.507.6.263-.061-.126-.607-.644.068Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFD018",fillRule:"evenodd",d:"m7.196 3.21.033.904.433-.107.184-.591-.65-.206Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#D74800",fillRule:"evenodd",d:"M6.788 4.72a.171.171 0 0 0 .174-.17.171.171 0 0 0-.174-.168.171.171 0 0 0-.173.169c0 .093.078.168.173.168ZM7.888 3.38l-.504.603.107.248.575-.23-.178-.621ZM9.06 7.947s.886-.396.886-.95c0-.554-1.44-1.157-1.44-1.157s-.846.194-.464.453c.381.26.892.36.892.704 0 .345.14.674-.144.674-.283 0 .27.276.27.276Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFFDFF",fillRule:"evenodd",d:"M7.78 5.74s-.313.054-.298.105c.041.14.47.324.657.451.381.26.743.23 1.012.061.27-.168-1.37-.618-1.37-.618Z",clipRule:"evenodd"})))),fl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"ZM_-_Zambia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#ZM_-_Zambia_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"ZM_-_Zambia_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#ZM_-_Zambia_svg__b)"},(0,n.createElement)("path",{fill:"#FF8126",d:"M13 5h3v7h-3z"}),(0,n.createElement)("path",{fill:"#272727",d:"M10 5h3v7h-3z"}),(0,n.createElement)("path",{fill:"#C51918",d:"M7 5h3v7H7z"}),(0,n.createElement)("path",{fill:"#FF8126",fillRule:"evenodd",d:"M10.808 1.558c.27.1 0 .252 0 .252s-.054-.062-.054-.114c0-.052-.207 0-.314.189-.101.178.085.177.282.177h.032c.111 0 .285-.011.446-.021.14-.01.271-.017.344-.017.157 0 .231 0 .438-.14.134-.09.578-.2.909-.283a3.88 3.88 0 0 0 .368-.1c.13-.058-.13.247-.13.247s1.006-.406 1.207-.544c.125-.086.068-.013-.024.107a2.871 2.871 0 0 0-.177.247c-.085.141.088.007.28-.142a4.22 4.22 0 0 1 .29-.212c.22-.139-.057.237-.18.354-.122.118.287 0 .43-.117.103-.086.008.065-.072.192a2.535 2.535 0 0 0-.07.115l-.003.005c-.055.1-.072.132.06.132s-.344.37-.344.37.142-.022 0 .224c-.084.146-.492.293-.822.412-.23.083-.424.153-.445.199-.037.083-.409.18-.582.225-.061.016-.098.025-.085.025.049 0 .13.062.042.062s-.243.05-.243.05.082 0 0 .116c-.039.056-.107.047-.155.04-.053-.006-.08-.01-.02.076.054.077.074.106.068.114-.008.01-.048-.007-.111-.007-.056 0-.116-.024-.18-.05-.069-.027-.142-.057-.218-.057-.139 0 0 .098.088.16l.01.007c.078.055.045.055-.095.054h-.046c-.087 0-.134-.01-.159-.014-.026-.006-.029-.006-.029.014s-.065-.007-.144-.04c-.082-.034-.178-.074-.23-.074-.103 0 .218.212.218.212s-.168-.054-.258-.098c-.052-.024.014.092.073.198.045.08.086.154.07.154a.265.265 0 0 1-.072-.029c-.065-.03-.145-.07-.145-.018 0 .078.074.135.164.135.09 0 .106.12.052.12-.018 0-.041-.008-.063-.015-.041-.015-.08-.028-.08.015 0 .028.017.05.036.073.025.034.055.073.055.145 0 .125-.134.143-.09.06.044-.083-.153-.283-.153-.185v.125c0 .089-.018.094-.044.103-.016.005-.036.012-.058.04-.033.042-.038.065-.04.079-.003.013-.004.016-.027.016-.019 0-.034-.028-.055-.065-.032-.057-.076-.136-.164-.173-.082-.034-.087-.01-.094.034a.163.163 0 0 1-.055.109c-.063.053-.046.075-.025.101.012.015.025.031.025.055 0 .066-.11-.066-.11-.156s-.126-.21-.126-.143 0 .143-.064.143c-.031 0-.032.022-.034.052-.002.032-.004.073-.044.104-.04.031-.04.015-.037-.022.002-.034.004-.087-.027-.134-.038-.058-.006-.149.01-.195.01-.029.015-.04-.01-.014-.062.066-.142.066-.196.066H9.8c-.027 0-.051.035-.068.06-.017.024-.027.038-.027 0 0-.076.08-.278.23-.278.117 0 .175-.047.225-.087a.498.498 0 0 1 .044-.033c.065-.041 0-.095-.064-.135-.03-.018-.019-.075.002-.127.035-.023.062-.052.062-.08 0-.036-.038.018-.063.08a.314.314 0 0 1-.143.05c-.034 0-.012-.062.014-.14a.7.7 0 0 0 .05-.202c0-.057.01-.107.016-.141.008-.045.012-.063-.016-.04-.035.03-.221-.003-.349-.025-.054-.01-.098-.017-.114-.017-.023 0-.004-.044.015-.089.024-.056.047-.111-.015-.077-.097.054-.295.052-.42.05h-.05c-.073 0-.023-.064.004-.1.016-.019.024-.029-.004-.012a.408.408 0 0 1-.233.062c-.037 0-.048-.022-.06-.047-.015-.03-.03-.063-.099-.062-.124 0-.152-.001-.22-.055-.036-.028-.016-.045-.005-.054.01-.009.014-.011-.04-.011h-.338c-.168 0 0-.131.061-.131.06 0 .131-.118 0-.065-.083.034-.173.024-.279.013-.06-.006-.124-.013-.196-.013-.199 0-.237-.092-.12-.092.119 0 .126-.068-.058-.068a.861.861 0 0 1-.28-.054.376.376 0 0 0-.098-.025c-.065 0-.135-.09 0-.09.134 0 .307-.076.16-.076-.084 0-.222-.044-.343-.083-.093-.03-.175-.056-.213-.056-.03 0 .016-.01.077-.023.121-.026.302-.065.071-.065-.247 0-.505-.2-.684-.34a1.144 1.144 0 0 0-.172-.12c-.138-.064 0-.189.04-.137.04.052.32.132.198.062a.724.724 0 0 1-.238-.252c-.04-.064-.009-.108.04-.057.05.05.276.195.276.195s-.121-.138-.218-.354c-.096-.216.097-.163.261 0 .165.164.32.207.398.216.077.01-.078-.117-.227-.216-.15-.098-.116-.45 0-.31.06.074.344.213.623.35.257.125.508.248.573.314.113.115.022-.056-.076-.24l-.06-.114c-.065-.125.197.018.496.18.214.117.448.244.591.288.099.03.217.08.335.129.29.12.581.241.581.085 0-.22.266-.565.551-.682.181-.073.266-.007.374.077.062.049.13.103.23.14ZM10.5 4.142c.064 0 .046-.669.046-.669s.19.41.19.588c0 .081-.005.105-.003.129.002.027.015.054.06.176.047.124.016.11-.068.074-.069-.03-.171-.074-.296-.074-.28 0 .006-.224.07-.224Z",clipRule:"evenodd"})))),El=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"ZW_-_Zimbabwe_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#ZW_-_Zimbabwe_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"ZW_-_Zimbabwe_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#ZW_-_Zimbabwe_svg__b)"},(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M0 1v10h16V1H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",stroke:"#E31D1C",strokeWidth:1.75,d:"M0 4.125h-.875v3.75h17.75v-3.75H0Z"}),(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M0 2V0h16v2H0Zm0 10v-2h16v2H0Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#F7FCFF",stroke:"#272727",d:"M.298-.401-.5-.995V12.98l.794-.575L8.459 6.48l.551-.4-.546-.406L.298-.401Z"}),(0,n.createElement)("mask",{id:"ZW_-_Zimbabwe_svg__c",width:11,height:16,x:-1,y:-2,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",stroke:"#fff",d:"M.298-.401-.5-.995V12.98l.794-.575L8.459 6.48l.551-.4-.546-.406L.298-.401Z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#ZW_-_Zimbabwe_svg__c)"},(0,n.createElement)("path",{fill:"#E31D1C",d:"M3.74 7.14 1.85 8.663l.866-2.038-1.489-1.434h1.758l.721-1.73.766 1.73h1.755L4.66 6.626l.785 2.038L3.739 7.14Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"M2.509 4.21s-.028-.065.134-.124c.162-.058.212-.182.339-.091.126.091.206-.092.242.17.037.264.137.678.137.678L5.005 6.08h-.309s-.48.706-.402 1.326c0 0-.331-.05-.781-.05s-.744.108-.744.108l-.26-.962s.094-.162.134-.292c.04-.13.208-.154.208-.258 0-.104-.165-.19-.082-.459.082-.268.082-1.07.082-1.07s-.26-.115-.208-.115c.053 0 .174-.096.087-.096H2.51Z"})))),gl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"AF_-_Afghanistan_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#AF_-_Afghanistan_svg__a)"},(0,n.createElement)("path",{fill:"#67BD38",d:"M11 0h5v12h-5V0Z"}),(0,n.createElement)("path",{fill:"#D51700",d:"M5 0h6v12H5V0Z"}),(0,n.createElement)("path",{fill:"#272727",d:"M0 0h5v12H0V0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M5 6.05a3.05 3.05 0 1 0 5.48-1.844l-.443 1.338A2.055 2.055 0 0 1 9.3 7.675V5.3H9a1 1 0 0 0-2 0h-.3v2.293a2.045 2.045 0 0 1-.662-1.937H6l-.37-1.462A3.037 3.037 0 0 0 5 6.05Zm2.7.204V8.07a2.063 2.063 0 0 0 .6.015v-1.83a1 1 0 0 1-.6 0Z"}))),Zl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BH_-_Bahrain_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#BH_-_Bahrain_svg__a)"},(0,n.createElement)("rect",{width:16,height:12,fill:"#E31D1C",rx:1}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0h3.4L6 1 3.4 2 6 3 3.4 4 6 5 3.4 6 6 7 3.4 8 6 9l-2.6 1L6 11l-2.6 1H0V0Z",clipRule:"evenodd"}))),yl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BD_-_Bangladesh_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#BD_-_Bangladesh_svg__a)"},(0,n.createElement)("path",{fill:"#38A17E",d:"M0 0h16v12H0z"}),(0,n.createElement)("path",{fill:"#F72E45",fillRule:"evenodd",d:"M6 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z",clipRule:"evenodd"}))),kl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BT_-_Bhutan_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#BT_-_Bhutan_svg__a)"},(0,n.createElement)("path",{fill:"#FF6230",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M0 0v12L16 0H0Z",clipRule:"evenodd"}),(0,n.createElement)("g",{filter:"url(#BT_-_Bhutan_svg__b)"},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M2.191 8.164s-.751.685-.156.721c.596.036.485.4.972.002.488-.397.015.063.665-.027s.975-.883 1.318-.829c.343.054.144-.072.433.27.29.344.797-.385.526.121-.27.506-.379 1.011.018.993.397-.018.56-.253.74-.505.181-.253 1.59.614.94-.253-.65-.867-.903.095-.957-.357-.054-.451-.183-.686.124-.47.307.218 1.03.163.47-.378-.56-.542-.483-.686-.645-.542-.163.144-.56-.542 0-.632.56-.09 1.204.217 1.42.38.218.162.886-.037 1.03.288.145.325.632.38.759.578.126.199.036 1.174 1.065 1.12 1.03-.055 1.354-.578.921-.994-.434-.415-.397-1.173-.849-.812-.451.36-1.101.307-1.101-.127 0-.433.198-.505.162-.848-.036-.344-.072-.2.596-.181.668.018.434 0 .921-.235.488-.234.813.795 1.011.036.199-.758-.072-1.535-.614-1.228-.541.307-.523 1.066-1.21.47-.686-.596-1.01-.289-.794-.614.217-.325-.054-.56.433-.343.488.217.344.289.759.343.415.054 2.618.325 2.13-.126-.487-.452-.955-.378-1.027-.667-.072-.29.225-.217.658-.38.434-.162.253-.993-.163-.83-.415.162-.38.885-1.228.433-.974.424-.823.211-1.319-.507-.433-.343-.668-.36-1.408.036-.585.241-1.074.687-.767 1.283.308.595 1.039 1.718.642 1.79-.398.072-1.824-.993-2.655-.433-.83.56-1.284 1.104-1.555 1.754-.27.65-1.147 1.029-1.364 1.029-.217 0-.522.382-.9.671Z",clipRule:"evenodd"}))),(0,n.createElement)("defs",null,(0,n.createElement)("filter",{id:"BT_-_Bhutan_svg__b",width:15.543,height:11.641,x:-.194,y:-.225,colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse"},(0,n.createElement)("feFlood",{floodOpacity:0,result:"BackgroundImageFix"}),(0,n.createElement)("feColorMatrix",{in:"SourceAlpha",result:"hardAlpha",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"}),(0,n.createElement)("feOffset",null),(0,n.createElement)("feGaussianBlur",{stdDeviation:1}),(0,n.createElement)("feColorMatrix",{values:"0 0 0 0 0.866667 0 0 0 0 0.184314 0 0 0 0 0 0 0 0 0.38 0"}),(0,n.createElement)("feBlend",{in2:"BackgroundImageFix",result:"effect1_dropShadow_270_55195"}),(0,n.createElement)("feBlend",{in:"SourceGraphic",in2:"effect1_dropShadow_270_55195",result:"shape"})))),wl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BN_-_Brunei_Darussalam_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#BN_-_Brunei_Darussalam_svg__a)"},(0,n.createElement)("path",{fill:"#FFD221",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"BN_-_Brunei_Darussalam_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#BN_-_Brunei_Darussalam_svg__b)"},(0,n.createElement)("path",{fill:"#313131",d:"m-1.534 5.308 1.004-2.29 17.414 7.636-1.004 2.29-17.414-7.636Z"}),(0,n.createElement)("path",{fill:"#FAF9F9",d:"M-1.509 2.785-.505.495l18.28 8.012-1.004 2.29-18.28-8.012Z"}),(0,n.createElement)("path",{fill:"#CF1225",fillRule:"evenodd",d:"M8 1.444a.5.5 0 0 0-.5.5v1.814a1.461 1.461 0 0 0-.634-.158c-.549 0-1.166.768-1.166.768s1.02.028 1.8.802v2.774c-.863-.229-1.234-1.107-1.136-2.903l-1.498-.082c-.157 2.884.909 4.546 3.155 4.546 2.235 0 3.337-1.647 3.262-4.524l-1.5.038c.048 1.835-.37 2.724-1.283 2.936v-2.88c.765-.682 1.7-.707 1.7-.707S9.583 3.6 9.034 3.6c-.198 0-.38.05-.534.113v-1.77a.5.5 0 0 0-.5-.5ZM2.91 5.492a.5.5 0 1 1 .18-.984c.999.183 1.542.878 1.542 1.94v2.026a.5.5 0 1 1-1 0V6.449c0-.593-.212-.864-.722-.957Zm10.614-.582a.5.5 0 0 1-.402.582c-.51.093-.722.364-.722.957v2.025a.5.5 0 1 1-1 0V6.449c0-1.063.543-1.758 1.542-1.94a.5.5 0 0 1 .582.401ZM4.87 9.22l.826-.563c.463.68 1.211 1.02 2.303 1.02 1.1 0 1.793-.265 2.133-.758l.823.568c-.557.806-1.56 1.19-2.956 1.19-1.404 0-2.467-.484-3.13-1.457Z",clipRule:"evenodd"})))),Ml=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("path",{fill:"#032EA1",d:"M0 0h16v12H0V0Z"}),(0,n.createElement)("path",{fill:"#E00025",d:"M0 3h16v6H0V3Z"}),(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M5.167 5.52v.03h.945v-.03h1.323v.06h.888v-.06H9.65v.03h.945v-.03h.11v1.306h-5.7V5.52h.163Zm-.163 1.306h-.302v.249h.69v.005h-.996v.426h.996v.004H4.201v.375h7.36V7.51h-1.195v-.004h1.002V7.08h-1.002v-.005h.696v-.249h-.358v.008h-5.7v-.008Zm5.59-1.306v-.84c-.014 0-.024.02-.035.045-.018.037-.04.084-.091.084-.045 0-.042-.054-.015-.096.021-.039.048-.09.012-.189-.027.075-.093.099-.081.054a.247.247 0 0 1 .028-.062c.022-.04.04-.073.008-.157-.015.102-.081.099-.066.039a.405.405 0 0 1 .015-.045c.017-.042.03-.077-.006-.15-.027.111-.06.105-.06.036 0-.102 0-.21-.126-.249 0 0-.009-.09-.057-.09-.045 0-.054.09-.054.09-.126.038-.126.145-.126.242v.007c0 .069-.033.075-.06-.036-.036.073-.023.108-.006.15l.015.045c.015.06-.05.063-.066-.039-.033.084-.014.118.008.157.01.017.021.036.028.062.012.045-.054.021-.08-.054-.037.099-.01.15.011.189.024.042.03.096-.015.096-.05 0-.073-.046-.09-.082-.012-.024-.022-.044-.036-.044v.837h.945Zm-2.27 0h-.889v-.105c0-.046-.025-.068-.047-.089-.02-.017-.037-.034-.037-.061 0 0-.012-.09.012-.132.033.12.09.099.09.048 0-.039-.025-.077-.084-.166l-.015-.023c-.024-.033-.009-.138.021-.177.012.09.027.135.066.135.024 0 .042-.015.042-.06a.167.167 0 0 0-.033-.092c-.01-.016-.02-.032-.027-.052a.15.15 0 0 1 .033-.159l.007.042c.008.06.012.084.044.084.075-.025.012-.127-.013-.166L7.49 4.54c-.018-.033.03-.102.03-.102.024.081.03.087.06.078.036-.009.03-.06-.012-.102-.027-.03-.024-.069.006-.099.03.057.066.054.069.018L7.618 4.2h.033l-.012-.1h.477l-.012.1h.036l-.027.129c-.006.036.042.045.072-.015.03.03.033.072.006.099-.042.042-.048.093-.012.102.03.009.036 0 .06-.078 0 0 .045.045.03.102l-.004.007c-.024.039-.09.145-.014.167.032 0 .036-.024.044-.084l.007-.042a.15.15 0 0 1 .03.159c-.007.021-.018.039-.028.056-.016.026-.032.051-.032.088 0 .045.021.06.045.06.039 0 .054-.042.066-.135.03.039.045.144.021.18l-.025.037c-.052.076-.077.112-.077.149 0 .051.06.072.09-.048.027.042.015.132.015.132 0 .028-.017.044-.036.062-.022.02-.046.043-.048.088v.105Zm-3.157 0v-.84c.014 0 .024.02.035.045.018.037.04.084.091.084.045 0 .042-.054.015-.096-.021-.039-.048-.09-.012-.189.027.075.093.099.081.054-.007-.026-.017-.045-.028-.062-.022-.04-.04-.073-.008-.157.015.102.081.099.066.039a.397.397 0 0 0-.015-.045c-.017-.042-.03-.077.006-.15.027.111.06.105.06.036 0-.102 0-.21.126-.249 0 0 .01-.09.057-.09.045 0 .054.09.054.09.126.038.126.145.126.242v.007c0 .069.033.075.06-.036.036.073.023.108.006.15a.397.397 0 0 0-.015.045c-.015.06.051.063.066-.039.033.084.014.118-.008.157-.01.017-.021.036-.028.062-.012.045.054.021.081-.054.036.099.01.15-.012.189-.024.042-.03.096.015.096.05 0 .073-.046.09-.082.012-.024.022-.044.036-.044v.837h-.945ZM7.81 4.093s-.003-.123.07-.126c.068 0 .065.126.065.126H7.81Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#fff",d:"M5.167 5.55h-.015l.015.015V5.55Zm.945 0v.015l.015-.015h-.015Zm1.323.03H7.42l.015.015V5.58Zm.888 0v.015l.015-.015h-.015Zm1.326-.03h-.015l.015.015V5.55Zm.945 0v.015l.015-.015h-.015Zm.11-.03h.015l-.015-.015v.015Zm-5.7 0v-.015l-.015.015h.015Zm-.302 1.306v-.015l-.015.015h.015Zm0 .249h-.015l.015.015v-.015Zm.69 0h.015l-.015-.015v.015Zm0 .005v.015l.015-.015h-.015Zm-.996 0v-.015l-.015.015h.015Zm0 .426h-.015l.015.015v-.015Zm.996 0h.015l-.015-.015v.015Zm0 .004v.015l.015-.015h-.015Zm-1.191 0v-.015l-.015.015h.015Zm0 .375h-.015l.015.015v-.015Zm7.36 0V7.9l.014-.015h-.015Zm0-.375h.014l-.015-.015v.015Zm-1.195 0h-.015l.015.015V7.51Zm0-.004V7.49l-.015.015h.015Zm1.002 0v.015l.015-.015h-.015Zm0-.426h.015l-.015-.015v.015Zm-1.002 0h-.015l.015.015V7.08Zm0-.005V7.06l-.015.015h.015Zm.696 0v.015l.015-.015h-.015Zm0-.249h.015l-.015-.015v.015Zm-.358.008v.015l.015-.015h-.015Zm-5.7 0H4.99l.015.015v-.015Zm5.59-2.154h.015l-.015-.015v.015Zm-.035.045.013.006-.013-.006Zm-.106-.012.013.008-.013-.008Zm.012-.189.014-.005h-.028l.014.005Zm-.081.054.014.004-.014-.004Zm.028-.062-.013-.008.013.008Zm.008-.157.014-.005-.029.003.015.002Zm-.066.039-.014-.004.014.004Zm.015-.045-.014-.005.014.005Zm-.006-.15.014-.007-.029.003.015.004Zm-.186-.213-.015.001.01.013.005-.014Zm-.111 0 .004.014.011-.013-.015-.001Zm-.126.242h.015-.015Zm-.06-.029.015-.004-.028-.003.013.007Zm-.006.15.014-.005-.014.005Zm.015.045.015-.004-.015.004Zm-.066-.039.015-.002-.029-.003.014.005Zm.008.157.013-.008-.013.008Zm.028.062-.014.004.014-.004Zm-.08-.054.013-.005h-.028l.014.005Zm.011.189-.013.007.013-.007Zm-.106.014-.013.006.013-.006Zm-.035-.044v-.015l-.015.015h.015Zm-2.261.643-.01.011.01-.01Zm-.037-.061h.015v-.002l-.015.002Zm.012-.132.015-.004-.028-.003.013.007Zm.006-.118-.012.009.012-.009Zm-.015-.023.013-.008-.013.008Zm.021-.177.015-.002-.027-.007.012.009Zm.075-.017.013-.008-.013.008Zm-.027-.052-.014.005.014-.005Zm.033-.159.015-.002-.026-.009.011.011Zm.007.042-.015.003.015-.003Zm0 0 .014-.002-.014.002Zm.044.084v.016l.005-.002-.005-.014Zm-.013-.166-.013.008.013-.008ZM7.49 4.54l-.013.007.013-.007Zm.03-.102.014-.004-.026-.005.012.009Zm.06.078L7.575 4.5l.004.015Zm-.012-.102-.011.01.011-.01Zm.006-.099.013-.007-.024-.004.011.011Zm.069.018.016.001-.001-.004-.015.003ZM7.618 4.2v-.015l-.015.018.015-.003Zm.033 0v.015l.015-.017-.015.002Zm-.012-.1v-.015l-.015.017.015-.002Zm.477 0 .015.002-.015-.017V4.1Zm-.012.1-.015-.002.015.017V4.2Zm.036 0 .015.003-.015-.018V4.2Zm-.027.129-.015-.003.015.003Zm.072-.015.01-.01-.023.003.013.007Zm.006.099-.01-.01.01.01Zm-.012.102.004-.014-.004.014Zm.06-.078.01-.01-.024.006.014.004Zm.03.102.013.008.002-.004-.015-.004Zm-.004.007.012.008-.012-.008Zm-.014.167-.004.015h.004v-.015Zm.044-.084.015.003-.015-.003Zm0 0-.014-.002.014.002Zm0 0 .015.003-.014-.003Zm.007-.042.011-.01-.026.008.015.002Zm.03.159-.014-.006v.001l.014.005Zm-.028.056.013.007-.013-.007Zm.08.013.01-.01-.026.008.015.002Zm.02.18.012.008-.012-.008Zm-.025.037.012.009-.012-.009Zm.013.101.013-.008-.027.004.014.004Zm.015.132-.015-.002v.002h.015Zm-.036.062-.01-.011.01.01Zm-.048.088h-.015.015ZM5.167 4.68v-.015l-.015.015h.015Zm.035.045.014-.007-.014.007Zm.106-.012-.013.007v.001l.013-.008Zm-.012-.189.014-.005h-.028l.014.005Zm.081.054-.014.004.014-.004Zm-.028-.062.013-.008-.013.008Zm-.008-.157.015-.002-.029-.003.014.005Zm.066.039.015-.004-.015.004Zm-.015-.045-.014.006.014-.006Zm.006-.15.015-.004-.028-.003.013.007Zm.186-.213.004.014.011-.013-.015-.001Zm.111 0-.015.001.01.013.005-.014Zm.126.242h-.015.015Zm0 .007h-.015.015Zm.06-.036.013-.007-.028.003.015.004Zm.006.15.014.006-.014-.006Zm-.015.045-.014-.004.014.004Zm.066-.039.014-.005-.029.003.015.002Zm-.008.157-.013-.008.013.008Zm-.028.062.015.004-.015-.004Zm.081-.054.014-.005H5.97l.014.005Zm-.012.189.013.007-.013-.007Zm.106.014-.014-.007.014.007Zm.035-.044h.015l-.015-.015v.015Zm1.767-.716v-.015.015Zm-.069.126h-.015l.015.015v-.015Zm.135 0v.015l.015-.015h-.015ZM5.182 5.55v-.03h-.03v.03h.03Zm.93-.015h-.945v.03h.945v-.03Zm-.015-.015v.03h.03v-.03h-.03Zm1.338-.015H6.112v.03h1.323v-.03Zm.015.075v-.06h-.03v.06h.03Zm.873-.015h-.888v.03h.888v-.03Zm-.015-.045v.06h.03v-.06h-.03Zm1.341-.015H8.323v.03H9.65v-.03Zm.015.045v-.03h-.03v.03h.03Zm.93-.015h-.945v.03h.945v-.03Zm-.015-.015v.03h.03v-.03h-.03Zm.125-.015h-.11v.03h.11v-.03Zm.015 1.321V5.52h-.03v1.306h.03Zm-.015-.015h-5.7v.03h5.7v-.03ZM4.989 5.52v1.306h.03V5.52h-.03Zm.178-.015h-.163v.03h.163v-.03Zm-.163 1.306h-.302v.03h.302v-.03Zm-.317.015v.249h.03v-.249h-.03Zm.015.264h.69v-.03h-.69v.03Zm.675-.015v.005h.03v-.005h-.03Zm.015-.01h-.996v.03h.996v-.03Zm-1.011.015v.426h.03V7.08h-.03Zm.015.44h.996v-.03h-.996v.03Zm.981-.014v.004h.03v-.004h-.03Zm.015-.011H4.201v.03h1.191v-.03Zm-1.206.015v.375h.03V7.51h-.03Zm.015.39h7.36v-.03H4.2v.03Zm7.374-.015V7.51h-.03v.375h.03Zm-.015-.39h-1.194v.03h1.194v-.03Zm-1.179.015v-.004h-.03v.004h.03Zm-.015.01h1.002v-.03h-1.002v.03Zm1.017-.014V7.08h-.03v.426h.03Zm-.015-.441h-1.002v.03h1.002v-.03Zm-.987.015v-.005h-.03v.005h.03Zm-.015.01h.696v-.03h-.696v.03Zm.711-.015v-.249h-.03v.249h.03Zm-.015-.264h-.358v.03h.358v-.03Zm-.343.023v-.008h-.03v.008h.03Zm-5.715.015h5.7v-.03h-5.7v.03Zm-.015-.023v.008h.03v-.008h-.03Zm5.59-2.146v.84h.03v-.84h-.03Zm-.007.051a.224.224 0 0 1 .016-.03.025.025 0 0 1 .005-.005l.001-.001v-.03c-.015 0-.025.01-.031.02a.247.247 0 0 0-.018.033l.027.013Zm-.104.093c.03 0 .053-.015.07-.033.015-.019.026-.042.034-.06l-.027-.013a.235.235 0 0 1-.03.053.059.059 0 0 1-.047.023v.03Zm-.028-.12a.125.125 0 0 0-.021.074c0 .012.004.023.013.032.01.01.022.014.036.014v-.03c-.008 0-.012-.002-.014-.005-.003-.002-.005-.006-.006-.013a.095.095 0 0 1 .018-.055l-.026-.016Zm.011-.175a.216.216 0 0 1 .015.11.205.205 0 0 1-.026.067l.026.014a.235.235 0 0 0 .03-.077.243.243 0 0 0-.017-.124l-.028.01Zm-.081.045c-.004.013-.004.03.01.038a.03.03 0 0 0 .02.003.055.055 0 0 0 .017-.006.148.148 0 0 0 .062-.08l-.028-.01a.118.118 0 0 1-.048.064.024.024 0 0 1-.008.003c-.001 0 0 0 0 0 .005.003 0 .006.004-.004l-.03-.008Zm.029-.066c-.01.018-.022.039-.03.066l.03.008a.228.228 0 0 1 .026-.059l-.026-.015Zm.007-.144c.016.041.019.068.016.088a.155.155 0 0 1-.023.056l.026.015c.01-.02.022-.04.026-.067a.202.202 0 0 0-.017-.102l-.028.01Zm-.067.03c-.004.017-.003.033.004.045.004.006.01.011.016.014a.033.033 0 0 0 .02 0 .062.062 0 0 0 .035-.029.168.168 0 0 0 .02-.063l-.029-.004a.137.137 0 0 1-.016.052c-.007.011-.014.015-.017.016h-.002l-.001-.001c-.002-.003-.004-.01 0-.022l-.03-.008Zm.016-.046a.425.425 0 0 0-.016.046l.03.008c.004-.016.009-.03.014-.043l-.028-.011Zm-.005-.138c.017.035.022.059.021.079a.18.18 0 0 1-.016.059l.028.01c.009-.02.017-.042.018-.068a.191.191 0 0 0-.024-.094l-.027.014Zm-.062.029c0 .018.002.034.007.045a.035.035 0 0 0 .011.015.024.024 0 0 0 .022.004.037.037 0 0 0 .016-.012.092.092 0 0 0 .012-.02.324.324 0 0 0 .022-.064l-.03-.008a.291.291 0 0 1-.02.06.062.062 0 0 1-.007.013l-.003.002.006.001-.002-.003a.095.095 0 0 1-.004-.033h-.03Zm-.115-.235a.141.141 0 0 1 .1.092.443.443 0 0 1 .015.143h.03c0-.05 0-.106-.017-.153a.17.17 0 0 0-.12-.11l-.008.028Zm-.053-.089c.007 0 .013.003.018.01.006.006.01.015.014.025a.19.19 0 0 1 .01.04v.001l.015-.001.015-.002v-.004l-.002-.01a.215.215 0 0 0-.01-.034.11.11 0 0 0-.02-.036.054.054 0 0 0-.04-.019v.03Zm-.054.075.015.001v-.003a.233.233 0 0 1 .01-.038.084.084 0 0 1 .013-.026c.005-.006.01-.009.016-.009v-.03a.05.05 0 0 0-.039.02.113.113 0 0 0-.019.035.219.219 0 0 0-.01.044v.004l.014.002Zm-.111.242c0-.049 0-.097.015-.138.014-.04.042-.072.1-.09l-.008-.028a.17.17 0 0 0-.12.108c-.017.047-.017.1-.017.148h.03Zm0 .007v-.007h-.03v.007h.03Zm-.09-.032c.007.028.015.05.022.065a.096.096 0 0 0 .012.019c.005.005.01.01.017.012a.024.024 0 0 0 .021-.004.036.036 0 0 0 .011-.015.123.123 0 0 0 .007-.045h-.03a.095.095 0 0 1-.004.033l-.002.003a.007.007 0 0 1 .006 0l-.003-.003a.066.066 0 0 1-.008-.013.298.298 0 0 1-.02-.06l-.029.008Zm.023.14a.178.178 0 0 1-.016-.058c0-.02.004-.044.021-.08l-.026-.013a.19.19 0 0 0-.025.094c.001.026.01.048.018.069l.028-.011Zm.016.047-.016-.046-.028.01.015.044.029-.008Zm-.096-.033a.168.168 0 0 0 .021.063c.01.015.021.026.034.03a.033.033 0 0 0 .021-.001.032.032 0 0 0 .016-.014c.007-.012.008-.028.004-.045l-.03.008c.004.013.002.02 0 .022H9.87c-.003 0-.01-.004-.016-.015a.138.138 0 0 1-.017-.052l-.03.004Zm.036.147a.155.155 0 0 1-.023-.056.173.173 0 0 1 .016-.088l-.028-.01a.202.202 0 0 0-.017.102c.004.027.015.048.026.067l.026-.015Zm.03.066c-.008-.027-.02-.048-.03-.066l-.026.015a.23.23 0 0 1 .027.059l.029-.008Zm-.11-.045c.014.04.04.068.062.08a.054.054 0 0 0 .018.006.03.03 0 0 0 .019-.003c.014-.008.014-.025.01-.038l-.028.008c.002.01-.002.007.003.004.001 0 .002 0 0 0a.025.025 0 0 1-.008-.003.119.119 0 0 1-.048-.064l-.028.01Zm.04.177a.206.206 0 0 1-.027-.067.215.215 0 0 1 .015-.11l-.028-.01a.245.245 0 0 0-.016.124.235.235 0 0 0 .029.077l.026-.014Zm-.029.118a.047.047 0 0 0 .036-.014.051.051 0 0 0 .012-.032.139.139 0 0 0-.02-.072l-.026.014a.11.11 0 0 1 .016.056c0 .007-.002.011-.004.014-.002.002-.006.004-.014.004v.03Zm-.104-.09c.009.017.02.04.035.057a.09.09 0 0 0 .07.033v-.03a.06.06 0 0 1-.047-.022.229.229 0 0 1-.031-.052l-.027.013Zm-.022-.036h.001l.005.007c.005.006.01.016.016.028l.027-.013-.018-.033c-.006-.009-.016-.019-.03-.019v.03Zm.015.822v-.837h-.03v.837h.03Zm.93-.015h-.945v.03h.945v-.03Zm-3.159.03h.888v-.03h-.888v.03Zm-.015-.12v.105h.03v-.105h-.03Zm-.042-.078c.022.02.042.04.042.078h.03c0-.053-.03-.08-.052-.1l-.02.022Zm-.042-.072c0 .035.023.055.042.072l.02-.022c-.02-.018-.032-.03-.032-.05h-.03Zm.014-.14a.129.129 0 0 0-.014.044.3.3 0 0 0-.001.083.435.435 0 0 0 .001.014v.001l.015-.002.015-.002a.137.137 0 0 1-.002-.014.422.422 0 0 1 .002-.075.1.1 0 0 1 .01-.034l-.026-.014Zm.088.056c0 .01-.003.017-.006.021s-.006.005-.009.004c-.004 0-.01-.004-.02-.016a.197.197 0 0 1-.025-.061l-.03.008a.225.225 0 0 0 .03.07c.012.016.025.026.04.029a.039.039 0 0 0 .037-.015.064.064 0 0 0 .013-.04h-.03Zm-.081-.157c.03.044.05.075.063.1a.121.121 0 0 1 .018.057h.03a.15.15 0 0 0-.022-.071c-.014-.027-.035-.06-.064-.103l-.025.017ZM7.342 5l.015.024.025-.017-.015-.023L7.342 5Zm.021-.194a.22.22 0 0 0-.034.098.243.243 0 0 0 0 .053.09.09 0 0 0 .013.044l.024-.018a.062.062 0 0 1-.008-.029.214.214 0 0 1 .001-.046.192.192 0 0 1 .028-.084l-.024-.018Zm.078.129a.024.024 0 0 1-.016-.005.052.052 0 0 1-.013-.02.38.38 0 0 1-.022-.097l-.03.004c.006.045.013.08.024.105a.08.08 0 0 0 .023.031c.01.008.021.012.034.012v-.03Zm.027-.045c0 .02-.004.032-.009.038-.004.004-.01.007-.018.007v.03c.015 0 .03-.005.042-.019.01-.013.015-.032.015-.056h-.03Zm-.03-.084c.016.028.03.05.03.084h.03c0-.043-.018-.072-.035-.1l-.026.016Zm-.029-.055c.008.021.019.039.028.055l.026-.016a.31.31 0 0 1-.026-.05l-.028.011Zm.036-.175a.165.165 0 0 0-.036.175l.028-.01a.135.135 0 0 1 .03-.143l-.022-.022Zm.032.051a2.176 2.176 0 0 0-.006-.042l-.03.004.007.043.03-.005Zm0 0-.03.005.03-.005Zm.03.071c-.006 0-.01-.001-.011-.002-.002-.002-.004-.004-.006-.009a.273.273 0 0 1-.013-.06l-.03.005c.005.028.008.052.015.067.004.009.01.017.018.022a.05.05 0 0 0 .027.007v-.03Zm-.026-.143c.013.02.034.054.042.085a.07.07 0 0 1 .003.038c-.003.008-.01.016-.024.02l.01.03a.062.062 0 0 0 .042-.041.098.098 0 0 0-.002-.056c-.01-.035-.033-.072-.045-.092l-.026.016Zm-.005-.008.005.008.026-.015-.005-.009-.026.016Zm.043-.11-.012-.009v.001a.144.144 0 0 0-.008.012.29.29 0 0 0-.015.028.16.16 0 0 0-.013.038.06.06 0 0 0 .005.04l.026-.015c-.002-.004-.003-.01-.001-.02a.13.13 0 0 1 .01-.03.258.258 0 0 1 .019-.034v-.002h.001l-.012-.009Zm.056.064a.037.037 0 0 1-.013.002L7.559 4.5a.76.76 0 0 1-.025-.068l-.03.01.016.048a.11.11 0 0 0 .015.029.034.034 0 0 0 .024.014.063.063 0 0 0 .024-.004l-.008-.028Zm-.019-.077a.1.1 0 0 1 .031.054c.001.007 0 .013-.002.016-.001.003-.004.005-.01.006l.008.03a.044.044 0 0 0 .028-.021.055.055 0 0 0 .006-.034.13.13 0 0 0-.04-.073l-.02.022Zm.006-.12a.093.093 0 0 0-.028.059.082.082 0 0 0 .022.06l.022-.02a.052.052 0 0 1-.014-.039c0-.013.007-.027.02-.04l-.022-.02Zm.065.027c0 .007-.002.01-.004.011l-.003.001c-.006 0-.02-.009-.034-.036l-.026.014c.015.03.035.049.056.052a.033.033 0 0 0 .03-.01.048.048 0 0 0 .011-.03l-.03-.002Zm-.024-.128.024.132.03-.006-.024-.132-.03.006Zm.048-.018h-.033v.03h.033v-.03Zm-.027-.083.012.1.03-.004-.012-.1-.03.004Zm.492-.017h-.477v.03h.477v-.03Zm.003.117.012-.1-.03-.004-.012.1.03.004Zm.021-.017h-.036v.03h.036v-.03Zm-.012.147.027-.129-.03-.006-.027.129.03.006Zm.044-.025c-.014.028-.03.035-.037.036-.004 0-.005-.001-.006-.002 0-.001-.002-.004-.001-.01l-.03-.004a.04.04 0 0 0 .008.033c.008.009.019.013.03.012.023 0 .046-.019.062-.051l-.026-.014Zm.03.117c.034-.034.028-.086-.006-.12l-.022.02c.026.026.026.058.006.078l.022.022Zm-.02.076c-.005 0-.008-.003-.01-.006a.025.025 0 0 1-.001-.016.1.1 0 0 1 .03-.054l-.02-.022a.13.13 0 0 0-.04.073.055.055 0 0 0 .006.034c.006.01.016.017.028.02l.008-.029Zm.043-.067a.821.821 0 0 1-.026.067c-.002.003-.003.003-.004.003L8.183 4.5l-.008.028a.058.058 0 0 0 .025.003.035.035 0 0 0 .023-.014.117.117 0 0 0 .015-.03.851.851 0 0 0 .015-.047l-.028-.008Zm.059.11a.116.116 0 0 0-.011-.083.153.153 0 0 0-.023-.033l-.01.01-.012.01.002.002a.122.122 0 0 1 .017.024.086.086 0 0 1 .008.062l.029.008Zm-.007.011.005-.007-.026-.016-.004.007.025.016Zm-.022.145c-.014-.005-.02-.012-.023-.02a.071.071 0 0 1 .003-.04.38.38 0 0 1 .042-.085l-.025-.016c-.012.02-.035.057-.046.094a.1.1 0 0 0-.002.055c.005.02.02.034.043.04l.008-.028Zm.026-.072a.272.272 0 0 1-.013.06c-.002.005-.004.007-.006.009-.002 0-.005.002-.011.002v.03a.05.05 0 0 0 .027-.007.047.047 0 0 0 .018-.022c.007-.015.01-.039.014-.067l-.03-.005Zm0 0 .03.004-.03-.004Zm0 0 .03.005-.03-.005Zm.006-.042a2.17 2.17 0 0 0-.006.042l.03.005a2.1 2.1 0 0 1 .006-.043l-.03-.004Zm.059.167a.165.165 0 0 0-.033-.175l-.022.02a.135.135 0 0 1 .027.143l.028.012Zm-.03.057c.011-.016.023-.035.03-.058l-.028-.01a.251.251 0 0 1-.027.053l.026.015Zm-.029.081c0-.032.013-.054.03-.08l-.026-.016c-.016.026-.034.055-.034.096h.03Zm.03.045c-.009 0-.015-.003-.02-.008-.005-.006-.01-.017-.01-.037h-.03c0 .025.006.044.017.057a.055.055 0 0 0 .043.018v-.03Zm.051-.122a.372.372 0 0 1-.021.098.048.048 0 0 1-.014.02.025.025 0 0 1-.016.004v.03a.055.055 0 0 0 .034-.011.078.078 0 0 0 .023-.03.397.397 0 0 0 .024-.107l-.03-.004Zm.049.19a.099.099 0 0 0 .013-.044.25.25 0 0 0-.001-.055.219.219 0 0 0-.034-.098l-.024.018c.013.017.024.05.028.084a.221.221 0 0 1 .001.048.07.07 0 0 1-.008.03l.025.017Zm-.026.038.025-.038-.024-.016-.026.037.025.017Zm-.074.14a.11.11 0 0 1 .017-.052c.012-.023.031-.05.057-.088l-.025-.017c-.025.037-.045.066-.058.09a.138.138 0 0 0-.02.067h.029Zm.06-.052a.186.186 0 0 1-.024.06c-.009.013-.016.017-.02.017-.003.001-.006 0-.01-.004a.033.033 0 0 1-.006-.021h-.03c0 .016.005.03.013.04a.04.04 0 0 0 .038.015c.015-.003.029-.013.04-.03a.214.214 0 0 0 .029-.07l-.03-.007Zm.03.136.015.002v-.001a.312.312 0 0 0 .003-.051.18.18 0 0 0-.02-.09l-.026.016a.153.153 0 0 1 .016.074.383.383 0 0 1-.002.044v.003a.052.052 0 0 1 0 .001l.014.002Zm-.026.073c.018-.017.041-.038.041-.073h-.03c0 .02-.012.032-.031.05l.02.023Zm-.043.078c.001-.04.021-.058.043-.078l-.02-.022c-.023.02-.051.047-.053.098l.03.002Zm0 .104v-.105h-.03v.105h.03Zm-3.186-.84v.84h.03v-.84h-.03Zm.064.038c-.006-.012-.011-.024-.018-.033-.006-.01-.016-.02-.031-.02v.03h.001l.005.007c.005.007.01.016.016.029l.027-.013Zm.077.076a.059.059 0 0 1-.046-.023.236.236 0 0 1-.031-.053l-.027.013c.008.018.02.041.035.06a.088.088 0 0 0 .069.033v-.03Zm.002-.073c.013.02.019.04.018.055-.001.007-.003.01-.006.013-.002.003-.006.005-.014.005v.03a.049.049 0 0 0 .036-.014.051.051 0 0 0 .014-.032.125.125 0 0 0-.022-.073l-.026.016Zm-.013-.202a.245.245 0 0 0-.016.124.235.235 0 0 0 .029.077l.026-.014a.206.206 0 0 1-.026-.067.215.215 0 0 1 .015-.11l-.028-.01Zm.08.063c.003.01 0 .007.004.004.001 0 .002 0 0 0a.025.025 0 0 1-.008-.003.119.119 0 0 1-.048-.064l-.028.01c.014.04.04.068.062.08a.054.054 0 0 0 .018.006.03.03 0 0 0 .019-.003c.014-.008.014-.025.01-.038l-.028.008Zm-.026-.059a.23.23 0 0 1 .027.059l.029-.008c-.008-.027-.02-.048-.03-.066l-.026.015Zm-.009-.17a.202.202 0 0 0-.017.103c.004.027.015.048.026.067l.026-.015a.155.155 0 0 1-.023-.056.173.173 0 0 1 .016-.088l-.028-.01Zm.066.049c.003.013 0 .02 0 .022h-.004c-.003 0-.01-.004-.016-.015a.138.138 0 0 1-.017-.052l-.03.004a.168.168 0 0 0 .021.063c.01.015.021.026.034.03a.033.033 0 0 0 .021-.001.032.032 0 0 0 .016-.014c.007-.012.008-.028.004-.045l-.03.008Zm-.015-.043.015.043.029-.008-.016-.046-.028.01Zm.007-.163a.19.19 0 0 0-.025.094c.001.026.01.048.018.069l.028-.011a.178.178 0 0 1-.016-.06c0-.02.004-.044.021-.078l-.026-.014Zm.058.043a.095.095 0 0 1-.004.033l-.002.003a.007.007 0 0 1 .006 0l-.003-.003a.066.066 0 0 1-.008-.013.298.298 0 0 1-.02-.06l-.029.008c.007.028.015.05.022.065a.096.096 0 0 0 .012.019c.005.005.01.01.017.012a.024.024 0 0 0 .021-.004.036.036 0 0 0 .011-.015.123.123 0 0 0 .007-.045h-.03Zm.137-.263a.171.171 0 0 0-.12.11c-.017.047-.017.103-.017.153h.03c0-.052 0-.101.015-.143.014-.04.042-.074.1-.092l-.008-.028Zm.061-.091a.053.053 0 0 0-.04.019.11.11 0 0 0-.02.036.213.213 0 0 0-.012.047v.001a2.735 2.735 0 0 0 .03.003v-.003a.187.187 0 0 1 .01-.038.082.082 0 0 1 .014-.026c.006-.006.011-.009.018-.009v-.03Zm.054.105.015-.002a.225.225 0 0 0-.01-.048.113.113 0 0 0-.02-.036.05.05 0 0 0-.039-.019v.03c.006 0 .01.003.016.009.006.006.01.016.014.026a.197.197 0 0 1 .009.038v.003l.015-.001Zm.141.242c0-.048 0-.101-.017-.148a.17.17 0 0 0-.12-.108l-.008.028c.058.018.086.05.1.09.015.04.015.09.015.138h.03Zm0 .007v-.007h-.03v.007h.03Zm.03-.04a.297.297 0 0 1-.02.06.066.066 0 0 1-.007.013l-.003.002.006.001-.002-.003a.095.095 0 0 1-.004-.033h-.03c0 .018.002.034.007.045a.036.036 0 0 0 .011.015.024.024 0 0 0 .022.004.037.037 0 0 0 .016-.012.096.096 0 0 0 .012-.02.326.326 0 0 0 .022-.064l-.03-.008Zm.035.16c.008-.021.017-.043.018-.07a.19.19 0 0 0-.025-.093l-.026.014c.017.034.022.059.021.079 0 .02-.007.037-.016.059l.028.01Zm-.014.043a.386.386 0 0 1 .014-.043l-.028-.011-.015.046.029.008Zm.036-.045a.138.138 0 0 1-.016.052c-.007.011-.014.015-.017.016h-.002l-.001-.001c-.002-.003-.004-.01 0-.022l-.03-.008c-.004.017-.003.033.004.045.004.006.01.011.016.014a.033.033 0 0 0 .02 0 .062.062 0 0 0 .035-.029.168.168 0 0 0 .02-.063l-.029-.004Zm.02.166c.01-.02.022-.04.026-.067a.202.202 0 0 0-.017-.102l-.028.01c.016.041.019.068.016.088a.155.155 0 0 1-.023.056l.026.015Zm-.026.059a.23.23 0 0 1 .026-.059l-.026-.015c-.01.018-.022.039-.03.066l.03.008Zm.052-.063a.119.119 0 0 1-.048.064.025.025 0 0 1-.008.003c-.001 0 0 0 0 0 .005.003 0 .006.004-.004l-.03-.008c-.003.013-.003.03.011.038a.03.03 0 0 0 .02.003.054.054 0 0 0 .017-.006.148.148 0 0 0 .062-.08l-.028-.01Zm.015.201a.235.235 0 0 0 .03-.077.245.245 0 0 0-.017-.124l-.028.01c.017.048.019.083.015.11a.206.206 0 0 1-.026.067l.026.014Zm.002.074c-.008 0-.012-.002-.014-.004-.002-.003-.004-.007-.004-.014a.11.11 0 0 1 .016-.056l-.026-.014a.139.139 0 0 0-.02.072c0 .011.004.023.012.032.01.01.022.014.036.014v-.03Zm.077-.074a.229.229 0 0 1-.03.052.06.06 0 0 1-.047.022v.03a.09.09 0 0 0 .07-.033c.015-.018.026-.04.034-.058l-.027-.013Zm.05-.052c-.016 0-.026.01-.032.02-.006.008-.012.02-.018.032l.027.013a.217.217 0 0 1 .016-.028.026.026 0 0 1 .005-.006v-.001h.001v-.03Zm.014.852v-.837h-.03v.837h.03Zm-.96.015h.945v-.03h-.945v.03Zm2.711-1.583a.07.07 0 0 0-.052.026.13.13 0 0 0-.023.05.252.252 0 0 0-.008.06v.005h.03v-.001a.177.177 0 0 1 0-.017c.001-.011.003-.026.007-.04a.1.1 0 0 1 .017-.038.04.04 0 0 1 .03-.015v-.03Zm.067.141h.015v-.006a.294.294 0 0 0-.008-.06.13.13 0 0 0-.022-.05.064.064 0 0 0-.05-.025v.03c.01 0 .02.005.027.014a.1.1 0 0 1 .016.038.237.237 0 0 1 .007.058l.015.001Zm-.135.015h.135v-.03H7.81v.03Z"})),Rl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"CN_-_China_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#CN_-_China_svg__a)"},(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 0h16v12H0V0Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"M3.557 4.878 1.61 6.403l.744-2.307-1.299-1.2 1.758-.065.744-1.857.744 1.857h1.754L4.76 4.096l.59 2.307-1.793-1.525ZM7.508 3.086l-.817.493.187-.962-.68-.72.92-.04.39-.898.39.899h.92l-.68.759.205.962-.835-.493Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"m8.508 5.086-.817.493.187-.962-.68-.72.92-.04.39-.898.39.899h.92l-.68.759.205.962-.835-.493Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"m7.508 7.086-.817.493.187-.962-.68-.72.92-.04.39-.898.39.899h.92l-.68.759.205.962-.835-.493Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"m5.508 8.086-.817.493.187-.962-.68-.72.92-.04.39-.898.39.899h.92l-.68.759.205.962-.835-.493Z"}))),Fl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"CY_-_Cyprus_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#CY_-_Cyprus_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"CY_-_Cyprus_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#CY_-_Cyprus_svg__b)"},(0,n.createElement)("path",{fill:"#F57A01",d:"M12.284 2.38S9.643 3.839 9.31 3.93c-.332.093-.11.149-.683.112-.573-.037-1.7.206-1.958.04-.258-.167-.35-.462-.369.037-.019.498.388.923-.13.96-.516.037-.572-.444-.923-.148-.35.295-.646.96-.868.794-.221-.166-.535-.61-.443-.185.092.425.37 1.495 1.256 1.513.886.019 1.071-.295 1.108-.036.037.258.425.295.517-.037.092-.333.85.37 1.256.02.406-.351.739-.647.868-.85.13-.203.572-.166.997-.166.425 0 1.053.184.72-.222-.332-.406-.905-.59-.572-.997.332-.406 3.153-1.757 3.283-1.905.129-.148-.698-.702-1.085-.48Z"}),(0,n.createElement)("path",{fill:"url(#CY_-_Cyprus_svg__c)",d:"M12.284 2.38S9.643 3.839 9.31 3.93c-.332.093-.11.149-.683.112-.573-.037-1.7.206-1.958.04-.258-.167-.35-.462-.369.037-.019.498.388.923-.13.96-.516.037-.572-.444-.923-.148-.35.295-.646.96-.868.794-.221-.166-.535-.61-.443-.185.092.425.37 1.495 1.256 1.513.886.019 1.071-.295 1.108-.036.037.258.425.295.517-.037.092-.333.85.37 1.256.02.406-.351.739-.647.868-.85.13-.203.572-.166.997-.166.425 0 1.053.184.72-.222-.332-.406-.905-.59-.572-.997.332-.406 3.153-1.757 3.283-1.905.129-.148-.698-.702-1.085-.48Z"}),(0,n.createElement)("path",{fill:"#006B49",d:"M5.456 8.052c1.311 0 2.438 1.46 2.438 1.46.019.018.036.036.052.054L8 9.511s1.314-1.459 2.625-1.459-.944 2.124-2.403 2.124c0 0-.15-.014-.275-.076-.124.062-.274.076-.274.076-1.459 0-3.527-2.124-2.216-2.124Z"}),(0,n.createElement)("path",{fill:"url(#CY_-_Cyprus_svg__d)",d:"M5.456 8.052c1.311 0 2.438 1.46 2.438 1.46.019.018.036.036.052.054L8 9.511s1.314-1.459 2.625-1.459-.944 2.124-2.403 2.124c0 0-.15-.014-.275-.076-.124.062-.274.076-.274.076-1.459 0-3.527-2.124-2.216-2.124Z"}))),(0,n.createElement)("defs",null,(0,n.createElement)("linearGradient",{id:"CY_-_Cyprus_svg__c",x1:15,x2:15,y1:9,y2:1,gradientUnits:"userSpaceOnUse"},(0,n.createElement)("stop",{stopColor:"#EA5113"}),(0,n.createElement)("stop",{offset:1,stopColor:"#FC9B58"})),(0,n.createElement)("linearGradient",{id:"CY_-_Cyprus_svg__d",x1:11.019,x2:11.019,y1:10.176,y2:8.052,gradientUnits:"userSpaceOnUse"},(0,n.createElement)("stop",{stopColor:"#008057"}),(0,n.createElement)("stop",{offset:1,stopColor:"#00B77C"})))),Hl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"TL_-_Timor-Leste_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#TL_-_Timor-Leste_svg__a)"},(0,n.createElement)("path",{fill:"#E31D1C",stroke:"#F7FCFF",d:"M0-.5h-.5v13h17v-13H0Z"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"m0 0 12 6-12 6V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",fillRule:"evenodd",d:"m0 0 8 6-8 6V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"m3.324 7.204-1.01 1.05-.105-1.492L.92 5.968l1.343-.421.22-1.48.93 1.172 1.355-.363-.7 1.387.681 1.339-1.426-.398Z",clipRule:"evenodd"}))),bl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"GE_-_Georgia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#GE_-_Georgia_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"GE_-_Georgia_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fill:"#E31D1C",fillRule:"evenodd",clipRule:"evenodd",mask:"url(#GE_-_Georgia_svg__b)"},(0,n.createElement)("path",{d:"M7 0h2v5h7v2H9v5H7V7H0V5h7V0Z"}),(0,n.createElement)("path",{d:"M5 8.611 6.1 8.5v1S5 9.431 5 9.451c0 .02.1 1.049.1 1.049h-1l.08-1H3.1v-1l1.08.111L4.1 7.5h1L5 8.611ZM5 2.611 6.1 2.5v1S5 3.431 5 3.451c0 .02.1 1.049.1 1.049h-1l.08-1H3.1v-1l1.08.111L4.1 1.5h1L5 2.611ZM12 2.611l1.1-.111v1S12 3.431 12 3.451c0 .02.1 1.049.1 1.049h-1l.08-1H10.1v-1l1.08.111L11.1 1.5h1L12 2.611ZM12 8.611l1.1-.111v1S12 9.431 12 9.451c0 .02.1 1.049.1 1.049h-1l.08-1H10.1v-1l1.08.111L11.1 7.5h1L12 8.611Z"})))),Cl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"IN_-_India_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#IN_-_India_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"IN_-_India_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#IN_-_India_svg__b)"},(0,n.createElement)("path",{fill:"#FF8C1A",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#5EAA22",d:"M0 8v4h16V8H0Z"}),(0,n.createElement)("path",{fill:"#3D58DB",d:"M6 6a2 2 0 1 0 4 0 2 2 0 0 0-4 0Zm3.5 0a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z"}),(0,n.createElement)("path",{fill:"#3D58DB",d:"M7.997 6.43 7.58 7.967l.244-1.573-1.006 1.234.864-1.338-1.422.718 1.333-.871-1.59.078 1.572-.254-1.485-.575 1.54.407-1.123-1.13 1.24.999-.566-1.489.728 1.417L7.997 4l.089 1.59.727-1.417-.566 1.489 1.24-.998-1.122 1.13 1.54-.408-1.485.575 1.572.254-1.59-.078 1.332.871-1.421-.718.863 1.338L8.17 6.394l.244 1.573-.417-1.537Z"})))),Vl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"ID_-_Indonesia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#ID_-_Indonesia_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"ID_-_Indonesia_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#ID_-_Indonesia_svg__b)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0v6h16V0H0Z",clipRule:"evenodd"})))),Sl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"IR_-_Iran_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#IR_-_Iran_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"IR_-_Iran_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#IR_-_Iran_svg__b)"},(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{stroke:"#F7FCFF",strokeWidth:.5,d:"M.186 8.683H-.95M-.962 9.134v-.261h.37v.252h.374v-.252h-.194M.17 9.123h-.19v-.245h.397v-.2.445h.18v-.445M.759 8.704v.42H.573M2.138 8.683H1M.989 9.134v-.261h.37v.252h.374v-.252h-.194M2.155 9.123h-.188v-.245h.396v-.2.445h.18v-.445M2.745 8.704v.42H2.56M4.124 8.683H2.987M2.975 9.134v-.261h.37v.252h.374v-.252h-.194M4.106 9.123h-.188v-.245h.397v-.2.445h.18v-.445M4.696 8.704v.42H4.51M6.075 8.683H4.938M4.926 9.134v-.261h.37v.252h.374v-.252h-.194M6.058 9.123h-.189v-.245h.397v-.2.445h.18v-.445M6.648 8.704v.42H6.46M8.026 8.683H6.89M6.877 9.134v-.261h.37v.252h.374v-.252h-.194M8.044 9.123h-.189v-.245h.397v-.2.445h.18v-.445M8.634 8.704v.42h-.187M10.012 8.683H8.875M8.863 9.134v-.261h.37v.252h.375v-.252h-.194M10.03 9.123H9.84v-.245h.397v-.2.445h.18v-.445M10.62 8.704v.42h-.187M11.998 8.683h-1.137M10.85 9.134v-.261h.37v.252h.374v-.252H11.4M12.016 9.123h-.189v-.245h.397v-.2.445h.18v-.445M12.606 8.704v.42h-.187M13.984 8.683h-1.137M12.835 9.134v-.261h.37v.252h.375v-.252h-.194M13.967 9.123h-.188v-.245h.396v-.2.445h.18v-.445M14.557 8.704v.42h-.186M15.935 8.683H14.8M14.787 9.134v-.261h.37v.252h.374v-.252h-.194M16.023 9.123h-.189v-.245h.397v-.2.445h.18v-.445M.186 2.583H-.95M-.962 3.034v-.261h.37v.252h.374v-.252h-.194M.17 3.023h-.19v-.245h.397v-.2.445h.18v-.446M.759 2.604v.42H.573M2.138 2.583H1M.989 3.034v-.261h.37v.252h.374v-.252h-.194M2.155 3.023h-.188v-.245h.396v-.2.445h.18v-.446M2.745 2.604v.42H2.56M4.124 2.583H2.987M2.975 3.034v-.261h.37v.252h.374v-.252h-.194M4.106 3.023h-.188v-.245h.397v-.2.445h.18v-.446M4.696 2.604v.42H4.51M6.075 2.583H4.938M4.926 3.034v-.261h.37v.252h.374v-.252h-.194M6.058 3.023h-.189v-.245h.397v-.2.445h.18v-.446M6.648 2.604v.42H6.46M8.026 2.583H6.89M6.877 3.034v-.261h.37v.252h.374v-.252h-.194M8.044 3.023h-.189v-.245h.397v-.2.445h.18v-.446M8.634 2.604v.42h-.187M10.012 2.583H8.875M8.863 3.034v-.261h.37v.252h.375v-.252h-.194M10.03 3.023H9.84v-.245h.397v-.2.445h.18v-.446M10.62 2.604v.42h-.187M11.998 2.583h-1.137M10.85 3.034v-.261h.37v.252h.374v-.252H11.4M12.016 3.023h-.189v-.245h.397v-.2.445h.18v-.446M12.606 2.604v.42h-.187M13.984 2.583h-1.137M12.835 3.034v-.261h.37v.252h.375v-.252h-.194M13.967 3.023h-.188v-.245h.396v-.2.445h.18v-.446M14.557 2.604v.42h-.186M15.935 2.583H14.8M14.787 3.034v-.261h.37v.252h.374v-.252h-.194M16.023 3.023h-.189v-.245h.397v-.2.445h.18v-.446"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M7.303 4.125s.214.112.432.112c.22 0 .44-.112.44-.112v.15s-.241.112-.454.112c-.213 0-.418-.112-.418-.112v-.15Zm-1.575 1.77c0-.889 1.221-1.47 1.221-1.47s-.706.378-.706 1.433c0 1.055.367 1.512.367 1.512s-.882-.586-.882-1.475Zm4.119-.049c0-.889-1.22-1.421-1.22-1.421s.706.378.706 1.433c0 1.055-.367 1.512-.367 1.512s.881-.635.881-1.524Zm-3.285.243c-.047-.888.692-1.684.692-1.684s-.27.366-.214 1.42c.02.361.162.9.341 1.217v-2.58h.75v2.602c.18-.296.318-.802.338-1.169.055-1.053-.201-1.49-.201-1.49s.738.796.692 1.684c-.028.529-.435 1.088-.76 1.454.158.035.37.078.66.135.007.032-.058.03-.187.028a4.118 4.118 0 0 0-.65.028c-.133.136-.225.216-.225.216l-.037-.047c-.023.027-.037.047-.037.047s-.093-.08-.225-.216a4.118 4.118 0 0 0-.65-.028c-.13.003-.194.004-.188-.028.29-.057.502-.1.66-.135-.325-.366-.732-.925-.76-1.454Z",clipRule:"evenodd"})))),Al=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"IQ_-_Iraq_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#IQ_-_Iraq_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"IQ_-_Iraq_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#IQ_-_Iraq_svg__b)"},(0,n.createElement)("path",{fill:"#BF2714",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#009C4E",fillRule:"evenodd",d:"M2.668 6.406C3.123 7.058 2.5 7.5 2.5 7.5s.545 0 .753-.437h4.46V6.1s-.094-.463-.491-.463-.487.463-.487.463H5.167l1.517-1.34-.295-.26-1.685 1.488v.315h2.393v-.185s.013-.108.125-.108.084.108.084.108v.396H4.291v-.542l-.326.146v.396s-.4-.108-.653-.108c-.252 0-.267-.288-.267-.288l-.377.288Zm6.055.037.245.609h-.973V4.607l.41.132v1.704h.318Zm4.532 0 .245.609h-.973V4.607l.41.132v1.704h.319Zm-1.204-1.81-.254.171v1.637h-.258V5.128l-.425.245v1.068h-.286V5.7l-.323.208v.201s-.622.043-.622.922h2.165l.003-2.399Zm-8.305 2.85c.078 0 .142-.056.142-.125 0-.07-.064-.125-.142-.125-.078 0-.142.056-.142.125s.064.125.142.125Zm7.211-2.662c-.11.145-.443 0-.443 0l.946-.11c-.098.191-.503.11-.503.11Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#009C4E",d:"m2.5 7.5-.145-.204-.64.454H2.5V7.5Zm.168-1.094-.152-.199-.19.145.137.197.205-.143Zm.585.657v-.25h-.157l-.068.142.225.108Zm4.46 0v.25h.25v-.25h-.25Zm0-.963h.25v-.025l-.006-.025-.245.05Zm-.978 0v.25h.207l.039-.203-.246-.047Zm-1.568 0-.165-.188-.496.438h.661V6.1Zm1.517-1.34.166.188.212-.188-.212-.187-.166.187ZM6.39 4.5l.166-.187-.166-.146-.165.146.165.187ZM4.704 5.988 4.539 5.8l-.085.075v.113h.25Zm0 .315h-.25v.25h.25v-.25Zm2.393 0v.25h.25v-.25h-.25Zm0-.185-.249-.031-.001.015v.016h.25Zm.21 0-.243-.062-.008.03v.032h.25Zm0 .396v.25h.25v-.25h-.25Zm-3.016 0h-.25v.25h.25v-.25Zm0-.542h.25v-.386l-.352.158.102.228Zm-.326.146-.102-.229-.148.066v.163h.25Zm0 .396-.066.241.316.086v-.327h-.25Zm-.92-.396.25-.013-.025-.475-.377.289.152.199Zm5.923.934v.25h.37L9.2 6.958l-.232.094Zm-.245-.61.232-.093-.063-.156h-.169v.25Zm-.728.61h-.25v.25h.25v-.25Zm0-2.445.076-.238-.326-.104v.342h.25Zm.41.132h.25v-.183L8.481 4.5l-.076.239Zm0 1.704h-.25v.25h.25v-.25Zm5.095.609v.25h.37l-.138-.344-.232.094Zm-.245-.61.232-.093-.063-.156h-.168v.25Zm-.728.61h-.25v.25h.25v-.25Zm0-2.445.076-.238-.326-.104v.342h.25Zm.41.132h.25v-.183l-.173-.056-.077.239Zm0 1.704h-.25v.25h.25v-.25Zm-1.14-1.639-.14-.207-.11.074v.133h.25Zm.254-.172h.25v-.47l-.39.263.14.207Zm-.254 1.809v.25h.25v-.25h-.25Zm-.258 0h-.25v.25h.25v-.25Zm0-1.313h.25v-.433l-.375.217.125.216Zm-.425.245-.125-.216-.125.072v.144h.25Zm0 1.068v.25h.25v-.25h-.25Zm-.286 0h-.25v.25h.25v-.25Zm0-.741h.25v-.458l-.385.248.135.21Zm-.323.208-.136-.21-.114.073v.137h.25Zm0 .201.017.25.233-.017V6.11h-.25Zm-.622.922h-.25v.25h.25v-.25Zm2.165 0v.25h.25v-.25h-.25Zm-1.534-2.21-.03-.249-.923.108.853.37.1-.23Zm.443 0 .05-.245-.154-.031-.095.125.2.15Zm.503-.11.222.114.213-.416-.464.054.029.248ZM2.5 7.5l.145.204.002-.002a.278.278 0 0 0 .011-.008.885.885 0 0 0 .11-.097c.063-.064.144-.16.209-.285a.936.936 0 0 0 .107-.47 1.087 1.087 0 0 0-.21-.58l-.41.287c.089.128.117.233.12.313a.437.437 0 0 1-.052.221.669.669 0 0 1-.177.213l-.001.001h.001L2.5 7.5Zm.528-.545a.501.501 0 0 1-.31.253.842.842 0 0 1-.22.042H2.5a32.552 32.552 0 0 1 .001.5h.005a.723.723 0 0 0 .115-.009c.066-.008.158-.025.258-.059a1 1 0 0 0 .601-.512l-.451-.215Zm4.684-.142H3.253v.5h4.46v-.5Zm-.25-.713v.963h.5V6.1h-.5Zm-.24-.213c.082 0 .136.042.182.115a.525.525 0 0 1 .063.149.012.012 0 0 0 0-.001 31.831 31.831 0 0 1 .49-.1v-.004a.566.566 0 0 0-.008-.03.986.986 0 0 0-.122-.28.704.704 0 0 0-.605-.349v.5Zm-.487.213.246.048v.001l.001-.007A.482.482 0 0 1 7.042 6c.045-.073.098-.114.18-.114v-.5a.7.7 0 0 0-.605.35 1.018 1.018 0 0 0-.127.315l.245.048Zm-1.568.25h1.568v-.5H5.167v.5ZM6.52 4.573l-1.517 1.34.33.374 1.518-1.34-.331-.374Zm-.295.114.295.26.33-.374-.294-.26-.331.374ZM4.869 6.175l1.686-1.488-.331-.374L4.539 5.8l.33.375Zm.085.128v-.315h-.5v.315h.5Zm2.143-.25H4.704v.5h2.393v-.5Zm-.25.065v.185h.5v-.185h-.5Zm.375-.358a.366.366 0 0 0-.361.27.381.381 0 0 0-.011.047v.005l-.001.002v.002l.248.032.248.03v.004a.152.152 0 0 1-.005.02.105.105 0 0 1-.013.027.135.135 0 0 1-.105.061v-.5Zm.084.358a25.223 25.223 0 0 0 .243.06v-.003a.237.237 0 0 0 .004-.018.38.38 0 0 0-.005-.158.317.317 0 0 0-.114-.17.345.345 0 0 0-.212-.069v.5a.157.157 0 0 1-.092-.035.183.183 0 0 1-.066-.097.14.14 0 0 1 0-.07v-.001l.242.06Zm.25.396v-.396h-.5v.396h.5Zm-3.265.25h3.015v-.5H4.291v.5Zm-.25-.792v.542h.5v-.542h-.5Zm.026.374.326-.146-.204-.456-.326.145.204.457Zm.148.168v-.396h-.5v.396h.5Zm-.903.142c.1 0 .242.022.37.049a4.344 4.344 0 0 1 .217.05 221.104 221.104 0 0 1 .131-.482h-.001l-.004-.002a2.78 2.78 0 0 0-.067-.017 4.842 4.842 0 0 0-.174-.039 2.526 2.526 0 0 0-.472-.06v.5Zm-.267-.538-.25.013a.152.152 0 0 1 0 .01.543.543 0 0 0 .01.07c.009.041.024.1.054.16a.49.49 0 0 0 .453.285v-.5c-.012 0-.008-.003 0 .003.004.003.001.003-.004-.007a.16.16 0 0 1-.014-.05V6.1v.003l-.25.014Zm-.225.486.377-.288-.304-.397-.377.288.304.397Zm6.38.354-.245-.609-.464.187.245.609.464-.187Zm-1.205.344h.973v-.5h-.973v.5Zm-.25-2.695v2.445h.5V4.607h-.5ZM8.48 4.5l-.41-.13-.152.475.41.132.152-.477Zm.174 1.943V4.739h-.5v1.704h.5Zm.068-.25h-.318v.5h.318v-.5Zm5.009.765-.244-.609-.464.187.244.609.464-.187Zm-1.205.344h.973v-.5h-.973v.5Zm-.25-2.695v2.445h.5V4.607h-.5Zm.737-.107-.41-.13-.153.475.41.132.153-.477Zm.173 1.943V4.739h-.5v1.704h.5Zm.069-.25h-.319v.5h.319v-.5ZM11.936 5.01l.254-.171-.28-.415-.254.172.28.414Zm.11 1.43V4.804h-.5v1.637h.5Zm-.508.25h.258v-.5h-.258v.5Zm-.25-1.563v1.313h.5V5.128h-.5Zm-.05.462.425-.245-.25-.433-.425.245.25.433Zm.125.851V5.373h-.5v1.068h.5Zm-.536.25h.286v-.5h-.286v.5Zm-.25-.991v.741h.5V5.7h-.5Zm.062.418.323-.208-.27-.42-.324.208.271.42Zm.115-.009v-.201h-.5v.201h.5Zm-.622.922c0-.372.127-.526.214-.593a.418.418 0 0 1 .173-.079h.007-.004l-.018-.25-.018-.25h-.003a.26.26 0 0 0-.015.002.615.615 0 0 0-.134.03.917.917 0 0 0-.295.152c-.224.174-.407.482-.407.988h.5Zm1.915-.25H9.883v.5h2.165v-.5Zm-.247-2.149-.003 2.4h.5l.003-2.4h-.5ZM3.638 7.358c0-.046.02-.08.043-.1a.1.1 0 0 1 .065-.025v.5c.186 0 .392-.14.392-.375h-.5Zm.108.125a.1.1 0 0 1-.065-.026.132.132 0 0 1-.043-.1h.5c0-.235-.206-.374-.392-.374v.5Zm.108-.125c0 .045-.021.08-.043.099a.1.1 0 0 1-.065.026v-.5c-.186 0-.392.14-.392.375h.5Zm-.108-.125a.1.1 0 0 1 .065.026c.022.019.043.053.043.099h-.5c0 .235.206.375.392.375v-.5Zm6.768-2.412-.1.23h.003l.005.002a.574.574 0 0 0 .064.025c.04.013.098.031.162.043a.71.71 0 0 0 .23.008.418.418 0 0 0 .278-.157l-.398-.302c.025-.034.055-.036.048-.035a.23.23 0 0 1-.066-.006.668.668 0 0 1-.12-.035l-.007-.002-.1.229Zm.917-.358-.946.11.057.496.947-.11-.058-.496Zm-.474.358-.049.245h.003a.271.271 0 0 0 .023.005 1.303 1.303 0 0 0 .246.016.788.788 0 0 0 .247-.044.459.459 0 0 0 .255-.218l-.445-.228c.014-.026.031-.028.016-.023a.302.302 0 0 1-.089.014.787.787 0 0 1-.157-.012h-.001l-.049.245Z"})))),Ul=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"IL_-_Isreal_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#IL_-_Isreal_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"IL_-_Isreal_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fill:"#3D58DB",fillRule:"evenodd",clipRule:"evenodd",mask:"url(#IL_-_Isreal_svg__b)"},(0,n.createElement)("path",{d:"M0 2v1.783h16V2H0ZM0 8.174V10h16V8.174H0Z"}),(0,n.createElement)("path",{d:"M5.69 7.47h4.69L8.057 3.46 5.691 7.47Zm3.735-.55H6.654l1.4-2.371 1.371 2.37Z"}),(0,n.createElement)("path",{d:"M5.546 4.463h4.794L8.068 8.485 5.546 4.463Zm3.852.55H6.54L8.043 7.41l1.355-2.398Z"})))),xl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"JP_-_Japan_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#JP_-_Japan_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"JP_-_Japan_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#JP_-_Japan_svg__b)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M8 9.75a3.75 3.75 0 1 0 0-7.5 3.75 3.75 0 0 0 0 7.5Z",clipRule:"evenodd"})))),Tl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"JO_-_Jordan_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#JO_-_Jordan_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"JO_-_Jordan_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#JO_-_Jordan_svg__b)"},(0,n.createElement)("path",{fill:"#272727",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#093",d:"M0 8v4h16V8H0Z"})),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0v12l10-6L0 0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"JO_-_Jordan_svg__c",width:10,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12l10-6L0 0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#JO_-_Jordan_svg__c)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"m4.5 6.935-.934.565.213-1.102L3 5.573l1.055-.044L4.5 4.5l.446 1.029H6l-.777.87.234 1.101-.956-.565Z",clipRule:"evenodd"})))),Dl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"KZ_-_Kazakhstan_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#KZ_-_Kazakhstan_svg__a)"},(0,n.createElement)("path",{fill:"#4EC7EE",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"KZ_-_Kazakhstan_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#KZ_-_Kazakhstan_svg__b)"},(0,n.createElement)("path",{fill:"#FFE402",d:"M2.045 11.618c-.032.236.119.403.371.51.34.145.682.01.997-.34l-.408-.368c-.14.155-.241.215-.32.214.154-.11.35-.244.588-.404l.115-.166c.092-.395-.194-.608-.63-.608-.257 0-.463.05-.593.16-.214.18-.177.466.048.615a.593.593 0 0 0 .054.032c-.126.107-.203.217-.222.355Z"}),(0,n.createElement)("path",{stroke:"#FFE402",strokeWidth:.55,d:"M2.282 11.248s.063-.139.032-.21"}),(0,n.createElement)("path",{fill:"#FFE402",d:"M4.285 11.618c.032.236-.119.403-.372.51-.339.145-.681.01-.997-.34l.409-.368c.14.155.24.215.319.214-.153-.11-.349-.244-.587-.404l-.115-.166c-.092-.395.194-.608.63-.608.257 0 .462.05.593.16.214.18.177.466-.048.615a.593.593 0 0 1-.054.032c.126.107.203.217.222.355Z"}),(0,n.createElement)("path",{fill:"#FFE402",d:"m4.298 11.135-.501.226c-.07-.156-.092-.298-.033-.433l.504.219c.017-.04.017-.04.03-.012ZM2.045.382c-.032-.235.119-.403.371-.51.34-.145.682-.01.997.34L3.005.58c-.14-.155-.241-.215-.32-.214.154.11.35.244.588.404l.115.166c.092.395-.194.608-.63.608-.257 0-.463-.05-.593-.16-.214-.18-.177-.466.048-.615a.582.582 0 0 1 .054-.032C2.141.631 2.064.52 2.045.382Z"}),(0,n.createElement)("path",{fill:"#FFE402",d:"M4.285.382c.032-.235-.119-.403-.372-.51-.339-.145-.681-.01-.997.34l.409.368c.14-.155.24-.215.319-.214-.153.11-.349.244-.587.404l-.115.166c-.092.395.194.608.63.608.257 0 .462-.05.593-.16.214-.18.177-.466-.048-.615a.582.582 0 0 0-.054-.032c.126-.106.203-.217.222-.355Z"}),(0,n.createElement)("path",{fill:"#FFE402",fillRule:"evenodd",d:"M2.547 10.031c-.316.01-.512.075-.512.379 0 .335.326.44.673.44.314 0 .667-.195.667-.544 0-.212-.27-.64-.95-1.57-.023-.021-.036-.033-.046-.033a.437.437 0 0 1 .21-.05c.033 0 .076.017.119.039v.364h.72v-.275c0-.31-.46-.678-.84-.678-.331 0-.598.158-.733.385-.133.225-.031.44.16.611.285.393.506.718.645.932h-.113Zm.034.254a.454.454 0 0 1-.029-.007c.007.007.033.038.033.132a.884.884 0 0 1-.006.112.264.264 0 0 1-.05-.335l.001-.002-.01-.02.004-.003c.016-.008.03-.015.006.023l.05.1Zm-.029-.007-.01-.003c.002 0 .003 0 .005.002h.005Zm.273.028c0-.01-.003-.015-.008-.018l.003.004a.049.049 0 0 1 .005.014Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFE402",fillRule:"evenodd",d:"M3.783 10.031c.315.01.512.075.512.379 0 .335-.326.44-.673.44-.314 0-.668-.195-.668-.544 0-.212.27-.64.95-1.57.024-.021.037-.033.047-.033a.437.437 0 0 0-.21-.05.299.299 0 0 0-.119.039v.364h-.72v-.275c0-.31.46-.678.84-.678.331 0 .597.158.732.385.134.225.032.44-.16.611-.285.393-.506.718-.644.932h.113Zm-.034.254a.454.454 0 0 0 .029-.007c-.007.007-.033.038-.033.132 0 .05.002.087.005.112a.264.264 0 0 0 .051-.335l-.001-.002.01-.02-.004-.003c-.016-.008-.03-.015-.006.023l-.051.1Zm.029-.007.01-.003a.022.022 0 0 0-.005.002h-.005Zm-.274.028c0-.01.004-.015.01-.018l-.004.004a.049.049 0 0 0-.006.014Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFE402",fillRule:"evenodd",d:"M2.547 6.677c-.316-.009-.512-.074-.512-.378 0-.335.326-.44.673-.44.314 0 .667.195.667.544 0 .212-.27.64-.95 1.57-.023.021-.036.032-.046.033.04.022.113.05.21.05a.299.299 0 0 0 .119-.039v-.364h.72v.275c0 .31-.46.677-.84.677-.331 0-.598-.157-.733-.384-.133-.225-.031-.44.16-.611.285-.393.506-.718.645-.932h-.113Zm.034-.253a.461.461 0 0 0-.029.007c.007-.007.033-.038.033-.132a.884.884 0 0 0-.006-.112.264.264 0 0 0-.05.334l.001.003-.01.02.004.003c.016.008.03.015.006-.023l.05-.1Zm-.029.007-.01.003a.017.017 0 0 0 .005-.002l.005-.001Zm.273-.028c0 .01-.003.015-.008.018l.003-.004a.05.05 0 0 0 .005-.014Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFE402",fillRule:"evenodd",d:"M3.783 6.677c.315-.009.512-.074.512-.378 0-.335-.326-.44-.673-.44-.314 0-.668.195-.668.544 0 .212.27.64.95 1.57.024.021.037.032.047.033a.437.437 0 0 1-.21.05.299.299 0 0 1-.119-.039v-.364h-.72v.275c0 .31.46.677.84.677.331 0 .597-.157.732-.384.134-.225.032-.44-.16-.611a22.959 22.959 0 0 1-.644-.932h.113Zm-.034-.253.029.007c-.007-.007-.033-.038-.033-.132 0-.05.002-.087.005-.112a.264.264 0 0 1 .051.334l-.001.003.01.02-.004.003c-.016.008-.03.015-.006-.023l-.051-.1Zm.029.007.01.003a.017.017 0 0 1-.005-.002l-.005-.001Zm-.274-.028c0 .01.004.015.01.018l-.004-.004a.049.049 0 0 1-.006-.014Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFE402",fillRule:"evenodd",d:"M2.547 5.323c-.316.009-.512.074-.512.378 0 .335.326.44.673.44.314 0 .667-.195.667-.544 0-.212-.27-.64-.95-1.57-.023-.021-.036-.032-.046-.033a.437.437 0 0 1 .21-.05c.033 0 .076.017.119.039v.364h.72v-.275c0-.31-.46-.677-.84-.677-.331 0-.598.157-.733.384-.133.225-.031.44.16.611.285.393.506.718.645.932h-.113Zm.034.253a.469.469 0 0 1-.029-.007c.007.007.033.038.033.132a.884.884 0 0 1-.006.112.264.264 0 0 1-.05-.334l.001-.003-.01-.02.004-.003c.016-.008.03-.015.006.023l.05.1Zm-.029-.007-.01-.003.005.002.005.001Zm.273.028c0-.01-.003-.015-.008-.018l.003.004a.05.05 0 0 1 .005.014Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFE402",fillRule:"evenodd",d:"M3.783 5.323c.315.009.512.074.512.378 0 .335-.326.44-.673.44-.314 0-.668-.195-.668-.544 0-.212.27-.64.95-1.57.024-.021.037-.032.047-.033a.437.437 0 0 0-.21-.05.299.299 0 0 0-.119.039v.364h-.72v-.275c0-.31.46-.677.84-.677.331 0 .597.157.732.384.134.225.032.44-.16.611-.285.393-.506.718-.644.932h.113Zm-.034.253a.469.469 0 0 0 .029-.007c-.007.007-.033.038-.033.132 0 .05.002.087.005.112a.264.264 0 0 0 .051-.334L3.8 5.476l.01-.02-.004-.003c-.016-.008-.03-.015-.006.023l-.051.1Zm.029-.007.01-.003a.017.017 0 0 0-.005.002l-.005.001Zm-.274.028c0-.01.004-.015.01-.018l-.004.004a.049.049 0 0 0-.006.014Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFE402",fillRule:"evenodd",d:"M2.547 1.968c-.316-.009-.512-.074-.512-.378 0-.335.326-.44.673-.44.314 0 .667.195.667.544 0 .212-.27.64-.95 1.57-.023.021-.036.033-.046.033.04.023.113.05.21.05a.299.299 0 0 0 .119-.039v-.364h.72v.275c0 .31-.46.678-.84.678-.331 0-.598-.158-.733-.385-.133-.225-.031-.44.16-.611.285-.393.506-.718.645-.932h-.113Zm.034-.253a.469.469 0 0 0-.029.007c.007-.007.033-.038.033-.132a.884.884 0 0 0-.006-.112.264.264 0 0 0-.05.335l.001.002-.01.02.004.003c.016.008.03.015.006-.023l.05-.1Zm-.029.007-.01.003a.017.017 0 0 0 .005-.002h.005Zm.273-.028c0 .01-.003.015-.008.018l.003-.004a.05.05 0 0 0 .005-.014Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFE402",fillRule:"evenodd",d:"M3.783 1.968c.315-.009.512-.074.512-.378 0-.335-.326-.44-.673-.44-.314 0-.668.195-.668.544 0 .212.27.64.95 1.57.024.021.037.033.047.033a.437.437 0 0 1-.21.05.299.299 0 0 1-.119-.039v-.364h-.72v.275c0 .31.46.678.84.678.331 0 .597-.158.732-.385.134-.225.032-.44-.16-.611a22.959 22.959 0 0 1-.644-.932h.113Zm-.034-.253.029.007c-.007-.007-.033-.038-.033-.132 0-.05.002-.087.005-.112a.264.264 0 0 1 .051.335l-.001.002.01.02-.004.003c-.016.008-.03.015-.006-.023l-.051-.1Zm.029.007.01.003a.017.017 0 0 1-.005-.002h-.005Zm-.274-.028c0 .01.004.015.01.018l-.004-.004a.049.049 0 0 1-.006-.014ZM9.493 1.392l.205.764s.003.174-.194.174c-.196 0-.205-.174-.205-.174l.194-.764Zm1.732 2.918c0 .994-.759 1.8-1.695 1.8s-1.695-.806-1.695-1.8.76-1.8 1.695-1.8c.936 0 1.695.806 1.695 1.8Zm-.934-2 .027-.79-.41.673s-.04.17.147.227c.187.057.236-.11.236-.11Zm.78-.416-.258.748s-.095.145-.258.036c-.162-.11-.073-.26-.073-.26l.588-.524Zm.147 1.228.465-.64-.716.33s-.129.116-.005.269c.123.152.256.04.256.04Zm.888.117-.64.465s-.161.064-.232-.119a.19.19 0 0 1 .089-.254l.783-.092Zm-.562 1.102.748-.257-.776-.141s-.172.021-.159.217c.014.196.187.181.187.181Zm.686.607-.79.028s-.17-.037-.125-.228c.044-.191.215-.162.215-.162l.7.362Zm-1.067.603.764.204-.564-.55s-.155-.079-.253.091c-.098.17.053.255.053.255Zm.245.883-.67-.42s-.12-.124.023-.258.269-.014.269-.014l.378.692Zm-1.207-.107.52.597-.16-.772S10.476 6 10.3 6.086c-.177.086-.099.24-.099.24Zm-.277.854-.321-.722s-.03-.171.164-.202c.193-.03.23.14.23.14l-.073.784ZM9 6.396l.082.787.312-.724s.018-.173-.176-.204c-.194-.03-.218.141-.218.141Zm-.715.532.151-.776s.074-.157.25-.071c.176.086.11.246.11.246l-.51.601Zm-.318-1.186-.371.699.663-.426s.111-.134-.032-.268c-.143-.133-.26-.005-.26-.005Zm-.892.022.559-.56s.149-.088.247.081a.19.19 0 0 1-.047.266l-.76.213Zm.392-1.178-.698.372.788.018s.167-.049.123-.24c-.045-.191-.213-.15-.213-.15Zm-.763-.493.777-.15s.173.01.16.205c-.014.195-.188.193-.188.193l-.749-.248Zm.97-.762-.786-.083.643.456s.165.053.236-.13c.07-.183-.093-.243-.093-.243Zm-.367-.841.723.321s.136.108.013.26c-.124.152-.265.05-.265.05l-.47-.631Zm1.208-.071-.597-.52.266.743s.105.138.268.029c.162-.11.063-.252.063-.252Zm.154-.896.42.67s.052.166-.135.223c-.188.057-.248-.106-.248-.106l-.037-.787Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFE402",d:"m5.774 4 .721.073c-.346 2.347.588 3.404 3.019 3.404 2.46 0 3.6-1.105 3.6-3.477 0 0 .512-.029.507.073-.11 2.73-1.281 4.481-4.179 4.481-3.036 0-4.104-1.598-3.668-4.554Z"}),(0,n.createElement)("path",{fill:"#FFE402",d:"m5.99 5.4.68.073c-.326 2.347.556 3.404 2.851 3.404 2.324 0 3.4-1.105 3.4-3.477 0 0 .484-.03.48.073-.104 2.73-1.21 4.481-3.947 4.481-2.867 0-3.877-1.598-3.465-4.554Z"})))),Ll=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"KW_-_Kuwait_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#KW_-_Kuwait_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"KW_-_Kuwait_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#KW_-_Kuwait_svg__b)"},(0,n.createElement)("path",{fill:"#093",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 8v4h16V8H0Z"})),(0,n.createElement)("path",{fill:"#272727",fillRule:"evenodd",d:"M0 0v12l6-4V4L0 0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"KW_-_Kuwait_svg__c",width:6,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12l6-4V4L0 0Z",clipRule:"evenodd"})))),Ol=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"KG_-_Kyrgyzstan_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#KG_-_Kyrgyzstan_svg__a)"},(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"KG_-_Kyrgyzstan_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#KG_-_Kyrgyzstan_svg__b)"},(0,n.createElement)("path",{fill:"#FFDC17",fillRule:"evenodd",d:"M7.991 8.933c.054 0 .107-.001.16-.004l.308.984.072-1.028c.103-.018.204-.042.304-.071l.529.887-.17-1.017a2.99 2.99 0 0 0 .279-.14l.721.743-.402-.952a2.99 2.99 0 0 0 .239-.198l.875.557-.612-.834a2.95 2.95 0 0 0 .186-.247l.98.342-.788-.671c.046-.092.087-.187.124-.284l1.033.109-.923-.473c.023-.1.04-.201.054-.305l1.03-.13-1.008-.249a2.98 2.98 0 0 0-.018-.309l.972-.362L10.9 5.27a2.926 2.926 0 0 0-.09-.298l.86-.574-1.01.226a2.965 2.965 0 0 0-.157-.27l.703-.755-.93.452a3.002 3.002 0 0 0-.216-.227l.508-.895-.8.651a2.999 2.999 0 0 0-.262-.172l.286-.986-.626.815a2.985 2.985 0 0 0-.296-.107l.049-1.023-.42.936a3.019 3.019 0 0 0-.313-.037L7.995 2l-.19 1.006a3.022 3.022 0 0 0-.315.035l-.418-.934.049 1.02c-.102.031-.202.067-.299.108l-.624-.813.285.982c-.091.053-.18.111-.265.173l-.796-.648.505.89c-.076.073-.149.149-.217.23l-.926-.45.699.75c-.058.089-.11.18-.159.273l-1.005-.224.855.57a2.925 2.925 0 0 0-.091.302l-1.03.01.965.36A2.975 2.975 0 0 0 5 5.955l-1.001.247 1.023.13c.013.104.032.207.055.309l-.917.469L5.187 7c.037.098.079.194.125.287l-.784.667.976-.34c.058.086.121.17.188.25l-.609.83.871-.556c.077.071.157.138.241.2l-.4.948.72-.74c.09.051.183.098.28.14L6.625 9.7l.529-.885c.1.028.201.052.305.07l.071 1.027.308-.983.153.003Zm2.25-2.975a2.259 2.259 0 0 1-2.268 2.25 2.259 2.259 0 0 1-2.268-2.25 2.259 2.259 0 0 1 2.268-2.25 2.259 2.259 0 0 1 2.268 2.25ZM7.988 7.709a1.715 1.715 0 0 0 1.574-2.396c-.61.043-1.075.27-1.384.502L7.932 6l-.229-.198c-.22-.19-.643-.404-1.294-.477a1.715 1.715 0 0 0 1.579 2.384ZM6.75 4.807a1.71 1.71 0 0 1 1.237-.527c.478 0 .91.196 1.222.512-.49.057-.905.18-1.242.37-.3-.172-.706-.289-1.217-.355Z",clipRule:"evenodd"})))),Nl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"LA_-_Laos_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#LA_-_Laos_svg__a)"},(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 8h16v4H0V8Z"}),(0,n.createElement)("path",{fill:"#2E42A5",d:"M0 4h16v4H0V4Z"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 0h16v4H0V0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M8 7.87a1.875 1.875 0 1 0 0-3.75 1.875 1.875 0 0 0 0 3.75Z"}))),Bl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"LB_-_Lebanon_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#LB_-_Lebanon_svg__a)"},(0,n.createElement)("path",{fill:"#F50101",d:"M16 0H0v3h16V0Zm0 9H0v3h16V9Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 3h16v6H0V3Z"}),(0,n.createElement)("path",{fill:"#52AB0B",d:"M10.757 6.257c.038.433-1.563-.18-1.563-.007 0 .174 1.715.479 1.712.868-.003.388-2.033-.111-1.578.063.455.175 1.433.594 1.322.854-.238.557-1.813-.386-1.944-.2-.212.3 1.162 1 1.15 1.066-.022.128-.938-.201-1.15.065-.172-.049-.252-.28-.305-.311l-.339-4.362s.304 4.107-.084 4.225c-.388.118-1.466.477-1.497.298-.012-.067 1.298-.681 1.086-.98-.156-.222-1.736.562-1.836.108-.45-.324 1.454-.604 1.454-.935 0-.331-1.741.392-1.533-.069.208-.46 1.602-.626 1.628-.69.048-.116-1.55.182-1.55 0 0-.344.957-.411 1.55-.72.035-.354-1.44.347-1.55.064-.109-.283 1.886-1.016 1.837-1.074-.077-.09-1.685.317-1.42.104.515-.415 1.52-.98 1.75-1.13 0 0 .028-.057.058-.038l.063-.04s0 .355-.005.078c-.005-.277 2.355.935 2.382 1.243.03.359-1.459-.27-1.424.082.303.188 1.164.55 1.52.71.161.073-1.189-.153-1.16-.042.072.282 1.388.317 1.426.77Z"}))),zl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MO_-_Macao_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#MO_-_Macao_svg__a)"},(0,n.createElement)("path",{fill:"#1C9975",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"MO_-_Macao_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#MO_-_Macao_svg__b)"},(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"m8.01 3.427-.816.493.186-.962-.68-.72.921-.04.39-.898.39.899h.92l-.68.759.205.962-.835-.493ZM5.691 3.792l-.505.305.115-.595-.42-.445.57-.024.24-.556.241.556h.569l-.42.47.127.594-.517-.305ZM10.29 3.792l-.504.305.115-.595-.42-.445.569-.024.24-.556.242.556h.568l-.42.47.127.594-.516-.305ZM4.383 4.805l-.405.245.092-.477-.337-.358.457-.02.193-.445.194.446h.456l-.337.377.102.477-.415-.245ZM11.78 4.805l-.405.245.092-.477-.337-.358.457-.02.193-.445.194.446h.456l-.337.377.102.477-.415-.245Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"MO_-_Macao_svg__c",width:8,height:8,x:4,y:3,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M8 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#MO_-_Macao_svg__c)"},(0,n.createElement)("path",{fill:"#F7FCFF",d:"M6.31 11.64H4.358V9.01h1.949c.69-.01 1.194-.207 1.531-.586l.168-.189.187.17c.45.407.899.605 1.353.605h2.152v2.63H9.546c-.522 0-1.026-.197-1.508-.582-.426.379-1.006.571-1.728.581Z"})),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M8.017 3.804s-.854.844-.854 2.002c0 .248.04.482.1.697-.275-.61-.294-1.271-.056-1.993l-.323-.106c-.242.734-.243 1.424-.003 2.063a4.106 4.106 0 0 0-1.654-.564l-.037.338a3.76 3.76 0 0 1 1.451.48 2.69 2.69 0 0 0-.34-.112c-1.082-.276-2.143.116-2.143.116S4.77 8.098 5.955 8.3c.06.01.118.018.176.024h-.01c-.565 0-1.09-.231-1.582-.7l-.235.246c.553.527 1.16.795 1.818.795.642 0 1.24-.256 1.784-.76.088-.054.14-.091.147-.097l.022.018-.017.03s.054.032.15.078c.54.417 1.213.73 1.746.73.657 0 1.265-.267 1.818-.794l-.235-.246c-.492.469-1.018.7-1.583.7-.207 0-.409-.033-.608-.1.278.015.585-.01.902-.107 1.167-.357 1.654-1.437 1.654-1.437s-.621-.335-1.41-.339c.176-.045.36-.079.553-.1l-.037-.338c-.74.081-1.38.331-1.918.748.314-.69.339-1.443.074-2.247l-.324.106c.217.658.22 1.266.01 1.83.037-.167.058-.345.058-.534 0-1.22-.89-2.002-.89-2.002Zm.376 3.574-.012.018.015-.018h-.003Zm-.826-.08.034-.03c.03.05.06.097.09.142a3.881 3.881 0 0 0-.124-.112Z",clipRule:"evenodd"})))),Pl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MY_-_Malaysia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#MY_-_Malaysia_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M.014 2.5h16v1.45h-16zM.014 5.1h16v1.45h-16zM.056 7.6h16v1.25h-16zM.056 10.1h16v1.35h-16z"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0h16v1.25H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 0h8v6H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M1.797 3.101c0 .688.324 1.339.983 1.339.99 0 1.182-.211 1.644-.502.109.245-.26 1.294-1.657 1.294C1.649 5.21.745 4.312.745 3.102c0-1.39 1.022-2.14 1.994-2.132.858 0 1.768.487 1.74 1.108-.404-.395-.843-.395-1.574-.395-.73 0-1.108.73-1.108 1.418Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"m5.5 3.65-.464.677.023-.82-.773.275.5-.65L4 2.9l.787-.232-.5-.65.772.275-.023-.82.464.677.464-.677-.023.82.773-.275-.5.65L7 2.9l-.787.232.5.65-.772-.275.023.82L5.5 3.65Z",clipRule:"evenodd"}))),Il=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MV_-_Maldives_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#MV_-_Maldives_svg__a)"},(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M0 0h16v11a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#579D20",fillRule:"evenodd",d:"M3 3h10v6H3V3Z",clipRule:"evenodd"}),(0,n.createElement)("path",{stroke:"#B6EB9A",strokeOpacity:.238,d:"M3.5 3.5h9v5h-9v-5Z"}),(0,n.createElement)("mask",{id:"MV_-_Maldives_svg__b",width:10,height:6,x:3,y:3,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M3 3h10v6H3V3Z",clipRule:"evenodd"}),(0,n.createElement)("path",{stroke:"#fff",d:"M3.5 3.5h9v5h-9v-5Z"})),(0,n.createElement)("g",{mask:"url(#MV_-_Maldives_svg__b)"},(0,n.createElement)("path",{fill:"#F9FAFA",fillRule:"evenodd",d:"M8.016 6.231c-.008 1.533 1.199 2.35 1.199 2.35-1.377.162-2.293-1.086-2.293-2.335 0-1.248 1.248-2.28 2.293-2.745 0 0-1.19 1.197-1.199 2.73Z",clipRule:"evenodd"})))),Gl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MN_-_Mongolia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("rect",{width:16,height:12,fill:"#fff",rx:0})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#MN_-_Mongolia_svg__a)"},(0,n.createElement)("path",{fill:"#4C67E8",d:"M5 0h6v12H5V0Z"}),(0,n.createElement)("path",{fill:"#C51918",d:"M11 0h5v12h-5V0ZM0 0h6v12H0V0Z"}),(0,n.createElement)("path",{fill:"#F8D000",d:"M3.007 3.442c-.507 0-.44-.494-.44-.494l.24-.518v.519c0 .066.091-.067.091-.228 0-.16.109-.401.109-.401l.007-.16a.47.47 0 0 0 .106.13l.03.03c.062.064.053.234.046.38-.007.134-.012.248.037.248.102 0 .095-.459.095-.459l.172.46s.014.493-.493.493Zm0-1.41c.013-.075.011.026.007.128a.218.218 0 0 1-.007-.128Zm.762 2.31a.739.739 0 0 1-.75.727.739.739 0 0 1-.75-.727c0-.401.336-.727.75-.727s.75.326.75.727Zm-1.884 1.36H1v4.286h.885V5.702Zm3.115 0h-.885v4.286H5V5.702Zm-2.885.037.863.534.972-.534H2.115ZM2.978 10l-.863-.534H3.95L2.978 10Zm-.863-3.553h1.808v.336H2.115v-.336Zm1.808 2.497H2.115v.336h1.808v-.336Zm-.885-.186c.51 0 .924-.4.924-.894s-.414-.895-.924-.895-.923.4-.923.895c0 .494.414.894.923.894Zm-1.036-4.15s.03.934.95.934c.921 0 1.07-.934 1.07-.934s-.356.572-1.01.572-1.01-.572-1.01-.572Z"}))),Kl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MM_-_Myanmar_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#MM_-_Myanmar_svg__a)"},(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 8h16v4H0V8Z"}),(0,n.createElement)("path",{fill:"#5EAA22",d:"M0 4h16v4H0V4Z"}),(0,n.createElement)("path",{fill:"#FFD018",d:"M0 0h16v4H0V0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M8.031 7.988 5.456 9.625l.863-2.866-1.837-1.873 2.533-.055L8.135 2l1.022 2.867 2.526.044-1.899 1.907.887 2.727-2.64-1.558Z"}))),Wl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"}),(0,n.createElement)("path",{fill:"#C51918",stroke:"#4857A1",d:"m5.616 6.32 4.316 5.18H.5V.842L9.04 5.5H4.931l.684.82Z"}),(0,n.createElement)("mask",{id:"NP_-_Nepal_svg__a",width:11,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",stroke:"#fff",d:"m5.616 6.32 4.316 5.18H.5V.842L9.04 5.5H4.931l.684.82Z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#NP_-_Nepal_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",d:"m2.915 10.005-.613.795-.028-1.003-.963.283.567-.828-.946-.337.946-.337-.567-.828.963.283.028-1.004.613.796.612-.796.029 1.004.963-.283-.567.828.945.337-.945.337.567.828-.963-.283-.029 1.003-.612-.795ZM2.9 4.07l-.32.415-.015-.524-.503.148.296-.433-.493-.176.493-.176-.296-.433.503.148.015-.524.32.416.32-.416.015.524.503-.148-.296.433.493.176-.493.176.296.433-.503-.148-.015.524-.32-.416Z"}),(0,n.createElement)("path",{fill:"#F9FAFA",d:"M2.833 3.947c1.113.004 1.707-.627 1.707-.627.117.72-.79 1.2-1.696 1.2-.907 0-1.456-.654-1.794-1.2 0 0 .67.623 1.783.627Z"}))),jl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"KP_-_Korea_(North)_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#KP_-_Korea_(North)_svg__a)"},(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"KP_-_Korea_(North)_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#KP_-_Korea_(North)_svg__b)"},(0,n.createElement)("path",{fill:"#C51918",stroke:"#F7FCFF",d:"M0 2.5h-.5v7h17v-7H0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M5 8.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"m4.998 6.935-1.359.945.48-1.584-1.319-1 1.654-.033.544-1.563.543 1.563 1.654.034-1.318 1 .479 1.583-1.358-.945Z",clipRule:"evenodd"})))),ql=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"OM_-_Oman_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#OM_-_Oman_svg__a)"},(0,n.createElement)("path",{fill:"#F50101",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"OM_-_Oman_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#OM_-_Oman_svg__b)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F50101",d:"M0 0h6v12H0z"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M5.385 1.016C5.39.971 5.332.953 5.308.993a19.138 19.138 0 0 1-1.385 2v-.459c-.07-.077-.299-.286-.299-.286V1.79l.412-.373L3.471 1l-.597.417.451.373v.458c0 .22-.273.286-.273.286l-.05.404a18.687 18.687 0 0 1-1.315-1.924c-.023-.041-.083-.022-.076.025.055.368.221 1.186.68 2.06h-.123v-.017a.043.043 0 0 0-.044-.044H1.07a.043.043 0 0 0-.043.044v.663c0 .024.02.043.043.043h1.054c.024 0 .044-.019.044-.043v-.348H2.3a.3.3 0 0 0 .27.18c.084.13.175.26.275.388-.229-.023-1.74-.151-1.74.398 0 .328.368.502.829.592L.83 5.952c-.033.03-.007.08.036.07a7.128 7.128 0 0 0 2.2-.977h.029c.253 0 .429-.11.55-.258.914.745 1.947 1.09 2.396 1.213.046.013.071-.047.032-.075A13.587 13.587 0 0 1 4.048 4.18l.022-.026c.171-.202.32-.41.45-.619a.298.298 0 0 0 .124-.138h.133v.348c0 .024.02.043.043.043h1.054c.024 0 .044-.019.044-.043v-.663a.043.043 0 0 0-.044-.044H4.82a.043.043 0 0 0-.029.012 6.178 6.178 0 0 0 .594-2.034Zm-.608 2.082v-.02l-.01.02h.01ZM2.82 3.28c0 .134-.11.242-.244.242a.243.243 0 0 1-.245-.242c0-.133.11-.242.245-.242s.244.109.244.242Zm1.304 0c0 .134.11.242.245.242a.243.243 0 0 0 .245-.242.243.243 0 0 0-.245-.242.243.243 0 0 0-.245.242Z",clipRule:"evenodd"})))),Yl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"PK_-_Pakistan_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#PK_-_Pakistan_svg__a)"},(0,n.createElement)("path",{fill:"#2F8D00",d:"M4 0h12v12H4V0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 0h4v12H0V0Z"}),(0,n.createElement)("path",{fill:"#F1F9FF",d:"M11.215 7.653s-2.233.582-4.006-.605c-1.772-1.188-.88-3.924-.88-3.924-.925.134-2.377 3.507-.037 5.199 2.34 1.692 4.582.066 4.923-.67Zm-2.478-3.22-1.186.58 1.251.223.169 1.223.708-1.042 1.395.094-1.092-.814.581-1.088-1.087.498-.808-.76.069 1.086Z"}))),Jl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"PS_-_Palestinian_Territory_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#PS_-_Palestinian_Territory_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 0h16v12H0V0Z"}),(0,n.createElement)("path",{fill:"#5EAA22",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#272727",d:"M0 8v4h16V8H0Z"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"m0 1 8 5-8 5V1Z"}))),Ql=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"PH_-_Philippines_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#PH_-_Philippines_svg__a)"},(0,n.createElement)("path",{fill:"#BF2714",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"PH_-_Philippines_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#PH_-_Philippines_svg__b)"},(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0-1v7h16v-7H0Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12l9-6-9-6Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"PH_-_Philippines_svg__c",width:9,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12l9-6-9-6Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fill:"#FECA00",fillRule:"evenodd",clipRule:"evenodd",mask:"url(#PH_-_Philippines_svg__c)"},(0,n.createElement)("path",{d:"m6.803 5.46.638.246.38-.447.01.598.586.19-.618.21.041.55-.407-.421-.64.122.378-.485-.368-.563ZM.803 8.46l.586.26.431-.46-.041.61.638.178-.67.223.093.535-.466-.382-.58.084.325-.471-.316-.577ZM.803 2.46l.648.24.37-.44.02.59.576.198-.607.203.03.555-.404-.402-.643.104.389-.492-.38-.556ZM4.06 7.266a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Z"}),(0,n.createElement)("path",{d:"m3.913 4.12.067.803a.112.112 0 0 0 .221.004l.09-.8a.191.191 0 0 0-.214-.221.19.19 0 0 0-.164.214Zm-.21.388.105.35c.01.032.042.052.078.045a.056.056 0 0 0 .042-.067l-.083-.35a.079.079 0 0 0-.098-.058.065.065 0 0 0-.043.08Zm.562.364c-.008.03.01.06.043.07a.067.067 0 0 0 .077-.045l.116-.345a.065.065 0 0 0-.05-.084.079.079 0 0 0-.09.056l-.096.348Zm1.039-.351-.559.617a.112.112 0 0 0 .154.159l.667-.505a.19.19 0 1 0-.262-.271Zm-.17 1.31.834-.065a.19.19 0 1 1-.006.377l-.832-.091a.112.112 0 0 1 .004-.221Zm.433 1.329-.648-.564a.112.112 0 0 0-.16.153l.537.673a.19.19 0 1 0 .271-.262Zm-1.341-.176.05.843a.19.19 0 1 1-.378-.007l.107-.84a.112.112 0 0 1 .221.004Zm-1.315.456.55-.67a.112.112 0 0 0-.154-.16l-.658.558a.19.19 0 1 0 .262.272Zm.161-1.363-.84.069a.19.19 0 1 1 .007-.377l.837.086a.112.112 0 0 1-.004.222ZM2.575 4.76l.712.55a.112.112 0 0 0 .16-.153l-.6-.659a.19.19 0 1 0-.271.262Zm2.095.209.173-.32a.065.065 0 0 1 .095-.023c.033.025.043.07.02.106l-.189.307a.056.056 0 0 1-.076.018.067.067 0 0 1-.023-.088Zm.879.584-.35.104a.067.067 0 0 0-.046.079c.008.03.038.049.068.041l.35-.082a.079.079 0 0 0 .058-.098.065.065 0 0 0-.08-.044Zm-.462.966.32.174a.065.065 0 0 1 .022.094.079.079 0 0 1-.105.021l-.307-.189A.056.056 0 0 1 5 6.543a.067.067 0 0 1 .088-.023Zm-.585.88-.104-.35a.067.067 0 0 0-.078-.046.056.056 0 0 0-.042.067l.083.35a.079.079 0 0 0 .098.059.065.065 0 0 0 .043-.08Zm-.965-.462-.174.32a.065.065 0 0 1-.095.022.079.079 0 0 1-.02-.106l.189-.306a.056.056 0 0 1 .077-.018c.03.02.039.058.023.088Zm-.88-.585.35-.104a.067.067 0 0 0 .046-.079.056.056 0 0 0-.067-.041l-.351.083a.079.079 0 0 0-.058.097c.01.034.046.054.08.044Zm.462-.966-.32-.173a.065.065 0 0 1-.022-.095.079.079 0 0 1 .105-.021l.307.19c.026.016.034.05.018.076a.067.067 0 0 1-.088.023Zm1.864-.084c-.027.016-.036.05-.02.08a.067.067 0 0 0 .086.023l.327-.163A.065.065 0 0 0 5.4 5.15a.079.079 0 0 0-.104-.025l-.313.178Zm.133.855c.008-.033.04-.05.069-.042l.347.095a.079.079 0 0 1 .055.1.065.065 0 0 1-.082.04l-.345-.116a.067.067 0 0 1-.044-.077Zm-.363.675c-.015-.026-.05-.036-.079-.019a.067.067 0 0 0-.023.086l.162.326a.065.065 0 0 0 .094.025.079.079 0 0 0 .025-.105l-.179-.313Zm-.855.133c.033.009.051.04.043.07l-.095.347a.079.079 0 0 1-.1.054.065.065 0 0 1-.04-.081l.116-.346a.067.067 0 0 1 .076-.044Zm-.675-.362c.027-.015.037-.05.02-.08a.067.067 0 0 0-.086-.022l-.326.162a.065.065 0 0 0-.025.094.079.079 0 0 0 .105.024l.312-.178Zm-.132-.855c-.01.033-.04.05-.07.042l-.347-.095a.079.079 0 0 1-.055-.1.065.065 0 0 1 .082-.04l.346.116c.032.01.05.044.044.077Zm.362-.675c.015.027.05.036.079.019a.067.067 0 0 0 .023-.086l-.162-.326a.065.065 0 0 0-.094-.025.079.079 0 0 0-.025.105l.179.313Z"})))),$l=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"QA_-_Qatar_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#QA_-_Qatar_svg__a)"},(0,n.createElement)("path",{fill:"#B61C49",d:"M0 0h16v12H0z"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0h3.4L6 1 3.4 2 6 3 3.4 4 6 5 3.4 6 6 7 3.4 8 6 9l-2.6 1L6 11l-2.6 1H0V0Z",clipRule:"evenodd"}))),Xl=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SA_-_Saudi_Arabia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#SA_-_Saudi_Arabia_svg__a)"},(0,n.createElement)("path",{fill:"#67BD23",d:"M0 0h16v12H0z"}),(0,n.createElement)("path",{stroke:"#fff",strokeWidth:.5,d:"M3.49 2.288s.256 1.164 0 .941c-.254-.223-.822.628-.23.314.593-.314.698-.64.698 0s.283.314-.207.79c-.49.474 1.718.482.729.78-.99.297-1.458.931-.729.698.729-.233 1.902-1.221 1.596-1.479-.306-.257-.156-.205-.156-.789 0-.584-.194-.735-.448-.886-.253-.15.987 1.02 1.401.326.414-.695.364-.247.664 0 .3.246.765.543.765 0 0-.544.615-1.593.615-.516 0 1.076.772 1.632.772.911 0-.721.71-1.427.71-.911s.407.492.755.34c.348-.15.319-.548.319.571 0 1.12.146 2.869-.319 2.721-.464-.147-.03-.813-.465-1.767-.435-.954.443-.957-.465.26-.908 1.219-.763 1.04-1.035.52-.272-.52.886-1.04 0-.78-.887.26-.405 1.72-.646 1.25-.24-.47-.856-2.964-.931-1.717-.075 1.247.236 1.946-.423 1.946-.66 0-1.217.05-.767-.23.451-.278.451-1.249.451-1.249"}),(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M6.967 7.928c-.407.05-2.461.04-3.075-.107-.138-.03-.06.598.03.742.089.144.787.288 1.03.322.21.028 1.015-.017 1.852-.063l.415-.023c.733-.04 1.804.03 2.363.066.181.011.309.02.355.02.171 0 .158.058.132.174l-.007.031c-.029.138.125.433.193.46.067.028.572 0 .847-.106.156-.06.175-.052.215-.033a.42.42 0 0 0 .2.033c.19 0 .199-.27.206-.46.004-.105.006-.185.037-.185.034 0 .08.102.124.197.066.146.125.276.125.007 0-.447-.525-1.032-.697-.985-.12.033-.319-.003-.453-.028a.98.98 0 0 0-.127-.019c-.033 0-.023-.008-.001-.026.03-.023.08-.064.08-.124 0-.108-.103-.123-.188-.123s-.13.07-.13.123c0 .053.064.107.064.107l-.188-.002c-.69-.01-3.05-.04-3.402.002Zm3.47.945s.055-.031.18-.186c.139-.171.188-.116.24-.06.026.03.052.06.093.06.117 0 .273 0 .374.086.101.086-.133.204-.201.204-.034 0-.06-.021-.084-.043-.026-.021-.052-.043-.088-.043-.041 0-.077.03-.105.055-.02.017-.036.03-.05.03-.011 0-.037-.014-.07-.033a.513.513 0 0 0-.22-.084c-.043 0-.068.014-.069.014Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#fff",d:"m3.892 7.82.011-.048-.011.049Zm3.075.108.006.05-.006-.05Zm-3.045.635.042-.026-.042.026Zm1.03.322.008-.05-.007.05Zm1.852-.063-.003-.05.003.05Zm.415-.023.003.05-.003-.05Zm2.363.066-.003.05.003-.05Zm.487.194.05.01-.05-.01Zm-.007.031-.048-.01.048.01Zm1.04.354.018.047-.018-.047Zm.215-.033.02-.046-.02.046Zm.406-.428.05.002-.05-.002Zm.16.013.046-.02-.045.02Zm-.571-.978-.013-.048.013.048Zm-.453-.028-.01.05.01-.05Zm-.128-.045-.031-.039.031.04Zm-.174-.017v.05h.136l-.104-.088-.032.038Zm-.188-.002v.05-.05Zm.248.761.039.032-.039-.032Zm-.18.186.044-.025-.043.025Zm.42-.245-.038.033.037-.033Zm.467.145.033-.038-.033.038Zm-.285.161-.033.039.033-.039Zm-.193.012.033.038-.033-.038Zm-.12-.003.024-.043-.024.043Zm-.22-.084v-.05.05Zm-6.626-.99c.313.076.986.115 1.626.13.64.014 1.26.004 1.467-.022l-.012-.099c-.2.024-.811.035-1.453.02-.642-.014-1.304-.053-1.605-.126l-.023.097Zm.084.668a.625.625 0 0 1-.055-.166 1.824 1.824 0 0 1-.037-.248.873.873 0 0 1 .003-.21.12.12 0 0 1 .015-.045c.002-.002.001 0-.002 0a.013.013 0 0 1-.007.001l.021-.097a.087.087 0 0 0-.054.005.097.097 0 0 0-.038.031.212.212 0 0 0-.033.087.967.967 0 0 0-.005.236c.007.088.021.181.04.262.017.08.04.152.067.196l.085-.052Zm.996.298a5.176 5.176 0 0 1-.568-.118 2.364 2.364 0 0 1-.286-.094.67.67 0 0 1-.098-.049.143.143 0 0 1-.044-.037l-.085.052c.017.028.046.05.076.07.031.02.07.039.112.056.085.036.19.07.3.099.218.058.455.103.58.12l.013-.099ZM6.8 8.772c-.418.023-.829.046-1.16.06a5.6 5.6 0 0 1-.681.003l-.014.1c.11.014.369.01.699-.004.332-.013.743-.036 1.162-.06l-.006-.1Zm.416-.023-.416.023.006.1.415-.024-.005-.1Zm2.369.066c-.56-.037-1.633-.106-2.37-.066l.006.1c.73-.04 1.796.029 2.357.065l.007-.1Zm.35.02c-.043 0-.168-.008-.35-.02l-.007.1c.18.011.31.02.358.02v-.1Zm.182.235c.006-.028.013-.057.015-.082a.146.146 0 0 0-.012-.083.118.118 0 0 0-.072-.057.375.375 0 0 0-.112-.013v.1c.04 0 .066.003.081.008.007.002.01.005.012.006l.003.002c0 .002.003.008 0 .027a.65.65 0 0 1-.013.07l.098.022Zm-.007.03.007-.03-.098-.022-.006.032.097.02Zm.163.404s-.003-.001-.012-.01a.783.783 0 0 1-.143-.289.252.252 0 0 1-.008-.104l-.098-.021a.348.348 0 0 0 .009.148.867.867 0 0 0 .168.335.142.142 0 0 0 .046.034l.038-.093Zm.81-.106c-.131.05-.32.083-.488.1a2.447 2.447 0 0 1-.293.01.261.261 0 0 1-.022-.002l-.007-.002-.038.093c.016.006.038.01.06.01.022.003.05.004.081.003.063 0 .143-.004.228-.013.17-.017.37-.05.515-.106l-.036-.093Zm.254-.033c-.01-.004-.022-.01-.038-.014a.15.15 0 0 0-.053-.003.716.716 0 0 0-.163.05l.036.093a.643.643 0 0 1 .138-.043.05.05 0 0 1 .019 0l.02.008.04-.09Zm.18.03a.591.591 0 0 1-.126-.011.244.244 0 0 1-.054-.019l-.041.091c.016.008.038.018.074.026.035.007.081.012.146.012v-.1Zm.155-.414a1.258 1.258 0 0 1-.033.29.224.224 0 0 1-.048.093.098.098 0 0 1-.075.03v.1c.061 0 .11-.022.147-.06a.32.32 0 0 0 .072-.135c.03-.098.033-.22.037-.314l-.1-.004Zm.087-.232c-.035 0-.054.024-.063.041a.184.184 0 0 0-.015.054c-.006.037-.007.086-.01.137l.1.004c.003-.053.004-.096.009-.126a.098.098 0 0 1 .005-.024c.001-.001-.006.014-.026.014v-.1Zm.17.227c-.022-.048-.045-.1-.068-.14a.322.322 0 0 0-.037-.053c-.01-.013-.033-.034-.065-.034v.1c-.015 0-.018-.01-.01 0 .007.007.015.02.025.037.02.035.041.082.063.13l.091-.04Zm.029.027a1.031 1.031 0 0 1-.009.12v.003c0-.001.003-.006.01-.01a.04.04 0 0 1 .027-.006.031.031 0 0 1 .014.005c.001.001 0 .001 0 0a.342.342 0 0 1-.024-.04c-.016-.028-.03-.063-.048-.1l-.09.042a2.308 2.308 0 0 0 .072.144.139.139 0 0 0 .03.034.07.07 0 0 0 .03.013.06.06 0 0 0 .043-.008.085.085 0 0 0 .033-.05.606.606 0 0 0 .012-.147h-.1Zm-.634-.937c.006-.001.021-.002.048.009.025.01.056.028.09.054.07.052.148.132.222.227.15.193.274.44.274.647h.1c0-.24-.14-.509-.295-.708a1.35 1.35 0 0 0-.24-.246.515.515 0 0 0-.114-.067.177.177 0 0 0-.111-.012l.026.096Zm-.475-.027c.067.013.152.028.236.036a.7.7 0 0 0 .24-.009l-.027-.096a.606.606 0 0 1-.204.006 2.837 2.837 0 0 1-.227-.035l-.018.098Zm-.118-.018.043.005.075.013.018-.098-.078-.014a.406.406 0 0 0-.058-.006v.1Zm-.032-.115a.322.322 0 0 0-.026.024.06.06 0 0 0-.012.023.053.053 0 0 0 .038.065.113.113 0 0 0 .032.003v-.1h-.003c.002.001.012.005.02.015a.046.046 0 0 1 .01.042c-.002.009-.007.014-.007.015h-.001a.242.242 0 0 1 .011-.009l-.062-.078Zm.06-.085c0 .015-.006.03-.018.045a.258.258 0 0 1-.042.04l.062.078c.015-.011.039-.03.059-.056a.172.172 0 0 0 .04-.107h-.1Zm-.137-.073c.041 0 .079.004.104.016.012.006.02.012.024.02a.065.065 0 0 1 .01.037h.1a.164.164 0 0 0-.027-.092.156.156 0 0 0-.064-.055.35.35 0 0 0-.147-.026v.1Zm-.08.073c0-.03.027-.073.08-.073v-.1a.177.177 0 0 0-.18.173h.1Zm.014.107.032-.038-.002-.002a.23.23 0 0 1-.024-.025c-.014-.018-.02-.034-.02-.042h-.1c0 .044.025.082.043.104a.315.315 0 0 0 .034.037l.003.003a.01.01 0 0 1 .001 0v.001l.033-.038Zm-.188.048c.106 0 .174.002.188.002v-.1l-.187-.002-.001.1Zm-3.396.001a7.48 7.48 0 0 1 .577-.019c.281-.003.63-.003.99 0 .72.003 1.483.013 1.829.018v-.1c-.345-.005-1.107-.015-1.828-.019-.36-.002-.71-.002-.992.001-.28.003-.497.01-.588.02l.012.1Zm3.605.679a1.43 1.43 0 0 1-.166.174h-.001l-.001.002-.002.001-.005.004a.106.106 0 0 0-.006.007.087.087 0 0 0-.003.054l.087-.05a.088.088 0 0 1-.003.054.084.084 0 0 1-.006.008l-.005.003-.002.002.003-.002a.276.276 0 0 0 .046-.038c.032-.03.078-.078.142-.156l-.078-.063Zm.315-.062c-.012-.013-.028-.031-.046-.045a.125.125 0 0 0-.078-.027.163.163 0 0 0-.093.035.547.547 0 0 0-.098.099l.078.063a.453.453 0 0 1 .079-.08c.02-.015.03-.017.035-.017.004 0 .008 0 .017.007a.25.25 0 0 1 .032.032l.074-.067Zm.056.043c-.006 0-.012-.002-.021-.009a.251.251 0 0 1-.035-.034l-.074.067c.022.025.064.076.13.076v-.1Zm.408.098a.414.414 0 0 0-.206-.087c-.07-.011-.143-.01-.201-.01v.1c.059 0 .123 0 .185.01s.116.028.157.063l.065-.076Zm-.234.292a.27.27 0 0 0 .093-.024.488.488 0 0 0 .1-.056.213.213 0 0 0 .076-.088.106.106 0 0 0-.035-.124l-.065.076a.04.04 0 0 1 .006.007v.001h.001v.004a.12.12 0 0 1-.042.044.386.386 0 0 1-.079.044.19.19 0 0 1-.055.016v.1Zm-.117-.054c.023.019.062.054.117.054v-.1c-.013 0-.024-.007-.052-.03l-.065.076Zm-.055-.032c.015 0 .027.008.055.032l.065-.077c-.023-.02-.063-.055-.12-.055v.1Zm-.072.043a.323.323 0 0 1 .04-.032.063.063 0 0 1 .032-.011v-.1a.162.162 0 0 0-.083.026.408.408 0 0 0-.055.041l.066.076Zm-.082.043a.09.09 0 0 0 .05-.018l.032-.025-.066-.076a.31.31 0 0 1-.022.019l-.004.001.01-.001v.1Zm-.096-.04a1.042 1.042 0 0 0 .067.034.084.084 0 0 0 .029.006v-.1h.006a.109.109 0 0 1-.011-.005L10.75 8.9l-.05.087Zm-.194-.078c.025 0 .057.009.093.025.035.015.07.035.101.053l.05-.087c-.03-.018-.07-.04-.11-.058a.344.344 0 0 0-.134-.033v.1Zm-.113-.011c.01.012.031.024.04.025a.047.047 0 0 0 .021-.003l.004-.002h.002l.001-.001a.129.129 0 0 1 .045-.008v-.1a.228.228 0 0 0-.09.019h-.002.002l.003-.002.008-.002h.013c.009 0 .03.012.04.024l-.087.05Z"}),(0,n.createElement)("path",{stroke:"#fff",strokeWidth:.5,d:"M13.116 2.373S13.923 6 13.116 6s-.807-.316-.807-.316.886.407.641-.659c-.245-1.065-.474-.332-.474-1.269 0-.937-.167-1.566-.167-1.087 0 .48-.111 3.375-.549 2.782-.438-.592-.331-2.426-.331-2.604"}))),et=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SG_-_Singapore_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#SG_-_Singapore_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"SG_-_Singapore_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#SG_-_Singapore_svg__b)"},(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 0v6h16V0H0Z"}),(0,n.createElement)("path",{fill:"#F1F9FF",d:"M4.434 5.295s-1.413-.568-1.413-2.108 1.413-2.09 1.413-2.09c-.686-.173-2.509-.018-2.509 2.09 0 2.108 1.795 2.505 2.51 2.108Zm.362-.255.405-.244.415.244-.102-.477.337-.377h-.456l-.193-.446-.194.446-.457.02.338.357-.093.477Zm1.879-.272-.406.245.093-.477-.338-.358.457-.02.194-.445.193.446h.456l-.336.377.1.477-.413-.245ZM5.644 2.885l.405-.245.414.245-.101-.478.337-.376h-.457l-.193-.446-.193.446-.457.02.337.356-.092.478Zm-.96.726-.404.245.092-.477-.337-.358.457-.02.193-.445.193.446h.457l-.337.377.101.477-.414-.245Zm2.275.223.405-.245.414.245-.101-.477.337-.377h-.457l-.193-.446-.193.446-.457.02.337.357-.092.477Z"})))),lt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"KR_-_Korea_(South)_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#KR_-_Korea_(South)_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"KR_-_Korea_(South)_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#KR_-_Korea_(South)_svg__b)"},(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M7.893 9.286c1.708 0 3.093-1.418 3.093-3.168 0-1.749-1.385-3.167-3.093-3.167S4.8 4.37 4.8 6.118c0 1.75 1.385 3.168 3.093 3.168Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"KR_-_Korea_(South)_svg__c",width:7,height:8,x:4,y:2,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M7.893 9.286c1.708 0 3.093-1.418 3.093-3.168 0-1.749-1.385-3.167-3.093-3.167S4.8 4.37 4.8 6.118c0 1.75 1.385 3.168 3.093 3.168Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#KR_-_Korea_(South)_svg__c)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M11.094 6.361s-.173-1.493-1.459-1.574c-1.286-.082-1.632 1.095-1.707 1.406-.074.312-.261 1.143-1.615 1.143S4.837 5.222 4.837 5.222V2.73h6.257V6.36Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#272727",fillRule:"evenodd",d:"m3.65 1.026.457.414-2.12 2.476-.457-.414 2.12-2.476Zm.754.67.458.413-2.044 2.44-.458-.413 2.044-2.44Zm1.209 1.091-.458-.414-2.05 2.46.458.413 2.05-2.459Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",d:"m4.107 1.44.057.049.048-.056-.055-.049-.05.056Zm-.457-.414L3.7.97 3.643.92l-.05.058.057.05Zm-1.663 2.89-.05.055.057.052.05-.058-.057-.05Zm-.457-.414-.057-.049-.048.056.054.049.05-.056Zm3.332-1.393.057.049.047-.056-.054-.048-.05.055Zm-.458-.413.05-.056-.057-.052-.05.06.057.048ZM2.818 4.55l-.05.055.057.052.05-.06-.057-.047Zm-.458-.414-.057-.048-.047.055.054.048.05-.055Zm2.795-1.763.05-.055-.057-.053-.05.06.057.048Zm.458.414.057.048.046-.055-.053-.048-.05.055ZM3.105 4.832l-.057-.048-.046.055.053.049.05-.056Zm.458.414-.05.055.057.053.05-.06-.057-.048Zm.594-3.862L3.7.97l-.1.112.457.413.1-.11Zm-2.113 2.58 2.12-2.475-.114-.098-2.12 2.476.114.098Zm-.565-.406.458.413.1-.11-.457-.415-.1.112ZM3.593.978l-2.12 2.475.114.098 2.12-2.476-.114-.098Zm1.319 1.076-.458-.414-.1.111.457.414.101-.111ZM2.875 4.598l2.044-2.44-.115-.097-2.044 2.44.115.097ZM2.31 4.19l.457.414.1-.111-.457-.414-.1.111Zm2.037-2.543-2.044 2.44.115.096 2.044-2.44-.115-.097Zm.758.781.457.414.101-.111-.457-.414-.101.111ZM3.163 4.88l2.05-2.458-.115-.097-2.05 2.46.115.095Zm.45.31-.457-.414-.1.112.457.413.1-.11Zm1.942-2.45-2.05 2.458.115.096 2.05-2.459-.115-.096Z"}),(0,n.createElement)("path",{fill:"#272727",fillRule:"evenodd",d:"m12.293 1.026-.458.414 2.12 2.476.458-.414-2.12-2.476Zm-.755.67-.457.413 2.044 2.44.457-.413-2.044-2.44Zm-1.209 1.091.458-.414 2.05 2.46-.458.413-2.05-2.459Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",d:"m11.835 1.44-.057.049-.047-.056.054-.049.05.056Zm.457-.414-.05-.056L12.3.92l.05.058-.056.05Zm1.663 2.89.05.055-.057.052-.05-.058.057-.05Zm.458-.414.057-.049.047.056-.054.049-.05-.056ZM11.08 2.109l-.058.049-.046-.056.053-.048.05.055Zm.457-.413-.05-.056.058-.052.05.06-.058.048Zm1.587 2.854.05.055-.058.052-.05-.06.058-.047Zm.457-.414.058-.048.046.055-.053.048-.05-.055Zm-2.795-1.763-.05-.055.058-.053.05.06-.058.048Zm-.458.414-.057.048-.046-.055.053-.048.05.055Zm2.508 2.045.057-.048.046.055-.053.049-.05-.056Zm-.458.414.05.055-.057.053-.05-.06.057-.048Zm-.594-3.862.457-.414.1.112-.457.413-.1-.11Zm2.113 2.58-2.12-2.475.114-.098 2.12 2.476-.114.098Zm.565-.406-.457.413-.101-.11.457-.415.101.112ZM12.35.978l2.12 2.475-.114.098-2.12-2.476.114-.098Zm-1.32 1.076.458-.414.1.111-.457.414-.1-.111Zm2.037 2.544-2.044-2.44.115-.097 2.044 2.44-.115.097Zm.566-.407-.458.414-.1-.111.457-.414.1.111Zm-2.037-2.543 2.044 2.44-.115.096-2.045-2.44.115-.097Zm-.759.781-.457.414-.1-.111.457-.414.1.111ZM12.78 4.88l-2.05-2.458.116-.097 2.05 2.46-.116.095Zm-.45.31.457-.414.101.112-.457.413-.101-.11Zm-1.942-2.45 2.05 2.458-.115.096-2.05-2.459.115-.096Z"}),(0,n.createElement)("path",{fill:"#272727",fillRule:"evenodd",d:"m3.65 11.246.457-.414-2.12-2.476-.457.414 2.12 2.476Zm.754-.67.458-.414-2.044-2.44-.458.414 2.044 2.44Zm1.209-1.091-.458.413-2.05-2.458.458-.414 2.05 2.459Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",d:"m4.107 10.832.057-.049.048.056-.055.049-.05-.056Zm-.457.414.05.056-.057.051-.05-.058.057-.05Zm-1.663-2.89-.05-.055.057-.052.05.058-.057.05Zm-.457.414-.057.049-.048-.056.054-.049.05.056Zm3.332 1.393.057-.049.047.056-.054.048-.05-.056Zm-.458.413.05.056-.057.052-.05-.06.057-.048ZM2.818 7.722l-.05-.055.057-.052.05.06-.057.047Zm-.458.414-.057.048-.047-.055.054-.048.05.055Zm2.795 1.762.05.056-.057.053-.05-.06.057-.049Zm.458-.413.057-.048.046.055-.053.048-.05-.055ZM3.105 7.44l-.057.048-.046-.055.053-.049.05.056Zm.458-.414-.05-.056.057-.052.05.06-.057.048Zm.594 3.862-.457.414-.1-.112.457-.413.1.11Zm-2.113-2.58 2.12 2.475-.114.098-2.12-2.476.114-.098Zm-.565.406.458-.413.1.11-.457.415-.1-.112Zm2.114 2.58L1.473 8.82l.114-.098 2.12 2.476-.114.098Zm1.319-1.076-.458.414-.1-.111.457-.414.101.111ZM2.875 7.674l2.044 2.44-.115.097L2.76 7.77l.115-.097Zm-.565.407.457-.414.1.111-.457.414-.1-.111Zm2.037 2.543-2.044-2.44.115-.096 2.044 2.44-.115.096Zm.758-.781.457-.414.101.111-.457.414-.101-.111ZM3.163 7.392l2.05 2.458-.115.096-2.05-2.458.115-.096Zm.45-.31-.457.413-.1-.11.457-.415.1.112Zm1.942 2.45-2.05-2.458.115-.096 2.05 2.459-.115.096Z"}),(0,n.createElement)("path",{fill:"#272727",fillRule:"evenodd",d:"m12.293 11.246-.458-.414 2.12-2.476.458.414-2.12 2.476Zm-.755-.67-.457-.414 2.044-2.44.457.414-2.044 2.44Zm-1.209-1.091.458.413 2.05-2.458-.458-.414-2.05 2.459Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",d:"m11.835 10.832-.057-.049-.047.056.054.049.05-.056Zm.457.414-.05.056.057.051.05-.058-.056-.05Zm1.663-2.89.05-.055-.057-.052-.05.058.057.05Zm.458.414.057.049.047-.056-.054-.049-.05.056Zm-3.332 1.393-.058-.049-.046.056.053.048.05-.056Zm.457.413-.05.056.058.052.05-.06-.058-.048Zm1.587-2.854.05-.055-.058-.052-.05.06.058.047Zm.457.414.058.048.046-.055-.053-.048-.05.055Zm-2.795 1.762-.05.056.058.053.05-.06-.058-.049Zm-.458-.413-.057-.048-.046.055.053.048.05-.055Zm2.508-2.045.057.048.046-.055-.053-.049-.05.056Zm-.458-.414.05-.056-.057-.052-.05.06.057.048Zm-.594 3.862.457.414.1-.112-.457-.413-.1.11Zm2.113-2.58-2.12 2.475.114.098 2.12-2.476-.114-.098Zm.565.406-.457-.413-.101.11.457.415.101-.112Zm-2.113 2.58 2.12-2.475-.114-.098-2.12 2.476.114.098Zm-1.32-1.076.458.414.1-.111-.457-.414-.1.111Zm2.037-2.544-2.044 2.44.115.097 2.044-2.44-.115-.097Zm.566.407-.458-.414-.1.111.457.414.1-.111Zm-2.037 2.543 2.044-2.44-.115-.096-2.045 2.44.115.096Zm-.759-.781-.457-.414-.1.111.457.414.1-.111Zm1.942-2.451L10.73 9.85l.116.096 2.05-2.458-.116-.096Zm-.45-.31.457.413.101-.11-.457-.415-.101.112Zm-1.942 2.45 2.05-2.458-.115-.096-2.05 2.459.115.096Z"})))),tt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"LK_-_Sri_Lanka_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#LK_-_Sri_Lanka_svg__a)"},(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#1F8A6E",d:"M1 1h3v10H1z"}),(0,n.createElement)("path",{fill:"#F56800",d:"M4 1h3v10H4z"}),(0,n.createElement)("path",{fill:"#B01D00",d:"M7 1h8v10H7z"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M8.471 3s-.643-.002-.643 1.119v1.643s-.307.054-.307.245c0 .19.065.357.186.357.12 0 .241.558.12.558-.12 0-.24.24-.12.24.029 0 .05-.005.068-.007.017-.004.029-.006.037-.001.016.01.016.046.016.157 0 .217-.12.305-.12.305s-.115-.032-.115.096.114.16.114.16.065.029-.06.09c-.126.06-.126.09-.126.09h.307l.153.28.147-.28h.302s-.152-.098-.17-.118c-.018-.02-.04-.05 0-.085.011-.01.028-.017.046-.025.044-.02.096-.043.096-.112 0-.096-.193-.096-.193-.096s-.118-.213-.081-.305a.534.534 0 0 0 .02-.07c.014-.05.021-.08.085-.08.087 0 .138-.11.027-.24 0 0 .127.138.09.315-.038.178.039.258.08.258s.107-.06.107-.06.343.306.494.306c.151 0 .367-.246.367-.246l.311.175s.227.318.194.537c-.034.22-.163.341-.316.307-.152-.034-.4.036-.42.13a1.353 1.353 0 0 1-.01.051c-.027.107-.066.268.053.228.141-.046.169-.082.169-.082s-.019.082.095.082c.113 0 .146-.082.146-.082s.118.082.2.082c.083 0 .175-.063.175-.063s.061.094.196.063c.134-.03.236-.382.138-.46 0 0 .325-.048.409-.33 0 0-.315-.005-.282-.198.032-.194.198-.318.198-.318s.478-.231.684-.305c.205-.075.547-.15.632-.15.034 0 .059.08.092.19.049.159.116.378.259.498.242.202.077.664.077.664s-.538.054-.538.2c0 .146.009.21.11.21.1 0 .098-.083.098-.083s.06.082.157.082c.096 0 .173-.082.173-.082s.026.082.152.082c.127 0 .126-.082.126-.082s.022.082.134.082c.111 0 .34-.082.34-.082s.036.082.152.082c.115 0 .118-.082.118-.082s.062.082.162.082.16-.082.16-.082.143.082.243.082.064-.149 0-.279a.758.758 0 0 0-.052-.086c-.05-.076-.087-.13-.001-.225.024-.027.052-.053.08-.08.103-.1.207-.202.13-.29a.38.38 0 0 0-.075-.064c-.087-.06-.176-.122-.135-.465a3.35 3.35 0 0 1 .114-.527c.05-.183.096-.35.096-.542 0-.357-.21-.765-.21-.765s.283-.198.283-.601c0-.403-.633-.447-.633-.447s-.629.162-.906.081c-.063-.018-.116-.031-.16-.042-.149-.038-.195-.05-.195-.153 0-.134-.202.114-.202.114s-.159-.063-.05-.195c.107-.132.155-.183.155-.183s-.094-.108-.255-.054c-.16.054-.188.143-.188.143s-.183-.186-.069-.322c.114-.136.258 0 .258 0s.163.085.176-.027c.013-.112 0-.201 0-.201s.41.117.294.3c-.115.183-.042.25-.042.25s.282.018.333-.177a.41.41 0 0 0 .002-.2c.081.038.173.083.147.158-.047.138-.15.313-.15.313s.283-.017.367-.237c.084-.221.053.054.053.054s.108-.004.27.09c.162.093 0-.144 0-.144s.337.417.655.367c.318-.05.3-.313.3-.313s-.075-.13-.233-.13c-.157 0-.067.13-.067.13s.153.087-.09 0c-.07-.026-.176-.107-.307-.209-.32-.249-.793-.616-1.28-.56-.686.08-.925.386-.925.386v-.256s-.116.178-.223.178-.406-.178-.406-.178l-.19.178s-.072-.178-.198-.178c-.127 0-.127.178-.127.178s-.159-.078-.334-.078a.449.449 0 0 1-.18-.047c-.067-.029-.106-.046-.106.047v.053c.004.125.006.203-.176.226-.206.027-.365.027-.365.027s-.124-.15-.22-.15-.207.116-.207.222c0 .107.124.41.207.474.022.017.018.016 0 .007-.05-.023-.207-.095-.207.058 0 .106.026.132.046.151.018.02.03.031.005.102-.01.03-.025.064-.04.1-.058.138-.126.299-.01.299.061 0 .12-.014.161-.024.056-.013.081-.019.045.024-.014.016-.033.037-.053.057-.066.07-.134.14-.016.087a.79.79 0 0 0 .157-.104c.063-.05.107-.084.132-.04.016.027.003.065-.008.096-.018.053-.031.092.101.048a.524.524 0 0 0 .09-.036c0 .008.007.02.028.036.044.032.036.063.03.087-.008.027-.013.044.065.044.074 0 .179-.057.241-.091.06-.033.08-.045-.006.04-.054.053-.133.089-.22.128-.195.088-.433.195-.54.56-.146.493-.08.594-.071.606l-.448-.49s.107-.084.107-.224-.277-.245-.277-.245.01-1.747.09-2.128C8.43 3.252 8.47 3 8.47 3Zm.893 2.294a.015.015 0 0 0-.014.017c.02-.011.02-.017.014-.017Zm3.369-1.41-.006-.002c-.066-.031-.122-.058-.1-.092.03-.049.083.002.106.094Zm.296 3.78s-.212.209-.077.254c.04.014.09.022.136.03.107.016.194.03.114.108-.116.113-.213.265-.213.404s.003.256.04.197c.02-.032.104-.066.194-.102.075-.03.153-.061.205-.095.096-.064.095-.133.093-.258l-.001-.07c0-.17-.49-.467-.49-.467Zm-1.646-2.786c.05-.04.053-.525.053-.525s.173.058.173.134a.232.232 0 0 1-.033.115.961.961 0 0 0-.042.096c-.038.105.066.17.162.23l.022.014c.065.042.084-.048.098-.118.008-.039.014-.071.027-.071.035 0 .298.06.496.16.172.088.342.045.73-.054l.185-.047c.523-.13.592.066.645.219.054.154-.352.366-.645.405-.13.017-.24.011-.343.006a.92.92 0 0 0-.367.03c-.186.067-.77.06-.998.058h-.072c-.105 0-.125-.034-.164-.1a1.114 1.114 0 0 0-.036-.057c-.071-.104.015-.172.07-.172.056 0 .039-.123 0-.17-.037-.047-.01-.114.039-.153Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E8AA00",d:"M6 1h1v10H6z"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M7.086 1.061v.18c0 .023-.01.053-.02.087-.035.108-.08.252.13.293.278.054.483.175.545.29.04.073.029-.05.016-.193a2.871 2.871 0 0 1-.016-.232c0-.177-.198-.522-.339-.425-.14.097-.316 0-.316 0Zm0 9.693v.18s.176-.097.316 0 .34-.248.34-.425c0-.063.007-.15.015-.231.013-.144.024-.267-.016-.193-.062.114-.267.236-.544.29-.212.04-.166.184-.132.292.011.034.02.064.02.087Zm7.832 0v.18s-.176-.097-.317 0c-.14.097-.339-.248-.339-.425a2.87 2.87 0 0 0-.015-.231c-.013-.144-.025-.267.015-.193.062.114.267.236.545.29.211.04.165.184.131.292a.334.334 0 0 0-.02.087Zm0-9.512v-.18s-.176.096-.317 0c-.14-.098-.339.247-.339.424 0 .064-.008.151-.015.232-.013.144-.025.266.015.193.062-.115.267-.236.545-.29.211-.04.165-.185.131-.293a.334.334 0 0 1-.02-.086Z",clipRule:"evenodd"}))),at=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SY_-_Syria_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#SY_-_Syria_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 0h16v12H0V0Z"}),(0,n.createElement)("path",{fill:"#409100",d:"m4.5 6.935-.934.565.213-1.102L3 5.573l1.055-.044L4.5 4.5l.446 1.029H6l-.777.87.234 1.101-.956-.565ZM11.5 6.935l-.934.565.213-1.102L10 5.573l1.055-.044L11.5 4.5l.446 1.029H13l-.777.87.234 1.101-.956-.565Z"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#272727",d:"M0 8v4h16V8H0Z"}))),nt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"TW_-_Taiwan_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#TW_-_Taiwan_svg__a)"},(0,n.createElement)("path",{fill:"#EF0000",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"TW_-_Taiwan_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#TW_-_Taiwan_svg__b)"},(0,n.createElement)("path",{fill:"#2E42A5",d:"M0 0v7h9V0H0Z"}),(0,n.createElement)("path",{fill:"#FEFFFF",d:"m4.365 5.405-.741.925-.18-1.171-1.103.43.43-1.104-1.171-.18.924-.74-.924-.741 1.17-.18-.43-1.103 1.105.43L3.624.8l.74.924L5.107.8l.18 1.17 1.103-.43-.43 1.105 1.17.179-.924.74.925.742-1.171.18.43 1.103-1.104-.43-.18 1.17-.74-.924Zm0-.409a1.431 1.431 0 1 0 0-2.862 1.431 1.431 0 0 0 0 2.862ZM5.51 3.565a1.145 1.145 0 1 1-2.29 0 1.145 1.145 0 0 1 2.29 0Z"})))),st=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"TJ_-_Tajikistan_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#TJ_-_Tajikistan_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#409100",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FB0",fillRule:"evenodd",d:"M7.973 7.789c-.207.006-.344-.212-.344-.212l.211-.055c.014-.14.11-.214.11-.214.062.041.13.224.13.224l.182.026s-.083.225-.29.23Zm-1.008.062c-.203.035-.37-.162-.37-.162l.202-.084c-.006-.14.078-.226.078-.226.069.031.162.203.162.203h.183s-.051.234-.255.269Zm-.724.198.093.328c.478-.13 1.033-.194 1.664-.194.632 0 1.187.065 1.665.194l.092-.328c-.51-.138-1.096-.207-1.757-.207-.661 0-1.247.07-1.757.207Zm3.129-.326s-.166.197-.37.162c-.203-.035-.254-.269-.254-.269h.183s.093-.172.161-.203c0 0 .085.087.078.226l.202.084Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FB0",fillRule:"evenodd",d:"M7.98 6.85s-.235.536-.605.577c-.369.042-.556-.305-.556-.305s-.025.36-.463.5c-.439.139-.67-.417-.67-.417s.229.205.583.116c.354-.09.494-.418.494-.418s.262.343.612.171c.351-.171.545-.38.545-.581v-.601s-.09-.156-.247-.156-.201.11-.201.11-.061-.625.503-.663V5.18h.031v.002c.565.038.504.663.504.663s-.044-.11-.201-.11c-.157 0-.248.156-.248.156v.6c0 .202.194.411.545.582.35.172.613-.171.613-.171s.14.329.494.418a.663.663 0 0 0 .582-.116s-.23.556-.67.417c-.438-.14-.462-.5-.462-.5s-.188.347-.557.305c-.37-.041-.604-.578-.604-.578l-.011-.708-.012.708Zm-.006-1.5c-.26 0-.313.221-.313.221.23 0 .313.1.313.1s.17-.1.34-.1c0 0-.08-.22-.34-.22Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FB0",d:"m5.95 6.5-.996.085c-.073-.852.278-1.658 1.014-2.396 1.084-1.087 3.279-.98 4.213.01.534.566.807 1.35.833 2.33l-1 .026c-.02-.75-.21-1.3-.56-1.67-.558-.591-2.104-.665-2.778.01-.542.543-.771 1.07-.726 1.604Z"}))),it=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"TH_-_Thailand_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#TH_-_Thailand_svg__a)"},(0,n.createElement)("path",{fill:"#F50101",fillRule:"evenodd",d:"M0 8h16v4H0V8ZM0 0h16v3H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#3D58DB",stroke:"#fff",strokeWidth:1.5,d:"M0 3.25h-.75v5.5h17.5v-5.5H0Z"}))),ct=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"TR_-_Turkey_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#TR_-_Turkey_svg__a)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"TR_-_Turkey_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#TR_-_Turkey_svg__b)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M8.013 8.057c-1.071-.264-1.91-1.16-1.9-2.474.01-1.23.754-2.269 1.93-2.55 1.178-.282 2.214.316 2.214.316-.325-.768-1.455-1.308-2.382-1.306-1.725.003-3.563 1.401-3.579 3.54-.016 2.218 1.969 3.48 3.715 3.478 1.4-.003 2.063-.96 2.2-1.368 0 0-1.128.628-2.198.364Zm2.439-2.894-1.067.392 1.204.425-.021 1.268.793-.951 1.31.095-1.038-.893.682-.951-1.11.373-.793-.882.04 1.124Z",clipRule:"evenodd"})))),rt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"TM_-_Turkmenistan_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#TM_-_Turkmenistan_svg__a)"},(0,n.createElement)("path",{fill:"#29C470",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"TM_-_Turkmenistan_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#TM_-_Turkmenistan_svg__b)"},(0,n.createElement)("path",{fill:"#C51918",d:"M1-.161h5v13.162H1z"}),(0,n.createElement)("mask",{id:"TM_-_Turkmenistan_svg__c",width:5,height:14,x:1,y:-1,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M1-.161h5v13.162H1z"})),(0,n.createElement)("g",{mask:"url(#TM_-_Turkmenistan_svg__c)"},(0,n.createElement)("path",{fill:"#E8AA00",fillRule:"evenodd",d:"m1.298.453-.273.35L1 .78l.265-.34V.364L1.298.27l-.02-.033-.155.157.3-.47v.16l.059.053.138-.241-.139-.233-.1.077.04.081-.027.02-.226-.378.144.099.025-.037-.138-.14.061-.068-.2-.293L1.083-1l.22.32-.058.062.135.137-.062.09-.041-.028.078.132.133-.102.169.283-.17.296L1.39.102V.038L1.291.19l.042.074-.035.109v.079Zm-.273 2.862.273-.35v-.08l.035-.109-.042-.073.099-.154v.064l.098.089.17-.296-.17-.284-.132.102-.078-.132.04.029.063-.09-.135-.137.057-.063-.219-.32-.026.023.201.294-.06.067.137.14-.025.037-.144-.098.226.377.028-.02-.04-.08.1-.077.138.232-.138.241-.058-.052v-.16l-.301.469.156-.156.019.033-.031.095-.001.006v.068L1 3.29l.025.025Zm.273 1.94-.273.35L1 5.581l.265-.34V5.165l.032-.095-.02-.033-.155.156.3-.47v.161l.059.052.138-.241-.139-.233-.1.077.04.082-.027.02-.226-.378.144.098.025-.037-.138-.14.061-.067-.2-.294.025-.023.22.32-.058.063.135.137-.062.09-.041-.029.078.132.133-.102.169.283-.17.297-.098-.09V4.84l-.099.154.042.073-.035.11v.078Zm-.273 2.677.273-.351V7.5l.035-.108-.042-.073.099-.154v.064l.098.088.17-.296-.17-.283-.132.102-.078-.132.04.028.063-.09-.135-.136.057-.063-.219-.32-.026.023.201.294-.06.067.137.14-.025.037-.144-.099.226.378.028-.02-.04-.08.1-.078.138.233-.138.241-.058-.052v-.16l-.301.469.156-.157.019.033-.031.095-.001.007v.068L1 7.907l.025.025Zm0 2.068.273-.35v-.08l.035-.109-.042-.073.099-.154v.064l.098.089.17-.297-.17-.283-.132.102-.078-.132.04.029.063-.09-.135-.137.057-.063-.219-.32-.026.023.201.294-.06.067.137.14-.025.037-.144-.098.226.377.028-.02-.04-.08.1-.077.138.232-.138.241-.058-.052v-.16l-.301.469.156-.156.019.033-.031.095-.001.006v.068L1 9.975l.025.025Zm4.95 0-.273-.35v-.08l-.035-.109.042-.073-.099-.154v.064l-.098.089-.17-.297.17-.283.132.102.078-.132-.04.029-.063-.09.135-.137-.057-.063.219-.32.026.023-.201.294.06.067-.137.14.025.037.144-.098-.226.377-.028-.02.04-.08-.1-.077-.138.232.138.241.058-.052v-.16l.301.469-.156-.156-.019.033.031.095.001.006v.068l.265.34-.025.025Zm-.273-2.42.273.352L6 7.907l-.265-.34V7.492l-.032-.095.02-.033.155.157-.3-.47v.16l-.059.053-.138-.241.139-.233.1.077-.04.082.027.019.226-.378-.144.099-.025-.037.138-.14-.061-.067.2-.294-.025-.023-.22.32.058.063-.135.137.062.09.041-.029-.078.132-.133-.102-.169.283.17.296.098-.088v-.064l.099.154-.042.073.035.109v.079Zm.273-1.975-.273-.35v-.08l-.035-.109.042-.073-.099-.154v.064l-.098.089-.17-.297.17-.283.132.102.078-.132-.04.029-.063-.09.135-.137-.057-.063.219-.32.026.023-.201.294.06.067-.137.14.025.037.144-.098-.226.377-.028-.02.04-.08-.1-.078-.138.233.138.241.058-.052v-.16l.301.469-.156-.156-.019.033.031.095.001.006v.068L6 5.58l-.025.025Zm-.273-2.64.273.35L6 3.291l-.265-.34V2.875l-.032-.095.02-.033.155.156-.3-.469v.16l-.059.052-.138-.241.139-.232.1.076-.04.082.027.02.226-.378-.144.098-.025-.037.138-.14-.061-.067.2-.294-.025-.023-.22.32.058.063-.135.137.062.09.041-.029-.078.132-.133-.102-.169.284.17.296.098-.089v-.064l.099.154-.042.073.035.11v.078ZM5.975.803 5.702.453v-.08L5.667.266 5.709.19 5.61.038v.064L5.512.19l-.17-.296.17-.283.132.102.078-.132-.04.028-.063-.09.135-.137-.057-.062.219-.32.026.023-.201.293.06.068-.137.14.025.037.144-.099-.226.378-.028-.02.04-.081-.1-.077-.138.233.138.241.058-.052v-.16l.301.469-.156-.157-.019.033.031.095.001.007v.068L6 .779l-.025.025Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#389F5D",fillRule:"evenodd",d:"M3.653 7.282h.777v.183h.177v.145h.212v.474h-.212v.146H4.43v.146h-.756l-.21.186-.21-.186h-.7V8.23h-.177v-.146H2.2V7.61h.177v-.145h.177v-.183h.722l.189-.167.188.167Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E8AA00",d:"M4.43 7.282h.075v-.075H4.43v.075Zm-.777 0-.05.056.022.02h.028v-.076Zm.777.183h-.075v.075h.075v-.075Zm.177 0h.075V7.39h-.075v.075Zm0 .145h-.075v.075h.075V7.61Zm.212 0h.075v-.075H4.82v.075Zm0 .474v.075h.075v-.075H4.82Zm-.212 0V8.01h-.075v.075h.075Zm0 .146v.075h.075V8.23h-.075Zm-.177 0v-.075h-.075v.075h.075Zm0 .146v.075h.075v-.075H4.43Zm-.756 0v-.075h-.028l-.022.019.05.056Zm-.21.186-.049.056.05.044.05-.044-.05-.056Zm-.21-.186.05-.056-.02-.019h-.03v.075Zm-.7 0h-.075v.075h.075v-.075Zm0-.146h.075v-.075h-.075v.075Zm-.177 0h-.075v.075h.075V8.23Zm0-.146h.075V8.01h-.075v.075Zm-.177 0h-.075v.075H2.2v-.075Zm0-.474v-.075h-.075v.075H2.2Zm.177 0v.075h.075V7.61h-.075Zm0-.145V7.39h-.075v.075h.075Zm.177 0v.075h.075v-.075h-.075Zm0-.183v-.075h-.075v.075h.075Zm.722 0v.075h.028l.021-.018-.05-.057Zm.189-.167.05-.056-.05-.044-.05.044.05.056Zm.965.092h-.777v.15h.777v-.15Zm.075.258v-.183h-.15v.183h.15Zm.102-.075H4.43v.15h.177v-.15Zm.075.22v-.145h-.15v.145h.15Zm.137-.075h-.212v.15h.212v-.15Zm.075.55V7.61h-.15v.474h.15Zm-.287.074h.212v-.15h-.212v.15Zm.075.071v-.146h-.15v.146h.15Zm-.252.075h.177v-.15H4.43v.15Zm.075.071V8.23h-.15v.146h.15Zm-.831.075h.756v-.15h-.756v.15Zm-.16.167.21-.186-.1-.112-.209.186.1.112Zm-.309-.186.21.186.1-.112-.21-.186-.1.112Zm-.651.02h.7v-.15h-.7v.15Zm-.075-.222v.146h.15V8.23h-.15Zm-.102.075h.177v-.15h-.177v.15Zm-.075-.22v.145h.15v-.146h-.15Zm-.102.074h.177v-.15H2.2v.15Zm-.075-.549v.474h.15V7.61h-.15Zm.252-.075H2.2v.15h.177v-.15Zm-.075-.07v.145h.15v-.145h-.15Zm.252-.075h-.177v.15h.177v-.15Zm-.075-.108v.183h.15v-.183h-.15Zm.797-.075h-.722v.15h.722v-.15Zm.05.132.189-.168-.1-.112-.19.167.1.113Zm.089-.168.188.167.1-.112-.188-.167-.1.112Z"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M2.658 7.704v-.322h.375l-.375.322Zm1.578 0v-.322h-.375l.375.322Zm-1.578.583v-.322l.375.322h-.375Zm1.578-.322v.322h-.375l.375-.322Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E8AA00",fillRule:"evenodd",d:"m3.323 7.41.129-.17.128.17h-.257Zm0 .158.129.17.128-.17h-.257Zm.129.4-.13.17h.258l-.128-.17Zm-.13.329.13.17.128-.17h-.257Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#AF0100",fillRule:"evenodd",d:"M3.325 7.39v.072h-.074v.1h.074v.073h.26v-.073h.074v-.1h-.074V7.39h-.26Zm.26.801v-.073h-.26v.073h-.074v.1h.074v.073h.26v-.073h.074v-.1h-.074ZM2.827 7.775l.123-.17.122.17h-.245Zm0 .159.123.17.122-.17h-.245Zm1.15-.33-.124.17H4.1l-.122-.17Zm-.124.33.124.17.122-.17h-.246Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E8AA00",fillRule:"evenodd",d:"M2.826 7.754v.074h-.07v.102h.07v.075h.247V7.93h.07v-.102h-.07v-.074h-.247Zm1.274.074v-.074h-.247v.074h-.071v.102h.07v.075H4.1V7.93h.07v-.102H4.1Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"TM_-_Turkmenistan_svg__d",width:3,height:3,x:2,y:8,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"m3.109 8.625-.886.5v.828l.886.52h.959l.907-.52v-.828l-.907-.5h-.96Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#TM_-_Turkmenistan_svg__d)"},(0,n.createElement)("path",{fill:"#E8AA00",d:"M2.235 9.548h1.381v.911h-1.38v-.911Z"}),(0,n.createElement)("path",{fill:"#F9E8E7",d:"M2.094 8.636h1.522v.911H2.094z"}),(0,n.createElement)("path",{fill:"#E8AA00",d:"m2.448 9.168.458-.276v.276h-.458ZM5.138 8.636H3.616v.911h1.522z"}),(0,n.createElement)("path",{fill:"#F9E8E7",d:"m4.678 9.168-.458-.276v.276h.458ZM4.997 10.46H3.616v-.911h1.38z"}),(0,n.createElement)("path",{fill:"#E8AA00",d:"m4.642 9.928-.458.276v-.276h.458Z"}),(0,n.createElement)("path",{fill:"#FCFCFC",d:"m2.448 9.87.458.277V9.87h-.458Z"})),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M3.12 9.183h.23l.23-.073.23.073h.23v.693h-.23l-.23.11-.23-.11h-.23v-.693Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C9343F",fillRule:"evenodd",d:"M3.9 8.769h.124v.14h.051v.1h-.05v.055h-.126v-.295Zm-1.256.437h-.125v.295h.125v-.054h.05v-.1h-.05v-.14Zm.177 0h-.125v.295h.125v-.295Zm-.177.365h-.125v.295h.125v-.054h.05v-.1h-.05v-.141Zm.052 0h.125v.295h-.125V9.57Zm1.77-.365h.125v.141h.05v.1h-.05v.054h-.125v-.295Zm.302 0h-.125v.295h.125v-.295Zm-.177.365h-.125v.295h.125v-.054h.05v-.1h-.05v-.141Zm.052 0h.125v.295h-.125V9.57ZM4.2 8.769h-.125v.295h.125v-.295Zm-1.026 0H3.05v.295h.125V9.01h.05v-.1h-.05v-.141Zm.052 0h.125v.295h-.125v-.295Zm.672 1.24h.125v.14h.051v.1h-.05v.054h-.126v-.295Zm.302 0h-.125v.294h.125v-.295Zm-1.026 0H3.05v.294h.125v-.054h.05v-.1h-.05v-.14Zm.052 0h.125v.294h-.125v-.295Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M3.513 9.333h.035v-.099h-.177v.113h-.146v.163h.136v-.037h-.1v-.09h.12l.18.157-.18.157h-.12v-.09h.1v-.036h-.136v.162h.146v.114h.177v-.1h-.035v.063h-.107v-.087l.184-.16.184.16v.087h-.106v-.062h-.035v.099h.177v-.114h.146v-.162H3.82v.036h.1v.09H3.8l-.18-.157.18-.156h.12v.09h-.1v.036h.136v-.163H3.81v-.113h-.177v.1h.035V9.27h.106v.087l-.184.16-.184-.16v-.087h.107v.062Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E8AA00",fillRule:"evenodd",d:"M3.792 2.4H3.17v2h.623v-2Zm-1.402.423h.39V3.9h-.39V2.823Zm1.83 0h.39V3.9h-.39V2.823Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#389F5D",fillRule:"evenodd",d:"M3.169 2.554h-.39v1.538h.39V2.554Zm-.78.423H2v.73h.39v-.73Zm2.221 0H5v.73h-.39v-.73Zm-.428-.423h-.39v1.538h.39V2.554Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E1E5E8",fillRule:"evenodd",d:"M3.09 2.746a.116.116 0 0 1-.116.116.116.116 0 0 1-.117-.116c0-.064.052-.115.117-.115s.117.051.117.115Zm-.778.385a.116.116 0 0 1-.117.115.116.116 0 0 1-.117-.115c0-.064.052-.116.117-.116.064 0 .117.052.117.116Zm0 .423a.116.116 0 0 1-.117.115.116.116 0 0 1-.117-.115c0-.064.052-.116.117-.116.064 0 .117.052.117.116Zm.662.461a.116.116 0 0 0 .117-.115.116.116 0 0 0-.117-.115.116.116 0 0 0-.117.115c0 .064.052.115.117.115Zm1.831-.769a.116.116 0 0 0 .117-.115.116.116 0 0 0-.117-.116.116.116 0 0 0-.117.116c0 .064.053.115.117.115Zm.117.308a.116.116 0 0 1-.117.115.116.116 0 0 1-.117-.115c0-.064.053-.116.117-.116.065 0 .117.052.117.116Zm-.935.461a.116.116 0 0 0 .117-.115.116.116 0 0 0-.117-.115.116.116 0 0 0-.117.115c0 .064.052.115.117.115Zm.117-1.269a.116.116 0 0 1-.117.116.116.116 0 0 1-.117-.116c0-.064.052-.115.117-.115s.117.051.117.115Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M3.597 2.592a.116.116 0 0 1-.116.116.116.116 0 0 1-.117-.116c0-.063.052-.115.117-.115.064 0 .116.052.116.115Zm-.896.423a.116.116 0 0 1-.117.116.116.116 0 0 1-.116-.116c0-.063.052-.115.116-.115.065 0 .117.052.117.115Zm.78 1.347a.116.116 0 0 0 .116-.116.116.116 0 0 0-.116-.115.116.116 0 0 0-.117.115c0 .064.052.116.117.116Zm1.051-1.347a.116.116 0 0 1-.116.116.116.116 0 0 1-.117-.116c0-.063.052-.115.117-.115.064 0 .116.052.116.115Zm-1.948.808a.116.116 0 0 0 .117-.115.116.116 0 0 0-.117-.116.116.116 0 0 0-.116.116c0 .063.052.115.116.115Zm1.948-.115a.116.116 0 0 1-.116.115.116.116 0 0 1-.117-.115c0-.064.052-.116.117-.116.064 0 .116.052.116.116Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"m2.803 3.196.38-.343h.615l.433.393h.574V3.4h-.559v.008l-.448.456h-.615l-.38-.412V3.4h-.647v-.154h.647v-.05Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E8AA00",fillRule:"evenodd",d:"m3.505 3.138.185.187-.194.183-.193-.183.184-.187.01-.008.008.008Zm.034.451.022-.02-.023-.02.192-.183.2.203-.09.095h-.053l-.1.063-.148-.138Zm-.043.04-.184.17-.124-.077h-.061l-.146-.154.239-.242-.24-.227.157-.153.058.044.082-.083-.025-.025.042-.04.202.204.202-.205.042.04-.025.026.083.083.057-.044.158.153-.24.227.238.242-.145.154h-.062l-.123.077-.185-.17ZM3.6 3.15l.003-.003-.056-.051-.007-.007.144-.133.11.111.058-.045.078.075-.197.187-.133-.134Zm-.123.418-.171.158-.1-.063h-.053l-.09-.095.2-.203.214.203Zm-.413-.47.198.186.192-.195-.144-.133-.11.111-.058-.045-.078.075ZM2.224 10.72c-.104-.132-.175-.221-.193-.22-.059.004-.113.622.645 1.092 0 0 .112.062.177 0 .065-.062 0-.154 0-.154a6.621 6.621 0 0 1-.629-.717Zm2.552 0c.104-.132.175-.221.193-.22.059.004.113.622-.645 1.092 0 0-.112.062-.177 0-.065-.062 0-.154 0-.154.245-.23.474-.52.629-.717Zm-.056.832c-.249.074-.537.089-.648.041a.637.637 0 0 0-.112-.036 1.008 1.008 0 0 0-.343-.011l-.05.006a.336.336 0 0 1-.02.002.108.108 0 0 0-.025.003.108.108 0 0 0-.025-.003l-.02-.002-.05-.006a1.008 1.008 0 0 0-.344.011.636.636 0 0 0-.111.036c-.11.048-.4.033-.649-.041 0 0 .454.182.723.101a.479.479 0 0 1 .083-.026.774.774 0 0 1 .25-.01c-.04.018-.087.04-.14.06v.023c.106-.043.23-.063.283-.07.053.007.177.027.283.07v-.022a2.952 2.952 0 0 1-.14-.062.774.774 0 0 1 .25.01.479.479 0 0 1 .083.027c.269.08.722-.101.722-.101Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#389F5D",fillRule:"evenodd",d:"m2.882 4.989-.626.551v.526l.547.55h1.118l.616-.587v-.447l-.616-.593H2.882Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M3.097 5.047h-.141v.11h.141v-.11Zm0 1.43h-.141v.11h.141v-.11Zm.213 0h.141v.11H3.31v-.11Zm.141-1.43H3.31v.11h.141v-.11Zm.213 1.43h.141v.11h-.141v-.11Zm.141-1.43h-.141v.11h.141v-.11Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E8AA00",fillRule:"evenodd",d:"M3.277 5.019h-.144v.11h.144v-.11Zm0 1.458h-.144v.11h.144v-.11Zm.216-1.458h.144v.11h-.144v-.11Zm.144 1.458h-.144v.11h.144v-.11Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#750100",fillRule:"evenodd",d:"M2.457 4.921h1.89v.292h.27V6.42h-.27v.25h-1.89v-.25h-.294V5.213h.294v-.292Zm.106.401h-.294v.99h.294v.249h1.678v-.25h.27v-.989h-.27V5.03H2.563v.292Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#389F5D",fillRule:"evenodd",d:"M3.204 4.8h-.177v.182h.176V4.8Zm.283 0H3.31v.182h.177V4.8Zm.106 0h.177v.182h-.177V4.8Zm-.39 1.823h-.176v.182h.176v-.182Zm.107 0h.177v.182H3.31v-.182Zm.46 0h-.177v.182h.177v-.182Zm-1.773-.404v-.177h.183v.177h-.183Zm0-.468v.177h.183V5.75h-.183Zm0-.115v-.177h.183v.177h-.183Zm2.549.406v.177h.182v-.177h-.182Zm0-.114V5.75h.182v.177h-.182Zm0-.47v.178h.182v-.177h-.182Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"m2.89 5.142-.306.266v.859l.253.18h1.099l.252-.18v-.86l-.285-.265H2.889Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E1E5E8",fillRule:"evenodd",d:"m3.402 5.498-.369.315h.369v-.315Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E8AA00",d:"m3.402 6.099-.369-.315h.369v.315Z"}),(0,n.createElement)("path",{fill:"#E8AA00",fillRule:"evenodd",d:"m3.37 5.498.368.315H3.37v-.315Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#29AE66",fillRule:"evenodd",d:"M3.386 5.898a.112.112 0 1 0 0-.223.112.112 0 0 0 0 .223Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E1E5E8",d:"m3.37 6.099.368-.315H3.37v.315Z"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M2.602 5.675h-.319v.102h.319v-.102Zm0 .186h-.319v.102h.319v-.102Zm1.593-.186h.318v.102h-.318v-.102Zm.318.186h-.318v.102h.318v-.102Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E8AA00",fillRule:"evenodd",d:"M2.566 5.566h-.283v.111h.283v-.111Zm0 .186h-.283v.111h.283v-.111Zm-.283.186h.283v.111h-.283v-.111Zm2.195-.372h-.283v.111h.283v-.111Zm-.283.186h.283v.111h-.283v-.111Zm.283.186h-.283v.111h.283v-.111ZM4.993.795 4.99.998H3.512l-.001.92h-.464c-.08 0-.303-.156-.303-.156h-.377l-.174-.177v-.179l-.186-.221V.982h1.48l.001-.92h.464c.081 0 .303.155.303.155h.377l.174.178v.179l.187.221Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E1E5E8",fillRule:"evenodd",d:"M2.007.795v.203h1.48l.001.92h.464c.081 0 .303-.156.303-.156h.377l.174-.177v-.179l.187-.221L4.99.982H3.512l-.001-.92h-.464c-.08 0-.303.155-.303.155h-.377l-.174.178v.179l-.186.221Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M3.001.343 2.985.264l.32-.073C3.341.173 3.408.12 3.5.034l.043.049.008-.009c.091.086.158.139.196.157l.32.073-.017.079-.177-.037.017.015a.22.22 0 0 0-.04.032l-.074-.01.007-.026-.02-.003a.85.85 0 0 0-.045.11L3.643.442l.03-.145L3.504.14 3.386.25c.015.013.03.029.044.046a.705.705 0 0 1-.036.013H3.39l.02.093-.075.022a1.117 1.117 0 0 0-.028-.072l-.007.001a.22.22 0 0 0-.04-.032l.022-.019a.185.185 0 0 0-.01-.015l-.27.056Zm.013.286.043-.067-.22-.148L2.86.38 2.798.333 2.771.37 2.684.312 2.64.379l.084.056-.017.024.063.048.02-.028.223.15Zm-.272.08.042-.067-.22-.148.024-.034-.063-.047-.027.038-.087-.059-.043.067.084.056-.017.024.063.048.02-.028.224.15Zm-.117.24.042-.067-.22-.148L2.47.7 2.41.653 2.382.69 2.294.632l-.043.067.084.056-.017.024.063.048.02-.028.224.15Zm.003.192-.042-.067-.224.15-.02-.027-.063.047.017.024-.083.056.042.067.088-.058.027.038.062-.048-.024-.034.22-.148Zm.075.173.042.067-.22.148.024.034-.062.048-.028-.038-.087.058-.043-.067.084-.056-.017-.024.063-.047.02.027.224-.15Zm.272.08.043.067-.22.148.024.034-.063.048-.027-.038-.087.058-.043-.067.084-.056-.017-.024.063-.047.02.027.223-.15Zm.416.383a.7.7 0 0 0-.036-.013L3.34 1.76l.03-.139-.075-.022a.603.603 0 0 1-.063.137l-.27-.055-.016.078.308.07v.001l.044.03.006-.004c.039.027.092.072.158.133l.025-.028.025.028c.091-.085.158-.138.196-.157l.01-.002a.31.31 0 0 0 .041.03l.045-.03-.005-.015.005-.005.223-.051-.016-.078-.27.055A.602.602 0 0 1 3.68 1.6l-.075.022.03.145-.147.138-.114-.107a.542.542 0 0 0 .018-.02Zm.954-.636.043-.067.224.15.02-.027.062.047-.017.024.084.056-.043.067-.087-.058-.027.038-.063-.048.024-.034-.22-.148Zm-.117.24.043-.067.224.15.02-.027.062.047-.017.024.084.056-.043.067-.087-.058-.027.038-.063-.048.024-.034-.22-.148Zm-.273.08.043-.067.224.15.02-.027.063.047-.018.024.084.056-.042.067-.088-.058-.027.038-.063-.048.025-.034-.22-.148Zm.429-.539.043.067.224-.15.02.028.062-.048-.017-.024L4.8.74 4.757.672 4.67.731 4.643.693 4.58.74l.024.034-.22.148Zm-.117-.24L4.31.75 4.534.6l.02.028.062-.048L4.6.555 4.683.5 4.64.432l-.087.059-.027-.038L4.463.5l.024.034-.22.148Zm-.273-.08.043.067.224-.15.02.028.063-.048-.018-.024L4.41.42 4.368.352 4.28.411 4.253.373 4.19.42l.025.034-.22.148Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"m3.104.577.441-.234v.64h1.091l-.26.187v.245h-.411l-.442.234v-.64h-1.09l.26-.188V.577h.41Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#29AE66",fillRule:"evenodd",d:"M3.965.577 3.523.343v.64h-1.09l.26.187v.245h.41l.442.234v-.64h1.091L4.376.82V.577h-.411Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#29AE66",fillRule:"evenodd",d:"M2.89.742 2.962.6l.183.098.05-.075.128.091-.039.059.542.29.034-.05.128.091-.023.033.059.032-.072.142-.076-.04-.061.09-.129-.09.05-.075-.541-.29-.045.066L3.022.88l.034-.05L2.89.742Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M4.045.703 3.963.567l-.176.11-.055-.071-.122.1.043.055-.52.327-.037-.047-.122.1.025.032-.056.035.082.136.072-.045.068.087.122-.1-.056-.071.52-.327.05.062.121-.1-.037-.046.16-.1Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M9.537 1s1.165 2.76.13 3.933C8.632 6.106 6 5.88 6 5.88s3.378 1.526 4.85-.575C12.322 3.204 9.537 1 9.537 1Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"m7.422 2.624-.308.217.109-.363-.3-.23.376-.008.123-.358.123.358.376.008-.3.23.11.363-.309-.217Zm.06 1.003-.309.217.11-.364-.3-.23.375-.007.124-.359.123.359.376.008-.3.23.109.363-.308-.217Zm-1.246.294.309-.217.308.217-.109-.363.3-.23-.376-.008-.123-.358-.124.358-.375.008.299.23-.109.363Zm1.246.758-.309.217.11-.364-.3-.23.375-.007.124-.36.123.36.376.008-.3.229.109.364-.308-.217Zm.71-1.142.309-.217.308.217-.109-.363.3-.23-.376-.007-.123-.36-.124.36-.375.007.299.23-.109.363Z",clipRule:"evenodd"})))),dt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"AE_-_United_Arab_Emirates_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#AE_-_United_Arab_Emirates_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 0h5v12H0z"}))),mt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"UZ_-_Uzbekistan_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#UZ_-_Uzbekistan_svg__a)"},(0,n.createElement)("path",{fill:"#14DC5A",fillRule:"evenodd",d:"M0 8h16v4H0V8Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#0099B5",fillRule:"evenodd",d:"M0 0h16v5H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",stroke:"#C51918",strokeWidth:.75,d:"M-1 4.625h-.375v3.75h18.75v-3.75H-1Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"m8.364 1.2-.492.28.14-.567-.47-.417h.615l.206-.536.242.536h.524l-.412.417.198.566-.551-.279Zm-2.52 1.538.492-.28.551.28-.198-.567.412-.416h-.524l-.242-.536-.206.536h-.615l.471.416-.14.567ZM4.489 3.777l-.491.278.14-.566-.47-.417h.614l.207-.536.241.536h.524l-.411.417.198.566-.552-.278Zm1.876.002-.49.278.14-.566-.471-.416h.614l.207-.536.241.536h.524l-.411.416.198.566-.552-.278Zm2 0-.49.278.14-.566-.471-.416h.614l.207-.536.241.536h.524l-.411.416.198.566-.552-.278Zm-.52-1.041.492-.28.551.28-.198-.567.412-.416h-.524l-.242-.536-.206.536h-.615l.471.416-.14.567Zm2.03 1.32.49-.28.552.28-.198-.567.412-.416h-.525l-.241-.536-.207.536h-.614l.47.416-.14.566Zm.462-1.6-.491.28.14-.567-.47-.416h.614l.206-.536.242.536h.524l-.412.416.198.567-.55-.28Zm-.464-.979.492-.279.551.28-.198-.567.412-.417h-.524l-.242-.536-.206.536h-.615l.47.417-.14.566Zm2.492 2.3-.49.278.14-.566-.471-.416h.615l.206-.536.241.536h.524l-.411.416.198.566-.552-.278Zm-.52-1.041.492-.28.551.28-.198-.567.412-.416h-.524l-.242-.536-.206.536h-.615l.471.416-.14.567Zm.52-1.538-.492.28.14-.567-.47-.417h.615l.206-.536.242.536h.524l-.412.417.198.566-.551-.279ZM2.942 4.12s-1.207-.327-1.185-1.54C1.78 1.37 3 1.056 3 1.056c-.498-.19-1.972.064-2 1.514-.027 1.45 1.478 1.735 1.942 1.551Z",clipRule:"evenodd"}))),ht=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"VN_-_Vietnam_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#VN_-_Vietnam_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"VN_-_Vietnam_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#VN_-_Vietnam_svg__b)"},(0,n.createElement)("path",{fill:"#FFD221",fillRule:"evenodd",d:"M8.031 7.99 5.456 9.627l.863-2.866-1.837-1.873 2.533-.055 1.12-2.83L9.157 4.87l2.526.044-1.899 1.907.887 2.727-2.64-1.558Z",clipRule:"evenodd"})))),ot=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"YE_-_Yemen_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#YE_-_Yemen_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"YE_-_Yemen_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#YE_-_Yemen_svg__b)"},(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#272727",d:"M0 8v4h16V8H0Z"})))),vt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BZ_-_Belize_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#BZ_-_Belize_svg__a)"},(0,n.createElement)("path",{fill:"#0168B4",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"BZ_-_Belize_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#BZ_-_Belize_svg__b)"},(0,n.createElement)("path",{fill:"#E93C43",fillRule:"evenodd",d:"M0 0v2h16V0H0ZM0 10v2h16v-2H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M8 9a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z"}),(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M4.5 6a3.5 3.5 0 1 0 7 0 3.5 3.5 0 0 0-7 0ZM11 6a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#5B8C39",fillRule:"evenodd",d:"M5 6a3 3 0 1 0 6 0 3 3 0 0 0-6 0Zm5.3 0a2.3 2.3 0 1 1-4.6 0 2.3 2.3 0 0 1 4.6 0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#5B8C39",fillRule:"evenodd",d:"m6.5 7 1.47-.188L9.5 7v.5l-1.53-.188L6.5 7.5V7Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#769DF1",fillRule:"evenodd",d:"M7 5h2s.141 3-1 3-1-3-1-3Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",d:"M8 5h1v1H8z"}),(0,n.createElement)("path",{fill:"#F6F7F8",d:"M7 5h1v1H7z",opacity:.6}),(0,n.createElement)("rect",{width:2,height:1,x:7,y:4,fill:"#5B8C39",opacity:.66,rx:.5}),(0,n.createElement)("path",{fill:"#E9AD35",fillRule:"evenodd",d:"M6.9 6.4c.276 0 .5-.448.5-1s-.224-1-.5-1-.5.448-.5 1 .224 1 .5 1Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#5C2216",fillRule:"evenodd",d:"M9.1 6.4c.276 0 .5-.448.5-1s-.224-1-.5-1-.5.448-.5 1 .224 1 .5 1Z",clipRule:"evenodd"})))),_t=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"CR_-_Costa_Rica_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#CR_-_Costa_Rica_svg__a)"},(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"CR_-_Costa_Rica_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#CR_-_Costa_Rica_svg__b)"},(0,n.createElement)("path",{fill:"#E31D1C",stroke:"#F7FCFF",strokeWidth:2,d:"M0 4h-1v4h18V4H0Z"})))),ut=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SV_-_El_Salvador_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#SV_-_El_Salvador_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"SV_-_El_Salvador_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#SV_-_El_Salvador_svg__b)"},(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 0v4h16V0H0ZM0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{stroke:"#E8AA00",strokeWidth:.5,d:"M9.713 5.93a1.82 1.82 0 1 1-3.642 0 1.82 1.82 0 0 1 3.642 0Z"}),(0,n.createElement)("path",{fill:"#1E601B",fillRule:"evenodd",d:"M6.905 4.831s-.476.784-.476 1.322S7 7.368 7.896 7.368c.875 0 1.504-.523 1.523-1.215.019-.692-.47-1.184-.47-1.184s.276.996.138 1.4c-.139.403-.587.891-1.19.83-.604-.063-1.177-.806-1.177-1.046s.185-1.322.185-1.322Z",clipRule:"evenodd"}),(0,n.createElement)("path",{stroke:"#188396",strokeWidth:.5,d:"M7.08 6.164h1.604"}),(0,n.createElement)("path",{stroke:"#E8AA00",strokeWidth:.5,d:"M7.23 5.903h1.38M8.525 6.206H7.297l.62-1.029.608 1.029Z"})))),pt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"GT_-_Guatemala_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#GT_-_Guatemala_svg__a)"},(0,n.createElement)("path",{fill:"#58A5FF",fillRule:"evenodd",d:"M11 0h5v12h-5V0ZM0 0h6v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M5 0h6v12H5V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C6C6C6",d:"m6.382 8.519-.363-.344 3.844-4.064.363.344-3.844 4.064Z"}),(0,n.createElement)("path",{fill:"#5AB92D",fillRule:"evenodd",d:"M6.492 4.053s-1.23.742-1.23 2.604c0 1.861 2.996 2.113 2.996 2.113S6.465 7.677 6.23 6.894c-.234-.783.262-2.841.262-2.841Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#5AB92D",fillRule:"evenodd",d:"M9.527 4.053s1.23.742 1.23 2.604c0 1.861-2.995 2.113-2.995 2.113S9.646 7.69 9.91 6.657c.264-1.033-.383-2.604-.383-2.604Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#5AB92D",d:"m7.404 3.8.498.045c-.017.18.082.364.326.561.784.634 1.206 1.426.875 2.325-.24.653-.565 1.203-.977 1.651l-.368-.339c.366-.397.658-.891.876-1.484.237-.646-.084-1.25-.72-1.764-.364-.294-.543-.629-.51-.995Z"}),(0,n.createElement)("path",{fill:"#EFE298",fillRule:"evenodd",d:"m7.087 4.904.525 1.484h-.386s-.14.468.123.468h1.614s.176-.118.088-.468c-.088-.351-.532-1.32-.532-1.32s.19-.16.19-.279c0-.119-.19-.132-.19-.132H7.322c-.153.026-.235.247-.235.247Z",clipRule:"evenodd"}))),ft=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"HN_-_Honduras_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#HN_-_Honduras_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"HN_-_Honduras_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fill:"#4564F9",fillRule:"evenodd",clipRule:"evenodd",mask:"url(#HN_-_Honduras_svg__b)"},(0,n.createElement)("path",{d:"M0 0v4h16V0H0ZM0 8v4h16V8H0ZM8.41 6.566l-.589.309.113-.655-.476-.51h.657l.294-.644.294.643h.657l-.475.511.112.655-.588-.31ZM5.41 5.566l-.589.309.113-.655-.476-.51h.657l.294-.644.294.643h.657l-.475.511.112.655-.588-.31ZM5.41 7.566l-.589.309.113-.655-.476-.51h.657l.294-.644.294.643h.657l-.475.511.112.655-.588-.31ZM11.41 5.566l-.589.309.113-.655-.476-.51h.657l.294-.644.294.643h.657l-.475.511.112.655-.588-.31ZM11.41 7.566l-.589.309.113-.655-.476-.51h.657l.294-.644.294.643h.657l-.475.511.112.655-.588-.31Z"})))),Et=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"NI_-_Nicaragua_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#NI_-_Nicaragua_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"NI_-_Nicaragua_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#NI_-_Nicaragua_svg__b)"},(0,n.createElement)("path",{fill:"#0080EC",fillRule:"evenodd",d:"M0 0v4h16V0H0ZM0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#D0AB00",fillRule:"evenodd",d:"M8 4c.094 0 .187.007.278.02l-.1.637a1.368 1.368 0 0 0-.436.013l-.046-.647c.1-.015.2-.023.304-.023Zm.576.084-.174.622a1.355 1.355 0 0 1 .952 1.339l.644.054L10 6a2 2 0 0 0-1.424-1.916Zm1.18 2.873a2 2 0 0 1-1.608 1.038v-.648c.37-.04.696-.23.915-.508l.694.118Zm-3.468.078a2 2 0 0 0 1.598.962V7.35a1.353 1.353 0 0 1-.968-.535l-.63.22Zm-.286-.95a2 2 0 0 1 1.274-1.95l.167.63c-.468.211-.794.68-.798 1.225l-.643.096Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#7CDFFF",fillRule:"evenodd",d:"M7.987 4.475 6.62 6.84h2.758l-1.39-2.365Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"NI_-_Nicaragua_svg__c",width:4,height:3,x:6,y:4,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M7.987 4.475 6.62 6.84h2.758l-1.39-2.365Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#NI_-_Nicaragua_svg__c)"},(0,n.createElement)("path",{stroke:"#E31D1C",strokeWidth:.5,d:"M8 7.56a1.195 1.195 0 1 0 0-2.392A1.195 1.195 0 0 0 8 7.56Z"}),(0,n.createElement)("path",{stroke:"#FFD018",strokeWidth:.5,d:"M8 7.56a1.195 1.195 0 1 0 0-2.392A1.195 1.195 0 0 0 8 7.56Z"}),(0,n.createElement)("path",{stroke:"#4EDD00",strokeWidth:.5,d:"M8 7.56a1.195 1.195 0 1 0 0-2.392A1.195 1.195 0 0 0 8 7.56Z"}),(0,n.createElement)("path",{stroke:"#3D58DB",strokeWidth:.5,d:"M8 7.56a1.195 1.195 0 1 0 0-2.392A1.195 1.195 0 0 0 8 7.56Z"}),(0,n.createElement)("path",{fill:"#3D58DB",d:"M6.509 6.109h3.127v.909H6.509z"}),(0,n.createElement)("path",{fill:"#97C923",fillRule:"evenodd",d:"m6.719 6.495.623-.62.191.31.134-.377.148.283.156-.215.202.215.185-.283.158.283.181-.215.424.45.076.17-2.478.125v-.126Z",clipRule:"evenodd"}))))),gt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"PA_-_Panama_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#PA_-_Panama_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"PA_-_Panama_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#PA_-_Panama_svg__b)"},(0,n.createElement)("path",{fill:"#E31D1C",d:"M8 0v6h8V0H8ZM11.51 9.575l-1.15.712.446-1.196-.978-.905h1.187l.495-1.294.379 1.294h1.189l-.857.905.42 1.196-1.13-.712Z"}),(0,n.createElement)("path",{fill:"#2E42A5",d:"m4.51 4.182-1.15.713.446-1.196-.978-.905h1.187L4.51 1.5l.379 1.294h1.189l-.857.905.42 1.196-1.13-.713ZM0 6v6h8V6H0Z"})))),Zt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"AG_-_Antigua_and_Barbuda_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#AG_-_Antigua_and_Barbuda_svg__a)"},(0,n.createElement)("path",{fill:"#1B1B1B",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F9D313",fillRule:"evenodd",d:"M8 7 6.887 8.9l.028-2.098-2.032 1.325 1.162-1.88-2.55.489 2.068-1.291L3 5l2.563-.445-2.068-1.29 2.55.488-1.162-1.88 2.032 1.325L6.887 1.1 8 3l1.113-1.9-.028 2.098 2.032-1.325-1.162 1.88 2.55-.489-2.068 1.291L13 5l-2.563.445 2.068 1.29-2.55-.488 1.162 1.88-2.032-1.325.028 2.098L8 7Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F1F9FF",d:"M3 7h10v5H3z"}),(0,n.createElement)("path",{fill:"#4A80E8",d:"M1 5h14v2H1z"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"m0 3 8 9 8-9v9H0V3Z",clipRule:"evenodd"}))),yt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BS_-_Bahamas_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#BS_-_Bahamas_svg__a)"},(0,n.createElement)("path",{fill:"#FECA00",d:"M0 0h16v12H0V0Z"}),(0,n.createElement)("path",{fill:"#3CB1CF",d:"M0 0v4h16V0H0ZM0 8v4h16V8H0Z"}),(0,n.createElement)("path",{fill:"#272727",d:"m0 0 8 6-8 6V0Z"}))),kt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BB_-_Barbados_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#BB_-_Barbados_svg__a)"},(0,n.createElement)("path",{fill:"#2E42A5",d:"M11 0h5v12h-5V0Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"M5 0h6v12H5V0Z"}),(0,n.createElement)("path",{fill:"#2E42A5",d:"M0 0h5v12H0V0Z"}),(0,n.createElement)("path",{fill:"#000",d:"M9.217 7.637c.317-.655.681-1.85.681-1.85l.277-.822-1.097.398.26.15s-.453.906-.681 1.348c-.228.442-.25.15-.25.15l.038-3.085.252-.068-.628-1.206-.8 1.223.352.01s-.029 3.253-.078 3.126c-.027-.073-.1.151-.136.064-.222-.545-.526-1.601-.526-1.601l.178-.167-1.195-.245.357.734s.314 1.308.66 1.947c.077.202.453.288.453.288s.183-.186.229 0c.045.186 0 .938 0 .938h.843s-.059-.71 0-.938c.06-.228.244 0 .244 0s.49-.192.567-.394Z"}))),wt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"CU_-_Cuba_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#CU_-_Cuba_svg__a)"},(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"CU_-_Cuba_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#CU_-_Cuba_svg__b)"},(0,n.createElement)("path",{fill:"#3D58DB",stroke:"#F7FCFF",strokeWidth:2,d:"M0 4h-1v4h18V4H0Z"})),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0v12l9-6-9-6Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"CU_-_Cuba_svg__c",width:9,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12l9-6-9-6Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#CU_-_Cuba_svg__c)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"m3.344 7.108-1.836.97.894-1.948-1.14-1.04 1.407-.052.675-1.76.515 1.76h1.404L4.327 6.13l.744 1.947-1.727-.969Z",clipRule:"evenodd"})))),Mt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"DM_-_Dominica_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#DM_-_Dominica_svg__a)"},(0,n.createElement)("path",{fill:"#279E19",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"DM_-_Dominica_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#DM_-_Dominica_svg__b)"},(0,n.createElement)("path",{fill:"#F7FCFF",d:"M8 0h1v7h7v1H9v4H8V8H0V7h8V0Z"}),(0,n.createElement)("path",{fill:"#272727",d:"M7 0h1v6h8v1H8v5H7V7H0V6h7V0Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"M6 0h1v5h9v1H7v6H6V6H0V5h6V0Z"}),(0,n.createElement)("path",{fill:"#C51918",d:"M8 10a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"}),(0,n.createElement)("path",{fill:"#804BFF",d:"M7.363 4.206s.19-.616.631-.298c.692.341.92.733 1.188 1.176.267.444-.655.119-.827-.13-.172-.25-1.127-.331-.992-.54.135-.208 0-.208 0-.208Z"}),(0,n.createElement)("path",{fill:"#A95601",d:"M7.207 7.363s-.47.642 0 .642 2.374-.138 2.146-.32c-.228-.184-1.92 0-1.92 0l-.226-.322Z"}),(0,n.createElement)("path",{fill:"#804BFF",d:"M7.91 7.342c-.05-.054-.906-1.997-.508-2.4.398-.405.632-.167.632.438s.024 2.112-.125 1.962Z"}),(0,n.createElement)("path",{fill:"#279E19",d:"M7.859 7.027s-.05.472.193 1.024c.243.55.734.54.734.09 0-.452.357-.029.495.272.137.302-.219-2.673-.724-3.339-.505-.666-.992-.708-.845-.278.147.43.147 2.231.147 2.231Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"M7.564 3.8s-.214.137-.214.514c0 .378.506-.116.506-.116L7.564 3.8ZM7.61 3.657l.44-.232.44.232-.083-.491.356-.348-.493-.071-.22-.447-.22.447-.493.071.356.348-.084.49Zm0 5.9.44-.232.44.232-.083-.491.356-.348-.493-.071-.22-.447-.22.447-.493.071.356.348-.084.49Zm2.8-2.8.083-.491-.356-.348.493-.071.22-.447.22.447.493.071-.356.348.084.49-.441-.231-.44.232Zm-5.7 0 .44-.232.44.232-.083-.491.356-.348-.493-.071-.22-.447-.22.447-.493.071.356.348-.084.49ZM6.233 4.35l-.14.478-.294-.401-.498.015.29-.405-.167-.469.474.152.394-.305.002.498.412.28-.473.157Zm4.105 4.379.14-.478.472-.156-.412-.28-.002-.499-.394.305-.474-.152.168.47-.29.404.497-.016.295.402Zm.07-4.437-.14.478-.294-.402-.498.015.29-.404-.167-.469.474.152.394-.305.002.498.412.28-.473.157ZM6.211 8.87l.14-.478.472-.156-.411-.28-.003-.499-.394.305-.474-.152.168.47-.29.404.497-.016.295.402Z"})))),Rt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"DO_-_Dominican_Republic_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#DO_-_Dominican_Republic_svg__a)"},(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"DO_-_Dominican_Republic_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#DO_-_Dominican_Republic_svg__b)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M7 0h2v5h7v2H9v5H7V7H0V5h7V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#4257BF",d:"M0 0h7v5H0zM9 7h7v5H9z"}),(0,n.createElement)("path",{fill:"#309404",d:"m6.818 5.555.498.048c-.085.89.026 1.265.206 1.265v.5c-.623 0-.815-.65-.704-1.813ZM9.213 5.555l-.497.048c.085.89-.026 1.265-.206 1.265v.5c.622 0 .815-.65.703-1.813Z"}),(0,n.createElement)("path",{fill:"#003994",d:"M7.364 5.346h.473v.738h-.473zM8.09 6.223h.474v.375c0 .2-.163.364-.364.364h-.11v-.739Z"}),(0,n.createElement)("path",{fill:"#DE2110",d:"M8.054 5.3h.473v.738h-.473zM7.364 6.223h.472v.739h-.109a.364.364 0 0 1-.363-.364v-.375Z"}),(0,n.createElement)("path",{fill:"#00319C",d:"m7.167 5.305-.334-.372c.353-.318.721-.483 1.1-.483.38 0 .747.165 1.1.483l-.334.372c-.267-.241-.521-.355-.766-.355-.244 0-.498.114-.766.355Z"}),(0,n.createElement)("path",{fill:"#DE2110",d:"m7.204 7.797-.335-.372c.353-.317.721-.483 1.1-.483.38 0 .748.166 1.1.483l-.334.372c-.267-.24-.521-.355-.766-.355-.244 0-.498.114-.765.355Z"})))),Ft=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"GD_-_Grenada_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#GD_-_Grenada_svg__a)"},(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M0 0h16v11a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M3 3h10v6H3V3Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"GD_-_Grenada_svg__b",width:10,height:6,x:3,y:3,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M3 3h10v6H3V3Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#GD_-_Grenada_svg__b)"},(0,n.createElement)("path",{fill:"#23875F",fillRule:"evenodd",d:"m3 3 5 3-5 3V3ZM13 3 8 6l5 3V3Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"GD_-_Grenada_svg__c",width:5,height:6,x:8,y:3,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M13 3 8 6l5 3V3Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M8 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"m7.965 6.657-1.036.718.331-1.23-.76-.786 1.03-.043.435-1.216.435 1.216h1.028l-.759.829.38 1.157-1.084-.645Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"m4.388 2.221.566-.35.593.315-.208-.566.415-.405h-.562L4.954.621l-.238.594-.562.021.415.384-.18.601Zm3 0 .566-.35.593.315-.208-.566.415-.405h-.562L7.954.621l-.238.594-.562.021.415.384-.18.601Zm3.566-.35-.566.35.181-.601-.415-.384.562-.02.238-.595.238.594h.562l-.415.405.208.566-.593-.316Zm-6.566 9.213.566-.351.592.315-.207-.565.414-.405h-.561l-.238-.594-.238.594-.563.02.416.385-.181.6Zm3.566-.351-.566.35.18-.6-.415-.384.563-.021.238-.594.238.594h.561l-.414.405.207.565-.592-.315Zm2.434.35.566-.35.592.315-.207-.565.414-.405h-.561l-.238-.594-.238.594-.563.02.416.385-.181.6Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M4.317 6.386s.27.24.416.321c.05-.191-.062-.626-.062-.626-.032-.103-.379-.29-.379-.29s-.097.328.025.595Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M4.598 6.965s-.692-.323-.762-.78C3.766 5.728 3.915 5 3.915 5s1.123.255 1.2.803c.076.548-.178.892-.178.892s-.26-.668-.505-.742c0 0 0 .662.166 1.012Z",clipRule:"evenodd"}))),Ht=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"HT_-_Haiti_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#HT_-_Haiti_svg__a)"},(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"HT_-_Haiti_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#HT_-_Haiti_svg__b)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 6v6h16V6H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#fff",d:"M3 2h10v8H3z"}),(0,n.createElement)("mask",{id:"HT_-_Haiti_svg__c",width:10,height:8,x:3,y:2,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M3 2h10v8H3z"})),(0,n.createElement)("g",{mask:"url(#HT_-_Haiti_svg__c)"},(0,n.createElement)("path",{fill:"#279E19",fillRule:"evenodd",d:"M3 8.385s2.4-1.064 5-.999c2.6.065 5 1.249 5 1.249V10H3V8.385Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#026A16",fillRule:"evenodd",d:"M5.72 3.51a.094.094 0 0 0-.006.111c.16.254.866 1.257 2.01 1.257 1.103 0 1.924-.93 2.157-1.226a.1.1 0 0 0-.026-.15C9.685 3.4 9.302 3.2 8.86 3.2c-.597 0-1.135.255-1.135.255S6.924 3.2 6.414 3.2a.893.893 0 0 0-.694.31Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"m7.895 7.407-.896-.567c-.524.243-.786.722-.786 1.44l.694 1.139h2.117l.5-1.14s.196-1.473-.5-1.71l-1.13.838Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#0A328C",fillRule:"evenodd",d:"M5.934 5.816s-1.353.47-1.353 2.202l1.805.357s-.022-.993.518-1.458l-.97-1.101Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFD018",d:"m5.268 5.264.215-.218L8 7.523l-.215.218-2.517-2.477ZM4.481 5.845l.177-.252 3.237 2.463-.177.252L4.48 5.845ZM3.943 6.811l.14-.277 3.676 2.004-.139.277L3.943 6.81Z"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"m4.59 8.004 2.421.318-.136.395h-.384l.262.224.589.162v-.386h.516v.819H6.753l-.424-.595s-.357.411-.704.411c-.348 0-.69-.133-.69-.582v-.312l-.344-.136v-.318Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#0A328C",fillRule:"evenodd",d:"M9.808 5.723s1.586.563 1.586 2.295l-1.82.356s-.083-1.28-.644-1.746l.878-.905Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFD018",d:"m10.68 5.264-.225-.218-2.712 2.277.225.217 2.711-2.276ZM11.499 5.845l-.185-.252-3.37 2.463v.462l3.555-2.673Z"}),(0,n.createElement)("path",{fill:"#FFD018",d:"m12.058 6.811-.143-.277-4.058 1.971.143.278 4.058-1.972Z"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"m11.385 8.004-2.522.318.142.395h.4l-.272.224-.614.162v-.386H7.98v.819h1.152l.441-.595s.371.411.733.411.72-.133.72-.582v-.312l.358-.136v-.318Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M7.692 4.679s-.164 1.203-.164 1.693.164 3.094.164 3.094h.42V6.372c0-.409-.247-1.693-.247-1.693h-.173Z",clipRule:"evenodd"}))))),bt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"JM_-_Jamaica_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#JM_-_Jamaica_svg__a)"},(0,n.createElement)("path",{fill:"#093",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",stroke:"#FECA00",strokeWidth:1.35,d:"m-.07-.52-1.105-.912v14.864l1.105-.911 7.269-6L7.829 6l-.63-.52-7.27-6Z"}),(0,n.createElement)("path",{fill:"#272727",stroke:"#FECA00",strokeWidth:1.35,d:"m16.082-.53 1.093-.862V13.392l-1.093-.862-7.61-6L7.8 6l.673-.53 7.61-6Z"}))),Ct=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"KN_-_Saint_Kitts_and_Nevis_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("rect",{width:16,height:12,fill:"#fff",rx:0})),(0,n.createElement)("g",{mask:"url(#KN_-_Saint_Kitts_and_Nevis_svg__a)"},(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M0 0v12L16 0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#272727",stroke:"#FFD018",strokeWidth:1.25,d:"m.318 13.976.362.403.45-.3L19.26 1.977l.6-.4-.48-.537-2.661-2.968-.362-.403-.45.3-18.131 12.102-.6.4.482.537 2.66 2.968Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"m6.044 8.46-.544.946-.348-1.067-1.08-.343.9-.55-.108-1.117.889.684.92-.51-.258 1.136.74.85-1.11-.03ZM11.044 5.183l-.544.947-.348-1.067-1.08-.344.9-.55-.108-1.116.889.683.92-.51-.258 1.137.74.85-1.11-.03Z",clipRule:"evenodd"}))),Vt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"LC_-_Saint_Lucia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#LC_-_Saint_Lucia_svg__a)"},(0,n.createElement)("path",{fill:"#7CCFF5",d:"M0 0h16v12H0V0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"m8 2 4 8H4l4-8Z"}),(0,n.createElement)("path",{fill:"#272727",d:"m8 4 3.5 6h-7L8 4Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"m8 7 4 3H4l4-3Z"}))),St=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"VC_-_Saint_Vincent_and_the_Grenadines_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#VC_-_Saint_Vincent_and_the_Grenadines_svg__a)"},(0,n.createElement)("path",{fill:"#FFDC17",d:"M4 0h8v12H4V0Z"}),(0,n.createElement)("path",{fill:"#5FBF2B",d:"M12 0h4v12h-4V0Z"}),(0,n.createElement)("path",{fill:"#2E42A5",d:"M0 0h4v12H0V0Z"}),(0,n.createElement)("path",{fill:"#5FBF2B",d:"m9.863 2.5-1.52 2.231 1.52 2.153 1.52-2.153L9.863 2.5Zm-3.724.04L4.5 4.73l1.52 2.114L7.54 4.73 6.14 2.54Zm.283 4.654L8.06 5.002l1.402 2.192L8.06 9.451 6.422 7.194Z"}))),At=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"TT_-_Trinidad_and_Tobago_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#TT_-_Trinidad_and_Tobago_svg__a)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"TT_-_Trinidad_and_Tobago_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#TT_-_Trinidad_and_Tobago_svg__b)"},(0,n.createElement)("path",{fill:"#272727",stroke:"#F7FCFF",strokeWidth:.732,d:"m14.774 14.74-.265.218-.234-.25-15.172-16.2-.267-.285.303-.248L.687-3.291l.265-.217.234.25 15.172 16.2.267.285-.303.248-1.548 1.266Z"})))),Ut=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"AL_-_Albania_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("rect",{width:16,height:12,fill:"#fff",rx:0})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#AL_-_Albania_svg__a)"},(0,n.createElement)("path",{fill:"#F50100",d:"M0 0h16v12H0V0Z"}),(0,n.createElement)("path",{fill:"#1A1A1A",d:"M7.941 7.49a.995.995 0 0 1-.138-.032c-.686.533-1.346.895-1.984 1.082a.5.5 0 0 1-.281-.96c.394-.115.814-.323 1.258-.625-.292.047-.594.099-.776.137-.148.032-.327.124-.497.212-.333.172-.637.329-.637-.003 0-.502.292-.652.834-.879.398-.167.65-.162.892-.157.088.002.173.004.265-.003.05-.003.105-.009.162-.017l-.017-.093c-.05-.007-.1-.012-.145-.015-.092-.006-.177-.005-.265-.003-.242.005-.494.01-.892-.157-.542-.227-.834-.377-.834-.879 0-.332.304-.175.637-.003.17.088.349.18.497.212.203.043.558.103.88.154l-.007-.044a.988.988 0 0 1-.183-.133c-.225-.21-.409-.245-.637-.288a2.487 2.487 0 0 1-.54-.152c-.542-.227-.869-.67-.869-1.173 0-.326.281-.114.616.137.18.136.377.284.553.365.174.08.351.144.514.203.166.06.316.115.43.175a.986.986 0 0 1 .01-.066.577.577 0 0 1-.152-.155c-.265-.414-.622-.563-1.16-.789l-.007-.002c-.542-.227-.868-.67-.868-1.173 0-.326.281-.114.615.137.181.136.378.284.554.365.502.231.888.43 1.133.898a.716.716 0 0 0 .144.198c.062-.065.132-.122.209-.169-.104-.747-.278-1.123-.444-1.154a.5.5 0 1 1 .183-.983c.668.125 1.048.745 1.226 1.83.179-1.085.558-1.705 1.226-1.83a.5.5 0 0 1 .183.983c-.165.031-.34.405-.443 1.149a.994.994 0 0 1 .241.147.782.782 0 0 0 .118-.171c.245-.468.63-.667 1.133-.898.176-.08.373-.228.553-.365.335-.251.616-.463.616-.137 0 .502-.326.946-.868 1.173l-.006.002c-.54.226-.896.375-1.162.79a.523.523 0 0 1-.065.08c.01.03.017.061.024.092.096-.042.21-.083.33-.127a6.58 6.58 0 0 0 .514-.203c.176-.08.372-.229.553-.365.335-.251.616-.463.616-.137 0 .502-.327.946-.869 1.173-.217.09-.389.123-.54.152-.229.043-.412.078-.637.288a.848.848 0 0 1-.048.042l-.023.116c.287-.047.582-.097.76-.135.15-.032.327-.124.498-.212.333-.172.637-.329.637.003 0 .502-.292.652-.834.88-.399.166-.65.161-.893.156a2.024 2.024 0 0 0-.306.006l-.022.117.064.005c.091.007.177.005.264.003.243-.005.494-.01.893.157.542.227.834.377.834.88 0 .331-.304.174-.637.002-.17-.088-.349-.18-.497-.212a17.52 17.52 0 0 0-.735-.13c.44.298.857.504 1.249.619a.5.5 0 0 1-.282.96c-.633-.187-1.288-.544-1.967-1.07a.995.995 0 0 1-.085.018c.122.545 1.077.994 1.077.994S8.464 10.83 8.27 10.83c-.193 0-1.492-2.348-1.492-2.348a2.265 2.265 0 0 0 1.163-.992Z"}))),xt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"AD_-_Andorra_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#AD_-_Andorra_svg__a)"},(0,n.createElement)("path",{fill:"#FFD018",fillRule:"evenodd",d:"M4 0h8v12H4V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M0 0h4v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M12 0h4v12h-4V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#BF9937",fillRule:"evenodd",d:"M4.9 3.607a1 1 0 0 1 1.007-1l4.395.031a1 1 0 0 1 .993 1v4.007s-.444 2-3.146 2S4.9 7.6 4.9 7.6V3.607Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#BF9937",fillRule:"evenodd",d:"M5.15 4.2a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM5.15 6.4a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM5.15 8.2a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM10.85 4.2a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM10.85 6.4a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM10.85 8.2a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#805440",d:"m5.912 8.335.052-.127c.604.259 1.291.389 2.062.389.77 0 1.44-.13 2.007-.388l.055.126c-.586.266-1.273.4-2.062.4-.788 0-1.493-.134-2.114-.4Z"}),(0,n.createElement)("path",{fill:"#BF9937",fillRule:"evenodd",d:"M6.115 3.81h3.77v3.514s0 .31-.329.446c-.328.136-.713.087-.713.087s-.37-.08-.564 0c-.12.049-.206.073-.255.084v.01L8 7.945a.393.393 0 0 1-.024.004v-.009a1.71 1.71 0 0 1-.255-.084c-.195-.08-.564 0-.564 0s-.386.049-.713-.087c-.328-.136-.33-.446-.33-.446V3.81Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"AD_-_Andorra_svg__b",width:4,height:5,x:6,y:3,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M6.115 3.81h3.77v3.514s0 .31-.329.446c-.328.136-.713.087-.713.087s-.37-.08-.564 0c-.12.049-.206.073-.255.084v.01L8 7.945a.393.393 0 0 1-.024.004v-.009a1.71 1.71 0 0 1-.255-.084c-.195-.08-.564 0-.564 0s-.386.049-.713-.087c-.328-.136-.33-.446-.33-.446V3.81Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#AD_-_Andorra_svg__b)"},(0,n.createElement)("path",{fill:"#D00F3A",d:"M6.062 3.765H7.89v1.95H6.062z"}),(0,n.createElement)("path",{fill:"#FEDF00",fillRule:"evenodd",d:"M8.093 3.765H9.99v1.95H8.093v-1.95ZM8.093 5.932h1.829v2.022H8.093V5.932Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FEDF00",d:"M6.062 5.932H7.89v2.022H6.062z"}),(0,n.createElement)("path",{fill:"#D00F3A",fillRule:"evenodd",d:"M9.062 7.265a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FEDF00",fillRule:"evenodd",d:"M7.015 5.218V4.104l.47.533-.241.58c-.09-.03-.12.035-.075.153.028.07.05.12.07.158-.08-.08-.113-.132-.113-.186a.21.21 0 0 0-.015-.095c-.005-.01-.047-.018-.074-.024a.24.24 0 0 1-.022-.005Zm-.22 0-.242-.581.46-.529v1.114a.188.188 0 0 1-.021.004c-.024.005-.06.012-.064.021a.21.21 0 0 0-.015.095c0 .054-.033.105-.114.186.021-.038.043-.089.07-.158.046-.118.015-.183-.074-.152Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#D00F3A",d:"M8.505 4.29h1v1h-1z"}),(0,n.createElement)("path",{fill:"#D00F3A",fillRule:"evenodd",d:"M6.562 6.38h1v1h-1v-1Z",clipRule:"evenodd"})))),Tt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"AM_-_Armenia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#AM_-_Armenia_svg__a)"},(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"AM_-_Armenia_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#AM_-_Armenia_svg__b)"},(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"M0 8v4h16V8H0Z"})))),Dt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"AT_-_Austria_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#AT_-_Austria_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"AT_-_Austria_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fill:"#C51918",fillRule:"evenodd",clipRule:"evenodd",mask:"url(#AT_-_Austria_svg__b)"},(0,n.createElement)("path",{d:"M0 0v4h16V0H0ZM0 8v4h16V8H0Z"})))),Lt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"AZ_-_Azerbaijan_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#AZ_-_Azerbaijan_svg__a)"},(0,n.createElement)("path",{fill:"#AF0100",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"AZ_-_Azerbaijan_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#AZ_-_Azerbaijan_svg__b)"},(0,n.createElement)("path",{fill:"#3CA5D9",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#73BE4A",d:"M0 8v4h16V8H0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M8.58 7.453c-.673-.155-1.2-.684-1.193-1.461a1.53 1.53 0 0 1 1.217-1.51c.74-.167 1.392.185 1.392.185-.204-.454-.915-.772-1.498-.77-1.085.002-2.243.83-2.254 2.096C6.232 7.304 7.481 8.05 8.58 8.047c.88-.002 1.299-.57 1.386-.81 0 0-.71.372-1.384.216Zm.429-.743.588-.409.588.41-.208-.686.57-.433-.715-.014-.235-.677-.235.677-.716.014.57.433-.207.685Z"})))),Ot=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BY_-_Belarus_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#BY_-_Belarus_svg__a)"},(0,n.createElement)("path",{fill:"#73BE4A",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#AF0100",fillRule:"evenodd",d:"M0 0v8h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 0h3v12H0z"}),(0,n.createElement)("path",{fill:"#D0181A",fillRule:"evenodd",d:"M.5 0a.5.5 0 1 1 0 1 .5.5 0 0 1 0-1Zm2 0a.5.5 0 1 1 0 1 .5.5 0 0 1 0-1ZM1 2.5a.5.5 0 1 0-1 0 .5.5 0 0 0 1 0ZM2.5 2a.5.5 0 1 1 0 1 .5.5 0 0 1 0-1Zm0 7a.5.5 0 1 1 0 1 .5.5 0 0 1 0-1ZM1 9.5a.5.5 0 1 0-1 0 .5.5 0 0 0 1 0ZM.5 11a.5.5 0 1 1 0 1 .5.5 0 0 1 0-1Zm2.5.5a.5.5 0 1 0-1 0 .5.5 0 0 0 1 0ZM1.5 10a.5.5 0 1 1 0 1 .5.5 0 0 1 0-1ZM2 1.5a.5.5 0 1 0-1 0 .5.5 0 0 0 1 0Zm.055 4.52L3 7v1l.022.046L1.546 6.57.219 8H0V7l.991-.986-.99-.992V4h.108l1.423 1.476 1.43-1.422L3 4v1l-.945 1.02ZM1.5 3a.5.5 0 1 1 0 1 .5.5 0 0 1 0-1ZM2 8.5a.5.5 0 1 0-1 0 .5.5 0 0 0 1 0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#8F181A",fillRule:"evenodd",d:"M0 0h1v1H0V0Zm1 2H0v1h1V2ZM0 4h1v1H0V4Zm1 3H0v1h1V7ZM0 9h1v1H0V9Zm1 2H0v1h1v-1Zm2 0H2v1h1v-1ZM3 0H2v1h1V0Z",clipRule:"evenodd",opacity:.4}))),Nt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BE_-_Belgium_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#BE_-_Belgium_svg__a)"},(0,n.createElement)("path",{fill:"#FECA00",d:"M5 0h5.5v12H5V0Z"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M10.5 0H16v12h-5.5V0Z"}),(0,n.createElement)("path",{fill:"#1D1D1D",d:"M0 0h5.5v12H0V0Z"}))),Bt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BA_-_Bosnia_and_Herzegovina_svg__a",width:17,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h17v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#BA_-_Bosnia_and_Herzegovina_svg__a)"},(0,n.createElement)("path",{fill:"#2E42A5",d:"M0 0h16v12H0V0Z"}),(0,n.createElement)("path",{fill:"#FECA00",d:"M5 0h10v12L5 0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"m3.554 1.397-.588.309.112-.655-.475-.463.657-.096.294-.595.294.595.657.096-.475.463.112.655-.588-.31ZM5.297 3.537l-.587.309.112-.655-.476-.463.657-.096.294-.595.294.595.657.096-.475.463.112.655-.588-.309ZM6.932 5.62l-.588.308.112-.654-.475-.464.657-.095.294-.596.294.596.657.095-.476.464.112.654-.587-.309ZM8.533 7.615l-.588.309.112-.655-.475-.463.657-.096.294-.595.294.595.657.096-.476.463.112.655-.587-.31ZM10.257 9.668l-.588.31.113-.655-.476-.464.657-.095.294-.596.294.596.657.095-.475.464.112.654-.588-.309ZM12.164 11.655l-.588.31.112-.655-.476-.463.658-.096.294-.595.293.595.657.096-.475.463.112.654-.587-.309Z"}))),zt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BG_-_Bulgaria_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#BG_-_Bulgaria_svg__a)"},(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"BG_-_Bulgaria_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#BG_-_Bulgaria_svg__b)"},(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#E22C18",d:"M0 8v4h16V8H0Z"})))),Pt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"HR_-_Croatia_(Hrvatska)_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#HR_-_Croatia_(Hrvatska)_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"HR_-_Croatia_(Hrvatska)_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#HR_-_Croatia_(Hrvatska)_svg__b)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M5.038 3.199h5.7v2h-5.7z"}),(0,n.createElement)("path",{fill:"#F7FCFF",stroke:"#E31D1C",strokeWidth:.563,d:"M5.326 4.48h5.064c.009.384.012 1.055.011 1.7 0 .418 0 .82-.002 1.116l-.001.357v.113l-.001.001a2.474 2.474 0 0 1-.074.295 2.73 2.73 0 0 1-.345.717C9.63 9.286 9 9.808 7.825 9.808c-1.174 0-1.773-.52-2.093-1.023a2.584 2.584 0 0 1-.369-1.01l-.001-.008v-.022l-.001-.098-.005-.354a1915.707 1915.707 0 0 1-.03-2.813Zm.035 3.28Z"}),(0,n.createElement)("mask",{id:"HR_-_Croatia_(Hrvatska)_svg__c",width:6,height:7,x:5,y:4,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",stroke:"#fff",strokeWidth:.563,d:"M5.326 4.48h5.064c.009.384.012 1.055.011 1.7 0 .418 0 .82-.002 1.116l-.001.357v.113l-.001.001a2.474 2.474 0 0 1-.074.295 2.73 2.73 0 0 1-.345.717C9.63 9.286 9 9.808 7.825 9.808c-1.174 0-1.773-.52-2.093-1.023a2.584 2.584 0 0 1-.369-1.01l-.001-.008v-.022l-.001-.098-.005-.354a1915.707 1915.707 0 0 1-.03-2.813Zm.035 3.28Z"})),(0,n.createElement)("g",{mask:"url(#HR_-_Croatia_(Hrvatska)_svg__c)"},(0,n.createElement)("path",{fill:"#F50100",fillRule:"evenodd",d:"M5.25 4.52h1.054v1.07H5.249V4.52Zm2.109 1.07H6.304v1.072H5.249v1.07h1.055v1.072H5.249v1.07h1.055v-1.07h1.055v1.07h1.054v-1.07h1.055v1.07h1.055v-1.07H9.468V7.733h1.055V6.662H9.468V5.59h1.055V4.52H9.468v1.07H8.413V4.52H7.36v1.07Zm0 1.072V5.59h1.054v1.07H7.36Zm0 1.07v-1.07H6.304v1.07h1.055Zm1.054 0v1.072H7.36V7.733h1.054Zm0 0v-1.07h1.055v1.07H8.413Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#56C6F5",fillRule:"evenodd",stroke:"#fff",strokeWidth:.15,d:"M5.227 4.081s.326-.174.604-.264c.278-.09.498-.139.498-.139l-.414-1.526-.829-.31-.47.775.61 1.464ZM7.27 3.538s.279-.025.57-.02c.293.006.54.009.54.009l.143-1.505-.626-.566-.696.58.07 1.502Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#2E42A5",stroke:"#fff",strokeWidth:.15,d:"m6.234 3.666.022.073.073-.023h.003l.01-.004.04-.012.13-.037c.104-.03.23-.06.322-.073a4.596 4.596 0 0 1 .422-.036l.035-.001H7.3l.002-.001.08-.003-.008-.078-.126-1.463-.003-.034-.028-.02-.681-.484-.053-.038-.045.047-.619.642-.03.031.012.042.433 1.472Z"}),(0,n.createElement)("mask",{id:"HR_-_Croatia_(Hrvatska)_svg__d",width:3,height:3,x:5,y:1,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",stroke:"#fff",strokeWidth:.15,d:"m6.234 3.666.022.073.073-.023h.003l.01-.004.04-.012.13-.037c.104-.03.23-.06.322-.073a4.596 4.596 0 0 1 .422-.036l.035-.001H7.3l.002-.001.08-.003-.008-.078-.126-1.463-.003-.034-.028-.02-.681-.484-.053-.038-.045.047-.619.642-.03.031.012.042.433 1.472Z"})),(0,n.createElement)("path",{fill:"#2E42A5",stroke:"#fff",strokeWidth:.15,d:"m9.47 3.664-.02.076-.075-.024h-.003l-.01-.004-.04-.012a5.938 5.938 0 0 0-.13-.037 2.826 2.826 0 0 0-.322-.073 4.597 4.597 0 0 0-.423-.036l-.034-.001h-.009l-.002-.001-.08-.003.007-.078.127-1.463.003-.034.028-.02.681-.484.054-.039.045.05.584.639.028.03-.011.04-.398 1.474Z"}),(0,n.createElement)("mask",{id:"HR_-_Croatia_(Hrvatska)_svg__e",width:2,height:3,x:8,y:1,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",stroke:"#fff",strokeWidth:.15,d:"m9.47 3.664-.02.076-.075-.024h-.003l-.01-.004-.04-.012a5.938 5.938 0 0 0-.13-.037 2.826 2.826 0 0 0-.322-.073 4.597 4.597 0 0 0-.423-.036l-.034-.001h-.009l-.002-.001-.08-.003.007-.078.127-1.463.003-.034.028-.02.681-.484.054-.039.045.05.584.639.028.03-.011.04-.398 1.474Z"})),(0,n.createElement)("path",{fill:"#56C6F5",stroke:"#fff",strokeWidth:.15,d:"m10.63 4.073-.032.075-.072-.039-.003-.001-.01-.006-.04-.02a3.55 3.55 0 0 0-.538-.23 6.56 6.56 0 0 0-.455-.13l-.028-.006-.007-.002h-.002l-.078-.018.022-.076.423-1.488.01-.037.036-.013.829-.31.058-.021.032.053.47.774.02.033-.015.035-.62 1.427Z"}),(0,n.createElement)("mask",{id:"HR_-_Croatia_(Hrvatska)_svg__f",width:3,height:4,x:9,y:1,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",stroke:"#fff",strokeWidth:.15,d:"m10.63 4.073-.032.075-.072-.039-.003-.001-.01-.006-.04-.02a3.55 3.55 0 0 0-.538-.23 6.56 6.56 0 0 0-.455-.13l-.028-.006-.007-.002h-.002l-.078-.018.022-.076.423-1.488.01-.037.036-.013.829-.31.058-.021.032.053.47.774.02.033-.015.035-.62 1.427Z"}))))),It=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"CZ_-_Czech_Republic_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#CZ_-_Czech_Republic_svg__a)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"CZ_-_Czech_Republic_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#CZ_-_Czech_Republic_svg__b)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0-1v7h16v-7H0Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 0v12l9-6-9-6Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"CZ_-_Czech_Republic_svg__c",width:9,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12l9-6-9-6Z",clipRule:"evenodd"})))),Gt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"DK_-_Denmark_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#DK_-_Denmark_svg__a)"},(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"DK_-_Denmark_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#DK_-_Denmark_svg__b)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M5 0h2v5h9v2H7v5H5V7H0V5h5V0Z",clipRule:"evenodd"})))),Kt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"EE_-_Estonia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#EE_-_Estonia_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"EE_-_Estonia_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#EE_-_Estonia_svg__b)"},(0,n.createElement)("path",{fill:"#40A8FF",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#272727",d:"M0 4v4h16V4H0Z"})))),Wt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"FI_-_Finland_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#FI_-_Finland_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"FI_-_Finland_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#FI_-_Finland_svg__b)"},(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M5 0h2v5h9v2H7v5H5V7H0V5h5V0Z",clipRule:"evenodd"})))),jt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"GR_-_Greece_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#GR_-_Greece_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#4564F9",d:"M.014 2.75h16v1.5h-16z"}),(0,n.createElement)("path",{fill:"#4564F9",fillRule:"evenodd",d:"M0 0h16v1.5H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#4564F9",d:"M-.029 5.5h16V7h-16zM.056 8.2h16v1.5h-16zM.051 10.75h16v1.5h-16z"}),(0,n.createElement)("path",{fill:"#4564F9",fillRule:"evenodd",d:"M0 0h8v7H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M3.236 0h1.582v2.75H8v1.893H4.818V7.5H3.236V4.643H0V2.75h3.236V0Z",clipRule:"evenodd"}))),qt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"HU_-_Hungary_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#HU_-_Hungary_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"HU_-_Hungary_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#HU_-_Hungary_svg__b)"},(0,n.createElement)("path",{fill:"#F14423",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#5EAA22",d:"M0 8v4h16V8H0Z"})))),Yt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"IS_-_Iceland_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#IS_-_Iceland_svg__a)"},(0,n.createElement)("path",{fill:"#0061C1",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"IS_-_Iceland_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#IS_-_Iceland_svg__b)"},(0,n.createElement)("path",{fill:"#D21034",stroke:"#F1F9FF",d:"M5-.5h-.5v5h-5v3h5v5h3v-5h9v-3h-9v-5H5Z"})))),Jt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"IE_-_Ireland_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#IE_-_Ireland_svg__a)"},(0,n.createElement)("path",{fill:"#FF8C1A",d:"M11 0h5v12h-5V0Z"}),(0,n.createElement)("path",{fill:"#5EAA22",d:"M0 0h6v12H0V0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M5 0h6v12H5V0Z"}))),Qt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"LV_-_Latvia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#LV_-_Latvia_svg__a)"},(0,n.createElement)("path",{fill:"#C51918",d:"M0 7h16v5H0V7Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 4h16v3H0V4Z"}),(0,n.createElement)("path",{fill:"#C51918",d:"M0 0h16v5H0V0Z"}))),$t=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"LI_-_Liechtenstein_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#LI_-_Liechtenstein_svg__a)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"LI_-_Liechtenstein_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#LI_-_Liechtenstein_svg__b)"},(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M0 0v6h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#000",fillRule:"evenodd",d:"M2.4 5.527s.603.375 2 .375c1.399 0 2.14-.375 2.14-.375s-1.096-.638-2.076-.638-2.065.638-2.065.638Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFD83D",stroke:"#000",strokeWidth:.25,d:"m2.435 3.371-.108.063.036.062H6.69l.028-.087-.12-.038.12.038v-.002l.001-.002.003-.01a1.616 1.616 0 0 0 .041-.165c.023-.107.047-.256.054-.422.014-.324-.04-.747-.354-1.02-.296-.258-.71-.386-1.1-.451a6.302 6.302 0 0 0-1.035-.072c-.53 0-1.015.063-1.802.508a.838.838 0 0 0-.404.487 1.16 1.16 0 0 0-.02.552 2.055 2.055 0 0 0 .218.607l.006.01.001.004h.001l.108-.062Z"}),(0,n.createElement)("path",{fill:"#FFD83D",stroke:"#000",strokeWidth:.25,d:"m1.943 3.453.058.11-.058-.11h.001l.003-.002.009-.004a2.363 2.363 0 0 1 .154-.067c.106-.042.265-.097.476-.152.423-.11 1.055-.22 1.902-.22.846 0 1.478.11 1.9.22a4.222 4.222 0 0 1 .6.204l.032.015.008.004.003.001.001.001-.058.11.058-.11.097.051-.038.103-.593 1.585-.04.11-4.515-1.849Zm0 0-.096.05.037.103.576 1.585.04.11.113-.033-.67-1.815Zm4.402 1.814H2.613h.003l.007-.002.031-.009.119-.031c.103-.027.25-.062.427-.097.355-.07.826-.14 1.297-.14.47 0 .933.07 1.279.14a7.53 7.53 0 0 1 .53.128l.03.008.006.003h.002Z"}),(0,n.createElement)("mask",{id:"LI_-_Liechtenstein_svg__c",width:3,height:3,x:3.059,y:-1,fill:"#000",maskUnits:"userSpaceOnUse"},(0,n.createElement)("path",{fill:"#fff",d:"M3.059-1h3v3h-3z"}),(0,n.createElement)("path",{fillRule:"evenodd",d:"M4.563 0h-.252l.032.461L4.06.423V.74L4.348.7l-.037.726h.252L4.526.7l.29.04V.424l-.285.04L4.563 0Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#FFD83D",fillRule:"evenodd",d:"M4.563 0h-.252l.032.461L4.06.423V.74L4.348.7l-.037.726h.252L4.526.7l.29.04V.424l-.285.04L4.563 0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#000",d:"M4.31 0v-.25h-.267l.018.268.25-.018Zm.253 0 .25.017.018-.267h-.268V0Zm-.22.461L4.31.71l.304.042-.021-.307-.25.017ZM4.06.423l.033-.248L3.81.136v.287h.25Zm0 .317h-.25v.286l.284-.039L4.059.74ZM4.348.7l.25.012.015-.301-.3.041.035.248Zm-.037.726-.25-.012-.013.262h.263v-.25Zm.252 0v.25h.263l-.013-.262-.25.012ZM4.526.7 4.56.45 4.26.41l.015.302.25-.012Zm.29.04L4.78.988l.285.04V.74h-.25Zm0-.316h.25V.134L4.78.175l.035.248Zm-.285.04L4.28.446l-.02.309.305-.044-.035-.248ZM4.31.25h.252v-.5h-.252v.5Zm.282.194L4.56-.018l-.499.036.033.46.499-.034ZM4.025.67l.285.04.067-.496-.285-.04-.067.496Zm.284.07V.423h-.5V.74h.5Zm.005-.288-.29.04.069.495.289-.04-.068-.495Zm.247.987.036-.727-.499-.025-.037.727.5.025Zm.002-.263h-.252v.5h.252v-.5ZM4.276.711l.037.728.5-.025-.038-.728-.499.025ZM4.85.492l-.29-.04-.07.494.29.041.07-.495Zm-.285-.07V.74h.5V.423h-.5Zm.001.289.285-.04L4.78.174l-.285.041.071.495Zm-.252-.728-.032.463.498.035.032-.464-.498-.034Z",mask:"url(#LI_-_Liechtenstein_svg__c)"})))),Xt=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"LT_-_Lithuania_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#LT_-_Lithuania_svg__a)"},(0,n.createElement)("path",{fill:"#55BA07",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"LT_-_Lithuania_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#LT_-_Lithuania_svg__b)"},(0,n.createElement)("path",{fill:"#FECA00",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#C51918",d:"M0 8v4h16V8H0Z"})))),ea=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"LU_-_Luxembourg_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#LU_-_Luxembourg_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"LU_-_Luxembourg_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#LU_-_Luxembourg_svg__b)"},(0,n.createElement)("path",{fill:"#F05234",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#2EB7EC",d:"M0 8v4h16V8H0Z"})))),la=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MK_-_North_Macedonia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#MK_-_North_Macedonia_svg__a)"},(0,n.createElement)("path",{fill:"#F50100",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"MK_-_North_Macedonia_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fill:"#FFD018",mask:"url(#MK_-_North_Macedonia_svg__b)"},(0,n.createElement)("path",{fillRule:"evenodd",d:"M0-.021v2.042l7 2.976L1.628-.021H0ZM8 6l1.5-6h-3L8 6Zm0 0-1.5 6h3L8 6ZM0 9.976v2.042h1.628L7 7 0 9.976Zm16-7.943V-.009h-1.628L9 5.01l7-2.976Zm0 9.997V9.988L9 7.012l5.372 5.018H16Zm0-7.53L10 6l6 1.5v-3ZM6 6 0 4.5v3L6 6Z",clipRule:"evenodd"}),(0,n.createElement)("path",{stroke:"#F50100",d:"M8 8.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"})))),ta=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 0h16v12H0z"}),(0,n.createElement)("mask",{id:"MT_-_Malta_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#MT_-_Malta_svg__a)"},(0,n.createElement)("mask",{id:"MT_-_Malta_svg__b",fill:"#fff"},(0,n.createElement)("path",{fillRule:"evenodd",d:"M5 3H3v1.496a.5.5 0 0 0-.384.487V5H1v2h1.665A.501.501 0 0 0 3 7.27V9h2V7.276A.5.5 0 0 0 5.366 7H7V5H5.416v-.017A.5.5 0 0 0 5 4.49V3Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#A0A0A0",fillRule:"evenodd",d:"M5 3H3v1.496a.5.5 0 0 0-.384.487V5H1v2h1.665A.501.501 0 0 0 3 7.27V9h2V7.276A.5.5 0 0 0 5.366 7H7V5H5.416v-.017A.5.5 0 0 0 5 4.49V3Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",d:"M3 3v-.5h-.5V3H3Zm2 0h.5v-.5H5V3ZM3 4.496l.115.487.385-.091v-.396H3Zm-.384.487h-.5v.008l.5-.008Zm0 .017v.5h.509l-.009-.508-.5.008ZM1 5v-.5H.5V5H1Zm0 2H.5v.5H1V7Zm1.665 0 .45-.218L2.98 6.5h-.314V7ZM3 7.27h.5v-.396l-.385-.091L3 7.269ZM3 9h-.5v.5H3V9Zm2 0v.5h.5V9H5Zm0-1.724-.084-.493-.416.07v.423H5ZM5.366 7v-.5h-.313l-.137.282.45.218ZM7 7v.5h.5V7H7Zm0-2h.5v-.5H7V5ZM5.416 5l-.5-.008-.009.508h.509V5Zm0-.017.5.008v-.008h-.5ZM5 4.49h-.5v.422l.416.07L5 4.49ZM3 3.5h2v-1H3v1Zm.5.996V3h-1v1.496h1Zm-.384.487-.231-.973a1 1 0 0 0-.77.973h1Zm0 .009v-.018l-1 .017v.017l1-.016ZM1 5.5h1.616v-1H1v1ZM1.5 7V5h-1v2h1Zm1.165-.5H1v1h1.665v-1Zm.45.283-.9.434c.129.267.373.468.67.539l.23-.973ZM3.5 9V7.27h-1V9h1ZM5 8.5H3v1h2v-1Zm-.5-1.224V9h1V7.276h-1Zm.584.493a1 1 0 0 0 .733-.551l-.9-.436.167.987ZM7 6.5H5.366v1H7v-1ZM6.5 5v2h1V5h-1Zm-1.084.5H7v-1H5.416v1Zm-.5-.526v.018l1 .016v-.017l-1-.017Zm0 .009h1a1 1 0 0 0-.832-.986l-.168.986ZM4.5 3v1.49h1V3h-1Z",mask:"url(#MT_-_Malta_svg__b)"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M8 0h8v12H8V0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"MT_-_Malta_svg__c",width:8,height:12,x:8,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M8 0h8v12H8V0Z",clipRule:"evenodd"})))),aa=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MD_-_Moldova_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#MD_-_Moldova_svg__a)"},(0,n.createElement)("path",{fill:"#D9071E",fillRule:"evenodd",d:"M11 0h5v12h-5V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 0h6v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FBCD17",fillRule:"evenodd",d:"M5 0h6v12H5V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FD1900",fillRule:"evenodd",d:"m10.86 9.807-.527.288L8.587 6.9l.527-.287 1.745 3.194Zm-5.603.077.526.288L7.53 6.977l-.527-.288-1.745 3.195Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#A77B3B",fillRule:"evenodd",d:"M5.689 4.695V7.47c0 .617-.53 1.42-.799 1.72-.267.298-.8.983-.8.983V2.704c0-.838.8-1.125.8-1.125s.664.13.799 1.125v.97c.206.161.892.657 1.335.448.526-.249.708-.962.708-.962s-.05-.72-.265-.72c-.216 0-.233-1.015.594-1.015s.924.391.924.703c0 .163-.131.425-.256.675-.113.226-.22.442-.22.565 0 .256.193.754.476.754.198 0 1.153-.371 1.706-.593v-.825c.134-.994.798-1.125.798-1.125s.8.287.8 1.125v7.47s-.532-.686-.8-.985c-.267-.299-.798-1.102-.798-1.719V4.695H5.689Zm.886 5.221c.54-.352 1.332-1.93 1.332-1.93l.263.06s.4 1.046 1.58 1.87c-1.257.335-1.58 1.01-1.58 1.01 0-.54-1.595-1.01-1.595-1.01Zm-.087-1c.365 0 .66-.28.66-.624 0-.346-.295-.625-.66-.625-.365 0-.66.28-.66.625s.295.625.66.625Zm3.872-.624c0 .345-.295.625-.66.625-.365 0-.66-.28-.66-.625 0-.346.295-.625.66-.625.365 0 .66.28.66.625Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FDFF00",d:"m12.57 5.204.459.198-1.87 4.326-.459-.198 1.87-4.326Z"}),(0,n.createElement)("path",{fill:"#E1E5E8",fillRule:"evenodd",d:"M5.52 3.917h5.28v3.82s-1.344.404-2.64 1.068c-.957-.71-2.64-1.069-2.64-1.069v-3.82Z",clipRule:"evenodd",opacity:.3}),(0,n.createElement)("mask",{id:"MD_-_Moldova_svg__b",width:6,height:6,x:5,y:3,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M5.52 3.917h5.28v3.82s-1.344.404-2.64 1.068c-.957-.71-2.64-1.069-2.64-1.069v-3.82Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#MD_-_Moldova_svg__b)"},(0,n.createElement)("path",{fill:"#3D58DB",d:"M5.52 6.417h5.28v2.5H5.52z"}),(0,n.createElement)("path",{fill:"#FD1900",d:"M5.52 3.917h5.28v2.5H5.52z"}),(0,n.createElement)("path",{fill:"#FDFF00",fillRule:"evenodd",d:"m7.893 5.041-.4.033.231-.311-.246-.323.402.052.154-.355.172.363.4-.033-.23.311.245.322-.402-.051-.154.355-.172-.363Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FDFF00",fillRule:"evenodd",d:"M7.175 4.336S6.1 4.99 6.458 5.459c.359.47.81.53.81.53s-1.1 1.65.836 2.592c2.072-.91.982-2.592.982-2.592s.638-.141.765-.649c.128-.507-.833-1.09-.833-1.09s.6.87.463 1.09c-.137.22-.87.445-1.377.445s-1.29-.142-1.415-.527c-.127-.386.486-.922.486-.922Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#048F02",fillRule:"evenodd",d:"M2.368 5.764s.527.624 1.024.42c.496-.204.376-.934.376-.934l-.376.34h-.32v.174l-.25-.173v.173h-.454Zm.357.958s.642.56 1.075.402c.433-.158.324-.917.324-.917l-.376.341h-.32v.174l-.25-.174v.174h-.453Zm1.73 1.271c-.433.159-1.075-.401-1.075-.401h.453v-.174l.25.174v-.174h.32l.376-.341s.109.758-.324.916Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FDFF00",fillRule:"evenodd",d:"M6.99 1.124h-.5v.298h-.236v.5h.236v.872h.5v-.872h.286v-.5H6.99v-.298Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#DB4400",fillRule:"evenodd",d:"m7.58 1.692-1.159.299 1.158.366v-.665Z",clipRule:"evenodd"}))),na=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"MC_-_Monaco_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#MC_-_Monaco_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"MC_-_Monaco_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#MC_-_Monaco_svg__b)"},(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M0 0v6h16V0H0Z",clipRule:"evenodd"})))),sa=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"ME_-_Montenegro_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#ME_-_Montenegro_svg__a)"},(0,n.createElement)("path",{fill:"#E8AA00",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M2 2h12v8H2V2Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"ME_-_Montenegro_svg__b",width:12,height:8,x:2,y:2,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M2 2h12v8H2V2Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#ME_-_Montenegro_svg__b)"},(0,n.createElement)("path",{fill:"#1E5E91",fillRule:"evenodd",d:"M10.115 7.876c.204 0 .37-.17.37-.379a.374.374 0 0 0-.37-.378c-.204 0-.369.17-.369.378 0 .21.165.379.37.379Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F6C540",fillRule:"evenodd",d:"M5.314 6.166c-.969-1.126.42-3.08.42-3.08s.207 1.167.975 1.953c0 .055-.072.138-.146.22a1.087 1.087 0 0 0-.13.168c-.068.123.164.193.276.193.05 0 .078.073.104.14.03.08.057.15.117.061.108-.161-.108-.517-.108-.517l.342-.36.115-.233h-.115v-.24l-.081.066s-.09-.214-.261-.214c-.172 0-.225-.098-.225-.098h.225c.113 0-.018-.15-.113-.228-.042-.034-.107-.022-.165-.012-.072.014-.134.025-.134-.054 0-.088.068-.1.147-.113a.356.356 0 0 0 .152-.05c.074-.053.173-.037.28-.02.057.01.116.02.175.02h.278c.1 0-.163.163-.163.163l.163.144.242.248-.12.072.25.242s-.086.138 0 .138c.034 0 .057.029.072.062.015-.033.038-.062.073-.062.085 0 0-.138 0-.138l.25-.242-.121-.072.242-.248.163-.144s-.263-.163-.163-.163h.279c.059 0 .118-.01.174-.02.108-.017.207-.033.28.02.045.032.1.041.152.05.079.013.147.025.147.113 0 .08-.062.068-.134.054-.058-.01-.122-.022-.165.012-.094.078-.225.228-.113.228h.226s-.054.098-.226.098c-.171 0-.26.214-.26.214l-.081-.066v.24h-.116l.116.233.341.36s-.215.356-.107.517c.059.09.086.02.117-.062.025-.066.053-.14.103-.14.113 0 .345-.07.277-.192-.028-.05-.08-.109-.13-.167-.074-.083-.147-.166-.147-.221.768-.786.976-1.952.976-1.952s1.388 1.953.42 3.079c-.969 1.126-1.68.786-1.68.786s.858.799.953.799c.013 0-.017-.074-.047-.147-.029-.072-.058-.144-.045-.143.028.001.082.067.137.132.043.053.087.105.117.126.02.013.095-.014.166-.038.06-.02.115-.04.13-.033.059.03.043.09.029.148l-.01.044c-.002.012.074-.037.154-.089.085-.054.173-.112.18-.103l.004.005c.029.035.075.09-.265.352 0 .05.002.092.003.125.005.107.006.135-.067.135a.466.466 0 0 0-.13.035c-.134.047-.316.112-.448-.035-.183-.204-1.31-1.024-1.31-1.024l-.12.067s.412 1.14.633 1.147c.11.004-.057.11-.278.252-.223.142-.502.32-.606.464-.03.042-.055-.023-.073-.164-.018.141-.042.206-.073.164-.103-.144-.382-.322-.606-.464-.22-.142-.387-.248-.277-.252.22-.008.633-1.147.633-1.147l-.12-.067-.45.515s-.678.305-.86.51c-.133.146-.314.082-.449.034a.466.466 0 0 0-.13-.035c-.115 0-.154-.161 0-.36.09-.115.229-.13.36-.146.093-.01.183-.02.25-.065.164-.107.433-.386.433-.386l.397-.356s-.712.34-1.68-.786Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F6C540",fillRule:"evenodd",d:"m6.217 8.515-.438-.767s-.572-1.319-.572-1.48c0-.16-.23-.634-.23-.496s-.02 1.242-.02 1.242l.985 1.43v.17h.13l.145-.099Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F6C540",d:"m9.72 7.482.068-.22.813.244-.067.221-.813-.245Z"}),(0,n.createElement)("path",{fill:"#F6C540",d:"m10.154 7.08.22.072-.215.69-.22-.073.215-.689Z"}),(0,n.createElement)("path",{fill:"#F6C540",fillRule:"evenodd",d:"M8.069 2.646a1.301 1.301 0 0 0-.102-.035l-.003.01a.485.485 0 0 0-.116-.009l-.007.001a.957.957 0 0 0-.194.045c-.364.041-.552.202-.532.477.011.142.059.243.138.3v.085s.416.27.624.27c.208 0 .624-.27.624-.27v-.053c.114-.045.183-.158.196-.332.021-.284-.18-.445-.565-.48l-.001.011a1.666 1.666 0 0 0-.062-.02Zm.432.655v-.368c.045.051.063.115.058.192-.006.081-.025.14-.058.176Zm-1.248-.182v-.04.04Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#1E5E91",fillRule:"evenodd",d:"M6.977 5.18s.569-.108.877-.108c.276 0 .877.108.877.108 0 .68.191 1.096 0 1.56-.192.465-.66.242-.871.686-.27-.421-.636-.19-.883-.79-.247-.6.15-.876 0-1.456Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"ME_-_Montenegro_svg__c",width:3,height:3,x:6,y:5,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M6.977 5.18s.569-.108.877-.108c.276 0 .877.108.877.108 0 .68.191 1.096 0 1.56-.192.465-.66.242-.871.686-.27-.421-.636-.19-.883-.79-.247-.6.15-.876 0-1.456Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#ME_-_Montenegro_svg__c)"},(0,n.createElement)("path",{fill:"#5EAA22",d:"M6.977 6.599h1.754v.851H6.977z"})),(0,n.createElement)("path",{fill:"#F6C540",fillRule:"evenodd",d:"M7.9 6.4a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1Z",clipRule:"evenodd"})))),ia=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"NO_-_Norway_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#NO_-_Norway_svg__a)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"NO_-_Norway_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#NO_-_Norway_svg__b)"},(0,n.createElement)("path",{fill:"#2E42A5",stroke:"#F7FCFF",d:"M5-.5h-.5v5h-5v3h5v5h3v-5h9v-3h-9v-5H5Z"})))),ca=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"PT_-_Portugal_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#PT_-_Portugal_svg__a)"},(0,n.createElement)("path",{fill:"#EF0000",fillRule:"evenodd",d:"M4 0h12v12H4V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#2F8D00",fillRule:"evenodd",d:"M0 0h6v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"PT_-_Portugal_svg__b",width:8,height:8,x:2,y:2,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M5.952 9.904c-2.13 0-3.857-1.748-3.857-3.904 0-2.156 1.727-3.904 3.857-3.904S9.81 3.844 9.81 6c0 2.156-1.726 3.904-3.857 3.904Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fill:"#FFE017",mask:"url(#PT_-_Portugal_svg__b)"},(0,n.createElement)("path",{fillRule:"evenodd",d:"M5.714 2h.5v1.35h-.5V2ZM5.714 8.747h.5V10h-.5V8.747Z",clipRule:"evenodd"}),(0,n.createElement)("path",{d:"m2.157 6.202-.14-.359C3.56 5.227 4.724 4.83 5.514 4.651a29.368 29.368 0 0 1 3.821-.583l.034.384c-1.372.125-2.63.317-3.771.575-.767.174-1.915.566-3.44 1.175Z"}),(0,n.createElement)("path",{d:"m9.57 3.832-.113.368c-1.166-.368-2.116-.526-2.846-.477l-.025-.385c.784-.053 1.778.113 2.984.494ZM9.974 5.89l-.216.318c-.594-.413-1.326-.62-2.201-.62v-.386c.948 0 1.756.229 2.417.688Z"}),(0,n.createElement)("path",{d:"m9.651 6.005.098.373c-1.28.347-2.484.544-3.609.59-1.132.047-2.452-.15-3.96-.591l.105-.37c1.472.429 2.752.62 3.84.576 1.095-.045 2.27-.238 3.526-.578Z"}),(0,n.createElement)("path",{d:"m9.506 7.818-.602.617c-1.145-1.143-2.152-1.96-3.017-2.452-.879-.5-2.025-1.007-3.437-1.52l.29-.816c1.453.528 2.642 1.054 3.567 1.58.94.534 2.004 1.398 3.199 2.59ZM2.73 8.168l-.229-.31a4.64 4.64 0 0 1 .594-.361c.425-.215.852-.35 1.259-.362h.059v.385h-.048c-.343.01-.72.13-1.1.322a4.264 4.264 0 0 0-.536.326Z"}),(0,n.createElement)("path",{d:"m2.906 8.301.096-.373c1.27.335 2.25.501 2.932.501.681 0 1.695-.196 3.034-.59l.106.37c-1.37.403-2.415.606-3.14.606-.721 0-1.73-.172-3.028-.514ZM2.411 4.847l.604-.616.883.887-.603.616-.884-.887Z"}),(0,n.createElement)("path",{d:"m7.418 7.924.449-.74 1.402.873-.45.74-1.401-.873Z"})),(0,n.createElement)("path",{fill:"#F9E813",fillRule:"evenodd",d:"M2.095 6c0 2.156 1.727 3.904 3.857 3.904S9.81 8.156 9.81 6c0-2.156-1.726-3.904-3.857-3.904-2.13 0-3.857 1.748-3.857 3.904Zm7.238.048c0 1.863-1.492 3.374-3.333 3.374-1.841 0-3.333-1.51-3.333-3.374 0-1.863 1.492-3.373 3.333-3.373 1.84 0 3.333 1.51 3.333 3.373Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#fff",d:"M3.828 3.593v3.13c.206 1.239.9 1.859 2.083 1.859 1.182 0 1.877-.62 2.083-1.859v-3.13H3.828Z"}),(0,n.createElement)("path",{fill:"#C51918",d:"M3.043 3h5.536v3.711l-.004.026C8.307 8.22 7.359 9 5.81 9c-1.548 0-2.496-.78-2.764-2.263l-.004-.026V3Z"}),(0,n.createElement)("path",{fill:"#F9E813",fillRule:"evenodd",d:"M4.524 3.953h-.9v.9h.9v-.9Zm3.5 0h-.9v.9h.9v-.9ZM3.624 5.953h.9v.9h-.9v-.9Zm3.55.014h.9v.9h-.9v-.9Zm.013 1.458h-.9v.9h.9v-.9ZM4.324 7.42h.9v.9h-.9v-.9Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M4.426 4.355h2.97v2.22s-.22 1.147-1.485 1.147c-1.265 0-1.485-1.146-1.485-1.146v-2.22Z"}),(0,n.createElement)("path",{fill:"#013399",d:"M5.619 4.602h.66v.481s-.049.248-.33.248-.33-.248-.33-.248v-.48ZM5.619 5.663h.66v.48s-.049.249-.33.249-.33-.249-.33-.249v-.48ZM6.476 5.663h.66v.48s-.049.249-.33.249c-.28 0-.33-.249-.33-.249v-.48ZM4.762 5.663h.66v.48s-.049.249-.33.249-.33-.249-.33-.249v-.48ZM5.619 6.723h.66v.48s-.049.249-.33.249-.33-.248-.33-.248v-.481Z"}))),ra=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"RO_-_Romania_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#RO_-_Romania_svg__a)"},(0,n.createElement)("path",{fill:"#FBCD17",d:"M5 0h6v12H5V0Z"}),(0,n.createElement)("path",{fill:"#E11C1B",d:"M11 0h5v12h-5V0Z"}),(0,n.createElement)("path",{fill:"#2E42A5",d:"M0 0h5v12H0V0Z"}))),da=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"RU_-_Russian_Federation_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#RU_-_Russian_Federation_svg__a)"},(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"RU_-_Russian_Federation_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#RU_-_Russian_Federation_svg__b)"},(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#C51918",d:"M0 8v4h16V8H0Z"})))),ma=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SM_-_San_Marino_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#SM_-_San_Marino_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"SM_-_San_Marino_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#SM_-_San_Marino_svg__b)"},(0,n.createElement)("path",{fill:"#56C6F5",fillRule:"evenodd",d:"M0 6v6h16V6H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#006923",fillRule:"evenodd",d:"M5.127 4.514a.28.28 0 0 0-.028-.107c-.128-.24-.087-.539-.087-.539s-.153.35-.243.681c-.095-.154-.128-.308-.128-.308s-.06.969.126 1.199c.187.23.312.33.312.33s.014-.402-.04-.717c.038-.131.073-.275.085-.399a4.77 4.77 0 0 0 .17-.133 2.01 2.01 0 0 0-.035.291s.705-.512.723-.783c.018-.271.212-.503.212-.503s-.16.11-.344.257c.049-.228.199-.407.199-.407s-.801.548-.867.837a3.274 3.274 0 0 0-.055.301Zm.034 1.665c-.076-.145-.41-.753-.644-.805-.265-.06-.464-.288-.464-.288s.417.877.692.987c.22.088.366.123.414.134-.008.118-.009.2-.009.2s.13-.095.329-.314c.199-.22.188-1.19.188-1.19s-.078.292-.29.462c-.142.114-.196.544-.216.814Zm-.625-.091c.302-.002.768.74.768.74s-.18.01-.496-.04c-.315-.05-.806-.895-.806-.895s.231.196.534.195ZM6.01 7.816s.18-.946-.09-1.166a.958.958 0 0 1-.317-.55s-.24 1.049 0 1.32c.24.272.407.396.407.396Zm-1.088-.255c.176.209.737 0 .737 0s.124.112-.321-.295c-.445-.406-1.35-.15-1.107-.15.244 0 .515.236.69.445Zm.416 1.11c.326.276 1.032-.38 1.032-.38s-.182-.22-.519-.383c-.336-.162-1.578 0-1.578 0l.553.246s-.615.24-.452.227c.163-.013.637.013.964.29Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#093",fillRule:"evenodd",d:"M9.607 8.098s-.28-.472 0-.7c.28-.227.392-.076.392-.338s.028-.184.166-.314.04-.446.225-.288c.184.158.219-.145.219.485v-.925c0-.353-.22-.27-.22-.506 0-.237-.218-.591 0-.591.22 0 .349.263.349.263s.215.367.215 0-.383-.258-.563-.663c-.18-.405-.152.045-.391-.477-.24-.521-.526-.687-.263-.687h.429c.225 0 .573-.187.573 0v.394c0 .293.215.293.215.293s.117-.586.264-.293c.147.293.047.77.155.77s.018-.492.254-.115c.235.377 0 .633 0 .778 0 .146-.254.502-.254.502s.05.174.254 0c.204-.174.397-.349.397-.174 0 .174.398.228 0 .506-.397.279-.144.557-.397.557-.254 0-.553.368-.673.368s-.568.28-.344.28c.224 0 .454-.562.608-.28.155.28.153-.046.28.117.129.164.256 1.05.129.695-.128-.356-.329-.356-.673-.356-.344 0-1.013.025-.788.19.225.166.477-.165.573 0 .095.166.068.33.215.166.148-.166.293 0 .419 0s-.126.184 0 .343c.126.159.406.37.126.37s-.425-.224-.545 0c-.12.224-.125.614-.344.307-.22-.307-.61-.151-.61-.307 0-.155.085-.18-.154-.18-.238 0-.238-.19-.238-.19Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M10.758 4.725a.123.123 0 0 1-.12.125.123.123 0 0 1-.122-.125c0-.07.054-.125.121-.125s.121.056.121.125ZM5.17 5a.123.123 0 0 0 .121-.125.123.123 0 0 0-.12-.125.123.123 0 0 0-.122.125c0 .069.055.125.121.125Zm.121.525a.123.123 0 0 1-.12.125.123.123 0 0 1-.122-.125c0-.07.055-.125.121-.125.067 0 .121.056.121.125ZM5.363 6.8a.123.123 0 0 0 .12-.125.123.123 0 0 0-.12-.125.123.123 0 0 0-.121.125c0 .069.054.125.121.125Zm.968 1.25a.123.123 0 0 0 .12-.125.123.123 0 0 0-.12-.125.123.123 0 0 0-.121.125c0 .069.054.125.12.125Zm4.645-1.9c.067 0 .12-.056.12-.125a.123.123 0 0 0-.12-.125.123.123 0 0 0-.121.125c0 .069.054.125.12.125Zm-.266.875a.123.123 0 0 1-.121.125.123.123 0 0 1-.121-.125c0-.07.054-.125.12-.125.068 0 .122.056.122.125ZM9.573 8.25a.123.123 0 0 0 .12-.125.123.123 0 0 0-.12-.125.123.123 0 0 0-.121.125c0 .069.054.125.12.125ZM6.5 8.275a.123.123 0 0 1-.12.125.123.123 0 0 1-.122-.125c0-.07.054-.125.121-.125s.121.056.121.125Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M9.019 9.91c0-.103-1.55-1.17-1.966-1.407C6.636 8.268 4.605 6.971 5.158 5h-.084S4.7 7.428 7.28 8.938c1.174.788 1.233.972 1.233.972s.506.102.506 0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M6.962 9.91c0-.103 1.55-1.17 1.967-1.407.416-.235 2.448-1.532 1.894-3.503h.084s.374 2.428-2.206 3.938c-1.174.788-1.233.972-1.233.972s-.506.102-.506 0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#56C6F5",fillRule:"evenodd",d:"M8.024 8.443c1.083 0 1.96-1.401 1.96-2.768 0-1.367-.877-2.075-1.96-2.075-1.082 0-1.96.708-1.96 2.075 0 1.367.878 2.768 1.96 2.768Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M7.157 4.77s.301-.267.15-.267c-.029 0-.064-.005-.103-.012-.16-.025-.367-.059-.367.278v.581h-.045a.05.05 0 1 0 0 .1h.04c-.008.124-.02.344-.031.564l-.057.005a.054.054 0 0 0-.05.058l.005.042c.002.03.028.052.058.05l.036-.004a33.75 33.75 0 0 0-.025.51c0 .067.46.04.46.04s-.015-.27-.03-.585l.03-.003a.054.054 0 0 0 .05-.058l-.005-.043a.054.054 0 0 0-.058-.049l-.025.003c-.01-.19-.018-.38-.025-.53h.06a.05.05 0 1 0 0-.1H7.16a5.214 5.214 0 0 1-.004-.159v-.422Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#000",fillRule:"evenodd",d:"M6.936 5.5h.16v.215h-.16V5.5ZM6.887 6.25h.269v.5h-.269v-.5Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M8.173 4.77s.302-.267.15-.267c-.029 0-.064-.005-.103-.012-.16-.025-.367-.059-.367.278v.581h-.045a.05.05 0 0 0 0 .1h.04c-.007.124-.02.344-.03.564l-.058.005a.054.054 0 0 0-.049.058l.004.042c.002.03.028.052.058.05l.036-.004c-.013.257-.025.482-.025.51 0 .067.46.04.46.04s-.015-.27-.03-.585l.03-.003a.054.054 0 0 0 .05-.058l-.005-.043a.054.054 0 0 0-.058-.049l-.025.003c-.01-.19-.018-.38-.025-.53h.06a.05.05 0 1 0 0-.1h-.064a5.224 5.224 0 0 1-.004-.159v-.422ZM9.14 4.77s.302-.267.151-.267c-.029 0-.064-.005-.103-.012-.16-.025-.367-.059-.367.278v.581h-.045a.05.05 0 0 0 0 .1h.039l-.03.564-.057.005a.054.054 0 0 0-.05.058l.004.042c.003.03.03.052.059.05l.036-.004a33.75 33.75 0 0 0-.025.51c0 .067.46.04.46.04s-.015-.27-.03-.585l.03-.003a.054.054 0 0 0 .049-.058l-.004-.043a.054.054 0 0 0-.058-.049l-.025.003c-.01-.19-.018-.38-.025-.53h.06a.05.05 0 1 0 0-.1h-.064a5.224 5.224 0 0 1-.004-.159v-.422Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#000",fillRule:"evenodd",d:"M8.92 5.5h.16v.215h-.16V5.5ZM8.871 6.25h.269v.5H8.87v-.5Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E8AA00",fillRule:"evenodd",d:"M9.258 3.2H6.694v.383l-.018.001s-1.256.977-.907 2.44C6.117 7.485 7.502 8.57 7.502 8.57l.07-.253s-1.32-1.794-1.32-2.512c0-.717.25-1.39.513-1.494.159-.063.186-.05.23-.03.028.013.064.03.149.03.214 0 .428-.154.428-.154s.15.154.288.154c.138 0 .14-.154.14-.154V3.65h.015v.508s.002.154.14.154c.14 0 .288-.154.288-.154s.215.154.429.154c.085 0 .12-.017.15-.03.042-.02.07-.033.228.03.264.104.513.777.513 1.494 0 .718-1.32 2.512-1.32 2.512l.07.253s1.385-1.085 1.734-2.548c.348-1.462-.908-2.439-.908-2.439l-.08-.007V3.2Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFD018",d:"M6.694 3.2v-.25h-.25v.25h.25Zm2.564 0h.25v-.25h-.25v.25Zm-2.564.383.022.249.228-.02v-.23h-.25Zm-.018.001-.022-.249-.073.007-.058.045.153.197Zm-.907 2.44-.244.057.244-.058ZM7.502 8.57l-.154.196.295.231.1-.36-.24-.067Zm.07-.253.241.067.033-.117-.072-.098-.202.148Zm-.807-4.006-.092-.233.092.233Zm.23-.03-.107.226.106-.226Zm.577-.124.18-.174-.15-.154-.175.125.145.203Zm.428 0 .25.004v-.004H8Zm0-.508V3.4h-.25v.25H8Zm.015 0h.25V3.4h-.25v.25Zm0 .508h-.25v.004l.25-.004Zm.428 0 .146-.203-.175-.125-.15.154.18.174Zm.578.124.106.226-.106-.226Zm.23.03-.093.232.092-.232Zm-.808 4.006-.201-.148-.072.098.032.117.241-.067Zm.07.253-.24.066.099.361.295-.23-.154-.197Zm.826-4.987.153-.197-.058-.045-.073-.007-.022.25Zm-.08-.007h-.25v.229l.227.02.022-.249ZM6.693 3.45h2.564v-.5H6.694v.5Zm.25.133V3.2h-.5v.383h.5Zm-.245.25.017-.001-.045-.498-.017.001.045.498Zm-.687 2.132c-.154-.645.044-1.186.291-1.576a2.78 2.78 0 0 1 .527-.608l-.154-.197-.153-.197-.002.002a.832.832 0 0 0-.063.052 3.279 3.279 0 0 0-.578.68c-.293.464-.55 1.143-.355 1.96l.487-.116Zm1.49 2.606.155-.197a.205.205 0 0 1-.013-.01 4.76 4.76 0 0 1-.194-.17 6.14 6.14 0 0 1-.494-.512c-.378-.44-.783-1.04-.944-1.717l-.487.116c.188.787.65 1.46 1.052 1.927a6.64 6.64 0 0 0 .77.758l.001.001.154-.196Zm-.17-.32-.07.253.481.133.07-.252-.482-.134Zm-1.33-2.445c0 .238.105.528.23.8.13.282.3.583.467.856a15.993 15.993 0 0 0 .656.983l.012.015.003.005v.001l.202-.148.202-.148-.001-.001-.003-.004-.01-.014a9.941 9.941 0 0 1-.188-.266 15.51 15.51 0 0 1-.446-.684 8.007 8.007 0 0 1-.44-.804c-.123-.267-.184-.47-.184-.59h-.5Zm.67-1.727a.7.7 0 0 0-.305.27c-.076.11-.14.248-.193.397-.105.3-.172.675-.172 1.06h.5c0-.331.058-.65.144-.894.043-.121.09-.217.135-.283.048-.071.078-.086.076-.085l-.184-.465Zm.428-.024c-.03-.014-.096-.046-.194-.039a.798.798 0 0 0-.233.063l.184.465a.834.834 0 0 1 .074-.026c.015-.005.016-.004.009-.003a.118.118 0 0 1-.044-.005.119.119 0 0 1-.013-.005l.005.003.212-.453Zm.044.007a.25.25 0 0 1-.028-.002H7.11L7.1 4.054l-.212.453c.017.008.051.024.099.036a.638.638 0 0 0 .157.018v-.5Zm.428.096a55.611 55.611 0 0 1-.145-.203l-.003.002a.571.571 0 0 1-.093.052.47.47 0 0 1-.187.053v.5a.959.959 0 0 0 .402-.101 1.316 1.316 0 0 0 .17-.099h.001l-.145-.204Zm.288-.096c.01 0 .009.002-.005-.004a.495.495 0 0 1-.104-.074l-.179.174-.179.175.002.001a.206.206 0 0 0 .01.01.902.902 0 0 0 .115.096.61.61 0 0 0 .34.122v-.5Zm.14.096-.25-.003v-.003a.338.338 0 0 1 0-.01l.005-.012a.117.117 0 0 1 .037-.044.12.12 0 0 1 .068-.024v.5a.382.382 0 0 0 .384-.34.454.454 0 0 0 .006-.056v-.004L8 4.158Zm-.25-.508v.508h.5V3.65h-.5Zm.265-.25H8v.5h.015v-.5Zm-.25.25v.508h.5V3.65h-.5Zm.25.508-.25.004v.004a.323.323 0 0 0 .006.057.455.455 0 0 0 .036.117.382.382 0 0 0 .349.221v-.5a.12.12 0 0 1 .067.025.117.117 0 0 1 .038.044l.004.012a.045.045 0 0 1 0 .007.084.084 0 0 1 0 .005v.001l-.25.003Zm.14.404a.61.61 0 0 0 .34-.122.997.997 0 0 0 .126-.106.015.015 0 0 0 .001-.001l-.179-.175-.179-.174-.001.001a.407.407 0 0 1-.103.073c-.014.006-.014.004-.004.004v.5Zm.288-.404-.145.204.002.001.003.003a.764.764 0 0 0 .046.03c.03.017.07.041.12.065a.959.959 0 0 0 .403.1v-.5a.47.47 0 0 1-.187-.052.815.815 0 0 1-.097-.054l-.145.203Zm.429.404c.059 0 .11-.006.157-.018.047-.012.082-.028.098-.036l-.212-.453a.192.192 0 0 1-.01.004h.001L8.9 4.06a.25.25 0 0 1-.027.002v.5Zm.255-.054.006-.003a.12.12 0 0 1-.038.01h-.02c-.007 0-.005-.002.01.003a.833.833 0 0 1 .073.026l.185-.465a.798.798 0 0 0-.234-.063c-.098-.007-.164.025-.194.04l.212.452Zm.031.036c-.001 0 .029.014.077.085.045.066.092.162.135.283.085.243.143.563.143.894h.5c0-.385-.066-.76-.172-1.06a1.75 1.75 0 0 0-.192-.398.7.7 0 0 0-.306-.269l-.185.465Zm.355 1.262c0 .12-.06.324-.183.591a8.005 8.005 0 0 1-.44.804 15.51 15.51 0 0 1-.634.95l-.01.014-.003.004h-.001v.001a302.845 302.845 0 0 1 .403.296v-.001l.004-.005a4.547 4.547 0 0 0 .054-.075 15.556 15.556 0 0 0 .613-.923c.168-.273.338-.574.468-.856.125-.272.229-.562.229-.8h-.5Zm-1.31 2.579.07.252.481-.133-.07-.253-.482.134Zm.31.186.154.196.002-.001a.407.407 0 0 0 .017-.014 5.25 5.25 0 0 0 .218-.19c.141-.13.332-.318.535-.554.402-.468.864-1.14 1.051-1.927l-.486-.116c-.162.677-.567 1.278-.944 1.717a6.14 6.14 0 0 1-.699.69l-.002.002.154.197Zm1.977-2.49c.195-.817-.061-1.496-.355-1.96a3.28 3.28 0 0 0-.636-.73l-.004-.002-.002-.001v-.001l-.154.197a32.07 32.07 0 0 1-.154.197l.002.001.007.007.033.028a2.78 2.78 0 0 1 .485.572c.248.39.446.93.292 1.576l.486.116ZM9.361 3.335l-.08-.007-.045.498.08.007.045-.498ZM9.008 3.2v.377h.5V3.2h-.5Z"}),(0,n.createElement)("path",{fill:"#8FC753",fillRule:"evenodd",d:"M6.552 6.892s.157-.422.432-.281c.275.14.25.63.501.456.25-.175.108-.456.48-.456.37 0 .315.456.538.456.222 0 .241-.456.49-.456.248 0 .5.281.5.281l-1.47 2.002-1.471-2.002Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFD018",fillRule:"evenodd",d:"M7.947 1.015h.1v.107h.123v.1h-.123v.182a.297.297 0 0 1 .243.296c0 .166-.13.3-.29.3a.295.295 0 0 1-.29-.3c0-.147.102-.27.237-.295v-.183h-.113v-.1h.113v-.107Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M6.874 2.583c-.14 0-.436.182-.436.182l.23.62 1.384-.063 1.385.063.229-.62s-.295-.182-.435-.182c-.062 0-.07-.044-.078-.093-.011-.064-.024-.135-.152-.135a.694.694 0 0 0-.207.033c-.078.022-.129.037-.202-.033l-.01-.01c-.117-.113-.24-.231-.439-.231-.04 0-.069.046-.09.119-.023-.073-.052-.12-.092-.12-.199 0-.321.119-.44.233l-.009.009c-.073.07-.123.055-.202.033a.694.694 0 0 0-.206-.033c-.129 0-.141.071-.152.135-.01.049-.017.093-.078.093Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFD018",fillRule:"evenodd",d:"M7.5 2s.333-.241.5-.241c.167 0 .5.241.5.241v2h-1V2Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFD018",fillRule:"evenodd",d:"m7.804 1.784-.097.034c-.257.089-.48.118-.667.09-.387-.06-.891.141-.828.436.028.129.108.373.193.58.116.286.198.43.293.43a14.365 14.365 0 0 1 .2.011c.14.007.264.01.383.01.345-.001.558-.035.634-.138l.023-.03-.01-.037c-.091-.312-.133-.738-.125-1.28l.001-.106Zm-1.45.527c-.031-.144.363-.302.665-.255.187.029.4.007.638-.065-.002.482.038.873.118 1.174-.069.036-.25.06-.495.06-.116 0-.237-.003-.375-.01l-.192-.01a2.412 2.412 0 0 1-.175-.34 4.11 4.11 0 0 1-.184-.554ZM8.227 1.784l.098.034c.256.089.479.118.667.09.386-.06.89.141.828.436-.028.129-.109.373-.193.58-.117.286-.198.43-.294.43a14.365 14.365 0 0 0-.199.011c-.14.007-.264.01-.384.01-.344-.001-.558-.035-.634-.138l-.022-.03.01-.037c.09-.312.133-.738.125-1.28l-.002-.106Zm1.45.527c.032-.144-.363-.302-.664-.255-.188.029-.4.007-.638-.065.001.482-.038.873-.118 1.174.068.036.25.06.494.06.116 0 .238-.003.376-.01l.191-.01a2.41 2.41 0 0 0 .175-.34c.081-.199.16-.435.185-.554Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#fff",d:"m3.979 10.16-.37-.929c1.53-.61 2.994-.917 4.391-.917 1.38 0 2.682.19 3.905.567l-.295.956A12.151 12.151 0 0 0 8 9.314c-1.264 0-2.604.281-4.021.846Z"}),(0,n.createElement)("path",{fill:"#272727",d:"m6.887 8.942.03-.248c.538.066.896.099 1.077.1.273.011.598-.008.974-.06l.035.247c-.391.054-.73.075-1.014.062-.19 0-.555-.034-1.102-.1Z"}),(0,n.createElement)("path",{fill:"#006923",fillRule:"evenodd",d:"M5.162 4S3.77 5.255 4.045 6.483C4.357 8.352 6.23 9.004 6.23 9.004l.992-.351s-1.9-1.09-1.9-2.17C5.32 5.402 5.606 4 5.606 4h-.444Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#093",fillRule:"evenodd",d:"M11.06 4s1.39 1.255 1.116 2.483c-.312 1.869-2.184 2.521-2.184 2.521L9 8.653s1.9-1.09 1.9-2.17C10.9 5.402 10.616 4 10.616 4h.443Z",clipRule:"evenodd"})))),ha=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"RS_-_Serbia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#RS_-_Serbia_svg__a)"},(0,n.createElement)("path",{fill:"#4857A1",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"RS_-_Serbia_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#RS_-_Serbia_svg__b)"},(0,n.createElement)("path",{fill:"#C51918",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 8v4h16V8H0Z"}),(0,n.createElement)("path",{fill:"#F6C540",d:"m5.26 1.348-.064-.244.171.047-.002-.01c.754.07 1.922.447 2.142.84.085.151.002.28-.106.448l-.05.078c-.054.088-.103.171-.149.25-.17.288-.3.512-.505.624l.004.64-3.369-.028-.004-.644c-.175-.12-.298-.329-.452-.591-.046-.08-.095-.163-.15-.25-.016-.028-.033-.054-.05-.079-.107-.168-.19-.296-.105-.448.166-.296.913-.589 1.593-.744.128-.043.262-.083.394-.121l.055.037a3.72 3.72 0 0 1 .17-.02l.08.171h.264s.166.464.166.721a.86.86 0 0 1-.166.47v.178l.091.008c0-.016.001-.032.004-.05.015-.084.064-.146.109-.138.045.007.07.083.054.168a.29.29 0 0 1-.01.038c.178.023.377.055.566.088.072-.132.16-.261.243-.385.216-.32.406-.6.229-.769a.512.512 0 0 0-.175-.089 5.825 5.825 0 0 0-.82-.138l-.007-.036a31.083 31.083 0 0 0-.15-.022Zm1.282 1.55.152.031.001.1c.334-.24.568-.78.588-.956.012-.105-.163-.228-.439-.34.126.235-.05.469-.271.76a5.13 5.13 0 0 0-.256.362l.083.016a.266.266 0 0 1 .01-.081c.022-.084.075-.142.12-.13.044.012.062.09.04.172a.273.273 0 0 1-.028.067ZM4.82 2.675v-.198s-.143-.15-.166-.465a2.396 2.396 0 0 1 .065-.63c-.2.026-.411.064-.617.11-.165.042-.298.089-.355.142-.177.168.013.449.23.769.08.12.164.244.235.371.121-.025.244-.048.358-.066a.282.282 0 0 1-.01-.054c-.008-.085.023-.158.069-.162.045-.004.088.062.096.148a.286.286 0 0 1 0 .046c.033-.005.065-.008.095-.011Zm-.978.18a5.15 5.15 0 0 0-.255-.36c-.226-.3-.405-.537-.262-.777-.323.121-.54.251-.529.356.019.167.227.655.53.91V2.98s.124-.033.308-.077a.273.273 0 0 1-.031-.065c-.027-.082-.013-.16.03-.174.044-.014.1.041.127.123.01.029.014.057.014.083l.068-.016Z"}),(0,n.createElement)("path",{fill:"#fff",d:"M4.297 1.342a.145.145 0 0 0 .082.025c.077 0 .14-.059.14-.132 0-.073-.063-.132-.14-.132a.141.141 0 0 0-.125.073.145.145 0 0 0-.2.036.145.145 0 0 0-.09-.03c-.077 0-.14.059-.14.131l.001.012a.143.143 0 0 0-.109-.049.138.138 0 0 0-.138.112.143.143 0 0 0-.11-.05.138.138 0 0 0-.137.104.145.145 0 0 0-.082-.025.14.14 0 0 0-.133.09.146.146 0 0 0-.062-.013.138.138 0 0 0-.138.109.149.149 0 0 0-.028-.003.136.136 0 0 0-.14.13.15.15 0 0 0-.025-.002c-.078 0-.14.059-.14.132 0 .009 0 .018.002.027a.149.149 0 0 0-.028-.003c-.077 0-.14.059-.14.132 0 .055.036.102.087.122a.125.125 0 0 0-.004.034c0 .055.036.103.087.122a.125.125 0 0 0-.004.034c0 .071.06.129.134.132a.129.129 0 0 0-.052.102c0 .073.063.132.14.132.078 0 .14-.06.14-.132 0-.071-.06-.13-.134-.132a.129.129 0 0 0 .051-.102.132.132 0 0 0-.087-.122.125.125 0 0 0 .005-.034.132.132 0 0 0-.088-.123.125.125 0 0 0 .002-.06c.01.002.019.003.029.003a.136.136 0 0 0 .14-.13.149.149 0 0 0 .025.002c.07 0 .127-.047.138-.11a.14.14 0 0 0 .16-.088.146.146 0 0 0 .146-.01.128.128 0 0 0 .023.048.126.126 0 0 0-.027.078c0 .07.06.129.134.131a.129.129 0 0 0-.051.103c0 .055.036.102.087.122a.125.125 0 0 0-.004.034c0 .055.036.103.087.122a.125.125 0 0 0-.005.034c0 .073.063.132.14.132.078 0 .14-.06.14-.132a.132.132 0 0 0-.087-.122.125.125 0 0 0 .004-.034.132.132 0 0 0-.087-.123.125.125 0 0 0 .005-.033c0-.071-.06-.13-.135-.132a.126.126 0 0 0 .025-.18.126.126 0 0 0 0-.157.127.127 0 0 0 .025-.057c.026.03.066.05.11.05.078 0 .14-.06.14-.132v-.012c.025.03.065.05.109.05.05 0 .092-.025.117-.061.025.019.056.03.09.03.054 0 .102-.03.125-.073Zm-.83.26a.143.143 0 0 0 .114-.055.143.143 0 0 0-.113-.053c.014 0 .026-.011.026-.025 0-.013-.012-.024-.026-.024-.014 0-.026.011-.026.024 0 .014.012.025.026.025-.03 0-.06.009-.082.025a.132.132 0 0 0-.055-.077.125.125 0 0 0 .024.105.126.126 0 0 0-.023.109.132.132 0 0 0 .054-.08.145.145 0 0 0 .082.025Zm0 .048a.143.143 0 0 0-.112.054.143.143 0 0 0 .113.053.143.143 0 0 0 .113-.053.143.143 0 0 0-.113-.054Zm0 0c.015 0 .027-.011.027-.024 0-.014-.012-.025-.026-.025-.014 0-.026.011-.026.025 0 .013.012.024.026.024Zm-.08-.073a.137.137 0 0 1-.032-.03.137.137 0 0 1 .03-.028.125.125 0 0 1 .001.058Zm.382.629a.147.147 0 0 0-.053-.01.139.139 0 0 0-.135.098c.016.006.034.01.052.01.065 0 .12-.042.136-.098Zm-.083-.156a.147.147 0 0 0-.053-.01.139.139 0 0 0-.135.098c.016.006.034.01.053.01.065 0 .12-.042.135-.099Zm-.13-.166h-.005a.145.145 0 0 0-.089.03h.006a.145.145 0 0 0 .088-.03Zm-.745.546h-.006a.145.145 0 0 0-.088.03h.006a.145.145 0 0 0 .088-.03Zm-.036-.224a.139.139 0 0 1-.135.098.147.147 0 0 1-.053-.01.139.139 0 0 1 .136-.098c.018 0 .036.003.052.01Zm-.083-.156a.139.139 0 0 1-.135.098.147.147 0 0 1-.053-.01.139.139 0 0 1 .136-.098c.018 0 .036.003.052.01Zm-.107-.163a.136.136 0 0 0 .109.102.136.136 0 0 0-.109-.102Zm.277-.025a.134.134 0 0 1-.114-.13V1.73a.134.134 0 0 1 .114.13v.002Zm.164-.107a.134.134 0 0 1-.11-.152.134.134 0 0 1 .11.152Zm.16-.088a.131.131 0 0 1-.077-.118c0-.015.003-.028.007-.041a.131.131 0 0 1 .078.118.125.125 0 0 1-.007.04Zm.42-.177a.127.127 0 0 1-.028-.102.127.127 0 0 1 .028.102Zm.22-.165c.002.027.013.051.03.071a.127.127 0 0 0-.03-.07Zm.256.06a.126.126 0 0 1-.029-.173c.032.024.052.06.052.101 0 .027-.009.051-.023.072Zm.215-.043a.13.13 0 0 1-.058-.107c0-.02.005-.04.015-.059a.13.13 0 0 1 .057.107.125.125 0 0 1-.014.059Zm-1.409.414c.014 0 .026-.01.026-.024 0-.013-.012-.024-.026-.024-.014 0-.026.01-.026.024 0 .013.012.024.026.024Zm-.165.128c.014 0 .025-.011.025-.024 0-.014-.011-.025-.025-.025-.015 0-.026.011-.026.025 0 .013.011.024.026.024Zm-.166.156c.014 0 .026-.01.026-.024s-.012-.024-.026-.024c-.014 0-.026.01-.026.024 0 .013.012.024.026.024Zm.083.156c.014 0 .025-.01.025-.024s-.011-.024-.025-.024c-.014 0-.026.01-.026.024 0 .013.012.024.026.024Zm.083.156c.014 0 .025-.01.025-.024 0-.013-.011-.024-.025-.024-.015 0-.026.01-.026.024 0 .013.011.024.026.024Zm.108.21c0 .013-.011.024-.026.024-.014 0-.025-.01-.025-.024 0-.013.011-.024.025-.024.015 0 .026.01.026.024Zm.223-.912c.014 0 .025-.011.025-.024 0-.014-.011-.025-.025-.025-.014 0-.026.011-.026.025 0 .013.012.024.026.024Zm.195-.077c.015 0 .026-.01.026-.024s-.011-.024-.026-.024c-.014 0-.025.01-.025.024 0 .013.011.024.025.024Zm.467-.14c.014 0 .026-.012.026-.025 0-.013-.012-.024-.026-.024-.014 0-.025.01-.025.024 0 .013.011.024.025.024Zm.249-.095c.014 0 .025-.011.025-.025 0-.013-.011-.024-.025-.024-.014 0-.026.011-.026.024 0 .014.012.025.026.025Zm.206-.03c.014 0 .026-.012.026-.025 0-.013-.012-.024-.026-.024-.014 0-.025.01-.025.024 0 .013.011.024.025.024Zm.208-.048c.014 0 .026-.011.026-.025 0-.013-.012-.024-.026-.024-.014 0-.026.011-.026.024 0 .014.012.025.026.025Zm-.911.546c.014 0 .026-.011.026-.024 0-.014-.012-.025-.026-.025-.014 0-.026.011-.026.025 0 .013.012.024.026.024Zm.083.234c.014 0 .025-.01.025-.024s-.011-.024-.025-.024c-.014 0-.026.01-.026.024 0 .013.012.024.026.024Zm.082.156c.015 0 .026-.01.026-.024s-.011-.024-.026-.024c-.014 0-.025.01-.025.024 0 .013.011.024.025.024Zm.083.156c.014 0 .026-.01.026-.024 0-.013-.012-.024-.026-.024-.014 0-.025.01-.025.024 0 .013.011.024.025.024Zm3.644.234c.014 0 .026-.01.026-.024 0-.013-.012-.024-.026-.024-.014 0-.025.01-.025.024 0 .013.011.024.025.024Zm-.14-.024c0 .073.063.132.14.132.077 0 .14-.06.14-.132a.129.129 0 0 0-.051-.102.136.136 0 0 0 .134-.132.125.125 0 0 0-.005-.034.132.132 0 0 0 .088-.122.125.125 0 0 0-.005-.034.132.132 0 0 0 .088-.122c0-.073-.063-.132-.14-.132-.01 0-.02 0-.029.003a.125.125 0 0 0 .003-.027c0-.073-.063-.132-.14-.132a.15.15 0 0 0-.026.002.136.136 0 0 0-.14-.13c-.01 0-.018.001-.027.003a.138.138 0 0 0-.138-.11.146.146 0 0 0-.063.015.14.14 0 0 0-.133-.091c-.03 0-.059.009-.081.025a.138.138 0 0 0-.137-.104.143.143 0 0 0-.11.05.138.138 0 0 0-.139-.112.143.143 0 0 0-.109.05v-.013c0-.072-.062-.132-.14-.132a.145.145 0 0 0-.088.03.145.145 0 0 0-.2-.035.141.141 0 0 0-.125-.073c-.078 0-.14.06-.14.132 0 .073.062.132.14.132.03 0 .059-.01.082-.025a.145.145 0 0 0 .214.043c.025.036.068.06.118.06.044 0 .083-.019.109-.049v.012c0 .073.062.132.14.132.044 0 .084-.02.11-.05a.127.127 0 0 0 .025.057.126.126 0 0 0 0 .157.126.126 0 0 0 .024.18.136.136 0 0 0-.134.132c0 .011.002.023.005.034a.132.132 0 0 0-.088.122c0 .011.002.023.005.034a.132.132 0 0 0-.088.122c0 .073.063.132.14.132.078 0 .14-.06.14-.132a.125.125 0 0 0-.004-.034.132.132 0 0 0 .087-.122.125.125 0 0 0-.005-.034.132.132 0 0 0 .088-.122.129.129 0 0 0-.052-.103.136.136 0 0 0 .135-.131c0-.03-.01-.057-.027-.078a.128.128 0 0 0 .023-.048.145.145 0 0 0 .145.01.14.14 0 0 0 .16.089c.012.062.07.109.138.109.01 0 .018 0 .026-.002.001.072.063.13.14.13.01 0 .02-.001.029-.003a.126.126 0 0 0 .001.06.132.132 0 0 0-.087.123c0 .011.001.023.005.034a.132.132 0 0 0-.088.122c0 .041.02.078.052.102a.136.136 0 0 0-.135.132Zm-.44-.985a.145.145 0 0 1-.195-.03.145.145 0 0 1 .195-.029.125.125 0 0 0 0 .059Zm.03-.03a.126.126 0 0 1 .024.109.132.132 0 0 1-.055-.08.137.137 0 0 0 .032-.029Zm0 0a.137.137 0 0 0-.03-.028.132.132 0 0 1 .055-.077.125.125 0 0 1-.024.105Zm-.225.747a.139.139 0 0 0-.136-.098.147.147 0 0 0-.052.01c.016.056.07.098.135.098a.147.147 0 0 0 .053-.01Zm.082-.156a.139.139 0 0 0-.135-.098.147.147 0 0 0-.052.01c.015.056.07.098.135.098a.147.147 0 0 0 .052-.01Zm.036-.225a.145.145 0 0 0-.088-.03h-.006c.024.02.055.03.089.03h.005Zm.108-.21a.143.143 0 0 0-.113-.053.143.143 0 0 0-.113.054.143.143 0 0 0 .113.053.143.143 0 0 0 .113-.053Zm-.942-.361a.13.13 0 0 0 .058-.107.125.125 0 0 0-.015-.059.13.13 0 0 0-.058.107c0 .021.006.041.015.059Zm.214.043a.126.126 0 0 0 .029-.173.126.126 0 0 0-.029.173Zm.257-.06a.127.127 0 0 1-.03.071.127.127 0 0 1 .03-.07Zm.22.165a.127.127 0 0 0 .028-.102.127.127 0 0 0-.029.102Zm.419.177a.131.131 0 0 0 .077-.118.125.125 0 0 0-.007-.041.131.131 0 0 0-.077.118c0 .014.002.028.007.04Zm.16.088a.134.134 0 0 0 .11-.152.134.134 0 0 0-.11.152Zm.333.234a.136.136 0 0 0 .108-.102.136.136 0 0 0-.108.102Zm-.055-.259v.002c0 .065-.049.118-.114.13V1.86c0-.065.05-.119.114-.13Zm.056.32a.147.147 0 0 1 .053-.01c.065 0 .12.042.135.098a.147.147 0 0 1-.052.01.139.139 0 0 1-.136-.099Zm-.082.156a.147.147 0 0 1 .052-.01c.065 0 .12.042.135.098a.147.147 0 0 1-.052.01.139.139 0 0 1-.135-.098Zm.052.254a.145.145 0 0 1-.088-.03h.005c.034 0 .064.011.088.03h-.005Zm0-.108c.014 0 .026-.01.026-.024 0-.013-.012-.024-.026-.024-.014 0-.026.01-.026.024 0 .013.012.024.026.024Zm.083-.156c.014 0 .026-.01.026-.024s-.012-.024-.026-.024c-.014 0-.026.01-.026.024 0 .013.012.024.026.024Zm.083-.156c.014 0 .025-.01.025-.024s-.011-.024-.025-.024c-.015 0-.026.01-.026.024 0 .013.011.024.026.024Zm-.166-.156c.014 0 .026-.011.026-.024 0-.014-.012-.025-.026-.025-.014 0-.026.011-.026.025 0 .013.012.024.026.024Zm-.166-.128c.015 0 .026-.01.026-.024 0-.013-.011-.024-.026-.024-.014 0-.025.01-.025.024 0 .013.011.024.025.024Zm-.165-.106c.014 0 .025-.011.025-.024 0-.014-.011-.025-.025-.025-.014 0-.026.011-.026.025 0 .013.012.024.026.024Zm-.196-.077c.014 0 .026-.01.026-.024s-.012-.024-.026-.024c-.014 0-.025.01-.025.024 0 .013.011.024.025.024Zm-.218-.08c.014 0 .025-.01.025-.024 0-.013-.011-.024-.025-.024-.014 0-.026.011-.026.024 0 .014.012.025.026.025Zm-.249-.06c.014 0 .026-.012.026-.025 0-.013-.012-.024-.026-.024-.014 0-.025.01-.025.024 0 .013.011.024.025.024Zm-.248-.095c.014 0 .025-.011.025-.025 0-.013-.011-.024-.025-.024-.014 0-.026.011-.026.024 0 .014.012.025.026.025Zm-.207-.03c.014 0 .026-.012.026-.025 0-.013-.012-.024-.026-.024-.014 0-.025.01-.025.024 0 .013.011.024.025.024Zm-.207-.048c.014 0 .025-.011.025-.025 0-.013-.011-.024-.025-.024-.014 0-.026.011-.026.024 0 .014.012.025.026.025Zm.91.39c.015 0 .026-.011.026-.024 0-.014-.011-.025-.025-.025-.014 0-.026.011-.026.025 0 .013.012.024.026.024Zm0 .156c.015 0 .026-.011.026-.024 0-.014-.011-.025-.025-.025-.014 0-.026.011-.026.025 0 .013.012.024.026.024Zm-.082.234c.014 0 .026-.01.026-.024s-.012-.024-.026-.024c-.014 0-.026.01-.026.024 0 .013.012.024.026.024Zm-.083.156c.014 0 .026-.01.026-.024s-.012-.024-.026-.024c-.014 0-.026.01-.026.024 0 .013.012.024.026.024Zm-.083.156c.014 0 .026-.01.026-.024 0-.013-.012-.024-.026-.024-.014 0-.025.01-.025.024 0 .013.011.024.025.024Z"}),(0,n.createElement)("path",{fill:"#F6C540",d:"m5.11.46-.219.007-.004.341-.404.006.002.207.4-.005-.006.389.219-.007.005-.385.397-.006L5.5.8l-.393.005.004-.344Z"}),(0,n.createElement)("path",{fill:"#C51918",d:"M2.02 4.003h5.943v4.756s-.18 2.37-2.972 2.37c-2.791 0-2.971-2.37-2.971-2.37V4.003Z"}),(0,n.createElement)("path",{fill:"#E8AA00",d:"M3.813 4.168c-.054 0-.138.036-.25.078-.11.042-.227.132-.113.222s.277.289.277.215c0-.074.195-.146.195-.11 0 .036-.06.11.098.11s.24.044.07.044c-.168 0-.186.073-.296.073-.11 0-.344-.074-.344-.117 0-.044.136.214.277.214.142 0 .222.125.293.062.07-.062.063-.062.177-.062.115 0 .073-.253.073-.253s-.402-.476-.457-.476ZM6.107 4.168c.054 0 .138.036.25.078.11.042.227.132.113.222s-.277.289-.277.215c0-.074-.195-.146-.195-.11 0 .036.06.11-.098.11s-.24.044-.07.044c.168 0 .187.073.296.073.11 0 .344-.074.344-.117 0-.044-.135.214-.277.214-.141 0-.222.125-.293.062-.07-.062-.062-.062-.177-.062-.114 0-.073-.253-.073-.253s.402-.476.457-.476Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M6.835 4.685c.114.25-.759 1.18-.759 1.18h-.098c-.04 0-.117-.095-.21-.21a3.243 3.243 0 0 0-.205-.24c-.135-.138-.064-.253.003-.36.02-.034.04-.066.054-.098a.447.447 0 0 0 .038-.129c.005-.03.01-.065.039-.143.042-.116.188-.265.29-.369.04-.04.072-.073.09-.095.054-.068.012-.068-.101-.067h-.051c-.152 0-.44.067-.527.145-.087.079-.177.095-.31.095-.134 0-.051.085.07.142-.13.023-.214.228-.264.41-.026-.182-.086-.387-.216-.41.121-.057.203-.142.07-.142s-.224-.016-.31-.095c-.087-.078-.376-.144-.527-.144H3.86c-.114-.002-.155-.002-.1.066.017.022.05.055.089.095.101.104.248.253.29.369.029.078.034.113.038.143.005.032.01.06.038.129.014.032.034.064.054.097.067.108.139.223.004.36-.072.074-.143.162-.206.24-.092.116-.169.211-.21.211H3.76s-.873-.93-.759-1.18c.044-.097.115-.188.174-.264.093-.12.156-.2.03-.2-.204 0-1.018.487-1.018 1.584s.075 1.72.25 2.158c.119.298.01.588-.071.804-.038.1-.07.185-.07.246 0 .196.32.025.32-.098 0-.058.044.029.09.12.051.1.105.205.105.127 0-.083.05-.17.096-.248.035-.061.067-.115.067-.156 0-.04.045-.039.095-.037.064.002.137.004.137-.079 0-.056.023-.067.051-.081.048-.023.11-.053.11-.305 0-.186.04-.12.086-.044.041.07.088.147.113.044.003-.01.03-.053.061-.106a2.04 2.04 0 0 0 .127-.228 1.67 1.67 0 0 1-.293.557c-.093.113-.255.358-.255.358s.15.08.255 0c.06-.044.063-.002.067.043.004.036.007.075.038.075.02 0 .038.003.054.005a.259.259 0 0 0 .033.004c-.035.084-.066.219.039.129a.712.712 0 0 1 .163-.107c.04-.02.057-.029.057-.07 0-.042.016-.028.042-.006.022.02.052.045.083.045.041 0 .05-.054.062-.132a1.028 1.028 0 0 1 .056-.225c.046-.134.067-.197.119-.027.024.08.067.135.104.184.05.067.091.12.06.2-.011.03-.026.066-.042.104-.055.13-.122.288-.122.413 0 .075-.072.176-.14.271-.079.112-.152.215-.097.257.103.077-.021.337-.125.47-.104.133.767.44.919.44.002 0 .004-.002.006-.004v.003s1.089-.05 1.089-.439c-.104-.133-.228-.393-.126-.47.056-.042-.018-.145-.097-.257-.067-.095-.14-.196-.14-.27 0-.126-.066-.285-.121-.414l-.043-.104c-.03-.08.01-.133.06-.2.038-.049.08-.105.105-.184.052-.17.073-.107.119.027l.015.044c.022.066.032.129.04.181.013.078.021.132.062.132.032 0 .061-.026.084-.045.025-.022.042-.036.042.005 0 .042.016.05.057.07a.712.712 0 0 1 .163.108c.105.09.074-.045.039-.129.01 0 .02-.002.032-.004.017-.002.035-.005.054-.005.031 0 .035-.039.038-.075.005-.045.009-.087.067-.043.105.08.256 0 .256 0s-.162-.245-.256-.358a1.67 1.67 0 0 1-.293-.557c.02.05.08.15.127.228.033.053.059.096.061.106.026.103.072.025.114-.044.046-.076.085-.142.085.044 0 .252.063.282.11.305.029.014.052.025.052.081 0 .083.073.08.137.079.05-.002.095-.003.095.037s.032.095.067.156c.045.077.096.165.096.248 0 .078.053-.027.104-.127.046-.091.09-.178.09-.12 0 .123.32.294.32.098 0-.061-.031-.146-.069-.246-.081-.216-.19-.506-.071-.804.174-.437.25-1.061.25-2.158S6.835 4.22 6.63 4.22c-.125 0-.063.08.03.2.06.076.13.167.174.264Zm-.759 3.213Zm.069 1.018c0-.028.02.003.039.048-.024 0-.04-.008-.04-.049Zm-2.493.048c.024 0 .039-.008.039-.049 0-.027-.02.004-.039.05Zm.101-1.042a.955.955 0 0 1 0 0Z"}),(0,n.createElement)("path",{fill:"#C51918",d:"M3.884 5.942h2.215V7.59s-.238.821-1.108.821c-.87 0-1.107-.821-1.107-.821V5.94Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M5.29 5.918h-.58v.946h-.828v.339h.828V8.42h.58V7.203h.828v-.339H5.29v-.946Z"}),(0,n.createElement)("path",{fill:"#E8AA00",d:"M3.437 9.663c.269-.31.521-.585.297-.78-.225-.195-.493-.026-.762.284s-.437.643-.213.838c.225.195.409-.032.678-.342ZM6.368 9.663c-.27-.31-.522-.585-.297-.78.224-.195.492-.026.761.284.27.31.438.643.214.838-.225.195-.409-.032-.678-.342Z"})))),oa=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SK_-_Slovakia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#SK_-_Slovakia_svg__a)"},(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"SK_-_Slovakia_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#SK_-_Slovakia_svg__b)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",stroke:"#fff",strokeWidth:.5,d:"m7.802 3.015.249-.026-.024-.224H2.939l-.016.233.25.017-.25-.017v.008l-.002.024-.006.088a61.92 61.92 0 0 0-.07 1.344c-.033.77-.055 1.67.001 2.091.11.822.61 2.665 2.544 3.5l.1.044.101-.045c1.837-.821 2.452-2.475 2.593-3.497.072-.516.036-1.418-.015-2.168A40.918 40.918 0 0 0 8.062 3.1l-.008-.083-.003-.022V2.99l-.249.026Z"}),(0,n.createElement)("mask",{id:"SK_-_Slovakia_svg__c",width:7,height:9,x:2,y:2,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",stroke:"#fff",strokeWidth:.5,d:"m7.802 3.015.249-.026-.024-.224H2.939l-.016.233.25.017-.25-.017v.008l-.002.024-.006.088a61.92 61.92 0 0 0-.07 1.344c-.033.77-.055 1.67.001 2.091.11.822.61 2.665 2.544 3.5l.1.044.101-.045c1.837-.821 2.452-2.475 2.593-3.497.072-.516.036-1.418-.015-2.168A40.918 40.918 0 0 0 8.062 3.1l-.008-.083-.003-.022V2.99l-.249.026Z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#SK_-_Slovakia_svg__c)"},(0,n.createElement)("path",{fill:"#F7FCFF",d:"M4.931 3.295s.103.157.15.398c.046.24.054.514.054.514l-.782-.12v.89l.804-.128-.024.934s-.102.031-.348 0a7.715 7.715 0 0 1-.73-.161v.85s.492-.157.73-.193c.238-.036.348 0 .348 0l.008.815h.797l-.008-.815s.251-.039.516.003.517.19.517.19v-.85s-.255.127-.495.158c-.24.032-.538.003-.538.003l.024-.934s.14-.034.326-.009c.187.026.42.137.42.137v-.89s-.228.123-.407.146c-.179.022-.36-.026-.36-.026s.006-.287.044-.499c.039-.212.148-.413.148-.413H4.931Z"}),(0,n.createElement)("path",{fill:"#2E42A5",d:"M3.449 8.123s.22-.472.577-.562c.358-.09.733.281.733.281s.228-.748.787-.748c.558 0 .753.748.753.748s.239-.28.58-.28c.343 0 .66.56.66.56S6.518 9.98 5.495 9.98 3.45 8.123 3.45 8.123Z"}))))),va=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SI_-_Slovenia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#SI_-_Slovenia_svg__a)"},(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"SI_-_Slovenia_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#SI_-_Slovenia_svg__b)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M6.87 2.518s-1.052-.497-2.361-.497c-1.31 0-2.361.497-2.361.497s.117 1.997.302 3.056c.079.451.459 1.11.803 1.422.392.356 1.256.777 1.256.777.25-.173.718-.25 1.315-.777.598-.527.747-1.422.747-1.422l.3-3.056Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C51918",d:"m6.731 2.453.438.219-.3 3.011c-.106.637-.37 1.14-.791 1.512a3.422 3.422 0 0 1-.692.477l-.695.36a1.01 1.01 0 0 0-.134.074l-.055.038-.06-.029c-.584-.285-1.13-.669-1.402-.915-.37-.336-.761-1.023-.844-1.5-.125-.711-.237-1.692-.315-3.028l.394-.206c.077 1.326.171 2.384.294 3.083.072.413.432 1.047.76 1.345.244.22.635.465 1.173.73l.108-.057c.001 0 .367-.163.495-.23.223-.116.43-.256.643-.444.375-.33.608-.774.703-1.338l.28-3.102Z"}),(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M2.771 5.512s.258.789.71 1.23c.451.44 1.01.655 1.01.655s.664-.2 1.042-.624c.377-.424.763-1.26.763-1.26L5.42 4.67l-.349.378-.58-.826-.485.826-.372-.378-.862.842Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M3.573 2.943h-.351l.273-.255-.273-.27h.351l.149-.262.149.262h.35l-.258.253.23.272H3.87l-.15.277-.148-.277ZM5.23 2.943H4.88l.272-.255-.272-.27h.351l.149-.262.149.262h.35l-.258.253.23.272h-.322l-.15.277-.148-.277ZM4.3 3.784h-.352l.273-.256-.273-.27H4.3l.148-.262.15.262h.35l-.259.254.23.272h-.322l-.149.276-.148-.276Z",clipRule:"evenodd"})))),_a=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"SE_-_Sweden_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#SE_-_Sweden_svg__a)"},(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"SE_-_Sweden_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#SE_-_Sweden_svg__b)"},(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M5 0h2v5h9v2H7v5H5V7H0V5h5V0Z",clipRule:"evenodd"})))),ua=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"CH_-_Switzerland_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#CH_-_Switzerland_svg__a)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"CH_-_Switzerland_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#CH_-_Switzerland_svg__b)"},(0,n.createElement)("path",{fill:"#F1F9FF",fillRule:"evenodd",d:"M9 3H7v2H5v2h2v2h2V7h2V5H9V3Z",clipRule:"evenodd"})))),pa=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"UA_-_Ukraine_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#UA_-_Ukraine_svg__a)"},(0,n.createElement)("path",{fill:"#3195F9",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"UA_-_Ukraine_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#UA_-_Ukraine_svg__b)"},(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M0 6v6h16V6H0Z",clipRule:"evenodd"})))),fa=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"VA_-_Vatican_City_State_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#VA_-_Vatican_City_State_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFDC17",fillRule:"evenodd",d:"M0 0h7v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#AF0100",d:"m11.39 6.376-.172.01c.041.594.169 1.052.385 1.375.349.521.809.924 1.117.924.07 0 .086.026.063.09-.033.091-.137.18-.27.215-.222.058-.727.087-1.506.087v.168c.795 0 1.309-.03 1.55-.093.188-.048.337-.177.389-.322.06-.167-.03-.312-.226-.312-.23 0-.653-.372-.972-.848-.198-.296-.318-.728-.357-1.294ZM10.573 6.376l.173.01c-.041.594-.168 1.052-.385 1.375-.348.521-.808.924-1.116.924-.07 0-.086.026-.063.09.033.091.136.18.27.215.222.058.726.087 1.505.087v.168c-.794 0-1.308-.03-1.55-.093-.188-.048-.337-.177-.389-.322-.06-.167.031-.312.227-.312.228 0 .653-.372.971-.848.198-.296.318-.728.357-1.294Z"}),(0,n.createElement)("path",{fill:"#F4B300",fillRule:"evenodd",d:"M14.034 3.399 9.463 6.962a1.67 1.67 0 0 0-.517-.08c-.742 0-1.362.473-1.362 1.088 0 .614.62 1.088 1.362 1.088.085 0 .169-.006.25-.018a.479.479 0 0 1-.16-.21c-.033-.093-.02-.18.033-.238-.04.004-.081.006-.123.006-.5 0-.886-.295-.886-.628s.386-.628.886-.628.887.295.887.628c0 .102-.037.2-.101.287l.036-.033c.159-.147-.197.461-.505.461-.07 0-.086.026-.063.09.03.086.124.17.245.208.501-.157.863-.544.863-1.013a.92.92 0 0 0-.166-.525l2.456-2.085.165.17.118-.107.41.304-.171.132.35.426.706-.545.012-.006-.002-.001.044-.034-.35-.426-.17.13-.458-.317.053-.048-.147-.153.222-.188.118.122.126-.115.398.315-.167.129.35.425.605-.466.07-.038-.01-.008.095-.074-.35-.426-.198.153-.435-.334.059-.054-.101-.104.452-.384-.358-.439Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#BFBFBF",fillRule:"evenodd",d:"M11.692 7.97c0-.277.125-.524.33-.713L9.399 5.224l-.03.023.077.07-.207.213-.11-.099-.401.31.153.118-.35.426-.699-.539-.02-.012.003-.001-.044-.034.35-.426.17.13.458-.317-.053-.048.198-.205-.231-.18-.16.166-.121-.11-.393.317.157.122-.35.425-.586-.452-.088-.052.01-.008-.096-.074.35-.426.198.153.436-.334-.06-.054.12-.123-.47-.365.296-.36 4.541 3.517c.184-.073.39-.114.608-.114.742 0 1.362.474 1.362 1.089 0 .614-.62 1.088-1.362 1.088-.085 0-.168-.006-.25-.018a.479.479 0 0 0 .16-.21c.033-.093.02-.18-.033-.238.04.004.081.006.123.006.5 0 .887-.295.887-.628s-.387-.628-.887-.628-.886.295-.886.628c0 .102.036.2.1.287a2.008 2.008 0 0 1-.036-.033c-.159-.147.197.461.505.461.07 0 .086.026.063.09-.03.086-.123.17-.245.208-.501-.157-.863-.544-.863-1.013Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#AF0100",fillRule:"evenodd",d:"M10.87 5.898a.065.065 0 0 0-.064.065v.27h-.24a.063.063 0 1 0 0 .125h.24v3.577c0 .036.029.065.064.065H11a.065.065 0 0 0 .065-.065V6.358h.37a.063.063 0 1 0 0-.125h-.37v-.27A.065.065 0 0 0 11 5.898h-.13Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#AF0100",fillRule:"evenodd",d:"M10.935 10.008c.143 0 .26-.058.26-.13 0-.071-.117-.13-.26-.13-.143 0-.26.059-.26.13 0 .072.117.13.26.13Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F4B300",fillRule:"evenodd",d:"M10 2.9a.9.9 0 1 1 1.8 0v1.622H10V2.9Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#AF0100",fillRule:"evenodd",d:"M10.892 4.61c.502 0 .908-.068.908-.152 0-.083-.407-.151-.908-.151-.502 0-.908.068-.908.151 0 .084.406.152.908.152Z",clipRule:"evenodd"}))),Ea=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"GB-UKM_-_United_Kingdom_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#GB-UKM_-_United_Kingdom_svg__a)"},(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"GB-UKM_-_United_Kingdom_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#GB-UKM_-_United_Kingdom_svg__b)"},(0,n.createElement)("mask",{id:"GB-UKM_-_United_Kingdom_svg__c",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#GB-UKM_-_United_Kingdom_svg__c)"},(0,n.createElement)("path",{fill:"#fff",d:"m-1.781 11.143 3.52 1.489L16.08 1.619l1.857-2.213-3.765-.497-5.85 4.745-4.707 3.198-5.396 4.29Z"}),(0,n.createElement)("path",{fill:"#F50100",d:"m-1.3 12.186 1.794.864L17.27-.8h-2.518L-1.3 12.187Z"}),(0,n.createElement)("path",{fill:"#fff",d:"m17.782 11.143-3.521 1.489L-.08 1.619-1.938-.594l3.765-.497 5.85 4.745 4.707 3.198 5.397 4.29Z"}),(0,n.createElement)("path",{fill:"#F50100",d:"m17.662 11.891-1.794.865-7.144-5.93-2.117-.663-8.723-6.75H.403l8.717 6.59 2.316.795 6.226 5.093Z"}),(0,n.createElement)("mask",{id:"GB-UKM_-_United_Kingdom_svg__d",fill:"#fff"},(0,n.createElement)("path",{fillRule:"evenodd",d:"M9.889-1H6.11v5H-.986v4H6.11v5H9.89V8h7.125V4H9.889v-5Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#F50100",fillRule:"evenodd",d:"M9.889-1H6.11v5H-.986v4H6.11v5H9.89V8h7.125V4H9.889v-5Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#fff",d:"M6.111-1v-1h-1v1h1ZM9.89-1h1v-1h-1v1ZM6.11 4v1h1V4h-1ZM-.986 4V3h-1v1h1Zm0 4h-1v1h1V8ZM6.11 8h1V7h-1v1Zm0 5h-1v1h1v-1Zm3.778 0v1h1v-1h-1Zm0-5V7h-1v1h1Zm7.125 0v1h1V8h-1Zm0-4h1V3h-1v1ZM9.889 4h-1v1h1V4ZM6.11 0H9.89v-2H6.11v2Zm1 4v-5h-2v5h2ZM-.986 5H6.11V3H-.986v2Zm1 3V4h-2v4h2ZM6.11 7H-.986v2H6.11V7Zm1 6V8h-2v5h2Zm2.778-1H6.11v2H9.89v-2Zm-1-4v5h2V8h-2Zm8.125-1H9.889v2h7.125V7Zm-1-3v4h2V4h-2ZM9.889 5h7.125V3H9.889v2Zm-1-6v5h2v-5h-2Z",mask:"url(#GB-UKM_-_United_Kingdom_svg__d)"}))))),ga=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"DE_-_Germany_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("rect",{width:16,height:12,fill:"#fff",rx:0})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#DE_-_Germany_svg__a)"},(0,n.createElement)("path",{fill:"#FFD018",d:"M0 8h16v4H0V8Z"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 4h16v4H0V4Z"}),(0,n.createElement)("path",{fill:"#272727",d:"M0 0h16v4H0V0Z"}))),Za=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"FR_-_France_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#FR_-_France_svg__a)"},(0,n.createElement)("path",{fill:"#F50100",d:"M11 0h5v12h-5V0Z"}),(0,n.createElement)("path",{fill:"#2E42A5",d:"M0 0h6v12H0V0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M5 0h6v12H5V0Z"}))),ya=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"ES_-_Spain_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#ES_-_Spain_svg__a)"},(0,n.createElement)("path",{fill:"#FFB400",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"ES_-_Spain_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#ES_-_Spain_svg__b)"},(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M0 0v3h16V0H0ZM0 9v3h16V9H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F1F9FF",d:"M2.504 5.136h.56v2.912h-.56z"}),(0,n.createElement)("path",{fill:"#C88A02",fillRule:"evenodd",d:"M3.288 4.632H2.28v.28h.168v.224h.672v-.224h.168v-.28ZM3.12 8.216h.168v.28H2.28v-.28h.168v-.224h.672v.224Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#AD1619",fillRule:"evenodd",d:"M2.784 4.688c.122 0 .134-.046.206-.114.056-.054.186-.12.186-.194 0-.17-.175-.308-.392-.308-.216 0-.392.138-.392.308 0 .083.09.138.157.194.072.058.124.114.235.114Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#005BBF",fillRule:"evenodd",d:"M2.28 8.496h1.008v.448s-.126-.056-.252-.056-.252.056-.252.056-.126-.056-.252-.056-.252.056-.252.056v-.448Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"ES_-_Spain_svg__c",width:2,height:1,x:2,y:8,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M2.28 8.496h1.008v.448s-.126-.056-.252-.056-.252.056-.252.056-.126-.056-.252-.056-.252.056-.252.056v-.448Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#F1F9FF",d:"M7.992 5.136h.56v2.912h-.56z"}),(0,n.createElement)("path",{fill:"#C88A02",fillRule:"evenodd",d:"M8.776 4.632H7.768v.28h.168v.224h.672v-.224h.168v-.28ZM8.608 8.216h.168v.28H7.768v-.28h.168v-.224h.672v.224Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#AD1619",fillRule:"evenodd",d:"M8.272 4.688c.122 0 .134-.046.206-.114.056-.054.186-.12.186-.194 0-.17-.175-.308-.392-.308-.216 0-.392.138-.392.308 0 .083.09.138.157.194.072.058.124.114.235.114Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#005BBF",fillRule:"evenodd",d:"M7.768 8.496h1.008v.448s-.126-.056-.252-.056-.252.056-.252.056-.126-.056-.252-.056-.252.056-.252.056v-.448Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"ES_-_Spain_svg__d",width:2,height:1,x:7,y:8,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M7.768 8.496h1.008v.448s-.126-.056-.252-.056-.252.056-.252.056-.126-.056-.252-.056-.252.056-.252.056v-.448Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#AD1619",fillRule:"evenodd",d:"M2.494 7.84c.101-.122.157-.234.157-.352a.316.316 0 0 0-.06-.192l.006-.003s.11-.048.15-.067c.072-.034.135-.07.197-.116.04-.028.092-.06.173-.103l.096-.051.096-.053c.085-.05.14-.09.183-.144a.268.268 0 0 0-.061-.399.728.728 0 0 0-.301-.096l-.197-.03c-.066-.01-.124-.02-.177-.03.345-.057.836-.036 1.052.076l.206-.398c-.44-.228-1.445-.204-1.82.054-.275.19-.238.476.048.6.12.05.276.085.564.131a1.431 1.431 0 0 0-.126.081.799.799 0 0 1-.127.075 6.71 6.71 0 0 1-.125.055l-.017.008c-.233.106-.346.252-.312.517l.018.143.033.01.344.284Zm-.288-.37v.002-.002Zm6.147.018c0 .118.056.23.157.352l.344-.284.033-.01.018-.143c.034-.265-.079-.411-.312-.517l-.016-.008a6.704 6.704 0 0 1-.125-.055.8.8 0 0 1-.128-.075 1.431 1.431 0 0 0-.126-.08c.289-.047.445-.081.564-.133.286-.123.323-.41.048-.6-.375-.257-1.379-.28-1.82-.053l.206.398c.216-.112.708-.133 1.052-.075l-.177.029-.196.03a.728.728 0 0 0-.301.096.268.268 0 0 0-.062.4.605.605 0 0 0 .183.143l.096.053.096.05c.081.044.134.076.173.104.062.045.126.082.198.116.039.02.15.068.15.067l.006.003a.316.316 0 0 0-.061.192Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F1F9FF",d:"m2.962 6.2.165.034v.247c-.176.14-.623.377-.623.377V6.2h.458ZM8.157 6.2l-.165.034v.247c.176.14.623.377.623.377V6.2h-.458Z"}),(0,n.createElement)("path",{fill:"#AD1619",fillRule:"evenodd",d:"M7.388 3.603v-.082a1.53 1.53 0 0 0-.905-.31 1.806 1.806 0 0 0-.918-.156v-.001c-.465-.046-.934.157-.934.157-.473 0-.905.31-.905.31v.082l.565.567s.159.546 1.272.418v.001s.737-.02.79-.037l.063-.02c.144-.042.31-.09.407-.362l.565-.567Zm-1.825-.519Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C88A02",fillRule:"evenodd",d:"m3.76 3.7.038-.042.513.483c.097-.026.626-.16 1.216-.168h.045a5.281 5.281 0 0 1 1.232.172s-.006.053-.021.116l.056-.11.006-.006.517-.487.038.041-.514.483c-.075.138-.112.23-.112.267 0 .058-.15.092-.444.128-.23.027-.5.046-.722.048h-.056a7.222 7.222 0 0 1-.722-.048c-.294-.036-.444-.07-.444-.128a.118.118 0 0 0-.004-.027.44.44 0 0 1-.064-.154 2.84 2.84 0 0 0-.044-.086L3.76 3.7Zm2.867.75c.039.019.07 0 .095-.035a.18.18 0 0 0-.004.027.541.541 0 0 1-.098.032 3.068 3.068 0 0 1-.296.047c-.238.029-.52.047-.744.049a7.095 7.095 0 0 1-.744-.049 3.067 3.067 0 0 1-.296-.047.633.633 0 0 1-.073-.02l.006-.003c.122-.058.93-.111 1.077-.12.145.009.954.062 1.077.12Zm.154-.01-.001.001Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#005BBF",fillRule:"evenodd",d:"M5.556 2.674a.168.168 0 1 0 0-.336.168.168 0 0 0 0 .336Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C88A02",fillRule:"evenodd",d:"M5.493 2.038h.117v.074h.076v.117H5.61v.233h.076v.117h-.27v-.117h.077v-.233h-.077v-.117h.077v-.074Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C88A02",d:"M5.472 2.672h.224V3.4h-.224z"}),(0,n.createElement)("path",{fill:"#C88A02",d:"m3.854 3.648-.308-.011c.145-.839.86-1.25 2.002-1.25 1.144 0 1.856.413 1.99 1.255l-.415.043c-.066-.41-.752-.78-1.569-.78-.818 0-1.629.33-1.7.743Z"}),(0,n.createElement)("path",{fill:"#E1E5E8",fillRule:"evenodd",d:"M3.736 4.632h3.64v3.27S7.106 9 5.556 9s-1.82-1.127-1.82-1.127V4.632Z",clipRule:"evenodd",opacity:.3}),(0,n.createElement)("mask",{id:"ES_-_Spain_svg__e",width:5,height:5,x:3,y:4,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M3.736 4.632h3.64v3.27S7.106 9 5.556 9s-1.82-1.127-1.82-1.127V4.632Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#ES_-_Spain_svg__e)"},(0,n.createElement)("path",{fill:"#FFC034",d:"M3.736 6.648h1.848v2.184H3.736z"}),(0,n.createElement)("path",{fill:"#AD1619",d:"M3.736 4.576h1.848v2.128H3.736z"}),(0,n.createElement)("path",{fill:"#AD1619",d:"M5.528 6.592h1.848V8.72H5.528z"}),(0,n.createElement)("path",{fill:"#F1F9FF",d:"M5.528 4.632h1.96v2.072h-1.96z"}),(0,n.createElement)("path",{fill:"#F1F9FF",fillRule:"evenodd",d:"M6.741 8.721s-1.186.094-1.186-.671c0 0-.011.671-1.25.671v.604h2.436v-.604Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#005BBF",fillRule:"evenodd",stroke:"#AD1619",strokeWidth:.583,d:"M5.556 7.096c.232 0 .42-.2.42-.448 0-.247-.188-.448-.42-.448-.232 0-.42.2-.42.448 0 .247.188.448.42.448Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#C88A02",fillRule:"evenodd",d:"M4.5 6a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#C37C9C",fillRule:"evenodd",d:"M6.5 6a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFC034",fillRule:"evenodd",d:"M6.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#AD1619",d:"M4.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1Z"})))),ka=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"IT_-_Italy_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#IT_-_Italy_svg__a)"},(0,n.createElement)("path",{fill:"#C51918",d:"M11 0h5v12h-5V0Z"}),(0,n.createElement)("path",{fill:"#5EAA22",d:"M0 0h6v12H0V0Z"}),(0,n.createElement)("path",{fill:"#fff",d:"M5 0h6v12H5V0Z"}))),wa=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"NL_-_Netherlands_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#NL_-_Netherlands_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"NL_-_Netherlands_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#NL_-_Netherlands_svg__b)"},(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 0v4h16V0H0Z"}),(0,n.createElement)("path",{fill:"#3D58DB",d:"M0 8v4h16V8H0Z"})))),Ma=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"PL_-_Poland_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#PL_-_Poland_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"PL_-_Poland_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#PL_-_Poland_svg__b)"},(0,n.createElement)("path",{fill:"#C51918",fillRule:"evenodd",d:"M0 6v6h16V6H0Z",clipRule:"evenodd"})))),Ra=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"CL_-_Chile_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#CL_-_Chile_svg__a)"},(0,n.createElement)("path",{fill:"#3D58DB",d:"M0 0h7v7H0V0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M7-1h9v8H7v-8Z"}),(0,n.createElement)("path",{fill:"#E31D1C",d:"M0 7h16v5H0V7Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M3.507 4.892 1.605 6.027l.939-1.932L.882 2.84 2.8 2.82l.723-1.714.467 1.713 1.816.009-1.382 1.227.718 1.972-1.636-1.135Z"}))),Fa=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"BO_-_Bolivia_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#BO_-_Bolivia_svg__a)"},(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"BO_-_Bolivia_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#BO_-_Bolivia_svg__b)"},(0,n.createElement)("path",{fill:"#DB501C",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{stroke:"#DB501C",strokeWidth:.75,d:"M5.824 5.63S5.638 7.535 7.33 7.535h1.261s1.781-.117 1.574-1.905"}),(0,n.createElement)("path",{fill:"#FECA00",stroke:"#68B9E8",strokeWidth:.75,d:"M9.125 5.9a1.125 1.125 0 1 1-2.25 0 1.125 1.125 0 0 1 2.25 0Z"}),(0,n.createElement)("path",{fill:"#DB501C",fillRule:"evenodd",d:"M8 6a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M8.05 6.8c.47 0 .85-.18.85-.4 0-.22-.38-.4-.85-.4s-.85.18-.85.4c0 .22.38.4.85.4Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#674F28",fillRule:"evenodd",d:"M8.05 5c.663 0 1.2-.18 1.2-.4 0-.22-.537-.4-1.2-.4-.663 0-1.2.18-1.2.4 0 .22.537.4 1.2.4Z",clipRule:"evenodd"})))),Ha=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"EC_-_Ecuador_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#EC_-_Ecuador_svg__a)"},(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"EC_-_Ecuador_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#EC_-_Ecuador_svg__b)"},(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M0 0v6h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 9v3h16V9H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#7B2900",fillRule:"evenodd",d:"M4.606 2.896c-.06-.136 2.256-.823 2.43-.823.173 0 .392.411.392.411l1.408.114s-.166-.525 0-.525c.167 0 2.716.886 2.716.886s-3.187.384-3.187.47c0 .087.209.562.209.562l-.59.193s.035-.573-.061-.573-.381.685-.381.685l-.28-.867s-2.595-.397-2.656-.533Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",d:"m4.616 5.009.63.15c-.659 2.759-.05 4.082 1.828 4.205l-.042.646c-2.353-.154-3.157-1.9-2.416-5.001Z"}),(0,n.createElement)("path",{fill:"#07138E",d:"m5 4.637.64.1c-.451 2.887-.09 4.192.924 4.156l.023.648C4.967 9.598 4.492 7.883 5 4.637Z"}),(0,n.createElement)("path",{fill:"#E10001",d:"m5.648 4.372.64.1c-.451 2.887-.09 4.192.925 4.156l.022.648c-1.62.057-2.095-1.657-1.587-4.904Z"}),(0,n.createElement)("path",{fill:"#07138E",d:"m6.851 9.637.645-.063c.053.546.013 1.017-.125 1.413l-.612-.214c.104-.299.137-.678.092-1.136Z"}),(0,n.createElement)("path",{stroke:"#FECA00",strokeWidth:.648,d:"M10.75 5.084S11.783 9.731 8.6 9.65"}),(0,n.createElement)("path",{fill:"#07138E",d:"m10.681 4.637-.64.1c.452 2.887.09 4.192-.924 4.156l-.023.648c1.62.057 2.095-1.658 1.587-4.904Z"}),(0,n.createElement)("path",{fill:"#E10001",d:"m10.033 4.372-.64.1c.451 2.887.09 4.192-.924 4.156l-.023.648c1.62.057 2.095-1.657 1.587-4.904Z"}),(0,n.createElement)("path",{fill:"#07138E",d:"m8.704 9.64-.644-.07c-.054.5-.013.931.13 1.295l.603-.236c-.1-.258-.132-.587-.089-.989Z"}),(0,n.createElement)("path",{fill:"#908F89",fillRule:"evenodd",d:"M6.933 8.75h1.945v.926H6.933V8.75Z",clipRule:"evenodd"}),(0,n.createElement)("path",{stroke:"#FEE901",strokeWidth:.5,d:"M7.906 9c.548 0 1.021-.309 1.348-.763.327-.454.522-1.07.522-1.737 0-.668-.195-1.283-.522-1.737C8.927 4.309 8.454 4 7.906 4c-.549 0-1.022.309-1.35.763-.326.454-.52 1.07-.52 1.737 0 .668.194 1.283.52 1.737.328.454.801.763 1.35.763Z"}),(0,n.createElement)("mask",{id:"EC_-_Ecuador_svg__c",width:6,height:7,x:5,y:3,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",stroke:"#fff",strokeWidth:.5,d:"M7.906 9c.548 0 1.021-.309 1.348-.763.327-.454.522-1.07.522-1.737 0-.668-.195-1.283-.522-1.737C8.927 4.309 8.454 4 7.906 4c-.549 0-1.022.309-1.35.763-.326.454-.52 1.07-.52 1.737 0 .668.194 1.283.52 1.737.328.454.801.763 1.35.763Z"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#EC_-_Ecuador_svg__c)"},(0,n.createElement)("path",{fill:"#8DDD61",d:"M9.079 7.703s-.788-.43-1.014-.582c-.226-.153-.095-.494-.485-.403-.39.092-.702.25-.702.685 0 .435-.306.693-.41.396-.104-.297-.594-1.687 0-1.687s1.983.312 2.392.312c.409 0 .647.212.647.596a.73.73 0 0 1-.428.683Z"}),(0,n.createElement)("path",{fill:"#FEE901",d:"M7.905 5.441a.328.328 0 0 0 .325-.33.328.328 0 0 0-.325-.332.328.328 0 0 0-.324.331c0 .183.146.331.324.331Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M6.835 5.47s.377-.09.898.26c.52.351 1.783.551 1.783.276v.536s-2.802-.174-2.952 0c-.15.175-.165-.974 0-1.072.165-.097.27 0 .27 0Z"}))))),ba=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"GY_-_Guyana_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#GY_-_Guyana_svg__a)"},(0,n.createElement)("path",{fill:"#5EAA22",fillRule:"evenodd",d:"M0 0h16v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FECA00",stroke:"#F7FCFF",d:"M.5 11.293V.707L15.498 6 .5 11.293Z"}),(0,n.createElement)("path",{fill:"#E11C1B",stroke:"#272727",d:"M-.5 11.978V.022L7.186 6-.5 11.978Z"}))),Ca=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"KI_-__Kiribati_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#KI_-__Kiribati_svg__a)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"KI_-__Kiribati_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#KI_-__Kiribati_svg__b)"},(0,n.createElement)("path",{fill:"#FFC84A",fillRule:"evenodd",d:"m7.662 8.588.229-.496.228.496.136-.528.315.447.038-.544.39.385-.06-.543.454.31-.157-.523.501.224-.248-.487.534.132-.332-.435.549.035-.406-.369.547-.063-.465-.291.527-.159-.51-.204.49-.25-.54-.11.437-.332-.55-.014.37-.403-.543.083.291-.462-.52.178.204-.507-.48.268.11-.535-.424.35.01-.547-.353.418-.087-.538-.273.474-.183-.515-.184.515-.272-.474-.088.538-.354-.418.011.546-.423-.349.109.535-.48-.268.204.507-.52-.178.292.462-.544-.083.37.403-.55.014.437.332-.539.11.49.25-.51.204.526.159-.465.291.547.063-.406.37.55-.036-.333.435.534-.132-.248.487.501-.224-.156.523.453-.31-.06.543.39-.385.038.544.315-.447.136.528Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M-.396 6.96.91 6.43a.781.781 0 0 1 .594.002l1.816.756c.205.085.437.079.638-.017l1.464-.703c.21-.1.454-.103.665-.005l1.534.709a.781.781 0 0 0 .652.001l1.57-.716a.781.781 0 0 1 .65.002l1.55.715a.781.781 0 0 0 .642.006l1.693-.746a.781.781 0 0 1 .58-.02l1.517.546v5.007H-.44l.045-5.007Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"KI_-__Kiribati_svg__c",width:18,height:6,x:-1,y:6,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M-.396 6.96.91 6.43a.781.781 0 0 1 .594.002l1.816.756c.205.085.437.079.638-.017l1.464-.703c.21-.1.454-.103.665-.005l1.534.709a.781.781 0 0 0 .652.001l1.57-.716a.781.781 0 0 1 .65.002l1.55.715a.781.781 0 0 0 .642.006l1.693-.746a.781.781 0 0 1 .58-.02l1.517.546v5.007H-.44l.045-5.007Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#KI_-__Kiribati_svg__c)"},(0,n.createElement)("path",{stroke:"#015989",d:"m-.396 8.123 1.307-.53a.781.781 0 0 1 .594.002l1.816.755c.205.086.437.08.638-.017l1.464-.702c.21-.101.454-.103.665-.005l1.534.708a.781.781 0 0 0 .652.002l1.57-.716a.781.781 0 0 1 .65.002l1.55.715a.78.78 0 0 0 .642.006l1.693-.746a.781.781 0 0 1 .58-.02l1.517.546M-.396 9.787l1.307-.53a.781.781 0 0 1 .594.002l1.816.756a.78.78 0 0 0 .638-.017l1.464-.703c.21-.1.454-.102.665-.005L7.622 10a.78.78 0 0 0 .652.001l1.57-.715a.781.781 0 0 1 .65.001l1.55.716a.78.78 0 0 0 .642.005l1.693-.745a.781.781 0 0 1 .58-.02l1.517.545"}),(0,n.createElement)("path",{fill:"#015989",fillRule:"evenodd",d:"m-.396 11.114.546-.222a2.781 2.781 0 0 1 2.114.01l1.057.44a.78.78 0 0 0 .638-.018l.615-.295a2.78 2.78 0 0 1 2.37-.017l.678.313a.78.78 0 0 0 .652.002l.734-.335a2.781 2.781 0 0 1 2.32.005l.716.33a.781.781 0 0 0 .642.007l.962-.424a2.782 2.782 0 0 1 2.062-.072l.766.276v1.657H-.304l-.092-1.657Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#FFC84A",fillRule:"evenodd",d:"M4.8 1.199s.713.143.947.143c.235 0 .763-.359 1.069-.24.306.12.894.685.894.685s.833-.625 1.34-.625c.506 0 1.437.068 1.437.068s-.215.557-.818.651c-.603.094-1.325.556-1.325.556h.98c.15 0 .645.277.645.277s-.702.222-.903.222h-.423s-.427.367-.955.289c-.527-.078-.896-.417-.896-.417s-.745-.049-.745-.128c0 0-.284-.146-.37 0-.086.145.37-.196.37-.196s.412-.334.551-.334c.14 0 .605.287.605.287l.111-.115-.576-.441C5.56 2.004 4.8 1.199 4.8 1.199Z",clipRule:"evenodd"})))),Va=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"NR_-_Nauru_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#NR_-_Nauru_svg__a)"},(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"NR_-_Nauru_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{fillRule:"evenodd",clipRule:"evenodd",mask:"url(#NR_-_Nauru_svg__b)"},(0,n.createElement)("path",{fill:"#FECA00",d:"M0 4v2h16V4H0Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"m4.415 9.79-.773 1.003-.035-1.266-1.215.357.715-1.044-1.192-.425 1.192-.425-.715-1.045 1.215.357.035-1.265.773 1.003.772-1.003.036 1.265 1.214-.357-.714 1.045 1.192.425-1.192.425.714 1.044-1.214-.357-.036 1.266-.772-1.003Z"})))),Sa=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"PY_-_Paraguay_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#PY_-_Paraguay_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"PY_-_Paraguay_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#PY_-_Paraguay_svg__b)"},(0,n.createElement)("path",{fill:"#272727",fillRule:"evenodd",d:"M6 6a2 2 0 1 0 4 0 2 2 0 0 0-4 0Zm3.5 0a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F05234",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#3D58DB",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#73BE4A",d:"m7.289 4.928.285.411c-.285.197-.37.47-.262.875.107.398.343.584.76.599l-.018.5c-.636-.023-1.061-.359-1.225-.97-.16-.6-.006-1.092.46-1.415Z"}),(0,n.createElement)("path",{fill:"#73BE4A",d:"m8.712 4.928-.284.411c.284.197.37.47.261.875-.106.398-.342.584-.76.599l.018.5c.636-.023 1.061-.359 1.225-.97.161-.6.007-1.092-.46-1.415Z"}),(0,n.createElement)("path",{fill:"#FBCD17",fillRule:"evenodd",d:"M8.001 6.374a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1Z",clipRule:"evenodd"})))),Aa=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"PE_-_Peru_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#PE_-_Peru_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M4 0h8.5v12H4V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F50101",fillRule:"evenodd",d:"M12 0h4v12h-4V0ZM0 0h4v12H0V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#A2BB6A",d:"m7.87 4.373.017.18c-.499.051-.768-.193-.768-.7 0-.502.263-.769.76-.772v.182c-.401.003-.587.19-.587.59 0 .398.18.56.579.52ZM8.092 4.373l-.017.18c.5.051.769-.193.769-.7 0-.502-.264-.769-.76-.772l-.001.182c.402.003.587.19.587.59 0 .398-.18.56-.578.52Z"}),(0,n.createElement)("mask",{id:"PE_-_Peru_svg__b",width:5,height:6,x:5.588,y:3.441,fill:"#000",maskUnits:"userSpaceOnUse"},(0,n.createElement)("path",{fill:"#fff",d:"M5.588 3.441h5v6h-5z"}),(0,n.createElement)("path",{fillRule:"evenodd",d:"m8.043 4.453.021-.012v.023c.096.053.339.178.496.178.2 0 .473-.201.473-.201l.456.643s-.307.643-.072 1.43c.234.785-.013 1.391-1.057 1.458 0 0-.206.04-.296.102v.057c0-.014-.008-.028-.02-.04-.014.012-.021.026-.021.04v-.057c-.09-.063-.296-.102-.296-.102C6.683 7.905 6.435 7.3 6.67 6.513c.235-.786-.072-1.429-.072-1.429l.456-.643s.272.2.472.2c.158 0 .4-.124.497-.177v-.023l.02.012Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#E8AA00",fillRule:"evenodd",d:"m8.043 4.453.021-.012v.023c.096.053.339.178.496.178.2 0 .473-.201.473-.201l.456.643s-.307.643-.072 1.43c.234.785-.013 1.391-1.057 1.458 0 0-.206.04-.296.102v.057c0-.014-.008-.028-.02-.04-.014.012-.021.026-.021.04v-.057c-.09-.063-.296-.102-.296-.102C6.683 7.905 6.435 7.3 6.67 6.513c.235-.786-.072-1.429-.072-1.429l.456-.643s.272.2.472.2c.158 0 .4-.124.497-.177v-.023l.02.012Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E8AA00",d:"M8.064 4.44h.5v-.88l-.756.451.256.43Zm-.02.013-.247.435.246.14.247-.14-.247-.435Zm.02.011h-.5v.295l.259.143.241-.438Zm.969-.023.408-.29-.295-.415-.41.303.297.402Zm.456.643.45.215.127-.264-.17-.24-.407.29Zm-.072 1.43-.48.142.48-.143ZM8.36 7.971l-.032-.499-.031.002-.03.006.093.491Zm-.296.102-.284-.412-.216.15v.262h.5Zm-.02.017.35-.357-.35-.344-.35.344.35.357Zm-.021-.017h.5v-.262l-.216-.15-.284.412Zm-.296-.102.093-.49-.03-.007-.031-.002-.032.5ZM6.598 5.084l-.408-.289-.17.24.127.264.451-.215Zm.456-.643.297-.402-.41-.303-.295.416.408.289Zm.969.023.241.438.259-.143v-.295h-.5Zm0-.023.256-.43-.756-.45v.88h.5Zm.041 0-.256-.43c.001 0 .001 0 0 0l-.011.007.493.87a2.254 2.254 0 0 0 .029-.017h.001l-.256-.43Zm.5.023v-.023h-1v.023h1Zm-.741.438c.056.031.16.086.277.134.101.041.278.106.46.106v-1c.021 0 .023.003 0-.003a.718.718 0 0 1-.082-.029 1.746 1.746 0 0 1-.172-.083l-.483.875Zm.737.24c.234 0 .447-.106.55-.16a2.074 2.074 0 0 0 .212-.133l.005-.004.002-.001v-.001a141.29 141.29 0 0 0-.593-.805h.001l-.003.002a.913.913 0 0 1-.18.099c-.026.008-.021.003.006.003v1Zm.065-.412.456.643.816-.578-.456-.643-.816.578Zm.864.354-.452-.215a.03.03 0 0 0-.001.003l-.002.004a.864.864 0 0 0-.02.046 2.605 2.605 0 0 0-.141.492c-.058.315-.081.755.065 1.242l.958-.286a1.666 1.666 0 0 1 .046-1.074l-.001.001V5.3l-.452-.215Zm-.551 1.572c.098.33.059.507.007.59-.043.068-.178.199-.617.227l.064.998c.605-.039 1.116-.244 1.399-.692.274-.434.24-.954.105-1.409l-.958.286ZM8.36 7.972a223.97 223.97 0 0 0-.093-.49h-.003a.353.353 0 0 0-.014.002 1.907 1.907 0 0 0-.139.034c-.063.018-.21.06-.331.144l.568.823c-.023.017-.035.019-.018.013a.583.583 0 0 1 .106-.03.842.842 0 0 1 .016-.004h.002l-.094-.492Zm.204.16v-.058h-1v.057h1Zm-.87.316a.443.443 0 0 1-.13-.317h1a.557.557 0 0 0-.17-.397l-.7.714Zm0-.714a.557.557 0 0 0-.171.397h1a.443.443 0 0 1-.13.317l-.7-.714Zm.829.397v-.057h-1v.057h1Zm-.796-.159-.094.492h.002a.864.864 0 0 1 .122.034c.017.006.005.004-.019-.013l.569-.823a1.143 1.143 0 0 0-.331-.144 2.103 2.103 0 0 0-.154-.036H7.82l-.094.49ZM6.19 6.37c-.136.455-.17.975.105 1.41.283.447.794.652 1.399.691l.064-.998c-.44-.028-.574-.16-.617-.228-.052-.082-.091-.258.007-.589l-.958-.286Zm.407-1.286-.451.215-.001-.002v-.001h-.001l.004.009a1.605 1.605 0 0 1 .081.289c.037.203.05.477-.039.776l.958.286a2.666 2.666 0 0 0-.096-1.78l-.002-.004V4.87H7.05l-.452.214Zm.048-.932-.456.643.816.578.456-.643-.816-.578Zm.88-.01c.028 0 .033.005.008-.003a1.073 1.073 0 0 1-.18-.099l-.005-.003a.007.007 0 0 1 .002.001l-.297.403-.297.402h.001l.002.002.005.004a1.259 1.259 0 0 0 .06.04c.037.025.09.059.152.092.102.055.316.16.55.16v-1Zm.255-.115c-.04.021-.105.056-.173.083a.718.718 0 0 1-.081.029c-.024.006-.021.003 0 .003v1c.182 0 .358-.065.46-.106.117-.048.22-.103.277-.134l-.483-.875Zm.742.437v-.023h-1v.023h1Zm-.5-.023-.256.43h.001a.19.19 0 0 0 .008.005l.02.012.494-.87-.01-.006-.002-.001-.255.43Z",mask:"url(#PE_-_Peru_svg__b)"}),(0,n.createElement)("mask",{id:"PE_-_Peru_svg__d",width:5,height:6,x:6,y:3,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("mask",{id:"PE_-_Peru_svg__c",width:5,height:6,x:5.588,y:3.441,fill:"#000",maskUnits:"userSpaceOnUse"},(0,n.createElement)("path",{fill:"#fff",d:"M5.588 3.441h5v6h-5z"}),(0,n.createElement)("path",{fillRule:"evenodd",d:"m8.043 4.453.021-.012v.023c.096.053.339.178.496.178.2 0 .473-.201.473-.201l.456.643s-.307.643-.072 1.43c.234.785-.013 1.391-1.057 1.458 0 0-.206.04-.296.102v.057c0-.014-.008-.028-.02-.04-.014.012-.021.026-.021.04v-.057c-.09-.063-.296-.102-.296-.102C6.683 7.905 6.435 7.3 6.67 6.513c.235-.786-.072-1.429-.072-1.429l.456-.643s.272.2.472.2c.158 0 .4-.124.497-.177v-.023l.02.012Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"m8.043 4.453.021-.012v.023c.096.053.339.178.496.178.2 0 .473-.201.473-.201l.456.643s-.307.643-.072 1.43c.234.785-.013 1.391-1.057 1.458 0 0-.206.04-.296.102v.057c0-.014-.008-.028-.02-.04-.014.012-.021.026-.021.04v-.057c-.09-.063-.296-.102-.296-.102C6.683 7.905 6.435 7.3 6.67 6.513c.235-.786-.072-1.429-.072-1.429l.456-.643s.272.2.472.2c.158 0 .4-.124.497-.177v-.023l.02.012Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#fff",d:"M8.064 4.44h.5v-.88l-.756.451.256.43Zm-.02.013-.247.435.246.14.247-.14-.247-.435Zm.02.011h-.5v.295l.259.143.241-.438Zm.969-.023.408-.29-.295-.415-.41.303.297.402Zm.456.643.45.215.127-.264-.17-.24-.407.29Zm-.072 1.43-.48.142.48-.143ZM8.36 7.971l-.032-.499-.031.002-.03.006.093.491Zm-.296.102-.284-.412-.216.15v.262h.5Zm-.02.017.35-.357-.35-.344-.35.344.35.357Zm-.021-.017h.5v-.262l-.216-.15-.284.412Zm-.296-.102.093-.49-.03-.007-.031-.002-.032.5ZM6.598 5.084l-.408-.289-.17.24.127.264.451-.215Zm.456-.643.297-.402-.41-.303-.295.416.408.289Zm.969.023.241.438.259-.143v-.295h-.5Zm0-.023.256-.43-.756-.45v.88h.5Zm.041 0-.256-.43c.001 0 .001 0 0 0l-.011.007.493.87a2.254 2.254 0 0 0 .029-.017h.001l-.256-.43Zm.5.023v-.023h-1v.023h1Zm-.741.438c.056.031.16.086.277.134.101.041.278.106.46.106v-1c.021 0 .023.003 0-.003a.718.718 0 0 1-.082-.029 1.746 1.746 0 0 1-.172-.083l-.483.875Zm.737.24c.234 0 .447-.106.55-.16a2.074 2.074 0 0 0 .212-.133l.005-.004.002-.001v-.001a141.29 141.29 0 0 0-.593-.805h.001l-.003.002a.913.913 0 0 1-.18.099c-.026.008-.021.003.006.003v1Zm.065-.412.456.643.816-.578-.456-.643-.816.578Zm.864.354-.452-.215a.03.03 0 0 0-.001.003l-.002.004a.864.864 0 0 0-.02.046 2.605 2.605 0 0 0-.141.492c-.058.315-.081.755.065 1.242l.958-.286a1.666 1.666 0 0 1 .046-1.074l-.001.001V5.3l-.452-.215Zm-.551 1.572c.098.33.059.507.007.59-.043.068-.178.199-.617.227l.064.998c.605-.039 1.116-.244 1.399-.692.274-.434.24-.954.105-1.409l-.958.286ZM8.36 7.972a223.97 223.97 0 0 0-.093-.49h-.003a.353.353 0 0 0-.014.002 1.907 1.907 0 0 0-.139.034c-.063.018-.21.06-.331.144l.568.823c-.023.017-.035.019-.018.013a.583.583 0 0 1 .106-.03.842.842 0 0 1 .016-.004h.002l-.094-.492Zm.204.16v-.058h-1v.057h1Zm-.87.316a.443.443 0 0 1-.13-.317h1a.557.557 0 0 0-.17-.397l-.7.714Zm0-.714a.557.557 0 0 0-.171.397h1a.443.443 0 0 1-.13.317l-.7-.714Zm.829.397v-.057h-1v.057h1Zm-.796-.159-.094.492h.002a.864.864 0 0 1 .122.034c.017.006.005.004-.019-.013l.569-.823a1.143 1.143 0 0 0-.331-.144 2.103 2.103 0 0 0-.154-.036H7.82l-.094.49ZM6.19 6.37c-.136.455-.17.975.105 1.41.283.447.794.652 1.399.691l.064-.998c-.44-.028-.574-.16-.617-.228-.052-.082-.091-.258.007-.589l-.958-.286Zm.407-1.286-.451.215-.001-.002v-.001h-.001l.004.009a1.605 1.605 0 0 1 .081.289c.037.203.05.477-.039.776l.958.286a2.666 2.666 0 0 0-.096-1.78l-.002-.004V4.87H7.05l-.452.214Zm.048-.932-.456.643.816.578.456-.643-.816-.578Zm.88-.01c.028 0 .033.005.008-.003a1.073 1.073 0 0 1-.18-.099l-.005-.003a.007.007 0 0 1 .002.001l-.297.403-.297.402h.001l.002.002.005.004a1.259 1.259 0 0 0 .06.04c.037.025.09.059.152.092.102.055.316.16.55.16v-1Zm.255-.115c-.04.021-.105.056-.173.083a.718.718 0 0 1-.081.029c-.024.006-.021.003 0 .003v1c.182 0 .358-.065.46-.106.117-.048.22-.103.277-.134l-.483-.875Zm.742.437v-.023h-1v.023h1Zm-.5-.023-.256.43h.001a.19.19 0 0 0 .008.005l.02.012.494-.87-.01-.006-.002-.001-.255.43Z",mask:"url(#PE_-_Peru_svg__c)"})),(0,n.createElement)("g",{mask:"url(#PE_-_Peru_svg__d)"},(0,n.createElement)("path",{fill:"#67BAFF",d:"M6.652 4.364h1.391v1.909H6.652z"}),(0,n.createElement)("path",{fill:"#fff",d:"M8.043 4.364h1.391v1.909H8.043z"}),(0,n.createElement)("path",{fill:"#C51918",d:"M6.478 6.455h3.478v2.182H6.478z"}),(0,n.createElement)("path",{fill:"#C9A951",d:"M8.717 6.137h-.174V4.83h.174v1.307Z"}),(0,n.createElement)("path",{fill:"#C9A951",d:"m8.647 5.543-.085.152-.3-.168.085-.152.3.168ZM8.647 5.18l-.085.151-.3-.168.085-.151.3.167Z"}),(0,n.createElement)("path",{fill:"#C9A951",d:"m8.61 5.543.085.152.3-.168-.085-.152-.3.168ZM8.61 5.18l.085.151.3-.168-.085-.151-.3.167Z"}),(0,n.createElement)("path",{fill:"#D18219",fillRule:"evenodd",d:"M7.688 4.785c-.105.092-.037.427-.209.427s-.413-.251-.474-.086c-.061.166 0 .11 0 .251 0 .141-.146.533-.073.6.073.066.147.24.134.159-.013-.082-.068-.202-.045-.333-.022-.134.123-.264.123-.264s-.016.14-.027.192c0 0-.048.105-.028.175 0 0 .049.197.069.21 0 0 .013-.465.028-.542.015-.077.122.086.157.068 0 0 .012.319-.006.357 0 0-.038.075-.024.1 0 0 .035.087.065.061l.016-.087s-.018-.051.01-.168c0 0 .028-.257.04-.201 0 0-.005.121.009.184 0 0 .021.155.026.172 0 0 .105.15.108.087 0 0-.101-.12-.08-.212 0 0-.057-.258.023-.316 0 0 .214-.099.226-.267 0 0 .031-.193.037-.281 0 0-.047-.026.05-.072 0 0 .155-.06.058-.143",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#00A854",d:"m6.1 3.843.387.31c-.504.829-.387 1.609-.387 2.11 0 .925.695 1.992 1.905 1.992.9 0 1.878-.7 2.109-1.556.181-.674-.236-2.257-.55-2.67l.372-.186c.488.642 1.414 2.111 1.143 3.116-.352 1.306-1.735 2.296-3.074 2.296C6.13 9.255 5.1 7.673 5.1 6.263c0-.716.41-1.449 1-2.42Z"}),(0,n.createElement)("path",{fill:"#FDD200",fillRule:"evenodd",d:"M8 7.6c.552 0 1-.224 1-.5s-.448-.5-1-.5-1 .224-1 .5.448.5 1 .5Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#CA0000",d:"M6.5 8h3v1h-3z"}))),Ua=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"TO_-_Tonga_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#TO_-_Tonga_svg__a)"},(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"TO_-_Tonga_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#TO_-_Tonga_svg__b)"},(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 0h9v8H0z"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M6 1H4v2H2v2h2v2h2V5h2V3H6V1Z",clipRule:"evenodd"})))),xa=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"TV_-_Tuvalu_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#TV_-_Tuvalu_svg__a)"},(0,n.createElement)("path",{fill:"#00B4FF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"TV_-_Tuvalu_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#TV_-_Tuvalu_svg__b)"},(0,n.createElement)("path",{fill:"#2E42A5",d:"M0 0h9v7H0z"}),(0,n.createElement)("mask",{id:"TV_-_Tuvalu_svg__c",width:9,height:7,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h9v7H0z"})),(0,n.createElement)("g",{mask:"url(#TV_-_Tuvalu_svg__c)"},(0,n.createElement)("path",{fill:"#F7FCFF",d:"m-1.002 6.5 1.98.868L9.045.944l1.045-1.29-2.118-.29-3.29 2.768-2.649 1.865L-1.002 6.5Z"}),(0,n.createElement)("path",{fill:"#F50100",d:"m-.731 7.108 1.009.505 9.436-8.08H8.298L-.731 7.109Z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"m10.002 6.5-1.98.868L-.045.944-1.09-.346l2.118-.29 3.29 2.768 2.649 1.865L10.002 6.5Z"}),(0,n.createElement)("path",{fill:"#F50100",d:"m9.935 6.937-1.01.504-4.018-3.46-1.19-.386L-1.19-.342H.227L5.13 3.502l1.303.463 3.502 2.972Z"}),(0,n.createElement)("mask",{id:"TV_-_Tuvalu_svg__d",width:11,height:9,x:-1,y:-1,fill:"#000",maskUnits:"userSpaceOnUse"},(0,n.createElement)("path",{fill:"#fff",d:"M-1-1h11v9H-1z"}),(0,n.createElement)("path",{fillRule:"evenodd",d:"M4.992 0h-1v3H0v1h3.992v3h1V4H9V3H4.992V0Z",clipRule:"evenodd"})),(0,n.createElement)("path",{fill:"#F50100",fillRule:"evenodd",d:"M4.992 0h-1v3H0v1h3.992v3h1V4H9V3H4.992V0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M3.992 0v-.75h-.75V0h.75Zm1 0h.75v-.75h-.75V0Zm-1 3v.75h.75V3h-.75ZM0 3v-.75h-.75V3H0Zm0 1h-.75v.75H0V4Zm3.992 0h.75v-.75h-.75V4Zm0 3h-.75v.75h.75V7Zm1 0v.75h.75V7h-.75Zm0-3v-.75h-.75V4h.75ZM9 4v.75h.75V4H9Zm0-1h.75v-.75H9V3ZM4.992 3h-.75v.75h.75V3Zm-1-2.25h1v-1.5h-1v1.5ZM4.742 3V0h-1.5v3h1.5ZM0 3.75h3.992v-1.5H0v1.5ZM.75 4V3h-1.5v1h1.5Zm3.242-.75H0v1.5h3.992v-1.5ZM4.742 7V4h-1.5v3h1.5Zm.25-.75h-1v1.5h1v-1.5ZM4.242 4v3h1.5V4h-1.5ZM9 3.25H4.992v1.5H9v-1.5ZM8.25 3v1h1.5V3h-1.5Zm-3.258.75H9v-1.5H4.992v1.5ZM4.242 0v3h1.5V0h-1.5Z",mask:"url(#TV_-_Tuvalu_svg__d)"})),(0,n.createElement)("path",{fill:"#FFD018",fillRule:"evenodd",d:"m13.428 5.342.304-.562.666-.02-.516-.43.178-.582-.444.267-.562-.34.054.645-.504.302.654.082.17.638Zm-1.696.438-.304.562-.17-.638-.654-.082.504-.302-.054-.646.562.34.444-.266-.178.581.516.43-.666.02Zm-1.304 1.562.304-.562.666-.02-.516-.43.178-.582-.444.267-.562-.34.054.645-.504.302.654.082.17.638Zm-2 2 .304-.562.666-.02-.516-.43.178-.582-.444.267-.562-.34.054.645-.504.302.654.082.17.638Zm-1.94 1.526-.551.326.183-.635-.518-.407h.587l.286-.581.306.581H7.3l-.452.407.22.635-.58-.326Zm2.244-.088-.304.562-.17-.638-.654-.082.504-.302-.054-.646.562.34.444-.266-.178.581.516.43-.666.02Zm2-1-.304.562-.17-.638-.654-.082.504-.302-.054-.646.562.34.444-.266-.178.581.516.43-.666.02Zm2-1-.304.562-.17-.638-.654-.082.504-.302-.054-.646.562.34.444-.266-.178.581.516.43-.666.02Zm.696-.438.304-.562.666-.02-.516-.43.178-.582-.444.267-.562-.34.054.645-.504.302.654.082.17.638Z",clipRule:"evenodd"})))),Ta=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"UY_-_Uruguay_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#UY_-_Uruguay_svg__a)"},(0,n.createElement)("path",{fill:"#F7FCFF",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"UY_-_Uruguay_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#UY_-_Uruguay_svg__b)"},(0,n.createElement)("path",{fill:"#2E42A5",d:"M0 2h16v1H0zM0 4h16v1H0zM0 6h16v1H0zM0 8h16v1H0zM0 10h16v1H0z"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"M0 0h8v7H0z"}),(0,n.createElement)("path",{fill:"#FFD018",fillRule:"evenodd",stroke:"#F19900",strokeOpacity:.98,strokeWidth:.25,d:"M4.614 5.519s-.511 1.059-.96 1.276c.194-.486.265-1.477.265-1.477s-1.166.462-1.575.378c.492-.344 1.175-.98 1.175-.98s-1.51-.494-1.472-.704C2.728 4.134 3.665 4 3.665 4s-1.059-1.27-.951-1.364c.16.157 1.43.82 1.43.82s.092-1.13.365-1.511c.033.269.416 1.486.416 1.486s.77-.77 1.198-.77c-.188.232-.633 1.255-.633 1.255s1.109-.018 1.53.19c-.51.073-1.405.521-1.405.521s1.165.884 1.059 1.068a5.166 5.166 0 0 0-1.348-.408s.2 1.23.038 1.507c-.158-.41-.75-1.276-.75-1.276Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#FFD018",fillRule:"evenodd",stroke:"#F19900",strokeOpacity:.98,strokeWidth:.25,d:"M4.547 4.946a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1Z",clipRule:"evenodd"})))),Da=e=>(0,n.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:12,fill:"none",...e},(0,n.createElement)("mask",{id:"VE_-_Venezuela_svg__a",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",d:"M0 0h16v12H0z"})),(0,n.createElement)("g",{mask:"url(#VE_-_Venezuela_svg__a)"},(0,n.createElement)("path",{fill:"#2E42A5",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("mask",{id:"VE_-_Venezuela_svg__b",width:16,height:12,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"luminance"}},(0,n.createElement)("path",{fill:"#fff",fillRule:"evenodd",d:"M0 0v12h16V0H0Z",clipRule:"evenodd"})),(0,n.createElement)("g",{mask:"url(#VE_-_Venezuela_svg__b)"},(0,n.createElement)("path",{fill:"#FECA00",fillRule:"evenodd",d:"M0 0v4h16V0H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#E31D1C",fillRule:"evenodd",d:"M0 8v4h16V8H0Z",clipRule:"evenodd"}),(0,n.createElement)("path",{fill:"#F7FCFF",d:"m4.107 7.62-.911-.41C4.064 5.282 5.695 4.302 8 4.302c2.306 0 3.932.981 4.788 2.91l-.914.406C11.184 6.063 9.924 5.302 8 5.302c-1.924 0-3.192.762-3.893 2.318Z"})))),La=({countryCode:e,style:l,title:t})=>{const s=a[e];return s?(0,n.createElement)("span",{title:t},(0,n.createElement)(s,{style:l})):(0,n.createElement)("span",{title:t},e)},Oa=e=>{const[l,t]=(0,n.useState)(""),[a,s]=(0,n.useState)(!1),{maskError:i,setMaskError:r}=Q();return(0,n.createElement)(n.Fragment,null,(0,n.createElement)("label",{htmlFor:e.id,className:"rsssl-label"},e.label),(0,n.createElement)("br",null),(0,n.createElement)("div",{className:"input-container"},(0,n.createElement)("input",{type:"text",id:e.id,name:e.name,value:e.value,className:"rsssl-input full "+(i?"rsssl-error":"rsssl-success"),onChange:e.onChange})),i&&(0,n.createElement)("span",{style:{color:"red",marginLeft:"10px"}},(0,c.__)("Invalid ip address","really-simple-ssl")))},Na=e=>{const{inputRangeValidated:l,fetchCidrData:t,ipAddress:a,setIpAddress:s,maskError:r,dataLoaded:d,addRow:m,resetRange:h}=Q(),[o,v]=(0,n.useState)(!1),{fetchDynamicData:_}=$(),[u,p]=(0,n.useState)(!1);return(0,n.useEffect)((()=>{l&&t("get_mask_from_range")}),[l]),e.isOpen?(0,n.createElement)(i.Modal,{title:(0,c.__)("Add IP Address","really-simple-ssl"),shouldCloseOnClickOutside:!0,shouldCloseOnEsc:!0,overlayClassName:"rsssl-modal-overlay",className:"rsssl-modal",onRequestClose:e.onRequestClose},(0,n.createElement)("div",{className:"modal-content"},(0,n.createElement)("div",{className:"modal-body",style:{padding:"1em"}},(0,n.createElement)("div",{style:{width:"95%",height:"100%",padding:"10px"}},(0,n.createElement)("div",null,(0,n.createElement)(Oa,{label:(0,c.__)("IP Address","really-simple-ssl"),id:"ip-address",name:"ip-address",showSwitch:!0,value:a,onChange:e=>s(e.target.value)})))),(0,n.createElement)("div",{className:"modal-footer"},(0,n.createElement)("div",{className:"rsssl-grid-item-footer",style:{display:"flex",justifyContent:"flex-end",alignItems:"center",padding:"1em"}},(0,n.createElement)(i.Button,{isSecondary:!0,onClick:function(){v(!1),h(),e.onRequestClose()},style:{marginRight:"10px"}},(0,c.__)("Cancel","really-simple-ssl")),(0,n.createElement)(i.Button,{isPrimary:!0,onClick:function(){let l=e.status;a&&!1===r&&(m(a,l,e.dataActions),h(),e.onRequestClose(),_("event_log"))}},(0,c.__)("Add","really-simple-ssl")))))):null},Ba=e=>{const{IpDataTable:l,dataLoaded:t,dataActions:a,handleIpTableRowsChange:s,updateMultiRow:i,fetchIpData:r,handleIpTableSort:d,handleIpTablePageChange:h,handleIpTableSearch:o,handleIpTableFilter:v,ipAddress:_,updateRow:u,pagination:p,resetRow:f,resetMultiRow:E,setStatusSelected:g,rowCleared:Z,processing:y}=Q(),{DynamicDataTable:k,fetchDynamicData:w}=$(),{selectedFilter:M,setSelectedFilter:R,activeGroupId:F,getCurrentFilter:H,setProcessingFilter:b}=(0,X.A)(),[C,V]=(0,n.useState)(!1),[S,A]=(0,n.useState)([]),{fields:U,fieldAlreadyEnabled:x,getFieldValue:T,saveFields:D}=(0,m.A)(),L="rsssl-group-filter-limit_login_attempts_ip_address",O=(0,n.useCallback)((e=>({name:e.name,sortable:e.sortable,searchable:e.searchable,width:e.width,visible:e.visible,column:e.column,selector:l=>l[e.column]})),[]);let N=e.field;const B=N.columns.map(O);(0,n.useEffect)((()=>{const e=H(L);e||R("locked",L),b(y),v("status",e)}),[L,v,H(L),R,l,y]),(0,n.useEffect)((()=>{A([])}),[l]),(0,n.useEffect)((()=>{a&&r(N.action,a)}),[a.sortDirection,a.filterValue,a.search,a.page,a.currentRowsPerPage,x("enable_limited_login_attempts")]),(0,j.createTheme)("really-simple-plugins",{divider:{default:"transparent"}},"light");let z=T("enable_limited_login_attempts"),P=[];B.map((e=>{e.searchable&&P.push(e.column)}));let I=e.field.options;I=Object.entries(I).map((e=>({label:e[1],value:e[0]})));let G=Object.values({...l.data});(0,n.useCallback)((async e=>{if(Array.isArray(e)){const l=e.map((e=>e.id));await i(l,"blocked"),A([])}else await u(e,"blocked");await w("event_log")}),[i,u,w]),(0,n.useCallback)((async e=>{if(Array.isArray(e)){const l=e.map((e=>e.id));await i(l,"allowed"),A([])}else await u(e,"allowed");await w("event_log")}),[i,u,w]);const K=(0,n.useCallback)((async e=>{if(Array.isArray(e)){const l=e.map((e=>e.id));await E(l,a),A([])}else await f(e,a);w("event_log")}),[E,f,w]),W=({onClick:e,children:l,className:t})=>(0,n.createElement)("div",{className:"rsssl-action-buttons__inner"},(0,n.createElement)("button",{className:`button ${t} rsssl-action-buttons__button`,onClick:e,disabled:y},l));function q(e){return(0,n.createElement)(n.Fragment,null,(0,n.createElement)("div",{className:"rsssl-action-buttons"},(0,n.createElement)(W,{className:"button-red",onClick:()=>{K(e)}},(0,c.__)("Delete","really-simple-ssl"))))}for(const e in G){let l={...G[e]};l.action=q(l.id),l.status=(0,c.__)(l.status=l.status.charAt(0).toUpperCase()+l.status.slice(1),"really-simple-ssl"),G[e]=l}let Y=!0;return void 0===p&&(Y=!1),(0,n.createElement)(n.Fragment,null,(0,n.createElement)(Na,{isOpen:C,onRequestClose:()=>{V(!1)},options:I,value:_,status:H(L),dataActions:a}),(0,n.createElement)("div",{className:"rsssl-container"},(0,n.createElement)("div",{className:"rsssl-add-button"},("blocked"===H(L)||"allowed"===H(L))&&(0,n.createElement)("div",{className:"rsssl-add-button__inner"},(0,n.createElement)("button",{className:"button button-secondary button-datatable rsssl-add-button__button",onClick:()=>{V(!0)},disabled:y},"blocked"===H(L)&&(0,n.createElement)(n.Fragment,null,(0,c.__)("Block IP Address","really-simple-ssl")),"allowed"===H(L)&&(0,n.createElement)(n.Fragment,null,(0,c.__)("Trust IP Address","really-simple-ssl"))))),(0,n.createElement)("div",{className:"rsssl-search-bar"},(0,n.createElement)("div",{className:"rsssl-search-bar__inner"},(0,n.createElement)("div",{className:"rsssl-search-bar__icon"}),(0,n.createElement)("input",{type:"text",className:"rsssl-search-bar__input",placeholder:(0,c.__)("Search","really-simple-ssl"),disabled:y,onKeyUp:e=>{"Enter"===e.key&&o(e.target.value,P)}})))),S.length>0&&(0,n.createElement)("div",{style:{marginTop:"1em",marginBottom:"1em"}},(0,n.createElement)("div",{className:"rsssl-multiselect-datatable-form rsssl-primary"},(0,n.createElement)("div",null,(0,c.__)("You have selected %s rows","really-simple-ssl").replace("%s",S.length)),(0,n.createElement)("div",{className:"rsssl-action-buttons"},(0,n.createElement)(W,{className:"button-red",onClick:()=>{K(S)}},(0,c.__)("Delete","really-simple-ssl"))))),(0,n.createElement)(j.default,{columns:B,data:y?[]:G,dense:!0,paginationServer:!0,paginationTotalRows:Y?p.totalRows:10,paginationPerPage:Y?p.perPage:10,paginationDefaultPage:Y?p.currentPage:1,paginationComponentOptions:{rowsPerPageText:(0,c.__)("Rows per page:","really-simple-ssl"),rangeSeparatorText:(0,c.__)("of","really-simple-ssl"),noRowsPerPage:!1,selectAllRowsItem:!1,selectAllRowsItemText:(0,c.__)("All","really-simple-ssl")},loading:t,pagination:!y,onChangeRowsPerPage:s,onChangePage:h,sortServer:!y,onSort:d,paginationRowsPerPageOptions:[10,25,50,100],noDataComponent:(0,c.__)("No results","really-simple-ssl"),persistTableHead:!0,selectableRows:!y,onSelectedRowsChange:function(e){A(e.selectedRows)},clearSelectedRows:Z,theme:"really-simple-plugins",customStyles:{headCells:{style:{paddingLeft:"0",paddingRight:"0"}},cells:{style:{paddingLeft:"0",paddingRight:"0"}}}}),!z&&(0,n.createElement)("div",{className:"rsssl-locked"},(0,n.createElement)("div",{className:"rsssl-locked-overlay"},(0,n.createElement)("span",{className:"rsssl-task-status rsssl-open"},(0,c.__)("Disabled","really-simple-ssl")),(0,n.createElement)("span",null,(0,c.__)("Activate Limit login attempts to enable this block.","really-simple-ssl")))))};var za=t(6047);const Pa=(0,x.vt)(((e,l)=>({roles:[],rolesLoaded:!1,fetchRoles:async l=>{try{const t=await d.Eo("get_roles",{id:l});if(!t)return void console.error("No response received from the server.");const a=t.roles;if("object"!=typeof a)return void console.error("Invalid data received in the server response. Expected an object.");const n=Object.values(a).map(((e,l)=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)})));e({roles:n,rolesLoaded:!0})}catch(e){console.error("Error:",e)}}}))),Ia=({field:e})=>{const{fetchRoles:l,roles:t,rolesLoaded:a}=Pa(),[s,i]=(0,n.useState)([]),[r,d]=(0,n.useState)([]),{updateField:h,getFieldValue:o,setChangedField:v,getField:_,fieldsLoaded:u}=(0,m.A)();let p=!0;(0,n.useEffect)((()=>{a||l(e.id)}),[a]),(0,n.useEffect)((()=>{if("two_fa_forced_roles"===e.id){let e=_("two_fa_optional_roles"),l=Array.isArray(e.value)?e.value:[];d(l)}else{let e=_("two_fa_forced_roles"),l=Array.isArray(e.value)?e.value:[];d(l)}}),[s,_("two_fa_optional_roles"),_("two_fa_forced_roles")]),(0,n.useEffect)((()=>{e.value?i(e.value.map(((e,l)=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)})))):(v(e.id,e.default),h(e.id,e.default),i(e.default.map(((e,l)=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)})))))}),[u]);const f={multiValue:l=>({...l,borderRadius:"10px",backgroundColor:"two_fa_forced_roles"===e.id?"#F5CD54":"two_fa_optional_roles"===e.id?"#FDF5DC":"default"}),multiValueRemove:(e,l)=>({...e,color:l.isHovered?"initial":e.color,opacity:"0.7",":hover":{backgroundColor:"initial",color:"initial",opacity:"1"}})};"two_fa_optional_roles"===e.id&&(p=o("login_protection_enabled"));const E=s.map((e=>e.value));let g=[],Z=[...E,...r];return t.forEach((function(e,l){Array.isArray(Z)&&Z.includes(e.value)?g.splice(l,1):g.push(e)})),(0,n.createElement)("div",{style:{marginTop:"5px"}},(0,n.createElement)(za.Ay,{isMulti:!0,options:g,onChange:l=>{const t=l.map((e=>e.value));i(l),h(e.id,t),v(e.id,t)},value:s,menuPosition:"fixed",styles:f}),!p&&(0,n.createElement)("div",{className:"rsssl-locked"},(0,n.createElement)("div",{className:"rsssl-locked-overlay"},(0,n.createElement)("span",{className:"rsssl-task-status rsssl-open"},(0,c.__)("Disabled","really-simple-ssl")),(0,n.createElement)("span",null,(0,c.__)("Activate login protection to enable this block.","really-simple-ssl")))))},Ga=e=>{const{addHelpNotice:l}=(0,m.A)(),[t,a]=(0,o.useState)(!1),{fields:s}=(0,m.A)();let i=!!e.field.disabled;return(0,n.createElement)(n.Fragment,null,e.field.url&&(0,n.createElement)(g.A,{className:"button button-default",disabled:i,text:e.field.button_text,url:e.field.url}),e.field.action&&(0,n.createElement)("button",{onClick:()=>(async t=>{let n={};a(!0),n.fields=s,await d.Eo(t,n).then((t=>{let n=t.success?"success":"warning",s=t.title,i=t.message;a(!1),l(e.field.id,n,i,s,!1)}))})(e.field.action),className:"button button-default",disabled:i},e.field.button_text,t&&(0,n.createElement)(V.default,{name:"loading",color:"grey"})))};var Ka=t(1082),Wa=t(1455),ja=t.n(Wa);const qa=({field:e})=>{const[l,a]=(0,n.useState)([]),[s,i]=(0,n.useState)(""),{updateField:r,setChangedField:d}=(0,m.A)(),[h,o]=(0,n.useState)(null),[v,_]=(0,n.useState)(null),[u,p]=(0,n.useState)(null);return(0,n.useEffect)((()=>{t.e(361).then(t.bind(t,1361)).then((({default:e})=>{p((()=>e))})),t.e(393).then(t.bind(t,3393)).then((({createTheme:e,ThemeProvider:l})=>{o((()=>l)),_((()=>e({typography:{fontSize:12,fontFamily:"inherit"},overrides:{MuiInputBase:{root:{fontSize:"12px",fontFamily:"inherit",height:"40px"}},MuiList:{root:{fontSize:"8px"}},MuiAutocomplete:{inputRoot:{"& .MuiAutocomplete-input":{border:0},flexWrap:"inherit"},popper:{fontSize:"12px"},paper:{fontSize:"12px"},option:{fontSize:"12px"},root:{padding:0}}}})))}))}),[]),(0,n.useEffect)((()=>{ja()({path:"/wp/v2/pages?per_page=100"}).then((e=>{const l=e.map((e=>({title:e.title.rendered,id:e.id})));a([{title:"404 (default)",id:"404_default"},...l])}))}),[]),(0,n.useEffect)((()=>{"404_default"!==e.value?ja()({path:`wp/v2/pages/${e.value}`}).then((l=>{l.title?i({title:l.title.rendered,id:e.value}):i({title:"404 (default)",id:"404_default"})})):i({title:"404 (default)",id:"404_default"})}),[e.value]),u&&h&&v?(0,n.createElement)("div",null,(0,n.createElement)("label",{htmlFor:"rsssl-filter-post-input"},(0,c.__)("Redirect to this post when someone tries to access /wp-admin or /wp-login.php. The default is a 404 page.","really-simple-ssl")),(0,n.createElement)(h,{theme:v},(0,n.createElement)(u,{options:l,getOptionLabel:e=>e.title?e.title:"",renderInput:e=>(0,n.createElement)(Ka.A,{...e,variant:"outlined",placeholder:(0,c.__)("Search for a post.","really-simple-ssl")}),getOptionSelected:(e,l)=>e.id===l.id,onChange:(l,t)=>{let a=t&&t.id?t.id:"404_default";r(e.id,a),d(e.id,a)},value:s}))):null},Ya=e=>{const{fetchVulnerabilities:l,riskLevels:t}=(0,K.A)(),{field:a}=e,[s,i]=(0,n.useState)(!0),[r,h]=(0,n.useState)(!0),[o,v]=(0,n.useState)(!1),[_,u]=(0,n.useState)(!1),{addHelpNotice:p,fields:f,getFieldValue:E,updateField:g,setChangedField:Z,fieldAlreadyEnabled:y,fetchFieldsData:k,updateFieldAttribute:w}=(0,m.A)();(0,n.useEffect)((()=>{let e=1==E("send_notifications_email"),l=y("enable_vulnerability_scanner");h(e),i(!(e&&l)),h(e),u(l),v(1==E("enable_vulnerability_scanner"))}),[f]),(0,n.useEffect)((()=>{let e=E("vulnerability_notification_dashboard");e=t.hasOwnProperty(e)?t[e]:0;let l=e>0?e-1:e,a=Array.from(Array(l).keys()).map((e=>e));if(a=a.map((e=>Object.keys(t).find((l=>t[l]===e)))),a.length>0){w("vulnerability_notification_sitewide","disabled",a);let l=E("vulnerability_notification_sitewide");if(l=t.hasOwnProperty(l)?t[l]:0,l<e){let l=Object.keys(t).find((l=>t[l]===e));g("vulnerability_notification_sitewide",l),Z("vulnerability_notification_sitewide",l)}}else w("vulnerability_notification_sitewide","disabled",!1)}),[E("vulnerability_notification_dashboard")]);let M={...a};return r?o&&!_&&(M.tooltip=(0,c.__)("The notification test only works if you save the setting first.","really-simple-ssl"),M.warning=!0):(M.tooltip=(0,c.__)("You have not enabled the email notifications in the general settings.","really-simple-ssl"),M.warning=!0),(0,n.createElement)(n.Fragment,null,(0,n.createElement)("label",null,e.labelWrap(M)),(0,n.createElement)("button",{onClick:()=>(async()=>{i(!0),d.Eo("vulnerabilities_test_notification").then((()=>{i(!1),k("vulnerabilities"),l(),p(a.id,"success",(0,c.__)("All notifications are triggered successfully, please check your email to double-check if you can receive emails.","really-simple-ssl"),(0,c.__)("Test notifications","really-simple-ssl"),!1)}))})(),disabled:s,className:"button button-default"},a.button_text))};var Ja=t(5511);const Qa=(0,x.vt)(((e,l)=>({processing:!1,dataLoaded:!1,pagination:{},dataActions:{},UserDataTable:[],rowCleared:!1,fetchUserData:async(t,a)=>{if(e({processing:!0}),e({dataLoaded:!1}),e({rowCleared:!0}),0===Object.keys(a).length&&l().dataActions,l().processing){e({UserDataTable:[]});try{const l=await d.Eo(t,a);l&&l.request_success&&e({UserDataTable:l,dataLoaded:!0,processing:!1,pagination:l.pagination}),e({rowCleared:!0})}catch(e){console.log(e)}finally{e({processing:!1}),e({rowCleared:!1})}}},handleUserTableSearch:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,search:l,searchColumns:t}})))},handleUserTablePageChange:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,page:l,pageSize:t}})))},handleUserTableRowsChange:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,currentRowsPerPage:l,currentPage:t}})))},handleUserTableSort:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,sortColumn:l,sortDirection:t}})))},handleUserTableFilter:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,filterColumn:l,filterValue:t}})))},addRow:async(t,a,n)=>{e({processing:!0});try{const e=await d.Eo("user_add_user",{user:t,status:a});e&&e.request_success?await l().fetchUserData("user_list",n):console.log("Failed to add User: ",e.message)}catch(e){console.log(e)}finally{e({processing:!1})}},updateRow:async(t,a,n)=>{e({processing:!0});try{await d.Eo("user_update_row",{id:t,status:a})&&await l().fetchUserData("user_list",n)}catch(e){console.log(e)}finally{e({processing:!1})}},updateMultiRow:async(t,a,n)=>{e({processing:!0});try{const e=await d.Eo("user_update_multi_row",{ids:t,status:a});e&&e.request_success&&await l().fetchUserData("user_list",n)}catch(e){console.log(e)}finally{e({processing:!1})}},resetRow:async(t,a)=>{e({processing:!0});try{await d.Eo("delete_entry",{id:t})&&await l().fetchUserData("user_list",a)}catch(e){console.log(e)}finally{e({processing:!1})}},resetMultiRow:async(t,a)=>{e({processing:!0});try{await d.Eo("delete_multi_entries",{ids:t})&&await l().fetchUserData("user_list",a)}catch(e){console.log(e)}finally{e({processing:!1})}}}))),$a=e=>{if(!e.isOpen)return null;const{addRow:l,maskError:t}=Qa(),{fetchDynamicData:a}=$(),[s,r]=(0,n.useState)("");return(0,n.createElement)(i.Modal,{title:(0,c.__)("Add User","really-simple-ssl"),shouldCloseOnClickOutside:!0,shouldCloseOnEsc:!0,overlayClassName:"rsssl-modal-overlay",className:"rsssl-modal",onRequestClose:e.onRequestClose},(0,n.createElement)("div",{className:"modal-content"},(0,n.createElement)("div",{className:"modal-body",style:{padding:"1em"}},(0,n.createElement)("div",{style:{width:"95%",height:"100%",padding:"10px"}},(0,n.createElement)("p",null,(0,n.createElement)("label",{htmlFor:"username",className:"rsssl-label"},(0,c.__)("Username","really-simple-ssl")),(0,n.createElement)("input",{type:"text",className:"rsssl-input full",id:"username",name:"username",onChange:e=>r(e.target.value)})))),(0,n.createElement)("div",{className:"modal-footer"},(0,n.createElement)("div",{className:"rsssl-grid-item-footer",style:{display:"flex",justifyContent:"flex-end",alignItems:"center",padding:"1em"}},(0,n.createElement)(i.Button,{isSecondary:!0,onClick:e.onRequestClose,style:{marginRight:"10px"}},(0,c.__)("Cancel","really-simple-ssl")),(0,n.createElement)(i.Button,{isPrimary:!0,onClick:async function(){let t=e.status;""!==s&&(await l(s,t,e.dataActions),r(""),await a("event_log"),e.onRequestClose())}},(0,c.__)("Add","really-simple-ssl"))))))},Xa=e=>{const{UserDataTable:l,dataLoaded:t,fetchUserData:a,processing:s,handleUserTableFilter:i,handleUserTablePageChange:r,pagination:d,resetRow:h,resetMultiRow:o,dataActions:v,handleUserTableRowsChange:_,handleUserTableSort:u,handleUserTableSearch:p,updateMultiRow:f,updateRow:E,rowCleared:g}=Qa(),{DynamicDataTable:Z,fetchDynamicData:y}=$(),{selectedFilter:k,setSelectedFilter:w,activeGroupId:M,getCurrentFilter:R,setProcessingFilter:F}=(0,X.A)(),[H,b]=(0,n.useState)([]),[C,V]=(0,n.useState)(!1),[S,A]=(0,n.useState)(""),U="rsssl-group-filter-limit_login_attempts_users",{fields:x,fieldAlreadyEnabled:T,getFieldValue:D,saveFields:L}=(0,m.A)(),O=(0,n.useCallback)((e=>({name:e.name,sortable:e.sortable,searchable:e.searchable,width:e.width,visible:e.visible,column:e.column,selector:l=>l[e.column]})),[]);let N=e.field;const B=N.columns.map(O),z=B.filter((e=>e.searchable)).map((e=>e.column));(0,n.useEffect)((()=>{const e=R(U);e||w("locked",U),F(s),i("status",e)}),[U,i,R(U),w,Xa,s]),(0,n.useEffect)((()=>{b([])}),[l]),(0,n.useEffect)((()=>{v&&a(N.action,v)}),[v.sortDirection,v.filterValue,v.search,v.page,v.currentRowsPerPage,T("enable_limited_login_attempts")]);let P=D("enable_limited_login_attempts");(0,j.createTheme)("really-simple-plugins",{divider:{default:"transparent"}},"light");let I=e.field.options;I=Object.entries(I).map((e=>({label:e[1],value:e[0]})));const G=(0,n.useCallback)((async e=>{if(Array.isArray(e)){const l=e.map((e=>e.id));await f(l,"blocked"),b([])}else await E(e,"blocked");await y("event_log")}),[f,E,y]),K=(0,n.useCallback)((async e=>{if(Array.isArray(e)){const l=e.map((e=>e.id));await f(l,"allowed"),b([])}else await E(e,"allowed");await y("event_log")}),[f,E,y]),W=(0,n.useCallback)((async e=>{if(Array.isArray(e)){const l=e.map((e=>e.id));await o(l,v),b([])}else await h(e,v);await y("event_log")}),[o,h,y,v]),q=(0,n.useCallback)((e=>{b(e.selectedRows)}),[]),Y=({onClick:e,children:l,className:t})=>(0,n.createElement)("div",{className:"rsssl-action-buttons__inner"},(0,n.createElement)("button",{className:`button ${t} rsssl-action-buttons__button`,onClick:e,disabled:s},l)),J=(0,n.useCallback)(((e,l,t)=>(0,n.createElement)("div",{className:"rsssl-action-buttons"},(0,n.createElement)(Y,{onClick:()=>{W(e)},className:"button-red"},(0,c.__)("Delete","really-simple-ssl")))),[R(U),U,W,G,K]);let Q={...l.data};for(const e in Q){let l={...Q[e]};l.action=J(l.id),l.status=(0,c.__)(l.status=l.status.charAt(0).toUpperCase()+l.status.slice(1),"really-simple-ssl"),Q[e]=l}let ee=!0;return void 0===d&&(ee=!1),(0,n.createElement)(n.Fragment,null,(0,n.createElement)($a,{isOpen:C,onRequestClose:()=>{V(!1)},options:I,value:S,status:R(U),dataActions:v}),(0,n.createElement)("div",{className:"rsssl-container"},(0,n.createElement)("div",{className:"rsssl-add-button"},("blocked"===R(U)||"allowed"===R(U))&&(0,n.createElement)("div",{className:"rsssl-add-button__inner"},(0,n.createElement)("button",{className:"button button-secondary rsssl-add-button__button",disabled:s,onClick:()=>{V(!0)}},"blocked"===R(U)&&(0,n.createElement)(n.Fragment,null,(0,c.__)("Block username","really-simple-ssl")),"allowed"===R(U)&&(0,n.createElement)(n.Fragment,null,(0,c.__)("Trust username","really-simple-ssl"))))),(0,n.createElement)("div",{className:"rsssl-search-bar"},(0,n.createElement)("div",{className:"rsssl-search-bar__inner"},(0,n.createElement)("div",{className:"rsssl-search-bar__icon"}),(0,n.createElement)("input",{type:"text",className:"rsssl-search-bar__input",placeholder:(0,c.__)("Search","really-simple-ssl"),disabled:s,onKeyUp:e=>{"Enter"===e.key&&p(e.target.value,z)}})))),H.length>0&&(0,n.createElement)("div",{style:{marginTop:"1em",marginBottom:"1em"}},(0,n.createElement)("div",{className:"rsssl-multiselect-datatable-form rsssl-primary"},(0,n.createElement)("div",null,(0,c.__)("You have selected %s rows","really-simple-ssl").replace("%s",H.length)),(0,n.createElement)("div",{className:"rsssl-action-buttons"},(0,n.createElement)(Y,{className:"button button-red rsssl-action-buttons__button",onClick:()=>{W(H)}},(0,c.__)("Delete","really-simple-ssl"))))),(0,n.createElement)(j.default,{columns:B,data:s&&!t?[]:Object.values(Q),dense:!0,pagination:!s,paginationServer:!0,paginationTotalRows:ee?d.totalRows:10,onChangeRowsPerPage:_,onChangePage:r,sortServer:!s,onSort:u,paginationRowsPerPageOptions:[10,25,50,100],selectableRows:!s,onSelectedRowsChange:q,clearSelectedRows:g,noDataComponent:(0,c.__)("No results","really-simple-ssl"),persistTableHead:!0,theme:"really-simple-plugins",customStyles:{headCells:{style:{paddingLeft:"0",paddingRight:"0"}},cells:{style:{paddingLeft:"0",paddingRight:"0"}}}}),!P&&(0,n.createElement)("div",{className:"rsssl-locked"},(0,n.createElement)("div",{className:"rsssl-locked-overlay"},(0,n.createElement)("span",{className:"rsssl-task-status rsssl-open"},(0,c.__)("Disabled","really-simple-ssl")),(0,n.createElement)("span",null,(0,c.__)("Activate Limit login attempts to enable this block.","really-simple-ssl")))))},en=Xa,ln=(0,x.vt)(((e,l)=>({processing:!1,dataLoaded:!1,pagination:{},dataActions:{},CountryDataTable:[],rowCleared:!1,fetchCountryData:async(l,t)=>{if(e({processing:!0}),e({dataLoaded:!1}),e({rowCleared:!0}),0!==Object.keys(t).length)try{const a=await d.Eo(l,t);a&&a.request_success&&e({CountryDataTable:a,dataLoaded:!0,processing:!1,pagination:a.pagination}),e({rowCleared:!0})}catch(e){console.log(e)}finally{e({processing:!1}),e({rowCleared:!1})}},handleCountryTableSearch:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,search:l,searchColumns:t}})))},handleCountryTablePageChange:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,page:l,pageSize:t}})))},handleCountryTableRowsChange:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,currentRowsPerPage:l,currentPage:t}})))},handleCountryTableSort:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,sortColumn:l,sortDirection:t}})))},handleCountryTableFilter:async(l,t)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,filterColumn:l,filterValue:t}})))},addRow:async(t,a,n)=>{e({processing:!0});try{const e=await d.Eo("add_country_to_list",{country:t,status:a});e&&e.request_success&&await l().fetchCountryData("country_list",n)}catch(e){console.log(e)}finally{e({processing:!1})}},addRowMultiple:async(t,a,n)=>{e({processing:!0});try{const e=await d.Eo("add_countries_to_list",{countries:t,status:a});e&&e.request_success&&await l().fetchCountryData("country_list",n)}catch(e){console.error(e)}finally{e({processing:!1})}},removeRowMultiple:async(t,a,n)=>{e({processing:!0});try{const e=await d.Eo("remove_countries_from_list",{countries:t,status:a});e&&e.request_success&&await l().fetchCountryData("country_list",n)}catch(e){console.error(e)}finally{e({processing:!1})}},removeRow:async(t,a,n)=>{e({processing:!0});try{const e=await d.Eo("remove_country_from_list",{country:t,status:a});e&&e.request_success&&await l().fetchCountryData("country_list",n)}catch(e){console.log(e)}finally{e({processing:!1})}},addRegion:async(t,a,n)=>{try{const e=await d.Eo("add_region_to_list",{region:t,status:a});e&&e.request_success?await l().fetchCountryData("country_list",n):console.error("Failed to add region: ",e.message)}catch(e){console.error(e)}finally{e({processing:!1})}},addRegions:async(t,a,n)=>{try{const e=await d.Eo("add_regions_to_list",{regions:t,status:a});e&&e.request_success?await l().fetchCountryData("country_list",n):console.error("Failed to add regions: ",e.message)}catch(e){console.error(e)}finally{e({processing:!1})}},removeRegion:async(t,a,n)=>{e({processing:!0});try{const e=await d.Eo("remove_region_from_list",{region:t,status:a});e&&e.request_success?await l().fetchCountryData("country_list",n):console.error("Failed to remove region: ",e.message)}catch(e){console.error(e)}finally{e({processing:!1})}},removeRegions:async(t,a,n)=>{e({processing:!0});try{const e=await d.Eo("remove_regions_from_list",{regions:t,status:a});e&&e.request_success?await l().fetchCountryData("country_list",n):console.error("Failed to remove regions: ",e.message)}catch(e){console.error(e)}finally{e({processing:!1})}},updateMultiRow:async(t,a,n)=>{e({processing:!0});try{await d.Eo("update_multi_row",{ids:t,status:a})&&await l().fetchCountryData("country_list",n)}catch(e){console.log(e)}finally{e({processing:!1})}},resetRow:async(t,a)=>{e({processing:!0});try{await d.Eo("delete_entry",{id:t})&&await l().fetchCountryData("country_list",a)}catch(e){console.log(e)}finally{e({processing:!1})}},resetMultiRow:async(t,a)=>{e({processing:!0});try{await d.Eo("delete_multi_entries",{ids:t})&&await l().fetchCountryData("country_list",a)}catch(e){console.log(e)}finally{e({processing:!1})}}}))),tn=e=>{const{CountryDataTable:l,dataLoaded:t,fetchCountryData:a,processing:s,handleCountryTableFilter:i,addRow:r,removeRow:d,pagination:h,handleCountryTablePageChange:o,handleCountryTableRowsChange:v,handleCountryTableSort:_,handleCountryTableSearch:u,addRegion:p,removeRegion:f,addRowMultiple:E,removeRowMultiple:g,resetRow:Z,resetMultiRow:y,dataActions:k,rowCleared:w}=ln(),{showSavedSettingsNotice:M,saveFields:R}=(0,m.A)(),{DynamicDataTable:F,fetchDynamicData:H}=$(),{selectedFilter:b,setSelectedFilter:C,activeGroupId:V,getCurrentFilter:S,setProcessingFilter:A}=(0,X.A)(),[U,x]=(0,n.useState)([]),T="rsssl-group-filter-limit_login_attempts_country",{fields:D,fieldAlreadyEnabled:L,getFieldValue:O}=(0,m.A)(),N=(0,n.useCallback)((e=>({omit:"regions"===S(T)&&"status"===e.column,name:e.name,sortable:e.sortable,searchable:e.searchable,width:e.width,visible:e.visible,column:e.column,selector:l=>l[e.column]})),[]);let B=e.field;const z=B.columns.map(N),P=z.filter((e=>e.searchable)).map((e=>e.column));(0,n.useEffect)((()=>{const e=S(T);e||C("blocked",T),A(s),i("status",e)}),[T,i,S(T),C,tn,s]),(0,n.useEffect)((()=>{x([])}),[l]),(0,n.useEffect)((()=>{k&&a(B.action,k)}),[k.sortDirection,k.filterValue,k.search,k.page,k.currentRowsPerPage,L("enable_limited_login_attempts")]);let I=O("enable_limited_login_attempts");(0,n.useEffect)((()=>()=>{R(!1,!1)}),[I]),(0,j.createTheme)("really-simple-plugins",{divider:{default:"transparent"}},"light");const G=(0,n.useCallback)((e=>{x(e.selectedRows)}),[]),K=(0,n.useCallback)((async(e,l="")=>{if(Array.isArray(e)){const l=e.map((e=>e.id)),t=e.map((e=>e.region));await removeRegions(l,"",k);let a=t.join(", ");M((0,c.__)("%s is now allowed","really-simple-ssl").replace("%s",a)),x([])}else await f(e,"blocked",k),M((0,c.__)("%s is now allowed","really-simple-ssl").replace("%s",l));await H("event_log")}),[f,S(T),k]),W=(0,n.useCallback)((e=>{const l=e.map((e=>e.id));y(l,"blocked",k)}),[y,S(T),k]),q=(0,n.useCallback)((e=>{Z(e,"blocked",k)}),[Z,S(T),k]),Y=(0,n.useCallback)((async(e,l="")=>{if(Array.isArray(e)){const l=e.map((e=>e.id)),t=e.map((e=>e.region));await addRegions(l,"blocked",k);let a=t.join(", ");M((0,c.__)("%s has been blocked","really-simple-ssl").replace("%s",a)),x([])}else await p(e,"blocked",k),M((0,c.__)("%s has been blocked","really-simple-ssl").replace("%s",l));await H("event_log")}),[p,S(T),k]),J=(0,n.useCallback)((async e=>{if(Array.isArray(e)){const l=e.map((e=>e.iso2_code));await g(l,"blocked",k),x([])}else await d(e,"blocked",k);await H("event_log")}),[d,g,k,S(T)]),Q=(0,n.useCallback)((async e=>{if(Array.isArray(e)){const l=e.map((e=>e.iso2_code));await E(l,"blocked",k),x([])}else await r(e,"blocked",k);await H("event_log")}),[r,E,k,S(T)]),ee={...l.data},le=(0,n.useCallback)(((e,l)=>(0,n.createElement)(n.Fragment,null,(0,n.createElement)(La,{countryCode:e,style:{fontSize:"2em"},title:l}))),[]),te=({onClick:e,children:l,className:t})=>(0,n.createElement)("button",{className:`button ${t} rsssl-action-buttons__button`,onClick:e,disabled:s},l),ae=(0,n.useCallback)(((e,l,t)=>(0,n.createElement)("div",{className:"rsssl-action-buttons"},"blocked"===S(T)&&(0,n.createElement)(te,{onClick:()=>q(e),className:"button-secondary"},(0,c.__)("Allow","really-simple-ssl")),"regions"===S(T)&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)(te,{onClick:()=>Y(e,t),className:"button-primary"},(0,c.__)("Block","really-simple-ssl")),(0,n.createElement)(te,{onClick:()=>K(e,t),className:"button-secondary"},(0,c.__)("Allow","really-simple-ssl"))),"countries"===S(T)&&(0,n.createElement)(n.Fragment,null,"blocked"===l?(0,n.createElement)(te,{onClick:()=>J(e),className:"button-secondary"},(0,c.__)("Allow","really-simple-ssl")):(0,n.createElement)(te,{onClick:()=>Q(e),className:"button-primary"},(0,c.__)("Block","really-simple-ssl"))))),[S,T,q,Y,K,Q,J]);for(const e in ee){const l={...ee[e]};"regions"===S(T)||"countries"===S(T)?l.action=ae(l.attempt_value,l.status,l.region):l.action=ae(l.id),l.attempt_value=le(l.attempt_value,l.country_name),l.status=(0,c.__)(l.status=l.status.charAt(0).toUpperCase()+l.status.slice(1),"really-simple-ssl"),ee[e]=l}Object.entries(e.field.options).map((([e,l])=>({value:e,label:l})));let ne=!0;return void 0===h&&(ne=!1),(0,n.createElement)(n.Fragment,null,(0,n.createElement)("div",{className:"rsssl-container"},(0,n.createElement)("div",null),(0,n.createElement)("div",{className:"rsssl-search-bar"},(0,n.createElement)("div",{className:"rsssl-search-bar__inner"},(0,n.createElement)("div",{className:"rsssl-search-bar__icon"}),(0,n.createElement)("input",{type:"text",className:"rsssl-search-bar__input",placeholder:(0,c.__)("Search","really-simple-ssl"),disabled:s,onKeyUp:e=>{"Enter"===e.key&&u(e.target.value,P)}})))),U.length>0&&(0,n.createElement)("div",{style:{marginTop:"1em",marginBottom:"1em"}},(0,n.createElement)("div",{className:"rsssl-multiselect-datatable-form rsssl-primary"},(0,n.createElement)("div",null,(0,c.__)("You have selected %s rows","really-simple-ssl").replace("%s",U.length)),(0,n.createElement)("div",{className:"rsssl-action-buttons"},"countries"===S(T)&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)(te,{onClick:()=>J(U)},(0,c.__)("Allow","really-simple-ssl")),(0,n.createElement)(te,{onClick:()=>Q(U),className:"button-primary"},(0,c.__)("Block","really-simple-ssl"))),"blocked"===S(T)&&(0,n.createElement)(te,{onClick:()=>W(U)},(0,c.__)("Allow","really-simple-ssl")),"regions"===S(T)&&(0,n.createElement)(n.Fragment,null,(0,n.createElement)(te,{onClick:()=>K(U),className:"button-primary"},(0,c.__)("Allow","really-simple-ssl")),(0,n.createElement)(te,{onClick:()=>Y(U)},(0,c.__)("Block","really-simple-ssl")))))),(0,n.createElement)(j.default,{columns:z,data:s?[]:Object.values(ee),dense:!0,pagination:!s,paginationServer:!0,paginationTotalRows:ne?h.totalRows:10,paginationPerPage:ne?h.perPage:10,paginationDefaultPage:ne?h.currentPage:1,paginationComponentOptions:{rowsPerPageText:(0,c.__)("Rows per page:","really-simple-ssl"),rangeSeparatorText:(0,c.__)("of","really-simple-ssl"),noRowsPerPage:!1,selectAllRowsItem:!1,selectAllRowsItemText:(0,c.__)("All","really-simple-ssl")},onChangeRowsPerPage:v,onChangePage:o,sortServer:!s,onSort:_,paginationRowsPerPageOptions:[10,25,50,100],noDataComponent:(0,c.__)("No results","really-simple-ssl"),persistTableHead:!0,selectableRows:!s,clearSelectedRows:w,onSelectedRowsChange:G,theme:"really-simple-plugins",customStyles:{headCells:{style:{paddingLeft:"0",paddingRight:"0"}},cells:{style:{paddingLeft:"0",paddingRight:"0"}}}}),!I&&(0,n.createElement)("div",{className:"rsssl-locked"},(0,n.createElement)("div",{className:"rsssl-locked-overlay"},(0,n.createElement)("span",{className:"rsssl-task-status rsssl-open"},(0,c.__)("Disabled","really-simple-ssl")),(0,n.createElement)("span",null,(0,c.__)("Activate Limit login attempts to enable this block.","really-simple-ssl")))))},an=tn,nn=(0,x.vt)(((e,l)=>({processing:!1,dataLoaded:!1,pagination:{},dataActions:{currentPage:1,currentRowsPerPage:5,filterValue:"active",filterColumn:"rsssl_two_fa_status"},totalRecords:0,DynamicDataTable:[],setDataLoaded:l=>e((e=>({...e,dataLoaded:l}))),resetUserMethod:async(t,a,n)=>{!l().processing&&a.includes(n)&&(e({processing:!0}),await ja()({path:`/wp/v2/users/${t}`,method:"POST",data:{meta:{rsssl_two_fa_status:"open"}}}).catch((e=>{console.error(e)})),e({processing:!1}))},fetchDynamicData:async()=>{if(!l().processing){e({processing:!0});try{const t=await d.Eo("two_fa_table",l().dataActions);if(t)return e((e=>({...e,DynamicDataTable:t.data,dataLoaded:!0,processing:!1,pagination:t.pagination,totalRecords:t.totalRecords}))),t}catch(e){console.log(e)}}},handleTableSearch:async(t,a)=>{const n=setTimeout((async()=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,search:t,searchColumns:a}}))),await l().fetchDynamicData()}),500);return()=>{clearTimeout(n)}},handlePageChange:async(t,a)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,currentPage:t}}))),await l().fetchDynamicData()},handleRowsPerPageChange:async(t,a)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,currentRowsPerPage:t,currentPage:a}}))),await l().fetchDynamicData()},handleTableSort:async(t,a)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,sortColumn:t.column,sortDirection:a}}))),await l().fetchDynamicData()},handleUsersTableFilter:async(t,a)=>{e((0,Y.jM)((e=>{e.dataActions={...e.dataActions,filterColumn:t,filterValue:a}}))),await l().fetchDynamicData()}}))),sn=e=>{const{resetUserMethod:l,handleUsersTableFilter:t,handleRowsPerPageChange:a,totalRecords:s,DynamicDataTable:i,setDataLoaded:r,dataLoaded:d,pagination:h,dataActions:o,fetchDynamicData:v,handleTableSort:_,handlePageChange:u,handleTableSearch:p,processing:f}=nn(),{setSelectedFilter:E,getCurrentFilter:g}=(0,X.A)(),Z="rsssl-group-filter-two_fa_users";let y=e.field;const[k,w]=(0,n.useState)(!1),[M,R]=(0,n.useState)(!1),{fields:F,getFieldValue:H,saveFields:b,changedFields:C}=(0,m.A)(),[V,S]=(0,n.useState)([]),[A,U]=(0,n.useState)(!1),x=(0,n.useRef)();(0,n.useEffect)((()=>{x.current=H("two_fa_enabled"),b(!0,!1)}),[H("two_fa_enabled")]),(0,n.useEffect)((()=>{R(!0)}),[H("two_fa_forced_roles"),H("two_fa_optional_roles")]),(0,n.useEffect)((()=>{M&&0===C.length&&(r(!1),R(!1),v())}),[C]),(0,n.useEffect)((()=>{if(!d)return;const e=g(Z);e||E("active",Z),U(!0),t("rsssl_two_fa_status",e)}),[g(Z)]),(0,n.useEffect)((()=>{const e=H("two_fa_enabled");w(e)}),[F]),(0,n.useEffect)((()=>{d&&k===H("two_fa_enabled")||v()}),[d,H("two_fa_enabled")]);const T=e=>{let l=H("two_fa_forced_roles");if(Array.isArray(l)||(l=[]),Array.isArray(e)){for(const t of e)if(!l.includes(t.user_role.toLowerCase()))return!1;return!0}return l.includes(e.user_role.toLowerCase())},D=e=>{if(Array.isArray(e)){for(const l of e)if("open"!==l.rsssl_two_fa_status)return!1;return!0}return"open"===e.rsssl_two_fa_status};let L=[];y.columns.forEach((function(e,l){var t;let a={...e,key:e.column};var n;a={name:(n=a).name,column:n.column,sortable:n.sortable,searchable:n.searchable,width:n.width,visible:n.visible,selector:e=>e[n.column]},a.visible=null===(t=a.visible)||void 0===t||t,L.push(a)}));let O=L.filter((e=>e.searchable)).map((e=>e.column));async function N(e){const t=H("two_fa_optional_roles");if(Array.isArray(e))for(const a of e)await l(a.id,t,a.user_role.toLowerCase());else await l(e.id,t,e.user_role.toLowerCase());await v(),S([]),U(!0)}(0,j.createTheme)("really-simple-plugins",{divider:{default:"transparent"}},"light");let B=T(V)||D(V),z=[];return(i||[]).forEach((e=>{let l={...e},t=T(e)||D(e);l.resetControl=(0,n.createElement)("button",{disabled:f||t,className:"button button-red rsssl-action-buttons__button",onClick:()=>N(e)},(0,c.__)("Reset","really-simple-ssl")),z.push(l)})),(0,n.createElement)(n.Fragment,null,(0,n.createElement)("div",{className:"rsssl-container",style:{marginTop:"20px"}},(0,n.createElement)("div",null),(0,n.createElement)("div",{className:"rsssl-search-bar"},(0,n.createElement)("div",{className:"rsssl-search-bar__inner"},(0,n.createElement)("div",{className:"rsssl-search-bar__icon"}),(0,n.createElement)("input",{type:"text",className:"rsssl-search-bar__input",placeholder:(0,c.__)("Search","really-simple-ssl"),onChange:e=>p(e.target.value,O)})))),V.length>0&&(0,n.createElement)("div",{style:{marginTop:"1em",marginBottom:"1em"}},(0,n.createElement)("div",{className:"rsssl-multiselect-datatable-form rsssl-primary"},(0,n.createElement)("div",null,(0,c.__)("You have selected %s users","really-simple-ssl").replace("%s",V.length)),(0,n.createElement)("div",{className:"rsssl-action-buttons"},(0,n.createElement)("div",{className:"rsssl-action-buttons__inner"},(0,n.createElement)("button",{disabled:B||f,className:"button button-red rsssl-action-buttons__button",onClick:()=>N(V)},(0,c.__)("Reset","really-simple-ssl")))))),d&&(0,n.createElement)(j.default,{columns:L,data:z,dense:!0,pagination:!0,paginationServer:!0,onChangePage:u,onChangeRowsPerPage:a,paginationTotalRows:s,paginationRowsPerPageOptions:[5,25,50,100],paginationPerPage:o.currentRowsPerPage,paginationState:h,sortServer:!0,onSort:_,noDataComponent:(0,c.__)("No results","really-simple-ssl"),persistTableHead:!0,selectableRows:!0,selectableRowsHighlight:!0,onSelectedRowsChange:function(e){S(e.selectedRows)},clearSelectedRows:A,theme:"really-simple-plugins",customStyles:{headCells:{style:{paddingLeft:"0",paddingRight:"0"}},cells:{style:{paddingLeft:"0",paddingRight:"0"}},padding:"0"}}),!k&&(0,n.createElement)("div",{className:"rsssl-locked"},(0,n.createElement)("div",{className:"rsssl-locked-overlay"},(0,n.createElement)("span",{className:"rsssl-task-status rsssl-open"},(0,c.__)("Disabled","really-simple-ssl")),(0,n.createElement)("span",null,(0,c.__)("Activate Two Step Verification to enable this block.","really-simple-ssl")))))},cn=e=>{const{DynamicDataTable:l,dataLoaded:t,pagination:a,dataActions:s,handleEventTableRowsChange:i,fetchDynamicData:r,handleEventTableSort:d,handleEventTablePageChange:h,handleEventTableSearch:o,handleEventTableFilter:v,processing:_,rowCleared:u}=$(),{selectedFilter:p,setSelectedFilter:f,activeGroupId:E,getCurrentFilter:g,setProcessingFilter:Z}=(0,X.A)(),y="rsssl-group-filter-limit_login_attempts_event_log",{fields:k,fieldAlreadyEnabled:w,getFieldValue:M}=(0,m.A)();(0,n.useEffect)((()=>{const e=g(y);e||f("all",y),Z(_),v("severity",e)}),[y,v,g(y),f,y,l,_]),(0,n.useEffect)((()=>{s&&r(F.action,s)}),[s.sortDirection,s.filterValue,s.search,s.page,s.currentRowsPerPage]);let R=[],F=e.field;F.columns.forEach((function(e,l){let t={name:(a=e).name,sortable:a.sortable,searchable:a.searchable,width:a.width,visible:a.visible,column:a.column,selector:e=>e[a.column]};var a;R.push(t)}));let H=M("enable_limited_login_attempts");if((0,j.createTheme)("really-simple-plugins",{divider:{default:"transparent"}},"light"),!t&&0===R.length&&0===l.length)return(0,n.createElement)("div",{className:"rsssl-spinner"},(0,n.createElement)("div",{className:"rsssl-spinner__inner"},(0,n.createElement)("div",{className:"rsssl-spinner__icon"}),(0,n.createElement)("div",{className:"rsssl-spinner__text"},(0,c.__)("Loading...","really-simple-ssl"))));let b=[];R.map((e=>{e.searchable&&b.push(e.column)}));let C=[];l.data&&(C=l.data.map((e=>{let l={...e};var t,a;return l.iso2_code=(t=l.iso2_code,a=l.country_name,(0,n.createElement)(n.Fragment,null,(0,n.createElement)(La,{countryCode:t,style:{fontSize:"2em",marginLeft:"0.3em"},title:a}))),l.expandableRows=!0,l})));let S=!0;return void 0===a&&(S=!1),(0,n.createElement)(n.Fragment,null,(0,n.createElement)("div",{className:"rsssl-container"},(0,n.createElement)("div",null),(0,n.createElement)("div",{className:"rsssl-search-bar"},(0,n.createElement)("div",{className:"rsssl-search-bar__inner"},(0,n.createElement)("div",{className:"rsssl-search-bar__icon"}),(0,n.createElement)("input",{type:"text",className:"rsssl-search-bar__input",placeholder:(0,c.__)("Search","really-simple-ssl"),disabled:_,onChange:e=>o(e.target.value,b)})))),(0,n.createElement)(j.default,{columns:R,data:_?[]:C,dense:!0,pagination:!_,paginationServer:!0,paginationTotalRows:S?a.totalRows:10,paginationPerPage:S?a.perPage:10,paginationDefaultPage:S?a.currentPage:1,paginationComponentOptions:{rowsPerPageText:(0,c.__)("Rows per page:","really-simple-ssl"),rangeSeparatorText:(0,c.__)("of","really-simple-ssl"),noRowsPerPage:!1,selectAllRowsItem:!1,selectAllRowsItemText:(0,c.__)("All","really-simple-ssl")},onChangeRowsPerPage:i,onChangePage:h,expandableRows:!_,expandableRowsComponent:({data:e})=>{let l,t,a="";switch(e.severity){case"warning":l="rsssl-warning",t="circle-times",a="red";break;case"informational":l="rsssl-primary",t="info",a="black";break;default:l="rsssl-primary"}return(0,n.createElement)("div",{className:"rsssl-wizard-help-notice "+l,style:{padding:"1em",borderRadius:"5px"}},(0,n.createElement)("div",{style:{float:"right"}},(0,n.createElement)(V.default,{name:t,color:a})),(0,n.createElement)("div",{style:{fontSize:"1em",fontWeight:"bold"}},e.severity.charAt(0).toUpperCase()+e.severity.slice(1)),(0,n.createElement)("div",null,e.description))},loading:t,onSort:d,sortServer:!_,paginationRowsPerPageOptions:[5,10,25,50,100],noDataComponent:(0,c.__)("No results","really-simple-ssl"),persistTableHead:!0,theme:"really-simple-plugins",customStyles:{headCells:{style:{paddingLeft:"0",paddingRight:"0"}},cells:{style:{paddingLeft:"0",paddingRight:"0"}}}}),!H&&(0,n.createElement)("div",{className:"rsssl-locked"},(0,n.createElement)("div",{className:"rsssl-locked-overlay"},(0,n.createElement)("span",{className:"rsssl-task-status rsssl-open"},(0,c.__)("Disabled","really-simple-ssl")),(0,n.createElement)("span",null,(0,c.__)("Activate Limit login attempts to enable this block.","really-simple-ssl")))))},rn=({field:e})=>{const{fetchRoles:l,roles:t,rolesLoaded:a}=Pa(),[s,i]=(0,n.useState)([]),[c,r]=(0,n.useState)(!1),{updateField:d,setChangedField:h,fieldsLoaded:o,getFieldValue:v}=(0,m.A)();return(0,n.useEffect)((()=>{a||l(e.id)}),[a]),(0,n.useEffect)((()=>{e.value||(h(e.id,e.default),d(e.id,e.default),i(e.default.map(((e,l)=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)}))))),i(e.value.map(((e,l)=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)}))))}),[o]),(0,n.useEffect)((()=>{r(v("enforce_frequent_password_change"))}),[v("enforce_frequent_password_change")]),(0,n.createElement)("div",{style:{marginTop:"5px"}},(0,n.createElement)(za.Ay,{isMulti:!0,options:t,onChange:l=>{const t=l.map((e=>e.value));i(l),d(e.id,t),h(e.id,t)},value:s,menuPosition:"fixed",styles:{multiValue:e=>({...e,borderRadius:"10px",backgroundColor:"#F5CD54"}),multiValueRemove:(e,l)=>({...e,color:l.isHovered?"initial":e.color,opacity:"0.7",":hover":{backgroundColor:"initial",color:"initial",opacity:"1"}})},isDisabled:!c}),!1)},dn=e=>{let l=React.createRef();const{updateField:t,setChangedField:a,highLightField:s}=(0,m.A)(),[r,d]=(0,o.useState)(null),{selectedFilter:h,setSelectedFilter:u}=(0,y.A)();(0,o.useEffect)((()=>{d((0,Ja.A)("anchor")),Z(),s===e.field.id&&l.current&&l.current.scrollIntoView({behavior:"smooth",block:"start"})}),[]),(0,o.useEffect)((()=>{Z()}),[r]),window.addEventListener("hashchange",(e=>{d((0,Ja.A)("anchor"))}));const Z=()=>{r&&r===e.field.id&&l.current.scrollIntoView({behavior:"smooth",block:"start"})},k=l=>{let n=e.field;if(n.pattern){const e=new RegExp(n.pattern,"g"),t=l.match(e);l=t?t.join(""):""}t(n.id,l);let s=!1;if(n.configure_on_activation){n.configure_on_activation.hasOwnProperty("condition")&&e.field.value==n.configure_on_activation.condition&&(s=!0);let l=n.configure_on_activation[0];for(let e in l)s&&l.hasOwnProperty(e)&&t(e,l[e])}a(n.id,l)},w=e=>{let l=e.warning?"red":"black";return(0,n.createElement)(n.Fragment,null,(0,n.createElement)("div",{className:"cmplz-label-text"},e.label),e.tooltip&&(0,n.createElement)(V.default,{name:"info-open",tooltip:e.tooltip,color:l}))};let M=e.field,R=M.value,F=M.disabled,H="rsssl-field-wrap";s===e.field.id&&(H="rsssl-field-wrap rsssl-highlight");let C=[];if(M.options)for(var A in M.options)if(M.options.hasOwnProperty(A)){let e={};e.label=M.options[A],e.value=A,C.push(e)}if(!rsssl_settings.networkwide_active&&M.networkwide_required&&(F=!0,M.comment=(0,n.createElement)(n.Fragment,null,(0,c.__)("This feature is only available networkwide.","really-simple-ssl"),(0,n.createElement)(g.A,{target:"_blank",rel:"noopener noreferrer",text:(0,c.__)("Network settings","really-simple-ssl"),url:rsssl_settings.network_link}))),M.conditionallyDisabled&&(F=!0),!M.visible)return(0,n.createElement)(n.Fragment,null);if("checkbox"===M.type)return(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(N,{label:w(M),field:M,disabled:F,onChangeHandler:e=>k(e)}),M.comment&&(0,n.createElement)("div",{className:"rsssl-comment",dangerouslySetInnerHTML:{__html:p().sanitize(M.comment)}}));if("hidden"===M.type)return(0,n.createElement)("input",{type:"hidden",value:M.value});if("radio"===M.type)return(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(i.RadioControl,{label:w(M),onChange:e=>k(e),selected:R,options:C}));if("email"===M.type){const t=e.fields.find((e=>"send_verification_email"===e.id)),a=t&&t.disabled;return(0,n.createElement)("div",{className:H,ref:l,style:{position:"relative"}},(0,n.createElement)(i.TextControl,{required:M.required,placeholder:M.placeholder,disabled:F,help:M.comment,label:w(M),onChange:e=>k(e),value:R}),t&&(0,n.createElement)("div",{className:"rsssl-email-verified"},a?(0,n.createElement)(V.default,{name:"circle-check",color:"green"}):(0,n.createElement)(V.default,{name:"circle-times",color:"red"})))}if("text"===M.type)return(0,n.createElement)("div",{className:H,ref:l,style:{position:"relative"}},(0,n.createElement)(i.TextControl,{required:M.required,placeholder:M.placeholder,disabled:F,help:M.comment,label:w(M),onChange:e=>k(e),value:R}));if("button"===M.type)return(0,n.createElement)("div",{className:"rsssl-field-button "+H,ref:l},(0,n.createElement)("label",null,M.label),(0,n.createElement)(Ga,{field:M}));if("password"===M.type)return(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(_,{index:e.index,field:M}));if("textarea"===M.type)return(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(i.TextareaControl,{label:M.label,help:M.comment,value:R,onChange:e=>k(e),disabled:M.disabled}));if("license"===M.type){let t=e.field,a=t.value;return(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(v,{index:e.index,field:t,fieldValue:a}))}return"number"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(i.__experimentalNumberControl,{onChange:e=>k(e),help:M.comment,label:M.label,value:R})):"email"===M.type?(0,n.createElement)("div",{className:(void 0).highLightClass,ref:(void 0).scrollAnchor},(0,n.createElement)(i.TextControl,{help:M.comment,label:M.label,onChange:e=>(void 0).onChangeHandler(e),value:R})):"host"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(E.A,{index:e.index,field:e.field})):"select"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(f,{disabled:F,label:w(M),onChangeHandler:e=>k(e),value:R,options:C,field:M})):"support"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(B,null)):"postdropdown"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(qa,{field:e.field})):"permissionspolicy"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(O,{disabled:F,field:e.field,options:C})):"learningmode"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(G,{disabled:F,field:e.field})):"riskcomponent"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(W,{field:e.field})):"mixedcontentscan"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(L,{field:e.field})):"vulnerabilitiestable"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(J,{field:e.field})):"two_fa_roles"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)("label",{htmlFor:"rsssl-two-fa-dropdown-{field.id}"},w(M)),(0,n.createElement)(Ia,{field:e.field})):"eventlog-datatable"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(cn,{field:e.field,action:e.field.action})):"twofa-datatable"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(sn,{field:e.field,action:e.field.action})):"ip-address-datatable"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(Ba,{field:e.field,action:e.field.action})):"user-datatable"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(en,{field:e.field,action:e.field.action})):"country-datatable"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)(an,{field:e.field,action:e.field.action})):"roles_dropdown"===M.type?(0,n.createElement)("div",{className:H,ref:l},(0,n.createElement)("label",{htmlFor:"rsssl-roles-dropdown-{field.id}"},w(M)),(0,n.createElement)(rn,{field:e.field})):"notificationtester"===M.type?(0,n.createElement)("div",{className:"rsssl-field-button "+H,ref:l},(0,n.createElement)(Ya,{field:e.field,labelWrap:w})):"letsencrypt"===M.type?(0,n.createElement)(S,{field:M}):"activate"===M.type?(0,n.createElement)(b,{field:M}):"not found field type "+M.type}},489:(e,l,t)=>{t.d(l,{A:()=>_});var a=t(1609),n=t(6087),s=t(6975),i=(t(2838),t(9342)),c=t(1082);const r=(0,t(9815).A)((()=>({autoComplete:{fontSize:"12px"}}))),d=({field:e,disabled:l,value:t,options:n,label:s,onChange:d})=>{let m=!Array.isArray(l)&&l;const h=r();return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(i.A,{classes:{input:h.autoComplete,option:h.autoComplete},disabled:m,disablePortal:!0,value:t,id:e.id,options:n,getOptionLabel:e=>{if(e&&e.label)return e.label;const l=n.find((l=>l.value===e));return l?l.label:e},isOptionEqualToValue:(e,l)=>e.value===l,onChange:(e,l)=>{let t=l&&l.value?l.value:"";d(t)},renderInput:e=>(0,a.createElement)(c.A,{...e,label:s,margin:"normal",variant:"outlined",fullWidth:!0})}))};var m=t(1621),h=t(207);const o=(0,m.vt)(((e,l)=>({hosts:[],hostsLoaded:!1,fetchHosts:async l=>{try{const t=await h.Eo("get_hosts",{id:l});if(!t)return void console.error("No response received from the server.");let a=t.hosts;e({hosts:a,hostsLoaded:!0})}catch(e){console.error("Error:",e)}}})));var v=t(7723);const _=(0,n.memo)((({field:e,showDisabledWhenSaving:l=!0})=>{const{updateField:t,setChangedField:i,saveFields:c,handleNextButtonDisabled:r}=(0,s.A)(),m=(0,n.useRef)(!1),{fetchHosts:h,hosts:_,hostsLoaded:u}=o();(0,n.useEffect)((()=>{u||h()}),[]);let p=u?_:[],f=[],E={label:(0,v.__)("Optional - Select your hosting provider.","really-simple-ssl"),value:""};0===e.value.length&&f.push(E);for(let e in p)if(p.hasOwnProperty(e)){let l={};l.label=p[e].name,l.value=e,f.push(l)}return(0,a.createElement)(d,{className:"rsssl-select",field:e,label:e.label,onChange:a=>(async a=>{r(!0),l&&(m.current=!0),t(e.id,a),i(e.id,a),await c(!0,!1),r(!1),m.current=!1})(a),value:e.value,options:f,disabled:m.current})}))},4449:(e,l,t)=>{t.d(l,{A:()=>r});var a=t(1609),n=t(1621),s=t(207),i=t(7723),c=t(6535);const r=(0,n.vt)(((e,l)=>({dummyRiskData:[{id:"force_update",name:"Force Update",value:"l",description:(0,i.__)("Force update the plugin or theme","really-simple-ssl")},{id:"quarantine",name:"Quarantine",value:"m",description:(0,i.__)("Isolates the plugin or theme if no update can be performed","really-simple-ssl")}],riskData:[],riskLevels:{l:1,m:2,h:3,c:4},vulnerabilities:[],processing:!1,dataLoaded:!1,updates:0,HighestRisk:!1,lastChecked:"",vulEnabled:!1,riskNaming:{},vulList:[],setDataLoaded:l=>e({dataLoaded:l}),updateRiskData:async(t,a)=>{if(!l().processing){e({processing:!0}),e((0,c.jM)((e=>{let n=e.riskData.findIndex((e=>e.id===t));e.riskData[n].value=a,e.riskData=l().enforceCascadingRiskLevels(e.riskData)})));try{await s.Eo("vulnerabilities_measures_set",{riskData:l().riskData}),e({dataLoaded:!0,processing:!1})}catch(e){console.log(e)}e({processing:!1})}},enforceCascadingRiskLevels:e=>{if(0===e.length)return e;let t=e.filter((e=>"force_update"===e.id))[0].value,a=e.filter((e=>"quarantine"===e.id))[0].value;t=l().riskLevels.hasOwnProperty(t)?l().riskLevels[t]:5,a=l().riskLevels.hasOwnProperty(a)?l().riskLevels[a]:5;let n=e.findIndex((e=>"quarantine"===e.id));a<t&&(e[n].value=Object.keys(l().riskLevels).find((e=>l().riskLevels[e]===t))),5===t&&(e[n].value="*");let s=t>0?t:0,i=Array.from(Array(s).keys()).map((e=>e));return i=i.map((e=>Object.keys(l().riskLevels).find((t=>l().riskLevels[t]===e)))),e[n].disabledRiskLevels=i,e},fetchFirstRun:async()=>{l().processing||(e({processing:!0}),await s.Eo("vulnerabilities_scan_files"),e({processing:!1}))},fetchVulnerabilities:async()=>{if(l().processing)return;e({processing:!0});let t={};try{const n=await s.Eo("hardening_data",t);let r=[],d=0;n.data.vulList&&(d=n.data.vulnerabilities,r=n.data.vulList,"object"==typeof r&&(r=Object.values(r)),r.forEach((function(e,l){let t=e.update_available?rsssl_settings.plugins_url+"?plugin_status=upgrade":"#settings/vulnerabilities";e.vulnerability_action=(0,a.createElement)("div",{className:"rsssl-action-buttons"},(0,a.createElement)("a",{className:"rsssl-button button-secondary",href:"https://really-simple-ssl.com/vulnerabilities/"+e.rss_identifier,target:"_blank",rel:"noopener noreferrer"},(0,i.__)("Details","really-simple-ssl")),(0,a.createElement)("a",{disabled:!e.update_available,href:t,className:"rsssl-button button-primary"},(0,i.__)("Update","really-simple-ssl")))})));let m=n.data.riskData;Array.isArray(m)||(m=[]),m=l().enforceCascadingRiskLevels(m),e((0,c.jM)((e=>{e.vulnerabilities=d,e.vulList=r,e.updates=n.data.updates,e.dataLoaded=!0,e.riskNaming=n.data.riskNaming,e.lastChecked=n.data.lastChecked,e.vulEnabled=n.data.vulEnabled,e.riskData=m,e.processing=!1})))}catch(e){console.error(e)}},vulnerabilityCount:()=>{let e=l().vulList,t=[];return Object.keys(e).forEach((function(l){t.push(e[l])})),["c","h","m","l"].map((function(e){return{level:e,count:t.filter((function(l){return l.risk_level===e})).length}}))},vulnerabilityScore:()=>{let e=0,t=l().vulList;return Object.keys(t).forEach((function(l){"c"===t[l].risk_level?e=5:e<1&&(e=1)})),e},hardeningScore:()=>{let e=0,t=l().vulnerabilities;for(let l=0;l<t.length;l++)e+=t[l].hardening_score;return e},activateVulnerabilityScanner:async()=>{try{(await s.Eo("rsssl_scan_files")).request_success&&await l().fetchVulnerabilities()}catch(e){console.error(e)}}})))}}]);PK�������!�P����*��settings/build/778.f7f7013a567067838984.jsnu�[��������"use strict";(globalThis.webpackChunkreally_simple_ssl=globalThis.webpackChunkreally_simple_ssl||[]).push([[778],{435:(e,t,s)=>{s.d(t,{A:()=>o});var l=s(1621),r=s(6535),a=s(207),c=s(7723),i=s(9166),n=s(7143);const o=(0,l.vt)(((e,t)=>({actionIndex:-1,progress:0,attemptCount:0,refreshTests:!1,actionsList:[],updateVerificationType:async e=>{await a.bl("update_verification_type",e).then((t=>{let s="dir"===e?(0,c.__)("Switched to Directory","really-simple-ssl"):(0,c.__)("Switched to DNS","really-simple-ssl");(0,n.dispatch)("core/notices").createNotice("success",s,{__unstableHTML:!0,id:"rsssl_switched_to_dns",type:"snackbar",isDismissible:!0}).then((0,i.A)(3e3)).then((e=>{(0,n.dispatch)("core/notices").removeNotice("rsssl_switched_to_dns")}))}))},setAttemptCount:t=>{e((e=>({attemptCount:t})))},setProgress:t=>{e((e=>({progress:t})))},setActionsList:t=>{e((e=>({actionsList:t})))},setActionsListItem:(t,s)=>{e((0,r.Ay)((e=>{e.actionsList[t]=s})))},setActionsListProperty:(t,s,l)=>{e((0,r.Ay)((e=>{e.actionsList[t][s]=l})))},setRefreshTests:t=>{e((e=>({refreshTests:t})))},setActionIndex:t=>{e((e=>({actionIndex:t})))}})))},9695:(e,t,s)=>{s.d(t,{A:()=>a});var l=s(1609),r=s(3972);const a=e=>{let t=e.lines;return t||(t=4),e.error&&(t=0),(0,l.createElement)("div",{className:"rsssl-placeholder"},e.error&&(0,l.createElement)(r.A,{error:e.error}),Array.from({length:t}).map(((e,t)=>(0,l.createElement)("div",{className:"rsssl-placeholder-line",key:"placeholder-"+t}))))}},2480:(e,t,s)=>{s.d(t,{A:()=>l});const l=(0,s(1621).vt)(((e,t)=>({selectedFilter:[],processingFilter:!1,setSelectedFilter:(t,s)=>{e((e=>({selectedFilter:{...e.selectedFilter,[s]:t}})))},getCurrentFilter:e=>t().selectedFilter[e],setProcessingFilter:t=>e({processingFilter:t})})))},5683:(e,t,s)=>{s.d(t,{A:()=>l});const l=(0,s(1621).vt)(((e,t)=>({licenseStatus:rsssl_settings.licenseStatus,setLicenseStatus:t=>e((e=>({licenseStatus:t})))})))},9778:(e,t,s)=>{s.r(t),s.d(t,{ScrollProgress:()=>x,default:()=>_});var l=s(1609),r=s(6087);s(9695);const a=()=>(0,l.createElement)("div",{className:"rsssl-wizard-settings rsssl-column-2 rsssl-settings-placeholder"},(0,l.createElement)("div",{className:"rsssl-grid-item"},(0,l.createElement)("div",{className:"rsssl-grid-item-content"},(0,l.createElement)("div",{className:"rsssl-settings-block-intro"}))),(0,l.createElement)("div",{className:"rsssl-grid-item-footer"})),c=(e,t)=>{let s=t.length;for(let l=0;l<s;l++)if(t[l]==e)return!0;return!1};var i=s(4124),n=s(5511),o=s(7723),m=s(207),d=s(6975),h=s(2043),g=s(5683),p=s(2480),u=s(5170);const f=({msg:e,title:t,url:s,upgrade:r})=>{const{licenseStatus:a}=(0,g.A)();let c=rsssl_settings.pro_plugin_active,i=e||(0,o.__)("Learn more about %sPremium%s","really-simple-ssl");return rsssl_settings.pro_plugin_active&&(i="empty"===a||"deactivated"===a?rsssl_settings.messageInactive:rsssl_settings.messageInvalid),(0,l.createElement)("div",{className:"rsssl-locked rsssl-locked-premium"},(0,l.createElement)("div",{className:"rsssl-locked-overlay rsssl-premium"},(0,l.createElement)("div",{className:"rsssl-locked-header"},(0,l.createElement)("h5",{className:"rsssl-locked-header-title"},t)),(0,l.createElement)("div",{className:"rsssl-locked-content"},c&&(0,l.createElement)("span",null,i," ",(0,l.createElement)("a",{className:"rsssl-locked-link",rel:"noopener noreferrer",href:"#settings/license"},(0,o.__)("Check license","really-simple-ssl"))),!c&&(0,l.createElement)("span",null,i)),(0,l.createElement)("div",{className:"rsssl-locked-footer"},(0,l.createElement)("div",{className:"rsssl-grid-item-footer-buttons"},(0,l.createElement)("a",{target:"_blank",className:"button button-primary left",href:s||"https://really-simple-ssl.com/pro/"},(0,o.__)("Go Pro","really-simple-ssl"))))))},w=e=>{const{fields:t}=(0,d.A)(),{selectedFilter:a,setSelectedFilter:c}=(0,p.A)(),{licenseStatus:w}=(0,g.A)(),{selectedSubMenuItem:v,subMenu:C}=(0,h.A)(),[E,M]=(0,r.useState)(null),[z,_]=(0,r.useState)(null);(0,r.useEffect)((()=>{Promise.all([s.e(59),s.e(307),s.e(124)]).then(s.bind(s,7124)).then((({default:e})=>{M((()=>e))})),x&&x.intro&&"object"==typeof x.intro&&_(x.intro[a[B]])}),[a]);let x,b="https://really-simple-ssl.com/pro/?mtm_campaign=fallback&mtm_source=free&mtm_content=upgrade",y=[];for(const s of t)s.group_id===e.group&&y.push(s);for(const t of C.menu_items){if(t.id===v&&t.hasOwnProperty("groups"))for(const s of t.groups)if(s.group_id===e.group){x=s;break}if(x)break}if(!x)for(const e of C.menu_items){if(e.id===v){x=e;break}if(e.menu_items){const t=e.menu_items.find((e=>e.id===v));if(t){x=t;break}}}if(x&&x.groups){const t=x.groups.find((t=>t.group_id===e.group));t?x=t:x.groups.find((t=>t.group_id===e.group))}let L=x.premium_text?x.premium_text:(0,o.__)("Learn more about %sPremium%s","really-simple-ssl");rsssl_settings.pro_plugin_active&&(L="empty"===w||"deactivated"===w?rsssl_settings.messageInactive:rsssl_settings.messageInvalid);let H="valid"!==w&&x.premium,N=!rsssl_settings.networkwide_active&&x.networkwide_required;b=x.upgrade?x.upgrade:b;let V=x.helpLink_text?x.helpLink_text:(0,o.__)("Instructions","really-simple-ssl"),k=(0,n.A)("main"),S=H||N?"rsssl-disabled":"";const B="rsssl-group-filter-"+x.id;return(0,l.createElement)("div",{className:"rsssl-grid-item rsssl-"+x.id+" "+S},x.title&&(0,l.createElement)("div",{className:"rsssl-grid-item-header"},(0,l.createElement)("h3",{className:"rsssl-h4"},x.title),x.groupFilter&&(0,l.createElement)("div",{className:"rsssl-grid-item-controls"},(0,l.createElement)("select",{className:"rsssl-group-filter",id:B,name:B,value:a[B],onChange:e=>{const t=e.target.value;c(t,B)}},x.groupFilter.options.map((e=>(0,l.createElement)("option",{key:"option-"+e.id,value:e.id},e.title))))),!x.groupFilter&&x.helpLink&&"letsencrypt"!==k&&(0,l.createElement)("div",{className:"rsssl-grid-item-controls"},(0,l.createElement)(i.A,{target:"_blank",rel:"noopener noreferrer",className:"rsssl-helplink",text:V,url:x.helpLink})),"letsencrypt"===k&&(0,l.createElement)("div",{className:"rsssl-grid-item-controls"},(0,l.createElement)("a",{href:"#",className:"rsssl-helplink",onClick:e=>(e=>{e.preventDefault(),m.bl("reset").then((e=>{window.location.href=window.location.href.replace(/#letsencrypt.*/,"&r="+ +new Date+"#letsencrypt/le-system-status")}))})(e)},(0,o.__)("Reset Let's Encrypt","really-simple-ssl")))),(0,l.createElement)("div",{className:"rsssl-grid-item-content"},x.intro&&"string"==typeof x.intro&&(0,l.createElement)(u.A,{fallback:"Could not load group intro"},x.intro&&"string"==typeof x.intro&&(0,l.createElement)("div",{className:"rsssl-settings-block-intro"},x.intro),x.intro&&"object"==typeof x.intro&&(0,l.createElement)("div",{className:"rsssl-settings-block-intro"},z)),E&&y.map(((e,t)=>(0,l.createElement)(E,{key:"selectedFields-"+t,index:t,field:e,fields:y})))),H&&!N&&(0,l.createElement)(f,{msg:x.premium_text,title:x.premium_title?x.premium_title:x.title,upgrade:x.upgrade,url:x.upgrade}),N&&(0,l.createElement)("div",{className:"rsssl-locked"},(0,l.createElement)("div",{className:"rsssl-locked-overlay"},(0,l.createElement)("span",{className:"rsssl-task-status rsssl-warning"},(0,o.__)("Network feature","really-simple-ssl")),(0,l.createElement)("span",null,(0,o.__)("This feature is only available networkwide.","really-simple-ssl"),(0,l.createElement)(i.A,{target:"_blank",rel:"noopener noreferrer",text:(0,o.__)("Network settings","really-simple-ssl"),url:rsssl_settings.network_link})))))};var v=s(4937),C=s(2838),E=s.n(C);const M=e=>{let t={...e.help};t.title||(t.title=t.text,t.text=!1);let s=e.noticesExpanded?"open":"",r=t.url&&-1!==t.url.indexOf("really-simple-ssl.com")?"_blank":"_self";return(0,l.createElement)("div",null,t.title&&t.text&&(0,l.createElement)("details",{className:"rsssl-wizard-help-notice rsssl-"+t.label.toLowerCase(),open:s},(0,l.createElement)("summary",null,t.title," ",(0,l.createElement)(v.default,{name:"chevron-down"})),(0,l.createElement)("div",{dangerouslySetInnerHTML:{__html:E().sanitize(t.text)}}),t.url&&(0,l.createElement)("div",{className:"rsssl-help-more-info"},(0,l.createElement)("a",{target:r,href:t.url},(0,o.__)("More info","really-simple-ssl")))),t.title&&!t.text&&(0,l.createElement)("div",{className:"rsssl-wizard-help-notice rsssl-"+t.label.toLowerCase()},(0,l.createElement)("p",null,t.title)))};var z=s(435);const _=()=>{const[e,t]=(0,r.useState)(!0),{progress:s,fieldsLoaded:i,saveFields:n,fields:m,nextButtonDisabled:g}=(0,d.A)(),{subMenuLoaded:p,subMenu:f,selectedSubMenuItem:v,selectedMainMenuItem:C,nextMenuItem:E,previousMenuItem:_}=(0,h.A)(),{setRefreshTests:b}=(0,z.A)(),y=async e=>{!e&&(()=>{const{menu_items:e}=f;for(const t of e)if(t.id===v&&t.tests_only)return!0;return!1})()?b(!0):e?await n(!0,!1):await n(!0,!0)},{menu_items:L}=f;if(!p||!i||0===L.length)return(0,l.createElement)(a,null);let H=m.filter((e=>e.menu_id===v)),N=[];for(const e of H)c(e.group_id,N)||N.push(e.group_id);let V=[];for(const e of s.notices){let t=!1;if(e.show_with_options&&(t=H.filter((t=>e.show_with_options.includes(t.id))).length>0),t||e.menu_id===v){let t={};t.title=!!e.output.title&&e.output.title,t.label=e.output.label,t.id=e.id,t.text=e.output.msg,t.url=e.output.url,t.linked_field=e.show_with_option,V.push(t)}}for(const e of H.filter((e=>e.help&&!e.conditionallyDisabled))){let t=e.help;0===V.filter((e=>e.id&&e.id===t.id)).length&&V.push(e.help)}let k=g?`#${C}/${v}`:`#${C}/${E}`,S=(0,o.__)("Save","really-simple-ssl");for(const e of L)e.id===v&&e.tests_only&&(S=(0,o.__)("Refresh","really-simple-ssl"));return(0,l.createElement)(l.Fragment,null,(0,l.createElement)("div",{className:"rsssl-wizard-settings"},N.map(((e,t)=>(0,l.createElement)(w,{key:"settingsGroup-"+t,index:t,group:e,fields:H}))),(0,l.createElement)("div",{className:"rsssl-grid-item-footer-container"},(0,l.createElement)(x,null),(0,l.createElement)("div",{className:"rsssl-grid-item-footer"},(0,l.createElement)("div",{className:"rsssl-grid-item-footer-buttons"},v!==L[0].id&&(0,l.createElement)("a",{className:"rsssl-previous",href:`#${C}/${_}`},(0,o.__)("Previous","really-simple-ssl")),(0,l.createElement)("button",{className:"button button-secondary",onClick:e=>y(!1)},S),v!==L[L.length-1].id&&(0,l.createElement)(l.Fragment,null,(0,l.createElement)("button",{disabled:g,className:"button button-primary",onClick:e=>{y(!0),window.location.href=k}},(0,o.__)("Save and Continue","really-simple-ssl"))))))),(0,l.createElement)("div",{className:"rsssl-wizard-help"},(0,l.createElement)("div",{className:"rsssl-help-header"},(0,l.createElement)("div",{className:"rsssl-help-title rsssl-h4"},(0,o.__)("Notifications","really-simple-ssl")),(0,l.createElement)("div",{className:"rsssl-help-control",onClick:()=>{t(!e)}},!e&&(0,o.__)("Expand all","really-simple-ssl"),e&&(0,o.__)("Collapse all","really-simple-ssl"))),V.map(((t,s)=>(0,l.createElement)(u.A,{key:"errorboundary-"+s,fallback:"Could not load notices"},(0,l.createElement)(M,{noticesExpanded:e,index:s,help:t,fieldId:t.id}))))))},x=()=>{const[e,t]=(0,r.useState)(0);return(0,r.useEffect)((()=>{window.addEventListener("scroll",(()=>{let e=document.documentElement.scrollHeight-document.documentElement.clientHeight,s=Math.round(window.scrollY/e*100);s=Math.max(5,s),t(s)}))}),[]),document.documentElement.scrollHeight<=document.documentElement.clientHeight?null:(0,l.createElement)("span",{className:"rsssl-grid-item-footer-scroll-progress-container"},(0,l.createElement)("span",{className:"rsssl-grid-item-footer-scroll-progress",style:{width:e+"%"}},e,"%"))}},4937:(e,t,s)=>{s.r(t),s.d(t,{default:()=>c});var l=s(1609),r=s(7008);const a=React.forwardRef((function(e,t){const{name:s,color:r,size:a}=e,c=s||"bullet",i=r||"black",n=a||15,o={black:"var(--rsp-black)",green:"var(--rsp-green)",yellow:"var(--rsp-yellow)",orange:"var(--rsp-yellow)","red-faded":"var(--rsp-red-faded)",red:"var(--rsp-red)",grey:"var(--rsp-grey-400)","red-warning":"var(--rsp-red-faded)"};let m="";return"bullet"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z"}))),"circle"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"}))),"check"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z"}))),"warning"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"}))),"error"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"}))),"times"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"}))),"circle-check"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM371.8 211.8C382.7 200.9 382.7 183.1 371.8 172.2C360.9 161.3 343.1 161.3 332.2 172.2L224 280.4L179.8 236.2C168.9 225.3 151.1 225.3 140.2 236.2C129.3 247.1 129.3 264.9 140.2 275.8L204.2 339.8C215.1 350.7 232.9 350.7 243.8 339.8L371.8 211.8z"}))),"circle-times"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM175 208.1L222.1 255.1L175 303C165.7 312.4 165.7 327.6 175 336.1C184.4 346.3 199.6 346.3 208.1 336.1L255.1 289.9L303 336.1C312.4 346.3 327.6 346.3 336.1 336.1C346.3 327.6 346.3 312.4 336.1 303L289.9 255.1L336.1 208.1C346.3 199.6 346.3 184.4 336.1 175C327.6 165.7 312.4 165.7 303 175L255.1 222.1L208.1 175C199.6 165.7 184.4 165.7 175 175C165.7 184.4 165.7 199.6 175 208.1V208.1z"}))),"chevron-up"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M416 352c-8.188 0-16.38-3.125-22.62-9.375L224 173.3l-169.4 169.4c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25C432.4 348.9 424.2 352 416 352z"}))),"chevron-down"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"}))),"chevron-right"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z"}))),"chevron-left"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M224 480c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l169.4 169.4c12.5 12.5 12.5 32.75 0 45.25C240.4 476.9 232.2 480 224 480z"}))),"plus"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z"}))),"minus"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z"}))),"sync"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M483.515 28.485L431.35 80.65C386.475 35.767 324.485 8 256 8 123.228 8 14.824 112.338 8.31 243.493 7.971 250.311 13.475 256 20.301 256h28.045c6.353 0 11.613-4.952 11.973-11.294C66.161 141.649 151.453 60 256 60c54.163 0 103.157 21.923 138.614 57.386l-54.128 54.129c-7.56 7.56-2.206 20.485 8.485 20.485H492c6.627 0 12-5.373 12-12V36.971c0-10.691-12.926-16.045-20.485-8.486zM491.699 256h-28.045c-6.353 0-11.613 4.952-11.973 11.294C445.839 370.351 360.547 452 256 452c-54.163 0-103.157-21.923-138.614-57.386l54.128-54.129c7.56-7.56 2.206-20.485-8.485-20.485H20c-6.627 0-12 5.373-12 12v143.029c0 10.691 12.926 16.045 20.485 8.485L80.65 431.35C125.525 476.233 187.516 504 256 504c132.773 0 241.176-104.338 247.69-235.493.339-6.818-5.165-12.507-11.991-12.507z"}))),"sync-error"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M256 79.1C178.5 79.1 112.7 130.1 89.2 199.7C84.96 212.2 71.34 218.1 58.79 214.7C46.23 210.5 39.48 196.9 43.72 184.3C73.6 95.8 157.3 32 256 32C337.5 32 408.8 75.53 448 140.6V104C448 90.75 458.7 80 472 80C485.3 80 496 90.75 496 104V200C496 213.3 485.3 224 472 224H376C362.7 224 352 213.3 352 200C352 186.7 362.7 176 376 176H412.8C383.7 118.1 324.4 80 256 80V79.1zM280 263.1C280 277.3 269.3 287.1 256 287.1C242.7 287.1 232 277.3 232 263.1V151.1C232 138.7 242.7 127.1 256 127.1C269.3 127.1 280 138.7 280 151.1V263.1zM224 352C224 334.3 238.3 319.1 256 319.1C273.7 319.1 288 334.3 288 352C288 369.7 273.7 384 256 384C238.3 384 224 369.7 224 352zM40 432C26.75 432 16 421.3 16 408V311.1C16 298.7 26.75 287.1 40 287.1H136C149.3 287.1 160 298.7 160 311.1C160 325.3 149.3 336 136 336H99.19C128.3 393 187.6 432 256 432C333.5 432 399.3 381.9 422.8 312.3C427 299.8 440.7 293 453.2 297.3C465.8 301.5 472.5 315.1 468.3 327.7C438.4 416.2 354.7 480 256 480C174.5 480 103.2 436.5 64 371.4V408C64 421.3 53.25 432 40 432V432z"}))),"shortcode"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M128 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h96C145.7 480 160 465.7 160 448S145.7 416 128 416H64V96h64C145.7 96 160 81.67 160 64S145.7 32 128 32zM416 32h-96C302.3 32 288 46.33 288 63.1S302.3 96 319.1 96H384v320h-64C302.3 416 288 430.3 288 447.1S302.3 480 319.1 480H416c17.6 0 32-14.4 32-32V64C448 46.4 433.6 32 416 32z"}))),"file"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M0 64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM336 448V160H256C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V448C48 456.8 55.16 464 64 464H320C328.8 464 336 456.8 336 448z"}))),"file-disabled"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M639.1 487.1c0-7.119-3.153-14.16-9.191-18.89l-118.8-93.12l.0013-237.3c0-16.97-6.742-33.26-18.74-45.26l-74.63-74.64C406.6 6.742 390.3 0 373.4 0H192C156.7 0 128 28.65 128 64L128 75.01L38.82 5.11C34.41 1.672 29.19 0 24.04 0C10.19 0-.0002 11.3-.0002 23.1c0 7.12 3.153 14.16 9.192 18.89l591.1 463.1C605.6 510.3 610.8 512 615.1 512C629.8 512 639.1 500.6 639.1 487.1zM464 338.4l-287.1-225.7l-.002-48.51c0-8.836 7.164-16 15.1-16h160l-.0065 79.87c0 17.67 14.33 31.1 31.1 31.1L464 159.1V338.4zM448 463.1H192c-8.834 0-15.1-7.164-15.1-16L176 234.6L128 197L128 447.1c0 35.34 28.65 64 63.1 64H448c20.4 0 38.45-9.851 50.19-24.84l-37.72-29.56C457.5 461.4 453.2 463.1 448 463.1z"}))),"loading"===c&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[r],d:"M304 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 416c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM48 304c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm464-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM142.9 437c18.7-18.7 18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zm0-294.2c18.7-18.7 18.7-49.1 0-67.9S93.7 56.2 75 75s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zM369.1 437c18.7 18.7 49.1 18.7 67.9 0s18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9z"}))),"file-download"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M216 342.1V240c0-13.25-10.75-24-24-24S168 226.8 168 240v102.1L128.1 303C124.3 298.3 118.2 296 112 296S99.72 298.3 95.03 303c-9.375 9.375-9.375 24.56 0 33.94l80 80c9.375 9.375 24.56 9.375 33.94 0l80-80c9.375-9.375 9.375-24.56 0-33.94s-24.56-9.375-33.94 0L216 342.1zM365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448z"}))),"calendar"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z"}))),"calendar-error"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M151.1 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V192H47.1V448C47.1 456.8 55.16 464 63.1 464H284.5C296.7 482.8 312.5 499.1 330.8 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24L151.1 64zM576 368C576 447.5 511.5 512 432 512C352.5 512 287.1 447.5 287.1 368C287.1 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM432 416C418.7 416 408 426.7 408 440C408 453.3 418.7 464 432 464C445.3 464 456 453.3 456 440C456 426.7 445.3 416 432 416zM447.1 288C447.1 279.2 440.8 272 431.1 272C423.2 272 415.1 279.2 415.1 288V368C415.1 376.8 423.2 384 431.1 384C440.8 384 447.1 376.8 447.1 368V288z"}))),"help"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z"}))),"copy"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M502.6 70.63l-61.25-61.25C435.4 3.371 427.2 0 418.7 0H255.1c-35.35 0-64 28.66-64 64l.0195 256C192 355.4 220.7 384 256 384h192c35.2 0 64-28.8 64-64V93.25C512 84.77 508.6 76.63 502.6 70.63zM464 320c0 8.836-7.164 16-16 16H255.1c-8.838 0-16-7.164-16-16L239.1 64.13c0-8.836 7.164-16 16-16h128L384 96c0 17.67 14.33 32 32 32h47.1V320zM272 448c0 8.836-7.164 16-16 16H63.1c-8.838 0-16-7.164-16-16L47.98 192.1c0-8.836 7.164-16 16-16H160V128H63.99c-35.35 0-64 28.65-64 64l.0098 256C.002 483.3 28.66 512 64 512h192c35.2 0 64-28.8 64-64v-32h-47.1L272 448z"}))),"info"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"}))),"info-open"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM256 304c13.25 0 24-10.75 24-24v-128C280 138.8 269.3 128 256 128S232 138.8 232 152v128C232 293.3 242.8 304 256 304zM256 337.1c-17.36 0-31.44 14.08-31.44 31.44C224.6 385.9 238.6 400 256 400s31.44-14.08 31.44-31.44C287.4 351.2 273.4 337.1 256 337.1z"}))),"list"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M184.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 113c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L39 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM256 96c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H288c-17.7 0-32-14.3-32-32zM192 416c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zM80 464c-26.5 0-48-21.5-48-48s21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48z"}))),"empty"===c&&(m=(0,l.createElement)("svg",{height:n,width:n,"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 280.8 363.67"})),"external-link"===c&&(m=(0,l.createElement)("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("path",{fill:o[i],d:"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z"}))),"shield"===c&&(m=(0,l.createElement)("svg",{height:n,"aria-hidden":"true",focusable:"false",role:"img",id:"uuid-026a4e87-44db-4336-a398-3c29d25b7317",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 280.8 363.67"},(0,l.createElement)("path",{fill:"#f9c23e",d:"M280.8,62.4L140.5,0,0,62.2V213.3c0,10.7,1.6,21.3,4.9,31.5,9.5,29.9,28.2,52.8,54.4,69.5,26,16.6,52.4,32.4,78.6,48.6,2,1.2,3.4,.9,5.1-.2,19.9-12.3,39.8-24.5,59.6-36.8,12.6-7.8,25.5-15.1,36.5-25.1,26.4-24.2,41.4-53.6,41.5-89.9V62.4h.2Z"}),(0,l.createElement)("g",null,(0,l.createElement)("g",null,(0,l.createElement)("rect",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",x:"155",y:"266.8",width:"77.6",height:"6"}),(0,l.createElement)("path",{fill:"#1d2327",d:"M224.4,204.5h-1.8v-10.1c0-15.9-12.9-28.8-28.8-28.8s-28.8,12.9-28.8,28.8v10.1h-1.8c-4.6,0-8.3,3.7-8.3,8.3v51.3h77.6v-51.3c0-4.6-3.7-8.3-8.3-8.3h.2Zm-45.3-10.1c0-8.1,6.6-14.7,14.7-14.7s14.7,6.6,14.7,14.7v10.1h-29.5v-10.1h.1Zm36.6,32.9l-20.7,20.2c-.2,.2-.3,.4-.5,.6l-2,2c-.2,.2-.4,.4-.6,.5l-3.8,3.8-4.5-4.3-2-2c-.2-.2-.4-.4-.5-.6l-9.1-9.1c-2.4-2.4-2.4-6.4,0-8.8l2-2c2.4-2.4,6.4-2.4,8.8,0l5.3,5.3,16.9-16.4c2.4-2.4,6.4-2.4,8.8,0l2,2c2.4,2.4,2.4,6.4,0,8.8h-.1Z"})),(0,l.createElement)("g",null,(0,l.createElement)("path",{fill:"#1d2327",d:"M125.2,192.3c-.5-2.9-.5-5.8-1-8.6-.5-2.4-2.6-4-4.8-3.9-2.3,0-4.2,1.9-4.7,4.3-.2,1,0,1.9,0,2.9,.8,14.6,7.2,26.3,18.2,35.7,2.2,1.9,4.5,3.5,6.9,4.8v-11.8c-7.4-5.8-12.9-14.1-14.6-23.3v-.1Z"}),(0,l.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M96.4,236.1c-13-15-20-32.3-19.5-52.3,.3-13.1,6.1-23.6,16.6-31.2,11.5-8.5,24.5-10.9,38.3-7.1,12.7,3.5,22,10.7,27.4,22,2.1-2.7,4.5-5.2,7.2-7.4-4-7-9.7-12.9-17-17.4-17-10.4-34.9-11.7-52.9-3.1-19,9.1-28.7,24.7-29.3,45.8,0,5.2,.5,10.2,1.4,15.2,3.4,19.4,13.4,35.2,27.2,48.9,1.1,1.1,2.5,1.6,4.1,1.4,1.8-.2,3.2-1.3,3.8-3,.6-1.8,.4-3.6-1-5.1-2.1-2.2-4.2-4.4-6.2-6.7h-.1Z"}),(0,l.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M68.1,89.4c1.1-.4,2.1-1,3.1-1.5,17.9-9.1,36.8-12.7,56.8-11.3,12.2,.8,23.9,3.8,35.1,8.7,3,1.3,5.9,2.8,8.9,4.1,2.7,1.1,5.3,0,6.4-2.4,1.1-2.3,0-5-2.3-6.3-11-5.7-22.4-10-34.6-12.3-4.2-.8-8.5-1.1-12.8-1.7h-17.1c-.3,0-.6,.2-.9,.2-11.2,.8-22,3.2-32.5,7.2-4.9,1.9-9.7,4.1-14.3,6.6-2.5,1.3-3.4,4.2-2.2,6.5,1.1,2.2,4,3.2,6.4,2.1v.1Z"}),(0,l.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M61.1,153.5c13.6-21.6,33.6-31.5,58.7-32.1h6c.8,0,1.6,.2,2.3,.3,13.4,1.7,25.5,6.6,35.9,15.4,5.8,4.9,10.5,10.3,14.1,16.2,3.1-1.2,6.4-2,9.8-2.5-4.7-8.7-11.3-16.3-19.6-22.7-19-14.6-40.5-19.5-64.1-15.1-14.3,2.7-26.9,9-37.7,18.8-10.4,9.5-17.8,20.9-21.2,34.6-2.8,11.3-2.6,22.7-.9,34.1,1.1,7,2.9,13.9,5.4,20.5,.9,2.3,3,3.7,5.2,3.5,2.1-.2,3.9-2,4.3-4.3,.2-1.1-.2-2.2-.6-3.2-4.3-11.9-6.3-24.1-5.6-36.7,.5-9.6,2.8-18.7,8-26.8h0Z"}),(0,l.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M139.8,240.6c-20.9-8.4-34.1-23.7-38.4-46.7-.8-4.3-1.4-8.7-.4-13,1.8-7.1,6.4-11.4,13.4-13.5,11.8-3.4,24.7,5.3,24.5,17.6,0,4.8,1.4,9.3,4,13.4,.3,.5,.6,.9,.9,1.3,1.6-2.4,3.7-4.6,6.1-6.2,0-.9,0-1.9,.2-2.8-.7-1.7-1.1-3.5-1.2-5.3-.3-6.1-1.6-11.9-5.5-16.8-6.8-8.8-15.9-12.4-27-11.5-11.3,.9-21.6,9.6-24.5,20.6-1.8,6.6-.9,13.3,.4,19.8,2.4,12.9,8.2,24,17.1,33.7,8.6,9.4,18.8,15.8,30.6,19.8v-10.4h-.2Z"}),(0,l.createElement)("path",{className:"uuid-57af18f1-eed9-4dfe-9c3e-67e3c55f9bf4",d:"M47.5,133.2c6.8-8.8,15-16,24.6-21.6,20.8-12,43.2-15.2,66.6-11,14.8,2.7,28.2,8.7,39.9,18.2,6.3,5,11.6,11,16.4,17.4,1.9,2.5,4.8,2.8,7,1.1,2.1-1.7,2.4-4.5,.6-7-5.9-8.2-12.8-15.3-20.9-21.3-18.3-13.6-39.1-19.6-61.7-20-6.3,0-12.5,.6-18.6,1.6-15.7,2.8-30.1,8.6-42.9,18.1-8.3,6.2-15.5,13.5-21.5,22-1.6,2.3-1.3,5.1,.7,6.7,2.1,1.7,4.9,1.5,6.8-.7,1-1.2,1.9-2.5,2.9-3.7l.1,.2Z"}))))),"file-search"===c&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",height:n,fill:"none",viewBox:"0 0 384 512"},(0,l.createElement)("path",{d:"M374.6 150.6l-141.3-141.3C227.4 3.371 219.2 0 210.7 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.35 0 64-28.66 64-64V173.3C384 164.8 380.6 156.6 374.6 150.6zM224 22.63L361.4 160H248C234.8 160 224 149.2 224 136V22.63zM368 448c0 26.47-21.53 48-48 48H64c-26.47 0-48-21.53-48-48V64c0-26.47 21.53-48 48-48h144v120c0 22.06 17.94 40 40 40h120V448zM176 208c-53.02 0-96 42.98-96 96s42.98 96 96 96c23.62 0 44.96-8.859 61.68-23l68.66 68.66C307.9 447.2 309.9 448 312 448s4.094-.7813 5.656-2.344c3.125-3.125 3.125-8.188 0-11.31l-68.66-68.66C263.1 348.1 272 327.6 272 304C272 250.1 229 208 176 208zM176 384C131.9 384 96 348.1 96 304S131.9 224 176 224S256 259.9 256 304S220.1 384 176 384z"}))),"download"===c&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",height:n,fill:"none",viewBox:"0 0 512 512"},(0,l.createElement)("path",{d:"M480 352h-88C387.6 352 384 355.6 384 360s3.582 8 8 8H480c8.822 0 16 7.178 16 16v96c0 8.822-7.178 16-16 16H32c-8.822 0-16-7.178-16-16v-96c0-8.822 7.178-16 16-16h88C124.4 368 128 364.4 128 360S124.4 352 120 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96C512 366.3 497.7 352 480 352zM464 432c0-17.6-14.4-32-32-32s-32 14.4-32 32c0 17.6 14.4 32 32 32S464 449.6 464 432zM416 432c0-8.822 7.178-16 16-16s16 7.178 16 16S440.8 448 432 448S416 440.8 416 432zM250.3 413.7c3.125 3.125 8.188 3.125 11.31 0l152-152C415.2 260.1 416 258.1 416 256s-.7813-4.094-2.344-5.656c-3.125-3.125-8.188-3.125-11.31 0L264 388.7V8C264 3.594 260.4 0 256 0S248 3.594 248 8v380.7L109.7 250.3c-3.125-3.125-8.188-3.125-11.31 0s-3.125 8.188 0 11.31L250.3 413.7z"}))),"satellite-dish"===c&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",color:o[i],height:n,viewBox:"0 0 512 512"},(0,l.createElement)("path",{d:"M208 0c-8.8 0-16 7.2-16 16s7.2 16 16 16c150.2 0 272 121.8 272 272c0 8.8 7.2 16 16 16s16-7.2 16-16C512 136.1 375.9 0 208 0zm0 96c-8.8 0-16 7.2-16 16s7.2 16 16 16c97.2 0 176 78.8 176 176c0 8.8 7.2 16 16 16s16-7.2 16-16c0-114.9-93.1-208-208-208zM32 304c0-24.5 5-47.7 13.9-68.8L276.8 466.1C255.7 475 232.5 480 208 480c-97.2 0-176-78.8-176-176zm33.5-94.5c-14-14-37.3-12.1-45.7 5.8C7.1 242.2 0 272.3 0 304C0 418.9 93.1 512 208 512c31.7 0 61.8-7.1 88.7-19.8c17.9-8.4 19.8-31.8 5.8-45.7L195.3 339.3l24-24c6.3 3 13.3 4.7 20.7 4.7c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48c0 7.4 1.7 14.4 4.7 20.7l-24 24L65.5 209.5zM224 272a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"}))),"rotate-light"===c&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",color:o[i],height:n,viewBox:"0 0 512 512"},(0,l.createElement)("path",{d:"M426.1 301.2C406.2 376.5 337.6 432 256 432c-51 0-96.9-21.7-129-56.3l41-41c5.1-5.1 8-12.1 8-19.3c0-15.1-12.2-27.3-27.3-27.3H48c-8.8 0-16 7.2-16 16V404.7C32 419.8 44.2 432 59.3 432c7.2 0 14.2-2.9 19.3-8l25.7-25.7C142.3 438.7 196.2 464 256 464c97.4 0 179.2-67 201.8-157.4c2.4-9.7-5.2-18.6-15.2-18.6c-7.8 0-14.5 5.6-16.5 13.2zM385 136.3l-41 41c-5.1 5.1-8 12.1-8 19.3c0 15.1 12.2 27.3 27.3 27.3H464c8.8 0 16-7.2 16-16V107.3C480 92.2 467.8 80 452.7 80c-7.2 0-14.2 2.9-19.3 8l-25.7 25.7C369.7 73.3 315.8 48 256 48C158.6 48 76.8 115 54.2 205.4c-2.4 9.7 5.2 18.6 15.2 18.6c7.8 0 14.5-5.6 16.5-13.2C105.8 135.5 174.4 80 256 80c51 0 96.9 21.7 129.1 56.3zM448 192H374.6L448 118.6V192zM64 320h73.4L64 393.4V320z"}))),"rotate-exclamation-light"===c&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("defs",null,(0,l.createElement)("style",null,`\n .fa-secondary {\n opacity: 0.4;\n color: ${o[i]};\n }\n `)),(0,l.createElement)("path",{className:"fa-primary",d:"M280 152c0-13.3-10.7-24-24-24s-24 10.7-24 24V264c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM256 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"}),(0,l.createElement)("path",{className:"fa-secondary",d:"M432 117.4C391 65.4 327.4 32 256 32C158.4 32 75.5 94.4 44.8 181.3c-5.9 16.7 2.8 34.9 19.5 40.8s34.9-2.8 40.8-19.5C127.1 140.5 186.4 96 256 96c52.3 0 98.8 25.1 128 64H352c-17.7 0-32 14.3-32 32s14.3 32 32 32h84.3c.5 0 1 0 1.5 0H464c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v37.4zm35.2 213.2c5.9-16.7-2.8-34.9-19.5-40.8s-34.9 2.8-40.8 19.5C384.9 371.5 325.6 416 256 416c-52.3 0-98.8-25.1-128-64h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32V432c0 17.7 14.3 32 32 32s32-14.3 32-32V394.6c41 52 104.6 85.4 176 85.4c97.6 0 180.5-62.4 211.2-149.3z"}))),"radar-duotone"===c&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("defs",null,(0,l.createElement)("style",null,`\n .fa-secondary {\n color: ${o[i]} !important;\n } \n `)),(0,l.createElement)("path",{className:"fa-primary",d:"M497 49c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-182 182c-7.7-3.3-16.1-5.1-25-5.1c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64c0-8.9-1.8-17.3-5.1-25L497 49z"}),(0,l.createElement)("path",{className:"fa-secondary",d:"M350.9 127.2l-46.1 46.1c-14.3-8.4-31-13.3-48.8-13.3c-53 0-96 43-96 96s43 96 96 96s96-43 96-96h64c0 73.5-49.6 135.5-117.2 154.2C290.8 394.7 274.7 384 256 384s-34.8 10.7-42.8 26.2c-51.7-14.3-92.8-53.9-109.4-104.6c14.4-8.3 24.1-23.8 24.1-41.7c0-19.4-11.5-36.1-28-43.7C116.2 149.1 179.9 96 256 96c35.5 0 68.3 11.6 94.9 31.2zm22.8-22.8C341.2 79 300.4 64 256 64C163.1 64 85.7 129.9 67.9 217.6C47.2 222.9 32 241.7 32 264c0 23.8 17.3 43.6 40.1 47.4c19.3 64.3 71.5 114.4 137 130.9C213.8 463.8 233 480 256 480s42.2-16.2 46.9-37.8C386.3 421.3 448 345.9 448 256h64c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0c62.1 0 118.9 22.1 163.3 58.8l-45.5 45.5z"}))),"satellite-dish-duotone"===c&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",height:n},(0,l.createElement)("defs",null,(0,l.createElement)("style",null,`\n .fa-secondary {\n color: ${o[i]} !important;\n } \n `)),(0,l.createElement)("path",{className:"fa-primary",d:"M60.6 220.6c-14.5-14.5-38.8-11.8-46.3 7.3C5.1 251.5 0 277.1 0 304C0 418.9 93.1 512 208 512c26.9 0 52.5-5.1 76.1-14.4c19-7.5 21.8-31.8 7.3-46.3L187.3 347.3l28.4-28.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3l-28.4 28.4L60.6 220.6z"}),(0,l.createElement)("path",{className:"fa-secondary",d:"M224 0c-17.7 0-32 14.3-32 32s14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0zm0 96c-17.7 0-32 14.3-32 32s14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192z"}))),"spinner"===c&&(m=(0,l.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",width:"20",height:"20"},(0,l.createElement)("defs",null,(0,l.createElement)("style",null,"\n .fa-secondary {\n opacity: 0.4;\n }\n ")),(0,l.createElement)("path",{className:"fa-primary",d:"M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 256A48 48 0 1 0 0 256a48 48 0 1 0 96 0zM75 142.9A48 48 0 1 0 142.9 75 48 48 0 1 0 75 142.9z"}),(0,l.createElement)("path",{className:"fa-secondary",d:"M369.1 75A48 48 0 1 1 437 142.9 48 48 0 1 1 369.1 75zM416 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM208 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM75 369.1A48 48 0 1 1 142.9 437 48 48 0 1 1 75 369.1zm294.2 0A48 48 0 1 1 437 437a48 48 0 1 1 -67.9-67.9z"}))),(0,l.createElement)("div",{...e,ref:t},m)})),c=({name:e,color:t,size:s,tooltip:c})=>{const i=e||"bullet",n=t||"black";let o=s||15,m=c?"tooltip-":"",d=Math.floor(1e9*Math.random());return c?(0,l.createElement)("div",{className:"rsssl-"+m+"icon rsssl-icon-"+i+" rsssl-"+n},(0,l.createElement)(a,{"data-for":".rsssl-"+d,name:i,color:n,size:o,id:d,className:"rsssl-"+d,"data-tooltip-delay-hide":200}),(0,l.createElement)(r.m_,{style:{zIndex:99},id:d,place:"bottom",anchorSelect:".rsssl-"+d,content:c})):(0,l.createElement)("div",{className:"rsssl-"+m+"icon rsssl-icon-"+i+" rsssl-"+n},(0,l.createElement)(a,{name:i,color:n,size:o}))}},9166:(e,t,s)=>{s.d(t,{A:()=>l});const l=e=>function(t){return new Promise((s=>setTimeout((()=>s(t)),e)))}}}]);PK�������!�gה������ssl-test-page.phpnu�[��������<html> <head> <meta charset="UTF-8"> <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> </head> <body> <h1>#SSL TEST PAGE#</h1> <p>This page is used purely to test for SSL availability.</p> <?php $rsssl_ssl_detected = false; if ( isset( $_SERVER['HTTPS'] ) ) { if ( strtolower( $_SERVER['HTTPS'] ) === 'on' ) { echo '#SERVER-HTTPS-ON#' . ' (' . htmlentities( $_SERVER['HTTPS'], ENT_QUOTES, 'UTF-8' ) . ')<br>'; $rsssl_ssl_detected = true; } if ( '1' === $_SERVER['HTTPS'] ) { echo '#SERVER-HTTPS-1#<br>'; $rsssl_ssl_detected = true; } } if ( isset( $_SERVER['SERVER_PORT'] ) && '443' === $_SERVER['SERVER_PORT'] ) { echo '#SERVERPORT443#<br>'; $rsssl_ssl_detected = true; } if ( isset( $_ENV['HTTPS'] ) && 'on' === $_ENV['HTTPS'] ) { echo '#ENVHTTPS#<br>'; $rsssl_ssl_detected = true; } if ( ! empty( $_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'] ) && 'https' === $_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'] ) { echo '#CLOUDFRONT#<br>'; $rsssl_ssl_detected = true; } if ( ! empty( $_SERVER['HTTP_CF_VISITOR'] ) && false !== strpos( $_SERVER['HTTP_CF_VISITOR'], 'https' ) ) { echo '#CLOUDFLARE#<br>'; $rsssl_ssl_detected = true; } if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' === $_SERVER['HTTP_X_FORWARDED_PROTO'] ) { echo '#LOADBALANCER#<br>'; $rsssl_ssl_detected = true; } if ( ! empty( $_SERVER['HTTP_X_PROTO'] ) && 'SSL' === $_SERVER['HTTP_X_PROTO'] ) { echo '#HTTP_X_PROTO#<br>'; $rsssl_ssl_detected = true; } if ( ! empty( $_SERVER['HTTP_X_FORWARDED_SSL'] ) && 'on' === $_SERVER['HTTP_X_FORWARDED_SSL'] ) { echo '#HTTP_X_FORWARDED_SSL_ON#<br>'; $rsssl_ssl_detected = true; } if ( ! empty( $_SERVER['HTTP_X_FORWARDED_SSL'] ) && '1' === $_SERVER['HTTP_X_FORWARDED_SSL'] ) { echo '#HTTP_X_FORWARDED_SSL_1#<br>'; $rsssl_ssl_detected = true; } if ( $rsssl_ssl_detected ) { echo '<br>#SUCCESSFULLY DETECTED SSL#'; } else { echo '<br>#NO KNOWN SSL CONFIGURATION DETECTED#'; } ?> </body> </html> PK�������!�08k��k����security/hardening.phpnu�[��������<?php defined('ABSPATH') or die(); class rsssl_hardening { private static $_this; public $risk_naming; function __construct() { if (isset(self::$_this)) wp_die(sprintf(__('%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl'), get_class($this))); add_filter( 'rsssl_do_action', array($this, 'hardening_data'), 10, 3 ); $this->risk_naming = [ 'l' => __('low-risk', 'really-simple-ssl'), 'm' => __('medium-risk', 'really-simple-ssl'), 'h' => __('high-risk', 'really-simple-ssl'), 'c' => __('critical', 'really-simple-ssl'), ]; self::$_this = $this; } function hardening_data( array $response, string $action, $data ): array { if ( ! rsssl_user_can_manage() ) { return $response; } if ($action === 'hardening_data') { $response = $this->get_stats( $data ); } return $response; } static function this() { return self::$_this; } /* Public Section 2: DataGathering */ /** * @param $data * * @return array */ public function get_stats($data): array { if ( ! rsssl_user_can_manage() ) { return []; } $vulEnabled = rsssl_get_option('enable_vulnerability_scanner'); //now we fetch all plugins that have an update available. $stats = [ 'updates' => $this->getAllUpdatesCount(), 'lastChecked' => time(), 'riskNaming' => $this->risk_naming, 'vulEnabled' => $vulEnabled, ]; $repsonse = [ "request_success" => true, 'data' => apply_filters('rsssl_vulnerability_data', $stats), ]; return $repsonse; } /** * Gets the count of all available updates for core, plugins, and themes. * * @return int The count of all available updates. */ public function getAllUpdatesCount(): int { $updatesData = wp_get_update_data(); // Checks if the 'counts' key exists in the array and it's an array itself. if (isset($updatesData['counts']) && is_array($updatesData['counts'])) { //we only want core, plugins and themes. $updatesCounts = array_slice($updatesData['counts'], 0, 3); return array_sum($updatesCounts); } // Fallback return in case there's no 'counts' key or it's not an array. return 0; } } PK�������!�(E0 �� ����security/cron.phpnu�[��������<?php defined('ABSPATH') or die(); /** Schedule cron jobs if useCron is true Else start the functions for testing */ define('RSSSL_USE_CRON', true ); if ( RSSSL_USE_CRON ) { add_action( 'plugins_loaded', 'rsssl_schedule_cron' ); function rsssl_schedule_cron() { if ( ! wp_next_scheduled( 'rsssl_every_day_hook' ) ) { wp_schedule_event( time(), 'rsssl_daily', 'rsssl_every_day_hook' ); } if ( ! wp_next_scheduled( 'rsssl_every_three_hours_hook' ) ) { wp_schedule_event( time(), 'rsssl_every_three_hours', 'rsssl_every_three_hours_hook' ); } if ( ! wp_next_scheduled( 'rsssl_every_five_minutes_hook' ) ) { wp_schedule_event( time(), 'rsssl_five_minutes', 'rsssl_every_five_minutes_hook' ); } if ( ! wp_next_scheduled( 'rsssl_every_week_hook' ) ) { wp_schedule_event( time(), 'rsssl_weekly', 'rsssl_every_week_hook' ); } } } add_action( 'rsssl_every_three_hours_hook', 'rsssl_every_three_hours_cron' ); function rsssl_every_three_hours_cron(){ do_action('rsssl_every_three_hours_cron'); } /** * Ensure the hook has a function attached to it. */ add_action( 'rsssl_every_day_hook', 'rsssl_daily_cron' ); function rsssl_daily_cron(){ do_action('rsssl_daily_cron'); } add_action( 'rsssl_every_five_minutes_hook', 'rsssl_every_five_minutes_cron' ); function rsssl_every_five_minutes_cron() { do_action( 'rsssl_five_minutes_cron' ); } add_action( 'rsssl_every_week_hook', 'rsssl_week_cron' ); function rsssl_week_cron() { do_action( 'rsssl_weekly_cron' ); } if ( !RSSSL_USE_CRON ) { add_action( 'admin_init', 'rsssl_schedule_non_cron' ); function rsssl_schedule_non_cron(){ do_action( 'rsssl_every_day_hook' ); do_action( 'rsssl_every_five_minutes_hook' ); do_action('rsssl_every_week_hook'); } } add_filter( 'cron_schedules', 'rsssl_filter_cron_schedules' ); function rsssl_filter_cron_schedules( $schedules ) { $schedules['rsssl_five_minutes'] = array( 'interval' => 5 * MINUTE_IN_SECONDS, // seconds 'display' => __('Once every 5 minutes') ); $schedules['rsssl_daily'] = array( 'interval' => DAY_IN_SECONDS, 'display' => __( 'Once every day' ) ); $schedules['rsssl_every_three_hours'] = array( 'interval' => 3 * HOUR_IN_SECONDS, 'display' => __( 'Every three hours' ) ); $schedules['rsssl_weekly'] = array( 'interval' => WEEK_IN_SECONDS, 'display' => __( 'Once every week' ) ); return $schedules; } register_deactivation_hook( rsssl_file, 'rsssl_clear_scheduled_hooks' ); function rsssl_clear_scheduled_hooks() { wp_clear_scheduled_hook( 'rsssl_every_day_hook' ); wp_clear_scheduled_hook( 'rsssl_every_week_hook' ); wp_clear_scheduled_hook( 'rsssl_every_five_minutes_hook' ); wp_clear_scheduled_hook( 'rsssl_every_three_hours' ); wp_clear_scheduled_hook( 'rsssl_ssl_process_hook' ); } /** * Multisite cron */ add_action('plugins_loaded', 'rsssl_multisite_schedule_cron', 15); function rsssl_multisite_schedule_cron() { if ( get_site_option('rsssl_ssl_activation_active') ) { if ( !wp_next_scheduled('rsssl_ssl_process_hook') ) { wp_schedule_event(time(), 'rsssl_one_minute', 'rsssl_ssl_process_hook'); } } else { wp_clear_scheduled_hook('rsssl_ssl_process_hook'); } add_action( 'rsssl_ssl_process_hook', array( RSSSL()->multisite, 'run_ssl_process' ) ); } PK�������!�O������security/security.phpnu�[��������<?php defined('ABSPATH') or die(); class REALLY_SIMPLE_SECURITY { private static $instance; public $firewall_manager; public $hardening; /** * Components array, so we can access singleton classes which are dynamically added, from anywhere. * @var */ public $components; private function __construct() { } public static function instance() { if (!isset(self::$instance) && !(self::$instance instanceof REALLY_SIMPLE_SECURITY)) { self::$instance = new REALLY_SIMPLE_SECURITY; self::$instance->includes(); if ( rsssl_admin_logged_in() ) { self::$instance->firewall_manager = new rsssl_firewall_manager(); self::$instance->hardening = new rsssl_hardening(); } } return self::$instance; } private function includes() { $path = rsssl_path.'security/'; require_once( $path . 'integrations.php' ); require_once( $path . 'hardening.php' ); require_once( $path . 'cron.php' ); /** * Load only on back-end */ if ( rsssl_admin_logged_in() ) { require_once( $path . 'functions.php' ); require_once( $path . 'deactivate-integration.php' ); require_once( $path . 'firewall-manager.php' ); require_once( $path . 'tests.php' ); require_once( $path . 'notices.php' ); require_once( $path . 'sync-settings.php' ); } } } function RSSSL_SECURITY() { return REALLY_SIMPLE_SECURITY::instance(); } add_action('plugins_loaded', 'RSSSL_SECURITY', 9);PK�������!�]vK��K��#��security/deactivate-integration.phpnu�[��������<?php defined('ABSPATH') or die(); /** * If a plugin is deactivated, add to deactivated list. * @param string $field_id * @param mixed $new_value * @param mixed $prev_value * @param string $type * * @return void */ function rsssl_handle_integration_deactivation($field_id, $new_value, $prev_value, $type){ if (!rsssl_user_can_manage()) { return; } if ($new_value !== $prev_value && $new_value === 0 ){ //check if this field id exists in the list of plugins global $rsssl_integrations_list; foreach ( $rsssl_integrations_list as $plugin => $plugin_data ) { if ( isset($plugin_data['has_deactivation']) && $plugin_data['has_deactivation'] && isset($plugin_data['option_id']) && $plugin_data['option_id'] === $field_id ) { //add to deactivated list $current_list = get_option('rsssl_deactivate_list', []); if ( !in_array($plugin, $current_list)) { $current_list[] = $plugin; update_option('rsssl_deactivate_list', $current_list, false); } } } } } add_action( "rsssl_after_save_field", "rsssl_handle_integration_deactivation", 10, 4 ); /** * Remove a plugin from the deactivation list if deactivation procedure was completed * @param string $plugin * * @return void */ function rsssl_remove_from_deactivation_list($plugin){ if (!rsssl_user_can_manage()) { return; } $deactivate_list = get_option('rsssl_deactivate_list', []); if ( in_array($plugin, $deactivate_list )) { $index = array_search($plugin, $deactivate_list); unset($deactivate_list[$index]); update_option('rsssl_deactivate_list', $deactivate_list, false ); } }PK�������!�6'��'����security/notices.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); /** * Convert htaccess rules to html friendly layout * * @param string $code * * @return string */ function rsssl_parse_htaccess_to_html( string $code): string { if ( strpos($code, "\n")===0 ) { $code = preg_replace('/\n/', '', $code, 1); } //split into linebreak separated array, so we can run esc_html on the result $code = preg_replace('/\n/', '--br--', $code, 1); $code = preg_replace('/<br>/', '--br--', $code, 1); $code_arr = explode('--br--', $code); $code_arr = array_map('esc_html', $code_arr); $code = implode('<br>', $code_arr); return '<br><code>' . $code . '</code><br>'; } function rsssl_general_security_notices( $notices ) { $code = rsssl_parse_htaccess_to_html( get_site_option('rsssl_htaccess_rules','') ); $uploads_code = rsssl_parse_htaccess_to_html( get_site_option('rsssl_uploads_htaccess_rules','') ); $notices['application-passwords'] = array( 'callback' => 'rsssl_wp_is_application_passwords_available', 'score' => 5, 'output' => array( 'true' => array( 'msg' => __("Disable application passwords.", "really-simple-ssl"), 'icon' => 'premium', 'url' => 'https://really-simple-ssl.com/definition/what-are-application-passwords/', 'dismissible' => true, 'highlight_field_id' => 'disable_application_passwords', ), ), ); $notices['htaccess_status'] = array( 'callback' => 'rsssl_htaccess_status', 'score' => 5, 'output' => array( 'not-writable' => array( 'title' => __(".htaccess not writable", "really-simple-ssl"), 'msg' => __("An option that requires the .htaccess file is enabled, but the file is not writable.", "really-simple-ssl").' '.__("Please add the following lines to your .htaccess, or set it to writable:", "really-simple-ssl").$code, 'icon' => 'warning', 'dismissible' => true, 'plusone' => true, 'url' => 'https://really-simple-ssl.com/manual/editing-htaccess/', ), 'not-exists' => array( 'title' => __(".htaccess does not exist", "really-simple-ssl"), 'msg' => __("An option that requires the .htaccess file is enabled, but the file does not exist.", "really-simple-ssl").' '.__("Please add the following lines to your .htaccess, or set it to writable:", "really-simple-ssl").$code, 'icon' => 'warning', 'dismissible' => true, 'plusone' => true, 'url' => 'https://really-simple-ssl.com/manual/editing-htaccess/', ), ), 'show_with_options' => [ 'disable_indexing', 'redirect' ] ); $notices['htaccess_status_uploads'] = array( 'callback' => 'rsssl_uploads_htaccess_status', 'score' => 5, 'output' => array( 'not-writable' => array( 'title' => __(".htaccess in uploads not writable", "really-simple-ssl"), 'msg' => __("An option that requires the .htaccess file in the uploads directory is enabled, but the file is not writable.", "really-simple-ssl").' '.__("Please add the following lines to your .htaccess, or set it to writable:", "really-simple-ssl").$uploads_code, 'icon' => 'warning', 'dismissible' => true, 'plusone' => true, 'url' => 'https://really-simple-ssl.com/manual/editing-htaccess/', ), ), 'show_with_options' => [ 'block_code_execution_uploads', ] ); $notices['block_display_is_login_enabled'] = array( 'condition' => ['NOT option_block_display_is_login'], 'callback' => '_true_', 'score' => 5, 'output' => array( 'true' => array( 'highlight_field_id' => 'block_display_is_login', 'msg' => __("It is currently possible to create an administrator user with the same login and display name.", "really-simple-ssl"), 'icon' => 'open', 'dismissible' => true, ), ), ); $notices['display_name_is_login_exists'] = array( 'condition' => ['rsssl_get_users_where_display_name_is_login'], 'callback' => '_true_', 'score' => 5, 'output' => array( 'true' => array( 'url' => 'https://really-simple-ssl.com/manual/login-and-display-names-should-be-different-for-wordpress/', 'msg' => __("We have detected administrator roles where the login and display names are the same.", "really-simple-ssl") . " <b>" . rsssl_list_users_where_display_name_is_login_name() . "</b>", 'icon' => 'open', 'dismissible' => true, ), ), ); $notices['debug_log'] = array( 'condition' => ['rsssl_debug_log_file_exists_in_default_location'], 'callback' => 'rsssl_is_debugging_enabled', 'score' => 5, 'output' => array( 'true' => array( 'highlight_field_id' => 'change_debug_log_location', 'title' => __("Debugging", "really-simple-ssl"), 'msg' => __("Your site logs information to a public debugging file.", "really-simple-ssl"), 'url' => 'https://really-simple-ssl.com/instructions/about-hardening-features/', 'icon' => 'premium', 'dismissible' => true, ), ), 'show_with_options' => [ 'change_debug_log_location', ], ); $notices['user_id_one'] = array( 'condition' => ['NOT option_disable_user_enumeration'], 'callback' => '_true_', 'score' => 5, 'output' => array( 'true' => array( 'msg' => __("Your site is vulnerable to user enumeration attacks.", "really-simple-ssl"), 'icon' => 'warning', 'title' => __('Prevent user enumeration','really-simple-ssl'), 'url' => 'https://really-simple-ssl.com/what-are-user-enumeration-attacks/', 'dismissible' => true, 'highlight_field_id' => 'disable_user_enumeration', ), ), 'show_with_options' => [ 'disable_user_enumeration', ], ); $notices['username_admin_exists'] = array( 'condition' => ['rsssl_has_admin_user'], 'callback' => '_true_', 'score' => 5, 'output' => array( 'true' => array( 'highlight_field_id' => 'rename_admin_user', 'title' => __("Username", "really-simple-ssl"), 'msg' => __("Your site registered a user with the name 'admin'.", "really-simple-ssl"), 'icon' => 'warning', 'dismissible' => true, ), ), 'show_with_options' => [ 'rename_admin_user', ], ); $notices['new_username_empty'] = array( 'condition' => ['rsssl_has_admin_user', 'option_rename_admin_user', 'NOT rsssl_new_username_valid'], 'callback' => '_true_', 'score' => 5, 'output' => array( 'true' => array( 'highlight_field_id' => 'rename_admin_user', 'title' => __("Username", "really-simple-ssl"), 'msg' => __("Rename admin user enabled: Please choose a new username of at least 3 characters, which is not in use yet.", "really-simple-ssl"), 'icon' => 'warning', 'dismissible' => true, ), ), 'show_with_options' => [ 'new_admin_user_login', ], ); $notices['code-execution-uploads-allowed'] = array( 'callback' => 'rsssl_code_execution_allowed', 'score' => 5, 'output' => array( 'true' => array( 'highlight_field_id' => 'block_code_execution_uploads', 'msg' => __("Code execution is allowed in the public 'Uploads' folder.", "really-simple-ssl"), 'icon' => 'open', 'dismissible' => true, ), ), ); $notices['db-prefix-notice'] = array( 'callback' => 'rsssl_is_default_wp_prefix', 'score' => 5, 'output' => array( 'false' => array( 'msg' => __("Your database prefix is renamed and randomized. Awesome!", "really-simple-ssl"), 'icon' => 'success', 'dismissible' => true, ), 'true' => array( 'msg' => __("Your database prefix is set to the default 'wp_'.", "really-simple-ssl"), 'icon' => 'premium', 'dismissible' => true, 'url' => 'https://really-simple-ssl.com/instructions/about-hardening-features/' ), ), ); $notices['vulnerabilities'] = array( 'condition' => ['NOT option_enable_vulnerability_scanner'], 'callback' => '_true_', 'score' => 5, 'output' => array( 'true' => array( 'msg' => __("Really Simple SSL has a new feature! Introducing Vulnerability Detection, enable it now.", "really-simple-ssl"), 'icon' => 'open', 'dismissible' => true, 'url' => 'https://really-simple-ssl.com/vulnerability-detection/', 'highlight_field_id' => 'enable_vulnerability_scanner', 'plusone' => true, ), ), ); // $notices['xmlrpc'] = array( // 'callback' => 'rsssl_xmlrpc_allowed', // 'score' => 10, // 'output' => array( // 'true' => array( // 'highlight_field_id' => 'xmlrpc', // 'msg' => __("XMLRPC is enabled on your site.", "really-simple-ssl"), // 'icon' => 'warning', // 'plusone' => true, // ), // ), // 'show_with_options' => [ // 'xmlrpc', // ], // ); $notices['file-editing'] = array( 'callback' => 'rsssl_file_editing_allowed', 'score' => 5, 'output' => array( 'true' => array( 'highlight_field_id' => 'disable_file_editing', 'msg' => __("The built-in file editors are accessible to others.", "really-simple-ssl"), // 'url' => 'https://wordpress.org/support/article/editing-wp-config-php/#disable-the-plugin-and-theme-editor', 'icon' => 'open', 'dismissible' => true, ), ), ); $notices['registration'] = array( 'callback' => 'rsssl_user_registration_allowed', 'score' => 5, 'output' => array( 'true' => array( 'highlight_field_id' => 'disable_anyone_can_register', 'msg' => __("Anyone can register an account on your site. Consider disabling this option in the WordPress general settings.", "really-simple-ssl"), 'icon' => 'open', 'plusone' => false, 'dismissible' => true, ), ), ); $notices['hide-wp-version'] = array( 'callback' => 'rsssl_src_contains_wp_version', 'score' => 5, 'output' => array( 'true' => array( 'highlight_field_id' => 'hide_wordpress_version', 'msg' => __("Your WordPress version is visible to others.", "really-simple-ssl"), 'icon' => 'open', 'dismissible' => true, ), ), ); // $notices['login-url-not-working'] = array( // 'callback' => 'NOT rsssl_new_login_url_working', // 'score' => 5, // 'output' => array( // 'true' => array( // 'msg' => __("Your new login URL does not seem to work. Still using /wp-admin and /wp-login.php.", "really-simple-ssl"), // 'url' => 'https://really-simple-ss.com/', // 'icon' => 'warning', // 'dismissible' => true, // ), // ), // ); return $notices; } add_filter('rsssl_notices', 'rsssl_general_security_notices'); PK�������!� ?SB��B����security/functions.phpnu�[��������<?php defined( 'ABSPATH' ) or die( ); /** * Back-end available only */ if ( !function_exists('rsssl_do_fix')) { /** * Complete a fix for an issue, either user triggered, or automatic * * @param $fix * * @return void */ function rsssl_do_fix( $fix ) { if ( ! rsssl_user_can_manage() ) { return; } if ( ! rsssl_has_fix( $fix ) && function_exists( $fix ) ) { $completed[] = $fix; $fix(); $completed = get_option( 'rsssl_completed_fixes', [] ); $completed[] = $fix; update_option( 'rsssl_completed_fixes', $completed ); } else if ( $fix && ! function_exists( $fix ) ) { } } } if ( !function_exists('rsssl_has_fix')) { /** * Check if this has been fixed already * * @param $fix * * @return bool */ function rsssl_has_fix( $fix ) { $completed = get_option( 'rsssl_completed_fixes', [] ); if ( ! in_array( $fix, $completed ) ) { return false; } return true; } } if ( !function_exists('rsssl_admin_url')) { /** * Get admin url, adjusted for multisite * @param string $path * @return string|null */ function rsssl_admin_url(string $path = ''): string { $url = is_multisite() ? network_admin_url('settings.php') : admin_url("options-general.php"); return $url.$path; } } if ( !function_exists('rsssl_maybe_clear_transients')) { /** * If the corresponding setting has been changed, clear the test cache and re-run it. * * @return void */ function rsssl_maybe_clear_transients( $field_id, $field_value, $prev_value, $field_type ) { if ( $field_id === 'mixed_content_fixer' && $field_value ) { delete_transient( 'rsssl_mixed_content_fixer_detected' ); RSSSL()->admin->mixed_content_fixer_detected(); } //expire in five minutes $headers = get_transient('rsssl_can_use_curl_headers_check'); set_transient('rsssl_can_use_curl_headers_check', $headers, 5 * MINUTE_IN_SECONDS); //no change if ( $field_value === $prev_value ) { return; } if ( $field_id === 'disable_http_methods' ) { delete_option( 'rsssl_http_methods_allowed' ); rsssl_http_methods_allowed(); } if ( $field_id === 'xmlrpc' ) { delete_transient( 'rsssl_xmlrpc_allowed' ); rsssl_xmlrpc_allowed(); } if ( $field_id === 'disable_indexing' ) { delete_transient( 'rsssl_directory_indexing_status' ); rsssl_directory_indexing_allowed(); } if ( $field_id === 'block_code_execution_uploads' ) { delete_transient( 'rsssl_code_execution_allowed_status' ); rsssl_code_execution_allowed(); } if ( $field_id === 'hide_wordpress_version' ) { delete_option( 'rsssl_wp_version_detected' ); rsssl_src_contains_wp_version(); } if ( $field_id === 'rename_admin_user' ) { delete_transient('rsssl_admin_user_count'); rsssl_has_admin_user(); } } add_action( "rsssl_after_save_field", 'rsssl_maybe_clear_transients', 100, 4 ); } if ( !function_exists('rsssl_remove_htaccess_security_edits') ) { /** * Clean up on deactivation * * @return void */ function rsssl_remove_htaccess_security_edits() { if ( ! rsssl_user_can_manage() ) { return; } if ( ! rsssl_uses_htaccess() ) { return; } $htaccess_file = RSSSL()->admin->htaccess_file(); if ( ! file_exists( $htaccess_file ) ) { return; } $start = "\n" . '#Begin Really Simple Security'; $end = '#End Really Simple Security' . "\n"; $pattern = '/'.$start.'(.*?)'.$end.'/is'; /** * htaccess in uploads dir */ $upload_dir = wp_get_upload_dir(); $htaccess_file_uploads = trailingslashit( $upload_dir['basedir']).'.htaccess'; $content_htaccess_uploads = file_exists($htaccess_file_uploads ) ? file_get_contents($htaccess_file_uploads) : ''; if (preg_match($pattern, $content_htaccess_uploads) && is_writable( $htaccess_file_uploads )) { $content_htaccess_uploads = preg_replace($pattern, "", $content_htaccess_uploads); file_put_contents( $htaccess_file_uploads, $content_htaccess_uploads ); } /** * htaccess in root dir */ $htaccess_file = RSSSL()->admin->htaccess_file(); $content_htaccess = file_get_contents($htaccess_file); //remove old style rules $pattern_1 = "/#\s?BEGIN\s?rlrssslReallySimpleSSL.*?#\s?END\s?rlrssslReallySimpleSSL/s"; $pattern_2 = "/#\s?BEGIN\s?Really Simple SSL Redirect.*?#\s?END\s?Really Simple SSL Redirect/s"; $content_htaccess = preg_replace([$pattern_1, $pattern_2], "", $content_htaccess); if (preg_match($pattern, $content_htaccess) && is_writable( $htaccess_file ) ) { $content_htaccess = preg_replace($pattern, "", $content_htaccess); file_put_contents( $htaccess_file, $content_htaccess ); } } } /** * Wrap the security headers */ if ( ! function_exists('rsssl_wrap_htaccess' ) ) { function rsssl_wrap_htaccess() { if ( !rsssl_user_can_manage() ) { return; } if ( ! rsssl_uses_htaccess() ) { return; } if ( rsssl_get_option('do_not_edit_htaccess') ) { return; } if ( !rsssl_is_logged_in_rest() && !RSSSL()->admin->is_settings_page() && current_filter() !== 'rocket_activation' && current_filter() !== 'rocket_deactivation' ) { return; } if ( get_site_option('rsssl_htaccess_error') ) { delete_site_option( 'rsssl_htaccess_error' ); delete_site_option( 'rsssl_htaccess_rules' ); } if ( get_site_option('rsssl_uploads_htaccess_error') ) { delete_site_option( 'rsssl_uploads_htaccess_error' ); delete_site_option( 'rsssl_uploads_htaccess_rules' ); } if ( get_option('rsssl_updating_htaccess') ) { return; } update_option('rsssl_updating_htaccess', true, false ); $start = '#Begin Really Simple Security'; $end = "\n" . '#End Really Simple Security' . "\n"; $pattern_content = '/'.$start.'(.*?)'.$end.'/is'; $pattern = '/'.$start.'.*?'.$end.'/is'; /** * htaccess in uploads dir */ $rules_uploads = apply_filters( 'rsssl_htaccess_security_rules_uploads', []); $upload_dir = wp_get_upload_dir(); $htaccess_file_uploads = trailingslashit( $upload_dir['basedir']).'.htaccess'; if ( ! file_exists( $htaccess_file_uploads ) && count($rules_uploads)>0 ) { if ( is_writable(trailingslashit( $upload_dir['basedir'])) ) { file_put_contents($htaccess_file_uploads, ''); } else { update_site_option( 'rsssl_uploads_htaccess_error', 'not-writable' ); $rules_uploads_result = implode( '', array_column( $rules_uploads, 'rules' ) ); update_site_option( 'rsssl_uploads_htaccess_rules', $rules_uploads_result ); } } if ( file_exists( $htaccess_file_uploads ) ) { $content_htaccess_uploads = file_exists( $htaccess_file_uploads ) ? file_get_contents( $htaccess_file_uploads ) : ''; preg_match( $pattern_content, $content_htaccess_uploads, $matches ); if ( ( ! empty( $matches[1] ) && empty( $rules_uploads ) ) || ! empty( $rules_uploads ) ) { $rules_uploads_result = ''; foreach ( $rules_uploads as $rule_uploads ) { //check if the rule exists outside RSSSL, but not within if ( strpos($content_htaccess_uploads, $rule_uploads['identifier'])!==false && !preg_match('/#Begin Really Simple Security.*?('.preg_quote($rule_uploads['identifier'],'/').').*?#End Really Simple Security/is', $content_htaccess_uploads, $matches) ) { continue; } $rules_uploads_result .= $rule_uploads['rules']; } //We differ between missing rules, and a complete set. As we don't want the replace all rules with just the missing set. //should replace if rules is not empty, OR if rules is empty and htaccess is not. $htaccess_has_rsssl_rules = preg_match( '/#Begin Really Simple Security(.*?)#End Really Simple Security/is', $content_htaccess_uploads, $matches); if ( ! empty( $rules_uploads_result ) || $htaccess_has_rsssl_rules ) { if ( ! file_exists( $htaccess_file_uploads ) ) { file_put_contents( $htaccess_file_uploads, '' ); } $new_rules = empty($rules_uploads_result) ? '' : $start . $rules_uploads_result . $end; if ( ! is_writable( $htaccess_file_uploads ) ) { update_site_option( 'rsssl_uploads_htaccess_error', 'not-writable' ); update_site_option( 'rsssl_uploads_htaccess_rules', $rules_uploads_result ); } else { delete_site_option( 'rsssl_uploads_htaccess_error' ); delete_site_option( 'rsssl_uploads_htaccess_rules' ); //remove current rules $content_htaccess_uploads = preg_replace( $pattern, '', $content_htaccess_uploads ); //add rules as new block $new_htaccess = $content_htaccess_uploads . "\n" . $new_rules; #clean up if (strpos($new_htaccess, "\n" ."\n" . "\n" )!==false) { $new_htaccess = str_replace("\n" . "\n" . "\n", "\n" ."\n", $new_htaccess); } file_put_contents( $htaccess_file_uploads, $new_htaccess ); } } } } /** * htaccess in root dir */ $rules = apply_filters( 'rsssl_htaccess_security_rules', [] ); $htaccess_file = RSSSL()->admin->htaccess_file(); if ( !file_exists( $htaccess_file ) && count($rules)>0 ) { update_site_option('rsssl_htaccess_error', 'not-exists'); $rules_result = implode('',array_column($rules, 'rules')); update_site_option('rsssl_htaccess_rules', $rules_result); } if ( file_exists( $htaccess_file ) ) { $content_htaccess = file_get_contents( $htaccess_file ); //remove old style rules //we do this beforehand, so we don't accidentally assume redirects are already in place $content_htaccess = preg_replace( [ "/#\s?BEGIN\s?rlrssslReallySimpleSSL.*?#\s?END\s?rlrssslReallySimpleSSL/s", "/#\s?BEGIN\s?Really Simple SSL Redirect.*?#\s?END\s?Really Simple SSL Redirect/s" ], "", $content_htaccess); preg_match( $pattern_content, $content_htaccess, $matches ); if ( ( ! empty( $matches[1] ) && empty( $rules ) ) || ! empty( $rules ) ) { $rules_result = ''; foreach ( $rules as $rule ) { //check if the rule exists outside RSSSL, but not within if ( strpos($content_htaccess, $rule['identifier'])!==false && !preg_match('/#Begin Really Simple Security.*?('.preg_quote($rule['identifier'],'/').').*?#End Really Simple Security/is', $content_htaccess, $matches) ) { continue; } $rules_result .= $rule['rules']; } //should replace if rules is not empty, OR if rules is empty and htaccess is not. $htaccess_has_rsssl_rules = preg_match( '/#Begin Really Simple Security(.*?)#End Really Simple Security/is', $content_htaccess, $matches ); if ( ! empty( $rules_result ) || $htaccess_has_rsssl_rules ) { if ( ! is_writable( $htaccess_file ) ) { update_site_option( 'rsssl_htaccess_error', 'not-writable' ); update_site_option( 'rsssl_htaccess_rules', get_site_option( 'rsssl_htaccess_rules' ) . $rules_result ); } else { delete_site_option( 'rsssl_htaccess_error' ); delete_site_option( 'rsssl_htaccess_rules' ); $new_rules = empty($rules_result) ? '' : $start . $rules_result . $end; //remove current rules $content_htaccess = preg_replace( $pattern, '', $content_htaccess ); //add rules as new block if ( strpos($content_htaccess, '# BEGIN WordPress')!==false ) { $new_htaccess = str_replace('# BEGIN WordPress', "\n" . $new_rules.'# BEGIN WordPress', $content_htaccess); } else { $new_htaccess = "\n" . $new_rules . $content_htaccess; } #clean up if (strpos($new_htaccess, "\n" ."\n" . "\n" )!==false) { $new_htaccess = str_replace("\n" . "\n" . "\n", "\n" ."\n", $new_htaccess); } file_put_contents( $htaccess_file, $new_htaccess ); } } } } delete_option('rsssl_updating_htaccess'); } add_action('admin_init', 'rsssl_wrap_htaccess' ); add_action('rsssl_after_saved_fields', 'rsssl_wrap_htaccess', 30); } /** * Store warning blocks for later use in the mailer * * @param array $changed_fields * * @return void */ function rsssl_gather_warning_blocks_for_mail( array $changed_fields ){ if (!rsssl_user_can_manage() ) { return; } if ( !rsssl_get_option('send_notifications_email') ) { return; } $fields = array_filter($changed_fields, static function($field) { // Check if email_condition exists and call the function, else assume true if ( !isset($field['email']['condition']) ) { $email_condition_result = true; } else if (is_array($field['email']['condition'])) { //rsssl option check $fieldname = array_key_first($field['email']['condition']); $value = $field['email']['condition'][$fieldname]; $email_condition_result = rsssl_get_option($fieldname) === $value; } else { //function check $function = $field['email']['condition']; $email_condition_result = function_exists($function) && $function(); } return isset($field['email']['message']) && $field['value'] && $email_condition_result; }); if ( count($fields)===0 ) { return; } $current_fields = get_option('rsssl_email_warning_fields', []); //if it's empty, we start counting time. 30 mins later we send a mail. update_option('rsssl_email_warning_fields_saved', time(), false ); $current_ids = array_column($current_fields, 'id'); foreach ($fields as $field){ if ( !in_array( $field['id'], $current_ids, true ) ) { $current_fields[] = $field; } } update_option('rsssl_email_warning_fields', $current_fields, false); } add_action('rsssl_after_saved_fields', 'rsssl_gather_warning_blocks_for_mail', 40); /** * Check if server uses .htaccess * @return bool */ function rsssl_uses_htaccess() { //when using WP CLI, the get_server check does not work, so we assume .htaccess is being used //and rely on the file exists check to catch if not. if ( defined( 'WP_CLI' ) && WP_CLI ) { return true; } return rsssl_get_server() === 'apache' || rsssl_get_server() === 'litespeed'; } /** * Get htaccess status * @return string | bool */ function rsssl_htaccess_status(){ if ( empty(get_site_option('rsssl_htaccess_rules','')) ) { return false; } return get_site_option('rsssl_htaccess_error'); } /** * Get htaccess status * @return string | bool */ function rsssl_uploads_htaccess_status(){ if ( empty(get_site_option('rsssl_uploads_htaccess_rules','')) ) { return false; } return get_site_option('rsssl_uploads_htaccess_error'); } /** * @return string|null * Get the wp-config.php path */ function rsssl_find_wp_config_path() { if ( !rsssl_user_can_manage() ) { return null; } //limit nr of iterations to 5 $i = 0; $dir = __DIR__; do { $i++; if (file_exists($dir . "/wp-config.php")) { return $dir . "/wp-config.php"; } } while (($dir = realpath("$dir/..")) && ($i < 10)); return null; } /** * Returns the server type of the plugin user. * * @return string|bool server type the user is using of false if undetectable. */ function rsssl_get_server() { //Allows to override server authentication for testing or other reasons. if ( defined( 'RSSSL_SERVER_OVERRIDE' ) ) { return RSSSL_SERVER_OVERRIDE; } $server_raw = strtolower( htmlspecialchars( $_SERVER['SERVER_SOFTWARE'] ) ); //figure out what server they're using if ( strpos( $server_raw, 'apache' ) !== false ) { return 'apache'; } elseif ( strpos( $server_raw, 'nginx' ) !== false ) { return 'nginx'; } elseif ( strpos( $server_raw, 'litespeed' ) !== false ) { return 'litespeed'; } else { //unsupported server return false; } } /** * @return string * Generate a random prefix */ function rsssl_generate_random_string($length) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $randomString = ''; for ( $i = 0; $i < $length; $i++ ) { $index = rand(0, strlen($characters) - 1); $randomString .= $characters[$index]; } return $randomString; } /** * @return string * * Get users as string to display */ function rsssl_list_users_where_display_name_is_login_name() { if ( !rsssl_user_can_manage() ) { return ''; } $users = rsssl_get_users_where_display_name_is_login( true ); if ( is_array( $users ) ) { $ext = count($users)>=10 ? '...' : ''; $users = array_slice($users, 0, 10); return implode( ', ', $users ).$ext; } return ''; } /** * @return bool|void * * Check if user e-mail is verified */ function rsssl_is_email_verified() { if ( ! rsssl_user_can_manage() ) { return false; } if ( get_option('rsssl_email_verification_status') == 'completed' ) { // completed return true; } if ( get_option('rsssl_email_verification_status') == 'started' ) { // started return false; } if ( get_option('rsssl_email_verification_status') == 'email_changed' ) { // e-mail changed, has to re-verify return false; } return false; } function rsssl_remove_prefix_from_version($version) { return preg_replace('/^[^\d]*(?=\d)/', '', $version); } function rsssl_version_compare($version, $compare_to, $operator = null) { $version = rsssl_remove_prefix_from_version($version); $compare_to = rsssl_remove_prefix_from_version($compare_to); return version_compare($version, $compare_to, $operator); }PK�������!�l ��� �����security/index.phpnu�[��������<?php // You don't belong here. PK�������!�ZH0��0����security/tests.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); /** * Check if XML-RPC requests are allowed on this site * POST a request, if the request returns a 200 response code the request is allowed */ function rsssl_xmlrpc_allowed() { $allowed = get_transient( 'rsssl_xmlrpc_allowed' ); if ( !$allowed ) { $allowed = 'allowed'; if ( function_exists( 'curl_init' ) ) { //set a default, in case of time out set_transient( 'rsssl_xmlrpc_allowed', 'no-response', DAY_IN_SECONDS ); $url = site_url() . '/xmlrpc.php'; $ch = curl_init($url); // XML-RPC listMethods call // Valid XML-RPC request $xmlstring = '<?xml version="1.0" encoding="utf-8"?> <methodCall> <methodName>system.listMethods</methodName> <params></params> </methodCall>'; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded')); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Post string curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlstring ); curl_setopt($ch, CURLOPT_TIMEOUT, 3); //timeout in seconds curl_exec($ch); $response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($response_code === 200) { $allowed = 'allowed'; } else { $allowed = 'not-allowed'; } } set_transient( 'rsssl_xmlrpc_allowed', $allowed, DAY_IN_SECONDS ); } return $allowed === 'allowed'; } /** * @return bool * Test if HTTP methods are allowed */ function rsssl_http_methods_allowed() { if ( ! rsssl_user_can_manage() ) { return false; } $methods = [ 'GET', 'POST', 'PUT', 'DELETE', 'HEAD', 'OPTIONS', 'CONNECT', 'TRACE', 'TRACK', 'PATCH', 'COPY', 'LINK', 'UNLINK', 'PURGE', 'LOCK', 'UNLOCK', 'PROPFIND', 'VIEW', ]; $tested = get_option( 'rsssl_http_methods_allowed' ); #if the option was reset, start couting from 0 if ( !$tested ){ delete_option('rsssl_last_tested_http_method'); } $last_tested = get_option('rsssl_last_tested_http_method', -1); $nr_of_tests_on_batch = 4; if ( !$tested || ( $last_tested < count($methods)-1 ) ) { $tested = get_option( 'rsssl_http_methods_allowed', [] ); $next_test = $last_tested+1; $test_methods = array_slice($methods, $next_test, $nr_of_tests_on_batch, true); update_option('rsssl_last_tested_http_method', $last_tested+$nr_of_tests_on_batch, false); foreach ( $test_methods as $method ) { #set a default, in case a timeout occurs $tested['not-allowed'][] = $method; update_option( 'rsssl_http_methods_allowed', $tested, false ); if ( function_exists( 'curl_init' ) ) { $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, site_url() ); curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, $method ); curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true ); curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_HEADER, true ); curl_setopt( $ch, CURLOPT_NOBODY, true ); curl_setopt( $ch, CURLOPT_VERBOSE, true ); curl_setopt( $ch, CURLOPT_TIMEOUT, 3 ); //timeout in seconds curl_exec( $ch ); #if there are no errors, the request is allowed if ( ! curl_errno( $ch ) ) { //remove the not allowed entry $not_allowed_index = array_search( $method, $tested['not-allowed'], true ); if ( $not_allowed_index !== false ) { unset( $tested['not-allowed'][ $not_allowed_index ] ); } $tested['allowed'][] = $method; } curl_close( $ch ); update_option( 'rsssl_http_methods_allowed', $tested, false ); } } } if ( !empty($tested['allowed'])) { return true; } return false; } /** * @return bool * * Check if DB has default wp_ prefix */ function rsssl_is_default_wp_prefix() { global $wpdb; if ( $wpdb->prefix === 'wp_' ) { return true; } return false; } function rsssl_xmlrpc_enabled(){ return apply_filters('xmlrpc_enabled', true ); } /** * @return bool * * Check if user admin exists */ function rsssl_has_admin_user() { if ( !rsssl_user_can_manage() ) { return false; } //transient is more persistent then wp cache set $count = get_transient('rsssl_admin_user_count'); //get from cache, but not on settings page if ( $count === false || RSSSL()->admin->is_settings_page() ){ //use wp_cache_get to prevent duplicate queries in one pageload $count = wp_cache_get('rsssl_admin_user_count', 'really-simple-ssl'); if ( $count === false ) { global $wpdb; $count = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->base_prefix}users WHERE user_login = 'admin'" ); wp_cache_set('rsssl_admin_user_count', $count, 'really-simple-ssl', HOUR_IN_SECONDS ); } set_transient('rsssl_admin_user_count', $count, HOUR_IN_SECONDS); } return $count > 0; } /** * Check if username is valid for use * @return bool */ function rsssl_new_username_valid(): bool { $new_user_login = trim(sanitize_user(rsssl_get_option('new_admin_user_login'))); if ( $new_user_login === 'admin' ) { return false; } $user_exists = get_user_by('login', $new_user_login); if ( $user_exists ) { return false; } return is_string($new_user_login) && strlen($new_user_login)>2; } /** * For backward compatibility we need to wrap this function, as older versions do not have this function (<5.6) * @return bool */ function rsssl_wp_is_application_passwords_available(){ if ( function_exists('wp_is_application_passwords_available') ) { return wp_is_application_passwords_available(); } return false; } /** * Get users where display name is the same as login * * @param bool $return_users * * @return bool | array * */ function rsssl_get_users_where_display_name_is_login( $return_users=false ) { $found_users = []; $users = get_transient('rsssl_admin_users'); if ( !$users ){ $args = array( 'role' => 'administrator', ); $users = get_users( $args ); set_transient('rsssl_admin_users', $users, HOUR_IN_SECONDS); } foreach ( $users as $user ) { if ($user->display_name === $user->user_login) { $found_users[] = $user->user_login; } } // Maybe return users in integration if ( $return_users ) { return $found_users; } if ( count($found_users) > 0 ) { return true; } return false; } /** * Check if debugging in WordPress is enabled * * @return bool */ function rsssl_is_debugging_enabled() { return ( defined('WP_DEBUG') && WP_DEBUG && defined('WP_DEBUG_LOG') && WP_DEBUG_LOG ); } function rsssl_debug_log_value_is_default(){ $value = rsssl_get_debug_log_value(); return (string) $value === 'true'; } /** * Get value of debug_log constant * Please note that for a value 'true', you should check for the string value === 'true' * @return bool|string */ function rsssl_get_debug_log_value(){ if ( !defined('WP_DEBUG_LOG')) { return false; } $wpconfig_path = rsssl_find_wp_config_path(); if ( !$wpconfig_path ) { return false; } $wpconfig = file_get_contents( $wpconfig_path ); // Get WP_DEBUG_LOG declaration $regex = "/^\s*define\([ ]{0,2}[\'|\"]WP_DEBUG_LOG[\'|\"][ ]{0,2},[ ]{0,2}(.*)[ ]{0,2}\);/m"; preg_match( $regex, $wpconfig, $matches ); if ($matches && isset($matches[1]) ){ return trim($matches[1]); } return false; } /** * Check if the debug log file exists in the default location, and if it contains our bogus info * @return bool * */ function rsssl_debug_log_file_exists_in_default_location(){ $default_file = trailingslashit(WP_CONTENT_DIR).'debug.log'; if ( !file_exists($default_file) ) { return false; } //limit max length of string to 500 $content = file_get_contents($default_file, false, null, 0, 500 ); return trim( $content ) !== 'Access denied'; } /** * @return string * Test if code execution is allowed in /uploads folder */ function rsssl_code_execution_allowed() { $code_execution_allowed = get_transient('rsssl_code_execution_allowed_status'); if ( !$code_execution_allowed ) { $upload_dir = wp_get_upload_dir(); //set a default, in case of timeouts $code_execution_allowed = 'not-allowed'; set_transient( 'rsssl_code_execution_allowed_status', $code_execution_allowed, DAY_IN_SECONDS ); $test_file = $upload_dir['basedir'] . '/' . 'code-execution.php'; if ( is_writable($upload_dir['basedir'] ) && ! file_exists( $test_file ) ) { try { copy( rsssl_path . 'security/tests/code-execution.php', $test_file ); } catch (Exception $e) { $code_execution_allowed = 'not-allowed'; } } if ( file_exists( $test_file ) ) { $uploads = wp_upload_dir(); $upload_url = trailingslashit($uploads['baseurl']).'code-execution.php'; $response = wp_remote_get($upload_url); if ( !is_wp_error($response) ) { if ( is_array( $response ) ) { $status = wp_remote_retrieve_response_code( $response ); $web_source = wp_remote_retrieve_body( $response ); } if ( $status != 200 ) { //Could not connect to website $code_execution_allowed = 'not-allowed'; } elseif ( strpos( $web_source, "RSSSL CODE EXECUTION MARKER" ) === false ) { //Mixed content fixer marker not found in the websource $code_execution_allowed = 'not-allowed'; } else { $code_execution_allowed = 'allowed'; } } else { $code_execution_allowed = 'not-allowed'; } } //clean up file again if ( file_exists($test_file) ) { unlink($test_file); } set_transient('rsssl_code_execution_allowed_status', $code_execution_allowed, DAY_IN_SECONDS); } return $code_execution_allowed === 'allowed'; } /** * Test if directory indexing is allowed * We assume allowed if test is not possible due to restrictions. Only an explicity 403 on the response results in "forbidden". * On non htaccess servers, the default is non indexing, so we return forbidden. * * @return bool */ function rsssl_directory_indexing_allowed() { $status = get_transient('rsssl_directory_indexing_status'); if ( !$status ) { if ( !rsssl_uses_htaccess() ) { $status = 'forbidden'; } else { $status = 'allowed'; //set a default, in case of timeouts set_transient( 'rsssl_directory_indexing_status', $status, DAY_IN_SECONDS ); try { $test_folder = 'indexing-test'; $test_dir = trailingslashit(ABSPATH) . $test_folder; if ( ! is_dir( $test_dir ) ) { mkdir( $test_dir, 0755 ); } $response = wp_remote_get(trailingslashit( site_url($test_folder) ) ); if ( is_dir( $test_dir ) ) { rmdir( $test_dir ); } // WP_Error doesn't contain response code, return false if ( !is_wp_error( $response ) ) { $response_code = $response['response']['code']; if ( $response_code === 403 ) { $status = 'forbidden'; } } } catch( Exception $e ) { } } set_transient('rsssl_directory_indexing_status', $status, DAY_IN_SECONDS ); } return $status !== 'forbidden'; } /** * Check if file editing is allowed * @return bool */ function rsssl_file_editing_allowed() { if ( function_exists('wp_is_block_theme') && wp_is_block_theme() ) { return false; } return !defined('DISALLOW_FILE_EDIT' ) || !DISALLOW_FILE_EDIT; } /** * Check if user registration is allowed * @return bool */ function rsssl_user_registration_allowed() { return get_option( 'users_can_register' ); } /** * Check if page source contains WordPress version information * @return bool */ function rsssl_src_contains_wp_version() { $result = get_option('rsssl_wp_version_detected' ); if ( $result===false ) { $result = 'no-response'; update_option( 'rsssl_wp_version_detected', 'no-response', false ); try { $wp_version = get_bloginfo( 'version' ); $web_source = ""; $response = wp_remote_get( home_url() ); if ( ! is_wp_error( $response ) ) { if ( is_array( $response ) ) { $status = wp_remote_retrieve_response_code( $response ); $web_source = wp_remote_retrieve_body( $response ); } if ( $status != 200 ) { $result = 'no-response'; } elseif ( strpos( $web_source, 'ver='.$wp_version ) === false ) { $result = 'not-found'; } else { $result = 'found'; } } update_option( 'rsssl_wp_version_detected', $result, false ); } catch(Exception $e) { update_option( 'rsssl_wp_version_detected', 'no-response', false ); } } return $result==='found'; }PK�������!�.R��R��'��security/wordpress/user-enumeration.phpnu�[��������<?php defined('ABSPATH') or die(); /** * Prevent User Enumeration * @return void */ function rsssl_check_user_enumeration() { if ( ! is_user_logged_in() && isset( $_REQUEST['author'] ) ) { if ( preg_match( '/\\d/', $_REQUEST['author'] ) > 0 ) { wp_die( sprintf(__( 'forbidden - number in author name not allowed = %s', 'really-simple-ssl' ), esc_html( $_REQUEST['author'] ) ) ); } } } add_action('init', 'rsssl_check_user_enumeration'); /** * @return bool * Remove author from Yoast sitemap */ function rsssl_remove_author_from_yoast_sitemap( $users ) { return false; } add_filter('wpseo_sitemap_exclude_author', 'rsssl_remove_author_from_yoast_sitemap', 10, 1 ); /** * Prevent WP JSON API User Enumeration * Do not disable in when logged in, preventing issues in the Gutenberg Editor */ if ( !is_user_logged_in() || !current_user_can('edit_posts') ) { add_filter( 'rest_endpoints', function ( $endpoints ) { if ( isset( $endpoints['/wp/v2/users'] ) ) { unset( $endpoints['/wp/v2/users'] ); } if ( isset( $endpoints['/wp/v2/users/(?P[\d]+)'] ) ) { unset( $endpoints['/wp/v2/users/(?P[\d]+)'] ); } return $endpoints; } ); } //prevent xml site map user enumeration add_filter( 'wp_sitemaps_add_provider', function( $provider, $name ) { if ( 'users' === $name ) { return false; } return $provider; }, 10, 2 );PK�������!�.9+����#��security/wordpress/file-editing.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); /** * @return void * * Disable file editing */ function rsssl_disable_file_editing() { if ( ! defined('DISALLOW_FILE_EDIT' ) ) { define('DISALLOW_FILE_EDIT', true ); } } add_action("init", "rsssl_disable_file_editing"); /** * Username 'admin' changed notice * @return array */ function rsssl_disable_file_editing_notice( $notices ) { $notices['disallow_file_edit_false'] = array( 'condition' => ['rsssl_file_editing_defined_but_disabled'], 'callback' => '_true_', 'score' => 5, 'output' => array( 'true' => array( 'msg' => __("The DISALLOW_FILE_EDIT constant is defined and set to false. You can remove it from your wp-config.php.", "really-simple-ssl"), 'icon' => 'open', 'dismissible' => true, 'url' => 'https://really-simple-ssl.com/disallow_file_edit-defined-set-to-false' ), ), ); return $notices; } add_filter('rsssl_notices', 'rsssl_disable_file_editing_notice'); /** * Check if the constant is defined, AND set to false. In that case the plugin cannot override it anymore * @return bool */ function rsssl_file_editing_defined_but_disabled(){ return defined( 'DISALLOW_FILE_EDIT' ) && ! DISALLOW_FILE_EDIT; }PK�������!�6 �� ��&��security/wordpress/hide-wp-version.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); if ( ! class_exists( 'rsssl_hide_wp_version' ) ) { class rsssl_hide_wp_version { private static $_this; public $new_version = false; function __construct() { if ( isset( self::$_this ) ) { wp_die( "you cannot create a second instance of a singleton class" ); } self::$_this = $this; add_action( 'init', array($this, 'remove_wp_version') ); add_filter( 'rsssl_fixer_output', array( $this, 'replace_wp_version') ); } static function this() { return self::$_this; } /** * Remove WordPress version info from page source * * @return void */ public function remove_wp_version() { // remove <meta name="generator" content="WordPress VERSION" /> add_filter( 'the_generator', function () { return ''; } ); // remove WP ?ver=5.X.X from css/js add_filter( 'style_loader_src', array( $this, 'remove_css_js_version' ), 9999 ); add_filter( 'script_loader_src', array ($this, 'remove_css_js_version'), 9999 ); remove_action( 'wp_head', 'wp_generator' ); // remove wordpress version remove_action( 'wp_head', 'index_rel_link' ); // remove link to index page remove_action( 'wp_head', 'wlwmanifest_link' ); // remove wlwmanifest.xml (needed to support windows live writer) remove_action( 'wp_head', 'wp_shortlink_wp_head', 10 ); // Remove shortlink } /** * Generate a random version number * * @return string */ public function generate_rand_version() { if ( !$this->new_version) { $wp_version = get_bloginfo( 'version' ); $token = get_option( 'rsssl_wp_version_token' ); if ( ! $token ) { $token = str_shuffle( time() ); update_option( 'rsssl_wp_version_token', $token ); } $this->new_version = hash( 'md5', $token ); } return $this->new_version; } /** * @param string $html * * @return string * */ public function replace_wp_version( $html ) { $wp_version = get_bloginfo( 'version' ); $new_version = $this->generate_rand_version(); return str_replace( '?ver=' . $wp_version, '?ver=' . $new_version, $html ); } /** * @param $src * * @return mixed|string * Remove WordPress version from css and js strings */ public function remove_css_js_version( $src ) { if ( empty($src) ) { return $src; } if ( strpos( $src, '?ver=' ) && strpos( $src, 'wp-includes' ) ) { $wp_version = get_bloginfo( 'version' ); $new_version = $this->generate_rand_version(); $src = str_replace( '?ver=' . $wp_version, '?ver=' . $new_version, $src ); } return $src; } } } RSSSL_SECURITY()->components['hide-wp-version'] = new rsssl_hide_wp_version();PK�������!�6ϭ����&��security/wordpress/vulnerabilities.phpnu�[��������<?php /** @noinspection PhpComposerExtensionStubsInspection */ use security\wordpress\vulnerabilities\Rsssl_File_Storage; defined('ABSPATH') or die(); //including the file storage class require_once(rsssl_path . 'security/wordpress/vulnerabilities/class-rsssl-file-storage.php'); /** * @package Really Simple SSL * @subpackage RSSSL_VULNERABILITIES */ if (!class_exists("rsssl_vulnerabilities")) { /** * * Class rsssl_vulnerabilities * Checks for vulnerabilities in the core, plugins and themes. * * @property $notices * @author Marcel Santing * this class handles import of vulnerabilities, notifying and informing the user. * */ class rsssl_vulnerabilities { const RSSSL_SECURITY_API = 'https://downloads.really-simple-security.com/rsssl/vulnerabilities/V1/'; public $workable_plugins = []; /** * interval to download new jsons */ public $interval = 12 * HOUR_IN_SECONDS; public $update_count = 0; protected $risk_naming = []; /** * @var array|int[] */ public $risk_levels = [ 'l' => 1, 'm' => 2, 'h' => 3, 'c' => 4, ]; public $jsons_files_updated = false; public function __construct() { $this->risk_naming = [ 'l' => __('low-risk', 'really-simple-ssl'), 'm' => __('medium-risk', 'really-simple-ssl'), 'h' => __('high-risk', 'really-simple-ssl'), 'c' => __('critical', 'really-simple-ssl'), ]; $this->init(); add_filter('rsssl_vulnerability_data', array($this, 'get_stats')); //now we add the action to the cron. add_filter('rsssl_every_three_hours_cron', array($this, 'run_cron')); add_filter('rsssl_notices', [$this, 'show_help_notices'], 10, 1); add_action( 'rsssl_after_save_field', array( $this, 'maybe_delete_local_files' ), 10, 4 ); } // /** // * @param $field_id // * @param $field_value // * @param $prev_value // * @param $field_type // * // * @return void // * // * // */ // public function maybe_enable_vulnerability_scanner( $field_id, $field_value, $prev_value, $field_type ) { // if ( $field_id==='enable_vulnerability_scanner' && $field_value !== $prev_value && rsssl_user_can_manage() ) { // if ( $field_value !== false ) { // // Already enabled // rsssl_update_option('enable_vulnerability_scanner', 1); // } // } // } /** * Deletes local files if the vulnerability scanner is disabled * * @param $field_id * @param $field_value * @param $prev_value * @param $field_type * * @return void */ public static function maybe_delete_local_files($field_id, $field_value, $prev_value, $field_type): void { if ( $field_id==='enable_vulnerability_scanner' && $field_value !== $prev_value && rsssl_user_can_manage() ) { if ( $field_value == false ) { // Already disabled require_once(rsssl_path . 'security/wordpress/vulnerabilities/class-rsssl-file-storage.php'); \security\wordpress\vulnerabilities\Rsssl_File_Storage::DeleteAll(); } } } public function riskNaming($risk = null) { if (is_null($risk)) { return $this->risk_naming; } return $this->risk_naming[$risk]; } /* Public Section 1: Class Build-up initialization and instancing */ public function run_cron(): void { $this->check_files(); $this->cache_installed_plugins(true); if ( $this->jsons_files_updated ) { if ($this->should_send_mail()) { $this->send_vulnerability_mail(); } $this->check_notice_reset(); } } /** * Check if dismissed notices have to be reset * @return void */ private function check_notice_reset(): void { $this->cache_installed_plugins(); $clear_admin_notices_cache = false; foreach ( $this->risk_levels as $level => $int_level ) { if ( $this->should_reset_notification($level) ) { delete_option("rsssl_" . 'risk_level_' . $level . "_dismissed"); $clear_admin_notices_cache = true; } } if ( $clear_admin_notices_cache ) { RSSSL()->admin->clear_admin_notices_cache(); } } /** * Allow users to manually force a re-check, e.g. in case of manually updating plugins * @return void */ public function force_reload_files(): void { if ( ! rsssl_admin_logged_in() ) { return; } \security\wordpress\vulnerabilities\Rsssl_File_Storage::DeleteOldFiles(); if ( isset($_GET['rsssl_check_vulnerabilities']) || get_option('rsssl_reload_vulnerability_files') ) { delete_option('rsssl_reload_vulnerability_files'); $this->reload_files_on_update(); update_option('rsssl_clear_vulnerability_notices', true, false); set_transient('rsssl_delay_clear', true, 1 * MINUTE_IN_SECONDS ); } if ( get_option('rsssl_clear_vulnerability_notices') && !get_transient('rsssl_delay_clear')) { RSSSL()->admin->clear_admin_notices_cache(); delete_option('rsssl_clear_vulnerability_notices'); } } /** * Checks the files on age and downloads if needed. * @return void */ public function reload_files_on_update(): void { if ( ! rsssl_admin_logged_in() ) { return; } //if the manifest is not older than 4 hours, we don't download it again. if ( $this->get_file_stored_info(false, true) < time() - 14400) { $this->download_manifest(); } $this->download_plugin_vulnerabilities(); $this->download_core_vulnerabilities(); $this->check_notice_reset(); } public function init(): void { if ( ! rsssl_admin_logged_in() ) { return; } //we check the rsssl options if the enable_feedback_in_plugin is set to true if ( rsssl_get_option('enable_feedback_in_plugin') ) { // we enable the feedback in the plugin $this->enable_feedback_in_plugin(); $this->enable_feedback_in_theme(); } //we check if upgrader_process_complete is called, so we can reload the files. add_action('upgrader_process_complete', array($this, 'reload_files_on_update'), 10, 2); add_action('_core_updated_successfully', array($this, 'prepare_reloading_of_files'), 10, 2); //After activation, we need to reload the files. add_action( 'activate_plugin', array($this, 'reload_files_on_update'), 10, 2); //we can also force it add_action( 'admin_init', array($this, 'force_reload_files')); //same goes for themes. add_action('after_switch_theme', array($this, 'reload_files_on_update'), 10, 2); add_action('current_screen', array($this, 'show_inline_code')); } /** * Directly hooking into the core upgrader hook doesn't work, so is too early. * To force this, we save an option we can check later * * @return void */ public function prepare_reloading_of_files(): void { update_option("rsssl_reload_vulnerability_files", true, false); } /** * Function used for first run of the plugin. * * @return array */ public static function firstRun(): array { if ( ! rsssl_user_can_manage() ) { return []; } $self = new self(); $self->check_files(); $self->cache_installed_plugins(true); return [ 'request_success' => true, 'data' => $self->workable_plugins ]; } /** * Get site health notice for vulnerabilities * @return array */ public function get_site_health_notice(): array { if (!rsssl_admin_logged_in()){ return []; } $this->cache_installed_plugins(); $risks = $this->count_risk_levels(); if (count($risks) === 0) { return array( 'label' => __( 'No known vulnerabilities detected', 'really-simple-ssl' ), 'status' => 'good', 'badge' => array( 'label' => __('Security'), 'color' => 'blue', ), 'description' => sprintf( '<p>%s</p>', __( 'No known vulnerabilities detected.', 'really-simple-ssl' ) ), 'actions' => '', 'test' => 'health_test', ); } $total = 0; foreach ($this->risk_levels as $risk_level => $value) { $total += $risks[ $risk_level ] ?? 0; } return array( 'label' => __( 'Vulnerabilities detected','really-simple-ssl' ), 'status' => 'critical', 'badge' => array( 'label' => __( 'Security' ), 'color' => 'blue', ), 'description' => sprintf( '<p>%s</p>', sprintf(_n( '%s vulnerability has been detected.', '%s vulnerabilities have been detected.', $total, 'really-simple-ssl' ), number_format_i18n( $total )) . ' '. __( 'Please check the vulnerabilities overview for more information and take appropriate action.' ,'really-simple-ssl' ) ), 'actions' => sprintf( '<p><a href="%s" target="_blank" rel="noopener noreferrer">%s</a></p>', esc_url( __( add_query_arg(array('page'=>'really-simple-security#settings/vulnerabilities/vulnerabilities-overview'), rsssl_admin_url() ) ) ), __( 'View vulnerabilities', 'really-simple-ssl' ) ), 'test' => 'rsssl_vulnerabilities', ); } public function show_help_notices($notices) { $this->cache_installed_plugins(); $risks = $this->count_risk_levels(); $level_to_show_on_dashboard = rsssl_get_option('vulnerability_notification_dashboard'); $level_to_show_sitewide = rsssl_get_option('vulnerability_notification_sitewide'); foreach ($this->risk_levels as $risk_level => $value) { if ( !isset($risks[$risk_level]) ) { continue; } //this is shown bases on the config of vulnerability_notification_dashboard $siteWide = false; $dashboardNotice = false; if ( $level_to_show_on_dashboard && $level_to_show_on_dashboard !== '*') { if ($value >= $this->risk_levels[$level_to_show_on_dashboard]) { $dashboardNotice = true; } } if ($level_to_show_sitewide && $level_to_show_sitewide !== '*') { if ($value >= $this->risk_levels[$level_to_show_sitewide]) { $siteWide = true; } } if ( !$dashboardNotice && !$siteWide ) { continue; } $count = $risks[$risk_level]; $title = $this->get_warning_string($risk_level, $count); $notice = [ 'callback' => '_true_', 'score' => 1, 'show_with_options' => ['enable_vulnerability_scanner'], 'output' => [ 'true' => [ 'title' => $title, 'msg' => $title.' '.__('Please take appropriate action.','really-simple-ssl'), 'icon' => ($risk_level === 'c' || $risk_level==='h') ? 'warning' : 'open', 'type' => 'warning', 'dismissible' => true, 'admin_notice' => $siteWide, 'plusone' => true, 'highlight_field_id' => 'vulnerabilities-overview', ] ], ]; $notices['risk_level_' . $risk_level] = $notice; } //now we add the test notices for admin and dahboard. //if the option is filled, we add the test notice. $test_id = get_option('test_vulnerability_tester'); if($test_id) { $dashboard = rsssl_get_option('vulnerability_notification_dashboard'); $side_wide = rsssl_get_option('vulnerability_notification_sitewide'); $site_wide_icon = $side_wide === 'l' || $side_wide === 'm' ? 'open' : 'warning'; if ( $side_wide === 'l' || $side_wide === 'm' || $side_wide === 'h' || $side_wide === 'c') { $notices[ 'test_vulnerability_sitewide_' .$test_id ] = [ 'callback' => '_true_', 'score' => 1, 'show_with_options' => [ 'enable_vulnerability_scanner' ], 'output' => [ 'true' => [ 'title' => __( 'Site wide - Test Notification', 'really-simple-ssl' ), 'msg' => __( 'This is a test notification from Really Simple SSL. You can safely dismiss this message.', 'really-simple-ssl' ), 'url' => add_query_arg(['page'=>'really-simple-security#settings/vulnerabilities/vulnerabilities-overview'], rsssl_admin_url() ), 'icon' => $site_wide_icon, 'dismissible' => true, 'admin_notice' => true, 'plusone' => true, ] ] ]; } //don't add this one if the same level $dashboard_icon = $dashboard === 'l' || $dashboard === 'm' ? 'open' : 'warning'; if ($dashboard_icon !== $site_wide_icon) { if ( $dashboard === 'l' || $dashboard === 'm' || $dashboard === 'h' || $dashboard === 'c' ) { $notices[ 'test_vulnerability_dashboard_' .$test_id ] = [ 'callback' => '_true_', 'score' => 1, 'show_with_options' => [ 'enable_vulnerability_scanner' ], 'output' => [ 'true' => [ 'title' => __( 'Dashboard - Test Notification', 'really-simple-ssl' ), 'msg' => __( 'This is a test notification from Really Simple SSL. You can safely dismiss this message.', 'really-simple-ssl' ), 'icon' => $dashboard_icon, 'dismissible' => true, 'admin_notice' => false, 'plusone' => true, ] ] ]; } } } return $notices; } /** * Generate plugin files for testing purposes. * * @return array */ public static function testGenerator(): array { $mail_notification = rsssl_get_option('vulnerability_notification_email_admin'); if ( $mail_notification === 'l' || $mail_notification === 'm' || $mail_notification === 'h' || $mail_notification === 'c' ) { $mailer = new rsssl_mailer(); $mailer->send_test_mail(); } return []; } /* Public Section 2: DataGathering */ /** * @param $stats * * @return array */ public function get_stats($stats): array { if ( ! rsssl_user_can_manage() ) { return $stats; } $this->cache_installed_plugins(); //now we only get the data we need. $vulnerabilities = array_filter($this->workable_plugins, static function ($plugin) { if (isset($plugin['vulnerable']) && $plugin['vulnerable']) { return $plugin; } return false; }); $time = $this->get_file_stored_info(true); $stats['vulnerabilities'] = count($vulnerabilities); $stats['vulList'] = $vulnerabilities; $riskData = $this->measures_data(); $stats['riskData'] = $riskData['data']; $stats['lastChecked'] = $time; return $stats; } /** * This combines the vulnerabilities with the installed plugins * * And loads it into a memory cache on page load * */ public function cache_installed_plugins($force_update=false): void { if ( ! rsssl_admin_logged_in() ) { return; } if ( !$force_update && !empty($this->workable_plugins) ) { return; } //first we get all installed plugins $installed_plugins = get_plugins(); $installed_themes = wp_get_themes(); //we flatten the array $update = get_site_transient('update_themes'); //we make the installed_themes look like the installed_plugins $installed_themes = array_map( static function ($theme) use ($update) { return [ 'Name' => $theme->get('Name'), 'Slug' => $theme->get('TextDomain'), 'description' => $theme->get('Description'), 'Version' => $theme->get('Version'), 'Author' => $theme->get('Author'), 'AuthorURI' => $theme->get('AuthorURI'), 'PluginURI' => $theme->get('ThemeURI'), 'TextDomain' => $theme->get('TextDomain'), 'RequiresWP' => $theme->get('RequiresWP'), 'RequiresPHP' => $theme->get('RequiresPHP'), 'update_available' => isset($update->response[$theme->get('TextDomain')]), ]; }, $installed_themes); //we add a column type to all values in the array $installed_themes = array_map( static function ($theme) { $theme['type'] = 'theme'; return $theme; }, $installed_themes); //we add a column type to all values in the array //this resets the array keys (currently slugs) so we preserve them in the 'Slug' column. $update = get_site_transient('update_plugins'); $installed_plugins = array_map( static function ($plugin, $slug) use ($update) { $plugin['type'] = 'plugin'; $plugin['update_available'] = isset($update->response[$slug]); $plugin['Slug'] = dirname($slug); $plugin['File'] = $slug; return $plugin; }, $installed_plugins, array_keys($installed_plugins) ); //we merge the two arrays $installed_plugins = array_merge($installed_plugins, $installed_themes); //now we get the components from the file $components = $this->get_components(); //We loop through plugins and check if they are in the components array foreach ($installed_plugins as $plugin) { $slug = $plugin['Slug']; $plugin['vulnerable'] = false; if( $plugin['type'] === 'theme' ) { // we check if the theme exists as a directory $plugin['folder_exists'] = file_exists(get_theme_root() . '/' . $slug ); } if( $plugin['type'] === 'plugin' ) { //also we check if the folder exists for the plugin we added this check for later purposes $plugin['folder_exists'] = file_exists(WP_PLUGIN_DIR . '/' . dirname($slug) ); } //if there are no components, we return if ( !empty($components) ) { foreach ($components as $component) { if ($plugin['Slug'] === $component->slug) { if (!empty($component->vulnerabilities) && $plugin['folder_exists'] === true) { $plugin['vulnerable'] = true; $plugin['risk_level'] = $this->get_highest_vulnerability($component->vulnerabilities); $plugin['rss_identifier'] = $this->getLinkedUUID($component->vulnerabilities, $plugin['risk_level']); $plugin['risk_name'] = $this->risk_naming[$plugin['risk_level']]; $plugin['date'] = $this->getLinkedDate($component->vulnerabilities, $plugin['risk_level']); } } } } //we walk through the components array $this->workable_plugins[$slug] = $plugin; } //now we get the core information $core = $this->get_core(); //we create a plugin like entry for core to add to the workable_plugins array $core_plugin = [ 'Name' => 'WordPress', 'Slug' => 'wordpress', 'Version' => $core->version?? '', 'Author' => 'WordPress', 'AuthorURI' => 'https://wordpress.org/', 'PluginURI' => 'https://wordpress.org/', 'TextDomain' => 'wordpress', 'type' => 'core', ]; $core_plugin['vulnerable'] = false; //we check if there is an update available $update = get_site_transient('update_core'); if (isset($update->updates[0]->response) && $update->updates[0]->response === 'upgrade') { $core_plugin['update_available'] = true; } else { $core_plugin['update_available'] = false; } //if there are no components, we return if ( !empty($core->vulnerabilities) ) { $core_plugin['vulnerable'] = true; $core_plugin['risk_level'] = $this->get_highest_vulnerability($core->vulnerabilities); $core_plugin['rss_identifier'] = $this->getLinkedUUID($core->vulnerabilities, $core_plugin['risk_level']); $core_plugin['risk_name'] = $this->risk_naming[$core_plugin['risk_level']]; $core_plugin['date'] = $this->getLinkedDate($core->vulnerabilities, $core_plugin['risk_level']); } //we add the core plugin to the workable_plugins array $this->workable_plugins['wordpress'] = $core_plugin; } /* Public Section 3: The plugin page add-on */ /** * Callback for the manage_plugins_columns hook to add the vulnerability column * * @param $columns */ public function add_vulnerability_column($columns) { $columns['vulnerability'] = __('Vulnerabilities', 'really-simple-ssl'); return $columns; } /** * Get the data for the risk vulnerabilities table * @param $data * @return array */ public function measures_data(): array { $measures = []; $measures[] = [ 'id' => 'force_update', 'name' => __('Force update', 'really-simple-ssl'), 'value' => get_option('rsssl_force_update'), 'description' => sprintf(__('Will run a frequent update process on vulnerable components.', 'really-simple-ssl'), $this->riskNaming('l')), ]; $measures[] = [ 'id' => 'quarantine', 'name' => __('Quarantine', 'really-simple-ssl'), 'value' => get_option('rsssl_quarantine'), 'description' => sprintf(__('Components will be quarantined if the update process fails.', 'really-simple-ssl'), $this->riskNaming('m')), ]; return [ "request_success" => true, 'data' => $measures ]; } /** * Store the mesures from the api * @param $measures * * @return array */ public function measures_set($measures): array { if (!rsssl_user_can_manage()) { return []; } $risk_data = $measures['riskData'] ?? []; foreach ( $risk_data as $risk ) { if ( !isset($risk['value']) ) { continue; } update_option('rsssl_'.sanitize_title($risk['id']), $this->sanitize_measure($risk['value']), false ); } return []; } /** * Sanitize a measure * * @param string $measure * * @return mixed|string */ public function sanitize_measure($measure) { return isset($this->risk_levels[$measure]) ? $measure : '*'; } /** * Callback for the manage_plugins_custom_column hook to add the vulnerability field * * @param string $column_name * @param string $plugin_file */ public function add_vulnerability_field( string $column_name, string $plugin_file): void { if ( ( $column_name === 'vulnerability' ) ) { $this->cache_installed_plugins(); if ($this->check_vulnerability( $plugin_file ) ) { switch ( $this->check_severity( $plugin_file ) ) { case 'c': echo sprintf( '<a class="rsssl-btn-vulnerable rsssl-critical" target="_blank" rel="noopener noreferrer" href="%s">%s</a>', 'https://really-simple-ssl.com/vulnerabilities/' . $this->getIdentifier( $plugin_file ), ucfirst( $this->risk_naming['c'] ) ); break; case 'h': echo sprintf( '<a class="rsssl-btn-vulnerable rsssl-high" target="_blank" rel="noopener noreferrer" href="%s">%s</a>', 'https://really-simple-ssl.com/vulnerabilities/' . $this->getIdentifier( $plugin_file ), ucfirst( $this->risk_naming['h'] ) ); break; case 'm': echo sprintf( '<a class="rsssl-btn-vulnerable rsssl-medium" target="_blank" rel="noopener noreferrer" href="%s">%s</a>', 'https://really-simple-ssl.com/vulnerabilities/' . $this->getIdentifier( $plugin_file ), ucfirst( $this->risk_naming['m'] ) ); break; default: echo sprintf( '<a class="rsssl-btn-vulnerable rsssl-low" target="_blank" rel="noopener noreferrer" href="%s">%s</a>', 'https://really-simple-ssl.com/vulnerabilities/' . $this->getIdentifier( $plugin_file ), ucfirst( $this->risk_naming['l'] ) ); break; } } if ( $this->is_quarantined($plugin_file)) { echo sprintf( '<a class="rsssl-btn-vulnerable rsssl-critical" target="_blank" rel="noopener noreferrer" href="%s">%s</a>', 'https://really-simple-ssl.com/instructions/about-vulnerabilities/#quarantine' , __("Quarantined","really-simple-ssl") ); } } } /** * Callback for the admin_enqueue_scripts hook to add the vulnerability styles * * @param $hook * * @return void */ public function add_vulnerability_styles($hook) { if ('plugins.php' !== $hook) { return; } //only on settings page $rtl = is_rtl() ? 'rtl/' : ''; $url = trailingslashit(rsssl_url) . "assets/css/{$rtl}rsssl-plugin.min.css"; $path = trailingslashit(rsssl_path) . "assets/css/{$rtl}rsssl-plugin.min.css"; if (file_exists($path)) { wp_enqueue_style('rsssl-plugin', $url, array(), rsssl_version); } } /** * checks if the plugin is vulnerable * * @param $plugin_file * * @return mixed */ private function check_vulnerability($plugin_file) { return $this->workable_plugins[ dirname($plugin_file) ]['vulnerable'] ?? false; } /** * Check if a plugin is quarantined * * @param string $plugin_file * * @return bool */ private function is_quarantined(string $plugin_file): bool { return strpos($plugin_file, '-rsssl-q-')!==false; } /** * checks if the plugin's severity closed * * @param $plugin_file * * @return mixed */ private function check_severity($plugin_file) { return $this->workable_plugins[dirname($plugin_file)]['risk_level']; } private function getIdentifier($plugin_file) { return $this->workable_plugins[dirname($plugin_file)]['rss_identifier']; } /* End of plug-in page add-on */ /* Public and private functions | Files and storage */ /** * Checks the files on age and downloads if needed. * * @return void */ public function check_files(): void { if ( ! rsssl_admin_logged_in() ) { return; } //we download the manifest file if it doesn't exist or is older than 12 hours if ($this->validate_local_file(false, true)) { if ( $this->get_file_stored_info(false, true) < time() - $this->interval ) { $this->download_manifest(); } } else { $this->download_manifest(); } //We check the core vulnerabilities and validate age and existence if ($this->validate_local_file(true, false)) { //if the file is younger than 12 hours, we don't download it again. if ($this->get_file_stored_info(true) < time() - $this->interval ) { $this->download_core_vulnerabilities(); } } else { $this->download_core_vulnerabilities(); } //We check the plugin vulnerabilities and validate age and existence if ($this->validate_local_file()) { if ($this->get_file_stored_info() < time() - $this->interval ) { $this->download_plugin_vulnerabilities(); } } else { $this->download_plugin_vulnerabilities(); } } /** * Checks if the file is valid and exists. It checks three files: the manifest, the core vulnerabilities and the plugin vulnerabilities. * * @param bool $isCore * @param bool $manifest * * @return bool */ private function validate_local_file(bool $isCore = false, bool $manifest = false): bool { if ( ! rsssl_admin_logged_in() ) { return false; } if (!$manifest) { //if we don't check for the manifest, we check the other files. $isCore ? $file = 'core.json' : $file = 'components.json'; } else { $file = 'manifest.json'; } $upload_dir = Rsssl_File_Storage::get_upload_dir(); $file = $upload_dir . '/' . $file; if (file_exists($file)) { //now we check if the file is older than 3 days, if so, we download it again $file_time = filemtime($file); $now = time(); $diff = $now - $file_time; $days = floor($diff / (60 * 60 * 24)); if ($days < 1) { return true; } } return false; } /** * Downloads bases on given url * * @param string $url * * @return mixed|null * @noinspection PhpComposerExtensionStubsInspection */ private function download(string $url) { if ( ! rsssl_admin_logged_in() ) { return null; } //now we check if the file remotely exists and then log an error if it does not. $response = wp_remote_get( $url ); if ( is_wp_error( $response ) ) { return null; } if ( wp_remote_retrieve_response_code($response) !== 200 ) { return null; } $json = wp_remote_retrieve_body($response); return json_decode($json); } private function remote_file_exists($url): bool { try { $headers = @get_headers($url); if ($headers === false) { // URL is not accessible or some error occurred return false; } // Check if the HTTP status code starts with "200" (indicating success) return strpos($headers[0], '200') !== false; // Rest of your code handling $headers goes here } catch (Exception $e) { return false; } } /** * Stores a full core or component file in the upload folder * * @param $data * @param bool $isCore * @param bool $manifest * * @return void */ private function store_file($data, bool $isCore = false, bool $manifest = false): void { if ( ! rsssl_admin_logged_in() ) { return; } //we get the upload directory $upload_dir = Rsssl_File_Storage::get_upload_dir(); if ( !$manifest ) { $file = $upload_dir . '/' . ($isCore ? 'core.json' : 'components.json'); } else { $file = $upload_dir . '/manifest.json'; } //we delete the old file if it exists if ( file_exists($file) ) { wp_delete_file($file); } //if the data is empty, we return null if ( empty($data) ) { return; } Rsssl_File_Storage::StoreFile($file, $data); $this->jsons_files_updated = true; } public function get_file_stored_info($isCore = false, $manifest = false) { if ( ! rsssl_admin_logged_in() ) { return false; } $upload_dir = Rsssl_File_Storage::get_upload_dir(); if ($manifest) { $file = $upload_dir . '/manifest.json'; if (!file_exists($file)) { return false; } return Rsssl_File_Storage::GetDate($file); } $file = $upload_dir . '/' . ($isCore ? 'core.json' : 'components.json'); if (!file_exists($file)) { return false; } return Rsssl_File_Storage::GetDate($file); } /* End of files and Storage */ /* Section for the core files Note: No manifest is needed */ /** * Downloads the vulnerabilities for the current core version. * * @return void */ protected function download_core_vulnerabilities(): void { if ( ! rsssl_admin_logged_in() ) { return; } global $wp_version; $url = self::RSSSL_SECURITY_API . 'core/WordPress.json'; $data = $this->download($url); if (!$data) { return; } $data->vulnerabilities = $this->filter_vulnerabilities($data->vulnerabilities, $wp_version, true); //first we store this as a json file in the uploads folder $this->store_file($data, true); } /* End of core files section */ /* Section for the plug-in files */ /** * Downloads the vulnerabilities for the current plugins. * * @return void */ protected function download_plugin_vulnerabilities(): void { if ( ! rsssl_admin_logged_in() ) { return; } //we get all the installed plugins $installed_plugins = get_plugins(); //first we get the manifest file $manifest = $this->getManifest(); $vulnerabilities = []; foreach ($installed_plugins as $file => $plugin) { $slug = dirname($file); $installed_plugins[ $file ]['Slug'] = $slug; $url = self::RSSSL_SECURITY_API . 'plugin/' . $slug . '.json'; //if the plugin is not in the manifest, we skip it if (!in_array($slug, (array)$manifest)) { continue; } $data = $this->download($url); if ($data !== null) { $vulnerabilities[] = $data; } } //we also do it for all the installed themes $installed_themes = wp_get_themes(); foreach ($installed_themes as $theme) { $theme = $theme->get('TextDomain'); $url = self::RSSSL_SECURITY_API . 'theme/' . $theme . '.json'; //if the plugin is not in the manifest, we skip it if (!in_array($theme, (array)$manifest)) { continue; } $data = $this->download($url); if ($data !== null) { $vulnerabilities[] = $data; } } //we make the installed_themes look like the installed_plugins $installed_themes = array_map( static function ($theme) { return [ 'Name' => $theme->get('Name'), 'Slug' => $theme->get('TextDomain'), 'description' => $theme->get('Description'), 'Version' => $theme->get('Version'), 'Author' => $theme->get('Author'), 'AuthorURI' => $theme->get('AuthorURI'), 'PluginURI' => $theme->get('ThemeURI'), 'TextDomain' => $theme->get('TextDomain'), 'RequiresWP' => $theme->get('RequiresWP'), 'RequiresPHP' => $theme->get('RequiresPHP'), ]; }, $installed_themes); //we merge $installed_plugins and $installed_themes $installed_plugins = array_merge($installed_plugins, $installed_themes); //we filter the vulnerabilities $vulnerabilities = $this->filter_active_components($vulnerabilities, $installed_plugins); $this->store_file($vulnerabilities); } /** * Loads the info from the files Note this is also being used for the themes. * * @return mixed|null */ private function get_components() { if ( ! rsssl_admin_logged_in() ) { return []; } $upload_dir = Rsssl_File_Storage::get_upload_dir(); $file = $upload_dir . '/components.json'; if (!file_exists($file)) { return []; } $components = Rsssl_File_Storage::GetFile($file); if (!is_array($components)) $components = []; return $components; } /* End of plug-in files section */ /* Section for the core files Note: No manifest is needed */ private function get_core() { if ( ! rsssl_admin_logged_in() ) { return null; } $upload_dir = Rsssl_File_Storage::get_upload_dir(); $file = $upload_dir . '/core.json'; if (!file_exists($file)) { return false; } return Rsssl_File_Storage::GetFile($file); } /* Section for the theme files */ public function enable_feedback_in_theme(): void { //Logic here for theme warning Create Callback and functions for these steps //we only display the warning for the theme page add_action('current_screen', [$this, 'show_theme_warning']); } public function show_theme_warning($hook) { $screen = get_current_screen(); if ($screen && $screen->id !== 'themes') { return; } //we add warning scripts to themes add_action('admin_enqueue_scripts', [$this, 'enqueue_theme_warning_scripts']); } public function show_inline_code($hook): void { if ($hook !== 'themes.php') { return; } //we add warning scripts to themes add_action('admin_footer', [$this, 'enqueue_theme_warning_scripts']); } public function enqueue_theme_warning_scripts(): void { //we get all components with vulnerabilities $components = $this->get_components(); ob_start();?> <script> window.addEventListener("load", () => { let style = document.createElement('style'); let vulnerable_components = [<?php echo implode(',', array_map(function ($component) { return "{slug: '" . esc_attr($component->slug) . "', risk: '" . esc_attr($this->get_highest_vulnerability($component->vulnerabilities)) . "'}"; }, $components)) ?>]; //we create the style for warning style.innerHTML = '.rsssl-theme-notice {box-shadow: 0 1px 1px 0 rgba(0,0,0,.1); position:relative; z-index:50; margin-bottom: -35px; padding: 8px 12px;}'; style.innerHTML += '.rsssl-theme-notice-warning {background-color: #FFF6CE; border-left: 4px solid #ffb900;}'; //we create the style for danger style.innerHTML += '.rsssl-theme-notice-danger {background-color: #FFCECE; border-left: 4px solid #dc3232;}'; style.innerHTML += '.rsssl-theme-notice-below-notice{margin-top: 41px;}'; style.innerHTML += '.rsssl-theme-notice-warning .dashicons, .rsssl-theme-notice-danger .dashicons{margin-right: 12px;}'; let levels = <?php echo json_encode($this->risk_naming)?>; //we add the style to the head document.head.appendChild(style); //we loop through the components vulnerable_components.forEach(function(component) { //we get the theme element let theme_element = document.querySelector(".theme[data-slug='"+component.slug+"']"); //if the theme exists if (theme_element) { //check if theme element contains notice. if so, push this notice down with class rsssl-theme-notice-below-notice let hasNotice = theme_element.querySelector('.update-message.notice'); //we check the risk let level = levels[component.risk]; let text = '<?php echo esc_attr(__('Vulnerability: %s', 'really-simple-ssl')) ?>'; text = text.replace('%s', level); let divClass = ' rsssl-theme-notice '; divClass += component.risk === 'h' || component.risk === 'c' ? 'rsssl-theme-notice-danger' : 'rsssl-theme-notice-warning'; if (hasNotice) divClass += ' rsssl-theme-notice-below-notice'; theme_element.insertAdjacentHTML('afterbegin', ` <div class="${divClass}"> <div><span class="dashicons dashicons-info"></span>${text}</div> </div> `); } }); //find quarantined themes, find all themes where the data-slug contains '-rsssl-q' document.querySelectorAll(".theme[data-slug*='-rsssl-q']").forEach(function(theme_element) { //if the theme exists if ( theme_element ) { //we check the risk let text = '<?php echo esc_attr(__('Quarantined', 'really-simple-ssl')) ?>'; let divClass = 'rsssl-theme-notice rsssl-theme-notice-danger'; theme_element.insertAdjacentHTML('afterbegin', ` <div class="${divClass}"> <div><span class="dashicons dashicons-info"></span> <a href="https://really-simple-ssl.com/instructions/about-vulnerabilities/#quarantine" target="_blank" rel="noopener noreferrer">${text}</a> </div> </div> `); } }); }); </script> <?php echo ob_get_clean(); } /* End of theme files section */ /* Private functions | Filtering and walks */ /** * Filters the components based on the active plugins * * @param $components * @param array $active_plugins * * @return array */ private function filter_active_components($components, array $active_plugins): array { $active_components = []; foreach ($components as $component) { foreach ($active_plugins as $active_plugin) { if (isset($component->slug) && $component->slug === $active_plugin['Slug']) { //now we filter out the relevant vulnerabilities $component->vulnerabilities = $this->filter_vulnerabilities($component->vulnerabilities, $active_plugin['Version']); //if we have vulnerabilities, we add the component to the active components or when the plugin is closed if (count($component->vulnerabilities) > 0 || $component->status === 'closed') { $active_components[] = $component; } } } } return $active_components; } /** * This function adds the vulnerability with the highest risk to the plugins page * * @param $vulnerabilities * * @return string */ private function get_highest_vulnerability($vulnerabilities): string { //we loop through the vulnerabilities and get the highest risk level $highest_risk_level = 0; foreach ($vulnerabilities as $vulnerability) { if ($vulnerability->severity === null) { continue; } if (!isset($this->risk_levels[$vulnerability->severity])) { continue; } if ($this->risk_levels[$vulnerability->severity] > $highest_risk_level) { $highest_risk_level = $this->risk_levels[$vulnerability->severity]; } } //we now loop through the risk levels and return the highest one foreach ($this->risk_levels as $key => $value) { if ($value === $highest_risk_level) { return $key; } } return 'l'; } /* End of private functions | Filtering and walks */ /* Private functions | End of Filtering and walks */ /* Private functions | Feedback, Styles and scripts */ /** * This function shows the feedback in the plugin * * @return void */ private function enable_feedback_in_plugin(): void { //we add some styling to this page add_action('admin_enqueue_scripts', array($this, 'add_vulnerability_styles')); //we add an extra column to the plugins page add_filter('manage_plugins_columns', array($this, 'add_vulnerability_column')); add_filter('manage_plugins-network_columns', array($this, 'add_vulnerability_column')); //now we add the field to the plugins page add_action('manage_plugins_custom_column', array($this, 'add_vulnerability_field'), 10, 3); add_action('manage_plugins-network_custom_column', array($this, 'add_vulnerability_field'), 10, 3); } /* End of private functions | Feedback, Styles and scripts */ /** * This function downloads the manifest file from the api server * * @return void */ private function download_manifest(): void { if ( ! rsssl_admin_logged_in() ) { return; } $url = self::RSSSL_SECURITY_API . 'manifest.json'; $data = $this->download($url); //we convert the data to an array $data = json_decode(json_encode($data), true); //first we store this as a json file in the uploads folder $this->store_file($data, true, true); } /** * This function downloads the created file from the uploads * * @return false|void */ private function getManifest() { if ( ! rsssl_admin_logged_in() ) { return false; } $upload_dir = Rsssl_File_Storage::get_upload_dir(); $file = $upload_dir . '/manifest.json'; if (!file_exists($file)) { return false; } return Rsssl_File_Storage::GetFile($file); } private function filter_vulnerabilities($vulnerabilities, $Version, $core = false): array { $filtered_vulnerabilities = array(); foreach ($vulnerabilities as $vulnerability) { //if fixed_in contains a version, and the current version is higher than the fixed_in version, we skip it as fixed. //This needs to be a positive check only, as the fixed_in value is less accurate than the version_from and version_to values if ($vulnerability->fixed_in !== 'not fixed' && rsssl_version_compare($Version, $vulnerability->fixed_in, '>=') ) { continue; } //we have the fields version_from and version_to and their needed operators $version_from = $vulnerability->version_from; $version_to = $vulnerability->version_to; $operator_from = $vulnerability->operator_from; $operator_to = $vulnerability->operator_to; //we now check if the version is between the two versions if (rsssl_version_compare($Version, $version_from, $operator_from) && rsssl_version_compare($Version, $version_to, $operator_to)) { $filtered_vulnerabilities[] = $vulnerability; } } return $filtered_vulnerabilities; } /** * Get count of risk occurrence for each risk level * @return array */ public function count_risk_levels(): array { $plugins = $this->workable_plugins; $risk_levels = array(); foreach ($plugins as $plugin) { if (isset($plugin['risk_level'])) { if (isset($risk_levels[$plugin['risk_level']])) { $risk_levels[$plugin['risk_level']]++; } else { $risk_levels[$plugin['risk_level']] = 1; } } } return $risk_levels; } /** * check if a a dismissed notice should be reset * * @param string $risk_level * * @return bool */ private function should_reset_notification(string $risk_level): bool { $plugins = $this->workable_plugins; $vulnerable_plugins = array(); foreach ($plugins as $plugin) { if (isset($plugin['risk_level']) && $plugin['risk_level'] === $risk_level) { $vulnerable_plugins[] = $plugin['rss_identifier']; } } $dismissed_for = get_option("rsssl_{$risk_level}_notification_dismissed_for",[]); //cleanup. Check if plugins in mail_sent_for exist in the $plugins array foreach ($dismissed_for as $key => $rss_identifier) { if ( ! in_array($rss_identifier, $vulnerable_plugins) ) { unset($dismissed_for[$key]); } } $diff = array_diff($vulnerable_plugins, $dismissed_for); foreach ($diff as $rss_identifier) { if (!in_array($rss_identifier, $dismissed_for)){ $dismissed_for[] = $rss_identifier; } } //add the new plugins to the $dismissed_for array update_option("rsssl_{$risk_level}_notification_dismissed_for", $dismissed_for, false ); return !empty($diff); } /** * check if a new mail should be sent about vulnerabilities * @return bool */ private function should_send_mail(): bool { $plugins = $this->workable_plugins; $vulnerable_plugins = array(); foreach ($plugins as $plugin) { if (isset($plugin['risk_level'])) { $vulnerable_plugins[] = $plugin['rss_identifier']; } } $mail_sent_for = get_option('rsssl_vulnerability_mail_sent_for',[]); //cleanup. Check if plugins in mail_sent_for exist in the $plugins array foreach ($mail_sent_for as $key => $rss_identifier) { if ( ! in_array($rss_identifier, $vulnerable_plugins) ) { unset($mail_sent_for[$key]); } } $diff = array_diff($vulnerable_plugins, $mail_sent_for); foreach ($diff as $rss_identifier) { if (!in_array($rss_identifier, $mail_sent_for)){ $mail_sent_for[] = $rss_identifier; } } //add the new plugins to the mail_sent_for array update_option('rsssl_vulnerability_mail_sent_for',$mail_sent_for, false ); return !empty($diff); } /** * Get id by risk level * @param array $vulnerabilities * @param string $risk_level * * @return mixed|void */ private function getLinkedUUID( array $vulnerabilities, string $risk_level) { foreach ($vulnerabilities as $vulnerability) { if ($vulnerability->severity === $risk_level) { return $vulnerability->rss_identifier; } } } private function getLinkedDate($vulnerabilities, string $risk_level) { foreach ($vulnerabilities as $vulnerability) { if ($vulnerability->severity === $risk_level) { //we return the date in a readable format return date(get_option('date_format'), strtotime($vulnerability->published_date)); } } } /** * Send email warning * @return void */ public function send_vulnerability_mail(): void { if ( ! rsssl_admin_logged_in() ) { return; } //first we check if the user wants to receive emails if ( !rsssl_get_option('send_notifications_email') ) { return; } $level_for_email = rsssl_get_option('vulnerability_notification_email_admin'); if ( !$level_for_email || $level_for_email === '*' ) { return; } //now based on the risk level we send a different email $risk_levels = $this->count_risk_levels(); $total = 0; $blocks = []; foreach ($risk_levels as $risk_level => $count) { if ( $this->risk_levels[$risk_level] >= $this->risk_levels[$level_for_email] ) { $blocks[] = $this->createBlock($risk_level, $count); $total += $count; } } //date format is named month day year $mailer = new rsssl_mailer(); $mailer->subject = sprintf(__("Vulnerability Alert: %s", "really-simple-ssl"), $this->site_url() ); $mailer->title = sprintf(_n("%s: %s vulnerability found", "%s: %s vulnerabilities found", $total, "really-simple-ssl"), $this->date(), $total); $message = sprintf(__("This is a vulnerability alert from Really Simple SSL for %s. ","really-simple-ssl"), $this->domain() ); $mailer->message = $message; $mailer->warning_blocks = $blocks; if ($total > 0) { //if for some reason the total is 0, we don't send an email $mailer->send_mail(); } } /** * Create an email block by risk level * * @param string $risk_level * @param int $count * * @return array */ protected function createBlock(string $risk_level, int $count): array { $plugin_name = ''; //if we have only one plugin with this risk level, we can show the plugin name //we search it in the list if ( $count===1 ){ $plugins = $this->workable_plugins; foreach ($plugins as $plugin) { if (isset($plugin['risk_level']) && $plugin['risk_level'] === $risk_level) { $plugin_name = $plugin['Name']; } } } $risk = $this->risk_naming[$risk_level]; $title = $this->get_warning_string($risk_level, $count); $message = $count === 1 ? sprintf(__("A %s vulnerability is found in %s.", "really-simple-ssl"),$risk, $plugin_name) : sprintf(__("Multiple %s vulnerabilities have been found.", "really-simple-ssl"), $risk); return [ 'title' => $title, 'message' => $message . ' ' . __('Based on your settings, Really Simple SSL will take appropriate action, or you will need to solve it manually.','really-simple-ssl') .' '. sprintf(__('Get more information from the Really Simple SSL dashboard on %s'), $this->domain() ), 'url' => rsssl_admin_url('#settings/vulnerabilities_notifications'), ]; } /** * @param string $risk_level * @param int $count * * @return string */ public function get_warning_string( string $risk_level, int $count): string { switch ($risk_level){ case 'c': $warning = sprintf(_n('You have %s critical vulnerability', 'You have %s critical vulnerabilities', $count, 'really-simple-ssl'), $count); break; case 'h': $warning = sprintf(_n('You have %s high-risk vulnerability', 'You have %s high-risk vulnerabilities', $count, 'really-simple-ssl'), $count); break; case 'm': $warning = sprintf(_n('You have %s medium-risk vulnerability', 'You have %s medium-risk vulnerabilities', $count, 'really-simple-ssl'), $count); break; default: $warning = sprintf(_n('You have %s low-risk vulnerability', 'You have %s low-risk vulnerabilities', $count, 'really-simple-ssl'), $count); break; } return $warning; } /** * Get a nicely formatted date for today's date * * @return string */ public function date(): string { return date_i18n( get_option( 'date_format' )); } /** * Get the domain name in a clickable format * * @return string */ public function domain(): string { return '<a href="'.$this->site_url().'" target="_blank" rel="noopener noreferrer">'.$this->site_url().'</a>'; } /** * Cron triggers may sometimes result in http URL's, even though SSL is enabled in Really Simple SSL. * We ensure that the URL is returned with https if SSL is enabled. * * @return string */ public function site_url(): string { $ssl_enabled = rsssl_get_option('ssl_enabled') || is_ssl(); $scheme = $ssl_enabled ? 'https' : 'http'; return get_site_url(null, '', $scheme); } } //we initialize the class //add_action('init', array(rsssl_vulnerabilities::class, 'instance')); if ( !defined('rsssl_pro') ) { $vulnerabilities = new rsssl_vulnerabilities(); } } ######################################################################################### # Functions for the vulnerability scanner # # These functions are used in the vulnerability scanner like the notices and the api's # ######################################################################################### //we clear all the cache when the vulnerability scanner is enabled function rsssl_vulnerabilities_api( array $response, string $action, $data ): array { if ( ! rsssl_user_can_manage() ) { return $response; } switch ($action) { case 'vulnerabilities_test_notification': //creating a random string based on time. $random_string = md5( time() ); update_option( 'test_vulnerability_tester', $random_string, false ); //clear admin notices cache delete_option('rsssl_admin_notices'); $response = rsssl_vulnerabilities::testGenerator(); break; case 'vulnerabilities_scan_files': $response = rsssl_vulnerabilities::firstRun(); break; case 'vulnerabilities_measures_get': $response = ( new rsssl_vulnerabilities )->measures_data(); break; case 'vulnerabilities_measures_set': $response = ( new rsssl_vulnerabilities )->measures_set($data); break; } return $response; } add_filter( 'rsssl_do_action', 'rsssl_vulnerabilities_api', 10, 3 ); /* End of Routing and API's */ PK�������!�z| �� ��3��security/wordpress/block-code-execution-uploads.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); /** * @param $notices * @return mixed * Notice function */ function rsssl_code_execution_errors_notice( $notices ) { $notices['code-execution-uploads'] = array( 'callback' => 'rsssl_code_execution_allowed', 'score' => 5, 'output' => array( 'file-not-found' => array( 'msg' => __("Could not find code execution test file.", "really-simple-ssl"), 'icon' => 'open', 'dismissible' => true, ), 'uploads-folder-not-writable' => array( 'msg' => __("Uploads folder not writable.", "really-simple-ssl"), 'icon' => 'open', 'dismissible' => true, ), 'could-not-create-test-file' => array( 'msg' => __("Could not copy code execution test file.", "really-simple-ssl"), 'icon' => 'open', 'dismissible' => true, ), ), ); if ( rsssl_get_server() === 'nginx') { $notices['code-execution-uploads-nginx'] = array( 'callback' => 'rsssl_code_execution_allowed', 'score' => 5, 'output' => array( 'true' => array( 'msg' => __("The code to block code execution in the uploads folder cannot be added automatically on nginx. Add the following code to your nginx.conf file:", "really-simple-ssl") . "<br>" . rsssl_get_nginx_code_code_execution_uploads(), 'icon' => 'open', 'dismissible' => true, ), ), ); } return $notices; } add_filter('rsssl_notices', 'rsssl_code_execution_errors_notice'); /** * Block code execution * @param array $rules * * @return [] * */ function rsssl_disable_code_execution_rules($rules) { if ( !rsssl_get_option('block_code_execution_uploads')) { return $rules; } if ( RSSSL()->server->apache_version_min_24() ) { $rule = "\n" ."<Files *.php>"; $rule .= "\n" . "Require all denied"; $rule .= "\n" . "</Files>"; } else { $rule = "\n" ."<Files *.php>"; $rule .= "\n" . "deny from all"; $rule .= "\n" . "</Files>"; } $rules[] = ['rules' => $rule, 'identifier' => 'deny from all']; return $rules; } add_filter('rsssl_htaccess_security_rules_uploads', 'rsssl_disable_code_execution_rules'); function rsssl_get_nginx_code_code_execution_uploads() { $code = '<code>location ~* /uploads/.*\.php$ {' . "<br>"; $code .= '    return 503;' . "<br>"; $code .= '}</code>' . "<br>"; return $code; } PK�������!�N ` �� ��2��security/wordpress/vulnerabilities/FileStorage.phpnu�[��������<?php namespace security\wordpress\vulnerabilities; defined('ABSPATH') or die(); class FileStorage { private $hash; /** * FileStorage constructor. */ public function __construct() { //Fetching the key from the database $this->generateHashKey(); } public Static function StoreFile($file, $data) { $storage = new FileStorage(); $storage->set($data, $file); } public Static function GetFile($file) { $storage = new FileStorage(); return $storage->get($file); } /** Get the data from the file * @param $file * @return bool|mixed */ public function get($file) { if (file_exists($file)) { $data = file_get_contents($file); $data = $this->Decode64WithHash($data); return json_decode($data); } return false; } /** Save the data to the file * @param $data * @param $file */ public function set($data, $file) { $data = $this->Encode64WithHash(json_encode($data)); file_put_contents($file, $data); } /** encode the data with a hash * @param $data * @return string */ private function Encode64WithHash($data): string { //we create a simple encoding, using the hashkey as a salt $data = base64_encode($data); return base64_encode($data . $this->hash); } /** decode the data with a hash * @param $data * @return string */ private function Decode64WithHash($data): string { //we create a simple decoding, using the hashkey as a salt $data = base64_decode($data); $data = substr($data, 0, -strlen($this->hash)); return base64_decode($data); } /** Generate a hashkey and store it in the database * @return void */ private function generateHashKey(): void { if (get_option('rsssl_hashkey') && get_option('rsssl_hashkey') !== "") { $this->hash = get_option('rsssl_hashkey'); } else { $this->hash = md5(uniqid(rand(), true)); update_option('rsssl_hashkey', $this->hash, false); } } public static function GetDate(string $file) { if (file_exists($file)) { return filemtime($file); } return false; } public static function DeleteAll() { //we get the upload folder $upload_dir = wp_upload_dir(); //we get the really-simple-ssl folder $rsssl_dir = $upload_dir['basedir'] . '/really-simple-ssl'; //then we delete the following files from that folder: manifest.json, components.json and core.json $files = array('manifest.json', 'components.json', 'core.json'); foreach ($files as $file) { //we delete the file $file = $rsssl_dir . '/' . $file; if (file_exists($file)) { unlink($file); } } } }PK�������!�9$��$��?��security/wordpress/vulnerabilities/class-rsssl-file-storage.phpnu�[��������<?php namespace security\wordpress\vulnerabilities; defined( 'ABSPATH' ) or die(); require_once 'class-rsssl-folder-name.php'; class Rsssl_File_Storage { private $hash; public $folder; //for the folder name /** * Rsssl_File_Storage constructor. */ public function __construct() { //Fetching the key from the database $this->generateHashKey(); $upload_dir = wp_upload_dir(); $this->folder = $upload_dir['basedir'] . '/' . Rsssl_Folder_Name::getFolderName(); } public static function StoreFile( $file, $data ): void { $storage = new Rsssl_File_Storage(); //first we check if the storage folder is already in the $file string if ( strpos( $file, $storage->folder ) !== false ) { $file = str_replace( $storage->folder . '/', '', $file ); } $storage->set( $data, $storage->folder . '/' . $file ); } public static function GetFile( $file ) { $storage = new Rsssl_File_Storage(); //first we check if the storage folder is already in the $file string if ( strpos( $file, $storage->folder ) !== false ) { $file = str_replace( $storage->folder . '/', '', $file ); } return $storage->get( $storage->folder . '/' . $file ); } /** Get the data from the file * * @param $file * * @return bool|mixed */ public function get( $file ) { if ( file_exists( $file ) ) { $data = file_get_contents( $file ); $data = $this->Decode64WithHash( $data ); return json_decode( $data ); } return false; } /** Save the data to the file * * @param $data * @param $file */ public function set( $data, $file ) { if ( ! is_dir( $this->folder ) ) { return; } if ( ! is_writable( $this->folder ) ) { return; } $data = $this->Encode64WithHash( json_encode( $data ) ); //first we check if the storage folder is already in the $file string if ( strpos( $file, $this->folder ) !== false ) { $file = str_replace( $this->folder . '/', '', $file ); } file_put_contents( $this->folder . '/' . $file, $data ); } /** encode the data with a hash * * @param $data * * @return string * @throws \Exception */ private function Encode64WithHash( $data ): string { $crypto_strong = false; $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'), $crypto_strong); // Check if IV generation was successful and cryptographically strong if ($iv === false || $crypto_strong === false) { if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { error_log( "Really Simple SSL: Could not generate a secure initialization vector." ); } } $encrypted = openssl_encrypt($data, 'aes-256-cbc', $this->hash, 0, $iv); // Store the $iv along with the $encrypted data, so we can use it during decryption $encrypted = base64_encode($encrypted . '::' . $iv); return $encrypted; } /** decode the data with a hash * * @param $data * * @return string * @throws \Exception */ private function Decode64WithHash($data): string { $data = base64_decode( $data ); [ $encrypted_data, $iv ] = explode( '::', $data, 2 ); // Check if IV was successfully retrieved if ( $iv === false ) { if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { error_log( 'Really Simple SSL: Could not retrieve the initialization vector.' ); } } $decrypted = openssl_decrypt( $encrypted_data, 'aes-256-cbc', $this->hash, 0, $iv ); return $decrypted; } /** Generate a hashkey and store it in the database * @return void */ private function generateHashKey(): void { if ( get_option( 'rsssl_hashkey' ) && get_option( 'rsssl_hashkey' ) !== "" ) { $this->hash = get_option( 'rsssl_hashkey' ); } else { $this->hash = md5( uniqid( rand(), true ) ); update_option( 'rsssl_hashkey', $this->hash, false ); } } public static function GetDate( string $file ) { if ( file_exists( $file ) ) { return filemtime( $file ); } return false; } public static function get_upload_dir() { return ( new Rsssl_File_Storage() )->folder; } public static function validateFile( string $file ): bool { $storage = new Rsssl_File_Storage(); $file = $storage->folder . '/' . $file; if ( file_exists( $file ) ) { return true; } return false; } /** * Delete all files in the storage folder * * @return void */ public static function DeleteAll(): void { $storage = new Rsssl_File_Storage(); //we get the really-simple-ssl folder $rsssl_dir = $storage->folder; //then we delete the following files from that folder: manifest.json, components.json and core.json $files = array( 'manifest.json', 'components.json', 'core.json' ); foreach ( $files as $file ) { //we delete the file $file = $rsssl_dir . '/' . $file; if ( file_exists( $file ) ) { unlink( $file ); } } //we delete the folder if ( file_exists( $rsssl_dir ) ) { self::DeleteFolder($rsssl_dir); //we delete the option delete_option( 'rsssl_folder_name' ); } } /** * Recursively delete a folder and its contents. * * @param string $dir The path to the folder to be deleted. * * @return bool Returns true if the folder was successfully deleted, false otherwise. */ public static function DeleteFolder($dir): bool { if (substr($dir, strlen($dir) - 1, 1) != '/') $dir .= '/'; if ($handle = opendir($dir)) { while ($obj = readdir($handle)) { if ($obj != '.' && $obj != '..') { if (is_dir($dir.$obj)) { if (!self::DeleteFolder($dir.$obj)) return false; } elseif (is_file($dir.$obj)) { if (!unlink($dir.$obj)) return false; } } } closedir($handle); if (!rmdir($dir)) return false; return true; } return false; } /** * Delete all files in the storage folder * * @return void */ public static function DeleteOldFiles(): void { $rsssl_dir = wp_upload_dir()['basedir'] . '/really-simple-ssl'; //then we delete the following files from that folder: manifest.json, components.json and core.json $files = array( 'manifest.json', 'components.json', 'core.json' ); foreach ( $files as $file ) { //we delete the file $file = $rsssl_dir . '/' . $file; if ( file_exists( $file ) ) { unlink( $file ); } } } }PK�������!�ʵU��U��>��security/wordpress/vulnerabilities/class-rsssl-folder-name.phpnu�[��������<?php namespace security\wordpress\vulnerabilities; class Rsssl_Folder_Name { public $folderName; private function __construct() { $this->initializeFolderName(); $this->verifyAndCreateFolder(); } private function initializeFolderName(): void { $rsssl_folder = get_option( 'rsssl_folder_name' ); if ( $rsssl_folder ) { $this->folderName = $this->folderName( $rsssl_folder ); } else { $newFolderName = 'really-simple-ssl/' . md5( uniqid( mt_rand(), true ) ); $this->folderName = $this->folderName( $newFolderName ); require_once 'class-rsssl-file-storage.php'; Rsssl_File_Storage::DeleteOldFiles(); update_option( 'rsssl_folder_name', $this->folderName ); } } private function folderName( $name ): string { return $name; } private function verifyAndCreateFolder(): void { $upload_dir = wp_upload_dir(); if ( ! file_exists( $upload_dir['basedir'] . '/' . $this->folderName ) ) { $this->createFolder(); } } public function createFolder(): void { $upload_dir = wp_upload_dir(); $folder_path = $upload_dir['basedir'] . '/' . $this->folderName; if ( ! file_exists( $folder_path ) && is_writable($upload_dir['basedir'] ) ) { if ( ! mkdir( $folder_path, 0755, true ) && ! is_dir( $folder_path ) ) { if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { error_log( sprintf( 'Really Simple SSL: Directory "%s" was not created', $folder_path ) ); } } } } /** * Creates a new folder name and saves it in the settings * * @return string */ public static function getFolderName(): string { return (new Rsssl_Folder_Name())->folderName; } }PK�������!��l����%��security/wordpress/disable-xmlrpc.phpnu�[��������<?php defined( 'ABSPATH' ) or die( "you do not have access to this page!" ); /** * Disable XMLRPC when this integration is activated */ add_filter('xmlrpc_enabled', '__return_false'); /** * Remove html link */ remove_action( 'wp_head', 'rsd_link' ); /** * stop all requests to xmlrpc.php for RSD per XML-RPC: */ if ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) exit; PK�������!�Э&��&��1��security/wordpress/display-name-is-login-name.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); /** * Add javascript to make first and last name fields required */ function rsssl_disable_registration_js() { if ( !isset($_SERVER['REQUEST_URI']) || (strpos($_SERVER['REQUEST_URI'], 'user-new.php')===false && strpos($_SERVER['REQUEST_URI'], 'profile.php')===false) ) { return; } ?> <script> window.addEventListener('load', () => { document.getElementById('first_name').closest('tr').classList.add("form-required"); document.getElementById('last_name').closest('tr').classList.add("form-required"); }); </script> <?php } add_action( 'admin_print_footer_scripts', 'rsssl_disable_registration_js' ); /** * Add javascript to make first and last name fields required */ function rsssl_strip_userlogin() { if ( !isset($_SERVER['REQUEST_URI']) || strpos($_SERVER['REQUEST_URI'], 'profile.php')===false ) { return; } ?> <script> let rsssl_user_login = document.querySelector('input[name=user_login]'); let rsssl_display_name = document.querySelector('select[name=display_name]'); if ( rsssl_display_name.options.length>1) { for (let i = rsssl_display_name.options.length-1; i >= 0; i--) { if ( rsssl_user_login.value.toLowerCase() === rsssl_display_name.options[i].value.toLowerCase() ) { rsssl_display_name.removeChild(rsssl_display_name.options[i]) } } } </script> <?php } add_action( 'admin_print_footer_scripts', 'rsssl_strip_userlogin' );PK�������!�?t4s#���#�����security/wordpress/index.phpnu�[��������<?php // You don't belong here. ?> PK�������!�������security/wordpress/rest-api.phpnu�[��������<?php defined('ABSPATH') or die(); /** * @param $response * @param $handler * @param WP_REST_Request $request * @return mixed|WP_Error * * Hook into REST API requests */ function authorize_rest_api_requests( $response, $handler, WP_REST_Request $request ) { // allowed routes, whitelist option? // $routes = array( // '/wp/v2/csp etc', // ); // Check if authorization header is set if ( ! $request->get_header( 'authorization' ) ) { return new WP_Error( 'authorization', 'Unauthorized access.', array( 'status' => 401 ) ); } // if ( rsssl_get_networkwide_option('rsssl_restrict_rest_api') === 'restrict-roles' ) { // Check for certain role and allowed route if ( ! in_array( 'administrator', wp_get_current_user()->roles ) ) { return new WP_Error( 'forbidden', 'Access forbidden.', array( 'status' => 403 ) ); } // } // if ( rsssl_get_networkwide_option('rsssl_restrict_rest_api') === 'logged-in-users' ) { if ( ! is_user_logged_in() ) { return new WP_Error( 'forbidden', 'Access forbidden to non-logged in users.', array( 'status' => 403 ) ); } // } // if ( rsssl_get_networkwide_option('rsssl_restrict_rest_api') === 'application-passwords' ) { if ( ! is_user_logged_in() ) { return new WP_Error( 'forbidden', 'Access forbidden to non-logged in users.', array( 'status' => 403 ) ); } // } return $response; } /** * @return void * Disable REST API */ function rsssl_disable_rest_api() { add_filter('json_enabled', '__return_false'); add_filter('json_jsonp_enabled', '__return_false'); } add_filter( 'rest_request_before_callbacks', 'authorize_rest_api_requests', 10, 3 );PK�������!�d����1��security/wordpress/prevent-login-info-leakage.phpnu�[��������<?php defined('ABSPATH') or die(); /** * Override default login error message * @return string|void **/ function rsssl_no_wp_login_errors() { return __("Invalid login details.", "really-simple-ssl"); } add_filter( 'login_errors', 'rsssl_no_wp_login_errors' ); /** * Hide feedback entirely on password reset (no filter available). * * @return void * */ function rsssl_hide_pw_reset_error() { ?> <style> .login-action-lostpassword #login_error{ display: none; } </style> <?php } add_action( 'login_enqueue_scripts', 'rsssl_hide_pw_reset_error' ); /** * * Clear username when username is valid but password is incorrect * * @return void */ function rsssl_clear_username_on_correct_username() { ?> <script> if ( document.getElementById('login_error') ) { document.getElementById('user_login').value = ''; } </script> <?php } add_action( 'login_footer', 'rsssl_clear_username_on_correct_username' ); PK�������!�p*��*��(��security/wordpress/rename-admin-user.phpnu�[��������<?php defined('ABSPATH') or die(); /** * Username 'admin' changed notice * @return array */ function rsssl_admin_username_changed( $notices ) { $notices['username_admin_changed'] = array( 'condition' => ['rsssl_username_admin_changed'], 'callback' => '_true_', 'score' => 5, 'output' => array( 'true' => array( 'msg' => sprintf(__("Username 'admin' has been changed to %s", "really-simple-ssl"),esc_html(get_site_transient('rsssl_username_admin_changed')) ), 'icon' => 'open', 'dismissible' => true, ), ), ); return $notices; } add_filter('rsssl_notices', 'rsssl_admin_username_changed'); /** * Add admin as not allowed username * @param array $illegal_user_logins * * @return array */ function rsssl_prevent_admin_user_add(array $illegal_user_logins){ $illegal_user_logins[] = 'admin'; $illegal_user_logins[] = 'administrator'; return $illegal_user_logins; } add_filter( 'illegal_user_logins', 'rsssl_prevent_admin_user_add' ); /** * Rename admin user * @return bool */ function rsssl_rename_admin_user() { if ( !rsssl_user_can_manage() ) { return false; } //to be able to update the admin user email, we need to disable this filter temporarily remove_filter( 'illegal_user_logins', 'rsssl_prevent_admin_user_add' ); // Get user data for login admin $admin_user = get_user_by('login','admin'); if ( $admin_user ) { // Get the new user login $new_user_login = trim(sanitize_user(rsssl_get_option('new_admin_user_login'))); if ( rsssl_new_username_valid() ) { $admin_user_id = $admin_user->data->ID; $admin_userdata = get_userdata( $admin_user_id ); $admin_email = $admin_userdata->data->user_email; global $wpdb; //get current user hash $user_hash = $wpdb->get_var($wpdb->prepare("select user_pass from {$wpdb->base_prefix}users where ID = %s", $admin_user_id) ); //create temp email address $domain = site_url(); $parse = parse_url( $domain ); $host = $parse['host'] ?? 'example.com'; $email = "$new_user_login@$host"; // Do not send an e-mail with this temporary e-mail address add_filter('send_email_change_email', '__return_false'); // update e-mail for existing user. Cannot have two accounts connected to the same e-mail address $success = wp_update_user( array( 'ID' => $admin_user_id, 'user_email' => $email, ) ); if ( ! $success ) { return false; } // Populate the new user data. Use current 'admin' userdata wherever available $new_userdata = array( 'user_pass' => rsssl_generate_random_string( 12 ), //temp, overwrite with actual hash later. //(string) The plain-text user password. 'user_login' => $new_user_login, //(string) The user's login username. 'user_nicename' => isset( $admin_user->data->user_nicename ) ? $admin_user->data->user_nicename : '', //(string) The URL-friendly user name. 'user_url' => isset( $admin_user->data->user_url ) ? $admin_user->data->user_url : '', //(string) The user URL. 'user_email' => isset( $admin_email ) ? $admin_email : '', //(string) The user email address. 'display_name' => isset( $admin_user->data->display_name ) ? $admin_user->data->display_name : '', //(string) The user's display name. Default is the user's username. 'nickname' => isset( $admin_user->data->nickname ) ? $admin_user->data->nickname : '', //(string) The user's nickname. Default is the user's username. 'first_name' => isset( $admin_user->data->user_firstname ) ? $admin_user->data->user_firstname : '', //(string) The user's first name. For new users, will be used to build the first part of the user's display name if $display_name is not specified. 'last_name' => isset( $admin_user->data->user_lastname ) ? $admin_user->data->user_lastname : '', //(string) The user's last name. For new users, will be used to build the second part of the user's display name if $display_name is not specified. 'description' => isset( $admin_user->data->description ) ? $admin_user->data->description : '', //(string) The user's biographical description. 'rich_editing' => isset( $admin_user->data->rich_editing ) ? $admin_user->data->rich_editing : '', //(string|bool) Whether to enable the rich-editor for the user. False if not empty. 'syntax_highlighting' => isset( $admin_user->data->syntax_highlighting ) ? $admin_user->data->syntax_highlighting : '', //(string|bool) Whether to enable the rich code editor for the user. False if not empty. 'comment_shortcuts' => isset( $admin_user->data->comment_shortcuts ) ? $admin_user->data->comment_shortcuts : '', //(string|bool) Whether to enable comment moderation keyboard shortcuts for the user. Default false. 'admin_color' => isset( $admin_user->data->admin_color ) ? $admin_user->data->admin_color : '', //(string) Admin color scheme for the user. Default 'fresh'. 'use_ssl' => isset( $admin_user->data->use_ssl ) ? $admin_user->data->use_ssl : '', //(bool) Whether the user should always access the admin over https. Default false. 'user_registered' => isset( $admin_user->data->user_registered ) ? $admin_user->data->user_registered : '', //(string) Date the user registered. Format is 'Y-m-d H:i:s'. 'show_admin_bar_front' => isset( $admin_user->data->show_admin_bar_front ) ? $admin_user->data->show_admin_bar_front : '', //(string|bool) Whether to display the Admin Bar for the user on the site's front end. Default true. 'role' => isset( $admin_user->roles[0] ) ? $admin_user->roles[0] : '', //(string) User's role. 'locale' => isset( $admin_user->data->locale ) ? $admin_user->data->locale : '', //(string) User's locale. Default empty. ); // Create new admin user $new_user_id = wp_insert_user( $new_userdata ); if ( ! $new_user_id || is_wp_error($new_user_id) ) { return false; } //store original user hash in this user. $wpdb->update( $wpdb->base_prefix.'users', ['user_pass' => $user_hash ], ['ID' => $new_user_id] ); require_once( ABSPATH . 'wp-admin/includes/user.php' ); wp_delete_user( $admin_user_id, $new_user_id ); // On multisite we have to update the $wpdb->prefix . sitemeta -> meta_key -> site_admins -> meta_value to the new username if ( is_multisite() ) { global $wpdb; $site_admins = $wpdb->get_var( "SELECT meta_value FROM {$wpdb->base_prefix}sitemeta WHERE meta_key = 'site_admins'" ); if ( is_serialized( $site_admins ) ) { $unserialized = unserialize( $site_admins ); foreach ( $unserialized as $index => $site_admin ) { if ( $site_admin === 'admin' ) { $unserialized[ $index ] = $new_user_login; } } $site_admins = serialize( $unserialized ); } $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->base_prefix}sitemeta SET meta_value = %s WHERE meta_key = 'site_admins'", $site_admins ) ); } set_site_transient( 'rsssl_username_admin_changed', $new_user_login, DAY_IN_SECONDS ); } return true; } return true; } add_action('rsssl_after_saved_fields','rsssl_rename_admin_user', 30); /** * @return bool * * Notice condition */ function rsssl_username_admin_changed() { if ( get_site_transient('rsssl_username_admin_changed') ) { return true; } return false; } PK�������!�b ������(��security/wordpress/user-registration.phpnu�[��������<?php defined('ABSPATH') or die(); /** * Action to disable user registration * * @return bool */ function rsssl_users_can_register($value, $option) { return false; } add_filter( "option_users_can_register", 'rsssl_users_can_register', 999, 2 );PK�������!�l ��� �����security/server/index.phpnu�[��������<?php // You don't belong here. PK�������!�*Rc*��*��$��security/server/disable-indexing.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); if ( rsssl_is_in_deactivation_list('disable-indexing') ){ rsssl_remove_from_deactivation_list('disable-indexing'); } /** * Disable indexing * @param array $rules * @return [] */ function rsssl_disable_indexing_rules( $rules ) { $rules[] = ['rules' => "\n" . 'Options -Indexes', 'identifier' => 'Options -Indexes']; return $rules; } add_filter('rsssl_htaccess_security_rules', 'rsssl_disable_indexing_rules'); /** * Dropped suggestions for indexing in NGINX as indexing in NGINX is by default disabled. */ PK�������!�Es��s����security/integrations.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); global $rsssl_integrations_list; $rsssl_integrations_list = apply_filters( 'rsssl_integrations', array( 'user-registration' => array( 'folder' => 'wordpress', 'impact' => 'medium', 'risk' => 'medium', 'option_id' => 'disable_anyone_can_register', ), 'file-editing' => array( 'folder' => 'wordpress', 'impact' => 'medium', 'risk' => 'low', 'option_id' => 'disable_file_editing', ), 'hide-wp-version' => array( 'folder' => 'wordpress', 'impact' => 'low', 'risk' => 'low', 'option_id' => 'hide_wordpress_version', ), 'user-enumeration' => array( 'folder' => 'wordpress', 'impact' => 'low', 'risk' => 'medium', 'option_id' => 'disable_user_enumeration', ), 'block-code-execution-uploads' => array( 'folder' => 'wordpress', 'impact' => 'medium', 'risk' => 'low', 'option_id' => 'block_code_execution_uploads', ), 'prevent-login-info-leakage' => array( 'folder' => 'wordpress', 'impact' => 'low', 'risk' => 'high', 'option_id' => 'disable_login_feedback', ), 'disable-indexing' => array( 'folder' => 'server', 'impact' => 'low', 'risk' => 'medium', 'option_id' => 'disable_indexing', 'has_deactivation' => true, ), 'rename-admin-user' => array( 'folder' => 'wordpress', 'impact' => 'high', 'risk' => 'high', 'option_id' => 'rename_admin_user', ), 'display-name-is-login-name' => array( 'folder' => 'wordpress', 'impact' => 'low', 'risk' => 'medium', 'option_id' => 'block_display_is_login', ), 'disable-xmlrpc' => array( 'folder' => 'wordpress', 'impact' => 'medium', 'risk' => 'low', 'option_id' => 'disable_xmlrpc', 'always_include' => false, ), 'vulnerabilities' => array( 'folder' => 'wordpress', 'impact' => 'medium', 'risk' => 'medium', 'option_id' => 'enable_vulnerability_scanner', 'admin_only' => true, ), ) ); /** * Check if this plugin's integration is enabled * @param string $plugin * @param array $details * * @return bool */ if ( ! function_exists('rsssl_is_integration_enabled') ) { function rsssl_is_integration_enabled( $plugin, $details ) { global $rsssl_integrations_list; if ( ! array_key_exists( $plugin, $rsssl_integrations_list ) ) { return false; } if ( $details['always_include'] ) { return true; } //if an integration was just enabled, we keep it enabled until it removes itself from the list. //only for admin users if ( rsssl_is_in_deactivation_list( $plugin ) ) { return true; } $field_id = $details['option_id'] ?? false; if ( ! $field_id ) { return false; } $field_value = $details['option_value'] ?? false; $stored_value = rsssl_get_option( $field_id ); if ( $field_value ) { if ( $stored_value === $field_value ) { return true; } } else if ( $stored_value ) { return true; } return false; } } /** * code loaded without privileges to allow integrations between plugins and services, when enabled. */ if ( ! function_exists('rsssl_integrations') ) { function rsssl_integrations() { global $rsssl_integrations_list; foreach ( $rsssl_integrations_list as $plugin => $details ) { $details = wp_parse_args( $details, [ 'option_id' => false, 'always_include' => false, 'folder' => false, 'admin_only' => false, ] ); if ( $details['admin_only'] && ! rsssl_admin_logged_in() ) { continue; } if ( rsssl_is_integration_enabled( $plugin, $details ) ) { $path = apply_filters( 'rsssl_integrations_path', rsssl_path, $plugin ); $file = $path . 'security/' . $details['folder'] . "/" . $plugin . '.php'; if ( ! file_exists( $file ) ) { continue; } require_once( $file ); } } } } add_action( 'plugins_loaded', 'rsssl_integrations', 10 ); add_action( 'rsssl_after_saved_fields', 'rsssl_integrations', 20 ); /** * Check if a plugin is on the deactivation list * * @param string $plugin * * @return bool */ if ( ! function_exists('rsssl_is_in_deactivation_list') ) { function rsssl_is_in_deactivation_list( string $plugin ): bool { if ( ! is_admin() || ! is_user_logged_in() ) { return false; } if ( ! is_array( get_option( 'rsssl_deactivate_list', [] ) ) ) { delete_option( 'rsssl_deactivate_list' ); } return in_array( $plugin, get_option( 'rsssl_deactivate_list', [] ) ); } }PK�������!��W͖������!��security/tests/code-execution.phpnu�[��������<?php /** * Test file for Really Simple SSL to check if uploads directory has code execution permissions * */ echo "RSSSL CODE EXECUTION MARKER"; PK�������!�?t4s#���#�����security/tests/index.phpnu�[��������<?php // You don't belong here. ?> PK�������!�۲Q��Q����security/firewall-manager.phpnu�[��������<?php defined('ABSPATH') or die(); class rsssl_firewall_manager { private static $_this; function __construct() { if ( isset( self::$_this ) ) { wp_die( sprintf( __( '%s is a singleton class and you cannot create a second instance.', 'really-simple-ssl' ), get_class( $this ) ) ); } self::$_this = $this; //trigger this action to force rules update add_action( 'rsssl_update_rules', array($this, 'insert_advanced_header_file'), 10 ); add_action( 'rsssl_after_saved_fields', array($this, 'insert_advanced_header_file'), 100 ); add_action( 'rsssl_deactivate', array($this, 'remove_advanced_headers'), 20 ); add_filter( 'rsssl_notices', array($this, 'notices') ); } static function this() { return self::$_this; } /** * This class has it's own settings page, to ensure it can always be called * * @return bool */ public function is_settings_page() { if ( rsssl_is_logged_in_rest() ){ return true; } if ( isset($_GET["page"]) && $_GET["page"] === "really-simple-security" ) { return true; } return false; } /** * Generate and return a random nonce * @return int */ public function get_headers_nonce(){ if ( !get_site_option("rsssl_header_detection_nonce")) { update_site_option("rsssl_header_detection_nonce", rand(1000, 999999999) ); } return (int) get_site_option("rsssl_header_detection_nonce"); } /** * Check if any rules were added * @return bool */ public function has_rules(){ $rules = apply_filters('rsssl_firewall_rules', ''); return !empty(trim($rules)); } /** * Generate security rules, and advanced-headers.php file * */ public function insert_advanced_header_file() { if ( !rsssl_user_can_manage() && !defined( 'RSSSL_LEARNING_MODE' ) ) { return; } if ( wp_doing_ajax() ) { return; } $use_dynamic_path = WP_CONTENT_DIR === ABSPATH . 'wp-content'; $advanced_headers_file = WP_CONTENT_DIR . '/advanced-headers.php'; $rules = apply_filters('rsssl_firewall_rules', ''); //no rules? remove the file if ( empty(trim($rules) ) ) { if ( file_exists($advanced_headers_file) ) { if ( !defined('RSSSL_SAFE_MODE')) unlink($advanced_headers_file); } return; } $contents = '<?php' . "\n"; $contents .= '/**' . "\n"; $contents .= '* This file is created by Really Simple SSL' . "\n"; $contents .= '*/' . "\n\n"; //allow disabling of headers for detection purposes $contents .= 'if ( isset($_GET["rsssl_header_test"]) && (int) $_GET["rsssl_header_test"] === ' . $this->get_headers_nonce() . ' ) return;' . "\n\n"; $contents .= 'if (!defined("RSSSL_HEADERS_ACTIVE")) define("RSSSL_HEADERS_ACTIVE", true);'."\n"; $contents .= "//RULES START\n".$rules; // write to advanced-header.php file if ( is_writable( WP_CONTENT_DIR ) ) { file_put_contents( $advanced_headers_file, $contents ); } $wpconfig_path = $this->find_wp_config_path(); $wpconfig = file_get_contents( $wpconfig_path ); if ( is_writable( $wpconfig_path ) && strpos( $wpconfig, 'advanced-headers.php' ) === false ) { // As WP_CONTENT_DIR is not defined at this point in the wp-config, we can't use that. // for those setups where the WP_CONTENT_DIR is not in the default location, we hardcode the path. if ( $use_dynamic_path ) { $rule = 'if (file_exists( ABSPATH . "wp-content/advanced-headers.php")) {' . "\n"; $rule .= "\t" . 'require_once ABSPATH . "wp-content/advanced-headers.php";' . "\n" . '}'; } else { $rule = 'if (file_exists(\'' . WP_CONTENT_DIR . '/advanced-headers.php\')) {' . "\n"; $rule .= "\t" . 'require_once \'' . WP_CONTENT_DIR . '/advanced-headers.php\';' . "\n" . '}'; } //if RSSSL comment is found, insert after $rsssl_comment = '//END Really Simple SSL Server variable fix'; if ( strpos($wpconfig, $rsssl_comment)!==false ) { $pos = strrpos($wpconfig, $rsssl_comment); $updated = substr_replace($wpconfig, $rsssl_comment."\n" . $rule . "\n", $pos, strlen($rsssl_comment)); } else { $updated = preg_replace( '/' . '<\?php' . '/', '<?php' . "\n" . $rule . "\n", $wpconfig, 1 ); } file_put_contents( $wpconfig_path, $updated ); } //save errors if ( is_writable( WP_CONTENT_DIR ) && (is_writable( $wpconfig_path ) || strpos( $wpconfig, 'advanced-headers.php' ) !== false ) ) { update_option('rsssl_firewall_error', false, false ); } else { if ( !is_writable( $wpconfig_path ) ) { update_option('rsssl_firewall_error', 'wpconfig-notwritable', false ); } else if ( !is_writable( WP_CONTENT_DIR )) { update_option('rsssl_firewall_error', 'advanced-headers-notwritable', false ); } } } /** * Get the status for the firewall rules writing * * @return false|string */ public function firewall_write_error(){ return get_site_option('rsssl_firewall_error'); } /** * Get the status for the firewall * * @return bool */ public function firewall_active_error(){ if (!$this->has_rules()) { return false; } return !defined('RSSSL_HEADERS_ACTIVE'); } /** * Show some notices * @param array $notices * * @return array */ public function notices( $notices ) { $notices['firewall-error'] = array( 'callback' => 'RSSSL_SECURITY()->firewall_manager->firewall_write_error', 'score' => 5, 'output' => array( 'wpconfig-notwritable' => array( 'title' => __("Firewall", "really-simple-ssl"), 'msg' => __("A firewall rule was enabled, but the wp-config.php is not writable.", "really-simple-ssl").' '.__("Please set the wp-config.php to writable until the rule has been written.", "really-simple-ssl"), 'icon' => 'open', 'dismissible' => true, ), 'advanced-headers-notwritable' => array( 'title' => __("Firewall", "really-simple-ssl"), 'msg' => __("A firewall rule was enabled, but /the wp-content/ folder is not writable.", "really-simple-ssl").' '.__("Please set the wp-content folder to writable:", "really-simple-ssl"), 'icon' => 'open', 'dismissible' => true, ), ), 'show_with_options' => [ 'disable_http_methods', ] ); $notices['firewall-active'] = array( 'condition' => ['RSSSL_SECURITY()->firewall_manager->firewall_active_error'], 'callback' => '_true_', 'score' => 5, 'output' => array( 'true' => array( 'title' => __("Firewall", "really-simple-ssl"), 'msg' => __("A firewall rule was enabled, but the firewall does not seem to get loaded correctly.", "really-simple-ssl").' '.__("Please check if the advanced-headers.php file is included in the wp-config.php, and exists in the wp-content folder.", "really-simple-ssl"), 'icon' => 'open', 'dismissible' => true, ), ), 'show_with_options' => [ 'disable_http_methods', ] ); return $notices; } /** * Admin is not always loaded here, so we define our own function * @return string|null */ public function find_wp_config_path() { //limit nr of iterations to 5 $i = 0; $maxiterations = 5; $dir = ABSPATH; do { $i++; if ( file_exists($dir . "/wp-config.php") ) { return $dir . "/wp-config.php"; } } while (($dir = realpath("$dir/..")) && ($i < $maxiterations)); return null; } /** * Clear the headers * @return void */ public function remove_advanced_headers() { if ( !rsssl_user_can_manage() ) { return; } $file = ABSPATH . 'wp-content/advanced-headers.php'; $wpconfig_path = $this->find_wp_config_path(); if ( is_writable( $wpconfig_path ) ) { $wpconfig = file_get_contents( $wpconfig_path ); $rule = "if ( file_exists('" . $file . "') ) { " . "\n"; $rule .= "\t" . "require_once '$file';" . "\n" . "}"; if ( strpos( $wpconfig, $rule ) !== false ) { $updated_wpconfig = str_replace( $rule, '', $wpconfig ); file_put_contents( $wpconfig_path, $updated_wpconfig ); } } if ( file_exists( $file ) ) { if ( !defined('RSSSL_SAFE_MODE')) unlink( $file ); } } } PK�������!�i| ��| ����security/sync-settings.phpnu�[��������<?php defined('ABSPATH') or die(); /** * Conditionally we can decide to disable fields, add comments, and manipulate the value here * @param array $field * @param string $field_id * * @return array */ function rsssl_disable_fields($field, $field_id){ /** * If a feature is already enabled, but not by RSSSL, we can simply check for that feature, and if the option in RSSSL is active. * We set is as true, but disabled. Because our react interface only updates changed option, and this option never changes, this won't get set to true in the database. */ if ( $field_id==='change_debug_log_location' ){ if ( !rsssl_debug_log_file_exists_in_default_location() ) { if ( !rsssl_is_debugging_enabled() ) { if ( !$field['value'] ) { $field['value'] = true; $field['disabled'] = true; } } else if ( !rsssl_debug_log_value_is_default() ) { if ( !$field['value'] ) { $field['value'] = true; $field['disabled'] = true; } } //if not the default location $location = strstr( rsssl_get_debug_log_value(), 'wp-content' ); if (!empty($location) && rsssl_is_debugging_enabled() && !rsssl_debug_log_value_is_default() ) { $field['help'] = [ 'label' => 'default', 'title' => __( "Debug.log", 'really-simple-ssl' ), 'text' => __( "Changed debug.log location to:", 'really-simple-ssl' ).$location, ]; } } } if ( $field_id==='disable_indexing' ){ if ( !rsssl_directory_indexing_allowed() && !$field['value']) { $field['value'] = true; $field['disabled'] = true; } } if ( $field_id==='disable_anyone_can_register' ){ if ( !get_option('users_can_register') && !$field['value'] ) { $field['value'] = true; $field['disabled'] = true; } } if ( $field_id==='disable_http_methods' ){ if ( !rsssl_http_methods_allowed() && !$field['value'] ) { $field['value'] = true; $field['disabled'] = true; } } if ( $field_id==='disable_file_editing' ){ if ( defined('DISALLOW_FILE_EDIT') && DISALLOW_FILE_EDIT && !$field['value'] ) { $field['value'] = true; $field['disabled'] = true; } } if ( $field_id==='block_code_execution_uploads' ){ if ( !rsssl_code_execution_allowed() && !$field['value'] ) { $field['value'] = true; $field['disabled'] = true; } } if ( $field_id==='disable_xmlrpc' ){ if ( !rsssl_xmlrpc_enabled() && !$field['value'] ) { $field['value'] = true; $field['disabled'] = true; } } if ( $field_id==='rename_db_prefix' ){ if ( !rsssl_is_default_wp_prefix() && !$field['value'] ) { $field['value'] = true; $field['disabled'] = true; } } return $field; } add_filter('rsssl_field', 'rsssl_disable_fields', 10, 2); PK�������!�yfw��w����class-wp-cli.phpnu�[��������<?php defined( 'ABSPATH' ) or die(); /** * Usage * php wp rsssl activate_ssl * php wp rsssl deactivate_ssl * php wp rsssl update_option --site_has_ssl=true * php wp rsssl update_option --site_has_ssl=true --x_xss_protection=one * or: php wp-cli.phar rsssl update_option --x_xss_protection=one */ class rsssl_wp_cli { public function __construct() { } public function wp_cli_active() { return defined( 'WP_CLI' ) && WP_CLI; } /** * Activate SSL through CLI * * @return void * @throws \WP_CLI\ExitException */ public function activate_ssl() { if ( ! $this->wp_cli_active() ) { return; } update_option( 'rsssl_onboarding_dismissed', true, false ); update_option( 'rsssl_6_upgrade_completed', true, false ); $success = RSSSL()->admin->activate_ssl( false ); if ( $success ) { WP_CLI::success( 'SSL activated successfully' ); } else { WP_CLI::error( 'SSL activation failed' ); } } /** * Deactivate SSL through wp cli * * @return void */ public function deactivate_ssl() { if ( ! $this->wp_cli_active() ) { return; } RSSSL()->admin->deactivate(); WP_CLI::success( 'SSL deactivated' ); } /** * @param $name * @param $value * * @return void * @throws \WP_CLI\ExitException */ public function update_option( $args, $assoc_args ) { if ( ! $this->wp_cli_active() ) { return; } if ( empty( $assoc_args ) ) { WP_CLI::error( 'No options passed' ); } foreach ( $assoc_args as $name => $value ) { rsssl_update_option( sanitize_title( $name ), $value ); WP_CLI::success( "Option $name updated" ); } } } WP_CLI::add_command( 'rsssl', 'rsssl_wp_cli' ); PK�������!�O �� ����class-cache.phpnu�[��������<?php defined( 'ABSPATH' ) or die( ); if ( ! class_exists( 'rsssl_cache' ) ) { class rsssl_cache { private static $_this; public function __construct() { if ( isset( self::$_this ) ) { wp_die( 'you cannot create a second instance.' ); } self::$_this = $this; } public static function this() { return self::$_this; } /** * Flushes the cache for popular caching plugins to prevent mixed content errors * When .htaccess is changed, all traffic should flow over https, so clear cache when possible. * supported: W3TC, WP fastest Cache, Zen Cache, wp_rocket * * @since 2.0 * * @access public * */ public function flush() { if ( ! rsssl_user_can_manage() ) { return; } add_action( 'admin_head', array( $this, 'maybe_flush_w3tc_cache' ) ); add_action( 'admin_head', array( $this, 'maybe_flush_wp_optimize_cache' ) ); add_action( 'admin_head', array( $this, 'maybe_flush_litespeed_cache' ) ); add_action( 'admin_head', array( $this, 'maybe_flush_hummingbird_cache' ) ); add_action( 'admin_head', array( $this, 'maybe_flush_fastest_cache' ) ); add_action( 'admin_head', array( $this, 'maybe_flush_autoptimize_cache' ) ); add_action( 'admin_head', array( $this, 'maybe_flush_wp_rocket' ) ); add_action( 'admin_head', array( $this, 'maybe_flush_cache_enabler' ) ); add_action( 'admin_head', array( $this, 'maybe_flush_wp_super_cache' ) ); } public function maybe_flush_w3tc_cache() { if ( ! rsssl_user_can_manage() ) { return; } if ( function_exists( 'w3tc_flush_all' ) ) { w3tc_flush_all(); } } public function maybe_flush_wp_optimize_cache() { if ( ! rsssl_user_can_manage() ) { return; } if ( function_exists( 'wpo_cache_flush' ) ) { wpo_cache_flush(); } } public function maybe_flush_litespeed_cache() { if ( ! rsssl_user_can_manage() ) { return; } if ( class_exists( 'LiteSpeed' ) ) { Litespeed\Purge::purge_all(); } } public function maybe_flush_hummingbird_cache() { if ( ! rsssl_user_can_manage() ) { return; } if ( is_callable( array( 'Hummingbird\WP_Hummingbird', 'flush_cache' ) ) ) { Hummingbird\WP_Hummingbird::flush_cache(); } } public function maybe_flush_fastest_cache() { if ( ! rsssl_user_can_manage() ) { return; } if ( class_exists( 'WpFastestCache' ) ) { // Non-static cannot be called statically :: ( new WpFastestCache() )->deleteCache(); } } public function maybe_flush_autoptimize_cache() { if ( ! rsssl_user_can_manage() ) { return; } if ( class_exists( 'autoptimizeCache' ) ) { autoptimizeCache::clearall(); } } public function maybe_flush_wp_rocket() { if ( ! rsssl_user_can_manage() ) { return; } if ( function_exists( 'rocket_clean_domain' ) ) { rocket_clean_domain(); } } public function maybe_flush_cache_enabler() { if ( ! rsssl_user_can_manage() ) { return; } if ( class_exists( 'Cache_Enabler' ) ) { Cache_Enabler::clear_complete_cache(); } } public function maybe_flush_wp_super_cache() { if ( ! rsssl_user_can_manage() ) { return; } if ( function_exists( 'wp_cache_clear_cache' ) ) { wp_cache_clear_cache(); } } }//class closure } PK�������!�?뭎��������testssl/serverhttpson/.htaccessnu�[��������<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} !=on [NC] RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] </IfModule> PK�������!�������(��testssl/serverhttpson/ssl-test-page.htmlnu�[��������<html> <head> <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> </head> <body> This page is for testing SSL functionality. #SSL TEST PAGE# </body> </html> PK�������!�Rٗ������*��testssl/serverhttpxforwardedssl1/.htaccessnu�[��������<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:X-Forwarded-SSL} !=1 RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] </IfModule> PK�������!�������3��testssl/serverhttpxforwardedssl1/ssl-test-page.htmlnu�[��������<html> <head> <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> </head> <body> This page is for testing SSL functionality. #SSL TEST PAGE# </body> </html> PK�������!�Je������"��testssl/serverhttpxproto/.htaccessnu�[��������<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:X-Proto} !SSL RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] </IfModule> PK�������!�������+��testssl/serverhttpxproto/ssl-test-page.htmlnu�[��������<html> <head> <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> </head> <body> This page is for testing SSL functionality. #SSL TEST PAGE# </body> </html> PK�������!�;o��������testssl/serverport443/.htaccessnu�[��������<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{SERVER_PORT} !443 RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] </IfModule> PK�������!�������(��testssl/serverport443/ssl-test-page.htmlnu�[��������<html> <head> <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> </head> <body> This page is for testing SSL functionality. #SSL TEST PAGE# </body> </html> PK�������!�,=��������testssl/serverhttps1/.htaccessnu�[��������<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} !=1 RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] </IfModule> PK�������!�������'��testssl/serverhttps1/ssl-test-page.htmlnu�[��������<html> <head> <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> </head> <body> This page is for testing SSL functionality. #SSL TEST PAGE# </body> </html> PK�������!�݌w��������testssl/cloudflare/.htaccessnu�[��������<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"' RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] </IfModule> PK�������!�������%��testssl/cloudflare/ssl-test-page.htmlnu�[��������<html> <head> <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> </head> <body> This page is for testing SSL functionality. #SSL TEST PAGE# </body> </html> PK�������!�#Ǘ������+��testssl/serverhttpxforwardedsslon/.htaccessnu�[��������<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:X-Forwarded-SSL} !on RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] </IfModule> PK�������!�������4��testssl/serverhttpxforwardedsslon/ssl-test-page.htmlnu�[��������<html> <head> <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> </head> <body> This page is for testing SSL functionality. #SSL TEST PAGE# </body> </html> PK�������!�;m��������testssl/loadbalancer/.htaccessnu�[��������<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] </IfModule> PK�������!�������'��testssl/loadbalancer/ssl-test-page.htmlnu�[��������<html> <head> <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> </head> <body> This page is for testing SSL functionality. #SSL TEST PAGE# </body> </html> PK�������!�5��������testssl/cloudfront/.htaccessnu�[��������<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:CloudFront-Forwarded-Proto} !https RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] </IfModule> PK�������!�������%��testssl/cloudfront/ssl-test-page.htmlnu�[��������<html> <head> <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> </head> <body> This page is for testing SSL functionality. #SSL TEST PAGE# </body> </html> PK�������!�k$��������testssl/envhttps/.htaccessnu�[��������<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{ENV:HTTPS} !=on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] </IfModule> PK�������!�������#��testssl/envhttps/ssl-test-page.htmlnu�[��������<html> <head> <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> </head> <body> This page is for testing SSL functionality. #SSL TEST PAGE# </body> </html> PK�������!�N01��1����class-mixed-content-fixer.phpnu�[��������<?php defined('ABSPATH') or die("you do not have access to this page!"); if (!class_exists('rsssl_admin_mixed_content_fixer')) { class rsssl_mixed_content_fixer { private static $_this; public $http_urls = array(); public $mixed_content_fixer = false; public $hide_wordpress_version = false; function __construct() { if (isset(self::$_this)) wp_die(); self::$_this = $this; $this->mixed_content_fixer = is_ssl() && rsssl_get_option('mixed_content_fixer', true ); $this->hide_wordpress_version = rsssl_get_option('hide_wordpress_version' ); if ( !is_admin() && ($this->mixed_content_fixer || $this->hide_wordpress_version )) { $this->handle_output_buffer(); } else if ( is_admin() && is_ssl() && rsssl_get_option("admin_mixed_content_fixer") ) { $this->mixed_content_fixer = true; $this->handle_output_buffer(); } } static function this() { return self::$_this; } /** * * add action hooks at the start and at the end of the WP process. * * @since 2.3 * * @access public * */ public function handle_output_buffer() { /* Do not fix mixed content when call is coming from wp_api or from xmlrpc */ if (defined('JSON_REQUEST') && JSON_REQUEST) return; if (defined('XMLRPC_REQUEST') && XMLRPC_REQUEST) return; $this->build_url_list(); if ( is_admin() ) { add_action("admin_init", array($this, "start_buffer"), 100); add_action("shutdown", array($this, "end_buffer"), 999); } else { if ( rsssl_get_option("switch_mixed_content_fixer_hook") || (defined('RSSSL_CONTENT_FIXER_ON_INIT') && RSSSL_CONTENT_FIXER_ON_INIT)) { add_action("init", array($this, "start_buffer")); } else { add_action("template_redirect", array($this, "start_buffer")); } add_action("shutdown", array($this, "end_buffer"), 999); } } /** * Apply the mixed content fixer. * * @since 2.3 * * @access public * */ public function filter_buffer($buffer) { if ( $this->mixed_content_fixer ) { $buffer = $this->replace_insecure_links($buffer); } return apply_filters("rsssl_fixer_output", $buffer ); } /** * Start buffering the output * * @since 2.0 * * @access public * */ public function start_buffer() { ob_start(array($this, "filter_buffer")); } /** * Flush the output buffer * * @since 2.0 * * @access public * */ public function end_buffer() { if (ob_get_length()) ob_end_flush(); } /** * Creates an array of insecure links that should be https and an array of secure links to replace with * * @since 2.0 * * @access public * */ public function build_url_list() { $home = str_replace("https://", "http://", get_option('home') ); $root = str_replace("://www.", "://", $home); $www = str_replace("://", "://www.", $root); //for the escaped version, we only replace the home_url, not it's www or non www counterpart, as it is most likely not used $escaped_home = str_replace("/", "\/", $home); $this->http_urls = array( $www, $root, $escaped_home, "src='http://", 'src="http://', ); } /** * Just before the page is sent to the visitor's browser, all homeurl links are replaced with https. * * @since 1.0 * * @access public * */ public function replace_insecure_links($str) { //skip if file is xml if ( strpos( $str, "<?xml" ) === 0 ) { return $str; } $search_array = apply_filters('rlrsssl_replace_url_args', $this->http_urls); $ssl_array = str_replace(array("http://", "http:\/\/"), array("https://", "https:\/\/"), $search_array); $str = str_replace($search_array, $ssl_array, $str); //replace all http links except hyperlinks //all tags with src attr are already fixed by str_replace $pattern = array( '/url\([\'"]?\K(http:\/\/)(?=[^)]+)/i', '/<link [^>]*?href=[\'"]\K(http:\/\/)(?=[^\'"]+)/i', '/<meta property="og:image" [^>]*?content=[\'"]\K(http:\/\/)(?=[^\'"]+)/i', '/<form [^>]*?action=[\'"]\K(http:\/\/)(?=[^\'"]+)/i', ); $str = preg_replace($pattern, 'https://', $str); /* handle multiple images in srcset */ $str = preg_replace_callback('/<img[^\>]*[^\>\S]+srcset=[\'"]\K((?:[^"\'\s,]+\s*(?:\s+\d+[wx])(?:,\s*)?)+)["\']/', array($this, 'replace_src_set'), $str); return str_replace("<body", '<body data-rsssl=1', $str); } /** * Helper function * * */ public function replace_src_set($matches) { return str_replace("http://", "https://", $matches[0]); } } } PK�������!�:u��u����compatibility.phpnu�[��������<?php defined('ABSPATH') or die(); /** * File to prevent fatal errors when used with older pro versions * @deprecated */ if ( is_admin() && rsssl_user_can_manage() ) { class really_simple_ssl_legacy{ public $site_has_ssl; public $ssl_enabled; public function generate_enable_link(){} public function find_wp_config_path(){return '-';} public function contains_hsts(){} public function get_recommended_security_headers(){return [];} public function notice_html(){} } class rsssl_help_legacy { public function get_help_tip(){} } class rsssl_mixed_content_fixer_legacy { public function fix_mixed_content(){} } class rsssl_multisite_legacy { public $ssl_enabled_networkwide; public $mixed_content_admin; public $cert_expiration_warning; public $selected_networkwide_or_per_site; public function plugin_network_wide_active(){ return false; } } add_action('plugins_loaded', 'rsssl_compatibility_mode', 9); function rsssl_compatibility_mode() { if ( ! function_exists( 'get_plugin_data' ) ) { require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); } $plugin_data = false; $ms_file = WP_CONTENT_DIR . '/plugins/really-simple-ssl-pro-multisite/really-simple-ssl-pro-multisite.php'; $pro_file = WP_CONTENT_DIR . '/plugins/really-simple-ssl-pro/really-simple-ssl-pro.php'; if ( file_exists( $ms_file ) && is_plugin_active('really-simple-ssl-pro-multisite/really-simple-ssl-pro-multisite.php') ) { $plugin_data = get_plugin_data( $ms_file ); } else if ( file_exists( $pro_file ) && is_plugin_active('really-simple-ssl-pro/really-simple-ssl-pro.php')) { $plugin_data = get_plugin_data( $pro_file ); } if ( $plugin_data ) { $version = $plugin_data['Version'] ?? false; if ( version_compare( $version, '6.0', '<' ) ) { REALLY_SIMPLE_SSL::instance()->really_simple_ssl = new really_simple_ssl_legacy(); REALLY_SIMPLE_SSL::instance()->rsssl_mixed_content_fixer = new rsssl_mixed_content_fixer_legacy(); REALLY_SIMPLE_SSL::instance()->rsssl_help = new rsssl_help_legacy(); REALLY_SIMPLE_SSL::instance()->rsssl_multisite = new rsssl_multisite_legacy(); } } } }PK���������!�Q��������������������force-deactivate.txtnu�[��������PK���������!�Q@���� ������������W��upgrade.phpnu�[��������PK���������!�n,̈T��T��������������/��mailer/class-mail.phpnu�[��������PK���������!�?t4s#���#���������������N��mailer/index.phpnu�[��������PK���������!�_(��(��%������������N��mailer/templates/block-unbranded.htmlnu�[��������PK���������!�_(��(��������������^��mailer/templates/block.htmlnu�[��������PK���������!��M(��(��%������������qo��mailer/templates/email-unbranded.htmlnu�[��������PK���������!�?t4s#���#�����������������mailer/templates/index.phpnu�[��������PK���������!�뱿)��)��������������(��mailer/templates/email.htmlnu�[��������PK���������!�6����������������W��mailer/class-mail-admin.phpnu�[��������PK���������!�$8 #�� #��������������x��class-site-health.phpnu�[��������PK���������!�1��1�� ��������������readme.txtnu�[��������PK���������!�E2E��2E��"������������H�placeholders/class-placeholder.phpnu�[��������PK���������!�?t4s#���#����������������placeholders/index.phpnu�[��������PK���������!�m_}���� ������������5�gulpfile.jsnu�[��������PK���������!�5к"���"����������������languages/index.phpnu�[��������PK���������!�-�-��������������languages/really-simple-ssl.potnu�[��������PK���������!�d!! �� ��������������k�upgrade/upgrade-to-pro.min.jsnu�[��������PK���������!�vAd����������������A�upgrade/ajax.jsnu�[��������PK���������!�( ��( ���������������upgrade/upgrade-to-pro.css.mapnu�[��������PK���������!�h\h ��h ���������������upgrade/upgrade-to-pro.lessnu�[��������PK���������!�L/��/��!�������������upgrade/img/really-simple-ssl.pngnu�[��������PK���������!�E�����������������upgrade/img/burst.pngnu�[��������PK���������!�9ތ����������������)�upgrade/img/complianz-gdpr.pngnu�[��������PK���������!�D����������������;�upgrade/upgrade-to-pro.jsnu�[��������PK���������!�QC����������������L�upgrade/ajax.min.jsnu�[��������PK���������!�����������������O�upgrade/upgrade-to-pro.min.cssnu�[��������PK���������!�l ��� ���������������f�upgrade/index.phpnu�[��������PK���������!�����������������gf�upgrade/upgrade-to-pro.cssnu�[��������PK���������!� $g��g���������������upgrade/upgrade-to-pro.phpnu�[��������PK���������!�{I%��%���������������rlrsssl-really-simple-ssl.phpnu�[��������PK���������!�UL���� ������������q �security.mdnu�[��������PK���������!�6�'���'��������������Z�assets/css/admin.css.mapnu�[��������PK���������!�ẅ́����������������7�assets/css/admin.scssnu�[��������PK���������!�8_����������������@�assets/css/variables.scssnu�[��������PK���������!�� �� ��������������*Q�assets/css/rsssl-plugin.min.cssnu�[��������PK���������!�� �� ��#������������;\�assets/css/rtl/rsssl-plugin.min.cssnu�[��������PK���������!�� �� ��������������Pg�assets/css/rtl/plugin.min.cssnu�[��������PK���������!�/?%s�s�������������_r�assets/css/rtl/admin.min.cssnu�[��������PK���������!�d8s�s�������������x�assets/css/admin.min.cssnu�[��������PK���������!�?t4s#���#���������������jZ �assets/css/index.phpnu�[��������PK���������!�GYQ�Q�������������Z �assets/css/admin.cssnu�[��������PK���������!�u �� ��������������f �assets/css/rsssl-plugin.scssnu�[��������PK���������!�PY���������������� �assets/css/admin/layout.scssnu�[��������PK���������!�m �� ��������������1 �assets/css/admin/states.scssnu�[��������PK���������!�L0��0��%������������E< �assets/css/admin/modules/tooltip.scssnu�[��������PK���������!�:����%������������= �assets/css/admin/modules/bullets.scssnu�[��������PK���������!�?dN��N��$������������B �assets/css/admin/modules/badges.scssnu�[��������PK���������!�Wh����(������������ZK �assets/css/admin/modules/datatables.scssnu�[��������PK���������!�������������%������������_j �assets/css/admin/modules/ssltest.scssnu�[��������PK���������!�p [����$������������j �assets/css/admin/modules/wizard.scssnu�[��������PK���������!�����*������������#z �assets/css/admin/modules/toast/_toast.scssnu�[��������PK���������!�.��.��3������������i �assets/css/admin/modules/toast/_toastContainer.scssnu�[��������PK���������!�gmI����0������������ �assets/css/admin/modules/toast/_progressBar.scssnu�[��������PK���������!� �� ��+������������p �assets/css/admin/modules/toast/minimal.scssnu�[��������PK���������!�QUg����*������������ԇ �assets/css/admin/modules/toast/_theme.scssnu�[��������PK���������!�G.��.��*������������4 �assets/css/admin/modules/toast/_icons.scssnu�[��������PK���������!�u z���z���4������������ �assets/css/admin/modules/toast/animations/_spin.scssnu�[��������PK���������!�F����5������������ �assets/css/admin/modules/toast/animations/_slide.scssnu�[��������PK���������!�zf �� ��6������������ �assets/css/admin/modules/toast/animations/_bounce.scssnu�[��������PK���������!�����4������������C �assets/css/admin/modules/toast/animations/_flip.scssnu�[��������PK���������!�:tt����4������������7 �assets/css/admin/modules/toast/animations/_zoom.scssnu�[��������PK���������!�=����.������������f �assets/css/admin/modules/toast/_variables.scssnu�[��������PK���������!�{����0������������ �assets/css/admin/modules/toast/_closeButton.scssnu�[��������PK���������!�g��g��(������������ �assets/css/admin/modules/toast/main.scssnu�[��������PK���������!�#wb����(������������Q �assets/css/admin/modules/animations.scssnu�[��������PK���������!�s@����+������������- �assets/css/admin/modules/other-plugins.scssnu�[��������PK���������!�S����#������������ �assets/css/admin/modules/icons.scssnu�[��������PK���������!�[ t����'������������ �assets/css/admin/modules/dashboard.scssnu�[��������PK���������!�" ��" ��#������������ �assets/css/admin/modules/modal.scssnu�[��������PK���������!�<����+������������x �assets/css/admin/modules/wizard/notice.scssnu�[��������PK���������!�|$��$��7������������ �assets/css/admin/modules/wizard/mixed-content-scan.scssnu�[��������PK���������!�������4������������ �assets/css/admin/modules/wizard/vulnerabilities.scssnu�[��������PK���������!�)*����-������������[ �assets/css/admin/modules/wizard/snackbar.scssnu�[��������PK���������!�#o������7������������> �assets/css/admin/modules/wizard/permissions-policy.scssnu�[��������PK���������!�@ ����0������������ �assets/css/admin/modules/wizard/letsencrypt.scssnu�[��������PK���������!�V5Jk��k��2������������ �assets/css/admin/modules/wizard/learning-mode.scssnu�[��������PK���������!�DY����+������������ �assets/css/admin/modules/wizard/fields.scssnu�[��������PK���������!�0dp/��/��)������������ �assets/css/admin/modules/wizard/menu.scssnu�[��������PK���������!��Ǽ������&������������[# �assets/css/admin/modules/progress.scssnu�[��������PK���������!�* ��* ��%������������8 �assets/css/admin/modules/buttons.scssnu�[��������PK���������!�RBY��Y��(������������0C �assets/css/admin/modules/onboarding.scssnu�[��������PK���������!�E1��1��$������������E �assets/css/admin/modules/header.scssnu�[��������PK���������!�,����)������������fI �assets/css/admin/modules/placeholder.scssnu�[��������PK���������!�mqM����*������������sP �assets/css/admin/modules/new-features.scssnu�[��������PK���������!�ؗ����,������������S �assets/css/admin/modules/introcontainer.scssnu�[��������PK���������!�!Z3������%������������Y �assets/css/admin/modules/notices.scssnu�[��������PK���������!�7����)������������(Z �assets/css/admin/modules/tips-tricks.scssnu�[��������PK���������!�y����$������������_ �assets/css/admin/modules/two-fa.scssnu�[��������PK���������!�8w��w��-������������ a �assets/css/admin/modules/premium_overlay.scssnu�[��������PK���������!�J������������������f �assets/css/admin/index.phpnu�[��������PK���������!�#����������������Gg �assets/css/admin/theme.scssnu�[��������PK���������!�4����������������o �assets/css/admin/base.scssnu�[��������PK���������!�/ �� ��������������x �assets/css/rsssl-plugin.cssnu�[��������PK���������!�P.L��.L�������������� �assets/img/icon.pngnu�[��������PK���������!�Z" �� ��&������������ �assets/img/really-simple-ssl-intro.svgnu�[��������PK���������!�?t4s#���#��������������� �assets/img/index.phpnu�[��������PK���������!�wh��h��%������������I �assets/img/really-simple-ssl-logo.svgnu�[��������PK���������!�H����$������������;G �assets/img/really-simple-plugins.svgnu�[��������PK���������!�?t4s#���#���������������` �assets/index.phpnu�[��������PK���������!� AMA��A��������������` �onboarding/class-onboarding.phpnu�[��������PK���������!�?t4s#���#��������������� �onboarding/index.phpnu�[��������PK���������!�/����������������S �class-front-end.phpnu�[��������PK���������!� Qr���������������� �class-certificate.phpnu�[��������PK���������!�ST �� �� ������������n �functions.phpnu�[��������PK���������!�YʗA��A�������������� �system-status.phpnu�[��������PK���������!�rak �� �������������� �lets-encrypt/cron.phpnu�[��������PK���������!��#��#��*�������������lets-encrypt/class-letsencrypt-handler.phpnu�[��������PK���������!�j맄J��J���������������lets-encrypt/config/fields.phpnu�[��������PK���������!�{*����������������)�lets-encrypt/config/notices.phpnu�[��������PK���������!�?t4s#���#��������������� G�lets-encrypt/config/index.phpnu�[��������PK���������!�Q4i��i��#������������{G�lets-encrypt/config/class-hosts.phpnu�[��������PK���������!�2<Q �� ���������������lets-encrypt/letsencrypt.phpnu�[��������PK���������!�f~=A��=A���������������lets-encrypt/functions.phpnu�[��������PK���������!�?t4s#���#���#������������D�lets-encrypt/vendor/fbett/index.phpnu�[��������PK���������!� @\N��N��3�������������lets-encrypt/vendor/fbett/le_acme2/phpunit.xml.distnu�[��������PK���������!�Qs����;������������k�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Account.phpnu�[��������PK���������!�`9?m��m��J�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Account/Create.phpnu�[��������PK���������!�0$����G�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Account/Get.phpnu�[��������PK���������!�լY6��6��K�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Account/GetData.phpnu�[��������PK���������!�-7��7��J������������!�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Account/Update.phpnu�[��������PK���������!�ɓ*`����T������������z%�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Account/AbstractLocation.phpnu�[��������PK���������!�V\��\��N������������+�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Account/Deactivate.phpnu�[��������PK���������!�w-K ��K ��N������������|.�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Account/ChangeKeys.phpnu�[��������PK���������!�JG����H������������E:�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/GetDirectory.phpnu�[��������PK���������!�ٍ3X��X��M������������V=�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Authorization/Get.phpnu�[��������PK���������!�H~��~��O������������+C�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Authorization/Start.phpnu�[��������PK���������!�.哾_��_��H������������(J�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Order/Create.phpnu�[��������PK���������!�zbf��f��E������������P�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Order/Get.phpnu�[��������PK���������!�q,}��}��P������������V�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Order/GetCertificate.phpnu�[��������PK���������!�SP&4!��!��S������������]�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Order/RevokeCertificate.phpnu�[��������PK���������!�c����J������������{e�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/Order/Finalize.phpnu�[��������PK���������!�2R͜ �� ��K������������l�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/AbstractRequest.phpnu�[��������PK���������!� M����G������������3o�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Request/GetNewNonce.phpnu�[��������PK���������!�>W �� ��G������������Rr�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/AbstractKeyValuable.phpnu�[��������PK���������!�4����L������������}�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Struct/CertificateBundle.phpnu�[��������PK���������!�qW@��@��T������������(�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Struct/ChallengeAuthorizationKey.phpnu�[��������PK���������!�3H|q���q���K�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Account/Create.phpnu�[��������PK���������!�@n���n���H������������؅�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Account/Get.phpnu�[��������PK���������!�|��|��T�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Account/AbstractAccount.phpnu�[��������PK���������!�xws���s���L�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Account/GetData.phpnu�[��������PK���������!�%{r���r���K�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Account/Update.phpnu�[��������PK���������!�<,����U�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Account/AbstractLocation.phpnu�[��������PK���������!�z<v���v���O�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Account/Deactivate.phpnu�[��������PK���������!�mu������O�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Account/ChangeKeys.phpnu�[��������PK���������!�<'G����I������������#�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/GetDirectory.phpnu�[��������PK���������!�mv��v��M������������X�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/AbstractResponse.phpnu�[��������PK���������!�vdKN��N��N������������K�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Authorization/Get.phpnu�[��������PK���������!�%-��-��[�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Authorization/Struct/Challenge.phpnu�[��������PK���������!�<w����\������������ϣ�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Authorization/Struct/Identifier.phpnu�[��������PK���������!�|���|���P������������o�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Authorization/Start.phpnu�[��������PK���������!�8 Z��Z��`������������k�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Authorization/AbstractAuthorization.phpnu�[��������PK���������!�FWm���m���I������������U�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Order/Create.phpnu�[��������PK���������!�͒����F������������;�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Order/Get.phpnu�[��������PK���������!�caO��O��Q������������x�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Order/GetCertificate.phpnu�[��������PK���������!�^������T������������H�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Order/RevokeCertificate.phpnu�[��������PK���������!�Ӑo���o���K������������p�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Order/Finalize.phpnu�[��������PK���������!�q$����P������������Z�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/Order/AbstractOrder.phpnu�[��������PK���������!�b/����H������������ɽ�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Response/GetNewNonce.phpnu�[��������PK���������!� �� ��G�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Connector/Connector.phpnu�[��������PK���������!�Q����I������������o�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Connector/RawResponse.phpnu�[��������PK���������!�5\��\��B�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/SingletonTrait.phpnu�[��������PK���������!�z#?��?��R�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Cache/AbstractKeyValuableCache.phpnu�[��������PK���������!�05��5��G������������J�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Cache/OrderResponse.phpnu�[��������PK���������!�({:ɩ����K�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Cache/DirectoryResponse.phpnu�[��������PK���������!�T!U����J�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Cache/NewNonceResponse.phpnu�[��������PK���������!�Ix! ��! ��I������������O�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Cache/AccountResponse.phpnu�[��������PK���������!�f����K�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Utilities/RequestSigner.phpnu�[��������PK���������!�1|����I�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Utilities/Certificate.phpnu�[��������PK���������!�o:kD ��D ��J�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Utilities/KeyGenerator.phpnu�[��������PK���������!�@]����D������������b!�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Utilities/Base64.phpnu�[��������PK���������!� 2X��X��D������������%�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Utilities/Logger.phpnu�[��������PK���������!�tv ��v ��B������������Y,�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Authorizer/DNS.phpnu�[��������PK���������!�Vj#��#��C������������A6�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Authorizer/HTTP.phpnu�[��������PK���������!�݆����Q������������F�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Authorizer/AbstractAuthorizer.phpnu�[��������PK���������!�����P������������f[�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Authorizer/AbstractDNSWriter.phpnu�[��������PK���������!�G{7��{7��9������������]�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Order.phpnu�[��������PK���������!�by/#��#��M������������}�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Exception/InvalidResponse.phpnu�[��������PK���������!�w\������U�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Exception/DNSAuthorizationInvalid.phpnu�[��������PK���������!�.ۗ����O������������"�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Exception/AbstractException.phpnu�[��������PK���������!�R2b��b��N������������8�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Exception/RateLimitReached.phpnu�[��������PK���������!�QQt��t��N�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Exception/OpenSSLException.phpnu�[��������PK���������!�j.}{s���s���K������������ �lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Exception/StatusInvalid.phpnu�[��������PK���������!�-(������V�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Exception/HTTPAuthorizationInvalid.phpnu�[��������PK���������!�ʹz���z���R�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Exception/AuthorizationInvalid.phpnu�[��������PK���������!�MT������R�������������lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2/Exception/ExpiredAuthorization.phpnu�[��������PK���������!�r4��4��E������������b�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2Tests/AbstractTest.phpnu�[��������PK���������!�Fa����C������������ �lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2Tests/TestHelper.phpnu�[��������PK���������!�n4��4��L������������|�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2Tests/Authorizer/HTTPTest.phpnu�[��������PK���������!�ґ:SB��B��D������������,�lets-encrypt/vendor/fbett/le_acme2/src/LE_ACME2Tests/AccountTest.phpnu�[��������PK���������!� e �� ��-�������������lets-encrypt/vendor/fbett/le_acme2/LICENSE.mdnu�[��������PK���������!�$����0������������K�lets-encrypt/vendor/fbett/le_acme2/composer.jsonnu�[��������PK���������!�M О����,�������������lets-encrypt/vendor/fbett/le_acme2/README.mdnu�[��������PK���������!�?t4s#���#��������������� �lets-encrypt/vendor/index.phpnu�[��������PK���������!�y>������4������������z�lets-encrypt/vendor/composer/autoload_namespaces.phpnu�[��������PK���������!�}=����/�������������lets-encrypt/vendor/composer/platform_check.phpnu�[��������PK���������!�@������2�������������lets-encrypt/vendor/composer/autoload_classmap.phpnu�[��������PK���������!�I����*�������������lets-encrypt/vendor/composer/installed.phpnu�[��������PK���������!�P7����2�������������lets-encrypt/vendor/composer/InstalledVersions.phpnu�[��������PK���������!�l=-8��8��,�������������lets-encrypt/vendor/composer/ClassLoader.phpnu�[��������PK���������!�ciU����+������������o6�lets-encrypt/vendor/composer/installed.jsonnu�[��������PK���������!�?t4s#���#���&������������PF�lets-encrypt/vendor/composer/index.phpnu�[��������PK���������!�VS<i��i��.������������F�lets-encrypt/vendor/composer/autoload_real.phpnu�[��������PK���������!� .��.��$������������N�lets-encrypt/vendor/composer/LICENSEnu�[��������PK���������!�bZf��f��0������������S�lets-encrypt/vendor/composer/autoload_static.phpnu�[��������PK���������!�Y������.������������X�lets-encrypt/vendor/composer/autoload_psr4.phpnu�[��������PK���������!�A|������ ������������Z�lets-encrypt/vendor/autoload.phpnu�[��������PK���������!�?t4s#���#���#������������[�lets-encrypt/vendor/plesk/index.phpnu�[��������PK���������!�5ڰ~����6������������}[�lets-encrypt/vendor/plesk/api-php-lib/phpunit.xml.distnu�[��������PK���������!�o����@������������^�lets-encrypt/vendor/plesk/api-php-lib/src/Api/InternalClient.phpnu�[��������PK���������!�����E������������Ta�lets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/PhpHandler.phpnu�[��������PK���������!�sE����C������������g�lets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/EventLog.phpnu�[��������PK���������!� q����F������������@l�lets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/Certificate.phpnu�[��������PK���������!�`GR��R��A������������r�lets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/Server.phpnu�[��������PK���������!�u \��\��=�������������lets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/Ip.phpnu�[��������PK���������!�ni����A������������[�lets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/Locale.phpnu�[��������PK���������!�,?1 �� ��>������������Z�lets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/Dns.phpnu�[��������PK���������!�ׯ �� ��M�������������lets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/ProtectedDirectory.phpnu�[��������PK���������!�jl����D�������������lets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/SecretKey.phpnu�[��������PK���������!�Smo����D�������������lets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/SiteAlias.phpnu�[��������PK���������!�����B�������������lets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator/Session.phpnu�[��������PK���������!�"v%����8������������7�lets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct.phpnu�[��������PK���������!�N����G������������M�lets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/EventLog/Event.phpnu�[��������PK���������!�t����O�������������lets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/EventLog/DetailedEvent.phpnu�[��������PK���������!�C*����E������������B�lets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/Session/Info.phpnu�[��������PK���������!�1C����H������������_�lets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/PhpHandler/Info.phpnu�[��������PK���������!�"g$w��w��I�������������lets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/Site/GeneralInfo.phpnu�[��������PK���������!�3����B�������������lets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/Site/Info.phpnu�[��������PK���������!�DJXJ��J��I�������������lets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/Site/HostingInfo.phpnu�[��������PK���������!�pE����G������������j�lets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/SecretKey/Info.phpnu�[��������PK���������!�b/����D�������������lets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/Locale/Info.phpnu�[��������PK���������!�?R����A������������[�lets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/Dns/Info.phpnu�[��������PK���������!�����N�������������lets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/SiteAlias/GeneralInfo.phpnu�[��������PK���������!�|v����G�������������lets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/SiteAlias/Info.phpnu�[��������PK���������!�e~ ����I������������$�lets-encrypt/vendor/plesk/api-php-lib/src/Api/Struct/Certificate/Info.phpnu�[��������PK���������!�~!����=������������e�lets-encrypt/vendor/plesk/api-php-lib/src/Api/XmlResponse.phpnu�[��������PK���������!�������;������������l�lets-encrypt/vendor/plesk/api-php-lib/src/Api/Exception.phpnu�[��������PK���������!�������B�������������lets-encrypt/vendor/plesk/api-php-lib/src/Api/Client/Exception.phpnu�[��������PK���������!�pT ��T ��:�������������lets-encrypt/vendor/plesk/api-php-lib/src/Api/Operator.phpnu�[��������PK���������!�q5��5��8�������������lets-encrypt/vendor/plesk/api-php-lib/src/Api/Client.phpnu�[��������PK���������!�&��&��3������������(�lets-encrypt/vendor/plesk/api-php-lib/composer.jsonnu�[��������PK���������!�(C[����/������������-�lets-encrypt/vendor/plesk/api-php-lib/README.mdnu�[��������PK���������!� ������0������������6�lets-encrypt/vendor/plesk/api-php-lib/Dockerfilenu�[��������PK���������!�iMh���h���2������������W7�lets-encrypt/vendor/plesk/api-php-lib/.styleci.ymlnu�[��������PK���������!�2c������7������������!8�lets-encrypt/vendor/plesk/api-php-lib/wait-for-plesk.shnu�[��������PK���������!�ј+����8������������D9�lets-encrypt/vendor/plesk/api-php-lib/docker-compose.ymlnu�[��������PK���������!�e =<��<��-������������f;�lets-encrypt/vendor/plesk/api-php-lib/LICENSEnu�[��������PK���������!�f7���7���9������������=�lets-encrypt/vendor/plesk/api-php-lib/phpunit-watcher.ymlnu�[��������PK���������!�h7���7���1������������>�lets-encrypt/vendor/plesk/api-php-lib/.travis.ymlnu�[��������PK���������!�*7a���a���������������7?�lets-encrypt/composer.jsonnu�[��������PK���������!�?t4s#���#���������������?�lets-encrypt/index.phpnu�[��������PK���������!�#iH%-��%-��+������������K@�lets-encrypt/integrations/cpanel/cpanel.phpnu�[��������PK���������!�v����.������������m�lets-encrypt/integrations/cpanel/functions.phpnu�[��������PK���������!� DU��U��3������������|�lets-encrypt/integrations/directadmin/functions.phpnu�[��������PK���������!�8d����5�������������lets-encrypt/integrations/directadmin/directadmin.phpnu�[��������PK���������!�A4Z'��Z'��4������������ʒ�lets-encrypt/integrations/directadmin/httpsocket.phpnu�[��������PK���������!�?'����1�������������lets-encrypt/integrations/cloudways/cloudways.phpnu�[��������PK���������!�n7]����1�������������lets-encrypt/integrations/cloudways/functions.phpnu�[��������PK���������!�?t4s#���#���#������������W�lets-encrypt/integrations/index.phpnu�[��������PK���������!�8f����*�������������lets-encrypt/integrations/integrations.phpnu�[��������PK���������!�S>!��!��-�������������lets-encrypt/integrations/plesk/functions.phpnu�[��������PK���������!�&M �� ��)������������c�lets-encrypt/integrations/plesk/plesk.phpnu�[��������PK���������!�5Ѩ������1�������������lets-encrypt/integrations/hostgator/hostgator.phpnu�[��������PK���������!�/\^��^��!�������������lets-encrypt/class-le-restapi.phpnu�[��������PK���������!�o �� ��������������@�lets-encrypt/download.phpnu�[��������PK���������!�n{R����������������$�class-installer.phpnu�[��������PK���������!�l_"��"�� ������������5�composer.jsonnu�[��������PK���������!�?t4s#���#��� ������������K8�index.phpnu�[��������PK���������!�n����������������8�modal/src/index.jsnu�[��������PK���������!�: �� ��(������������:�modal/src/components/Modal/RssslModal.jsnu�[��������PK���������!�+C3- �� ��*������������'G�modal/src/components/Modal/RssslModal.scssnu�[��������PK���������!�k����;������������fQ�modal/src/components/DeactivationModal/DeactivationModal.jsnu�[��������PK���������!� �� ��������������e�modal/webpack.config.jsnu�[��������PK���������!� U��U��)������������f�modal/build/index.b167e8372488ba3980d4.jsnu�[��������PK���������!�9y������0�������������modal/build/index.f0747a4e3a76f14cbb01.asset.phpnu�[��������PK���������!� ����'������������}�modal/build/161.e0560cee31bfcb50f0b3.jsnu�[��������PK���������!�':Ѐ^ ��^ ��'������������n�modal/build/204.cd378a48efe26fc7867c.jsnu�[��������PK���������!�py8v��v��'������������# �modal/build/291.26a9269d87fda5210dac.jsnu�[��������PK���������!�I<yF��F��)������������/�modal/build/index.f0747a4e3a76f14cbb01.jsnu�[��������PK���������!�ٗ7.��.��)������������α�modal/build/index.855f8bc8ac202db563f6.jsnu�[��������PK���������!�\d��d��)������������U�modal/build/index.5c0c53e2db8c73c5db9d.jsnu�[��������PK���������!�C&v��v��'�������������modal/build/658.c1ae2f75f09af402e920.jsnu�[��������PK���������!�H����'������������_�modal/build/851.99d390afbb9ca3c28c19.jsnu�[��������PK���������!� O������0�������������modal/build/index.5c0c53e2db8c73c5db9d.asset.phpnu�[��������PK���������!�jYC��C���������������modal/build/433.cssnu�[��������PK���������!�vjo؂��؂��'������������e�modal/build/357.8ee6cb66c28a7f976884.jsnu�[��������PK���������!�B:Ĵ����������������~�modal/build/204.cssnu�[��������PK���������!�m������0�������������modal/build/index.b167e8372488ba3980d4.asset.phpnu�[��������PK���������!�F"������0������������Վ�modal/build/index.855f8bc8ac202db563f6.asset.phpnu�[��������PK���������!� D] ��] ��'�������������modal/build/433.c979d76891c58ebf0fd9.jsnu�[��������PK���������!�8wk �� ��'������������n�modal/build/204.ded1ffcbe4657d8be922.jsnu�[��������PK���������!�ҷv��v��'�������������modal/build/658.60c25cd5bb5febbcfd62.jsnu�[��������PK���������!�z����������������"�modal/modal.phpnu�[��������PK���������!�X����������������)�class-server.phpnu�[��������PK���������!� rW#R�R�������������1�class-admin.phpnu�[��������PK���������!�]���� ������������V�uninstall.phpnu�[��������PK���������!�3[V��V���������������class-multisite.phpnu�[��������PK���������!�JG��G�� ������������"�LICENSE.txtnu�[��������PK���������!�z2:`c��c��������������j�progress/class-progress.phpnu�[��������PK���������!�?t4s#���#���������������|�progress/index.phpnu�[��������PK���������!�hL����������������|�settings/src/index.jsnu�[��������PK���������!�AZ��Z��+�������������settings/src/LetsEncrypt/DnsVerification.jsnu�[��������PK���������!�}$��$��(�������������settings/src/LetsEncrypt/Installation.jsnu�[��������PK���������!�T����&������������9�settings/src/LetsEncrypt/Generation.jsnu�[��������PK���������!�J ������$�������������settings/src/LetsEncrypt/Activate.jsnu�[��������PK���������!�W;+��;+��'������������F�settings/src/LetsEncrypt/LetsEncrypt.jsnu�[��������PK���������!�$:!��:!��'�������������settings/src/LetsEncrypt/Directories.jsnu�[��������PK���������!�"����+������������i�settings/src/LetsEncrypt/letsEncryptData.jsnu�[��������PK���������!� Vv,��,��,������������]�settings/src/Onboarding/Items/PremiumItem.jsnu�[��������PK���������!�~,����-�������������settings/src/Onboarding/Items/CheckboxItem.jsnu�[��������PK���������!�]*����)������������9�settings/src/Onboarding/Items/ListItem.jsnu�[��������PK���������!�����*������������w�settings/src/Onboarding/Steps/StepEmail.jsnu�[��������PK���������!�%����(������������S�settings/src/Onboarding/Steps/StepPro.jsnu�[��������PK���������!�!pa>��>��-�������������settings/src/Onboarding/Steps/StepFeatures.jsnu�[��������PK���������!�Դʟ-��-��+������������3�settings/src/Onboarding/Steps/StepConfig.jsnu�[��������PK���������!�.Jy��y��,������������"�settings/src/Onboarding/Steps/StepPlugins.jsnu�[��������PK���������!�^:'��'��'������������&�settings/src/Onboarding/onboarding.scssnu�[��������PK���������!�m �� ��*������������+�settings/src/Onboarding/OnboardingModal.jsnu�[��������PK���������!�1Z��Z��%������������4�settings/src/Onboarding/checkbox.scssnu�[��������PK���������!�u������(������������3;�settings/src/Onboarding/PremiumItem.scssnu�[��������PK���������!�\L����-������������ <�settings/src/Onboarding/OnboardingControls.jsnu�[��������PK���������!�����%������������ V�settings/src/Onboarding/Onboarding.jsnu�[��������PK���������!�=Z%��%��)������������e�settings/src/Onboarding/OnboardingData.jsnu�[��������PK���������!�,H1��1��9������������%�settings/src/Dashboard/Vulnerabilities/Vulnerabilities.jsnu�[��������PK���������!�z#��#��?�������������settings/src/Dashboard/Vulnerabilities/VulnerabilitiesHeader.jsnu�[��������PK���������!�߱5����?�������������settings/src/Dashboard/Vulnerabilities/VulnerabilitiesFooter.jsnu�[��������PK���������!� .^����/�������������settings/src/Dashboard/Progress/ProgressData.jsnu�[��������PK���������!�W˃����6�������������settings/src/Dashboard/Progress/ProgressBlockHeader.jsnu�[��������PK���������!�mG �� ��1�������������settings/src/Dashboard/Progress/ProgressFooter.jsnu�[��������PK���������!�K�w����0������������ �settings/src/Dashboard/Progress/ProgressBlock.jsnu�[��������PK���������!�y^��^��9������������'�settings/src/Dashboard/OtherPlugins/OtherPluginsHeader.jsnu�[��������PK���������!�"J �� ��7�������������settings/src/Dashboard/OtherPlugins/OtherPluginsData.jsnu�[��������PK���������!�h0��0��3������������c�settings/src/Dashboard/OtherPlugins/OtherPlugins.jsnu�[��������PK���������!�7% ��% ��%�������������settings/src/Dashboard/TaskElement.jsnu�[��������PK���������!�'y��y��#������������p�settings/src/Dashboard/GridBlock.jsnu�[��������PK���������!�Ӛ �� ��'������������<�settings/src/Dashboard/DashboardPage.jsnu�[��������PK���������!�a^��^��5������������$�settings/src/Dashboard/TipsTricks/TipsTricksFooter.jsnu�[��������PK���������!� ����/������������ �settings/src/Dashboard/TipsTricks/TipsTricks.jsnu�[��������PK���������!�5"0��0��)������������)�settings/src/Dashboard/SslLabs/SslLabs.jsnu�[��������PK���������!�L����/������������WZ�settings/src/Dashboard/SslLabs/SslLabsFooter.jsnu�[��������PK���������!�}����/������������:]�settings/src/Dashboard/SslLabs/SslLabsHeader.jsnu�[��������PK���������!�R$$��$��-������������C_�settings/src/Dashboard/SslLabs/SslLabsData.jsnu�[��������PK���������!�?t4s#���#���������������z�settings/src/index.phpnu�[��������PK���������!�;Oj��j��������������-{�settings/src/utils/getAnchor.jsnu�[��������PK���������!� �� ���������������settings/src/utils/Error.jsnu�[��������PK���������!�a[D����������������!�settings/src/utils/Hyperlink.jsnu�[��������PK���������!�-u4����#������������ �settings/src/utils/ErrorBoundary.jsnu�[��������PK���������!�ic;Ȑ��Ȑ��������������C�settings/src/utils/Icon.jsnu�[��������PK���������!�:ł,��,�� ������������U&�settings/src/utils/formatting.jsnu�[��������PK���������!�n:S����������������-�settings/src/utils/lib.jsnu�[��������PK���������!�3~����������������/�settings/src/utils/api.jsnu�[��������PK���������!�//����������������I�settings/src/utils/sleeper.jsnu�[��������PK���������!�l/&��&��������������K�settings/src/utils/Flag/Flag.jsnu�[��������PK���������!�)+O����+������������L�settings/src/Placeholder/PagePlaceholder.jsnu�[��������PK���������!�C1_W����0������������P�settings/src/Placeholder/DashboardPlaceholder.jsnu�[��������PK���������!�� ����'������������R�settings/src/Placeholder/Placeholder.jsnu�[��������PK���������!�C>k��k��+������������T�settings/src/Placeholder/MenuPlaceholder.jsnu�[��������PK���������!�*l��l��0������������V�settings/src/Placeholder/DatatablePlaceholder.jsnu�[��������PK���������!�G5��5��/������������sX�settings/src/Placeholder/SettingsPlaceholder.jsnu�[��������PK���������!�<ڢ �� ��������������[�settings/src/Modal/Modal.jsnu�[��������PK���������!�$h����"������������Ah�settings/src/Modal/ModalControl.jsnu�[��������PK���������!�Y!��!��������������mj�settings/src/Modal/ModalData.jsnu�[��������PK���������!�^HZ'��Z'��������������m�settings/src/Menu/MenuData.jsnu�[��������PK���������!�k/wmq ��q ���������������settings/src/Menu/MenuItem.jsnu�[��������PK���������!�����������������B�settings/src/Menu/Menu.jsnu�[��������PK���������!�}SI �� ��������������N�settings/src/Header.jsnu�[��������PK���������!�X[����!�������������settings/src/Settings/Settings.jsnu�[��������PK���������!�$������,������������|�settings/src/Settings/License/LicenseData.jsnu�[��������PK���������!�q �� ��(�������������settings/src/Settings/License/License.jsnu�[��������PK���������!�yC���� �������������settings/src/Settings/Notices.jsnu�[��������PK���������!�!G��G�� �������������settings/src/Settings/Support.jsnu�[��������PK���������!�(!��!��3�������������settings/src/Settings/EventLog/EventLogDataTable.jsnu�[��������PK���������!�7 �� ��8������������ �settings/src/Settings/EventLog/EventLogDataTableStore.jsnu�[��������PK���������!�]'!��'!��&�������������settings/src/Settings/SettingsGroup.jsnu�[��������PK���������!�d_#����9������������J7�settings/src/Settings/AutoComplete/AutoCompleteControl.jsnu�[��������PK���������!�Ns����4������������?�settings/src/Settings/AutoComplete/AutoComplete.scssnu�[��������PK���������!�H����������������B�settings/src/Settings/Host.jsnu�[��������PK���������!�*Nq����������������H�settings/src/Settings/Help.jsnu�[��������PK���������!�q}l �� ��&������������N�settings/src/Settings/RolesDropDown.jsnu�[��������PK���������!�u��u��3������������]�settings/src/Settings/DynamicDataTable/SearchBar.jsnu�[��������PK���������!�0! �� ��?������������`�settings/src/Settings/DynamicDataTable/DynamicDataTableStore.jsnu�[��������PK���������!�<W����:������������k�settings/src/Settings/DynamicDataTable/DynamicDataTable.jsnu�[��������PK���������!�Ş[U��U��3������������_�settings/src/Settings/DynamicDataTable/AddButton.jsnu�[��������PK���������!�ě����&�������������settings/src/Settings/Host/HostData.jsnu�[��������PK���������!�q?Qz��z��"������������L�settings/src/Settings/Host/Host.jsnu�[��������PK���������!�yCY��Y��2�������������settings/src/Settings/LearningMode/ChangeStatus.jsnu�[��������PK���������!�>^? @��@��2������������ӕ�settings/src/Settings/LearningMode/LearningMode.jsnu�[��������PK���������!�f �� ��6�������������settings/src/Settings/LearningMode/LearningModeData.jsnu�[��������PK���������!�u=$����,�������������settings/src/Settings/LearningMode/Delete.jsnu�[��������PK���������!�Q�����������������settings/src/Settings/Button.jsnu�[��������PK���������!�8)������6������������O�settings/src/Settings/RiskConfiguration/datatable.scssnu�[��������PK���������!�G����=�������������settings/src/Settings/RiskConfiguration/NotificationTester.jsnu�[��������PK���������!�=K���K���2�������������settings/src/Settings/RiskConfiguration/modal.scssnu�[��������PK���������!� Q��Q��3������������N�settings/src/Settings/RiskConfiguration/RiskData.jsnu�[��������PK���������!�nk����B������������"�settings/src/Settings/RiskConfiguration/VulnerabilitiesOverview.jsnu�[��������PK���������!�1Ra����5������������;�settings/src/Settings/RiskConfiguration/RunnerData.jsnu�[��������PK���������!�Ų�=��=��8������������B�settings/src/Settings/RiskConfiguration/RiskComponent.jsnu�[��������PK���������!�, �� ��(������������'Q�settings/src/Settings/CheckboxControl.jsnu�[��������PK���������!�L^5����1������������\�settings/src/Settings/TwoFA/TwoFaRolesDropDown.jsnu�[��������PK���������!�e6A��A��)������������n�settings/src/Settings/TwoFA/RolesStore.jsnu�[��������PK���������!�9ô*���*���'������������ft�settings/src/Settings/TwoFA/select.scssnu�[��������PK���������!�a׳����2������������t�settings/src/Settings/TwoFA/TwoFaDataTableStore.jsnu�[��������PK���������!�B�(��(��-�������������settings/src/Settings/TwoFA/TwoFaDataTable.jsnu�[��������PK���������!�l����&������������(�settings/src/Settings/SelectControl.jsnu�[��������PK���������!�H��H��2������������ �settings/src/Settings/GeoBlockList/GeoDatatable.jsnu�[��������PK���������!�!J��J��9������������@�settings/src/Settings/GeoBlockList/TrustIpAddressModal.jsnu�[��������PK���������!�2:��2:��8������������ �settings/src/Settings/GeoBlockList/WhiteListDatatable.jsnu�[��������PK���������!�i��i��9������������J �settings/src/Settings/GeoBlockList/WhiteListTableStore.jsnu�[��������PK���������!�_|¶.��.��7������������_d �settings/src/Settings/GeoBlockList/GeoDataTableStore.jsnu�[��������PK���������!� -{��{��/������������| �settings/src/Settings/GeoBlockList/AddButton.jsnu�[��������PK���������!�,_E;��;��#������������V �settings/src/Settings/FieldsData.jsnu�[��������PK���������!�CSN��N��#������������x �settings/src/Settings/FilterData.jsnu�[��������PK���������!�3T'��'��:������������ �settings/src/Settings/MixedContentScan/MixedContentScan.jsnu�[��������PK���������!�EL �� ��:������������ �settings/src/Settings/MixedContentScan/MixedContentData.jsnu�[��������PK���������!�9��9��C������������ !�settings/src/Settings/LimitLoginAttempts/IpAddressDataTableStore.jsnu�[��������PK���������!�! �� ��8������������D!�settings/src/Settings/LimitLoginAttempts/AddUserModal.jsnu�[��������PK���������!�Np2 �� ��0������������S!�settings/src/Settings/LimitLoginAttempts/Cidr.jsnu�[��������PK���������!�82(��(��A������������\!�settings/src/Settings/LimitLoginAttempts/CountryDataTableStore.jsnu�[��������PK���������!�^!��!��=������������!�settings/src/Settings/LimitLoginAttempts/AddIpAddressModal.jsnu�[��������PK���������!�"7*!����:������������E!�settings/src/Settings/LimitLoginAttempts/IpAddressInput.jsnu�[��������PK���������!�<;=��=��<������������!�settings/src/Settings/LimitLoginAttempts/CountryDatatable.jsnu�[��������PK���������!�6��6��>������������7!�settings/src/Settings/LimitLoginAttempts/IpAddressDatatable.jsnu�[��������PK���������!�b����B������������"�settings/src/Settings/LimitLoginAttempts/LimitLoginAttemptsData.jsnu�[��������PK���������!�ڷW,��,��9������������"�settings/src/Settings/LimitLoginAttempts/UserDatatable.jsnu�[��������PK���������!�e5,��,��>������������&A"�settings/src/Settings/LimitLoginAttempts/UserDataTableStore.jsnu�[��������PK���������!�@9'��'��%������������X"�settings/src/Settings/PostDropDown.jsnu�[��������PK���������!� 1w��w��'������������<n"�settings/src/Settings/PremiumOverlay.jsnu�[��������PK���������!�6����!������������ w"�settings/src/Settings/Password.jsnu�[��������PK���������!�WQ>��>��������������L{"�settings/src/Settings/Field.jsnu�[��������PK���������!�fe3����*������������2"�settings/src/Settings/PermissionsPolicy.jsnu�[��������PK���������!�1X"��"��������������%"�settings/src/Page.jsnu�[��������PK���������!�9������������������"�settings/config/mails.phpnu�[��������PK���������!�l ����������������o"�settings/config/config.phpnu�[��������PK���������!�RYњ����������������#�settings/config/menu.phpnu�[��������PK���������!�b ��b ��)������������c$�settings/config/disable-fields-filter.phpnu�[��������PK���������!�?t4s#���#���������������xo$�settings/config/index.phpnu�[��������PK���������!�0wyB �� ��������������o$�settings/webpack.prod.jsnu�[��������PK���������!�%}}��}��������������8q$�settings/webpack.config.jsnu�[��������PK���������!�:Ьy��y��������������s$�settings/settings.phpnu�[��������PK���������!�?t4s#���#���������������F$�settings/index.phpnu�[��������PK���������!�M������������������$�settings/webpack.dev.jsnu�[��������PK���������!�%����*������������$�settings/build/393.558c6c40a4c776a58969.jsnu�[��������PK���������!�5dV�V�,������������]%�settings/build/index.949c228dda25c895581b.jsnu�[��������PK���������!�PqP����*������������Z&�settings/build/814.3a902150d64a573787ce.jsnu�[��������PK���������!�xVB��B��������������!'�settings/build/124.cssnu�[��������PK���������!�fS��*������������H8'�settings/build/307.38249a2a2ddf98a57875.jsnu�[��������PK���������!�_(������3������������DG)�settings/build/index.949c228dda25c895581b.asset.phpnu�[��������PK���������!�#: �� ��*������������bH)�settings/build/588.2934ac808737314da558.jsnu�[��������PK���������!�R��)������������lU)�settings/build/59.2b8cb9a1b67150ada2fd.jsnu�[��������PK���������!�h<��<��(������������Y-�settings/build/8.01179b5213247b02e257.jsnu�[��������PK���������!�$��$��������������K-�settings/build/814.cssnu�[��������PK���������!�+~��~��*������������9.�settings/build/439.98a0ea7305ad7622c383.jsnu�[��������PK���������!��NmQ��mQ��*������������M.�settings/build/838.27735719272896b2c464.jsnu�[��������PK���������!�.I��I��*������������.�settings/build/361.2faddb7f371fc911c2f1.jsnu�[��������PK���������!�#P%�%�)������������/�settings/build/43.5782841cd77291fd781f.jsnu�[��������PK���������!�5iq�q�*������������50�settings/build/124.4fd0d3c41809db0344d3.jsnu�[��������PK���������!�P����*������������"B9�settings/build/778.f7f7013a567067838984.jsnu�[��������PK���������!�gה����������������9�ssl-test-page.phpnu�[��������PK���������!�08k��k��������������9�security/hardening.phpnu�[��������PK���������!�(E0 �� ��������������9�security/cron.phpnu�[��������PK���������!�O����������������:�security/security.phpnu�[��������PK���������!�]vK��K��#������������\ :�security/deactivate-integration.phpnu�[��������PK���������!�6'��'��������������:�security/notices.phpnu�[��������PK���������!� ?SB��B��������������8:�security/functions.phpnu�[��������PK���������!�l ��� ���������������{:�security/index.phpnu�[��������PK���������!�ZH0��0��������������r{:�security/tests.phpnu�[��������PK���������!�.R��R��'������������::�security/wordpress/user-enumeration.phpnu�[��������PK���������!�.9+����#������������:�security/wordpress/file-editing.phpnu�[��������PK���������!�6 �� ��&������������:�security/wordpress/hide-wp-version.phpnu�[��������PK���������!�6ϭ����&������������:�security/wordpress/vulnerabilities.phpnu�[��������PK���������!�z| �� ��3������������ʵ;�security/wordpress/block-code-execution-uploads.phpnu�[��������PK���������!�N ` �� ��2������������<;�security/wordpress/vulnerabilities/FileStorage.phpnu�[��������PK���������!�9$��$��?������������b;�security/wordpress/vulnerabilities/class-rsssl-file-storage.phpnu�[��������PK���������!�ʵU��U��>������������;�security/wordpress/vulnerabilities/class-rsssl-folder-name.phpnu�[��������PK���������!��l����%������������;�security/wordpress/disable-xmlrpc.phpnu�[��������PK���������!�Э&��&��1������������;�security/wordpress/display-name-is-login-name.phpnu�[��������PK���������!�?t4s#���#���������������;�security/wordpress/index.phpnu�[��������PK���������!�����������������;�security/wordpress/rest-api.phpnu�[��������PK���������!�d����1������������;�security/wordpress/prevent-login-info-leakage.phpnu�[��������PK���������!�p*��*��(������������;�security/wordpress/rename-admin-user.phpnu�[��������PK���������!�b ������(������������T<�security/wordpress/user-registration.phpnu�[��������PK���������!�l ��� ���������������<�security/server/index.phpnu�[��������PK���������!�*Rc*��*��$������������<�security/server/disable-indexing.phpnu�[��������PK���������!�Es��s�������������� <�security/integrations.phpnu�[��������PK���������!��W͖������!������������H4<�security/tests/code-execution.phpnu�[��������PK���������!�?t4s#���#���������������/5<�security/tests/index.phpnu�[��������PK���������!�۲Q��Q��������������5<�security/firewall-manager.phpnu�[��������PK���������!�i| ��| ��������������8U<�security/sync-settings.phpnu�[��������PK���������!�yfw��w��������������_<�class-wp-cli.phpnu�[��������PK���������!�O �� ��������������f<�class-cache.phpnu�[��������PK���������!�?뭎������������������s<�testssl/serverhttpson/.htaccessnu�[��������PK���������!�������(������������t<�testssl/serverhttpson/ssl-test-page.htmlnu�[��������PK���������!�Rٗ������*������������u<�testssl/serverhttpxforwardedssl1/.htaccessnu�[��������PK���������!�������3������������v<�testssl/serverhttpxforwardedssl1/ssl-test-page.htmlnu�[��������PK���������!�Je������"������������w<�testssl/serverhttpxproto/.htaccessnu�[��������PK���������!�������+������������x<�testssl/serverhttpxproto/ssl-test-page.htmlnu�[��������PK���������!�;o������������������{y<�testssl/serverport443/.htaccessnu�[��������PK���������!�������(������������Yz<�testssl/serverport443/ssl-test-page.htmlnu�[��������PK���������!�,=������������������P{<�testssl/serverhttps1/.htaccessnu�[��������PK���������!�������'������������&|<�testssl/serverhttps1/ssl-test-page.htmlnu�[��������PK���������!�݌w������������������}<�testssl/cloudflare/.htaccessnu�[��������PK���������!�������%������������~<�testssl/cloudflare/ssl-test-page.htmlnu�[��������PK���������!�#Ǘ������+������������~<�testssl/serverhttpxforwardedsslon/.htaccessnu�[��������PK���������!�������4������������<�testssl/serverhttpxforwardedsslon/ssl-test-page.htmlnu�[��������PK���������!�;m������������������<�testssl/loadbalancer/.htaccessnu�[��������PK���������!�������'������������ہ<�testssl/loadbalancer/ssl-test-page.htmlnu�[��������PK���������!�5������������������т<�testssl/cloudfront/.htaccessnu�[��������PK���������!�������%������������ƒ<�testssl/cloudfront/ssl-test-page.htmlnu�[��������PK���������!�k$������������������<�testssl/envhttps/.htaccessnu�[��������PK���������!�������#������������<�testssl/envhttps/ssl-test-page.htmlnu�[��������PK���������!�N01��1��������������~<�class-mixed-content-fixer.phpnu�[��������PK���������!�:u��u��������������<�compatibility.phpnu�[��������PK��������<���