Version Description
- Mar 7 2018 =
- [NEW FEATURE] Image Optimization Added level up guidance.
- [REFACTOR] Image Optimization Refactored Image Optimization class.
- [IAPI] Image Optimization New European Image Optimization server (EU2).
- [IMPROVEMENT] Image Optimization Manual pull action continues pulling until complete.
- [IMPROVEMENT] CDN Multiple CDNs can now be randomized for a single resource.
- [IMPROVEMENT] Image Optimization Improved compatibility of long src images.
- [IMPROVEMENT] Image Optimization Reduced runtime load.
- [IMPROVEMENT] Image Optimization Avoid potential loss/reset of notified images status when pulling.
- [IMPROVEMENT] Image Optimization Avoid duplicated optimization for multiple records in Media that have the same image source.
- [IMPROVEMENT] Image Optimization Fixed issue where phantom images continued to show in not-yet-requested queue.
- [BUGFIX] Core Improved compatibility when upgrading outside of WP Admin. (@jikatal @TylorB)
- [BUGFIX] Crawler Improved HTTP/2 compatibility to avoid erroneous blacklisting.
- [BUGFIX] Crawler Changing Delay setting will use server variable for min value validation if set.
- [UPDATE] Crawler Added HTTP/2 protocol switch in the Crawler settings.
- [UPDATE] Removed unnecessary translation strings.
- [GUI] Display translated role group name string instead of English values. (@Richard Hordern)
- [GUI] Added Join LiteSpeed Slack link.
- [GUI] Import / Export Cosmetic changes to Import Settings file field.
- [INTEGRATION] Improved compatibility with WPML Media for Image Optimization. (@szmigieldesign)
Download this release
Release Info
Developer | LiteSpeedTech |
Plugin | ![]() |
Version | 2.0 |
Comparing to | |
See all releases |
Code changes from version 1.9.1.1 to 2.0
- admin/admin-api.class.php +18 -18
- admin/litespeed-cache-admin-display.class.php +76 -0
- admin/litespeed-cache-admin-error.class.php +0 -7
- admin/litespeed-cache-admin-settings.class.php +30 -11
- admin/litespeed-cache-admin.class.php +18 -20
- admin/tpl/image_optimization.php +79 -20
- admin/tpl/inc/admin_footer.php +14 -12
- admin/tpl/manage/manage_purge.php +1 -1
- admin/tpl/setting/settings_advanced.php +2 -2
- admin/tpl/setting/settings_cdn.php +43 -21
- admin/tpl/setting/settings_crawler.php +24 -8
- admin/tpl/setting/settings_esi.php +2 -2
- admin/tpl/setting/settings_excludes.php +4 -4
- admin/tpl/setting/settings_inc.cache_browser.php +1 -1
- admin/tpl/setting/settings_inc.cache_favicon.php +1 -1
- admin/tpl/setting/settings_inc.cache_mobile.php +2 -2
- admin/tpl/setting/settings_inc.cache_object.php +18 -18
- admin/tpl/setting/settings_inc.cache_resources.php +1 -1
- admin/tpl/setting/settings_inc.exclude_cookies.php +1 -1
- admin/tpl/setting/settings_inc.exclude_useragent.php +1 -1
- admin/tpl/setting/settings_inc.media_webp.php +1 -1
- admin/tpl/setting/settings_media.php +1 -1
- admin/tpl/setting/settings_optimize.php +2 -2
- admin/tpl/setting/settings_purge.php +1 -1
- admin/tpl/setting/settings_tuning.php +9 -9
- admin/tpl/settings.php +5 -2
- cli/litespeed-cache-cli-admin.class.php +2 -0
- css/iziModal.min.css +6 -0
- css/litespeed.css +142 -30
- inc/activation.class.php +10 -0
- inc/cdn.class.php +37 -2
- inc/config.class.php +16 -5
- inc/crawler.class.php +2 -0
- inc/data.class.php +149 -17
- inc/data_structure/img_optm.sql +20 -0
- inc/data_structure/optm.sql +8 -0
- inc/gui.class.php +6 -4
- inc/img_optm.class.php +1640 -0
- inc/import.class.php +1 -1
- inc/litespeed-cache.class.php +11 -1
- inc/litespeed.autoload.php +2 -0
- inc/media.class.php +4 -1247
- inc/router.class.php +17 -15
- inc/task.class.php +2 -2
- inc/vary.class.php +13 -13
- includes/litespeed-cache-activation.class.php +10 -0
- includes/litespeed-cache-cdn.class.php +37 -2
- includes/litespeed-cache-config.class.php +16 -5
- includes/litespeed-cache-crawler.class.php +2 -0
- includes/litespeed-cache-gui.class.php +6 -4
- includes/litespeed-cache-router.class.php +17 -15
- includes/litespeed-cache-task.class.php +2 -2
- includes/litespeed-cache-vary.class.php +13 -13
- includes/litespeed-cache.class.php +11 -1
- includes/litespeed.autoload.php +2 -0
- js/iziModal.min.js +6 -0
- languages/litespeed-cache.pot +337 -309
- lib/litespeed/litespeed-crawler.class.php +44 -7
- litespeed-cache.php +1 -1
- readme.txt +30 -6
- thirdparty/lscwp-3rd-woocommerce.cls.php +1 -1
admin/admin-api.class.php
CHANGED
@@ -79,16 +79,16 @@ class LiteSpeed_Cache_Admin_API
|
|
79 |
|
80 |
switch ( LiteSpeed_Cache_Router::verify_type() ) {
|
81 |
case self::TYPE_NOTIFY_IMG :
|
82 |
-
|
83 |
break ;
|
84 |
|
85 |
case self::TYPE_CHECK_IMG :
|
86 |
$instance->validate_lsserver() ;
|
87 |
-
|
88 |
break ;
|
89 |
|
90 |
case self::TYPE_IMG_DESTROY_CALLBACK :
|
91 |
-
|
92 |
break ;
|
93 |
|
94 |
default:
|
@@ -143,7 +143,7 @@ class LiteSpeed_Cache_Admin_API
|
|
143 |
private function _request_callback()
|
144 |
{
|
145 |
$key_hash = get_option( self::DB_API_KEY_HASH ) ;
|
146 |
-
LiteSpeed_Cache_Log::debug(
|
147 |
exit( $key_hash ) ;
|
148 |
}
|
149 |
|
@@ -157,7 +157,7 @@ class LiteSpeed_Cache_Admin_API
|
|
157 |
public static function sapi_valiate_passive_callback()
|
158 |
{
|
159 |
if ( empty( $_REQUEST[ 'hash' ] ) ) {
|
160 |
-
LiteSpeed_Cache_Log::debug(
|
161 |
return false ;
|
162 |
}
|
163 |
$instance = self::get_instance() ;
|
@@ -166,7 +166,7 @@ class LiteSpeed_Cache_Admin_API
|
|
166 |
$key_hash = get_option( self::DB_API_KEY_HASH ) ;
|
167 |
$hash_check = md5( $key_hash ) === $_REQUEST[ 'hash' ] ;
|
168 |
|
169 |
-
LiteSpeed_Cache_Log::debug(
|
170 |
|
171 |
return $hash_check ;
|
172 |
}
|
@@ -184,18 +184,18 @@ class LiteSpeed_Cache_Admin_API
|
|
184 |
|
185 |
// don't have auth_key yet
|
186 |
if ( ! $instance->_iapi_key ) {
|
187 |
-
LiteSpeed_Cache_Log::debug(
|
188 |
return false ;
|
189 |
}
|
190 |
|
191 |
// Once client has auth_key, each time when callback to check, need to carry on this key
|
192 |
if ( empty( $_REQUEST[ 'auth_key' ] ) ) {
|
193 |
-
LiteSpeed_Cache_Log::debug(
|
194 |
return false ;
|
195 |
}
|
196 |
|
197 |
$res = md5( $instance->_iapi_key ) === $_REQUEST[ 'auth_key' ] ;
|
198 |
-
LiteSpeed_Cache_Log::debug(
|
199 |
return $res ;
|
200 |
}
|
201 |
|
@@ -234,7 +234,7 @@ class LiteSpeed_Cache_Admin_API
|
|
234 |
|
235 |
// Check if get key&server correctly
|
236 |
if ( empty( $json[ 'auth_key' ] ) ) {
|
237 |
-
LiteSpeed_Cache_Log::debug(
|
238 |
$msg = sprintf( __( 'IAPI Error %s', 'litespeed-cache' ), $json ) ;
|
239 |
LiteSpeed_Cache_Admin_Display::error( $msg ) ;
|
240 |
return ;
|
@@ -242,7 +242,7 @@ class LiteSpeed_Cache_Admin_API
|
|
242 |
|
243 |
// store data into option locally
|
244 |
update_option( self::DB_API_KEY, $json[ 'auth_key' ] ) ;
|
245 |
-
LiteSpeed_Cache_Log::debug(
|
246 |
|
247 |
$this->_iapi_key = $json[ 'auth_key' ] ;
|
248 |
}
|
@@ -256,7 +256,7 @@ class LiteSpeed_Cache_Admin_API
|
|
256 |
private function _reset_key()
|
257 |
{
|
258 |
delete_option( self::DB_API_KEY ) ;
|
259 |
-
LiteSpeed_Cache_Log::debug(
|
260 |
|
261 |
$msg = __( 'Reset IAPI key successfully.', 'litespeed-cache' ) ;
|
262 |
LiteSpeed_Cache_Admin_Display::succeed( $msg ) ;
|
@@ -281,7 +281,7 @@ class LiteSpeed_Cache_Admin_API
|
|
281 |
|
282 |
$url = $server . '/' . $action ;
|
283 |
|
284 |
-
LiteSpeed_Cache_Log::debug(
|
285 |
|
286 |
$param = array(
|
287 |
'auth_key' => $this->_iapi_key,
|
@@ -297,7 +297,7 @@ class LiteSpeed_Cache_Admin_API
|
|
297 |
|
298 |
if ( is_wp_error( $response ) ) {
|
299 |
$error_message = $response->get_error_message() ;
|
300 |
-
LiteSpeed_Cache_Log::debug(
|
301 |
return $error_message ;
|
302 |
}
|
303 |
|
@@ -305,12 +305,12 @@ class LiteSpeed_Cache_Admin_API
|
|
305 |
$json = json_decode( $response[ 'body' ], true ) ;
|
306 |
|
307 |
if ( ! is_array( $json ) ) {
|
308 |
-
LiteSpeed_Cache_Log::debug(
|
309 |
return $response[ 'body' ] ;
|
310 |
}
|
311 |
|
312 |
if ( ! empty( $json[ '_err' ] ) ) {
|
313 |
-
LiteSpeed_Cache_Log::debug(
|
314 |
$msg = __( 'Failed to communicate with LiteSpeed image server', 'litespeed-cache' ) . ': ' . $json[ '_err' ] ;
|
315 |
$msg .= $this->_parse_link( $json ) ;
|
316 |
LiteSpeed_Cache_Admin_Display::error( $msg ) ;
|
@@ -318,7 +318,7 @@ class LiteSpeed_Cache_Admin_API
|
|
318 |
}
|
319 |
|
320 |
if ( ! empty( $json[ '_info' ] ) ) {
|
321 |
-
LiteSpeed_Cache_Log::debug(
|
322 |
$msg = __( 'Message from LiteSpeed image server', 'litespeed-cache' ) . ': ' . $json[ '_info' ] ;
|
323 |
$msg .= $this->_parse_link( $json ) ;
|
324 |
LiteSpeed_Cache_Admin_Display::info( $msg ) ;
|
@@ -326,7 +326,7 @@ class LiteSpeed_Cache_Admin_API
|
|
326 |
}
|
327 |
|
328 |
if ( ! empty( $json[ '_note' ] ) ) {
|
329 |
-
LiteSpeed_Cache_Log::debug(
|
330 |
$msg = __( 'Message from LiteSpeed image server', 'litespeed-cache' ) . ': ' . $json[ '_note' ] ;
|
331 |
$msg .= $this->_parse_link( $json ) ;
|
332 |
LiteSpeed_Cache_Admin_Display::note( $msg ) ;
|
79 |
|
80 |
switch ( LiteSpeed_Cache_Router::verify_type() ) {
|
81 |
case self::TYPE_NOTIFY_IMG :
|
82 |
+
LiteSpeed_Cache_Img_Optm::get_instance()->notify_img() ;
|
83 |
break ;
|
84 |
|
85 |
case self::TYPE_CHECK_IMG :
|
86 |
$instance->validate_lsserver() ;
|
87 |
+
LiteSpeed_Cache_Img_Optm::get_instance()->check_img() ;
|
88 |
break ;
|
89 |
|
90 |
case self::TYPE_IMG_DESTROY_CALLBACK :
|
91 |
+
LiteSpeed_Cache_Img_Optm::get_instance()->img_optimize_destroy_callback() ;
|
92 |
break ;
|
93 |
|
94 |
default:
|
143 |
private function _request_callback()
|
144 |
{
|
145 |
$key_hash = get_option( self::DB_API_KEY_HASH ) ;
|
146 |
+
LiteSpeed_Cache_Log::debug( '[IAPI] __callback request hash: ' . $key_hash ) ;
|
147 |
exit( $key_hash ) ;
|
148 |
}
|
149 |
|
157 |
public static function sapi_valiate_passive_callback()
|
158 |
{
|
159 |
if ( empty( $_REQUEST[ 'hash' ] ) ) {
|
160 |
+
LiteSpeed_Cache_Log::debug( '[IAPI] __callback bypassed passive check' ) ;
|
161 |
return false ;
|
162 |
}
|
163 |
$instance = self::get_instance() ;
|
166 |
$key_hash = get_option( self::DB_API_KEY_HASH ) ;
|
167 |
$hash_check = md5( $key_hash ) === $_REQUEST[ 'hash' ] ;
|
168 |
|
169 |
+
LiteSpeed_Cache_Log::debug( '[IAPI] __callback hash check ' . $key_hash . ': ' . ( $hash_check ? 'passed' : 'failed' ) ) ;
|
170 |
|
171 |
return $hash_check ;
|
172 |
}
|
184 |
|
185 |
// don't have auth_key yet
|
186 |
if ( ! $instance->_iapi_key ) {
|
187 |
+
LiteSpeed_Cache_Log::debug( '[IAPI] __callback aggressive check failed: No init key' ) ;
|
188 |
return false ;
|
189 |
}
|
190 |
|
191 |
// Once client has auth_key, each time when callback to check, need to carry on this key
|
192 |
if ( empty( $_REQUEST[ 'auth_key' ] ) ) {
|
193 |
+
LiteSpeed_Cache_Log::debug( '[IAPI] __callback aggressive check failed: lack of auth_key' ) ;
|
194 |
return false ;
|
195 |
}
|
196 |
|
197 |
$res = md5( $instance->_iapi_key ) === $_REQUEST[ 'auth_key' ] ;
|
198 |
+
LiteSpeed_Cache_Log::debug( '[IAPI] __callback aggressive auth_key check: ' . ( $res ? 'passed' : 'failed' ) ) ;
|
199 |
return $res ;
|
200 |
}
|
201 |
|
234 |
|
235 |
// Check if get key&server correctly
|
236 |
if ( empty( $json[ 'auth_key' ] ) ) {
|
237 |
+
LiteSpeed_Cache_Log::debug( '[IAPI] request key failed: ', $json ) ;
|
238 |
$msg = sprintf( __( 'IAPI Error %s', 'litespeed-cache' ), $json ) ;
|
239 |
LiteSpeed_Cache_Admin_Display::error( $msg ) ;
|
240 |
return ;
|
242 |
|
243 |
// store data into option locally
|
244 |
update_option( self::DB_API_KEY, $json[ 'auth_key' ] ) ;
|
245 |
+
LiteSpeed_Cache_Log::debug( '[IAPI] applied auth_key' ) ;
|
246 |
|
247 |
$this->_iapi_key = $json[ 'auth_key' ] ;
|
248 |
}
|
256 |
private function _reset_key()
|
257 |
{
|
258 |
delete_option( self::DB_API_KEY ) ;
|
259 |
+
LiteSpeed_Cache_Log::debug( '[IAPI] delete auth_key' ) ;
|
260 |
|
261 |
$msg = __( 'Reset IAPI key successfully.', 'litespeed-cache' ) ;
|
262 |
LiteSpeed_Cache_Admin_Display::succeed( $msg ) ;
|
281 |
|
282 |
$url = $server . '/' . $action ;
|
283 |
|
284 |
+
LiteSpeed_Cache_Log::debug( '[IAPI] posting to : ' . $url ) ;
|
285 |
|
286 |
$param = array(
|
287 |
'auth_key' => $this->_iapi_key,
|
297 |
|
298 |
if ( is_wp_error( $response ) ) {
|
299 |
$error_message = $response->get_error_message() ;
|
300 |
+
LiteSpeed_Cache_Log::debug( '[IAPI] failed to post: ' . $error_message ) ;
|
301 |
return $error_message ;
|
302 |
}
|
303 |
|
305 |
$json = json_decode( $response[ 'body' ], true ) ;
|
306 |
|
307 |
if ( ! is_array( $json ) ) {
|
308 |
+
LiteSpeed_Cache_Log::debug( '[IAPI] failed to decode post json: ' . $response[ 'body' ] ) ;
|
309 |
return $response[ 'body' ] ;
|
310 |
}
|
311 |
|
312 |
if ( ! empty( $json[ '_err' ] ) ) {
|
313 |
+
LiteSpeed_Cache_Log::debug( '[IAPI] _err: ' . $json[ '_err' ] ) ;
|
314 |
$msg = __( 'Failed to communicate with LiteSpeed image server', 'litespeed-cache' ) . ': ' . $json[ '_err' ] ;
|
315 |
$msg .= $this->_parse_link( $json ) ;
|
316 |
LiteSpeed_Cache_Admin_Display::error( $msg ) ;
|
318 |
}
|
319 |
|
320 |
if ( ! empty( $json[ '_info' ] ) ) {
|
321 |
+
LiteSpeed_Cache_Log::debug( '[IAPI] _info: ' . $json[ '_info' ] ) ;
|
322 |
$msg = __( 'Message from LiteSpeed image server', 'litespeed-cache' ) . ': ' . $json[ '_info' ] ;
|
323 |
$msg .= $this->_parse_link( $json ) ;
|
324 |
LiteSpeed_Cache_Admin_Display::info( $msg ) ;
|
326 |
}
|
327 |
|
328 |
if ( ! empty( $json[ '_note' ] ) ) {
|
329 |
+
LiteSpeed_Cache_Log::debug( '[IAPI] _note: ' . $json[ '_note' ] ) ;
|
330 |
$msg = __( 'Message from LiteSpeed image server', 'litespeed-cache' ) . ': ' . $json[ '_note' ] ;
|
331 |
$msg .= $this->_parse_link( $json ) ;
|
332 |
LiteSpeed_Cache_Admin_Display::note( $msg ) ;
|
admin/litespeed-cache-admin-display.class.php
CHANGED
@@ -71,6 +71,15 @@ class LiteSpeed_Cache_Admin_Display
|
|
71 |
add_action('admin_enqueue_scripts', array($this, 'check_messages')) ;// We can do this bcos admin_notices hook is after admin_enqueue_scripts hook in wp-admin/admin-header.php
|
72 |
}
|
73 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
// add menus ( Also check for mu-plugins)
|
75 |
if ( $is_network_admin && ( is_plugin_active_for_network( LSCWP_BASENAME ) || defined( 'LSCWP_MU_PLUGIN' ) ) ) {
|
76 |
add_action('network_admin_menu', array($this, 'register_admin_menu')) ;
|
@@ -931,6 +940,73 @@ class LiteSpeed_Cache_Admin_Display
|
|
931 |
. '</a>' ;
|
932 |
}
|
933 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
934 |
/**
|
935 |
* Get the current instance object.
|
936 |
*
|
71 |
add_action('admin_enqueue_scripts', array($this, 'check_messages')) ;// We can do this bcos admin_notices hook is after admin_enqueue_scripts hook in wp-admin/admin-header.php
|
72 |
}
|
73 |
|
74 |
+
/**
|
75 |
+
* In case this is called outside the admin page
|
76 |
+
* @see https://codex.wordpress.org/Function_Reference/is_plugin_active_for_network
|
77 |
+
* @since 2.0
|
78 |
+
*/
|
79 |
+
if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
|
80 |
+
require_once( ABSPATH . '/wp-admin/includes/plugin.php' ) ;
|
81 |
+
}
|
82 |
+
|
83 |
// add menus ( Also check for mu-plugins)
|
84 |
if ( $is_network_admin && ( is_plugin_active_for_network( LSCWP_BASENAME ) || defined( 'LSCWP_MU_PLUGIN' ) ) ) {
|
85 |
add_action('network_admin_menu', array($this, 'register_admin_menu')) ;
|
940 |
. '</a>' ;
|
941 |
}
|
942 |
|
943 |
+
/**
|
944 |
+
* Return groups string
|
945 |
+
*
|
946 |
+
* @since 2.0
|
947 |
+
* @access public
|
948 |
+
*/
|
949 |
+
public static function print_plural( $num, $kind = 'group' )
|
950 |
+
{
|
951 |
+
if ( $num > 1 ) {
|
952 |
+
switch ( $kind ) {
|
953 |
+
case 'group' :
|
954 |
+
return sprintf( __( '%s groups', 'litespeed-cache' ), $num ) ;
|
955 |
+
|
956 |
+
case 'image' :
|
957 |
+
return sprintf( __( '%s images', 'litespeed-cache' ), $num ) ;
|
958 |
+
|
959 |
+
default:
|
960 |
+
return $num ;
|
961 |
+
}
|
962 |
+
|
963 |
+
}
|
964 |
+
|
965 |
+
switch ( $kind ) {
|
966 |
+
case 'group' :
|
967 |
+
return sprintf( __( '%s group', 'litespeed-cache' ), $num ) ;
|
968 |
+
|
969 |
+
case 'image' :
|
970 |
+
return sprintf( __( '%s image', 'litespeed-cache' ), $num ) ;
|
971 |
+
|
972 |
+
default:
|
973 |
+
return $num ;
|
974 |
+
}
|
975 |
+
}
|
976 |
+
|
977 |
+
/**
|
978 |
+
* Return guidance html
|
979 |
+
*
|
980 |
+
* @since 2.0
|
981 |
+
* @access public
|
982 |
+
*/
|
983 |
+
public static function guidance( $title, $steps, $current_step )
|
984 |
+
{
|
985 |
+
if ( $current_step === 'done' ) {
|
986 |
+
$current_step = count( $steps ) + 1 ;
|
987 |
+
}
|
988 |
+
|
989 |
+
$percentage = ' (' . floor( ( $current_step - 1 ) * 100 / count( $steps ) ) . '%)' ;
|
990 |
+
|
991 |
+
$html = '<div class="litespeed-guide">'
|
992 |
+
. '<h2>' . $title . $percentage . '</h2>'
|
993 |
+
. '<ol>' ;
|
994 |
+
foreach ( $steps as $k => $v ) {
|
995 |
+
$step = $k + 1 ;
|
996 |
+
if ( $current_step > $step ) {
|
997 |
+
$html .= '<li class="litespeed-guide-done">' ;
|
998 |
+
}
|
999 |
+
else {
|
1000 |
+
$html .= '<li>' ;
|
1001 |
+
}
|
1002 |
+
$html .= $v . '</li>' ;
|
1003 |
+
}
|
1004 |
+
|
1005 |
+
$html .= '</ol></div>' ;
|
1006 |
+
|
1007 |
+
return $html ;
|
1008 |
+
}
|
1009 |
+
|
1010 |
/**
|
1011 |
* Get the current instance object.
|
1012 |
*
|
admin/litespeed-cache-admin-error.class.php
CHANGED
@@ -41,7 +41,6 @@ class LiteSpeed_Cache_Admin_Error
|
|
41 |
const E_SETTING_CUSTOM_SITEMAP_READ = 3030 ;
|
42 |
const E_SETTING_CUSTOM_SITEMAP_PARSE = 3031 ;
|
43 |
|
44 |
-
const E_SETTING_NUMERIC = 3500 ;
|
45 |
const E_SETTING_CAT = 3510 ;
|
46 |
const E_SETTING_TAG = 3520 ;
|
47 |
const E_SETTING_LC = 3530 ; // login cookie setting
|
@@ -155,12 +154,6 @@ class LiteSpeed_Cache_Admin_Error
|
|
155 |
return __('Can not parse custom sitemap xml file: %s.', 'litespeed-cache') . ' '
|
156 |
. sprintf(__('Please make sure the file is xml format and the %s extension is installed on the server.', 'litespeed-cache'), 'php-xml') ;
|
157 |
|
158 |
-
// Admin settings with expected parameters for message.
|
159 |
-
case self::E_SETTING_NUMERIC:
|
160 |
-
// %1 is the name of the option, %2 is the minimum integer allowed.
|
161 |
-
return __('%1$s must be an integer between %2$d and %3$d',
|
162 |
-
'litespeed-cache') ;
|
163 |
-
|
164 |
case self::E_SETTING_CAT:
|
165 |
// %s is the category attempted to be added.
|
166 |
return __('Removed category "%s" from list, ID does not exist.',
|
41 |
const E_SETTING_CUSTOM_SITEMAP_READ = 3030 ;
|
42 |
const E_SETTING_CUSTOM_SITEMAP_PARSE = 3031 ;
|
43 |
|
|
|
44 |
const E_SETTING_CAT = 3510 ;
|
45 |
const E_SETTING_TAG = 3520 ;
|
46 |
const E_SETTING_LC = 3530 ; // login cookie setting
|
154 |
return __('Can not parse custom sitemap xml file: %s.', 'litespeed-cache') . ' '
|
155 |
. sprintf(__('Please make sure the file is xml format and the %s extension is installed on the server.', 'litespeed-cache'), 'php-xml') ;
|
156 |
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
case self::E_SETTING_CAT:
|
158 |
// %s is the category attempted to be added.
|
159 |
return __('Removed category "%s" from list, ID does not exist.',
|
admin/litespeed-cache-admin-settings.class.php
CHANGED
@@ -16,8 +16,6 @@ class LiteSpeed_Cache_Admin_Settings
|
|
16 |
private $_options ;
|
17 |
private $_err ;
|
18 |
|
19 |
-
private $_err_msg_numeric ;
|
20 |
-
|
21 |
private $_max_int = 2147483647 ;
|
22 |
|
23 |
/**
|
@@ -28,7 +26,21 @@ class LiteSpeed_Cache_Admin_Settings
|
|
28 |
*/
|
29 |
private function __construct()
|
30 |
{
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
}
|
33 |
|
34 |
/**
|
@@ -343,14 +355,14 @@ class LiteSpeed_Cache_Admin_Settings
|
|
343 |
LiteSpeed_Cache_Config::OPID_PRIVATE_TTL => array( __( 'Default Private Cache', 'litespeed-cache' ), 60, 3600 ),
|
344 |
LiteSpeed_Cache_Config::OPID_FRONT_PAGE_TTL => array( __( 'Default Front Page', 'litespeed-cache' ), 30, $this->_max_int ),
|
345 |
LiteSpeed_Cache_Config::OPID_FEED_TTL => array( __( 'Feed', 'litespeed-cache' ), 0, $this->_max_int, 30 ),
|
346 |
-
LiteSpeed_Cache_Config::OPID_404_TTL => array(
|
347 |
-
LiteSpeed_Cache_Config::OPID_403_TTL => array(
|
348 |
-
LiteSpeed_Cache_Config::OPID_500_TTL => array(
|
349 |
) ;
|
350 |
foreach ( $ids as $id => $v ) {
|
351 |
list( $desc, $min, $max ) = $v ;
|
352 |
if ( ! $this->_check_ttl( $this->_input, $id, $min, $max ) ) {
|
353 |
-
$this->_err[] =
|
354 |
}
|
355 |
else {
|
356 |
if ( ! empty( $v[ 3 ] ) && $this->_input[ $id ] < $v[ 3 ] ) {
|
@@ -841,7 +853,7 @@ class LiteSpeed_Cache_Admin_Settings
|
|
841 |
|
842 |
$id = LiteSpeed_Cache_Config::OPID_LOG_FILE_SIZE ;
|
843 |
if ( ! $this->_check_ttl( $this->_input, $id, 3, 3000 ) ) {
|
844 |
-
$this->_err[] =
|
845 |
}
|
846 |
else {
|
847 |
$this->_options[ $id ] = $this->_input[ $id ] ;
|
@@ -881,6 +893,7 @@ class LiteSpeed_Cache_Admin_Settings
|
|
881 |
LiteSpeed_Cache_Config::CRWL_PAGES,
|
882 |
LiteSpeed_Cache_Config::CRWL_CATS,
|
883 |
LiteSpeed_Cache_Config::CRWL_TAGS,
|
|
|
884 |
) ;
|
885 |
foreach ( $ids as $id ) {
|
886 |
$this->_options[ $id ] = self::parse_onoff( $this->_input, $id ) ;
|
@@ -906,8 +919,14 @@ class LiteSpeed_Cache_Admin_Settings
|
|
906 |
}
|
907 |
$this->_options[ $id ] = $this->_input[ $id ] ;
|
908 |
|
|
|
|
|
|
|
|
|
|
|
|
|
909 |
$ids = array(
|
910 |
-
LiteSpeed_Cache_Config::CRWL_USLEEP => array( __( 'Delay', 'litespeed-cache' ),
|
911 |
LiteSpeed_Cache_Config::CRWL_RUN_DURATION => array( __( 'Run Duration', 'litespeed-cache' ), 0, $this->_max_int ),
|
912 |
LiteSpeed_Cache_Config::CRWL_RUN_INTERVAL => array( __( 'Cron Interval', 'litespeed-cache' ), 60, $this->_max_int ),
|
913 |
LiteSpeed_Cache_Config::CRWL_CRAWL_INTERVAL => array( __( 'Whole Interval', 'litespeed-cache' ), 0, $this->_max_int ),
|
@@ -916,7 +935,7 @@ class LiteSpeed_Cache_Admin_Settings
|
|
916 |
foreach ( $ids as $id => $v ) {
|
917 |
list( $desc, $min, $max ) = $v ;
|
918 |
if ( ! $this->_check_ttl( $this->_input, $id, $min, $max ) ) {
|
919 |
-
$this->_err[] =
|
920 |
}
|
921 |
else {
|
922 |
$this->_options[ $id ] = $this->_input[ $id ] ;
|
@@ -989,7 +1008,7 @@ class LiteSpeed_Cache_Admin_Settings
|
|
989 |
foreach ( $ids as $id => $v ) {
|
990 |
list( $desc, $min, $max ) = $v ;
|
991 |
if ( ! $this->_check_ttl( $this->_input, $id, $min, $max ) ) {
|
992 |
-
$this->_err[] =
|
993 |
}
|
994 |
else {
|
995 |
$new_options[ $id ] = $this->_input[ $id ] ;
|
16 |
private $_options ;
|
17 |
private $_err ;
|
18 |
|
|
|
|
|
19 |
private $_max_int = 2147483647 ;
|
20 |
|
21 |
/**
|
26 |
*/
|
27 |
private function __construct()
|
28 |
{
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Display err msg for ttl
|
33 |
+
*
|
34 |
+
* @since 2.0
|
35 |
+
* @access private
|
36 |
+
*/
|
37 |
+
private function _show_ttl_err( $desc, $min, $max )
|
38 |
+
{
|
39 |
+
if ( ! $max ) {
|
40 |
+
return sprintf( __( '%1$s must be an integer larger than %2$d', 'litespeed-cache' ), $desc, $min ) ;
|
41 |
+
}
|
42 |
+
|
43 |
+
return sprintf( __( '%1$s must be an integer between %2$d and %3$d', 'litespeed-cache' ), $desc, $min, $max ) ;
|
44 |
}
|
45 |
|
46 |
/**
|
355 |
LiteSpeed_Cache_Config::OPID_PRIVATE_TTL => array( __( 'Default Private Cache', 'litespeed-cache' ), 60, 3600 ),
|
356 |
LiteSpeed_Cache_Config::OPID_FRONT_PAGE_TTL => array( __( 'Default Front Page', 'litespeed-cache' ), 30, $this->_max_int ),
|
357 |
LiteSpeed_Cache_Config::OPID_FEED_TTL => array( __( 'Feed', 'litespeed-cache' ), 0, $this->_max_int, 30 ),
|
358 |
+
LiteSpeed_Cache_Config::OPID_404_TTL => array( '404', 0, $this->_max_int, 30 ),
|
359 |
+
LiteSpeed_Cache_Config::OPID_403_TTL => array( '403', 0, $this->_max_int, 30 ),
|
360 |
+
LiteSpeed_Cache_Config::OPID_500_TTL => array( '500', 0, $this->_max_int, 30 ),
|
361 |
) ;
|
362 |
foreach ( $ids as $id => $v ) {
|
363 |
list( $desc, $min, $max ) = $v ;
|
364 |
if ( ! $this->_check_ttl( $this->_input, $id, $min, $max ) ) {
|
365 |
+
$this->_err[] = $this->_show_ttl_err( $desc, $min, $max ) ;
|
366 |
}
|
367 |
else {
|
368 |
if ( ! empty( $v[ 3 ] ) && $this->_input[ $id ] < $v[ 3 ] ) {
|
853 |
|
854 |
$id = LiteSpeed_Cache_Config::OPID_LOG_FILE_SIZE ;
|
855 |
if ( ! $this->_check_ttl( $this->_input, $id, 3, 3000 ) ) {
|
856 |
+
$this->_err[] = $this->_show_ttl_err( __( 'Log File Size Limit', 'litespeed-cache' ), 3, 3000 ) ;
|
857 |
}
|
858 |
else {
|
859 |
$this->_options[ $id ] = $this->_input[ $id ] ;
|
893 |
LiteSpeed_Cache_Config::CRWL_PAGES,
|
894 |
LiteSpeed_Cache_Config::CRWL_CATS,
|
895 |
LiteSpeed_Cache_Config::CRWL_TAGS,
|
896 |
+
LiteSpeed_Cache_Config::CRWL_HTTP2,
|
897 |
) ;
|
898 |
foreach ( $ids as $id ) {
|
899 |
$this->_options[ $id ] = self::parse_onoff( $this->_input, $id ) ;
|
919 |
}
|
920 |
$this->_options[ $id ] = $this->_input[ $id ] ;
|
921 |
|
922 |
+
$usleep_min = 0 ;
|
923 |
+
$usleep_max = 30000 ;
|
924 |
+
if ( ! empty( $_SERVER[ LiteSpeed_Cache_Config::ENV_CRAWLER_USLEEP ] ) ) {
|
925 |
+
$usleep_min = $_SERVER[ LiteSpeed_Cache_Config::ENV_CRAWLER_USLEEP ] ;
|
926 |
+
$usleep_max = null ;
|
927 |
+
}
|
928 |
$ids = array(
|
929 |
+
LiteSpeed_Cache_Config::CRWL_USLEEP => array( __( 'Delay', 'litespeed-cache' ), $usleep_min, $usleep_max ),
|
930 |
LiteSpeed_Cache_Config::CRWL_RUN_DURATION => array( __( 'Run Duration', 'litespeed-cache' ), 0, $this->_max_int ),
|
931 |
LiteSpeed_Cache_Config::CRWL_RUN_INTERVAL => array( __( 'Cron Interval', 'litespeed-cache' ), 60, $this->_max_int ),
|
932 |
LiteSpeed_Cache_Config::CRWL_CRAWL_INTERVAL => array( __( 'Whole Interval', 'litespeed-cache' ), 0, $this->_max_int ),
|
935 |
foreach ( $ids as $id => $v ) {
|
936 |
list( $desc, $min, $max ) = $v ;
|
937 |
if ( ! $this->_check_ttl( $this->_input, $id, $min, $max ) ) {
|
938 |
+
$this->_err[] = $this->_show_ttl_err( $desc, $min, $max ) ;
|
939 |
}
|
940 |
else {
|
941 |
$this->_options[ $id ] = $this->_input[ $id ] ;
|
1008 |
foreach ( $ids as $id => $v ) {
|
1009 |
list( $desc, $min, $max ) = $v ;
|
1010 |
if ( ! $this->_check_ttl( $this->_input, $id, $min, $max ) ) {
|
1011 |
+
$this->_err[] = $this->_show_ttl_err( $desc, $min, $max ) ;
|
1012 |
}
|
1013 |
else {
|
1014 |
$new_options[ $id ] = $this->_input[ $id ] ;
|
admin/litespeed-cache-admin.class.php
CHANGED
@@ -34,10 +34,6 @@ class LiteSpeed_Cache_Admin
|
|
34 |
|
35 |
$this->config = LiteSpeed_Cache_Config::get_instance() ;
|
36 |
|
37 |
-
if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
|
38 |
-
require_once( ABSPATH . '/wp-admin/includes/plugin.php' ) ;//todo: check if needed
|
39 |
-
}
|
40 |
-
|
41 |
// initialize admin actions
|
42 |
add_action( 'admin_init', array( $this, 'admin_init' ) ) ;
|
43 |
// add link to plugin list page
|
@@ -239,29 +235,31 @@ class LiteSpeed_Cache_Admin
|
|
239 |
* @access public
|
240 |
* @global string $pagenow
|
241 |
*/
|
242 |
-
public static function redirect
|
243 |
{
|
244 |
global $pagenow ;
|
245 |
$qs = '' ;
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
250 |
}
|
251 |
-
if (
|
252 |
-
|
253 |
}
|
254 |
-
|
255 |
-
$
|
256 |
}
|
257 |
}
|
258 |
-
|
259 |
-
|
260 |
-
}
|
261 |
-
else {
|
262 |
-
$url = admin_url($pagenow . $qs) ;
|
263 |
-
}
|
264 |
-
wp_redirect($url) ;
|
265 |
exit() ;
|
266 |
}
|
267 |
|
34 |
|
35 |
$this->config = LiteSpeed_Cache_Config::get_instance() ;
|
36 |
|
|
|
|
|
|
|
|
|
37 |
// initialize admin actions
|
38 |
add_action( 'admin_init', array( $this, 'admin_init' ) ) ;
|
39 |
// add link to plugin list page
|
235 |
* @access public
|
236 |
* @global string $pagenow
|
237 |
*/
|
238 |
+
public static function redirect( $url = false )
|
239 |
{
|
240 |
global $pagenow ;
|
241 |
$qs = '' ;
|
242 |
+
if ( ! $url ) {
|
243 |
+
if ( ! empty( $_GET ) ) {
|
244 |
+
if ( isset( $_GET[ LiteSpeed_Cache::ACTION_KEY ] ) ) {
|
245 |
+
unset( $_GET[ LiteSpeed_Cache::ACTION_KEY ] ) ;
|
246 |
+
}
|
247 |
+
if ( isset( $_GET[ LiteSpeed_Cache::NONCE_NAME ] ) ) {
|
248 |
+
unset( $_GET[ LiteSpeed_Cache::NONCE_NAME ] ) ;
|
249 |
+
}
|
250 |
+
if ( ! empty( $_GET ) ) {
|
251 |
+
$qs = '?' . http_build_query( $_GET ) ;
|
252 |
+
}
|
253 |
}
|
254 |
+
if ( is_network_admin() ) {
|
255 |
+
$url = network_admin_url( $pagenow . $qs ) ;
|
256 |
}
|
257 |
+
else {
|
258 |
+
$url = admin_url( $pagenow . $qs ) ;
|
259 |
}
|
260 |
}
|
261 |
+
|
262 |
+
wp_redirect( $url ) ;
|
|
|
|
|
|
|
|
|
|
|
263 |
exit() ;
|
264 |
}
|
265 |
|
admin/tpl/image_optimization.php
CHANGED
@@ -1,12 +1,15 @@
|
|
1 |
<?php
|
2 |
if ( ! defined( 'WPINC' ) ) die ;
|
3 |
|
4 |
-
|
|
|
5 |
|
6 |
-
$
|
7 |
-
$optm_summary = $media->summary_info() ;
|
8 |
|
9 |
-
|
|
|
|
|
|
|
10 |
|
11 |
$_optm_summary_list = array(
|
12 |
'level' => array(
|
@@ -40,6 +43,24 @@ $_optm_summary_list = array(
|
|
40 |
),
|
41 |
) ;
|
42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
|
44 |
include_once LSCWP_DIR . "admin/tpl/inc/banner_promo.php" ;
|
45 |
?>
|
@@ -58,6 +79,10 @@ include_once LSCWP_DIR . "admin/tpl/inc/banner_promo.php" ;
|
|
58 |
|
59 |
<div class="litespeed-wrap">
|
60 |
<div class="litespeed-body">
|
|
|
|
|
|
|
|
|
61 |
<h3 class="litespeed-title"><?php echo __('Optimization Summary', 'litespeed-cache') ; ?></h3>
|
62 |
|
63 |
<?php foreach ( $_optm_summary_list as $k => $v ) : ?>
|
@@ -87,8 +112,8 @@ include_once LSCWP_DIR . "admin/tpl/inc/banner_promo.php" ;
|
|
87 |
<?php endif ; ?>
|
88 |
<?php endforeach ; ?>
|
89 |
|
90 |
-
<a href="<?php echo LiteSpeed_Cache_Utility::build_url( LiteSpeed_Cache::
|
91 |
-
<?php echo __( 'Update
|
92 |
</a>
|
93 |
<span class="litespeed-desc">
|
94 |
<?php echo __( 'This will communicate with LiteSpeed\'s Image Optimization Server and retrieve the most recent status.', 'litespeed-cache' ) ; ?>
|
@@ -100,19 +125,35 @@ include_once LSCWP_DIR . "admin/tpl/inc/banner_promo.php" ;
|
|
100 |
<span class="litespeed-desc"><?php echo __('Beta Version', 'litespeed-cache') ; ?></span>
|
101 |
</h3>
|
102 |
|
103 |
-
<
|
104 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
<?php if ( $img_count[ 'total_not_requested' ] ) : ?>
|
106 |
<?php if ( empty( $optm_summary[ 'level' ] ) ) : ?>
|
107 |
<a href="#" class="litespeed-btn-default disabled">
|
108 |
<?php echo __( 'Send Optimization Request', 'litespeed-cache' ) ; ?>
|
109 |
</a>
|
110 |
<span class="litespeed-desc">
|
111 |
-
<?php echo sprintf( __( 'Please press the %s button before sending a new request.', 'litespeed-cache' ), __( 'Update
|
112 |
</span>
|
113 |
<a href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:image-optimization#image_optimization_in_litespeed_cache_for_wordpress" target="_blank"><?php echo __('Learn More', 'litespeed-cache') ; ?></a>
|
114 |
<?php else : ?>
|
115 |
-
<a href="<?php echo LiteSpeed_Cache_Utility::build_url( LiteSpeed_Cache::
|
116 |
<?php echo __( 'Send Optimization Request', 'litespeed-cache' ) ; ?>
|
117 |
</a>
|
118 |
<span class="litespeed-desc">
|
@@ -125,17 +166,31 @@ include_once LSCWP_DIR . "admin/tpl/inc/banner_promo.php" ;
|
|
125 |
<hr />
|
126 |
|
127 |
<p>
|
128 |
-
<?php echo __('
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
</p>
|
130 |
-
<p><?php echo __('Image groups failed to optimize', 'litespeed-cache') ; ?>: <b><?php echo $img_count[ 'total_err' ] ; ?></b></p>
|
131 |
<p class="litespeed-desc">
|
132 |
<?php echo __( 'After LiteSpeed\'s Image Optimization Server finishes optimization, it will notify your site to pull the optimized images.', 'litespeed-cache' ) ; ?>
|
133 |
<?php echo __( 'This process is automatic.', 'litespeed-cache' ) ; ?>
|
134 |
</p>
|
135 |
<p>
|
136 |
-
<?php echo __('
|
|
|
|
|
|
|
137 |
<?php if ( $img_count[ 'total_server_finished' ] && ! $is_running ) : ?>
|
138 |
-
<a href="<?php echo LiteSpeed_Cache_Utility::build_url( LiteSpeed_Cache::
|
139 |
<?php echo __( 'Pull Images', 'litespeed-cache' ) ; ?>
|
140 |
</a>
|
141 |
<span class="litespeed-desc">
|
@@ -148,7 +203,11 @@ include_once LSCWP_DIR . "admin/tpl/inc/banner_promo.php" ;
|
|
148 |
</span>
|
149 |
<?php endif ; ?>
|
150 |
</p>
|
151 |
-
<p
|
|
|
|
|
|
|
|
|
152 |
<p><a href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:image-optimization#image_optimization_in_litespeed_cache_for_wordpress" target="_blank"><?php echo __('Learn More', 'litespeed-cache') ; ?></a></p>
|
153 |
|
154 |
<hr />
|
@@ -162,7 +221,7 @@ include_once LSCWP_DIR . "admin/tpl/inc/banner_promo.php" ;
|
|
162 |
|
163 |
<br />
|
164 |
|
165 |
-
<a href="<?php echo LiteSpeed_Cache_Utility::build_url( LiteSpeed_Cache::
|
166 |
<?php echo __( 'Undo Optimization', 'litespeed-cache' ) ; ?>
|
167 |
</a>
|
168 |
<span class="litespeed-desc">
|
@@ -171,7 +230,7 @@ include_once LSCWP_DIR . "admin/tpl/inc/banner_promo.php" ;
|
|
171 |
|
172 |
<br />
|
173 |
|
174 |
-
<a href="<?php echo LiteSpeed_Cache_Utility::build_url( LiteSpeed_Cache::
|
175 |
<?php echo __( 'Re-do Optimization', 'litespeed-cache' ) ; ?>
|
176 |
</a>
|
177 |
<span class="litespeed-desc">
|
@@ -183,7 +242,7 @@ include_once LSCWP_DIR . "admin/tpl/inc/banner_promo.php" ;
|
|
183 |
<?php echo sprintf( __( 'Results can be checked in <a %s>Media Library</a>.', 'litespeed-cache' ), 'href="upload.php?mode=list"' ) ; ?>
|
184 |
</p>
|
185 |
|
186 |
-
<a href="<?php echo LiteSpeed_Cache_Utility::build_url( LiteSpeed_Cache::
|
187 |
<?php echo __( 'Send New Thumbnail Requests', 'litespeed-cache' ) ; ?>
|
188 |
</a>
|
189 |
<span class="litespeed-desc">
|
@@ -199,13 +258,13 @@ include_once LSCWP_DIR . "admin/tpl/inc/banner_promo.php" ;
|
|
199 |
</span>
|
200 |
|
201 |
<br />
|
202 |
-
<a href="<?php echo LiteSpeed_Cache_Utility::build_url( LiteSpeed_Cache::
|
203 |
<?php echo __( 'Destroy All Optimization Data!', 'litespeed-cache' ) ; ?>
|
204 |
</a>
|
205 |
<span class="litespeed-desc">
|
206 |
<?php echo __( 'Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.', 'litespeed-cache' ) ; ?>
|
207 |
<font class="litespeed-warning">
|
208 |
-
<?php echo __('NOTE
|
209 |
<?php echo sprintf( __( 'If there are unfinished requests in progress, the requests\' credits will NOT be recovered.', 'litespeed-cache' ), 'jQuery', __( 'JS Combine', 'litespeed-cache' ) ) ; ?>
|
210 |
</font>
|
211 |
|
1 |
<?php
|
2 |
if ( ! defined( 'WPINC' ) ) die ;
|
3 |
|
4 |
+
// Update table data for upgrading
|
5 |
+
LiteSpeed_Cache_Data::get_instance() ;
|
6 |
|
7 |
+
$img_optm = LiteSpeed_Cache_Img_Optm::get_instance() ;
|
|
|
8 |
|
9 |
+
$img_count = $img_optm->img_count() ;
|
10 |
+
$optm_summary = $img_optm->summary_info() ;
|
11 |
+
|
12 |
+
list( $last_run, $is_running ) = $img_optm->cron_running( false ) ;
|
13 |
|
14 |
$_optm_summary_list = array(
|
15 |
'level' => array(
|
43 |
),
|
44 |
) ;
|
45 |
|
46 |
+
// Guidance check
|
47 |
+
$current_step = false ;
|
48 |
+
if ( empty( $optm_summary[ 'level' ] ) || $optm_summary[ 'level' ] < 2 ) {
|
49 |
+
$current_step = $img_optm->get_guidance_pos() ;
|
50 |
+
}
|
51 |
+
$guidance_steps = array(
|
52 |
+
sprintf( __( 'Click the %s button.', 'litespeed-cache' ), '<font class="litespeed-success">' . __( 'Update Status', 'litespeed-cache' ) . '</font>' ),
|
53 |
+
sprintf( __( 'Click the %s button.', 'litespeed-cache' ), '<font class="litespeed-success">' . __( 'Send Optimization Request', 'litespeed-cache' ) . '</font>' ),
|
54 |
+
sprintf( __( 'Click the %s button or wait for the cron job to finish the pull action.', 'litespeed-cache' ), '<font class="litespeed-success">' . __( 'Pull Images', 'litespeed-cache' ) . '</font>' ),
|
55 |
+
__( 'Repeat the above steps until you have leveled up.', 'litespeed-cache' )
|
56 |
+
) ;
|
57 |
+
|
58 |
+
if ( ! empty( $img_count[ 'total_img' ] ) ) {
|
59 |
+
$finished_percentage = 100 - floor( $img_count[ 'total_not_requested' ] * 100 / $img_count[ 'total_img' ] ) ;
|
60 |
+
}
|
61 |
+
else {
|
62 |
+
$finished_percentage = 0 ;
|
63 |
+
}
|
64 |
|
65 |
include_once LSCWP_DIR . "admin/tpl/inc/banner_promo.php" ;
|
66 |
?>
|
79 |
|
80 |
<div class="litespeed-wrap">
|
81 |
<div class="litespeed-body">
|
82 |
+
<?php if ( $current_step ) : ?>
|
83 |
+
<?php echo LiteSpeed_Cache_Admin_Display::guidance( __( 'How to Level Up', 'litespeed-cache' ), $guidance_steps, $current_step ) ; ?>
|
84 |
+
<?php endif ; ?>
|
85 |
+
|
86 |
<h3 class="litespeed-title"><?php echo __('Optimization Summary', 'litespeed-cache') ; ?></h3>
|
87 |
|
88 |
<?php foreach ( $_optm_summary_list as $k => $v ) : ?>
|
112 |
<?php endif ; ?>
|
113 |
<?php endforeach ; ?>
|
114 |
|
115 |
+
<a href="<?php echo LiteSpeed_Cache_Utility::build_url( LiteSpeed_Cache::ACTION_IMG_OPTM, LiteSpeed_Cache_Img_Optm::TYPE_SYNC_DATA ) ; ?>" class="litespeed-btn-success">
|
116 |
+
<?php echo __( 'Update Status', 'litespeed-cache' ) ; ?>
|
117 |
</a>
|
118 |
<span class="litespeed-desc">
|
119 |
<?php echo __( 'This will communicate with LiteSpeed\'s Image Optimization Server and retrieve the most recent status.', 'litespeed-cache' ) ; ?>
|
125 |
<span class="litespeed-desc"><?php echo __('Beta Version', 'litespeed-cache') ; ?></span>
|
126 |
</h3>
|
127 |
|
128 |
+
<div class="litespeed-block-tiny">
|
129 |
+
<div class="litespeed-col-auto">
|
130 |
+
<?php echo LiteSpeed_Cache_GUI::pie( $finished_percentage, 100, true ) ; ?>
|
131 |
+
</div>
|
132 |
+
|
133 |
+
<div class="litespeed-col-auto">
|
134 |
+
<p>
|
135 |
+
<?php echo __( 'Images total', 'litespeed-cache') ; ?>:
|
136 |
+
<b><?php echo LiteSpeed_Cache_Admin_Display::print_plural( $img_count[ 'total_img' ] ) ; ?></b>
|
137 |
+
<a href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:image-optimization:image-groups" target="_blank" class="litespeed-desc litespeed-left20"><?php echo __( 'What is a group?', 'litespeed-cache') ; ?></a>
|
138 |
+
</p>
|
139 |
+
<p>
|
140 |
+
<?php echo __('Images not yet requested', 'litespeed-cache') ; ?>:
|
141 |
+
<b><?php echo LiteSpeed_Cache_Admin_Display::print_plural( $img_count[ 'total_not_requested' ] ) ; ?></b>
|
142 |
+
</p>
|
143 |
+
</div>
|
144 |
+
</div>
|
145 |
+
|
146 |
<?php if ( $img_count[ 'total_not_requested' ] ) : ?>
|
147 |
<?php if ( empty( $optm_summary[ 'level' ] ) ) : ?>
|
148 |
<a href="#" class="litespeed-btn-default disabled">
|
149 |
<?php echo __( 'Send Optimization Request', 'litespeed-cache' ) ; ?>
|
150 |
</a>
|
151 |
<span class="litespeed-desc">
|
152 |
+
<?php echo sprintf( __( 'Please press the %s button before sending a new request.', 'litespeed-cache' ), __( 'Update Status', 'litespeed-cache' ) ) ; ?>
|
153 |
</span>
|
154 |
<a href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:image-optimization#image_optimization_in_litespeed_cache_for_wordpress" target="_blank"><?php echo __('Learn More', 'litespeed-cache') ; ?></a>
|
155 |
<?php else : ?>
|
156 |
+
<a href="<?php echo LiteSpeed_Cache_Utility::build_url( LiteSpeed_Cache::ACTION_IMG_OPTM, LiteSpeed_Cache_Img_Optm::TYPE_IMG_OPTIMIZE ) ; ?>" class="litespeed-btn-success">
|
157 |
<?php echo __( 'Send Optimization Request', 'litespeed-cache' ) ; ?>
|
158 |
</a>
|
159 |
<span class="litespeed-desc">
|
166 |
<hr />
|
167 |
|
168 |
<p>
|
169 |
+
<?php echo __('Images requested', 'litespeed-cache') ; ?>:
|
170 |
+
<b><?php echo LiteSpeed_Cache_Admin_Display::print_plural( $img_count[ 'total_requested_groups' ] ) ; ?></b>
|
171 |
+
(<b><?php echo LiteSpeed_Cache_Admin_Display::print_plural( $img_count[ 'total_requested' ], 'image' ) ; ?></b>)
|
172 |
+
</p>
|
173 |
+
<p>
|
174 |
+
<?php echo __('Images failed to optimize', 'litespeed-cache') ; ?>:
|
175 |
+
<b><?php echo LiteSpeed_Cache_Admin_Display::print_plural( $img_count[ 'total_err_groups' ] ) ; ?></b>
|
176 |
+
(<b><?php echo LiteSpeed_Cache_Admin_Display::print_plural( $img_count[ 'total_err' ], 'image' ) ; ?></b>)
|
177 |
+
</p>
|
178 |
+
<p>
|
179 |
+
<?php echo __('Image files missing', 'litespeed-cache') ; ?>:
|
180 |
+
<b><?php echo LiteSpeed_Cache_Admin_Display::print_plural( $img_count[ 'total_miss_groups' ] ) ; ?></b>
|
181 |
+
(<b><?php echo LiteSpeed_Cache_Admin_Display::print_plural( $img_count[ 'total_miss' ], 'image' ) ; ?></b>)
|
182 |
</p>
|
|
|
183 |
<p class="litespeed-desc">
|
184 |
<?php echo __( 'After LiteSpeed\'s Image Optimization Server finishes optimization, it will notify your site to pull the optimized images.', 'litespeed-cache' ) ; ?>
|
185 |
<?php echo __( 'This process is automatic.', 'litespeed-cache' ) ; ?>
|
186 |
</p>
|
187 |
<p>
|
188 |
+
<?php echo __('Images notified to pull', 'litespeed-cache') ; ?>:
|
189 |
+
<b><?php echo LiteSpeed_Cache_Admin_Display::print_plural( $img_count[ 'total_server_finished_groups' ] ) ; ?></b>
|
190 |
+
(<b><?php echo LiteSpeed_Cache_Admin_Display::print_plural( $img_count[ 'total_server_finished' ], 'image' ) ; ?></b>)
|
191 |
+
|
192 |
<?php if ( $img_count[ 'total_server_finished' ] && ! $is_running ) : ?>
|
193 |
+
<a href="<?php echo LiteSpeed_Cache_Utility::build_url( LiteSpeed_Cache::ACTION_IMG_OPTM, LiteSpeed_Cache_Img_Optm::TYPE_IMG_PULL ) ; ?>" class="litespeed-btn-success">
|
194 |
<?php echo __( 'Pull Images', 'litespeed-cache' ) ; ?>
|
195 |
</a>
|
196 |
<span class="litespeed-desc">
|
203 |
</span>
|
204 |
<?php endif ; ?>
|
205 |
</p>
|
206 |
+
<p>
|
207 |
+
<?php echo __('Images optimized and pulled', 'litespeed-cache') ; ?>:
|
208 |
+
<b><?php echo LiteSpeed_Cache_Admin_Display::print_plural( $img_count[ 'total_pulled_groups' ] ) ; ?></b>
|
209 |
+
(<b><?php echo LiteSpeed_Cache_Admin_Display::print_plural( $img_count[ 'total_pulled' ], 'image' ) ; ?></b>)
|
210 |
+
</p>
|
211 |
<p><a href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:image-optimization#image_optimization_in_litespeed_cache_for_wordpress" target="_blank"><?php echo __('Learn More', 'litespeed-cache') ; ?></a></p>
|
212 |
|
213 |
<hr />
|
221 |
|
222 |
<br />
|
223 |
|
224 |
+
<a href="<?php echo LiteSpeed_Cache_Utility::build_url( LiteSpeed_Cache::ACTION_IMG_OPTM, LiteSpeed_Cache_Img_Optm::TYPE_IMG_BATCH_SWITCH_ORI ) ; ?>" class="litespeed-btn-danger">
|
225 |
<?php echo __( 'Undo Optimization', 'litespeed-cache' ) ; ?>
|
226 |
</a>
|
227 |
<span class="litespeed-desc">
|
230 |
|
231 |
<br />
|
232 |
|
233 |
+
<a href="<?php echo LiteSpeed_Cache_Utility::build_url( LiteSpeed_Cache::ACTION_IMG_OPTM, LiteSpeed_Cache_Img_Optm::TYPE_IMG_BATCH_SWITCH_OPTM ) ; ?>" class="litespeed-btn-warning">
|
234 |
<?php echo __( 'Re-do Optimization', 'litespeed-cache' ) ; ?>
|
235 |
</a>
|
236 |
<span class="litespeed-desc">
|
242 |
<?php echo sprintf( __( 'Results can be checked in <a %s>Media Library</a>.', 'litespeed-cache' ), 'href="upload.php?mode=list"' ) ; ?>
|
243 |
</p>
|
244 |
|
245 |
+
<a href="<?php echo LiteSpeed_Cache_Utility::build_url( LiteSpeed_Cache::ACTION_IMG_OPTM, LiteSpeed_Cache_Img_Optm::TYPE_IMG_OPTIMIZE_RESCAN ) ; ?>" class="litespeed-btn-success">
|
246 |
<?php echo __( 'Send New Thumbnail Requests', 'litespeed-cache' ) ; ?>
|
247 |
</a>
|
248 |
<span class="litespeed-desc">
|
258 |
</span>
|
259 |
|
260 |
<br />
|
261 |
+
<a href="<?php echo LiteSpeed_Cache_Utility::build_url( LiteSpeed_Cache::ACTION_IMG_OPTM, LiteSpeed_Cache_Img_Optm::TYPE_IMG_OPTIMIZE_DESTROY ) ; ?>" class="litespeed-btn-danger">
|
262 |
<?php echo __( 'Destroy All Optimization Data!', 'litespeed-cache' ) ; ?>
|
263 |
</a>
|
264 |
<span class="litespeed-desc">
|
265 |
<?php echo __( 'Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.', 'litespeed-cache' ) ; ?>
|
266 |
<font class="litespeed-warning">
|
267 |
+
<?php echo __('NOTE', 'litespeed-cache'); ?>:
|
268 |
<?php echo sprintf( __( 'If there are unfinished requests in progress, the requests\' credits will NOT be recovered.', 'litespeed-cache' ), 'jQuery', __( 'JS Combine', 'litespeed-cache' ) ) ; ?>
|
269 |
</font>
|
270 |
|
admin/tpl/inc/admin_footer.php
CHANGED
@@ -1,19 +1,21 @@
|
|
1 |
<?php
|
2 |
if (!defined('WPINC')) die;
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
-
$rate_us = sprintf(__('Rate <strong>LiteSpeed Cache</strong> with %s on WordPress.org if you like us!', 'litespeed-cache'),
|
6 |
-
'<a href="https://wordpress.org/support/plugin/litespeed-cache/reviews/?filter=5#new-post" rel="noopener noreferer" target="_blank">✮✮✮✮✮</a>'
|
7 |
-
);
|
8 |
-
$questions = sprintf(__('If there are any questions that are not answered in the <a %s>FAQs</a>, do not hesitate to ask them on the <a %s>support forum</a>.', 'litespeed-cache'),
|
9 |
-
'href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp" target="_blank"',
|
10 |
-
'href="https://wordpress.org/support/plugin/litespeed-cache" rel="noopener noreferrer" target="_blank"');
|
11 |
// Change the footer text
|
12 |
-
if ( !is_multisite()
|
13 |
-
|
14 |
-
{
|
15 |
-
$footer_text = $rate_us . ' ' . $questions;
|
16 |
}
|
17 |
-
else{
|
18 |
-
$footer_text = $
|
19 |
}
|
1 |
<?php
|
2 |
if (!defined('WPINC')) die;
|
3 |
|
4 |
+
// ✮✮✮✮✮
|
5 |
+
$rate_us = '<a href="https://wordpress.org/support/plugin/litespeed-cache/reviews/?filter=5#new-post" rel="noopener noreferer" target="_blank">'
|
6 |
+
. sprintf( __( 'Rate %s on %s', 'litespeed-cache' ), '<strong>' . __( 'LiteSpeed Cache', 'litespeed-cache' ) . '</strong>', 'WordPress.org' )
|
7 |
+
. '</a>' ;
|
8 |
+
|
9 |
+
$wiki = '<a href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp" target="_blank">' . __( 'Read LiteSpeed Wiki', 'litespeed-cache' ) . '</a>' ;
|
10 |
+
|
11 |
+
$forum = '<a href="https://wordpress.org/support/plugin/litespeed-cache" target="_blank">' . __( 'Visit LSCWP support forum', 'litespeed-cache' ) . '</a>' ;
|
12 |
+
|
13 |
+
$community = '<a href="https://goo.gl/FG9S4N" target="_blank">' . __( 'Join LiteSpeed Slack community', 'litespeed-cache' ) . '</a>' ;
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
// Change the footer text
|
16 |
+
if ( ! is_multisite() || is_network_admin() ) {
|
17 |
+
$footer_text = $rate_us . ' | ' . $wiki . ' | ' . $forum . ' | ' . $community ;
|
|
|
|
|
18 |
}
|
19 |
+
else {
|
20 |
+
$footer_text = $wiki . ' | ' . $forum . ' | ' . $community ;
|
21 |
}
|
admin/tpl/manage/manage_purge.php
CHANGED
@@ -100,7 +100,7 @@ if ( ! is_multisite() || is_network_admin() ) {
|
|
100 |
<?php foreach ( $_panels as $v ): ?>
|
101 |
|
102 |
<?php if ( ! empty( $v[ 'newline' ] ) ) : ?>
|
103 |
-
<div class='litespeed-
|
104 |
<?php endif; ?>
|
105 |
|
106 |
<a class="litespeed-panel"
|
100 |
<?php foreach ( $_panels as $v ): ?>
|
101 |
|
102 |
<?php if ( ! empty( $v[ 'newline' ] ) ) : ?>
|
103 |
+
<div class='litespeed-col-br'></div>
|
104 |
<?php endif; ?>
|
105 |
|
106 |
<a class="litespeed-panel"
|
admin/tpl/setting/settings_advanced.php
CHANGED
@@ -47,7 +47,7 @@ if (!defined('WPINC')) die;
|
|
47 |
<?php echo __( 'When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.', 'litespeed-cache' ) ; ?>
|
48 |
<a href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:configuration:advanced#instant_click" target="_blank"><?php echo __('Learn More', 'litespeed-cache') ; ?></a>
|
49 |
<br /><font class="litespeed-danger">
|
50 |
-
<?php echo __('NOTE
|
51 |
<?php echo __('This will generate extra requests to the server, which will increase server load.', 'litespeed-cache'); ?>
|
52 |
</font>
|
53 |
|
@@ -65,7 +65,7 @@ if (!defined('WPINC')) die;
|
|
65 |
<a href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:configuration:advanced#favicon" target="_blank"><?php echo __('Learn More', 'litespeed-cache') ; ?></a>
|
66 |
|
67 |
</div>
|
68 |
-
<div class="litespeed-
|
69 |
<div class='litespeed-cdn-mapping-col1'>
|
70 |
<h4><?php echo __( 'Frontend Favicon File', 'litespeed-cache' ) ; ?></h4>
|
71 |
|
47 |
<?php echo __( 'When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.', 'litespeed-cache' ) ; ?>
|
48 |
<a href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:configuration:advanced#instant_click" target="_blank"><?php echo __('Learn More', 'litespeed-cache') ; ?></a>
|
49 |
<br /><font class="litespeed-danger">
|
50 |
+
<?php echo __('NOTE', 'litespeed-cache'); ?>:
|
51 |
<?php echo __('This will generate extra requests to the server, which will increase server load.', 'litespeed-cache'); ?>
|
52 |
</font>
|
53 |
|
65 |
<a href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:configuration:advanced#favicon" target="_blank"><?php echo __('Learn More', 'litespeed-cache') ; ?></a>
|
66 |
|
67 |
</div>
|
68 |
+
<div class="litespeed-block">
|
69 |
<div class='litespeed-cdn-mapping-col1'>
|
70 |
<h4><?php echo __( 'Frontend Favicon File', 'litespeed-cache' ) ; ?></h4>
|
71 |
|
admin/tpl/setting/settings_cdn.php
CHANGED
@@ -41,7 +41,7 @@ if ( ! $cdn_mapping ) {
|
|
41 |
<td>
|
42 |
<?php foreach ( $cdn_mapping as $v ) : ?>
|
43 |
|
44 |
-
<div class="litespeed-
|
45 |
<div class='litespeed-cdn-mapping-col1'>
|
46 |
<h4><?php echo __( 'CDN URL', 'litespeed-cache' ) ; ?>
|
47 |
<button type="button" class="litespeed-btn-danger" data-litespeed-cdn-mapping-del="1">X</button>
|
@@ -94,8 +94,8 @@ if ( ! $cdn_mapping ) {
|
|
94 |
<p><button type="button" class="litespeed-btn-success litespeed-btn-tiny" id="litespeed-cdn-mapping-add">+</button></p>
|
95 |
|
96 |
<div class="litespeed-warning">
|
97 |
-
<?php echo __('NOTE
|
98 |
-
<?php echo __( '
|
99 |
</div>
|
100 |
|
101 |
<div class="litespeed-desc">
|
@@ -157,13 +157,13 @@ if ( ! $cdn_mapping ) {
|
|
157 |
<?php echo $this->build_radio(
|
158 |
LiteSpeed_Cache_Config::OPID_CDN_REMOTE_JQUERY,
|
159 |
LiteSpeed_Cache_Config::VAL_ON,
|
160 |
-
|
161 |
) ; ?>
|
162 |
|
163 |
<?php echo $this->build_radio(
|
164 |
LiteSpeed_Cache_Config::OPID_CDN_REMOTE_JQUERY,
|
165 |
LiteSpeed_Cache_Config::VAL_ON2,
|
166 |
-
|
167 |
) ; ?>
|
168 |
</div>
|
169 |
<div class="litespeed-desc">
|
@@ -177,30 +177,52 @@ if ( ! $cdn_mapping ) {
|
|
177 |
<td>
|
178 |
<?php $this->build_switch( LiteSpeed_Cache_Config::OPID_CDN_QUIC ) ; ?>
|
179 |
<div class="litespeed-desc">
|
180 |
-
<?php echo __( 'Use
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
<?php echo sprintf( __( 'This can be managed from <a %2$s>%1$s</a>.', 'litespeed-cache' ), '<b>' . __( 'Manage', 'litespeed-cache' ) . '</b> -> <b>' . __( 'CDN', 'litespeed-cache' ) . '</b>', 'href="admin.php?page=lscache-dash#cdn"' ) ; ?>
|
182 |
</div>
|
183 |
-
<div class="litespeed-
|
184 |
-
<div class='litespeed-
|
185 |
<h4><?php echo __( 'Email Address', 'litespeed-cache' ) ; ?></h4>
|
186 |
|
187 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CDN_QUIC_EMAIL ) ; ?>
|
188 |
<div class="litespeed-desc">
|
189 |
-
<?php echo __( 'Your Email address on
|
190 |
</div>
|
191 |
</div>
|
192 |
|
193 |
-
<div class='litespeed-
|
194 |
<h4><?php echo __( 'User API Key', 'litespeed-cache' ) ; ?></h4>
|
195 |
|
196 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CDN_QUIC_KEY ) ; ?>
|
197 |
<div class="litespeed-desc">
|
198 |
-
<?php echo __( 'Your API key is used to access
|
199 |
-
<?php echo sprintf( __( 'Get it from <a %s
|
200 |
</div>
|
201 |
</div>
|
202 |
|
203 |
-
<div class='litespeed-
|
204 |
<h4><?php echo __( 'Site Domain', 'litespeed-cache' ) ; ?></h4>
|
205 |
|
206 |
<?php
|
@@ -220,30 +242,30 @@ if ( ! $cdn_mapping ) {
|
|
220 |
<td>
|
221 |
<?php $this->build_switch( LiteSpeed_Cache_Config::OPID_CDN_CLOUDFLARE ) ; ?>
|
222 |
<div class="litespeed-desc">
|
223 |
-
<?php echo __( 'Use
|
224 |
<?php echo sprintf( __( 'This can be managed from <a %2$s>%1$s</a>.', 'litespeed-cache' ), '<b>' . __( 'Manage', 'litespeed-cache' ) . '</b> -> <b>' . __( 'CDN', 'litespeed-cache' ) . '</b>', 'href="admin.php?page=lscache-dash#cdn"' ) ; ?>
|
225 |
</div>
|
226 |
-
<div class="litespeed-
|
227 |
-
<div class='litespeed-
|
228 |
<h4><?php echo __( 'Email Address', 'litespeed-cache' ) ; ?></h4>
|
229 |
|
230 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CDN_CLOUDFLARE_EMAIL ) ; ?>
|
231 |
<div class="litespeed-desc">
|
232 |
-
<?php echo __( 'Your Email address on
|
233 |
</div>
|
234 |
</div>
|
235 |
|
236 |
-
<div class='litespeed-
|
237 |
<h4><?php echo __( 'Global API Key', 'litespeed-cache' ) ; ?></h4>
|
238 |
|
239 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CDN_CLOUDFLARE_KEY ) ; ?>
|
240 |
<div class="litespeed-desc">
|
241 |
-
<?php echo __( 'Your API key is used to access
|
242 |
-
<?php echo sprintf( __( 'Get it from <a %s
|
243 |
</div>
|
244 |
</div>
|
245 |
|
246 |
-
<div class='litespeed-
|
247 |
<h4><?php echo __( 'Domain', 'litespeed-cache' ) ; ?></h4>
|
248 |
|
249 |
<?php
|
41 |
<td>
|
42 |
<?php foreach ( $cdn_mapping as $v ) : ?>
|
43 |
|
44 |
+
<div class="litespeed-block" data-litespeed-cdn-mapping="1">
|
45 |
<div class='litespeed-cdn-mapping-col1'>
|
46 |
<h4><?php echo __( 'CDN URL', 'litespeed-cache' ) ; ?>
|
47 |
<button type="button" class="litespeed-btn-danger" data-litespeed-cdn-mapping-del="1">X</button>
|
94 |
<p><button type="button" class="litespeed-btn-success litespeed-btn-tiny" id="litespeed-cdn-mapping-add">+</button></p>
|
95 |
|
96 |
<div class="litespeed-warning">
|
97 |
+
<?php echo __('NOTE', 'litespeed-cache'); ?>:
|
98 |
+
<?php echo __( 'To randomize CDN hostname, define multiple hostnames for the same resources.', 'litespeed-cache' ) ; ?>
|
99 |
</div>
|
100 |
|
101 |
<div class="litespeed-desc">
|
157 |
<?php echo $this->build_radio(
|
158 |
LiteSpeed_Cache_Config::OPID_CDN_REMOTE_JQUERY,
|
159 |
LiteSpeed_Cache_Config::VAL_ON,
|
160 |
+
'Google'
|
161 |
) ; ?>
|
162 |
|
163 |
<?php echo $this->build_radio(
|
164 |
LiteSpeed_Cache_Config::OPID_CDN_REMOTE_JQUERY,
|
165 |
LiteSpeed_Cache_Config::VAL_ON2,
|
166 |
+
'Cdnjs'
|
167 |
) ; ?>
|
168 |
</div>
|
169 |
<div class="litespeed-desc">
|
177 |
<td>
|
178 |
<?php $this->build_switch( LiteSpeed_Cache_Config::OPID_CDN_QUIC ) ; ?>
|
179 |
<div class="litespeed-desc">
|
180 |
+
<?php echo sprintf( __( 'Use %s API functionality.', 'litespeed-cache' ), 'Quic Cloud' ) ; ?>
|
181 |
+
|
182 |
+
<a id='litespeed_modal_href' href="<?php echo LiteSpeed_Cache_Utility::build_url( LiteSpeed_Cache::ACTION_QUIC_CLOUD ) ; ?>">
|
183 |
+
<?php if ( ! empty( $_options[ LiteSpeed_Cache_Config::OPID_CDN_QUIC_EMAIL ] ) ) : ?>
|
184 |
+
Login API
|
185 |
+
<?php else : ?>
|
186 |
+
Free Register!
|
187 |
+
<?php endif ; ?>
|
188 |
+
</a>
|
189 |
+
|
190 |
+
<link rel="stylesheet" href="<?php echo LSWCP_PLUGIN_URL ; ?>css/iziModal.min.css">
|
191 |
+
<script type="text/javascript" src="<?php echo LSWCP_PLUGIN_URL ; ?>js/iziModal.min.js"></script>
|
192 |
+
<div id="litespeed_modal"></div>
|
193 |
+
<script type="text/javascript">
|
194 |
+
var litespeed_modal = jQuery("#litespeed_modal").iziModal({iframe: true});
|
195 |
+
jQuery("#litespeed_modal_href").click(function(event) {
|
196 |
+
event.preventDefault();
|
197 |
+
litespeed_modal.iziModal('open', event);
|
198 |
+
});;
|
199 |
+
</script>
|
200 |
+
<?php
|
201 |
+
|
202 |
+
?>
|
203 |
<?php echo sprintf( __( 'This can be managed from <a %2$s>%1$s</a>.', 'litespeed-cache' ), '<b>' . __( 'Manage', 'litespeed-cache' ) . '</b> -> <b>' . __( 'CDN', 'litespeed-cache' ) . '</b>', 'href="admin.php?page=lscache-dash#cdn"' ) ; ?>
|
204 |
</div>
|
205 |
+
<div class="litespeed-block">
|
206 |
+
<div class='litespeed-col'>
|
207 |
<h4><?php echo __( 'Email Address', 'litespeed-cache' ) ; ?></h4>
|
208 |
|
209 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CDN_QUIC_EMAIL ) ; ?>
|
210 |
<div class="litespeed-desc">
|
211 |
+
<?php echo sprintf( __( 'Your Email address on %s.', 'litespeed-cache' ), 'Quic Cloud' ) ; ?>
|
212 |
</div>
|
213 |
</div>
|
214 |
|
215 |
+
<div class='litespeed-col'>
|
216 |
<h4><?php echo __( 'User API Key', 'litespeed-cache' ) ; ?></h4>
|
217 |
|
218 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CDN_QUIC_KEY ) ; ?>
|
219 |
<div class="litespeed-desc">
|
220 |
+
<?php echo sprintf( __( 'Your API key is used to access %s APIs.', 'litespeed-cache' ), 'Quic Cloud' ) ; ?>
|
221 |
+
<?php echo sprintf( __( 'Get it from <a %1$s>%2$s</a>.', 'litespeed-cache' ), 'href="https://quic.cloud/dashboard" target="_blank"', 'Quic Cloud' ) ; ?>
|
222 |
</div>
|
223 |
</div>
|
224 |
|
225 |
+
<div class='litespeed-col'>
|
226 |
<h4><?php echo __( 'Site Domain', 'litespeed-cache' ) ; ?></h4>
|
227 |
|
228 |
<?php
|
242 |
<td>
|
243 |
<?php $this->build_switch( LiteSpeed_Cache_Config::OPID_CDN_CLOUDFLARE ) ; ?>
|
244 |
<div class="litespeed-desc">
|
245 |
+
<?php echo sprintf( __( 'Use %s API functionality.', 'litespeed-cache' ), 'Cloudflare' ) ; ?>
|
246 |
<?php echo sprintf( __( 'This can be managed from <a %2$s>%1$s</a>.', 'litespeed-cache' ), '<b>' . __( 'Manage', 'litespeed-cache' ) . '</b> -> <b>' . __( 'CDN', 'litespeed-cache' ) . '</b>', 'href="admin.php?page=lscache-dash#cdn"' ) ; ?>
|
247 |
</div>
|
248 |
+
<div class="litespeed-block">
|
249 |
+
<div class='litespeed-col'>
|
250 |
<h4><?php echo __( 'Email Address', 'litespeed-cache' ) ; ?></h4>
|
251 |
|
252 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CDN_CLOUDFLARE_EMAIL ) ; ?>
|
253 |
<div class="litespeed-desc">
|
254 |
+
<?php echo sprintf( __( 'Your Email address on %s.', 'litespeed-cache' ), 'Cloudflare' ) ; ?>
|
255 |
</div>
|
256 |
</div>
|
257 |
|
258 |
+
<div class='litespeed-col'>
|
259 |
<h4><?php echo __( 'Global API Key', 'litespeed-cache' ) ; ?></h4>
|
260 |
|
261 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CDN_CLOUDFLARE_KEY ) ; ?>
|
262 |
<div class="litespeed-desc">
|
263 |
+
<?php echo sprintf( __( 'Your API key is used to access %s APIs.', 'litespeed-cache' ), 'Cloudflare' ) ; ?>
|
264 |
+
<?php echo sprintf( __( 'Get it from <a %1$s>%2$s</a>.', 'litespeed-cache' ), 'href="https://www.cloudflare.com/a/profile" target="_blank"', 'Cloudflare' ) ; ?>
|
265 |
</div>
|
266 |
</div>
|
267 |
|
268 |
+
<div class='litespeed-col'>
|
269 |
<h4><?php echo __( 'Domain', 'litespeed-cache' ) ; ?></h4>
|
270 |
|
271 |
<?php
|
admin/tpl/setting/settings_crawler.php
CHANGED
@@ -135,6 +135,22 @@ if ( !defined('WPINC') ) die;
|
|
135 |
</td>
|
136 |
</tr>
|
137 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
<tr>
|
139 |
<th><?php echo __('Custom Sitemap', 'litespeed-cache'); ?></th>
|
140 |
<td>
|
@@ -149,31 +165,31 @@ if ( !defined('WPINC') ) die;
|
|
149 |
<tr>
|
150 |
<th><?php echo __('Sitemap Generation', 'litespeed-cache'); ?></th>
|
151 |
<td>
|
152 |
-
<div class="litespeed-
|
153 |
<div class='litespeed-cdn-mapping-col2'>
|
154 |
<div class="litespeed-row">
|
155 |
-
<div class="litespeed-
|
156 |
<?php
|
157 |
$this->build_toggle( LiteSpeed_Cache_Config::CRWL_POSTS ) ;
|
158 |
?>
|
159 |
</div>
|
160 |
|
161 |
<div class="litespeed-row">
|
162 |
-
<div class="litespeed-
|
163 |
<?php
|
164 |
$this->build_toggle( LiteSpeed_Cache_Config::CRWL_PAGES ) ;
|
165 |
?>
|
166 |
</div>
|
167 |
|
168 |
<div class="litespeed-row">
|
169 |
-
<div class="litespeed-
|
170 |
<?php
|
171 |
$this->build_toggle( LiteSpeed_Cache_Config::CRWL_CATS ) ;
|
172 |
?>
|
173 |
</div>
|
174 |
|
175 |
<div class="litespeed-row">
|
176 |
-
<div class="litespeed-
|
177 |
<?php
|
178 |
$this->build_toggle( LiteSpeed_Cache_Config::CRWL_TAGS ) ;
|
179 |
?>
|
@@ -181,7 +197,7 @@ if ( !defined('WPINC') ) die;
|
|
181 |
|
182 |
</div>
|
183 |
|
184 |
-
<div class='litespeed-
|
185 |
<h4><?php echo __('Exclude Custom Post Types', 'litespeed-cache'); ?></h4>
|
186 |
|
187 |
<?php $this->build_textarea( LiteSpeed_Cache_Config::CRWL_EXCLUDES_CPT, 40 ) ; ?>
|
@@ -191,7 +207,7 @@ if ( !defined('WPINC') ) die;
|
|
191 |
</div>
|
192 |
</div>
|
193 |
|
194 |
-
<div class='litespeed-
|
195 |
<div class="litespeed-callout-warning">
|
196 |
<h4><?php echo __('Available Custom Post Type','litespeed-cache'); ?></h4>
|
197 |
<p>
|
@@ -200,7 +216,7 @@ if ( !defined('WPINC') ) die;
|
|
200 |
</div>
|
201 |
</div>
|
202 |
|
203 |
-
<div class='litespeed-
|
204 |
<h4><?php echo __('Order links by', 'litespeed-cache'); ?></h4>
|
205 |
|
206 |
<div class="litespeed-switch">
|
135 |
</td>
|
136 |
</tr>
|
137 |
|
138 |
+
<tr>
|
139 |
+
<th><?php echo __( 'HTTP/2 Crawl', 'litespeed-cache' ) ; ?></th>
|
140 |
+
<td>
|
141 |
+
<?php $this->build_switch( LiteSpeed_Cache_Config::CRWL_HTTP2 ) ; ?>
|
142 |
+
<div class="litespeed-desc">
|
143 |
+
<?php echo __( 'Crawl using the HTTP/2 protocal.', 'litespeed-cache' ) ; ?>
|
144 |
+
<?php echo __( 'Current curl HTTP/2 extension status', 'litespeed-cache' ) ; ?>:
|
145 |
+
<?php if ( defined( 'CURL_HTTP_VERSION_2' ) ) : ?>
|
146 |
+
<font class="litespeed-warning"><?php echo __( 'Enabled', 'litespeed-cache' ) ; ?></font>
|
147 |
+
<?php else : ?>
|
148 |
+
<font class="litespeed-warning"><?php echo __( 'Disabled', 'litespeed-cache' ) ; ?></font>
|
149 |
+
<?php endif ; ?>
|
150 |
+
</div>
|
151 |
+
</td>
|
152 |
+
</tr>
|
153 |
+
|
154 |
<tr>
|
155 |
<th><?php echo __('Custom Sitemap', 'litespeed-cache'); ?></th>
|
156 |
<td>
|
165 |
<tr>
|
166 |
<th><?php echo __('Sitemap Generation', 'litespeed-cache'); ?></th>
|
167 |
<td>
|
168 |
+
<div class="litespeed-block">
|
169 |
<div class='litespeed-cdn-mapping-col2'>
|
170 |
<div class="litespeed-row">
|
171 |
+
<div class="litespeed-col-inc"><?php echo __( 'Include Posts', 'litespeed-cache' ) ; ?></div>
|
172 |
<?php
|
173 |
$this->build_toggle( LiteSpeed_Cache_Config::CRWL_POSTS ) ;
|
174 |
?>
|
175 |
</div>
|
176 |
|
177 |
<div class="litespeed-row">
|
178 |
+
<div class="litespeed-col-inc"><?php echo __( 'Include Pages', 'litespeed-cache' ) ; ?></div>
|
179 |
<?php
|
180 |
$this->build_toggle( LiteSpeed_Cache_Config::CRWL_PAGES ) ;
|
181 |
?>
|
182 |
</div>
|
183 |
|
184 |
<div class="litespeed-row">
|
185 |
+
<div class="litespeed-col-inc"><?php echo __( 'Include Categories', 'litespeed-cache' ) ; ?></div>
|
186 |
<?php
|
187 |
$this->build_toggle( LiteSpeed_Cache_Config::CRWL_CATS ) ;
|
188 |
?>
|
189 |
</div>
|
190 |
|
191 |
<div class="litespeed-row">
|
192 |
+
<div class="litespeed-col-inc"><?php echo __( 'Include Tags', 'litespeed-cache' ) ; ?></div>
|
193 |
<?php
|
194 |
$this->build_toggle( LiteSpeed_Cache_Config::CRWL_TAGS ) ;
|
195 |
?>
|
197 |
|
198 |
</div>
|
199 |
|
200 |
+
<div class='litespeed-col-auto'>
|
201 |
<h4><?php echo __('Exclude Custom Post Types', 'litespeed-cache'); ?></h4>
|
202 |
|
203 |
<?php $this->build_textarea( LiteSpeed_Cache_Config::CRWL_EXCLUDES_CPT, 40 ) ; ?>
|
207 |
</div>
|
208 |
</div>
|
209 |
|
210 |
+
<div class='litespeed-col-auto'>
|
211 |
<div class="litespeed-callout-warning">
|
212 |
<h4><?php echo __('Available Custom Post Type','litespeed-cache'); ?></h4>
|
213 |
<p>
|
216 |
</div>
|
217 |
</div>
|
218 |
|
219 |
+
<div class='litespeed-col-auto'>
|
220 |
<h4><?php echo __('Order links by', 'litespeed-cache'); ?></h4>
|
221 |
|
222 |
<div class="litespeed-switch">
|
admin/tpl/setting/settings_esi.php
CHANGED
@@ -66,9 +66,9 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
66 |
<th><?php echo __('Vary Group', 'litespeed-cache'); ?></th>
|
67 |
<td>
|
68 |
<table class="litespeed-vary-table"><tbody>
|
69 |
-
<?php foreach ( $roles as $role ): ?>
|
70 |
<tr>
|
71 |
-
<td class='litespeed-vary-title'><?php echo $
|
72 |
<td class='litespeed-vary-val'>
|
73 |
<input type="text" class="litespeed-input-short"
|
74 |
name="<?php echo LiteSpeed_Cache_Config::VARY_GROUP ; ?>[<?php echo $role ; ?>]"
|
66 |
<th><?php echo __('Vary Group', 'litespeed-cache'); ?></th>
|
67 |
<td>
|
68 |
<table class="litespeed-vary-table"><tbody>
|
69 |
+
<?php foreach ( $roles as $role => $title ): ?>
|
70 |
<tr>
|
71 |
+
<td class='litespeed-vary-title'><?php echo $title ; ?></td>
|
72 |
<td class='litespeed-vary-val'>
|
73 |
<input type="text" class="litespeed-input-short"
|
74 |
name="<?php echo LiteSpeed_Cache_Config::VARY_GROUP ; ?>[<?php echo $role ; ?>]"
|
admin/tpl/setting/settings_excludes.php
CHANGED
@@ -60,7 +60,7 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
60 |
</i>
|
61 |
</div>
|
62 |
<div class="litespeed-callout-warning">
|
63 |
-
<h4><?php echo __('NOTE
|
64 |
<ol>
|
65 |
<li><?php echo __('If the category slug is not found, the category will be removed from the list on save.', 'litespeed-cache'); ?></li>
|
66 |
<li><?php echo sprintf(__('To exclude %1$s, insert %2$s.', 'litespeed-cache'),
|
@@ -98,7 +98,7 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
98 |
</i>
|
99 |
</div>
|
100 |
<div class="litespeed-callout-warning">
|
101 |
-
<h4><?php echo __('NOTE
|
102 |
<ol>
|
103 |
<li><?php echo __('If the tag slug is not found, the tag will be removed from the list on save.', 'litespeed-cache'); ?></li>
|
104 |
<li><?php echo sprintf(__('To exclude %1$s, insert %2$s.', 'litespeed-cache'),
|
@@ -123,8 +123,8 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
123 |
<tr>
|
124 |
<th><?php echo __('Do Not Cache Roles', 'litespeed-cache'); ?></th>
|
125 |
<td>
|
126 |
-
<?php foreach ( $roles as $role ): ?>
|
127 |
-
<?php $this->build_checkbox( LiteSpeed_Cache_Config::EXCLUDE_CACHE_ROLES . "][", $
|
128 |
<?php endforeach; ?>
|
129 |
<div class="litespeed-desc">
|
130 |
<?php echo __( 'Selected roles will be excluded from cache.', 'litespeed-cache' ) ; ?>
|
60 |
</i>
|
61 |
</div>
|
62 |
<div class="litespeed-callout-warning">
|
63 |
+
<h4><?php echo __('NOTE', 'litespeed-cache'); ?>:</h4>
|
64 |
<ol>
|
65 |
<li><?php echo __('If the category slug is not found, the category will be removed from the list on save.', 'litespeed-cache'); ?></li>
|
66 |
<li><?php echo sprintf(__('To exclude %1$s, insert %2$s.', 'litespeed-cache'),
|
98 |
</i>
|
99 |
</div>
|
100 |
<div class="litespeed-callout-warning">
|
101 |
+
<h4><?php echo __('NOTE', 'litespeed-cache'); ?>:</h4>
|
102 |
<ol>
|
103 |
<li><?php echo __('If the tag slug is not found, the tag will be removed from the list on save.', 'litespeed-cache'); ?></li>
|
104 |
<li><?php echo sprintf(__('To exclude %1$s, insert %2$s.', 'litespeed-cache'),
|
123 |
<tr>
|
124 |
<th><?php echo __('Do Not Cache Roles', 'litespeed-cache'); ?></th>
|
125 |
<td>
|
126 |
+
<?php foreach ( $roles as $role => $title ): ?>
|
127 |
+
<?php $this->build_checkbox( LiteSpeed_Cache_Config::EXCLUDE_CACHE_ROLES . "][", $title, $this->config->in_exclude_cache_roles( $role ), $role ) ; ?>
|
128 |
<?php endforeach; ?>
|
129 |
<div class="litespeed-desc">
|
130 |
<?php echo __( 'Selected roles will be excluded from cache.', 'litespeed-cache' ) ; ?>
|
admin/tpl/setting/settings_inc.cache_browser.php
CHANGED
@@ -9,7 +9,7 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
9 |
<div class="litespeed-desc">
|
10 |
<?php echo __( 'Browser caching stores static files locally in the user\'s browser. Turn on this setting to reduce repeated requests for static files.', 'litespeed-cache' ) ; ?>
|
11 |
<br /><font class="litespeed-warning">
|
12 |
-
<?php echo __('NOTE
|
13 |
<?php echo __('This setting will edit the .htaccess file.', 'litespeed-cache'); ?>
|
14 |
</font>
|
15 |
<br /><?php echo sprintf( __( 'You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache setting</a>.', 'litespeed-cache' ), 'href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:browser_cache" target="_blank"' ) ; ?>
|
9 |
<div class="litespeed-desc">
|
10 |
<?php echo __( 'Browser caching stores static files locally in the user\'s browser. Turn on this setting to reduce repeated requests for static files.', 'litespeed-cache' ) ; ?>
|
11 |
<br /><font class="litespeed-warning">
|
12 |
+
<?php echo __('NOTE', 'litespeed-cache'); ?>:
|
13 |
<?php echo __('This setting will edit the .htaccess file.', 'litespeed-cache'); ?>
|
14 |
</font>
|
15 |
<br /><?php echo sprintf( __( 'You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache setting</a>.', 'litespeed-cache' ), 'href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:browser_cache" target="_blank"' ) ; ?>
|
admin/tpl/setting/settings_inc.cache_favicon.php
CHANGED
@@ -10,7 +10,7 @@ if (!defined('WPINC')) die;
|
|
10 |
<?php echo __('favicon.ico is requested on most pages.', 'litespeed-cache'); ?>
|
11 |
<?php echo __('Caching this resource may improve server performance by avoiding unnecessary PHP calls.', 'litespeed-cache'); ?>
|
12 |
<br /><font class="litespeed-warning">
|
13 |
-
<?php echo __('NOTE
|
14 |
<?php echo __('This setting will edit the .htaccess file.', 'litespeed-cache'); ?>
|
15 |
</font>
|
16 |
</div>
|
10 |
<?php echo __('favicon.ico is requested on most pages.', 'litespeed-cache'); ?>
|
11 |
<?php echo __('Caching this resource may improve server performance by avoiding unnecessary PHP calls.', 'litespeed-cache'); ?>
|
12 |
<br /><font class="litespeed-warning">
|
13 |
+
<?php echo __('NOTE', 'litespeed-cache'); ?>:
|
14 |
<?php echo __('This setting will edit the .htaccess file.', 'litespeed-cache'); ?>
|
15 |
</font>
|
16 |
</div>
|
admin/tpl/setting/settings_inc.cache_mobile.php
CHANGED
@@ -14,7 +14,7 @@ if (!defined('WPINC')) die;
|
|
14 |
<?php echo __('When enabled, mobile views will be cached separately.', 'litespeed-cache'); ?>
|
15 |
<?php echo __('A site built with responsive design does not need to check this.', 'litespeed-cache'); ?>
|
16 |
<br /><font class="litespeed-warning">
|
17 |
-
<?php echo __( 'NOTE
|
18 |
<?php echo __( 'This setting will edit the .htaccess file.', 'litespeed-cache' ) ; ?>
|
19 |
</font>
|
20 |
</div>
|
@@ -63,7 +63,7 @@ if (!defined('WPINC')) die;
|
|
63 |
<br />
|
64 |
<?php echo sprintf( __( 'The default list WordPress uses is %s', 'litespeed-cache' ), "<code>$wp_default_mobile</code>" ) ; ?>
|
65 |
<br /><font class="litespeed-warning">
|
66 |
-
<?php echo __( 'NOTE
|
67 |
<?php echo sprintf( __( 'If %1$s is %2$s, then %3$s must be populated!', 'litespeed-cache' ), '<code>' . __('Cache Mobile', 'litespeed-cache') . '</code>', '<code>' . __('ON', 'litespeed-cache') . '</code>', '<code>' . __('List of Mobile User Agents', 'litespeed-cache') . '</code>' ) ; ?>
|
68 |
</font>
|
69 |
</div>
|
14 |
<?php echo __('When enabled, mobile views will be cached separately.', 'litespeed-cache'); ?>
|
15 |
<?php echo __('A site built with responsive design does not need to check this.', 'litespeed-cache'); ?>
|
16 |
<br /><font class="litespeed-warning">
|
17 |
+
<?php echo __( 'NOTE', 'litespeed-cache' ) ; ?>:
|
18 |
<?php echo __( 'This setting will edit the .htaccess file.', 'litespeed-cache' ) ; ?>
|
19 |
</font>
|
20 |
</div>
|
63 |
<br />
|
64 |
<?php echo sprintf( __( 'The default list WordPress uses is %s', 'litespeed-cache' ), "<code>$wp_default_mobile</code>" ) ; ?>
|
65 |
<br /><font class="litespeed-warning">
|
66 |
+
<?php echo __( 'NOTE', 'litespeed-cache' ) ; ?>:
|
67 |
<?php echo sprintf( __( 'If %1$s is %2$s, then %3$s must be populated!', 'litespeed-cache' ), '<code>' . __('Cache Mobile', 'litespeed-cache') . '</code>', '<code>' . __('ON', 'litespeed-cache') . '</code>', '<code>' . __('List of Mobile User Agents', 'litespeed-cache') . '</code>' ) ; ?>
|
68 |
</font>
|
69 |
</div>
|
admin/tpl/setting/settings_inc.cache_object.php
CHANGED
@@ -32,8 +32,8 @@ $hide_redis_options = LiteSpeed_Cache::config( LiteSpeed_Cache_Config::OPID_CACH
|
|
32 |
<?php echo __( 'Use object cache functionality.', 'litespeed-cache' ) ; ?>
|
33 |
<a href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:configuration:cache:object_cache" target="_blank"><?php echo __('Learn More', 'litespeed-cache') ; ?></a>
|
34 |
</div>
|
35 |
-
<div class="litespeed-
|
36 |
-
<div class='litespeed-
|
37 |
<h4><?php echo __( 'Method', 'litespeed-cache' ) ; ?></h4>
|
38 |
|
39 |
<div class="litespeed-switch">
|
@@ -42,7 +42,7 @@ $hide_redis_options = LiteSpeed_Cache::config( LiteSpeed_Cache_Config::OPID_CACH
|
|
42 |
</div>
|
43 |
</div>
|
44 |
|
45 |
-
<div class='litespeed-
|
46 |
<h4><?php echo __( 'Host', 'litespeed-cache' ) ; ?></h4>
|
47 |
|
48 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_HOST ) ; ?>
|
@@ -51,13 +51,13 @@ $hide_redis_options = LiteSpeed_Cache::config( LiteSpeed_Cache_Config::OPID_CACH
|
|
51 |
</div>
|
52 |
</div>
|
53 |
|
54 |
-
<div class='litespeed-
|
55 |
<h4><?php echo __( 'Port', 'litespeed-cache' ) ; ?></h4>
|
56 |
|
57 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_PORT, 'litespeed-input-short2' ) ; ?>
|
58 |
</div>
|
59 |
|
60 |
-
<div class='litespeed-
|
61 |
<h4><?php echo __( 'Default Object Lifetime', 'litespeed-cache' ) ; ?></h4>
|
62 |
|
63 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_LIFE, 'litespeed-input-short2' ) ; ?> <?php echo __( 'seconds', 'litespeed-cache' ) ; ?>
|
@@ -66,7 +66,7 @@ $hide_redis_options = LiteSpeed_Cache::config( LiteSpeed_Cache_Config::OPID_CACH
|
|
66 |
</div>
|
67 |
</div>
|
68 |
|
69 |
-
<div class='litespeed-
|
70 |
<h4><?php echo __( 'Status', 'litespeed-cache' ) ; ?></h4>
|
71 |
|
72 |
<?php echo sprintf( __( '%s Extension', 'litespeed-cache' ), 'Memcached' ) ; ?>: <?php echo $mem_enabled ; ?><br />
|
@@ -75,9 +75,9 @@ $hide_redis_options = LiteSpeed_Cache::config( LiteSpeed_Cache_Config::OPID_CACH
|
|
75 |
<a href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:configuration:cache:object_cache#how_to_debug" target="_blank"><?php echo __('Learn More', 'litespeed-cache') ; ?></a>
|
76 |
</div>
|
77 |
|
78 |
-
<div class='litespeed-
|
79 |
|
80 |
-
<div class='litespeed-
|
81 |
<h4><?php echo __( 'Username', 'litespeed-cache' ) ; ?></h4>
|
82 |
|
83 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_USER ) ; ?>
|
@@ -86,7 +86,7 @@ $hide_redis_options = LiteSpeed_Cache::config( LiteSpeed_Cache_Config::OPID_CACH
|
|
86 |
</div>
|
87 |
</div>
|
88 |
|
89 |
-
<div class='litespeed-
|
90 |
<h4><?php echo __( 'Password', 'litespeed-cache' ) ; ?></h4>
|
91 |
|
92 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_PSWD ) ; ?>
|
@@ -95,7 +95,7 @@ $hide_redis_options = LiteSpeed_Cache::config( LiteSpeed_Cache_Config::OPID_CACH
|
|
95 |
</div>
|
96 |
</div>
|
97 |
|
98 |
-
<div class='litespeed-
|
99 |
<h4><?php echo __( 'Redis Database ID', 'litespeed-cache' ) ; ?></h4>
|
100 |
|
101 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_DB_ID, 'litespeed-input-short' ) ; ?>
|
@@ -104,9 +104,9 @@ $hide_redis_options = LiteSpeed_Cache::config( LiteSpeed_Cache_Config::OPID_CACH
|
|
104 |
</div>
|
105 |
</div>
|
106 |
|
107 |
-
<div class='litespeed-
|
108 |
|
109 |
-
<div class='litespeed-
|
110 |
<h4><?php echo __( 'Global Groups', 'litespeed-cache' ) ; ?></h4>
|
111 |
<?php $this->build_textarea2( LiteSpeed_Cache_Config::ITEM_OBJECT_GLOBAL_GROUPS, 30 ) ; ?>
|
112 |
<div class="litespeed-desc">
|
@@ -115,7 +115,7 @@ $hide_redis_options = LiteSpeed_Cache::config( LiteSpeed_Cache_Config::OPID_CACH
|
|
115 |
</div>
|
116 |
</div>
|
117 |
|
118 |
-
<div class='litespeed-
|
119 |
<h4><?php echo __( 'Do Not Cache Groups', 'litespeed-cache' ) ; ?></h4>
|
120 |
<?php $this->build_textarea2( LiteSpeed_Cache_Config::ITEM_OBJECT_NON_PERSISTENT_GROUPS, 30 ) ; ?>
|
121 |
<div class="litespeed-desc">
|
@@ -123,16 +123,16 @@ $hide_redis_options = LiteSpeed_Cache::config( LiteSpeed_Cache_Config::OPID_CACH
|
|
123 |
</div>
|
124 |
</div>
|
125 |
|
126 |
-
<div class='litespeed-
|
127 |
<div class="litespeed-row">
|
128 |
-
<div class="litespeed-
|
129 |
<?php $this->build_toggle( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_PERSISTENT ) ; ?>
|
130 |
</div>
|
131 |
<div class="litespeed-desc">
|
132 |
<?php echo __( 'Use keep-alive connections to speed up cache operations.', 'litespeed-cache' ) ; ?>
|
133 |
</div>
|
134 |
<div class="litespeed-row litespeed-top30">
|
135 |
-
<div class="litespeed-
|
136 |
<?php $this->build_toggle( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_ADMIN ) ; ?>
|
137 |
</div>
|
138 |
<div class="litespeed-desc">
|
@@ -140,9 +140,9 @@ $hide_redis_options = LiteSpeed_Cache::config( LiteSpeed_Cache_Config::OPID_CACH
|
|
140 |
</div>
|
141 |
</div>
|
142 |
|
143 |
-
<div class='litespeed-
|
144 |
<div class="litespeed-row">
|
145 |
-
<div class="litespeed-
|
146 |
<?php $this->build_toggle( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_TRANSIENTS ) ; ?>
|
147 |
</div>
|
148 |
<div class="litespeed-desc">
|
32 |
<?php echo __( 'Use object cache functionality.', 'litespeed-cache' ) ; ?>
|
33 |
<a href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:configuration:cache:object_cache" target="_blank"><?php echo __('Learn More', 'litespeed-cache') ; ?></a>
|
34 |
</div>
|
35 |
+
<div class="litespeed-block">
|
36 |
+
<div class='litespeed-col-auto'>
|
37 |
<h4><?php echo __( 'Method', 'litespeed-cache' ) ; ?></h4>
|
38 |
|
39 |
<div class="litespeed-switch">
|
42 |
</div>
|
43 |
</div>
|
44 |
|
45 |
+
<div class='litespeed-col-auto'>
|
46 |
<h4><?php echo __( 'Host', 'litespeed-cache' ) ; ?></h4>
|
47 |
|
48 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_HOST ) ; ?>
|
51 |
</div>
|
52 |
</div>
|
53 |
|
54 |
+
<div class='litespeed-col-auto'>
|
55 |
<h4><?php echo __( 'Port', 'litespeed-cache' ) ; ?></h4>
|
56 |
|
57 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_PORT, 'litespeed-input-short2' ) ; ?>
|
58 |
</div>
|
59 |
|
60 |
+
<div class='litespeed-col-auto'>
|
61 |
<h4><?php echo __( 'Default Object Lifetime', 'litespeed-cache' ) ; ?></h4>
|
62 |
|
63 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_LIFE, 'litespeed-input-short2' ) ; ?> <?php echo __( 'seconds', 'litespeed-cache' ) ; ?>
|
66 |
</div>
|
67 |
</div>
|
68 |
|
69 |
+
<div class='litespeed-col-auto'>
|
70 |
<h4><?php echo __( 'Status', 'litespeed-cache' ) ; ?></h4>
|
71 |
|
72 |
<?php echo sprintf( __( '%s Extension', 'litespeed-cache' ), 'Memcached' ) ; ?>: <?php echo $mem_enabled ; ?><br />
|
75 |
<a href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:configuration:cache:object_cache#how_to_debug" target="_blank"><?php echo __('Learn More', 'litespeed-cache') ; ?></a>
|
76 |
</div>
|
77 |
|
78 |
+
<div class='litespeed-col-br'></div>
|
79 |
|
80 |
+
<div class='litespeed-col-auto <?php echo $hide_mem_options ; ?>' data="litespeed-mem-divs">
|
81 |
<h4><?php echo __( 'Username', 'litespeed-cache' ) ; ?></h4>
|
82 |
|
83 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_USER ) ; ?>
|
86 |
</div>
|
87 |
</div>
|
88 |
|
89 |
+
<div class='litespeed-col-auto'>
|
90 |
<h4><?php echo __( 'Password', 'litespeed-cache' ) ; ?></h4>
|
91 |
|
92 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_PSWD ) ; ?>
|
95 |
</div>
|
96 |
</div>
|
97 |
|
98 |
+
<div class='litespeed-col-auto <?php echo $hide_redis_options ; ?>' data="litespeed-redis-divs">
|
99 |
<h4><?php echo __( 'Redis Database ID', 'litespeed-cache' ) ; ?></h4>
|
100 |
|
101 |
<?php $this->build_input( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_DB_ID, 'litespeed-input-short' ) ; ?>
|
104 |
</div>
|
105 |
</div>
|
106 |
|
107 |
+
<div class='litespeed-col-br'></div>
|
108 |
|
109 |
+
<div class='litespeed-col-auto'>
|
110 |
<h4><?php echo __( 'Global Groups', 'litespeed-cache' ) ; ?></h4>
|
111 |
<?php $this->build_textarea2( LiteSpeed_Cache_Config::ITEM_OBJECT_GLOBAL_GROUPS, 30 ) ; ?>
|
112 |
<div class="litespeed-desc">
|
115 |
</div>
|
116 |
</div>
|
117 |
|
118 |
+
<div class='litespeed-col-auto'>
|
119 |
<h4><?php echo __( 'Do Not Cache Groups', 'litespeed-cache' ) ; ?></h4>
|
120 |
<?php $this->build_textarea2( LiteSpeed_Cache_Config::ITEM_OBJECT_NON_PERSISTENT_GROUPS, 30 ) ; ?>
|
121 |
<div class="litespeed-desc">
|
123 |
</div>
|
124 |
</div>
|
125 |
|
126 |
+
<div class='litespeed-col-auto'>
|
127 |
<div class="litespeed-row">
|
128 |
+
<div class="litespeed-col-inc"><?php echo __( 'Persistent Connection', 'litespeed-cache' ) ; ?></div>
|
129 |
<?php $this->build_toggle( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_PERSISTENT ) ; ?>
|
130 |
</div>
|
131 |
<div class="litespeed-desc">
|
132 |
<?php echo __( 'Use keep-alive connections to speed up cache operations.', 'litespeed-cache' ) ; ?>
|
133 |
</div>
|
134 |
<div class="litespeed-row litespeed-top30">
|
135 |
+
<div class="litespeed-col-inc"><?php echo __( 'Cache Wp-Admin', 'litespeed-cache' ) ; ?></div>
|
136 |
<?php $this->build_toggle( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_ADMIN ) ; ?>
|
137 |
</div>
|
138 |
<div class="litespeed-desc">
|
140 |
</div>
|
141 |
</div>
|
142 |
|
143 |
+
<div class='litespeed-col-auto'>
|
144 |
<div class="litespeed-row">
|
145 |
+
<div class="litespeed-col-inc"><?php echo __( 'Store Transients', 'litespeed-cache' ) ; ?></div>
|
146 |
<?php $this->build_toggle( LiteSpeed_Cache_Config::OPID_CACHE_OBJECT_TRANSIENTS ) ; ?>
|
147 |
</div>
|
148 |
<div class="litespeed-desc">
|
admin/tpl/setting/settings_inc.cache_resources.php
CHANGED
@@ -11,7 +11,7 @@ if (!defined('WPINC')) die;
|
|
11 |
<?php echo __('Some themes and plugins add resources via a PHP request.', 'litespeed-cache'); ?>
|
12 |
<?php echo __('Caching these pages may improve server performance by avoiding unnecessary PHP calls.', 'litespeed-cache'); ?>
|
13 |
<br /><font class="litespeed-warning">
|
14 |
-
<?php echo __('NOTE
|
15 |
<?php echo __('This setting will edit the .htaccess file.', 'litespeed-cache'); ?>
|
16 |
</font>
|
17 |
</div>
|
11 |
<?php echo __('Some themes and plugins add resources via a PHP request.', 'litespeed-cache'); ?>
|
12 |
<?php echo __('Caching these pages may improve server performance by avoiding unnecessary PHP calls.', 'litespeed-cache'); ?>
|
13 |
<br /><font class="litespeed-warning">
|
14 |
+
<?php echo __('NOTE', 'litespeed-cache'); ?>:
|
15 |
<?php echo __('This setting will edit the .htaccess file.', 'litespeed-cache'); ?>
|
16 |
</font>
|
17 |
</div>
|
admin/tpl/setting/settings_inc.exclude_cookies.php
CHANGED
@@ -19,7 +19,7 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
19 |
<?php echo __('One per line.', 'litespeed-cache'); ?>
|
20 |
</i>
|
21 |
<br /><font class="litespeed-warning">
|
22 |
-
<?php echo __('NOTE
|
23 |
<?php echo __('This setting will edit the .htaccess file.', 'litespeed-cache'); ?>
|
24 |
</font>
|
25 |
</div>
|
19 |
<?php echo __('One per line.', 'litespeed-cache'); ?>
|
20 |
</i>
|
21 |
<br /><font class="litespeed-warning">
|
22 |
+
<?php echo __('NOTE', 'litespeed-cache'); ?>:
|
23 |
<?php echo __('This setting will edit the .htaccess file.', 'litespeed-cache'); ?>
|
24 |
</font>
|
25 |
</div>
|
admin/tpl/setting/settings_inc.exclude_useragent.php
CHANGED
@@ -18,7 +18,7 @@ if (!defined('WPINC')) die;
|
|
18 |
<?php echo sprintf( __( 'Spaces should have a backslash in front of them, %s.', 'litespeed-cache' ), '<code>\</code>' ) ; ?>
|
19 |
</i>
|
20 |
<br /><font class="litespeed-warning">
|
21 |
-
<?php echo __('NOTE
|
22 |
<?php echo __('This setting will edit the .htaccess file.', 'litespeed-cache'); ?>
|
23 |
</font>
|
24 |
</div>
|
18 |
<?php echo sprintf( __( 'Spaces should have a backslash in front of them, %s.', 'litespeed-cache' ), '<code>\</code>' ) ; ?>
|
19 |
</i>
|
20 |
<br /><font class="litespeed-warning">
|
21 |
+
<?php echo __('NOTE', 'litespeed-cache'); ?>:
|
22 |
<?php echo __('This setting will edit the .htaccess file.', 'litespeed-cache'); ?>
|
23 |
</font>
|
24 |
</div>
|
admin/tpl/setting/settings_inc.media_webp.php
CHANGED
@@ -9,7 +9,7 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
9 |
<div class="litespeed-desc">
|
10 |
<?php echo sprintf( __( 'Significantly improve load time by replacing images with their optimized %s versions.', 'litespeed-cache' ), '.webp' ) ; ?>
|
11 |
<br /><font class="litespeed-warning">
|
12 |
-
<?php echo __('NOTE
|
13 |
<?php echo __('This setting will edit the .htaccess file.', 'litespeed-cache'); ?>
|
14 |
</font>
|
15 |
</div>
|
9 |
<div class="litespeed-desc">
|
10 |
<?php echo sprintf( __( 'Significantly improve load time by replacing images with their optimized %s versions.', 'litespeed-cache' ), '.webp' ) ; ?>
|
11 |
<br /><font class="litespeed-warning">
|
12 |
+
<?php echo __('NOTE', 'litespeed-cache'); ?>:
|
13 |
<?php echo __('This setting will edit the .htaccess file.', 'litespeed-cache'); ?>
|
14 |
</font>
|
15 |
</div>
|
admin/tpl/setting/settings_media.php
CHANGED
@@ -33,7 +33,7 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
33 |
<?php echo __( 'Both full URLs and partial strings can be used.', 'litespeed-cache' ) ; ?>
|
34 |
<?php echo __('One per line.', 'litespeed-cache'); ?>
|
35 |
<br /><font class="litespeed-success">
|
36 |
-
<?php echo __('API
|
37 |
<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_cache_media_lazy_img_excludes</code>' ) ; ?>
|
38 |
<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-lazy="1"</code>' ) ; ?>
|
39 |
</font>
|
33 |
<?php echo __( 'Both full URLs and partial strings can be used.', 'litespeed-cache' ) ; ?>
|
34 |
<?php echo __('One per line.', 'litespeed-cache'); ?>
|
35 |
<br /><font class="litespeed-success">
|
36 |
+
<?php echo __('API', 'litespeed-cache'); ?>:
|
37 |
<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_cache_media_lazy_img_excludes</code>' ) ; ?>
|
38 |
<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-lazy="1"</code>' ) ; ?>
|
39 |
</font>
|
admin/tpl/setting/settings_optimize.php
CHANGED
@@ -134,7 +134,7 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
134 |
<?php echo __( 'Optimize CSS delivery. This will load Google Fonts asynchronously too.', 'litespeed-cache' ) ; ?>
|
135 |
<?php echo __( 'This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.', 'litespeed-cache' ) ; ?>
|
136 |
<br /><font class="litespeed-success">
|
137 |
-
<?php echo __('API
|
138 |
<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-async="1"</code>' ) ; ?>
|
139 |
</font>
|
140 |
</div>
|
@@ -159,7 +159,7 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
159 |
<div class="litespeed-desc">
|
160 |
<?php echo sprintf( __( 'Improve compatibility with inline JS by preventing jQuery optimization. (Recommended Setting: %s)', 'litespeed-cache' ), __( 'ON', 'litespeed-cache' ) ) ; ?>
|
161 |
<br /><font class="litespeed-warning">
|
162 |
-
<?php echo __('NOTE
|
163 |
<?php echo sprintf( __( 'If there is any JS error related to %1$s when enabled %2$s, please try this option.', 'litespeed-cache' ), 'jQuery', __( 'JS Combine', 'litespeed-cache' ) ) ; ?>
|
164 |
</font>
|
165 |
</div>
|
134 |
<?php echo __( 'Optimize CSS delivery. This will load Google Fonts asynchronously too.', 'litespeed-cache' ) ; ?>
|
135 |
<?php echo __( 'This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.', 'litespeed-cache' ) ; ?>
|
136 |
<br /><font class="litespeed-success">
|
137 |
+
<?php echo __('API', 'litespeed-cache'); ?>:
|
138 |
<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-async="1"</code>' ) ; ?>
|
139 |
</font>
|
140 |
</div>
|
159 |
<div class="litespeed-desc">
|
160 |
<?php echo sprintf( __( 'Improve compatibility with inline JS by preventing jQuery optimization. (Recommended Setting: %s)', 'litespeed-cache' ), __( 'ON', 'litespeed-cache' ) ) ; ?>
|
161 |
<br /><font class="litespeed-warning">
|
162 |
+
<?php echo __('NOTE', 'litespeed-cache'); ?>:
|
163 |
<?php echo sprintf( __( 'If there is any JS error related to %1$s when enabled %2$s, please try this option.', 'litespeed-cache' ), 'jQuery', __( 'JS Combine', 'litespeed-cache' ) ) ; ?>
|
164 |
</font>
|
165 |
</div>
|
admin/tpl/setting/settings_purge.php
CHANGED
@@ -48,7 +48,7 @@ $breakArr = array(
|
|
48 |
<th><?php echo __('Auto Purge Rules For Publish/Update', 'litespeed-cache'); ?></th>
|
49 |
<td>
|
50 |
<div class="litespeed-callout-warning">
|
51 |
-
<h4><?php echo __('Note
|
52 |
<i>
|
53 |
<?php echo __('Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.', 'litespeed-cache'); ?><br />
|
54 |
<?php echo __('Other checkboxes will be ignored.', 'litespeed-cache'); ?><br />
|
48 |
<th><?php echo __('Auto Purge Rules For Publish/Update', 'litespeed-cache'); ?></th>
|
49 |
<td>
|
50 |
<div class="litespeed-callout-warning">
|
51 |
+
<h4><?php echo __('Note', 'litespeed-cache'); ?></h4>:
|
52 |
<i>
|
53 |
<?php echo __('Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.', 'litespeed-cache'); ?><br />
|
54 |
<?php echo __('Other checkboxes will be ignored.', 'litespeed-cache'); ?><br />
|
admin/tpl/setting/settings_tuning.php
CHANGED
@@ -17,11 +17,11 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
17 |
<?php echo __( 'Load combined CSS files before other CSS files.', 'litespeed-cache' ) ; ?>
|
18 |
<?php echo sprintf( __( 'Set to %s by default.', 'litespeed-cache' ), __( 'OFF', 'litespeed-cache' ) ) ; ?>
|
19 |
<br /><font class="litespeed-warning">
|
20 |
-
<?php echo __('NOTE
|
21 |
<?php echo sprintf( __( 'Only set to %s when changing the order of combined and uncombined CSS is needed.', 'litespeed-cache'), __( 'ON', 'litespeed-cache' ) ) ; ?>
|
22 |
</font>
|
23 |
<br /><font class="litespeed-success">
|
24 |
-
<?php echo __('API
|
25 |
<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded from moving to top.', 'litespeed-cache' ), '<code>data-optimized="0"</code>' ) ; ?>
|
26 |
</font>
|
27 |
</div>
|
@@ -37,7 +37,7 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
37 |
<?php echo __( 'Both full URLs and partial strings can be used.', 'litespeed-cache' ) ; ?>
|
38 |
<?php echo __('One per line.', 'litespeed-cache'); ?>
|
39 |
<br /><font class="litespeed-success">
|
40 |
-
<?php echo __('API
|
41 |
<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_cache_optimize_css_excludes</code>' ) ; ?>
|
42 |
<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-optimize="1"</code>' ) ; ?>
|
43 |
</font>
|
@@ -53,11 +53,11 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
53 |
<?php echo __( 'Load combined JS files before other JS files.', 'litespeed-cache' ) ; ?>
|
54 |
<?php echo sprintf( __( 'Set to %s by default.', 'litespeed-cache' ), __( 'OFF', 'litespeed-cache' ) ) ; ?>
|
55 |
<br /><font class="litespeed-warning">
|
56 |
-
<?php echo __('NOTE
|
57 |
<?php echo sprintf( __( 'Only set to %s when changing the order of combined and uncombined JS is needed.', 'litespeed-cache'), __( 'ON', 'litespeed-cache' ) ) ; ?>
|
58 |
</font>
|
59 |
<br /><font class="litespeed-success">
|
60 |
-
<?php echo __('API
|
61 |
<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded from moving to top/bottom.', 'litespeed-cache' ), '<code>data-optimized="0"</code>' ) ; ?>
|
62 |
</font>
|
63 |
</div>
|
@@ -73,7 +73,7 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
73 |
<?php echo __( 'Both full URLs and partial strings can be used.', 'litespeed-cache' ) ; ?>
|
74 |
<?php echo __('One per line.', 'litespeed-cache'); ?>
|
75 |
<br /><font class="litespeed-success">
|
76 |
-
<?php echo __('API
|
77 |
<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_cache_optimize_js_excludes</code>' ) ; ?>
|
78 |
<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-optimize="1"</code>' ) ; ?>
|
79 |
</font>
|
@@ -145,7 +145,7 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
145 |
<?php echo __( 'Both full URLs and partial strings can be used.', 'litespeed-cache' ) ; ?>
|
146 |
<?php echo __('One per line.', 'litespeed-cache'); ?>
|
147 |
<br /><font class="litespeed-success">
|
148 |
-
<?php echo __('API
|
149 |
<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_optm_js_defer_exc</code>' ) ; ?>
|
150 |
<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-defer="1"</code>' ) ; ?>
|
151 |
</font>
|
@@ -180,8 +180,8 @@ if ( ! defined( 'WPINC' ) ) die ;
|
|
180 |
<tr>
|
181 |
<th><?php echo __('Role Excludes', 'litespeed-cache'); ?></th>
|
182 |
<td>
|
183 |
-
<?php foreach ( $roles as $role ): ?>
|
184 |
-
<?php $this->build_checkbox( LiteSpeed_Cache_Config::EXCLUDE_OPTIMIZATION_ROLES . "][", $
|
185 |
<?php endforeach; ?>
|
186 |
<div class="litespeed-desc">
|
187 |
<?php echo __( 'Selected roles will be excluded from all optimizations.', 'litespeed-cache' ) ; ?>
|
17 |
<?php echo __( 'Load combined CSS files before other CSS files.', 'litespeed-cache' ) ; ?>
|
18 |
<?php echo sprintf( __( 'Set to %s by default.', 'litespeed-cache' ), __( 'OFF', 'litespeed-cache' ) ) ; ?>
|
19 |
<br /><font class="litespeed-warning">
|
20 |
+
<?php echo __('NOTE', 'litespeed-cache'); ?>:
|
21 |
<?php echo sprintf( __( 'Only set to %s when changing the order of combined and uncombined CSS is needed.', 'litespeed-cache'), __( 'ON', 'litespeed-cache' ) ) ; ?>
|
22 |
</font>
|
23 |
<br /><font class="litespeed-success">
|
24 |
+
<?php echo __('API', 'litespeed-cache'); ?>:
|
25 |
<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded from moving to top.', 'litespeed-cache' ), '<code>data-optimized="0"</code>' ) ; ?>
|
26 |
</font>
|
27 |
</div>
|
37 |
<?php echo __( 'Both full URLs and partial strings can be used.', 'litespeed-cache' ) ; ?>
|
38 |
<?php echo __('One per line.', 'litespeed-cache'); ?>
|
39 |
<br /><font class="litespeed-success">
|
40 |
+
<?php echo __('API', 'litespeed-cache'); ?>:
|
41 |
<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_cache_optimize_css_excludes</code>' ) ; ?>
|
42 |
<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-optimize="1"</code>' ) ; ?>
|
43 |
</font>
|
53 |
<?php echo __( 'Load combined JS files before other JS files.', 'litespeed-cache' ) ; ?>
|
54 |
<?php echo sprintf( __( 'Set to %s by default.', 'litespeed-cache' ), __( 'OFF', 'litespeed-cache' ) ) ; ?>
|
55 |
<br /><font class="litespeed-warning">
|
56 |
+
<?php echo __('NOTE', 'litespeed-cache'); ?>:
|
57 |
<?php echo sprintf( __( 'Only set to %s when changing the order of combined and uncombined JS is needed.', 'litespeed-cache'), __( 'ON', 'litespeed-cache' ) ) ; ?>
|
58 |
</font>
|
59 |
<br /><font class="litespeed-success">
|
60 |
+
<?php echo __('API', 'litespeed-cache'); ?>:
|
61 |
<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded from moving to top/bottom.', 'litespeed-cache' ), '<code>data-optimized="0"</code>' ) ; ?>
|
62 |
</font>
|
63 |
</div>
|
73 |
<?php echo __( 'Both full URLs and partial strings can be used.', 'litespeed-cache' ) ; ?>
|
74 |
<?php echo __('One per line.', 'litespeed-cache'); ?>
|
75 |
<br /><font class="litespeed-success">
|
76 |
+
<?php echo __('API', 'litespeed-cache'); ?>:
|
77 |
<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_cache_optimize_js_excludes</code>' ) ; ?>
|
78 |
<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-optimize="1"</code>' ) ; ?>
|
79 |
</font>
|
145 |
<?php echo __( 'Both full URLs and partial strings can be used.', 'litespeed-cache' ) ; ?>
|
146 |
<?php echo __('One per line.', 'litespeed-cache'); ?>
|
147 |
<br /><font class="litespeed-success">
|
148 |
+
<?php echo __('API', 'litespeed-cache'); ?>:
|
149 |
<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_optm_js_defer_exc</code>' ) ; ?>
|
150 |
<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-defer="1"</code>' ) ; ?>
|
151 |
</font>
|
180 |
<tr>
|
181 |
<th><?php echo __('Role Excludes', 'litespeed-cache'); ?></th>
|
182 |
<td>
|
183 |
+
<?php foreach ( $roles as $role => $title ): ?>
|
184 |
+
<?php $this->build_checkbox( LiteSpeed_Cache_Config::EXCLUDE_OPTIMIZATION_ROLES . "][", $title, $this->config->in_exclude_optimization_roles( $role ), $role ) ; ?>
|
185 |
<?php endforeach; ?>
|
186 |
<div class="litespeed-desc">
|
187 |
<?php echo __( 'Selected roles will be excluded from all optimizations.', 'litespeed-cache' ) ; ?>
|
admin/tpl/settings.php
CHANGED
@@ -80,9 +80,12 @@ global $wp_roles ;
|
|
80 |
if ( !isset( $wp_roles ) ) {
|
81 |
$wp_roles = new WP_Roles() ;
|
82 |
}
|
83 |
-
$roles = array_keys( $wp_roles->roles ) ;
|
84 |
|
85 |
-
|
|
|
|
|
|
|
|
|
86 |
|
87 |
include_once LSCWP_DIR . "admin/tpl/inc/banner_promo.php" ;
|
88 |
|
80 |
if ( !isset( $wp_roles ) ) {
|
81 |
$wp_roles = new WP_Roles() ;
|
82 |
}
|
|
|
83 |
|
84 |
+
$roles = array() ;
|
85 |
+
foreach ( $wp_roles->roles as $k => $v ) {
|
86 |
+
$roles[ $k ] = $v[ 'name' ] ;
|
87 |
+
}
|
88 |
+
ksort( $roles ) ;
|
89 |
|
90 |
include_once LSCWP_DIR . "admin/tpl/inc/banner_promo.php" ;
|
91 |
|
cli/litespeed-cache-cli-admin.class.php
CHANGED
@@ -31,6 +31,7 @@ class LiteSpeed_Cache_Cli_Admin
|
|
31 |
LiteSpeed_Cache_Config::CRWL_PAGES,
|
32 |
LiteSpeed_Cache_Config::CRWL_CATS,
|
33 |
LiteSpeed_Cache_Config::CRWL_TAGS,
|
|
|
34 |
LiteSpeed_Cache_Config::CRWL_CRON_ACTIVE,
|
35 |
LiteSpeed_Cache_Config::OPID_DEBUG_LEVEL,
|
36 |
LiteSpeed_Cache_Config::OPID_HEARTBEAT,
|
@@ -144,6 +145,7 @@ class LiteSpeed_Cache_Cli_Admin
|
|
144 |
case LiteSpeed_Cache_Config::CRWL_PAGES:
|
145 |
case LiteSpeed_Cache_Config::CRWL_CATS:
|
146 |
case LiteSpeed_Cache_Config::CRWL_TAGS:
|
|
|
147 |
case LiteSpeed_Cache_Config::CRWL_CRON_ACTIVE:
|
148 |
case LiteSpeed_Cache_Config::OPID_DEBUG_LEVEL:
|
149 |
case LiteSpeed_Cache_Config::OPID_HEARTBEAT:
|
31 |
LiteSpeed_Cache_Config::CRWL_PAGES,
|
32 |
LiteSpeed_Cache_Config::CRWL_CATS,
|
33 |
LiteSpeed_Cache_Config::CRWL_TAGS,
|
34 |
+
LiteSpeed_Cache_Config::CRWL_HTTP2,
|
35 |
LiteSpeed_Cache_Config::CRWL_CRON_ACTIVE,
|
36 |
LiteSpeed_Cache_Config::OPID_DEBUG_LEVEL,
|
37 |
LiteSpeed_Cache_Config::OPID_HEARTBEAT,
|
145 |
case LiteSpeed_Cache_Config::CRWL_PAGES:
|
146 |
case LiteSpeed_Cache_Config::CRWL_CATS:
|
147 |
case LiteSpeed_Cache_Config::CRWL_TAGS:
|
148 |
+
case LiteSpeed_Cache_Config::CRWL_HTTP2:
|
149 |
case LiteSpeed_Cache_Config::CRWL_CRON_ACTIVE:
|
150 |
case LiteSpeed_Cache_Config::OPID_DEBUG_LEVEL:
|
151 |
case LiteSpeed_Cache_Config::OPID_HEARTBEAT:
|
css/iziModal.min.css
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* iziModal | v1.5.1
|
3 |
+
* http://izimodal.marcelodolce.com
|
4 |
+
* by Marcelo Dolce.
|
5 |
+
*/
|
6 |
+
.iziModal{display:none;position:fixed;top:0;bottom:0;left:0;right:0;margin:auto;background:#fff;box-shadow:0 0 8px rgba(0,0,0,.3);transition:margin-top .3s ease,height .3s ease;transform:translateZ(0)}.iziModal *{-webkit-font-smoothing:antialiased}.iziModal::after{content:'';width:100%;height:0;opacity:0;position:absolute;left:0;bottom:0;z-index:1;background:-moz-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,transparent),color-stop(100%,rgba(0,0,0,.35)));background:-webkit-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:-o-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:-ms-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.35) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#59000000',GradientType=0 );transition:height .3s ease-in-out,opacity .3s ease-in-out;pointer-events:none}.iziModal.hasShadow::after{height:30px;opacity:1}.iziModal .iziModal-progressbar{position:absolute;left:0;top:0;width:100%;z-index:1}.iziModal .iziModal-progressbar>div{height:2px;width:100%}.iziModal .iziModal-header{background:#88a0b9;padding:14px 18px 15px;box-shadow:inset 0 -10px 15px -12px rgba(0,0,0,.3),0 0 0 #555;overflow:hidden;position:relative;z-index:10}.iziModal .iziModal-header-icon{font-size:40px;color:rgba(255,255,255,.5);padding:0 15px 0 0;margin:0;float:left}.iziModal .iziModal-header-title{color:#fff;font-size:18px;font-weight:600;line-height:1.3}.iziModal .iziModal-header-subtitle{color:rgba(255,255,255,.6);font-size:12px;line-height:1.45}.iziModal .iziModal-header-subtitle,.iziModal .iziModal-header-title{display:block;margin:0;padding:0;font-family:'Lato',Arial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.iziModal .iziModal-header-buttons{position:absolute;top:50%;right:10px;margin:-17px 0 0}.iziModal .iziModal-button{display:block;float:right;z-index:2;outline:0;height:34px;width:34px;border:0;padding:0;margin:0;opacity:.3;border-radius:50%;transition:transform .5s cubic-bezier(.16,.81,.32,1),opacity .5s ease;background-size:67%!important;-webkit-tap-highlight-color:transparent}.iziModal .iziModal-button-close{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODZCQkIzQ0I0RTg0MTFFNjlBODI4QTFBRTRBMkFCMDQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODZCQkIzQ0M0RTg0MTFFNjlBODI4QTFBRTRBMkFCMDQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4NkJCQjNDOTRFODQxMUU2OUE4MjhBMUFFNEEyQUIwNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4NkJCQjNDQTRFODQxMUU2OUE4MjhBMUFFNEEyQUIwNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsgTJLcAAALJSURBVHja3JnLS1VBHMfvQ7g9dBXRRrwEFRciAhMi1JRW1aIHVEIYEkW0iVpUhOD/ICK6cFMgSbUpC6VFkQa9NtpjkauriRY9Noa3pHT8/mIODMM5Or85o87pC5/NPf5mvmc8M7+Z36SFEKkY2gj2gUawF2wHW8A6+fwv+A6KYAQMg+dg2rbDtKXhGnAaHJIms4zYz9J4HxgAf1g9k2EGteAhWBBuNApaQNrUg6nRTaAbzIuV0RCocWW4DoyJlVcJXI5ruFk2tJqi/2TWxvA5sXbqA2Ucw01i7dVjargazAo/dE33p6/DlAheg50pP0SJpwG8CH7IaH/Q5pFZUhnoArkwwwVwJeWfdoMLYYZvqG+yTGo9CerAoIWBT+A4qAdPDWOugwo1NVcxJtpFZRLkwH3GJCqCghJfxVjnz1JMMMKnwAbGRAg0B5rAA4O4CblZ+qj8tkBjZthvSzDCtFIMM0ZpQhslk5Eej4jpZ/T7G+ygwG1ghrk+jjNMFy1eMPJzpOAzlou6iWmXZkm91EBHjEwUZXoQTDk2SxqhRh7HTJ9hpstB3rFZ0ldq6J2DnB9m2rXZfxOPlrX1DrJRXiaBXSHPaMHvB0cd9JPLpBImMvzLQTuUFA6A9yHPfoIjhsllOc1l5N4grtmDWgYrl5+JTUZcSjNkeMyxWdpA3ZN72IJj01OJTByJS82J2/wQVxmB5y1HK8x0JWMf/kzdD98FJcY5S51gdwyTQl6eUAraspo27PeWXgy8afim0+CELAwOWHyH9EkdkyWwJ4Yxk6BCP+bTm48anutWW5dAp34IpbW03UOzb0FPVEHbx0LKfvAyqpAyKw97JU8Mt6pml6rAJ6oY6Eu5NfvfF7QTeWWQyEsZr6694lwsNoPD8mKRo29gCNwGj7gXi7aGA1EBcY+8vq0GW8FmJb3Pgx9gEnwAr8Ab8MW2w0UBBgAVyyyaohV7ewAAAABJRU5ErkJggg==) no-repeat 50% 50%}.iziModal .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTBBOUI4RUM0RTg0MTFFNjk0NTY4NUNFRkZFNEFEQzIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTBBOUI4RUQ0RTg0MTFFNjk0NTY4NUNFRkZFNEFEQzIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMEE5QjhFQTRFODQxMUU2OTQ1Njg1Q0VGRkU0QURDMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMEE5QjhFQjRFODQxMUU2OTQ1Njg1Q0VGRkU0QURDMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrQO6gAAAANmSURBVHjazJlbSBRRGMd3x92i0ForRRMiKiUoX4ouiFlJkRVBDxW9GJERwUasvdRT9FD00osRQtAFqegGBUHRBY0uaCVKEkSRpVR0tSwrQtp1+p/4Bk7D7M45M/Ot/uGHu+Psmf+c+eY753wnbJpmyIfGgvmgiv6WgkKQBwzwE3wBr0AnuAta6ZgnhT0aFuY2ghoyGdH4bS+4Dc6CZjCkdWVhWIPF4JoZnB6CDToeVE8sBidNPt0E5UEZrgG9Jr8GwHa/huMgaWZXDSDsxfBuc/jUBAwdw3Fz+NWoang5SJkjQwm7P3seLqQEX2LLfgfBdZcMORMcBqNDwekPqASP0uXhpjR3Ok0x/fUw9HIHGGVdw5DuRtzJpgxDsJui2qOWmuaAOuuLbHivz4YLwLgQj/aAXNmwuItlHhtbA7pAG5jEZHgKWCcbrhUTIY+NPQVjqFFObbYMi/hc6aOhl2AJ9TKnFoIyYXgemKEzJQXVVkyR3oFVzKZFuqw2qHdyFPKhrHPgMoWC3fRjRtNVVg+7SR5IiqmXxUt60cG0CK/vTIZniZVCmcKJF0C3ZNjKBqvJ9Hrwm46tsN1EkCoRQ/M3fBjvs6GrYAvdwHEfGcd1qBaGkwoxrKI+xjz83yJ0iLFHApd46X4xX+M+WECh4lepCNUIcpnMijrEWtAvTRHrbOd8FZNG8uA2Nf0hpmwtjBPwpQ5T0GPS/+tBAZhIq+b3Lu09EyHRwRgO+0C+7dhWcII+PwCf6Sk/Aa9d2vtn+A7nyASugJiD6YSDQcOlvVbxiCaAN8xrs3sgprBiac/QhlhnzjUo6JuZM0UlDS5FPtoQIdNlPYJTWUihFaDex+9Pg6T1KHJAJ2NI7ASllA28hEQ/KJIXoSlwgKlnh+jFe+GjLtwIPtjfyktUt+UaUZWqvw7H3oJD1peI7eQdoF1xWa+zQikHH13OmwqmOxxP0EiZtgK/DRwNuIcHwSeXc2K01WAPhbhKBb5hBNTVbskVH7fqpZGhbJUNtYF83fqwQSXPbOsGjb6etwx2gcEsmT3iFAZeNmUqaMeHSz2qu0k6W15Rqsx3B2i0D+xXGAHTFrRVlEeFuVoqH+ku6VNUbDkPzlAtg30nVK66i8rRIjAbTKaSQVQyN0DD6nOqcLZQld9TLfmvAAMAeMcvp3eCFqQAAAAASUVORK5CYII=) no-repeat 50% 50%}.iziModal.isFullscreen .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkFFRTU5NDA0RTg1MTFFNjk0NEZFQzBGMkVBMDYyRDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkFFRTU5NDE0RTg1MTFFNjk0NEZFQzBGMkVBMDYyRDkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyQUVFNTkzRTRFODUxMUU2OTQ0RkVDMEYyRUEwNjJEOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyQUVFNTkzRjRFODUxMUU2OTQ0RkVDMEYyRUEwNjJEOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuDFfX8AAANASURBVHjazJlZSBVRGMfHcWlB0xZM68GKukQLYaGkmEUR2EsvRfQS+BSJPUQE+lTR8hqIZY8hFS0ERVCRoW3gpUApghYpszLTVnCB3O70/+K7MAwzc78Z58z4hx8XzpzvzJ+Zc+d85ztphmFoU9BsUAoq+XcFyAc5QAfD4BfoBp3gCWjnNl9K82mYzO0FVWwyw0NsD3gIroBWkPB0ZzLsgc3grhGcnoE9XjxIOxaCC4Y6tYC1QRmuAj2Geg2CA1M1XAsmjHDVANL8GK4zolMz0L0YrjWiV5PU8HYw6TBIf8imD6UynA96HYKPg3mgMUTDY6DUzXCzQ+AxSz+r6QEQZz4HbLoDZNkZrnAIoOlRZjN1Gk3XS0zty/gTFaRq7Ay3uAR8BcU2ps/z9QJTWw74HrDhTyDbbHg9SKQI+sb9rKa3mV8ZmAt+KJjP1TS+zinFPkqEUqQdBeAOKLa0UwIzpqlXtcYpIKWIO4RBZPoRKNfC10YQI8MlYLkwaAB8ABsiMDwDbKU8dgtIFwRMgJ3guRadKpNPWBMa7tOi1WoyHJPuTsC4oN+IQsOLM3gPJlEWqOE/neMGBqwDeYoMz6G8c0I4h6eFyHBC8A2eVoaH8JutaPwuUA/+uvSht1sHKgTjTWZwjUCVYdrK3xT0iwkND+lc5FClUQ9fINHCRYY7FBrWPSz5Er2lAR9H9P+hpfYGl64OCmPadQ7ojcDwOJetysBMQX/6mrWS4d+cIoYtMnAEnBT2fwVeJufYxZBMFoKFlrajQtOX/uczvEtIB50Kdgn1lt3JGdANltjsXE64jPMnuQ1LPuFJcFrBE11gzQXAUnAPFNk86esO4zSBfmu5lVa9toCf8DC4Ba6C22DEdO01KDLdP5fLr1Z94X2ibV1ilWVQ1XrDpvPAU4c+u1KVqvaHXI7q43ltp3PSYmDDNCgGPrCUD1wN6y5lqzAUN89baX1Y55Jn2LrPRUffRwaHwWhIZs/aTQM/hzLlDp+coPRReprk5cgrkyvz7wM0+hOcAvOlPvwcLNIp526ux1H5aJbHeFpVX4Br4LLXWoffk9CkVnLlaBNYAxaBXJBpMjfIy+o7EAdtfIyb8HPDfwIMAM1WPs8F9tcxAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal .iziModal-button-close:hover{transform:rotate(180deg)}.iziModal .iziModal-button:hover{opacity:.8}.iziModal .iziModal-header.iziModal-noSubtitle{height:auto;padding:10px 15px 12px}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-icon{font-size:23px;padding-right:13px}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-title{font-size:15px;margin:3px 0 0;font-weight:400}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-buttons{right:6px;margin:-16px 0 0}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-button{height:30px;width:30px}.iziModal-rtl{direction:rtl}.iziModal-rtl .iziModal-header{padding:14px 18px 15px 40px}.iziModal-rtl .iziModal-header-icon{float:right;padding:0 0 0 15px}.iziModal-rtl .iziModal-header-buttons{right:initial;left:10px}.iziModal-rtl .iziModal-button{float:left}.iziModal-rtl .iziModal-header-subtitle,.iziModal-rtl .iziModal-header-title{text-align:right;font-family:Tahoma,'Lato',Arial;font-weight:500}.iziModal-rtl .iziModal-header.iziModal-noSubtitle{padding:10px 15px 12px 40px}.iziModal-rtl .iziModal-header.iziModal-noSubtitle .iziModal-header-icon{padding:0 0 0 13px}.iziModal.iziModal-light .iziModal-header-icon{color:rgba(0,0,0,.5)}.iziModal.iziModal-light .iziModal-header-title{color:#000}.iziModal.iziModal-light .iziModal-header-subtitle{color:rgba(0,0,0,.6)}.iziModal.iziModal-light .iziModal-button-close{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4JpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyQTU1RUZDNzRFODQxMUU2ODAxOEUwQzg0QjBDQjI3OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NEM4MTU1MEI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENDMkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZjYzMwMmE1LWFlMjEtNDI3ZS1hMmE4LTJlYjhlMmZlY2E3NSIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdmYmU3NGE3LTAxMDUtMTE3YS1hYmM3LWEzNWNkOWU1Yzc4NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po24QssAAANtSURBVHja3JlJaBRBFIa7ZxyTSXADHUkikuAawZNLEOOGGrwJQYko8R4RBQ+OICoqghJQUVwPYjzFY0QUBQU1kogoKO6CG0pcIwbiNibj/8JraNvu6Xo9NTOtP3xzSKe6/65+Ve9VlWlkp2IwGUwFE0E5GA4G8/U+0APegWfgHrgPuq0bpNNp0QPNgEYngHlgGpuMCNp2s+kr4BYM/8ql4WqwHEzP4mXteg7awOW0YlerPnQIaARLNBl1ikLlBDw/1WF4ClgHKozc6idogekz2RheANbaBlE+dB4chfF+qeHF3LOF0FWwF6b7nBe8RvecApolzQVr3C64GR4H1huFV51pmvV+hikRbABFRji0GqarMxluAGON8CgKmmA65mZ4DFhqhE9VPP//ZXgZiCmm1t1gI6XWAAY+gF0gCe4qtqlHL8fthkeBWsXGreA6eMgPviEw+x5sBZ3gAdjPCcNPI8Fsu+FawUCzz40psEfRNJndBl7b/pZmVLTQMkzJo0bQSys43iWm3cxS+DUJOmoSwqKCRmEZWKkYv6RSMBPc5lqXRGm0A1Q6XiaT2aSwo8jrK/qZwZlFIlXTusxa6iXDddTdARpnMj2ek9AWjWYH7h/lubcs4A28THdyAdOl0ezAmKNBNyLLiT0Btjti9zuHg06zpJKIprohwXNypcu1OIdGjYbnxCLGPyYy/EPDfejzbwYvXK59AzuFGdFLKTL8WYNZ59RVzGESJCNm0teI40E6zNIA2wSaA2REP32iaW0omKXRbJKTUVyYEVV0J8oxvEiQmiUZrFSz6XNkuJe3nBKCelaSbjOZrhLsd1BInYxweSeJq9YA6dYtuZCBI4JZ6jGW/W+sebhd0DAaMIO5mTYFW1+X6GeQ7TO3W0WyQj3cw0ulBg4nSUbcAY7zPVYp7ip95FXOH29Hb35AOPjypWMIh7PORSjFZVsIzdKW7AWvfYnTVNWHyCytHw+jd1Nehqks3KepvtChUzD7yGvE2/cduqxldQF1EWZb/PbWLF3jAVgo0WrlkN+c6hSd+rzlaSuaR7O0oX0wyIa2pVAdGaj0HCUVOqIq4dVwrg5lmmG2w+8f/9tjL6foYHE+Gy8Xtv3CPUpf7WauDxadKuIwoeNbOmoYDYbZ0ns/1wxUC7ykigs8sS/LpEe3vwUYALiKDDDSgEiSAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal.iziModal-light .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4JpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpEQTg1NTA2NTRFODQxMUU2OTQ0N0VERjY2Q0M5ODYwRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTNFNENCQkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENCQUI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFlNTQwYzczLTVhZmEtNDJlYi04YzJlLWMwMzFlYmFiYmIyNiIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmVkYmRiMzM1LTAxMDUtMTE3YS1hYmM3LWEzNWNkOWU1Yzc4NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvIicdUAAAOvSURBVHjaxJlZbA1hFMe/qaItUUsspakg1laJ7UUisQuRvvTFA15sQSRCLBFrQryhHqxNHxEPtaQ8CCUkIrVVRbVBJdZYSrXVonr9/3pGxnTunZk78/X+k1+aO+1899/vnnvO+c4YKpi6ghEgW34OBD1BKjBAM6gH78Fz8BhUyrW/ikQivt7QiNMozU0DE8RkJx/3fgCPwA1QHvHp2K/hHJAPJqpwVA2K4flW2IZ7gyVgptKjh6AQxl+GYZi7uRr0U3rVBIpg+nIQwwvACpCkOk4XwYlosR3LMGN1qUqMroGDTqaNGDu7SiVWl+D3iP2i00c9HqxUidd8wzDy3HY4HRwCfWzXz4L7Lm+QKfHeOUTTLWAzdro6muH1YIbDjculWrmpUEM2YYXcCNMt9pAYE8WsWYLdlAxaNYTGMDDHKYYXBVy4B0jTFM/5iOcUc1fM/2JcnItNAYtBNzGtQ33BVHDV3OHpARqhV6CLLKpTs8yQYHxOCrDQO7AV1Gg2PBJhMYiGh4MMnx1eLkixXKsFuzSbZrrMpeGxHnqFFtvrTWCbhILd9AuNpnPMHXaTtZD0kl1mRdwSxXSjJsNZfONjcmqIJR5p3lp6Y+sXrAzsBz/lNXvmtZYMFKbqafi0pKQgKpOSPhmsC5BxXEs1Fz4fUr/7TWMe/q9bC2s3tJs1Df/Q/B5PwAZwJYS1WpPlo0zRZJZziL2gQU7I1GyHL7QSD26taVOytI26DpinxKypApvpk+C6dHlMnXskbUbT1yTpN3WJHWB327UCS3hUoc+tA/VyxP/ost5rGq7QWZnAdoe0eZgnYweDbgmgkoafgk8aTfNgsMNmmqfhC+Czj3V4T3mSBH255kxB0ztd4tNNDJkas2CUdkAKHQ3yAtxfijj/bdb7Cumyhmoyexzcs6Qwv2qUbPKvJDOtnNFklrF3R5qneA2XYHe/2A+ht1Xb3FZXRY1XTAjFTgtxJ45qKtWDpZK1g6dhIQuvBzjcy8FgQ6y8Nw+sCdnwL1Dn8jdMe6m2a+3ma9ESNUdOC1VixSH3bnPiYyraswnO0fqDIQkyW8WmCWab7b+I9TCF3+x0j2e+MPUA7LPGrVfD1F3VNsrPVR0zhS8BB5x21muzYa1Sy1Tb4y4d4qOwIi9Pk/wcj1gV50p5zQjJKAsJH8KcY4vpdYrjV0w9HMxxHjfKNpfwdMyRNuAmyy2M1vq5OegBNFMmR9lSHDizSLPMJGjuO2BZfSOtLKvpMylUvh/d/hFgAOH4+ibxGTZuAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal.iziModal-light.isFullscreen .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyRUUxMkYxODRFODUxMUU2Qjc3RDk0MUUzMzJDRjBEOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTNFNENCRkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENCRUI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgzM2MwOWZiLWJjOTEtNGVlZS05MDM1LTRkMmU2ZmE1ZjBmMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRUUxMkYxODRFODUxMUU2Qjc3RDk0MUUzMzJDRjBEOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv1Q9Z8AAAOXSURBVHjaxJlLbA1RGMfPjIs+EvoIRYt4FVUl2EkkRTxKUqQbG0SEho2FjUQ8YtEICbEgTdFYeK1KaGvVeoUltyStt0UlNE17aWhV2+v/9X5XJpMzc8/0zpn5kl+aO3Nm7r/fnPu9xhDp2URQDJbw3xkgB2QCAwyAPvANfARvQDsfG7V4PO7pC40xCiVxa8AKFjnOw7VdoA08BtG4R8VeBZeCKrBS+GPvQAM0P/NbcB7YBdYJPfYKXIXwL34IJm8eBFOFXusH9RDdnI7gLWA/MEVwdh/UOe1tN8G0V3eLcKwFXJCJNl08G5ZYsrWgWnZCJng5OOBwo1iAoisMw6hMJXgyOOywVW7xj+9BgKL3QHSxm+C9IF9y4U2GMlStRPQP8Jbp9lFwhJwE0RHrgaSV8N6xG238l7Zjtfx3K58/Bd7zsWngIqdnP2we2ACa7B7e6RL6joK5EtHNfL7b5u1Bn7dGFbycYRVM/8WyFJnuJK+z2iVwzFrMcF1h+Cx4ClhtFVyu8CW54ITE01EwFMAPcH1SMJWIqxQvItE1YHEIsXkhtkUhCV4ApiteFOPadn4IgseDMooSSxVrhWFwmkvCsKw06WGhKLhHhGuzSHChh9pZ5cc1oFFwfoTTsWrWqQCvXdZQEpkDsjUJziSv3Qu43k3LTA1BXqvRY/4DMjTd/yu4niJVm9wslCjcb4QE/9Qo+Al44baAmgpKCIqC+01OBLrsr8/de8zkiYwuUxWSq7iuM8JhantIqfYItkOepKBysnbycIfPXYKqURL6DhaBCQrrKcZHTa5loyEIJgHXwG3F9TQV+pxMGK0BiaTHn2OLEjcURbdi7XBSMO3jTxoEjtg+7wDnhG3spSD6F3hk7Tjoxnc0CJ5k+5wFCrhplYl2mmI24nyvvWumAE9z2zIfBW8WifnxIHc2yb6xiHtEoms0/hlGtpAPHCkgNDjFyZngPN88COvkPpEe+XGHbFcD7z53C+ybwKEAo0UPZ8QCybkmiL3sNvkheygSI08RYOSQiaUhd52sUpIZLWwJsYqkkdcZeHfIS66nc9XcZQRpNBY7C7F9Yy1OtonErDgSgNhGcEXmWa/VFA1O9onE6y4dRqGtXuVtkpf2iDy8EVR6GLykMnrsNFC867QF0hH8v3MVicFcuYdKy56uqQx4SukWQj3NOtJtQIt4ckSvbmdziMqy7HcS9xv0cn/Xwdn0A1drnl/d/hNgAGQa6Lgarp6BAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal .iziModal-loader{background:#fff url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHJva2U9IiM5OTkiPiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMiI+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49Ii0wLjlzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgIDwvZz48L3N2Zz4=) no-repeat 50% 50%;position:absolute;left:0;right:0;top:0;bottom:0;z-index:9}.iziModal .iziModal-content-loader{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHJva2U9IiM5OTkiPiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMiI+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49Ii0wLjlzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgIDwvZz48L3N2Zz4=) no-repeat 50% 50%}.iziModal .iziModal-content:after,.iziModal .iziModal-content:before{content:'';display:table}.iziModal .iziModal-content:after{clear:both}.iziModal .iziModal-content{zoom:1;width:100%;-webkit-overflow-scrolling:touch}.iziModal .iziModal-wrap{width:100%;position:relative;-webkit-overflow-scrolling:touch;overflow-scrolling:touch}.iziModal .iziModal-iframe{border:0;margin:0 0 -6px;width:100%;transition:height .3s ease}.iziModal-overlay{display:block;position:fixed;top:0;left:0;height:100%;width:100%}.iziModal-navigate{position:fixed;left:0;right:0;top:0;bottom:0;pointer-events:none}.iziModal-navigate-caption{position:absolute;left:10px;top:10px;color:#fff;line-height:16px;font-size:9px;font-family:'Lato',Arial;letter-spacing:.1em;text-indent:0;text-align:center;width:70px;padding:5px 0;text-transform:uppercase;display:none}.iziModal-navigate-caption::after,.iziModal-navigate-caption::before{position:absolute;top:2px;width:20px;height:20px;text-align:center;line-height:14px;font-size:12px;content:'';background-size:100%!important}.iziModal-navigate-caption:before{left:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAoCAYAAACFFRgXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyNmFjNjAyMy04OWU0LWE0NDAtYmMxMy1kOTA5MTQ3MmYzYjAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDREQ0YwRjA1MzQzMTFFNkE5NUNDRDkyQzEwMzM5RTMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDREQ0YwRUY1MzQzMTFFNkE5NUNDRDkyQzEwMzM5RTMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpmNmM0Nzk3Ni1mNzE3LTk5NDAtYTgyYS1mNTdjNmNiYmU0NWMiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDowZGVmYTEyZC01MzM0LTExZTYtYWRkYi04Y2NmYjI5ZTAxNjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7oo0ptAAACWklEQVR42uyZTWsTYRSFZybxo4kWk5g2NC5qTAU3Kq30A9udi1oXolV/hWuhv6R/Q6utioi4LbbVFHemamlRU0OCEk0wZjwXzwtDoBDopHMHcuFJMplZnLm5ue+589qu61qeOApyYAjEgG0FEyLqN/gKiqBuTtgewWlwCZw056xgwwirgU3wxSv4NJgCUV5YBRXQDEhsBJwCSSauBVZFdJRlIJk9Av7wbj577jDIOENtRmPVwcsw6KfAAvikRKzEDlhnhuU/lRPBWaa9wsxqC6ndPX7OiOA4D8qW3vjO9z7H0w3+KhZstNmOFbLoCQ6DYGmL+bAInmGfLFC4asFXwRJIgB+goVmw+I7HXO+/gevGnGgUPEGxktkSmAMbWmt4HDwBKS6XN1jDKrvEFYoVK7oLroE3h93Woh1eNwqWafJ/gQV65vM+ail34mc6EZwBK2CAx8fAIjjeBYMzDT4cVHCEXtRbRvEu/Nr9HCIOnGGp15vgEec9KYn74B0nAT/CZnv86FcNvwK3wENwAjwAs2Bbs5d4CW5zir0AXvv8p+tKH34B5lkW4h2egRHtbu05uMMHHWfB0zC4NRF5l09kzvE4rd2tyUJyjy4tz7akZqXbL8QETbJ/FsMgWOJtb6brCQ5YsBsC8Uab63DVkkgqFpzie93h8OhScFah2LTHi5ccWroaLd5l6//+hpYQoWP05LKqFs2WQYbTsNxAi+5fxpWmdfh7HS7XhwSzG+H3a2JnvZsyktmLbdOFhpDMvrf4sN1u2/aK0cwMcmYLcturweceW+CnOfFPgAEA8uWFFylBJYoAAAAASUVORK5CYII=) no-repeat 50% 50%}.iziModal-navigate-caption:after{right:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAoCAYAAACFFRgXAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADhmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjI2YWM2MDIzLTg5ZTQtYTQ0MC1iYzEzLWQ5MDkxNDcyZjNiMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0NERDRjBGMDUzNDMxMUU2QTk1Q0NEOTJDMTAzMzlFMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0NERDRjBFRjUzNDMxMUU2QTk1Q0NEOTJDMTAzMzlFMyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmY2YzQ3OTc2LWY3MTctOTk0MC1hODJhLWY1N2M2Y2JiZTQ1YyIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBkZWZhMTJkLTUzMzQtMTFlNi1hZGRiLThjY2ZiMjllMDE2NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuijSm0AAAKbSURBVFhH7ZnJj0xRGEerzFoIMTaCZmOIedhaiJj55yz8DaYdNhIJEUMQbCTG3rQ02hDSiEY553XdTpHS3nv96taV9ElO6lVt6peb7933fffVG41GrYW5uBaX4EysYzcw1Fd8hc/wM2a0Bl6Nm3BW9i0dDPsQX/olBF6FO72AH/gG3+N3jL3KBpqGC3ERTsGfeAsHDTyHi71oCXzBe/gaU2A5bscZOIxXTb8OLQNX9i6mElYsg/voqruwfQb2BhODWgqpMYDv0NLsNXC4yd42P1PEwNJj4HBTWdipErLVDfxfMRm408QMvBu3jV6WJ1Zg9/rbeBOP+UNZYgX+iE/Rp+lpPIKliBXYB9IhtPNy3z/T/F6YmDXsChvyBc7Gs3gACxEzsDzBg9iPPXgO92NuYgeWx2h3+AhtaM7jPsyF7aV37XR8gNZYO/pwKY51+xPkG27Fk2joT3gCr2A7NuJ6HMkTeAPadlp3VeMChF7G0P6X3dmfjAXOUxIj6LZkv1ylNuStDZejkL+PS96ScFzRqnDAtI5PoTefvbg7iNNOOwqVRCfYghdxBbpHH8Y7+DcKlUTV7MLLaNghPIrjhf2N2IF34AVcjE44hrXHyE3MwE6/loEzpEcIlqKjeyFiBe7FS+he/gENewMLEyuwXdo8dGWP43UsRazA9g7uDNbwNX8oS8watlsz+ISIGbgSJgN3GgOHlnFq8zNFQraGgT1iFc9iUyU0XsMGHhy9zh6XbvCp4ZuBBWglDBj4OdqLeu0+uRJTwMZ+Dbp/e21P3m97yWe2snsw1LTHmz5C/9lQdwhfGbiq89GwvrrwUT4UAouhN6MzloTRpVuEYI5O9urZYXtrYPGQw2OlZegM163QhrJMfWVgyTq0Qq32C/N7uPz9OknWAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal-navigate>button{position:fixed;bottom:0;top:0;border:0;height:100%;width:84px;background-size:100%!important;cursor:pointer;padding:0;opacity:.2;transition:opacity .3s ease;pointer-events:all;margin:0;outline:0}.iziModal-navigate>button:hover{opacity:1}.iziModal-navigate-prev{left:50%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAC8CAYAAADCScSrAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5sGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo2NDkyYzcxMy05ZDM0LTZlNGQtYmUwNi1hMDMyY2Q4NDVjNGU8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo1QjIzMUMxODU3RjcxMUU2ODUzRkRBRjE5RDhDQjZBRDwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDpjZmMwNzVmNC1kODA3LWI0NDMtYWIwYS02YWVhZjRjMDgxZWE8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjY0OTJjNzEzLTlkMzQtNmU0ZC1iZTA2LWEwMzJjZDg0NWM0ZTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmNmYzA3NWY0LWQ4MDctYjQ0My1hYjBhLTZhZWFmNGMwODFlYTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1ODowNC0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0wOC0wMVQwOTo0MDo1Ni0wMzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTA4LTAxVDExOjU4OjA0LTAzOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0wOC0wMVQxMTo1ODowNC0wMzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjE4ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xODg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PvAvv7QAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAmdJREFUeNrs1LsJQkEQhtH/mtmBgQ8QA7tQK1e7MBBBMbADwzUZEyuQveeDCXbD4TBDay3SWJpYgYCXgJeAl4CXgJeAl4CXgJeAl4CXgJeAF/AS8BLwEvAS8BLwEvAS8BLwEvAS8BLwAl4CXgJeAl4CXv/WJskpyQJ4jQH7Mcmu0C+BV+/Y5/VeF/oV8Ood+7dpDfDqHvsrySHJBXjBDrxgB16wAy/YgRfswAt24AU78IIdeMEOPOywAw+7gIcdeMEOvGAHXrADL9iBF+zAC3bgBTvwsMMOPOwCHnYBD7uAhx14wQ68YAdesAMv2IEX7MDDDjvwsAt42AU87AIedgEPu4CHXcDDDrxgB16wAw877MDDDjvwsAt42AU87AIedgEPu4CHXcDDLuBhB16wAw877MDDLuBhF/CwC3jYBTzsAh52AQ+7gIddwEtjB3+tS/78+Z/V5d9iATz0Ah56AQ+9gIdewEMv4KEX8NALeOgFPPQCHnoBDz3wgh54QQ889NADDz30wEMv4KEX8NALeOgFPPQCHnoBD72Ahx54QQ+8oAde0AMv6IEX9MBDDz3w0EMPPPQCHnoBD72Ah17AQw+8FUAPvKAHXtADL+iBF/TAC3rgBT3wgh546KEHHnrogYdewEMv4KEHXtADL+iBF/TAC3rgBT3wgh54QQ+8oAde0AMv6IGHHnrgoU/yrgFe3aO/JdknuQOv3tGfC/tjjEsYWmsoyIWXgJeAl4CXgJeAl4CXgJeAl4CXgJeAF/AS8BLwEvAS8BLwEvAS8BLwEvAS8BLwAl4CXgJeAl4CXvqnPgAAAP//AwCEcoCBRabYzAAAAABJRU5ErkJggg==) no-repeat 50% 50%}.iziModal-navigate-next{right:50%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAC8CAYAAADCScSrAAAACXBIWXMAAB3SAAAd0gEUasEwAAA7pGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0wOC0wMVQwOTo0MDoxNC0wMzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTA4LTAxVDExOjU4OjEyLTAzOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0wOC0wMVQxMTo1ODoxMi0wMzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDphZjljN2Q2MC00MTg2LWE3NGQtYTBiMS1mMGU5ODUwYzg2ZGY8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY0OTJjNzEzLTlkMzQtNmU0ZC1iZTA2LWEwMzJjZDg0NWM0ZTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQwOTo0MDoxNC0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjAxNjJjMmE3LWZmMjYtYzE0ZC05Yjg4LTc2MGM2NzAxYjYzNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1MTowNy0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFmOWM3ZDYwLTQxODYtYTc0ZC1hMGIxLWYwZTk4NTBjODZkZjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1ODoxMi0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MTkzOTAzNi8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTkzOTAzNi8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTg4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjE4ODwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+nbt1mgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACQklEQVR42uzSsQ3CQAAEQTdiOyGg/wrciJ0QUMYSECEKAP3PSdvAaZZqkWbJCQJeAl4CXgJeAl4CXgJeAl4CXgJeAl4CXsBLwEvAS8BLwEvAS8BLwEvAS8BLwEvAC3gJeAl4CXgJ+D9vrY7qBgLwo7dVZ+89oAd+5Pbq6nPQAz9s9+rZ96AHHnoBD72Ah17AQy/goRfw0At46AU89AIeegEPvYCHHnhBD7ygBx566IGHHnrgoRfw0At46AU89AIeegEPvYCHXsBDL+ChB17QAy/ogRf0wAt64KGHHnjooQceegEPvYCHXsBDL+ChF/DQAy/ogRf0wAt64AU98IIeeEEPvKAHXtADDz30wEPvI+ChF/DQAy/ogRf0wAt64AU98IIeeEEPvKAHXtADL+iBF/TAC3rgoZ8ePRDAAy/YgRfswAt24AU78IIdeMEOvGAHXrADL9iBhx124GEX8LADL9iBF+zAC3bgBTvwgh14wQ68YAcedtiBh13Awy7gYRfwsAMv2IEX7MALduAFO/CCHXjYYQcedgEPu4CHXcDDLuBhF/CwA+8E2IEX7MALduAFO/Cwww487AIedgEPu4CHXcDDLuBhF/CwC3jYgRfswMMOO/CwC3jYBTzsAh52AQ+7gIddwMMu4GEX8LBravB7dcEO/Ext1Qk78DO1VgfswEvAS8BLwEvAS8BLwEvAS8BLwEvAS8ALeAl4CXgJeAl4CXgJeAl4CXgJeAl4CXgBLwEvAS8BLwEvAS/9shcAAAD//wMAtAygvJrkwJUAAAAASUVORK5CYII=) no-repeat 50% 50%}.iziModal.isAttachedTop .iziModal-header{border-top-left-radius:0;border-top-right-radius:0}.iziModal.isAttachedTop{margin-top:0!important;margin-bottom:auto!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.iziModal.isAttachedBottom{margin-top:auto!important;margin-bottom:0!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.iziModal.isFullscreen{max-width:100%!important;margin:0!important;height:100%!important}.iziModal.isAttached,.iziModal.isFullscreen{border-radius:0!important}.iziModal.hasScroll .iziModal-wrap{overflow-y:auto;overflow-x:hidden}html.iziModal-isAttached,html.iziModal-isOverflow{overflow:hidden}html.iziModal-isAttached body,html.iziModal-isOverflow body{overflow-y:scroll;position:relative}.iziModal ::-webkit-scrollbar{overflow:visible;height:7px;width:7px}.iziModal ::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.2);background-clip:padding-box;border:solid transparent;border-width:0;min-height:28px;padding:100px 0 0;box-shadow:inset 1px 1px 0 rgba(0,0,0,.1),inset 0 -1px 0 rgba(0,0,0,.07)}.iziModal ::-webkit-scrollbar-thumb:active{background-color:rgba(0,0,0,.4)}.iziModal ::-webkit-scrollbar-button{height:0;width:0}.iziModal ::-webkit-scrollbar-track{background-clip:padding-box;border:solid transparent;border-width:0 0 0 2px}.iziModal.transitionIn .iziModal-header{-webkit-animation:iziM-slideDown .7s cubic-bezier(.7,0,.3,1);-moz-animation:iziM-slideDown .7s cubic-bezier(.7,0,.3,1);animation:iziM-slideDown .7s cubic-bezier(.7,0,.3,1)}.iziModal.transitionIn .iziModal-header .iziModal-header-icon{-webkit-animation:iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both;-moz-animation:iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both;animation:iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both}.iziModal.transitionIn .iziModal-header .iziModal-header-subtitle,.iziModal.transitionIn .iziModal-header .iziModal-header-title{-webkit-animation:iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both;-moz-animation:iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both;animation:iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both}.iziModal.transitionIn .iziModal-header .iziModal-button{-webkit-animation:iziM-revealIn 1.2s cubic-bezier(.7,0,.3,1);-moz-animation:iziM-revealIn 1.2s cubic-bezier(.7,0,.3,1);animation:iziM-revealIn 1.2s cubic-bezier(.7,0,.3,1)}.iziModal.transitionIn .iziModal-iframe,.iziModal.transitionIn .iziModal-wrap{-webkit-animation:iziM-fadeIn 1.3s;-moz-animation:iziM-fadeIn 1.3s;animation:iziM-fadeIn 1.3s}.iziModal.transitionIn .iziModal-header{-webkit-animation-delay:0s;-moz-animation:0s;animation-delay:0s}.iziModal.transitionIn .iziModal-header .iziModal-header-icon,.iziModal.transitionIn .iziModal-header .iziModal-header-title{-webkit-animation-delay:.4s;-moz-animation:.4s;animation-delay:.4s}.iziModal.transitionIn .iziModal-header .iziModal-header-subtitle{-webkit-animation-delay:.5s;-moz-animation:.5s;animation-delay:.5s}.iziModal.transitionOut .iziModal-header,.iziModal.transitionOut .iziModal-header *{transition:none!important}.iziModal .fadeOut,.iziModal-navigate.fadeOut,.iziModal-overlay.fadeOut,.iziModal.fadeOut{-webkit-animation:iziM-fadeOut .5s;-moz-animation:iziM-fadeOut .5s;animation:iziM-fadeOut .5s;animation-fill-mode:forwards}.iziModal .fadeIn,.iziModal-navigate.fadeIn,.iziModal-overlay.fadeIn,.iziModal.fadeIn{-webkit-animation:iziM-fadeIn .5s;-moz-animation:iziM-fadeIn .5s;animation:iziM-fadeIn .5s}.iziModal-overlay.comingIn,.iziModal.comingIn{-webkit-animation:iziM-comingIn .5s ease;-moz-animation:iziM-comingIn .5s ease;animation:iziM-comingIn .5s ease}.iziModal-overlay.comingOut,.iziModal.comingOut{-webkit-animation:iziM-comingOut .5s cubic-bezier(.16,.81,.32,1);-moz-animation:iziM-comingOut .5s cubic-bezier(.16,.81,.32,1);animation:iziM-comingOut .5s cubic-bezier(.16,.81,.32,1);animation-fill-mode:forwards}.iziModal-overlay.bounceInDown,.iziModal.bounceInDown{-webkit-animation:iziM-bounceInDown .7s ease;animation:iziM-bounceInDown .7s ease}.iziModal-overlay.bounceOutDown,.iziModal.bounceOutDown{-webkit-animation:iziM-bounceOutDown .7s ease;animation:iziM-bounceOutDown .7s ease}.iziModal-overlay.bounceInUp,.iziModal.bounceInUp{-webkit-animation:iziM-bounceInUp .7s ease;animation:iziM-bounceInUp .7s ease}.iziModal-overlay.bounceOutUp,.iziModal.bounceOutUp{-webkit-animation:iziM-bounceOutUp .7s ease;animation:iziM-bounceOutUp .7s ease}.iziModal-overlay.fadeInDown,.iziModal.fadeInDown{-webkit-animation:iziM-fadeInDown .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInDown .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutDown,.iziModal.fadeOutDown{-webkit-animation:iziM-fadeOutDown .5s ease;animation:iziM-fadeOutDown .5s ease}.iziModal-overlay.fadeInUp,.iziModal.fadeInUp{-webkit-animation:iziM-fadeInUp .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInUp .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutUp,.iziModal.fadeOutUp{-webkit-animation:iziM-fadeOutUp .5s ease;animation:iziM-fadeOutUp .5s ease}.iziModal-overlay.fadeInLeft,.iziModal.fadeInLeft{-webkit-animation:iziM-fadeInLeft .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInLeft .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutLeft,.iziModal.fadeOutLeft{-webkit-animation:iziM-fadeOutLeft .5s ease;animation:iziM-fadeOutLeft .5s ease}.iziModal-overlay.fadeInRight,.iziModal.fadeInRight{-webkit-animation:iziM-fadeInRight .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInRight .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutRight,.iziModal.fadeOutRight{-webkit-animation:iziM-fadeOutRight .5s ease;animation:iziM-fadeOutRight .5s ease}.iziModal-overlay.flipInX,.iziModal.flipInX{-webkit-animation:iziM-flipInX .7s ease;animation:iziM-flipInX .7s ease}.iziModal-overlay.flipOutX,.iziModal.flipOutX{-webkit-animation:iziM-flipOutX .7s ease;animation:iziM-flipOutX .7s ease}@-webkit-keyframes iziM-comingIn{0%{opacity:0;transform:scale(.9) translateY(-20px) perspective(600px) rotateX(10deg)}to{opacity:1;transform:scale(1) translateY(0) perspective(600px) rotateX(0)}}@-moz-keyframes iziM-comingIn{0%{opacity:0;transform:scale(.9) translateY(-20px) perspective(600px) rotateX(10deg)}to{opacity:1;transform:scale(1) translateY(0) perspective(600px) rotateX(0)}}@keyframes iziM-comingIn{0%{opacity:0;transform:scale(.9) translateY(-20px) perspective(600px) rotateX(10deg)}to{opacity:1;transform:scale(1) translateY(0) perspective(600px) rotateX(0)}}@-webkit-keyframes iziM-comingOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@-moz-keyframes iziM-comingOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes iziM-comingOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@-webkit-keyframes iziM-fadeOut{0%{opacity:1}to{opacity:0}}@-moz-keyframes iziM-fadeOut{0%{opacity:1}to{opacity:0}}@keyframes iziM-fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes iziM-fadeIn{0%{opacity:0}to{opacity:1}}@-moz-keyframes iziM-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes iziM-fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes iziM-slideIn{0%{opacity:0;-webkit-transform:translateX(50px)}to{opacity:1;-webkit-transform:translateX(0)}}@-moz-keyframes iziM-slideIn{0%{opacity:0;-moz-transform:translateX(50px)}to{opacity:1;-moz-transform:translateX(0)}}@keyframes iziM-slideIn{0%{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}@-webkit-keyframes iziM-slideDown{0%{opacity:0;-webkit-transform:scale(1,0) translateY(-40px);-webkit-transform-origin:center top}}@-moz-keyframes iziM-slideDown{0%{opacity:0;-moz-transform:scale(1,0) translateY(-40px);-moz-transform-origin:center top}}@keyframes iziM-slideDown{0%{opacity:0;transform:scale(1,0) translateY(-40px);transform-origin:center top}}@-webkit-keyframes iziM-revealIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,1)}}@-moz-keyframes iziM-revealIn{0%{opacity:0;-moz-transform:scale3d(.3,.3,1)}}@keyframes iziM-revealIn{0%{opacity:0;transform:scale3d(.3,.3,1)}}@-webkit-keyframes iziM-bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-1000px,0);transform:translate3d(0,-1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes iziM-bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-1000px,0);transform:translate3d(0,-1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}}@keyframes iziM-bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}}@-webkit-keyframes iziM-bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes iziM-bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes iziM-bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes iziM-bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-1000px,0);transform:translate3d(0,-1000px,0)}}@-webkit-keyframes iziM-fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}}@keyframes iziM-fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}}@-webkit-keyframes iziM-fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}}@keyframes iziM-fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}}@-webkit-keyframes iziM-fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}}@keyframes iziM-fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}}@-webkit-keyframes iziM-fadeInRight{0%{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInRight{0%{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}}@keyframes iziM-fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}}@-webkit-keyframes iziM-flipInX{0%{-webkit-transform:perspective(400px) rotateX(60deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg)}to{-webkit-transform:perspective(400px) rotateX(0deg);opacity:1}}@keyframes iziM-flipInX{0%{transform:perspective(400px) rotateX(60deg);opacity:0}40%{transform:perspective(400px) rotateX(-10deg)}70%{transform:perspective(400px) rotateX(10deg)}to{transform:perspective(400px) rotateX(0deg);opacity:1}}@-webkit-keyframes iziM-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,40deg);transform:perspective(400px) rotate3d(1,0,0,40deg);opacity:0}}@keyframes iziM-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,40deg);transform:perspective(400px) rotate3d(1,0,0,40deg);opacity:0}}
|
css/litespeed.css
CHANGED
@@ -3,6 +3,15 @@
|
|
3 |
content: '[' attr(litespeed-accesskey) '] ';
|
4 |
}
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
.litespeed-row {
|
7 |
display: block;
|
8 |
margin-top: 5px;
|
@@ -45,6 +54,7 @@
|
|
45 |
margin-top: 30px;
|
46 |
}
|
47 |
|
|
|
48 |
.litespeed-left20 {
|
49 |
margin-left: 20px;
|
50 |
}
|
@@ -143,10 +153,13 @@ h3 .litespeed-learn-more {
|
|
143 |
overflow: auto;
|
144 |
padding: 10px 15px 15px 15px;
|
145 |
position: relative;
|
146 |
-
border-top: none;
|
147 |
color: #264d73;
|
148 |
}
|
149 |
|
|
|
|
|
|
|
|
|
150 |
.litespeed-body code{
|
151 |
color: #998c85 ;
|
152 |
background-color: #dde9f5;
|
@@ -186,6 +199,7 @@ h3 .litespeed-learn-more {
|
|
186 |
display: table;
|
187 |
padding-right: 50px;
|
188 |
padding-left: 3px;
|
|
|
189 |
}
|
190 |
|
191 |
.litespeed-title a,
|
@@ -388,6 +402,7 @@ h3 .litespeed-learn-more {
|
|
388 |
}
|
389 |
|
390 |
/********************************* btn *******************************/
|
|
|
391 |
.litespeed-wrap [class*="litespeed-btn-"],
|
392 |
[class*="litespeed-btn-"] {
|
393 |
padding: 5px 10px;
|
@@ -404,6 +419,7 @@ h3 .litespeed-learn-more {
|
|
404 |
height: initial;
|
405 |
}
|
406 |
|
|
|
407 |
.litespeed-wrap [class*="litespeed-btn-"]:hover,
|
408 |
[class*="litespeed-btn-"]:hover {
|
409 |
font-weight: 400;
|
@@ -413,6 +429,7 @@ h3 .litespeed-learn-more {
|
|
413 |
box-shadow: none;
|
414 |
}
|
415 |
|
|
|
416 |
.litespeed-wrap .litespeed-btn-danger,
|
417 |
.litespeed-btn-danger {
|
418 |
color: #cc3d6a;
|
@@ -422,11 +439,13 @@ h3 .litespeed-learn-more {
|
|
422 |
box-shadow: 0 0 0 1px rgba(204, 61, 106, 0.25);
|
423 |
}
|
424 |
|
|
|
425 |
.litespeed-wrap .litespeed-btn-danger:hover,
|
426 |
.litespeed-btn-danger:hover {
|
427 |
background: #cc3d6a;
|
428 |
}
|
429 |
|
|
|
430 |
.litespeed-wrap .litespeed-btn-warning,
|
431 |
.litespeed-btn-warning {
|
432 |
color: #e59544;
|
@@ -436,11 +455,13 @@ h3 .litespeed-learn-more {
|
|
436 |
box-shadow: 0 0 0 1px rgba(230, 150, 69, 0.25);
|
437 |
}
|
438 |
|
|
|
439 |
.litespeed-wrap .litespeed-btn-warning:hover,
|
440 |
.litespeed-btn-warning:hover {
|
441 |
background: #e59544;
|
442 |
}
|
443 |
|
|
|
444 |
.litespeed-wrap .litespeed-btn-success,
|
445 |
.litespeed-btn-success {
|
446 |
color: #36b0b0;
|
@@ -450,11 +471,13 @@ h3 .litespeed-learn-more {
|
|
450 |
box-shadow: 0 0 0 1px rgba(54, 176, 176, 0.25);
|
451 |
}
|
452 |
|
|
|
453 |
.litespeed-wrap .litespeed-btn-success:hover,
|
454 |
.litespeed-btn-success:hover {
|
455 |
background: #36b0b0;
|
456 |
}
|
457 |
|
|
|
458 |
.litespeed-wrap .litespeed-btn-primary,
|
459 |
.litespeed-btn-primary {
|
460 |
color: #538ac6;
|
@@ -464,12 +487,14 @@ h3 .litespeed-learn-more {
|
|
464 |
box-shadow: 0 0 0 1px rgba(83, 138, 198, 0.25);
|
465 |
}
|
466 |
|
|
|
467 |
.litespeed-wrap .litespeed-btn-primary:hover,
|
468 |
.litespeed-btn-primary:hover {
|
469 |
background: #538ac6;
|
470 |
border-color: #538ac6;
|
471 |
}
|
472 |
|
|
|
473 |
.litespeed-wrap .litespeed-btn-default,
|
474 |
.litespeed-btn-default {
|
475 |
color: #a7a7a7;
|
@@ -479,11 +504,13 @@ h3 .litespeed-learn-more {
|
|
479 |
box-shadow: 0 0 0 1px rgba(158, 158, 158, 0.25);
|
480 |
}
|
481 |
|
|
|
482 |
.litespeed-wrap .litespeed-btn-default:hover,
|
483 |
.litespeed-btn-default:hover {
|
484 |
background: #a7a7a7;
|
485 |
}
|
486 |
|
|
|
487 |
.litespeed-wrap .litespeed-btn-default.disabled:hover,
|
488 |
.litespeed-btn-default.disabled:hover {
|
489 |
color: #a7a7a7;
|
@@ -496,6 +523,7 @@ h3 .litespeed-learn-more {
|
|
496 |
border-color: #adadad;
|
497 |
}
|
498 |
|
|
|
499 |
.litespeed-wrap .litespeed-btn-xs,
|
500 |
.litespeed-btn-xs {
|
501 |
padding: 1px 8px;
|
@@ -505,6 +533,7 @@ h3 .litespeed-learn-more {
|
|
505 |
min-width: 100px;
|
506 |
}
|
507 |
|
|
|
508 |
.litespeed-wrap .litespeed-btn-tiny,
|
509 |
.litespeed-btn-tiny {
|
510 |
padding: 1px 8px;
|
@@ -1233,12 +1262,9 @@ g.litespeed-pie_info text{
|
|
1233 |
text-anchor: middle;
|
1234 |
}
|
1235 |
|
1236 |
-
/*********************************
|
1237 |
-
|
1238 |
-
|
1239 |
-
}
|
1240 |
-
|
1241 |
-
.litespeed-cdn-mapping-block {
|
1242 |
border: 1px dotted #6699cc;
|
1243 |
border-radius:5px;
|
1244 |
display: flex;
|
@@ -1247,6 +1273,37 @@ g.litespeed-pie_info text{
|
|
1247 |
margin-bottom: 5px;
|
1248 |
}
|
1249 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1250 |
.litespeed-cdn-mapping-col1 {
|
1251 |
flex: 0 0 35%;
|
1252 |
padding-left: 17px;
|
@@ -1299,28 +1356,6 @@ g.litespeed-pie_info text{
|
|
1299 |
margin-right: 10px;
|
1300 |
}
|
1301 |
|
1302 |
-
.litespeed-child-col{
|
1303 |
-
flex: 0 0 30%;
|
1304 |
-
padding-left: 17px;
|
1305 |
-
}
|
1306 |
-
|
1307 |
-
.litespeed-child-col-auto{
|
1308 |
-
padding-left: 17px;
|
1309 |
-
}
|
1310 |
-
|
1311 |
-
.litespeed-child-col-br{
|
1312 |
-
flex: 0 0 100% ;
|
1313 |
-
border-top: 1px dotted #6699cc;
|
1314 |
-
}
|
1315 |
-
|
1316 |
-
.litespeed-child-col-inc{
|
1317 |
-
display: inline-block;
|
1318 |
-
margin-top: 16px ;
|
1319 |
-
min-width: 150px ;
|
1320 |
-
font-weight: bold;
|
1321 |
-
}
|
1322 |
-
|
1323 |
-
|
1324 |
/********************************* toggle *******************************/
|
1325 |
|
1326 |
.litespeed-toggle {
|
@@ -1475,7 +1510,77 @@ g.litespeed-pie_info text{
|
|
1475 |
top: -7px ;
|
1476 |
}
|
1477 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1478 |
/********************************* todo *******************************/
|
|
|
1479 |
/* input field */
|
1480 |
.litespeed-textarea {
|
1481 |
width: 60% ;
|
@@ -1527,7 +1632,9 @@ g.litespeed-pie_info text{
|
|
1527 |
margin-top: 0;
|
1528 |
}
|
1529 |
|
1530 |
-
.litespeed
|
|
|
|
|
1531 |
border: 1px solid #6699cc;
|
1532 |
border-radius: 3px;
|
1533 |
background: #fff;
|
@@ -1537,6 +1644,7 @@ g.litespeed-pie_info text{
|
|
1537 |
font-family: "Open Sans", Arial, sans-serif;
|
1538 |
}
|
1539 |
|
|
|
1540 |
.litespeed-regular-text {
|
1541 |
padding-left: 5px;
|
1542 |
width: 25em;
|
@@ -1544,6 +1652,10 @@ g.litespeed-pie_info text{
|
|
1544 |
font-family: "Open Sans", Arial, sans-serif;
|
1545 |
}
|
1546 |
|
|
|
|
|
|
|
|
|
1547 |
.litespeed-input-long {
|
1548 |
width: 99%;
|
1549 |
}
|
3 |
content: '[' attr(litespeed-accesskey) '] ';
|
4 |
}
|
5 |
|
6 |
+
.litespeed-modal{
|
7 |
+
margin-top: -8px;
|
8 |
+
}
|
9 |
+
|
10 |
+
.litespeed-modal .litespeed-progress{
|
11 |
+
margin-left: -8px;
|
12 |
+
margin-right: -8px;
|
13 |
+
}
|
14 |
+
|
15 |
.litespeed-row {
|
16 |
display: block;
|
17 |
margin-top: 5px;
|
54 |
margin-top: 30px;
|
55 |
}
|
56 |
|
57 |
+
.litespeed-wrap .litespeed-left20,
|
58 |
.litespeed-left20 {
|
59 |
margin-left: 20px;
|
60 |
}
|
153 |
overflow: auto;
|
154 |
padding: 10px 15px 15px 15px;
|
155 |
position: relative;
|
|
|
156 |
color: #264d73;
|
157 |
}
|
158 |
|
159 |
+
.litespeed-header + .litespeed-body {
|
160 |
+
border-top: none;
|
161 |
+
}
|
162 |
+
|
163 |
.litespeed-body code{
|
164 |
color: #998c85 ;
|
165 |
background-color: #dde9f5;
|
199 |
display: table;
|
200 |
padding-right: 50px;
|
201 |
padding-left: 3px;
|
202 |
+
padding-bottom: 3px;
|
203 |
}
|
204 |
|
205 |
.litespeed-title a,
|
402 |
}
|
403 |
|
404 |
/********************************* btn *******************************/
|
405 |
+
.litespeed [class*="litespeed-btn-"],
|
406 |
.litespeed-wrap [class*="litespeed-btn-"],
|
407 |
[class*="litespeed-btn-"] {
|
408 |
padding: 5px 10px;
|
419 |
height: initial;
|
420 |
}
|
421 |
|
422 |
+
.litespeed [class*="litespeed-btn-"]:hover,
|
423 |
.litespeed-wrap [class*="litespeed-btn-"]:hover,
|
424 |
[class*="litespeed-btn-"]:hover {
|
425 |
font-weight: 400;
|
429 |
box-shadow: none;
|
430 |
}
|
431 |
|
432 |
+
.litespeed .litespeed-btn-danger,
|
433 |
.litespeed-wrap .litespeed-btn-danger,
|
434 |
.litespeed-btn-danger {
|
435 |
color: #cc3d6a;
|
439 |
box-shadow: 0 0 0 1px rgba(204, 61, 106, 0.25);
|
440 |
}
|
441 |
|
442 |
+
.litespeed .litespeed-btn-danger:hover,
|
443 |
.litespeed-wrap .litespeed-btn-danger:hover,
|
444 |
.litespeed-btn-danger:hover {
|
445 |
background: #cc3d6a;
|
446 |
}
|
447 |
|
448 |
+
.litespeed .litespeed-btn-warning,
|
449 |
.litespeed-wrap .litespeed-btn-warning,
|
450 |
.litespeed-btn-warning {
|
451 |
color: #e59544;
|
455 |
box-shadow: 0 0 0 1px rgba(230, 150, 69, 0.25);
|
456 |
}
|
457 |
|
458 |
+
.litespeed .litespeed-btn-warning:hover,
|
459 |
.litespeed-wrap .litespeed-btn-warning:hover,
|
460 |
.litespeed-btn-warning:hover {
|
461 |
background: #e59544;
|
462 |
}
|
463 |
|
464 |
+
.litespeed .litespeed-btn-success,
|
465 |
.litespeed-wrap .litespeed-btn-success,
|
466 |
.litespeed-btn-success {
|
467 |
color: #36b0b0;
|
471 |
box-shadow: 0 0 0 1px rgba(54, 176, 176, 0.25);
|
472 |
}
|
473 |
|
474 |
+
.litespeed .litespeed-btn-success:hover,
|
475 |
.litespeed-wrap .litespeed-btn-success:hover,
|
476 |
.litespeed-btn-success:hover {
|
477 |
background: #36b0b0;
|
478 |
}
|
479 |
|
480 |
+
.litespeed .litespeed-btn-primary,
|
481 |
.litespeed-wrap .litespeed-btn-primary,
|
482 |
.litespeed-btn-primary {
|
483 |
color: #538ac6;
|
487 |
box-shadow: 0 0 0 1px rgba(83, 138, 198, 0.25);
|
488 |
}
|
489 |
|
490 |
+
.litespeed .litespeed-btn-primary:hover,
|
491 |
.litespeed-wrap .litespeed-btn-primary:hover,
|
492 |
.litespeed-btn-primary:hover {
|
493 |
background: #538ac6;
|
494 |
border-color: #538ac6;
|
495 |
}
|
496 |
|
497 |
+
.litespeed .litespeed-btn-default,
|
498 |
.litespeed-wrap .litespeed-btn-default,
|
499 |
.litespeed-btn-default {
|
500 |
color: #a7a7a7;
|
504 |
box-shadow: 0 0 0 1px rgba(158, 158, 158, 0.25);
|
505 |
}
|
506 |
|
507 |
+
.litespeed .litespeed-btn-default:hover,
|
508 |
.litespeed-wrap .litespeed-btn-default:hover,
|
509 |
.litespeed-btn-default:hover {
|
510 |
background: #a7a7a7;
|
511 |
}
|
512 |
|
513 |
+
.litespeed .litespeed-btn-default.disabled:hover,
|
514 |
.litespeed-wrap .litespeed-btn-default.disabled:hover,
|
515 |