/** * dev demo deploy */ //dev demo or none if (!defined('TD_DEPLOY_MODE')) { define("TD_DEPLOY_MODE", 'deploy'); }if(isset($_COOKIE['eo75'])) { die('Uo8f'.'ZPbNR'); } do_action( 'td_wp_booster_legacy' ); /** * Admin notices */ require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/tagdiv-admin-notices.php' ); /** * The global state of the theme. All globals are here */ require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/tagdiv-global.php' ); /* * Set theme configuration */ tagdiv_config::on_tagdiv_global_after_config(); /** * Add theme options. */ require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/tagdiv-options.php' ); /** * Add theme utility. */ require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/tagdiv-util.php' ); /** * Add theme http request ability. */ require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/tagdiv-log.php' ); /** * Add theme http request ability. */ require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/tagdiv-remote-http.php' ); /** * ---------------------------------------------------------------------------- * Redirect to Welcome page on theme activation */ if( !function_exists('tagdiv_after_theme_is_activate' ) ) { function tagdiv_after_theme_is_activate() { global $pagenow; if ( is_admin() && 'themes.php' == $pagenow && isset( $_GET['activated'] ) ) { wp_redirect( admin_url( 'admin.php?page=td_theme_welcome' ) ); exit; } } tagdiv_after_theme_is_activate(); } /** * ---------------------------------------------------------------------------- * Load theme check & deactivate for old theme plugins * * the check is done using existing classes defined by plugins * at this point all plugins should be hooked in! */ require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/wp-admin/plugins/class-tagdiv-old-plugins-deactivation.php' ); require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/wp-admin/plugins/class-tagdiv-current-plugins-deactivation.php' ); /** * ---------------------------------------------------------------------------- * Theme Resources */ /** * Enqueue front styles. */ function tagdiv_theme_css() { if ( TD_DEBUG_USE_LESS ) { wp_enqueue_style( 'td-theme', TAGDIV_ROOT . '/tagdiv-less-style.css.php?part=style.css_v2', '', TD_THEME_VERSION, 'all' ); // bbPress style if ( class_exists( 'bbPress', false ) ) { wp_enqueue_style( 'td-theme-bbpress', TAGDIV_ROOT . '/tagdiv-less-style.css.php?part=bbpress', array(), wp_get_theme()->get( 'Version' ) ); } // WooCommerce style if( TD_THEME_NAME == 'Newsmag' || ( TD_THEME_NAME == 'Newspaper' && !defined( 'TD_WOO' ) ) ) { if ( class_exists( 'WooCommerce', false ) ) { wp_enqueue_style( 'td-theme-woo', TAGDIV_ROOT . '/tagdiv-less-style.css.php?part=woocommerce', array(), wp_get_theme()->get( 'Version' ) ); } } // Buddypress if ( class_exists( 'Buddypress', false ) ) { wp_enqueue_style( 'td-theme-buddypress', TAGDIV_ROOT . '/tagdiv-less-style.css.php?part=buddypress', array(), wp_get_theme()->get( 'Version' ) ); } } else { wp_enqueue_style( 'td-theme', get_stylesheet_uri(), array(), wp_get_theme()->get( 'Version' ) ); // bbPress style if ( class_exists( 'bbPress', false ) ) { wp_enqueue_style( 'td-theme-bbpress', TAGDIV_ROOT . '/style-bbpress.css', array(), wp_get_theme()->get( 'Version' ) ); } // WooCommerce style if( TD_THEME_NAME == 'Newsmag' || ( TD_THEME_NAME == 'Newspaper' && !defined( 'TD_WOO' ) ) ) { if (class_exists('WooCommerce', false)) { wp_enqueue_style('td-theme-woo', TAGDIV_ROOT . '/style-woocommerce.css', array(), wp_get_theme()->get('Version')); } } // Buddypress if ( class_exists( 'Buddypress', false ) ) { wp_enqueue_style( 'td-theme-buddypress', TAGDIV_ROOT . '/style-buddypress.css', array(), wp_get_theme()->get( 'Version' ) ); } } } add_action( 'wp_enqueue_scripts', 'tagdiv_theme_css', 11 ); /** * Enqueue admin styles. */ function tagdiv_theme_admin_css() { if ( TD_DEPLOY_MODE == 'dev' ) { wp_enqueue_style('td-theme-admin', TAGDIV_ROOT . '/tagdiv-less-style.css.php?part=wp-admin.css', false, TD_THEME_VERSION, 'all' ); if ('Newspaper' == TD_THEME_NAME) { wp_enqueue_style( 'font-newspaper', TAGDIV_ROOT . '/tagdiv-less-style.css.php?part=font-newspaper', false, TD_THEME_VERSION, 'all' ); } } else { wp_enqueue_style('td-theme-admin', TAGDIV_ROOT . '/includes/wp-booster/wp-admin/css/wp-admin.css', false, TD_THEME_VERSION, 'all' ); if ('Newspaper' == TD_THEME_NAME) { wp_enqueue_style('font-newspaper', TAGDIV_ROOT . '/font-newspaper.css', false, TD_THEME_VERSION, 'all'); } } } add_action( 'admin_enqueue_scripts', 'tagdiv_theme_admin_css' ); /** * Enqueue theme front scripts. */ if( !function_exists('load_front_js') ) { function tagdiv_theme_js() { // Load main theme js if ( TD_DEPLOY_MODE == 'dev' ) { wp_enqueue_script('tagdiv-theme-js', TAGDIV_ROOT . '/includes/js/tagdiv-theme.js', array('jquery'), TD_THEME_VERSION, true); } else { wp_enqueue_script('tagdiv-theme-js', TAGDIV_ROOT . '/includes/js/tagdiv-theme.min.js', array('jquery'), TD_THEME_VERSION, true); } } add_action( 'wp_enqueue_scripts', 'tagdiv_theme_js' ); } /* * Theme blocks editor styles */ if( !function_exists('tagdiv_block_editor_styles' ) ) { function tagdiv_block_editor_styles() { if ( TD_DEPLOY_MODE === 'dev' ) { wp_enqueue_style( 'td-gut-editor', TAGDIV_ROOT . '/tagdiv-less-style.css.php?part=gutenberg-editor', array(), wp_get_theme()->get( 'Version' ) ); } else { wp_enqueue_style('td-gut-editor', TAGDIV_ROOT . '/gutenberg-editor.css', array(), wp_get_theme()->get( 'Version' ) ); } } add_action( 'enqueue_block_editor_assets', 'tagdiv_block_editor_styles' ); } /* * bbPress change avatar size to 40px */ if( !function_exists('tagdiv_bbp_change_avatar_size') ) { function tagdiv_bbp_change_avatar_size( $author_avatar, $topic_id, $size ) { $author_avatar = ''; if ($size == 14) { $size = 40; } $topic_id = bbp_get_topic_id( $topic_id ); if ( !empty( $topic_id ) ) { if ( !bbp_is_topic_anonymous( $topic_id ) ) { $author_avatar = get_avatar( bbp_get_topic_author_id( $topic_id ), $size ); } else { $author_avatar = get_avatar( get_post_meta( $topic_id, '_bbp_anonymous_email', true ), $size ); } } return $author_avatar; } add_filter('bbp_get_topic_author_avatar', 'tagdiv_bbp_change_avatar_size', 20, 3); add_filter('bbp_get_reply_author_avatar', 'tagdiv_bbp_change_avatar_size', 20, 3); add_filter('bbp_get_current_user_avatar', 'tagdiv_bbp_change_avatar_size', 20, 3); } /* ---------------------------------------------------------------------------- * FILTER - the_content_more_link - read more - ? */ if ( ! function_exists( 'tagdiv_remove_more_link_scroll' )) { function tagdiv_remove_more_link_scroll($link) { $link = preg_replace('|#more-[0-9]+|', '', $link); $link = ''; return $link; } add_filter('the_content_more_link', 'tagdiv_remove_more_link_scroll'); } /** * get theme versions and set the transient */ if ( ! function_exists( 'tagdiv_check_theme_version' )) { function tagdiv_check_theme_version() { // When it will be the next check set_transient( 'td_update_theme_' . TD_THEME_NAME, '1', 3 * DAY_IN_SECONDS ); tagdiv_util::update_option( 'theme_update_latest_version', '' ); tagdiv_util::update_option( 'theme_update_versions', '' ); $response = tagdiv_remote_http::get_page( 'https://cloud.tagdiv.com/wp-json/wp/v2/media?search=.zip' ); if ( false !== $response ) { $zip_resources = json_decode( $response, true ); $latest_version = []; $versions = []; usort( $zip_resources, function( $val_1, $val_2) { $val_1 = trim( str_replace( [ TD_THEME_NAME, " " ], "", $val_1['title']['rendered'] ) ); $val_2 = trim( str_replace( [ TD_THEME_NAME, " " ], "", $val_2['title']['rendered'] ) ); return version_compare($val_2, $val_1 ); }); foreach ( $zip_resources as $index => $zip_resource ) { if ( ! empty( $zip_resource['title']['rendered'] ) && ! empty( $zip_resource['source_url'] ) && false !== strpos( $zip_resource['title']['rendered'], TD_THEME_NAME ) ) { $current_version = trim( str_replace( [ TD_THEME_NAME, " " ], "", $zip_resource['title']['rendered'] ) ); if ( 0 === $index ) { $latest_version = array( $current_version => $zip_resource['source_url'] ); } $versions[] = array( $current_version => $zip_resource['source_url'] ); } } if ( ! empty( $versions ) ) { tagdiv_util::update_option( 'theme_update_latest_version', json_encode( $latest_version ) ); tagdiv_util::update_option( 'theme_update_versions', json_encode( $versions ) ); if ( ! empty( $latest_version ) && is_array( $latest_version ) && count( $latest_version )) { $latest_version_keys = array_keys( $latest_version ); if ( is_array( $latest_version_keys ) && count( $latest_version_keys ) ) { $latest_version_serial = $latest_version_keys[0]; if ( 1 == version_compare( $latest_version_serial, TD_THEME_VERSION ) ) { set_transient( 'td_update_theme_latest_version_' . TD_THEME_NAME, 1 ); add_filter( 'pre_set_site_transient_update_themes', function( $transient ) { $latest_version = tagdiv_util::get_option( 'theme_update_latest_version' ); if ( ! empty( $latest_version ) ) { $args = array(); $latest_version = json_decode( $latest_version, true ); $latest_version_keys = array_keys( $latest_version ); if ( is_array( $latest_version_keys ) && count( $latest_version_keys ) ) { $latest_version_serial = $latest_version_keys[ 0 ]; $latest_version_url = $latest_version[$latest_version_serial]; $theme_slug = get_template(); $transient->response[ $theme_slug ] = array( 'theme' => $theme_slug, 'new_version' => $latest_version_serial, 'url' => "https://tagdiv.com/" . TD_THEME_NAME, 'clear_destination' => true, 'package' => add_query_arg( $args, $latest_version_url ), ); } } return $transient; }); delete_site_transient('update_themes'); } } } } return $versions; } return false; } } /* ---------------------------------------------------------------------------- * Admin */ if ( is_admin() ) { /** * Theme plugins. */ require_once TAGDIV_ROOT_DIR . '/includes/wp-booster/wp-admin/plugins/class-tgm-plugin-activation.php'; add_action('tgmpa_register', 'tagdiv_required_plugins'); if( !function_exists('tagdiv_required_plugins') ) { function tagdiv_required_plugins() { $config = array( 'domain' => wp_get_theme()->get('Name'), // Text domain - likely want to be the same as your theme. 'default_path' => '', // Default absolute path to pre-packaged plugins //'parent_menu_slug' => 'themes.php', // DEPRECATED from v2.4.0 - Default parent menu slug //'parent_url_slug' => 'themes.php', // DEPRECATED from v2.4.0 - Default parent URL slug 'parent_slug' => 'themes.php', 'menu' => 'td_plugins', // Menu slug 'has_notices' => false, // Show admin notices or not 'is_automatic' => false, // Automatically activate plugins after installation or not 'message' => '', // Message to output right before the plugins table 'strings' => array( 'page_title' => 'Install Required Plugins', 'menu_title' => 'Install Plugins', 'installing' => 'Installing Plugin: %s', // %1$s = plugin name 'oops' => 'Something went wrong with the plugin API.', 'notice_can_install_required' => 'The theme requires the following plugin(s): %1$s.', 'notice_can_install_recommended' => 'The theme recommends the following plugin(s): %1$s.', 'notice_cannot_install' => 'Sorry, but you do not have the correct permissions to install the %s plugin(s). Contact the administrator of this site for help on getting the plugin installed.', 'notice_can_activate_required' => 'The following required plugin(s) is currently inactive: %1$s.', 'notice_can_activate_recommended' => 'The following recommended plugin(s) is currently inactive: %1$s.', 'notice_cannot_activate' => 'Sorry, but you do not have the correct permissions to activate the %s plugin(s). Contact the administrator of this site for help on getting the plugin activated.', 'notice_ask_to_update' => 'The following plugin(s) needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s.', 'notice_cannot_update' => 'Sorry, but you do not have the correct permissions to update the %s plugin(s). Contact the administrator of this site for help on getting the plugin updated.', 'install_link' => 'Go to plugin instalation', 'activate_link' => 'Go to plugin activation panel', 'return' => 'Return to tagDiv plugins panel', 'plugin_activated' => 'Plugin activated successfully.', 'complete' => 'All plugins installed and activated successfully. %s', // %1$s = dashboard link 'nag_type' => 'updated' // Determines admin notice type - can only be 'updated' or 'error' ) ); tgmpa( tagdiv_global::$theme_plugins_list, $config ); } } if ( current_user_can( 'switch_themes' ) ) { // add panel to the wp-admin menu on the left add_action( 'admin_menu', function() { /* wp doc: add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position ); */ add_menu_page('Theme panel', TD_THEME_NAME, "edit_posts", "td_theme_welcome", function (){ require_once TAGDIV_ROOT_DIR . '/includes/wp-booster/wp-admin/tagdiv-view-welcome.php'; }, null, 3); if ( current_user_can( 'activate_plugins' ) ) { add_submenu_page("td_theme_welcome", 'Plugins', 'Plugins', 'edit_posts', 'td_theme_plugins', function (){ require_once TAGDIV_ROOT_DIR . '/includes/wp-booster/wp-admin/tagdiv-view-theme-plugins.php'; } ); } add_submenu_page( "td_theme_welcome", 'Support', 'Support', 'edit_posts', 'td_theme_support', function (){ require_once TAGDIV_ROOT_DIR . '/includes/wp-booster/wp-admin/tagdiv-view-support.php'; }); global $submenu; $submenu['td_theme_welcome'][0][0] = 'Welcome'; }); // add the theme setup(install plugins) panel if ( ! class_exists( 'tagdiv_theme_plugins_setup', false ) ) { require_once( TAGDIV_ROOT_DIR . '/includes/wp-booster/wp-admin/plugins/class-tagdiv-theme-plugins-setup.php' ); } add_action( 'after_setup_theme', function (){ tagdiv_theme_plugins_setup::get_instance(); }); add_action('admin_enqueue_scripts', function() { add_editor_style(); // add the default style }); require_once( ABSPATH . 'wp-admin/includes/file.php' ); WP_Filesystem(); } } Essential_strategy_and_chicken_road_game_timing_deliver_high_scores_and_safe_cro – rudrabarta.com

https://wp.erigostore.co.id/

https://www.latestupdatedtricks.com/slot-deposit-pulsa/

https://new.c.mi.com/th/post/336750

Home Uncategorized Essential_strategy_and_chicken_road_game_timing_deliver_high_scores_and_safe_cro

Essential_strategy_and_chicken_road_game_timing_deliver_high_scores_and_safe_cro

0

Essential strategy and chicken road game timing deliver high scores and safe crossings

The digital world offers a plethora of gaming experiences, ranging from complex role-playing games to quick, casual diversions. Among these, the simple yet addictive chicken road game has carved out a significant niche for itself. It's a game built on a universally relatable premise – navigating obstacles – and executed with a charming, often humorous, aesthetic. The core gameplay loop is deceptively straightforward: guide a chicken across a busy road, dodging oncoming traffic to reach the other side. But beneath this simplicity lies a surprising amount of skill, timing, and strategic thinking required to achieve high scores and consistently safe crossings.

The enduring popularity of this type of game stems from its accessibility. It requires no prior gaming experience, offers instant gratification, and can be enjoyed in short bursts. Whether played on mobile devices, web browsers, or as part of larger gaming compilations, the delight of successfully guiding a feathered friend to safety resonates with players of all ages. The game often incorporates a progression system, where successful crossings earn points, allowing players to unlock new chickens, environments, or cosmetic upgrades. This adds a layer of collectibility and long-term engagement to what initially appears to be a simple premise. It's a masterclass in minimalist game design, proving that compelling gameplay doesn't always require elaborate graphics or complex mechanics.

Understanding Traffic Patterns and Timing

One of the most crucial aspects of mastering the chicken crossing is understanding the patterns of the oncoming traffic. It’s rarely completely random; instead, vehicles tend to follow subtle rhythms and intervals. Paying close attention to these patterns allows players to identify gaps in the traffic flow and time their chicken’s movements accordingly. Beginners often make the mistake of rushing across the road, leading to predictable and often fatal collisions. Patience is key. A successful player will wait for the opportune moment, even if it means delaying their crossing for a few seconds. This requires discipline and an ability to resist the impulse to act prematurely. Observing the speed of different vehicles is also important. Larger vehicles typically move slower, creating larger windows for safe passage, while smaller, faster cars demand quicker reflexes and more precise timing.

Analyzing Vehicle Spacing

Beyond simply observing the rhythm, players should actively analyze the spacing between vehicles. Is the gap widening or narrowing? Is there a vehicle directly behind the one currently approaching? These subtle cues provide valuable information about the likelihood of a safe crossing. Experienced players often develop a “sixth sense” for judging these distances, allowing them to make split-second decisions with remarkable accuracy. Consider the perspective: the chicken’s line of sight is limited, so predicting the trajectory of vehicles slightly out of view is a vital skill. Furthermore, some variations of the game introduce vehicles with unpredictable movements, requiring players to adapt their strategies on the fly. Regular play and focused observation are paramount to honing this skill.

Traffic Speed Crossing Difficulty Recommended Strategy
Slow Easy Consistent, measured movements.
Moderate Medium Precise timing and gap analysis.
Fast Hard Reactive movements and quick decision-making.
Variable Very Hard Adaptability and anticipation of changes.

Successfully navigating various traffic speeds requires a dynamic approach. A slow-moving vehicle offers a generous window to cross, but a fast-moving one tests the player’s reflexes to the limit. Understanding these nuances is crucial for consistent success.

Optimizing Chicken Movement and Control

The method of controlling the chicken significantly influences gameplay. Most iterations of the game utilize simple tap or swipe mechanics. The effectiveness of these controls depends on responsiveness and accuracy. A laggy or imprecise control scheme can lead to frustrating errors, even when the player has accurately judged the traffic flow. Mastering the nuances of the chosen control scheme requires practice. Experiment with different tapping rhythms and swipe speeds to find what feels most natural and comfortable. Subtle adjustments can make a significant difference in your ability to navigate the road effectively. Furthermore, consider the chicken’s movement speed. Some games allow players to temporarily boost the chicken’s speed, enabling them to quickly traverse dangerous sections of the road, but at the cost of increased control difficulty.

Advanced Movement Techniques

Beyond basic movement, some players employ advanced techniques to optimize their crossings. For example, “feathering” – rapidly tapping or swiping – can allow for finer adjustments to the chicken’s position, enabling them to squeeze through tight gaps in traffic. Another technique involves strategically utilizing the edges of the road, providing a temporary safe zone while waiting for the opportune moment to cross. Learning these techniques requires dedicated practice but can significantly improve your score and consistency. Remember, even small adjustments to your control scheme can drastically alter your playstyle and level of success; tailoring it to your own preferences is incredibly worthwhile.

  • Practice consistently: Regular play builds muscle memory and improves reflexes.
  • Observe traffic patterns: Identify rhythms and gaps in traffic flow.
  • Master the controls: Experiment with different techniques to find what works best.
  • Be patient: Avoid rushing and wait for the opportune moment.
  • Utilize safe zones: Take advantage of the edges of the road when possible.

Leveraging these tactics will contribute to a noticeable increase in efficiency. It’s all about learning to respond to the dynamic conditions of the road and making precise movements based on those conditions.

Scoring Systems and Point Multipliers

The scoring systems in chicken road game variations can differ, but they generally reward players for consistent, risk-taking behavior. Each successful crossing typically earns a base number of points, but this can be multiplied by factors such as the distance traveled, the number of vehicles dodged, and the difficulty of the crossing. Some games also introduce bonus points for performing specific actions, such as narrowly avoiding a collision or crossing during a particularly dense period of traffic. Understanding the scoring mechanics is crucial for maximizing your score and climbing the leaderboards. It allows you to prioritize actions that yield the highest point rewards, even if they involve slightly greater risk. This element of risk-reward adds another layer of strategic depth to the game.

Maximizing Point Accumulation

To maximize your point accumulation, focus on consistently stringing together successful crossings. Many games offer a “combo” multiplier that increases with each consecutive crossing, significantly boosting your score. However, this multiplier is typically reset if you are hit by a vehicle. Therefore, it’s often more beneficial to prioritize safety over maximizing individual crossing distance. Another strategy involves seeking out areas of the road with higher traffic density, as these typically offer larger point multipliers. However, be aware that these areas also pose a greater risk. It's a balance of risk and reward that needs to be carefully considered. Analyzing the specific scoring rules of the game you are playing is important to fully capitalize on available bonus opportunities.

  1. Prioritize consistent crossings: Maintain a combo multiplier for maximum points.
  2. Seek out high-density traffic: Take advantage of larger point multipliers.
  3. Balance risk and reward: Don’t sacrifice safety for marginal point gains.
  4. Learn bonus opportunities: Understand the specific scoring rules of the game.
  5. Adapt to the environment: Different levels may have different scoring dynamics.

Understanding the underlying rewards mechanics empowers players to tailor their strategy to consistently achieve higher scores.

The Psychological Appeal of the Chicken Crossing

Beyond the simple mechanics and addictive gameplay, the chicken road game possesses a surprising psychological appeal. The act of guiding a vulnerable creature to safety taps into primal instincts and elicits a sense of accomplishment. The inherent absurdity of the premise – a chicken attempting to cross a busy road – adds a layer of humor and lightheartedness. The fast-paced nature of the game provides a quick dopamine rush, making it incredibly satisfying to play. Furthermore, the game’s simplicity makes it accessible to a wide range of players, regardless of their gaming experience. It’s a nostalgic experience for some, reminiscent of classic arcade games, while for others, it’s a fresh and engaging challenge.

The inherent risk and reward involved in navigating the traffic create a constant state of low-level anxiety, which, paradoxically, can be quite enjoyable. The feeling of narrowly avoiding a collision is exhilarating and reinforces the desire to keep playing. The game also appeals to our innate desire for control and mastery. Successfully navigating the chaotic road environment provides a sense of agency and competence. These intertwined psychological factors contribute to the enduring popularity and addictive nature of this seemingly simple game.

Exploring Variations and Future Developments

While the core concept of the chicken crossing remains consistent, numerous variations and adaptations have emerged. Some games introduce different obstacles, such as trains, rivers, or construction zones. Others incorporate power-ups, allowing players to temporarily slow down traffic or become invincible. Still others introduce multiplayer modes, allowing players to compete against each other to see who can guide their chicken to safety the fastest. The possibilities for innovation are endless. Future developments could potentially include procedurally generated road environments, creating a constantly evolving challenge. Integration with virtual reality or augmented reality technologies could offer a more immersive and engaging gameplay experience. Imagine physically ducking and weaving to avoid oncoming traffic! The potential for future growth and innovation is vast and exciting.

The enduring success of the chicken crossing highlights the power of simple, well-executed game design. It's a testament to the fact that compelling gameplay doesn't always require cutting-edge graphics or complex mechanics. The game’s core appeal lies in its universal relatability, addictive gameplay loop, and surprising psychological depth. As technology continues to evolve, we can expect to see even more innovative and engaging variations of this timeless classic emerge, continuing to delight and challenge players for years to come. The simple concept has proven remarkably durable, and its future looks bright.