Overhauling Instant Messengers + add Session messenger #2293

Open
lrq3000 wants to merge 18 commits from lrq3000/session-loki into master
7 changed files with 105 additions and 14 deletions

View File

@ -3,6 +3,7 @@ name: PrivacyTools
description: You are being watched. PrivacyTools provides knowledge, encryption, and software recommendations to protect you against global mass surveillance.
url: "https://www.privacytools.io"
production_url: "https://www.privacytools.io"
repository: privacytools/privacytools.io
sass:
style: compressed
plugins:

View File

@ -6,25 +6,28 @@
<div class="alert alert-warning" role="alert">
<strong>If you are currently using an Instant Messenger like Telegram, LINE, Viber, <a href="https://www.eff.org/deeplinks/2016/10/where-whatsapp-went-wrong-effs-four-biggest-security-concerns">WhatsApp</a>, or plain SMS, you should pick an alternative here.</strong></div>
<p>We only recommend instant messenger programs or apps that support <a href="https://en.wikipedia.org/wiki/End-to-end_encryption">end-to-end encryption (E2EE)</a>. When E2EE is used, all transmissions (messages, voice, video, etc.) are encrypted <strong>before</strong> they are sent from your device. E2EE protects both the authenticity and confidentiality of the transmission as they pass through any part of the network (servers, etc.).</p>
<p>We only recommend instant messenger programs or apps that support <a href="https://en.wikipedia.org/wiki/End-to-end_encryption">end-to-end encryption (E2EE)</a>. When E2EE is used, all transmissions (messages, voice, video, etc.) are encrypted <strong>before</strong> they are sent from your device. E2EE protects both the authenticity and confidentiality of the transmission as they pass through any part of the network (servers, etc.).</p>
<p>All the client programs/apps we chose are <a href="https://en.wikipedia.org/wiki/Free_and_open-source_software">free and open-source software</a> unless otherwise mentioned. This to ensure that the code can be independently verified by experts now and in the future.</p>
<p>All the client programs/apps we chose are <a href="https://en.wikipedia.org/wiki/Free_and_open-source_software">free and open-source software</a> unless otherwise mentioned. This to ensure that the code can be independently verified by experts now and in the future.</p>
<p>We have described the three main types of messaging programs that exist: Centralized, Federated and Peer-to-Peer (P2P), with the advantages and disadvantages of each.</p>
<p>We have described the three main types of messaging programs that exist: Centralized, Federated and Peer-to-Peer (P2P), with the advantages and disadvantages of each.</p>
<h2 id="centralized" class="anchor">
<a href="#centralized"><i class="fas fa-link anchor-icon"></i></a>
Centralized
</h2>
<h2 id="centralized" class="anchor">
<a href="#centralized"><i class="fas fa-link anchor-icon"></i></a>
Centralized
</h2>
<p>Centralized messengers are those where every participant is on the same server or network of servers controlled by the same organization.</p>
<div class="clearfix">
<img src="/assets/img/svg/layout/network-centralized.svg" width="150" height="150" class="img-fluid float-left ml-2" alt="Centralized network" />
<p>Centralized messengers are those where every participant is on the same server or network of servers controlled by the same organization.</p>
</div>
{%
include cardv2.html
title="Signal"
image="/assets/img/svg/3rd-party/signal.svg"
description='Signal is a mobile app developed by Signal Messenger LLC. The app provides instant messaging, as well as voice and video calling. All communications are E2EE unless you choose to send as SMS. Its protocol has also been <a href="https://eprint.iacr.org/2016/1013.pdf">indepedently audited (PDF)</a>'
labels="color==warning::text==Requires phone number::tooltip==Signal requires your phone number as an personal identifier which means anyone you communicate with will see it.|text==VoIP"
description='Signal is a mobile app developed by Signal Messenger LLC. The app provides instant messaging, as well as voice and video calling. All communications are E2EE unless you choose to send as SMS.'
labels="color==warning::text==Requires phone number::tooltip==Signal requires your phone number as an personal identifier which means anyone you communicate with will see it.|color==info::icon==fas fa-info-circle::text==Audited::link==https://eprint.iacr.org/2016/1013.pdf::tooltip==The protocol was independently audited.|text==VoIP"
website="https://signal.org/"
privacy-policy="https://signal.org/legal/"
forum="https://forum.privacytools.io/t/discussion-signal/664"
@ -67,14 +70,17 @@
Federated
</h2>
<p>Federated messengers use multiple, independent servers that are able to talk to each other (email is one example of a federated service). Federation allows system administrators to control their own server and still be a part of the larger communications network.</p>
<div class="clearfix">
<img src="/assets/img/svg/layout/network-decentralized.svg" width="200" class="img-fluid float-left ml-2" alt="Decentralized network" />
<p>Federated messengers use multiple, independent, decentralized servers that are able to talk to each other (email is one example of a federated service). Federation allows system administrators to control their own server and still be a part of the larger communications network.</p>
</div>
{%
include cardv2.html
title="Element"
image="/assets/img/svg/3rd-party/element.svg"
description='<a href="https://element.io">Element</a> (formerly <a href="https://element.io/blog/welcome-to-element/">Riot</a>) is the reference client for the <a href="https://matrix.org/docs/guides/introduction">Matrix</a> network. The <a href="https://matrix.org/docs/spec">Matrix open standard</a> is an open-source standard for secure, decentralized, real-time communication.'
labels="text==VoIP"
labels="color==info::icon==fas fa-info-circle::text==Audited::link==https://matrix.org/blog/2016/11/21/matrixs-olm-end-to-end-encryption-security-assessment-released-and-implemented-cross-platform-on-riot-at-last::tooltip==The protocol was independently audited.|text==VoIP"
website="https://element.io"
privacy-policy="https://element.io/privacy"
forum="https://forum.privacytools.io/t/discussion-element-io/665"
@ -119,19 +125,26 @@
<ul>
<li><a href="https://status.im">Status.im</a> - Encrypted instant messenger with an integrated <a href="https://en.wikipedia.org/wiki/Ethereum">Ethereum</a> wallet (cryptocurrency) that also includes support for <a href="https://our.status.im/tag/dapps">DApps (decentralized apps)</a> (web apps in a curated store). Uses the <a href="https://our.status.im/status-launches-private-peer-to-peer-messaging-protocol/">Waku protocol (a fork of Whisper)</a> for P2P communication. Only available for iOS and Android.</li>
</ul>
</div>
<h2 id="peer-to-peer" class="anchor">
<a href="#peer-to-peer"><i class="fas fa-link anchor-icon"></i></a>
Peer to Peer (P2P)
Peer-to-Peer (P2P)
</h2>
<p>Peer-to-Peer instant messengers connect directly to each other without requiring third-party servers. Clients (peers) usually find each other through the use of a <a href="https://en.wikipedia.org/wiki/Distributed_computing">distributed computing</a> network. Examples of this include <a href="https://en.wikipedia.org/wiki/Distributed_hash_table">DHT (distributed hash table)</a> (used with technologies like <a href="https://en.wikipedia.org/wiki/BitTorrent_(protocol)">torrents</a> and <a href="https://en.wikipedia.org/wiki/InterPlanetary_File_System">IPFS</a>, for example). Another approach is proximity based networks, where a connection is established over WiFi or Bluetooth (for example, Briar or the <a href="https://www.scuttlebutt.nz">Scuttlebutt</a> social networking protocol). Once a peer has found a route to its contact via any of these methods, a direct connection between them is made.</p>
<div class="clearfix">
<p>
<img src="/assets/img/svg/layout/network-distributed.svg" width="150" height="150" class="img-fluid float-left ml-2" alt="Distributed network" />
<a href="https://en.wikipedia.org/wiki/Peer-to-peer">Peer-to-peer</a> messengers connect to a <a href="https://en.wikipedia.org/wiki/Distributed_networking">distributed network</a> of nodes to relay messages to the recipient without a third-party server. Clients (peers) usually find each other through the use of a <a href="https://en.wikipedia.org/wiki/Distributed_computing">distributed computing</a> network. Examples of this include <a href="https://en.wikipedia.org/wiki/Distributed_hash_table">DHT (distributed hash table)</a> (used with technologies like <a href="https://en.wikipedia.org/wiki/BitTorrent_(protocol)">torrents</a> and <a href="https://en.wikipedia.org/wiki/InterPlanetary_File_System">IPFS</a>, for example). Another approach is proximity based networks, where a connection is established over WiFi or Bluetooth (for example, Briar or the <a href="https://www.scuttlebutt.nz">Scuttlebutt</a> social networking protocol). Once a peer has found a route to its contact via any of these methods, a direct connection between them is made. Although messages are usually encrypted, an observer can still deduce the location and identity of the sender and recipient.
</p>
</div>
{%
include cardv2.html
title="Briar"
image="/assets/img/svg/3rd-party/briar.svg"
description="Encrypted instant messenger that connects to contacts via Wi-Fi, Bluetooth, or Tor over the internet to synchronize messages. Technology such as this has proven to be useful when Internet availability is an issue, such as in times of crisis."
labels="color==warning::text==Warning::tooltip==If local mesh network is not needed, disable Wi-Fi and Bluetooth connections in Briar's options for maximal anonymity by only connecting through the Tor network.|color==info::icon==fas fa-info-circle::text==Audited::link==https://briarproject.org/news/2017-beta-released-security-audit/::tooltip==The client software was independently audited."
website="https://briarproject.org"
privacy-policy="https://briarproject.org/privacy-policy/"
forum="https://forum.privacytools.io/t/discussion-briar/2114"
@ -180,3 +193,65 @@
</div>
</div>
</div>
<h2 id="anonymous-routing" class="anchor">
<a href="#anonymous-routing"><i class="fas fa-link anchor-icon"></i></a>
Anonymous Routing
</h2>
<div class="clearfix">
<p>
<img src="/assets/img/svg/layout/network-anonymous-routing.svg" width="150" height="150" class="img-fluid float-left ml-2" alt="Anonymous routing network" />
A messenger using <a href="https://doi.org/10.1007/978-1-4419-5906-5_628">anonymous routing</a> communicates encrypted messages through a virtual <a href="https://en.wikipedia.org/wiki/Overlay_network">overlay network</a> that hides the location of each node as well as the recipient and sender of each message. The sender and recipient never interact directly, and only meet through a secret rendez-vu node, so that there is no leak of IP addresses nor physical location. With <a href="https://en.wikipedia.org/wiki/Onion_routing">onion routing networks</a> (e.g., <a href="https://en.wikipedia.org/wiki/Tor_(anonymity_network)">Tor</a>), nodes cannot decrypt messages nor the final destination, only the recipient can. Each intermediary node can only decrypt a part that indicates where to send the still encrypted message next, until it arrives at the recipient who can fully decrypt it, hence the "onion layers".
</p>
</div>
{%
include cardv2.html
title="Briar"
image="/assets/img/svg/3rd-party/briar.svg"
description="Encrypted instant messenger that connects to contacts via Wi-Fi, Bluetooth, or Tor over the internet to synchronize messages. Technology such as this has proven to be useful when Internet availability is an issue, such as in times of crisis."
labels="color==warning::text==Warning::tooltip==If local mesh network is not needed, disable Wi-Fi and Bluetooth connections in Briar's options for maximal anonymity by only connecting through the Tor network.|color==info::icon==fas fa-info-circle::text==Audited::link==https://briarproject.org/news/2017-beta-released-security-audit/::tooltip==The client software was independently audited."
website="https://briarproject.org"
privacy-policy="https://briarproject.org/privacy-policy/"
forum="https://forum.privacytools.io/t/discussion-briar/2114"
gitlab="https://code.briarproject.org/briar/briar"
fdroid="https://f-droid.org/packages/org.briarproject.briar.android/"
googleplay="https://play.google.com/store/apps/details?id=org.briarproject.briar.android"
%}
{%
include cardv2.html
title="Session"
image="/assets/img/svg/3rd-party/session.svg"
description="Encrypted instant messenger using 3-hops onion routing to transmit communications via <a href=//oxen.io/>Oxen blockchain</a>'s nodes that are <a href=//oxendashboard.com/#5>distributed worldwide</a>. All communications are E2EE encrypted by default, supporting 1-on-1, private group and public group textual chatrooms."
labels="color==info::icon==fas fa-info-circle::text==Audited::link==https://getsession.org/session-code-audit/::tooltip==The client softwares on all platforms were independently audited.|color==info::icon==fas fa-info-circle::text==Whitepaper::link==https://arxiv.org/abs/2002.04609"
website="https://getsession.org/"
privacy-policy="https://getsession.org/privacy-policy/"
github="https://github.com/oxen-io/session-desktop"
googleplay="https://play.google.com/store/apps/details?id=network.loki.messenger"
ios="https://apps.apple.com/app/session-private-messenger/id1470168868"
windows="https://getsession.org/windows"
linux="https://www.getsession.org/linux"
mac="https://getsession.org/mac"
%}
<div class="container">
<div class="row">
<div class="col-md-6">
<h3>Advantages</h3>
<ul>
<li>Minimal to no information is exposed to other parties, including recipients.</li>
<li>Messages can be relayed even if one of the parties is offline.</li>
</ul>
</div>
<div class="col-md-6">
<h3>Disadvantages</h3>
<ul>
<li>Slow messages propagation.</li>
<li>Less reliable due to the random nodes routing, some nodes may be very far from the sender and receiver, adding latency or even failing to transmit messages if one of the nodes goes offline.</li>
<li>More complex to use as it requires the creation and secured backup of a cryptographic private key.</li>
</ul>
</div>
</div>
</div>

7
assets/img/svg/3rd-party/session.svg vendored Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 303.1 336.3" version="1.1" viewBox="0 0 303.1 336.3" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
<style type="text/css">
.st0{fill:#00F782;}
</style>
<path class="st0" d="m255.7 170.9-63.5-35.2h43c37.4 0 67.8-30.4 67.8-67.8s-30.4-67.9-67.8-67.9h-150.2c-46.9 0-85 38.1-85 85 0 33.4 18.2 64.2 47.4 80.4l63.5 35.2h-43c-37.5 0-67.9 30.5-67.9 67.9s30.4 67.8 67.8 67.8h150.2c46.9 0 85-38.1 85-85 0.1-33.4-18.1-64.2-47.3-80.4zm-198.1-23.8c-22.1-12.3-36-35.3-36.6-60.4-0.8-36.1 29.5-65.7 65.6-65.7h147.3c25.2 0 46.9 19.3 48.1 44.5 1.3 26.9-20.2 49.2-46.8 49.2h-84.8c-5.2 0-9.4 4.2-9.4 9.4v69.2l-83.4-46.2zm158.9 168.2h-147.3c-25.2 0-46.9-19.3-48.1-44.5-1.3-26.9 20.2-49.2 46.8-49.2h84.8c5.2 0 9.4-4.2 9.4-9.4v-69.2l83.4 46.2c22.1 12.2 35.9 35.3 36.5 60.4 0.9 36.1-29.4 65.7-65.5 65.7z"/>
</svg>

After

Width:  |  Height:  |  Size: 872 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128pt" height="128pt" version="1.1" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg"><g transform="translate(.13275 .062985)"><path transform="scale(.75294)" d="m84.824 138.56v-34.412m-13.655-32.975-24.337-24.337m37.992 18.677v-34.412m-19.315 53.727h-34.412m67.387-13.655 24.337-24.337m-24.337 51.652 24.337 24.337m-18.677-37.992h34.412m-91.724 37.992 24.337-24.337" fill="none" stroke="#999" stroke-miterlimit="10" stroke-width="1.932"/><g><path d="m69.93 110.38c0.02344 2.1836-1.125 4.207-3.0117 5.3047-1.8828 1.0977-4.2148 1.0977-6.0977 0-1.8867-1.0977-3.0352-3.1211-3.0117-5.3047 0.03516-3.3203 2.7383-5.9922 6.0586-5.9922 3.3203 0 6.0234 2.6719 6.0625 5.9922z" fill="#7dccba"/><path d="m78.414 63.867c0 8.0352-6.5117 14.547-14.547 14.547-8.0312 0-14.543-6.5117-14.543-14.547 0-8.0312 6.5117-14.543 14.543-14.543 8.0352 0 14.547 6.5117 14.547 14.543z" fill="#fc3"/><path d="m37.039 30.98c0.02344 2.1797-1.125 4.207-3.0117 5.3047-1.8828 1.0977-4.2148 1.0977-6.0977 0-1.8867-1.0977-3.0352-3.125-3.0117-5.3047 0.03516-3.3203 2.7383-5.9961 6.0586-5.9961 3.3203 0 6.0234 2.6758 6.0625 5.9961zm32.891-13.625c0.02344 2.1797-1.125 4.207-3.0117 5.3047-1.8828 1.0977-4.2148 1.0977-6.0977 0-1.8867-1.0977-3.0352-3.125-3.0117-5.3047 0.03516-3.3203 2.7383-5.9922 6.0586-5.9922 3.3203 0 6.0234 2.6719 6.0625 5.9922zm-46.516 46.516c0.02344 2.1797-1.125 4.207-3.0117 5.3047-1.8828 1.0977-4.2148 1.0977-6.0977 0-1.8867-1.0977-3.0352-3.125-3.0117-5.3047 0.03906-3.3203 2.7422-5.9961 6.0625-5.9961 3.3203 0 6.0234 2.6758 6.0586 5.9961zm79.406-32.891c0.0234 2.1797-1.125 4.207-3.0117 5.3047-1.8828 1.0977-4.2148 1.0977-6.0977 0-1.8867-1.0977-3.0352-3.125-3.0117-5.3047 0.03516-3.3203 2.7383-5.9961 6.0586-5.9961 3.3203 0 6.0234 2.6758 6.0625 5.9961zm-65.781 65.781c0.02344 2.1797-1.125 4.207-3.0117 5.3047-1.8828 1.0976-4.2148 1.0976-6.0977 0-1.8867-1.0977-3.0352-3.125-3.0117-5.3047 0.03516-3.3203 2.7383-5.9922 6.0586-5.9922 3.3203 0 6.0234 2.6719 6.0625 5.9922zm65.781 0c0.0234 2.1797-1.125 4.207-3.0117 5.3047-1.8828 1.0976-4.2148 1.0976-6.0977 0-1.8867-1.0977-3.0352-3.125-3.0117-5.3047 0.03516-3.3203 2.7383-5.9922 6.0586-5.9922 3.3203 0 6.0234 2.6719 6.0625 5.9922zm13.621-32.891c0.0273 2.1797-1.125 4.207-3.0078 5.3047-1.8867 1.0977-4.2148 1.0977-6.1016 0-1.8828-1.0977-3.0352-3.125-3.0078-5.3047 0.0352-3.3203 2.7383-5.9961 6.0586-5.9961 3.3203 0 6.0234 2.6758 6.0586 5.9961z" fill="#7dccba"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(.26933 0 0 .26933 -.34755 18.767)"><path d="m373.55 121.64-13.618-28.28m-245.99 153.64-32.342-119.76m-20.008-12.029-30.601 6.985m33.727-20.683-24.54-19.57m74.399 0-24.54 19.57m-12.66-6.097v-31.387m15.925 50.508 114.64 21.088m-137.59-9.428-13.618 28.279m154.48-26.017-24.54-19.57m198.86 97.472-146.73-61.543m-48.517-74.928 26.471 54.12m-88.092 126.3 84.706-99.43m9.682-28.496-1.166-23.035m116.33-13.767-99.65 46.166m22.507-22.859-24.54 19.57m14.224-88.658-22.63 83.13m-63.573 150.29-30.601-6.985m21.413-33.269-24.54 19.57m7.985 52.964-13.619-28.28m-19.684-24.684-24.54-19.57m21.413 33.269-30.6 6.984m39.361 4.001-13.619 28.28m295.91-78.292-13.619 28.28m57.844-72.533-24.54 19.57m7.984 52.963-13.618-28.28m39.361-4.001-30.6-6.984m-15.787-19.795v-31.387m-15.785 51.182-30.601 6.984m-13.827-154.53-24.54-19.57m37.199 13.474v-31.389m37.199 17.915-24.54 19.57m33.728 20.683-30.6-6.985" fill="none" stroke="#999" stroke-miterlimit="10" stroke-width="1.943"/><path d="m377.06 120.84a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192z" fill="#7fcdbb"/><path d="m77.375 95.412c8.943 0 16.192 7.25 16.192 16.192 0 8.943-7.249 16.192-16.192 16.192-8.942 0-16.191-7.25-16.191-16.192s7.249-16.192 16.191-16.192z" fill="#fc3"/><path d="m33.847 68.795a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm-10.751 47.102a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm54.279-68.064a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm-24.156 105.84a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm67.685-84.875a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192z" fill="#7fcdbb"/><path d="m223.87 122.36c8.943 0 16.192 7.25 16.192 16.192s-7.249 16.192-16.192 16.192c-8.942 0-16.191-7.25-16.191-16.192 0-8.943 7.249-16.192 16.191-16.192z" fill="#fc3"/><path d="m252.88 23.889a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm-72.539 71.853a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm41.134-12.579a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm45.923 12.579a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm-80.671-41.225a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm-14.284 212.41a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm-10.752-47.102a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm-19.371 84.875a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192z" fill="#7fcdbb"/><path d="m118.16 246.44c8.943 0 16.192 7.25 16.192 16.192s-7.25 16.192-16.192 16.192-16.192-7.25-16.192-16.192c0-8.943 7.25-16.192 16.192-16.192z" fill="#fc3"/><path d="m74.633 219.82a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm-10.75 47.102a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm30.122 37.773a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192z" fill="#7fcdbb"/><path d="m400.46 196.43c8.943 0 16.192 7.25 16.192 16.192 0 8.943-7.249 16.192-16.192 16.192-8.942 0-16.191-7.25-16.191-16.192s7.249-16.192 16.191-16.192z" fill="#fc3"/><path d="m454.74 216.91a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm-108.56 0a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm54.279-68.064a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm-24.157 105.84a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm67.686-84.875a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm-19.372 84.875a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192z" fill="#7fcdbb"/><path d="m352.9 62.58c8.943 0 16.192 7.249 16.192 16.191 0 8.943-7.25 16.192-16.192 16.192s-16.192-7.25-16.192-16.192 7.25-16.192 16.192-16.192z" fill="#fc3"/><path d="m407.18 83.064a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm-97.809-47.102a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm43.529-20.962a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192zm43.529 20.962a8.096 8.096 0 1 1 0 16.192 8.096 8.096 0 0 1 0-16.192z" fill="#7fcdbb"/></g></svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128pt" height="128pt" version="1.1" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg"><g transform="translate(.4707 11.473)"><path transform="scale(.34048 .34314)" d="m101.02 99.074h-31.883m-19.676-56.009 4.2105 42.007m1.3997 28.061v16.882m196.49 129.28-49.929 14.002m56.813-87.212 5.3118 55.417m-9.5797 5.1455-60.151-48.712m136.03 57.569h-50.893m-173.81-213.53-43.573-9.8129m54.335 52.89 1.9274-25.955m14.96-12.067 36.162 5.0772m-132.15 123.75 11.106-19.558m39.925 35.814-43.952-3.0623m-14.203 13.092-0.64247 48.883m280.89-113.3-51.042-31.294m-61.93-7.354h35.887m14.054-30.942v16.871m-28.647 45.615 19.194-21.14m59.406-10.405h-35.887m76.695 143.84-20.479-41.233m-21.385-166.54-35.772 13.843m50.491 36.03-1.1932-40.891m-188.82 193.97-13.251-32.012m4.7038 47.016-69.169 9.9837m96.061-6.5571 36.07 15.129m-6.0805-81.873-52.912 2.6069m28.005-53.789 50.813 1.9011m-74.813-28.3 4.8988 12.75m-8.9716 14.253-46.969 3.7567m71.119 4.8723 32.743 31.499m10.933 23.792 3.4074 59.925m15.029-109.64-12.551 23.292m53.623-1.4685-46.591 10.701m-6.3214-74.895 11.129 18.021m-72.473-29.985h39.891m28.131-45.012h35.887m-106.24 37.248 44.56-29.484m99.147 114.48 27.19 8.5607m16.819-9.4259 4.1875-16.712m-10.647-14.15-85.013-3.0395" fill="none" stroke="#999" stroke-miterlimit="10" stroke-width="1.125"/><path d="m23.539 33.996c0 2.6641-2.1445 4.8242-4.7891 4.8242s-4.7891-2.1602-4.7891-4.8242c0-2.668 2.1445-4.8281 4.7891-4.8281s4.7891 2.1602 4.7891 4.8281zm71.512 53.676c0 2.6641-2.1445 4.8242-4.7891 4.8242s-4.7891-2.1602-4.7891-4.8242 2.1445-4.8281 4.7891-4.8281 4.7891 2.1641 4.7891 4.8281zm-49.719-72.207c0 2.6641-2.1445 4.8242-4.7891 4.8242s-4.7891-2.1602-4.7891-4.8242c0-2.668 2.1445-4.8281 4.7891-4.8281s4.7891 2.1602 4.7891 4.8281zm-30.305 49.074c0 2.6641-2.1445 4.8242-4.7891 4.8242-2.6484 0-4.7891-2.1602-4.7891-4.8242 0-2.6641 2.1406-4.8281 4.7891-4.8281 2.6445 0 4.7852 2.1641 4.7852 4.8281zm73.895-30.543c0 2.6641-2.1445 4.8242-4.7891 4.8242-2.6445 0-4.7852-2.1602-4.7852-4.8242 0-2.668 2.1406-4.8281 4.7852-4.8281 2.6445 0 4.7891 2.1602 4.7891 4.8281zm33.031 53.676c0 2.6641-2.1445 4.8242-4.7891 4.8242s-4.7852-2.1602-4.7852-4.8242 2.1406-4.8281 4.7852-4.8281 4.7891 2.1641 4.7891 4.8281zm-11.914-77.355c0 2.6641-2.1445 4.8242-4.7891 4.8242s-4.7891-2.1602-4.7891-4.8242c0-2.6641 2.1445-4.8281 4.7891-4.8281s4.7891 2.1641 4.7891 4.8281zm-62.324 75.844c0 2.6641-2.1445 4.8242-4.7891 4.8242s-4.7891-2.1602-4.7891-4.8242c0-2.668 2.1445-4.8281 4.7891-4.8281s4.7891 2.1602 4.7891 4.8281zm-8.1719-19.906c0 2.6641-2.1445 4.8281-4.7891 4.8281-2.6445 0-4.7852-2.1641-4.7852-4.8281 0-2.6641 2.1406-4.8242 4.7852-4.8242 2.6445 0 4.7891 2.1602 4.7891 4.8242zm9.5352-18.875c0 2.6641-2.1445 4.8281-4.7891 4.8281-2.6445 0-4.7891-2.1641-4.7891-4.8281 0-2.6641 2.1445-4.8242 4.7891-4.8242 2.6445 0 4.7891 2.1602 4.7891 4.8242zm18.051 17.504c0 2.6641-2.1445 4.8242-4.7891 4.8242-2.6445 0-4.7891-2.1602-4.7891-4.8242 0-2.668 2.1445-4.8281 4.7891-4.8281 2.6445 0 4.7891 2.1602 4.7891 4.8281zm0-30.887c0 2.6641-2.1445 4.8242-4.7891 4.8242-2.6445 0-4.7891-2.1602-4.7891-4.8242 0-2.668 2.1445-4.8281 4.7891-4.8281 2.6445 0 4.7891 2.1602 4.7891 4.8281zm0-15.445c0 2.668-2.1445 4.8281-4.7891 4.8281-2.6445 0-4.7891-2.1602-4.7891-4.8281 0-2.6641 2.1445-4.8242 4.7891-4.8242 2.6445 0 4.7891 2.1602 4.7891 4.8242zm-45.977-8.5781c0 2.6641-2.1406 4.8281-4.7852 4.8281-2.6484 0-4.7891-2.1641-4.7891-4.8281 0-2.6641 2.1406-4.8242 4.7891-4.8242 2.6445 0 4.7852 2.1602 4.7852 4.8242zm22.816 24.023c0 2.6641-2.1406 4.8242-4.7852 4.8242-2.6445 0-4.7891-2.1602-4.7891-4.8242 0-2.668 2.1445-4.8281 4.7891-4.8281 2.6445 0 4.7852 2.1602 4.7852 4.8281zm48.359 25.051c0 2.668-2.1445 4.8281-4.7891 4.8281-2.6445 0-4.7891-2.1602-4.7891-4.8281 0-2.6641 2.1445-4.8242 4.7891-4.8242 2.6445 0 4.7891 2.1602 4.7891 4.8242zm18.391-25.051c0 2.6641-2.1445 4.8242-4.7891 4.8242s-4.7891-2.1602-4.7891-4.8242c0-2.668 2.1445-4.8281 4.7891-4.8281s4.7891 2.1602 4.7891 4.8281zm0 30.887c0 2.6641-2.1445 4.8242-4.7891 4.8242s-4.7891-2.1602-4.7891-4.8242c0-2.668 2.1445-4.8281 4.7891-4.8281s4.7891 2.1602 4.7891 4.8281zm3.7461-15.102c0 2.6641-2.1445 4.8281-4.7891 4.8281s-4.7891-2.1641-4.7891-4.8281 2.1445-4.8242 4.7891-4.8242 4.7891 2.1602 4.7891 4.8242zm-25.543-31.23c0 2.668-2.1445 4.8281-4.7891 4.8281-2.6445 0-4.7852-2.1602-4.7852-4.8281 0-2.6641 2.1406-4.8242 4.7852-4.8242 2.6445 0 4.7891 2.1602 4.7891 4.8242zm-20.09 76.527c0 2.668-2.1445 4.8281-4.7891 4.8281s-4.7891-2.1602-4.7891-4.8242c0-2.668 2.1445-4.8281 4.7891-4.8281s4.7891 2.1602 4.7891 4.8281zm-54.148-4.1172c0 2.668-2.1445 4.8281-4.7891 4.8281s-4.7891-2.1602-4.7891-4.8281c0-2.6641 2.1445-4.8242 4.7891-4.8242s4.7891 2.1602 4.7891 4.8242zm61.266-42.566c0 2.6641-2.1445 4.8242-4.7891 4.8242-2.6445 0-4.7891-2.1602-4.7891-4.8242 0-2.668 2.1445-4.8281 4.7891-4.8281 2.6445 0 4.7891 2.1602 4.7891 4.8281zm-52.41 1.043c0 2.668-2.1445 4.8281-4.7891 4.8281s-4.7891-2.1602-4.7891-4.8281c0-2.6641 2.1445-4.8242 4.7891-4.8242s4.7891 2.1602 4.7891 4.8242z" fill="#7dccba"/></g></svg>

After

Width:  |  Height:  |  Size: 4.9 KiB