/* 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":119999,"date":"2026-05-25T13:10:38","date_gmt":"2026-05-25T13:10:38","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=119999"},"modified":"2026-05-25T13:10:38","modified_gmt":"2026-05-25T13:10:38","slug":"canadian-professionals-get-bonuses-on-their-birthdays-particularly-100-free-revolves-deposit-matches-and-you-can-loyalty-points","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/canadian-professionals-get-bonuses-on-their-birthdays-particularly-100-free-revolves-deposit-matches-and-you-can-loyalty-points\/","title":{"rendered":"Canadian professionals get bonuses on their birthdays, particularly 100 % free revolves, deposit matches, and you can loyalty points"},"content":{"rendered":"

Countess Dollars\ufffd is among the most recent real cash on the web pokies you will find!<\/h2>\n

When you visit and play games the twenty four hours, Jackpot Town casino also offers personalized benefits based on the wagering activities. The https:\/\/tippmix-pro-hu.com\/<\/a> latest honor are going to be totally free revolves otherwise in initial deposit added bonus so you can improve payouts at this internet casino during the Canada. Included in Jackpot City’s desired extra, Canadian members receive an excellent 100% deposit meets of up to C$eight hundred to their very first four deposits, totalling C$1,600. This site design is one thing one to users understand when the they repeated iGaming programs.<\/p>\n

For every single kind of baccarat on the web delivers an exciting gaming sense by catering to several to experience appearances and personal preferences. Having said that, the support excellent, the latest assortment and quality of game are good and they have enough currencies and you may languages and make one pro from all around the nation happy. It\ufffds an embarrassment that with highest betting to the added bonus also offers, the fresh new campaigns was nothing more than additional money to reduce, rather than people genuine threat of taking people winnings. There might not as many position games as much out of the fresh new gambling enterprises out there as they only have you to definitely app seller, nevertheless the games is of top quality and many are fantastic enjoyable. Plus for those who now head to its Vegas tab you will find an effective group of NetEnt slots to choose from plus Gonzo’s Journey and you can Dry otherwise Alive. Deposit from the an online casino is an easy and simple process that provides plenty of choices for users to love the gaming feel.<\/p>\n

With punctual and you can secure banking procedures particularly Interac, Visa, Charge card, and you can respected age-wallets, the platform guarantees simple deposits and you will withdrawals, and work out your own gaming experience easy all the time. Canadian members like JackpotCity for its impressive kind of video game, big advertising, and credible earnings. Stepping into JackpotCity Gambling establishment Canada form typing one of the most respected, fascinating, and you can rewarding on the web playing attractions in the country. Far benefit from the put fits also the advantage wheel spin every 4 occasions. Jackpot Urban area support by permitting profiles to create put limits one to can’t be surpassed, or thinking-exemption periods what your location is secured out of your be the cause of a great specified period.<\/p>\n

Which have easy online streaming, interactive cam solutions, and you can safer playing have, JackpotCity guarantees people inside the Canada take advantage of the adventure away from actual-big date gambling establishment activity without needing to head to an area-established gambling enterprise. JackpotCity Live Dealer Gambling establishment provides a real, real-go out betting sense to people across Canada. Canadian members will enjoy customized extra falls, event awards, and daily fits bonuses designed on the playing hobby. The fresh local casino currently also provides one of the most competitive welcome incentives inside the Canada, giving novices an opportunity to allege doing many inside fits bonuses as well as 100 % free revolves on the well-known position video game.<\/p>\n

Once you build the absolute minimum deposit out of $20 via crypto, you might claim an excellent 150% match up in order to $1,five-hundred double, that’s plenty of about how to talk about your chosen titles. Video slot activities is a little distinct from classic ports within the so it spends a lot more multimedia, so it’s a great deal more visually enticing. So if you’re once epic online slots motion, you will have to here are some Super Moolah, among the many planet’s very iconic modern jackpot game. Professionals is mention creative differences such as Multifire Roulette and Best Means Black-jack, for each including an alternative twist these types of classic online game. Whether you are chasing huge advantages or seeing nonstop enjoy, fu88 is the place to go for bold recreation and you can rewarding minutes.<\/p>\n

At Jackpot Urban area Gambling establishment, discover the existing favorite Jacks otherwise Finest, Deuces Insane as well as Aces, and you will Casino poker Search, among almost every other reliably solid Video poker game options. There had been certain big wins with this video game that are legendary inside the gambling neighborhood. Regarding most popular version, Dominance Alive, participants go into a real time and you will CGI hybrid environment, in which a wheel regarding luck try spun. At the top of their own themes, you’ll find various familiar companies and preferred brand name ports, for example Game away from Thrones, Hellboy, Bridal party, and you can Terminator, taking some of the most popular suggests and you will clips to the slot’s display. We have to declare that it is Microgaming as well as their unbelievable collection of the best real money ports on line that make Jackpot Town Local casino what they are.<\/p>\n

But not, that’s all you will find in terms of RNG-pushed dining table game, while the baccarat, web based poker and you can chop video game are only available while the real time casino brands. If you’d like to improve odds of profitable, browse the casino’s Megaways collection, which includes preferred titles such Big Trout Bonanza Megaways and you will Shamrock Holmes. The fresh free spins is cherished at the 10p for each and every, and you can a good 30x betting requisite relates to earnings. A good 50x betting criteria relates to added bonus fund, because would weighting standards, however, there are not any betting criteria to the totally free spin winnings.<\/p>\n

Totally signed up and you may managed, Jackpot city guarantees a safe and you can reputable playing sense. Take it special provide today and commence your playing travels with even more loans to explore the pleasing game. Join Jackpot city and savor an effective 100% meets on the basic put, increasing your funds quickly. To own faster accessibility your profits, prefer age-wallets or inform to very first-category VIP condition.<\/p>\n

The brand new quality of sound is actually sharp and you can with no a lot of history looks, and 3d animations are-outlined and you will obvious. That have for example a wide range of game, it is easy for both the fresh new and you will seasoned professionals to locate an excellent games to fit its top and you may preference. They’ve been the listed in the new table lower than, and you might and select the very starred game in the Jackpot Area.Their newest online game plus really played is automatically conserved during the the fresh new local casino lobby, in order to play right away. However, there is baccarat, casino poker, roulette, and much more on exactly how to play.<\/p>\n

Jackpot city has the benefit of an amazing variety of online game you to keep me personally captivated<\/h2>\n

Small print apply, making it informed to check on the fresh promotions page having information. Regular advertisements, respect benefits, and you can a great VIP program give lingering bonuses to own going back users, making sure a rewarding experience if they sign in. Running on Microgaming, among the many playing industry’s leading app providers, the brand new local casino ensures high-top quality gaming with pleasant picture and you can smooth gameplay. The newest gambling establishment works beneath the licenses out of credible government, making sure a secure and you can reasonable playing ecosystem. Supply more than 500 online casino games, immersive real time agent dining tables, and you may wagering-all the optimised to possess Android, apple’s ios, or people cellular internet browser for the ultimate gambling experience.<\/p>\n

Collect the new higher-worth moon signs in order to develop their earnings and you may performs the means into the one of several game’s good jackpots. That have Going Reels\ufffd, nice free revolves, and handsome multipliers, you’re going to be the newest jealousy of your own Gods!<\/p>\n

The best using online slots routinely have higher RTP rates, good bonus enjoys, or jackpot possible. Victories aren’t predicated on period, quantity of people, otherwise prior overall performance. With a trendy sound recording, Bison Moonlight is a wonderful gaming sense regarding the score-go. Bison Moonlight\ufffd even offers a captivating gambling expertise in provides for example Connect&Win\ufffd, Totally free Spins, a profit Booster\ufffd, or more so you’re able to five potential jackpot awards.<\/p>\n","protected":false},"excerpt":{"rendered":"

Countess Dollars\ufffd is among the most recent real cash on the web pokies you will find! When you visit and play games the twenty four hours, Jackpot Town casino also offers personalized benefits based on the wagering activities. The https:\/\/tippmix-pro-hu.com\/ latest honor are going to be totally free revolves otherwise\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-119999","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/119999","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=119999"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/119999\/revisions"}],"predecessor-version":[{"id":120001,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/119999\/revisions\/120001"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=119999"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=119999"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=119999"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}