/* 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":62474,"date":"2026-05-21T14:06:33","date_gmt":"2026-05-21T14:06:33","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=62474"},"modified":"2026-05-21T14:06:34","modified_gmt":"2026-05-21T14:06:34","slug":"hallar-un-bono-sobre-casino-carente-deposito-no-acontece-los-dias","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/hallar-un-bono-sobre-casino-carente-deposito-no-acontece-los-dias\/","title":{"rendered":"Hallar un bono sobre casino carente deposito no acontece los dias"},"content":{"rendered":"

Ciertos operadores ofrecen verificacion expres sobre 2-4 ratos en caso de que subes documentos de elevada clase<\/h2>\n

Atender, entender desplazandolo hacia el pelo acrecentar los palabras asi\ufffd como esencia seri\ufffda significativo al momento de Book of the Fallen<\/a> asentir algun bono de casino desprovisto tanque. La buena noticia de oriente bono carente deposito sobre casino en Portugal es que el competidor goza de 30 dias para usarlo asi\ufffd como completar las instalaciones sobre apuestas. En caso de que eres participante presente en Gran Madrid, se toma de el bono carente tanque de treinta\ufffd, llevando cual podrias obtener hasta 10 \ufffd sobre tiradas sin cargo a los slots o en la barra en bono sobre casino; tu te dirijes.<\/p>\n

Los bonos carente deposito suelen permanecer limitados a ciertos juegos, sobre todo a las tragaperras de mas usadas. Los bonos sin tanque seguiran existiendo, aunque siempre estaran sobra enfrentados en compania de un modelo sobre esparcimiento asentado y corroborado. Los bonos carente tanque acostumbran a llegar en compania de campos sobre postura disenados debido al casino. Sobre Espana, practicamente las parejas bonos desprovisto tanque incluyen instalaciones sobre envite desplazandolo hacia el pelo limites maximos de retirada.<\/p>\n

Las bonos desprovisto tanque resultan la util herramienta para percibir un casino online desprovisto riesgo<\/h2>\n

Existen puntos esencial que recuerda con el fin de estudiar los bonos desprovisto deposito en los casinos de Mexico. Del realizar nuestro estudio, consideramos varios aspectos, como una variacii?n de bonos, la zapatilla y el pie altruismo, los campos sobre apuestas desplazandolo hacia el pelo los plazos de validez. Te explicamos para lo que estos casinos se podri\ufffdan mover destacan a los bonos falto deposito preferiblemente valorados. Enteran los casinos a los bonos sin deposito de mayor generosos de Mexico.<\/p>\n

Las casinos que usan bonos de admision sin cargo falto deposito acerca de Ciertas zonas de espana os permiten probar slots o bien juegos de caja de ahorros sin ningun la mas superior inicial. El bono falto tanque desprovisto instalaciones de puesta hay, pero seri\ufffda excesivamente extrano en el mundo de internet castellano regulado. Antes de elegir un bono sobre casino desprovisto tanque concierna asesorarse de la manera sobre como levante provee la publicidad. Todo reglamento de bono de casino incluyo seguidor a varios juegos sobre casino, pertenecientes a la genero sobre acotacion de \ufffdJuegos Permitidos\ufffd de su promocion.<\/p>\n

Es necesario visto situaciones adonde jugadores cumplen el condicion sobre envite sin embargo no podran eximir bien limites maximos sobre beneficio escaso brillosos. \ufffd – aplicamos algun desarrollo sobre indice minucioso desplazandolo hacia el pelo basado sobre criterios reales de el sector espanol. De replicar an una pregunta cual bastantes jugadores realizan – \ufffd?se puede jubilar dinero real con manga larga algun bono carente deposito en Espana? Luz polarizada lidera joviales \ufffd100 desplazandolo hacia el pelo 5 golpeas, buscando percibir $ 50+ casinos acerca de , hablando sobre sus bonos falto tanque desplazandolo hacia el pelo caracteristicas.<\/p>\n

Si, si cumples los requisitos sobre puesta asi\ufffd como respetas el limite maximum sobre retirada. El estado determinan en caso de que algun bono falto tanque es verdaderamente utilizable en el caso de que nos lo olvidemos unicamente una estrategia sobre captacion.<\/p>\n

Aunque ademas hay bonos falto deposito de jugadores disponibles igual que las cual tenemos acerca de las programacion VIP o en la barra acerca de muchas promo especial. Las diferentes tipos de bonos desprovisto deposito otorgan automaticamente un bono a los como novedad jugadores al registrarse por consiguiente resultan incentivo de el casino con el fin de captar como novedad usuarios. En general, un monton de promociones de casino carente tanque se va a apoyar sobre el silli\ufffdn dirigen a los recientes jugadores. Conoce una lista sobre casinos que tienen bonos de recibo falto depositar y no ha transpirado solo para hacer un asignacion alrededor del casino. Nuestro bono desprovisto deposito es una proposicion cual el casino ofrece con el fin de apostar por registrarse dentro del casino asi\ufffd como falto elaborar cualquier deposito.<\/p>\n

Nunca directamente, suin eximir las ganancias obtenidas que usan un bono sobre recibo carente tanque debemos que cumplas con los campos de apuesta (rollover) en la numero de tiempo estipulado. Con el fin de producir el ranking del preferible bono de admision falto tanque acerca de Argentina es necesario durado juicio de legalidad, caracteristicas asequibles asi\ufffd como transparentes, prerrogativas de su propaganda y soltura sobre uso. Las bonos carente deposito se encuentran tipos a requisitos sobre puesta, limites de retirada y no ha transpirado otras condiciones cual podrian evitar obtener ingresos reales. Acerca de este ranking analizamos los mejores bonos desprovisto tanque a tu disposicion sobre Ciertas zonas de espana, comparando promociones y requisitos sobre envite.<\/p>\n

Los mas grandes bonos falto deposito son aquellos que disfrutas usar, no algunos que te confeccionan juguetear compulsivamente a lo largo de 7 dias. Las casinos en compania de recursos gratis desprovisto tanque ofrecen modo legitima sobre percibir plataformas desprovisto peligro financista. Referente a nuestras competiciones con el pasar del tiempo casinos en internet en compania de bono falto deposito en Portugal, identificamos moldes sobre fallos cual invalidan promociones.<\/p>\n

El analisis encontro que el 75% de los bonos sin deposito poseen requisitos dentro de 30x desplazandolo hacia el pelo 40x. Con el fin de bonos falto deposito, tendras que verificarte sin cobrar cualquier margen. Nuestro transcurso con el fin de conseguir tu bono desprovisto tanque sobre casinos online espanoles continua un viaje normal. Nuestro bono sin tanque con el fin de tragaperras en Espana suele activarse sobre slots usadas como Book of Dead indumentarias Starburst.<\/p>\n

A veces, las bonos sin tanque estan disponibles unico durante algun estacion muy particular, igual que el tiro sobre cualquier casino o bien la promocion justo ligada en un acontecimiento concreto. Algun bono falto tanque seri\ufffda un tipo sobre bono sobre recibimiento cual deben varios casinos en internet a las nuevos gente y cual deja juguetear carente realizar cualquier elevada de cesion. Nuestro costo extremo de su postura que contribuye a las instalaciones sobre apuesta que usan un bono de admision dinamico es sobre dos\ufffd (dos)demostracion a como es promocion hemos repleto acerca de tu perfil de forma adecuada y no ha transpirado respetar los campos de postura con el fin de solicitar tus ganancias. Variable su bono de casino sin tanque buscando registrarte asi\ufffd como comprobar tu cuenta. Reclama nuestro preferiblemente bono sobre casino desprovisto tanque online asi\ufffd como alcanza recursos anadida indumentarias tiradas regalado unicamente por registrarte.<\/p>\n","protected":false},"excerpt":{"rendered":"

Ciertos operadores ofrecen verificacion expres sobre 2-4 ratos en caso de que subes documentos de elevada clase Atender, entender desplazandolo hacia el pelo acrecentar los palabras asi\ufffd como esencia seri\ufffda significativo al momento de Book of the Fallen asentir algun bono de casino desprovisto tanque. La buena noticia de oriente\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-62474","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62474","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=62474"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62474\/revisions"}],"predecessor-version":[{"id":62475,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/62474\/revisions\/62475"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=62474"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=62474"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=62474"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}