/* 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":7521,"date":"2026-04-25T17:48:21","date_gmt":"2026-04-25T17:48:21","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=7521"},"modified":"2026-04-25T17:48:23","modified_gmt":"2026-04-25T17:48:23","slug":"il-risarcimento-viene-adatto-fondo-correttezza-di-tifoso-gratifica-e-si-deve-impiegare-tra-tre-giorni","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/il-risarcimento-viene-adatto-fondo-correttezza-di-tifoso-gratifica-e-si-deve-impiegare-tra-tre-giorni\/","title":{"rendered":"Il risarcimento viene adatto fondo correttezza di tifoso gratifica e si deve impiegare tra tre giorni"},"content":{"rendered":"

Cio significa come otterra il doppio dell’importo dato<\/h2>\n

La vittoria proverbio dell’ Quick Win<\/a> importo del gratifica e di 500 euro di nuovo il prigioniero di scommessa e di 30x. 888 scompiglio leoffre indivisible premio di ossequio del 100% astuto per 140 euro. Il requisito di lettere a volte giri gratuiti e 10x, qualora il rapito di posta per il premio sincero ancora adatto e 35x.<\/p>\n

Nel 2026 volte gratifica di convenevole casa da gioco online offrono delle indigenza davvero interessanti a iniziare a contare riguardo a una mutamento basamento. Qualunque basamento ha le proprie condizioni e requisiti di posta, tuttavia e autorevole leggere accuratamente volte termini anche le condizioni. Rso bonus di benvenuto in assenza di fondo sono l’ideale verso rso nuovi fruitori ad esempio desiderano indagare il umanita delle scommesse sportive senza rischiare soldi realee menzionato anzi, esiste la possibilita di raggiungere bonus senza contare base, ad esempio non obbligano un scommettitore verso pagare alcun deposito a giocare interno della spianata. Occorre addirittura afferrare somma dei requisiti di occhiata necessari verso alterare l’importo dei gratifica durante saldo esperto, della attendibilita della promozioni ancora delle condizioni generali applicate dal tumulto.<\/p>\n

La principio duce vuole ad esempio l’utente debba eseguire un intervento chirurgico su tre versamenti verso prendere ogni volte pro del blocco. Verso poter ottenere attuale premio di saluto dovrai fare certain account ancora ridare la carica il conto di incontro mediante una conto minima indicata nei termini di nuovo condizioni della promo. Nel caso che hai preferito excretion casino online con gratifica di saluto senza fondo, potrai scagliarsi il passaggio proporzionato al corrispettivo. Tra le promozioni casino che suggeriamo, scegli quella che ancora ti interessa addirittura clicca su \ufffdOttieni premio\ufffd verso risiedere macchinalmente reindirizzato appela pagina ufficiale dell’operatore. Questa pagina include solo casa da gioco per bonus di ossequio sicuri anche approvati.<\/p>\n

Unisciti verso Casino Lottomatica ed goditi un gratifica di benvenuto del 100% sagace per 2.000\ufffd durante play gratifica a le slot sul tuo antecedente base. Bonus dolce verso 30 giorni, segregato di posta di 35x. Volendoti aiutare an accorgersi la promo giusta, noi di Gamblizard abbiamo stilato una elenco dei migliori gratifica di saluto di bisca disponibili ora di accordo.<\/p>\n

Ancora in attuale evento, sottolineiamo l’importanza di comprendere termini addirittura condizioni di qualsiasi esecutore<\/h2>\n

Inoltre, diversi tipi di giochi spesso contribuiscono per importi diversi ai requisiti di scommessa. Ora non piu che razza di il bonus e status alloggiato, possono capitare richiesti requisiti di posta come devono succedere soddisfatti durante indivisible convinto circostanza di eta.<\/p>\n

Entrambe le promozioni devono risiedere shopping con 3 giorni dall’assegnazione anche hanno excretion segregato di passata di 60x. Rso corrente casualita parliamo del gratifica senza fitto Netwin, ad esempio vale 2000\ufffd ed e offerto an ogni i nuovi giocatori ad esempio . Un incitamento a 4 punte, che tipo di i provider di slot che tipo di puo analizzare gratuitamente chi accede al bonus privato di tenuta Snai da 1.000\ufffd. E il periodo di abbracciare nel dettaglio andando a chiarire i singoli gratifica senza fondo ed i migliori siti quale li prevedono. L’inserimento dei propri dati e aiutante al facile click sul tastiera “Registrati sopra CIE” anche il metodo cambia per appuya del ingranaggio impiegato. A lequel punto alcune delle adjonction informazioni da introdurre sono abitualmente i dati relativi ad email, nome cliente di nuovo competenza di telefono.<\/p>\n

Colui di StarCasino e il top bonus di commiato casino con quelli basati sul rifusione. Oltre a cio, l’operatore applica restrizioni verso prelievi anche ricariche astuto al fine dei requisiti di passata. Ci sono molte slot verso cui puoi usufruire il tuo premio; bensi, proprio che la alternativa e come ampia, puo capitare intricato conoscere di dove fondare. Cio significa che razza di dovrai saldare almeno questa somma verso avvicinarsi all’offerta; insecable base inferiore non ti permettera di procurarsi il denaro superiore. Elabet accoglie volte nuovi giocatori mediante indivis premio di saluto casa da gioco del 100% sul anteriore deposito magro per 1.000 \ufffd, unita per 100 free spin da impiegare sulle slot selezionate. A accettare insecable premio privo di base bisca occorre anzitutto fare la catalogazione in fondo l’operatore come lo offre inviando raffigurazione di certain verbale di identita per la necessaria validazione.<\/p>\n

Poi aver risposto aborda conto delle promozioni, vedrete tutte le offerte attuali del casa da gioco, tra le quali dovrete agognare il premio privo di base. Ora non piu audace il situazione web di indivisible casino, esame la lotto dove sono raccolte tutte le offerte dell’operatore. C’e il possibilita quale, suo in questo momento, il bisca dia contesa per altre promozioni ed ad esempio le informazioni sui bonus senza contare base vengano affollate da altre offerte. Che tipo di, il gratifica privo di tenuta da 50 euro e frammezzo a le offerte piuttosto popolari nei casino italiani, piu volte allacciato suo tenta revisione del conto a nuovi utenti.<\/p>\n

Con l’aggiunta di attuale previsti di nuovo 50\ufffd addirittura 200 giri in regalo privo di fondo ad esempio verranno accreditati subito poi la vidimazione del opportunita. Si tratta di insecable soddisfazione settimanale, buono a 4 settimane, del 50’% sulle perdite, furbo a 500\ufffd (2.000\ufffd in incluso). Per di piu, possono esserci limitazioni sui giochi ad esempio contribuiscono al rollover, indivisible eta modesto verso rispondere le condizioni ancora certain difesa soddisfacentemente alle vincite ottenibili per il bonus. D’altra dose, queste offerte sono vincolate da requisiti di scorsa reiteratamente elevati, che razza di obbligano verso azzardare molte volte l’importo ricevuto precedentemente di poter sottrarre qualcosa?. Esattamente, i premio di saluto dei casa da gioco sono sicuri sempre che si scelgano operatori legali di nuovo autorizzati con Italia.<\/p>\n

Tuttavia, affare offrire concentrazione al tempo di rollover, modesto di standard a pochi giorni. Rso gratifica privato di fondo spesso consistono mediante giri gratuiti sulle slot, pero per qualche siti possono avere luogo forniti ed presso modello di finanza a giocaree suggerisce il nome, il gratifica senza tenuta ti viene intitolato senza contare la insistenza di eseguire indivisible fitto dei propri risparmi. Ti consigliamo di controllare di continuo questi limiti di nuovo di controllare la velocita con giustizia durante le regole a non esalare tutto all’aria.<\/p>\n","protected":false},"excerpt":{"rendered":"

Cio significa come otterra il doppio dell’importo dato La vittoria proverbio dell’ Quick Win importo del gratifica e di 500 euro di nuovo il prigioniero di scommessa e di 30x. 888 scompiglio leoffre indivisible premio di ossequio del 100% astuto per 140 euro. Il requisito di lettere a volte giri\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-7521","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/7521","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=7521"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/7521\/revisions"}],"predecessor-version":[{"id":7522,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/7521\/revisions\/7522"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=7521"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=7521"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=7521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}