RaspberryPITVHDMI (346565B)
1 <!DOCTYPE html> 2 <html class="desktop-view not-mobile-device text-size-normal anon no-touch discourse-no-touch" lang="en"><head> 3 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 4 <meta charset="utf-8"> 5 <title>Controlling Raspberry PI with TV Remote, using HDMI CEC - Tips, Tricks and Tutorials / Raspberry Pi - Ubuntu MATE Community</title> 6 <meta name="description" content="Hello everyone. 7 8 Description: I wrote a script that connects to HDMI CEC ( cec-client needed ) and listens for TV Remote key presses. Based on the keys pressed / released (or auto-released; holding down certain keys for&hellip;"> 9 <meta name="discourse_theme_ids" content="7"> 10 <meta name="discourse_current_homepage" content="categories"> 11 <meta name="generator" content="Discourse 2.3.1 - https://github.com/discourse/discourse version 5b91182985d70dea991ef82eeae120cac0bef935"> 12 <link rel="icon" type="image/png" href="https://ubuntu-mate.community/uploads/default/optimized/1X/e75ff172b5be659c48d264a448a3707f524f48f9_2_32x32.ico"> 13 <link rel="apple-touch-icon" type="image/png" href="https://ubuntu-mate.community/uploads/default/optimized/2X/1/14ea399f69eb3d52e32df958dbc6b6ed0d691eea_2_180x180.png"> 14 <meta name="theme-color" content="#87a556"> 15 <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=yes, viewport-fit=cover"> 16 <link rel="canonical" href="https://ubuntu-mate.community/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250"> 17 <script type="application/ld+json">{"@context":"http://schema.org","@type":"WebSite","url":"https://ubuntu-mate.community","potentialAction":{"@type":"SearchAction","target":"https://ubuntu-mate.community/search?q={search_term_string}","query-input":"required name=search_term_string"}}</script> 18 <link rel="search" type="application/opensearchdescription+xml" href="https://ubuntu-mate.community/opensearch.xml" title="Ubuntu MATE Community Search"> 19 <meta name="fragment" content="!"> 20 <link rel="preload" href="RaspberryPITVHDMI_archivos/en-a2096d7903ea9680a0ddd80943fb0530045088c839730119480af4c3d8.js" as="script"> 21 <script src="RaspberryPITVHDMI_archivos/en-a2096d7903ea9680a0ddd80943fb0530045088c839730119480af4c3d8.js"></script> 22 <link rel="preload" href="RaspberryPITVHDMI_archivos/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df.js" as="script"> 23 <script src="RaspberryPITVHDMI_archivos/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df.js"></script> 24 <link rel="preload" href="RaspberryPITVHDMI_archivos/preload-store-081120a9f8cb0871483b66a95e534ce8e81f97d19c8cef9.js" as="script"> 25 <script src="RaspberryPITVHDMI_archivos/preload-store-081120a9f8cb0871483b66a95e534ce8e81f97d19c8cef9.js"></script> 26 <link rel="preload" href="RaspberryPITVHDMI_archivos/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c.js" as="script"> 27 <script src="RaspberryPITVHDMI_archivos/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c.js"></script> 28 <link rel="preload" href="RaspberryPITVHDMI_archivos/pretty-text-bundle-b33ff981ecc4ae5cc254a569e9bde34f68337b177e.js" as="script"> 29 <script src="RaspberryPITVHDMI_archivos/pretty-text-bundle-b33ff981ecc4ae5cc254a569e9bde34f68337b177e.js"></script> 30 <link rel="preload" href="RaspberryPITVHDMI_archivos/application-e820091e1a171524cdf20a1a5bea75eb18455293e45dc37f4.js" as="script"> 31 <script src="RaspberryPITVHDMI_archivos/application-e820091e1a171524cdf20a1a5bea75eb18455293e45dc37f4.js"></script> 32 <link rel="preload" href="RaspberryPITVHDMI_archivos/plugin-d3f2aabe1f4c66e75c9ad0d17efb33e5633e91ae4b556c155058c9.js" as="script"> 33 <script src="RaspberryPITVHDMI_archivos/plugin-d3f2aabe1f4c66e75c9ad0d17efb33e5633e91ae4b556c155058c9.js"></script> 34 <link rel="preload" href="RaspberryPITVHDMI_archivos/plugin-third-party-01ba4719c80b6fe911b091a7c05124b64eeece964e.js" as="script"> 35 <script src="RaspberryPITVHDMI_archivos/plugin-third-party-01ba4719c80b6fe911b091a7c05124b64eeece964e.js"></script> 36 <link href="RaspberryPITVHDMI_archivos/css.css" rel="stylesheet" type="text/css"> 37 <link rel="manifest" href="https://ubuntu-mate.community/manifest.webmanifest" crossorigin="use-credentials"> 38 39 <link href="RaspberryPITVHDMI_archivos/desktop_1_581866bb4050fdf1451a3946f2c02310c650f57b.css" media="all" rel="stylesheet" data-target="desktop" data-theme-id="7"> 40 <link href="RaspberryPITVHDMI_archivos/desktop_theme_7_c7a073874a27ebdc0acb6535652305a0edb8a061.css" media="all" rel="stylesheet" data-target="desktop_theme" data-theme-id="7"> 41 <link rel="alternate" type="application/rss+xml" title="RSS feed of 'Controlling Raspberry PI with TV Remote, using HDMI CEC'" href="https://ubuntu-mate.community/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250.rss"> 42 <meta property="og:site_name" content="Ubuntu MATE Community"> 43 <meta name="twitter:card" content="summary"> 44 <meta name="twitter:image" content="https://ubuntu-mate.community/uploads/default/optimized/2X/e/e00e46bb720d634bb6a2ba84cad84c05078fd391_2_401x500.png"> 45 <meta property="og:image" content="https://ubuntu-mate.community/uploads/default/optimized/2X/e/e00e46bb720d634bb6a2ba84cad84c05078fd391_2_401x500.png"> 46 <meta property="og:url" content="https://ubuntu-mate.community/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250"> 47 <meta name="twitter:url" content="https://ubuntu-mate.community/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250"> 48 <meta property="og:title" content="Controlling Raspberry PI with TV Remote, using HDMI CEC"> 49 <meta name="twitter:title" content="Controlling Raspberry PI with TV Remote, using HDMI CEC"> 50 <meta property="og:description" content="Hello everyone. Description: I wrote a script that connects to HDMI CEC ( cec-client needed ) and listens for TV Remote key presses. Based on the keys pressed / released (or auto-released; holding down certain keys for too long makes them auto-release) different actions are executed. Some examples: write letters and numbers using 0-9 keys (simulating 3x4 keypad phones - key "2" switches between a-b-c-2, key 9 switches between w-x-y-z-9) ( xdotool needed ) move mouse cursor using up/down/left..."> 51 <meta name="twitter:description" content="Hello everyone. Description: I wrote a script that connects to HDMI CEC ( cec-client needed ) and listens for TV Remote key presses. Based on the keys pressed / released (or auto-released; holding down certain keys for too long makes them auto-release) different actions are executed. Some examples: write letters and numbers using 0-9 keys (simulating 3x4 keypad phones - key "2" switches between a-b-c-2, key 9 switches between w-x-y-z-9) ( xdotool needed ) move mouse cursor using up/down/left..."> 52 <meta name="twitter:label1" value="Reading time"> 53 <meta name="twitter:data1" value="6 mins 🕑"> 54 <meta name="twitter:label2" value="Likes"> 55 <meta name="twitter:data2" value="3 ❤"> 56 <meta property="article:published_time" content="2016-08-11T01:40:52+00:00"> 57 <meta property="og:ignore_canonical" content="true"> 58 <script type="application/ld+json">{"@context":"http://schema.org","@type":"QAPage","name":"Controlling Raspberry PI with TV Remote, using HDMI CEC","mainEntity":{"@type":"Question","name":"Controlling Raspberry PI with TV Remote, using HDMI CEC","text":"Hello everyone. \nDescription: \nI wrote a script that connects to HDMI CEC ( cec-client needed ) and listens for TV Remote key presses. Based on the keys pressed / released (or auto-released; holding down certain keys for too long makes them auto-release) different actions are executed. Some examples…","upvoteCount":3,"answerCount":0,"dateCreated":"2016-03-10T10:14:41.253Z","author":{"@type":"Person","name":"Simon Murgelj"}}}</script> 59 <meta id="data-discourse-setup" data-base-url="https://ubuntu-mate.community" data-base-uri="" data-environment="production" data-letter-avatar-version="5_7a34611334577356ea98a4f98ad61bf8" data-markdown-it-url="/assets/markdown-it-bundle-f79d9db8b5c7812b862fd0c3379d87d67d6b4ce5cda50a66cb1a50482793ce50.js" data-service-worker-url="service-worker-83e47e9f07bb77a5c8146b30ee8c7761c0ce036d70528cd57da81981879b70f7.js" data-default-locale="en" data-asset-version="19904fa7ecf0ca6bfb3659c05e68538b" data-disable-custom-css="false" data-highlight-js-path="/highlight-js/ubuntu-mate.community/bd34dee19ab76bc4f22cba22a34edbdab790a807.js" data-svg-sprite-path="/svg-sprite/ubuntu-mate.community/svg-7-a49ad7255a63371eebe293cc86311573fb927cfb.js"> 60 <script src="RaspberryPITVHDMI_archivos/svg-7-a49ad7255a63371eebe293cc86311573fb927cfb.js"></script><style id="image-sizing-hack">#reply-control .d-editor-preview img:not(.thumbnail), .cooked img:not(.thumbnail) {max-width:690px;max-height:500px;}</style><script src="RaspberryPITVHDMI_archivos/jquery.js"></script><script src="RaspberryPITVHDMI_archivos/bd34dee19ab76bc4f22cba22a34edbdab790a807.js"></script></head> 61 <body class="archetype-regular category-tips-tricks-and-tutorials-raspberry-pi-tips docked"> 62 63 <div id="top-navbar"> 64 <div id="top-navbar-links" class="wrap"> 65 <a href="https://ubuntu-mate.org/" title="Ubuntu MATE Website">Website</a> 66 <a href="https://ubuntu-mate.org/download" title="Download Ubuntu MATE">Download</a> 67 <a href="https://bugs.launchpad.net/ubuntu-mate" title="Report bugs via Launchpad">Bug Tracker</a> 68 <a href="https://ubuntu-mate.org/irc/" title="Chat with other Ubuntu MATE users">IRC</a> 69 <a href="https://ubuntu-mate.boutique/" title="Buy mechandise and other branded items">Shop</a> 70 <a href="https://ubuntu-mate.community/wiki" title="View the index of wiki topics and guides">Wiki</a> 71 <a href="https://ubuntu-mate.org/donate/" title="Contribute back and support the project financially">Donate</a> 72 </div> 73 </div> 74 <section id="main" class="ember-application"> 75 <div class="ember-view" id="ember4"><span id="ember5" class="ember-view"><!----></span> 76 <div id="ember6" class="ember-view"><header class="d-header clearfix" style=""><div class="wrap"><div class="contents clearfix"> 77 <div class="title"><a href="https://ubuntu-mate.community/" data-auto-route="true"><img src="RaspberryPITVHDMI_archivos/0c41b826d1c81f42e55160501605d3c96ded0ae1.png" alt="Ubuntu MATE Community" id="site-logo" class="logo-small" width="36"></a></div> 78 <div class="extra-info-wrapper"><div class="extra-info two-rows"><div class="title-wrapper"><h1><div class="topic-statuses"></div><a class="widget-link topic-link" href="https://ubuntu-mate.community/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250" title="" data-topic-id="4250"><span>Controlling Raspberry PI with TV Remote, using HDMI CEC</span></a></h1><div class="categories-wrapper"><a class="badge-wrapper bullet" href="https://ubuntu-mate.community/c/tips-tricks-and-tutorials"><span class="badge-category-bg" style="background-color: #A6748F;"></span><span data-drop-close="true" class="badge-category clear-badge" title="If you have a tutorial, how to or other useful tips to share about Ubuntu MATE, then fit them in to one of these subcategories:"><span class="category-name">Tips, Tricks and Tutorials</span></span></a><a class="badge-wrapper bullet" href="https://ubuntu-mate.community/c/tips-tricks-and-tutorials/raspberry-pi-tips"><span class="badge-category-parent-bg" style="background-color: #A6748F;"></span><span class="badge-category-bg" style="background-color: #C6043C;"></span><span data-drop-close="true" class="badge-category clear-badge" title="Topics sharing tips and tricks specifically for the Raspberry Pi port."><span class="category-name">Raspberry Pi</span></span></a></div></div></div></div> 79 <div class="panel clearfix"><span class="header-buttons"><button class="widget-button btn btn-primary btn-small login-button btn-icon-text"><svg class="fa d-icon d-icon-user svg-icon svg-node" aria-hidden="true"><use xlink:href="#user"></use></svg><span class="d-button-label">Log In</span></button></span><ul role="navigation" class="icons d-header-icons"><li class="header-dropdown-toggle"><a href="https://ubuntu-mate.community/search" data-auto-route="true" title="search topics, posts, users, or categories" aria-label="search topics, posts, users, or categories" id="search-button" class="icon btn-flat"><svg class="fa d-icon d-icon-search svg-icon svg-node" aria-hidden="true"><use xlink:href="#search"></use></svg></a></li><li class="header-dropdown-toggle"><a href="" data-auto-route="true" title="go to another topic list or category" aria-label="go to another topic list or category" id="toggle-hamburger-menu" class="icon btn-flat"><svg class="fa d-icon d-icon-bars svg-icon svg-node" aria-hidden="true"><use xlink:href="#bars"></use></svg></a></li></ul></div> 80 </div></div></header></div> 81 82 <span id="ember7" class="ember-view"><!----></span> 83 84 <div id="main-outlet" class="wrap"> 85 <span id="ember8" class="ember-view"><!----></span> 86 <div class="container"> 87 <div id="ember9" class="ember-view"></div> 88 <div id="ember10" class="controls ember-view"><!----></div> 89 <div id="ember11" class="ember-view"></div> 90 <div id="ember12" class="hidden create-topics-notice ember-view"><!----></div> 91 <span id="ember13" class="ember-view"><!----></span> 92 </div> 93 <div id="ember14" class="regular category-tips-tricks-and-tutorials-raspberry-pi-tips ember-view"> <div id="ember15" class="ember-view"></div> 94 <div class="container"> 95 <div id="ember16" class="ember-view"><!----></div> 96 </div> 97 98 <!----> 99 <span id="ember17" class="ember-view"><!----></span> 100 101 <div id="topic-title" class="ember-view"><div class="container"> 102 <div class="title-wrapper"> 103 <h1 data-topic-id="4250"> 104 <a> 105 <span class="private-message-glyph"><svg class="fa d-icon d-icon-envelope svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use xlink:href="#envelope"></use></svg></span> 106 </a> 107 108 <div id="ember18" class="topic-statuses ember-view"></div> 109 <a href="https://ubuntu-mate.community/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250" class="fancy-title" data-ember-action="" data-ember-action-19="19"> 110 Controlling Raspberry PI with TV Remote, using HDMI CEC 111 </a> 112 113 <!----> </h1> 114 115 <div id="ember20" class="topic-category ember-view"> <a class="badge-wrapper bullet" href="https://ubuntu-mate.community/c/tips-tricks-and-tutorials"><span class="badge-category-bg" style="background-color: #A6748F;"></span><span data-drop-close="true" class="badge-category clear-badge" title="If you have a tutorial, how to or other useful tips to share about Ubuntu MATE, then fit them in to one of these subcategories:"><span class="category-name">Tips, Tricks and Tutorials</span></span></a> 116 <a class="badge-wrapper bullet" href="https://ubuntu-mate.community/c/tips-tricks-and-tutorials/raspberry-pi-tips"><span class="badge-category-bg" style="background-color: #C6043C;"></span><span data-drop-close="true" class="badge-category clear-badge" title="Topics sharing tips and tricks specifically for the Raspberry Pi port."><span class="category-name">Raspberry Pi</span></span></a> 117 <div class="topic-header-extra"> 118 <div class="list-tags"> 119 <!----> 120 </div> 121 <!----> 122 </div> 123 124 <span id="ember21" class="ember-view"><!----></span> 125 </div> 126 127 </div> 128 <span id="ember22" class="ember-view"><!----></span> 129 </div> 130 </div> 131 132 <div class="container posts"> 133 <div class="selected-posts hidden"> 134 <p><span id="ember23" class="ember-view">You have selected <b>0</b> posts.</span></p> 135 136 <p><a class="select-all" href="" data-ember-action="" data-ember-action-24="24">select all</a></p> 137 138 <!----> 139 <!----> 140 <!----> 141 <!----> 142 <!----> 143 <p class="cancel"><a href="" data-ember-action="" data-ember-action-25="25">cancel selecting</a></p> 144 145 </div> 146 147 <div id="ember26" class="ember-view"><!----> 148 <div id="ember66" class="ember-view"><div class="timeline-container" style="top: 90px"><div class="topic-timeline"><div class="timeline-controls"></div><div class="timeline-scrollarea-wrapper"><div class="timeline-date-wrapper"><a class="widget-link start-date" title="Mar 2016"><span class="d-label">Mar 2016</span></a></div><div style="height: 300px" class="timeline-scrollarea"><div style="height: 210.6779814401748px" class="timeline-padding"></div><div style="height: 50px" class="timeline-scroller"><div class="timeline-handle"></div><div class="timeline-scroller-content"><div class="timeline-replies">4 / 4</div><div class="timeline-ago">Apr 2018</div></div></div><div style="height: 39.32201855982521px" class="timeline-padding"></div></div><div class="timeline-date-wrapper"><a class="widget-link now-date" title="Apr 2018"><span class="d-label">Apr 2018</span></a></div></div><div class="timeline-footer-controls"></div></div></div></div> 149 150 </div> 151 <div class="row"> 152 <section class="topic-area" id="topic" data-topic-id="4250"> 153 154 <div class="posts-wrapper"> 155 <div id="ember27" class="loading-container ember-view"> 156 </div> 157 158 <span id="ember28" class="ember-view"><!----></span> 159 160 <div id="ember29" class="ember-view"><div class="post-stream"><div class="topic-post clearfix topic-owner wiki regular"><article id="post_1" data-post-id="15031" data-topic-id="4250" data-user-id="2055" class="boxed onscreen-post" style=""><a href="" class="tabLoc"></a><div class="row"><div class="topic-avatar"><a class="trigger-user-card main-avatar" href="https://ubuntu-mate.community/u/GizmoXomziG" data-user-card="GizmoXomziG"><img alt="" src="RaspberryPITVHDMI_archivos/2566_2_002.jpg" title="Simon Murgelj" class="avatar" width="45" height="45"></a><div class="poster-avatar-extra"></div></div><div class="topic-body clearfix"><div class="topic-meta-data"><div class="names trigger-user-card"><span class="first username"><a href="https://ubuntu-mate.community/u/GizmoXomziG" data-user-card="GizmoXomziG">GizmoXomziG</a></span></div><div class="post-infos"><div class="post-info edits"><a class="wiki" title="post last edited on 10 Aug 2016 21:40" href="#">3 <svg class="fa d-icon d-icon-pencil-square-o svg-icon svg-node" aria-hidden="true"><use xlink:href="#far-edit"></use></svg></a></div><div class="post-info post-date"><a class="post-date last-wiki-edit" href="https://ubuntu-mate.community/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250" data-share-url="/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250" data-post-number="1"><span title="10 Aug 2016 21:40" data-time="1470879652037" data-format="tiny" class="relative-date">Aug '16</span></a></div><div class="read-state read" title="Post is unread"><svg class="fa d-icon d-icon-circle svg-icon svg-node" aria-hidden="true"><use xlink:href="#circle"></use></svg></div></div></div><div class="regular contents"><div class="cooked"><p>Hello everyone.</p> 161 <p><strong>Description:</strong><br> 162 I wrote a script that connects to HDMI CEC ( cec-client needed ) and 163 listens for TV Remote key presses. Based on the keys pressed / released 164 (or auto-released; holding down certain keys for too long makes them 165 auto-release) different actions are executed. Some examples:</p> 166 <ul> 167 <li>write letters and numbers using 0-9 keys (simulating 3x4 keypad 168 phones - key "2" switches between a-b-c-2, key 9 switches between 169 w-x-y-z-9) ( xdotool needed )</li> 170 <li>move mouse cursor using up/down/left/right (the longer you hold the 171 key down, the faster it goes) and click (enter = left click; channels 172 list = right click) ( xdotool needed )</li> 173 <li>opening web sites in chomium (red key for YouTube, green for Google, blue for incognito window)</li> 174 </ul> 175 <p>If you want to use firefox instead of chromium, replace "chromium" with "firefox" in the script below.<br> 176 Alternatively, you can just install chromium:</p> 177 <pre><code class="hljs">sudo apt-get install chromium-browser 178 </code></pre> 179 <p>See all the available keys below:</p> 180 <p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://ubuntu-mate.community/uploads/default/original/2X/e/e00e46bb720d634bb6a2ba84cad84c05078fd391.png" data-download-href="https://ubuntu-mate.community/uploads/default/e00e46bb720d634bb6a2ba84cad84c05078fd391" title="TVRemoteCECpng.png"><img src="RaspberryPITVHDMI_archivos/e00e46bb720d634bb6a2ba84cad84c05078fd391_2_401x500.png" class="d-lazyload" srcset="https://ubuntu-mate.community/uploads/default/optimized/2X/e/e00e46bb720d634bb6a2ba84cad84c05078fd391_2_401x500.png, https://ubuntu-mate.community/uploads/default/optimized/2X/e/e00e46bb720d634bb6a2ba84cad84c05078fd391_2_601x750.png 1.5x, https://ubuntu-mate.community/uploads/default/optimized/2X/e/e00e46bb720d634bb6a2ba84cad84c05078fd391_2_802x1000.png 2x" width="401" height="500"><div class="meta"> 181 <svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use xlink:href="#far-image"></use></svg><span class="filename">TVRemoteCECpng.png</span><span class="informations">828×1030 101 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use xlink:href="#discourse-expand"></use></svg> 182 </div></a></div><p></p> 183 <p>These are the keys supported by my TV Remote. You can modify the script for your TV Remote, see Modification below.</p> 184 <p><strong>Installation:</strong><br> 185 First you need to install cec-client and xdotool; using terminal:</p> 186 <pre><code class="hljs">sudo apt-get install cec-client xdotool 187 </code></pre> 188 <p>Test if you can receive TV Remote button presses with cec-client; using terminal:</p> 189 <pre><code class="hljs">cec-client 190 </code></pre> 191 <p>You should see some diagnostic messages. Press numeric keys (as they 192 are most likely to be supported) on your TV Remote. Watch out for new 193 lines, especially of this form:</p> 194 <pre><code class="hljs markdown">something something <span class="hljs-strong">**key pressed: 8**</span> something something 195 </code></pre> 196 <p>If you see this kind of messages, then this should work for you.<br> 197 If not, make sure you've got CEC enabled on your TV (see this <a href="http://kodi.wiki/view/CEC#Trade_names" rel="nofollow noopener">WIKI <span class="badge badge-notification clicks" title="99 clicks">99</span></a> for more info).<br> 198 For my TV, pressing the Source button a couple of times helped (so it 199 kind-of flips trough all the sources and circles back to the Raspberry 200 Pi, detects CEC and connects to it).</p> 201 <p>So, on to the script / installation:<br> 202 Create the file cecremote.sh and mark it as executable; using terminal:</p> 203 <pre><code class="hljs css"><span class="hljs-selector-tag">touch</span> <span class="hljs-selector-tag">cecremote</span><span class="hljs-selector-class">.sh</span> 204 <span class="hljs-selector-tag">chmod</span> +<span class="hljs-selector-tag">x</span> <span class="hljs-selector-tag">cecremote</span><span class="hljs-selector-class">.sh</span> 205 </code></pre> 206 <p>Then open it; using terminal:</p> 207 <pre><code class="hljs css"><span class="hljs-selector-tag">nano</span> <span class="hljs-selector-tag">cecremote</span><span class="hljs-selector-class">.sh</span> 208 </code></pre> 209 <p>Copy - paste this in the file:</p> 210 <pre><code class="hljs bash"><span class="hljs-meta">#!/bin/bash</span> 211 <span class="hljs-keyword">function</span> keychar { 212 parin1=<span class="hljs-variable">$1</span> <span class="hljs-comment">#first param; abc1</span> 213 parin2=<span class="hljs-variable">$2</span> <span class="hljs-comment">#second param; 0=a, 1=b, 2=c, 3=1, 4=a, ...</span> 214 parin2=$((parin2)) <span class="hljs-comment">#convert to numeric</span> 215 parin1len=<span class="hljs-variable">${#parin1}</span> <span class="hljs-comment">#length of parin1</span> 216 parin2pos=$((parin2 % parin1len)) <span class="hljs-comment">#position mod</span> 217 char=<span class="hljs-variable">${parin1:parin2pos:1}</span> <span class="hljs-comment">#char key to simulate</span> 218 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$parin2</span>"</span> -gt 0 ]; <span class="hljs-keyword">then</span> <span class="hljs-comment">#if same key pressed multiple times, delete previous char; write a, delete a write b, delete b write c, ...</span> 219 xdotool key <span class="hljs-string">"BackSpace"</span> 220 <span class="hljs-keyword">fi</span> 221 <span class="hljs-comment">#special cases for xdotool ( X Keysyms )</span> 222 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$char</span>"</span> = <span class="hljs-string">" "</span> ]; <span class="hljs-keyword">then</span> char=<span class="hljs-string">"space"</span>; <span class="hljs-keyword">fi</span> 223 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$char</span>"</span> = <span class="hljs-string">"."</span> ]; <span class="hljs-keyword">then</span> char=<span class="hljs-string">"period"</span>; <span class="hljs-keyword">fi</span> 224 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$char</span>"</span> = <span class="hljs-string">"-"</span> ]; <span class="hljs-keyword">then</span> char=<span class="hljs-string">"minus"</span>; <span class="hljs-keyword">fi</span> 225 xdotool key <span class="hljs-variable">$char</span> 226 } 227 datlastkey=$(date +%s%N) 228 strlastkey=<span class="hljs-string">""</span> 229 intkeychar=0 230 intmsbetweenkeys=2000 <span class="hljs-comment">#two presses of a key sooner that this makes it delete previous key and write the next one (a->b->c->1->a->...)</span> 231 intmousestartspeed=10 <span class="hljs-comment">#mouse starts moving at this speed (pixels per key press)</span> 232 intmouseacc=10 <span class="hljs-comment">#added to the mouse speed for each key press (while holding down key, more key presses are sent from the remote)</span> 233 intmousespeed=10 234 235 <span class="hljs-keyword">while</span> <span class="hljs-built_in">read</span> oneline 236 <span class="hljs-keyword">do</span> 237 keyline=$(<span class="hljs-built_in">echo</span> <span class="hljs-variable">$oneline</span> | grep <span class="hljs-string">" key "</span>) 238 <span class="hljs-comment">#echo $keyline --- debugAllLines</span> 239 <span class="hljs-keyword">if</span> [ -n <span class="hljs-string">"<span class="hljs-variable">$keyline</span>"</span> ]; <span class="hljs-keyword">then</span> 240 datnow=$(date +%s%N) 241 datdiff=$(((<span class="hljs-variable">$datnow</span> - <span class="hljs-variable">$datlastkey</span>) / 1000000)) <span class="hljs-comment">#bla bla key pressed: previous channel (123)</span> 242 strkey=$(grep -oP <span class="hljs-string">'(?<=sed: ).*?(?= \()'</span> <<< <span class="hljs-string">"<span class="hljs-variable">$keyline</span>"</span>) <span class="hljs-comment">#bla bla key pres-->sed: >>previous channel<< (<--123)</span> 243 strstat=$(grep -oP <span class="hljs-string">'(?<=key ).*?(?=:)'</span> <<< <span class="hljs-string">"<span class="hljs-variable">$keyline</span>"</span>) <span class="hljs-comment">#bla bla -->key >>pressed<<:<-- previous channel (123)</span> 244 strpressed=$(<span class="hljs-built_in">echo</span> <span class="hljs-variable">$strstat</span> | grep <span class="hljs-string">"pressed"</span>) 245 strreleased=$(<span class="hljs-built_in">echo</span> <span class="hljs-variable">$strstat</span> | grep <span class="hljs-string">"released"</span>) 246 <span class="hljs-keyword">if</span> [ -n <span class="hljs-string">"<span class="hljs-variable">$strpressed</span>"</span> ]; <span class="hljs-keyword">then</span> 247 <span class="hljs-comment">#echo $keyline --- debug</span> 248 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$strkey</span>"</span> = <span class="hljs-string">"<span class="hljs-variable">$strlastkey</span>"</span> ] && [ <span class="hljs-string">"<span class="hljs-variable">$datdiff</span>"</span> -lt <span class="hljs-string">"<span class="hljs-variable">$intmsbetweenkeys</span>"</span> ]; <span class="hljs-keyword">then</span> 249 intkeychar=$((intkeychar + 1)) <span class="hljs-comment">#same key pressed for a different char</span> 250 <span class="hljs-keyword">else</span> 251 intkeychar=0 <span class="hljs-comment">#different key / too far apart</span> 252 <span class="hljs-keyword">fi</span> 253 datlastkey=<span class="hljs-variable">$datnow</span> 254 strlastkey=<span class="hljs-variable">$strkey</span> 255 <span class="hljs-keyword">case</span> <span class="hljs-string">"<span class="hljs-variable">$strkey</span>"</span> <span class="hljs-keyword">in</span> 256 <span class="hljs-string">"1"</span>) 257 xdotool key <span class="hljs-string">"BackSpace"</span> 258 ;; 259 <span class="hljs-string">"2"</span>) 260 keychar <span class="hljs-string">"abc2"</span> intkeychar 261 ;; 262 <span class="hljs-string">"3"</span>) 263 keychar <span class="hljs-string">"def3"</span> intkeychar 264 ;; 265 <span class="hljs-string">"4"</span>) 266 keychar <span class="hljs-string">"ghi4"</span> intkeychar 267 ;; 268 <span class="hljs-string">"5"</span>) 269 keychar <span class="hljs-string">"jkl5"</span> intkeychar 270 ;; 271 <span class="hljs-string">"6"</span>) 272 keychar <span class="hljs-string">"mno6"</span> intkeychar 273 ;; 274 <span class="hljs-string">"7"</span>) 275 keychar <span class="hljs-string">"pqrs7"</span> intkeychar 276 ;; 277 <span class="hljs-string">"8"</span>) 278 keychar <span class="hljs-string">"tuv8"</span> intkeychar 279 ;; 280 <span class="hljs-string">"9"</span>) 281 keychar <span class="hljs-string">"wxyz9"</span> intkeychar 282 ;; 283 <span class="hljs-string">"0"</span>) 284 keychar <span class="hljs-string">" 0.-"</span> intkeychar 285 ;; 286 <span class="hljs-string">"previous channel"</span>) 287 xdotool key <span class="hljs-string">"Return"</span> <span class="hljs-comment">#Enter</span> 288 ;; 289 <span class="hljs-string">"channel up"</span>) 290 xdotool click 4 <span class="hljs-comment">#mouse scroll up</span> 291 ;; 292 <span class="hljs-string">"channel down"</span>) 293 xdotool click 5 <span class="hljs-comment">#mouse scroll down</span> 294 ;; 295 <span class="hljs-string">"channels list"</span>) 296 xdotool click 3 <span class="hljs-comment">#right mouse button click"</span> 297 ;; 298 <span class="hljs-string">"up"</span>) 299 intpixels=$((-1 * intmousespeed)) 300 xdotool mousemove_relative -- 0 <span class="hljs-variable">$intpixels</span> <span class="hljs-comment">#move mouse up</span> 301 intmousespeed=$((intmousespeed + intmouseacc)) <span class="hljs-comment">#speed up</span> 302 ;; 303 <span class="hljs-string">"down"</span>) 304 intpixels=$(( 1 * intmousespeed)) 305 xdotool mousemove_relative -- 0 <span class="hljs-variable">$intpixels</span> <span class="hljs-comment">#move mouse down</span> 306 intmousespeed=$((intmousespeed + intmouseacc)) <span class="hljs-comment">#speed up</span> 307 ;; 308 <span class="hljs-string">"left"</span>) 309 intpixels=$((-1 * intmousespeed)) 310 xdotool mousemove_relative -- <span class="hljs-variable">$intpixels</span> 0 <span class="hljs-comment">#move mouse left</span> 311 intmousespeed=$((intmousespeed + intmouseacc)) <span class="hljs-comment">#speed up</span> 312 ;; 313 <span class="hljs-string">"right"</span>) 314 intpixels=$(( 1 * intmousespeed)) 315 xdotool mousemove_relative -- <span class="hljs-variable">$intpixels</span> 0 <span class="hljs-comment">#move mouse right</span> 316 intmousespeed=$((intmousespeed + intmouseacc)) <span class="hljs-comment">#speed up</span> 317 ;; 318 <span class="hljs-string">"select"</span>) 319 xdotool click 1 <span class="hljs-comment">#left mouse button click</span> 320 ;; 321 <span class="hljs-string">"return"</span>) 322 xdotool key <span class="hljs-string">"Alt_L+Left"</span> <span class="hljs-comment">#WWW-Back</span> 323 ;; 324 <span class="hljs-string">"exit"</span>) 325 <span class="hljs-built_in">echo</span> Key Pressed: EXIT 326 ;; 327 <span class="hljs-string">"F2"</span>) 328 chromium-browser <span class="hljs-string">"https://www.youtube.com"</span> & 329 ;; 330 <span class="hljs-string">"F3"</span>) 331 chromium-browser <span class="hljs-string">"https://www.google.com"</span> & 332 ;; 333 <span class="hljs-string">"F4"</span>) 334 <span class="hljs-built_in">echo</span> Key Pressed: YELLOW C 335 ;; 336 <span class="hljs-string">"F1"</span>) 337 chromium-browser --incognito <span class="hljs-string">"https://www.google.com"</span> & 338 ;; 339 <span class="hljs-string">"rewind"</span>) 340 <span class="hljs-built_in">echo</span> Key Pressed: REWIND 341 ;; 342 <span class="hljs-string">"pause"</span>) 343 <span class="hljs-built_in">echo</span> Key Pressed: PAUSE 344 ;; 345 <span class="hljs-string">"Fast forward"</span>) 346 <span class="hljs-built_in">echo</span> Key Pressed: FAST FORWARD 347 ;; 348 <span class="hljs-string">"play"</span>) 349 <span class="hljs-built_in">echo</span> Key Pressed: PLAY 350 ;; 351 <span class="hljs-string">"stop"</span>) 352 <span class="hljs-comment">## with my remote I only got "STOP" as key released (auto-released), not as key pressed; see below</span> 353 <span class="hljs-built_in">echo</span> Key Pressed: STOP 354 ;; 355 *) 356 <span class="hljs-built_in">echo</span> Unrecognized Key Pressed: <span class="hljs-variable">$strkey</span> ; CEC Line: <span class="hljs-variable">$keyline</span> 357 ;; 358 359 <span class="hljs-keyword">esac</span> 360 <span class="hljs-keyword">fi</span> 361 <span class="hljs-keyword">if</span> [ -n <span class="hljs-string">"<span class="hljs-variable">$strreleased</span>"</span> ]; <span class="hljs-keyword">then</span> 362 <span class="hljs-comment">#echo $keyline --- debug</span> 363 <span class="hljs-keyword">case</span> <span class="hljs-string">"<span class="hljs-variable">$strkey</span>"</span> <span class="hljs-keyword">in</span> 364 <span class="hljs-string">"stop"</span>) 365 <span class="hljs-built_in">echo</span> Key Released: STOP 366 ;; 367 <span class="hljs-string">"up"</span>) 368 intmousespeed=<span class="hljs-variable">$intmousestartspeed</span> <span class="hljs-comment">#reset mouse speed</span> 369 ;; 370 <span class="hljs-string">"down"</span>) 371 intmousespeed=<span class="hljs-variable">$intmousestartspeed</span> <span class="hljs-comment">#reset mouse speed</span> 372 ;; 373 <span class="hljs-string">"left"</span>) 374 intmousespeed=<span class="hljs-variable">$intmousestartspeed</span> <span class="hljs-comment">#reset mouse speed</span> 375 ;; 376 <span class="hljs-string">"right"</span>) 377 intmousespeed=<span class="hljs-variable">$intmousestartspeed</span> <span class="hljs-comment">#reset mouse speed</span> 378 ;; 379 <span class="hljs-keyword">esac</span> 380 <span class="hljs-keyword">fi</span> 381 <span class="hljs-keyword">fi</span> 382 <span class="hljs-keyword">done</span> 383 </code></pre> 384 <p>Finally, save it; using nano in terminal:<br> 385 press "Ctrl+X" to close the file, then "Y" to confirm saving, then "Enter" to save the file under the right file name</p> 386 <p>Try executing it, using terminal:</p> 387 <pre><code class="hljs">cec-client | ./cecremote.sh 388 </code></pre> 389 <p>At this point it should be working.<br> 390 Point the TV Remote at the TV, press up/down/left/right and check if the mouse pointer is moving.<br> 391 Press 9 44 2 8 7777 0 88 7 and it should write "whats up".</p> 392 <p>The script doesn't output anything, except when it encounters a 393 button press that it doesn't recognize, or it doesn't have a function 394 set up for that button yet (play button being one of them).<br> 395 If you want it to output all the messages it receives, find the line and uncomment it by deleting the # : <span class="hashtag">#echo</span> $keyline --- debugAllLines</p> 396 <p>So, if everything works, exit the script in terminal: Press Ctrl+C</p> 397 <p><strong>Run at startup:</strong><br> 398 If you want to start this script every time the Raspberry starts, create 399 a new file called cecremotestart.sh and mark it as executable; using 400 terminal:</p> 401 <pre><code class="hljs css"><span class="hljs-selector-tag">touch</span> <span class="hljs-selector-tag">cecremotestart</span><span class="hljs-selector-class">.sh</span> 402 <span class="hljs-selector-tag">chmod</span> +<span class="hljs-selector-tag">x</span> <span class="hljs-selector-tag">cecremotestart</span><span class="hljs-selector-class">.sh</span> 403 </code></pre> 404 <p>Then open it; using terminal:</p> 405 <pre><code class="hljs css"><span class="hljs-selector-tag">nano</span> <span class="hljs-selector-tag">cecremotestart</span><span class="hljs-selector-class">.sh</span> 406 </code></pre> 407 <p>Copy - paste this in the file:</p> 408 <pre><code class="hljs bash"><span class="hljs-meta">#!/bin/bash</span> 409 cec-client | /home/raspberry/cecremote.sh <span class="hljs-comment">#<-- change this according to your username / path to the script</span> 410 </code></pre> 411 <p>Finally, save it; using nano in terminal:<br> 412 press "Ctrl+X" to close the file, then "Y" to confirm saving, then "Enter" to save the file under the right file name</p> 413 <p>Then add this in the Startup Programs (Menu - System - Control Center 414 - Startup Programs; Add; Give it a name, and enter the path (or press 415 Browse) of the script in the filesystem).</p> 416 <p>Restart, try, report <img src="RaspberryPITVHDMI_archivos/slightly_smiling.png" title=":slightly_smiling:" class="emoji" alt=":slightly_smiling:"></p> 417 <p><strong>Modification:</strong><br> 418 If you want, you can edit the script to change or add the commands executed on certain button presses.<br> 419 You can detect the additional buttons that CEC on your TV supports. Kill 420 the running cec-client, run the cec-client in the terminal, and watch 421 for the output while you're pressing all the keys on your TV Remote; 422 using terminal:</p> 423 <pre><code class="hljs coffeescript">killall cec-client 424 cec-client 425 Ctrl+C <span class="hljs-keyword">when</span> you<span class="hljs-string">'re ready to stop 426 </span></code></pre> 427 <p>Edit the script, then execute the modified script by manually executing cecremotestart.sh; using terminal:</p> 428 <pre><code class="hljs">./cecremotescript.sh 429 Ctrl+C to stop 430 </code></pre> 431 <p>When you're satisfied, just restart your Raspberry PI.</p> 432 <p>That's it from me - a simple and crude way to control your Raspberry 433 PI with the TV Remote, for when you don't have the keyboard/mouse 434 connected and VNC-ing is too much of a bother.</p> 435 <p>Try it and report <img src="RaspberryPITVHDMI_archivos/slightly_smiling.png" title=":slightly_smiling:" class="emoji" alt=":slightly_smiling:"></p></div><section class="post-menu-area clearfix"><nav class="post-controls clearfix"><div class="actions"><div class="double-button"><button class="widget-button btn-flat button-count like-count highlight-action regular-likes btn-text" aria-label="3 people liked this post" title="3 people liked this post">3</button><button class="widget-button btn-flat toggle-like like no-text btn-icon" aria-label="like this post" title="like this post"><svg class="fa d-icon d-icon-d-unliked svg-icon svg-node" aria-hidden="true"><use xlink:href="#far-heart"></use></svg></button></div><button class="widget-button btn-flat share no-text btn-icon" aria-label="share a link to this post" title="share a link to this post" data-share-url="/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250" data-post-number="1"><svg class="fa d-icon d-icon-link svg-icon svg-node" aria-hidden="true"><use xlink:href="#link"></use></svg></button></div></nav></section></div><section class="post-actions"> 436 </section><div class="post-links-container"><ul class="post-links"><li><a class="track-link inbound" href="https://ubuntu-mate.community/t/tips-tutorials-and-guides-index/14519/6"><svg class="fa d-icon d-icon-link svg-icon svg-node" aria-hidden="true"><use xlink:href="#link"></use></svg><span>Tips, Tutorials and Guides Index</span></a></li></ul></div><div class="topic-map"><section class="map map-collapsed"><nav class="buttons"><button class="widget-button btn btn no-text btn-icon" aria-label="toggle topic details" title="toggle topic details"><svg class="fa d-icon d-icon-chevron-down svg-icon svg-node" aria-hidden="true"><use xlink:href="#chevron-down"></use></svg></button></nav><ul class="clearfix"><li><h4 role="presentation">created</h4><div class="topic-map-post created-at"><a class="trigger-user-card " data-user-card="GizmoXomziG"><img alt="" src="RaspberryPITVHDMI_archivos/2566_2_003.jpg" title="Simon Murgelj" class="avatar" width="20" height="20"></a><span title="10 Mar 2016 05:44" data-time="1457604881253" data-format="tiny" class="relative-date">Mar '16</span></div></li><li><a href="https://ubuntu-mate.community/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250/4"><h4 role="presentation">last reply</h4><div class="topic-map-post last-reply"><a class="trigger-user-card " data-user-card="AJCandover"><img alt="" src="RaspberryPITVHDMI_archivos/20.png" title="Audric" class="avatar" width="20" height="20"></a><span title="25 Apr 2018 12:59" data-time="1524675595323" data-format="tiny" class="relative-date">Apr '18</span></div></a></li><li><span class="number">3</span><h4 role="presentation">replies</h4></li><li class="secondary"><span class="number heatmap-high" title="16718">16.7k</span><h4 role="presentation">views</h4></li><li class="secondary"><span class="number">4</span><h4 role="presentation">users</h4></li><li class="secondary"><span class="number">3</span><h4 role="presentation">likes</h4></li><li class="secondary"><span class="number">3</span><h4 role="presentation">links</h4></li><li class="avatars"><div><a class="poster trigger-user-card" title="GizmoXomziG" data-user-card="GizmoXomziG"><img alt="" src="RaspberryPITVHDMI_archivos/2566_2.jpg" title="Simon Murgelj" class="avatar" width="32" height="32"></a></div><div><a class="poster trigger-user-card" title="arudun" data-user-card="arudun"><img alt="" src="RaspberryPITVHDMI_archivos/32_002.png" title="arudun" class="avatar" width="32" height="32"></a></div><div><a class="poster trigger-user-card" title="Dschogo" data-user-card="Dschogo"><img alt="" src="RaspberryPITVHDMI_archivos/32.png" title="Tobias Hammerschmidt" class="avatar" width="32" height="32"></a></div></li></ul></section></div></div></div></article></div><div class="time-gap small-action"><div class="topic-avatar"></div><div class="small-action-desc timegap">8 months later</div></div><div class="topic-post clearfix regular"><article id="post_2" data-post-id="36773" data-topic-id="4250" data-user-id="4701" class="boxed onscreen-post" style=""><a href="" class="tabLoc"></a><div class="row"><div class="topic-avatar"><a class="trigger-user-card main-avatar" href="https://ubuntu-mate.community/u/arudun" data-user-card="arudun"><img alt="" src="RaspberryPITVHDMI_archivos/45.png" title="arudun" class="avatar" width="45" height="45"></a><div class="poster-avatar-extra"></div></div><div class="topic-body clearfix"><div class="topic-meta-data"><div class="names trigger-user-card"><span class="first username"><a href="https://ubuntu-mate.community/u/arudun" data-user-card="arudun">arudun</a></span></div><div class="post-infos"><div class="post-info edits"><a title="post last edited on 26 Oct 2016 01:13" href="#">1 <svg class="fa d-icon d-icon-pencil-alt svg-icon svg-node" aria-hidden="true"><use xlink:href="#pencil-alt"></use></svg></a></div><div class="post-info post-date"><a class="post-date" href="https://ubuntu-mate.community/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250/2" data-share-url="/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250/2" data-post-number="2"><span title="26 Oct 2016 00:41" data-time="1477456872718" data-format="tiny" class="relative-date">Oct '16</span></a></div><div class="read-state read" title="Post is unread"><svg class="fa d-icon d-icon-circle svg-icon svg-node" aria-hidden="true"><use xlink:href="#circle"></use></svg></div></div></div><div class="regular contents"><div class="cooked"><p>You should submit this to <a href="https://github.com/raspberrypi/linux/pulls" rel="nofollow noopener">https://github.com/raspberrypi/linux/pulls <span class="badge badge-notification clicks" title="84 clicks">84</span></a> it should be always with a raspberry</p> 437 <p>Look at this one</p> 438 <pre><code class="lang-bash hljs"><span class="hljs-meta">#!/bin/bash</span> 439 <span class="hljs-keyword">function</span> keychar { 440 parin1=<span class="hljs-variable">$1</span> <span class="hljs-comment">#first param; abc1</span> 441 parin2=<span class="hljs-variable">$2</span> <span class="hljs-comment">#second param; 0=a, 1=b, 2=c, 3=1, 4=a, ...</span> 442 parin2=$((parin2)) <span class="hljs-comment">#convert to numeric</span> 443 parin1len=<span class="hljs-variable">${#parin1}</span> <span class="hljs-comment">#length of parin1</span> 444 parin2pos=$((parin2 % parin1len)) <span class="hljs-comment">#position mod</span> 445 char=<span class="hljs-variable">${parin1:parin2pos:1}</span> <span class="hljs-comment">#char key to simulate</span> 446 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$parin2</span>"</span> -gt 0 ]; <span class="hljs-keyword">then</span> <span class="hljs-comment">#if same key pressed multiple times, delete previous char; write a, delete a write b, delete b write c, ...</span> 447 xdotool key <span class="hljs-string">"BackSpace"</span> 448 <span class="hljs-keyword">fi</span> 449 <span class="hljs-comment">#special cases for xdotool ( X Keysyms )</span> 450 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$char</span>"</span> = <span class="hljs-string">" "</span> ]; <span class="hljs-keyword">then</span> char=<span class="hljs-string">"space"</span>; <span class="hljs-keyword">fi</span> 451 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$char</span>"</span> = <span class="hljs-string">"."</span> ]; <span class="hljs-keyword">then</span> char=<span class="hljs-string">"period"</span>; <span class="hljs-keyword">fi</span> 452 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$char</span>"</span> = <span class="hljs-string">"-"</span> ]; <span class="hljs-keyword">then</span> char=<span class="hljs-string">"minus"</span>; <span class="hljs-keyword">fi</span> 453 xdotool key <span class="hljs-variable">$char</span> 454 } 455 datlastkey=$(date +%s%N) 456 strlastkey=<span class="hljs-string">""</span> 457 intkeychar=0 458 intmsbetweenkeys=500 <span class="hljs-comment">#two presses of a key sooner that this makes it delete previous key and write the next one (a->b->c->1->a->...)</span> 459 intmousestartspeed=15 <span class="hljs-comment">#mouse starts moving at this speed (pixels per key press)</span> 460 intmouseacc=0 <span class="hljs-comment">#added to the mouse speed for each key press (while holding down key, more key presses are sent from the remote)</span> 461 intmousespeed=15 462 switch=0 463 browser=/etc/alternatives/x-www-browser 464 <span class="hljs-built_in">test</span> -e /usr/bin/firefox && browser=firefox 465 <span class="hljs-built_in">test</span> -e /usr/bin/chromium-browser && browser=chromium-browser 466 467 468 <span class="hljs-keyword">while</span> <span class="hljs-built_in">read</span> oneline 469 <span class="hljs-keyword">do</span> 470 keyline=$(<span class="hljs-built_in">echo</span> <span class="hljs-variable">$oneline</span> | grep <span class="hljs-string">" key "</span>) 471 <span class="hljs-comment">#echo $keyline --- debugAllLines</span> 472 <span class="hljs-keyword">if</span> [ -n <span class="hljs-string">"<span class="hljs-variable">$keyline</span>"</span> ]; <span class="hljs-keyword">then</span> 473 datnow=$(date +%s%N) 474 datdiff=$(((<span class="hljs-variable">$datnow</span> - <span class="hljs-variable">$datlastkey</span>) / 1000000)) <span class="hljs-comment">#bla bla key pressed: previous channel (123)</span> 475 strkey=$(grep -oP <span class="hljs-string">'(?<=sed: ).*?(?= \()'</span> <<< <span class="hljs-string">"<span class="hljs-variable">$keyline</span>"</span>) <span class="hljs-comment">#bla bla key pres-->sed: >>previous channel<< (<--123)</span> 476 strstat=$(grep -oP <span class="hljs-string">'(?<=key ).*?(?=:)'</span> <<< <span class="hljs-string">"<span class="hljs-variable">$keyline</span>"</span>) <span class="hljs-comment">#bla bla -->key >>pressed<<:<-- previous channel (123)</span> 477 strpressed=$(<span class="hljs-built_in">echo</span> <span class="hljs-variable">$strstat</span> | grep <span class="hljs-string">"pressed"</span>) 478 strreleased=$(<span class="hljs-built_in">echo</span> <span class="hljs-variable">$strstat</span> | grep <span class="hljs-string">"released"</span>) 479 <span class="hljs-keyword">if</span> [ -n <span class="hljs-string">"<span class="hljs-variable">$strpressed</span>"</span> ]; <span class="hljs-keyword">then</span> 480 <span class="hljs-comment">#echo $keyline --- debug</span> 481 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$strkey</span>"</span> = <span class="hljs-string">"<span class="hljs-variable">$strlastkey</span>"</span> ] && [ <span class="hljs-string">"<span class="hljs-variable">$datdiff</span>"</span> -lt <span class="hljs-string">"<span class="hljs-variable">$intmsbetweenkeys</span>"</span> ]; <span class="hljs-keyword">then</span> 482 intkeychar=$((intkeychar + 1)) <span class="hljs-comment">#same key pressed for a different char</span> 483 intmousespeed=100 484 <span class="hljs-keyword">else</span> 485 intkeychar=0 <span class="hljs-comment">#different key / too far apart</span> 486 <span class="hljs-keyword">fi</span> 487 datlastkey=<span class="hljs-variable">$datnow</span> 488 strlastkey=<span class="hljs-variable">$strkey</span> 489 <span class="hljs-keyword">case</span> <span class="hljs-string">"<span class="hljs-variable">$strkey</span>"</span> <span class="hljs-keyword">in</span> 490 <span class="hljs-string">"1"</span>) 491 xdotool mousemove 270 154 492 ;; 493 <span class="hljs-string">"2"</span>) 494 xdotool mousemove 679 154 495 ;; 496 <span class="hljs-string">"3"</span>) 497 xdotool mousemove 1090 154 498 ;; 499 <span class="hljs-string">"4"</span>) 500 xdotool mousemove 270 382 501 ;; 502 <span class="hljs-string">"5"</span>) 503 xdotool mousemove 679 382 504 ;; 505 <span class="hljs-string">"6"</span>) 506 xdotool mousemove 1090 382 507 ;; 508 <span class="hljs-string">"7"</span>) 509 xdotool mousemove 270 604 510 ;; 511 <span class="hljs-string">"8"</span>) 512 xdotool mousemove 679 604 513 ;; 514 <span class="hljs-string">"9"</span>) 515 xdotool mousemove 1090 604 516 ;; 517 <span class="hljs-string">"0"</span>) 518 xdotool key Prior 519 ;; 520 <span class="hljs-string">"previous channel"</span>) 521 xdotool key Space <span class="hljs-comment">#Enter</span> 522 ;; 523 <span class="hljs-string">"channel up"</span>) 524 xdotool click 4 <span class="hljs-comment">#mouse scroll up</span> 525 ;; 526 <span class="hljs-string">"channel down"</span>) 527 xdotool click 5 <span class="hljs-comment">#mouse scroll down</span> 528 ;; 529 <span class="hljs-string">"channels list"</span>) 530 xdotool click 3 <span class="hljs-comment">#right mouse button click"</span> 531 ;; 532 <span class="hljs-string">"up"</span>) 533 xgm=$(xdotool getmouselocation --shell | grep Y | sed -e s/^..// ) 534 intpixels=$((-1 * intmousespeed * 2)) 535 <span class="hljs-built_in">test</span> <span class="hljs-variable">$switch</span> -eq 1 && xdotool key Up || xdotool mousemove_relative -- 0 <span class="hljs-variable">$intpixels</span> <span class="hljs-comment">#move mouse up</span> 536 intmousespeed=$((intmousespeed + intmouseacc)) <span class="hljs-comment">#speed up</span> 537 <span class="hljs-built_in">test</span> <span class="hljs-variable">$xgm</span>$(xdotool getmouselocation --shell | grep Y | sed -e <span class="hljs-string">'s/^..//'</span> ) -eq 00 && xdotool mousemove_relative -- 0 768 538 ;; 539 <span class="hljs-string">"down"</span>) 540 xgm=$(xdotool getmouselocation --shell | grep Y | sed -e s/^..// ) 541 intpixels=$(( 1 * intmousespeed)) 542 <span class="hljs-built_in">test</span> <span class="hljs-variable">$switch</span> -eq 1 && xdotool key Down || xdotool mousemove_relative -- 0 <span class="hljs-variable">$intpixels</span> <span class="hljs-comment">#move mouse down</span> 543 intmousespeed=$((intmousespeed + intmouseacc)) <span class="hljs-comment">#speed up</span> 544 <span class="hljs-built_in">test</span> <span class="hljs-variable">$xgm</span>$(xdotool getmouselocation --shell | grep Y | sed -e <span class="hljs-string">'s/^..//'</span> ) -eq 767767 && xdotool mousemove_relative -- 0 -768 545 ;; 546 <span class="hljs-string">"left"</span>) 547 xgm=$(xdotool getmouselocation --shell | grep X | sed -e s/^..// ) 548 intpixels=$((-1 * intmousespeed * 2 )) 549 <span class="hljs-built_in">test</span> <span class="hljs-variable">$switch</span> -eq 1 && xdotool key Left || xdotool mousemove_relative -- <span class="hljs-variable">$intpixels</span> 0 <span class="hljs-comment">#move mouse left</span> 550 intmousespeed=$((intmousespeed + intmouseacc)) <span class="hljs-comment">#speed up</span> 551 <span class="hljs-built_in">test</span> <span class="hljs-variable">$xgm</span>$(xdotool getmouselocation --shell | grep X | sed -e <span class="hljs-string">'s/^..//'</span> ) -eq 00 && xdotool mousemove_relative -- 1359 0 552 ;; 553 <span class="hljs-string">"right"</span>) 554 xgm=$(xdotool getmouselocation --shell | grep X | sed -e s/^..// ) 555 intpixels=$(( 1 * intmousespeed)) 556 <span class="hljs-built_in">test</span> <span class="hljs-variable">$switch</span> -eq 1 && xdotool key Right || xdotool mousemove_relative -- <span class="hljs-variable">$intpixels</span> 0 <span class="hljs-comment">#move mouse right</span> 557 intmousespeed=$((intmousespeed + intmouseacc)) <span class="hljs-comment">#speed up</span> 558 <span class="hljs-built_in">test</span> <span class="hljs-variable">$xgm</span>$(xdotool getmouselocation --shell | grep X | sed -e <span class="hljs-string">'s/^..//'</span> ) -eq 13591359 && xdotool mousemove_relative -- -1359 0 559 ;; 560 <span class="hljs-string">"select"</span>) 561 <span class="hljs-built_in">test</span> <span class="hljs-variable">$switch</span> -eq 1 && xdotool key Return || xdotool click 1 <span class="hljs-comment">#left mouse button click</span> 562 ;; 563 <span class="hljs-string">"return"</span>) 564 <span class="hljs-comment">#xdotool key "Alt_L+Left" #WWW-Back</span> 565 ((switch++)) 566 <span class="hljs-built_in">test</span> <span class="hljs-variable">$switch</span> -eq 2 && switch=0 567 ;; 568 <span class="hljs-string">"exit"</span>) 569 ((switch++)) 570 <span class="hljs-built_in">test</span> <span class="hljs-variable">$switch</span> -eq 2 && switch=0 571 ;; 572 <span class="hljs-string">"F2"</span>) 573 ((menu++)) 574 xdotool key Escape 575 <span class="hljs-built_in">test</span> <span class="hljs-variable">$menu</span> -eq 1 && xdotool click 3 || xdotool key Super_L 576 <span class="hljs-built_in">test</span> <span class="hljs-variable">$menu</span> -eq 2 && menu=0 577 switch=1 578 ;; 579 <span class="hljs-string">"F3"</span>) 580 <span class="hljs-variable">$browser</span> & 581 ;; 582 <span class="hljs-string">"F4"</span>) 583 ((xvkbd++)) 584 switch=0 585 xdotool mousemove 1100 750 586 xvkbd -no-keypad -geometry +905+560 & 587 <span class="hljs-built_in">test</span> <span class="hljs-variable">$xvkbd</span> -eq 2 && killall xvkbd && xvkbd=0 588 ;; 589 <span class="hljs-string">"F1"</span>) 590 <span class="hljs-comment">#chromium-browser --incognito "https://www.google.com" &</span> 591 /etc/alternatives/x-terminal-emulator & 592 ((xvkbd++)) 593 switch=0 594 xdotool mousemove 1170 760 595 xvkbd -no-keypad -geometry +905+560 & 596 <span class="hljs-built_in">test</span> <span class="hljs-variable">$xvkbd</span> -eq 2 && killall xvkbd && xvkbd=0 597 598 ;; 599 <span class="hljs-string">"rewind"</span>) 600 <span class="hljs-variable">$browser</span> & 601 ;; 602 <span class="hljs-string">"pause"</span>) 603 ((menu++)) 604 xdotool key Escape 605 <span class="hljs-built_in">test</span> <span class="hljs-variable">$menu</span> -eq 1 && xdotool click 3 || xdotool key Super_L 606 <span class="hljs-built_in">test</span> <span class="hljs-variable">$menu</span> -eq 2 && menu=0 607 switch=1 608 ;; 609 <span class="hljs-string">"Fast forward"</span>) 610 /etc/alternatives/x-terminal-emulator & 611 ((xvkbd++)) 612 switch=0 613 xdotool mousemove 1170 660 614 xvkbd -no-keypad -geometry +905+560 & 615 <span class="hljs-built_in">test</span> <span class="hljs-variable">$xvkbd</span> -eq 2 && killall xvkbd && xvkbd=0 616 ;; 617 <span class="hljs-string">"play"</span>) 618 ((xvkbd++)) 619 switch=0 620 xdotool mousemove 1100 750 621 xvkbd -no-keypad -geometry +905+560 & 622 <span class="hljs-built_in">test</span> <span class="hljs-variable">$xvkbd</span> -eq 2 && killall xvkbd && xvkbd=0 623 624 ;; 625 <span class="hljs-string">"stop"</span>) 626 <span class="hljs-comment">## with my remote I only got "STOP" as key released (auto-released), not as key pressed; see below</span> 627 <span class="hljs-built_in">echo</span> Key Pressed: STOP 628 ;; 629 *) 630 <span class="hljs-built_in">echo</span> Unrecognized Key Pressed: <span class="hljs-variable">$strkey</span> ; CEC Line: <span class="hljs-variable">$keyline</span> 631 ;; 632 633 <span class="hljs-keyword">esac</span> 634 <span class="hljs-keyword">fi</span> 635 <span class="hljs-keyword">if</span> [ -n <span class="hljs-string">"<span class="hljs-variable">$strreleased</span>"</span> ]; <span class="hljs-keyword">then</span> 636 <span class="hljs-comment">#echo $keyline --- debug</span> 637 <span class="hljs-keyword">case</span> <span class="hljs-string">"<span class="hljs-variable">$strkey</span>"</span> <span class="hljs-keyword">in</span> 638 <span class="hljs-string">"stop"</span>) 639 xdotool key q 640 xdotool key Control_L+Next 641 ;; 642 <span class="hljs-string">"up"</span>) 643 intmousespeed=<span class="hljs-variable">$intmousestartspeed</span> <span class="hljs-comment">#reset mouse speed</span> 644 ;; 645 <span class="hljs-string">"down"</span>) 646 intmousespeed=<span class="hljs-variable">$intmousestartspeed</span> <span class="hljs-comment">#reset mouse speed</span> 647 ;; 648 <span class="hljs-string">"left"</span>) 649 intmousespeed=<span class="hljs-variable">$intmousestartspeed</span> <span class="hljs-comment">#reset mouse speed</span> 650 ;; 651 <span class="hljs-string">"right"</span>) 652 intmousespeed=<span class="hljs-variable">$intmousestartspeed</span> <span class="hljs-comment">#reset mouse speed</span> 653 ;; 654 <span class="hljs-keyword">esac</span> 655 <span class="hljs-keyword">fi</span> 656 <span class="hljs-keyword">fi</span> 657 <span class="hljs-keyword">done</span></code></pre> 658 <p>On my philips don’t work numbers or colors, so I got a virtual keyboard and made some changes</p> 659 <p>sudo apt-get install xvkbd</p> 660 <h2>The mouse</h2> 661 <p><strong>up,down, left, right</strong> are the same</p> 662 <p>but if you hit <strong>Return</strong> (Samsung) or <strong>back</strong> (philips ) they switch to arrows , hit again and you will get the mouse</p> 663 <p>If you go off limits with the cursor , you will go to the other side</p> 664 <p><strong>Up</strong> and <strong>Left</strong> are 2x faster than <strong>Down</strong> and <strong>Right</strong> , on mouse</p> 665 <p><strong>OK</strong> means click on mouse mode , and enter with arrows</p> 666 <p>To get right click, on Samsung hit “<strong>channels list</strong>” or <strong>pause</strong> , on philips hit <strong>pause</strong> .</p> 667 <h2>Colours and Controls</h2> 668 <p><strong>Red</strong> or <strong>Pause</strong> = one hit means Right Click, another hit means Menu<br> 669 <strong>Green</strong> or <strong>Rewind</strong> = Browser<br> 670 <strong>Yellow</strong> or <strong>Play</strong> = Virtual Keyboard, hit again to close<br> 671 <strong>Blue</strong> or <strong>Forward</strong> = terminal</p> 672 <p><strong>Stop</strong> = Always means q , always stop video. And a bonus, on your browser hit <strong>Stop</strong> moves to the next tab. <strong>Stop</strong> send both things every time</p> 673 <p><strong>Pause</strong> = one hit means right click , another means Menu</p> 674 <p>To pause a video, hit <strong>play</strong> and <strong>OK</strong> , that opens xvkbd and hits space. To unpause hit <strong>OK</strong>.</p> 675 <p>To scroll down on your browser, you could hit <strong>play</strong> and <strong>OK</strong> too, and then keep hitting <strong>OK</strong> to browse the site</p> 676 <p>Also a nice url to browse twitter <a href="https://mobile.twitter.com/" rel="nofollow noopener">https://mobile.twitter.com <span class="badge badge-notification clicks" title="4 clicks">4</span></a></p> 677 <h2>Samsung, not philips</h2> 678 <p><strong>Channel up</strong> = mouse scroll up<br> 679 <strong>Channel Down</strong> = mouse scroll down</p> 680 <p><strong>1 2 3</strong><br> 681 <strong>4 5 6</strong><br> 682 <strong>7 8 9</strong><br> 683 numbers from 1 to 9 move the cursor to diferent places</p> 684 <p><strong>0</strong> = means space, could pause video and browse pages<br> 685 <strong>Previous Channel</strong>= means Prior, moves backwards</p> 686 <p>I’m not coding, I’m just playing with code</p></div><section class="post-menu-area clearfix"><nav class="post-controls clearfix"><div class="actions"><div class="double-button"><button class="widget-button btn-flat toggle-like like no-text btn-icon" aria-label="like this post" title="like this post"><svg class="fa d-icon d-icon-d-unliked svg-icon svg-node" aria-hidden="true"><use xlink:href="#far-heart"></use></svg></button></div><button class="widget-button btn-flat share no-text btn-icon" aria-label="share a link to this post" title="share a link to this post" data-share-url="/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250/2" data-post-number="2"><svg class="fa d-icon d-icon-link svg-icon svg-node" aria-hidden="true"><use xlink:href="#link"></use></svg></button></div></nav></section></div><section class="post-actions"> 687 </section><div class="post-links-container"></div></div></div></article></div><div class="time-gap small-action"><div class="topic-avatar"></div><div class="small-action-desc timegap">1 year later</div></div><div class="topic-post clearfix regular" id="" style="min-height: 329.767px"><article id="post_3" data-post-id="61105" data-topic-id="4250" data-user-id="8279" class="boxed onscreen-post" style=""><a href="" class="tabLoc"></a><div class="row"><div class="topic-avatar"><a class="trigger-user-card main-avatar" href="https://ubuntu-mate.community/u/Dschogo" data-user-card="Dschogo"><img alt="" src="RaspberryPITVHDMI_archivos/45_002.png" title="Tobias Hammerschmidt" class="avatar" width="45" height="45"></a><div class="poster-avatar-extra"></div></div><div class="topic-body clearfix"><div class="topic-meta-data"><div class="names trigger-user-card"><span class="first username new-user"><a href="https://ubuntu-mate.community/u/Dschogo" data-user-card="Dschogo">Dschogo</a></span></div><div class="post-infos"><div class="post-info post-date"><a class="post-date" href="https://ubuntu-mate.community/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250/3" data-share-url="/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250/3" data-post-number="3"><span title="8 Mar 2018 18:27" data-time="1520548056447" data-format="tiny" class="relative-date">Mar '18</span></a></div><div class="read-state read" title="Post is unread"><svg class="fa d-icon d-icon-circle svg-icon svg-node" aria-hidden="true"><use xlink:href="#circle"></use></svg></div></div></div><div class="regular contents"><div class="cooked"><p>Hi,</p> 688 <p>this is an awesome script. It function perfectly, but every button 689 will be recognized twice (except up down left right and selecet/ok).</p> 690 <p>is there an option to avoid this? - like an delay</p> 691 <p>hope you can help me</p> 692 <p>Dschogo</p></div><section class="post-menu-area clearfix"><nav class="post-controls clearfix"><div class="actions"><div class="double-button"><button class="widget-button btn-flat toggle-like like no-text btn-icon" aria-label="like this post" title="like this post"><svg class="fa d-icon d-icon-d-unliked svg-icon svg-node" aria-hidden="true"><use xlink:href="#far-heart"></use></svg></button></div><button class="widget-button btn-flat share no-text btn-icon" aria-label="share a link to this post" title="share a link to this post" data-share-url="/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250/3" data-post-number="3"><svg class="fa d-icon d-icon-link svg-icon svg-node" aria-hidden="true"><use xlink:href="#link"></use></svg></button></div></nav></section></div><section class="post-actions"> 693 </section><div class="post-links-container"></div></div></div></article></div><div class="time-gap small-action"><div class="topic-avatar"></div><div class="small-action-desc timegap">2 months later</div></div><div class="topic-post clearfix regular" id="" style="min-height: 793.767px"><article id="post_4" data-post-id="63386" data-topic-id="4250" data-user-id="8650" class="boxed onscreen-post" style=""><a href="" class="tabLoc"></a><div class="row"><div class="topic-avatar"><a class="trigger-user-card main-avatar" href="https://ubuntu-mate.community/u/AJCandover" data-user-card="AJCandover"><img alt="" src="RaspberryPITVHDMI_archivos/45_003.png" title="Audric" class="avatar" width="45" height="45"></a><div class="poster-avatar-extra"></div></div><div class="topic-body clearfix"><div class="topic-meta-data"><div class="names trigger-user-card"><span class="first username new-user"><a href="https://ubuntu-mate.community/u/AJCandover" data-user-card="AJCandover">AJCandover</a></span></div><div class="post-infos"><div class="post-info post-date"><a class="post-date" href="https://ubuntu-mate.community/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250/4" data-share-url="/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250/4" data-post-number="4"><span title="25 Apr 2018 12:59" data-time="1524675595323" data-format="tiny" class="relative-date">Apr '18</span></a></div><div class="read-state read" title="Post is unread"><svg class="fa d-icon d-icon-circle svg-icon svg-node" aria-hidden="true"><use xlink:href="#circle"></use></svg></div></div></div><div class="regular contents"><div class="cooked"><p>Hi 694 you probably have answered this already but actually i had the same 695 problem. This was due to the fact that for every keypress there were 696 two cec-client debug lines with the same data causing the script to 697 detect two keypress for each button press. To get around this I added a 698 grep for the ID of the debug line (the timestamp I assume). If the id 699 is the same for both key persses I ignored the second.</p> 700 <p>Here is the modified script:</p> 701 <pre><code class="hljs bash"><span class="hljs-meta">#!/bin/bash</span> 702 <span class="hljs-keyword">function</span> keychar { 703 parin1=<span class="hljs-variable">$1</span> <span class="hljs-comment">#first param; abc1</span> 704 parin2=<span class="hljs-variable">$2</span> <span class="hljs-comment">#second param; 0=a, 1=b, 2=c, 3=1, 4=a, ...</span> 705 parin2=$((parin2)) <span class="hljs-comment">#convert to numeric</span> 706 parin1len=<span class="hljs-variable">${#parin1}</span> <span class="hljs-comment">#length of parin1</span> 707 parin2pos=$((parin2 % parin1len)) <span class="hljs-comment">#position mod</span> 708 char=<span class="hljs-variable">${parin1:parin2pos:1}</span> <span class="hljs-comment">#char key to simulate</span> 709 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$parin2</span>"</span> -gt 0 ]; <span class="hljs-keyword">then</span> <span class="hljs-comment">#if same key pressed multiple times, delete previous char; write a, delete a write b, delete b write c, ...</span> 710 xdotool key <span class="hljs-string">"BackSpace"</span> 711 <span class="hljs-keyword">fi</span> 712 <span class="hljs-comment">#special cases for xdotool ( X Keysyms )</span> 713 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$char</span>"</span> = <span class="hljs-string">" "</span> ]; <span class="hljs-keyword">then</span> char=<span class="hljs-string">"space"</span>; <span class="hljs-keyword">fi</span> 714 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$char</span>"</span> = <span class="hljs-string">"."</span> ]; <span class="hljs-keyword">then</span> char=<span class="hljs-string">"period"</span>; <span class="hljs-keyword">fi</span> 715 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$char</span>"</span> = <span class="hljs-string">"-"</span> ]; <span class="hljs-keyword">then</span> char=<span class="hljs-string">"minus"</span>; <span class="hljs-keyword">fi</span> 716 xdotool key <span class="hljs-variable">$char</span> 717 } 718 datlastkey=$(date +%s%N) 719 strlastkey=<span class="hljs-string">""</span> 720 strlastid=<span class="hljs-string">""</span> 721 intkeychar=0 722 intmsbetweenkeys=2000 <span class="hljs-comment">#two presses of a key sooner that this makes it delete previous key and write the next one (a->b->c->1->a->...)</span> 723 intmousestartspeed=10 <span class="hljs-comment">#mouse starts moving at this speed (pixels per key press)</span> 724 intmouseacc=10 <span class="hljs-comment">#added to the mouse speed for each key press (while holding down key, more key presses are sent from the remote)</span> 725 intmousespeed=10 726 727 <span class="hljs-keyword">while</span> <span class="hljs-built_in">read</span> oneline 728 <span class="hljs-keyword">do</span> 729 keyline=$(<span class="hljs-built_in">echo</span> <span class="hljs-variable">$oneline</span> | grep <span class="hljs-string">" key "</span>) 730 <span class="hljs-built_in">echo</span> <span class="hljs-variable">$keyline</span> --- debugAllLines 731 <span class="hljs-keyword">if</span> [ -n <span class="hljs-string">"<span class="hljs-variable">$keyline</span>"</span> ]; <span class="hljs-keyword">then</span> 732 datnow=$(date +%s%N) 733 datdiff=$(((<span class="hljs-variable">$datnow</span> - <span class="hljs-variable">$datlastkey</span>) / 1000000)) <span class="hljs-comment">#bla bla key pressed: previous channel (123)</span> 734 strkey=$(grep -oP <span class="hljs-string">'(?<=sed: ).*?(?= \()'</span> <<< <span class="hljs-string">"<span class="hljs-variable">$keyline</span>"</span>) <span class="hljs-comment">#bla bla key pres-->sed: >>previous channel<< (<--123)</span> 735 strstat=$(grep -oP <span class="hljs-string">'(?<=key ).*?(?=:)'</span> <<< <span class="hljs-string">"<span class="hljs-variable">$keyline</span>"</span>) <span class="hljs-comment">#bla bla -->key >>pressed<<:<-- previous channel (123)</span> 736 strpressed=$(<span class="hljs-built_in">echo</span> <span class="hljs-variable">$strstat</span> | grep <span class="hljs-string">"pressed"</span>) 737 strreleased=$(<span class="hljs-built_in">echo</span> <span class="hljs-variable">$strstat</span> | grep <span class="hljs-string">"released"</span>) 738 <span class="hljs-keyword">if</span> [ -n <span class="hljs-string">"<span class="hljs-variable">$strpressed</span>"</span> ]; <span class="hljs-keyword">then</span> 739 strid=$(grep -oP <span class="hljs-string">'(\[ ).*?(\])'</span> <<< <span class="hljs-string">"<span class="hljs-variable">$keyline</span>"</span>) <span class="hljs-comment"># get the id from the debug line to ingnore dupe detection.</span> 740 <span class="hljs-comment">#echo $keyline --- debug</span> 741 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$strkey</span>"</span> = <span class="hljs-string">"<span class="hljs-variable">$strlastkey</span>"</span> ] && [ <span class="hljs-string">"<span class="hljs-variable">$datdiff</span>"</span> -lt <span class="hljs-string">"<span class="hljs-variable">$intmsbetweenkeys</span>"</span> ]; <span class="hljs-keyword">then</span> 742 intkeychar=$((intkeychar + 1)) <span class="hljs-comment">#same key pressed for a different char</span> 743 <span class="hljs-keyword">else</span> 744 intkeychar=0 <span class="hljs-comment">#different key / too far apart</span> 745 <span class="hljs-keyword">fi</span> 746 datlastkey=<span class="hljs-variable">$datnow</span> 747 strlastkey=<span class="hljs-variable">$strkey</span> 748 <span class="hljs-keyword">if</span> [ <span class="hljs-string">"<span class="hljs-variable">$strid</span>"</span> != <span class="hljs-string">"<span class="hljs-variable">$strlastid</span>"</span> ]; <span class="hljs-keyword">then</span> 749 <span class="hljs-keyword">case</span> <span class="hljs-string">"<span class="hljs-variable">$strkey</span>"</span> <span class="hljs-keyword">in</span> 750 <span class="hljs-string">"1"</span>) 751 xdotool key <span class="hljs-string">"BackSpace"</span> 752 ;; 753 <span class="hljs-string">"2"</span>) 754 keychar <span class="hljs-string">"abc2"</span> intkeychar 755 ;; 756 <span class="hljs-string">"3"</span>) 757 keychar <span class="hljs-string">"def3"</span> intkeychar 758 ;; 759 <span class="hljs-string">"4"</span>) 760 keychar <span class="hljs-string">"ghi4"</span> intkeychar 761 ;; 762 <span class="hljs-string">"5"</span>) 763 keychar <span class="hljs-string">"jkl5"</span> intkeychar 764 ;; 765 <span class="hljs-string">"6"</span>) 766 keychar <span class="hljs-string">"mno6"</span> intkeychar 767 ;; 768 <span class="hljs-string">"7"</span>) 769 keychar <span class="hljs-string">"pqrs7"</span> intkeychar 770 ;; 771 <span class="hljs-string">"8"</span>) 772 keychar <span class="hljs-string">"tuv8"</span> intkeychar 773 ;; 774 <span class="hljs-string">"9"</span>) 775 keychar <span class="hljs-string">"wxyz9"</span> intkeychar 776 ;; 777 <span class="hljs-string">"0"</span>) 778 keychar <span class="hljs-string">" 0.-"</span> intkeychar 779 ;; 780 <span class="hljs-string">"previous channel"</span>) 781 xdotool key <span class="hljs-string">"Return"</span> <span class="hljs-comment">#Enter</span> 782 ;; 783 <span class="hljs-string">"channel up"</span>) 784 xdotool click 4 <span class="hljs-comment">#mouse scroll up</span> 785 ;; 786 <span class="hljs-string">"channel down"</span>) 787 xdotool click 5 <span class="hljs-comment">#mouse scroll down</span> 788 ;; 789 <span class="hljs-string">"channels list"</span>) 790 xdotool click 3 <span class="hljs-comment">#right mouse button click</span> 791 ;; 792 <span class="hljs-string">"up"</span>) 793 intpixels=$((-1 * intmousespeed)) 794 xdotool mousemove_relative -- 0 <span class="hljs-variable">$intpixels</span> <span class="hljs-comment">#move mouse up</span> 795 intmousespeed=$((intmousespeed + intmouseacc)) <span class="hljs-comment">#speed up</span> 796 ;; 797 <span class="hljs-string">"down"</span>) 798 intpixels=$(( 1 * intmousespeed)) 799 xdotool mousemove_relative -- 0 <span class="hljs-variable">$intpixels</span> <span class="hljs-comment">#move mouse down</span> 800 intmousespeed=$((intmousespeed + intmouseacc)) <span class="hljs-comment">#speed up</span> 801 ;; 802 <span class="hljs-string">"left"</span>) 803 intpixels=$((-1 * intmousespeed)) 804 xdotool mousemove_relative -- <span class="hljs-variable">$intpixels</span> 0 <span class="hljs-comment">#move mouse left</span> 805 intmousespeed=$((intmousespeed + intmouseacc)) <span class="hljs-comment">#speed up</span> 806 ;; 807 <span class="hljs-string">"right"</span>) 808 intpixels=$(( 1 * intmousespeed)) 809 xdotool mousemove_relative -- <span class="hljs-variable">$intpixels</span> 0 <span class="hljs-comment">#move mouse right</span> 810 intmousespeed=$((intmousespeed + intmouseacc)) <span class="hljs-comment">#speed up</span> 811 ;; 812 <span class="hljs-string">"select"</span>) 813 xdotool click 1 <span class="hljs-comment">#left mouse button click</span> 814 ;; 815 <span class="hljs-string">"return"</span>) 816 xdotool key <span class="hljs-string">"Alt_L+Left"</span> <span class="hljs-comment">#WWW-Back</span> 817 ;; 818 <span class="hljs-string">"exit"</span>) 819 <span class="hljs-built_in">echo</span> Key Pressed: EXIT 820 ;; 821 <span class="hljs-string">"F2"</span>) 822 chromium-browser <span class="hljs-string">"https://www.youtube.com"</span> & 823 ;; 824 <span class="hljs-string">"F3"</span>) 825 chromium-browser <span class="hljs-string">"https://www.google.com"</span> & 826 ;; 827 <span class="hljs-string">"F4"</span>) 828 <span class="hljs-built_in">echo</span> Key Pressed: YELLOW C 829 sync;sync;shutdown -h now 830 ;; 831 <span class="hljs-string">"F1"</span>) 832 chromium-browser --incognito <span class="hljs-string">"https://www.google.com"</span> & 833 ;; 834 <span class="hljs-string">"rewind"</span>) 835 <span class="hljs-built_in">echo</span> Key Pressed: REWIND 836 ;; 837 <span class="hljs-string">"pause"</span>) 838 <span class="hljs-built_in">echo</span> Key Pressed: PAUSE 839 ;; 840 <span class="hljs-string">"Fast forward"</span>) 841 <span class="hljs-built_in">echo</span> Key Pressed: FAST FORWARD 842 ;; 843 <span class="hljs-string">"play"</span>) 844 <span class="hljs-built_in">echo</span> Key Pressed: PLAY 845 ;; 846 <span class="hljs-string">"stop"</span>) 847 <span class="hljs-comment">## with my remote I only got "STOP" as key released (auto-released), not as key pressed; see below</span> 848 <span class="hljs-built_in">echo</span> Key Pressed: STOP 849 ;; 850 *) 851 <span class="hljs-built_in">echo</span> Unrecognized Key Pressed: <span class="hljs-variable">$strkey</span> ; CEC Line: <span class="hljs-variable">$keyline</span> 852 ;; 853 854 <span class="hljs-keyword">esac</span> 855 <span class="hljs-keyword">else</span> 856 <span class="hljs-built_in">echo</span> Ignoring key <span class="hljs-variable">$strkey</span> with duplicate id <span class="hljs-variable">$strid</span> 857 <span class="hljs-keyword">fi</span> 858 <span class="hljs-comment"># store the id of the keypress to check for duplicate press count.</span> 859 strlastid=<span class="hljs-variable">$strid</span> 860 <span class="hljs-keyword">fi</span> 861 <span class="hljs-keyword">if</span> [ -n <span class="hljs-string">"<span class="hljs-variable">$strreleased</span>"</span> ]; <span class="hljs-keyword">then</span> 862 <span class="hljs-comment">#echo $keyline --- debug</span> 863 <span class="hljs-keyword">case</span> <span class="hljs-string">"<span class="hljs-variable">$strkey</span>"</span> <span class="hljs-keyword">in</span> 864 <span class="hljs-string">"stop"</span>) 865 <span class="hljs-built_in">echo</span> Key Released: STOP 866 ;; 867 <span class="hljs-string">"up"</span>) 868 intmousespeed=<span class="hljs-variable">$intmousestartspeed</span> <span class="hljs-comment">#reset mouse speed</span> 869 ;; 870 <span class="hljs-string">"down"</span>) 871 intmousespeed=<span class="hljs-variable">$intmousestartspeed</span> <span class="hljs-comment">#reset mouse speed</span> 872 ;; 873 <span class="hljs-string">"left"</span>) 874 intmousespeed=<span class="hljs-variable">$intmousestartspeed</span> <span class="hljs-comment">#reset mouse speed</span> 875 ;; 876 <span class="hljs-string">"right"</span>) 877 intmousespeed=<span class="hljs-variable">$intmousestartspeed</span> <span class="hljs-comment">#reset mouse speed</span> 878 ;; 879 <span class="hljs-keyword">esac</span> 880 <span class="hljs-keyword">fi</span> 881 <span class="hljs-keyword">fi</span> 882 <span class="hljs-keyword">done</span></code></pre></div><section class="post-menu-area clearfix"><nav class="post-controls clearfix"><div class="actions"><div class="double-button"><button class="widget-button btn-flat toggle-like like no-text btn-icon" aria-label="like this post" title="like this post"><svg class="fa d-icon d-icon-d-unliked svg-icon svg-node" aria-hidden="true"><use xlink:href="#far-heart"></use></svg></button></div><button class="widget-button btn-flat share no-text btn-icon" aria-label="share a link to this post" title="share a link to this post" data-share-url="/t/controlling-raspberry-pi-with-tv-remote-using-hdmi-cec/4250/4" data-post-number="4"><svg class="fa d-icon d-icon-link svg-icon svg-node" aria-hidden="true"><use xlink:href="#link"></use></svg></button></div></nav></section></div><section class="post-actions"> 883 </section><div class="post-links-container"></div></div></div></article></div></div></div> 884 885 <div id="ember30" class="loading-container ember-view"> 886 </div> 887 </div> 888 <div id="topic-bottom"></div> 889 890 <div id="ember31" class="loading-container ember-view"> 891 <!----> 892 <!----> 893 <!----> 894 <div id="ember32" class="topic-status-info ember-view"></div> 895 896 <div id="topic-footer-buttons"> 897 <button aria-label="Reply" id="ember33" class="btn-primary pull-right btn btn-icon-text ember-view"> <svg class="fa d-icon d-icon-reply svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use xlink:href="#reply"></use></svg> 898 899 <span class="d-button-label">Reply<!----></span> 900 901 902 </button> 903 </div> 904 905 <!----> 906 <span id="ember34" class="ember-view"><!----></span> 907 <div class=" suggested-topics-wrapper"> 908 <!----> <div id="suggested-topics" class="suggested-topics ember-view"><h3 class="suggested-topics-title">Suggested Topics</h3> 909 <div class="topics"> 910 <div id="ember35" class="ember-view"><div id="ember36" class="loading-container ember-view"> <!----> 911 <table id="ember37" class="topic-list ember-view"> <thead> 912 <tr><th data-sort-order="default" class="default">Topic</th> 913 914 <th data-sort-order="posts" class="posts num">Replies</th> 915 916 <th data-sort-order="views" class="views num">Views</th> 917 918 <th data-sort-order="activity" class="activity num">Activity</th> 919 920 </tr> 921 </thead> 922 923 <!----> 924 925 <tbody> 926 <tr data-topic-id="18632" id="ember40" class="topic-list-item category-tips-tricks-and-tutorials-raspberry-pi-tips tag-system ember-view"> 927 <td class="main-link clearfix" colspan="1"> 928 <span class="link-top-line"><a href="https://ubuntu-mate.community/t/unofficial-ubuntu-mate-18-04-beta-for-the-raspberry-pi-3-arm64/18632" class="title raw-link raw-topic-link" data-topic-id="18632">(UNOFFICIAL) Ubuntu MATE 18.04 beta for the Raspberry Pi 3 (ARM64)</a><span class="topic-post-badges"></span> 929 </span> 930 <div class="link-bottom-line"> 931 <a class="badge-wrapper bullet" href="https://ubuntu-mate.community/c/tips-tricks-and-tutorials/raspberry-pi-tips"><span class="badge-category-parent-bg" style="background-color: #A6748F;"></span><span class="badge-category-bg" style="background-color: #C6043C;"></span><span data-drop-close="true" class="badge-category clear-badge" title="Topics sharing tips and tricks specifically for the Raspberry Pi port."><span class="category-name">Raspberry Pi</span></span></a> 932 <div class="discourse-tags"><a href="https://ubuntu-mate.community/tags/system" data-tag-name="system" class="discourse-tag box">system</a> </div> 933 934 </div> 935 </td> 936 937 938 <td class="num posts-map posts heatmap-" title="This topic has 4 replies"> 939 <a href="" class="posts-map badge-posts heatmap-"> 940 941 <span class="number">4</span> 942 </a> 943 </td> 944 945 946 947 948 <td class="num views heatmap-low"><span class="number" title="this topic has been viewed 1,259 times">1.3k</span></td> 949 950 <td class="num age activity" title="First post: 29 Dec 2018 14:32 951 Posted: 8 Jan 2019 02:35"> 952 <a class="post-activity" href="https://ubuntu-mate.community/t/unofficial-ubuntu-mate-18-04-beta-for-the-raspberry-pi-3-arm64/18632/6"><span class="relative-date" data-time="1546929355187" data-format="tiny">8 Jan</span></a> 953 </td> 954 955 </tr> 956 <!----> 957 <tr data-topic-id="18125" id="ember42" class="topic-list-item category-tips-tricks-and-tutorials-raspberry-pi-tips tag-system tag-installation ember-view"> 958 <td class="main-link clearfix" colspan="1"> 959 <span class="link-top-line"><a href="https://ubuntu-mate.community/t/how-to-set-up-and-upgrade-ubuntu-mate-16-04-on-a-pi-2-3-3b/18125" class="title raw-link raw-topic-link" data-topic-id="18125">[How-To] Set Up and Upgrade Ubuntu MATE 16.04 on a Pi 2/3/3B+</a><span class="topic-post-badges"></span> 960 </span> 961 <div class="link-bottom-line"> 962 <a class="badge-wrapper bullet" href="https://ubuntu-mate.community/c/tips-tricks-and-tutorials/raspberry-pi-tips"><span class="badge-category-parent-bg" style="background-color: #A6748F;"></span><span class="badge-category-bg" style="background-color: #C6043C;"></span><span data-drop-close="true" class="badge-category clear-badge" title="Topics sharing tips and tricks specifically for the Raspberry Pi port."><span class="category-name">Raspberry Pi</span></span></a> 963 <div class="discourse-tags"><a href="https://ubuntu-mate.community/tags/system" data-tag-name="system" class="discourse-tag box">system</a> <a href="https://ubuntu-mate.community/tags/installation" data-tag-name="installation" class="discourse-tag box">installation</a> </div> 964 965 </div> 966 </td> 967 968 969 <td class="num posts-map posts heatmap-" title="This topic has 5 replies"> 970 <a href="" class="posts-map badge-posts heatmap-"> 971 972 <span class="number">5</span> 973 </a> 974 </td> 975 976 977 978 979 <td class="num views heatmap-high"><span class="number" title="this topic has been viewed 5,805 times">5.8k</span></td> 980 981 <td class="num age coldmap-low activity" title="First post: 28 Oct 2018 00:12 982 Posted: 4 Dec 2018 12:54"> 983 <a class="post-activity" href="https://ubuntu-mate.community/t/how-to-set-up-and-upgrade-ubuntu-mate-16-04-on-a-pi-2-3-3b/18125/7"><span class="relative-date with-year" data-time="1543942459847" data-format="tiny">Dec '18</span></a> 984 </td> 985 986 </tr> 987 <!----> 988 <tr data-topic-id="19302" id="ember44" class="topic-list-item category-tips-tricks-and-tutorials-raspberry-pi-tips ember-view"> 989 <td class="main-link clearfix" colspan="1"> 990 <span class="link-top-line"><a href="https://ubuntu-mate.community/t/tutorial-installing-ubuntu-mate-on-a-raspberry-pi-from-its-foss/19302" class="title raw-link raw-topic-link" data-topic-id="19302">[Tutorial] Installing Ubuntu MATE on a Raspberry Pi from It’s FOSS</a><span class="topic-post-badges"></span> 991 </span> 992 <div class="link-bottom-line"> 993 <a class="badge-wrapper bullet" href="https://ubuntu-mate.community/c/tips-tricks-and-tutorials/raspberry-pi-tips"><span class="badge-category-parent-bg" style="background-color: #A6748F;"></span><span class="badge-category-bg" style="background-color: #C6043C;"></span><span data-drop-close="true" class="badge-category clear-badge" title="Topics sharing tips and tricks specifically for the Raspberry Pi port."><span class="category-name">Raspberry Pi</span></span></a> 994 995 996 </div> 997 </td> 998 999 1000 <td class="num posts-map posts heatmap-" title="This topic has 1 reply"> 1001 <a href="" class="posts-map badge-posts heatmap-"> 1002 1003 <span class="number">1</span> 1004 </a> 1005 </td> 1006 1007 1008 1009 1010 <td class="num views "><span class="number" title="this topic has been viewed 513 times">513</span></td> 1011 1012 <td class="num age activity" title="First post: 12 Apr 2019 11:32 1013 Posted: 13 Apr 2019 00:44"> 1014 <a class="post-activity" href="https://ubuntu-mate.community/t/tutorial-installing-ubuntu-mate-on-a-raspberry-pi-from-its-foss/19302/2"><span class="relative-date" data-time="1555130653508" data-format="tiny">13 Apr</span></a> 1015 </td> 1016 1017 </tr> 1018 <!----> 1019 <tr data-topic-id="18471" id="ember46" class="topic-list-item category-tips-tricks-and-tutorials-raspberry-pi-tips ember-view"> 1020 <td class="main-link clearfix" colspan="1"> 1021 <span class="link-top-line"><a href="https://ubuntu-mate.community/t/how-to-enable-support-for-raspberry-pi-3b-and-3a-in-ubuntu-mate/18471" class="title raw-link raw-topic-link" data-topic-id="18471">How to enable support for Raspberry Pi 3B+ and 3A+ in Ubuntu MATE</a><span class="topic-post-badges"></span> 1022 </span> 1023 <div class="link-bottom-line"> 1024 <a class="badge-wrapper bullet" href="https://ubuntu-mate.community/c/tips-tricks-and-tutorials/raspberry-pi-tips"><span class="badge-category-parent-bg" style="background-color: #A6748F;"></span><span class="badge-category-bg" style="background-color: #C6043C;"></span><span data-drop-close="true" class="badge-category clear-badge" title="Topics sharing tips and tricks specifically for the Raspberry Pi port."><span class="category-name">Raspberry Pi</span></span></a> 1025 1026 1027 </div> 1028 </td> 1029 1030 1031 <td class="num posts-map posts heatmap-" title="This topic has 12 replies"> 1032 <a href="" class="posts-map badge-posts heatmap-"> 1033 1034 <span class="number">12</span> 1035 </a> 1036 </td> 1037 1038 1039 1040 1041 <td class="num views heatmap-med"><span class="number" title="this topic has been viewed 2,193 times">2.2k</span></td> 1042 1043 <td class="num age coldmap-low activity" title="First post: 4 Dec 2018 16:26 1044 Posted: 12 Jan 2019 13:25"> 1045 <a class="post-activity" href="https://ubuntu-mate.community/t/how-to-enable-support-for-raspberry-pi-3b-and-3a-in-ubuntu-mate/18471/14"><span class="relative-date" data-time="1547313921761" data-format="tiny">12 Jan</span></a> 1046 </td> 1047 1048 </tr> 1049 <!----> 1050 <tr data-topic-id="18797" id="ember48" class="topic-list-item category-tips-tricks-and-tutorials-raspberry-pi-tips ember-view"> 1051 <td class="main-link clearfix" colspan="1"> 1052 <span class="link-top-line"><a href="https://ubuntu-mate.community/t/adapting-ubuntu-mate-16-04-image-to-run-on-the-3b-3a/18797" class="title raw-link raw-topic-link" data-topic-id="18797">Adapting Ubuntu MATE 16.04 image to run on the 3B+/3A+</a><span class="topic-post-badges"></span> 1053 </span> 1054 <div class="link-bottom-line"> 1055 <a class="badge-wrapper bullet" href="https://ubuntu-mate.community/c/tips-tricks-and-tutorials/raspberry-pi-tips"><span class="badge-category-parent-bg" style="background-color: #A6748F;"></span><span class="badge-category-bg" style="background-color: #C6043C;"></span><span data-drop-close="true" class="badge-category clear-badge" title="Topics sharing tips and tricks specifically for the Raspberry Pi port."><span class="category-name">Raspberry Pi</span></span></a> 1056 1057 1058 </div> 1059 </td> 1060 1061 1062 <td class="num posts-map posts heatmap-" title="This topic has 1 reply"> 1063 <a href="" class="posts-map badge-posts heatmap-"> 1064 1065 <span class="number">1</span> 1066 </a> 1067 </td> 1068 1069 1070 1071 1072 <td class="num views "><span class="number" title="this topic has been viewed 865 times">865</span></td> 1073 1074 <td class="num age activity" title="First post: 21 Jan 2019 17:51 1075 Posted: 1 Feb 2019 14:18"> 1076 <a class="post-activity" href="https://ubuntu-mate.community/t/adapting-ubuntu-mate-16-04-image-to-run-on-the-3b-3a/18797/2"><span class="relative-date" data-time="1549045113480" data-format="tiny">1 Feb</span></a> 1077 </td> 1078 1079 </tr> 1080 <!----> 1081 </tbody> 1082 </table> 1083 1084 </div></div> 1085 </div> 1086 1087 <h3 class="suggested-topics-message">Want to read more? Browse other topics in <a class="badge-wrapper bullet" href="https://ubuntu-mate.community/c/tips-tricks-and-tutorials/raspberry-pi-tips"><span class="badge-category-parent-bg" style="background-color: #A6748F;"></span><span class="badge-category-bg" style="background-color: #C6043C;"></span><span data-drop-close="true" class="badge-category clear-badge" title="Topics sharing tips and tricks specifically for the Raspberry Pi port."><span class="category-name">Raspberry Pi</span></span></a> or <a href="https://ubuntu-mate.community/latest">view latest topics</a>.</h3> 1088 </div> 1089 </div> 1090 1091 </div> 1092 </section> 1093 </div> 1094 1095 </div> 1096 1097 <div id="share-link" class="ember-view"><div class="title"> 1098 <h3>[en.share.topic]</h3> 1099 1100 <!----></div> 1101 1102 <div> 1103 <input type="text"> 1104 <div class="share-for-touch"><div class="overflow-ellipsis"><a></a></div></div> 1105 </div> 1106 1107 <div class="actions"> 1108 <div class="sources"> 1109 <div id="ember50" class="social-link ember-view"><a href="" title="Share this link on Twitter" aria-label="Share this link on Twitter" data-ember-action="" data-ember-action-51="51"> 1110 <svg class="fa d-icon d-icon-fab-twitter-square svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use xlink:href="#fab-twitter-square"></use></svg> 1111 </a> 1112 </div> 1113 <div id="ember53" class="social-link ember-view"><a href="" title="Share this link on Facebook" aria-label="Share this link on Facebook" data-ember-action="" data-ember-action-54="54"> 1114 <svg class="fa d-icon d-icon-fab-facebook-square svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use xlink:href="#fab-facebook-square"></use></svg> 1115 </a> 1116 </div> 1117 <div id="ember56" class="social-link ember-view"><a href="" title="Send this link in an email" aria-label="Send this link in an email" data-ember-action="" data-ember-action-57="57"> 1118 <svg class="fa d-icon d-icon-envelope-square svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use xlink:href="#envelope-square"></use></svg> 1119 </a> 1120 </div> 1121 </div> 1122 1123 <div class="alt-actions"> 1124 <!----> 1125 <a href="" class="close-share" aria-label="close" title="close" data-ember-action="" data-ember-action-58="58"> 1126 <svg class="fa d-icon d-icon-times svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use xlink:href="#times"></use></svg> 1127 </a> 1128 </div> 1129 </div> 1130 </div> 1131 1132 <!----></div> 1133 <!----> 1134 <div id="user-card" class="show-badges no-bg ember-view"><!----></div> 1135 1136 <div id="group-card" class="no-bg show-badges ember-view"><!----></div> 1137 1138 </div> 1139 1140 <span id="ember59" class="ember-view"><!----></span> 1141 <div id="ember60" class="ember-view"><div id="mate-footer"> 1142 <div class="wrap"> 1143 <div class="left text"> 1144 <!--div id="copyright">For a retrospective future, powered by <a href="https://www.discourse.org/">Discourse</a>.</div--> 1145 <div id="license">User contributions are licensed under a <a target="_blank" rel="noopener" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_US">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</a>.</div> 1146 </div> 1147 <div class="right"> 1148 <div id="links"> 1149 <a href="https://ubuntu-mate.org/logo-guidelines">Logo Guidelines</a> 1150 <!--a href="https://ubuntu-mate.org/get-involved">Get Involved</a--> 1151 </div> 1152 <div id="social"> 1153 <a target="_blank" rel="noopener" title="Blog RSS Feed" href="https://ubuntu-mate.community/rss"><img src="RaspberryPITVHDMI_archivos/rss.svg" alt="Blog RSS Feed"></a> 1154 <a target="_blank" rel="noopener" title="Google+" href="https://ubuntu-mate.community/mastodon"><img src="RaspberryPITVHDMI_archivos/mastodon.svg" alt="Ubuntu MATE on Mastodon"></a> 1155 <a target="_blank" rel="noopener" title="Twitter" href="https://ubuntu-mate.community/twitter"><img src="RaspberryPITVHDMI_archivos/twitter.svg" alt="Ubuntu MATE on Twitter"></a> 1156 <a target="_blank" rel="noopener" title="Facebook" href="https://ubuntu-mate.community/facebook"><img src="RaspberryPITVHDMI_archivos/facebook.svg" alt="Ubuntu MATE on Facebook"></a> 1157 <a target="_blank" rel="noopener" title="YouTube" href="https://ubuntu-mate.community/youtube"><img src="RaspberryPITVHDMI_archivos/youtube.svg" alt="Ubuntu MATE on YouTube"></a> 1158 </div> 1159 </div> 1160 </div> 1161 </div> 1162 1163 </div> 1164 <span id="ember61" class="ember-view"><!----></span> 1165 1166 <div data-keyboard="false" id="discourse-modal" class="hidden modal d-modal fixed-modal ember-view"><div class="modal-outer-container"> 1167 <div class="modal-middle-container"> 1168 <div class="modal-inner-container"> 1169 <div class="modal-header"> 1170 <div class="modal-close"> 1171 <a class="close" href="" data-ember-action="" data-ember-action-63="63"> 1172 <svg class="fa d-icon d-icon-times svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use xlink:href="#times"></use></svg> 1173 </a> 1174 </div> 1175 1176 <div class="title"> 1177 <h3></h3> 1178 1179 <!----> </div> 1180 </div> 1181 1182 <div id="modal-alert"></div> 1183 1184 <div id="ember67" class="ember-view"></div> 1185 1186 1187 1188 <!----> </div> 1189 </div> 1190 </div> 1191 </div> 1192 <div id="topic-entrance" class="hidden ember-view"><button id="ember64" class="full jump-top btn no-text ember-view"><!----> 1193 <!----> 1194 <svg class="fa d-icon d-icon-step-backward svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use xlink:href="#step-backward"></use></svg> Invalid date 1195 1196 </button> 1197 <button id="ember65" class="full jump-bottom btn no-text ember-view"><!----> 1198 <!----> 1199 Invalid date <svg class="fa d-icon d-icon-step-forward svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use xlink:href="#step-forward"></use></svg> 1200 1201 </button></div> 1202 <div id="reply-control" class="closed show-preview ember-view"> <div class="grippie"></div> 1203 <!----> 1204 </div> 1205 1206 <!----></div></section> 1207 <div id="offscreen-content"> 1208 </div> 1209 <form id="hidden-login-form" method="post" action="/login" style="display: none;"> 1210 <input name="username" id="signin_username" type="text"> 1211 <input name="password" id="signin_password" type="password"> 1212 <input name="redirect" type="hidden"> 1213 <input id="signin-button" value="Log In" type="submit"> 1214 </form> 1215 <div class="hidden" id="data-preloaded" data-preloaded="{"site":"{\"default_archetype\":\"regular\",\"notification_types\":{\"mentioned\":1,\"replied\":2,\"quoted\":3,\"edited\":4,\"liked\":5,\"private_message\":6,\"invited_to_private_message\":7,\"invitee_accepted\":8,\"posted\":9,\"moved_post\":10,\"linked\":11,\"granted_badge\":12,\"invited_to_topic\":13,\"custom\":14,\"group_mentioned\":15,\"group_message_summary\":16,\"watching_first_post\":17,\"topic_reminder\":18,\"liked_consolidated\":19,\"post_approved\":20,\"code_review_commit_approved\":21},\"post_types\":{\"regular\":1,\"moderator_action\":2,\"small_action\":3,\"whisper\":4},\"groups\":[{\"id\":1,\"name\":\"admins\"},{\"id\":43,\"name\":\"Canonical\"},{\"id\":46,\"name\":\"Donator\"},{\"id\":42,\"name\":\"MATEDevelopers\"},{\"id\":2,\"name\":\"moderators\"},{\"id\":50,\"name\":\"Patreon\"},{\"id\":48,\"name\":\"QATeam\"},{\"id\":3,\"name\":\"staff\"},{\"id\":10,\"name\":\"trust_level_0\"},{\"id\":11,\"name\":\"trust_level_1\"},{\"id\":12,\"name\":\"trust_level_2\"},{\"id\":13,\"name\":\"trust_level_3\"},{\"id\":14,\"name\":\"trust_level_4\"},{\"id\":44,\"name\":\"UbuntuMATEDevelopers\"},{\"id\":51,\"name\":\"UbuntuMATEGuardians\"},{\"id\":47,\"name\":\"Verified\"}],\"filters\":[\"latest\",\"unread\",\"new\",\"read\",\"posted\",\"bookmarks\"],\"periods\":[\"all\",\"yearly\",\"quarterly\",\"monthly\",\"weekly\",\"daily\"],\"top_menu_items\":[\"latest\",\"unread\",\"new\",\"read\",\"posted\",\"bookmarks\",\"category\",\"categories\",\"top\"],\"anonymous_top_menu_items\":[\"latest\",\"top\",\"categories\",\"category\",\"categories\",\"top\"],\"uncategorized_category_id\":1,\"is_readonly\":false,\"disabled_plugins\":[\"discourse-narrative-bot\",\"discourse-nginx-performance-report\"],\"user_field_max_length\":2048,\"suppressed_from_latest_category_ids\":[],\"post_action_types\":[{\"id\":1,\"name_key\":\"bookmark\",\"name\":\"Bookmark\",\"description\":\"Bookmark this post\",\"short_description\":\"Bookmark this post\",\"long_form\":\"bookmarked this post\",\"is_flag\":false,\"is_custom_flag\":false},{\"id\":2,\"name_key\":\"like\",\"name\":\"Like\",\"description\":\"Like this post\",\"short_description\":\"Like this post\",\"long_form\":\"liked this\",\"is_flag\":false,\"is_custom_flag\":false},{\"id\":3,\"name_key\":\"off_topic\",\"name\":\"Off-Topic\",\"description\":\"This post is not relevant to the current discussion as defined by the title and first post, and should probably be moved elsewhere.\",\"short_description\":\"Not relevant to the discussion\",\"long_form\":\"flagged this as off-topic\",\"is_flag\":true,\"is_custom_flag\":false},{\"id\":4,\"name_key\":\"inappropriate\",\"name\":\"Inappropriate\",\"description\":\"This post contains content that a reasonable person would consider offensive, abusive, or a violation of \\u003ca href=\\\"/guidelines\\\"\\u003eour community guidelines\\u003c/a\\u003e.\",\"short_description\":\"A violation of \\u003ca href=\\\"/guidelines\\\"\\u003eour community guidelines\\u003c/a\\u003e\",\"long_form\":\"flagged this as inappropriate\",\"is_flag\":true,\"is_custom_flag\":false},{\"id\":8,\"name_key\":\"spam\",\"name\":\"Spam\",\"description\":\"This post is an advertisement, or vandalism. It is not useful or relevant to the current topic.\",\"short_description\":\"This is an advertisement or vandalism\",\"long_form\":\"flagged this as spam\",\"is_flag\":true,\"is_custom_flag\":false},{\"id\":6,\"name_key\":\"notify_user\",\"name\":\"Send @{{username}} a message\",\"description\":\"I want to talk to this person directly and personally about their post.\",\"short_description\":\"I want to talk to this person directly and personally about their post.\",\"long_form\":\"messaged user\",\"is_flag\":true,\"is_custom_flag\":true},{\"id\":7,\"name_key\":\"notify_moderators\",\"name\":\"Something Else\",\"description\":\"This post requires staff attention for another reason not listed above.\",\"short_description\":\"Requires staff attention for another reason\",\"long_form\":\"flagged this for staff attention\",\"is_flag\":true,\"is_custom_flag\":true}],\"topic_flag_types\":[{\"id\":4,\"name_key\":\"inappropriate\",\"name\":\"Inappropriate\",\"description\":\"This topic contains content that a reasonable person would consider offensive, abusive, or a violation of \\u003ca href=\\\"/guidelines\\\"\\u003eour community guidelines\\u003c/a\\u003e.\",\"short_description\":\"A violation of \\u003ca href=\\\"/guidelines\\\"\\u003eour community guidelines\\u003c/a\\u003e\",\"long_form\":\"flagged this as inappropriate\",\"is_flag\":true,\"is_custom_flag\":false},{\"id\":8,\"name_key\":\"spam\",\"name\":\"Spam\",\"description\":\"This topic is an advertisement. It is not useful or relevant to this site, but promotional in nature.\",\"short_description\":\"This is an advertisement\",\"long_form\":\"flagged this as spam\",\"is_flag\":true,\"is_custom_flag\":false},{\"id\":7,\"name_key\":\"notify_moderators\",\"name\":\"Something Else\",\"description\":\"This topic requires general staff attention based on the \\u003ca href=\\\"/guidelines\\\"\\u003eguidelines\\u003c/a\\u003e, \\u003ca href=\\\"/tos\\\"\\u003eTOS\\u003c/a\\u003e, or for another reason not listed above.\",\"short_description\":\"Requires staff attention for another reason\",\"long_form\":\"flagged this for moderator attention\",\"is_flag\":true,\"is_custom_flag\":true}],\"can_create_tag\":false,\"can_tag_topics\":null,\"can_tag_pms\":false,\"tags_filter_regexp\":\"[/\\\\?#\\\\[\\\\]@!\\\\$\\u0026'\\\\(\\\\)\\\\*\\\\+,;=\\\\.%\\\\\\\\`^\\\\s|\\\\{\\\\}\\\"\\u003c\\u003e]+\",\"top_tags\":[\"software\",\"system\",\"installation\",\"networking\",\"video\",\"Intel\",\"panel\",\"desktop\",\"themes\",\"caja\",\"18-04-bionic-LTS\",\"bugs\",\"HP\",\"audio\",\"boutique\",\"Lenovo\",\"Dell\",\"drivers\",\"security\",\"Asus\",\"16-04-xenial-LTS\",\"compiz\",\"kernel\",\"laptop\",\"internet\",\"partitioning\",\"updates\",\"17-10-artful\",\"NVIDIA\",\"terminal\"],\"topic_featured_link_allowed_category_ids\":[26,33,35,42,9,37,34,24,15,29,3,7,6,28,25,8,20,4,1,10,5,31,36,27,19,18,30],\"user_themes\":[{\"theme_id\":8,\"name\":\"Dark\",\"default\":false},{\"theme_id\":7,\"name\":\"Light\",\"default\":true}],\"censored_words\":\"shit|fuck|fucking|fucked|f u c k|bitch|dick|cunt|fag|piss|pissing|pissed|twat|shitting|bastard|arse|arsehole|bullshit|prick|shitty|s h i t|asshole|retard|retarded|dicking|shitload|dickhead|shite|pisses|fuckin|shiting|sh1t|bullsh1t|fuck3d\",\"categories\":[{\"id\":30,\"name\":\"Announcements\",\"color\":\"F5D081\",\"text_color\":\"000000\",\"slug\":\"announce\",\"topic_count\":60,\"post_count\":878,\"position\":0,\"description\":\"News and alerts about Ubuntu MATE, plus community forum updates.\",\"description_text\":\"News and alerts about Ubuntu MATE, plus community forum updates.\",\"topic_url\":\"/t/about-the-announcements-category/3859\",\"read_restricted\":false,\"permission\":null,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":false,\"sort_order\":null,\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":10,\"name\":\"Support \\u0026 Help Requests\",\"color\":\"729FCF\",\"text_color\":\"FFFFFF\",\"slug\":\"support\",\"topic_count\":5763,\"post_count\":34936,\"position\":1,\"description\":\"Need assistance with Ubuntu MATE or the MATE Desktop?\",\"description_text\":\"Need assistance with Ubuntu MATE or the MATE Desktop?\",\"topic_url\":\"/t/about-the-support-help-requests-category/17\",\"read_restricted\":false,\"permission\":null,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":true,\"sort_order\":\"\",\"sort_ascending\":null,\"show_subcategory_list\":true,\"num_featured_topics\":3,\"default_view\":\"latest\",\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":18,\"name\":\"Hardware\",\"color\":\"555753\",\"text_color\":\"FFFFFF\",\"slug\":\"hardware\",\"topic_count\":477,\"post_count\":2986,\"position\":2,\"description\":\"Topics may include driver related issues, compatibility reports, and diagnosing issues with specific hardware features.\",\"description_text\":\"Topics may include driver related issues, compatibility reports, and diagnosing issues with specific hardware features.\",\"topic_url\":\"/t/about-the-hardware-category/863\",\"read_restricted\":false,\"permission\":null,\"parent_category_id\":10,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":false,\"sort_order\":null,\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":19,\"name\":\"Raspberry Pi\",\"color\":\"C6043C\",\"text_color\":\"FFFFFF\",\"slug\":\"raspberry-pi\",\"topic_count\":872,\"post_count\":4533,\"position\":3,\"description\":\"Topics relating to the Raspberry Pi port of Ubuntu MATE.\",\"description_text\":\"Topics relating to the Raspberry Pi port of Ubuntu MATE.\",\"topic_url\":\"/t/about-the-raspberry-pi-support-category/2478\",\"read_restricted\":false,\"permission\":null,\"parent_category_id\":10,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":false,\"sort_order\":\"\",\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":\"\",\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":20,\"name\":\"PowerPC\",\"color\":\"BABDB6\",\"text_color\":\"FFFFFF\",\"slug\":\"powerpc\",\"topic_count\":90,\"post_count\":702,\"position\":4,\"description\":\"Topics relating to PowerPCs, which were common in Macs pre-2006 before Apple switched to Intel processors.\",\"description_text\":\"Topics relating to PowerPCs, which were common in Macs pre-2006 before Apple switched to Intel processors.\",\"topic_url\":\"/t/about-the-powerpc-category/3122\",\"read_restricted\":false,\"permission\":null,\"parent_category_id\":10,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":false,\"sort_order\":null,\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":31,\"name\":\"Thoughts \\u0026 Feedback\",\"color\":\"38B44A\",\"text_color\":\"FFFFFF\",\"slug\":\"feedback\",\"topic_count\":548,\"post_count\":4546,\"position\":5,\"description\":\"Post your thoughts and comments about the distribution.\",\"description_text\":\"Post your thoughts and comments about the distribution.\",\"topic_url\":\"/t/about-the-thoughts-feedback-category/5167\",\"read_restricted\":false,\"permission\":null,\"notification_level\":1,\"topic_template\":null,\"has_children\":false,\"sort_order\":null,\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":15,\"name\":\"Development Discussion\",\"color\":\"BC1142\",\"text_color\":\"FFFFFF\",\"slug\":\"development-discussion\",\"topic_count\":634,\"post_count\":5457,\"position\":6,\"description\":\"Topics discussing development related matters and ideas, but is \\u003cstrong\\u003enot\\u003c/strong\\u003e the place for bug reports.\",\"description_text\":\"Topics discussing development related matters and ideas, but is not the place for bug reports.\",\"topic_url\":\"/t/about-the-development-discussion-category/83\",\"read_restricted\":false,\"permission\":null,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":true,\"sort_order\":\"\",\"sort_ascending\":null,\"show_subcategory_list\":true,\"num_featured_topics\":3,\"default_view\":\"latest\",\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":25,\"name\":\"Translations\",\"color\":\"EFB73E\",\"text_color\":\"FFFFFF\",\"slug\":\"translations\",\"topic_count\":37,\"post_count\":354,\"position\":7,\"description\":\"Speak multiple languages? Help Ubuntu MATE become available to many languages from around the world!\",\"description_text\":\"Speak multiple languages? Help Ubuntu MATE become available to many languages from around the world!\",\"topic_url\":\"/t/about-the-translations-category/3303\",\"read_restricted\":false,\"permission\":null,\"parent_category_id\":15,\"notification_level\":1,\"topic_template\":null,\"has_children\":false,\"sort_order\":null,\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":9,\"name\":\"Tips, Tricks and Tutorials\",\"color\":\"A6748F\",\"text_color\":\"FFFFFF\",\"slug\":\"tips-tricks-and-tutorials\",\"topic_count\":1,\"post_count\":8,\"position\":16,\"description\":\"If you have a tutorial, how to or other useful tips to share about Ubuntu MATE, then fit them in to one of these subcategories:\",\"description_text\":\"If you have a tutorial, how to or other useful tips to share about Ubuntu MATE, then fit them in to one of these subcategories:\",\"topic_url\":\"/t/about-the-tips-tricks-and-tutorials-category/16\",\"read_restricted\":false,\"permission\":null,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":true,\"sort_order\":\"\",\"sort_ascending\":null,\"show_subcategory_list\":true,\"num_featured_topics\":3,\"default_view\":\"latest\",\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":26,\"name\":\"Tutorials \\u0026 Guides\",\"color\":\"729FCF\",\"text_color\":\"FFFFFF\",\"slug\":\"tutorials-and-guides\",\"topic_count\":111,\"post_count\":710,\"position\":17,\"description\":\"Tutorials, guidance and how-to's for Ubuntu MATE that will help other users belong here.\",\"description_text\":\"Tutorials, guidance and how-to's for Ubuntu MATE that will help other users belong here.\",\"topic_url\":\"/t/about-the-tutorials-guides-category/3305\",\"read_restricted\":false,\"permission\":null,\"parent_category_id\":9,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":false,\"sort_order\":\"\",\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":27,\"name\":\"Tips \\u0026 Tricks\",\"color\":\"EFB73E\",\"text_color\":\"FFFFFF\",\"slug\":\"tips-and-tricks\",\"topic_count\":203,\"post_count\":765,\"position\":18,\"description\":\"Got something cool to share that will make Ubuntu MATE even more enjoyable and productive? This is the place to leave them.\",\"description_text\":\"Got something cool to share that will make Ubuntu MATE even more enjoyable and productive? This is the place to leave them.\",\"topic_url\":\"/t/about-the-tips-tricks-category/3306\",\"read_restricted\":false,\"permission\":null,\"parent_category_id\":9,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":false,\"sort_order\":\"\",\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":28,\"name\":\"Raspberry Pi\",\"color\":\"C6043C\",\"text_color\":\"FFFFFF\",\"slug\":\"raspberry-pi-tips\",\"topic_count\":46,\"post_count\":383,\"position\":19,\"description\":\"Topics sharing tips and tricks specifically for the Raspberry Pi port.\",\"description_text\":\"Topics sharing tips and tricks specifically for the Raspberry Pi port.\",\"topic_url\":\"/t/about-the-raspberry-pi-tips-tricks-tutorials-category/3307\",\"read_restricted\":false,\"permission\":null,\"parent_category_id\":9,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":false,\"sort_order\":\"\",\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":\"\",\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":29,\"name\":\"Tried \\u0026 Tested\",\"color\":\"7DCE89\",\"text_color\":\"FFFFFF\",\"slug\":\"tried-and-tested\",\"topic_count\":98,\"post_count\":581,\"position\":20,\"description\":\"Have you discovered something that works perfectly, or maybe nearly perfectly with some adjustments? This is the place to share them.\",\"description_text\":\"Have you discovered something that works perfectly, or maybe nearly perfectly with some adjustments? This is the place to share them.\",\"topic_url\":\"/t/about-the-tried-tested-category/3308\",\"read_restricted\":false,\"permission\":null,\"parent_category_id\":9,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":false,\"sort_order\":\"\",\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":24,\"name\":\"Multimedia Showcase\",\"color\":\"72CDCF\",\"text_color\":\"FFFFFF\",\"slug\":\"multimedia\",\"topic_count\":38,\"post_count\":171,\"position\":21,\"description\":\"Got a screenshot, a video or even wallpapers, themes and icons to share? This is the place to show them off.\",\"description_text\":\"Got a screenshot, a video or even wallpapers, themes and icons to share? This is the place to show them off.\",\"topic_url\":\"/t/about-the-multimedia-showcase-category/3302\",\"read_restricted\":false,\"permission\":null,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":true,\"sort_order\":\"\",\"sort_ascending\":null,\"show_subcategory_list\":true,\"num_featured_topics\":3,\"default_view\":\"latest\",\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":8,\"name\":\"Artwork\",\"color\":\"729FCF\",\"text_color\":\"FFFFFF\",\"slug\":\"artwork\",\"topic_count\":196,\"post_count\":1171,\"position\":22,\"description\":\"If you've created Ubuntu MATE artwork, such as themes or backgrounds, then share your work here.\",\"description_text\":\"If you've created Ubuntu MATE artwork, such as themes or backgrounds, then share your work here.\",\"topic_url\":\"/t/about-the-artwork-category/15\",\"read_restricted\":false,\"permission\":null,\"parent_category_id\":24,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":false,\"sort_order\":null,\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":7,\"name\":\"Screenshots\",\"color\":\"009F8E\",\"text_color\":\"FFFFFF\",\"slug\":\"screenshots\",\"topic_count\":105,\"post_count\":916,\"position\":23,\"description\":\"This is the place to share your epic Ubuntu MATE screenshots. \",\"description_text\":\"This is the place to share your epic Ubuntu MATE screenshots.\",\"topic_url\":\"/t/about-the-screenshots-category/14\",\"read_restricted\":false,\"permission\":null,\"parent_category_id\":24,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":false,\"sort_order\":null,\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":6,\"name\":\"Videos\",\"color\":\"EA5A5A\",\"text_color\":\"FFFFFF\",\"slug\":\"videos\",\"topic_count\":36,\"post_count\":178,\"position\":24,\"description\":\"If you've made, or found, a video review or showcase of Ubuntu MATE then share it here.\",\"description_text\":\"If you've made, or found, a video review or showcase of Ubuntu MATE then share it here.\",\"topic_url\":\"/t/about-the-videos-category/13\",\"read_restricted\":false,\"permission\":null,\"parent_category_id\":24,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":false,\"sort_order\":null,\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":5,\"name\":\"Media Coverage\",\"color\":\"E98866\",\"text_color\":\"FFFFFF\",\"slug\":\"media-coverage\",\"topic_count\":113,\"post_count\":517,\"position\":25,\"description\":\"When Ubuntu MATE is covered by the online or print media, this is the place to post links. \",\"description_text\":\"When Ubuntu MATE is covered by the online or print media, this is the place to post links.\",\"topic_url\":\"/t/about-the-media-coverage-category/12\",\"read_restricted\":false,\"permission\":null,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":false,\"sort_order\":null,\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":33,\"name\":\"Multilingual Discussions\",\"color\":\"5C3566\",\"text_color\":\"FFFFFF\",\"slug\":\"multilingual\",\"topic_count\":1,\"post_count\":1,\"position\":28,\"description\":\"A discussion area dedicated for our non-English speakers.\",\"description_text\":\"A discussion area dedicated for our non-English speakers.\",\"topic_url\":\"/t/about-the-multilingual-discussions-category/6094\",\"read_restricted\":false,\"permission\":null,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":true,\"sort_order\":\"\",\"sort_ascending\":null,\"show_subcategory_list\":true,\"num_featured_topics\":3,\"default_view\":\"latest\",\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":35,\"name\":\"Español\",\"color\":\"EFB73E\",\"text_color\":\"FFFFFF\",\"slug\":\"spanish\",\"topic_count\":82,\"post_count\":313,\"position\":29,\"description\":\"¡Habla sobre cualquier cosa sobre Ubuntu MATE! Tal como:\",\"description_text\":\"¡Habla sobre cualquier cosa sobre Ubuntu MATE! Tal como:\",\"topic_url\":\"/t/about-the-espanol-category/6096\",\"read_restricted\":false,\"permission\":null,\"parent_category_id\":33,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":false,\"sort_order\":null,\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":36,\"name\":\"Deutsch\",\"color\":\"DD4814\",\"text_color\":\"FFFFFF\",\"slug\":\"german\",\"topic_count\":26,\"post_count\":148,\"position\":30,\"description\":\"Sprechen Sie über irgendetwas verwandt zu Ubuntu MATE!; Sowie:\",\"description_text\":\"Sprechen Sie über irgendetwas verwandt zu Ubuntu MATE!; Sowie:\",\"topic_url\":\"/t/uber-die-deutsch-kategorie/6097\",\"read_restricted\":false,\"permission\":null,\"parent_category_id\":33,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":false,\"sort_order\":null,\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":34,\"name\":\"Français\",\"color\":\"005CE3\",\"text_color\":\"FFFFFF\",\"slug\":\"french\",\"topic_count\":27,\"post_count\":164,\"position\":31,\"description\":\"Vous pouvez parler de tout ce qui a rapport à Ubuntu MATE, tel que:\",\"description_text\":\"Vous pouvez parler de tout ce qui a rapport à Ubuntu MATE, tel que:\",\"topic_url\":\"/t/a-propos-de-la-categorie-francais/6095\",\"read_restricted\":false,\"permission\":null,\"parent_category_id\":33,\"notification_level\":1,\"topic_template\":\"\",\"has_children\":false,\"sort_order\":null,\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":3,\"name\":\"Meta\",\"color\":\"AEA79F\",\"text_color\":\"FFFFFF\",\"slug\":\"meta\",\"topic_count\":126,\"post_count\":894,\"position\":33,\"description\":\"Discussion about this site, how it works, and how we can improve it.\",\"description_text\":\"Discussion about this site, how it works, and how we can improve it.\",\"topic_url\":\"/t/about-the-meta-category/2\",\"read_restricted\":false,\"permission\":null,\"notification_level\":1,\"topic_template\":null,\"has_children\":false,\"sort_order\":null,\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null},{\"id\":1,\"name\":\"Uncategorized\",\"color\":\"CAC6C1\",\"text_color\":\"FFFFFF\",\"slug\":\"uncategorized\",\"topic_count\":318,\"post_count\":2204,\"position\":34,\"description\":\"Other topics related to Ubuntu, computing and the Linux ecosystem.\",\"description_text\":\"\",\"topic_url\":\"/t/\",\"read_restricted\":false,\"permission\":null,\"notification_level\":1,\"topic_template\":null,\"has_children\":false,\"sort_order\":null,\"sort_ascending\":null,\"show_subcategory_list\":false,\"num_featured_topics\":3,\"default_view\":null,\"subcategory_list_style\":\"rows_with_featured_topics\",\"default_top_period\":\"all\",\"minimum_required_tags\":0,\"navigate_to_first_post_after_read\":false,\"custom_fields\":{\"enable_accepted_answers\":null},\"uploaded_logo\":null,\"uploaded_background\":null}],\"trust_levels\":[{\"id\":0,\"name\":\"new user\"},{\"id\":1,\"name\":\"basic user\"},{\"id\":2,\"name\":\"member\"},{\"id\":3,\"name\":\"regular\"},{\"id\":4,\"name\":\"leader\"}],\"archetypes\":[{\"id\":\"regular\",\"name\":\"Regular Topic\",\"options\":[]},{\"id\":\"banner\",\"name\":\"Banner Topic\",\"options\":[]}],\"user_fields\":[{\"id\":1,\"name\":\"Language\",\"description\":\"What is your primary language?\",\"field_type\":\"text\",\"editable\":true,\"required\":false,\"show_on_profile\":true,\"show_on_user_card\":false,\"position\":1},{\"id\":2,\"name\":\"Primary Architecture\",\"description\":\"Which architecture do you commonly use to run Ubuntu MATE?\",\"field_type\":\"dropdown\",\"editable\":true,\"required\":false,\"show_on_profile\":true,\"show_on_user_card\":false,\"position\":2,\"options\":[\"32-bit (i386)\",\"64-bit (amd64)\",\"PowerPC\",\"Raspberry Pi 2 (armhf)\",\"Raspberry Pi 3 (armhf)\",\"Raspberry Pi 3 (arm64)\"]}],\"auth_providers\":[{\"name\":\"facebook\",\"custom_url\":null,\"pretty_name_override\":null,\"title_override\":null,\"message_override\":null,\"frame_width\":580,\"frame_height\":400,\"full_screen_login\":false,\"can_connect\":true,\"can_revoke\":true,\"icon\":\"fab-facebook\"},{\"name\":\"google_oauth2\",\"custom_url\":null,\"pretty_name_override\":null,\"title_override\":null,\"message_override\":null,\"frame_width\":850,\"frame_height\":500,\"full_screen_login\":false,\"can_connect\":true,\"can_revoke\":true,\"icon\":null},{\"name\":\"github\",\"custom_url\":null,\"pretty_name_override\":null,\"title_override\":null,\"message_override\":null,\"frame_width\":null,\"frame_height\":null,\"full_screen_login\":false,\"can_connect\":true,\"can_revoke\":true,\"icon\":\"fab-github\"},{\"name\":\"twitter\",\"custom_url\":null,\"pretty_name_override\":null,\"title_override\":null,\"message_override\":null,\"frame_width\":null,\"frame_height\":null,\"full_screen_login\":false,\"can_connect\":true,\"can_revoke\":true,\"icon\":\"fab-twitter\"},{\"name\":\"patreon\",\"custom_url\":null,\"pretty_name_override\":\"Patreon\",\"title_override\":\"with Patreon\",\"message_override\":\"Authentication with Patreon (make sure pop up blockers are not enabled)\",\"frame_width\":840,\"frame_height\":570,\"full_screen_login\":false,\"can_connect\":false,\"can_revoke\":false,\"icon\":null}]}","siteSettings":"{\"default_locale\":\"en\",\"title\":\"Ubuntu MATE Community\",\"short_site_description\":\"\",\"contact_email\":\"martin@ubuntu-mate.org\",\"contact_url\":\"\",\"logo\":\"/uploads/default/original/2X/0/0c41b826d1c81f42e55160501605d3c96ded0ae1.png\",\"logo_small\":\"/uploads/default/original/2X/0/0c41b826d1c81f42e55160501605d3c96ded0ae1.png\",\"digest_logo\":\"\",\"mobile_logo\":\"\",\"large_icon\":\"/uploads/default/original/2X/b/b6e5898171e425708770646c6a6af73d824309d4.png\",\"favicon\":\"/uploads/default/9/0e52734d1ef65035.ico\",\"apple_touch_icon\":\"/uploads/default/original/2X/1/14ea399f69eb3d52e32df958dbc6b6ed0d691eea.png\",\"allow_user_locale\":true,\"support_mixed_text_direction\":false,\"suggested_topics\":5,\"ga_universal_tracking_code\":\"\",\"ga_universal_domain_name\":\"auto\",\"gtm_container_id\":\"\",\"top_menu\":\"categories|latest|new|unread|starred|top\",\"post_menu\":\"like|share|flag|edit|bookmark|delete|admin|reply\",\"post_menu_hidden_items\":\"flag|bookmark|edit|delete|admin\",\"share_links\":\"twitter|facebook|email\",\"desktop_category_page_style\":\"categories_and_latest_topics\",\"category_colors\":\"AEA79F|CAC6C1|DD4814|E98866|38B44A|7DCE89|772953|A6748F|EFB73E|F5D081|DF382C|EA7D76\",\"category_style\":\"bullet\",\"enable_mobile_theme\":true,\"relative_date_duration\":30,\"fixed_category_positions\":true,\"fixed_category_positions_on_create\":false,\"enable_badges\":true,\"enable_badge_sql\":true,\"enable_whispers\":true,\"push_notifications_prompt\":true,\"vapid_public_key_bytes\":\"4|77|216|176|61|9|239|131|49|221|34|124|15|214|116|10|112|244|118|116|48|98|132|176|92|165|99|80|224|225|112|29|224|98|132|208|183|76|253|167|225|15|12|7|167|155|73|178|217|94|204|127|55|80|160|123|244|13|245|223|243|121|21|38|131\",\"invite_only\":false,\"login_required\":false,\"must_approve_users\":false,\"enable_local_logins\":true,\"enable_local_logins_via_email\":true,\"allow_new_registrations\":true,\"enable_signup_cta\":true,\"enable_sso\":false,\"sso_overrides_email\":false,\"sso_overrides_avatar\":false,\"min_username_length\":3,\"max_username_length\":20,\"unicode_usernames\":false,\"min_password_length\":10,\"min_admin_password_length\":15,\"logout_redirect\":\"\",\"full_name_required\":false,\"enable_names\":true,\"invites_per_page\":40,\"delete_user_max_post_age\":60,\"delete_all_posts_max\":15,\"prioritize_username_in_ux\":true,\"enable_user_directory\":true,\"allow_anonymous_posting\":false,\"anonymous_posting_min_trust_level\":1,\"hide_user_profiles_from_public\":false,\"hide_suspension_reasons\":false,\"ignored_users_count_message_threshold\":5,\"ignored_users_message_gap_days\":365,\"enable_group_directory\":true,\"enable_category_group_review\":false,\"min_post_length\":20,\"min_first_post_length\":20,\"min_personal_message_post_length\":10,\"max_post_length\":32000,\"topic_featured_link_enabled\":true,\"min_topic_title_length\":15,\"max_topic_title_length\":255,\"min_personal_message_title_length\":2,\"allow_uncategorized_topics\":true,\"min_title_similar_length\":10,\"enable_personal_messages\":true,\"enable_personal_email_messages\":false,\"edit_history_visible_to_public\":true,\"delete_removed_posts_after\":24,\"traditional_markdown_linebreaks\":false,\"enable_markdown_typographer\":false,\"enable_markdown_linkify\":true,\"markdown_linkify_tlds\":\"com|net|org|io|co|tv|ru|cn|us|uk|me|de|fr|fi|gov\",\"enable_rich_text_paste\":true,\"suppress_reply_directly_below\":true,\"suppress_reply_directly_above\":true,\"max_reply_history\":1,\"enable_mentions\":true,\"newuser_max_images\":1,\"newuser_max_attachments\":0,\"show_pinned_excerpt_mobile\":false,\"show_pinned_excerpt_desktop\":true,\"display_name_on_posts\":false,\"show_time_gap_days\":7,\"short_progress_text_threshold\":10000,\"default_code_lang\":\"bash\",\"autohighlight_all_code\":true,\"highlighted_languages\":\"bash|cpp|css|coffeescript|diff|xml|http|ini|json|java|javascript|makefile|markdown|ruby|perl|php|python\",\"enable_emoji\":true,\"enable_emoji_shortcuts\":true,\"emoji_set\":\"google\",\"emoji_autocomplete_min_chars\":0,\"enable_inline_emoji_translation\":false,\"code_formatting_style\":\"4-spaces-indent\",\"allowed_href_schemes\":\"\",\"watched_words_regular_expressions\":false,\"enable_advanced_editor_preview_sync\":false,\"old_post_notice_days\":14,\"email_time_window_mins\":10,\"disable_digest_emails\":false,\"email_in\":true,\"disable_emails\":\"no\",\"bounce_score_threshold\":4,\"max_image_size_kb\":4096,\"max_attachment_size_kb\":4096,\"authorized_extensions\":\"jpg|jpeg|png|gif|ico|svg|xcf.bz2|xcf.gz\",\"authorized_extensions_for_staff\":\"torrent\",\"max_image_width\":690,\"max_image_height\":500,\"prevent_anons_from_downloading_files\":false,\"enable_s3_uploads\":false,\"allow_profile_backgrounds\":true,\"allow_uploaded_avatars\":true,\"allow_animated_avatars\":false,\"default_avatars\":\"\",\"external_system_avatars_enabled\":true,\"external_system_avatars_url\":\"/letter_avatar_proxy/v4/letter/{first_letter}/{color}/{size}.png\",\"selectable_avatars_enabled\":false,\"allow_staff_to_upload_any_file_in_pm\":true,\"simultaneous_uploads\":5,\"tl1_requires_read_posts\":30,\"tl3_links_no_follow\":false,\"enforce_second_factor\":\"no\",\"moderators_view_emails\":true,\"use_admin_ip_whitelist\":false,\"allowed_iframes\":\"https://www.google.com/maps/embed?|https://www.openstreetmap.org/export/embed.html?|https://calendar.google.com/calendar/embed?|https://codepen.io/\",\"max_oneboxes_per_post\":50,\"reviewable_claiming\":\"disabled\",\"reviewable_default_topics\":false,\"reviewable_default_visibility\":\"low\",\"alert_admins_if_errors_per_minute\":0,\"alert_admins_if_errors_per_hour\":0,\"max_prints_per_hour_per_user\":5,\"enable_long_polling\":true,\"long_polling_base_url\":\"/\",\"background_polling_interval\":60000,\"polling_interval\":3000,\"anon_polling_interval\":30000,\"flush_timings_secs\":60,\"verbose_localization\":false,\"max_new_topics\":500,\"enable_safe_mode\":true,\"tos_url\":\"\",\"privacy_policy_url\":\"\",\"faq_url\":\"\",\"enable_backups\":true,\"backup_location\":\"local\",\"maximum_backups\":14,\"min_search_term_length\":3,\"log_search_queries\":true,\"version_checks\":true,\"suppress_uncategorized_badge\":true,\"header_dropdown_category_count\":8,\"topic_views_heat_low\":1000,\"topic_views_heat_medium\":2000,\"topic_views_heat_high\":3500,\"topic_post_like_heat_low\":0.5,\"topic_post_like_heat_medium\":1.0,\"topic_post_like_heat_high\":2.0,\"history_hours_low\":12,\"history_hours_medium\":24,\"history_hours_high\":48,\"cold_age_days_low\":14,\"cold_age_days_medium\":90,\"cold_age_days_high\":180,\"global_notice\":\"\",\"show_create_topics_notice\":true,\"bootstrap_mode_min_users\":50,\"bootstrap_mode_enabled\":false,\"automatically_unpin_topics\":false,\"read_time_word_count\":500,\"topic_page_title_includes_category\":true,\"svg_icon_subset\":\"\",\"disable_mailing_list_mode\":false,\"default_topics_automatic_unpin\":false,\"tagging_enabled\":true,\"tag_style\":\"box\",\"max_tags_per_topic\":3,\"max_tag_length\":20,\"min_trust_level_to_tag_topics\":\"0\",\"max_tag_search_results\":10,\"show_filter_by_tag\":true,\"tags_sort_alphabetically\":true,\"tags_listed_by_group\":true,\"suppress_overlapping_tags_in_list\":false,\"remove_muted_tags_from_latest\":\"always\",\"force_lowercase_tags\":false,\"dashboard_general_tab_activity_metrics\":\"page_view_total_reqs|visits|time_to_first_response|likes|flags|user_to_user_private_messages_with_replies\",\"poll_enabled\":true,\"poll_maximum_options\":20,\"poll_minimum_trust_level_to_create\":1,\"patreon_enabled\":true,\"patreon_login_enabled\":true,\"discourse_narrative_bot_enabled\":false,\"solved_enabled\":true,\"allow_solved_on_all_topics\":true,\"accept_all_solutions_trust_level\":3,\"empty_box_on_unsolved\":false,\"show_filter_by_solved_status\":true,\"discourse_local_dates_email_format\":\"YYYY-MM-DDTHH:mm:ss[Z]\",\"discourse_local_dates_enabled\":true,\"discourse_local_dates_default_formats\":\"LLL|LTS|LL|LLLL\",\"discourse_local_dates_default_timezones\":\"Europe/Paris|America/Los_Angeles\",\"details_enabled\":true,\"presence_enabled\":true,\"available_locales\":\"[{\\\"name\\\":\\\"اللغة العربية\\\",\\\"value\\\":\\\"ar\\\"},{\\\"name\\\":\\\"български език\\\",\\\"value\\\":\\\"bg\\\"},{\\\"name\\\":\\\"bosanski jezik\\\",\\\"value\\\":\\\"bs_BA\\\"},{\\\"name\\\":\\\"català\\\",\\\"value\\\":\\\"ca\\\"},{\\\"name\\\":\\\"čeština\\\",\\\"value\\\":\\\"cs\\\"},{\\\"name\\\":\\\"dansk\\\",\\\"value\\\":\\\"da\\\"},{\\\"name\\\":\\\"Deutsch\\\",\\\"value\\\":\\\"de\\\"},{\\\"name\\\":\\\"ελληνικά\\\",\\\"value\\\":\\\"el\\\"},{\\\"name\\\":\\\"English\\\",\\\"value\\\":\\\"en\\\"},{\\\"name\\\":\\\"English (United States)\\\",\\\"value\\\":\\\"en_US\\\"},{\\\"name\\\":\\\"Español\\\",\\\"value\\\":\\\"es\\\"},{\\\"name\\\":\\\"eesti\\\",\\\"value\\\":\\\"et\\\"},{\\\"name\\\":\\\"فارسی\\\",\\\"value\\\":\\\"fa_IR\\\"},{\\\"name\\\":\\\"suomi\\\",\\\"value\\\":\\\"fi\\\"},{\\\"name\\\":\\\"Français\\\",\\\"value\\\":\\\"fr\\\"},{\\\"name\\\":\\\"galego\\\",\\\"value\\\":\\\"gl\\\"},{\\\"name\\\":\\\"עברית\\\",\\\"value\\\":\\\"he\\\"},{\\\"name\\\":\\\"magyar\\\",\\\"value\\\":\\\"hu\\\"},{\\\"name\\\":\\\"Հայերեն\\\",\\\"value\\\":\\\"hy\\\"},{\\\"name\\\":\\\"Indonesian\\\",\\\"value\\\":\\\"id\\\"},{\\\"name\\\":\\\"Italiano\\\",\\\"value\\\":\\\"it\\\"},{\\\"name\\\":\\\"日本語\\\",\\\"value\\\":\\\"ja\\\"},{\\\"name\\\":\\\"한국어\\\",\\\"value\\\":\\\"ko\\\"},{\\\"name\\\":\\\"lietuvių kalba\\\",\\\"value\\\":\\\"lt\\\"},{\\\"name\\\":\\\"latviešu valoda\\\",\\\"value\\\":\\\"lv\\\"},{\\\"name\\\":\\\"Norsk bokmål\\\",\\\"value\\\":\\\"nb_NO\\\"},{\\\"name\\\":\\\"Nederlands\\\",\\\"value\\\":\\\"nl\\\"},{\\\"name\\\":\\\"język polski\\\",\\\"value\\\":\\\"pl_PL\\\"},{\\\"name\\\":\\\"Português\\\",\\\"value\\\":\\\"pt\\\"},{\\\"name\\\":\\\"Português (BR)\\\",\\\"value\\\":\\\"pt_BR\\\"},{\\\"name\\\":\\\"limba română\\\",\\\"value\\\":\\\"ro\\\"},{\\\"name\\\":\\\"Русский\\\",\\\"value\\\":\\\"ru\\\"},{\\\"name\\\":\\\"slovenčina\\\",\\\"value\\\":\\\"sk\\\"},{\\\"name\\\":\\\"slovenščina\\\",\\\"value\\\":\\\"sl\\\"},{\\\"name\\\":\\\"Shqip\\\",\\\"value\\\":\\\"sq\\\"},{\\\"name\\\":\\\"српски језик\\\",\\\"value\\\":\\\"sr\\\"},{\\\"name\\\":\\\"svenska\\\",\\\"value\\\":\\\"sv\\\"},{\\\"name\\\":\\\"Kiswahili\\\",\\\"value\\\":\\\"sw\\\"},{\\\"name\\\":\\\"తెలుగు\\\",\\\"value\\\":\\\"te\\\"},{\\\"name\\\":\\\"ไทย\\\",\\\"value\\\":\\\"th\\\"},{\\\"name\\\":\\\"Türkçe\\\",\\\"value\\\":\\\"tr_TR\\\"},{\\\"name\\\":\\\"українська мова\\\",\\\"value\\\":\\\"uk\\\"},{\\\"name\\\":\\\"اردو\\\",\\\"value\\\":\\\"ur\\\"},{\\\"name\\\":\\\"Việt Nam\\\",\\\"value\\\":\\\"vi\\\"},{\\\"name\\\":\\\"中文\\\",\\\"value\\\":\\\"zh_CN\\\"},{\\\"name\\\":\\\"中文 (TW)\\\",\\\"value\\\":\\\"zh_TW\\\"}]\",\"site_logo_url\":\"https://ubuntu-mate.community/uploads/default/original/2X/0/0c41b826d1c81f42e55160501605d3c96ded0ae1.png\",\"site_logo_small_url\":\"https://ubuntu-mate.community/uploads/default/original/2X/0/0c41b826d1c81f42e55160501605d3c96ded0ae1.png\",\"site_mobile_logo_url\":\"https://ubuntu-mate.community/uploads/default/original/2X/0/0c41b826d1c81f42e55160501605d3c96ded0ae1.png\",\"site_favicon_url\":\"https://ubuntu-mate.community/uploads/default/optimized/1X/e75ff172b5be659c48d264a448a3707f524f48f9_2_32x32.ico\"}","customHTML":"{\"top\":\"\",\"footer\":\"\u003cdiv id=\\\"mate-footer\\\"\u003e\\n \u003cdiv class=\\\"wrap\\\"\u003e\\n \u003cdiv class=\\\"left text\\\"\u003e\\n \u003c!--div id=\\\"copyright\\\"\u003eFor a retrospective future, powered by \u003ca href=\\\"https://www.discourse.org/\\\"\u003eDiscourse\u003c\\/a\u003e.\u003c\\/div--\u003e\\n \u003cdiv id=\\\"license\\\"\u003eUser contributions are licensed under a \u003ca target=\\\"_blank\\\" rel=\\\"noopener\\\" href=\\\"http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_US\\\"\u003eCreative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License\u003c\\/a\u003e.\u003c\\/div\u003e\\n \u003c\\/div\u003e\\n \u003cdiv class=\\\"right\\\"\u003e\\n \u003cdiv id=\\\"links\\\"\u003e\\n \u003ca href=\\\"https://ubuntu-mate.org/logo-guidelines\\\"\u003eLogo Guidelines\u003c\\/a\u003e\\n \u003c!--a href=\\\"https://ubuntu-mate.org/get-involved\\\"\u003eGet Involved\u003c\\/a--\u003e\\n \u003c\\/div\u003e\\n \u003cdiv id=\\\"social\\\"\u003e\\n \u003ca target=\\\"_blank\\\" rel=\\\"noopener\\\" title=\\\"Blog RSS Feed\\\" href=\\\"/rss\\\"\u003e\u003cimg src=\\\"https://ubuntu-mate.org/assets/img/footer/rss.svg\\\" alt=\\\"Blog RSS Feed\\\"\u003e\u003c\\/a\u003e\\n \u003ca target=\\\"_blank\\\" rel=\\\"noopener\\\" title=\\\"Google+\\\" href=\\\"/mastodon\\\"\u003e\u003cimg src=\\\"https://ubuntu-mate.org/assets/img/footer/mastodon.svg\\\" alt=\\\"Ubuntu MATE on Mastodon\\\"\u003e\u003c\\/a\u003e\\n \u003ca target=\\\"_blank\\\" rel=\\\"noopener\\\" title=\\\"Twitter\\\" href=\\\"/twitter\\\"\u003e\u003cimg src=\\\"https://ubuntu-mate.org/assets/img/footer/twitter.svg\\\" alt=\\\"Ubuntu MATE on Twitter\\\"\u003e\u003c\\/a\u003e\\n \u003ca target=\\\"_blank\\\" rel=\\\"noopener\\\" title=\\\"Facebook\\\" href=\\\"/facebook\\\"\u003e\u003cimg src=\\\"https://ubuntu-mate.org/assets/img/footer/facebook.svg\\\" alt=\\\"Ubuntu MATE on Facebook\\\"\u003e\u003c\\/a\u003e\\n \u003ca target=\\\"_blank\\\" rel=\\\"noopener\\\" title=\\\"YouTube\\\" href=\\\"/youtube\\\"\u003e\u003cimg src=\\\"https://ubuntu-mate.org/assets/img/footer/youtube.svg\\\" alt=\\\"Ubuntu MATE on YouTube\\\"\u003e\u003c\\/a\u003e\\n \u003c\\/div\u003e\\n \u003c\\/div\u003e\\n \u003c\\/div\u003e\\n\u003c\\/div\u003e\\n\"}","banner":"{}","customEmoji":"[{\"name\":\"appearance\",\"url\":\"/uploads/default/original/2X/5/5582a69fead760d8b1c9e36c61d15082620c4fb2.png\"},{\"name\":\"bars\",\"url\":\"/uploads/default/original/2X/7/76497d555d692d84f51d06fc1991ade23cadda52.png\"},{\"name\":\"clear\",\"url\":\"/uploads/default/original/2X/0/0d4b8ce0fa84498da5a7e59c301dd844f012d5cc.png\"},{\"name\":\"cog\",\"url\":\"/uploads/default/original/2X/0/03b8e406993562c4874b88d7e08efd6ba5592c39.png\"},{\"name\":\"computer\",\"url\":\"/uploads/default/original/2X/9/9264e9fe136d51a5f4bdc4715d73d9e7361c1bb6.png\"},{\"name\":\"control_center\",\"url\":\"/uploads/default/original/2X/9/99bb6de220dfc30ceb066eae11e73d2dcb0526f7.png\"},{\"name\":\"desktop\",\"url\":\"/uploads/default/original/2X/e/e89d515fe078c732c8922c3d64237ebdc885045c.png\"},{\"name\":\"files\",\"url\":\"/uploads/default/original/2X/6/61d5426696e45e4457dae29aa4317a3414f6f094.png\"},{\"name\":\"harddrive\",\"url\":\"/uploads/default/original/2X/0/09b60b544052e670364a924ef9db67ec49df4ba2.png\"},{\"name\":\"help\",\"url\":\"/uploads/default/original/2X/e/e97967de7360dfba6620609902ce4fedcbab7147.png\"},{\"name\":\"install\",\"url\":\"/uploads/default/original/2X/5/56f7e2e4ecc39ea009e96dedb8c78b5cc61c4769.png\"},{\"name\":\"panel\",\"url\":\"/uploads/default/original/2X/2/2c3a8d05ee3185d045c64163d501acdb11bfff46.png\"},{\"name\":\"ubuntu_mate\",\"url\":\"/uploads/default/original/2X/e/e0a746952866b147ffffe08f6e6867936f573f31.png\"}]","translationOverrides":"{\"js.select_kit.filter_placeholder_with_any\":\"Search for tags or releases (e.g. 18-04)\"}","topic_4250":"{\"post_stream\":{\"posts\":[{\"id\":15031,\"name\":\"Simon Murgelj\",\"username\":\"GizmoXomziG\",\"avatar_template\":\"/user_avatar/ubuntu-mate.community/gizmoxomzig/{size}/2566_2.png\",\"created_at\":\"2016-03-10T10:14:41.448Z\",\"cooked\":\"\\u003cp\\u003eHello everyone.\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003eDescription:\\u003c/strong\\u003e\\u003cbr\\u003e\\nI wrote a script that connects to HDMI CEC ( cec-client needed ) and listens for TV Remote key presses. Based on the keys pressed / released (or auto-released; holding down certain keys for too long makes them auto-release) different actions are executed. Some examples:\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003ewrite letters and numbers using 0-9 keys (simulating 3x4 keypad phones - key \\\"2\\\" switches between a-b-c-2, key 9 switches between w-x-y-z-9) ( xdotool needed )\\u003c/li\\u003e\\n\\u003cli\\u003emove mouse cursor using up/down/left/right (the longer you hold the key down, the faster it goes) and click (enter = left click; channels list = right click) ( xdotool needed )\\u003c/li\\u003e\\n\\u003cli\\u003eopening web sites in chomium (red key for YouTube, green for Google, blue for incognito window)\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003eIf you want to use firefox instead of chromium, replace \\\"chromium\\\" with \\\"firefox\\\" in the script below.\\u003cbr\\u003e\\nAlternatively, you can just install chromium:\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003esudo apt-get install chromium-browser\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003eSee all the available keys below:\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cdiv class=\\\"lightbox-wrapper\\\"\\u003e\\u003ca class=\\\"lightbox\\\" href=\\\"https://ubuntu-mate.community/uploads/default/original/2X/e/e00e46bb720d634bb6a2ba84cad84c05078fd391.png\\\" data-download-href=\\\"https://ubuntu-mate.community/uploads/default/e00e46bb720d634bb6a2ba84cad84c05078fd391\\\" title=\\\"TVRemoteCECpng.png\\\"\\u003e\\u003cimg src=\\\"https://ubuntu-mate.community/uploads/default/optimized/2X/e/e00e46bb720d634bb6a2ba84cad84c05078fd391_2_401x500.png\\\" width=\\\"401\\\" height=\\\"500\\\" srcset=\\\"https://ubuntu-mate.community/uploads/default/optimized/2X/e/e00e46bb720d634bb6a2ba84cad84c05078fd391_2_401x500.png, https://ubuntu-mate.community/uploads/default/optimized/2X/e/e00e46bb720d634bb6a2ba84cad84c05078fd391_2_601x750.png 1.5x, https://ubuntu-mate.community/uploads/default/optimized/2X/e/e00e46bb720d634bb6a2ba84cad84c05078fd391_2_802x1000.png 2x\\\" data-small-upload=\\\"https://ubuntu-mate.community/uploads/default/optimized/2X/e/e00e46bb720d634bb6a2ba84cad84c05078fd391_2_10x10.png\\\"\\u003e\\u003cdiv class=\\\"meta\\\"\\u003e\\n\\u003csvg class=\\\"fa d-icon d-icon-far-image svg-icon\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cuse xlink:href=\\\"#far-image\\\"\\u003e\\u003c/use\\u003e\\u003c/svg\\u003e\\u003cspan class=\\\"filename\\\"\\u003eTVRemoteCECpng.png\\u003c/span\\u003e\\u003cspan class=\\\"informations\\\"\\u003e828×1030 101 KB\\u003c/span\\u003e\\u003csvg class=\\\"fa d-icon d-icon-discourse-expand svg-icon\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cuse xlink:href=\\\"#discourse-expand\\\"\\u003e\\u003c/use\\u003e\\u003c/svg\\u003e\\n\\u003c/div\\u003e\\u003c/a\\u003e\\u003c/div\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eThese are the keys supported by my TV Remote. You can modify the script for your TV Remote, see Modification below.\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003eInstallation:\\u003c/strong\\u003e\\u003cbr\\u003e\\nFirst you need to install cec-client and xdotool; using terminal:\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003esudo apt-get install cec-client xdotool\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003eTest if you can receive TV Remote button presses with cec-client; using terminal:\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003ecec-client\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003eYou should see some diagnostic messages. Press numeric keys (as they are most likely to be supported) on your TV Remote. Watch out for new lines, especially of this form:\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003esomething something **key pressed: 8** something something\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003eIf you see this kind of messages, then this should work for you.\\u003cbr\\u003e\\nIf not, make sure you've got CEC enabled on your TV (see this \\u003ca href=\\\"http://kodi.wiki/view/CEC#Trade_names\\\" rel=\\\"nofollow noopener\\\"\\u003eWIKI\\u003c/a\\u003e for more info).\\u003cbr\\u003e\\nFor my TV, pressing the Source button a couple of times helped (so it kind-of flips trough all the sources and circles back to the Raspberry Pi, detects CEC and connects to it).\\u003c/p\\u003e\\n\\u003cp\\u003eSo, on to the script / installation:\\u003cbr\\u003e\\nCreate the file cecremote.sh and mark it as executable; using terminal:\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003etouch cecremote.sh\\nchmod +x cecremote.sh\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003eThen open it; using terminal:\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003enano cecremote.sh\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003eCopy - paste this in the file:\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#!/bin/bash\\nfunction keychar {\\n parin1=$1 #first param; abc1\\n parin2=$2 #second param; 0=a, 1=b, 2=c, 3=1, 4=a, ...\\n parin2=$((parin2)) #convert to numeric\\n parin1len=${#parin1} #length of parin1\\n parin2pos=$((parin2 % parin1len)) #position mod\\n char=${parin1:parin2pos:1} #char key to simulate\\n if [ \\\"$parin2\\\" -gt 0 ]; then #if same key pressed multiple times, delete previous char; write a, delete a write b, delete b write c, ...\\n xdotool key \\\"BackSpace\\\"\\n fi\\n #special cases for xdotool ( X Keysyms )\\n if [ \\\"$char\\\" = \\\" \\\" ]; then char=\\\"space\\\"; fi\\n if [ \\\"$char\\\" = \\\".\\\" ]; then char=\\\"period\\\"; fi\\n if [ \\\"$char\\\" = \\\"-\\\" ]; then char=\\\"minus\\\"; fi\\n xdotool key $char\\n}\\ndatlastkey=$(date +%s%N)\\nstrlastkey=\\\"\\\"\\nintkeychar=0\\nintmsbetweenkeys=2000 #two presses of a key sooner that this makes it delete previous key and write the next one (a-\\u0026gt;b-\\u0026gt;c-\\u0026gt;1-\\u0026gt;a-\\u0026gt;...)\\nintmousestartspeed=10 #mouse starts moving at this speed (pixels per key press)\\nintmouseacc=10 #added to the mouse speed for each key press (while holding down key, more key presses are sent from the remote)\\nintmousespeed=10\\n\\nwhile read oneline\\ndo\\n keyline=$(echo $oneline | grep \\\" key \\\")\\n #echo $keyline --- debugAllLines\\n if [ -n \\\"$keyline\\\" ]; then\\n datnow=$(date +%s%N)\\n datdiff=$((($datnow - $datlastkey) / 1000000)) #bla bla key pressed: previous channel (123)\\n strkey=$(grep -oP '(?\\u0026lt;=sed: ).*?(?= \\\\()' \\u0026lt;\\u0026lt;\\u0026lt; \\\"$keyline\\\") #bla bla key pres--\\u0026gt;sed: \\u0026gt;\\u0026gt;previous channel\\u0026lt;\\u0026lt; (\\u0026lt;--123)\\n strstat=$(grep -oP '(?\\u0026lt;=key ).*?(?=:)' \\u0026lt;\\u0026lt;\\u0026lt; \\\"$keyline\\\") #bla bla --\\u0026gt;key \\u0026gt;\\u0026gt;pressed\\u0026lt;\\u0026lt;:\\u0026lt;-- previous channel (123)\\n strpressed=$(echo $strstat | grep \\\"pressed\\\")\\n strreleased=$(echo $strstat | grep \\\"released\\\")\\n if [ -n \\\"$strpressed\\\" ]; then\\n #echo $keyline --- debug\\n if [ \\\"$strkey\\\" = \\\"$strlastkey\\\" ] \\u0026amp;\\u0026amp; [ \\\"$datdiff\\\" -lt \\\"$intmsbetweenkeys\\\" ]; then\\n intkeychar=$((intkeychar + 1)) #same key pressed for a different char\\n else\\n intkeychar=0 #different key / too far apart\\n fi\\n datlastkey=$datnow\\n strlastkey=$strkey\\n case \\\"$strkey\\\" in\\n \\\"1\\\")\\n xdotool key \\\"BackSpace\\\"\\n ;;\\n \\\"2\\\")\\n keychar \\\"abc2\\\" intkeychar\\n ;;\\n \\\"3\\\")\\n keychar \\\"def3\\\" intkeychar\\n ;;\\n \\\"4\\\")\\n keychar \\\"ghi4\\\" intkeychar\\n ;;\\n \\\"5\\\")\\n keychar \\\"jkl5\\\" intkeychar\\n ;;\\n \\\"6\\\")\\n keychar \\\"mno6\\\" intkeychar\\n ;;\\n \\\"7\\\")\\n keychar \\\"pqrs7\\\" intkeychar\\n ;;\\n \\\"8\\\")\\n keychar \\\"tuv8\\\" intkeychar\\n ;;\\n \\\"9\\\")\\n keychar \\\"wxyz9\\\" intkeychar\\n ;;\\n \\\"0\\\")\\n keychar \\\" 0.-\\\" intkeychar\\n ;;\\n \\\"previous channel\\\")\\n xdotool key \\\"Return\\\" #Enter\\n ;;\\n \\\"channel up\\\")\\n xdotool click 4 #mouse scroll up\\n ;;\\n \\\"channel down\\\")\\n xdotool click 5 #mouse scroll down\\n ;;\\n \\\"channels list\\\")\\n xdotool click 3 #right mouse button click\\\"\\n ;;\\n \\\"up\\\")\\n intpixels=$((-1 * intmousespeed))\\n xdotool mousemove_relative -- 0 $intpixels #move mouse up\\n intmousespeed=$((intmousespeed + intmouseacc)) #speed up\\n ;;\\n \\\"down\\\")\\n intpixels=$(( 1 * intmousespeed))\\n xdotool mousemove_relative -- 0 $intpixels #move mouse down\\n intmousespeed=$((intmousespeed + intmouseacc)) #speed up\\n ;;\\n \\\"left\\\")\\n intpixels=$((-1 * intmousespeed))\\n xdotool mousemove_relative -- $intpixels 0 #move mouse left\\n intmousespeed=$((intmousespeed + intmouseacc)) #speed up\\n ;;\\n \\\"right\\\")\\n intpixels=$(( 1 * intmousespeed))\\n xdotool mousemove_relative -- $intpixels 0 #move mouse right\\n intmousespeed=$((intmousespeed + intmouseacc)) #speed up\\n ;;\\n \\\"select\\\")\\n xdotool click 1 #left mouse button click\\n ;;\\n \\\"return\\\")\\n xdotool key \\\"Alt_L+Left\\\" #WWW-Back\\n ;;\\n \\\"exit\\\")\\n echo Key Pressed: EXIT\\n ;;\\n \\\"F2\\\")\\n chromium-browser \\\"https://www.youtube.com\\\" \\u0026amp;\\n ;;\\n \\\"F3\\\")\\n chromium-browser \\\"https://www.google.com\\\" \\u0026amp;\\n ;;\\n \\\"F4\\\")\\n echo Key Pressed: YELLOW C\\n ;;\\n \\\"F1\\\")\\n chromium-browser --incognito \\\"https://www.google.com\\\" \\u0026amp;\\n ;;\\n \\\"rewind\\\")\\n echo Key Pressed: REWIND\\n ;;\\n \\\"pause\\\")\\n echo Key Pressed: PAUSE\\n ;;\\n \\\"Fast forward\\\")\\n echo Key Pressed: FAST FORWARD\\n ;;\\n \\\"play\\\")\\n echo Key Pressed: PLAY\\n ;;\\n \\\"stop\\\")\\n ## with my remote I only got \\\"STOP\\\" as key released (auto-released), not as key pressed; see below\\n echo Key Pressed: STOP\\n ;;\\n *)\\n echo Unrecognized Key Pressed: $strkey ; CEC Line: $keyline\\n ;;\\n \\n esac\\n fi\\n if [ -n \\\"$strreleased\\\" ]; then\\n #echo $keyline --- debug\\n case \\\"$strkey\\\" in\\n \\\"stop\\\")\\n echo Key Released: STOP\\n ;;\\n \\\"up\\\")\\n intmousespeed=$intmousestartspeed #reset mouse speed\\n ;;\\n \\\"down\\\")\\n intmousespeed=$intmousestartspeed #reset mouse speed\\n ;;\\n \\\"left\\\")\\n intmousespeed=$intmousestartspeed #reset mouse speed\\n ;;\\n \\\"right\\\")\\n intmousespeed=$intmousestartspeed #reset mouse speed\\n ;;\\n esac\\n fi\\n fi\\ndone\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003eFinally, save it; using nano in terminal:\\u003cbr\\u003e\\npress \\\"Ctrl+X\\\" to close the file, then \\\"Y\\\" to confirm saving, then \\\"Enter\\\" to save the file under the right file name\\u003c/p\\u003e\\n\\u003cp\\u003eTry executing it, using terminal:\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003ecec-client | ./cecremote.sh\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003eAt this point it should be working.\\u003cbr\\u003e\\nPoint the TV Remote at the TV, press up/down/left/right and check if the mouse pointer is moving.\\u003cbr\\u003e\\nPress 9 44 2 8 7777 0 88 7 and it should write \\\"whats up\\\".\\u003c/p\\u003e\\n\\u003cp\\u003eThe script doesn't output anything, except when it encounters a button press that it doesn't recognize, or it doesn't have a function set up for that button yet (play button being one of them).\\u003cbr\\u003e\\nIf you want it to output all the messages it receives, find the line and uncomment it by deleting the # : \\u003cspan class=\\\"hashtag\\\"\\u003e#echo\\u003c/span\\u003e $keyline --- debugAllLines\\u003c/p\\u003e\\n\\u003cp\\u003eSo, if everything works, exit the script in terminal: Press Ctrl+C\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003eRun at startup:\\u003c/strong\\u003e\\u003cbr\\u003e\\nIf you want to start this script every time the Raspberry starts, create a new file called cecremotestart.sh and mark it as executable; using terminal:\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003etouch cecremotestart.sh\\nchmod +x cecremotestart.sh\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003eThen open it; using terminal:\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003enano cecremotestart.sh\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003eCopy - paste this in the file:\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#!/bin/bash\\ncec-client | /home/raspberry/cecremote.sh #\\u0026lt;-- change this according to your username / path to the script\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003eFinally, save it; using nano in terminal:\\u003cbr\\u003e\\npress \\\"Ctrl+X\\\" to close the file, then \\\"Y\\\" to confirm saving, then \\\"Enter\\\" to save the file under the right file name\\u003c/p\\u003e\\n\\u003cp\\u003eThen add this in the Startup Programs (Menu - System - Control Center - Startup Programs; Add; Give it a name, and enter the path (or press Browse) of the script in the filesystem).\\u003c/p\\u003e\\n\\u003cp\\u003eRestart, try, report \\u003cimg src=\\\"https://ubuntu-mate.community/images/emoji/google/slightly_smiling.png?v=9\\\" title=\\\":slightly_smiling:\\\" class=\\\"emoji\\\" alt=\\\":slightly_smiling:\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003eModification:\\u003c/strong\\u003e\\u003cbr\\u003e\\nIf you want, you can edit the script to change or add the commands executed on certain button presses.\\u003cbr\\u003e\\nYou can detect the additional buttons that CEC on your TV supports. Kill the running cec-client, run the cec-client in the terminal, and watch for the output while you're pressing all the keys on your TV Remote; using terminal:\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003ekillall cec-client\\ncec-client\\nCtrl+C when you're ready to stop\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003eEdit the script, then execute the modified script by manually executing cecremotestart.sh; using terminal:\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e./cecremotescript.sh\\nCtrl+C to stop\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003eWhen you're satisfied, just restart your Raspberry PI.\\u003c/p\\u003e\\n\\u003cp\\u003eThat's it from me - a simple and crude way to control your Raspberry PI with the TV Remote, for when you don't have the keyboard/mouse connected and VNC-ing is too much of a bother.\\u003c/p\\u003e\\n\\u003cp\\u003eTry it and report \\u003cimg src=\\\"https://ubuntu-mate.community/images/emoji/google/slightly_smiling.png?v=9\\\" title=\\\":slightly_smiling:\\\" class=\\\"emoji\\\" alt=\\\":slightly_smiling:\\\"\\u003e\\u003c/p\\u003e\",\"post_number\":1,\"post_type\":1,\"updated_at\":\"2016-08-11T01:40:52.020Z\",\"reply_count\":0,\"reply_to_post_number\":null,\"quote_count\":0,\"incoming_link_count\":10593,\"reads\":62,\"score\":52914.4,\"yours\":false,\"topic_id\":4250,\"topic_slug\":\"controlling-raspberry-pi-with-tv-remote-using-hdmi-cec\",\"display_username\":\"Simon Murgelj\",\"primary_group_name\":null,\"primary_group_flair_url\":null,\"primary_group_flair_bg_color\":null,\"primary_group_flair_color\":null,\"version\":4,\"can_edit\":false,\"can_delete\":false,\"can_recover\":false,\"can_wiki\":false,\"link_counts\":[{\"url\":\"http://kodi.wiki/view/CEC#Trade_names\",\"internal\":false,\"reflection\":false,\"title\":\"CEC - Kodi\",\"clicks\":99},{\"url\":\"https://ubuntu-mate.community/uploads/default/original/2X/e/e00e46bb720d634bb6a2ba84cad84c05078fd391.png\",\"internal\":true,\"reflection\":false,\"clicks\":0},{\"url\":\"https://ubuntu-mate.community/t/tips-tutorials-and-guides-index/14519/6\",\"internal\":true,\"reflection\":true,\"title\":\"Tips, Tutorials and Guides Index\",\"clicks\":0}],\"read\":true,\"user_title\":null,\"actions_summary\":[{\"id\":2,\"count\":3}],\"moderator\":false,\"admin\":false,\"staff\":false,\"user_id\":2055,\"hidden\":false,\"trust_level\":1,\"deleted_at\":null,\"user_deleted\":false,\"edit_reason\":null,\"can_view_edit_history\":true,\"wiki\":true,\"last_wiki_edit\":\"2016-08-11T01:40:52.037Z\",\"can_accept_answer\":false,\"can_unaccept_answer\":false,\"accepted_answer\":false},{\"id\":36773,\"name\":\"\",\"username\":\"arudun\",\"avatar_template\":\"/letter_avatar_proxy/v4/letter/a/8e7dd6/{size}.png\",\"created_at\":\"2016-10-26T04:41:12.718Z\",\"cooked\":\"\\u003cp\\u003eYou should submit this to \\u003ca href=\\\"https://github.com/raspberrypi/linux/pulls\\\" rel=\\\"nofollow noopener\\\"\\u003ehttps://github.com/raspberrypi/linux/pulls\\u003c/a\\u003e it should be always with a raspberry\\u003c/p\\u003e\\n\\u003cp\\u003eLook at this one\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode class=\\\"lang-bash\\\"\\u003e#!/bin/bash\\nfunction keychar {\\n parin1=$1 #first param; abc1\\n parin2=$2 #second param; 0=a, 1=b, 2=c, 3=1, 4=a, ...\\n parin2=$((parin2)) #convert to numeric\\n parin1len=${#parin1} #length of parin1\\n parin2pos=$((parin2 % parin1len)) #position mod\\n char=${parin1:parin2pos:1} #char key to simulate\\n if [ \\\"$parin2\\\" -gt 0 ]; then #if same key pressed multiple times, delete previous char; write a, delete a write b, delete b write c, ...\\n xdotool key \\\"BackSpace\\\"\\n fi\\n #special cases for xdotool ( X Keysyms )\\n if [ \\\"$char\\\" = \\\" \\\" ]; then char=\\\"space\\\"; fi\\n if [ \\\"$char\\\" = \\\".\\\" ]; then char=\\\"period\\\"; fi\\n if [ \\\"$char\\\" = \\\"-\\\" ]; then char=\\\"minus\\\"; fi\\n xdotool key $char\\n}\\ndatlastkey=$(date +%s%N)\\nstrlastkey=\\\"\\\"\\nintkeychar=0\\nintmsbetweenkeys=500 #two presses of a key sooner that this makes it delete previous key and write the next one (a-\\u0026gt;b-\\u0026gt;c-\\u0026gt;1-\\u0026gt;a-\\u0026gt;...)\\nintmousestartspeed=15 #mouse starts moving at this speed (pixels per key press)\\nintmouseacc=0 #added to the mouse speed for each key press (while holding down key, more key presses are sent from the remote)\\nintmousespeed=15\\nswitch=0\\nbrowser=/etc/alternatives/x-www-browser\\ntest -e /usr/bin/firefox \\u0026amp;\\u0026amp; browser=firefox\\ntest -e /usr/bin/chromium-browser \\u0026amp;\\u0026amp; browser=chromium-browser\\n\\n\\nwhile read oneline\\ndo\\n keyline=$(echo $oneline | grep \\\" key \\\")\\n #echo $keyline --- debugAllLines\\n if [ -n \\\"$keyline\\\" ]; then\\n datnow=$(date +%s%N)\\n datdiff=$((($datnow - $datlastkey) / 1000000)) #bla bla key pressed: previous channel (123)\\n strkey=$(grep -oP '(?\\u0026lt;=sed: ).*?(?= \\\\()' \\u0026lt;\\u0026lt;\\u0026lt; \\\"$keyline\\\") #bla bla key pres--\\u0026gt;sed: \\u0026gt;\\u0026gt;previous channel\\u0026lt;\\u0026lt; (\\u0026lt;--123)\\n strstat=$(grep -oP '(?\\u0026lt;=key ).*?(?=:)' \\u0026lt;\\u0026lt;\\u0026lt; \\\"$keyline\\\") #bla bla --\\u0026gt;key \\u0026gt;\\u0026gt;pressed\\u0026lt;\\u0026lt;:\\u0026lt;-- previous channel (123)\\n strpressed=$(echo $strstat | grep \\\"pressed\\\")\\n strreleased=$(echo $strstat | grep \\\"released\\\")\\n if [ -n \\\"$strpressed\\\" ]; then\\n #echo $keyline --- debug\\n if [ \\\"$strkey\\\" = \\\"$strlastkey\\\" ] \\u0026amp;\\u0026amp; [ \\\"$datdiff\\\" -lt \\\"$intmsbetweenkeys\\\" ]; then\\n intkeychar=$((intkeychar + 1)) #same key pressed for a different char\\n intmousespeed=100\\n else\\n intkeychar=0 #different key / too far apart\\n fi\\n datlastkey=$datnow\\n strlastkey=$strkey\\n case \\\"$strkey\\\" in\\n \\\"1\\\")\\n xdotool mousemove 270 154\\n ;;\\n \\\"2\\\")\\n xdotool mousemove 679 154\\n ;;\\n \\\"3\\\")\\n xdotool mousemove 1090 154\\n ;;\\n \\\"4\\\")\\n xdotool mousemove 270 382\\n ;;\\n \\\"5\\\")\\n xdotool mousemove 679 382\\n ;;\\n \\\"6\\\")\\n xdotool mousemove 1090 382 \\n ;;\\n \\\"7\\\")\\n xdotool mousemove 270 604 \\n ;;\\n \\\"8\\\")\\n xdotool mousemove 679 604\\n ;;\\n \\\"9\\\")\\n xdotool mousemove 1090 604 \\n ;;\\n \\\"0\\\")\\n xdotool key Prior\\n ;;\\n \\\"previous channel\\\")\\n xdotool key Space #Enter\\n ;;\\n \\\"channel up\\\")\\n xdotool click 4 #mouse scroll up\\n ;;\\n \\\"channel down\\\")\\n xdotool click 5 #mouse scroll down\\n ;;\\n \\\"channels list\\\")\\n xdotool click 3 #right mouse button click\\\"\\n ;;\\n \\\"up\\\")\\n xgm=$(xdotool getmouselocation --shell | grep Y | sed -e s/^..// ) \\n intpixels=$((-1 * intmousespeed * 2))\\n test $switch -eq 1 \\u0026amp;\\u0026amp; xdotool key Up || xdotool mousemove_relative -- 0 $intpixels #move mouse up\\n intmousespeed=$((intmousespeed + intmouseacc)) #speed up\\n test $xgm$(xdotool getmouselocation --shell | grep Y | sed -e 's/^..//' ) -eq 00 \\u0026amp;\\u0026amp; xdotool mousemove_relative -- 0 768\\n ;;\\n \\\"down\\\")\\n xgm=$(xdotool getmouselocation --shell | grep Y | sed -e s/^..// ) \\n intpixels=$(( 1 * intmousespeed))\\n test $switch -eq 1 \\u0026amp;\\u0026amp; xdotool key Down || xdotool mousemove_relative -- 0 $intpixels #move mouse down\\n intmousespeed=$((intmousespeed + intmouseacc)) #speed up\\n test $xgm$(xdotool getmouselocation --shell | grep Y | sed -e 's/^..//' ) -eq 767767 \\u0026amp;\\u0026amp; xdotool mousemove_relative -- 0 -768\\n ;;\\n \\\"left\\\")\\n xgm=$(xdotool getmouselocation --shell | grep X | sed -e s/^..// ) \\n intpixels=$((-1 * intmousespeed * 2 ))\\n test $switch -eq 1 \\u0026amp;\\u0026amp; xdotool key Left || xdotool mousemove_relative -- $intpixels 0 #move mouse left\\n intmousespeed=$((intmousespeed + intmouseacc)) #speed up\\n test $xgm$(xdotool getmouselocation --shell | grep X | sed -e 's/^..//' ) -eq 00 \\u0026amp;\\u0026amp; xdotool mousemove_relative -- 1359 0\\n ;;\\n \\\"right\\\")\\n xgm=$(xdotool getmouselocation --shell | grep X | sed -e s/^..// ) \\n intpixels=$(( 1 * intmousespeed))\\n test $switch -eq 1 \\u0026amp;\\u0026amp; xdotool key Right || xdotool mousemove_relative -- $intpixels 0 #move mouse right\\n intmousespeed=$((intmousespeed + intmouseacc)) #speed up\\n test $xgm$(xdotool getmouselocation --shell | grep X | sed -e 's/^..//' ) -eq 13591359 \\u0026amp;\\u0026amp; xdotool mousemove_relative -- -1359 0\\n ;;\\n \\\"select\\\")\\n test $switch -eq 1 \\u0026amp;\\u0026amp; xdotool key Return || xdotool click 1 #left mouse button click\\n ;;\\n \\\"return\\\")\\n #xdotool key \\\"Alt_L+Left\\\" #WWW-Back\\n ((switch++))\\n test $switch -eq 2 \\u0026amp;\\u0026amp; switch=0 \\n ;;\\n \\\"exit\\\")\\n ((switch++))\\n test $switch -eq 2 \\u0026amp;\\u0026amp; switch=0\\n ;;\\n \\\"F2\\\")\\n ((menu++))\\n xdotool key Escape\\n test $menu -eq 1 \\u0026amp;\\u0026amp; xdotool click 3 || xdotool key Super_L\\n test $menu -eq 2 \\u0026amp;\\u0026amp; menu=0\\n switch=1\\n ;;\\n \\\"F3\\\")\\n $browser \\u0026amp;\\n ;;\\n \\\"F4\\\")\\n ((xvkbd++))\\n switch=0\\n xdotool mousemove 1100 750 \\n xvkbd -no-keypad -geometry +905+560 \\u0026amp;\\n test $xvkbd -eq 2 \\u0026amp;\\u0026amp; killall xvkbd \\u0026amp;\\u0026amp; xvkbd=0 \\n ;;\\n \\\"F1\\\")\\n #chromium-browser --incognito \\\"https://www.google.com\\\" \\u0026amp;\\n /etc/alternatives/x-terminal-emulator \\u0026amp; \\n ((xvkbd++))\\n switch=0\\n xdotool mousemove 1170 760 \\n xvkbd -no-keypad -geometry +905+560 \\u0026amp;\\n test $xvkbd -eq 2 \\u0026amp;\\u0026amp; killall xvkbd \\u0026amp;\\u0026amp; xvkbd=0\\n\\n ;;\\n \\\"rewind\\\")\\n $browser \\u0026amp;\\n ;;\\n \\\"pause\\\")\\n ((menu++))\\n xdotool key Escape\\n test $menu -eq 1 \\u0026amp;\\u0026amp; xdotool click 3 || xdotool key Super_L\\n test $menu -eq 2 \\u0026amp;\\u0026amp; menu=0\\n switch=1\\n ;;\\n \\\"Fast forward\\\")\\n /etc/alternatives/x-terminal-emulator \\u0026amp; \\n ((xvkbd++))\\n switch=0\\n xdotool mousemove 1170 660 \\n xvkbd -no-keypad -geometry +905+560 \\u0026amp;\\n test $xvkbd -eq 2 \\u0026amp;\\u0026amp; killall xvkbd \\u0026amp;\\u0026amp; xvkbd=0\\n ;;\\n \\\"play\\\")\\n ((xvkbd++))\\n switch=0\\n xdotool mousemove 1100 750 \\n xvkbd -no-keypad -geometry +905+560 \\u0026amp;\\n test $xvkbd -eq 2 \\u0026amp;\\u0026amp; killall xvkbd \\u0026amp;\\u0026amp; xvkbd=0 \\n\\n ;;\\n \\\"stop\\\")\\n ## with my remote I only got \\\"STOP\\\" as key released (auto-released), not as key pressed; see below\\n echo Key Pressed: STOP\\n ;;\\n *)\\n echo Unrecognized Key Pressed: $strkey ; CEC Line: $keyline\\n ;;\\n \\n esac\\n fi\\n if [ -n \\\"$strreleased\\\" ]; then\\n #echo $keyline --- debug\\n case \\\"$strkey\\\" in\\n \\\"stop\\\")\\n xdotool key q\\n xdotool key Control_L+Next\\n ;;\\n \\\"up\\\")\\n intmousespeed=$intmousestartspeed #reset mouse speed\\n ;;\\n \\\"down\\\")\\n intmousespeed=$intmousestartspeed #reset mouse speed\\n ;;\\n \\\"left\\\")\\n intmousespeed=$intmousestartspeed #reset mouse speed\\n ;;\\n \\\"right\\\")\\n intmousespeed=$intmousestartspeed #reset mouse speed\\n ;;\\n esac\\n fi\\n fi\\ndone\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003eOn my philips don’t work numbers or colors, so I got a virtual keyboard and made some changes\\u003c/p\\u003e\\n\\u003cp\\u003esudo apt-get install xvkbd\\u003c/p\\u003e\\n\\u003ch2\\u003eThe mouse\\u003c/h2\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003eup,down, left, right\\u003c/strong\\u003e are the same\\u003c/p\\u003e\\n\\u003cp\\u003ebut if you hit \\u003cstrong\\u003eReturn\\u003c/strong\\u003e (Samsung) or \\u003cstrong\\u003eback\\u003c/strong\\u003e (philips ) they switch to arrows , hit again and you will get the mouse\\u003c/p\\u003e\\n\\u003cp\\u003eIf you go off limits with the cursor , you will go to the other side\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003eUp\\u003c/strong\\u003e and \\u003cstrong\\u003eLeft\\u003c/strong\\u003e are 2x faster than \\u003cstrong\\u003eDown\\u003c/strong\\u003e and \\u003cstrong\\u003eRight\\u003c/strong\\u003e , on mouse\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003eOK\\u003c/strong\\u003e means click on mouse mode , and enter with arrows\\u003c/p\\u003e\\n\\u003cp\\u003eTo get right click, on Samsung hit “\\u003cstrong\\u003echannels list\\u003c/strong\\u003e” or \\u003cstrong\\u003epause\\u003c/strong\\u003e , on philips hit \\u003cstrong\\u003epause\\u003c/strong\\u003e .\\u003c/p\\u003e\\n\\u003ch2\\u003eColours and Controls\\u003c/h2\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003eRed\\u003c/strong\\u003e or \\u003cstrong\\u003ePause\\u003c/strong\\u003e = one hit means Right Click, another hit means Menu\\u003cbr\\u003e\\n\\u003cstrong\\u003eGreen\\u003c/strong\\u003e or \\u003cstrong\\u003eRewind\\u003c/strong\\u003e = Browser\\u003cbr\\u003e\\n\\u003cstrong\\u003eYellow\\u003c/strong\\u003e or \\u003cstrong\\u003ePlay\\u003c/strong\\u003e = Virtual Keyboard, hit again to close\\u003cbr\\u003e\\n\\u003cstrong\\u003eBlue\\u003c/strong\\u003e or \\u003cstrong\\u003eForward\\u003c/strong\\u003e = terminal\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003eStop\\u003c/strong\\u003e = Always means q , always stop video. And a bonus, on your browser hit \\u003cstrong\\u003eStop\\u003c/strong\\u003e moves to the next tab. \\u003cstrong\\u003eStop\\u003c/strong\\u003e send both things every time\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003ePause\\u003c/strong\\u003e = one hit means right click , another means Menu\\u003c/p\\u003e\\n\\u003cp\\u003eTo pause a video, hit \\u003cstrong\\u003eplay\\u003c/strong\\u003e and \\u003cstrong\\u003eOK\\u003c/strong\\u003e , that opens xvkbd and hits space. To unpause hit \\u003cstrong\\u003eOK\\u003c/strong\\u003e.\\u003c/p\\u003e\\n\\u003cp\\u003eTo scroll down on your browser, you could hit \\u003cstrong\\u003eplay\\u003c/strong\\u003e and \\u003cstrong\\u003eOK\\u003c/strong\\u003e too, and then keep hitting \\u003cstrong\\u003eOK\\u003c/strong\\u003e to browse the site\\u003c/p\\u003e\\n\\u003cp\\u003eAlso a nice url to browse twitter \\u003ca href=\\\"https://mobile.twitter.com\\\" rel=\\\"nofollow noopener\\\"\\u003ehttps://mobile.twitter.com\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2\\u003eSamsung, not philips\\u003c/h2\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003eChannel up\\u003c/strong\\u003e = mouse scroll up\\u003cbr\\u003e\\n\\u003cstrong\\u003eChannel Down\\u003c/strong\\u003e = mouse scroll down\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e1 2 3\\u003c/strong\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e4 5 6\\u003c/strong\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e7 8 9\\u003c/strong\\u003e\\u003cbr\\u003e\\nnumbers from 1 to 9 move the cursor to diferent places\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e0\\u003c/strong\\u003e = means space, could pause video and browse pages\\u003cbr\\u003e\\n\\u003cstrong\\u003ePrevious Channel\\u003c/strong\\u003e= means Prior, moves backwards\\u003c/p\\u003e\\n\\u003cp\\u003eI’m not coding, I’m just playing with code\\u003c/p\\u003e\",\"post_number\":2,\"post_type\":1,\"updated_at\":\"2016-10-26T05:13:07.418Z\",\"reply_count\":0,\"reply_to_post_number\":null,\"quote_count\":0,\"incoming_link_count\":130,\"reads\":21,\"score\":654.2,\"yours\":false,\"topic_id\":4250,\"topic_slug\":\"controlling-raspberry-pi-with-tv-remote-using-hdmi-cec\",\"display_username\":\"\",\"primary_group_name\":null,\"primary_group_flair_url\":null,\"primary_group_flair_bg_color\":null,\"primary_group_flair_color\":null,\"version\":2,\"can_edit\":false,\"can_delete\":false,\"can_recover\":false,\"can_wiki\":false,\"link_counts\":[{\"url\":\"https://github.com/raspberrypi/linux/pulls\",\"internal\":false,\"reflection\":false,\"title\":\"Pull Requests · raspberrypi/linux · GitHub\",\"clicks\":84},{\"url\":\"https://mobile.twitter.com\",\"internal\":false,\"reflection\":false,\"title\":\"Welcome to Twitter\",\"clicks\":4}],\"read\":true,\"user_title\":null,\"actions_summary\":[],\"moderator\":false,\"admin\":false,\"staff\":false,\"user_id\":4701,\"hidden\":false,\"trust_level\":1,\"deleted_at\":null,\"user_deleted\":false,\"edit_reason\":null,\"can_view_edit_history\":true,\"wiki\":false,\"can_accept_answer\":false,\"can_unaccept_answer\":false,\"accepted_answer\":false},{\"id\":61105,\"name\":\"Tobias Hammerschmidt\",\"username\":\"Dschogo\",\"avatar_template\":\"/letter_avatar_proxy/v4/letter/d/22d042/{size}.png\",\"created_at\":\"2018-03-08T22:27:36.447Z\",\"cooked\":\"\\u003cp\\u003eHi,\\u003c/p\\u003e\\n\\u003cp\\u003ethis is an awesome script. It function perfectly, but every button will be recognized twice (except up down left right and selecet/ok).\\u003c/p\\u003e\\n\\u003cp\\u003eis there an option to avoid this? - like an delay\\u003c/p\\u003e\\n\\u003cp\\u003ehope you can help me\\u003c/p\\u003e\\n\\u003cp\\u003eDschogo\\u003c/p\\u003e\",\"post_number\":3,\"post_type\":1,\"updated_at\":\"2018-03-08T22:27:36.447Z\",\"reply_count\":1,\"reply_to_post_number\":null,\"quote_count\":0,\"incoming_link_count\":11,\"reads\":12,\"score\":62.4,\"yours\":false,\"topic_id\":4250,\"topic_slug\":\"controlling-raspberry-pi-with-tv-remote-using-hdmi-cec\",\"display_username\":\"Tobias Hammerschmidt\",\"primary_group_name\":null,\"primary_group_flair_url\":null,\"primary_group_flair_bg_color\":null,\"primary_group_flair_color\":null,\"version\":1,\"can_edit\":false,\"can_delete\":false,\"can_recover\":false,\"can_wiki\":false,\"read\":true,\"user_title\":null,\"actions_summary\":[],\"moderator\":false,\"admin\":false,\"staff\":false,\"user_id\":8279,\"hidden\":false,\"trust_level\":0,\"deleted_at\":null,\"user_deleted\":false,\"edit_reason\":null,\"can_view_edit_history\":true,\"wiki\":false,\"can_accept_answer\":false,\"can_unaccept_answer\":false,\"accepted_answer\":false},{\"id\":63386,\"name\":\"Audric\",\"username\":\"AJCandover\",\"avatar_template\":\"/letter_avatar_proxy/v4/letter/a/6bbea6/{size}.png\",\"created_at\":\"2018-04-25T16:59:55.323Z\",\"cooked\":\"\\u003cp\\u003eHi you probably have answered this already but actually i had the same problem. This was due to the fact that for every keypress there were two cec-client debug lines with the same data causing the script to detect two keypress for each button press. To get around this I added a grep for the ID of the debug line (the timestamp I assume). If the id is the same for both key persses I ignored the second.\\u003c/p\\u003e\\n\\u003cp\\u003eHere is the modified script:\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#!/bin/bash\\nfunction keychar {\\n parin1=$1 #first param; abc1\\n parin2=$2 #second param; 0=a, 1=b, 2=c, 3=1, 4=a, ...\\n parin2=$((parin2)) #convert to numeric\\n parin1len=${#parin1} #length of parin1\\n parin2pos=$((parin2 % parin1len)) #position mod\\n char=${parin1:parin2pos:1} #char key to simulate\\n if [ \\\"$parin2\\\" -gt 0 ]; then #if same key pressed multiple times, delete previous char; write a, delete a write b, delete b write c, ...\\n xdotool key \\\"BackSpace\\\"\\n fi\\n #special cases for xdotool ( X Keysyms )\\n if [ \\\"$char\\\" = \\\" \\\" ]; then char=\\\"space\\\"; fi\\n if [ \\\"$char\\\" = \\\".\\\" ]; then char=\\\"period\\\"; fi\\n if [ \\\"$char\\\" = \\\"-\\\" ]; then char=\\\"minus\\\"; fi\\n xdotool key $char\\n}\\ndatlastkey=$(date +%s%N)\\nstrlastkey=\\\"\\\"\\nstrlastid=\\\"\\\"\\nintkeychar=0\\nintmsbetweenkeys=2000 #two presses of a key sooner that this makes it delete previous key and write the next one (a-\\u0026gt;b-\\u0026gt;c-\\u0026gt;1-\\u0026gt;a-\\u0026gt;...)\\nintmousestartspeed=10 #mouse starts moving at this speed (pixels per key press)\\nintmouseacc=10 #added to the mouse speed for each key press (while holding down key, more key presses are sent from the remote)\\nintmousespeed=10\\n\\nwhile read oneline\\ndo\\n keyline=$(echo $oneline | grep \\\" key \\\")\\n echo $keyline --- debugAllLines\\n if [ -n \\\"$keyline\\\" ]; then\\n datnow=$(date +%s%N)\\n datdiff=$((($datnow - $datlastkey) / 1000000)) #bla bla key pressed: previous channel (123)\\n strkey=$(grep -oP '(?\\u0026lt;=sed: ).*?(?= \\\\()' \\u0026lt;\\u0026lt;\\u0026lt; \\\"$keyline\\\") #bla bla key pres--\\u0026gt;sed: \\u0026gt;\\u0026gt;previous channel\\u0026lt;\\u0026lt; (\\u0026lt;--123)\\n strstat=$(grep -oP '(?\\u0026lt;=key ).*?(?=:)' \\u0026lt;\\u0026lt;\\u0026lt; \\\"$keyline\\\") #bla bla --\\u0026gt;key \\u0026gt;\\u0026gt;pressed\\u0026lt;\\u0026lt;:\\u0026lt;-- previous channel (123)\\n strpressed=$(echo $strstat | grep \\\"pressed\\\")\\n strreleased=$(echo $strstat | grep \\\"released\\\")\\n if [ -n \\\"$strpressed\\\" ]; then\\n strid=$(grep -oP '(\\\\[ ).*?(\\\\])' \\u0026lt;\\u0026lt;\\u0026lt; \\\"$keyline\\\") # get the id from the debug line to ingnore dupe detection.\\n #echo $keyline --- debug\\n if [ \\\"$strkey\\\" = \\\"$strlastkey\\\" ] \\u0026amp;\\u0026amp; [ \\\"$datdiff\\\" -lt \\\"$intmsbetweenkeys\\\" ]; then\\n intkeychar=$((intkeychar + 1)) #same key pressed for a different char\\n else\\n intkeychar=0 #different key / too far apart\\n fi\\n datlastkey=$datnow\\n strlastkey=$strkey\\n if [ \\\"$strid\\\" != \\\"$strlastid\\\" ]; then\\n case \\\"$strkey\\\" in\\n \\\"1\\\")\\n xdotool key \\\"BackSpace\\\"\\n ;;\\n \\\"2\\\")\\n keychar \\\"abc2\\\" intkeychar\\n ;;\\n \\\"3\\\")\\n keychar \\\"def3\\\" intkeychar\\n ;;\\n \\\"4\\\")\\n keychar \\\"ghi4\\\" intkeychar\\n ;;\\n \\\"5\\\")\\n keychar \\\"jkl5\\\" intkeychar\\n ;;\\n \\\"6\\\")\\n keychar \\\"mno6\\\" intkeychar\\n ;;\\n \\\"7\\\")\\n keychar \\\"pqrs7\\\" intkeychar\\n ;;\\n \\\"8\\\")\\n keychar \\\"tuv8\\\" intkeychar\\n ;;\\n \\\"9\\\")\\n keychar \\\"wxyz9\\\" intkeychar\\n ;;\\n \\\"0\\\")\\n keychar \\\" 0.-\\\" intkeychar\\n ;;\\n \\\"previous channel\\\")\\n xdotool key \\\"Return\\\" #Enter\\n ;;\\n \\\"channel up\\\")\\n xdotool click 4 #mouse scroll up\\n ;;\\n \\\"channel down\\\")\\n xdotool click 5 #mouse scroll down\\n ;;\\n \\\"channels list\\\")\\n xdotool click 3 #right mouse button click\\n ;;\\n \\\"up\\\")\\n intpixels=$((-1 * intmousespeed))\\n xdotool mousemove_relative -- 0 $intpixels #move mouse up\\n intmousespeed=$((intmousespeed + intmouseacc)) #speed up\\n ;;\\n \\\"down\\\")\\n intpixels=$(( 1 * intmousespeed))\\n xdotool mousemove_relative -- 0 $intpixels #move mouse down\\n intmousespeed=$((intmousespeed + intmouseacc)) #speed up\\n ;;\\n \\\"left\\\")\\n intpixels=$((-1 * intmousespeed))\\n xdotool mousemove_relative -- $intpixels 0 #move mouse left\\n intmousespeed=$((intmousespeed + intmouseacc)) #speed up\\n ;;\\n \\\"right\\\")\\n intpixels=$(( 1 * intmousespeed))\\n xdotool mousemove_relative -- $intpixels 0 #move mouse right\\n intmousespeed=$((intmousespeed + intmouseacc)) #speed up\\n ;;\\n \\\"select\\\")\\n xdotool click 1 #left mouse button click\\n ;;\\n \\\"return\\\")\\n xdotool key \\\"Alt_L+Left\\\" #WWW-Back\\n ;;\\n \\\"exit\\\")\\n echo Key Pressed: EXIT\\n ;;\\n \\\"F2\\\")\\n chromium-browser \\\"https://www.youtube.com\\\" \\u0026amp;\\n ;;\\n \\\"F3\\\")\\n chromium-browser \\\"https://www.google.com\\\" \\u0026amp;\\n ;;\\n \\\"F4\\\")\\n echo Key Pressed: YELLOW C\\n sync;sync;shutdown -h now\\n ;;\\n \\\"F1\\\")\\n chromium-browser --incognito \\\"https://www.google.com\\\" \\u0026amp;\\n ;;\\n \\\"rewind\\\")\\n echo Key Pressed: REWIND\\n ;;\\n \\\"pause\\\")\\n echo Key Pressed: PAUSE\\n ;;\\n \\\"Fast forward\\\")\\n echo Key Pressed: FAST FORWARD\\n ;;\\n \\\"play\\\")\\n echo Key Pressed: PLAY\\n ;;\\n \\\"stop\\\")\\n ## with my remote I only got \\\"STOP\\\" as key released (auto-released), not as key pressed; see below\\n echo Key Pressed: STOP\\n ;;\\n *)\\n echo Unrecognized Key Pressed: $strkey ; CEC Line: $keyline\\n ;;\\n\\n esac\\n else\\n echo Ignoring key $strkey with duplicate id $strid\\n fi\\n # store the id of the keypress to check for duplicate press count.\\n strlastid=$strid\\n fi\\n if [ -n \\\"$strreleased\\\" ]; then\\n #echo $keyline --- debug\\n case \\\"$strkey\\\" in\\n \\\"stop\\\")\\n echo Key Released: STOP\\n ;;\\n \\\"up\\\")\\n intmousespeed=$intmousestartspeed #reset mouse speed\\n ;;\\n \\\"down\\\")\\n intmousespeed=$intmousestartspeed #reset mouse speed\\n ;;\\n \\\"left\\\")\\n intmousespeed=$intmousestartspeed #reset mouse speed\\n ;;\\n \\\"right\\\")\\n intmousespeed=$intmousestartspeed #reset mouse speed\\n ;;\\n esac\\n fi\\n fi\\ndone\\u003c/code\\u003e\\u003c/pre\\u003e\",\"post_number\":4,\"post_type\":1,\"updated_at\":\"2018-04-25T17:01:17.063Z\",\"reply_count\":0,\"reply_to_post_number\":3,\"quote_count\":0,\"incoming_link_count\":51,\"reads\":7,\"score\":256.4,\"yours\":false,\"topic_id\":4250,\"topic_slug\":\"controlling-raspberry-pi-with-tv-remote-using-hdmi-cec\",\"display_username\":\"Audric\",\"primary_group_name\":null,\"primary_group_flair_url\":null,\"primary_group_flair_bg_color\":null,\"primary_group_flair_color\":null,\"version\":1,\"can_edit\":false,\"can_delete\":false,\"can_recover\":false,\"can_wiki\":false,\"read\":true,\"user_title\":null,\"reply_to_user\":{\"username\":\"Dschogo\",\"avatar_template\":\"/letter_avatar_proxy/v4/letter/d/22d042/{size}.png\"},\"actions_summary\":[],\"moderator\":false,\"admin\":false,\"staff\":false,\"user_id\":8650,\"hidden\":false,\"trust_level\":0,\"deleted_at\":null,\"user_deleted\":false,\"edit_reason\":null,\"can_view_edit_history\":true,\"wiki\":false,\"can_accept_answer\":false,\"can_unaccept_answer\":false,\"accepted_answer\":false}],\"stream\":[15031,36773,61105,63386]},\"timeline_lookup\":[[1,1221],[2,991],[3,492],[4,445]],\"suggested_topics\":[{\"id\":18632,\"title\":\"(UNOFFICIAL) Ubuntu MATE 18.04 beta for the Raspberry Pi 3 (ARM64)\",\"fancy_title\":\"(UNOFFICIAL) Ubuntu MATE 18.04 beta for the Raspberry Pi 3 (ARM64)\",\"slug\":\"unofficial-ubuntu-mate-18-04-beta-for-the-raspberry-pi-3-arm64\",\"posts_count\":5,\"reply_count\":1,\"highest_post_number\":6,\"image_url\":null,\"created_at\":\"2018-12-29T18:32:25.759Z\",\"last_posted_at\":\"2019-01-08T06:35:55.187Z\",\"bumped\":true,\"bumped_at\":\"2019-01-08T06:35:55.187Z\",\"unseen\":false,\"pinned\":false,\"unpinned\":null,\"visible\":true,\"closed\":false,\"archived\":false,\"bookmarked\":null,\"liked\":null,\"tags\":[\"system\"],\"archetype\":\"regular\",\"like_count\":6,\"views\":1259,\"category_id\":28,\"featured_link\":null,\"has_accepted_answer\":false,\"posters\":[{\"extras\":\"latest\",\"description\":\"Original Poster, Most Recent Poster\",\"user\":{\"id\":9755,\"username\":\"code_exec\",\"name\":\"\",\"avatar_template\":\"/user_avatar/ubuntu-mate.community/code_exec/{size}/13030_2.png\"}},{\"extras\":null,\"description\":\"Frequent Poster\",\"user\":{\"id\":7549,\"username\":\"manuti\",\"name\":\"manuti\",\"avatar_template\":\"/user_avatar/ubuntu-mate.community/manuti/{size}/12577_2.png\"}},{\"extras\":null,\"description\":\"Frequent Poster\",\"user\":{\"id\":10335,\"username\":\"Jaden_Joner\",\"name\":\"Jaden Joner\",\"avatar_template\":\"/user_avatar/ubuntu-mate.community/jaden_joner/{size}/12944_2.png\"}},{\"extras\":null,\"description\":\"Frequent Poster\",\"user\":{\"id\":10347,\"username\":\"11121\",\"name\":\"睡玾\",\"avatar_template\":\"/letter_avatar_proxy/v4/letter/1/b38774/{size}.png\"}}]},{\"id\":18125,\"title\":\"[How-To] Set Up and Upgrade Ubuntu MATE 16.04 on a Pi 2/3/3B+\",\"fancy_title\":\"[How-To] Set Up and Upgrade Ubuntu MATE 16.04 on a Pi 2/3/3B+\",\"slug\":\"how-to-set-up-and-upgrade-ubuntu-mate-16-04-on-a-pi-2-3-3b\",\"posts_count\":6,\"reply_count\":3,\"highest_post_number\":7,\"image_url\":null,\"created_at\":\"2018-10-28T04:12:57.266Z\",\"last_posted_at\":\"2018-12-04T16:54:19.847Z\",\"bumped\":true,\"bumped_at\":\"2018-12-04T16:54:19.847Z\",\"unseen\":false,\"pinned\":false,\"unpinned\":null,\"visible\":true,\"closed\":false,\"archived\":false,\"bookmarked\":null,\"liked\":null,\"tags\":[\"system\",\"installation\"],\"archetype\":\"regular\",\"like_count\":3,\"views\":5805,\"category_id\":28,\"featured_link\":null,\"has_accepted_answer\":false,\"posters\":[{\"extras\":\"latest\",\"description\":\"Original Poster, Most Recent Poster\",\"user\":{\"id\":2691,\"username\":\"graf_eberstein\",\"name\":\"George Silberstern\",\"avatar_template\":\"/user_avatar/ubuntu-mate.community/graf_eberstein/{size}/11586_2.png\"}},{\"extras\":null,\"description\":\"Frequent Poster\",\"user\":{\"id\":4002,\"username\":\"markartman\",\"name\":\"Mark Artman\",\"avatar_template\":\"/user_avatar/ubuntu-mate.community/markartman/{size}/6120_2.png\"}},{\"extras\":null,\"description\":\"Frequent Poster\",\"user\":{\"id\":10155,\"username\":\"tyro_pi\",\"name\":\"Paul\",\"avatar_template\":\"/letter_avatar_proxy/v4/letter/t/c89c15/{size}.png\"}}]},{\"id\":19302,\"title\":\"[Tutorial] Installing Ubuntu MATE on a Raspberry Pi from It's FOSS\",\"fancy_title\":\"[Tutorial] Installing Ubuntu MATE on a Raspberry Pi from It\\u0026rsquo;s FOSS\",\"slug\":\"tutorial-installing-ubuntu-mate-on-a-raspberry-pi-from-its-foss\",\"posts_count\":2,\"reply_count\":0,\"highest_post_number\":2,\"image_url\":null,\"created_at\":\"2019-04-12T15:32:18.777Z\",\"last_posted_at\":\"2019-04-13T04:44:13.508Z\",\"bumped\":true,\"bumped_at\":\"2019-04-13T04:44:13.508Z\",\"unseen\":false,\"pinned\":false,\"unpinned\":null,\"visible\":true,\"closed\":false,\"archived\":false,\"bookmarked\":null,\"liked\":null,\"tags\":[],\"archetype\":\"regular\",\"like_count\":0,\"views\":513,\"category_id\":28,\"featured_link\":null,\"has_accepted_answer\":false,\"posters\":[{\"extras\":null,\"description\":\"Original Poster\",\"user\":{\"id\":10705,\"username\":\"franksmcb\",\"name\":\"franksmcb\",\"avatar_template\":\"/user_avatar/ubuntu-mate.community/franksmcb/{size}/13329_2.png\"}},{\"extras\":\"latest\",\"description\":\"Most Recent Poster\",\"user\":{\"id\":9755,\"username\":\"code_exec\",\"name\":\"\",\"avatar_template\":\"/user_avatar/ubuntu-mate.community/code_exec/{size}/13030_2.png\"}}]},{\"id\":18471,\"title\":\"How to enable support for Raspberry Pi 3B+ and 3A+ in Ubuntu MATE\",\"fancy_title\":\"How to enable support for Raspberry Pi 3B+ and 3A+ in Ubuntu MATE\",\"slug\":\"how-to-enable-support-for-raspberry-pi-3b-and-3a-in-ubuntu-mate\",\"posts_count\":13,\"reply_count\":9,\"highest_post_number\":14,\"image_url\":null,\"created_at\":\"2018-12-04T20:26:04.457Z\",\"last_posted_at\":\"2019-01-12T17:25:21.761Z\",\"bumped\":true,\"bumped_at\":\"2019-01-12T17:25:21.761Z\",\"unseen\":false,\"pinned\":false,\"unpinned\":null,\"visible\":true,\"closed\":false,\"archived\":false,\"bookmarked\":null,\"liked\":null,\"tags\":[],\"archetype\":\"regular\",\"like_count\":5,\"views\":2193,\"category_id\":28,\"featured_link\":null,\"has_accepted_answer\":false,\"posters\":[{\"extras\":\"latest\",\"description\":\"Original Poster, Most Recent Poster\",\"user\":{\"id\":9755,\"username\":\"code_exec\",\"name\":\"\",\"avatar_template\":\"/user_avatar/ubuntu-mate.community/code_exec/{size}/13030_2.png\"}},{\"extras\":null,\"description\":\"Frequent Poster\",\"user\":{\"id\":4081,\"username\":\"Norbert_X\",\"name\":\"Norbert X\",\"avatar_template\":\"/letter_avatar_proxy/v4/letter/n/e47774/{size}.png\"}},{\"extras\":null,\"description\":\"Frequent Poster\",\"user\":{\"id\":10310,\"username\":\"Avocette\",\"name\":\"Ed Wilson\",\"avatar_template\":\"/letter_avatar_proxy/v4/letter/a/db5fbb/{size}.png\"}}]},{\"id\":18797,\"title\":\"Adapting Ubuntu MATE 16.04 image to run on the 3B+/3A+\",\"fancy_title\":\"Adapting Ubuntu MATE 16.04 image to run on the 3B+/3A+\",\"slug\":\"adapting-ubuntu-mate-16-04-image-to-run-on-the-3b-3a\",\"posts_count\":2,\"reply_count\":0,\"highest_post_number\":2,\"image_url\":null,\"created_at\":\"2019-01-21T21:51:24.899Z\",\"last_posted_at\":\"2019-02-01T18:18:33.480Z\",\"bumped\":true,\"bumped_at\":\"2019-02-01T18:18:33.480Z\",\"unseen\":false,\"pinned\":false,\"unpinned\":null,\"visible\":true,\"closed\":false,\"archived\":false,\"bookmarked\":null,\"liked\":null,\"tags\":[],\"archetype\":\"regular\",\"like_count\":2,\"views\":865,\"category_id\":28,\"featured_link\":null,\"has_accepted_answer\":false,\"posters\":[{\"extras\":null,\"description\":\"Original Poster\",\"user\":{\"id\":9755,\"username\":\"code_exec\",\"name\":\"\",\"avatar_template\":\"/user_avatar/ubuntu-mate.community/code_exec/{size}/13030_2.png\"}},{\"extras\":\"latest\",\"description\":\"Most Recent Poster\",\"user\":{\"id\":2691,\"username\":\"graf_eberstein\",\"name\":\"George Silberstern\",\"avatar_template\":\"/user_avatar/ubuntu-mate.community/graf_eberstein/{size}/11586_2.png\"}}]}],\"tags\":[],\"id\":4250,\"title\":\"Controlling Raspberry PI with TV Remote, using HDMI CEC\",\"fancy_title\":\"Controlling Raspberry PI with TV Remote, using HDMI CEC\",\"posts_count\":4,\"created_at\":\"2016-03-10T10:14:41.253Z\",\"views\":16718,\"reply_count\":1,\"like_count\":3,\"last_posted_at\":\"2018-04-25T16:59:55.323Z\",\"visible\":true,\"closed\":false,\"archived\":false,\"has_summary\":false,\"archetype\":\"regular\",\"slug\":\"controlling-raspberry-pi-with-tv-remote-using-hdmi-cec\",\"category_id\":28,\"word_count\":3255,\"deleted_at\":null,\"user_id\":2055,\"featured_link\":null,\"pinned_globally\":false,\"pinned_at\":null,\"pinned_until\":null,\"draft\":null,\"draft_key\":\"topic_4250\",\"draft_sequence\":null,\"unpinned\":null,\"pinned\":false,\"current_post_number\":1,\"highest_post_number\":4,\"deleted_by\":null,\"actions_summary\":[{\"id\":4,\"count\":0,\"hidden\":false,\"can_act\":false},{\"id\":8,\"count\":0,\"hidden\":false,\"can_act\":false},{\"id\":7,\"count\":0,\"hidden\":false,\"can_act\":false}],\"chunk_size\":20,\"bookmarked\":null,\"topic_timer\":null,\"message_bus_last_id\":0,\"participant_count\":4,\"details\":{\"notification_level\":1,\"participants\":[{\"id\":2055,\"username\":\"GizmoXomziG\",\"name\":\"Simon Murgelj\",\"avatar_template\":\"/user_avatar/ubuntu-mate.community/gizmoxomzig/{size}/2566_2.png\",\"post_count\":1,\"primary_group_name\":null,\"primary_group_flair_url\":null,\"primary_group_flair_color\":null,\"primary_group_flair_bg_color\":null},{\"id\":4701,\"username\":\"arudun\",\"name\":\"\",\"avatar_template\":\"/letter_avatar_proxy/v4/letter/a/8e7dd6/{size}.png\",\"post_count\":1,\"primary_group_name\":null,\"primary_group_flair_url\":null,\"primary_group_flair_color\":null,\"primary_group_flair_bg_color\":null},{\"id\":8279,\"username\":\"Dschogo\",\"name\":\"Tobias Hammerschmidt\",\"avatar_template\":\"/letter_avatar_proxy/v4/letter/d/22d042/{size}.png\",\"post_count\":1,\"primary_group_name\":null,\"primary_group_flair_url\":null,\"primary_group_flair_color\":null,\"primary_group_flair_bg_color\":null},{\"id\":8650,\"username\":\"AJCandover\",\"name\":\"Audric\",\"avatar_template\":\"/letter_avatar_proxy/v4/letter/a/6bbea6/{size}.png\",\"post_count\":1,\"primary_group_name\":null,\"primary_group_flair_url\":null,\"primary_group_flair_color\":null,\"primary_group_flair_bg_color\":null}],\"created_by\":{\"id\":2055,\"username\":\"GizmoXomziG\",\"name\":\"Simon Murgelj\",\"avatar_template\":\"/user_avatar/ubuntu-mate.community/gizmoxomzig/{size}/2566_2.png\"},\"last_poster\":{\"id\":8650,\"username\":\"AJCandover\",\"name\":\"Audric\",\"avatar_template\":\"/letter_avatar_proxy/v4/letter/a/6bbea6/{size}.png\"},\"links\":[{\"url\":\"http://kodi.wiki/view/CEC#Trade_names\",\"title\":\"CEC - Kodi\",\"internal\":false,\"attachment\":false,\"reflection\":false,\"clicks\":99,\"user_id\":2055,\"domain\":\"kodi.wiki\",\"root_domain\":\"kodi.wiki\"},{\"url\":\"https://github.com/raspberrypi/linux/pulls\",\"title\":\"Pull Requests · raspberrypi/linux · GitHub\",\"internal\":false,\"attachment\":false,\"reflection\":false,\"clicks\":84,\"user_id\":4701,\"domain\":\"github.com\",\"root_domain\":\"github.com\"},{\"url\":\"https://mobile.twitter.com\",\"title\":\"Welcome to Twitter\",\"internal\":false,\"attachment\":false,\"reflection\":false,\"clicks\":4,\"user_id\":4701,\"domain\":\"mobile.twitter.com\",\"root_domain\":\"twitter.com\"}]}}"}"></div> 1216 <link rel="preload" href="RaspberryPITVHDMI_archivos/preload-application-data-0a59ccab480941aaac91f9e7fa7f77496323.js" as="script"> 1217 <script src="RaspberryPITVHDMI_archivos/preload-application-data-0a59ccab480941aaac91f9e7fa7f77496323.js"></script> 1218 <link rel="preload" href="RaspberryPITVHDMI_archivos/browser-update-1741a2ed67a367faeb0a582af064457e8b1b1354e52e6e.js" as="script"> 1219 <script src="RaspberryPITVHDMI_archivos/browser-update-1741a2ed67a367faeb0a582af064457e8b1b1354e52e6e.js"></script> 1220 <script src="RaspberryPITVHDMI_archivos/75e71344378ac84843e886b21c71301deab5d960.js"></script> 1221 1222 1223 <div id="svg-sprites"><div class="fontawesome"><!-- 1224 Discourse SVG subset of Font Awesome Free by @fontawesome - https://fontawesome.com 1225 License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 1226 --> 1227 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> 1228 <symbol id="far-bell" viewBox="0 0 448 512"> 1229 <path d="M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z"></path> 1230 </symbol><symbol id="far-bell-slash" viewBox="0 0 640 512"> 1231 <path d="M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"></path> 1232 </symbol><symbol id="far-calendar-plus" viewBox="0 0 448 512"> 1233 <path d="M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"></path> 1234 </symbol><symbol id="far-chart-bar" viewBox="0 0 512 512"> 1235 <path d="M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z"></path> 1236 </symbol><symbol id="far-check-square" viewBox="0 0 448 512"> 1237 <path d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z"></path> 1238 </symbol><symbol id="far-circle" viewBox="0 0 512 512"> 1239 <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"></path> 1240 </symbol><symbol id="far-clipboard" viewBox="0 0 384 512"> 1241 <path d="M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm144 418c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h42v36c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-36h42c3.3 0 6 2.7 6 6z"></path> 1242 </symbol><symbol id="far-clock" viewBox="0 0 512 512"> 1243 <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z"></path> 1244 </symbol><symbol id="far-comment" viewBox="0 0 512 512"> 1245 <path d="M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"></path> 1246 </symbol><symbol id="far-copyright" viewBox="0 0 512 512"> 1247 <path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z"></path> 1248 </symbol><symbol id="far-dot-circle" viewBox="0 0 512 512"> 1249 <path d="M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z"></path> 1250 </symbol><symbol id="far-edit" viewBox="0 0 576 512"> 1251 <path d="M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"></path> 1252 </symbol><symbol id="far-envelope" viewBox="0 0 512 512"> 1253 <path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"></path> 1254 </symbol><symbol id="far-eye" viewBox="0 0 576 512"> 1255 <path d="M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z"></path> 1256 </symbol><symbol id="far-eye-slash" viewBox="0 0 640 512"> 1257 <path d="M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z"></path> 1258 </symbol><symbol id="far-file-alt" viewBox="0 0 384 512"> 1259 <path d="M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"></path> 1260 </symbol><symbol id="far-frown" viewBox="0 0 496 512"> 1261 <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"></path> 1262 </symbol><symbol id="far-heart" viewBox="0 0 512 512"> 1263 <path d="M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z"></path> 1264 </symbol><symbol id="far-image" viewBox="0 0 512 512"> 1265 <path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"></path> 1266 </symbol><symbol id="far-list-alt" viewBox="0 0 512 512"> 1267 <path d="M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z"></path> 1268 </symbol><symbol id="far-moon" viewBox="0 0 512 512"> 1269 <path d="M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z"></path> 1270 </symbol><symbol id="far-smile" viewBox="0 0 496 512"> 1271 <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"></path> 1272 </symbol><symbol id="far-square" viewBox="0 0 448 512"> 1273 <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z"></path> 1274 </symbol><symbol id="far-sun" viewBox="0 0 512 512"> 1275 <path d="M494.2 221.9l-59.8-40.5 13.7-71c2.6-13.2-1.6-26.8-11.1-36.4-9.6-9.5-23.2-13.7-36.2-11.1l-70.9 13.7-40.4-59.9c-15.1-22.3-51.9-22.3-67 0l-40.4 59.9-70.8-13.7C98 60.4 84.5 64.5 75 74.1c-9.5 9.6-13.7 23.1-11.1 36.3l13.7 71-59.8 40.5C6.6 229.5 0 242 0 255.5s6.7 26 17.8 33.5l59.8 40.5-13.7 71c-2.6 13.2 1.6 26.8 11.1 36.3 9.5 9.5 22.9 13.7 36.3 11.1l70.8-13.7 40.4 59.9C230 505.3 242.6 512 256 512s26-6.7 33.5-17.8l40.4-59.9 70.9 13.7c13.4 2.7 26.8-1.6 36.3-11.1 9.5-9.5 13.6-23.1 11.1-36.3l-13.7-71 59.8-40.5c11.1-7.5 17.8-20.1 17.8-33.5-.1-13.6-6.7-26.1-17.9-33.7zm-112.9 85.6l17.6 91.2-91-17.6L256 458l-51.9-77-90.9 17.6 17.6-91.2-76.8-52 76.8-52-17.6-91.2 91 17.6L256 53l51.9 76.9 91-17.6-17.6 91.1 76.8 52-76.8 52.1zM256 152c-57.3 0-104 46.7-104 104s46.7 104 104 104 104-46.7 104-104-46.7-104-104-104zm0 160c-30.9 0-56-25.1-56-56s25.1-56 56-56 56 25.1 56 56-25.1 56-56 56z"></path> 1276 </symbol><symbol id="far-thumbs-down" viewBox="0 0 512 512"> 1277 <path d="M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z"></path> 1278 </symbol><symbol id="far-thumbs-up" viewBox="0 0 512 512"> 1279 <path d="M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"></path> 1280 </symbol><symbol id="far-trash-alt" viewBox="0 0 448 512"> 1281 <path d="M268 416h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12zM432 80h-82.41l-34-56.7A48 48 0 0 0 274.41 0H173.59a48 48 0 0 0-41.16 23.3L98.41 80H16A16 16 0 0 0 0 96v16a16 16 0 0 0 16 16h16v336a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128h16a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16zM171.84 50.91A6 6 0 0 1 177 48h94a6 6 0 0 1 5.15 2.91L293.61 80H154.39zM368 464H80V128h288zm-212-48h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12z"></path> 1282 </symbol><symbol id="fab-android" viewBox="0 0 448 512"> 1283 <path d="M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z"></path> 1284 </symbol><symbol id="fab-apple" viewBox="0 0 376.5 512"> 1285 <path d="M314.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C59.3 141.2 0 184.8 0 273.5c0 26.2 4.8 53.3 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"></path> 1286 </symbol><symbol id="fab-chrome" viewBox="0 0 496 512"> 1287 <path d="M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z"></path> 1288 </symbol><symbol id="fab-discourse" viewBox="0 0 448 512"> 1289 <path d="M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z"></path> 1290 </symbol><symbol id="fab-facebook" viewBox="0 0 448 512"> 1291 <path d="M448 56.7v398.5c0 13.7-11.1 24.7-24.7 24.7H309.1V306.5h58.2l8.7-67.6h-67v-43.2c0-19.6 5.4-32.9 33.5-32.9h35.8v-60.5c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9h-58.4v67.6h58.4V480H24.7C11.1 480 0 468.9 0 455.3V56.7C0 43.1 11.1 32 24.7 32h398.5c13.7 0 24.8 11.1 24.8 24.7z"></path> 1292 </symbol><symbol id="fab-facebook-square" viewBox="0 0 448 512"> 1293 <path d="M448 80v352c0 26.5-21.5 48-48 48h-85.3V302.8h60.6l8.7-67.6h-69.3V192c0-19.6 5.4-32.9 33.5-32.9H384V98.7c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9H184v67.6h60.9V480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"></path> 1294 </symbol><symbol id="fab-github" viewBox="0 0 496 512"> 1295 <path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path> 1296 </symbol><symbol id="fab-google-plus-square" viewBox="0 0 448 512"> 1297 <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z"></path> 1298 </symbol><symbol id="fab-instagram" viewBox="0 0 448 512"> 1299 <path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path> 1300 </symbol><symbol id="fab-linux" viewBox="0 0 448 512"> 1301 <path d="M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"></path> 1302 </symbol><symbol id="fab-patreon" viewBox="0 0 512 512"> 1303 <path d="M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z"></path> 1304 </symbol><symbol id="fab-twitter" viewBox="0 0 512 512"> 1305 <path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path> 1306 </symbol><symbol id="fab-twitter-square" viewBox="0 0 448 512"> 1307 <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"></path> 1308 </symbol><symbol id="fab-windows" viewBox="0 0 448 512"> 1309 <path d="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"></path> 1310 </symbol><symbol id="adjust" viewBox="0 0 512 512"> 1311 <path d="M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"></path> 1312 </symbol><symbol id="ambulance" viewBox="0 0 640 512"> 1313 <path d="M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"></path> 1314 </symbol><symbol id="anchor" viewBox="0 0 576 512"> 1315 <path d="M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z"></path> 1316 </symbol><symbol id="angle-double-down" viewBox="0 0 320 512"> 1317 <path d="M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"></path> 1318 </symbol><symbol id="angle-double-left" viewBox="0 0 448 512"> 1319 <path d="M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"></path> 1320 </symbol><symbol id="angle-double-right" viewBox="0 0 448 512"> 1321 <path d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"></path> 1322 </symbol><symbol id="angle-double-up" viewBox="0 0 320 512"> 1323 <path d="M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"></path> 1324 </symbol><symbol id="angle-down" viewBox="0 0 320 512"> 1325 <path d="M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"></path> 1326 </symbol><symbol id="angle-right" viewBox="0 0 256 512"> 1327 <path d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path> 1328 </symbol><symbol id="angle-up" viewBox="0 0 320 512"> 1329 <path d="M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"></path> 1330 </symbol><symbol id="archive" viewBox="0 0 512 512"> 1331 <path d="M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"></path> 1332 </symbol><symbol id="arrow-down" viewBox="0 0 448 512"> 1333 <path d="M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"></path> 1334 </symbol><symbol id="arrow-left" viewBox="0 0 448 512"> 1335 <path d="M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"></path> 1336 </symbol><symbol id="arrow-up" viewBox="0 0 448 512"> 1337 <path d="M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"></path> 1338 </symbol><symbol id="arrows-alt-h" viewBox="0 0 512 512"> 1339 <path d="M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"></path> 1340 </symbol><symbol id="arrows-alt-v" viewBox="0 0 256 512"> 1341 <path d="M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z"></path> 1342 </symbol><symbol id="at" viewBox="0 0 512 512"> 1343 <path d="M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z"></path> 1344 </symbol><symbol id="backward" viewBox="0 0 512 512"> 1345 <path d="M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z"></path> 1346 </symbol><symbol id="ban" viewBox="0 0 512 512"> 1347 <path d="M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"></path> 1348 </symbol><symbol id="bars" viewBox="0 0 448 512"> 1349 <path d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"></path> 1350 </symbol><symbol id="bed" viewBox="0 0 640 512"> 1351 <path d="M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z"></path> 1352 </symbol><symbol id="bell-slash" viewBox="0 0 640 512"> 1353 <path d="M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"></path> 1354 </symbol><symbol id="bold" viewBox="0 0 384 512"> 1355 <path d="M304.793 243.891c33.639-18.537 53.657-54.16 53.657-95.693 0-48.236-26.25-87.626-68.626-104.179C265.138 34.01 240.849 32 209.661 32H24c-8.837 0-16 7.163-16 16v33.049c0 8.837 7.163 16 16 16h33.113v318.53H24c-8.837 0-16 7.163-16 16V464c0 8.837 7.163 16 16 16h195.69c24.203 0 44.834-1.289 66.866-7.584C337.52 457.193 376 410.647 376 350.014c0-52.168-26.573-91.684-71.207-106.123zM142.217 100.809h67.444c16.294 0 27.536 2.019 37.525 6.717 15.828 8.479 24.906 26.502 24.906 49.446 0 35.029-20.32 56.79-53.029 56.79h-76.846V100.809zm112.642 305.475c-10.14 4.056-22.677 4.907-31.409 4.907h-81.233V281.943h84.367c39.645 0 63.057 25.38 63.057 63.057.001 28.425-13.66 52.483-34.782 61.284z"></path> 1356 </symbol><symbol id="book" viewBox="0 0 448 512"> 1357 <path d="M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"></path> 1358 </symbol><symbol id="bookmark" viewBox="0 0 384 512"> 1359 <path d="M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"></path> 1360 </symbol><symbol id="briefcase" viewBox="0 0 512 512"> 1361 <path d="M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z"></path> 1362 </symbol><symbol id="bug" viewBox="0 0 512 512"> 1363 <path d="M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"></path> 1364 </symbol><symbol id="calendar-alt" viewBox="0 0 448 512"> 1365 <path d="M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"></path> 1366 </symbol><symbol id="caret-down" viewBox="0 0 320 512"> 1367 <path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"></path> 1368 </symbol><symbol id="caret-left" viewBox="0 0 192 512"> 1369 <path d="M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"></path> 1370 </symbol><symbol id="caret-right" viewBox="0 0 192 512"> 1371 <path d="M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"></path> 1372 </symbol><symbol id="caret-up" viewBox="0 0 320 512"> 1373 <path d="M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"></path> 1374 </symbol><symbol id="certificate" viewBox="0 0 512 512"> 1375 <path d="M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z"></path> 1376 </symbol><symbol id="chart-bar" viewBox="0 0 512 512"> 1377 <path d="M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"></path> 1378 </symbol><symbol id="chart-pie" viewBox="0 0 544 512"> 1379 <path d="M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"></path> 1380 </symbol><symbol id="check" viewBox="0 0 512 512"> 1381 <path d="M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"></path> 1382 </symbol><symbol id="check-circle" viewBox="0 0 512 512"> 1383 <path d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"></path> 1384 </symbol><symbol id="check-square" viewBox="0 0 448 512"> 1385 <path d="M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"></path> 1386 </symbol><symbol id="chevron-down" viewBox="0 0 448 512"> 1387 <path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path> 1388 </symbol><symbol id="chevron-left" viewBox="0 0 320 512"> 1389 <path d="M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"></path> 1390 </symbol><symbol id="chevron-right" viewBox="0 0 320 512"> 1391 <path d="M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"></path> 1392 </symbol><symbol id="chevron-up" viewBox="0 0 448 512"> 1393 <path d="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"></path> 1394 </symbol><symbol id="circle" viewBox="0 0 512 512"> 1395 <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"></path> 1396 </symbol><symbol id="code" viewBox="0 0 640 512"> 1397 <path d="M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"></path> 1398 </symbol><symbol id="code-branch" viewBox="0 0 384 512"> 1399 <path d="M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"></path> 1400 </symbol><symbol id="cog" viewBox="0 0 512 512"> 1401 <path d="M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"></path> 1402 </symbol><symbol id="columns" viewBox="0 0 512 512"> 1403 <path d="M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"></path> 1404 </symbol><symbol id="comment" viewBox="0 0 512 512"> 1405 <path d="M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z"></path> 1406 </symbol><symbol id="compress" viewBox="0 0 448 512"> 1407 <path d="M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"></path> 1408 </symbol><symbol id="copy" viewBox="0 0 448 512"> 1409 <path d="M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"></path> 1410 </symbol><symbol id="crosshairs" viewBox="0 0 512 512"> 1411 <path d="M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"></path> 1412 </symbol><symbol id="cube" viewBox="0 0 512 512"> 1413 <path d="M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"></path> 1414 </symbol><symbol id="desktop" viewBox="0 0 576 512"> 1415 <path d="M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z"></path> 1416 </symbol><symbol id="dollar-sign" viewBox="0 0 288 512"> 1417 <path d="M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z"></path> 1418 </symbol><symbol id="download" viewBox="0 0 512 512"> 1419 <path d="M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"></path> 1420 </symbol><symbol id="ellipsis-h" viewBox="0 0 512 512"> 1421 <path d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"></path> 1422 </symbol><symbol id="ellipsis-v" viewBox="0 0 192 512"> 1423 <path d="M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"></path> 1424 </symbol><symbol id="envelope" viewBox="0 0 512 512"> 1425 <path d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path> 1426 </symbol><symbol id="envelope-square" viewBox="0 0 448 512"> 1427 <path d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z"></path> 1428 </symbol><symbol id="exchange-alt" viewBox="0 0 512 512"> 1429 <path d="M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"></path> 1430 </symbol><symbol id="exclamation-circle" viewBox="0 0 512 512"> 1431 <path d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"></path> 1432 </symbol><symbol id="exclamation-triangle" viewBox="0 0 576 512"> 1433 <path d="M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"></path> 1434 </symbol><symbol id="external-link-alt" viewBox="0 0 576 512"> 1435 <path d="M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z"></path> 1436 </symbol><symbol id="fast-backward" viewBox="0 0 512 512"> 1437 <path d="M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z"></path> 1438 </symbol><symbol id="fast-forward" viewBox="0 0 512 512"> 1439 <path d="M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z"></path> 1440 </symbol><symbol id="file" viewBox="0 0 384 512"> 1441 <path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"></path> 1442 </symbol><symbol id="file-alt" viewBox="0 0 384 512"> 1443 <path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"></path> 1444 </symbol><symbol id="filter" viewBox="0 0 512 512"> 1445 <path d="M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z"></path> 1446 </symbol><symbol id="flag" viewBox="0 0 512 512"> 1447 <path d="M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"></path> 1448 </symbol><symbol id="folder" viewBox="0 0 512 512"> 1449 <path d="M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"></path> 1450 </symbol><symbol id="folder-open" viewBox="0 0 576 512"> 1451 <path d="M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"></path> 1452 </symbol><symbol id="forward" viewBox="0 0 512 512"> 1453 <path d="M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z"></path> 1454 </symbol><symbol id="gavel" viewBox="0 0 512 512"> 1455 <path d="M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z"></path> 1456 </symbol><symbol id="globe" viewBox="0 0 496 512"> 1457 <path d="M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"></path> 1458 </symbol><symbol id="globe-americas" viewBox="0 0 496 512"> 1459 <path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"></path> 1460 </symbol><symbol id="hand-point-right" viewBox="0 0 512 512"> 1461 <path d="M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"></path> 1462 </symbol><symbol id="hands-helping" viewBox="0 0 640 512"> 1463 <path d="M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z"></path> 1464 </symbol><symbol id="heading" viewBox="0 0 512 512"> 1465 <path d="M496 80V48c0-8.837-7.163-16-16-16H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.621v128H154.379V96H192c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.275v320H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.621V288H357.62v128H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.275V96H480c8.837 0 16-7.163 16-16z"></path> 1466 </symbol><symbol id="heart" viewBox="0 0 512 512"> 1467 <path d="M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"></path> 1468 </symbol><symbol id="home" viewBox="0 0 576 512"> 1469 <path d="M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z"></path> 1470 </symbol><symbol id="info-circle" viewBox="0 0 512 512"> 1471 <path d="M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"></path> 1472 </symbol><symbol id="italic" viewBox="0 0 320 512"> 1473 <path d="M204.758 416h-33.849l62.092-320h40.725a16 16 0 0 0 15.704-12.937l6.242-32C297.599 41.184 290.034 32 279.968 32H120.235a16 16 0 0 0-15.704 12.937l-6.242 32C96.362 86.816 103.927 96 113.993 96h33.846l-62.09 320H46.278a16 16 0 0 0-15.704 12.935l-6.245 32C22.402 470.815 29.967 480 40.034 480h158.479a16 16 0 0 0 15.704-12.935l6.245-32c1.927-9.88-5.638-19.065-15.704-19.065z"></path> 1474 </symbol><symbol id="key" viewBox="0 0 512 512"> 1475 <path d="M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"></path> 1476 </symbol><symbol id="link" viewBox="0 0 512 512"> 1477 <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path> 1478 </symbol><symbol id="list" viewBox="0 0 512 512"> 1479 <path d="M128 116V76c0-8.837 7.163-16 16-16h352c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H144c-8.837 0-16-7.163-16-16zm16 176h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 144h64c8.837 0 16-7.163 16-16V64c0-8.837-7.163-16-16-16H16C7.163 48 0 55.163 0 64v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16z"></path> 1480 </symbol><symbol id="list-ol" viewBox="0 0 512 512"> 1481 <path d="M3.263 139.527c0-7.477 3.917-11.572 11.573-11.572h15.131V88.078c0-5.163.534-10.503.534-10.503h-.356s-1.779 2.67-2.848 3.738c-4.451 4.273-10.504 4.451-15.666-1.068l-5.518-6.231c-5.342-5.341-4.984-11.216.534-16.379l21.72-19.938C32.815 33.602 36.732 32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"></path> 1482 </symbol><symbol id="list-ul" viewBox="0 0 512 512"> 1483 <path d="M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-48 48-48 48 21.49 48 48zM48 208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm0 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm96-236h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"></path> 1484 </symbol><symbol id="lock" viewBox="0 0 448 512"> 1485 <path d="M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"></path> 1486 </symbol><symbol id="magic" viewBox="0 0 512 512"> 1487 <path d="M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"></path> 1488 </symbol><symbol id="map-marker-alt" viewBox="0 0 384 512"> 1489 <path d="M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"></path> 1490 </symbol><symbol id="microphone-slash" viewBox="0 0 640 512"> 1491 <path d="M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"></path> 1492 </symbol><symbol id="minus" viewBox="0 0 448 512"> 1493 <path d="M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"></path> 1494 </symbol><symbol id="minus-circle" viewBox="0 0 512 512"> 1495 <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"></path> 1496 </symbol><symbol id="mobile-alt" viewBox="0 0 320 512"> 1497 <path d="M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z"></path> 1498 </symbol><symbol id="paint-brush" viewBox="0 0 512 512"> 1499 <path d="M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"></path> 1500 </symbol><symbol id="paper-plane" viewBox="0 0 512 512"> 1501 <path d="M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z"></path> 1502 </symbol><symbol id="pencil-alt" viewBox="0 0 512 512"> 1503 <path d="M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"></path> 1504 </symbol><symbol id="play" viewBox="0 0 448 512"> 1505 <path d="M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"></path> 1506 </symbol><symbol id="plug" viewBox="0 0 384 512"> 1507 <path d="M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z"></path> 1508 </symbol><symbol id="plus" viewBox="0 0 448 512"> 1509 <path d="M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"></path> 1510 </symbol><symbol id="plus-circle" viewBox="0 0 512 512"> 1511 <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"></path> 1512 </symbol><symbol id="plus-square" viewBox="0 0 448 512"> 1513 <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"></path> 1514 </symbol><symbol id="power-off" viewBox="0 0 512 512"> 1515 <path d="M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z"></path> 1516 </symbol><symbol id="puzzle-piece" viewBox="0 0 576 512"> 1517 <path d="M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"></path> 1518 </symbol><symbol id="question" viewBox="0 0 384 512"> 1519 <path d="M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"></path> 1520 </symbol><symbol id="question-circle" viewBox="0 0 512 512"> 1521 <path d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"></path> 1522 </symbol><symbol id="quote-left" viewBox="0 0 512 512"> 1523 <path d="M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"></path> 1524 </symbol><symbol id="quote-right" viewBox="0 0 512 512"> 1525 <path d="M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"></path> 1526 </symbol><symbol id="random" viewBox="0 0 512 512"> 1527 <path d="M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z"></path> 1528 </symbol><symbol id="redo" viewBox="0 0 512.333 512"> 1529 <path d="M500.333 0h-47.411c-6.853 0-12.314 5.729-11.986 12.574l3.966 82.759C399.416 41.899 331.672 8 256.001 8 119.34 8 7.899 119.526 8 256.187 8.101 393.068 119.096 504 256 504c63.926 0 122.202-24.187 166.178-63.908 5.113-4.618 5.354-12.561.482-17.433l-33.971-33.971c-4.466-4.466-11.64-4.717-16.38-.543C341.308 415.448 300.606 432 256 432c-97.267 0-176-78.716-176-176 0-97.267 78.716-176 176-176 60.892 0 114.506 30.858 146.099 77.8l-101.525-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12z"></path> 1530 </symbol><symbol id="reply" viewBox="0 0 512 512"> 1531 <path d="M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z"></path> 1532 </symbol><symbol id="rocket" viewBox="0 0 512 512"> 1533 <path d="M505.05 19.1a15.89 15.89 0 0 0-12.2-12.2C460.65 0 435.46 0 410.36 0c-103.2 0-165.1 55.2-211.29 128H94.87A48 48 0 0 0 52 154.49l-49.42 98.8A24 24 0 0 0 24.07 288h103.77l-22.47 22.47a32 32 0 0 0 0 45.25l50.9 50.91a32 32 0 0 0 45.26 0L224 384.16V488a24 24 0 0 0 34.7 21.49l98.7-49.39a47.91 47.91 0 0 0 26.5-42.9V312.79c72.59-46.3 128-108.4 128-211.09.1-25.2.1-50.4-6.85-82.6zM384 168a40 40 0 1 1 40-40 40 40 0 0 1-40 40z"></path> 1534 </symbol><symbol id="search" viewBox="0 0 512 512"> 1535 <path d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"></path> 1536 </symbol><symbol id="share" viewBox="0 0 512 512"> 1537 <path d="M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"></path> 1538 </symbol><symbol id="shield-alt" viewBox="0 0 512 512"> 1539 <path d="M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z"></path> 1540 </symbol><symbol id="shower" viewBox="0 0 512 512"> 1541 <path d="M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z"></path> 1542 </symbol><symbol id="sign-in-alt" viewBox="0 0 512 512"> 1543 <path d="M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"></path> 1544 </symbol><symbol id="sign-out-alt" viewBox="0 0 512 512"> 1545 <path d="M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"></path> 1546 </symbol><symbol id="signal" viewBox="0 0 640 512"> 1547 <path d="M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"></path> 1548 </symbol><symbol id="step-backward" viewBox="0 0 448 512"> 1549 <path d="M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z"></path> 1550 </symbol><symbol id="step-forward" viewBox="0 0 448 512"> 1551 <path d="M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"></path> 1552 </symbol><symbol id="sync" viewBox="0 0 512.333 512"> 1553 <path d="M440.935 12.574l3.966 82.766C399.416 41.904 331.674 8 256 8 134.813 8 33.933 94.924 12.296 209.824 10.908 217.193 16.604 224 24.103 224h49.084c5.57 0 10.377-3.842 11.676-9.259C103.407 137.408 172.931 80 256 80c60.893 0 114.512 30.856 146.104 77.801l-101.53-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12h-47.411c-6.853 0-12.315 5.729-11.987 12.574zM256 432c-60.895 0-114.517-30.858-146.109-77.805l101.868 4.871c6.845.327 12.573-5.134 12.573-11.986v-47.412c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12V500c0 6.627 5.373 12 12 12h47.385c6.863 0 12.328-5.745 11.985-12.599l-4.129-82.575C112.725 470.166 180.405 504 256 504c121.187 0 222.067-86.924 243.704-201.824 1.388-7.369-4.308-14.176-11.807-14.176h-49.084c-5.57 0-10.377 3.842-11.676 9.259C408.593 374.592 339.069 432 256 432z"></path> 1554 </symbol><symbol id="table" viewBox="0 0 512 512"> 1555 <path d="M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z"></path> 1556 </symbol><symbol id="tag" viewBox="0 0 512 512"> 1557 <path d="M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"></path> 1558 </symbol><symbol id="tasks" viewBox="0 0 512 512"> 1559 <path d="M208 132h288c8.8 0 16-7.2 16-16V76c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zM64 368c-26.5 0-48.6 21.5-48.6 48s22.1 48 48.6 48 48-21.5 48-48-21.5-48-48-48zm92.5-299l-72.2 72.2-15.6 15.6c-4.7 4.7-12.9 4.7-17.6 0L3.5 109.4c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.3c4.7-4.7 12.3-4.7 17 0l17 16.5c4.6 4.7 4.6 12.3-.1 17zm0 159.6l-72.2 72.2-15.7 15.7c-4.7 4.7-12.9 4.7-17.6 0L3.5 269c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.7c4.7-4.7 12.3-4.7 17 0l17 17c4.6 4.6 4.6 12.2-.1 16.9z"></path> 1560 </symbol><symbol id="thermometer-three-quarters" viewBox="0 0 256 512"> 1561 <path d="M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"></path> 1562 </symbol><symbol id="thumbs-down" viewBox="0 0 512 512"> 1563 <path d="M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z"></path> 1564 </symbol><symbol id="thumbs-up" viewBox="0 0 512 512"> 1565 <path d="M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"></path> 1566 </symbol><symbol id="thumbtack" viewBox="0 0 384 512"> 1567 <path d="M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z"></path> 1568 </symbol><symbol id="times" viewBox="0 0 352 512"> 1569 <path d="M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"></path> 1570 </symbol><symbol id="times-circle" viewBox="0 0 512 512"> 1571 <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"></path> 1572 </symbol><symbol id="trash-alt" viewBox="0 0 448 512"> 1573 <path d="M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"></path> 1574 </symbol><symbol id="tv" viewBox="0 0 640 512"> 1575 <path d="M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z"></path> 1576 </symbol><symbol id="undo" viewBox="0 0 512 512"> 1577 <path d="M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"></path> 1578 </symbol><symbol id="unlink" viewBox="0 0 512 512"> 1579 <path d="M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z"></path> 1580 </symbol><symbol id="unlock" viewBox="0 0 448 512"> 1581 <path d="M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"></path> 1582 </symbol><symbol id="unlock-alt" viewBox="0 0 448 512"> 1583 <path d="M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"></path> 1584 </symbol><symbol id="upload" viewBox="0 0 512 512"> 1585 <path d="M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"></path> 1586 </symbol><symbol id="user" viewBox="0 0 448 512"> 1587 <path d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"></path> 1588 </symbol><symbol id="user-edit" viewBox="0 0 640 512"> 1589 <path d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z"></path> 1590 </symbol><symbol id="user-plus" viewBox="0 0 640 512"> 1591 <path d="M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"></path> 1592 </symbol><symbol id="user-secret" viewBox="0 0 448 512"> 1593 <path d="M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z"></path> 1594 </symbol><symbol id="user-shield" viewBox="0 0 640 512"> 1595 <path d="M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"></path> 1596 </symbol><symbol id="user-times" viewBox="0 0 640 512"> 1597 <path d="M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"></path> 1598 </symbol><symbol id="users" viewBox="0 0 640 512"> 1599 <path d="M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"></path> 1600 </symbol><symbol id="wrench" viewBox="0 0 512 512"> 1601 <path d="M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"></path> 1602 </symbol><symbol id="discourse-compress" viewBox="0 0 1792 1792"> 1603 <path d="M896 960v448q0 26-19 45t-45 19-45-19l-144-144-332 332q-10 10-23 10t-23-10l-114-114q-10-10-10-23t10-23l332-332-144-144q-19-19-19-45t19-45 45-19h448q26 0 45 19t19 45zm755-672q0 13-10 23l-332 332 144 144q19 19 19 45t-19 45-45 19h-448q-26 0-45-19t-19-45v-448q0-26 19-45t45-19 45 19l144 144 332-332q10-10 23-10t23 10l114 114q10 10 10 23z"></path> 1604 </symbol><symbol id="discourse-expand" viewBox="0 0 1792 1792"> 1605 <path d="M883 1056q0 13-10 23l-332 332 144 144q19 19 19 45t-19 45-45 19h-448q-26 0-45-19t-19-45v-448q0-26 19-45t45-19 45 19l144 144 332-332q10-10 23-10t23 10l114 114q10 10 10 23zm781-864v448q0 26-19 45t-45 19-45-19l-144-144-332 332q-10 10-23 10t-23-10l-114-114q-10-10-10-23t10-23l332-332-144-144q-19-19-19-45t19-45 45-19h448q26 0 45 19t19 45z"></path> 1606 </symbol></svg></div></div></body></html>