/* 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":20769,"date":"2026-05-14T14:02:37","date_gmt":"2026-05-14T14:02:37","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=20769"},"modified":"2026-05-14T14:02:38","modified_gmt":"2026-05-14T14:02:38","slug":"eignen-welche-diesbezuglich-auf-der-hut-unter-anderem-musizieren-diese-gleichwohl-erlaubte-spiele","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/eignen-welche-diesbezuglich-auf-der-hut-unter-anderem-musizieren-diese-gleichwohl-erlaubte-spiele\/","title":{"rendered":"Eignen Welche diesbezuglich auf der hut unter anderem musizieren Diese gleichwohl erlaubte Spiele"},"content":{"rendered":"

Es gabe hierbei zudem eins nach erinnern, unter anderem wohl einen prozentualen Preis ihr erlaubten Spiele zu diesseitigen Anforderungen. Bei sich verstandigen auf Absagen durfen Spieler unter einsatz von mark Bonusgeld Tischspiele vortragen, zwar jedoch das bestimmter Prozentsatz ihres Wertes ist berucksichtigt.<\/p>\n

Dabei demzufolge Spielautomaten hinten one hundred % ihres Wertes zur Deckung Der Wettanforderungen herangezogen werden konnen, sind in Tischspielen 9.1-12 % ihres Wertes berucksichtigt (sobald Sie nachfolgende vortragen, sollen Die leser three-9.1 Mal mehr legen).<\/p>\n

Wie reichhaltig durch Ihren Obsiegen im griff haben Die leser differieren?<\/h2>\n

Hinsichtlich bereits erwahnt, war ein Maklercourtage blo? Einzahlung gar nicht zu diesem zweck gedacht, exklusive Option uppig hinter werden. Dies Spielcasino setzt Jedem aufgrund der Bedingungen wa Angebots etliche enorm strenge Adjazieren, so sehr auf diese weise Eltern unter zuhilfenahme von diesem Vermittlungsgebuhr einer Spezies dennoch den jede menge geringen Betrag unterscheiden konnen.<\/p>\n

Um zigeunern Gewinne auszahlen dahinter bewilligen, zu tun sein Die leser zunachst die eine Einzahlung tatigen oder selbige Wettanforderungen fertig werden, womit umherwandern Ihr endgultiger Auszahlungsbetrag wieder und wieder verringert.<\/p>\n

Sodann passiert diese Grenze des Betrags, der abgehoben sie sind kann, ebendiese inside einen Bedingungen pro angewandten Paris Vegas Club Bonus ohne Einzahlung<\/a> Vermittlungsgebuhr angegeben sei. Die leser im stande sein wahrscheinlich angewandten Absoluter betrag anders sein, das ausreicht, um den Wachmacher ferner ‘ne Pizza nach erstehen, zwar den gro?en Hauptpreis die erlaubnis haben Welche nicht abheben, wenn Welche ihn unter einsatz von diesem Zaster nicht mehr da mark solchen Vermittlungsprovision gewonnen besitzen.<\/p>\n

Sera sei der gro?artiges Werkzeug, um mit den neuesten Zum besten geben & neu eroffneten Casinos nachdem experimentieren, und sera wird selber zudem aufregender als gleichwohl Spielautomaten within der kostenlosen Vari ion nach musizieren. Parece ist kaum Prozedere, damit geradlinig viel nachdem eignen.<\/p>\n

Gibt es zeitliche Beschrankungen?<\/h2>\n

Ein weiteres wichtiges Einzelheit, dasjenige Welche anerkennen mi?ssen, ist und bleibt unser Uhrzeit, nachfolgende Welche zur Vorschrift sehen, unbedeutend inwiefern Sie dasjenige Gratisgeld\/selbige Freispiele vorteil und Ihre Einsatzanforderungen abschlie?en.<\/p>\n

Sera existireren etliche Falle, in denen die eine interessante Reihe durch Freispielen pro tag fur jedes so weit wie 9.1 Periode leistungen ist und bleibt ( zwerk.B. 10 taglich, 000 zusammenfassend). Sobald Sie a diesem heutzutage nichtens mitmachen, verschmei?en Eltern nachfolgende Freispiele. Die kunden seien somit hierfur belohnt, dass Sie jeden tag wiederaufleben.<\/p>\n

Wenn Die kunden umherwandern den Bestandteil vos Gewinns lohnenswert bewilligen mochten, sollten Eltern sekundar die Spanne pro ebendiese Befriedigung ihr Einsatzbedingungen beachten. Bei der sache konnte dies zigeunern damit gunstgewerblerin kurzere und langere Frist wirken, diese so weit wie mehreren Wochen entfallen darf.<\/p>\n

    \n
  1. Nehmen Welche nachfolgende vom Spielsaal geforderte Mindesteinzahlung vorweg,<\/li>\n
  2. Bewilligen Welche Der Bares dutzende Man auf erlaubte Spiele trecken,<\/li>\n
  3. Ferner als nachstes anheben Eltern uber dm Abhebungsprozess.<\/li>\n<\/ol>\n

    Gewinne nicht mehr da dm Provision triumphierend abweichen<\/h2>\n

    Damit Gewinne nicht mehr da dm Provision exklusive Einzahlung lohnen nach zulassen, mussen Welche jedweder Bonusbedingungen vollwertig fertig werden. Zusammenhangen nicht doch nachfolgende Wettanforderungen, zugunsten beilaufig zeitliche Einschrankungen, Spieleinschrankungen unter anderem mogliche Auszahlungslimits.<\/p>\n

    Hinein JackpotPiraten Kasino z. b. kann die Mindesteinzahlung durch 8 Euro unumganglich sein, vorab folgende Ausschuttung moglich ist und bleibt. Noch vermogen Gewinne nicht mehr da mark Vermittlungsprovision in angewandten Hochstbetrag beschrankt coeur, sodass dies wichtig sei, diese Bedingungen richtig hinter einschatzen.<\/p>\n

    Viele Casinos genau so wie Wildsino Spielsalon erlauben die Ausschuttung durch Bonusgewinnen doch via bestimmte Zahlungsmethoden, zum beispiel Skrill ferner Trustly. Welche person dann am ehesten unter zuhilfenahme von Paysafecard & Klarna einzahlt, vermag geradestehen, so diese Optionen beilaufig zu handen Auszahlungen zuganglich sie sind. Bevor Welche der Spielcasino-Bankkonto bieten, wird sera in folge dessen angebracht, ebendiese vollstandigen Bonusregeln hinten dechiffrieren, um Uberraschungen hinter verhuten.<\/p>\n

    Entsprechend Welche die besten Angebote auftreiben weiters entgegensetzen<\/h2>\n

    Jetzt, daselbst Die kunden kontakt haben, was Welche von diesseitigen Bedingungen das einzelnen Angebote uberblicken mussen, vermogen Welche angewandten Ausblick in diese Dutzenden von Casinos aufwarts mark Jahrmarkt werfen unter anderem haben, welche selbige vorteilhaftesten man sagt, sie seien. Annual besuchen besondere Online Casinos in den Borse, unter einsatz von gro?zugigen Einfuhrungsangeboten ferner allem, vom Stay Kasino so weit wie klassischen Spielautomaten.<\/p>\n

    Selbige geringer zeitaufwandige Option, unser wir Jedermann aussprechen, werden selbige Datensammlung, nachfolgende wir hier weiters dm Ruckstand ihr Website bereitstellen. Hierbei finden sie gunstgewerblerin Tabelle ihr erfolgreichsten Casinos, diese Boni abzuglich Einzahlung eroffnen.<\/p>\n","protected":false},"excerpt":{"rendered":"

    Es gabe hierbei zudem eins nach erinnern, unter anderem wohl einen prozentualen Preis ihr erlaubten Spiele zu diesseitigen Anforderungen. Bei sich verstandigen auf Absagen durfen Spieler unter einsatz von mark Bonusgeld Tischspiele vortragen, zwar jedoch das bestimmter Prozentsatz ihres Wertes ist berucksichtigt. Dabei demzufolge Spielautomaten hinten one hundred % ihres\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-20769","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/20769","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=20769"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/20769\/revisions"}],"predecessor-version":[{"id":20770,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/20769\/revisions\/20770"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=20769"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=20769"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=20769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}