Commit 13709a31 authored by Mathias Jud's avatar Mathias Jud

moved webpage back to own repository

parent a7ccf688
Pipeline #1359 canceled with stages
variables:
GIT_SUBMODULE_STRATEGY: recursive
# Build & deploy the web site in the master branch
Deploy web site:
script:
- HUGO_DISABLELANGUAGES="ar" hugo
- rsync -azhe "ssh -p 2223 -i /home/gitlab-runner/.ssh/id_ed25519 -o StrictHostKeyChecking=no" ./public/ admin@qaul.net:/home/admin
artifacts:
paths:
- public
expire_in: 1 week
only:
- master
tags:
- qaul-web-deploy
# Build web site for testing reasons in all
# branches except the master branch.
Build web site:
script:
- HUGO_DISABLELANGUAGES="ar" hugo
artifacts:
paths:
- public
expire_in: 1 week
except:
- master
tags:
- hugo
This diff is collapsed.
# qaul.net Web Site
**This repository contains the all sources, templates and content of the
qaul.net project web site at [https://qaul.net](https://qaul.net)**
Your very welcome to participate in the development of this web site.
For documentation please have a look at our [contributors guide](https://docs.qaul.net/web-site/_intro.html)
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---
baseURL = "/"
title = "qaul.net – قول"
theme = "qaul-theme"
DefaultContentLanguage = "en"
[params]
description = "Internet independent wireless mesh communication app"
[languages]
[languages.en]
weight = 1
LanguageName = "English"
[languages.de]
weight = 3
LanguageName = "Deutsch"
[languages.ar]
weight = 2
LanguageName = "العربية"
[blackfriday]
plainIDAnchors = true
hrefTargetBlank = true
---
title: Community
layout: page
---
Do you have questions about qaul.net? Trouble setting up your client?
Or do you want to help out with development? We have an active
community and development chat on matrix: [#qaul.net:matrix.org][matrix].
For more long-form discussions, announcements, and work-logs there is
also a mailing list, hosted on [lists.sr.ht/~qaul/community][mail].
We would be happy to answer your questions on either of those
platforms.
The main code repository lives on our own [gitlab
instance](https://git.open-communication.net/qaul). A mirror of the
main repo is available at [github](https://github.com/qaul/qaul.net)
[matrix]: https://matrix.to/#/!ljaaylfsbkWFYNoNPT:fairydust.space?via=fairydust.space&via=matrix.org&via=public.cat
[mail]: https://lists.sr.ht/~qaul/community
---
Title: Downloads
layout: page
---
Most user-facing qaul.net applications and tools are still very
work-in-progress. Target platforms include Linux, MacOS, Windows,
Android, and iOS. However currently only Linux and Android are
supported!
Following are instructions on how to build the main qaul.net router
daemon on Linux, which enables you to join a qaul network over the
internet.
## qaul-hubd
1. Clone https://git.open-communication.net/qaul/qaul.net with git
```console
$ git clone https://git.open-communication.net/qaul/qaul.net
$ cd qaul.net
```
2. If you have [nix](https://nixos.org/) installed on your system you
can fetch all dependencies by running `nix-shell`. Otherwise install
these dependencies manually:
- rustup (you need rustc `v1.42` or higher)
- libsodium
- pkg-config
- llvm
- clang
3. Now you can build the `qaul-hubd` target with `cargo`:
```console
$ cargo build --bin qaul-hubd --release
$ ./target/release/qaul-hubd
```
Congratulations! Now consult the [users manual](/learn#manuals) on
how to configure the daemon!
## qauldroid
The qaul.net Android app is currently still a prototype and not
intended for end-users. Building it requires a full Android
development setup installed on your system. To make the Rust
cross-compilation easier, we created a [docker build
environment][docker]!
[docker]: https://hub.docker.com/r/qaulnet/android-build-env
1. Clone the main qaul.net repo as before:
```console
$ git clone https://git.open-communication.net/qaul/qaul.net
$ cd qaul.net/clientsl/android
```
2. Cross-compile the Rust libraries via docker:
```console
$ ./build.sh
```
This will take a while!
3. Now you can build the main Android application with gradle:
```console
$ ./gradlew dist
```
---
Introduction_Title: What is qaul.net?
Introduction: |
**qaul.net** is a set of tools, that allows devices like laptops
and smartphones to create a **wireless mesh network** over Bluetooth
and direct WiFi connections, rather than relying on internet access
via a mobile network. This **decentralised and open network** extends
across any qaul.net-enabled device, so that if two people aren't close
enough to each other for their devices to connect directly, data can
be sent via other devices in the middle, without those devices being
able to read or change the messages passing through it.
It supports instant messaging, voice calls, social media, radio
broadcast, and file sharing — all in a single app. Additionally it is
a suite of **free software libraries**, meaning that anyone can study
and modify it, and use it to create their own apps that can operate on
a qaul network, independent of the internet.
Meshing_Title: What is a mesh network?
Meshing: |
In traditional network infrastructure there is a centralised point
between you and the Internet: your Internet service provider (ISP).
Whether you're using a mobile network tower or a broadband connection,
your access to the Internet is controlled by a central authority. This
means that a entity can monitor or censor your internet traffic.
In a mesh network there is no network owner. Instead, every user's devices
link together directly to create a new network where data can flow
without regulation or control.
To create these connections, devices can use a variety of methods,
such as WiFi and Bluetooth, or plain network cables to create links
with other qaul.net users around them.
The network that is created by qaul.net can serve two purposes:
to connect you with people around you to run applications specifically
made for qaul.net, or to act as a tunnel to the traditional Internet.
---
---
Contribute_Title: Want to learn more?
Contribute: |
**Do you have questions about the project or want to talk to us about
qaul.net? Check out the [Community](/community) page to learn how.**
The project is currently undergoing a rewrite. Many of the core tools
are already done, but user-facing applications are lacking. The easiest
way to get into **qaul.net** is to download the Linux `qaul-hubd` binary
and joining the open qaul.net test network.
[Find out how!](/downloads#qaul-hubd)
If you have trouble setting up the hubd server, check out the
[Learn](/learn#manuals) page to find user manuals, and documentation
on both code-internals, and qaul.net protocol descriptions.
---
---
title: "Features"
# Feature Text Translations
TextMessaging: "Text Messaging"
TextMessagingDetails: "Send public, encrypted group and private messages to anyone you meet on the network"
FileSharing: "File Sharing"
FileSharingDetails: "Share files either directly, or via re-usable, torrent-like share links"
VoiceChat: "Voice Chat"
VoiceChatDetails: "Have voice calls and broadcast live radio shows"
UserDiscovery: "User Discovery"
UserDiscoveryDetails: "Discover users and services around you, verify their identity when you meet"
WifiP2P: "Ad-hoc Peer to Peer Network"
WifiP2PDetails: "Don't rely on existing infrastructure - become part of new ad-hoc infrastructure wherever you are"
MultilingualInterface: "Multilingual Interface"
MultilingualInterfaceDetails: "Enjoy the application interface in your native language"
---
---
title: 'Funktionen von qaul.net'
# Feature Text Translations
TextMessaging: 'Text Mitteilungen'
TextMessagingDetails: "Sende öffentliche und verschlüsselte Gruppenmitteilungen sowie private Mitteilungen an alle Netzwerkteilnehmer*innen"
FileSharing: 'File-Sharing'
FileSharingDetails: "Teile deine Dateien privat oder über ein torrent-ähnliches system"
VoiceChat: 'Sprachanrufe'
VoiceChatDetails: "Ruf die Teilnehmer*innen an oder betreibe deinen eigenen Radiokanal."
UserDiscovery: 'Automatisches Finden von Gesprächspartnern'
UserDiscoveryDetails: "Du siehst die Netzwerkteilnehmer*innen kannst mit ihnen kommunizieren und die Identität beim gemeinsamen Treffen verifizieren."
WifiP2P: 'Drahtlose Netwerkunabhängige Peer-to-Peer Kommunikation'
WifiP2PDetails: "Kommuniziere unabhängig von der existierenden Infrastruktur und baue mit an einem eigenen und gemeinsamen Netzwerk in deiner Umgebung."
MultilingualInterface: 'Mehrsprachiges Benutzerinterface'
MultilingualInterfaceDetails: "Benutze die App in deiner Sprache."
---
---
title: "Features"
# Feature Text Translations
TextMessaging: "Text Messaging"
TextMessagingDetails: "Send public, encrypted group and private messages to anyone you meet on the network"
FileSharing: "File Sharing"
FileSharingDetails: "Share files either directly, or via re-usable, torrent-like share links"
VoiceChat: "Voice Chat"
VoiceChatDetails: "Have voice calls and broadcast live radio shows"
UserDiscovery: "User Discovery"
UserDiscoveryDetails: "Discover users and services around you, verify their identity when you meet"
WifiP2P: "Ad-hoc Peer to Peer Network"
WifiP2PDetails: "Don't rely on existing infrastructure - become part of new ad-hoc infrastructure wherever you are"
MultilingualInterface: "Multilingual Interface"
MultilingualInterfaceDetails: "Enjoy the application interface in your native language"
---
---
Resilient_Title: Build resilient networks
Resilient: |
Whether against an oppressive government or a natural disaster,
centralised infrastructure is vulnerable to censorship and direct
attacks. qaul.net makes it much harder to shut down a network because
all participants in it become part of the way data is routed
Extensible_Title: An extensible architecture
Extensible: |
Each network is a collection of many devices, communicating via
many different technologies and applications. Third party applications
can interact with a qaul network without having to solve a lot of hard
problems around mesh communication
FOSS_Title: Free and open-source software
FOSS: |
qaul.net is not owned by a single company or legal entity. All code
is licensed under a free software license, meaning it will remain open
and free to use, study, and adapt for anyone, forever
---
---
title: 'Internet-Unabhängige Vernetzte Wifi Kommunikation'
---
---
Title: 'Internet Independent Wireless Mesh Communication'
---
---
Description: |
**qaul.net** ist eine Internet unabhängiges Kommunikationswerkzeug
um eine direkte, lokale peer-to-peer Kommunikation zu
ermöglichen. Alle Geräte wie Computer und Smartphones können
direkt zu einem **dezentralisierten, freien Netzwerk**
zusammengeschlossen werden und über das Netzwerke Sprachanrufe tätigen,
Textmitteilungen schreiben und Datei teilen. qaul.net vereinigt
alle diese Kommunikationsmöglichkeiten in einer App.
Zusätzlich stellt qaul.net ein API für Programmierer*innen bereit,
um das Netzwerk mit eigenen Programme und Services zu erweitern und zu nutzen.
---
---
Title: Internet independent wireless mesh communication
Tagline: "**qaul.net** is building tools for the next revolution"
Download: Download
Community: Community
Learn: Learn
---
---
Title: Learn about qaul.net
layout: learning
User_Title: For end-users
Devs_Title: For developers
Users: |
This manual is aimed at end-users of qaul.net. It guides you through
setting up various clients on your computer, and provides additional
debugging help and FAQs.
If you come across an issue not covered by the manual, feel free to join
one of our [community](/community) channels to ask for help!
* [Users Manual](https://docs.qaul.net/users)
Devs: |
This [technical overview][overview] of qaul.net explains some of the
core concepts behind the router and network layout.
[overview]: /learn/overview
If you want to contribute to qaul.net, the following
resources contain information on where to start. The Rust docs
outline the main library APIs and how to use various components
together.
The contributors manual gives a broad overview of concepts,
components, and protocols.
* [Rust API docs](https://docs.qaul.net/api)
* [HTTP API docs](https://docs.qaul.net/http-api)
* [Contributors Manual](https://docs.qaul.net/contributors)
---
---
Title: Networking overview
layout: page
---
qaul.net implements a heterogenious, fully decentralised mesh network.
What this means is that transmission channels can change between
device links: the network is made up of roaming network shards. To
allow routing across network boundries, qaul.net uses a public key
address space, to avoid having to deal with network collisions, and
NAT.
For links that rely on regular IP spaces (v4 or v6), a local lookup
table is kept in each node that operates an overlay endpoint.
This way qaul.net can run on unpriviledged devices, because it doesn't
rely on modifying kernel routing table parameters to create a DHT
(distributed hash table); all routing is done entirely in userspace.
## Breadcrumb routing
The router behind qaul.net is called "ratman" (route and transmission
manager), which works via a gossip announcement protocol. Each node
on a network periodically announces itself to it's peers, letting them
know over which of their local interfaces they can reach this node.
Because of the coupling between ratman IDs and qaul.net users, this
corresponds to announcing a user identity on the network for qaul.net,
but different applications using ratman can bind these IDs to
different semantics.
Let's look at a small example:
```
+--------> [ D ] <---------+
v v
[ A ] <----> [ B ] <-----> [ C ]
```
Node `A` sends announcements to `B` an `D`, who will both proxy it to
`C`. The router in `C` will use various metrics to decide which link is
more stable, and declare it the "primary" for peer `A`. When `C` now
wants to route a message to `A`, it looks up the local interface over
which it thinks it can reach `A` the best (for example `D`). It then
dispatches the message to `D`, hoping that this node will know where
to deliver it.
No node in the network knows the full network topology, meaning that
it can dynamically change, without greatly impacting routing
performance.
There are several corner cases for what to do when a loop is
encountered, or when a network becomes too big that it needs to be
segmented. But this covers the basics of how ratman and qaul.net do
routing.
## Automatic roaming
Because qaul.net is primarily designed to run on unpriviledged mobile
devices, a network automatically needs to be able to roam between
transmission channels. In fact, because of technical limitations on
mobile platforms connections between devices can't be long lived and
need to be broken up after a transmission, to sync with the next peer.
To make this handshake faster, ratman can sync the undelivered message
buffers (called message journal) via a Merkel tree. This way mobile
devices round-robin their connection states, each syncing undelivered
packets to a neighbour, before moving on to the next peer.
---
title: "Legal"
---
# Legal
\ No newline at end of file
cc-by.md
\ No newline at end of file
This diff is collapsed.
code-of-conduct.md
\ No newline at end of file
---
title: "Code of Conduct"
---
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at contact@qaul.net. All complaints will
be reviewed and investigated and will result in a response that is deemed
necessary and appropriate to the circumstances. The project team is obligated to
maintain confidentiality with regard to the reporter of an incident. Further
details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
gpl-3.0.md
\ No newline at end of file
This diff is collapsed.
---
title: "Datenschutz"
---
# Datenschutz
Die Internetdienste unter der Domain 'qaul.net' werden auf verschiedenen community betriebenen Web-Servern gehostet. Der Zugriff wird nur zu technischen Betriebszwecken gelogged und analisiert. Die Daten werden nicht an Dritte weitergegeben.
Eine nicht abschließende Liste von qaul.net Web-Services:
A non exhaustive list of web services run by qaul.net:
* [www.qaul.net](https://qaul.net) diese Web-Seite web page
* [docs.qaul.net](https://docs.qaul.net) hostet die qaul.net Dokumentation
* [get.qaul.net](https://get.qaul.net) ist der qaul.net Downloadserver
---
title: "Privacy Statement"
---
# Privacy Statement
The web services under the domain 'qaul.net' run on different, community driven web servers. The access is only loged and analyzed for technical operating. The data is not passed on to third parties.
A non exhaustive list of web services run by qaul.net:
* [www.qaul.net](https://qaul.net) hosts this web page
* [docs.qaul.net](https://docs.qaul.net) hosts the qaul.net documentations
* [get.qaul.net](https://get.qaul.net) is the qaul.net download server
with import <nixpkgs> {};
stdenv.mkDerivation {
name = "qaul-website";
buildInputs = with pkgs; [
hugo
];
}
#!/bin/sh
# remove old build
rm -R ./public
# build site
HUGO_DISABLELANGUAGES="ar" hugo
# upload site to web server
rsync -azzhe "ssh -p 2223" ./public/ admin@qaul.net:/home/admin
Font Awesome Free License
-------------------------
Font Awesome Free is free, open source, and GPL friendly. You can use it for
commercial projects, open source projects, or really almost whatever you want.
Full Font Awesome Free license: https://fontawesome.com/license/free.
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
packaged as SVG and JS file types.
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
In the Font Awesome Free download, the SIL OFL license applies to all icons
packaged as web and desktop font files.
# Code: MIT License (https://opensource.org/licenses/MIT)
In the Font Awesome Free download, the MIT license applies to all non-font and
non-icon files.
# Attribution
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
Awesome Free files already contain embedded comments with sufficient
attribution, so you shouldn't need to do anything additional when using these
files normally.
We've kept attribution comments terse, so we ask that you do not actively work
to remove them from files, especially code. They're a great way for folks to
learn about Font Awesome.
# Brand Icons
All brand icons are trademarks of their respective owners. The use of these
trademarks does not indicate endorsement of the trademark holder by Font
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
to represent the company, product, or service to which they refer.**
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><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"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><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"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M318.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.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.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"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><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"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><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"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><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"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z"/></svg>
\ No newline at end of file