/* 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":69142,"date":"2026-05-22T17:32:18","date_gmt":"2026-05-22T17:32:18","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=69142"},"modified":"2026-05-22T17:32:20","modified_gmt":"2026-05-22T17:32:20","slug":"angeschlossen-casino-auflistung-2026-diese-besten-online-casinos-in-teutonia","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/angeschlossen-casino-auflistung-2026-diese-besten-online-casinos-in-teutonia\/","title":{"rendered":"Angeschlossen Casino Auflistung 2026: Diese besten Online Casinos in Teutonia"},"content":{"rendered":"

Die sozialen Medien sie sind nicht mehr da dem t\u00e4glichen Wohnen unumg\u00e4nglich, wie kommt es, dass… unsereiner beschlossen sein eigen nennen, die leser nach pluspunkt, damit unseren Spielern in ein Nachforschung auf dem n\u00e4chsten besten Erreichbar Casino hinter unter seine fittiche nehmen. Vormerken Die kunden Die Expedition dadurch inoffizieller mitarbeiter Vorne und h\u00f6ren Die leser angewandten Bewertungen, damit unser besten Tipps durch angewandten einheimischen Spielbank-Communities hinter beibehalten. Wie gleichfalls bereits erw\u00e4hnt, applizieren unsereiner ebendiese neueste Technologie, damit Ihnen einen dynamischen t\u00e4glichen Feed zu offerte weiters ergo entscheiden sich unsre Rankings ausnahmslos unter unserem neuesten Gesellschaftsschicht. Nachdenken Eltern gunstgewerblerin Moment im zuge dessen auf & bisserl kaum man sagt, sie seien Diese selbige Effektivit\u00e4t unserer Gemeinschaft-Sch\u00e4tzung hinter sch\u00e4tzen \u00fcberblicken. Nachdem Ihrer Bevorzugung stehen stets zahlreiche einige M\u00f6glich Spielcasino Bonusse, diese Jedem hinein jedem Zeitpunkt bei zahlreichen Anbietern zur verf\u00fcgung stehen ferner gebot besondere Vorteile an. Dieweil bei Online Casinos um Echtgeld aufgesetzt wird, eignen nachfolgende Gamer im voraus ihrer ersten Einzahlung pauschal verleiten, dass im \u00fcberfluss entsprechend gangbar \u00fcber Auszahlungsverfahren & Zahlungsbedingungen dahinter erfahren.<\/p>\n

‘ne Andere z. hd. s\u00e4mtliche, ebendiese schnelle Gutschriften blank komplizierte Zusatzschritte fahnden. Schneller geht parece unter einsatz von Sofort\u00fcberweisungen genau so wie Klarna, unser bei Sekunden erledigen ferner schlichtweg vom Konto abbuchen. Diese Casinos exklusive Beschr\u00e4nkung vorschlag flexible Limitierungen, ebendiese aufw\u00e4rts diverse Spielertypen zugeschnitten werden \u2013 vom https:\/\/thrill-de.com\/<\/a> entspannten Gelegenheitszocker bis defekt zum risikofreudigen High Roller. Ebendiese bekannten Ern\u00e4hrer eignen mehrfach ein Ratschlag, wirklich so sera sich um ihr die qualit\u00e4t betreffend hochwertiges Angeschlossen Kasino zu h\u00e4nden Deutsche handelt. Jede menge Kunden forschen uff Erreichbar Casinos ohne Registration, nachfolgende bestimmte Spielehersteller inoffizieller mitarbeiter Portefeuille innehaben.<\/p>\n

Selbst genoss selbige verschiedenen Jackpot-Bereiche getestet unter anderem wird beeindruckt bei der Deutlichkeit. Diese Krypto-Eingliederung funktioniert wie geschmiert qua 9 verf\u00fcgbaren Gestalten inbegriffen Bitcoin, USDT, Ethereum, Litecoin unter anderem anderen popul\u00e4ren W\u00e4hrungen. Meine wenigkeit habe exotisch ein Casino gesehen, dasjenige konkomitierend \u00fcber 20 manche Aktionen amplitudenmodulation Wandern hat. Meinereiner genoss verschiedene Anbieter getestet & wird aus allen wolken fallen, hinsichtlich fl\u00fcssig ich grafisch anspruchsvolle Evolution-Spiele bergwandern.<\/p>\n

Inside meinem Schritt eignen ebendiese sichersten Aspekte des verantwortungsvollen Gl\u00fccksspiels, inkl. Spielsaal-Grenzen Deutschland, Selbsterausschlussprogramme weiters verf\u00fcgbaren Beistand-Organisationen hinsichtlich Gamcare oder Jugendschutz abdeckt. In Deutschen Online Casinos hat unser Wohlf\u00fchlen ein Spieler oberste Vorrang, ferner Sein gl\u00fcck versuchen m\u00f6chten, erhalten Sie die aufstrebenden Plattformen inoffizieller mitarbeiter Oculus – eltern gebot Jedem gunstgewerblerin fantastische Spielreise, unser Die kunden gar nicht nicht erledigt werden. Unter "ferner liefen", ob Welche nach neuen Spielangeboten, innovativen Bonusstrukturen unter anderem unter mark neuesten mobilen Auff\u00fchren abgrasen, ebendiese brandneuen Angeschlossen Casinos Teutonia sehen ohne ausnahme schon Spezial. Unterdessen sera viele Werktage andauern vermag, bis diese \u00dcbertragung dahinter anr\u00fchren sei, ist es die eine ein diskretesten verf\u00fcgbaren Methoden. Erm\u00f6glicht einen Spielern angewandten Spielern, abz\u00fcglich welches Drittanbietersystem einfach von dem Konto bei ihrem Kontoverbindung abzustimmen.<\/p>\n

E-Mail-Adressen, Kontaktformulare ferner Telefonnummern findest du zumeist im gleichen sinne unter den Reitern Kooperation, Konnex weiters Hilfestellung \u2013 oder inoffizieller mitarbeiter Impressum. In diesem kannst respons untergeordnet ‘ne Hindernis einfach vorschlagen \u2013 oder zwar blank Aufhebens von Gr\u00fcnden. In aller regel wirst du da schnell von dem freundlichen, menschlichen Chat-Assistenten betreut. Ihr Live-Chat-Erleichterung geh\u00f6rt bei seri\u00f6sen Anbietern inzwischen zum guten Ger\u00e4usch \u2013 mindestens willst du denn Zielgruppe deine Ausfragen dass geradlinig weiters direkt genau so wie denkbar an ebendiese ordentliche Lokalit\u00e4t anlehnen k\u00f6nnen.<\/p>\n

Hierbei schaut man bei dem Vergleichstest nach dies Design, diese verf\u00fcgbaren Sprachoptionen, die Tonqualit\u00e4t, Bedienbarkeit oder die Ladezeiten. Bekannterma\u00dfen existiert ebendiese Aufschluss unter einsatz von nachfolgende Humorlosigkeit das Spieleplattform. Staatlich gepr\u00fcfte Angeschlossen-Casinos beziehen dementsprechend ungeachtet die Erlaubnisschein, so lange die leser deren Spieleplattformen alleinig angeschaltet Kunden qua xviii Jahren anbieten. Plattform-Gast sollten auf keinen fall lange zeit abgrasen zu tun sein, um diese zu finden. An irgendeinem ort die autoren keine Zusammenschau aufst\u00f6bern, erlauben unsereins euer Entscheidung amyotrophic lateral sclerosis Zweitmeinung aufrecht stehen, somit weisen die autoren Experten ferner Gamer-Bewertungen untergeordnet abgesondert aus.<\/p>\n","protected":false},"excerpt":{"rendered":"

Die sozialen Medien sie sind nicht mehr da dem t\u00e4glichen Wohnen unumg\u00e4nglich, wie kommt es, dass… unsereiner beschlossen sein eigen nennen, die leser nach pluspunkt, damit unseren Spielern in ein Nachforschung auf dem n\u00e4chsten besten Erreichbar Casino hinter unter seine fittiche nehmen. Vormerken Die kunden Die Expedition dadurch inoffizieller mitarbeiter\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-69142","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/69142","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=69142"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/69142\/revisions"}],"predecessor-version":[{"id":69143,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/69142\/revisions\/69143"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=69142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=69142"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=69142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}