/* Widget Name: Button Description: Create a custom button with flexible styling, icon support, and click tracking functionality. Author: SiteOrigin Author URI: https://siteorigin.com Documentation: https://siteorigin.com/widgets-bundle/button-widget-documentation/ Keywords: event, icon, link */ class SiteOrigin_Widget_Button_Widget extends SiteOrigin_Widget { public function __construct() { parent::__construct( 'sow-button', __( 'SiteOrigin Button', 'so-widgets-bundle' ), array( 'description' => __( 'Create a custom button with flexible styling, icon support, and click tracking functionality.', 'so-widgets-bundle' ), 'help' => 'https://siteorigin.com/widgets-bundle/button-widget-documentation/', ), array( ), false, plugin_dir_path( __FILE__ ) ); } public function get_settings_form() { return array( 'responsive_breakpoint' => array( 'type' => 'measurement', 'label' => __( 'Responsive Breakpoint', 'so-widgets-bundle' ), 'default' => '780px', 'description' => __( 'This setting controls when the Mobile Align setting will be used. The default value is 780px.', 'so-widgets-bundle' ), ), ); } public function initialize() { $this->register_frontend_styles( array( array( 'sow-button-base', plugin_dir_url( __FILE__ ) . 'css/style.css', array(), SOW_BUNDLE_VERSION, ), ) ); } public function get_widget_form() { return array( 'text' => array( 'type' => 'text', 'label' => __( 'Button Text', 'so-widgets-bundle' ), ), 'url' => array( 'type' => 'link', 'label' => __( 'Destination URL', 'so-widgets-bundle' ), 'allow_shortcode' => true, ), 'new_window' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Open in a new window', 'so-widgets-bundle' ), ), 'download' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Download', 'so-widgets-bundle' ), 'description' => __( 'The Destination URL will be downloaded when a user clicks on the button.', 'so-widgets-bundle' ), ), 'button_icon' => array( 'type' => 'section', 'label' => __( 'Icon', 'so-widgets-bundle' ), 'fields' => array( 'icon_selected' => array( 'type' => 'icon', 'label' => __( 'Icon', 'so-widgets-bundle' ), ), 'icon_color' => array( 'type' => 'color', 'label' => __( 'Icon Color', 'so-widgets-bundle' ), ), 'icon' => array( 'type' => 'media', 'label' => __( 'Image Icon', 'so-widgets-bundle' ), 'description' => __( 'Replaces the icon with your own image icon.', 'so-widgets-bundle' ), ), 'icon_placement' => array( 'type' => 'select', 'label' => __( 'Icon Placement', 'so-widgets-bundle' ), 'default' => 'left', 'options' => array( 'top' => __( 'Top', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'bottom' => __( 'Bottom', 'so-widgets-bundle' ), 'left' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), 'design' => array( 'type' => 'section', 'label' => __( 'Design and Layout', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'width' => array( 'type' => 'measurement', 'label' => __( 'Width', 'so-widgets-bundle' ), 'description' => __( 'Leave blank to let the button resize according to content.', 'so-widgets-bundle' ), ), 'align' => array( 'type' => 'select', 'label' => __( 'Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'mobile_align' => array( 'type' => 'select', 'label' => __( 'Mobile Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'theme' => array( 'type' => 'select', 'label' => __( 'Button Theme', 'so-widgets-bundle' ), 'default' => 'flat', 'options' => array( 'atom' => __( 'Atom', 'so-widgets-bundle' ), 'flat' => __( 'Flat', 'so-widgets-bundle' ), 'wire' => __( 'Wire', 'so-widgets-bundle' ), ), ), 'button_color' => array( 'type' => 'color', 'label' => __( 'Button Color', 'so-widgets-bundle' ), ), 'text_color' => array( 'type' => 'color', 'label' => __( 'Text Color', 'so-widgets-bundle' ), ), 'hover' => array( 'type' => 'checkbox', 'default' => true, 'label' => __( 'Use hover effects', 'so-widgets-bundle' ), 'state_emitter' => array( 'callback' => 'conditional', 'args' => array( 'hover[show]: val', 'hover[hide]: ! val', ), ), ), 'hover_background_color' => array( 'type' => 'color', 'label' => __( 'Hover Background Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'hover_text_color' => array( 'type' => 'color', 'label' => __( 'Hover Text Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'font' => array( 'type' => 'font', 'label' => __( 'Font', 'so-widgets-bundle' ), 'default' => 'default', ), 'font_size' => array( 'type' => 'measurement', 'label' => __( 'Font Size', 'so-widgets-bundle' ), 'default' => '1em', ), 'icon_size' => array( 'type' => 'measurement', 'label' => __( 'Icon Size', 'so-widgets-bundle' ), 'default' => '1.3em', ), 'padding' => array( 'type' => 'measurement', 'label' => __( 'Padding', 'so-widgets-bundle' ), 'default' => '1em', ), 'rounding' => array( 'type' => 'multi-measurement', 'label' => __( 'Rounding', 'so-widgets-bundle' ), 'default' => '0.25em 0.25em 0.25em 0.25em', 'measurements' => array( 'top' => array( 'label' => __( 'Top', 'so-widgets-bundle' ), ), 'right' => array( 'label' => __( 'Right', 'so-widgets-bundle' ), ), 'bottom' => array( 'label' => __( 'Bottom', 'so-widgets-bundle' ), ), 'left' => array( 'label' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), ), 'attributes' => array( 'type' => 'section', 'label' => __( 'Other Attributes and SEO', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'id' => array( 'type' => 'text', 'label' => __( 'Button ID', 'so-widgets-bundle' ), 'description' => __( 'An ID attribute allows you to target this button in JavaScript.', 'so-widgets-bundle' ), ), 'classes' => array( 'type' => 'text', 'label' => __( 'Button Classes', 'so-widgets-bundle' ), 'description' => __( 'Additional CSS classes added to the button link.', 'so-widgets-bundle' ), ), 'title' => array( 'type' => 'text', 'label' => __( 'Title Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a title attribute to the button link.', 'so-widgets-bundle' ), ), 'on_click' => array( 'type' => 'text', 'label' => __( 'Onclick', 'so-widgets-bundle' ), 'description' => __( 'Run this JavaScript when the button is clicked. Ideal for tracking.', 'so-widgets-bundle' ), 'onclick' => true, ), 'rel' => array( 'type' => 'text', 'label' => __( 'Rel Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a rel attribute to the button link.', 'so-widgets-bundle' ), ), ), ), ); } public function get_style_name( $instance ) { if ( empty( $instance['design']['theme'] ) ) { return 'atom'; } return $instance['design']['theme']; } /** * Get the variables for the Button Widget. * * @return array */ public function get_template_variables( $instance, $args ) { $button_attributes = array(); $attributes = $instance['attributes']; $classes = ! empty( $attributes['classes'] ) ? $attributes['classes'] : ''; if ( ! empty( $classes ) ) { $classes .= ' '; } $classes .= 'sowb-button ow-icon-placement-' . $instance['button_icon']['icon_placement']; if ( ! empty( $instance['design']['hover'] ) ) { $classes .= ' ow-button-hover'; } $button_attributes['class'] = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $classes ) ) ); if ( ! empty( $instance['new_window'] ) ) { $button_attributes['target'] = '_blank'; $button_attributes['rel'] = 'noopener noreferrer'; } if ( ! empty( $instance['download'] ) ) { $button_attributes['download'] = null; } if ( ! empty( $attributes['id'] ) ) { $button_attributes['id'] = $attributes['id']; } if ( ! empty( $attributes['title'] ) ) { $button_attributes['title'] = $attributes['title']; } if ( ! empty( $attributes['rel'] ) ) { if ( isset( $button_attributes['rel'] ) ) { $button_attributes['rel'] .= " $attributes[rel]"; } else { $button_attributes['rel'] = $attributes['rel']; } } $icon_image_url = ''; if ( ! empty( $instance['button_icon']['icon'] ) ) { $attachment = wp_get_attachment_image_src( $instance['button_icon']['icon'] ); if ( ! empty( $attachment ) ) { $icon_image_url = $attachment[0]; } } return array( 'button_attributes' => apply_filters( 'siteorigin_widgets_button_attributes', $button_attributes, $instance ), 'href' => ! empty( $instance['url'] ) ? $instance['url'] : '', 'on_click' => ! empty( $attributes['on_click'] ) ? $attributes['on_click'] : '', 'align' => $instance['design']['align'], 'icon_image_url' => $icon_image_url, 'icon' => $instance['button_icon']['icon_selected'], 'icon_color' => $instance['button_icon']['icon_color'], 'text' => $instance['text'], ); } /** * Get the variables that we'll be injecting into the less stylesheet. * * @return array */ public function get_less_variables( $instance ) { if ( empty( $instance ) || empty( $instance['design'] ) ) { return array(); } $text_color = isset( $instance['design']['text_color'] ) ? $instance['design']['text_color'] : ''; $button_color = isset( $instance['design']['button_color'] ) ? $instance['design']['button_color'] : ''; $less_vars = array( 'button_width' => isset( $instance['design']['width'] ) ? $instance['design']['width'] : '', 'button_color' => $button_color, 'text_color' => $text_color, 'icon_size' => ! empty( $instance['design']['icon_size'] ) ? $instance['design']['icon_size'] : '1.3em', 'hover_text_color' => ! empty( $instance['design']['hover_text_color'] ) ? $instance['design']['hover_text_color'] : $text_color, 'hover_background_color' => ! empty( $instance['design']['hover_background_color'] ) ? $instance['design']['hover_background_color'] : $button_color, 'font_size' => isset( $instance['design']['font_size'] ) ? $instance['design']['font_size'] : '', 'rounding' => isset( $instance['design']['rounding'] ) ? $instance['design']['rounding'] : '', 'padding' => isset( $instance['design']['padding'] ) ? $instance['design']['padding'] : '', 'has_text' => empty( $instance['text'] ) ? 'false' : 'true', 'responsive_breakpoint' => $this->get_global_settings( 'responsive_breakpoint' ), 'align' => ! empty( $instance['design']['align'] ) ? $instance['design']['align'] : 'center', 'mobile_align' => ! empty( $instance['design']['mobile_align'] ) ? $instance['design']['mobile_align'] : 'center', 'has_button_icon' => empty( $instance['button_icon']['icon_selected'] ) ? 'false' : 'true', ); if ( ! empty( $instance['design']['font'] ) ) { $font = siteorigin_widget_get_font( $instance['design']['font'] ); $less_vars['button_font'] = $font['family']; if ( ! empty( $font['weight'] ) ) { $less_vars['button_font_weight'] = $font['weight_raw']; $less_vars['button_font_style'] = $font['style']; } } return $less_vars; } /** * Make sure the instance is the most up to date version. * * @return mixed */ public function modify_instance( $instance ) { if ( empty( $instance ) ) { return array(); } $migrate_props = array( 'button_icon' => array( 'icon_selected', 'icon_color', 'icon', ), 'design' => array( 'align', 'theme', 'button_color', 'text_color', 'hover', 'hover_text_color', 'hover_background_color', 'font_size', 'rounding', 'padding', ), 'attributes' => array( 'id', ), ); foreach ( $migrate_props as $prop => $sub_props ) { if ( empty( $instance[ $prop ] ) ) { $instance[ $prop ] = array(); foreach ( $sub_props as $sub_prop ) { if ( isset( $instance[ $sub_prop ] ) ) { $instance[ $prop ][ $sub_prop ] = $instance[ $sub_prop ]; unset( $instance[ $sub_prop ] ); } } } } // Migrate onclick setting to prevent Wordfence flag. if ( ! empty( $instance['attributes'] ) && ! empty( $instance['attributes']['onclick'] ) ) { $instance['attributes']['on_click'] = $instance['attributes']['onclick']; } // If the mobile_align setting isn't set, set it to the same value as the align value. if ( ! empty( $instance['design'] ) && ! empty( $instance['design']['align'] ) && empty( $instance['design']['mobile_align'] ) ) { $instance['design']['mobile_align'] = $instance['design']['align']; } // Migrate predefined settings to more customizable settings. if ( ! empty( $instance['design']['font_size'] ) && is_numeric( $instance['design']['font_size'] ) ) { $instance['design']['font_size'] .= 'em'; } if ( ! empty( $instance['design']['padding'] ) && is_numeric( $instance['design']['padding'] ) ) { $instance['design']['padding'] .= 'em'; } if ( ! empty( $instance['design']['rounding'] ) && is_numeric( $instance['design']['rounding'] ) ) { $instance['design']['rounding'] = $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em'; } if ( empty( $instance['design']['icon_size'] ) ) { $instance['design']['icon_size'] = '1.3em'; } return $instance; } public function get_form_teaser() { if ( class_exists( 'SiteOrigin_Premium' ) ) { return false; } return array( sprintf( __( 'Add a beautiful tooltip to the Button Widget with %sSiteOrigin Premium%s', 'so-widgets-bundle' ), '', '' ), ); } } siteorigin_widget_register( 'sow-button', __FILE__, 'SiteOrigin_Widget_Button_Widget' );{"id":12498,"date":"2026-05-07T15:49:35","date_gmt":"2026-05-07T15:49:35","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=12498"},"modified":"2026-05-07T15:49:36","modified_gmt":"2026-05-07T15:49:36","slug":"finest-on-the-web-blackjack-real-cash-sites-software-to-play-2026","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/finest-on-the-web-blackjack-real-cash-sites-software-to-play-2026\/","title":{"rendered":"Finest On the web Blackjack Real cash Sites & Software to play 2026"},"content":{"rendered":"

Efficiency usually change, very don\u2019t score as well emotional once you gamble. Side bets, such as for example 21+step 3 and you may Perfect Pairs, look great and gives highest profits. A beneficial bankroll government are a cornerstone of any playing means, very wear\u2019t disregard so it tip. New people get a welcome provide when they fool around with my secure indication-up backlinks.<\/p>\n

After you enter a blackjack games, take a moment to review the new gaming possibilities and you may laws to guarantee it align with your tastes. DraftKings shines to united states because best black-jack local casino, providing more than fifty RNG games you to blend classic alternatives which have innovative twists. The overall game app experiences tight research to ensure fairness.<\/p>\n

Side wagers is preferred because they render higher profits if you rating lucky. Using an optimum black-jack strategy is practical in order to lowering the household line. Sadly, you could\u2019t play real time dealer blackjack free-of-charge, but you can spectate on the specific alive broker online game to locate a feel based on how almost everything functions prior to giving they good wade your self.<\/p>\n

We have showcased the best gambling enterprises to try out online black-jack for real money, so you don\u2019t have to go from problem of finding an ideal gambling enterprise on your own. MYB Gambling establishment\u2019s assistance team shall be contacted through email address, alive talk ability, and you will cost-totally free amount. The newest \u201cAlmost every other Games\u201d section has the benefit of option options, and keno, abrasion cards, and you will an online racebook. The brand new digital table and you can cards part enjoys certain blackjack and roulette versions, baccarat, craps, and a lot more. Crazy Gambling enterprise has a good five-region signal-right up incentive, beginning with good 250% extra up to $step one,one hundred thousand. Its support program will bring additional masters eg totally free revolves and cash-straight back percent.<\/p>\n

If you\u2019lso are keen on activities next Bovada is even checked to the our very own record for the best offshore sportsbooks. It\u2019s now going back to us to go into all the key options that come with the major real time specialist blackjack web based Red Stag Casino online<\/a> casinos within our book. If you\u2019lso are seeking the greatest internet casino getting live agent black-jack, you will find a list of new 10 most readily useful possibilities. However, you will find several earliest procedures you could follow to make the every give you earn and somewhat replace your chance out-of winning in the end. They are the internet sites towards the best casinos centered on the class away from professionals, and you will certainly be probably having a confident to try out experience when to try out within these.<\/p>\n

The new UKGC means that providers satisfy strict conditions to have equity, safety, and in control playing. Online casinos in the U.S. have to use strong age and geolocation verification systems to help you ensure that participants try away from court years and you may discovered into the state’s limits. Here we’re going to talk about the All of us and United kingdom, but it is advisable to analysis own lookup before you sign up to your on-line casino and placing a gamble. However, brand new regulatory tissues internationally disagree somewhat.<\/p>\n

With entertaining game play and fascinating have, the game is made for one another this new and you may knowledgeable professionals. Conventional blackjack gets the lower family border, while you are live black-jack lets you connect to a genuine dealer. Never broke up two tens or face notes, while they equivalent 20 \u2013 among the many strongest hands for the blackjack. Discovering black-jack hand maps is amongst the ideal blackjack means information, because they can help you make a great deal more told gambling behavior. After each hands (you earn), the latest golden dragon agent breathes aside good fireball and you may unveils a beneficial arbitrary multiplier one to speeds up the profits considerably centered on your amazing stake. Progressive black-jack pursue might guidelines of your classic game however, boasts a supplementary front wager that causes a modern jackpot.<\/p>\n

Stop Top BetsSide wagers possess attractive earnings however, usually bring increased household line, affecting your own winnings over the years. Side wagers inside the black-jack is yield significant earnings however, tend to started that have increased household line, impacting your earnings. To grant a helping hand, all of our experts keeps given certain a guide and strategies that you are able to use in your real money blackjack video game. You can examine the brand new small print towards the people anticipate otherwise reload incentive in order for black-jack qualifies. You should invariably have a look at a casino\u2019s small print so as that blackjack is included into the such as now offers. To possess expert advice about how to become more successful at on the web black-jack, here are a few all of our a great deal more thorough tips about how to winnings at the blackjack.<\/p>\n

Most of the Free Twist payouts was paid back because the dollars, with no wagering conditions. “Lottomart isn\u2019t simply a place so you can bet on the results out of preferred lotteries global; so it well-known gambling web site likewise has an intriguing and you will reputable on the web gambling establishment site, that have various game across the key classes, and you will a straightforward-on-the-eye and intuitive-to-navigate program.” Slots, blackjack, roulette, and you can alive broker games greatest record. Prevent web sites with worst critiques, unclear added bonus conditions, slow payouts, or no UKGC permit. Always check payment terminology prior to registering. Have fun with research guides to check bonuses, online game libraries, service quality, withdrawal speed, and you will wagering criteria.<\/p>\n

A knowledgeable black-jack local casino can only become picked following your preferences. Make sure you sign up an authorized and you can verified on the internet blackjack website, instance among those from our recommended listing. A knowledgeable real cash black-jack casinos bring a good amount of assistance and you can advice on in charge betting. For folks who reduce a spherical away from black-jack, don\u2019t go-ahead with trying pursue losing because of the improving your wager for the next round. Certain blackjack resources can be found on the internet, to help you constantly search them and attempt to utilize him or her into the game play. Ideas once and for all game play cover constantly busting aces and you may 8s and usually increasing upon 10 otherwise eleven with a favorable credit in the dealer\u2019s give.<\/p>\n

Including each other unmarried-pro RNG tables as well as fifty some other alive broker black-jack local casino online game where those users fuss a single dining table. Along with an impressive a number of black-jack games, the brand new local casino offers a tempting welcome incentive for brand new players. In our Mr Las vegas gambling enterprise remark, you will find exactly how much our benefits liked this site. We rating the best on the web black-jack casinos predicated on black-jack real time dining tables, game studios, bonuses, and casino features. You\u2019re all set to go to get the fresh ratings, expert advice, and you will private offers to the email. Sign up for all of our newsletter to get PlayUSA\u2019s current hand-into feedback, professional advice, and you may private even offers delivered right to their inbox.<\/p>\n

When you need to make use of credit alternatively, you might nevertheless rating 200% to $2,100, and therefore\u2019s epic, also! Ignition can offer the crypto professionals the chance to get a great 300% extra up to $step three,100 once they first register and also make in initial deposit off at least $20. Actually, you will find currently 43 real time agent black-jack online game to play at Ignition, that have betting constraints of $5 – $50,000. This has higher-quality types of best wishes black-jack distinctions, a strong cellular website to relax and play him or her into the, and you will a stunning invited bonus to help you stop one thing away from. With the short breakdown of an informed blackjack internet sites from how, let\u2019s now diving into more detail and you can review them considering their stand-out possess, will we? To summarize, most readily useful on the web blackjack casinos inside the 2026 give a vibrant and you can safer way to enjoy particularly this classic card video game.<\/p>\n

Certain casinos will get restrict added bonus gamble to particular variations or ban real time broker black-jack, therefore always check the important points. Also, your don\u2019t need to worry about training black-jack hand signals or people almost every other alive table decorum as you\u2019re to relax and play online. But not, we including ensure that those people offerings try high-quality, offering friendly traders no tech problems.<\/p>\n","protected":false},"excerpt":{"rendered":"

Efficiency usually change, very don\u2019t score as well emotional once you gamble. Side bets, such as for example 21+step 3 and you may Perfect Pairs, look great and gives highest profits. A beneficial bankroll government are a cornerstone of any playing means, very wear\u2019t disregard so it tip. New people\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-12498","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/12498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=12498"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/12498\/revisions"}],"predecessor-version":[{"id":12499,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/12498\/revisions\/12499"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=12498"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=12498"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=12498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}