From 6c41741c6bddc5ef961a72b05dcb63bdd972f276 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 17 Jun 2017 13:31:58 -0700 Subject: [PATCH 01/29] Add monkey patch notes --- source/_posts/2017-06-17-release-47.markdown | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/source/_posts/2017-06-17-release-47.markdown b/source/_posts/2017-06-17-release-47.markdown index 8253e92ea8b..933905763af 100644 --- a/source/_posts/2017-06-17-release-47.markdown +++ b/source/_posts/2017-06-17-release-47.markdown @@ -42,6 +42,22 @@ Z-Wave is also getting a big update in this release. The confusing entity_ids wi 6. Restart Home Assistant to run with new IDs. 7. The old entity IDs will be available in the more info dialog to trace down any remaining errors. +## {% linkable_title Monkey Patching Python 3.6 %} + +Some people have noticed that running Home Assistant under Python 3.6 can lead to segfaults. It seems to be related to the [earlier segfault issues][old-bug] that we experienced when we released the asyncio-based core. We thought that those issues would have been fixed when [Python bug 26617] was resolved. Although we see less reports compared to the old bug, there are still users [experiencing them][new-bug] ([gdb stacktrace points at `PyObject_GC_Del()`][gdb]). + +Since Python 3.6, the Task and Future classes have been moved to C. This gives a nice speed boost but also prevents us from monkey patching the Task class to avoid the segfault. [Ben Bangert] managed to brew up another monkey patch to stop Python 3.6 from using the C classes, falling back to the Python versions instead. This allows us to apply the original monkey patch again. + +Both monkey patches are now active by default starting version 0.47 to avoid our users experiencing segfaults. This comes at a cost of not being able to benefit from all optimizations that were introduced in Python 3.6. + +To run without the monkey patch, start Home Assistant with `HASS_NO_MONKEY=1 hass`. We will further investigate this issue and try to fix it in a future version of Python. + +[old-bug]: https://github.com/home-assistant/home-assistant/issues/3453 +[Python bug 26617]: https://bugs.python.org/issue26617 +[new-bug]: https://github.com/home-assistant/home-assistant/issues/7752 +[gdb]: https://github.com/home-assistant/home-assistant/issues/7752#issuecomment-305100009 +[Ben Bangert]: https://github.com/bbangert + ## {% linkable_title New platforms %} - Added a Taps Aff binary sensor ([@bazwilliams] - [#7880]) ([binary_sensor.tapsaff docs]) (new-platform) From 76cf7e542a904e8572ebed8787a89dc2e75dbbc0 Mon Sep 17 00:00:00 2001 From: pattyland Date: Sun, 18 Jun 2017 12:38:38 +0200 Subject: [PATCH 02/29] Update sensor.radarr.markdown (#2833) Wrong TLD --- source/_components/sensor.radarr.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/sensor.radarr.markdown b/source/_components/sensor.radarr.markdown index c31402ea428..48ddacc1fee 100644 --- a/source/_components/sensor.radarr.markdown +++ b/source/_components/sensor.radarr.markdown @@ -15,7 +15,7 @@ ha_release: 0.47 This `radarr` sensor platform pulls data from a given Radarr instance. -To use your [Radarr](https://radarr.tv/) sensor in your installation, add the following to your `configuration.yaml` file: +To use your [Radarr](https://radarr.video/) sensor in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yml entry From 5d240e18983deedd10488b441edacd7391a3ba00 Mon Sep 17 00:00:00 2001 From: Jonatan Castro Date: Sun, 18 Jun 2017 13:09:58 +0200 Subject: [PATCH 03/29] Update addon_tutorial.markdown (#2831) Had a hard time making Samba work on macOS and this was the solution provided so hopefully it helps! --- source/hassio/addon_tutorial.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/hassio/addon_tutorial.markdown b/source/hassio/addon_tutorial.markdown index 11ea9d13e7f..32855ad745c 100644 --- a/source/hassio/addon_tutorial.markdown +++ b/source/hassio/addon_tutorial.markdown @@ -15,6 +15,8 @@ To get started with developing add-ons, we first need access to where Hass.io lo For Samba, once you have enabled and started it, your Hass.io instance will show up in your local network tab and share a folder called "addons". This is the folder to store your custom add-ons. +If you are on macOS and the folder is not showing up automatically, go to Finder and press CMD+K then enter 'smb://hassio.local' +

With Samba add-on enabled, you can browse to your Hass.io server over the local network. It will contain an addons folder to store your local add-ons. From e37fb6f094cf265934dd9d7a8a5ddfe8d7643d6f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 18 Jun 2017 18:57:34 +0200 Subject: [PATCH 04/29] Add FAQ (#2836) --- _config.yml | 2 ++ source/_faq/component.markdown | 16 ++++++++++++++++ source/_faq/distutils.markdown | 13 +++++++++++++ source/_faq/libyaml.markdown | 14 ++++++++++++++ source/_faq/pip.markdown | 18 ++++++++++++++++++ source/_faq/pip3.markdown | 22 ++++++++++++++++++++++ source/faq/index.markdown | 28 ++++++++++++++++++++++++++++ 7 files changed, 113 insertions(+) create mode 100644 source/_faq/component.markdown create mode 100644 source/_faq/distutils.markdown create mode 100644 source/_faq/libyaml.markdown create mode 100644 source/_faq/pip.markdown create mode 100644 source/_faq/pip3.markdown create mode 100644 source/faq/index.markdown diff --git a/_config.yml b/_config.yml index d0cf0b4ca15..a4e9bd59a8c 100644 --- a/_config.yml +++ b/_config.yml @@ -77,6 +77,8 @@ collections: output: true addons: output: true + faq: + output: true # ----------------------- # # 3rd Party Settings # diff --git a/source/_faq/component.markdown b/source/_faq/component.markdown new file mode 100644 index 00000000000..e0dc15363a7 --- /dev/null +++ b/source/_faq/component.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "Component" +description: "My component does not show up" +date: 2017-06-18 09:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Configuration +--- + + +When a component does not show up, many different things can be the case. Before you try any of these steps, make sure to look at the `home-assistant.log` file and see if there are any errors related to your component you are trying to set up. + +If you have incorrect entries in your configuration files you can use the `check_config` script to assist in identifying them: `hass --script check_config`. diff --git a/source/_faq/distutils.markdown b/source/_faq/distutils.markdown new file mode 100644 index 00000000000..7b1819cbbbd --- /dev/null +++ b/source/_faq/distutils.markdown @@ -0,0 +1,13 @@ +--- +layout: page +title: "distutils" +description: "distutils.errors.DistutilsOptionError: must supply either home or prefix/exec-prefix -- not both" +date: 2017-06-18 09:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Installation +--- + +This is a known issue if you're on a Mac using Homebrew to install Python. Please follow [these instructions](https://github.com/Homebrew/brew/blob/master/docs/Homebrew-and-Python.md#note-on-pip-install---user) to resolve it. diff --git a/source/_faq/libyaml.markdown b/source/_faq/libyaml.markdown new file mode 100644 index 00000000000..4f58a051058 --- /dev/null +++ b/source/_faq/libyaml.markdown @@ -0,0 +1,14 @@ +--- +layout: page +title: "libyaml" +description: "libyaml is not found or a compiler error" +date: 2017-06-18 09:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Installation +--- + + +On a Debian system, install the Python 3 YAML library by `sudo apt-get install python3-yaml`. diff --git a/source/_faq/pip.markdown b/source/_faq/pip.markdown new file mode 100644 index 00000000000..6cb31f419f8 --- /dev/null +++ b/source/_faq/pip.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "pip" +description: "No module named pip" +date: 2017-06-18 09:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Installation +--- + + +[Pip](https://pip.pypa.io/en/stable/) should come bundled with the latest Python 3 but is omitted by some distributions. If you are unable to run `python3 -m pip --version` you can install `pip` by [downloading the installer](https://bootstrap.pypa.io/get-pip.py) and running it with Python 3: + +```bash +$ python3 get-pip.py +``` diff --git a/source/_faq/pip3.markdown b/source/_faq/pip3.markdown new file mode 100644 index 00000000000..733336e296e --- /dev/null +++ b/source/_faq/pip3.markdown @@ -0,0 +1,22 @@ +--- +layout: page +title: "pip3" +description: "pip3: command not found" +date: 2017-06-18 09:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Installation +--- + + +This utility should have been installed as part of the Python 3.4 installation. Check if Python 3.4 is installed by running `python3 --version`. If it is not installed, [download it here](https://www.python.org/getit/). + +If you are able to successfully run `python3 --version` but not `pip3`, install Home Assistant by running the following command instead: + +```bash +$ python3 -m pip install homeassistant +``` + +On a Debian system, you can also install python3 by `sudo apt-get install python3`d and pip3 by `sudo apt-get install python3-pip`. diff --git a/source/faq/index.markdown b/source/faq/index.markdown new file mode 100644 index 00000000000..cfa67acbe0e --- /dev/null +++ b/source/faq/index.markdown @@ -0,0 +1,28 @@ +--- +layout: page +title: "FAQ" +description: "Home Assistant' FAQ" +date: 2015-10-08 19:05 +sidebar: false +comments: false +sharing: true +footer: true +regenerate: true +hide_github_edit: true +--- + +This is a community curated list of frequently asked questions (FAQ) about the installation, setup, and usage of Home Assistant. + +{% assign faq = site.faq | sort: 'title' %} +{% assign categories = faq | map: 'ha_category' | uniq | sort %} + +{% for category in categories %} +## {% linkable_title {{ category }} %} + + {% for entry in faq %} + {% if entry.ha_category == category %} +### {% linkable_title {{ entry.description }} %} +{{entry.content}} + {% endif %} + {% endfor %} +{% endfor %} From 6a34abd5891dfec1a4032a69cbca32791db1331c Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sun, 18 Jun 2017 22:11:07 +0200 Subject: [PATCH 05/29] Update addon_config.markdown --- source/hassio/addon_config.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/hassio/addon_config.markdown b/source/hassio/addon_config.markdown index 382bf4be477..1708ea193bf 100644 --- a/source/hassio/addon_config.markdown +++ b/source/hassio/addon_config.markdown @@ -96,7 +96,7 @@ The config for an add-on is stored in `config.json`. | map | no | List of maps for additional hass.io folders. Possible values: `config`, `ssl`, `addons`, `backup`, `share`. Default it map it `ro`, you can change that if you add a ":rw" at the end of name. | environment | no | A dict of environment variable to run add-on. | options | yes | Default options value of the add-on -| schema | yes | Schema for options value of the add-on +| schema | yes | Schema for options value of the add-on. It can be `False` to disable schema validation and use custom options. | image | no | For use dockerhub. | tmpfs | no | Mount a tmpfs file system in `/tmpfs`. Valide format for this option is : `size=XXXu,uid=N,rw`. Size is mandatory, valid units (`u`) are `k`, `m` and `g` and `XXX` has to be replaced by a number. `uid=N` (with `N` the uid number) and `rw` are optional. From 37dc43dc40ce3081cc2edee97bcb0779b06794f9 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 18 Jun 2017 22:43:18 +0200 Subject: [PATCH 06/29] Add menu and new entries (#2841) --- source/_faq/after-upgrading.markdown | 16 ++++++++++++++ source/_faq/component.markdown | 3 +-- source/_faq/dependencies.markdown | 13 +++++++++++ source/_faq/distutils.markdown | 5 ++--- source/_faq/libyaml.markdown | 3 +-- source/_faq/pip.markdown | 3 +-- source/_faq/pip3.markdown | 3 +-- .../_faq/problems-with-dependencies.markdown | 14 ++++++++++++ source/_includes/asides/faq_navigation.html | 22 +++++++++++++++++++ source/_includes/site/sidebar.html | 2 ++ source/faq/index.markdown | 5 +++-- 11 files changed, 76 insertions(+), 13 deletions(-) create mode 100644 source/_faq/after-upgrading.markdown create mode 100644 source/_faq/dependencies.markdown create mode 100644 source/_faq/problems-with-dependencies.markdown create mode 100644 source/_includes/asides/faq_navigation.html diff --git a/source/_faq/after-upgrading.markdown b/source/_faq/after-upgrading.markdown new file mode 100644 index 00000000000..1c137fc726f --- /dev/null +++ b/source/_faq/after-upgrading.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "After upgrading, your browser login gets stuck" +description: "After upgrading, your browser login gets stuck" +date: 2017-06-18 09:00 +comments: false +sharing: true +footer: true +ha_category: Usage +--- + + +After upgrading to a new version, you may notice your browser gets stuck at the "loading data" login screen. Close the window/tab and go into your browser settings and delete all the cookies for your URL. You can then log back in and it should work. + +Android Chrome +chrome -> settings -> site settings -> storage -> search for your URL for home assistant-> "clear & reset" diff --git a/source/_faq/component.markdown b/source/_faq/component.markdown index e0dc15363a7..0f46cf01cf7 100644 --- a/source/_faq/component.markdown +++ b/source/_faq/component.markdown @@ -1,9 +1,8 @@ --- layout: page -title: "Component" +title: "My component does not show up" description: "My component does not show up" date: 2017-06-18 09:00 -sidebar: true comments: false sharing: true footer: true diff --git a/source/_faq/dependencies.markdown b/source/_faq/dependencies.markdown new file mode 100644 index 00000000000..3e8e5781f8b --- /dev/null +++ b/source/_faq/dependencies.markdown @@ -0,0 +1,13 @@ +--- +layout: page +title: "Dependencies" +description: "Dependencies" +date: 2017-06-18 09:00 +comments: false +sharing: true +footer: true +ha_category: Usage +--- + +The dependencies which are used by Home Assistant are stored in the folder `deps` of the [configuration folder](/docs/configuration/) directory. After an [upgrade](/docs/installation/updating/) the dependences will be upgraded as well. + diff --git a/source/_faq/distutils.markdown b/source/_faq/distutils.markdown index 7b1819cbbbd..75f9a72e615 100644 --- a/source/_faq/distutils.markdown +++ b/source/_faq/distutils.markdown @@ -1,13 +1,12 @@ --- layout: page -title: "distutils" +title: "distutils.errors.DistutilsOptionError" description: "distutils.errors.DistutilsOptionError: must supply either home or prefix/exec-prefix -- not both" date: 2017-06-18 09:00 -sidebar: true comments: false sharing: true footer: true ha_category: Installation --- -This is a known issue if you're on a Mac using Homebrew to install Python. Please follow [these instructions](https://github.com/Homebrew/brew/blob/master/docs/Homebrew-and-Python.md#note-on-pip-install---user) to resolve it. +The problem which leads to `distutils.errors.DistutilsOptionError: must supply either home or prefix/exec-prefix -- not both` is a known issue if you're on a Mac using Homebrew to install Python. Please follow [these instructions](https://github.com/Homebrew/brew/blob/master/docs/Homebrew-and-Python.md#note-on-pip-install---user) to resolve it. diff --git a/source/_faq/libyaml.markdown b/source/_faq/libyaml.markdown index 4f58a051058..59b89bee0b3 100644 --- a/source/_faq/libyaml.markdown +++ b/source/_faq/libyaml.markdown @@ -1,9 +1,8 @@ --- layout: page -title: "libyaml" +title: "libyaml is not found or a compiler error" description: "libyaml is not found or a compiler error" date: 2017-06-18 09:00 -sidebar: true comments: false sharing: true footer: true diff --git a/source/_faq/pip.markdown b/source/_faq/pip.markdown index 6cb31f419f8..45b3d127318 100644 --- a/source/_faq/pip.markdown +++ b/source/_faq/pip.markdown @@ -1,9 +1,8 @@ --- layout: page -title: "pip" +title: "No module named pip" description: "No module named pip" date: 2017-06-18 09:00 -sidebar: true comments: false sharing: true footer: true diff --git a/source/_faq/pip3.markdown b/source/_faq/pip3.markdown index 733336e296e..cb957a7cf43 100644 --- a/source/_faq/pip3.markdown +++ b/source/_faq/pip3.markdown @@ -1,9 +1,8 @@ --- layout: page -title: "pip3" +title: "pip3: command not found" description: "pip3: command not found" date: 2017-06-18 09:00 -sidebar: true comments: false sharing: true footer: true diff --git a/source/_faq/problems-with-dependencies.markdown b/source/_faq/problems-with-dependencies.markdown new file mode 100644 index 00000000000..a2535ee7943 --- /dev/null +++ b/source/_faq/problems-with-dependencies.markdown @@ -0,0 +1,14 @@ +--- +layout: page +title: "Problems with dependencies" +description: "Problems with dependencies" +date: 2017-06-18 09:00 +comments: false +sharing: true +footer: true +ha_category: Usage +--- + +Almost all components have external dependencies to communicate with your devices and services. Sometimes Home Assistant is unable to install the necessary dependencies. If this is the case, it should show up in `home-assistant.log`. + +The first step is trying to restart Home Assistant and see if the problem persists. If it does, look at the log to see what the error is. If you can't figure it out, please [report it](https://github.com/home-assistant/home-assistant/issues) so we can investigate what is going on. diff --git a/source/_includes/asides/faq_navigation.html b/source/_includes/asides/faq_navigation.html new file mode 100644 index 00000000000..68ccac63ebd --- /dev/null +++ b/source/_includes/asides/faq_navigation.html @@ -0,0 +1,22 @@ +

+
+

Entries

+ +
+
diff --git a/source/_includes/site/sidebar.html b/source/_includes/site/sidebar.html index 9f0cf41e435..289411a118b 100644 --- a/source/_includes/site/sidebar.html +++ b/source/_includes/site/sidebar.html @@ -10,6 +10,8 @@ {% include asides/getting_started_navigation.html | compact_newlines %} {% elsif url_parts[1] == 'docs' %} {% include asides/docs_navigation.html | compact_newlines %} + {% elsif url_parts[1] == 'faq' %} + {% include asides/faq_navigation.html | compact_newlines %} {% elsif url_parts[1] == 'hassio' or url_parts[1] == 'addons' %} {% include asides/hassio_navigation.html | compact_newlines %} {% else %} diff --git a/source/faq/index.markdown b/source/faq/index.markdown index cfa67acbe0e..4cb6498054c 100644 --- a/source/faq/index.markdown +++ b/source/faq/index.markdown @@ -1,9 +1,9 @@ --- layout: page title: "FAQ" -description: "Home Assistant' FAQ" +description: "Home Assistant's FAQ" date: 2015-10-08 19:05 -sidebar: false +sidebar: true comments: false sharing: true footer: true @@ -26,3 +26,4 @@ This is a community curated list of frequently asked questions (FAQ) about the i {% endif %} {% endfor %} {% endfor %} + From 32d61b3fa8fafc22ddabe136dd49e2c7270492c7 Mon Sep 17 00:00:00 2001 From: Carlo Costanzo Date: Sun, 18 Jun 2017 16:46:01 -0400 Subject: [PATCH 07/29] Missing Documentation question for FAQ (#2839) * Missing Documentation. * Update documentation.markdown * Rename file --- source/_faq/missing-documentation.markdown | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 source/_faq/missing-documentation.markdown diff --git a/source/_faq/missing-documentation.markdown b/source/_faq/missing-documentation.markdown new file mode 100644 index 00000000000..c8453e3cf3a --- /dev/null +++ b/source/_faq/missing-documentation.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "Missing Documentation" +description: ""The docs are missing or outdated" +date: 2017-06-18 09:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Documentation +--- + + +Home Assistant is a FAST moving open source project. This means occasionally the official documentation will not be 100% current or complete. Since this is an open source volunteer project, we would encourage anyone who finds gaps in the documentation to click the `edit this page on Github` link in the top right and submit any corrections/enhancements they may find useful. + +In the absence of information, many users find it beneficial to look at other people's configurations to find examples of what they want to accomplish in thier own configurations. The easiest way to find these configurations is through this [Github search](https://github.com/search?q=topic%3Ahome-assistant-config&type=Repositories). From a7de78554c03c43b208ef021ff59fee46aafa63f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 18 Jun 2017 22:55:13 +0200 Subject: [PATCH 08/29] Fix description --- source/_faq/missing-documentation.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_faq/missing-documentation.markdown b/source/_faq/missing-documentation.markdown index c8453e3cf3a..329dc05f6a7 100644 --- a/source/_faq/missing-documentation.markdown +++ b/source/_faq/missing-documentation.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Missing Documentation" -description: ""The docs are missing or outdated" +description: "The docs are missing or outdated" date: 2017-06-18 09:00 sidebar: true comments: false From 880853b94d1c90cf332cf02625818a9c5c966525 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 19 Jun 2017 10:01:46 +0200 Subject: [PATCH 09/29] Add connection error entry --- source/_faq/connection-error.markdown | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 source/_faq/connection-error.markdown diff --git a/source/_faq/connection-error.markdown b/source/_faq/connection-error.markdown new file mode 100644 index 00000000000..3acb6edd3dc --- /dev/null +++ b/source/_faq/connection-error.markdown @@ -0,0 +1,19 @@ +--- +layout: page +title: "Connection error" +description: "Connection error" +date: 2017-06-18 09:00 +comments: false +sharing: true +footer: true +ha_category: Usage +--- + + +It can happen that you get a traceback that notify you about connection issues while running Home Assistant. Eg. + +```bash +ConnectionRefusedError: [Errno 111] Connection refused +``` + +The chance is very high that this is not a bug but an issue with the service/daemon itself. Check your network (DNS, DHCP, uplink, etc.) first and make sure that Home Assistant and the service are poperly configured. Keep in mind that webservices can be down. From bb9c85bed9c9a14a9742f17b4726cbc1f9815ffb Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 19 Jun 2017 10:23:27 +0200 Subject: [PATCH 10/29] Update linking --- source/faq/index.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/faq/index.markdown b/source/faq/index.markdown index 4cb6498054c..cdf865abf48 100644 --- a/source/faq/index.markdown +++ b/source/faq/index.markdown @@ -21,7 +21,7 @@ This is a community curated list of frequently asked questions (FAQ) about the i {% for entry in faq %} {% if entry.ha_category == category %} -### {% linkable_title {{ entry.description }} %} +### {% linkable_title {{ entry.title }} %} {{entry.content}} {% endif %} {% endfor %} From 33ad98fdb64b4cc14d8bdc88a130daf54b82fdd2 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 19 Jun 2017 10:30:18 +0200 Subject: [PATCH 11/29] Add FAQ --- source/_includes/asides/docs_navigation.html | 30 +++++++++++--------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index f3351b1d62f..cb9df625bce 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -3,7 +3,11 @@

Topics