<div class='ui dimmer modals page' style='display: none;'><div id='helpie-password-modal' class='pauple_helpie ui modal small' style='display: none;'><div class='ui header'><i class='circular lock icon'></i> Password Protected</div><div class='item-content'><br /><label for='password_check'>Enter Password : </label><p><input type='password' id='password_check' name='password_check' class='password' value='' required></p></div><div class='actions'><div class='ui black deny button'>Nope</div><div class='ui positive right labeled icon button'>Yep, that's right!<i class='checkmark icon'></i></div></div><div class='clear'></div></div></div>{"id":913,"date":"2020-04-22T08:27:09","date_gmt":"2020-04-22T08:27:09","guid":{"rendered":"http:\/\/demo.helpiewp.com\/wiki-demo\/?post_type=pauple_helpie&#038;p=913"},"modified":"2024-08-23T07:46:23","modified_gmt":"2024-08-23T07:46:23","slug":"adding-videos-and-file-attachments-in-helpie-wiki","status":"awaiting","type":"pauple_helpie","link":"http:\/\/demo.helpiewp.com\/wiki-demo\/home\/adding-videos-and-file-attachments-in-helpie-wiki\/","title":{"rendered":"Adding&nbsp; and File Attachments in Helpie Wiki"},"content":{"rendered":"<article>\n<div>\n<section class=\"go gp hj hk hl\">\n<div class=\"n p\">\n<div class=\"z ab ac ae af hm ah ai\">\n<p id=\"bbba\" class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\"><\/p>\n<p class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\">the<\/p>\n<table style=\"border-collapse: collapse;width: 100%\" border=\"1\" data-mce-style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 33.3333%\" data-mce-style=\"width: 33.3333%;\"><\/td>\n<td style=\"width: 33.3333%\" data-mce-style=\"width: 33.3333%;\"><\/td>\n<td style=\"width: 33.3333%\" data-mce-style=\"width: 33.3333%;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%\" data-mce-style=\"width: 33.3333%;\"><\/td>\n<td style=\"width: 33.3333%\" data-mce-style=\"width: 33.3333%;\"><\/td>\n<td style=\"width: 33.3333%\" data-mce-style=\"width: 33.3333%;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%\" data-mce-style=\"width: 33.3333%;\"><\/td>\n<td style=\"width: 33.3333%\" data-mce-style=\"width: 33.3333%;\"><\/td>\n<td style=\"width: 33.3333%\" data-mce-style=\"width: 33.3333%;\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\">est <strong>ht&nbsp;<\/strong><\/p>\n<p id=\"93e8\" class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\">In this post, we will build a simple network scanner using Scapy library in Python.<\/p>\n<p id=\"054d\" class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\">if you don\u2019t have&nbsp;<strong class=\"kb kt\">scapy<\/strong>&nbsp;installed , check the&nbsp;<a class=\"ct dv jv jw jx jy\" href=\"https:\/\/scapy.readthedocs.io\/en\/latest\/installation.html\" target=\"_blank\" rel=\"noopener nofollow noreferrer\" data-mce-href=\"https:\/\/scapy.readthedocs.io\/en\/latest\/installation.html\">cap\u2019s official documentation<\/a>&nbsp;for installation.<\/p>\n<p id=\"c850\" class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\">First, we gonna need to import essential methods fr<\/p>\n<pre class=\"iy iz ja jb jc ny mw fh eye-protector-processed\" style=\"background-color: #c1e6c6\" data-mce-style=\"transition: background-color 0.3s ease 0s; background-color: #c1e6c6;\"><span id=\"908f\" class=\"pe pf ap bx pg b co ph pi r pj\" data-selectable-paragraph=\"\"><strong class=\"pg kt\">from<\/strong> scapy.all <strong class=\"pg kt\">import<\/strong> ARP, Ether, srp<\/span><\/pre>\n<p id=\"ddad\" class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\">Second, we gonna need to make an&nbsp;<a class=\"ct dv jv jw jx jy\" href=\"https:\/\/en.wikipedia.org\/wiki\/Address_Resolution_Protocol\" target=\"_blank\" rel=\"noopener nofollow noreferrer\" data-mce-href=\"https:\/\/en.wikipedia.org\/wiki\/Address_Resolution_Protocol\">ARP request<\/a>&nbsp;as shown in the following <a href=\"http:\/\/www.trueffelhamster.de\/wp-content\/uploads\/2020\/12\/lee-campbell-GI6L2pkiZgQ-unsplash-scaled.jpg\" data-mce-href=\"http:\/\/www.trueffelhamster.de\/wp-content\/uploads\/2020\/12\/lee-campbell-GI6L2pkiZgQ-unsplash-scaled.jpg\">image<\/a>:<\/p>\n<p class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\"><\/p>\n<p id=\"b2a1\" class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\">The network scanner will send the ARP request indicating who has some specific IP address, let\u2019s say \u201c192.168.1.1\u201d, cccxzczc the owner of that IP address ( the target ) will automatically respond saying <strong>that<\/strong> he is \u201c192.168.1.1\u201d, with that response, the MAC address will also be included in the packet, this allows us to successfully retrieve all network users\u2019 IP and MAC addresses simultaneously when we send a&nbsp;<a class=\"ct dv jv jw jx jy\" href=\"https:\/\/en.wikipedia.org\/wiki\/Broadcasting_(networking)\" target=\"_blank\" rel=\"noopener nofollow noreferrer\" data-mce-href=\"https:\/\/en.wikipedia.org\/wiki\/Broadcasting_(networking)\">broadcast packet<\/a>&nbsp;( sending a packet to all the devices in the network ).<\/p>\n<p id=\"3cc1\" class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\">The ARP response is demonstrated in the following figure:<\/p>\n<p id=\"632b\" class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\">So, let us craft these packets:<\/p>\n<pre class=\"iy iz ja jb jc ny mw fh eye-protector-processed\" style=\"background-color: #c1e6c6\" data-mce-style=\"transition: background-color 0.3s ease 0s; background-color: #c1e6c6;\"><span id=\"fa4b\" class=\"pe pf ap bx pg b co ph pi r pj\" data-selectable-paragraph=\"\">target_ip = \"192.168.1.1\/24\"<br># IP Address for the destination<br># create ARP packet<br>arp = ARP(pdst=target_ip)<br># create the Ether broadcast packet<br># ff:ff:ff:ff:ff:ff MAC address indicates broadcasting<br>ether = Ether(dst=\"ff:ff:ff:ff:ff:ff\")<br># stack them<br>packet = ether\/arp<\/span><\/pre>\n<p id=\"705c\" class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\"><em class=\"kw\">Note: In case you sr with the notation \u201c\/24\u201d or \u201c\/16\u201d after the IP address, it is basically an IP range here, for example \u201c192.168.1.1\/24\u201d is a range from \u201c192.168.1.0\u201d to \u201c192.168.1.255\u201d, please read more about <\/em><a class=\"ct dv jv jw jx jy\" href=\"https:\/\/en.wikipedia.org\/wiki\/Classless_Inter-Domain_Routing\" target=\"_blank\" rel=\"noopener nofollow noreferrer\" data-mce-href=\"https:\/\/en.wikipedia.org\/wiki\/Classless_Inter-Domain_Routing\"><em class=\"kw\">CIDR Notation<\/em><\/a><\/p>\n<p id=\"214c\" class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\">Now we have created these packets, we need to send them using function which sends and receives packets at layer 2, we set the timeout to 3 so the script won\u2019t get stuck:<\/p>\n<pre class=\"iy iz ja jb jc ny mw fh eye-protector-processed\" style=\"background-color: #c1e6c6\" data-mce-style=\"transition: background-color 0.3s ease 0s; background-color: #c1e6c6;\"><span id=\"12a1\" class=\"pe pf ap bx pg b co ph pi r pj\" data-selectable-paragraph=\"\">result = srp(packet, timeout=3)[0]<\/span><\/pre>\n<p id=\"1854\" class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\"><code>result now is a list of pairs that is of the format , let\u2019s iterate over them:<\/code><\/p>\n<pre class=\"iy iz ja jb jc ny mw fh eye-protector-processed\" style=\"background-color: #c1e6c6\" data-mce-style=\"transition: background-color 0.3s ease 0s; background-color: #c1e6c6;\"><span id=\"6812\" class=\"pe pf ap bx pg b co ph pi r pj\" data-selectable-paragraph=\"\"># a list <strong class=\"pg kt\">of<\/strong> clients, we will fill <strong class=\"pg kt\">this<\/strong> <strong class=\"pg kt\">in<\/strong> the upcoming loop<br>clients = []<br><strong class=\"pg kt\">for<\/strong> sent, received <strong class=\"pg kt\">in<\/strong> result:<br>    # <strong class=\"pg kt\">for<\/strong> each response, append ip and mac address to `clients` list<br>    clients.append({'ip': received.psrc, 'mac': received.hwsrc})<\/span><\/pre>\n<h3 id=\"90e7\" class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\">Now all we need to do is to print this list we have just filled:<\/h3>\n<h5 class=\"iy iz ja jb jc ny mw fh eye-protector-processed\" style=\"background-color: #c1e6c6\" data-mce-style=\"transition: background-color 0.3s ease 0s; background-color: #c1e6c6;\"><span id=\"95dc\" class=\"pe pf ap bx pg b co ph pi r pj\" data-selectable-paragraph=\"\"># print clients<br \/>print(&#8220;Available devices in the network:&#8221;)<br \/>print(&#8220;IP&#8221; + &#8221; &#8220;*18+&#8221;MAC&#8221;)<br \/><strong class=\"pg kt\">for<\/strong> client <strong class=\"pg kt\">in<\/strong> clients:<br \/>print(&#8220;{:16} {}&#8221;.format(client[&#8216;ip&#8217;], client[&#8216;mac&#8217;]))<\/span><\/h5>\n<p id=\"3304\" class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\">Full code:<\/p>\n<pre class=\"iy iz ja jb jc ny mw fh eye-protector-processed\" style=\"background-color: #c1e6c6\" data-mce-style=\"transition: background-color 0.3s ease 0s; background-color: #c1e6c6;\"><span id=\"6a72\" class=\"pe pf ap bx pg b co ph pi r pj\" data-selectable-paragraph=\"\"><\/span>Here is a screenshot of my result in my personal network:<br><br><br><br><br><\/pre>\n<p class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\"><\/p>\n<pre class=\"language-python\"><span class=\"token keyword\">from<\/span> scapy<span class=\"token punctuation\">.<\/span>all <span class=\"token keyword\">import<\/span> ARP<span class=\"token punctuation\">,<\/span> Ether<span class=\"token punctuation\">,<\/span> srp\ntarget_ip <span class=\"token operator\">=<\/span> <span class=\"token string\">\"192.168.1.1\/24\"<\/span>\n<span class=\"token comment\"># IP Address for the destination<\/span>\n<span class=\"token comment\"># create ARP packet<\/span>\narp <span class=\"token operator\">=<\/span> ARP<span class=\"token punctuation\">(<\/span>pdst<span class=\"token operator\">=<\/span>target_ip<span class=\"token punctuation\">)<\/span>\n<span class=\"token comment\"># create the Ether broadcast packet<\/span>\n<span class=\"token comment\"># ff:ff:ff:ff:ff:ff MAC address indicates broadcasting<\/span>\nether <span class=\"token operator\">=<\/span> Ether<span class=\"token punctuation\">(<\/span>dst<span class=\"token operator\">=<\/span><span class=\"token string\">\"ff:ff:ff:ff:ff:ff\"<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token comment\"># stack them<\/span>\npacket <span class=\"token operator\">=<\/span> ether<span class=\"token operator\">\/<\/span>arp\nresult <span class=\"token operator\">=<\/span> srp<span class=\"token punctuation\">(<\/span>packet<span class=\"token punctuation\">,<\/span> timeout<span class=\"token operator\">=<\/span><span class=\"token number\">3<\/span><span class=\"token punctuation\">,<\/span> verbose<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span>\n<span class=\"token comment\"># a list of clients, we will fill this in the upcoming loop<\/span>\nclients <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span>\n<span class=\"token keyword\">for<\/span> sent<span class=\"token punctuation\">,<\/span> received <span class=\"token keyword\">in<\/span> result<span class=\"token punctuation\">:<\/span>\n    <span class=\"token comment\"># for each response, append ip and mac address to `clients` list<\/span>\n    clients<span class=\"token punctuation\">.<\/span>append<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">'ip'<\/span><span class=\"token punctuation\">:<\/span> received<span class=\"token punctuation\">.<\/span>psrc<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'mac'<\/span><span class=\"token punctuation\">:<\/span> received<span class=\"token punctuation\">.<\/span>hwsrc<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token comment\"># print clients<\/span>\n<span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Available devices in the network:\"<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"IP\"<\/span> <span class=\"token operator\">+<\/span> <span class=\"token string\">\" \"<\/span><span class=\"token operator\">*<\/span><span class=\"token number\">18<\/span><span class=\"token operator\">+<\/span><span class=\"token string\">\"MAC\"<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token keyword\">for<\/span> client <span class=\"token keyword\">in<\/span> clients<span class=\"token punctuation\">:<\/span>\n    <span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"{:16}    {}\"<\/span><span class=\"token punctuation\">.<\/span>format<span class=\"token punctuation\">(<\/span>client<span class=\"token punctuation\">[<\/span><span class=\"token string\">'ip'<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> client<span class=\"token punctuation\">[<\/span><span class=\"token string\">'mac'<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><\/pre>\n<p id=\"e6e3\" class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\">Alright, we are done with this tutorial, see how you can extend this and make it more convenient to replace other scanning tools. H\u00c4\u00c4\u00c4\u00c4<\/p>\n<\/div>\n<\/div>\n<\/section>\n<hr class=\"kz fo la lb cl fw fr lc ld le lf lg\">\n<section class=\"go gp hj hk hl\">\n<div class=\"n p\">\n<div class=\"z ab ac ae af hm ah ai\">\n<p id=\"d65e\" class=\"jz kn ap bx kb b kc kd ko ke kf kp kg kh kq ki kj kr kk kl ks km go\" data-selectable-paragraph=\"\"><em class=\"kw\">Originally published at&nbsp;<\/em><a class=\"ct dv jv jw jx jy\" href=\"https:\/\/pgsyr.de\/stories\/make-a-network-scanner-using-scapy-library-in-python\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\" data-mce-href=\"https:\/\/pgsyr.de\/stories\/make-a-network-scanner-using-scapy-library-in-python\/\"><em class=\"kw\">https:\/\/pgsyr.de<\/em><\/a><em class=\"kw\">&nbsp;on March 13, 2020.<\/em><\/p>\n<\/div>\n<\/div>\n<\/section>\n<\/div>\n<\/article>\n<div class=\"nw hi lh gg ai li lj pk\" data-test-id=\"post-sidebar\">\n<div class=\"n p\">\n<div class=\"z ab ac ae af ag ah ai\">\n<div class=\"lp n lq\">\n<div class=\"qn\">\n<div class=\"lr ls lt n\">\n<div class=\"n o\">\n<div class=\"r cq lu lv lw lx ly\">\n<div class=\"\">\n<div>\n<div class=\"ck\" role=\"tooltip\" aria-hidden=\"true\" aria-describedby=\"26\" aria-labelledby=\"26\">\n<div class=\"bl lz ma mb mc md me mf q mg mh mi\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"r mj mk ml mm mn mo mp\">\n<div class=\"mq\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div>\n<div class=\"mr jd n lq p\">\n<div class=\"n p\">\n<div class=\"z ab ac ae af hm ah ai\">\n<div class=\"mz n eu y\">\n<div class=\"n pl\">\n<div class=\"r po pp pq pr ps\"><\/div>\n<\/div>\n<div class=\"n o\">\n<div class=\"iv r bv\"><\/div>\n<div class=\"iv r bv\"><\/div>\n<div class=\"iv r bv\"><\/div>\n<div class=\"na r bv\">\n<div>\n<div class=\"ft\">\n<div>\n<div class=\"ck\" role=\"tooltip\" aria-hidden=\"true\" aria-describedby=\"29\" aria-labelledby=\"29\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"ck\" aria-hidden=\"true\">\n<div class=\"r bv\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"nb nc nd ms r pt y\">\n<div class=\"r g\">\n<div class=\"nf ng r cq\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>the est ht&nbsp; In this post, we will build a simple network scanner using Scapy library in Python. if you don\u2019t have&nbsp;scapy&nbsp;installed , check the&nbsp;cap\u2019s official documentation&nbsp;for installation. First, we gonna need to import essential methods fr from scapy.all import ARP, Ether, srp Second, we gonna need to make an&nbsp;ARP request&nbsp;as shown in the following &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"http:\/\/demo.helpiewp.com\/wiki-demo\/home\/adding-videos-and-file-attachments-in-helpie-wiki\/\"> <span class=\"screen-reader-text\">Adding&nbsp; and File Attachments in Helpie Wiki<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":63,"featured_media":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":""},"helpdesk_category":[2],"helpie_tag":[],"helpie_add_tag":[],"helpie_up_tag":[],"_links":{"self":[{"href":"http:\/\/demo.helpiewp.com\/wiki-demo\/wp-json\/wp\/v2\/pauple_helpie\/913"}],"collection":[{"href":"http:\/\/demo.helpiewp.com\/wiki-demo\/wp-json\/wp\/v2\/pauple_helpie"}],"about":[{"href":"http:\/\/demo.helpiewp.com\/wiki-demo\/wp-json\/wp\/v2\/types\/pauple_helpie"}],"author":[{"embeddable":true,"href":"http:\/\/demo.helpiewp.com\/wiki-demo\/wp-json\/wp\/v2\/users\/63"}],"replies":[{"embeddable":true,"href":"http:\/\/demo.helpiewp.com\/wiki-demo\/wp-json\/wp\/v2\/comments?post=913"}],"version-history":[{"count":20,"href":"http:\/\/demo.helpiewp.com\/wiki-demo\/wp-json\/wp\/v2\/pauple_helpie\/913\/revisions"}],"predecessor-version":[{"id":2255,"href":"http:\/\/demo.helpiewp.com\/wiki-demo\/wp-json\/wp\/v2\/pauple_helpie\/913\/revisions\/2255"}],"wp:attachment":[{"href":"http:\/\/demo.helpiewp.com\/wiki-demo\/wp-json\/wp\/v2\/media?parent=913"}],"wp:term":[{"taxonomy":"helpdesk_category","embeddable":true,"href":"http:\/\/demo.helpiewp.com\/wiki-demo\/wp-json\/wp\/v2\/helpdesk_category?post=913"},{"taxonomy":"helpie_tag","embeddable":true,"href":"http:\/\/demo.helpiewp.com\/wiki-demo\/wp-json\/wp\/v2\/helpie_tag?post=913"},{"taxonomy":"helpie_add_tag","embeddable":true,"href":"http:\/\/demo.helpiewp.com\/wiki-demo\/wp-json\/wp\/v2\/helpie_add_tag?post=913"},{"taxonomy":"helpie_up_tag","embeddable":true,"href":"http:\/\/demo.helpiewp.com\/wiki-demo\/wp-json\/wp\/v2\/helpie_up_tag?post=913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}