aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicah Lee <micah@micahflee.com>2022-02-13 11:28:16 -0800
committerMicah Lee <micah@micahflee.com>2022-02-13 11:28:16 -0800
commite168080b77c1ec7ba40022a106a43d524e227945 (patch)
treebdbd8ae8be5dc3eb4d9ca1a945a55f537f8ced18
parentd7269e80f7a7e82ab120e2b966ff413d95db5e47 (diff)
parent1ca017d5ade6f8bd16b4e9f153e67e29c35a5e1d (diff)
downloadonionshare-e168080b77c1ec7ba40022a106a43d524e227945.tar.gz
onionshare-e168080b77c1ec7ba40022a106a43d524e227945.zip
Merge branch 'develop' into censorship
-rw-r--r--.circleci/config.yml13
-rw-r--r--.gitignore8
-rw-r--r--CHANGELOG.md13
-rw-r--r--LICENSE2
-rw-r--r--RELEASE.md74
-rw-r--r--cli/README.md8
-rw-r--r--cli/onionshare_cli/__init__.py2
-rw-r--r--cli/onionshare_cli/censorship.py2
-rw-r--r--cli/onionshare_cli/common.py46
-rw-r--r--cli/onionshare_cli/meek.py2
-rw-r--r--cli/onionshare_cli/mode_settings.py10
-rw-r--r--cli/onionshare_cli/onion.py6
-rw-r--r--cli/onionshare_cli/onionshare.py2
-rw-r--r--cli/onionshare_cli/resources/static/js/chat.js32
-rw-r--r--cli/onionshare_cli/resources/torrc_template-meek_lite_azure4
-rw-r--r--cli/onionshare_cli/resources/torrc_template-obfs424
-rw-r--r--cli/onionshare_cli/resources/torrc_template-snowflake1
-rw-r--r--cli/onionshare_cli/resources/version.txt2
-rw-r--r--cli/onionshare_cli/settings.py24
-rw-r--r--cli/onionshare_cli/web/__init__.py2
-rw-r--r--cli/onionshare_cli/web/chat_mode.py107
-rw-r--r--cli/onionshare_cli/web/receive_mode.py4
-rw-r--r--cli/onionshare_cli/web/send_base_mode.py2
-rw-r--r--cli/onionshare_cli/web/share_mode.py17
-rw-r--r--cli/onionshare_cli/web/web.py20
-rw-r--r--cli/onionshare_cli/web/website_mode.py2
-rw-r--r--cli/poetry.lock348
-rw-r--r--cli/pyproject.toml5
-rw-r--r--cli/setup.py6
-rw-r--r--cli/tests/test_cli_web.py4
-rw-r--r--desktop/README.md104
-rw-r--r--desktop/onionshare/__init__.py (renamed from desktop/src/onionshare/__init__.py)2
-rw-r--r--desktop/onionshare/__main__.py (renamed from desktop/src/onionshare/__main__.py)2
-rw-r--r--desktop/onionshare/connection_tab.py (renamed from desktop/src/onionshare/connection_tab.py)0
-rw-r--r--desktop/onionshare/gui_common.py (renamed from desktop/src/onionshare/gui_common.py)2
-rw-r--r--desktop/onionshare/main_window.py (renamed from desktop/src/onionshare/main_window.py)2
-rw-r--r--desktop/onionshare/moat_dialog.py (renamed from desktop/src/onionshare/moat_dialog.py)2
-rw-r--r--desktop/onionshare/resources/__init__.py (renamed from desktop/src/onionshare/resources/__init__.py)0
-rw-r--r--desktop/onionshare/resources/countries/ar.json (renamed from desktop/src/onionshare/resources/countries/ar.json)0
-rw-r--r--desktop/onionshare/resources/countries/bn.json (renamed from desktop/src/onionshare/resources/countries/bn.json)0
-rw-r--r--desktop/onionshare/resources/countries/de.json (renamed from desktop/src/onionshare/resources/countries/de.json)0
-rw-r--r--desktop/onionshare/resources/countries/en.json (renamed from desktop/src/onionshare/resources/countries/en.json)0
-rw-r--r--desktop/onionshare/resources/countries/es.json (renamed from desktop/src/onionshare/resources/countries/es.json)0
-rw-r--r--desktop/onionshare/resources/countries/fi.json (renamed from desktop/src/onionshare/resources/countries/fi.json)0
-rw-r--r--desktop/onionshare/resources/countries/gl.json (renamed from desktop/src/onionshare/resources/countries/gl.json)0
-rw-r--r--desktop/onionshare/resources/countries/is.json (renamed from desktop/src/onionshare/resources/countries/is.json)0
-rw-r--r--desktop/onionshare/resources/countries/lt.json (renamed from desktop/src/onionshare/resources/countries/lt.json)0
-rw-r--r--desktop/onionshare/resources/countries/nb_NO.json (renamed from desktop/src/onionshare/resources/countries/nb_NO.json)0
-rw-r--r--desktop/onionshare/resources/countries/pl.json (renamed from desktop/src/onionshare/resources/countries/pl.json)0
-rw-r--r--desktop/onionshare/resources/countries/pt_BR.json (renamed from desktop/src/onionshare/resources/countries/pt_BR.json)0
-rw-r--r--desktop/onionshare/resources/countries/ru.json (renamed from desktop/src/onionshare/resources/countries/ru.json)0
-rw-r--r--desktop/onionshare/resources/countries/sv.json (renamed from desktop/src/onionshare/resources/countries/sv.json)0
-rw-r--r--desktop/onionshare/resources/countries/tr.json (renamed from desktop/src/onionshare/resources/countries/tr.json)0
-rw-r--r--desktop/onionshare/resources/countries/uk.json (renamed from desktop/src/onionshare/resources/countries/uk.json)0
-rw-r--r--desktop/onionshare/resources/countries/zh_Hans.json (renamed from desktop/src/onionshare/resources/countries/zh_Hans.json)0
-rw-r--r--desktop/onionshare/resources/images/close_tab.png (renamed from desktop/src/onionshare/resources/images/close_tab.png)bin688 -> 688 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ad-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ad-dark.png)bin2268 -> 2268 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ad-light.png (renamed from desktop/src/onionshare/resources/images/countries/ad-light.png)bin2268 -> 2268 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ae-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ae-dark.png)bin2306 -> 2306 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ae-light.png (renamed from desktop/src/onionshare/resources/images/countries/ae-light.png)bin2306 -> 2306 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/af-dark.png (renamed from desktop/src/onionshare/resources/images/countries/af-dark.png)bin2307 -> 2307 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/af-light.png (renamed from desktop/src/onionshare/resources/images/countries/af-light.png)bin2307 -> 2307 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ag-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ag-dark.png)bin3253 -> 3253 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ag-light.png (renamed from desktop/src/onionshare/resources/images/countries/ag-light.png)bin3253 -> 3253 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ai-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ai-dark.png)bin2081 -> 2081 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ai-light.png (renamed from desktop/src/onionshare/resources/images/countries/ai-light.png)bin2081 -> 2081 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/al-dark.png (renamed from desktop/src/onionshare/resources/images/countries/al-dark.png)bin2280 -> 2280 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/al-light.png (renamed from desktop/src/onionshare/resources/images/countries/al-light.png)bin2280 -> 2280 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/am-dark.png (renamed from desktop/src/onionshare/resources/images/countries/am-dark.png)bin2695 -> 2695 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/am-light.png (renamed from desktop/src/onionshare/resources/images/countries/am-light.png)bin2695 -> 2695 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ao-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ao-dark.png)bin2191 -> 2191 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ao-light.png (renamed from desktop/src/onionshare/resources/images/countries/ao-light.png)bin2191 -> 2191 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/aq-dark.png (renamed from desktop/src/onionshare/resources/images/countries/aq-dark.png)bin3120 -> 3120 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/aq-light.png (renamed from desktop/src/onionshare/resources/images/countries/aq-light.png)bin3120 -> 3120 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ar-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ar-dark.png)bin2492 -> 2492 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ar-light.png (renamed from desktop/src/onionshare/resources/images/countries/ar-light.png)bin2492 -> 2492 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/as-dark.png (renamed from desktop/src/onionshare/resources/images/countries/as-dark.png)bin2291 -> 2291 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/as-light.png (renamed from desktop/src/onionshare/resources/images/countries/as-light.png)bin2291 -> 2291 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/at-dark.png (renamed from desktop/src/onionshare/resources/images/countries/at-dark.png)bin3598 -> 3598 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/at-light.png (renamed from desktop/src/onionshare/resources/images/countries/at-light.png)bin3598 -> 3598 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/au-dark.png (renamed from desktop/src/onionshare/resources/images/countries/au-dark.png)bin2973 -> 2973 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/au-light.png (renamed from desktop/src/onionshare/resources/images/countries/au-light.png)bin2973 -> 2973 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/aw-dark.png (renamed from desktop/src/onionshare/resources/images/countries/aw-dark.png)bin2685 -> 2685 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/aw-light.png (renamed from desktop/src/onionshare/resources/images/countries/aw-light.png)bin2685 -> 2685 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ax-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ax-dark.png)bin2985 -> 2985 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ax-light.png (renamed from desktop/src/onionshare/resources/images/countries/ax-light.png)bin2985 -> 2985 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/az-dark.png (renamed from desktop/src/onionshare/resources/images/countries/az-dark.png)bin3352 -> 3352 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/az-light.png (renamed from desktop/src/onionshare/resources/images/countries/az-light.png)bin3352 -> 3352 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ba-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ba-dark.png)bin2863 -> 2863 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ba-light.png (renamed from desktop/src/onionshare/resources/images/countries/ba-light.png)bin2863 -> 2863 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bb-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bb-dark.png)bin2511 -> 2511 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bb-light.png (renamed from desktop/src/onionshare/resources/images/countries/bb-light.png)bin2511 -> 2511 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bd-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bd-dark.png)bin3710 -> 3710 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bd-light.png (renamed from desktop/src/onionshare/resources/images/countries/bd-light.png)bin3710 -> 3710 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/be-dark.png (renamed from desktop/src/onionshare/resources/images/countries/be-dark.png)bin2780 -> 2780 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/be-light.png (renamed from desktop/src/onionshare/resources/images/countries/be-light.png)bin2780 -> 2780 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bf-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bf-dark.png)bin2363 -> 2363 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bf-light.png (renamed from desktop/src/onionshare/resources/images/countries/bf-light.png)bin2363 -> 2363 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bg-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bg-dark.png)bin2319 -> 2319 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bg-light.png (renamed from desktop/src/onionshare/resources/images/countries/bg-light.png)bin2319 -> 2319 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bh-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bh-dark.png)bin2617 -> 2617 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bh-light.png (renamed from desktop/src/onionshare/resources/images/countries/bh-light.png)bin2617 -> 2617 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bi-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bi-dark.png)bin2785 -> 2785 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bi-light.png (renamed from desktop/src/onionshare/resources/images/countries/bi-light.png)bin2785 -> 2785 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bj-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bj-dark.png)bin2203 -> 2203 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bj-light.png (renamed from desktop/src/onionshare/resources/images/countries/bj-light.png)bin2203 -> 2203 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bl-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bl-dark.png)bin2704 -> 2704 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bl-light.png (renamed from desktop/src/onionshare/resources/images/countries/bl-light.png)bin2704 -> 2704 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bm-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bm-dark.png)bin3540 -> 3540 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bm-light.png (renamed from desktop/src/onionshare/resources/images/countries/bm-light.png)bin3540 -> 3540 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bn-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bn-dark.png)bin2932 -> 2932 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bn-light.png (renamed from desktop/src/onionshare/resources/images/countries/bn-light.png)bin2932 -> 2932 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bo-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bo-dark.png)bin2757 -> 2757 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bo-light.png (renamed from desktop/src/onionshare/resources/images/countries/bo-light.png)bin2757 -> 2757 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bq-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bq-dark.png)bin2658 -> 2658 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bq-light.png (renamed from desktop/src/onionshare/resources/images/countries/bq-light.png)bin2658 -> 2658 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/br-dark.png (renamed from desktop/src/onionshare/resources/images/countries/br-dark.png)bin2683 -> 2683 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/br-light.png (renamed from desktop/src/onionshare/resources/images/countries/br-light.png)bin2683 -> 2683 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bs-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bs-dark.png)bin2680 -> 2680 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bs-light.png (renamed from desktop/src/onionshare/resources/images/countries/bs-light.png)bin2680 -> 2680 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bt-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bt-dark.png)bin2075 -> 2075 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bt-light.png (renamed from desktop/src/onionshare/resources/images/countries/bt-light.png)bin2075 -> 2075 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bv-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bv-dark.png)bin2143 -> 2143 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bv-light.png (renamed from desktop/src/onionshare/resources/images/countries/bv-light.png)bin2143 -> 2143 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bw-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bw-dark.png)bin2250 -> 2250 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bw-light.png (renamed from desktop/src/onionshare/resources/images/countries/bw-light.png)bin2250 -> 2250 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/by-dark.png (renamed from desktop/src/onionshare/resources/images/countries/by-dark.png)bin2695 -> 2695 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/by-light.png (renamed from desktop/src/onionshare/resources/images/countries/by-light.png)bin2695 -> 2695 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bz-dark.png (renamed from desktop/src/onionshare/resources/images/countries/bz-dark.png)bin2485 -> 2485 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/bz-light.png (renamed from desktop/src/onionshare/resources/images/countries/bz-light.png)bin2485 -> 2485 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ca-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ca-dark.png)bin5288 -> 5288 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ca-light.png (renamed from desktop/src/onionshare/resources/images/countries/ca-light.png)bin5288 -> 5288 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cc-dark.png (renamed from desktop/src/onionshare/resources/images/countries/cc-dark.png)bin3437 -> 3437 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cc-light.png (renamed from desktop/src/onionshare/resources/images/countries/cc-light.png)bin3437 -> 3437 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cd-dark.png (renamed from desktop/src/onionshare/resources/images/countries/cd-dark.png)bin2474 -> 2474 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cd-light.png (renamed from desktop/src/onionshare/resources/images/countries/cd-light.png)bin2474 -> 2474 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cf-dark.png (renamed from desktop/src/onionshare/resources/images/countries/cf-dark.png)bin2167 -> 2167 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cf-light.png (renamed from desktop/src/onionshare/resources/images/countries/cf-light.png)bin2167 -> 2167 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cg-dark.png (renamed from desktop/src/onionshare/resources/images/countries/cg-dark.png)bin2962 -> 2962 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cg-light.png (renamed from desktop/src/onionshare/resources/images/countries/cg-light.png)bin2962 -> 2962 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ch-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ch-dark.png)bin2806 -> 2806 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ch-light.png (renamed from desktop/src/onionshare/resources/images/countries/ch-light.png)bin2806 -> 2806 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ci-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ci-dark.png)bin2828 -> 2828 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ci-light.png (renamed from desktop/src/onionshare/resources/images/countries/ci-light.png)bin2828 -> 2828 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ck-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ck-dark.png)bin2166 -> 2166 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ck-light.png (renamed from desktop/src/onionshare/resources/images/countries/ck-light.png)bin2166 -> 2166 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cl-dark.png (renamed from desktop/src/onionshare/resources/images/countries/cl-dark.png)bin2208 -> 2208 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cl-light.png (renamed from desktop/src/onionshare/resources/images/countries/cl-light.png)bin2208 -> 2208 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cm-dark.png (renamed from desktop/src/onionshare/resources/images/countries/cm-dark.png)bin2632 -> 2632 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cm-light.png (renamed from desktop/src/onionshare/resources/images/countries/cm-light.png)bin2632 -> 2632 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cn-dark.png (renamed from desktop/src/onionshare/resources/images/countries/cn-dark.png)bin3009 -> 3009 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cn-light.png (renamed from desktop/src/onionshare/resources/images/countries/cn-light.png)bin3009 -> 3009 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/co-dark.png (renamed from desktop/src/onionshare/resources/images/countries/co-dark.png)bin2727 -> 2727 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/co-light.png (renamed from desktop/src/onionshare/resources/images/countries/co-light.png)bin2727 -> 2727 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cr-dark.png (renamed from desktop/src/onionshare/resources/images/countries/cr-dark.png)bin3183 -> 3183 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cr-light.png (renamed from desktop/src/onionshare/resources/images/countries/cr-light.png)bin3183 -> 3183 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cu-dark.png (renamed from desktop/src/onionshare/resources/images/countries/cu-dark.png)bin1994 -> 1994 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cu-light.png (renamed from desktop/src/onionshare/resources/images/countries/cu-light.png)bin1994 -> 1994 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cv-dark.png (renamed from desktop/src/onionshare/resources/images/countries/cv-dark.png)bin2297 -> 2297 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cv-light.png (renamed from desktop/src/onionshare/resources/images/countries/cv-light.png)bin2297 -> 2297 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cw-dark.png (renamed from desktop/src/onionshare/resources/images/countries/cw-dark.png)bin2017 -> 2017 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cw-light.png (renamed from desktop/src/onionshare/resources/images/countries/cw-light.png)bin2017 -> 2017 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cx-dark.png (renamed from desktop/src/onionshare/resources/images/countries/cx-dark.png)bin2577 -> 2577 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cx-light.png (renamed from desktop/src/onionshare/resources/images/countries/cx-light.png)bin2577 -> 2577 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cy-dark.png (renamed from desktop/src/onionshare/resources/images/countries/cy-dark.png)bin2058 -> 2058 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cy-light.png (renamed from desktop/src/onionshare/resources/images/countries/cy-light.png)bin2058 -> 2058 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cz-dark.png (renamed from desktop/src/onionshare/resources/images/countries/cz-dark.png)bin2360 -> 2360 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/cz-light.png (renamed from desktop/src/onionshare/resources/images/countries/cz-light.png)bin2360 -> 2360 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/de-dark.png (renamed from desktop/src/onionshare/resources/images/countries/de-dark.png)bin3419 -> 3419 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/de-light.png (renamed from desktop/src/onionshare/resources/images/countries/de-light.png)bin3419 -> 3419 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/dj-dark.png (renamed from desktop/src/onionshare/resources/images/countries/dj-dark.png)bin2940 -> 2940 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/dj-light.png (renamed from desktop/src/onionshare/resources/images/countries/dj-light.png)bin2940 -> 2940 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/dk-dark.png (renamed from desktop/src/onionshare/resources/images/countries/dk-dark.png)bin4913 -> 4913 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/dk-light.png (renamed from desktop/src/onionshare/resources/images/countries/dk-light.png)bin4913 -> 4913 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/dm-dark.png (renamed from desktop/src/onionshare/resources/images/countries/dm-dark.png)bin2265 -> 2265 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/dm-light.png (renamed from desktop/src/onionshare/resources/images/countries/dm-light.png)bin2265 -> 2265 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/do-dark.png (renamed from desktop/src/onionshare/resources/images/countries/do-dark.png)bin2542 -> 2542 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/do-light.png (renamed from desktop/src/onionshare/resources/images/countries/do-light.png)bin2542 -> 2542 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/dz-dark.png (renamed from desktop/src/onionshare/resources/images/countries/dz-dark.png)bin2316 -> 2316 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/dz-light.png (renamed from desktop/src/onionshare/resources/images/countries/dz-light.png)bin2316 -> 2316 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ec-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ec-dark.png)bin3017 -> 3017 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ec-light.png (renamed from desktop/src/onionshare/resources/images/countries/ec-light.png)bin3017 -> 3017 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ee-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ee-dark.png)bin3069 -> 3069 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ee-light.png (renamed from desktop/src/onionshare/resources/images/countries/ee-light.png)bin3069 -> 3069 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/eg-dark.png (renamed from desktop/src/onionshare/resources/images/countries/eg-dark.png)bin2592 -> 2592 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/eg-light.png (renamed from desktop/src/onionshare/resources/images/countries/eg-light.png)bin2592 -> 2592 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/eh-dark.png (renamed from desktop/src/onionshare/resources/images/countries/eh-dark.png)bin1840 -> 1840 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/eh-light.png (renamed from desktop/src/onionshare/resources/images/countries/eh-light.png)bin1840 -> 1840 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/er-dark.png (renamed from desktop/src/onionshare/resources/images/countries/er-dark.png)bin2957 -> 2957 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/er-light.png (renamed from desktop/src/onionshare/resources/images/countries/er-light.png)bin2957 -> 2957 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/es-dark.png (renamed from desktop/src/onionshare/resources/images/countries/es-dark.png)bin2612 -> 2612 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/es-light.png (renamed from desktop/src/onionshare/resources/images/countries/es-light.png)bin2612 -> 2612 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/et-dark.png (renamed from desktop/src/onionshare/resources/images/countries/et-dark.png)bin2396 -> 2396 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/et-light.png (renamed from desktop/src/onionshare/resources/images/countries/et-light.png)bin2396 -> 2396 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/fi-dark.png (renamed from desktop/src/onionshare/resources/images/countries/fi-dark.png)bin2747 -> 2747 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/fi-light.png (renamed from desktop/src/onionshare/resources/images/countries/fi-light.png)bin2747 -> 2747 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/fj-dark.png (renamed from desktop/src/onionshare/resources/images/countries/fj-dark.png)bin3076 -> 3076 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/fj-light.png (renamed from desktop/src/onionshare/resources/images/countries/fj-light.png)bin3076 -> 3076 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/fk-dark.png (renamed from desktop/src/onionshare/resources/images/countries/fk-dark.png)bin5712 -> 5712 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/fk-light.png (renamed from desktop/src/onionshare/resources/images/countries/fk-light.png)bin5712 -> 5712 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/fo-dark.png (renamed from desktop/src/onionshare/resources/images/countries/fo-dark.png)bin3927 -> 3927 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/fo-light.png (renamed from desktop/src/onionshare/resources/images/countries/fo-light.png)bin3927 -> 3927 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/fr-dark.png (renamed from desktop/src/onionshare/resources/images/countries/fr-dark.png)bin3194 -> 3194 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/fr-light.png (renamed from desktop/src/onionshare/resources/images/countries/fr-light.png)bin3194 -> 3194 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ga-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ga-dark.png)bin2879 -> 2879 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ga-light.png (renamed from desktop/src/onionshare/resources/images/countries/ga-light.png)bin2879 -> 2879 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gb-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gb-dark.png)bin4178 -> 4178 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gb-light.png (renamed from desktop/src/onionshare/resources/images/countries/gb-light.png)bin4178 -> 4178 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gd-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gd-dark.png)bin3012 -> 3012 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gd-light.png (renamed from desktop/src/onionshare/resources/images/countries/gd-light.png)bin3012 -> 3012 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ge-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ge-dark.png)bin2110 -> 2110 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ge-light.png (renamed from desktop/src/onionshare/resources/images/countries/ge-light.png)bin2110 -> 2110 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gf-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gf-dark.png)bin2505 -> 2505 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gf-light.png (renamed from desktop/src/onionshare/resources/images/countries/gf-light.png)bin2505 -> 2505 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gg-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gg-dark.png)bin3145 -> 3145 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gg-light.png (renamed from desktop/src/onionshare/resources/images/countries/gg-light.png)bin3145 -> 3145 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gh-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gh-dark.png)bin2456 -> 2456 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gh-light.png (renamed from desktop/src/onionshare/resources/images/countries/gh-light.png)bin2456 -> 2456 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gi-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gi-dark.png)bin2883 -> 2883 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gi-light.png (renamed from desktop/src/onionshare/resources/images/countries/gi-light.png)bin2883 -> 2883 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gl-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gl-dark.png)bin3105 -> 3105 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gl-light.png (renamed from desktop/src/onionshare/resources/images/countries/gl-light.png)bin3105 -> 3105 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gm-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gm-dark.png)bin1681 -> 1681 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gm-light.png (renamed from desktop/src/onionshare/resources/images/countries/gm-light.png)bin1681 -> 1681 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gn-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gn-dark.png)bin2862 -> 2862 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gn-light.png (renamed from desktop/src/onionshare/resources/images/countries/gn-light.png)bin2862 -> 2862 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gp-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gp-dark.png)bin2950 -> 2950 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gp-light.png (renamed from desktop/src/onionshare/resources/images/countries/gp-light.png)bin2950 -> 2950 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gq-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gq-dark.png)bin1799 -> 1799 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gq-light.png (renamed from desktop/src/onionshare/resources/images/countries/gq-light.png)bin1799 -> 1799 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gr-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gr-dark.png)bin5540 -> 5540 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gr-light.png (renamed from desktop/src/onionshare/resources/images/countries/gr-light.png)bin5540 -> 5540 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gs-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gs-dark.png)bin3355 -> 3355 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gs-light.png (renamed from desktop/src/onionshare/resources/images/countries/gs-light.png)bin3355 -> 3355 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gt-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gt-dark.png)bin2276 -> 2276 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gt-light.png (renamed from desktop/src/onionshare/resources/images/countries/gt-light.png)bin2276 -> 2276 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gu-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gu-dark.png)bin2734 -> 2734 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gu-light.png (renamed from desktop/src/onionshare/resources/images/countries/gu-light.png)bin2734 -> 2734 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gw-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gw-dark.png)bin3457 -> 3457 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gw-light.png (renamed from desktop/src/onionshare/resources/images/countries/gw-light.png)bin3457 -> 3457 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gy-dark.png (renamed from desktop/src/onionshare/resources/images/countries/gy-dark.png)bin2618 -> 2618 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/gy-light.png (renamed from desktop/src/onionshare/resources/images/countries/gy-light.png)bin2618 -> 2618 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/hk-dark.png (renamed from desktop/src/onionshare/resources/images/countries/hk-dark.png)bin5635 -> 5635 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/hk-light.png (renamed from desktop/src/onionshare/resources/images/countries/hk-light.png)bin5635 -> 5635 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/hm-dark.png (renamed from desktop/src/onionshare/resources/images/countries/hm-dark.png)bin2180 -> 2180 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/hm-light.png (renamed from desktop/src/onionshare/resources/images/countries/hm-light.png)bin2180 -> 2180 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/hn-dark.png (renamed from desktop/src/onionshare/resources/images/countries/hn-dark.png)bin2340 -> 2340 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/hn-light.png (renamed from desktop/src/onionshare/resources/images/countries/hn-light.png)bin2340 -> 2340 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/hr-dark.png (renamed from desktop/src/onionshare/resources/images/countries/hr-dark.png)bin4228 -> 4228 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/hr-light.png (renamed from desktop/src/onionshare/resources/images/countries/hr-light.png)bin4228 -> 4228 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ht-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ht-dark.png)bin3333 -> 3333 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ht-light.png (renamed from desktop/src/onionshare/resources/images/countries/ht-light.png)bin3333 -> 3333 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/hu-dark.png (renamed from desktop/src/onionshare/resources/images/countries/hu-dark.png)bin2299 -> 2299 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/hu-light.png (renamed from desktop/src/onionshare/resources/images/countries/hu-light.png)bin2299 -> 2299 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/id-dark.png (renamed from desktop/src/onionshare/resources/images/countries/id-dark.png)bin3218 -> 3218 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/id-light.png (renamed from desktop/src/onionshare/resources/images/countries/id-light.png)bin3218 -> 3218 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ie-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ie-dark.png)bin3812 -> 3812 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ie-light.png (renamed from desktop/src/onionshare/resources/images/countries/ie-light.png)bin3812 -> 3812 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/il-dark.png (renamed from desktop/src/onionshare/resources/images/countries/il-dark.png)bin2272 -> 2272 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/il-light.png (renamed from desktop/src/onionshare/resources/images/countries/il-light.png)bin2272 -> 2272 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/im-dark.png (renamed from desktop/src/onionshare/resources/images/countries/im-dark.png)bin2601 -> 2601 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/im-light.png (renamed from desktop/src/onionshare/resources/images/countries/im-light.png)bin2601 -> 2601 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/in-dark.png (renamed from desktop/src/onionshare/resources/images/countries/in-dark.png)bin3182 -> 3182 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/in-light.png (renamed from desktop/src/onionshare/resources/images/countries/in-light.png)bin3182 -> 3182 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/io-dark.png (renamed from desktop/src/onionshare/resources/images/countries/io-dark.png)bin3312 -> 3312 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/io-light.png (renamed from desktop/src/onionshare/resources/images/countries/io-light.png)bin3312 -> 3312 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/iq-dark.png (renamed from desktop/src/onionshare/resources/images/countries/iq-dark.png)bin2282 -> 2282 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/iq-light.png (renamed from desktop/src/onionshare/resources/images/countries/iq-light.png)bin2282 -> 2282 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ir-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ir-dark.png)bin2634 -> 2634 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ir-light.png (renamed from desktop/src/onionshare/resources/images/countries/ir-light.png)bin2634 -> 2634 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/is-dark.png (renamed from desktop/src/onionshare/resources/images/countries/is-dark.png)bin4079 -> 4079 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/is-light.png (renamed from desktop/src/onionshare/resources/images/countries/is-light.png)bin4079 -> 4079 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/it-dark.png (renamed from desktop/src/onionshare/resources/images/countries/it-dark.png)bin3435 -> 3435 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/it-light.png (renamed from desktop/src/onionshare/resources/images/countries/it-light.png)bin3435 -> 3435 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/jm-dark.png (renamed from desktop/src/onionshare/resources/images/countries/jm-dark.png)bin1802 -> 1802 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/jm-light.png (renamed from desktop/src/onionshare/resources/images/countries/jm-light.png)bin1802 -> 1802 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/jo-dark.png (renamed from desktop/src/onionshare/resources/images/countries/jo-dark.png)bin2658 -> 2658 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/jo-light.png (renamed from desktop/src/onionshare/resources/images/countries/jo-light.png)bin2658 -> 2658 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/jp-dark.png (renamed from desktop/src/onionshare/resources/images/countries/jp-dark.png)bin3613 -> 3613 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/jp-light.png (renamed from desktop/src/onionshare/resources/images/countries/jp-light.png)bin3613 -> 3613 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ke-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ke-dark.png)bin2374 -> 2374 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ke-light.png (renamed from desktop/src/onionshare/resources/images/countries/ke-light.png)bin2374 -> 2374 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/kg-dark.png (renamed from desktop/src/onionshare/resources/images/countries/kg-dark.png)bin2024 -> 2024 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/kg-light.png (renamed from desktop/src/onionshare/resources/images/countries/kg-light.png)bin2024 -> 2024 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/kh-dark.png (renamed from desktop/src/onionshare/resources/images/countries/kh-dark.png)bin2735 -> 2735 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/kh-light.png (renamed from desktop/src/onionshare/resources/images/countries/kh-light.png)bin2735 -> 2735 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ki-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ki-dark.png)bin3144 -> 3144 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ki-light.png (renamed from desktop/src/onionshare/resources/images/countries/ki-light.png)bin3144 -> 3144 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/km-dark.png (renamed from desktop/src/onionshare/resources/images/countries/km-dark.png)bin1966 -> 1966 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/km-light.png (renamed from desktop/src/onionshare/resources/images/countries/km-light.png)bin1966 -> 1966 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/kn-dark.png (renamed from desktop/src/onionshare/resources/images/countries/kn-dark.png)bin2508 -> 2508 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/kn-light.png (renamed from desktop/src/onionshare/resources/images/countries/kn-light.png)bin2508 -> 2508 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/kp-dark.png (renamed from desktop/src/onionshare/resources/images/countries/kp-dark.png)bin3235 -> 3235 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/kp-light.png (renamed from desktop/src/onionshare/resources/images/countries/kp-light.png)bin3235 -> 3235 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/kr-dark.png (renamed from desktop/src/onionshare/resources/images/countries/kr-dark.png)bin3366 -> 3366 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/kr-light.png (renamed from desktop/src/onionshare/resources/images/countries/kr-light.png)bin3366 -> 3366 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/kw-dark.png (renamed from desktop/src/onionshare/resources/images/countries/kw-dark.png)bin3096 -> 3096 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/kw-light.png (renamed from desktop/src/onionshare/resources/images/countries/kw-light.png)bin3096 -> 3096 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ky-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ky-dark.png)bin2207 -> 2207 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ky-light.png (renamed from desktop/src/onionshare/resources/images/countries/ky-light.png)bin2207 -> 2207 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/kz-dark.png (renamed from desktop/src/onionshare/resources/images/countries/kz-dark.png)bin2430 -> 2430 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/kz-light.png (renamed from desktop/src/onionshare/resources/images/countries/kz-light.png)bin2430 -> 2430 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/la-dark.png (renamed from desktop/src/onionshare/resources/images/countries/la-dark.png)bin2938 -> 2938 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/la-light.png (renamed from desktop/src/onionshare/resources/images/countries/la-light.png)bin2938 -> 2938 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/lb-dark.png (renamed from desktop/src/onionshare/resources/images/countries/lb-dark.png)bin2553 -> 2553 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/lb-light.png (renamed from desktop/src/onionshare/resources/images/countries/lb-light.png)bin2553 -> 2553 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/lc-dark.png (renamed from desktop/src/onionshare/resources/images/countries/lc-dark.png)bin2600 -> 2600 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/lc-light.png (renamed from desktop/src/onionshare/resources/images/countries/lc-light.png)bin2600 -> 2600 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/li-dark.png (renamed from desktop/src/onionshare/resources/images/countries/li-dark.png)bin2642 -> 2642 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/li-light.png (renamed from desktop/src/onionshare/resources/images/countries/li-light.png)bin2642 -> 2642 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/lk-dark.png (renamed from desktop/src/onionshare/resources/images/countries/lk-dark.png)bin2761 -> 2761 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/lk-light.png (renamed from desktop/src/onionshare/resources/images/countries/lk-light.png)bin2761 -> 2761 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/lr-dark.png (renamed from desktop/src/onionshare/resources/images/countries/lr-dark.png)bin2755 -> 2755 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/lr-light.png (renamed from desktop/src/onionshare/resources/images/countries/lr-light.png)bin2755 -> 2755 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ls-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ls-dark.png)bin2381 -> 2381 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ls-light.png (renamed from desktop/src/onionshare/resources/images/countries/ls-light.png)bin2381 -> 2381 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/lt-dark.png (renamed from desktop/src/onionshare/resources/images/countries/lt-dark.png)bin2434 -> 2434 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/lt-light.png (renamed from desktop/src/onionshare/resources/images/countries/lt-light.png)bin2434 -> 2434 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/lu-dark.png (renamed from desktop/src/onionshare/resources/images/countries/lu-dark.png)bin2607 -> 2607 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/lu-light.png (renamed from desktop/src/onionshare/resources/images/countries/lu-light.png)bin2607 -> 2607 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/lv-dark.png (renamed from desktop/src/onionshare/resources/images/countries/lv-dark.png)bin2337 -> 2337 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/lv-light.png (renamed from desktop/src/onionshare/resources/images/countries/lv-light.png)bin2337 -> 2337 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ly-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ly-dark.png)bin2261 -> 2261 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ly-light.png (renamed from desktop/src/onionshare/resources/images/countries/ly-light.png)bin2261 -> 2261 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ma-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ma-dark.png)bin2199 -> 2199 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ma-light.png (renamed from desktop/src/onionshare/resources/images/countries/ma-light.png)bin2199 -> 2199 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mc-dark.png (renamed from desktop/src/onionshare/resources/images/countries/mc-dark.png)bin2930 -> 2930 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mc-light.png (renamed from desktop/src/onionshare/resources/images/countries/mc-light.png)bin2930 -> 2930 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/md-dark.png (renamed from desktop/src/onionshare/resources/images/countries/md-dark.png)bin2719 -> 2719 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/md-light.png (renamed from desktop/src/onionshare/resources/images/countries/md-light.png)bin2719 -> 2719 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/me-dark.png (renamed from desktop/src/onionshare/resources/images/countries/me-dark.png)bin3031 -> 3031 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/me-light.png (renamed from desktop/src/onionshare/resources/images/countries/me-light.png)bin3031 -> 3031 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mf-dark.png (renamed from desktop/src/onionshare/resources/images/countries/mf-dark.png)bin2999 -> 2999 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mf-light.png (renamed from desktop/src/onionshare/resources/images/countries/mf-light.png)bin2999 -> 2999 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mg-dark.png (renamed from desktop/src/onionshare/resources/images/countries/mg-dark.png)bin2493 -> 2493 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mg-light.png (renamed from desktop/src/onionshare/resources/images/countries/mg-light.png)bin2493 -> 2493 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mk-dark.png (renamed from desktop/src/onionshare/resources/images/countries/mk-dark.png)bin2464 -> 2464 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mk-light.png (renamed from desktop/src/onionshare/resources/images/countries/mk-light.png)bin2464 -> 2464 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ml-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ml-dark.png)bin2483 -> 2483 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ml-light.png (renamed from desktop/src/onionshare/resources/images/countries/ml-light.png)bin2483 -> 2483 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mm-dark.png (renamed from desktop/src/onionshare/resources/images/countries/mm-dark.png)bin2896 -> 2896 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mm-light.png (renamed from desktop/src/onionshare/resources/images/countries/mm-light.png)bin2896 -> 2896 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mn-dark.png (renamed from desktop/src/onionshare/resources/images/countries/mn-dark.png)bin2043 -> 2043 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mn-light.png (renamed from desktop/src/onionshare/resources/images/countries/mn-light.png)bin2043 -> 2043 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mo-dark.png (renamed from desktop/src/onionshare/resources/images/countries/mo-dark.png)bin3477 -> 3477 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mo-light.png (renamed from desktop/src/onionshare/resources/images/countries/mo-light.png)bin3477 -> 3477 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mq-dark.png (renamed from desktop/src/onionshare/resources/images/countries/mq-dark.png)bin3467 -> 3467 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mq-light.png (renamed from desktop/src/onionshare/resources/images/countries/mq-light.png)bin3467 -> 3467 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mr-dark.png (renamed from desktop/src/onionshare/resources/images/countries/mr-dark.png)bin2255 -> 2255 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mr-light.png (renamed from desktop/src/onionshare/resources/images/countries/mr-light.png)bin2255 -> 2255 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ms-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ms-dark.png)bin2305 -> 2305 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ms-light.png (renamed from desktop/src/onionshare/resources/images/countries/ms-light.png)bin2305 -> 2305 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mt-dark.png (renamed from desktop/src/onionshare/resources/images/countries/mt-dark.png)bin3182 -> 3182 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mt-light.png (renamed from desktop/src/onionshare/resources/images/countries/mt-light.png)bin3182 -> 3182 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mu-dark.png (renamed from desktop/src/onionshare/resources/images/countries/mu-dark.png)bin2777 -> 2777 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mu-light.png (renamed from desktop/src/onionshare/resources/images/countries/mu-light.png)bin2777 -> 2777 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mv-dark.png (renamed from desktop/src/onionshare/resources/images/countries/mv-dark.png)bin2158 -> 2158 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mv-light.png (renamed from desktop/src/onionshare/resources/images/countries/mv-light.png)bin2158 -> 2158 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mw-dark.png (renamed from desktop/src/onionshare/resources/images/countries/mw-dark.png)bin2672 -> 2672 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mw-light.png (renamed from desktop/src/onionshare/resources/images/countries/mw-light.png)bin2672 -> 2672 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mx-dark.png (renamed from desktop/src/onionshare/resources/images/countries/mx-dark.png)bin2856 -> 2856 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mx-light.png (renamed from desktop/src/onionshare/resources/images/countries/mx-light.png)bin2856 -> 2856 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/my-dark.png (renamed from desktop/src/onionshare/resources/images/countries/my-dark.png)bin2810 -> 2810 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/my-light.png (renamed from desktop/src/onionshare/resources/images/countries/my-light.png)bin2810 -> 2810 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mz-dark.png (renamed from desktop/src/onionshare/resources/images/countries/mz-dark.png)bin2686 -> 2686 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/mz-light.png (renamed from desktop/src/onionshare/resources/images/countries/mz-light.png)bin2686 -> 2686 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/na-dark.png (renamed from desktop/src/onionshare/resources/images/countries/na-dark.png)bin2124 -> 2124 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/na-light.png (renamed from desktop/src/onionshare/resources/images/countries/na-light.png)bin2124 -> 2124 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/nc-dark.png (renamed from desktop/src/onionshare/resources/images/countries/nc-dark.png)bin2797 -> 2797 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/nc-light.png (renamed from desktop/src/onionshare/resources/images/countries/nc-light.png)bin2797 -> 2797 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ne-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ne-dark.png)bin2146 -> 2146 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ne-light.png (renamed from desktop/src/onionshare/resources/images/countries/ne-light.png)bin2146 -> 2146 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/nf-dark.png (renamed from desktop/src/onionshare/resources/images/countries/nf-dark.png)bin2790 -> 2790 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/nf-light.png (renamed from desktop/src/onionshare/resources/images/countries/nf-light.png)bin2790 -> 2790 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ng-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ng-dark.png)bin2421 -> 2421 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ng-light.png (renamed from desktop/src/onionshare/resources/images/countries/ng-light.png)bin2421 -> 2421 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ni-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ni-dark.png)bin2713 -> 2713 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ni-light.png (renamed from desktop/src/onionshare/resources/images/countries/ni-light.png)bin2713 -> 2713 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/nl-dark.png (renamed from desktop/src/onionshare/resources/images/countries/nl-dark.png)bin4318 -> 4318 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/nl-light.png (renamed from desktop/src/onionshare/resources/images/countries/nl-light.png)bin4318 -> 4318 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/no-dark.png (renamed from desktop/src/onionshare/resources/images/countries/no-dark.png)bin3558 -> 3558 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/no-light.png (renamed from desktop/src/onionshare/resources/images/countries/no-light.png)bin3558 -> 3558 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/np-dark.png (renamed from desktop/src/onionshare/resources/images/countries/np-dark.png)bin2031 -> 2031 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/np-light.png (renamed from desktop/src/onionshare/resources/images/countries/np-light.png)bin2031 -> 2031 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/nr-dark.png (renamed from desktop/src/onionshare/resources/images/countries/nr-dark.png)bin2265 -> 2265 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/nr-light.png (renamed from desktop/src/onionshare/resources/images/countries/nr-light.png)bin2265 -> 2265 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/nu-dark.png (renamed from desktop/src/onionshare/resources/images/countries/nu-dark.png)bin2321 -> 2321 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/nu-light.png (renamed from desktop/src/onionshare/resources/images/countries/nu-light.png)bin2321 -> 2321 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/nz-dark.png (renamed from desktop/src/onionshare/resources/images/countries/nz-dark.png)bin3088 -> 3088 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/nz-light.png (renamed from desktop/src/onionshare/resources/images/countries/nz-light.png)bin3088 -> 3088 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/om-dark.png (renamed from desktop/src/onionshare/resources/images/countries/om-dark.png)bin2602 -> 2602 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/om-light.png (renamed from desktop/src/onionshare/resources/images/countries/om-light.png)bin2602 -> 2602 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pa-dark.png (renamed from desktop/src/onionshare/resources/images/countries/pa-dark.png)bin2752 -> 2752 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pa-light.png (renamed from desktop/src/onionshare/resources/images/countries/pa-light.png)bin2752 -> 2752 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pe-dark.png (renamed from desktop/src/onionshare/resources/images/countries/pe-dark.png)bin2716 -> 2716 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pe-light.png (renamed from desktop/src/onionshare/resources/images/countries/pe-light.png)bin2716 -> 2716 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pf-dark.png (renamed from desktop/src/onionshare/resources/images/countries/pf-dark.png)bin2873 -> 2873 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pf-light.png (renamed from desktop/src/onionshare/resources/images/countries/pf-light.png)bin2873 -> 2873 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pg-dark.png (renamed from desktop/src/onionshare/resources/images/countries/pg-dark.png)bin2673 -> 2673 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pg-light.png (renamed from desktop/src/onionshare/resources/images/countries/pg-light.png)bin2673 -> 2673 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ph-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ph-dark.png)bin4193 -> 4193 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ph-light.png (renamed from desktop/src/onionshare/resources/images/countries/ph-light.png)bin4193 -> 4193 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pk-dark.png (renamed from desktop/src/onionshare/resources/images/countries/pk-dark.png)bin2862 -> 2862 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pk-light.png (renamed from desktop/src/onionshare/resources/images/countries/pk-light.png)bin2862 -> 2862 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pl-dark.png (renamed from desktop/src/onionshare/resources/images/countries/pl-dark.png)bin2449 -> 2449 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pl-light.png (renamed from desktop/src/onionshare/resources/images/countries/pl-light.png)bin2449 -> 2449 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pm-dark.png (renamed from desktop/src/onionshare/resources/images/countries/pm-dark.png)bin3047 -> 3047 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pm-light.png (renamed from desktop/src/onionshare/resources/images/countries/pm-light.png)bin3047 -> 3047 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pn-dark.png (renamed from desktop/src/onionshare/resources/images/countries/pn-dark.png)bin1997 -> 1997 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pn-light.png (renamed from desktop/src/onionshare/resources/images/countries/pn-light.png)bin1997 -> 1997 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pr-dark.png (renamed from desktop/src/onionshare/resources/images/countries/pr-dark.png)bin1777 -> 1777 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pr-light.png (renamed from desktop/src/onionshare/resources/images/countries/pr-light.png)bin1777 -> 1777 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pt-dark.png (renamed from desktop/src/onionshare/resources/images/countries/pt-dark.png)bin2776 -> 2776 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pt-light.png (renamed from desktop/src/onionshare/resources/images/countries/pt-light.png)bin2776 -> 2776 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pw-dark.png (renamed from desktop/src/onionshare/resources/images/countries/pw-dark.png)bin2566 -> 2566 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/pw-light.png (renamed from desktop/src/onionshare/resources/images/countries/pw-light.png)bin2566 -> 2566 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/py-dark.png (renamed from desktop/src/onionshare/resources/images/countries/py-dark.png)bin2571 -> 2571 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/py-light.png (renamed from desktop/src/onionshare/resources/images/countries/py-light.png)bin2571 -> 2571 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/qa-dark.png (renamed from desktop/src/onionshare/resources/images/countries/qa-dark.png)bin2720 -> 2720 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/qa-light.png (renamed from desktop/src/onionshare/resources/images/countries/qa-light.png)bin2720 -> 2720 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/re-dark.png (renamed from desktop/src/onionshare/resources/images/countries/re-dark.png)bin2323 -> 2323 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/re-light.png (renamed from desktop/src/onionshare/resources/images/countries/re-light.png)bin2323 -> 2323 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ro-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ro-dark.png)bin2291 -> 2291 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ro-light.png (renamed from desktop/src/onionshare/resources/images/countries/ro-light.png)bin2291 -> 2291 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/rs-dark.png (renamed from desktop/src/onionshare/resources/images/countries/rs-dark.png)bin2808 -> 2808 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/rs-light.png (renamed from desktop/src/onionshare/resources/images/countries/rs-light.png)bin2808 -> 2808 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ru-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ru-dark.png)bin3412 -> 3412 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ru-light.png (renamed from desktop/src/onionshare/resources/images/countries/ru-light.png)bin3412 -> 3412 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/rw-dark.png (renamed from desktop/src/onionshare/resources/images/countries/rw-dark.png)bin2460 -> 2460 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/rw-light.png (renamed from desktop/src/onionshare/resources/images/countries/rw-light.png)bin2460 -> 2460 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sa-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sa-dark.png)bin2460 -> 2460 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sa-light.png (renamed from desktop/src/onionshare/resources/images/countries/sa-light.png)bin2460 -> 2460 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sb-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sb-dark.png)bin2920 -> 2920 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sb-light.png (renamed from desktop/src/onionshare/resources/images/countries/sb-light.png)bin2920 -> 2920 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sc-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sc-dark.png)bin2245 -> 2245 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sc-light.png (renamed from desktop/src/onionshare/resources/images/countries/sc-light.png)bin2245 -> 2245 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sd-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sd-dark.png)bin2327 -> 2327 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sd-light.png (renamed from desktop/src/onionshare/resources/images/countries/sd-light.png)bin2327 -> 2327 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/se-dark.png (renamed from desktop/src/onionshare/resources/images/countries/se-dark.png)bin2782 -> 2782 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/se-light.png (renamed from desktop/src/onionshare/resources/images/countries/se-light.png)bin2782 -> 2782 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sg-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sg-dark.png)bin3363 -> 3363 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sg-light.png (renamed from desktop/src/onionshare/resources/images/countries/sg-light.png)bin3363 -> 3363 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sh-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sh-dark.png)bin2436 -> 2436 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sh-light.png (renamed from desktop/src/onionshare/resources/images/countries/sh-light.png)bin2436 -> 2436 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/si-dark.png (renamed from desktop/src/onionshare/resources/images/countries/si-dark.png)bin2558 -> 2558 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/si-light.png (renamed from desktop/src/onionshare/resources/images/countries/si-light.png)bin2558 -> 2558 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sj-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sj-dark.png)bin1847 -> 1847 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sj-light.png (renamed from desktop/src/onionshare/resources/images/countries/sj-light.png)bin1847 -> 1847 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sk-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sk-dark.png)bin2122 -> 2122 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sk-light.png (renamed from desktop/src/onionshare/resources/images/countries/sk-light.png)bin2122 -> 2122 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sl-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sl-dark.png)bin3089 -> 3089 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sl-light.png (renamed from desktop/src/onionshare/resources/images/countries/sl-light.png)bin3089 -> 3089 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sm-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sm-dark.png)bin2537 -> 2537 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sm-light.png (renamed from desktop/src/onionshare/resources/images/countries/sm-light.png)bin2537 -> 2537 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sn-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sn-dark.png)bin2946 -> 2946 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sn-light.png (renamed from desktop/src/onionshare/resources/images/countries/sn-light.png)bin2946 -> 2946 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/so-dark.png (renamed from desktop/src/onionshare/resources/images/countries/so-dark.png)bin2424 -> 2424 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/so-light.png (renamed from desktop/src/onionshare/resources/images/countries/so-light.png)bin2424 -> 2424 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sr-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sr-dark.png)bin2739 -> 2739 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sr-light.png (renamed from desktop/src/onionshare/resources/images/countries/sr-light.png)bin2739 -> 2739 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ss-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ss-dark.png)bin2294 -> 2294 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ss-light.png (renamed from desktop/src/onionshare/resources/images/countries/ss-light.png)bin2294 -> 2294 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/st-dark.png (renamed from desktop/src/onionshare/resources/images/countries/st-dark.png)bin2740 -> 2740 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/st-light.png (renamed from desktop/src/onionshare/resources/images/countries/st-light.png)bin2740 -> 2740 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sv-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sv-dark.png)bin2136 -> 2136 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sv-light.png (renamed from desktop/src/onionshare/resources/images/countries/sv-light.png)bin2136 -> 2136 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sx-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sx-dark.png)bin2984 -> 2984 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sx-light.png (renamed from desktop/src/onionshare/resources/images/countries/sx-light.png)bin2984 -> 2984 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sy-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sy-dark.png)bin2458 -> 2458 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sy-light.png (renamed from desktop/src/onionshare/resources/images/countries/sy-light.png)bin2458 -> 2458 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sz-dark.png (renamed from desktop/src/onionshare/resources/images/countries/sz-dark.png)bin2233 -> 2233 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/sz-light.png (renamed from desktop/src/onionshare/resources/images/countries/sz-light.png)bin2233 -> 2233 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tc-dark.png (renamed from desktop/src/onionshare/resources/images/countries/tc-dark.png)bin3911 -> 3911 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tc-light.png (renamed from desktop/src/onionshare/resources/images/countries/tc-light.png)bin3911 -> 3911 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/td-dark.png (renamed from desktop/src/onionshare/resources/images/countries/td-dark.png)bin2162 -> 2162 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/td-light.png (renamed from desktop/src/onionshare/resources/images/countries/td-light.png)bin2162 -> 2162 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tf-dark.png (renamed from desktop/src/onionshare/resources/images/countries/tf-dark.png)bin6236 -> 6236 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tf-light.png (renamed from desktop/src/onionshare/resources/images/countries/tf-light.png)bin6236 -> 6236 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tg-dark.png (renamed from desktop/src/onionshare/resources/images/countries/tg-dark.png)bin2146 -> 2146 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tg-light.png (renamed from desktop/src/onionshare/resources/images/countries/tg-light.png)bin2146 -> 2146 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/th-dark.png (renamed from desktop/src/onionshare/resources/images/countries/th-dark.png)bin2976 -> 2976 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/th-light.png (renamed from desktop/src/onionshare/resources/images/countries/th-light.png)bin2976 -> 2976 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tj-dark.png (renamed from desktop/src/onionshare/resources/images/countries/tj-dark.png)bin2801 -> 2801 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tj-light.png (renamed from desktop/src/onionshare/resources/images/countries/tj-light.png)bin2801 -> 2801 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tk-dark.png (renamed from desktop/src/onionshare/resources/images/countries/tk-dark.png)bin897 -> 897 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tk-light.png (renamed from desktop/src/onionshare/resources/images/countries/tk-light.png)bin897 -> 897 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tl-dark.png (renamed from desktop/src/onionshare/resources/images/countries/tl-dark.png)bin1794 -> 1794 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tl-light.png (renamed from desktop/src/onionshare/resources/images/countries/tl-light.png)bin1794 -> 1794 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tm-dark.png (renamed from desktop/src/onionshare/resources/images/countries/tm-dark.png)bin2330 -> 2330 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tm-light.png (renamed from desktop/src/onionshare/resources/images/countries/tm-light.png)bin2330 -> 2330 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tn-dark.png (renamed from desktop/src/onionshare/resources/images/countries/tn-dark.png)bin2530 -> 2530 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tn-light.png (renamed from desktop/src/onionshare/resources/images/countries/tn-light.png)bin2530 -> 2530 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/to-dark.png (renamed from desktop/src/onionshare/resources/images/countries/to-dark.png)bin2288 -> 2288 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/to-light.png (renamed from desktop/src/onionshare/resources/images/countries/to-light.png)bin2288 -> 2288 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tr-dark.png (renamed from desktop/src/onionshare/resources/images/countries/tr-dark.png)bin2226 -> 2226 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tr-light.png (renamed from desktop/src/onionshare/resources/images/countries/tr-light.png)bin2226 -> 2226 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tt-dark.png (renamed from desktop/src/onionshare/resources/images/countries/tt-dark.png)bin2353 -> 2353 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tt-light.png (renamed from desktop/src/onionshare/resources/images/countries/tt-light.png)bin2353 -> 2353 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tw-dark.png (renamed from desktop/src/onionshare/resources/images/countries/tw-dark.png)bin2482 -> 2482 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tw-light.png (renamed from desktop/src/onionshare/resources/images/countries/tw-light.png)bin2482 -> 2482 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tz-dark.png (renamed from desktop/src/onionshare/resources/images/countries/tz-dark.png)bin3093 -> 3093 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/tz-light.png (renamed from desktop/src/onionshare/resources/images/countries/tz-light.png)bin3093 -> 3093 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ua-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ua-dark.png)bin2788 -> 2788 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ua-light.png (renamed from desktop/src/onionshare/resources/images/countries/ua-light.png)bin2788 -> 2788 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ug-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ug-dark.png)bin3055 -> 3055 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ug-light.png (renamed from desktop/src/onionshare/resources/images/countries/ug-light.png)bin3055 -> 3055 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/us-dark.png (renamed from desktop/src/onionshare/resources/images/countries/us-dark.png)bin2796 -> 2796 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/us-light.png (renamed from desktop/src/onionshare/resources/images/countries/us-light.png)bin2796 -> 2796 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/uy-dark.png (renamed from desktop/src/onionshare/resources/images/countries/uy-dark.png)bin2648 -> 2648 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/uy-light.png (renamed from desktop/src/onionshare/resources/images/countries/uy-light.png)bin2648 -> 2648 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/uz-dark.png (renamed from desktop/src/onionshare/resources/images/countries/uz-dark.png)bin2552 -> 2552 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/uz-light.png (renamed from desktop/src/onionshare/resources/images/countries/uz-light.png)bin2552 -> 2552 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/va-dark.png (renamed from desktop/src/onionshare/resources/images/countries/va-dark.png)bin2058 -> 2058 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/va-light.png (renamed from desktop/src/onionshare/resources/images/countries/va-light.png)bin2058 -> 2058 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/vc-dark.png (renamed from desktop/src/onionshare/resources/images/countries/vc-dark.png)bin1893 -> 1893 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/vc-light.png (renamed from desktop/src/onionshare/resources/images/countries/vc-light.png)bin1893 -> 1893 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ve-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ve-dark.png)bin2986 -> 2986 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ve-light.png (renamed from desktop/src/onionshare/resources/images/countries/ve-light.png)bin2986 -> 2986 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/vg-dark.png (renamed from desktop/src/onionshare/resources/images/countries/vg-dark.png)bin3121 -> 3121 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/vg-light.png (renamed from desktop/src/onionshare/resources/images/countries/vg-light.png)bin3121 -> 3121 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/vi-dark.png (renamed from desktop/src/onionshare/resources/images/countries/vi-dark.png)bin2622 -> 2622 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/vi-light.png (renamed from desktop/src/onionshare/resources/images/countries/vi-light.png)bin2622 -> 2622 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/vn-dark.png (renamed from desktop/src/onionshare/resources/images/countries/vn-dark.png)bin2985 -> 2985 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/vn-light.png (renamed from desktop/src/onionshare/resources/images/countries/vn-light.png)bin2985 -> 2985 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/vu-dark.png (renamed from desktop/src/onionshare/resources/images/countries/vu-dark.png)bin2353 -> 2353 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/vu-light.png (renamed from desktop/src/onionshare/resources/images/countries/vu-light.png)bin2353 -> 2353 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/wf-dark.png (renamed from desktop/src/onionshare/resources/images/countries/wf-dark.png)bin2451 -> 2451 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/wf-light.png (renamed from desktop/src/onionshare/resources/images/countries/wf-light.png)bin2451 -> 2451 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ws-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ws-dark.png)bin1799 -> 1799 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ws-light.png (renamed from desktop/src/onionshare/resources/images/countries/ws-light.png)bin1799 -> 1799 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ye-dark.png (renamed from desktop/src/onionshare/resources/images/countries/ye-dark.png)bin2294 -> 2294 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/ye-light.png (renamed from desktop/src/onionshare/resources/images/countries/ye-light.png)bin2294 -> 2294 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/yt-dark.png (renamed from desktop/src/onionshare/resources/images/countries/yt-dark.png)bin3392 -> 3392 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/yt-light.png (renamed from desktop/src/onionshare/resources/images/countries/yt-light.png)bin3392 -> 3392 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/za-dark.png (renamed from desktop/src/onionshare/resources/images/countries/za-dark.png)bin2643 -> 2643 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/za-light.png (renamed from desktop/src/onionshare/resources/images/countries/za-light.png)bin2643 -> 2643 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/zm-dark.png (renamed from desktop/src/onionshare/resources/images/countries/zm-dark.png)bin2582 -> 2582 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/zm-light.png (renamed from desktop/src/onionshare/resources/images/countries/zm-light.png)bin2582 -> 2582 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/zw-dark.png (renamed from desktop/src/onionshare/resources/images/countries/zw-dark.png)bin2396 -> 2396 bytes
-rw-r--r--desktop/onionshare/resources/images/countries/zw-light.png (renamed from desktop/src/onionshare/resources/images/countries/zw-light.png)bin2396 -> 2396 bytes
-rw-r--r--desktop/onionshare/resources/images/dark_icon-add.png (renamed from desktop/src/onionshare/resources/images/dark_icon-add.png)bin203 -> 203 bytes
-rw-r--r--desktop/onionshare/resources/images/dark_icon-close.png (renamed from desktop/src/onionshare/resources/images/dark_icon-close.png)bin305 -> 305 bytes
-rw-r--r--desktop/onionshare/resources/images/dark_logo_text.png (renamed from desktop/src/onionshare/resources/images/dark_logo_text.png)bin3120 -> 3120 bytes
-rw-r--r--desktop/onionshare/resources/images/dark_logo_text_bg.png (renamed from desktop/src/onionshare/resources/images/dark_logo_text_bg.png)bin9967 -> 9967 bytes
-rw-r--r--desktop/onionshare/resources/images/dark_mode_chat.png (renamed from desktop/src/onionshare/resources/images/dark_mode_chat.png)bin21827 -> 21827 bytes
-rw-r--r--desktop/onionshare/resources/images/dark_mode_new_tab_chat.png (renamed from desktop/src/onionshare/resources/images/dark_mode_new_tab_chat.png)bin15086 -> 15086 bytes
-rw-r--r--desktop/onionshare/resources/images/dark_mode_new_tab_receive.png (renamed from desktop/src/onionshare/resources/images/dark_mode_new_tab_receive.png)bin15277 -> 15277 bytes
-rw-r--r--desktop/onionshare/resources/images/dark_mode_new_tab_share.png (renamed from desktop/src/onionshare/resources/images/dark_mode_new_tab_share.png)bin13232 -> 13232 bytes
-rw-r--r--desktop/onionshare/resources/images/dark_mode_new_tab_website.png (renamed from desktop/src/onionshare/resources/images/dark_mode_new_tab_website.png)bin10538 -> 10538 bytes
-rw-r--r--desktop/onionshare/resources/images/dark_mode_receive.png (renamed from desktop/src/onionshare/resources/images/dark_mode_receive.png)bin23495 -> 23495 bytes
-rw-r--r--desktop/onionshare/resources/images/dark_mode_share.png (renamed from desktop/src/onionshare/resources/images/dark_mode_share.png)bin9328 -> 9328 bytes
-rw-r--r--desktop/onionshare/resources/images/dark_mode_website.png (renamed from desktop/src/onionshare/resources/images/dark_mode_website.png)bin9063 -> 9063 bytes
-rw-r--r--desktop/onionshare/resources/images/dark_settings.png (renamed from desktop/src/onionshare/resources/images/dark_settings.png)bin456 -> 456 bytes
-rw-r--r--desktop/onionshare/resources/images/dark_tor_settings.png (renamed from desktop/src/onionshare/resources/images/dark_tor_settings.png)bin3600 -> 3600 bytes
-rw-r--r--desktop/onionshare/resources/images/file_delete.png (renamed from desktop/src/onionshare/resources/images/file_delete.png)bin182 -> 182 bytes
-rw-r--r--desktop/onionshare/resources/images/history_completed.png (renamed from desktop/src/onionshare/resources/images/history_completed.png)bin646 -> 646 bytes
-rw-r--r--desktop/onionshare/resources/images/history_completed_none.png (renamed from desktop/src/onionshare/resources/images/history_completed_none.png)bin437 -> 437 bytes
-rw-r--r--desktop/onionshare/resources/images/history_in_progress.png (renamed from desktop/src/onionshare/resources/images/history_in_progress.png)bin638 -> 638 bytes
-rw-r--r--desktop/onionshare/resources/images/history_in_progress_none.png (renamed from desktop/src/onionshare/resources/images/history_in_progress_none.png)bin412 -> 412 bytes
-rw-r--r--desktop/onionshare/resources/images/history_requests.png (renamed from desktop/src/onionshare/resources/images/history_requests.png)bin738 -> 738 bytes
-rw-r--r--desktop/onionshare/resources/images/history_requests_none.png (renamed from desktop/src/onionshare/resources/images/history_requests_none.png)bin754 -> 754 bytes
-rw-r--r--desktop/onionshare/resources/images/info.png (renamed from desktop/src/onionshare/resources/images/info.png)bin435 -> 435 bytes
-rw-r--r--desktop/onionshare/resources/images/light_logo_text.png (renamed from desktop/src/onionshare/resources/images/light_logo_text.png)bin3334 -> 3334 bytes
-rw-r--r--desktop/onionshare/resources/images/light_logo_text_bg.png (renamed from desktop/src/onionshare/resources/images/light_logo_text_bg.png)bin15778 -> 15778 bytes
-rw-r--r--desktop/onionshare/resources/images/light_mode_chat.png (renamed from desktop/src/onionshare/resources/images/light_mode_chat.png)bin22092 -> 22092 bytes
-rw-r--r--desktop/onionshare/resources/images/light_mode_new_tab_chat.png (renamed from desktop/src/onionshare/resources/images/light_mode_new_tab_chat.png)bin15690 -> 15690 bytes
-rw-r--r--desktop/onionshare/resources/images/light_mode_new_tab_receive.png (renamed from desktop/src/onionshare/resources/images/light_mode_new_tab_receive.png)bin15402 -> 15402 bytes
-rw-r--r--desktop/onionshare/resources/images/light_mode_new_tab_share.png (renamed from desktop/src/onionshare/resources/images/light_mode_new_tab_share.png)bin13203 -> 13203 bytes
-rw-r--r--desktop/onionshare/resources/images/light_mode_new_tab_website.png (renamed from desktop/src/onionshare/resources/images/light_mode_new_tab_website.png)bin10670 -> 10670 bytes
-rw-r--r--desktop/onionshare/resources/images/light_mode_receive.png (renamed from desktop/src/onionshare/resources/images/light_mode_receive.png)bin23614 -> 23614 bytes
-rw-r--r--desktop/onionshare/resources/images/light_mode_share.png (renamed from desktop/src/onionshare/resources/images/light_mode_share.png)bin9528 -> 9528 bytes
-rw-r--r--desktop/onionshare/resources/images/light_mode_website.png (renamed from desktop/src/onionshare/resources/images/light_mode_website.png)bin8613 -> 8613 bytes
-rw-r--r--desktop/onionshare/resources/images/light_settings.png (renamed from desktop/src/onionshare/resources/images/light_settings.png)bin1157 -> 1157 bytes
-rw-r--r--desktop/onionshare/resources/images/light_tor_settings.png (renamed from desktop/src/onionshare/resources/images/light_tor_settings.png)bin1503 -> 1503 bytes
-rw-r--r--desktop/onionshare/resources/images/logo.png (renamed from desktop/src/onionshare/resources/images/logo.png)bin3824 -> 3824 bytes
-rw-r--r--desktop/onionshare/resources/images/logo_grayscale.png (renamed from desktop/src/onionshare/resources/images/logo_grayscale.png)bin2258 -> 2258 bytes
-rw-r--r--desktop/onionshare/resources/images/logo_transparent.png (renamed from desktop/src/onionshare/resources/images/logo_transparent.png)bin3740 -> 3740 bytes
-rw-r--r--desktop/onionshare/resources/images/mode_chat.svg (renamed from desktop/src/onionshare/resources/images/mode_chat.svg)0
-rw-r--r--desktop/onionshare/resources/images/mode_receive.svg (renamed from desktop/src/onionshare/resources/images/mode_receive.svg)0
-rw-r--r--desktop/onionshare/resources/images/mode_share.svg (renamed from desktop/src/onionshare/resources/images/mode_share.svg)0
-rw-r--r--desktop/onionshare/resources/images/mode_website.svg (renamed from desktop/src/onionshare/resources/images/mode_website.svg)0
-rw-r--r--desktop/onionshare/resources/images/open_folder.png (renamed from desktop/src/onionshare/resources/images/open_folder.png)bin221 -> 221 bytes
-rw-r--r--desktop/onionshare/resources/images/open_message.png (renamed from desktop/src/onionshare/resources/images/open_message.png)bin5403 -> 5403 bytes
-rw-r--r--desktop/onionshare/resources/images/persistent_enabled.png (renamed from desktop/src/onionshare/resources/images/persistent_enabled.png)bin3398 -> 3398 bytes
-rw-r--r--desktop/onionshare/resources/images/receive_icon_toggle.png (renamed from desktop/src/onionshare/resources/images/receive_icon_toggle.png)bin380 -> 380 bytes
-rw-r--r--desktop/onionshare/resources/images/receive_icon_toggle_selected.png (renamed from desktop/src/onionshare/resources/images/receive_icon_toggle_selected.png)bin468 -> 468 bytes
-rw-r--r--desktop/onionshare/resources/images/receive_icon_transparent.png (renamed from desktop/src/onionshare/resources/images/receive_icon_transparent.png)bin2138 -> 2138 bytes
-rw-r--r--desktop/onionshare/resources/images/server_started.png (renamed from desktop/src/onionshare/resources/images/server_started.png)bin347 -> 347 bytes
-rw-r--r--desktop/onionshare/resources/images/server_stopped.png (renamed from desktop/src/onionshare/resources/images/server_stopped.png)bin342 -> 342 bytes
-rw-r--r--desktop/onionshare/resources/images/server_working.png (renamed from desktop/src/onionshare/resources/images/server_working.png)bin349 -> 349 bytes
-rw-r--r--desktop/onionshare/resources/images/share_icon_toggle.png (renamed from desktop/src/onionshare/resources/images/share_icon_toggle.png)bin389 -> 389 bytes
-rw-r--r--desktop/onionshare/resources/images/share_icon_toggle_selected.png (renamed from desktop/src/onionshare/resources/images/share_icon_toggle_selected.png)bin473 -> 473 bytes
-rw-r--r--desktop/onionshare/resources/images/share_icon_transparent.png (renamed from desktop/src/onionshare/resources/images/share_icon_transparent.png)bin2096 -> 2096 bytes
-rw-r--r--desktop/onionshare/resources/locale/af.json (renamed from desktop/src/onionshare/resources/locale/af.json)0
-rw-r--r--desktop/onionshare/resources/locale/am.json (renamed from desktop/src/onionshare/resources/locale/am.json)0
-rw-r--r--desktop/onionshare/resources/locale/ar.json (renamed from desktop/src/onionshare/resources/locale/ar.json)0
-rw-r--r--desktop/onionshare/resources/locale/bg.json (renamed from desktop/src/onionshare/resources/locale/bg.json)0
-rw-r--r--desktop/onionshare/resources/locale/bn.json (renamed from desktop/src/onionshare/resources/locale/bn.json)0
-rw-r--r--desktop/onionshare/resources/locale/ca.json (renamed from desktop/src/onionshare/resources/locale/ca.json)0
-rw-r--r--desktop/onionshare/resources/locale/ckb.json (renamed from desktop/src/onionshare/resources/locale/ckb.json)0
-rw-r--r--desktop/onionshare/resources/locale/cs.json (renamed from desktop/src/onionshare/resources/locale/cs.json)0
-rw-r--r--desktop/onionshare/resources/locale/da.json (renamed from desktop/src/onionshare/resources/locale/da.json)0
-rw-r--r--desktop/onionshare/resources/locale/de.json (renamed from desktop/src/onionshare/resources/locale/de.json)0
-rw-r--r--desktop/onionshare/resources/locale/el.json (renamed from desktop/src/onionshare/resources/locale/el.json)37
-rw-r--r--desktop/onionshare/resources/locale/en.json (renamed from desktop/src/onionshare/resources/locale/en.json)0
-rw-r--r--desktop/onionshare/resources/locale/enm.json (renamed from desktop/src/onionshare/resources/locale/enm.json)0
-rw-r--r--desktop/onionshare/resources/locale/eo.json (renamed from desktop/src/onionshare/resources/locale/eo.json)0
-rw-r--r--desktop/onionshare/resources/locale/es.json (renamed from desktop/src/onionshare/resources/locale/es.json)0
-rw-r--r--desktop/onionshare/resources/locale/fa.json (renamed from desktop/src/onionshare/resources/locale/fa.json)0
-rw-r--r--desktop/onionshare/resources/locale/fi.json (renamed from desktop/src/onionshare/resources/locale/fi.json)0
-rw-r--r--desktop/onionshare/resources/locale/fr.json (renamed from desktop/src/onionshare/resources/locale/fr.json)55
-rw-r--r--desktop/onionshare/resources/locale/ga.json (renamed from desktop/src/onionshare/resources/locale/ga.json)0
-rw-r--r--desktop/onionshare/resources/locale/gl.json (renamed from desktop/src/onionshare/resources/locale/gl.json)0
-rw-r--r--desktop/onionshare/resources/locale/gu.json (renamed from desktop/src/onionshare/resources/locale/gu.json)0
-rw-r--r--desktop/onionshare/resources/locale/he.json (renamed from desktop/src/onionshare/resources/locale/he.json)0
-rw-r--r--desktop/onionshare/resources/locale/hi.json (renamed from desktop/src/onionshare/resources/locale/hi.json)0
-rw-r--r--desktop/onionshare/resources/locale/hr.json (renamed from desktop/src/onionshare/resources/locale/hr.json)0
-rw-r--r--desktop/onionshare/resources/locale/hu.json (renamed from desktop/src/onionshare/resources/locale/hu.json)0
-rw-r--r--desktop/onionshare/resources/locale/id.json (renamed from desktop/src/onionshare/resources/locale/id.json)0
-rw-r--r--desktop/onionshare/resources/locale/is.json (renamed from desktop/src/onionshare/resources/locale/is.json)0
-rw-r--r--desktop/onionshare/resources/locale/it.json (renamed from desktop/src/onionshare/resources/locale/it.json)0
-rw-r--r--desktop/onionshare/resources/locale/ja.json (renamed from desktop/src/onionshare/resources/locale/ja.json)0
-rw-r--r--desktop/onionshare/resources/locale/ka.json (renamed from desktop/src/onionshare/resources/locale/ka.json)0
-rw-r--r--desktop/onionshare/resources/locale/km.json (renamed from desktop/src/onionshare/resources/locale/km.json)0
-rw-r--r--desktop/onionshare/resources/locale/ko.json (renamed from desktop/src/onionshare/resources/locale/ko.json)0
-rw-r--r--desktop/onionshare/resources/locale/lg.json (renamed from desktop/src/onionshare/resources/locale/lg.json)0
-rw-r--r--desktop/onionshare/resources/locale/lt.json (renamed from desktop/src/onionshare/resources/locale/lt.json)0
-rw-r--r--desktop/onionshare/resources/locale/mk.json (renamed from desktop/src/onionshare/resources/locale/mk.json)0
-rw-r--r--desktop/onionshare/resources/locale/ms.json (renamed from desktop/src/onionshare/resources/locale/ms.json)0
-rw-r--r--desktop/onionshare/resources/locale/nb_NO.json (renamed from desktop/src/onionshare/resources/locale/nb_NO.json)0
-rw-r--r--desktop/onionshare/resources/locale/nl.json (renamed from desktop/src/onionshare/resources/locale/nl.json)0
-rw-r--r--desktop/onionshare/resources/locale/pa.json (renamed from desktop/src/onionshare/resources/locale/pa.json)0
-rw-r--r--desktop/onionshare/resources/locale/pl.json (renamed from desktop/src/onionshare/resources/locale/pl.json)0
-rw-r--r--desktop/onionshare/resources/locale/pt_BR.json (renamed from desktop/src/onionshare/resources/locale/pt_BR.json)37
-rw-r--r--desktop/onionshare/resources/locale/pt_PT.json (renamed from desktop/src/onionshare/resources/locale/pt_PT.json)0
-rw-r--r--desktop/onionshare/resources/locale/ro.json (renamed from desktop/src/onionshare/resources/locale/ro.json)0
-rw-r--r--desktop/onionshare/resources/locale/ru.json (renamed from desktop/src/onionshare/resources/locale/ru.json)35
-rw-r--r--desktop/onionshare/resources/locale/si.json (renamed from desktop/src/onionshare/resources/locale/si.json)0
-rw-r--r--desktop/onionshare/resources/locale/sk.json (renamed from desktop/src/onionshare/resources/locale/sk.json)0
-rw-r--r--desktop/onionshare/resources/locale/sl.json (renamed from desktop/src/onionshare/resources/locale/sl.json)0
-rw-r--r--desktop/onionshare/resources/locale/sn.json (renamed from desktop/src/onionshare/resources/locale/sn.json)0
-rw-r--r--desktop/onionshare/resources/locale/sr_Latn.json (renamed from desktop/src/onionshare/resources/locale/sr_Latn.json)0
-rw-r--r--desktop/onionshare/resources/locale/sv.json (renamed from desktop/src/onionshare/resources/locale/sv.json)5
-rw-r--r--desktop/onionshare/resources/locale/sw.json (renamed from desktop/src/onionshare/resources/locale/sw.json)0
-rw-r--r--desktop/onionshare/resources/locale/te.json (renamed from desktop/src/onionshare/resources/locale/te.json)0
-rw-r--r--desktop/onionshare/resources/locale/tr.json (renamed from desktop/src/onionshare/resources/locale/tr.json)0
-rw-r--r--desktop/onionshare/resources/locale/uk.json (renamed from desktop/src/onionshare/resources/locale/uk.json)0
-rw-r--r--desktop/onionshare/resources/locale/wo.json (renamed from desktop/src/onionshare/resources/locale/wo.json)0
-rw-r--r--desktop/onionshare/resources/locale/yo.json (renamed from desktop/src/onionshare/resources/locale/yo.json)0
-rw-r--r--desktop/onionshare/resources/locale/zh_Hans.json (renamed from desktop/src/onionshare/resources/locale/zh_Hans.json)0
-rw-r--r--desktop/onionshare/resources/locale/zh_Hant.json (renamed from desktop/src/onionshare/resources/locale/zh_Hant.json)0
-rw-r--r--desktop/onionshare/resources/onionshare-128.png (renamed from desktop/src/onionshare/resources/onionshare-128.png)bin12788 -> 12788 bytes
-rw-r--r--desktop/onionshare/resources/onionshare-16.png (renamed from desktop/src/onionshare/resources/onionshare-16.png)bin2437 -> 2437 bytes
-rw-r--r--desktop/onionshare/resources/onionshare-256.png (renamed from desktop/src/onionshare/resources/onionshare-256.png)bin19034 -> 19034 bytes
-rw-r--r--desktop/onionshare/resources/onionshare-32.png (renamed from desktop/src/onionshare/resources/onionshare-32.png)bin4051 -> 4051 bytes
-rw-r--r--desktop/onionshare/resources/onionshare-512.png (renamed from desktop/src/onionshare/resources/onionshare-512.png)bin24613 -> 24613 bytes
-rw-r--r--desktop/onionshare/resources/onionshare-64.png (renamed from desktop/src/onionshare/resources/onionshare-64.png)bin8486 -> 8486 bytes
-rw-r--r--desktop/onionshare/resources/onionshare.icns (renamed from desktop/src/onionshare/resources/onionshare.icns)bin34168 -> 34168 bytes
-rw-r--r--desktop/onionshare/resources/onionshare.ico (renamed from desktop/src/onionshare/resources/onionshare.ico)bin15086 -> 15086 bytes
-rw-r--r--desktop/onionshare/resources/onionshare.png (renamed from desktop/src/onionshare/resources/onionshare.png)bin24613 -> 24613 bytes
-rw-r--r--desktop/onionshare/settings_tab.py (renamed from desktop/src/onionshare/settings_tab.py)2
-rw-r--r--desktop/onionshare/strings.py (renamed from desktop/src/onionshare/strings.py)2
-rw-r--r--desktop/onionshare/tab/__init__.py (renamed from desktop/src/onionshare/tab/__init__.py)2
-rw-r--r--desktop/onionshare/tab/mode/__init__.py (renamed from desktop/src/onionshare/tab/mode/__init__.py)2
-rw-r--r--desktop/onionshare/tab/mode/chat_mode/__init__.py (renamed from desktop/src/onionshare/tab/mode/chat_mode/__init__.py)2
-rw-r--r--desktop/onionshare/tab/mode/file_selection.py (renamed from desktop/src/onionshare/tab/mode/file_selection.py)2
-rw-r--r--desktop/onionshare/tab/mode/history.py (renamed from desktop/src/onionshare/tab/mode/history.py)3
-rw-r--r--desktop/onionshare/tab/mode/mode_settings_widget.py (renamed from desktop/src/onionshare/tab/mode/mode_settings_widget.py)2
-rw-r--r--desktop/onionshare/tab/mode/receive_mode/__init__.py (renamed from desktop/src/onionshare/tab/mode/receive_mode/__init__.py)2
-rw-r--r--desktop/onionshare/tab/mode/share_mode/__init__.py (renamed from desktop/src/onionshare/tab/mode/share_mode/__init__.py)2
-rw-r--r--desktop/onionshare/tab/mode/share_mode/threads.py (renamed from desktop/src/onionshare/tab/mode/share_mode/threads.py)2
-rw-r--r--desktop/onionshare/tab/mode/website_mode/__init__.py (renamed from desktop/src/onionshare/tab/mode/website_mode/__init__.py)2
-rw-r--r--desktop/onionshare/tab/server_status.py (renamed from desktop/src/onionshare/tab/server_status.py)2
-rw-r--r--desktop/onionshare/tab/tab.py (renamed from desktop/src/onionshare/tab/tab.py)2
-rw-r--r--desktop/onionshare/tab_widget.py (renamed from desktop/src/onionshare/tab_widget.py)2
-rw-r--r--desktop/onionshare/threads.py (renamed from desktop/src/onionshare/threads.py)2
-rw-r--r--desktop/onionshare/tor_connection.py (renamed from desktop/src/onionshare/tor_connection.py)2
-rw-r--r--desktop/onionshare/tor_settings_tab.py (renamed from desktop/src/onionshare/tor_settings_tab.py)2
-rw-r--r--desktop/onionshare/update_checker.py (renamed from desktop/src/onionshare/update_checker.py)2
-rw-r--r--desktop/onionshare/widgets.py (renamed from desktop/src/onionshare/widgets.py)2
-rw-r--r--desktop/org.onionshare.OnionShare.appdata.xml (renamed from desktop/src/org.onionshare.OnionShare.appdata.xml)4
-rw-r--r--desktop/org.onionshare.OnionShare.desktop (renamed from desktop/src/org.onionshare.OnionShare.desktop)0
-rw-r--r--desktop/org.onionshare.OnionShare.svg (renamed from desktop/src/org.onionshare.OnionShare.svg)0
-rw-r--r--desktop/package/Entitlements.plist (renamed from desktop/package/macos/Entitlements.plist)0
-rwxr-xr-xdesktop/package/build-mac.py308
-rw-r--r--desktop/package/build-windows.py587
-rw-r--r--desktop/package/dialog.bmpbin0 -> 615402 bytes
-rw-r--r--desktop/package/license.rtf136
-rwxr-xr-xdesktop/package/linux/build-appimage.py46
-rwxr-xr-xdesktop/package/macos/build.py262
-rw-r--r--desktop/package/onionshare-cli.py3
-rw-r--r--desktop/package/onionshare.py3
-rw-r--r--desktop/package/windows/build.py234
-rw-r--r--desktop/poetry.lock1317
-rw-r--r--desktop/pyproject.toml60
-rw-r--r--desktop/scripts/bridges/__init__.py82
-rwxr-xr-xdesktop/scripts/build-meek-client.py6
-rwxr-xr-xdesktop/scripts/check_lacked_trans.py154
-rw-r--r--desktop/scripts/dev.bat3
-rwxr-xr-xdesktop/scripts/dev.sh9
-rwxr-xr-xdesktop/scripts/get-tor-linux.py14
-rwxr-xr-xdesktop/scripts/get-tor-osx.py15
-rw-r--r--desktop/scripts/get-tor-windows.py15
-rwxr-xr-xdesktop/scripts/rebuild-cli.py45
-rw-r--r--desktop/setup-freeze.py232
-rw-r--r--desktop/setup.py (renamed from desktop/src/setup.py)30
-rw-r--r--desktop/tests/gui_base_test.py7
-rw-r--r--desktop/tests/test_gui_chat.py1
-rw-r--r--desktop/tests/test_gui_receive.py33
-rw-r--r--desktop/tests/test_gui_share.py1
-rwxr-xr-xdocs/build.sh2
-rw-r--r--docs/gettext/.doctrees/advanced.doctreebin26945 -> 26945 bytes
-rw-r--r--docs/gettext/.doctrees/develop.doctreebin37627 -> 37623 bytes
-rw-r--r--docs/gettext/.doctrees/environment.picklebin38212 -> 38330 bytes
-rw-r--r--docs/gettext/.doctrees/features.doctreebin49386 -> 49386 bytes
-rw-r--r--docs/gettext/.doctrees/help.doctreebin7687 -> 7687 bytes
-rw-r--r--docs/gettext/.doctrees/index.doctreebin3439 -> 3439 bytes
-rw-r--r--docs/gettext/.doctrees/install.doctreebin23153 -> 23153 bytes
-rw-r--r--docs/gettext/.doctrees/security.doctreebin13580 -> 13580 bytes
-rw-r--r--docs/gettext/.doctrees/tor.doctreebin31011 -> 31011 bytes
-rw-r--r--docs/gettext/advanced.pot4
-rw-r--r--docs/gettext/develop.pot4
-rw-r--r--docs/gettext/features.pot4
-rw-r--r--docs/gettext/help.pot4
-rw-r--r--docs/gettext/index.pot4
-rw-r--r--docs/gettext/install.pot4
-rw-r--r--docs/gettext/security.pot4
-rw-r--r--docs/gettext/sphinx.pot4
-rw-r--r--docs/gettext/tor.pot4
-rw-r--r--docs/poetry.lock407
-rw-r--r--docs/source/conf.py14
-rw-r--r--docs/source/locale/de/LC_MESSAGES/advanced.po47
-rw-r--r--docs/source/locale/de/LC_MESSAGES/develop.po9
-rw-r--r--docs/source/locale/de/LC_MESSAGES/features.po186
-rw-r--r--docs/source/locale/de/LC_MESSAGES/tor.po169
-rw-r--r--docs/source/locale/el/LC_MESSAGES/features.po193
-rw-r--r--docs/source/locale/el/LC_MESSAGES/tor.po180
-rw-r--r--docs/source/locale/es/LC_MESSAGES/features.po202
-rw-r--r--docs/source/locale/es/LC_MESSAGES/help.po10
-rw-r--r--docs/source/locale/es/LC_MESSAGES/tor.po173
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/advanced.po298
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/develop.po159
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/features.po601
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/help.po47
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/install.po154
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/security.po177
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/tor.po237
-rw-r--r--docs/source/locale/it/LC_MESSAGES/advanced.po356
-rw-r--r--docs/source/locale/it/LC_MESSAGES/develop.po145
-rw-r--r--docs/source/locale/it/LC_MESSAGES/features.po619
-rw-r--r--docs/source/locale/it/LC_MESSAGES/help.po57
-rw-r--r--docs/source/locale/it/LC_MESSAGES/install.po62
-rw-r--r--docs/source/locale/it/LC_MESSAGES/security.po113
-rw-r--r--docs/source/locale/it/LC_MESSAGES/tor.po209
-rw-r--r--docs/source/locale/ja/LC_MESSAGES/advanced.po48
-rw-r--r--docs/source/locale/ja/LC_MESSAGES/develop.po15
-rw-r--r--docs/source/locale/ja/LC_MESSAGES/features.po76
-rw-r--r--docs/source/locale/ja/LC_MESSAGES/help.po25
-rw-r--r--docs/source/locale/ja/LC_MESSAGES/index.po15
-rw-r--r--docs/source/locale/ja/LC_MESSAGES/install.po56
-rw-r--r--docs/source/locale/ja/LC_MESSAGES/security.po29
-rw-r--r--docs/source/locale/ja/LC_MESSAGES/sphinx.po15
-rw-r--r--docs/source/locale/ja/LC_MESSAGES/tor.po69
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/advanced.po322
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/develop.po173
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/features.po586
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/help.po53
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/install.po73
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/security.po112
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/tor.po185
-rw-r--r--docs/source/locale/pt_BR/LC_MESSAGES/advanced.po15
-rw-r--r--docs/source/locale/pt_BR/LC_MESSAGES/features.po30
-rw-r--r--docs/source/locale/pt_BR/LC_MESSAGES/install.po9
-rw-r--r--docs/source/locale/pt_BR/LC_MESSAGES/tor.po32
-rw-r--r--docs/source/locale/ru/LC_MESSAGES/features.po23
-rw-r--r--docs/source/locale/ru/LC_MESSAGES/tor.po40
-rw-r--r--docs/source/locale/uk/LC_MESSAGES/develop.po9
-rw-r--r--docs/source/locale/uk/LC_MESSAGES/help.po14
-rw-r--r--docs/source/locale/uk/LC_MESSAGES/install.po12
-rw-r--r--security/2021 Penetration Test Report.pdfbin0 -> 612291 bytes
-rw-r--r--snap/snapcraft.yaml32
781 files changed, 7738 insertions, 3915 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index b9938c28..47d6340f 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -9,7 +9,7 @@ workflows:
jobs:
test-cli:
docker:
- - image: circleci/python:3.8-buster
+ - image: circleci/python:3.9-bullseye
working_directory: ~/repo
@@ -37,7 +37,7 @@ jobs:
test-gui:
docker:
- - image: circleci/python:3.8-buster
+ - image: circleci/python:3.9-bullseye
working_directory: ~/repo
@@ -50,16 +50,11 @@ jobs:
sudo apt-get update
sudo apt-get install -y tor obfs4proxy gcc python3-dev python3-pyside2.qtcore python3-pyside2.qtwidgets python3-pyside2.qtgui
sudo apt-get install -y xvfb x11-utils libxkbcommon-x11-0 libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev libxcb-render-util0 libxcb-icccm4 libxcb-keysyms1 libxcb-image0
- cd ~/repo/cli
- poetry install
- poetry build
- cp dist/onionshare_cli-*.whl ~/repo/desktop
cd ~/repo/desktop
- pip install briefcase pytest pytest-briefcase pytest-faulthandler pytest-qt pytest-xvfb
- pip install $(python -c 'import toml; print(" ".join(toml.loads(open("pyproject.toml").read())["tool"]["briefcase"]["app"]["onionshare"]["requires"]))')
+ poetry install
- run:
name: Run tests
command: |
cd ~/repo/desktop
- ./tests/run.sh
+ xvfb-run poetry run ./tests/run.sh
diff --git a/.gitignore b/.gitignore
index c96d9d1d..00bd6ab4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -59,10 +59,4 @@ venv
# other
.vscode
onionshare.dist-info
-desktop/src/onionshare/resources/tor
-desktop/*.whl
-desktop/linux
-desktop/windows
-desktop/macOS
-# gets added automatically when building for Windows or macOS
-desktop/include \ No newline at end of file
+desktop/onionshare/resources/tor
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 442f688f..ce455a45 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,18 @@
# OnionShare Changelog
+## 2.5
+
+* Security fix: Sanitize the path parameter in History item widget to be plain text
+* Security fix: Use microseconds in Receive mode directory creation to avoid potential DoS
+* Security fix: Several hardening improvements for session and username management in Chat mode, to prevent impersonation and other issues
+* Major feature: Obtain bridges from Moat / BridgeDB (over a domain-fronted Meek client)
+* Major feature: Snowflake bridge support
+* New feature: Tor connection settings, as well as general settings, are now Tabs rather than dialogs
+* New feature: User can customize the Content-Security-Policy header in Website mode
+* New feature: Built-in bridges are automatically updated from Tor's API when the user has chosen to use them
+* Switch to using our `stem` fork called `cepa`, which is now published on Pypi so we can build it in releases
+* Various bug fixes
+
## 2.4
* Major feature: Private keys (v3 onion client authentication) replaces passwords and HTTP basic auth
diff --git a/LICENSE b/LICENSE
index d6405d0e..41232270 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,7 +1,7 @@
(Note: Third-party licenses can be found under licenses/.)
OnionShare
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
diff --git a/RELEASE.md b/RELEASE.md
index 0332d8ea..76c33a4b 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -7,11 +7,10 @@ Unless you're a core OnionShare developer making a release, you'll probably neve
Before making a release, you must update the version in these places:
- [ ] `cli/pyproject.toml`
-- [ ] `cli/setup.py`
- [ ] `cli/onionshare_cli/resources/version.txt`
-- [ ] `desktop/pyproject.toml` (under `version` and **don't forget** the `./onionshare_cli-$VERSION-py3-none-any.whl` dependency)
-- [ ] `desktop/src/setup.py`
-- [ ] `desktop/src/org.onionshare.OnionShare.appdata.xml`
+- [ ] `desktop/pyproject.toml`
+- [ ] `desktop/setup.py`
+- [ ] `desktop/org.onionshare.OnionShare.appdata.xml`
- [ ] `docs/source/conf.py` (`version` at the top, and the `versions` list too)
- [ ] `snap/snapcraft.yaml`
@@ -19,6 +18,7 @@ If you update `flask-socketio`, ensure that you also update the [socket.io.min.j
Use tor binaries from the latest Tor Browser:
+- [ ] `desktop/scripts/get-tor-linux.py`
- [ ] `desktop/scripts/get-tor-osx.py`
- [ ] `desktop/scripts/get-tor-windows.py`
@@ -43,13 +43,13 @@ Finalize localization:
You also must edit these files:
-- [ ] `desktop/src/org.onionshare.OnionShare.appdata.xml` should have the correct release date, and links to correct screenshots
+- [ ] `desktop/org.onionshare.OnionShare.appdata.xml` should have the correct release date, and links to correct screenshots
- [ ] `CHANGELOG.md` should be updated to include a list of all major changes since the last release
Make sure snapcraft packaging works. In `snap/snapcraft.yaml`:
- [ ] The `tor`, `libevent`, and `obfs4` parts should be updated if necessary
-- [ ] All python packages should be updated to match `cli/pyproject.toml` and `desktop/pyproject.toml`
+- [ ] All python packages in the `onionshare` part should be updated to match `desktop/pyproject.toml`
- [ ] Test the snap package, ensure it works
Finally:
@@ -79,10 +79,10 @@ Build and test the snap before publishing (note that `--dangerous` lets you inst
```sh
snapcraft
-snap install --dangerous ./onionshare_$VERSION_amd64.snap
+snap install --dangerous ./onionshare_${VERSION}_amd64.snap
```
-This will create `onionshare_$VERSION_amd64.snap`.
+This will create `onionshare_${VERSION}_amd64.snap`.
Run the OnionShare snap locally:
@@ -95,72 +95,44 @@ Upload the to Snapcraft:
```sh
snapcraft login
-snapcraft upload --release=stable onionshare_$VERSION_amd64.snap
-```
-
-## Linux AppImage release
-
-_Note: AppImage packages are currently broken due to [this briefcase bug](https://github.com/beeware/briefcase/issues/504). Until it's fixed, OnionShare for Linux will only be available in Flatpak and Snapcraft._
-
-Set up the development environment described in `README.md`.
-
-Make sure your virtual environment is active:
-
-```sh
-. venv/bin/activate
-```
-
-Run the AppImage build script:
-
-```sh
-./package/linux/build-appimage.py
+snapcraft upload --release=stable onionshare_${VERSION}_amd64.snap
```
## Windows
-Set up the development environment described in `README.md`. And install the [Windows 10 SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk) and add `C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86` to your path.
-
-Make sure your virtual environment is active:
+Set up the development environment described in desktop `README.md`.
-```
-venv\Scripts\activate.bat
-```
+- To get `signtool.exe`, install the [Windows 10 SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk) and add `C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x86` to your path.
+- Go to https://dotnet.microsoft.com/download/dotnet-framework and download and install .NET Framework 3.5 SP1 Runtime. I downloaded `dotnetfx35.exe`.
+- Go to https://wixtoolset.org/releases/ and download and install WiX toolset. I downloaded `wix311.exe`. Add `C:\Program Files (x86)\WiX Toolset v3.11\bin` to the path.
Run the Windows build script:
```
-python package\windows\build.py
+poetry run python .\package\build-windows.py
```
-This will create `desktop/windows/OnionShare-$VERSION.msi`, signed.
+This will create `desktop/dist/OnionShare-$VERSION.msi`, signed.
## macOS
-Set up the development environment described in `README.md`. And install `create-dmg`:
-
-```sh
-brew install create-dmg
-```
+Set up the development environment described in `README.md`.
-Make sure your virtual environment is active:
+Then build an executable, make it a macOS app bundle, and package it in a dmg:
```sh
-. venv/bin/activate
+poetry run ./package/build-mac.py
```
-Run the macOS build script:
-
-```sh
-./package/macos/build.py --with-codesign
-```
+The will create `dist/OnionShare-$VERSION.dmg`.
Now, notarize the release. You must have an app-specific Apple ID password saved in the login keychain called `onionshare-notarize`.
-- Notarize it: `xcrun altool --notarize-app --primary-bundle-id "com.micahflee.onionshare" -u "micah@micahflee.com" -p "@keychain:onionshare-notarize" --file macOS/OnionShare.dmg`
+- Notarize it: `xcrun altool --notarize-app --primary-bundle-id "com.micahflee.onionshare" -u "micah@micahflee.com" -p "@keychain:onionshare-notarize" --file dist/OnionShare-$VERSION.dmg`
- Wait for it to get approved, check status with: `xcrun altool --notarization-history 0 -u "micah@micahflee.com" -p "@keychain:onionshare-notarize"`
-- After it's approved, staple the ticket: `xcrun stapler staple macOS/OnionShare.dmg`
+- After it's approved, staple the ticket: `xcrun stapler staple dist/OnionShare-$VERSION.dmg`
-This will create `desktop/macOS/OnionShare.dmg`, signed and notarized.
+This will create `desktop/dist/OnionShare-$VERSION.dmg`, signed and notarized.
## Source package
@@ -174,7 +146,7 @@ This will create `dist/onionshare-$VERSION.tar.gz`.
After following all of the previous steps, gather these files:
-- `onionshare_$VERSION_amd64.snap`
+- `onionshare_${VERSION}_amd64.snap`
- `OnionShare-$VERSION.msi`
- `OnionShare.dmg` (rename it to `OnionShare-$VERSION.dmg`)
- `onionshare-$VERSION.tar.gz`
diff --git a/cli/README.md b/cli/README.md
index bfc287be..12a157e3 100644
--- a/cli/README.md
+++ b/cli/README.md
@@ -97,11 +97,3 @@ To run tests:
```sh
poetry run pytest -v ./tests
```
-
-## Build a wheel package
-
-```sh
-poetry build
-```
-
-This will create `dist/onionshare_cli-$VERSION-py3-none-any.whl`.
diff --git a/cli/onionshare_cli/__init__.py b/cli/onionshare_cli/__init__.py
index ded67ed6..f77bceab 100644
--- a/cli/onionshare_cli/__init__.py
+++ b/cli/onionshare_cli/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/cli/onionshare_cli/censorship.py b/cli/onionshare_cli/censorship.py
index ee013cca..4ab5c366 100644
--- a/cli/onionshare_cli/censorship.py
+++ b/cli/onionshare_cli/censorship.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/cli/onionshare_cli/common.py b/cli/onionshare_cli/common.py
index 3d918fa0..ceec654d 100644
--- a/cli/onionshare_cli/common.py
+++ b/cli/onionshare_cli/common.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -329,23 +329,49 @@ class Common:
tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
elif self.platform == "Windows":
+ # In Windows, the Tor binaries are in the onionshare package, not the onionshare_cli package
base_path = self.get_resource_path("tor")
+ base_path = base_path.replace("onionshare_cli", "onionshare")
tor_path = os.path.join(base_path, "Tor", "tor.exe")
+
+ # If tor.exe isn't there, mayber we're running from the source tree
+ if not os.path.exists(tor_path):
+ base_path = os.path.join(os.getcwd(), "onionshare", "resources", "tor")
+
+ tor_path = os.path.join(base_path, "Tor", "tor.exe")
+ if not os.path.exists(tor_path):
+ raise CannotFindTor()
+
obfs4proxy_file_path = os.path.join(base_path, "Tor", "obfs4proxy.exe")
snowflake_file_path = os.path.join(base_path, "Tor", "snowflake-client.exe")
meek_client_file_path = os.path.join(base_path, "Tor", "meek-client.exe")
tor_geo_ip_file_path = os.path.join(base_path, "Data", "Tor", "geoip")
tor_geo_ipv6_file_path = os.path.join(base_path, "Data", "Tor", "geoip6")
+
elif self.platform == "Darwin":
- tor_path = shutil.which("tor")
- if not tor_path:
- raise CannotFindTor()
- obfs4proxy_file_path = shutil.which("obfs4proxy")
- snowflake_file_path = shutil.which("snowflake-client")
- meek_client_file_path = shutil.which("meek-client")
- prefix = os.path.dirname(os.path.dirname(tor_path))
- tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
- tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
+ # Let's see if we have tor binaries in the onionshare GUI package
+ base_path = self.get_resource_path("tor")
+ base_path = base_path.replace("onionshare_cli", "onionshare")
+ tor_path = os.path.join(base_path, "tor")
+ if os.path.exists(tor_path):
+ obfs4proxy_file_path = os.path.join(base_path, "obfs4proxy")
+ snowflake_file_path = os.path.join(base_path, "snowflake-client")
+ meek_client_file_path = os.path.join(base_path, "meek-client")
+ tor_geo_ip_file_path = os.path.join(base_path, "geoip")
+ tor_geo_ipv6_file_path = os.path.join(base_path, "geoip6")
+ else:
+ # Fallback to looking in the path
+ tor_path = shutil.which("tor")
+ if not os.path.exists(tor_path):
+ raise CannotFindTor()
+
+ obfs4proxy_file_path = shutil.which("obfs4proxy")
+ snowflake_file_path = shutil.which("snowflake-client")
+ meek_client_file_path = shutil.which("meek-client")
+ prefix = os.path.dirname(os.path.dirname(tor_path))
+ tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
+ tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
+
elif self.platform == "BSD":
tor_path = "/usr/local/bin/tor"
tor_geo_ip_file_path = "/usr/local/share/tor/geoip"
diff --git a/cli/onionshare_cli/meek.py b/cli/onionshare_cli/meek.py
index 3ada19c7..777c0ab6 100644
--- a/cli/onionshare_cli/meek.py
+++ b/cli/onionshare_cli/meek.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/cli/onionshare_cli/mode_settings.py b/cli/onionshare_cli/mode_settings.py
index b94b1d25..90bcaf07 100644
--- a/cli/onionshare_cli/mode_settings.py
+++ b/cli/onionshare_cli/mode_settings.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -55,12 +55,8 @@ class ModeSettings:
"disable_text": False,
"disable_files": False,
},
- "website": {
- "disable_csp": False,
- "custom_csp": None,
- "filenames": []
- },
- "chat": {"room": "default"},
+ "website": {"disable_csp": False, "custom_csp": None, "filenames": []},
+ "chat": {},
}
self._settings = {}
diff --git a/cli/onionshare_cli/onion.py b/cli/onionshare_cli/onion.py
index ba9e2e77..6ef4af2c 100644
--- a/cli/onionshare_cli/onion.py
+++ b/cli/onionshare_cli/onion.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -414,6 +414,10 @@ class Onion(object):
self.common.log("Onion", "connect", f"tor pid: {self.tor_proc.pid}")
time.sleep(2)
+ return_code = self.tor_proc.poll()
+ if return_code != None:
+ self.common.log("Onion", "connect", f"tor process has terminated early: {return_code}")
+
# Connect to the controller
self.common.log("Onion", "connect", "authenticating to tor controller")
try:
diff --git a/cli/onionshare_cli/onionshare.py b/cli/onionshare_cli/onionshare.py
index 2bb22296..2d43cc6f 100644
--- a/cli/onionshare_cli/onionshare.py
+++ b/cli/onionshare_cli/onionshare.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/cli/onionshare_cli/resources/static/js/chat.js b/cli/onionshare_cli/resources/static/js/chat.js
index b4ef30df..88abf4f4 100644
--- a/cli/onionshare_cli/resources/static/js/chat.js
+++ b/cli/onionshare_cli/resources/static/js/chat.js
@@ -9,31 +9,25 @@ $(function () {
);
// Store current username received from app context
- var current_username = $('#username').val();
-
- // On browser connect, emit a socket event to be added to
- // room and assigned random username
- socket.on('connect', function () {
- socket.emit('joined', {});
- });
+ var current_username = $('#username').val().trim();
// Triggered on any status change by any user, such as some
// user joined, or changed username, or left, etc.
socket.on('status', function (data) {
- addMessageToRoom(data, current_username, 'status');
+ addMessageToPanel(data, current_username, 'status');
console.log(data, current_username);
});
// Triggered when message is received from a user. Even when sent
// by self, it get triggered after the server sends back the emit.
- socket.on('message', function (data) {
- addMessageToRoom(data, current_username, 'chat');
+ socket.on('chat_message', function (data) {
+ addMessageToPanel(data, current_username, 'chat');
console.log(data, current_username);
});
// Triggered when disconnected either by server stop or timeout
socket.on('disconnect', function (data) {
- addMessageToRoom({ 'msg': 'The chat server is disconnected.' }, current_username, 'status');
+ addMessageToPanel({ 'msg': 'The chat server is disconnected.' }, current_username, 'status');
})
socket.on('connect_error', function (error) {
console.log("error");
@@ -66,7 +60,7 @@ $(function () {
});
});
-var addMessageToRoom = function (data, current_username, messageType) {
+var addMessageToPanel = function (data, current_username, messageType) {
var scrollDiff = getScrollDiffBefore();
if (messageType === 'status') {
addStatusMessage(data.msg);
@@ -88,7 +82,7 @@ var emitMessage = function (socket) {
var updateUsername = function (socket) {
var username = $('#username').val();
- if (!checkUsernameExists(username) && !checkUsernameTooLong(username)) {
+ if (!checkUsernameExists(username) && !checkUsernameTooLong(username) && !checkUsernameAscii(username)) {
$.ajax({
method: 'POST',
url: `http://${document.domain}:${location.port}/update-session-username`,
@@ -99,6 +93,8 @@ var updateUsername = function (socket) {
console.log(response);
if (response.success && response.username == username) {
socket.emit('update_username', { username: username });
+ } else {
+ addStatusMessage("Failed to update username.")
}
});
return username;
@@ -121,6 +117,16 @@ var createUserListHTML = function (connected_users, current_user) {
return userListHTML;
}
+var checkUsernameAscii = function (username) {
+ // ASCII characters have code points in the range U+0000-U+007F.
+ $('#username-error').text('');
+ if (!/^[\u0000-\u007f]*$/.test(username)) {
+ $('#username-error').text('Non-ASCII usernames are not supported.');
+ return true;
+ }
+ return false;
+}
+
var checkUsernameExists = function (username) {
$('#username-error').text('');
var userMatches = $('#user-list li').filter(function () {
diff --git a/cli/onionshare_cli/resources/torrc_template-meek_lite_azure b/cli/onionshare_cli/resources/torrc_template-meek_lite_azure
index cbc5a9ee..ff67f518 100644
--- a/cli/onionshare_cli/resources/torrc_template-meek_lite_azure
+++ b/cli/onionshare_cli/resources/torrc_template-meek_lite_azure
@@ -1,2 +1,2 @@
-# Enable built-in meek-azure bridge
-Bridge meek_lite 0.0.2.0:3 97700DFE9F483596DDA6264C4D7DF7641E1E39CE url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com
+# Enable built-in meek bridge
+Bridge meek_lite 0.0.2.0:2 97700DFE9F483596DDA6264C4D7DF7641E1E39CE url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com
diff --git a/cli/onionshare_cli/resources/torrc_template-obfs4 b/cli/onionshare_cli/resources/torrc_template-obfs4
index 4ea90134..adf343de 100644
--- a/cli/onionshare_cli/resources/torrc_template-obfs4
+++ b/cli/onionshare_cli/resources/torrc_template-obfs4
@@ -1,16 +1,16 @@
-# Enable built-in obfs4-bridge
-Bridge obfs4 38.229.33.83:80 0BAC39417268B96B9F514E7F63FA6FBA1A788955 cert=VwEFpk9F/UN9JED7XpG1XOjm/O8ZCXK80oPecgWnNDZDv5pdkhq1OpbAH0wNqOT6H6BmRQ iat-mode=1
-Bridge obfs4 193.11.166.194:27015 2D82C2E354D531A68469ADF7F878FA6060C6BACA cert=4TLQPJrTSaDffMK7Nbao6LC7G9OW/NHkUwIdjLSS3KYf0Nv4/nQiiI8dY2TcsQx01NniOg iat-mode=0
-Bridge obfs4 85.31.186.98:443 011F2599C0E9B27EE74B353155E244813763C3E5 cert=ayq0XzCwhpdysn5o0EyDUbmSOx3X/oTEbzDMvczHOdBJKlvIdHHLJGkZARtT4dcBFArPPg iat-mode=0
+# Enable built-in obfs4 bridge
+Bridge obfs4 144.217.20.138:80 FB70B257C162BF1038CA669D568D76F5B7F0BABB cert=vYIV5MgrghGQvZPIi1tJwnzorMgqgmlKaB77Y3Z9Q/v94wZBOAXkW+fdx4aSxLVnKO+xNw iat-mode=0
Bridge obfs4 146.57.248.225:22 10A6CD36A537FCE513A322361547444B393989F0 cert=K1gDtDAIcUfeLqbstggjIw2rtgIKqdIhUlHp82XRqNSq/mtAjp1BIC9vHKJ2FAEpGssTPw iat-mode=0
-Bridge obfs4 85.31.186.26:443 91A6354697E6B02A386312F68D82CF86824D3606 cert=PBwr+S8JTVZo6MPdHnkTwXJPILWADLqfMGoVvhZClMq/Urndyd42BwX9YFJHZnBB3H0XCw iat-mode=0
-Bridge obfs4 51.222.13.177:80 5EDAC3B810E12B01F6FD8050D2FD3E277B289A08 cert=2uplIpLQ0q9+0qMFrK5pkaYRDOe460LL9WHBvatgkuRr/SL31wBOEupaMMJ6koRE6Ld0ew iat-mode=0
-Bridge obfs4 209.148.46.65:443 74FAD13168806246602538555B5521A0383A1875 cert=ssH+9rP8dG2NLDN2XuFw63hIO/9MNNinLmxQDpVa+7kTOa9/m+tGWT1SmSYpQ9uTBGa6Hw iat-mode=0
-Bridge obfs4 45.145.95.6:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0k6xYHMPW3vJxICfkMZNdkRrb63Zhl5j9dW3iRGiCx0A7mPhe5T2EDzQ35+Zw iat-mode=0
-Bridge obfs4 38.229.1.78:80 C8CBDB2464FC9804A69531437BCF2BE31FDD2EE4 cert=Hmyfd2ev46gGY7NoVxA9ngrPF2zCZtzskRTzoWXbxNkzeVnGFPWmrTtILRyqCTjHR+s9dg iat-mode=1
-Bridge obfs4 193.11.166.194:27025 1AE2C08904527FEA90C4C4F8C1083EA59FBC6FAF cert=ItvYZzW5tn6v3G4UnQa6Qz04Npro6e81AP70YujmK/KXwDFPTs3aHXcHp4n8Vt6w/bv8cA iat-mode=0
+Bridge obfs4 192.95.36.142:443 CDF2E852BF539B82BD10E27E9115A31734E378C2 cert=qUVQ0srL1JI/vO6V6m/24anYXiJD3QP2HgzUKQtQ7GRqqUvs7P+tG43RtAqdhLOALP7DJQ iat-mode=1
+Bridge obfs4 193.11.166.194:27015 2D82C2E354D531A68469ADF7F878FA6060C6BACA cert=4TLQPJrTSaDffMK7Nbao6LC7G9OW/NHkUwIdjLSS3KYf0Nv4/nQiiI8dY2TcsQx01NniOg iat-mode=0
Bridge obfs4 193.11.166.194:27020 86AC7B8D430DAC4117E9F42C9EAED18133863AAF cert=0LDeJH4JzMDtkJJrFphJCiPqKx7loozKN7VNfuukMGfHO0Z8OGdzHVkhVAOfo1mUdv9cMg iat-mode=0
+Bridge obfs4 193.11.166.194:27025 1AE2C08904527FEA90C4C4F8C1083EA59FBC6FAF cert=ItvYZzW5tn6v3G4UnQa6Qz04Npro6e81AP70YujmK/KXwDFPTs3aHXcHp4n8Vt6w/bv8cA iat-mode=0
+Bridge obfs4 209.148.46.65:443 74FAD13168806246602538555B5521A0383A1875 cert=ssH+9rP8dG2NLDN2XuFw63hIO/9MNNinLmxQDpVa+7kTOa9/m+tGWT1SmSYpQ9uTBGa6Hw iat-mode=0
Bridge obfs4 37.218.245.14:38224 D9A82D2F9C2F65A18407B1D2B764F130847F8B5D cert=bjRaMrr1BRiAW8IE9U5z27fQaYgOhX1UCmOpg2pFpoMvo6ZgQMzLsaTzzQNTlm7hNcb+Sg iat-mode=0
-Bridge obfs4 144.217.20.138:80 FB70B257C162BF1038CA669D568D76F5B7F0BABB cert=vYIV5MgrghGQvZPIi1tJwnzorMgqgmlKaB77Y3Z9Q/v94wZBOAXkW+fdx4aSxLVnKO+xNw iat-mode=0
-Bridge obfs4 192.95.36.142:443 CDF2E852BF539B82BD10E27E9115A31734E378C2 cert=qUVQ0srL1JI/vO6V6m/24anYXiJD3QP2HgzUKQtQ7GRqqUvs7P+tG43RtAqdhLOALP7DJQ iat-mode=1
+Bridge obfs4 38.229.1.78:80 C8CBDB2464FC9804A69531437BCF2BE31FDD2EE4 cert=Hmyfd2ev46gGY7NoVxA9ngrPF2zCZtzskRTzoWXbxNkzeVnGFPWmrTtILRyqCTjHR+s9dg iat-mode=1
+Bridge obfs4 38.229.33.83:80 0BAC39417268B96B9F514E7F63FA6FBA1A788955 cert=VwEFpk9F/UN9JED7XpG1XOjm/O8ZCXK80oPecgWnNDZDv5pdkhq1OpbAH0wNqOT6H6BmRQ iat-mode=1
+Bridge obfs4 45.145.95.6:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0k6xYHMPW3vJxICfkMZNdkRrb63Zhl5j9dW3iRGiCx0A7mPhe5T2EDzQ35+Zw iat-mode=0
+Bridge obfs4 51.222.13.177:80 5EDAC3B810E12B01F6FD8050D2FD3E277B289A08 cert=2uplIpLQ0q9+0qMFrK5pkaYRDOe460LL9WHBvatgkuRr/SL31wBOEupaMMJ6koRE6Ld0ew iat-mode=0
+Bridge obfs4 85.31.186.26:443 91A6354697E6B02A386312F68D82CF86824D3606 cert=PBwr+S8JTVZo6MPdHnkTwXJPILWADLqfMGoVvhZClMq/Urndyd42BwX9YFJHZnBB3H0XCw iat-mode=0
+Bridge obfs4 85.31.186.98:443 011F2599C0E9B27EE74B353155E244813763C3E5 cert=ayq0XzCwhpdysn5o0EyDUbmSOx3X/oTEbzDMvczHOdBJKlvIdHHLJGkZARtT4dcBFArPPg iat-mode=0
Bridge obfs4 [2a0c:4d80:42:702::1]:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0k6xYHMPW3vJxICfkMZNdkRrb63Zhl5j9dW3iRGiCx0A7mPhe5T2EDzQ35+Zw iat-mode=0
diff --git a/cli/onionshare_cli/resources/torrc_template-snowflake b/cli/onionshare_cli/resources/torrc_template-snowflake
index 20efe28c..06cb2734 100644
--- a/cli/onionshare_cli/resources/torrc_template-snowflake
+++ b/cli/onionshare_cli/resources/torrc_template-snowflake
@@ -1 +1,2 @@
+# Enable built-in snowflake bridge
Bridge snowflake 0.0.3.0:1 2B280B23E1107BB62ABFC40DDCC8824814F80A72
diff --git a/cli/onionshare_cli/resources/version.txt b/cli/onionshare_cli/resources/version.txt
index 7208c218..68151b2e 100644
--- a/cli/onionshare_cli/resources/version.txt
+++ b/cli/onionshare_cli/resources/version.txt
@@ -1 +1 @@
-2.4 \ No newline at end of file
+2.5 \ No newline at end of file
diff --git a/cli/onionshare_cli/settings.py b/cli/onionshare_cli/settings.py
index 473d8379..cab64681 100644
--- a/cli/onionshare_cli/settings.py
+++ b/cli/onionshare_cli/settings.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -55,8 +55,8 @@ class Settings(object):
# Dictionary of available languages in this version of OnionShare,
# mapped to the language name, in that language
self.available_locales = {
- "ar": "العربية", # Arabic
- "bn": "বাংলা", # Bengali
+ # "ar": "العربية", # Arabic
+ # "bn": "বাংলা", # Bengali
# "ca": "Català", # Catalan
# "zh_Hant": "正體中文 (繁體)", # Traditional Chinese
"zh_Hans": "中文 (简体)", # Simplified Chinese
@@ -64,28 +64,28 @@ class Settings(object):
# "da": "Dansk", # Danish
# "nl": "Nederlands", # Dutch
"en": "English", # English
- "fi": "Suomi", # Finnish
- # "fr": "Français", # French
+ # "fi": "Suomi", # Finnish
+ "fr": "Français", # French
"gl": "Galego", # Galician
"de": "Deutsch", # German
- # "el": "Ελληνικά", # Greek
+ "el": "Ελληνικά", # Greek
"is": "Íslenska", # Icelandic
# "id": "Bahasa Indonesia", # Indonesian
# "ga": "Gaeilge", # Irish
# "it": "Italiano", # Italian
- # "ja": "日本語", # Japanese
+ "ja": "日本語", # Japanese
# "ckb": "Soranî", # Kurdish (Central)
- "lt": "Lietuvių Kalba", # Lithuanian
- "nb_NO": "Norsk Bokmål", # Norwegian Bokmål
+ # "lt": "Lietuvių Kalba", # Lithuanian
+ # "nb_NO": "Norsk Bokmål", # Norwegian Bokmål
# "fa": "فارسی", # Persian
- "pl": "Polski", # Polish
+ # "pl": "Polski", # Polish
"pt_BR": "Português (Brasil)", # Portuguese Brazil
- # "pt_PT": "Português (Portugal)", # Portuguese Portugal
+ "pt_PT": "Português (Portugal)", # Portuguese Portugal
# "ro": "Română", # Romanian
"ru": "Русский", # Russian
# "sr_Latn": "Srpska (latinica)", # Serbian (latin)
# "sk": "Slovenčina", # Slovak
- "sv": "Svenska", # Swedish
+ # "sv": "Svenska", # Swedish
"es": "Español", # Spanish
# "te": "తెలుగు", # Telugu
"tr": "Türkçe", # Turkish
diff --git a/cli/onionshare_cli/web/__init__.py b/cli/onionshare_cli/web/__init__.py
index 3c7f4a51..24a08a19 100644
--- a/cli/onionshare_cli/web/__init__.py
+++ b/cli/onionshare_cli/web/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/cli/onionshare_cli/web/chat_mode.py b/cli/onionshare_cli/web/chat_mode.py
index e92ce385..5a11eedd 100644
--- a/cli/onionshare_cli/web/chat_mode.py
+++ b/cli/onionshare_cli/web/chat_mode.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
from flask import request, render_template, make_response, jsonify, session
-from flask_socketio import emit, join_room, leave_room
+from flask_socketio import emit, ConnectionRefusedError
class ChatModeWeb:
@@ -33,7 +33,7 @@ class ChatModeWeb:
self.web = web
- # This tracks users in the room
+ # This tracks users in the server
self.connected_users = []
# This tracks the history id
@@ -47,6 +47,15 @@ class ChatModeWeb:
self.define_routes()
+ def validate_username(self, username):
+ username = username.strip()
+ return (
+ username
+ and username.isascii()
+ and username not in self.connected_users
+ and len(username) < 128
+ )
+
def define_routes(self):
"""
The web app routes for chatting
@@ -61,7 +70,6 @@ class ChatModeWeb:
if session.get("name")
else self.common.build_username()
)
- session["room"] = self.web.settings.default_settings["chat"]["room"]
self.web.add_request(
request.path,
{"id": history_id, "status_code": 200},
@@ -79,12 +87,9 @@ class ChatModeWeb:
def update_session_username():
history_id = self.cur_history_id
data = request.get_json()
- if (
- data.get("username", "")
- and data.get("username", "") not in self.connected_users
- and len(data.get("username", "")) < 128
- ):
- session["name"] = data.get("username", session.get("name"))
+ username = data.get("username", session.get("name")).strip()
+ if self.validate_username(username):
+ session["name"] = username
self.web.add_request(
request.path,
{"id": history_id, "status_code": 200},
@@ -111,67 +116,75 @@ class ChatModeWeb:
)
return r
- @self.web.socketio.on("joined", namespace="/chat")
- def joined(message):
+ @self.web.socketio.on("connect", namespace="/chat")
+ def server_connect():
"""Sent by clients when they enter a room.
A status message is broadcast to all people in the room."""
- self.connected_users.append(session.get("name"))
- join_room(session.get("room"))
- emit(
- "status",
- {
- "username": session.get("name"),
- "msg": "{} has joined.".format(session.get("name")),
- "connected_users": self.connected_users,
- "user": session.get("name"),
- },
- room=session.get("room"),
- )
+ if self.validate_username(session.get("name")):
+ self.connected_users.append(session.get("name"))
+ emit(
+ "status",
+ {
+ "username": session.get("name"),
+ "msg": "{} has joined.".format(session.get("name")),
+ "connected_users": self.connected_users,
+ "user": session.get("name"),
+ },
+ broadcast=True,
+ )
+ else:
+ raise ConnectionRefusedError('You are active from another session!')
@self.web.socketio.on("text", namespace="/chat")
def text(message):
"""Sent by a client when the user entered a new message.
- The message is sent to all people in the room."""
+ The message is sent to all people in the server."""
emit(
- "message",
+ "chat_message",
{"username": session.get("name"), "msg": message["msg"]},
- room=session.get("room"),
+ broadcast=True,
)
@self.web.socketio.on("update_username", namespace="/chat")
def update_username(message):
"""Sent by a client when the user updates their username.
- The message is sent to all people in the room."""
+ The message is sent to all people in the server."""
current_name = session.get("name")
- if message.get("username", ""):
- session["name"] = message["username"]
+ new_name = message.get("username", "").strip()
+ if self.validate_username(new_name):
+ session["name"] = new_name
self.connected_users[
self.connected_users.index(current_name)
] = session.get("name")
- emit(
- "status",
- {
- "msg": "{} has updated their username to: {}".format(
- current_name, session.get("name")
- ),
- "connected_users": self.connected_users,
- "old_name": current_name,
- "new_name": session.get("name"),
- },
- room=session.get("room"),
- )
+ emit(
+ "status",
+ {
+ "msg": "{} has updated their username to: {}".format(
+ current_name, session.get("name")
+ ),
+ "connected_users": self.connected_users,
+ "old_name": current_name,
+ "new_name": session.get("name"),
+ },
+ broadcast=True,
+ )
+ else:
+ emit(
+ "status",
+ {"msg": "Failed to update username."},
+ )
@self.web.socketio.on("disconnect", namespace="/chat")
def disconnect():
- """Sent by clients when they disconnect from a room.
- A status message is broadcast to all people in the room."""
- self.connected_users.remove(session.get("name"))
- leave_room(session.get("room"))
+ """Sent by clients when they disconnect.
+ A status message is broadcast to all people in the server."""
+ if session.get("name") in self.connected_users:
+ self.connected_users.remove(session.get("name"))
emit(
"status",
{
"msg": "{} has left the room.".format(session.get("name")),
"connected_users": self.connected_users,
},
- room=session.get("room"),
+ broadcast=True,
)
diff --git a/cli/onionshare_cli/web/receive_mode.py b/cli/onionshare_cli/web/receive_mode.py
index 6b106d37..9ddf22ff 100644
--- a/cli/onionshare_cli/web/receive_mode.py
+++ b/cli/onionshare_cli/web/receive_mode.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -378,7 +378,7 @@ class ReceiveModeRequest(Request):
# Figure out what files should be saved
now = datetime.now()
date_dir = now.strftime("%Y-%m-%d")
- time_dir = now.strftime("%H%M%S")
+ time_dir = now.strftime("%H%M%S%f")
self.receive_mode_dir = os.path.join(
self.web.settings.get("receive", "data_dir"), date_dir, time_dir
)
diff --git a/cli/onionshare_cli/web/send_base_mode.py b/cli/onionshare_cli/web/send_base_mode.py
index d0fccf06..e608298b 100644
--- a/cli/onionshare_cli/web/send_base_mode.py
+++ b/cli/onionshare_cli/web/send_base_mode.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/cli/onionshare_cli/web/share_mode.py b/cli/onionshare_cli/web/share_mode.py
index 38f3f78d..f714081d 100644
--- a/cli/onionshare_cli/web/share_mode.py
+++ b/cli/onionshare_cli/web/share_mode.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -189,7 +189,7 @@ class ShareModeWeb(SendBaseModeWeb):
# and serve that
use_gzip = self.should_use_gzip()
if use_gzip:
- file_to_download = self.gzip_file.name
+ file_to_download = self.gzip_filename
self.filesize = self.gzip_filesize
etag = self.gzip_etag
else:
@@ -492,20 +492,21 @@ class ShareModeWeb(SendBaseModeWeb):
self.download_etag = make_etag(f)
# Compress the file with gzip now, so we don't have to do it on each request
- self.gzip_file = tempfile.NamedTemporaryFile(
- "wb+", dir=self.common.build_tmp_dir()
+ self.gzip_tmp_dir = tempfile.TemporaryDirectory(
+ dir=self.common.build_tmp_dir()
)
+ self.gzip_filename = os.path.join(self.gzip_tmp_dir.name, "file.gz")
self._gzip_compress(
- self.download_filename, self.gzip_file.name, 6, processed_size_callback
+ self.download_filename, self.gzip_filename, 6, processed_size_callback
)
- self.gzip_filesize = os.path.getsize(self.gzip_file.name)
- with open(self.gzip_file.name, "rb") as f:
+ self.gzip_filesize = os.path.getsize(self.gzip_filename)
+ with open(self.gzip_filename, "rb") as f:
self.gzip_etag = make_etag(f)
self.is_zipped = False
# Cleanup this tempfile
- self.web.cleanup_tempfiles.append(self.gzip_file)
+ self.web.cleanup_tempdirs.append(self.gzip_tmp_dir)
else:
# Zip up the files and folders
diff --git a/cli/onionshare_cli/web/web.py b/cli/onionshare_cli/web/web.py
index cf65b69e..64844b5c 100644
--- a/cli/onionshare_cli/web/web.py
+++ b/cli/onionshare_cli/web/web.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -18,6 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
import logging
+import mimetypes
import os
import queue
import requests
@@ -80,6 +81,16 @@ class Web:
self.settings = mode_settings
+ # Flask guesses the MIME type of files from a database on the operating
+ # system.
+ # Some operating systems, or applications that can modify the database
+ # (such as the Windows Registry) can treat .js files as text/plain,
+ # which breaks the chat app due to X-Content-Type-Options: nosniff.
+ #
+ # It's probably #notourbug but we can fix it by forcing the mimetype.
+ # https://github.com/onionshare/onionshare/issues/1443
+ mimetypes.add_type("text/javascript", ".js")
+
# The flask app
self.app = Flask(
__name__,
@@ -151,7 +162,12 @@ class Web:
elif self.mode == "website":
self.website_mode = WebsiteModeWeb(self.common, self)
elif self.mode == "chat":
- self.socketio = SocketIO()
+ if self.common.verbose:
+ self.socketio = SocketIO(
+ async_mode="gevent", logger=True, engineio_logger=True
+ )
+ else:
+ self.socketio = SocketIO(async_mode="gevent")
self.socketio.init_app(self.app)
self.chat_mode = ChatModeWeb(self.common, self)
diff --git a/cli/onionshare_cli/web/website_mode.py b/cli/onionshare_cli/web/website_mode.py
index 5ab1b184..1f61532b 100644
--- a/cli/onionshare_cli/web/website_mode.py
+++ b/cli/onionshare_cli/web/website_mode.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/cli/poetry.lock b/cli/poetry.lock
index 966aea84..4673aa52 100644
--- a/cli/poetry.lock
+++ b/cli/poetry.lock
@@ -8,17 +8,17 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "attrs"
-version = "21.2.0"
+version = "21.4.0"
description = "Classes Without Boilerplate"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[package.extras]
-dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"]
+dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"]
docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
-tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"]
-tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"]
+tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"]
+tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"]
[[package]]
name = "bidict"
@@ -57,7 +57,7 @@ pycparser = "*"
[[package]]
name = "charset-normalizer"
-version = "2.0.7"
+version = "2.0.10"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
category = "main"
optional = false
@@ -99,7 +99,7 @@ trio = ["trio (>=0.14.0)", "sniffio (>=1.1)"]
[[package]]
name = "eventlet"
-version = "0.32.0"
+version = "0.33.0"
description = "Highly concurrent networking library"
category = "main"
optional = false
@@ -142,6 +142,38 @@ Flask = ">=0.9"
python-socketio = ">=5.0.2"
[[package]]
+name = "gevent"
+version = "21.12.0"
+description = "Coroutine-based network library"
+category = "main"
+optional = false
+python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5"
+
+[package.dependencies]
+cffi = {version = ">=1.12.2", markers = "platform_python_implementation == \"CPython\" and sys_platform == \"win32\""}
+greenlet = {version = ">=1.1.0,<2.0", markers = "platform_python_implementation == \"CPython\""}
+"zope.event" = "*"
+"zope.interface" = "*"
+
+[package.extras]
+dnspython = ["dnspython (>=1.16.0,<2.0)", "idna"]
+docs = ["repoze.sphinx.autointerface", "sphinxcontrib-programoutput", "zope.schema"]
+monitor = ["psutil (>=5.7.0)"]
+recommended = ["cffi (>=1.12.2)", "dnspython (>=1.16.0,<2.0)", "idna", "selectors2", "backports.socketpair", "psutil (>=5.7.0)"]
+test = ["requests", "objgraph", "cffi (>=1.12.2)", "dnspython (>=1.16.0,<2.0)", "idna", "selectors2", "futures", "mock", "backports.socketpair", "contextvars (==2.4)", "coverage (>=5.0)", "coveralls (>=1.7.0)", "psutil (>=5.7.0)"]
+
+[[package]]
+name = "gevent-websocket"
+version = "0.10.1"
+description = "Websocket handler for the gevent pywsgi server, a Python network library"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+gevent = "*"
+
+[[package]]
name = "greenlet"
version = "1.1.2"
description = "Lightweight in-process concurrent programming"
@@ -162,7 +194,7 @@ python-versions = ">=3.5"
[[package]]
name = "importlib-metadata"
-version = "4.8.2"
+version = "4.8.3"
description = "Read metadata from Python packages"
category = "dev"
optional = false
@@ -217,14 +249,14 @@ python-versions = ">=3.6"
[[package]]
name = "packaging"
-version = "21.2"
+version = "21.3"
description = "Core utilities for Python packages"
category = "dev"
optional = false
python-versions = ">=3.6"
[package.dependencies]
-pyparsing = ">=2.0.2,<3"
+pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
[[package]]
name = "pluggy"
@@ -243,7 +275,7 @@ testing = ["pytest", "pytest-benchmark"]
[[package]]
name = "psutil"
-version = "5.8.0"
+version = "5.9.0"
description = "Cross-platform lib for process and system monitoring in Python."
category = "main"
optional = false
@@ -270,15 +302,14 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "pynacl"
-version = "1.4.0"
+version = "1.5.0"
description = "Python binding to the Networking and Cryptography (NaCl) library"
category = "main"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+python-versions = ">=3.6"
[package.dependencies]
cffi = ">=1.4.1"
-six = "*"
[package.extras]
docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"]
@@ -286,11 +317,14 @@ tests = ["pytest (>=3.2.1,!=3.3.0)", "hypothesis (>=3.27.0)"]
[[package]]
name = "pyparsing"
-version = "2.4.7"
+version = "3.0.6"
description = "Python parsing module"
category = "dev"
optional = false
-python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+python-versions = ">=3.6"
+
+[package.extras]
+diagrams = ["jinja2", "railroad-diagrams"]
[[package]]
name = "pysocks"
@@ -324,7 +358,7 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xm
[[package]]
name = "python-engineio"
-version = "4.3.0"
+version = "4.3.1"
description = "Engine.IO server and client for Python"
category = "main"
optional = false
@@ -336,7 +370,7 @@ client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
[[package]]
name = "python-socketio"
-version = "5.5.0"
+version = "5.5.1"
description = "Socket.IO server and client for Python"
category = "main"
optional = false
@@ -352,7 +386,7 @@ client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
[[package]]
name = "requests"
-version = "2.26.0"
+version = "2.27.1"
description = "Python HTTP for Humans."
category = "main"
optional = false
@@ -387,7 +421,7 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
[[package]]
name = "typing-extensions"
-version = "4.0.0"
+version = "4.0.1"
description = "Backported and Experimental Type Hints for Python 3.6+"
category = "dev"
optional = false
@@ -403,7 +437,7 @@ python-versions = ">=3.5"
[[package]]
name = "urllib3"
-version = "1.26.7"
+version = "1.26.8"
description = "HTTP library with thread-safe connection pooling, file post, and more."
category = "main"
optional = false
@@ -438,10 +472,35 @@ python-versions = ">=3.6"
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
+[[package]]
+name = "zope.event"
+version = "4.5.0"
+description = "Very basic event publishing system"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.extras]
+docs = ["sphinx"]
+test = ["zope.testrunner"]
+
+[[package]]
+name = "zope.interface"
+version = "5.4.0"
+description = "Interfaces for Python"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.extras]
+docs = ["sphinx", "repoze.sphinx.autointerface"]
+test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
+testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
+
[metadata]
lock-version = "1.1"
python-versions = "^3.6"
-content-hash = "b6700c9652a3292f2ab3153544c46ed78c75fc9b65c15fcf4e3c243f841565dd"
+content-hash = "064aff40554c171d65c246432baaa66bc6775cad7c69c6524e927d233f1880b4"
[metadata.files]
atomicwrites = [
@@ -449,8 +508,8 @@ atomicwrites = [
{file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"},
]
attrs = [
- {file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"},
- {file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"},
+ {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"},
+ {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"},
]
bidict = [
{file = "bidict-0.21.4-py3-none-any.whl", hash = "sha256:3ac67daa353ecf853a1df9d3e924f005e729227a60a8dbada31a4c31aba7f654"},
@@ -516,8 +575,8 @@ cffi = [
{file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"},
]
charset-normalizer = [
- {file = "charset-normalizer-2.0.7.tar.gz", hash = "sha256:e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0"},
- {file = "charset_normalizer-2.0.7-py3-none-any.whl", hash = "sha256:f7af805c321bfa1ce6714c51f254e0d5bb5e5834039bc17db7ebe3a4cec9492b"},
+ {file = "charset-normalizer-2.0.10.tar.gz", hash = "sha256:876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd"},
+ {file = "charset_normalizer-2.0.10-py3-none-any.whl", hash = "sha256:cb957888737fc0bbcd78e3df769addb41fd1ff8cf950dc9e7ad7793f1bf44455"},
]
click = [
{file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"},
@@ -532,8 +591,8 @@ dnspython = [
{file = "dnspython-2.1.0.zip", hash = "sha256:e4a87f0b573201a0f3727fa18a516b055fd1107e0e5477cded4a2de497df1dd4"},
]
eventlet = [
- {file = "eventlet-0.32.0-py2.py3-none-any.whl", hash = "sha256:a3a67b02f336e97a1894b277bc33b695831525758781eb024f4da00e75ce5e25"},
- {file = "eventlet-0.32.0.tar.gz", hash = "sha256:2f0bb8ed0dc0ab21d683975d5d8ab3c054d588ce61def9faf7a465ee363e839b"},
+ {file = "eventlet-0.33.0-py2.py3-none-any.whl", hash = "sha256:d10a8fcc9e33381905d9873303fde96ebe3541c03fb795055d2c7347dce0639c"},
+ {file = "eventlet-0.33.0.tar.gz", hash = "sha256:80144f489c1bb273a51b6f96ff9785a382d2866b9bab1f5bd748385019f4141f"},
]
flask = [
{file = "Flask-1.1.4-py2.py3-none-any.whl", hash = "sha256:c34f04500f2cbbea882b1acb02002ad6fe6b7ffa64a6164577995657f50aed22"},
@@ -543,6 +602,45 @@ flask-socketio = [
{file = "Flask-SocketIO-5.0.1.tar.gz", hash = "sha256:5c4319f5214ada20807857dc8fdf3dc7d2afe8d6dd38f5c516c72e2be47d2227"},
{file = "Flask_SocketIO-5.0.1-py2.py3-none-any.whl", hash = "sha256:5d9a4438bafd806c5a3b832e74b69758781a8ee26fb6c9b1dbdda9b4fced432e"},
]
+gevent = [
+ {file = "gevent-21.12.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:2afa3f3ad528155433f6ac8bd64fa5cc303855b97004416ec719a6b1ca179481"},
+ {file = "gevent-21.12.0-cp27-cp27m-win32.whl", hash = "sha256:177f93a3a90f46a5009e0841fef561601e5c637ba4332ab8572edd96af650101"},
+ {file = "gevent-21.12.0-cp27-cp27m-win_amd64.whl", hash = "sha256:a5ad4ed8afa0a71e1927623589f06a9b5e8b5e77810be3125cb4d93050d3fd1f"},
+ {file = "gevent-21.12.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:eae3c46f9484eaacd67ffcdf4eaf6ca830f587edd543613b0f5c4eb3c11d052d"},
+ {file = "gevent-21.12.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e1899b921219fc8959ff9afb94dae36be82e0769ed13d330a393594d478a0b3a"},
+ {file = "gevent-21.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c21cb5c9f4e14d75b3fe0b143ec875d7dbd1495fad6d49704b00e57e781ee0f"},
+ {file = "gevent-21.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:542ae891e2aa217d2cf6d8446538fcd2f3263a40eec123b970b899bac391c47a"},
+ {file = "gevent-21.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:0082d8a5d23c35812ce0e716a91ede597f6dd2c5ff508a02a998f73598c59397"},
+ {file = "gevent-21.12.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:da8d2d51a49b2a5beb02ad619ca9ddbef806ef4870ba04e5ac7b8b41a5b61db3"},
+ {file = "gevent-21.12.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cfff82f05f14b7f5d9ed53ccb7a609ae8604df522bb05c971bca78ec9d8b2b9"},
+ {file = "gevent-21.12.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:7909780f0cf18a1fc32aafd8c8e130cdd93c6e285b11263f7f2d1a0f3678bc50"},
+ {file = "gevent-21.12.0-cp36-cp36m-win32.whl", hash = "sha256:bb5cb8db753469c7a9a0b8a972d2660fe851aa06eee699a1ca42988afb0aaa02"},
+ {file = "gevent-21.12.0-cp36-cp36m-win_amd64.whl", hash = "sha256:c43f081cbca41d27fd8fef9c6a32cf83cb979345b20abc07bf68df165cdadb24"},
+ {file = "gevent-21.12.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:74fc1ef16b86616cfddcc74f7292642b0f72dde4dd95aebf4c45bb236744be54"},
+ {file = "gevent-21.12.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cc2fef0f98ee180704cf95ec84f2bc2d86c6c3711bb6b6740d74e0afe708b62c"},
+ {file = "gevent-21.12.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08b4c17064e28f4eb85604486abc89f442c7407d2aed249cf54544ce5c9baee6"},
+ {file = "gevent-21.12.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:973749bacb7bc4f4181a8fb2a7e0e2ff44038de56d08e856dd54a5ac1d7331b4"},
+ {file = "gevent-21.12.0-cp37-cp37m-win32.whl", hash = "sha256:6a02a88723ed3f0fd92cbf1df3c4cd2fbd87d82b0a4bac3e36a8875923115214"},
+ {file = "gevent-21.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:f289fae643a3f1c3b909d6b033e6921b05234a4907e9c9c8c3f1fe403e6ac452"},
+ {file = "gevent-21.12.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:3baeeccc4791ba3f8db27179dff11855a8f9210ddd754f6c9b48e0d2561c2aea"},
+ {file = "gevent-21.12.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05c5e8a50cd6868dd36536c92fb4468d18090e801bd63611593c0717bab63692"},
+ {file = "gevent-21.12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d86438ede1cbe0fde6ef4cc3f72bf2f1ecc9630d8b633ff344a3aeeca272cdd"},
+ {file = "gevent-21.12.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:01928770972181ad8866ee37ea3504f1824587b188fcab782ef1619ce7538766"},
+ {file = "gevent-21.12.0-cp38-cp38-win32.whl", hash = "sha256:3c012c73e6c61f13c75e3a4869dbe6a2ffa025f103421a6de9c85e627e7477b1"},
+ {file = "gevent-21.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:b7709c64afa8bb3000c28bb91ec42c79594a7cb0f322e20427d57f9762366a5b"},
+ {file = "gevent-21.12.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:ec21f9eaaa6a7b1e62da786132d6788675b314f25f98d9541f1bf00584ed4749"},
+ {file = "gevent-21.12.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:22ce1f38fdfe2149ffe8ec2131ca45281791c1e464db34b3b4321ae9d8d2efbb"},
+ {file = "gevent-21.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ccffcf708094564e442ac6fde46f0ae9e40015cb69d995f4b39cc29a7643881"},
+ {file = "gevent-21.12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24d3550fbaeef5fddd794819c2853bca45a86c3d64a056a2c268d981518220d1"},
+ {file = "gevent-21.12.0-cp39-cp39-win32.whl", hash = "sha256:2bcec9f80196c751fdcf389ca9f7141e7b0db960d8465ed79be5e685bfcad682"},
+ {file = "gevent-21.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:3dad62f55fad839d498c801e139481348991cee6e1c7706041b5fe096cb6a279"},
+ {file = "gevent-21.12.0-pp27-pypy_73-win_amd64.whl", hash = "sha256:9f9652d1e4062d4b5b5a0a49ff679fa890430b5f76969d35dccb2df114c55e0f"},
+ {file = "gevent-21.12.0.tar.gz", hash = "sha256:f48b64578c367b91fa793bf8eaaaf4995cb93c8bc45860e473bf868070ad094e"},
+]
+gevent-websocket = [
+ {file = "gevent-websocket-0.10.1.tar.gz", hash = "sha256:7eaef32968290c9121f7c35b973e2cc302ffb076d018c9068d2f5ca8b2d85fb0"},
+ {file = "gevent_websocket-0.10.1-py3-none-any.whl", hash = "sha256:17b67d91282f8f4c973eba0551183fc84f56f1c90c8f6b6b30256f31f66f5242"},
+]
greenlet = [
{file = "greenlet-1.1.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6"},
{file = "greenlet-1.1.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:aec52725173bd3a7b56fe91bc56eccb26fbdff1386ef123abb63c84c5b43b63a"},
@@ -555,6 +653,7 @@ greenlet = [
{file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97e5306482182170ade15c4b0d8386ded995a07d7cc2ca8f27958d34d6736497"},
{file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6a36bb9474218c7a5b27ae476035497a6990e21d04c279884eb10d9b290f1b1"},
{file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abb7a75ed8b968f3061327c433a0fbd17b729947b400747c334a9c29a9af6c58"},
+ {file = "greenlet-1.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b336501a05e13b616ef81ce329c0e09ac5ed8c732d9ba7e3e983fcc1a9e86965"},
{file = "greenlet-1.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:14d4f3cd4e8b524ae9b8aa567858beed70c392fdec26dbdb0a8a418392e71708"},
{file = "greenlet-1.1.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:17ff94e7a83aa8671a25bf5b59326ec26da379ace2ebc4411d690d80a7fbcf23"},
{file = "greenlet-1.1.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9f3cba480d3deb69f6ee2c1825060177a22c7826431458c697df88e6aeb3caee"},
@@ -567,6 +666,7 @@ greenlet = [
{file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9d29ca8a77117315101425ec7ec2a47a22ccf59f5593378fc4077ac5b754fce"},
{file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21915eb821a6b3d9d8eefdaf57d6c345b970ad722f856cd71739493ce003ad08"},
{file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eff9d20417ff9dcb0d25e2defc2574d10b491bf2e693b4e491914738b7908168"},
+ {file = "greenlet-1.1.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b8c008de9d0daba7b6666aa5bbfdc23dcd78cafc33997c9b7741ff6353bafb7f"},
{file = "greenlet-1.1.2-cp36-cp36m-win32.whl", hash = "sha256:32ca72bbc673adbcfecb935bb3fb1b74e663d10a4b241aaa2f5a75fe1d1f90aa"},
{file = "greenlet-1.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:f0214eb2a23b85528310dad848ad2ac58e735612929c8072f6093f3585fd342d"},
{file = "greenlet-1.1.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:b92e29e58bef6d9cfd340c72b04d74c4b4e9f70c9fa7c78b674d1fec18896dc4"},
@@ -575,6 +675,7 @@ greenlet = [
{file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e12bdc622676ce47ae9abbf455c189e442afdde8818d9da983085df6312e7a1"},
{file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c790abda465726cfb8bb08bd4ca9a5d0a7bd77c7ac1ca1b839ad823b948ea28"},
{file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f276df9830dba7a333544bd41070e8175762a7ac20350786b322b714b0e654f5"},
+ {file = "greenlet-1.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c5d5b35f789a030ebb95bff352f1d27a93d81069f2adb3182d99882e095cefe"},
{file = "greenlet-1.1.2-cp37-cp37m-win32.whl", hash = "sha256:64e6175c2e53195278d7388c454e0b30997573f3f4bd63697f88d855f7a6a1fc"},
{file = "greenlet-1.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b11548073a2213d950c3f671aa88e6f83cda6e2fb97a8b6317b1b5b33d850e06"},
{file = "greenlet-1.1.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:9633b3034d3d901f0a46b7939f8c4d64427dfba6bbc5a36b1a67364cf148a1b0"},
@@ -583,6 +684,7 @@ greenlet = [
{file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e859fcb4cbe93504ea18008d1df98dee4f7766db66c435e4882ab35cf70cac43"},
{file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00e44c8afdbe5467e4f7b5851be223be68adb4272f44696ee71fe46b7036a711"},
{file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec8c433b3ab0419100bd45b47c9c8551248a5aee30ca5e9d399a0b57ac04651b"},
+ {file = "greenlet-1.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2bde6792f313f4e918caabc46532aa64aa27a0db05d75b20edfc5c6f46479de2"},
{file = "greenlet-1.1.2-cp38-cp38-win32.whl", hash = "sha256:288c6a76705dc54fba69fbcb59904ae4ad768b4c768839b8ca5fdadec6dd8cfd"},
{file = "greenlet-1.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:8d2f1fb53a421b410751887eb4ff21386d119ef9cde3797bf5e7ed49fb51a3b3"},
{file = "greenlet-1.1.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:166eac03e48784a6a6e0e5f041cfebb1ab400b394db188c48b3a84737f505b67"},
@@ -591,6 +693,7 @@ greenlet = [
{file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1692f7d6bc45e3200844be0dba153612103db241691088626a33ff1f24a0d88"},
{file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7227b47e73dedaa513cdebb98469705ef0d66eb5a1250144468e9c3097d6b59b"},
{file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff61ff178250f9bb3cd89752df0f1dd0e27316a8bd1465351652b1b4a4cdfd3"},
+ {file = "greenlet-1.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0051c6f1f27cb756ffc0ffbac7d2cd48cb0362ac1736871399a739b2885134d3"},
{file = "greenlet-1.1.2-cp39-cp39-win32.whl", hash = "sha256:f70a9e237bb792c7cc7e44c531fd48f5897961701cdaa06cf22fc14965c496cf"},
{file = "greenlet-1.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:013d61294b6cd8fe3242932c1c5e36e5d1db2c8afb58606c5a67efce62c1f5fd"},
{file = "greenlet-1.1.2.tar.gz", hash = "sha256:e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a"},
@@ -600,8 +703,8 @@ idna = [
{file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"},
]
importlib-metadata = [
- {file = "importlib_metadata-4.8.2-py3-none-any.whl", hash = "sha256:53ccfd5c134223e497627b9815d5030edf77d2ed573922f7a0b8f8bb81a1c100"},
- {file = "importlib_metadata-4.8.2.tar.gz", hash = "sha256:75bdec14c397f528724c1bfd9709d660b33a4d2e77387a3358f20b848bb5e5fb"},
+ {file = "importlib_metadata-4.8.3-py3-none-any.whl", hash = "sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e"},
+ {file = "importlib_metadata-4.8.3.tar.gz", hash = "sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668"},
]
iniconfig = [
{file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
@@ -621,6 +724,9 @@ markupsafe = [
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"},
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"},
{file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"},
{file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"},
{file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"},
@@ -632,6 +738,9 @@ markupsafe = [
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"},
{file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"},
@@ -643,6 +752,9 @@ markupsafe = [
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"},
{file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"},
{file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"},
@@ -655,6 +767,9 @@ markupsafe = [
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"},
{file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"},
{file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"},
{file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"},
{file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"},
@@ -667,47 +782,54 @@ markupsafe = [
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"},
{file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"},
{file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"},
{file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"},
{file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"},
]
packaging = [
- {file = "packaging-21.2-py3-none-any.whl", hash = "sha256:14317396d1e8cdb122989b916fa2c7e9ca8e2be9e8060a6eff75b6b7b4d8a7e0"},
- {file = "packaging-21.2.tar.gz", hash = "sha256:096d689d78ca690e4cd8a89568ba06d07ca097e3306a4381635073ca91479966"},
+ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"},
+ {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
]
pluggy = [
{file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"},
{file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"},
]
psutil = [
- {file = "psutil-5.8.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:0066a82f7b1b37d334e68697faba68e5ad5e858279fd6351c8ca6024e8d6ba64"},
- {file = "psutil-5.8.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:0ae6f386d8d297177fd288be6e8d1afc05966878704dad9847719650e44fc49c"},
- {file = "psutil-5.8.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:12d844996d6c2b1d3881cfa6fa201fd635971869a9da945cf6756105af73d2df"},
- {file = "psutil-5.8.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:02b8292609b1f7fcb34173b25e48d0da8667bc85f81d7476584d889c6e0f2131"},
- {file = "psutil-5.8.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:6ffe81843131ee0ffa02c317186ed1e759a145267d54fdef1bc4ea5f5931ab60"},
- {file = "psutil-5.8.0-cp27-none-win32.whl", hash = "sha256:ea313bb02e5e25224e518e4352af4bf5e062755160f77e4b1767dd5ccb65f876"},
- {file = "psutil-5.8.0-cp27-none-win_amd64.whl", hash = "sha256:5da29e394bdedd9144c7331192e20c1f79283fb03b06e6abd3a8ae45ffecee65"},
- {file = "psutil-5.8.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:74fb2557d1430fff18ff0d72613c5ca30c45cdbfcddd6a5773e9fc1fe9364be8"},
- {file = "psutil-5.8.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:74f2d0be88db96ada78756cb3a3e1b107ce8ab79f65aa885f76d7664e56928f6"},
- {file = "psutil-5.8.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:99de3e8739258b3c3e8669cb9757c9a861b2a25ad0955f8e53ac662d66de61ac"},
- {file = "psutil-5.8.0-cp36-cp36m-win32.whl", hash = "sha256:36b3b6c9e2a34b7d7fbae330a85bf72c30b1c827a4366a07443fc4b6270449e2"},
- {file = "psutil-5.8.0-cp36-cp36m-win_amd64.whl", hash = "sha256:52de075468cd394ac98c66f9ca33b2f54ae1d9bff1ef6b67a212ee8f639ec06d"},
- {file = "psutil-5.8.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c6a5fd10ce6b6344e616cf01cc5b849fa8103fbb5ba507b6b2dee4c11e84c935"},
- {file = "psutil-5.8.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:61f05864b42fedc0771d6d8e49c35f07efd209ade09a5afe6a5059e7bb7bf83d"},
- {file = "psutil-5.8.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:0dd4465a039d343925cdc29023bb6960ccf4e74a65ad53e768403746a9207023"},
- {file = "psutil-5.8.0-cp37-cp37m-win32.whl", hash = "sha256:1bff0d07e76114ec24ee32e7f7f8d0c4b0514b3fae93e3d2aaafd65d22502394"},
- {file = "psutil-5.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:fcc01e900c1d7bee2a37e5d6e4f9194760a93597c97fee89c4ae51701de03563"},
- {file = "psutil-5.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6223d07a1ae93f86451d0198a0c361032c4c93ebd4bf6d25e2fb3edfad9571ef"},
- {file = "psutil-5.8.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:d225cd8319aa1d3c85bf195c4e07d17d3cd68636b8fc97e6cf198f782f99af28"},
- {file = "psutil-5.8.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:28ff7c95293ae74bf1ca1a79e8805fcde005c18a122ca983abf676ea3466362b"},
- {file = "psutil-5.8.0-cp38-cp38-win32.whl", hash = "sha256:ce8b867423291cb65cfc6d9c4955ee9bfc1e21fe03bb50e177f2b957f1c2469d"},
- {file = "psutil-5.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:90f31c34d25b1b3ed6c40cdd34ff122b1887a825297c017e4cbd6796dd8b672d"},
- {file = "psutil-5.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6323d5d845c2785efb20aded4726636546b26d3b577aded22492908f7c1bdda7"},
- {file = "psutil-5.8.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:245b5509968ac0bd179287d91210cd3f37add77dad385ef238b275bad35fa1c4"},
- {file = "psutil-5.8.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:90d4091c2d30ddd0a03e0b97e6a33a48628469b99585e2ad6bf21f17423b112b"},
- {file = "psutil-5.8.0-cp39-cp39-win32.whl", hash = "sha256:ea372bcc129394485824ae3e3ddabe67dc0b118d262c568b4d2602a7070afdb0"},
- {file = "psutil-5.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:f4634b033faf0d968bb9220dd1c793b897ab7f1189956e1aa9eae752527127d3"},
- {file = "psutil-5.8.0.tar.gz", hash = "sha256:0c9ccb99ab76025f2f0bbecf341d4656e9c1351db8cc8a03ccd62e318ab4b5c6"},
+ {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:55ce319452e3d139e25d6c3f85a1acf12d1607ddedea5e35fb47a552c051161b"},
+ {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:7336292a13a80eb93c21f36bde4328aa748a04b68c13d01dfddd67fc13fd0618"},
+ {file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:cb8d10461c1ceee0c25a64f2dd54872b70b89c26419e147a05a10b753ad36ec2"},
+ {file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:7641300de73e4909e5d148e90cc3142fb890079e1525a840cf0dfd39195239fd"},
+ {file = "psutil-5.9.0-cp27-none-win32.whl", hash = "sha256:ea42d747c5f71b5ccaa6897b216a7dadb9f52c72a0fe2b872ef7d3e1eacf3ba3"},
+ {file = "psutil-5.9.0-cp27-none-win_amd64.whl", hash = "sha256:ef216cc9feb60634bda2f341a9559ac594e2eeaadd0ba187a4c2eb5b5d40b91c"},
+ {file = "psutil-5.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90a58b9fcae2dbfe4ba852b57bd4a1dded6b990a33d6428c7614b7d48eccb492"},
+ {file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff0d41f8b3e9ebb6b6110057e40019a432e96aae2008951121ba4e56040b84f3"},
+ {file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:742c34fff804f34f62659279ed5c5b723bb0195e9d7bd9907591de9f8f6558e2"},
+ {file = "psutil-5.9.0-cp310-cp310-win32.whl", hash = "sha256:8293942e4ce0c5689821f65ce6522ce4786d02af57f13c0195b40e1edb1db61d"},
+ {file = "psutil-5.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:9b51917c1af3fa35a3f2dabd7ba96a2a4f19df3dec911da73875e1edaf22a40b"},
+ {file = "psutil-5.9.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e9805fed4f2a81de98ae5fe38b75a74c6e6ad2df8a5c479594c7629a1fe35f56"},
+ {file = "psutil-5.9.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c51f1af02334e4b516ec221ee26b8fdf105032418ca5a5ab9737e8c87dafe203"},
+ {file = "psutil-5.9.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32acf55cb9a8cbfb29167cd005951df81b567099295291bcfd1027365b36591d"},
+ {file = "psutil-5.9.0-cp36-cp36m-win32.whl", hash = "sha256:e5c783d0b1ad6ca8a5d3e7b680468c9c926b804be83a3a8e95141b05c39c9f64"},
+ {file = "psutil-5.9.0-cp36-cp36m-win_amd64.whl", hash = "sha256:d62a2796e08dd024b8179bd441cb714e0f81226c352c802fca0fd3f89eeacd94"},
+ {file = "psutil-5.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3d00a664e31921009a84367266b35ba0aac04a2a6cad09c550a89041034d19a0"},
+ {file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7779be4025c540d1d65a2de3f30caeacc49ae7a2152108adeaf42c7534a115ce"},
+ {file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:072664401ae6e7c1bfb878c65d7282d4b4391f1bc9a56d5e03b5a490403271b5"},
+ {file = "psutil-5.9.0-cp37-cp37m-win32.whl", hash = "sha256:df2c8bd48fb83a8408c8390b143c6a6fa10cb1a674ca664954de193fdcab36a9"},
+ {file = "psutil-5.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1d7b433519b9a38192dfda962dd8f44446668c009833e1429a52424624f408b4"},
+ {file = "psutil-5.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c3400cae15bdb449d518545cbd5b649117de54e3596ded84aacabfbb3297ead2"},
+ {file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2237f35c4bbae932ee98902a08050a27821f8f6dfa880a47195e5993af4702d"},
+ {file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1070a9b287846a21a5d572d6dddd369517510b68710fca56b0e9e02fd24bed9a"},
+ {file = "psutil-5.9.0-cp38-cp38-win32.whl", hash = "sha256:76cebf84aac1d6da5b63df11fe0d377b46b7b500d892284068bacccf12f20666"},
+ {file = "psutil-5.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:3151a58f0fbd8942ba94f7c31c7e6b310d2989f4da74fcbf28b934374e9bf841"},
+ {file = "psutil-5.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:539e429da49c5d27d5a58e3563886057f8fc3868a5547b4f1876d9c0f007bccf"},
+ {file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58c7d923dc209225600aec73aa2c4ae8ea33b1ab31bc11ef8a5933b027476f07"},
+ {file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3611e87eea393f779a35b192b46a164b1d01167c9d323dda9b1e527ea69d697d"},
+ {file = "psutil-5.9.0-cp39-cp39-win32.whl", hash = "sha256:4e2fb92e3aeae3ec3b7b66c528981fd327fb93fd906a77215200404444ec1845"},
+ {file = "psutil-5.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:7d190ee2eaef7831163f254dc58f6d2e2a22e27382b936aab51c835fc080c3d3"},
+ {file = "psutil-5.9.0.tar.gz", hash = "sha256:869842dbd66bb80c3217158e629d6fceaecc3a3166d3d1faee515b05dd26ca25"},
]
py = [
{file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"},
@@ -718,28 +840,20 @@ pycparser = [
{file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
]
pynacl = [
- {file = "PyNaCl-1.4.0-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:ea6841bc3a76fa4942ce00f3bda7d436fda21e2d91602b9e21b7ca9ecab8f3ff"},
- {file = "PyNaCl-1.4.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:d452a6746f0a7e11121e64625109bc4468fc3100452817001dbe018bb8b08514"},
- {file = "PyNaCl-1.4.0-cp27-cp27m-win32.whl", hash = "sha256:2fe0fc5a2480361dcaf4e6e7cea00e078fcda07ba45f811b167e3f99e8cff574"},
- {file = "PyNaCl-1.4.0-cp27-cp27m-win_amd64.whl", hash = "sha256:f8851ab9041756003119368c1e6cd0b9c631f46d686b3904b18c0139f4419f80"},
- {file = "PyNaCl-1.4.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:7757ae33dae81c300487591c68790dfb5145c7d03324000433d9a2c141f82af7"},
- {file = "PyNaCl-1.4.0-cp35-abi3-macosx_10_10_x86_64.whl", hash = "sha256:757250ddb3bff1eecd7e41e65f7f833a8405fede0194319f87899690624f2122"},
- {file = "PyNaCl-1.4.0-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:30f9b96db44e09b3304f9ea95079b1b7316b2b4f3744fe3aaecccd95d547063d"},
- {file = "PyNaCl-1.4.0-cp35-abi3-win32.whl", hash = "sha256:4e10569f8cbed81cb7526ae137049759d2a8d57726d52c1a000a3ce366779634"},
- {file = "PyNaCl-1.4.0-cp35-abi3-win_amd64.whl", hash = "sha256:c914f78da4953b33d4685e3cdc7ce63401247a21425c16a39760e282075ac4a6"},
- {file = "PyNaCl-1.4.0-cp35-cp35m-win32.whl", hash = "sha256:06cbb4d9b2c4bd3c8dc0d267416aaed79906e7b33f114ddbf0911969794b1cc4"},
- {file = "PyNaCl-1.4.0-cp35-cp35m-win_amd64.whl", hash = "sha256:511d269ee845037b95c9781aa702f90ccc36036f95d0f31373a6a79bd8242e25"},
- {file = "PyNaCl-1.4.0-cp36-cp36m-win32.whl", hash = "sha256:11335f09060af52c97137d4ac54285bcb7df0cef29014a1a4efe64ac065434c4"},
- {file = "PyNaCl-1.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:cd401ccbc2a249a47a3a1724c2918fcd04be1f7b54eb2a5a71ff915db0ac51c6"},
- {file = "PyNaCl-1.4.0-cp37-cp37m-win32.whl", hash = "sha256:8122ba5f2a2169ca5da936b2e5a511740ffb73979381b4229d9188f6dcb22f1f"},
- {file = "PyNaCl-1.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:537a7ccbea22905a0ab36ea58577b39d1fa9b1884869d173b5cf111f006f689f"},
- {file = "PyNaCl-1.4.0-cp38-cp38-win32.whl", hash = "sha256:9c4a7ea4fb81536c1b1f5cc44d54a296f96ae78c1ebd2311bd0b60be45a48d96"},
- {file = "PyNaCl-1.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:7c6092102219f59ff29788860ccb021e80fffd953920c4a8653889c029b2d420"},
- {file = "PyNaCl-1.4.0.tar.gz", hash = "sha256:54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93"},
+ {file = "PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba"},
]
pyparsing = [
- {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
- {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
+ {file = "pyparsing-3.0.6-py3-none-any.whl", hash = "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4"},
+ {file = "pyparsing-3.0.6.tar.gz", hash = "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"},
]
pysocks = [
{file = "PySocks-1.7.1-py27-none-any.whl", hash = "sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299"},
@@ -751,16 +865,16 @@ pytest = [
{file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"},
]
python-engineio = [
- {file = "python-engineio-4.3.0.tar.gz", hash = "sha256:fed35eeacfa21f53f1fc05ef0cadd65a50780364da3a2be7650eb92f928fdb11"},
- {file = "python_engineio-4.3.0-py3-none-any.whl", hash = "sha256:ad06a975f7e14cb3bb7137cbf70fd883804484d29acd58004d1db1e2a7fc0ad3"},
+ {file = "python-engineio-4.3.1.tar.gz", hash = "sha256:6e1d26977ffefe3b7da1b5df7a8750aedc7686da8201cd90daf36693db122489"},
+ {file = "python_engineio-4.3.1-py3-none-any.whl", hash = "sha256:85986067cb9f7695347954d4e03491f7d45152c5428c07109a9707e04e8942cb"},
]
python-socketio = [
- {file = "python-socketio-5.5.0.tar.gz", hash = "sha256:ce972ea1b82aa1811fa10d30cf0d5c251b9a1558c3d66829b6fe70854bcccf0b"},
- {file = "python_socketio-5.5.0-py3-none-any.whl", hash = "sha256:ca28a0ff0ca5dd05ec5ba4ee2572fe06b96d6f0bc7df384d8b50fbbc06986134"},
+ {file = "python-socketio-5.5.1.tar.gz", hash = "sha256:ac8e64d59a15d1c31a4fe8434f4ff16d0f640c824ba517dce7ca99e95f0cd36a"},
+ {file = "python_socketio-5.5.1-py3-none-any.whl", hash = "sha256:d0b98474064ac239a618649ca67f5288827705d36bd5f7615a473b37965baf61"},
]
requests = [
- {file = "requests-2.26.0-py2.py3-none-any.whl", hash = "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24"},
- {file = "requests-2.26.0.tar.gz", hash = "sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7"},
+ {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"},
+ {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"},
]
six = [
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
@@ -771,15 +885,16 @@ toml = [
{file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
]
typing-extensions = [
- {file = "typing_extensions-4.0.0-py3-none-any.whl", hash = "sha256:829704698b22e13ec9eaf959122315eabb370b0884400e9818334d8b677023d9"},
+ {file = "typing_extensions-4.0.1-py3-none-any.whl", hash = "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"},
+ {file = "typing_extensions-4.0.1.tar.gz", hash = "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e"},
]
unidecode = [
{file = "Unidecode-1.3.2-py3-none-any.whl", hash = "sha256:215fe33c9d1c889fa823ccb66df91b02524eb8cc8c9c80f9c5b8129754d27829"},
{file = "Unidecode-1.3.2.tar.gz", hash = "sha256:669898c1528912bcf07f9819dc60df18d057f7528271e31f8ec28cc88ef27504"},
]
urllib3 = [
- {file = "urllib3-1.26.7-py2.py3-none-any.whl", hash = "sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844"},
- {file = "urllib3-1.26.7.tar.gz", hash = "sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece"},
+ {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"},
+ {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"},
]
werkzeug = [
{file = "Werkzeug-1.0.1-py2.py3-none-any.whl", hash = "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43"},
@@ -789,3 +904,60 @@ zipp = [
{file = "zipp-3.6.0-py3-none-any.whl", hash = "sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc"},
{file = "zipp-3.6.0.tar.gz", hash = "sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832"},
]
+"zope.event" = [
+ {file = "zope.event-4.5.0-py2.py3-none-any.whl", hash = "sha256:2666401939cdaa5f4e0c08cf7f20c9b21423b95e88f4675b1443973bdb080c42"},
+ {file = "zope.event-4.5.0.tar.gz", hash = "sha256:5e76517f5b9b119acf37ca8819781db6c16ea433f7e2062c4afc2b6fbedb1330"},
+]
+"zope.interface" = [
+ {file = "zope.interface-5.4.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:7df1e1c05304f26faa49fa752a8c690126cf98b40b91d54e6e9cc3b7d6ffe8b7"},
+ {file = "zope.interface-5.4.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:2c98384b254b37ce50eddd55db8d381a5c53b4c10ee66e1e7fe749824f894021"},
+ {file = "zope.interface-5.4.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:08f9636e99a9d5410181ba0729e0408d3d8748026ea938f3b970a0249daa8192"},
+ {file = "zope.interface-5.4.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:0ea1d73b7c9dcbc5080bb8aaffb776f1c68e807767069b9ccdd06f27a161914a"},
+ {file = "zope.interface-5.4.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:273f158fabc5ea33cbc936da0ab3d4ba80ede5351babc4f577d768e057651531"},
+ {file = "zope.interface-5.4.0-cp27-cp27m-win32.whl", hash = "sha256:a1e6e96217a0f72e2b8629e271e1b280c6fa3fe6e59fa8f6701bec14e3354325"},
+ {file = "zope.interface-5.4.0-cp27-cp27m-win_amd64.whl", hash = "sha256:877473e675fdcc113c138813a5dd440da0769a2d81f4d86614e5d62b69497155"},
+ {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f7ee479e96f7ee350db1cf24afa5685a5899e2b34992fb99e1f7c1b0b758d263"},
+ {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:b0297b1e05fd128d26cc2460c810d42e205d16d76799526dfa8c8ccd50e74959"},
+ {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:af310ec8335016b5e52cae60cda4a4f2a60a788cbb949a4fbea13d441aa5a09e"},
+ {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:9a9845c4c6bb56e508651f005c4aeb0404e518c6f000d5a1123ab077ab769f5c"},
+ {file = "zope.interface-5.4.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0b465ae0962d49c68aa9733ba92a001b2a0933c317780435f00be7ecb959c702"},
+ {file = "zope.interface-5.4.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:5dd9ca406499444f4c8299f803d4a14edf7890ecc595c8b1c7115c2342cadc5f"},
+ {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:469e2407e0fe9880ac690a3666f03eb4c3c444411a5a5fddfdabc5d184a79f05"},
+ {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:52de7fc6c21b419078008f697fd4103dbc763288b1406b4562554bd47514c004"},
+ {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:3dd4952748521205697bc2802e4afac5ed4b02909bb799ba1fe239f77fd4e117"},
+ {file = "zope.interface-5.4.0-cp35-cp35m-win32.whl", hash = "sha256:dd93ea5c0c7f3e25335ab7d22a507b1dc43976e1345508f845efc573d3d779d8"},
+ {file = "zope.interface-5.4.0-cp35-cp35m-win_amd64.whl", hash = "sha256:3748fac0d0f6a304e674955ab1365d515993b3a0a865e16a11ec9d86fb307f63"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:66c0061c91b3b9cf542131148ef7ecbecb2690d48d1612ec386de9d36766058f"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:d0c1bc2fa9a7285719e5678584f6b92572a5b639d0e471bb8d4b650a1a910920"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2876246527c91e101184f63ccd1d716ec9c46519cc5f3d5375a3351c46467c46"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:334701327f37c47fa628fc8b8d28c7d7730ce7daaf4bda1efb741679c2b087fc"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:71aace0c42d53abe6fc7f726c5d3b60d90f3c5c055a447950ad6ea9cec2e37d9"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:5bb3489b4558e49ad2c5118137cfeaf59434f9737fa9c5deefc72d22c23822e2"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-win32.whl", hash = "sha256:1c0e316c9add0db48a5b703833881351444398b04111188069a26a61cfb4df78"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f0c02cbb9691b7c91d5009108f975f8ffeab5dff8f26d62e21c493060eff2a1"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:7d97a4306898b05404a0dcdc32d9709b7d8832c0c542b861d9a826301719794e"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:867a5ad16892bf20e6c4ea2aab1971f45645ff3102ad29bd84c86027fa99997b"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5f931a1c21dfa7a9c573ec1f50a31135ccce84e32507c54e1ea404894c5eb96f"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:194d0bcb1374ac3e1e023961610dc8f2c78a0f5f634d0c737691e215569e640d"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:8270252effc60b9642b423189a2fe90eb6b59e87cbee54549db3f5562ff8d1b8"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:15e7d1f7a6ee16572e21e3576d2012b2778cbacf75eb4b7400be37455f5ca8bf"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-win32.whl", hash = "sha256:8892f89999ffd992208754851e5a052f6b5db70a1e3f7d54b17c5211e37a98c7"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2e5a26f16503be6c826abca904e45f1a44ff275fdb7e9d1b75c10671c26f8b94"},
+ {file = "zope.interface-5.4.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:0f91b5b948686659a8e28b728ff5e74b1be6bf40cb04704453617e5f1e945ef3"},
+ {file = "zope.interface-5.4.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:4de4bc9b6d35c5af65b454d3e9bc98c50eb3960d5a3762c9438df57427134b8e"},
+ {file = "zope.interface-5.4.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:bf68f4b2b6683e52bec69273562df15af352e5ed25d1b6641e7efddc5951d1a7"},
+ {file = "zope.interface-5.4.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:63b82bb63de7c821428d513607e84c6d97d58afd1fe2eb645030bdc185440120"},
+ {file = "zope.interface-5.4.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:db1fa631737dab9fa0b37f3979d8d2631e348c3b4e8325d6873c2541d0ae5a48"},
+ {file = "zope.interface-5.4.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:f44e517131a98f7a76696a7b21b164bcb85291cee106a23beccce454e1f433a4"},
+ {file = "zope.interface-5.4.0-cp38-cp38-win32.whl", hash = "sha256:a9506a7e80bcf6eacfff7f804c0ad5350c8c95b9010e4356a4b36f5322f09abb"},
+ {file = "zope.interface-5.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:3c02411a3b62668200910090a0dff17c0b25aaa36145082a5a6adf08fa281e54"},
+ {file = "zope.interface-5.4.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:0cee5187b60ed26d56eb2960136288ce91bcf61e2a9405660d271d1f122a69a4"},
+ {file = "zope.interface-5.4.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:a8156e6a7f5e2a0ff0c5b21d6bcb45145efece1909efcbbbf48c56f8da68221d"},
+ {file = "zope.interface-5.4.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:205e40ccde0f37496904572035deea747390a8b7dc65146d30b96e2dd1359a83"},
+ {file = "zope.interface-5.4.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:3f24df7124c323fceb53ff6168da70dbfbae1442b4f3da439cd441681f54fe25"},
+ {file = "zope.interface-5.4.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:5208ebd5152e040640518a77827bdfcc73773a15a33d6644015b763b9c9febc1"},
+ {file = "zope.interface-5.4.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:17776ecd3a1fdd2b2cd5373e5ef8b307162f581c693575ec62e7c5399d80794c"},
+ {file = "zope.interface-5.4.0-cp39-cp39-win32.whl", hash = "sha256:d4d9d6c1a455d4babd320203b918ccc7fcbefe308615c521062bc2ba1aa4d26e"},
+ {file = "zope.interface-5.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:0cba8477e300d64a11a9789ed40ee8932b59f9ee05f85276dbb4b59acee5dd09"},
+ {file = "zope.interface-5.4.0.tar.gz", hash = "sha256:5dba5f530fec3f0988d83b78cc591b58c0b6eb8431a85edd1569a0539a8a5a0e"},
+]
diff --git a/cli/pyproject.toml b/cli/pyproject.toml
index 372d9aa4..422eb890 100644
--- a/cli/pyproject.toml
+++ b/cli/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "onionshare_cli"
-version = "2.4"
+version = "2.5"
description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service."
authors = ["Micah Lee <micah@micahflee.com>"]
license = "GPLv3+"
@@ -27,8 +27,9 @@ unidecode = "*"
urllib3 = "*"
eventlet = "*"
setuptools = "*"
-pynacl = "^1.4.0"
+pynacl = "*"
colorama = "*"
+gevent-websocket = "*"
cepa = "1.8.3"
[tool.poetry.dev-dependencies]
diff --git a/cli/setup.py b/cli/setup.py
index 407991d0..2db047e5 100644
--- a/cli/setup.py
+++ b/cli/setup.py
@@ -3,7 +3,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -18,9 +18,11 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+import os
import setuptools
-version = "2.4"
+with open(os.path.join("onionshare_cli", "resources", "version.txt")) as f:
+ version = f.read().strip()
setuptools.setup(
name="onionshare-cli",
diff --git a/cli/tests/test_cli_web.py b/cli/tests/test_cli_web.py
index e93e3e33..f6076ef9 100644
--- a/cli/tests/test_cli_web.py
+++ b/cli/tests/test_cli_web.py
@@ -228,7 +228,7 @@ class TestWeb:
data_dir_date = os.path.join(data_dir, os.listdir(data_dir)[0])
filenames = os.listdir(data_dir_date)
assert len(filenames) == 2
- time_str = filenames[0][0:6]
+ time_str = filenames[0][0:12]
assert time_str in filenames
assert f"{time_str}-message.txt" in filenames
data_dir_time = os.path.join(data_dir_date, time_str)
@@ -260,7 +260,7 @@ class TestWeb:
data_dir_date = os.path.join(data_dir, os.listdir(data_dir)[0])
filenames = os.listdir(data_dir_date)
assert len(filenames) == 1
- time_str = filenames[0][0:6]
+ time_str = filenames[0][0:12]
assert time_str in filenames
assert f"{time_str}-message.txt" not in filenames
data_dir_time = os.path.join(data_dir_date, time_str)
diff --git a/desktop/README.md b/desktop/README.md
index 9c55f343..1578f956 100644
--- a/desktop/README.md
+++ b/desktop/README.md
@@ -9,135 +9,83 @@ git clone https://github.com/onionshare/onionshare.git
cd onionshare/desktop
```
+Make sure you have Python 3 installed. If you're using Windows or macOS, install version 3.9.9 [from python.org](https://www.python.org/downloads/release/python-399/). For Windows, make sure to install the 32-bit (x86) version, and to check the box to add python to the path on the first page of the installer.
+
+Make sure you have [poetry installed](https://python-poetry.org/docs/#installation), and then install the dependencies:
+
+```sh
+poetry install
+```
+
### Install platform-specific dependencies
#### Linux
In Ubuntu 20.04 you need the `libxcb-xinerama0` package installed.
-Install python dependencies:
-
-```sh
-pip3 install --user poetry requests
-```
-
Download Tor Browser and extract the binaries:
```sh
-./scripts/get-tor-linux.py
+poetry run ./scripts/get-tor-linux.py
```
#### macOS
-Download and install Python 3.8.6 from https://www.python.org/downloads/release/python-386/. I downloaded `python-3.8.6-macosx10.9.pkg`. (You may need to also run `/Applications/Python\ 3.8/Install\ Certificates.command`.)
-
-Install python dependencies:
-
-```sh
-pip3 install --user poetry requests
-```
-
Download Tor Browser and extract the binaries:
```sh
-./scripts/get-tor-osx.py
+poetry run ./scripts/get-tor-osx.py
```
#### Windows
These instructions include adding folders to the path in Windows. To do this, go to Start and type "advanced system settings", and open "View advanced system settings" in the Control Panel. Click Environment Variables. Under "System variables" double-click on Path. From there you can add and remove folders that are available in the PATH.
-Download Python 3.8.6, 32-bit (x86) from https://www.python.org/downloads/release/python-386/. I downloaded `python-3.8.6.exe`. When installing it, make sure to check the "Add Python 3.8 to PATH" checkbox on the first page of the installer.
-
Download and install 7-Zip from https://7-zip.org/download.html. I downloaded `7z1900.exe`. Add `C:\Program Files (x86)\7-Zip` to your path.
-Install python dependencies:
-
-```
-pip install poetry requests
-```
-
Download Tor Browser and extract the binaries:
-```
-python scripts\get-tor-windows.py
+```sh
+poetry run python scripts\get-tor-windows.py
```
### Compile dependencies
-Install Go. The simplest way to make sure everything works is to install Go by following [these instructions](https://golang.org/doc/install). (In Windows, make sure to install the 32-bit version of Go, such as `go1.17.3.windows-386.msi`.)
+Install Go. The simplest way to make sure everything works is to install Go by following [these instructions](https://golang.org/doc/install). (In Windows, make sure to install the 32-bit version of Go, such as `go1.17.5.windows-386.msi`.)
Download and compile `meek-client`:
-```
-./scripts/build-meek-client.py
-```
-
-### Prepare the virtual environment
-
-OnionShare uses [Briefcase](https://briefcase.readthedocs.io/en/latest/).
-
-Install Briefcase dependencies by following [these instructions](https://docs.beeware.org/en/latest/tutorial/tutorial-0.html#install-dependencies).
-
-Now create and/or activate a virtual environment.
-
-* Linux and macOS
- ```
- python3 -m venv venv
- . venv/bin/activate
- ```
-* Windows
- ```
- python -m venv venv
- venv\Scripts\activate.bat
- ```
-
-While your virtual environment is active, install briefcase from pip.
-
-```
-pip install briefcase
-```
-
-In order to work with the desktop app, you'll need to build a wheel of the CLI package first, and copy it into the `desktop` folder. You'll need to re-run this script each time you change the CLI code.
-
```sh
-python scripts/rebuild-cli.py
+./scripts/build-meek-client.py
```
### Running OnionShare from the source code tree
-Inside the virtual environment, run OnionShare like this to install all of the dependencies:
+To run OnionShare from the source tree:
-```
-briefcase dev -d
+```sh
+poetry run onionshare
+poetry run onionshare --help
+poetry run onionshare -v
+poetry run onionshare -v --local-only
```
-Once you have the dependencies installed, you can run it using the `dev.sh` script, which lets you use command line arguments, such as to `--verbose` or `--local-only`:
+You can also run `onionshare-cli` from the source tree, and it will look for Tor binaries in `desktop/onionshare/resources/tor`.
-```
-./scripts/dev.sh --help
-./scripts/dev.sh -v
-./scripts/dev.sh -v --local-only
+```sh
+poetry run onionshare-cli --help
```
-Windows uses `scripts\dev.bat` instead.
-
## Running tests
-Install these packages inside your virtual environment:
-
-```sh
-pip install pytest pytest-briefcase pytest-faulthandler pytest-qt
-```
-
-Then run the tests:
+Run the tests:
```sh
-./tests/run.sh
+poetry run ./tests/run.sh
```
If you want to run tests while hiding the GUI, you must have the `xvfb` package installed, and then:
```sh
-xvfb-run ./tests/run.sh
+xvfb-run poetry run ./tests/run.sh
```
diff --git a/desktop/src/onionshare/__init__.py b/desktop/onionshare/__init__.py
index 40a91913..fbe75a27 100644
--- a/desktop/src/onionshare/__init__.py
+++ b/desktop/onionshare/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/__main__.py b/desktop/onionshare/__main__.py
index 3a7f3554..b526477c 100644
--- a/desktop/src/onionshare/__main__.py
+++ b/desktop/onionshare/__main__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/connection_tab.py b/desktop/onionshare/connection_tab.py
index e67ca483..e67ca483 100644
--- a/desktop/src/onionshare/connection_tab.py
+++ b/desktop/onionshare/connection_tab.py
diff --git a/desktop/src/onionshare/gui_common.py b/desktop/onionshare/gui_common.py
index f34d4ac4..4cf0f010 100644
--- a/desktop/src/onionshare/gui_common.py
+++ b/desktop/onionshare/gui_common.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/main_window.py b/desktop/onionshare/main_window.py
index 8e6605ed..9c6f455f 100644
--- a/desktop/src/onionshare/main_window.py
+++ b/desktop/onionshare/main_window.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/moat_dialog.py b/desktop/onionshare/moat_dialog.py
index 84a52390..fd04ee9c 100644
--- a/desktop/src/onionshare/moat_dialog.py
+++ b/desktop/onionshare/moat_dialog.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/resources/__init__.py b/desktop/onionshare/resources/__init__.py
index e69de29b..e69de29b 100644
--- a/desktop/src/onionshare/resources/__init__.py
+++ b/desktop/onionshare/resources/__init__.py
diff --git a/desktop/src/onionshare/resources/countries/ar.json b/desktop/onionshare/resources/countries/ar.json
index d620cfc3..d620cfc3 100644
--- a/desktop/src/onionshare/resources/countries/ar.json
+++ b/desktop/onionshare/resources/countries/ar.json
diff --git a/desktop/src/onionshare/resources/countries/bn.json b/desktop/onionshare/resources/countries/bn.json
index c9aa81f0..c9aa81f0 100644
--- a/desktop/src/onionshare/resources/countries/bn.json
+++ b/desktop/onionshare/resources/countries/bn.json
diff --git a/desktop/src/onionshare/resources/countries/de.json b/desktop/onionshare/resources/countries/de.json
index 33f21aed..33f21aed 100644
--- a/desktop/src/onionshare/resources/countries/de.json
+++ b/desktop/onionshare/resources/countries/de.json
diff --git a/desktop/src/onionshare/resources/countries/en.json b/desktop/onionshare/resources/countries/en.json
index e2a664e8..e2a664e8 100644
--- a/desktop/src/onionshare/resources/countries/en.json
+++ b/desktop/onionshare/resources/countries/en.json
diff --git a/desktop/src/onionshare/resources/countries/es.json b/desktop/onionshare/resources/countries/es.json
index 87b466dd..87b466dd 100644
--- a/desktop/src/onionshare/resources/countries/es.json
+++ b/desktop/onionshare/resources/countries/es.json
diff --git a/desktop/src/onionshare/resources/countries/fi.json b/desktop/onionshare/resources/countries/fi.json
index 4f921984..4f921984 100644
--- a/desktop/src/onionshare/resources/countries/fi.json
+++ b/desktop/onionshare/resources/countries/fi.json
diff --git a/desktop/src/onionshare/resources/countries/gl.json b/desktop/onionshare/resources/countries/gl.json
index 44652965..44652965 100644
--- a/desktop/src/onionshare/resources/countries/gl.json
+++ b/desktop/onionshare/resources/countries/gl.json
diff --git a/desktop/src/onionshare/resources/countries/is.json b/desktop/onionshare/resources/countries/is.json
index 5ba082a7..5ba082a7 100644
--- a/desktop/src/onionshare/resources/countries/is.json
+++ b/desktop/onionshare/resources/countries/is.json
diff --git a/desktop/src/onionshare/resources/countries/lt.json b/desktop/onionshare/resources/countries/lt.json
index 51afdefa..51afdefa 100644
--- a/desktop/src/onionshare/resources/countries/lt.json
+++ b/desktop/onionshare/resources/countries/lt.json
diff --git a/desktop/src/onionshare/resources/countries/nb_NO.json b/desktop/onionshare/resources/countries/nb_NO.json
index 2134d702..2134d702 100644
--- a/desktop/src/onionshare/resources/countries/nb_NO.json
+++ b/desktop/onionshare/resources/countries/nb_NO.json
diff --git a/desktop/src/onionshare/resources/countries/pl.json b/desktop/onionshare/resources/countries/pl.json
index 8d102e77..8d102e77 100644
--- a/desktop/src/onionshare/resources/countries/pl.json
+++ b/desktop/onionshare/resources/countries/pl.json
diff --git a/desktop/src/onionshare/resources/countries/pt_BR.json b/desktop/onionshare/resources/countries/pt_BR.json
index 3745df4d..3745df4d 100644
--- a/desktop/src/onionshare/resources/countries/pt_BR.json
+++ b/desktop/onionshare/resources/countries/pt_BR.json
diff --git a/desktop/src/onionshare/resources/countries/ru.json b/desktop/onionshare/resources/countries/ru.json
index ffbc3ef9..ffbc3ef9 100644
--- a/desktop/src/onionshare/resources/countries/ru.json
+++ b/desktop/onionshare/resources/countries/ru.json
diff --git a/desktop/src/onionshare/resources/countries/sv.json b/desktop/onionshare/resources/countries/sv.json
index 77b65a55..77b65a55 100644
--- a/desktop/src/onionshare/resources/countries/sv.json
+++ b/desktop/onionshare/resources/countries/sv.json
diff --git a/desktop/src/onionshare/resources/countries/tr.json b/desktop/onionshare/resources/countries/tr.json
index c6da9370..c6da9370 100644
--- a/desktop/src/onionshare/resources/countries/tr.json
+++ b/desktop/onionshare/resources/countries/tr.json
diff --git a/desktop/src/onionshare/resources/countries/uk.json b/desktop/onionshare/resources/countries/uk.json
index 009893c4..009893c4 100644
--- a/desktop/src/onionshare/resources/countries/uk.json
+++ b/desktop/onionshare/resources/countries/uk.json
diff --git a/desktop/src/onionshare/resources/countries/zh_Hans.json b/desktop/onionshare/resources/countries/zh_Hans.json
index 88aa0997..88aa0997 100644
--- a/desktop/src/onionshare/resources/countries/zh_Hans.json
+++ b/desktop/onionshare/resources/countries/zh_Hans.json
diff --git a/desktop/src/onionshare/resources/images/close_tab.png b/desktop/onionshare/resources/images/close_tab.png
index a7984a6d..a7984a6d 100644
--- a/desktop/src/onionshare/resources/images/close_tab.png
+++ b/desktop/onionshare/resources/images/close_tab.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ad-dark.png b/desktop/onionshare/resources/images/countries/ad-dark.png
index b3cec523..b3cec523 100644
--- a/desktop/src/onionshare/resources/images/countries/ad-dark.png
+++ b/desktop/onionshare/resources/images/countries/ad-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ad-light.png b/desktop/onionshare/resources/images/countries/ad-light.png
index 16f033d9..16f033d9 100644
--- a/desktop/src/onionshare/resources/images/countries/ad-light.png
+++ b/desktop/onionshare/resources/images/countries/ad-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ae-dark.png b/desktop/onionshare/resources/images/countries/ae-dark.png
index 5dac0a10..5dac0a10 100644
--- a/desktop/src/onionshare/resources/images/countries/ae-dark.png
+++ b/desktop/onionshare/resources/images/countries/ae-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ae-light.png b/desktop/onionshare/resources/images/countries/ae-light.png
index 58b00d06..58b00d06 100644
--- a/desktop/src/onionshare/resources/images/countries/ae-light.png
+++ b/desktop/onionshare/resources/images/countries/ae-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/af-dark.png b/desktop/onionshare/resources/images/countries/af-dark.png
index 2898cae6..2898cae6 100644
--- a/desktop/src/onionshare/resources/images/countries/af-dark.png
+++ b/desktop/onionshare/resources/images/countries/af-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/af-light.png b/desktop/onionshare/resources/images/countries/af-light.png
index 2571e368..2571e368 100644
--- a/desktop/src/onionshare/resources/images/countries/af-light.png
+++ b/desktop/onionshare/resources/images/countries/af-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ag-dark.png b/desktop/onionshare/resources/images/countries/ag-dark.png
index d81a4564..d81a4564 100644
--- a/desktop/src/onionshare/resources/images/countries/ag-dark.png
+++ b/desktop/onionshare/resources/images/countries/ag-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ag-light.png b/desktop/onionshare/resources/images/countries/ag-light.png
index 0e97185d..0e97185d 100644
--- a/desktop/src/onionshare/resources/images/countries/ag-light.png
+++ b/desktop/onionshare/resources/images/countries/ag-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ai-dark.png b/desktop/onionshare/resources/images/countries/ai-dark.png
index c9c33660..c9c33660 100644
--- a/desktop/src/onionshare/resources/images/countries/ai-dark.png
+++ b/desktop/onionshare/resources/images/countries/ai-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ai-light.png b/desktop/onionshare/resources/images/countries/ai-light.png
index 0cdd6579..0cdd6579 100644
--- a/desktop/src/onionshare/resources/images/countries/ai-light.png
+++ b/desktop/onionshare/resources/images/countries/ai-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/al-dark.png b/desktop/onionshare/resources/images/countries/al-dark.png
index ed92e454..ed92e454 100644
--- a/desktop/src/onionshare/resources/images/countries/al-dark.png
+++ b/desktop/onionshare/resources/images/countries/al-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/al-light.png b/desktop/onionshare/resources/images/countries/al-light.png
index 83a0940b..83a0940b 100644
--- a/desktop/src/onionshare/resources/images/countries/al-light.png
+++ b/desktop/onionshare/resources/images/countries/al-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/am-dark.png b/desktop/onionshare/resources/images/countries/am-dark.png
index 25a6eeb1..25a6eeb1 100644
--- a/desktop/src/onionshare/resources/images/countries/am-dark.png
+++ b/desktop/onionshare/resources/images/countries/am-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/am-light.png b/desktop/onionshare/resources/images/countries/am-light.png
index 7ff121ed..7ff121ed 100644
--- a/desktop/src/onionshare/resources/images/countries/am-light.png
+++ b/desktop/onionshare/resources/images/countries/am-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ao-dark.png b/desktop/onionshare/resources/images/countries/ao-dark.png
index db71ab18..db71ab18 100644
--- a/desktop/src/onionshare/resources/images/countries/ao-dark.png
+++ b/desktop/onionshare/resources/images/countries/ao-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ao-light.png b/desktop/onionshare/resources/images/countries/ao-light.png
index 5ba12401..5ba12401 100644
--- a/desktop/src/onionshare/resources/images/countries/ao-light.png
+++ b/desktop/onionshare/resources/images/countries/ao-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/aq-dark.png b/desktop/onionshare/resources/images/countries/aq-dark.png
index 96ad4500..96ad4500 100644
--- a/desktop/src/onionshare/resources/images/countries/aq-dark.png
+++ b/desktop/onionshare/resources/images/countries/aq-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/aq-light.png b/desktop/onionshare/resources/images/countries/aq-light.png
index 69936a5c..69936a5c 100644
--- a/desktop/src/onionshare/resources/images/countries/aq-light.png
+++ b/desktop/onionshare/resources/images/countries/aq-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ar-dark.png b/desktop/onionshare/resources/images/countries/ar-dark.png
index 9e1ac2a6..9e1ac2a6 100644
--- a/desktop/src/onionshare/resources/images/countries/ar-dark.png
+++ b/desktop/onionshare/resources/images/countries/ar-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ar-light.png b/desktop/onionshare/resources/images/countries/ar-light.png
index 909fd6ba..909fd6ba 100644
--- a/desktop/src/onionshare/resources/images/countries/ar-light.png
+++ b/desktop/onionshare/resources/images/countries/ar-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/as-dark.png b/desktop/onionshare/resources/images/countries/as-dark.png
index 02037fbd..02037fbd 100644
--- a/desktop/src/onionshare/resources/images/countries/as-dark.png
+++ b/desktop/onionshare/resources/images/countries/as-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/as-light.png b/desktop/onionshare/resources/images/countries/as-light.png
index 06db02dd..06db02dd 100644
--- a/desktop/src/onionshare/resources/images/countries/as-light.png
+++ b/desktop/onionshare/resources/images/countries/as-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/at-dark.png b/desktop/onionshare/resources/images/countries/at-dark.png
index e8e36a76..e8e36a76 100644
--- a/desktop/src/onionshare/resources/images/countries/at-dark.png
+++ b/desktop/onionshare/resources/images/countries/at-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/at-light.png b/desktop/onionshare/resources/images/countries/at-light.png
index a1f6e295..a1f6e295 100644
--- a/desktop/src/onionshare/resources/images/countries/at-light.png
+++ b/desktop/onionshare/resources/images/countries/at-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/au-dark.png b/desktop/onionshare/resources/images/countries/au-dark.png
index 9a15edcd..9a15edcd 100644
--- a/desktop/src/onionshare/resources/images/countries/au-dark.png
+++ b/desktop/onionshare/resources/images/countries/au-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/au-light.png b/desktop/onionshare/resources/images/countries/au-light.png
index f1a0a2ff..f1a0a2ff 100644
--- a/desktop/src/onionshare/resources/images/countries/au-light.png
+++ b/desktop/onionshare/resources/images/countries/au-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/aw-dark.png b/desktop/onionshare/resources/images/countries/aw-dark.png
index bc9594ff..bc9594ff 100644
--- a/desktop/src/onionshare/resources/images/countries/aw-dark.png
+++ b/desktop/onionshare/resources/images/countries/aw-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/aw-light.png b/desktop/onionshare/resources/images/countries/aw-light.png
index a576a27d..a576a27d 100644
--- a/desktop/src/onionshare/resources/images/countries/aw-light.png
+++ b/desktop/onionshare/resources/images/countries/aw-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ax-dark.png b/desktop/onionshare/resources/images/countries/ax-dark.png
index 78eff630..78eff630 100644
--- a/desktop/src/onionshare/resources/images/countries/ax-dark.png
+++ b/desktop/onionshare/resources/images/countries/ax-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ax-light.png b/desktop/onionshare/resources/images/countries/ax-light.png
index fb017daf..fb017daf 100644
--- a/desktop/src/onionshare/resources/images/countries/ax-light.png
+++ b/desktop/onionshare/resources/images/countries/ax-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/az-dark.png b/desktop/onionshare/resources/images/countries/az-dark.png
index 9575d871..9575d871 100644
--- a/desktop/src/onionshare/resources/images/countries/az-dark.png
+++ b/desktop/onionshare/resources/images/countries/az-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/az-light.png b/desktop/onionshare/resources/images/countries/az-light.png
index 4e20c60a..4e20c60a 100644
--- a/desktop/src/onionshare/resources/images/countries/az-light.png
+++ b/desktop/onionshare/resources/images/countries/az-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ba-dark.png b/desktop/onionshare/resources/images/countries/ba-dark.png
index 9c1368fd..9c1368fd 100644
--- a/desktop/src/onionshare/resources/images/countries/ba-dark.png
+++ b/desktop/onionshare/resources/images/countries/ba-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ba-light.png b/desktop/onionshare/resources/images/countries/ba-light.png
index f3ddfc3e..f3ddfc3e 100644
--- a/desktop/src/onionshare/resources/images/countries/ba-light.png
+++ b/desktop/onionshare/resources/images/countries/ba-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bb-dark.png b/desktop/onionshare/resources/images/countries/bb-dark.png
index 4f89a82f..4f89a82f 100644
--- a/desktop/src/onionshare/resources/images/countries/bb-dark.png
+++ b/desktop/onionshare/resources/images/countries/bb-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bb-light.png b/desktop/onionshare/resources/images/countries/bb-light.png
index abbac6d7..abbac6d7 100644
--- a/desktop/src/onionshare/resources/images/countries/bb-light.png
+++ b/desktop/onionshare/resources/images/countries/bb-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bd-dark.png b/desktop/onionshare/resources/images/countries/bd-dark.png
index 63628d33..63628d33 100644
--- a/desktop/src/onionshare/resources/images/countries/bd-dark.png
+++ b/desktop/onionshare/resources/images/countries/bd-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bd-light.png b/desktop/onionshare/resources/images/countries/bd-light.png
index 6dc3cba7..6dc3cba7 100644
--- a/desktop/src/onionshare/resources/images/countries/bd-light.png
+++ b/desktop/onionshare/resources/images/countries/bd-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/be-dark.png b/desktop/onionshare/resources/images/countries/be-dark.png
index da450858..da450858 100644
--- a/desktop/src/onionshare/resources/images/countries/be-dark.png
+++ b/desktop/onionshare/resources/images/countries/be-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/be-light.png b/desktop/onionshare/resources/images/countries/be-light.png
index abff465a..abff465a 100644
--- a/desktop/src/onionshare/resources/images/countries/be-light.png
+++ b/desktop/onionshare/resources/images/countries/be-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bf-dark.png b/desktop/onionshare/resources/images/countries/bf-dark.png
index 11d1a4ae..11d1a4ae 100644
--- a/desktop/src/onionshare/resources/images/countries/bf-dark.png
+++ b/desktop/onionshare/resources/images/countries/bf-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bf-light.png b/desktop/onionshare/resources/images/countries/bf-light.png
index e7cd70e6..e7cd70e6 100644
--- a/desktop/src/onionshare/resources/images/countries/bf-light.png
+++ b/desktop/onionshare/resources/images/countries/bf-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bg-dark.png b/desktop/onionshare/resources/images/countries/bg-dark.png
index c995bc28..c995bc28 100644
--- a/desktop/src/onionshare/resources/images/countries/bg-dark.png
+++ b/desktop/onionshare/resources/images/countries/bg-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bg-light.png b/desktop/onionshare/resources/images/countries/bg-light.png
index 6ea5d55d..6ea5d55d 100644
--- a/desktop/src/onionshare/resources/images/countries/bg-light.png
+++ b/desktop/onionshare/resources/images/countries/bg-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bh-dark.png b/desktop/onionshare/resources/images/countries/bh-dark.png
index 6ac93698..6ac93698 100644
--- a/desktop/src/onionshare/resources/images/countries/bh-dark.png
+++ b/desktop/onionshare/resources/images/countries/bh-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bh-light.png b/desktop/onionshare/resources/images/countries/bh-light.png
index 440b71f6..440b71f6 100644
--- a/desktop/src/onionshare/resources/images/countries/bh-light.png
+++ b/desktop/onionshare/resources/images/countries/bh-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bi-dark.png b/desktop/onionshare/resources/images/countries/bi-dark.png
index 7fcf0b11..7fcf0b11 100644
--- a/desktop/src/onionshare/resources/images/countries/bi-dark.png
+++ b/desktop/onionshare/resources/images/countries/bi-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bi-light.png b/desktop/onionshare/resources/images/countries/bi-light.png
index da2926eb..da2926eb 100644
--- a/desktop/src/onionshare/resources/images/countries/bi-light.png
+++ b/desktop/onionshare/resources/images/countries/bi-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bj-dark.png b/desktop/onionshare/resources/images/countries/bj-dark.png
index 1ca6a5e1..1ca6a5e1 100644
--- a/desktop/src/onionshare/resources/images/countries/bj-dark.png
+++ b/desktop/onionshare/resources/images/countries/bj-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bj-light.png b/desktop/onionshare/resources/images/countries/bj-light.png
index 97163b28..97163b28 100644
--- a/desktop/src/onionshare/resources/images/countries/bj-light.png
+++ b/desktop/onionshare/resources/images/countries/bj-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bl-dark.png b/desktop/onionshare/resources/images/countries/bl-dark.png
index 7aa591bc..7aa591bc 100644
--- a/desktop/src/onionshare/resources/images/countries/bl-dark.png
+++ b/desktop/onionshare/resources/images/countries/bl-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bl-light.png b/desktop/onionshare/resources/images/countries/bl-light.png
index d5ab4522..d5ab4522 100644
--- a/desktop/src/onionshare/resources/images/countries/bl-light.png
+++ b/desktop/onionshare/resources/images/countries/bl-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bm-dark.png b/desktop/onionshare/resources/images/countries/bm-dark.png
index 2bc516e3..2bc516e3 100644
--- a/desktop/src/onionshare/resources/images/countries/bm-dark.png
+++ b/desktop/onionshare/resources/images/countries/bm-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bm-light.png b/desktop/onionshare/resources/images/countries/bm-light.png
index 2d921656..2d921656 100644
--- a/desktop/src/onionshare/resources/images/countries/bm-light.png
+++ b/desktop/onionshare/resources/images/countries/bm-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bn-dark.png b/desktop/onionshare/resources/images/countries/bn-dark.png
index c3b155b2..c3b155b2 100644
--- a/desktop/src/onionshare/resources/images/countries/bn-dark.png
+++ b/desktop/onionshare/resources/images/countries/bn-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bn-light.png b/desktop/onionshare/resources/images/countries/bn-light.png
index 9cb54f02..9cb54f02 100644
--- a/desktop/src/onionshare/resources/images/countries/bn-light.png
+++ b/desktop/onionshare/resources/images/countries/bn-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bo-dark.png b/desktop/onionshare/resources/images/countries/bo-dark.png
index fc6b9ad5..fc6b9ad5 100644
--- a/desktop/src/onionshare/resources/images/countries/bo-dark.png
+++ b/desktop/onionshare/resources/images/countries/bo-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bo-light.png b/desktop/onionshare/resources/images/countries/bo-light.png
index 76c69cc9..76c69cc9 100644
--- a/desktop/src/onionshare/resources/images/countries/bo-light.png
+++ b/desktop/onionshare/resources/images/countries/bo-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bq-dark.png b/desktop/onionshare/resources/images/countries/bq-dark.png
index 8fbcc7d3..8fbcc7d3 100644
--- a/desktop/src/onionshare/resources/images/countries/bq-dark.png
+++ b/desktop/onionshare/resources/images/countries/bq-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bq-light.png b/desktop/onionshare/resources/images/countries/bq-light.png
index 4abc2fa7..4abc2fa7 100644
--- a/desktop/src/onionshare/resources/images/countries/bq-light.png
+++ b/desktop/onionshare/resources/images/countries/bq-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/br-dark.png b/desktop/onionshare/resources/images/countries/br-dark.png
index ce3131ed..ce3131ed 100644
--- a/desktop/src/onionshare/resources/images/countries/br-dark.png
+++ b/desktop/onionshare/resources/images/countries/br-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/br-light.png b/desktop/onionshare/resources/images/countries/br-light.png
index a7e7f176..a7e7f176 100644
--- a/desktop/src/onionshare/resources/images/countries/br-light.png
+++ b/desktop/onionshare/resources/images/countries/br-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bs-dark.png b/desktop/onionshare/resources/images/countries/bs-dark.png
index edb9bcaa..edb9bcaa 100644
--- a/desktop/src/onionshare/resources/images/countries/bs-dark.png
+++ b/desktop/onionshare/resources/images/countries/bs-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bs-light.png b/desktop/onionshare/resources/images/countries/bs-light.png
index 5a4acd03..5a4acd03 100644
--- a/desktop/src/onionshare/resources/images/countries/bs-light.png
+++ b/desktop/onionshare/resources/images/countries/bs-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bt-dark.png b/desktop/onionshare/resources/images/countries/bt-dark.png
index c3ad28e2..c3ad28e2 100644
--- a/desktop/src/onionshare/resources/images/countries/bt-dark.png
+++ b/desktop/onionshare/resources/images/countries/bt-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bt-light.png b/desktop/onionshare/resources/images/countries/bt-light.png
index 466d423e..466d423e 100644
--- a/desktop/src/onionshare/resources/images/countries/bt-light.png
+++ b/desktop/onionshare/resources/images/countries/bt-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bv-dark.png b/desktop/onionshare/resources/images/countries/bv-dark.png
index 0a2ce551..0a2ce551 100644
--- a/desktop/src/onionshare/resources/images/countries/bv-dark.png
+++ b/desktop/onionshare/resources/images/countries/bv-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bv-light.png b/desktop/onionshare/resources/images/countries/bv-light.png
index 9187693b..9187693b 100644
--- a/desktop/src/onionshare/resources/images/countries/bv-light.png
+++ b/desktop/onionshare/resources/images/countries/bv-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bw-dark.png b/desktop/onionshare/resources/images/countries/bw-dark.png
index 1e2b96d3..1e2b96d3 100644
--- a/desktop/src/onionshare/resources/images/countries/bw-dark.png
+++ b/desktop/onionshare/resources/images/countries/bw-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bw-light.png b/desktop/onionshare/resources/images/countries/bw-light.png
index a60fca0b..a60fca0b 100644
--- a/desktop/src/onionshare/resources/images/countries/bw-light.png
+++ b/desktop/onionshare/resources/images/countries/bw-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/by-dark.png b/desktop/onionshare/resources/images/countries/by-dark.png
index bf256965..bf256965 100644
--- a/desktop/src/onionshare/resources/images/countries/by-dark.png
+++ b/desktop/onionshare/resources/images/countries/by-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/by-light.png b/desktop/onionshare/resources/images/countries/by-light.png
index f019b57d..f019b57d 100644
--- a/desktop/src/onionshare/resources/images/countries/by-light.png
+++ b/desktop/onionshare/resources/images/countries/by-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bz-dark.png b/desktop/onionshare/resources/images/countries/bz-dark.png
index 85bbd042..85bbd042 100644
--- a/desktop/src/onionshare/resources/images/countries/bz-dark.png
+++ b/desktop/onionshare/resources/images/countries/bz-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/bz-light.png b/desktop/onionshare/resources/images/countries/bz-light.png
index 84f0f26b..84f0f26b 100644
--- a/desktop/src/onionshare/resources/images/countries/bz-light.png
+++ b/desktop/onionshare/resources/images/countries/bz-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ca-dark.png b/desktop/onionshare/resources/images/countries/ca-dark.png
index 3089e1de..3089e1de 100644
--- a/desktop/src/onionshare/resources/images/countries/ca-dark.png
+++ b/desktop/onionshare/resources/images/countries/ca-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ca-light.png b/desktop/onionshare/resources/images/countries/ca-light.png
index c8bfbc64..c8bfbc64 100644
--- a/desktop/src/onionshare/resources/images/countries/ca-light.png
+++ b/desktop/onionshare/resources/images/countries/ca-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cc-dark.png b/desktop/onionshare/resources/images/countries/cc-dark.png
index 5a5976e4..5a5976e4 100644
--- a/desktop/src/onionshare/resources/images/countries/cc-dark.png
+++ b/desktop/onionshare/resources/images/countries/cc-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cc-light.png b/desktop/onionshare/resources/images/countries/cc-light.png
index 66f6d1ca..66f6d1ca 100644
--- a/desktop/src/onionshare/resources/images/countries/cc-light.png
+++ b/desktop/onionshare/resources/images/countries/cc-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cd-dark.png b/desktop/onionshare/resources/images/countries/cd-dark.png
index 61553a72..61553a72 100644
--- a/desktop/src/onionshare/resources/images/countries/cd-dark.png
+++ b/desktop/onionshare/resources/images/countries/cd-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cd-light.png b/desktop/onionshare/resources/images/countries/cd-light.png
index 6f2d2a7a..6f2d2a7a 100644
--- a/desktop/src/onionshare/resources/images/countries/cd-light.png
+++ b/desktop/onionshare/resources/images/countries/cd-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cf-dark.png b/desktop/onionshare/resources/images/countries/cf-dark.png
index 0e183dc0..0e183dc0 100644
--- a/desktop/src/onionshare/resources/images/countries/cf-dark.png
+++ b/desktop/onionshare/resources/images/countries/cf-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cf-light.png b/desktop/onionshare/resources/images/countries/cf-light.png
index 33c22f4e..33c22f4e 100644
--- a/desktop/src/onionshare/resources/images/countries/cf-light.png
+++ b/desktop/onionshare/resources/images/countries/cf-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cg-dark.png b/desktop/onionshare/resources/images/countries/cg-dark.png
index 5de265f0..5de265f0 100644
--- a/desktop/src/onionshare/resources/images/countries/cg-dark.png
+++ b/desktop/onionshare/resources/images/countries/cg-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cg-light.png b/desktop/onionshare/resources/images/countries/cg-light.png
index 027955b5..027955b5 100644
--- a/desktop/src/onionshare/resources/images/countries/cg-light.png
+++ b/desktop/onionshare/resources/images/countries/cg-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ch-dark.png b/desktop/onionshare/resources/images/countries/ch-dark.png
index 6fb4656e..6fb4656e 100644
--- a/desktop/src/onionshare/resources/images/countries/ch-dark.png
+++ b/desktop/onionshare/resources/images/countries/ch-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ch-light.png b/desktop/onionshare/resources/images/countries/ch-light.png
index 485f4285..485f4285 100644
--- a/desktop/src/onionshare/resources/images/countries/ch-light.png
+++ b/desktop/onionshare/resources/images/countries/ch-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ci-dark.png b/desktop/onionshare/resources/images/countries/ci-dark.png
index f19cd35c..f19cd35c 100644
--- a/desktop/src/onionshare/resources/images/countries/ci-dark.png
+++ b/desktop/onionshare/resources/images/countries/ci-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ci-light.png b/desktop/onionshare/resources/images/countries/ci-light.png
index 0c60f50d..0c60f50d 100644
--- a/desktop/src/onionshare/resources/images/countries/ci-light.png
+++ b/desktop/onionshare/resources/images/countries/ci-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ck-dark.png b/desktop/onionshare/resources/images/countries/ck-dark.png
index b2ec6687..b2ec6687 100644
--- a/desktop/src/onionshare/resources/images/countries/ck-dark.png
+++ b/desktop/onionshare/resources/images/countries/ck-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ck-light.png b/desktop/onionshare/resources/images/countries/ck-light.png
index d6bed048..d6bed048 100644
--- a/desktop/src/onionshare/resources/images/countries/ck-light.png
+++ b/desktop/onionshare/resources/images/countries/ck-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cl-dark.png b/desktop/onionshare/resources/images/countries/cl-dark.png
index 455955cb..455955cb 100644
--- a/desktop/src/onionshare/resources/images/countries/cl-dark.png
+++ b/desktop/onionshare/resources/images/countries/cl-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cl-light.png b/desktop/onionshare/resources/images/countries/cl-light.png
index 36f0af59..36f0af59 100644
--- a/desktop/src/onionshare/resources/images/countries/cl-light.png
+++ b/desktop/onionshare/resources/images/countries/cl-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cm-dark.png b/desktop/onionshare/resources/images/countries/cm-dark.png
index 97bc7087..97bc7087 100644
--- a/desktop/src/onionshare/resources/images/countries/cm-dark.png
+++ b/desktop/onionshare/resources/images/countries/cm-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cm-light.png b/desktop/onionshare/resources/images/countries/cm-light.png
index c612b21e..c612b21e 100644
--- a/desktop/src/onionshare/resources/images/countries/cm-light.png
+++ b/desktop/onionshare/resources/images/countries/cm-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cn-dark.png b/desktop/onionshare/resources/images/countries/cn-dark.png
index 9e541a42..9e541a42 100644
--- a/desktop/src/onionshare/resources/images/countries/cn-dark.png
+++ b/desktop/onionshare/resources/images/countries/cn-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cn-light.png b/desktop/onionshare/resources/images/countries/cn-light.png
index bb04558e..bb04558e 100644
--- a/desktop/src/onionshare/resources/images/countries/cn-light.png
+++ b/desktop/onionshare/resources/images/countries/cn-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/co-dark.png b/desktop/onionshare/resources/images/countries/co-dark.png
index aae3be9a..aae3be9a 100644
--- a/desktop/src/onionshare/resources/images/countries/co-dark.png
+++ b/desktop/onionshare/resources/images/countries/co-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/co-light.png b/desktop/onionshare/resources/images/countries/co-light.png
index 4cc1cb72..4cc1cb72 100644
--- a/desktop/src/onionshare/resources/images/countries/co-light.png
+++ b/desktop/onionshare/resources/images/countries/co-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cr-dark.png b/desktop/onionshare/resources/images/countries/cr-dark.png
index cf02f08e..cf02f08e 100644
--- a/desktop/src/onionshare/resources/images/countries/cr-dark.png
+++ b/desktop/onionshare/resources/images/countries/cr-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cr-light.png b/desktop/onionshare/resources/images/countries/cr-light.png
index 4cc70fda..4cc70fda 100644
--- a/desktop/src/onionshare/resources/images/countries/cr-light.png
+++ b/desktop/onionshare/resources/images/countries/cr-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cu-dark.png b/desktop/onionshare/resources/images/countries/cu-dark.png
index 61a1249d..61a1249d 100644
--- a/desktop/src/onionshare/resources/images/countries/cu-dark.png
+++ b/desktop/onionshare/resources/images/countries/cu-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cu-light.png b/desktop/onionshare/resources/images/countries/cu-light.png
index 6de7047b..6de7047b 100644
--- a/desktop/src/onionshare/resources/images/countries/cu-light.png
+++ b/desktop/onionshare/resources/images/countries/cu-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cv-dark.png b/desktop/onionshare/resources/images/countries/cv-dark.png
index 580f1087..580f1087 100644
--- a/desktop/src/onionshare/resources/images/countries/cv-dark.png
+++ b/desktop/onionshare/resources/images/countries/cv-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cv-light.png b/desktop/onionshare/resources/images/countries/cv-light.png
index 6258ba6c..6258ba6c 100644
--- a/desktop/src/onionshare/resources/images/countries/cv-light.png
+++ b/desktop/onionshare/resources/images/countries/cv-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cw-dark.png b/desktop/onionshare/resources/images/countries/cw-dark.png
index ea8bec14..ea8bec14 100644
--- a/desktop/src/onionshare/resources/images/countries/cw-dark.png
+++ b/desktop/onionshare/resources/images/countries/cw-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cw-light.png b/desktop/onionshare/resources/images/countries/cw-light.png
index 06d6f504..06d6f504 100644
--- a/desktop/src/onionshare/resources/images/countries/cw-light.png
+++ b/desktop/onionshare/resources/images/countries/cw-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cx-dark.png b/desktop/onionshare/resources/images/countries/cx-dark.png
index 35aa71ea..35aa71ea 100644
--- a/desktop/src/onionshare/resources/images/countries/cx-dark.png
+++ b/desktop/onionshare/resources/images/countries/cx-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cx-light.png b/desktop/onionshare/resources/images/countries/cx-light.png
index 49748d4c..49748d4c 100644
--- a/desktop/src/onionshare/resources/images/countries/cx-light.png
+++ b/desktop/onionshare/resources/images/countries/cx-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cy-dark.png b/desktop/onionshare/resources/images/countries/cy-dark.png
index 428cdbd6..428cdbd6 100644
--- a/desktop/src/onionshare/resources/images/countries/cy-dark.png
+++ b/desktop/onionshare/resources/images/countries/cy-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cy-light.png b/desktop/onionshare/resources/images/countries/cy-light.png
index 1fc5e1a2..1fc5e1a2 100644
--- a/desktop/src/onionshare/resources/images/countries/cy-light.png
+++ b/desktop/onionshare/resources/images/countries/cy-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cz-dark.png b/desktop/onionshare/resources/images/countries/cz-dark.png
index 13af5725..13af5725 100644
--- a/desktop/src/onionshare/resources/images/countries/cz-dark.png
+++ b/desktop/onionshare/resources/images/countries/cz-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/cz-light.png b/desktop/onionshare/resources/images/countries/cz-light.png
index 20e83637..20e83637 100644
--- a/desktop/src/onionshare/resources/images/countries/cz-light.png
+++ b/desktop/onionshare/resources/images/countries/cz-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/de-dark.png b/desktop/onionshare/resources/images/countries/de-dark.png
index ff0806d9..ff0806d9 100644
--- a/desktop/src/onionshare/resources/images/countries/de-dark.png
+++ b/desktop/onionshare/resources/images/countries/de-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/de-light.png b/desktop/onionshare/resources/images/countries/de-light.png
index b221b877..b221b877 100644
--- a/desktop/src/onionshare/resources/images/countries/de-light.png
+++ b/desktop/onionshare/resources/images/countries/de-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/dj-dark.png b/desktop/onionshare/resources/images/countries/dj-dark.png
index 96d7ed42..96d7ed42 100644
--- a/desktop/src/onionshare/resources/images/countries/dj-dark.png
+++ b/desktop/onionshare/resources/images/countries/dj-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/dj-light.png b/desktop/onionshare/resources/images/countries/dj-light.png
index 094cf53f..094cf53f 100644
--- a/desktop/src/onionshare/resources/images/countries/dj-light.png
+++ b/desktop/onionshare/resources/images/countries/dj-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/dk-dark.png b/desktop/onionshare/resources/images/countries/dk-dark.png
index 3c329658..3c329658 100644
--- a/desktop/src/onionshare/resources/images/countries/dk-dark.png
+++ b/desktop/onionshare/resources/images/countries/dk-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/dk-light.png b/desktop/onionshare/resources/images/countries/dk-light.png
index 1868128f..1868128f 100644
--- a/desktop/src/onionshare/resources/images/countries/dk-light.png
+++ b/desktop/onionshare/resources/images/countries/dk-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/dm-dark.png b/desktop/onionshare/resources/images/countries/dm-dark.png
index 1126c375..1126c375 100644
--- a/desktop/src/onionshare/resources/images/countries/dm-dark.png
+++ b/desktop/onionshare/resources/images/countries/dm-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/dm-light.png b/desktop/onionshare/resources/images/countries/dm-light.png
index 6146b808..6146b808 100644
--- a/desktop/src/onionshare/resources/images/countries/dm-light.png
+++ b/desktop/onionshare/resources/images/countries/dm-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/do-dark.png b/desktop/onionshare/resources/images/countries/do-dark.png
index 16d18131..16d18131 100644
--- a/desktop/src/onionshare/resources/images/countries/do-dark.png
+++ b/desktop/onionshare/resources/images/countries/do-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/do-light.png b/desktop/onionshare/resources/images/countries/do-light.png
index 6fd00e63..6fd00e63 100644
--- a/desktop/src/onionshare/resources/images/countries/do-light.png
+++ b/desktop/onionshare/resources/images/countries/do-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/dz-dark.png b/desktop/onionshare/resources/images/countries/dz-dark.png
index 4355ba7a..4355ba7a 100644
--- a/desktop/src/onionshare/resources/images/countries/dz-dark.png
+++ b/desktop/onionshare/resources/images/countries/dz-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/dz-light.png b/desktop/onionshare/resources/images/countries/dz-light.png
index 924d9ad9..924d9ad9 100644
--- a/desktop/src/onionshare/resources/images/countries/dz-light.png
+++ b/desktop/onionshare/resources/images/countries/dz-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ec-dark.png b/desktop/onionshare/resources/images/countries/ec-dark.png
index 8357905e..8357905e 100644
--- a/desktop/src/onionshare/resources/images/countries/ec-dark.png
+++ b/desktop/onionshare/resources/images/countries/ec-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ec-light.png b/desktop/onionshare/resources/images/countries/ec-light.png
index ebb18cb4..ebb18cb4 100644
--- a/desktop/src/onionshare/resources/images/countries/ec-light.png
+++ b/desktop/onionshare/resources/images/countries/ec-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ee-dark.png b/desktop/onionshare/resources/images/countries/ee-dark.png
index 8a542ff7..8a542ff7 100644
--- a/desktop/src/onionshare/resources/images/countries/ee-dark.png
+++ b/desktop/onionshare/resources/images/countries/ee-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ee-light.png b/desktop/onionshare/resources/images/countries/ee-light.png
index 68b4762c..68b4762c 100644
--- a/desktop/src/onionshare/resources/images/countries/ee-light.png
+++ b/desktop/onionshare/resources/images/countries/ee-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/eg-dark.png b/desktop/onionshare/resources/images/countries/eg-dark.png
index 8477f57f..8477f57f 100644
--- a/desktop/src/onionshare/resources/images/countries/eg-dark.png
+++ b/desktop/onionshare/resources/images/countries/eg-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/eg-light.png b/desktop/onionshare/resources/images/countries/eg-light.png
index eacd70fb..eacd70fb 100644
--- a/desktop/src/onionshare/resources/images/countries/eg-light.png
+++ b/desktop/onionshare/resources/images/countries/eg-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/eh-dark.png b/desktop/onionshare/resources/images/countries/eh-dark.png
index d4bc85b4..d4bc85b4 100644
--- a/desktop/src/onionshare/resources/images/countries/eh-dark.png
+++ b/desktop/onionshare/resources/images/countries/eh-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/eh-light.png b/desktop/onionshare/resources/images/countries/eh-light.png
index e350a48f..e350a48f 100644
--- a/desktop/src/onionshare/resources/images/countries/eh-light.png
+++ b/desktop/onionshare/resources/images/countries/eh-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/er-dark.png b/desktop/onionshare/resources/images/countries/er-dark.png
index 27d221c2..27d221c2 100644
--- a/desktop/src/onionshare/resources/images/countries/er-dark.png
+++ b/desktop/onionshare/resources/images/countries/er-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/er-light.png b/desktop/onionshare/resources/images/countries/er-light.png
index 9d67fa9c..9d67fa9c 100644
--- a/desktop/src/onionshare/resources/images/countries/er-light.png
+++ b/desktop/onionshare/resources/images/countries/er-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/es-dark.png b/desktop/onionshare/resources/images/countries/es-dark.png
index 3c310c9b..3c310c9b 100644
--- a/desktop/src/onionshare/resources/images/countries/es-dark.png
+++ b/desktop/onionshare/resources/images/countries/es-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/es-light.png b/desktop/onionshare/resources/images/countries/es-light.png
index 6ddb830b..6ddb830b 100644
--- a/desktop/src/onionshare/resources/images/countries/es-light.png
+++ b/desktop/onionshare/resources/images/countries/es-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/et-dark.png b/desktop/onionshare/resources/images/countries/et-dark.png
index 4ff51ed8..4ff51ed8 100644
--- a/desktop/src/onionshare/resources/images/countries/et-dark.png
+++ b/desktop/onionshare/resources/images/countries/et-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/et-light.png b/desktop/onionshare/resources/images/countries/et-light.png
index 678f7f91..678f7f91 100644
--- a/desktop/src/onionshare/resources/images/countries/et-light.png
+++ b/desktop/onionshare/resources/images/countries/et-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/fi-dark.png b/desktop/onionshare/resources/images/countries/fi-dark.png
index 53fc0ee2..53fc0ee2 100644
--- a/desktop/src/onionshare/resources/images/countries/fi-dark.png
+++ b/desktop/onionshare/resources/images/countries/fi-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/fi-light.png b/desktop/onionshare/resources/images/countries/fi-light.png
index 09902ae4..09902ae4 100644
--- a/desktop/src/onionshare/resources/images/countries/fi-light.png
+++ b/desktop/onionshare/resources/images/countries/fi-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/fj-dark.png b/desktop/onionshare/resources/images/countries/fj-dark.png
index 400107f1..400107f1 100644
--- a/desktop/src/onionshare/resources/images/countries/fj-dark.png
+++ b/desktop/onionshare/resources/images/countries/fj-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/fj-light.png b/desktop/onionshare/resources/images/countries/fj-light.png
index 677785ac..677785ac 100644
--- a/desktop/src/onionshare/resources/images/countries/fj-light.png
+++ b/desktop/onionshare/resources/images/countries/fj-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/fk-dark.png b/desktop/onionshare/resources/images/countries/fk-dark.png
index 40728711..40728711 100644
--- a/desktop/src/onionshare/resources/images/countries/fk-dark.png
+++ b/desktop/onionshare/resources/images/countries/fk-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/fk-light.png b/desktop/onionshare/resources/images/countries/fk-light.png
index 6bcc59d2..6bcc59d2 100644
--- a/desktop/src/onionshare/resources/images/countries/fk-light.png
+++ b/desktop/onionshare/resources/images/countries/fk-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/fo-dark.png b/desktop/onionshare/resources/images/countries/fo-dark.png
index 7e19baa2..7e19baa2 100644
--- a/desktop/src/onionshare/resources/images/countries/fo-dark.png
+++ b/desktop/onionshare/resources/images/countries/fo-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/fo-light.png b/desktop/onionshare/resources/images/countries/fo-light.png
index 8ccb7419..8ccb7419 100644
--- a/desktop/src/onionshare/resources/images/countries/fo-light.png
+++ b/desktop/onionshare/resources/images/countries/fo-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/fr-dark.png b/desktop/onionshare/resources/images/countries/fr-dark.png
index 90260f3b..90260f3b 100644
--- a/desktop/src/onionshare/resources/images/countries/fr-dark.png
+++ b/desktop/onionshare/resources/images/countries/fr-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/fr-light.png b/desktop/onionshare/resources/images/countries/fr-light.png
index 449ddadb..449ddadb 100644
--- a/desktop/src/onionshare/resources/images/countries/fr-light.png
+++ b/desktop/onionshare/resources/images/countries/fr-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ga-dark.png b/desktop/onionshare/resources/images/countries/ga-dark.png
index 30e6e3c9..30e6e3c9 100644
--- a/desktop/src/onionshare/resources/images/countries/ga-dark.png
+++ b/desktop/onionshare/resources/images/countries/ga-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ga-light.png b/desktop/onionshare/resources/images/countries/ga-light.png
index be9bd225..be9bd225 100644
--- a/desktop/src/onionshare/resources/images/countries/ga-light.png
+++ b/desktop/onionshare/resources/images/countries/ga-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gb-dark.png b/desktop/onionshare/resources/images/countries/gb-dark.png
index f4a23714..f4a23714 100644
--- a/desktop/src/onionshare/resources/images/countries/gb-dark.png
+++ b/desktop/onionshare/resources/images/countries/gb-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gb-light.png b/desktop/onionshare/resources/images/countries/gb-light.png
index da1cbaab..da1cbaab 100644
--- a/desktop/src/onionshare/resources/images/countries/gb-light.png
+++ b/desktop/onionshare/resources/images/countries/gb-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gd-dark.png b/desktop/onionshare/resources/images/countries/gd-dark.png
index 0cf341cb..0cf341cb 100644
--- a/desktop/src/onionshare/resources/images/countries/gd-dark.png
+++ b/desktop/onionshare/resources/images/countries/gd-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gd-light.png b/desktop/onionshare/resources/images/countries/gd-light.png
index 6490239a..6490239a 100644
--- a/desktop/src/onionshare/resources/images/countries/gd-light.png
+++ b/desktop/onionshare/resources/images/countries/gd-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ge-dark.png b/desktop/onionshare/resources/images/countries/ge-dark.png
index a56cc972..a56cc972 100644
--- a/desktop/src/onionshare/resources/images/countries/ge-dark.png
+++ b/desktop/onionshare/resources/images/countries/ge-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ge-light.png b/desktop/onionshare/resources/images/countries/ge-light.png
index eae30444..eae30444 100644
--- a/desktop/src/onionshare/resources/images/countries/ge-light.png
+++ b/desktop/onionshare/resources/images/countries/ge-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gf-dark.png b/desktop/onionshare/resources/images/countries/gf-dark.png
index 64978b06..64978b06 100644
--- a/desktop/src/onionshare/resources/images/countries/gf-dark.png
+++ b/desktop/onionshare/resources/images/countries/gf-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gf-light.png b/desktop/onionshare/resources/images/countries/gf-light.png
index 11bab78e..11bab78e 100644
--- a/desktop/src/onionshare/resources/images/countries/gf-light.png
+++ b/desktop/onionshare/resources/images/countries/gf-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gg-dark.png b/desktop/onionshare/resources/images/countries/gg-dark.png
index 3a9cea91..3a9cea91 100644
--- a/desktop/src/onionshare/resources/images/countries/gg-dark.png
+++ b/desktop/onionshare/resources/images/countries/gg-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gg-light.png b/desktop/onionshare/resources/images/countries/gg-light.png
index 99d81f00..99d81f00 100644
--- a/desktop/src/onionshare/resources/images/countries/gg-light.png
+++ b/desktop/onionshare/resources/images/countries/gg-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gh-dark.png b/desktop/onionshare/resources/images/countries/gh-dark.png
index 8af1d333..8af1d333 100644
--- a/desktop/src/onionshare/resources/images/countries/gh-dark.png
+++ b/desktop/onionshare/resources/images/countries/gh-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gh-light.png b/desktop/onionshare/resources/images/countries/gh-light.png
index 097a68a9..097a68a9 100644
--- a/desktop/src/onionshare/resources/images/countries/gh-light.png
+++ b/desktop/onionshare/resources/images/countries/gh-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gi-dark.png b/desktop/onionshare/resources/images/countries/gi-dark.png
index 97ae42d0..97ae42d0 100644
--- a/desktop/src/onionshare/resources/images/countries/gi-dark.png
+++ b/desktop/onionshare/resources/images/countries/gi-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gi-light.png b/desktop/onionshare/resources/images/countries/gi-light.png
index 7d38fe52..7d38fe52 100644
--- a/desktop/src/onionshare/resources/images/countries/gi-light.png
+++ b/desktop/onionshare/resources/images/countries/gi-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gl-dark.png b/desktop/onionshare/resources/images/countries/gl-dark.png
index 0fb8cee7..0fb8cee7 100644
--- a/desktop/src/onionshare/resources/images/countries/gl-dark.png
+++ b/desktop/onionshare/resources/images/countries/gl-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gl-light.png b/desktop/onionshare/resources/images/countries/gl-light.png
index cae17882..cae17882 100644
--- a/desktop/src/onionshare/resources/images/countries/gl-light.png
+++ b/desktop/onionshare/resources/images/countries/gl-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gm-dark.png b/desktop/onionshare/resources/images/countries/gm-dark.png
index d04ef441..d04ef441 100644
--- a/desktop/src/onionshare/resources/images/countries/gm-dark.png
+++ b/desktop/onionshare/resources/images/countries/gm-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gm-light.png b/desktop/onionshare/resources/images/countries/gm-light.png
index dc6a0c71..dc6a0c71 100644
--- a/desktop/src/onionshare/resources/images/countries/gm-light.png
+++ b/desktop/onionshare/resources/images/countries/gm-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gn-dark.png b/desktop/onionshare/resources/images/countries/gn-dark.png
index 36a53e07..36a53e07 100644
--- a/desktop/src/onionshare/resources/images/countries/gn-dark.png
+++ b/desktop/onionshare/resources/images/countries/gn-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gn-light.png b/desktop/onionshare/resources/images/countries/gn-light.png
index 3b6be3b1..3b6be3b1 100644
--- a/desktop/src/onionshare/resources/images/countries/gn-light.png
+++ b/desktop/onionshare/resources/images/countries/gn-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gp-dark.png b/desktop/onionshare/resources/images/countries/gp-dark.png
index ed93d115..ed93d115 100644
--- a/desktop/src/onionshare/resources/images/countries/gp-dark.png
+++ b/desktop/onionshare/resources/images/countries/gp-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gp-light.png b/desktop/onionshare/resources/images/countries/gp-light.png
index 0e29dbed..0e29dbed 100644
--- a/desktop/src/onionshare/resources/images/countries/gp-light.png
+++ b/desktop/onionshare/resources/images/countries/gp-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gq-dark.png b/desktop/onionshare/resources/images/countries/gq-dark.png
index c8cd9b1b..c8cd9b1b 100644
--- a/desktop/src/onionshare/resources/images/countries/gq-dark.png
+++ b/desktop/onionshare/resources/images/countries/gq-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gq-light.png b/desktop/onionshare/resources/images/countries/gq-light.png
index 255577b3..255577b3 100644
--- a/desktop/src/onionshare/resources/images/countries/gq-light.png
+++ b/desktop/onionshare/resources/images/countries/gq-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gr-dark.png b/desktop/onionshare/resources/images/countries/gr-dark.png
index 92067e34..92067e34 100644
--- a/desktop/src/onionshare/resources/images/countries/gr-dark.png
+++ b/desktop/onionshare/resources/images/countries/gr-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gr-light.png b/desktop/onionshare/resources/images/countries/gr-light.png
index 2cb5f157..2cb5f157 100644
--- a/desktop/src/onionshare/resources/images/countries/gr-light.png
+++ b/desktop/onionshare/resources/images/countries/gr-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gs-dark.png b/desktop/onionshare/resources/images/countries/gs-dark.png
index 9c0f824b..9c0f824b 100644
--- a/desktop/src/onionshare/resources/images/countries/gs-dark.png
+++ b/desktop/onionshare/resources/images/countries/gs-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gs-light.png b/desktop/onionshare/resources/images/countries/gs-light.png
index 0c14a9d8..0c14a9d8 100644
--- a/desktop/src/onionshare/resources/images/countries/gs-light.png
+++ b/desktop/onionshare/resources/images/countries/gs-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gt-dark.png b/desktop/onionshare/resources/images/countries/gt-dark.png
index a24ac3c2..a24ac3c2 100644
--- a/desktop/src/onionshare/resources/images/countries/gt-dark.png
+++ b/desktop/onionshare/resources/images/countries/gt-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gt-light.png b/desktop/onionshare/resources/images/countries/gt-light.png
index b905ef77..b905ef77 100644
--- a/desktop/src/onionshare/resources/images/countries/gt-light.png
+++ b/desktop/onionshare/resources/images/countries/gt-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gu-dark.png b/desktop/onionshare/resources/images/countries/gu-dark.png
index 066e1c55..066e1c55 100644
--- a/desktop/src/onionshare/resources/images/countries/gu-dark.png
+++ b/desktop/onionshare/resources/images/countries/gu-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gu-light.png b/desktop/onionshare/resources/images/countries/gu-light.png
index f1d43774..f1d43774 100644
--- a/desktop/src/onionshare/resources/images/countries/gu-light.png
+++ b/desktop/onionshare/resources/images/countries/gu-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gw-dark.png b/desktop/onionshare/resources/images/countries/gw-dark.png
index 5be26359..5be26359 100644
--- a/desktop/src/onionshare/resources/images/countries/gw-dark.png
+++ b/desktop/onionshare/resources/images/countries/gw-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gw-light.png b/desktop/onionshare/resources/images/countries/gw-light.png
index a14a0eed..a14a0eed 100644
--- a/desktop/src/onionshare/resources/images/countries/gw-light.png
+++ b/desktop/onionshare/resources/images/countries/gw-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gy-dark.png b/desktop/onionshare/resources/images/countries/gy-dark.png
index dd5fa2d4..dd5fa2d4 100644
--- a/desktop/src/onionshare/resources/images/countries/gy-dark.png
+++ b/desktop/onionshare/resources/images/countries/gy-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/gy-light.png b/desktop/onionshare/resources/images/countries/gy-light.png
index ecaa69e8..ecaa69e8 100644
--- a/desktop/src/onionshare/resources/images/countries/gy-light.png
+++ b/desktop/onionshare/resources/images/countries/gy-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/hk-dark.png b/desktop/onionshare/resources/images/countries/hk-dark.png
index c3cd167a..c3cd167a 100644
--- a/desktop/src/onionshare/resources/images/countries/hk-dark.png
+++ b/desktop/onionshare/resources/images/countries/hk-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/hk-light.png b/desktop/onionshare/resources/images/countries/hk-light.png
index 49d9306a..49d9306a 100644
--- a/desktop/src/onionshare/resources/images/countries/hk-light.png
+++ b/desktop/onionshare/resources/images/countries/hk-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/hm-dark.png b/desktop/onionshare/resources/images/countries/hm-dark.png
index bff66284..bff66284 100644
--- a/desktop/src/onionshare/resources/images/countries/hm-dark.png
+++ b/desktop/onionshare/resources/images/countries/hm-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/hm-light.png b/desktop/onionshare/resources/images/countries/hm-light.png
index 7bcae099..7bcae099 100644
--- a/desktop/src/onionshare/resources/images/countries/hm-light.png
+++ b/desktop/onionshare/resources/images/countries/hm-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/hn-dark.png b/desktop/onionshare/resources/images/countries/hn-dark.png
index 81d66fab..81d66fab 100644
--- a/desktop/src/onionshare/resources/images/countries/hn-dark.png
+++ b/desktop/onionshare/resources/images/countries/hn-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/hn-light.png b/desktop/onionshare/resources/images/countries/hn-light.png
index f13da74d..f13da74d 100644
--- a/desktop/src/onionshare/resources/images/countries/hn-light.png
+++ b/desktop/onionshare/resources/images/countries/hn-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/hr-dark.png b/desktop/onionshare/resources/images/countries/hr-dark.png
index 09f742be..09f742be 100644
--- a/desktop/src/onionshare/resources/images/countries/hr-dark.png
+++ b/desktop/onionshare/resources/images/countries/hr-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/hr-light.png b/desktop/onionshare/resources/images/countries/hr-light.png
index 4e0da927..4e0da927 100644
--- a/desktop/src/onionshare/resources/images/countries/hr-light.png
+++ b/desktop/onionshare/resources/images/countries/hr-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ht-dark.png b/desktop/onionshare/resources/images/countries/ht-dark.png
index 62b15611..62b15611 100644
--- a/desktop/src/onionshare/resources/images/countries/ht-dark.png
+++ b/desktop/onionshare/resources/images/countries/ht-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ht-light.png b/desktop/onionshare/resources/images/countries/ht-light.png
index c5e39018..c5e39018 100644
--- a/desktop/src/onionshare/resources/images/countries/ht-light.png
+++ b/desktop/onionshare/resources/images/countries/ht-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/hu-dark.png b/desktop/onionshare/resources/images/countries/hu-dark.png
index 483ff639..483ff639 100644
--- a/desktop/src/onionshare/resources/images/countries/hu-dark.png
+++ b/desktop/onionshare/resources/images/countries/hu-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/hu-light.png b/desktop/onionshare/resources/images/countries/hu-light.png
index 7ea87389..7ea87389 100644
--- a/desktop/src/onionshare/resources/images/countries/hu-light.png
+++ b/desktop/onionshare/resources/images/countries/hu-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/id-dark.png b/desktop/onionshare/resources/images/countries/id-dark.png
index 6f4d927b..6f4d927b 100644
--- a/desktop/src/onionshare/resources/images/countries/id-dark.png
+++ b/desktop/onionshare/resources/images/countries/id-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/id-light.png b/desktop/onionshare/resources/images/countries/id-light.png
index 19c6a539..19c6a539 100644
--- a/desktop/src/onionshare/resources/images/countries/id-light.png
+++ b/desktop/onionshare/resources/images/countries/id-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ie-dark.png b/desktop/onionshare/resources/images/countries/ie-dark.png
index 8323569d..8323569d 100644
--- a/desktop/src/onionshare/resources/images/countries/ie-dark.png
+++ b/desktop/onionshare/resources/images/countries/ie-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ie-light.png b/desktop/onionshare/resources/images/countries/ie-light.png
index 02f0c6a6..02f0c6a6 100644
--- a/desktop/src/onionshare/resources/images/countries/ie-light.png
+++ b/desktop/onionshare/resources/images/countries/ie-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/il-dark.png b/desktop/onionshare/resources/images/countries/il-dark.png
index 859b1a88..859b1a88 100644
--- a/desktop/src/onionshare/resources/images/countries/il-dark.png
+++ b/desktop/onionshare/resources/images/countries/il-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/il-light.png b/desktop/onionshare/resources/images/countries/il-light.png
index 3ca27bf5..3ca27bf5 100644
--- a/desktop/src/onionshare/resources/images/countries/il-light.png
+++ b/desktop/onionshare/resources/images/countries/il-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/im-dark.png b/desktop/onionshare/resources/images/countries/im-dark.png
index 0eae3143..0eae3143 100644
--- a/desktop/src/onionshare/resources/images/countries/im-dark.png
+++ b/desktop/onionshare/resources/images/countries/im-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/im-light.png b/desktop/onionshare/resources/images/countries/im-light.png
index 35d5b773..35d5b773 100644
--- a/desktop/src/onionshare/resources/images/countries/im-light.png
+++ b/desktop/onionshare/resources/images/countries/im-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/in-dark.png b/desktop/onionshare/resources/images/countries/in-dark.png
index 41e96c86..41e96c86 100644
--- a/desktop/src/onionshare/resources/images/countries/in-dark.png
+++ b/desktop/onionshare/resources/images/countries/in-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/in-light.png b/desktop/onionshare/resources/images/countries/in-light.png
index 8fd2ebd7..8fd2ebd7 100644
--- a/desktop/src/onionshare/resources/images/countries/in-light.png
+++ b/desktop/onionshare/resources/images/countries/in-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/io-dark.png b/desktop/onionshare/resources/images/countries/io-dark.png
index ebf9a094..ebf9a094 100644
--- a/desktop/src/onionshare/resources/images/countries/io-dark.png
+++ b/desktop/onionshare/resources/images/countries/io-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/io-light.png b/desktop/onionshare/resources/images/countries/io-light.png
index a9d49813..a9d49813 100644
--- a/desktop/src/onionshare/resources/images/countries/io-light.png
+++ b/desktop/onionshare/resources/images/countries/io-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/iq-dark.png b/desktop/onionshare/resources/images/countries/iq-dark.png
index c6e8e563..c6e8e563 100644
--- a/desktop/src/onionshare/resources/images/countries/iq-dark.png
+++ b/desktop/onionshare/resources/images/countries/iq-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/iq-light.png b/desktop/onionshare/resources/images/countries/iq-light.png
index 34348112..34348112 100644
--- a/desktop/src/onionshare/resources/images/countries/iq-light.png
+++ b/desktop/onionshare/resources/images/countries/iq-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ir-dark.png b/desktop/onionshare/resources/images/countries/ir-dark.png
index 4f23e34a..4f23e34a 100644
--- a/desktop/src/onionshare/resources/images/countries/ir-dark.png
+++ b/desktop/onionshare/resources/images/countries/ir-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ir-light.png b/desktop/onionshare/resources/images/countries/ir-light.png
index 238cdf33..238cdf33 100644
--- a/desktop/src/onionshare/resources/images/countries/ir-light.png
+++ b/desktop/onionshare/resources/images/countries/ir-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/is-dark.png b/desktop/onionshare/resources/images/countries/is-dark.png
index 33a82b82..33a82b82 100644
--- a/desktop/src/onionshare/resources/images/countries/is-dark.png
+++ b/desktop/onionshare/resources/images/countries/is-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/is-light.png b/desktop/onionshare/resources/images/countries/is-light.png
index 09f3d272..09f3d272 100644
--- a/desktop/src/onionshare/resources/images/countries/is-light.png
+++ b/desktop/onionshare/resources/images/countries/is-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/it-dark.png b/desktop/onionshare/resources/images/countries/it-dark.png
index 5d5f318c..5d5f318c 100644
--- a/desktop/src/onionshare/resources/images/countries/it-dark.png
+++ b/desktop/onionshare/resources/images/countries/it-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/it-light.png b/desktop/onionshare/resources/images/countries/it-light.png
index ec146b52..ec146b52 100644
--- a/desktop/src/onionshare/resources/images/countries/it-light.png
+++ b/desktop/onionshare/resources/images/countries/it-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/jm-dark.png b/desktop/onionshare/resources/images/countries/jm-dark.png
index 4ea7c7fa..4ea7c7fa 100644
--- a/desktop/src/onionshare/resources/images/countries/jm-dark.png
+++ b/desktop/onionshare/resources/images/countries/jm-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/jm-light.png b/desktop/onionshare/resources/images/countries/jm-light.png
index 30ecb409..30ecb409 100644
--- a/desktop/src/onionshare/resources/images/countries/jm-light.png
+++ b/desktop/onionshare/resources/images/countries/jm-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/jo-dark.png b/desktop/onionshare/resources/images/countries/jo-dark.png
index ba2b8a21..ba2b8a21 100644
--- a/desktop/src/onionshare/resources/images/countries/jo-dark.png
+++ b/desktop/onionshare/resources/images/countries/jo-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/jo-light.png b/desktop/onionshare/resources/images/countries/jo-light.png
index d01fb7b2..d01fb7b2 100644
--- a/desktop/src/onionshare/resources/images/countries/jo-light.png
+++ b/desktop/onionshare/resources/images/countries/jo-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/jp-dark.png b/desktop/onionshare/resources/images/countries/jp-dark.png
index 3b18aec1..3b18aec1 100644
--- a/desktop/src/onionshare/resources/images/countries/jp-dark.png
+++ b/desktop/onionshare/resources/images/countries/jp-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/jp-light.png b/desktop/onionshare/resources/images/countries/jp-light.png
index 80627602..80627602 100644
--- a/desktop/src/onionshare/resources/images/countries/jp-light.png
+++ b/desktop/onionshare/resources/images/countries/jp-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ke-dark.png b/desktop/onionshare/resources/images/countries/ke-dark.png
index f2001a7a..f2001a7a 100644
--- a/desktop/src/onionshare/resources/images/countries/ke-dark.png
+++ b/desktop/onionshare/resources/images/countries/ke-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ke-light.png b/desktop/onionshare/resources/images/countries/ke-light.png
index 18e391d2..18e391d2 100644
--- a/desktop/src/onionshare/resources/images/countries/ke-light.png
+++ b/desktop/onionshare/resources/images/countries/ke-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/kg-dark.png b/desktop/onionshare/resources/images/countries/kg-dark.png
index 581d4197..581d4197 100644
--- a/desktop/src/onionshare/resources/images/countries/kg-dark.png
+++ b/desktop/onionshare/resources/images/countries/kg-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/kg-light.png b/desktop/onionshare/resources/images/countries/kg-light.png
index 0a014f9f..0a014f9f 100644
--- a/desktop/src/onionshare/resources/images/countries/kg-light.png
+++ b/desktop/onionshare/resources/images/countries/kg-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/kh-dark.png b/desktop/onionshare/resources/images/countries/kh-dark.png
index 036c4c7b..036c4c7b 100644
--- a/desktop/src/onionshare/resources/images/countries/kh-dark.png
+++ b/desktop/onionshare/resources/images/countries/kh-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/kh-light.png b/desktop/onionshare/resources/images/countries/kh-light.png
index f8ed587d..f8ed587d 100644
--- a/desktop/src/onionshare/resources/images/countries/kh-light.png
+++ b/desktop/onionshare/resources/images/countries/kh-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ki-dark.png b/desktop/onionshare/resources/images/countries/ki-dark.png
index 14faa17a..14faa17a 100644
--- a/desktop/src/onionshare/resources/images/countries/ki-dark.png
+++ b/desktop/onionshare/resources/images/countries/ki-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ki-light.png b/desktop/onionshare/resources/images/countries/ki-light.png
index c5a54a32..c5a54a32 100644
--- a/desktop/src/onionshare/resources/images/countries/ki-light.png
+++ b/desktop/onionshare/resources/images/countries/ki-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/km-dark.png b/desktop/onionshare/resources/images/countries/km-dark.png
index cde33562..cde33562 100644
--- a/desktop/src/onionshare/resources/images/countries/km-dark.png
+++ b/desktop/onionshare/resources/images/countries/km-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/km-light.png b/desktop/onionshare/resources/images/countries/km-light.png
index c99b9991..c99b9991 100644
--- a/desktop/src/onionshare/resources/images/countries/km-light.png
+++ b/desktop/onionshare/resources/images/countries/km-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/kn-dark.png b/desktop/onionshare/resources/images/countries/kn-dark.png
index 5d46d85e..5d46d85e 100644
--- a/desktop/src/onionshare/resources/images/countries/kn-dark.png
+++ b/desktop/onionshare/resources/images/countries/kn-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/kn-light.png b/desktop/onionshare/resources/images/countries/kn-light.png
index 57da7e5c..57da7e5c 100644
--- a/desktop/src/onionshare/resources/images/countries/kn-light.png
+++ b/desktop/onionshare/resources/images/countries/kn-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/kp-dark.png b/desktop/onionshare/resources/images/countries/kp-dark.png
index 0d3bd08d..0d3bd08d 100644
--- a/desktop/src/onionshare/resources/images/countries/kp-dark.png
+++ b/desktop/onionshare/resources/images/countries/kp-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/kp-light.png b/desktop/onionshare/resources/images/countries/kp-light.png
index ea61e18d..ea61e18d 100644
--- a/desktop/src/onionshare/resources/images/countries/kp-light.png
+++ b/desktop/onionshare/resources/images/countries/kp-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/kr-dark.png b/desktop/onionshare/resources/images/countries/kr-dark.png
index 2334eb4f..2334eb4f 100644
--- a/desktop/src/onionshare/resources/images/countries/kr-dark.png
+++ b/desktop/onionshare/resources/images/countries/kr-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/kr-light.png b/desktop/onionshare/resources/images/countries/kr-light.png
index 7247201d..7247201d 100644
--- a/desktop/src/onionshare/resources/images/countries/kr-light.png
+++ b/desktop/onionshare/resources/images/countries/kr-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/kw-dark.png b/desktop/onionshare/resources/images/countries/kw-dark.png
index 0d9c2fab..0d9c2fab 100644
--- a/desktop/src/onionshare/resources/images/countries/kw-dark.png
+++ b/desktop/onionshare/resources/images/countries/kw-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/kw-light.png b/desktop/onionshare/resources/images/countries/kw-light.png
index a58a3f54..a58a3f54 100644
--- a/desktop/src/onionshare/resources/images/countries/kw-light.png
+++ b/desktop/onionshare/resources/images/countries/kw-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ky-dark.png b/desktop/onionshare/resources/images/countries/ky-dark.png
index 375cafc2..375cafc2 100644
--- a/desktop/src/onionshare/resources/images/countries/ky-dark.png
+++ b/desktop/onionshare/resources/images/countries/ky-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ky-light.png b/desktop/onionshare/resources/images/countries/ky-light.png
index 8752a2fe..8752a2fe 100644
--- a/desktop/src/onionshare/resources/images/countries/ky-light.png
+++ b/desktop/onionshare/resources/images/countries/ky-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/kz-dark.png b/desktop/onionshare/resources/images/countries/kz-dark.png
index 2c0c0af9..2c0c0af9 100644
--- a/desktop/src/onionshare/resources/images/countries/kz-dark.png
+++ b/desktop/onionshare/resources/images/countries/kz-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/kz-light.png b/desktop/onionshare/resources/images/countries/kz-light.png
index 4e7da718..4e7da718 100644
--- a/desktop/src/onionshare/resources/images/countries/kz-light.png
+++ b/desktop/onionshare/resources/images/countries/kz-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/la-dark.png b/desktop/onionshare/resources/images/countries/la-dark.png
index 74ed419a..74ed419a 100644
--- a/desktop/src/onionshare/resources/images/countries/la-dark.png
+++ b/desktop/onionshare/resources/images/countries/la-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/la-light.png b/desktop/onionshare/resources/images/countries/la-light.png
index d91ed5fb..d91ed5fb 100644
--- a/desktop/src/onionshare/resources/images/countries/la-light.png
+++ b/desktop/onionshare/resources/images/countries/la-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/lb-dark.png b/desktop/onionshare/resources/images/countries/lb-dark.png
index 84888362..84888362 100644
--- a/desktop/src/onionshare/resources/images/countries/lb-dark.png
+++ b/desktop/onionshare/resources/images/countries/lb-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/lb-light.png b/desktop/onionshare/resources/images/countries/lb-light.png
index f052443f..f052443f 100644
--- a/desktop/src/onionshare/resources/images/countries/lb-light.png
+++ b/desktop/onionshare/resources/images/countries/lb-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/lc-dark.png b/desktop/onionshare/resources/images/countries/lc-dark.png
index 6079d9b9..6079d9b9 100644
--- a/desktop/src/onionshare/resources/images/countries/lc-dark.png
+++ b/desktop/onionshare/resources/images/countries/lc-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/lc-light.png b/desktop/onionshare/resources/images/countries/lc-light.png
index 00650c9c..00650c9c 100644
--- a/desktop/src/onionshare/resources/images/countries/lc-light.png
+++ b/desktop/onionshare/resources/images/countries/lc-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/li-dark.png b/desktop/onionshare/resources/images/countries/li-dark.png
index d63d9213..d63d9213 100644
--- a/desktop/src/onionshare/resources/images/countries/li-dark.png
+++ b/desktop/onionshare/resources/images/countries/li-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/li-light.png b/desktop/onionshare/resources/images/countries/li-light.png
index 0de27598..0de27598 100644
--- a/desktop/src/onionshare/resources/images/countries/li-light.png
+++ b/desktop/onionshare/resources/images/countries/li-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/lk-dark.png b/desktop/onionshare/resources/images/countries/lk-dark.png
index 9a785176..9a785176 100644
--- a/desktop/src/onionshare/resources/images/countries/lk-dark.png
+++ b/desktop/onionshare/resources/images/countries/lk-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/lk-light.png b/desktop/onionshare/resources/images/countries/lk-light.png
index 8fda48fa..8fda48fa 100644
--- a/desktop/src/onionshare/resources/images/countries/lk-light.png
+++ b/desktop/onionshare/resources/images/countries/lk-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/lr-dark.png b/desktop/onionshare/resources/images/countries/lr-dark.png
index 69394239..69394239 100644
--- a/desktop/src/onionshare/resources/images/countries/lr-dark.png
+++ b/desktop/onionshare/resources/images/countries/lr-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/lr-light.png b/desktop/onionshare/resources/images/countries/lr-light.png
index cdc5c3df..cdc5c3df 100644
--- a/desktop/src/onionshare/resources/images/countries/lr-light.png
+++ b/desktop/onionshare/resources/images/countries/lr-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ls-dark.png b/desktop/onionshare/resources/images/countries/ls-dark.png
index 0b9993b3..0b9993b3 100644
--- a/desktop/src/onionshare/resources/images/countries/ls-dark.png
+++ b/desktop/onionshare/resources/images/countries/ls-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ls-light.png b/desktop/onionshare/resources/images/countries/ls-light.png
index 02f530a5..02f530a5 100644
--- a/desktop/src/onionshare/resources/images/countries/ls-light.png
+++ b/desktop/onionshare/resources/images/countries/ls-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/lt-dark.png b/desktop/onionshare/resources/images/countries/lt-dark.png
index c72f3701..c72f3701 100644
--- a/desktop/src/onionshare/resources/images/countries/lt-dark.png
+++ b/desktop/onionshare/resources/images/countries/lt-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/lt-light.png b/desktop/onionshare/resources/images/countries/lt-light.png
index dd282e49..dd282e49 100644
--- a/desktop/src/onionshare/resources/images/countries/lt-light.png
+++ b/desktop/onionshare/resources/images/countries/lt-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/lu-dark.png b/desktop/onionshare/resources/images/countries/lu-dark.png
index b4eeb4f1..b4eeb4f1 100644
--- a/desktop/src/onionshare/resources/images/countries/lu-dark.png
+++ b/desktop/onionshare/resources/images/countries/lu-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/lu-light.png b/desktop/onionshare/resources/images/countries/lu-light.png
index c1af757f..c1af757f 100644
--- a/desktop/src/onionshare/resources/images/countries/lu-light.png
+++ b/desktop/onionshare/resources/images/countries/lu-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/lv-dark.png b/desktop/onionshare/resources/images/countries/lv-dark.png
index db8b7477..db8b7477 100644
--- a/desktop/src/onionshare/resources/images/countries/lv-dark.png
+++ b/desktop/onionshare/resources/images/countries/lv-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/lv-light.png b/desktop/onionshare/resources/images/countries/lv-light.png
index aea5f83f..aea5f83f 100644
--- a/desktop/src/onionshare/resources/images/countries/lv-light.png
+++ b/desktop/onionshare/resources/images/countries/lv-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ly-dark.png b/desktop/onionshare/resources/images/countries/ly-dark.png
index 3ce0a0e7..3ce0a0e7 100644
--- a/desktop/src/onionshare/resources/images/countries/ly-dark.png
+++ b/desktop/onionshare/resources/images/countries/ly-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ly-light.png b/desktop/onionshare/resources/images/countries/ly-light.png
index cf9066ec..cf9066ec 100644
--- a/desktop/src/onionshare/resources/images/countries/ly-light.png
+++ b/desktop/onionshare/resources/images/countries/ly-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ma-dark.png b/desktop/onionshare/resources/images/countries/ma-dark.png
index 100235fe..100235fe 100644
--- a/desktop/src/onionshare/resources/images/countries/ma-dark.png
+++ b/desktop/onionshare/resources/images/countries/ma-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ma-light.png b/desktop/onionshare/resources/images/countries/ma-light.png
index 23bd40ca..23bd40ca 100644
--- a/desktop/src/onionshare/resources/images/countries/ma-light.png
+++ b/desktop/onionshare/resources/images/countries/ma-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mc-dark.png b/desktop/onionshare/resources/images/countries/mc-dark.png
index 57b85aea..57b85aea 100644
--- a/desktop/src/onionshare/resources/images/countries/mc-dark.png
+++ b/desktop/onionshare/resources/images/countries/mc-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mc-light.png b/desktop/onionshare/resources/images/countries/mc-light.png
index 0adbc23a..0adbc23a 100644
--- a/desktop/src/onionshare/resources/images/countries/mc-light.png
+++ b/desktop/onionshare/resources/images/countries/mc-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/md-dark.png b/desktop/onionshare/resources/images/countries/md-dark.png
index 9f5fe417..9f5fe417 100644
--- a/desktop/src/onionshare/resources/images/countries/md-dark.png
+++ b/desktop/onionshare/resources/images/countries/md-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/md-light.png b/desktop/onionshare/resources/images/countries/md-light.png
index 4e6f0d1a..4e6f0d1a 100644
--- a/desktop/src/onionshare/resources/images/countries/md-light.png
+++ b/desktop/onionshare/resources/images/countries/md-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/me-dark.png b/desktop/onionshare/resources/images/countries/me-dark.png
index e2dc2a51..e2dc2a51 100644
--- a/desktop/src/onionshare/resources/images/countries/me-dark.png
+++ b/desktop/onionshare/resources/images/countries/me-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/me-light.png b/desktop/onionshare/resources/images/countries/me-light.png
index 744dcc6e..744dcc6e 100644
--- a/desktop/src/onionshare/resources/images/countries/me-light.png
+++ b/desktop/onionshare/resources/images/countries/me-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mf-dark.png b/desktop/onionshare/resources/images/countries/mf-dark.png
index 04107c0b..04107c0b 100644
--- a/desktop/src/onionshare/resources/images/countries/mf-dark.png
+++ b/desktop/onionshare/resources/images/countries/mf-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mf-light.png b/desktop/onionshare/resources/images/countries/mf-light.png
index 4f71161b..4f71161b 100644
--- a/desktop/src/onionshare/resources/images/countries/mf-light.png
+++ b/desktop/onionshare/resources/images/countries/mf-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mg-dark.png b/desktop/onionshare/resources/images/countries/mg-dark.png
index 810f974c..810f974c 100644
--- a/desktop/src/onionshare/resources/images/countries/mg-dark.png
+++ b/desktop/onionshare/resources/images/countries/mg-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mg-light.png b/desktop/onionshare/resources/images/countries/mg-light.png
index 6897118a..6897118a 100644
--- a/desktop/src/onionshare/resources/images/countries/mg-light.png
+++ b/desktop/onionshare/resources/images/countries/mg-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mk-dark.png b/desktop/onionshare/resources/images/countries/mk-dark.png
index a67fa5aa..a67fa5aa 100644
--- a/desktop/src/onionshare/resources/images/countries/mk-dark.png
+++ b/desktop/onionshare/resources/images/countries/mk-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mk-light.png b/desktop/onionshare/resources/images/countries/mk-light.png
index 5a55446d..5a55446d 100644
--- a/desktop/src/onionshare/resources/images/countries/mk-light.png
+++ b/desktop/onionshare/resources/images/countries/mk-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ml-dark.png b/desktop/onionshare/resources/images/countries/ml-dark.png
index b7cc0063..b7cc0063 100644
--- a/desktop/src/onionshare/resources/images/countries/ml-dark.png
+++ b/desktop/onionshare/resources/images/countries/ml-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ml-light.png b/desktop/onionshare/resources/images/countries/ml-light.png
index 4a008a55..4a008a55 100644
--- a/desktop/src/onionshare/resources/images/countries/ml-light.png
+++ b/desktop/onionshare/resources/images/countries/ml-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mm-dark.png b/desktop/onionshare/resources/images/countries/mm-dark.png
index 2292b164..2292b164 100644
--- a/desktop/src/onionshare/resources/images/countries/mm-dark.png
+++ b/desktop/onionshare/resources/images/countries/mm-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mm-light.png b/desktop/onionshare/resources/images/countries/mm-light.png
index 0d3a422b..0d3a422b 100644
--- a/desktop/src/onionshare/resources/images/countries/mm-light.png
+++ b/desktop/onionshare/resources/images/countries/mm-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mn-dark.png b/desktop/onionshare/resources/images/countries/mn-dark.png
index a2fb0f0d..a2fb0f0d 100644
--- a/desktop/src/onionshare/resources/images/countries/mn-dark.png
+++ b/desktop/onionshare/resources/images/countries/mn-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mn-light.png b/desktop/onionshare/resources/images/countries/mn-light.png
index 9ecd6a98..9ecd6a98 100644
--- a/desktop/src/onionshare/resources/images/countries/mn-light.png
+++ b/desktop/onionshare/resources/images/countries/mn-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mo-dark.png b/desktop/onionshare/resources/images/countries/mo-dark.png
index d4a22013..d4a22013 100644
--- a/desktop/src/onionshare/resources/images/countries/mo-dark.png
+++ b/desktop/onionshare/resources/images/countries/mo-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mo-light.png b/desktop/onionshare/resources/images/countries/mo-light.png
index bdf93349..bdf93349 100644
--- a/desktop/src/onionshare/resources/images/countries/mo-light.png
+++ b/desktop/onionshare/resources/images/countries/mo-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mq-dark.png b/desktop/onionshare/resources/images/countries/mq-dark.png
index 7d0e2770..7d0e2770 100644
--- a/desktop/src/onionshare/resources/images/countries/mq-dark.png
+++ b/desktop/onionshare/resources/images/countries/mq-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mq-light.png b/desktop/onionshare/resources/images/countries/mq-light.png
index f31dd911..f31dd911 100644
--- a/desktop/src/onionshare/resources/images/countries/mq-light.png
+++ b/desktop/onionshare/resources/images/countries/mq-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mr-dark.png b/desktop/onionshare/resources/images/countries/mr-dark.png
index a85a93a1..a85a93a1 100644
--- a/desktop/src/onionshare/resources/images/countries/mr-dark.png
+++ b/desktop/onionshare/resources/images/countries/mr-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mr-light.png b/desktop/onionshare/resources/images/countries/mr-light.png
index 4eb61bdc..4eb61bdc 100644
--- a/desktop/src/onionshare/resources/images/countries/mr-light.png
+++ b/desktop/onionshare/resources/images/countries/mr-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ms-dark.png b/desktop/onionshare/resources/images/countries/ms-dark.png
index bdd35561..bdd35561 100644
--- a/desktop/src/onionshare/resources/images/countries/ms-dark.png
+++ b/desktop/onionshare/resources/images/countries/ms-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ms-light.png b/desktop/onionshare/resources/images/countries/ms-light.png
index 113b6314..113b6314 100644
--- a/desktop/src/onionshare/resources/images/countries/ms-light.png
+++ b/desktop/onionshare/resources/images/countries/ms-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mt-dark.png b/desktop/onionshare/resources/images/countries/mt-dark.png
index 5bea88e3..5bea88e3 100644
--- a/desktop/src/onionshare/resources/images/countries/mt-dark.png
+++ b/desktop/onionshare/resources/images/countries/mt-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mt-light.png b/desktop/onionshare/resources/images/countries/mt-light.png
index 7095a046..7095a046 100644
--- a/desktop/src/onionshare/resources/images/countries/mt-light.png
+++ b/desktop/onionshare/resources/images/countries/mt-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mu-dark.png b/desktop/onionshare/resources/images/countries/mu-dark.png
index 2037d764..2037d764 100644
--- a/desktop/src/onionshare/resources/images/countries/mu-dark.png
+++ b/desktop/onionshare/resources/images/countries/mu-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mu-light.png b/desktop/onionshare/resources/images/countries/mu-light.png
index 24a5b81f..24a5b81f 100644
--- a/desktop/src/onionshare/resources/images/countries/mu-light.png
+++ b/desktop/onionshare/resources/images/countries/mu-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mv-dark.png b/desktop/onionshare/resources/images/countries/mv-dark.png
index cb991c41..cb991c41 100644
--- a/desktop/src/onionshare/resources/images/countries/mv-dark.png
+++ b/desktop/onionshare/resources/images/countries/mv-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mv-light.png b/desktop/onionshare/resources/images/countries/mv-light.png
index 7e7762f3..7e7762f3 100644
--- a/desktop/src/onionshare/resources/images/countries/mv-light.png
+++ b/desktop/onionshare/resources/images/countries/mv-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mw-dark.png b/desktop/onionshare/resources/images/countries/mw-dark.png
index 0b3c64c1..0b3c64c1 100644
--- a/desktop/src/onionshare/resources/images/countries/mw-dark.png
+++ b/desktop/onionshare/resources/images/countries/mw-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mw-light.png b/desktop/onionshare/resources/images/countries/mw-light.png
index a674bc0c..a674bc0c 100644
--- a/desktop/src/onionshare/resources/images/countries/mw-light.png
+++ b/desktop/onionshare/resources/images/countries/mw-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mx-dark.png b/desktop/onionshare/resources/images/countries/mx-dark.png
index ed1b54eb..ed1b54eb 100644
--- a/desktop/src/onionshare/resources/images/countries/mx-dark.png
+++ b/desktop/onionshare/resources/images/countries/mx-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mx-light.png b/desktop/onionshare/resources/images/countries/mx-light.png
index 8d02c7bd..8d02c7bd 100644
--- a/desktop/src/onionshare/resources/images/countries/mx-light.png
+++ b/desktop/onionshare/resources/images/countries/mx-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/my-dark.png b/desktop/onionshare/resources/images/countries/my-dark.png
index c3411b7e..c3411b7e 100644
--- a/desktop/src/onionshare/resources/images/countries/my-dark.png
+++ b/desktop/onionshare/resources/images/countries/my-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/my-light.png b/desktop/onionshare/resources/images/countries/my-light.png
index f2853e01..f2853e01 100644
--- a/desktop/src/onionshare/resources/images/countries/my-light.png
+++ b/desktop/onionshare/resources/images/countries/my-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mz-dark.png b/desktop/onionshare/resources/images/countries/mz-dark.png
index e17b813b..e17b813b 100644
--- a/desktop/src/onionshare/resources/images/countries/mz-dark.png
+++ b/desktop/onionshare/resources/images/countries/mz-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/mz-light.png b/desktop/onionshare/resources/images/countries/mz-light.png
index 247498e3..247498e3 100644
--- a/desktop/src/onionshare/resources/images/countries/mz-light.png
+++ b/desktop/onionshare/resources/images/countries/mz-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/na-dark.png b/desktop/onionshare/resources/images/countries/na-dark.png
index 3383eb2a..3383eb2a 100644
--- a/desktop/src/onionshare/resources/images/countries/na-dark.png
+++ b/desktop/onionshare/resources/images/countries/na-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/na-light.png b/desktop/onionshare/resources/images/countries/na-light.png
index e2bc72e5..e2bc72e5 100644
--- a/desktop/src/onionshare/resources/images/countries/na-light.png
+++ b/desktop/onionshare/resources/images/countries/na-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/nc-dark.png b/desktop/onionshare/resources/images/countries/nc-dark.png
index de774c04..de774c04 100644
--- a/desktop/src/onionshare/resources/images/countries/nc-dark.png
+++ b/desktop/onionshare/resources/images/countries/nc-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/nc-light.png b/desktop/onionshare/resources/images/countries/nc-light.png
index 7401c600..7401c600 100644
--- a/desktop/src/onionshare/resources/images/countries/nc-light.png
+++ b/desktop/onionshare/resources/images/countries/nc-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ne-dark.png b/desktop/onionshare/resources/images/countries/ne-dark.png
index 0dc47e4c..0dc47e4c 100644
--- a/desktop/src/onionshare/resources/images/countries/ne-dark.png
+++ b/desktop/onionshare/resources/images/countries/ne-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ne-light.png b/desktop/onionshare/resources/images/countries/ne-light.png
index c1f7a3e2..c1f7a3e2 100644
--- a/desktop/src/onionshare/resources/images/countries/ne-light.png
+++ b/desktop/onionshare/resources/images/countries/ne-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/nf-dark.png b/desktop/onionshare/resources/images/countries/nf-dark.png
index 5457a965..5457a965 100644
--- a/desktop/src/onionshare/resources/images/countries/nf-dark.png
+++ b/desktop/onionshare/resources/images/countries/nf-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/nf-light.png b/desktop/onionshare/resources/images/countries/nf-light.png
index 4002d083..4002d083 100644
--- a/desktop/src/onionshare/resources/images/countries/nf-light.png
+++ b/desktop/onionshare/resources/images/countries/nf-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ng-dark.png b/desktop/onionshare/resources/images/countries/ng-dark.png
index 2d4d41f7..2d4d41f7 100644
--- a/desktop/src/onionshare/resources/images/countries/ng-dark.png
+++ b/desktop/onionshare/resources/images/countries/ng-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ng-light.png b/desktop/onionshare/resources/images/countries/ng-light.png
index c1449d02..c1449d02 100644
--- a/desktop/src/onionshare/resources/images/countries/ng-light.png
+++ b/desktop/onionshare/resources/images/countries/ng-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ni-dark.png b/desktop/onionshare/resources/images/countries/ni-dark.png
index e390f4e4..e390f4e4 100644
--- a/desktop/src/onionshare/resources/images/countries/ni-dark.png
+++ b/desktop/onionshare/resources/images/countries/ni-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ni-light.png b/desktop/onionshare/resources/images/countries/ni-light.png
index 5b9dff7e..5b9dff7e 100644
--- a/desktop/src/onionshare/resources/images/countries/ni-light.png
+++ b/desktop/onionshare/resources/images/countries/ni-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/nl-dark.png b/desktop/onionshare/resources/images/countries/nl-dark.png
index 90b4a7c5..90b4a7c5 100644
--- a/desktop/src/onionshare/resources/images/countries/nl-dark.png
+++ b/desktop/onionshare/resources/images/countries/nl-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/nl-light.png b/desktop/onionshare/resources/images/countries/nl-light.png
index e2703d5d..e2703d5d 100644
--- a/desktop/src/onionshare/resources/images/countries/nl-light.png
+++ b/desktop/onionshare/resources/images/countries/nl-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/no-dark.png b/desktop/onionshare/resources/images/countries/no-dark.png
index b4eff187..b4eff187 100644
--- a/desktop/src/onionshare/resources/images/countries/no-dark.png
+++ b/desktop/onionshare/resources/images/countries/no-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/no-light.png b/desktop/onionshare/resources/images/countries/no-light.png
index cae317b6..cae317b6 100644
--- a/desktop/src/onionshare/resources/images/countries/no-light.png
+++ b/desktop/onionshare/resources/images/countries/no-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/np-dark.png b/desktop/onionshare/resources/images/countries/np-dark.png
index edb4adea..edb4adea 100644
--- a/desktop/src/onionshare/resources/images/countries/np-dark.png
+++ b/desktop/onionshare/resources/images/countries/np-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/np-light.png b/desktop/onionshare/resources/images/countries/np-light.png
index 2800e224..2800e224 100644
--- a/desktop/src/onionshare/resources/images/countries/np-light.png
+++ b/desktop/onionshare/resources/images/countries/np-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/nr-dark.png b/desktop/onionshare/resources/images/countries/nr-dark.png
index 3f7ed8e7..3f7ed8e7 100644
--- a/desktop/src/onionshare/resources/images/countries/nr-dark.png
+++ b/desktop/onionshare/resources/images/countries/nr-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/nr-light.png b/desktop/onionshare/resources/images/countries/nr-light.png
index 988bfb2a..988bfb2a 100644
--- a/desktop/src/onionshare/resources/images/countries/nr-light.png
+++ b/desktop/onionshare/resources/images/countries/nr-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/nu-dark.png b/desktop/onionshare/resources/images/countries/nu-dark.png
index a0db8a56..a0db8a56 100644
--- a/desktop/src/onionshare/resources/images/countries/nu-dark.png
+++ b/desktop/onionshare/resources/images/countries/nu-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/nu-light.png b/desktop/onionshare/resources/images/countries/nu-light.png
index 877cdb38..877cdb38 100644
--- a/desktop/src/onionshare/resources/images/countries/nu-light.png
+++ b/desktop/onionshare/resources/images/countries/nu-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/nz-dark.png b/desktop/onionshare/resources/images/countries/nz-dark.png
index 4fb804b5..4fb804b5 100644
--- a/desktop/src/onionshare/resources/images/countries/nz-dark.png
+++ b/desktop/onionshare/resources/images/countries/nz-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/nz-light.png b/desktop/onionshare/resources/images/countries/nz-light.png
index b795cf5f..b795cf5f 100644
--- a/desktop/src/onionshare/resources/images/countries/nz-light.png
+++ b/desktop/onionshare/resources/images/countries/nz-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/om-dark.png b/desktop/onionshare/resources/images/countries/om-dark.png
index cf8a36b4..cf8a36b4 100644
--- a/desktop/src/onionshare/resources/images/countries/om-dark.png
+++ b/desktop/onionshare/resources/images/countries/om-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/om-light.png b/desktop/onionshare/resources/images/countries/om-light.png
index 94618f9c..94618f9c 100644
--- a/desktop/src/onionshare/resources/images/countries/om-light.png
+++ b/desktop/onionshare/resources/images/countries/om-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pa-dark.png b/desktop/onionshare/resources/images/countries/pa-dark.png
index 2aa3064b..2aa3064b 100644
--- a/desktop/src/onionshare/resources/images/countries/pa-dark.png
+++ b/desktop/onionshare/resources/images/countries/pa-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pa-light.png b/desktop/onionshare/resources/images/countries/pa-light.png
index abb59323..abb59323 100644
--- a/desktop/src/onionshare/resources/images/countries/pa-light.png
+++ b/desktop/onionshare/resources/images/countries/pa-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pe-dark.png b/desktop/onionshare/resources/images/countries/pe-dark.png
index 62228343..62228343 100644
--- a/desktop/src/onionshare/resources/images/countries/pe-dark.png
+++ b/desktop/onionshare/resources/images/countries/pe-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pe-light.png b/desktop/onionshare/resources/images/countries/pe-light.png
index bc9279d3..bc9279d3 100644
--- a/desktop/src/onionshare/resources/images/countries/pe-light.png
+++ b/desktop/onionshare/resources/images/countries/pe-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pf-dark.png b/desktop/onionshare/resources/images/countries/pf-dark.png
index 6686cf78..6686cf78 100644
--- a/desktop/src/onionshare/resources/images/countries/pf-dark.png
+++ b/desktop/onionshare/resources/images/countries/pf-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pf-light.png b/desktop/onionshare/resources/images/countries/pf-light.png
index 03c7b722..03c7b722 100644
--- a/desktop/src/onionshare/resources/images/countries/pf-light.png
+++ b/desktop/onionshare/resources/images/countries/pf-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pg-dark.png b/desktop/onionshare/resources/images/countries/pg-dark.png
index b699228d..b699228d 100644
--- a/desktop/src/onionshare/resources/images/countries/pg-dark.png
+++ b/desktop/onionshare/resources/images/countries/pg-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pg-light.png b/desktop/onionshare/resources/images/countries/pg-light.png
index 5b2652a0..5b2652a0 100644
--- a/desktop/src/onionshare/resources/images/countries/pg-light.png
+++ b/desktop/onionshare/resources/images/countries/pg-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ph-dark.png b/desktop/onionshare/resources/images/countries/ph-dark.png
index 4fffd39c..4fffd39c 100644
--- a/desktop/src/onionshare/resources/images/countries/ph-dark.png
+++ b/desktop/onionshare/resources/images/countries/ph-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ph-light.png b/desktop/onionshare/resources/images/countries/ph-light.png
index eeb875a2..eeb875a2 100644
--- a/desktop/src/onionshare/resources/images/countries/ph-light.png
+++ b/desktop/onionshare/resources/images/countries/ph-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pk-dark.png b/desktop/onionshare/resources/images/countries/pk-dark.png
index 5a2fe1b8..5a2fe1b8 100644
--- a/desktop/src/onionshare/resources/images/countries/pk-dark.png
+++ b/desktop/onionshare/resources/images/countries/pk-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pk-light.png b/desktop/onionshare/resources/images/countries/pk-light.png
index 1910be82..1910be82 100644
--- a/desktop/src/onionshare/resources/images/countries/pk-light.png
+++ b/desktop/onionshare/resources/images/countries/pk-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pl-dark.png b/desktop/onionshare/resources/images/countries/pl-dark.png
index f8b9db1c..f8b9db1c 100644
--- a/desktop/src/onionshare/resources/images/countries/pl-dark.png
+++ b/desktop/onionshare/resources/images/countries/pl-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pl-light.png b/desktop/onionshare/resources/images/countries/pl-light.png
index c024ac65..c024ac65 100644
--- a/desktop/src/onionshare/resources/images/countries/pl-light.png
+++ b/desktop/onionshare/resources/images/countries/pl-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pm-dark.png b/desktop/onionshare/resources/images/countries/pm-dark.png
index d56184fa..d56184fa 100644
--- a/desktop/src/onionshare/resources/images/countries/pm-dark.png
+++ b/desktop/onionshare/resources/images/countries/pm-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pm-light.png b/desktop/onionshare/resources/images/countries/pm-light.png
index 160af41e..160af41e 100644
--- a/desktop/src/onionshare/resources/images/countries/pm-light.png
+++ b/desktop/onionshare/resources/images/countries/pm-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pn-dark.png b/desktop/onionshare/resources/images/countries/pn-dark.png
index 1a6aa6b0..1a6aa6b0 100644
--- a/desktop/src/onionshare/resources/images/countries/pn-dark.png
+++ b/desktop/onionshare/resources/images/countries/pn-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pn-light.png b/desktop/onionshare/resources/images/countries/pn-light.png
index ed76d6cf..ed76d6cf 100644
--- a/desktop/src/onionshare/resources/images/countries/pn-light.png
+++ b/desktop/onionshare/resources/images/countries/pn-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pr-dark.png b/desktop/onionshare/resources/images/countries/pr-dark.png
index a6b9fa5e..a6b9fa5e 100644
--- a/desktop/src/onionshare/resources/images/countries/pr-dark.png
+++ b/desktop/onionshare/resources/images/countries/pr-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pr-light.png b/desktop/onionshare/resources/images/countries/pr-light.png
index 6c8f6441..6c8f6441 100644
--- a/desktop/src/onionshare/resources/images/countries/pr-light.png
+++ b/desktop/onionshare/resources/images/countries/pr-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pt-dark.png b/desktop/onionshare/resources/images/countries/pt-dark.png
index e70fda04..e70fda04 100644
--- a/desktop/src/onionshare/resources/images/countries/pt-dark.png
+++ b/desktop/onionshare/resources/images/countries/pt-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pt-light.png b/desktop/onionshare/resources/images/countries/pt-light.png
index d538c414..d538c414 100644
--- a/desktop/src/onionshare/resources/images/countries/pt-light.png
+++ b/desktop/onionshare/resources/images/countries/pt-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pw-dark.png b/desktop/onionshare/resources/images/countries/pw-dark.png
index 232d1ad9..232d1ad9 100644
--- a/desktop/src/onionshare/resources/images/countries/pw-dark.png
+++ b/desktop/onionshare/resources/images/countries/pw-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/pw-light.png b/desktop/onionshare/resources/images/countries/pw-light.png
index e08a7d8a..e08a7d8a 100644
--- a/desktop/src/onionshare/resources/images/countries/pw-light.png
+++ b/desktop/onionshare/resources/images/countries/pw-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/py-dark.png b/desktop/onionshare/resources/images/countries/py-dark.png
index 23116fe0..23116fe0 100644
--- a/desktop/src/onionshare/resources/images/countries/py-dark.png
+++ b/desktop/onionshare/resources/images/countries/py-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/py-light.png b/desktop/onionshare/resources/images/countries/py-light.png
index 9695bfc3..9695bfc3 100644
--- a/desktop/src/onionshare/resources/images/countries/py-light.png
+++ b/desktop/onionshare/resources/images/countries/py-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/qa-dark.png b/desktop/onionshare/resources/images/countries/qa-dark.png
index 06d4bda4..06d4bda4 100644
--- a/desktop/src/onionshare/resources/images/countries/qa-dark.png
+++ b/desktop/onionshare/resources/images/countries/qa-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/qa-light.png b/desktop/onionshare/resources/images/countries/qa-light.png
index 6884cd7c..6884cd7c 100644
--- a/desktop/src/onionshare/resources/images/countries/qa-light.png
+++ b/desktop/onionshare/resources/images/countries/qa-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/re-dark.png b/desktop/onionshare/resources/images/countries/re-dark.png
index a2334f7a..a2334f7a 100644
--- a/desktop/src/onionshare/resources/images/countries/re-dark.png
+++ b/desktop/onionshare/resources/images/countries/re-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/re-light.png b/desktop/onionshare/resources/images/countries/re-light.png
index f9e83b54..f9e83b54 100644
--- a/desktop/src/onionshare/resources/images/countries/re-light.png
+++ b/desktop/onionshare/resources/images/countries/re-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ro-dark.png b/desktop/onionshare/resources/images/countries/ro-dark.png
index bbbe6acc..bbbe6acc 100644
--- a/desktop/src/onionshare/resources/images/countries/ro-dark.png
+++ b/desktop/onionshare/resources/images/countries/ro-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ro-light.png b/desktop/onionshare/resources/images/countries/ro-light.png
index 4a691bd7..4a691bd7 100644
--- a/desktop/src/onionshare/resources/images/countries/ro-light.png
+++ b/desktop/onionshare/resources/images/countries/ro-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/rs-dark.png b/desktop/onionshare/resources/images/countries/rs-dark.png
index 985e15a2..985e15a2 100644
--- a/desktop/src/onionshare/resources/images/countries/rs-dark.png
+++ b/desktop/onionshare/resources/images/countries/rs-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/rs-light.png b/desktop/onionshare/resources/images/countries/rs-light.png
index 206e07db..206e07db 100644
--- a/desktop/src/onionshare/resources/images/countries/rs-light.png
+++ b/desktop/onionshare/resources/images/countries/rs-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ru-dark.png b/desktop/onionshare/resources/images/countries/ru-dark.png
index 69a8874d..69a8874d 100644
--- a/desktop/src/onionshare/resources/images/countries/ru-dark.png
+++ b/desktop/onionshare/resources/images/countries/ru-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ru-light.png b/desktop/onionshare/resources/images/countries/ru-light.png
index 325435a9..325435a9 100644
--- a/desktop/src/onionshare/resources/images/countries/ru-light.png
+++ b/desktop/onionshare/resources/images/countries/ru-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/rw-dark.png b/desktop/onionshare/resources/images/countries/rw-dark.png
index e44fd698..e44fd698 100644
--- a/desktop/src/onionshare/resources/images/countries/rw-dark.png
+++ b/desktop/onionshare/resources/images/countries/rw-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/rw-light.png b/desktop/onionshare/resources/images/countries/rw-light.png
index ea6b7c7a..ea6b7c7a 100644
--- a/desktop/src/onionshare/resources/images/countries/rw-light.png
+++ b/desktop/onionshare/resources/images/countries/rw-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sa-dark.png b/desktop/onionshare/resources/images/countries/sa-dark.png
index e44fd698..e44fd698 100644
--- a/desktop/src/onionshare/resources/images/countries/sa-dark.png
+++ b/desktop/onionshare/resources/images/countries/sa-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sa-light.png b/desktop/onionshare/resources/images/countries/sa-light.png
index ea6b7c7a..ea6b7c7a 100644
--- a/desktop/src/onionshare/resources/images/countries/sa-light.png
+++ b/desktop/onionshare/resources/images/countries/sa-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sb-dark.png b/desktop/onionshare/resources/images/countries/sb-dark.png
index 261a4095..261a4095 100644
--- a/desktop/src/onionshare/resources/images/countries/sb-dark.png
+++ b/desktop/onionshare/resources/images/countries/sb-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sb-light.png b/desktop/onionshare/resources/images/countries/sb-light.png
index 0a73afdf..0a73afdf 100644
--- a/desktop/src/onionshare/resources/images/countries/sb-light.png
+++ b/desktop/onionshare/resources/images/countries/sb-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sc-dark.png b/desktop/onionshare/resources/images/countries/sc-dark.png
index 74c28631..74c28631 100644
--- a/desktop/src/onionshare/resources/images/countries/sc-dark.png
+++ b/desktop/onionshare/resources/images/countries/sc-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sc-light.png b/desktop/onionshare/resources/images/countries/sc-light.png
index 18ed8659..18ed8659 100644
--- a/desktop/src/onionshare/resources/images/countries/sc-light.png
+++ b/desktop/onionshare/resources/images/countries/sc-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sd-dark.png b/desktop/onionshare/resources/images/countries/sd-dark.png
index 52dbef8b..52dbef8b 100644
--- a/desktop/src/onionshare/resources/images/countries/sd-dark.png
+++ b/desktop/onionshare/resources/images/countries/sd-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sd-light.png b/desktop/onionshare/resources/images/countries/sd-light.png
index 0bb7e29a..0bb7e29a 100644
--- a/desktop/src/onionshare/resources/images/countries/sd-light.png
+++ b/desktop/onionshare/resources/images/countries/sd-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/se-dark.png b/desktop/onionshare/resources/images/countries/se-dark.png
index 6032507b..6032507b 100644
--- a/desktop/src/onionshare/resources/images/countries/se-dark.png
+++ b/desktop/onionshare/resources/images/countries/se-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/se-light.png b/desktop/onionshare/resources/images/countries/se-light.png
index 5862f831..5862f831 100644
--- a/desktop/src/onionshare/resources/images/countries/se-light.png
+++ b/desktop/onionshare/resources/images/countries/se-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sg-dark.png b/desktop/onionshare/resources/images/countries/sg-dark.png
index ff3c057c..ff3c057c 100644
--- a/desktop/src/onionshare/resources/images/countries/sg-dark.png
+++ b/desktop/onionshare/resources/images/countries/sg-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sg-light.png b/desktop/onionshare/resources/images/countries/sg-light.png
index c5916354..c5916354 100644
--- a/desktop/src/onionshare/resources/images/countries/sg-light.png
+++ b/desktop/onionshare/resources/images/countries/sg-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sh-dark.png b/desktop/onionshare/resources/images/countries/sh-dark.png
index 87f15ddc..87f15ddc 100644
--- a/desktop/src/onionshare/resources/images/countries/sh-dark.png
+++ b/desktop/onionshare/resources/images/countries/sh-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sh-light.png b/desktop/onionshare/resources/images/countries/sh-light.png
index 7e3b7a25..7e3b7a25 100644
--- a/desktop/src/onionshare/resources/images/countries/sh-light.png
+++ b/desktop/onionshare/resources/images/countries/sh-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/si-dark.png b/desktop/onionshare/resources/images/countries/si-dark.png
index eb3e6130..eb3e6130 100644
--- a/desktop/src/onionshare/resources/images/countries/si-dark.png
+++ b/desktop/onionshare/resources/images/countries/si-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/si-light.png b/desktop/onionshare/resources/images/countries/si-light.png
index a51a869b..a51a869b 100644
--- a/desktop/src/onionshare/resources/images/countries/si-light.png
+++ b/desktop/onionshare/resources/images/countries/si-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sj-dark.png b/desktop/onionshare/resources/images/countries/sj-dark.png
index c88dc399..c88dc399 100644
--- a/desktop/src/onionshare/resources/images/countries/sj-dark.png
+++ b/desktop/onionshare/resources/images/countries/sj-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sj-light.png b/desktop/onionshare/resources/images/countries/sj-light.png
index aebce38e..aebce38e 100644
--- a/desktop/src/onionshare/resources/images/countries/sj-light.png
+++ b/desktop/onionshare/resources/images/countries/sj-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sk-dark.png b/desktop/onionshare/resources/images/countries/sk-dark.png
index 2ad12e8a..2ad12e8a 100644
--- a/desktop/src/onionshare/resources/images/countries/sk-dark.png
+++ b/desktop/onionshare/resources/images/countries/sk-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sk-light.png b/desktop/onionshare/resources/images/countries/sk-light.png
index 81ed0270..81ed0270 100644
--- a/desktop/src/onionshare/resources/images/countries/sk-light.png
+++ b/desktop/onionshare/resources/images/countries/sk-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sl-dark.png b/desktop/onionshare/resources/images/countries/sl-dark.png
index 0c7db0e5..0c7db0e5 100644
--- a/desktop/src/onionshare/resources/images/countries/sl-dark.png
+++ b/desktop/onionshare/resources/images/countries/sl-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sl-light.png b/desktop/onionshare/resources/images/countries/sl-light.png
index c01afd7d..c01afd7d 100644
--- a/desktop/src/onionshare/resources/images/countries/sl-light.png
+++ b/desktop/onionshare/resources/images/countries/sl-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sm-dark.png b/desktop/onionshare/resources/images/countries/sm-dark.png
index c0804a31..c0804a31 100644
--- a/desktop/src/onionshare/resources/images/countries/sm-dark.png
+++ b/desktop/onionshare/resources/images/countries/sm-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sm-light.png b/desktop/onionshare/resources/images/countries/sm-light.png
index c4cbbb63..c4cbbb63 100644
--- a/desktop/src/onionshare/resources/images/countries/sm-light.png
+++ b/desktop/onionshare/resources/images/countries/sm-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sn-dark.png b/desktop/onionshare/resources/images/countries/sn-dark.png
index e6d7e7e3..e6d7e7e3 100644
--- a/desktop/src/onionshare/resources/images/countries/sn-dark.png
+++ b/desktop/onionshare/resources/images/countries/sn-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sn-light.png b/desktop/onionshare/resources/images/countries/sn-light.png
index d411723d..d411723d 100644
--- a/desktop/src/onionshare/resources/images/countries/sn-light.png
+++ b/desktop/onionshare/resources/images/countries/sn-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/so-dark.png b/desktop/onionshare/resources/images/countries/so-dark.png
index 09dbdd31..09dbdd31 100644
--- a/desktop/src/onionshare/resources/images/countries/so-dark.png
+++ b/desktop/onionshare/resources/images/countries/so-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/so-light.png b/desktop/onionshare/resources/images/countries/so-light.png
index 319806a9..319806a9 100644
--- a/desktop/src/onionshare/resources/images/countries/so-light.png
+++ b/desktop/onionshare/resources/images/countries/so-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sr-dark.png b/desktop/onionshare/resources/images/countries/sr-dark.png
index 6bbe8c18..6bbe8c18 100644
--- a/desktop/src/onionshare/resources/images/countries/sr-dark.png
+++ b/desktop/onionshare/resources/images/countries/sr-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sr-light.png b/desktop/onionshare/resources/images/countries/sr-light.png
index 5639e2e6..5639e2e6 100644
--- a/desktop/src/onionshare/resources/images/countries/sr-light.png
+++ b/desktop/onionshare/resources/images/countries/sr-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ss-dark.png b/desktop/onionshare/resources/images/countries/ss-dark.png
index 53c265ce..53c265ce 100644
--- a/desktop/src/onionshare/resources/images/countries/ss-dark.png
+++ b/desktop/onionshare/resources/images/countries/ss-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ss-light.png b/desktop/onionshare/resources/images/countries/ss-light.png
index ac50f907..ac50f907 100644
--- a/desktop/src/onionshare/resources/images/countries/ss-light.png
+++ b/desktop/onionshare/resources/images/countries/ss-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/st-dark.png b/desktop/onionshare/resources/images/countries/st-dark.png
index 5c9c2212..5c9c2212 100644
--- a/desktop/src/onionshare/resources/images/countries/st-dark.png
+++ b/desktop/onionshare/resources/images/countries/st-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/st-light.png b/desktop/onionshare/resources/images/countries/st-light.png
index 549cc82d..549cc82d 100644
--- a/desktop/src/onionshare/resources/images/countries/st-light.png
+++ b/desktop/onionshare/resources/images/countries/st-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sv-dark.png b/desktop/onionshare/resources/images/countries/sv-dark.png
index 3c026354..3c026354 100644
--- a/desktop/src/onionshare/resources/images/countries/sv-dark.png
+++ b/desktop/onionshare/resources/images/countries/sv-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sv-light.png b/desktop/onionshare/resources/images/countries/sv-light.png
index 833c7c4c..833c7c4c 100644
--- a/desktop/src/onionshare/resources/images/countries/sv-light.png
+++ b/desktop/onionshare/resources/images/countries/sv-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sx-dark.png b/desktop/onionshare/resources/images/countries/sx-dark.png
index dc92e845..dc92e845 100644
--- a/desktop/src/onionshare/resources/images/countries/sx-dark.png
+++ b/desktop/onionshare/resources/images/countries/sx-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sx-light.png b/desktop/onionshare/resources/images/countries/sx-light.png
index ab87a09b..ab87a09b 100644
--- a/desktop/src/onionshare/resources/images/countries/sx-light.png
+++ b/desktop/onionshare/resources/images/countries/sx-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sy-dark.png b/desktop/onionshare/resources/images/countries/sy-dark.png
index 6854e048..6854e048 100644
--- a/desktop/src/onionshare/resources/images/countries/sy-dark.png
+++ b/desktop/onionshare/resources/images/countries/sy-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sy-light.png b/desktop/onionshare/resources/images/countries/sy-light.png
index e93145f3..e93145f3 100644
--- a/desktop/src/onionshare/resources/images/countries/sy-light.png
+++ b/desktop/onionshare/resources/images/countries/sy-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sz-dark.png b/desktop/onionshare/resources/images/countries/sz-dark.png
index 3f5b7484..3f5b7484 100644
--- a/desktop/src/onionshare/resources/images/countries/sz-dark.png
+++ b/desktop/onionshare/resources/images/countries/sz-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/sz-light.png b/desktop/onionshare/resources/images/countries/sz-light.png
index 5e8bcf51..5e8bcf51 100644
--- a/desktop/src/onionshare/resources/images/countries/sz-light.png
+++ b/desktop/onionshare/resources/images/countries/sz-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tc-dark.png b/desktop/onionshare/resources/images/countries/tc-dark.png
index 3e2b87ef..3e2b87ef 100644
--- a/desktop/src/onionshare/resources/images/countries/tc-dark.png
+++ b/desktop/onionshare/resources/images/countries/tc-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tc-light.png b/desktop/onionshare/resources/images/countries/tc-light.png
index 85f1a6bf..85f1a6bf 100644
--- a/desktop/src/onionshare/resources/images/countries/tc-light.png
+++ b/desktop/onionshare/resources/images/countries/tc-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/td-dark.png b/desktop/onionshare/resources/images/countries/td-dark.png
index 97094eeb..97094eeb 100644
--- a/desktop/src/onionshare/resources/images/countries/td-dark.png
+++ b/desktop/onionshare/resources/images/countries/td-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/td-light.png b/desktop/onionshare/resources/images/countries/td-light.png
index 3c6925e9..3c6925e9 100644
--- a/desktop/src/onionshare/resources/images/countries/td-light.png
+++ b/desktop/onionshare/resources/images/countries/td-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tf-dark.png b/desktop/onionshare/resources/images/countries/tf-dark.png
index 046df0cc..046df0cc 100644
--- a/desktop/src/onionshare/resources/images/countries/tf-dark.png
+++ b/desktop/onionshare/resources/images/countries/tf-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tf-light.png b/desktop/onionshare/resources/images/countries/tf-light.png
index 51996920..51996920 100644
--- a/desktop/src/onionshare/resources/images/countries/tf-light.png
+++ b/desktop/onionshare/resources/images/countries/tf-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tg-dark.png b/desktop/onionshare/resources/images/countries/tg-dark.png
index 2c55859c..2c55859c 100644
--- a/desktop/src/onionshare/resources/images/countries/tg-dark.png
+++ b/desktop/onionshare/resources/images/countries/tg-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tg-light.png b/desktop/onionshare/resources/images/countries/tg-light.png
index 214d676f..214d676f 100644
--- a/desktop/src/onionshare/resources/images/countries/tg-light.png
+++ b/desktop/onionshare/resources/images/countries/tg-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/th-dark.png b/desktop/onionshare/resources/images/countries/th-dark.png
index 73eef9a1..73eef9a1 100644
--- a/desktop/src/onionshare/resources/images/countries/th-dark.png
+++ b/desktop/onionshare/resources/images/countries/th-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/th-light.png b/desktop/onionshare/resources/images/countries/th-light.png
index 42695ac2..42695ac2 100644
--- a/desktop/src/onionshare/resources/images/countries/th-light.png
+++ b/desktop/onionshare/resources/images/countries/th-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tj-dark.png b/desktop/onionshare/resources/images/countries/tj-dark.png
index bfa735f7..bfa735f7 100644
--- a/desktop/src/onionshare/resources/images/countries/tj-dark.png
+++ b/desktop/onionshare/resources/images/countries/tj-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tj-light.png b/desktop/onionshare/resources/images/countries/tj-light.png
index f83884ef..f83884ef 100644
--- a/desktop/src/onionshare/resources/images/countries/tj-light.png
+++ b/desktop/onionshare/resources/images/countries/tj-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tk-dark.png b/desktop/onionshare/resources/images/countries/tk-dark.png
index 790bef42..790bef42 100644
--- a/desktop/src/onionshare/resources/images/countries/tk-dark.png
+++ b/desktop/onionshare/resources/images/countries/tk-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tk-light.png b/desktop/onionshare/resources/images/countries/tk-light.png
index 6ff2838f..6ff2838f 100644
--- a/desktop/src/onionshare/resources/images/countries/tk-light.png
+++ b/desktop/onionshare/resources/images/countries/tk-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tl-dark.png b/desktop/onionshare/resources/images/countries/tl-dark.png
index 9d583570..9d583570 100644
--- a/desktop/src/onionshare/resources/images/countries/tl-dark.png
+++ b/desktop/onionshare/resources/images/countries/tl-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tl-light.png b/desktop/onionshare/resources/images/countries/tl-light.png
index ff13802b..ff13802b 100644
--- a/desktop/src/onionshare/resources/images/countries/tl-light.png
+++ b/desktop/onionshare/resources/images/countries/tl-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tm-dark.png b/desktop/onionshare/resources/images/countries/tm-dark.png
index 01bc88bc..01bc88bc 100644
--- a/desktop/src/onionshare/resources/images/countries/tm-dark.png
+++ b/desktop/onionshare/resources/images/countries/tm-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tm-light.png b/desktop/onionshare/resources/images/countries/tm-light.png
index 29b83a3e..29b83a3e 100644
--- a/desktop/src/onionshare/resources/images/countries/tm-light.png
+++ b/desktop/onionshare/resources/images/countries/tm-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tn-dark.png b/desktop/onionshare/resources/images/countries/tn-dark.png
index eb4a311e..eb4a311e 100644
--- a/desktop/src/onionshare/resources/images/countries/tn-dark.png
+++ b/desktop/onionshare/resources/images/countries/tn-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tn-light.png b/desktop/onionshare/resources/images/countries/tn-light.png
index 8ed9b5b1..8ed9b5b1 100644
--- a/desktop/src/onionshare/resources/images/countries/tn-light.png
+++ b/desktop/onionshare/resources/images/countries/tn-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/to-dark.png b/desktop/onionshare/resources/images/countries/to-dark.png
index 636691ce..636691ce 100644
--- a/desktop/src/onionshare/resources/images/countries/to-dark.png
+++ b/desktop/onionshare/resources/images/countries/to-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/to-light.png b/desktop/onionshare/resources/images/countries/to-light.png
index 48aeaaf7..48aeaaf7 100644
--- a/desktop/src/onionshare/resources/images/countries/to-light.png
+++ b/desktop/onionshare/resources/images/countries/to-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tr-dark.png b/desktop/onionshare/resources/images/countries/tr-dark.png
index 83b4a81f..83b4a81f 100644
--- a/desktop/src/onionshare/resources/images/countries/tr-dark.png
+++ b/desktop/onionshare/resources/images/countries/tr-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tr-light.png b/desktop/onionshare/resources/images/countries/tr-light.png
index 8fc8356c..8fc8356c 100644
--- a/desktop/src/onionshare/resources/images/countries/tr-light.png
+++ b/desktop/onionshare/resources/images/countries/tr-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tt-dark.png b/desktop/onionshare/resources/images/countries/tt-dark.png
index 2f0a30b6..2f0a30b6 100644
--- a/desktop/src/onionshare/resources/images/countries/tt-dark.png
+++ b/desktop/onionshare/resources/images/countries/tt-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tt-light.png b/desktop/onionshare/resources/images/countries/tt-light.png
index e9d6260b..e9d6260b 100644
--- a/desktop/src/onionshare/resources/images/countries/tt-light.png
+++ b/desktop/onionshare/resources/images/countries/tt-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tw-dark.png b/desktop/onionshare/resources/images/countries/tw-dark.png
index 7e715768..7e715768 100644
--- a/desktop/src/onionshare/resources/images/countries/tw-dark.png
+++ b/desktop/onionshare/resources/images/countries/tw-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tw-light.png b/desktop/onionshare/resources/images/countries/tw-light.png
index 5225e367..5225e367 100644
--- a/desktop/src/onionshare/resources/images/countries/tw-light.png
+++ b/desktop/onionshare/resources/images/countries/tw-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tz-dark.png b/desktop/onionshare/resources/images/countries/tz-dark.png
index aa1042e2..aa1042e2 100644
--- a/desktop/src/onionshare/resources/images/countries/tz-dark.png
+++ b/desktop/onionshare/resources/images/countries/tz-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/tz-light.png b/desktop/onionshare/resources/images/countries/tz-light.png
index df89cc29..df89cc29 100644
--- a/desktop/src/onionshare/resources/images/countries/tz-light.png
+++ b/desktop/onionshare/resources/images/countries/tz-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ua-dark.png b/desktop/onionshare/resources/images/countries/ua-dark.png
index 2be2c633..2be2c633 100644
--- a/desktop/src/onionshare/resources/images/countries/ua-dark.png
+++ b/desktop/onionshare/resources/images/countries/ua-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ua-light.png b/desktop/onionshare/resources/images/countries/ua-light.png
index f5e788a9..f5e788a9 100644
--- a/desktop/src/onionshare/resources/images/countries/ua-light.png
+++ b/desktop/onionshare/resources/images/countries/ua-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ug-dark.png b/desktop/onionshare/resources/images/countries/ug-dark.png
index 6967c5fd..6967c5fd 100644
--- a/desktop/src/onionshare/resources/images/countries/ug-dark.png
+++ b/desktop/onionshare/resources/images/countries/ug-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ug-light.png b/desktop/onionshare/resources/images/countries/ug-light.png
index 23f5a627..23f5a627 100644
--- a/desktop/src/onionshare/resources/images/countries/ug-light.png
+++ b/desktop/onionshare/resources/images/countries/ug-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/us-dark.png b/desktop/onionshare/resources/images/countries/us-dark.png
index 474ca430..474ca430 100644
--- a/desktop/src/onionshare/resources/images/countries/us-dark.png
+++ b/desktop/onionshare/resources/images/countries/us-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/us-light.png b/desktop/onionshare/resources/images/countries/us-light.png
index 53fd8f60..53fd8f60 100644
--- a/desktop/src/onionshare/resources/images/countries/us-light.png
+++ b/desktop/onionshare/resources/images/countries/us-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/uy-dark.png b/desktop/onionshare/resources/images/countries/uy-dark.png
index 3f7eb005..3f7eb005 100644
--- a/desktop/src/onionshare/resources/images/countries/uy-dark.png
+++ b/desktop/onionshare/resources/images/countries/uy-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/uy-light.png b/desktop/onionshare/resources/images/countries/uy-light.png
index 94cba645..94cba645 100644
--- a/desktop/src/onionshare/resources/images/countries/uy-light.png
+++ b/desktop/onionshare/resources/images/countries/uy-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/uz-dark.png b/desktop/onionshare/resources/images/countries/uz-dark.png
index 87931eaa..87931eaa 100644
--- a/desktop/src/onionshare/resources/images/countries/uz-dark.png
+++ b/desktop/onionshare/resources/images/countries/uz-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/uz-light.png b/desktop/onionshare/resources/images/countries/uz-light.png
index d2f1ce88..d2f1ce88 100644
--- a/desktop/src/onionshare/resources/images/countries/uz-light.png
+++ b/desktop/onionshare/resources/images/countries/uz-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/va-dark.png b/desktop/onionshare/resources/images/countries/va-dark.png
index 1b9aec76..1b9aec76 100644
--- a/desktop/src/onionshare/resources/images/countries/va-dark.png
+++ b/desktop/onionshare/resources/images/countries/va-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/va-light.png b/desktop/onionshare/resources/images/countries/va-light.png
index 82e0a393..82e0a393 100644
--- a/desktop/src/onionshare/resources/images/countries/va-light.png
+++ b/desktop/onionshare/resources/images/countries/va-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/vc-dark.png b/desktop/onionshare/resources/images/countries/vc-dark.png
index e00c0afa..e00c0afa 100644
--- a/desktop/src/onionshare/resources/images/countries/vc-dark.png
+++ b/desktop/onionshare/resources/images/countries/vc-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/vc-light.png b/desktop/onionshare/resources/images/countries/vc-light.png
index f9641988..f9641988 100644
--- a/desktop/src/onionshare/resources/images/countries/vc-light.png
+++ b/desktop/onionshare/resources/images/countries/vc-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ve-dark.png b/desktop/onionshare/resources/images/countries/ve-dark.png
index 59cd9be8..59cd9be8 100644
--- a/desktop/src/onionshare/resources/images/countries/ve-dark.png
+++ b/desktop/onionshare/resources/images/countries/ve-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ve-light.png b/desktop/onionshare/resources/images/countries/ve-light.png
index 9e69dcf2..9e69dcf2 100644
--- a/desktop/src/onionshare/resources/images/countries/ve-light.png
+++ b/desktop/onionshare/resources/images/countries/ve-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/vg-dark.png b/desktop/onionshare/resources/images/countries/vg-dark.png
index e319eed7..e319eed7 100644
--- a/desktop/src/onionshare/resources/images/countries/vg-dark.png
+++ b/desktop/onionshare/resources/images/countries/vg-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/vg-light.png b/desktop/onionshare/resources/images/countries/vg-light.png
index 0dffbab7..0dffbab7 100644
--- a/desktop/src/onionshare/resources/images/countries/vg-light.png
+++ b/desktop/onionshare/resources/images/countries/vg-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/vi-dark.png b/desktop/onionshare/resources/images/countries/vi-dark.png
index 0d18d536..0d18d536 100644
--- a/desktop/src/onionshare/resources/images/countries/vi-dark.png
+++ b/desktop/onionshare/resources/images/countries/vi-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/vi-light.png b/desktop/onionshare/resources/images/countries/vi-light.png
index 148dfe99..148dfe99 100644
--- a/desktop/src/onionshare/resources/images/countries/vi-light.png
+++ b/desktop/onionshare/resources/images/countries/vi-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/vn-dark.png b/desktop/onionshare/resources/images/countries/vn-dark.png
index ec90ca30..ec90ca30 100644
--- a/desktop/src/onionshare/resources/images/countries/vn-dark.png
+++ b/desktop/onionshare/resources/images/countries/vn-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/vn-light.png b/desktop/onionshare/resources/images/countries/vn-light.png
index 2262d671..2262d671 100644
--- a/desktop/src/onionshare/resources/images/countries/vn-light.png
+++ b/desktop/onionshare/resources/images/countries/vn-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/vu-dark.png b/desktop/onionshare/resources/images/countries/vu-dark.png
index fc988b47..fc988b47 100644
--- a/desktop/src/onionshare/resources/images/countries/vu-dark.png
+++ b/desktop/onionshare/resources/images/countries/vu-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/vu-light.png b/desktop/onionshare/resources/images/countries/vu-light.png
index 6d219327..6d219327 100644
--- a/desktop/src/onionshare/resources/images/countries/vu-light.png
+++ b/desktop/onionshare/resources/images/countries/vu-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/wf-dark.png b/desktop/onionshare/resources/images/countries/wf-dark.png
index 99fcd85d..99fcd85d 100644
--- a/desktop/src/onionshare/resources/images/countries/wf-dark.png
+++ b/desktop/onionshare/resources/images/countries/wf-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/wf-light.png b/desktop/onionshare/resources/images/countries/wf-light.png
index 8e01cf3c..8e01cf3c 100644
--- a/desktop/src/onionshare/resources/images/countries/wf-light.png
+++ b/desktop/onionshare/resources/images/countries/wf-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ws-dark.png b/desktop/onionshare/resources/images/countries/ws-dark.png
index d29815e2..d29815e2 100644
--- a/desktop/src/onionshare/resources/images/countries/ws-dark.png
+++ b/desktop/onionshare/resources/images/countries/ws-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ws-light.png b/desktop/onionshare/resources/images/countries/ws-light.png
index ec294e63..ec294e63 100644
--- a/desktop/src/onionshare/resources/images/countries/ws-light.png
+++ b/desktop/onionshare/resources/images/countries/ws-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ye-dark.png b/desktop/onionshare/resources/images/countries/ye-dark.png
index 90d17dbb..90d17dbb 100644
--- a/desktop/src/onionshare/resources/images/countries/ye-dark.png
+++ b/desktop/onionshare/resources/images/countries/ye-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/ye-light.png b/desktop/onionshare/resources/images/countries/ye-light.png
index 304ddd78..304ddd78 100644
--- a/desktop/src/onionshare/resources/images/countries/ye-light.png
+++ b/desktop/onionshare/resources/images/countries/ye-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/yt-dark.png b/desktop/onionshare/resources/images/countries/yt-dark.png
index 1b9a64e4..1b9a64e4 100644
--- a/desktop/src/onionshare/resources/images/countries/yt-dark.png
+++ b/desktop/onionshare/resources/images/countries/yt-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/yt-light.png b/desktop/onionshare/resources/images/countries/yt-light.png
index b732797a..b732797a 100644
--- a/desktop/src/onionshare/resources/images/countries/yt-light.png
+++ b/desktop/onionshare/resources/images/countries/yt-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/za-dark.png b/desktop/onionshare/resources/images/countries/za-dark.png
index 58a78aa9..58a78aa9 100644
--- a/desktop/src/onionshare/resources/images/countries/za-dark.png
+++ b/desktop/onionshare/resources/images/countries/za-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/za-light.png b/desktop/onionshare/resources/images/countries/za-light.png
index 424fc735..424fc735 100644
--- a/desktop/src/onionshare/resources/images/countries/za-light.png
+++ b/desktop/onionshare/resources/images/countries/za-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/zm-dark.png b/desktop/onionshare/resources/images/countries/zm-dark.png
index 9b3fffbc..9b3fffbc 100644
--- a/desktop/src/onionshare/resources/images/countries/zm-dark.png
+++ b/desktop/onionshare/resources/images/countries/zm-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/zm-light.png b/desktop/onionshare/resources/images/countries/zm-light.png
index 0d86cc5a..0d86cc5a 100644
--- a/desktop/src/onionshare/resources/images/countries/zm-light.png
+++ b/desktop/onionshare/resources/images/countries/zm-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/zw-dark.png b/desktop/onionshare/resources/images/countries/zw-dark.png
index 301e74d4..301e74d4 100644
--- a/desktop/src/onionshare/resources/images/countries/zw-dark.png
+++ b/desktop/onionshare/resources/images/countries/zw-dark.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/countries/zw-light.png b/desktop/onionshare/resources/images/countries/zw-light.png
index 2db496d9..2db496d9 100644
--- a/desktop/src/onionshare/resources/images/countries/zw-light.png
+++ b/desktop/onionshare/resources/images/countries/zw-light.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/dark_icon-add.png b/desktop/onionshare/resources/images/dark_icon-add.png
index 5b8600c9..5b8600c9 100644
--- a/desktop/src/onionshare/resources/images/dark_icon-add.png
+++ b/desktop/onionshare/resources/images/dark_icon-add.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/dark_icon-close.png b/desktop/onionshare/resources/images/dark_icon-close.png
index b9efb45d..b9efb45d 100644
--- a/desktop/src/onionshare/resources/images/dark_icon-close.png
+++ b/desktop/onionshare/resources/images/dark_icon-close.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/dark_logo_text.png b/desktop/onionshare/resources/images/dark_logo_text.png
index 6568ee0d..6568ee0d 100644
--- a/desktop/src/onionshare/resources/images/dark_logo_text.png
+++ b/desktop/onionshare/resources/images/dark_logo_text.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/dark_logo_text_bg.png b/desktop/onionshare/resources/images/dark_logo_text_bg.png
index 065443b2..065443b2 100644
--- a/desktop/src/onionshare/resources/images/dark_logo_text_bg.png
+++ b/desktop/onionshare/resources/images/dark_logo_text_bg.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/dark_mode_chat.png b/desktop/onionshare/resources/images/dark_mode_chat.png
index fe58d384..fe58d384 100644
--- a/desktop/src/onionshare/resources/images/dark_mode_chat.png
+++ b/desktop/onionshare/resources/images/dark_mode_chat.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/dark_mode_new_tab_chat.png b/desktop/onionshare/resources/images/dark_mode_new_tab_chat.png
index e496a63a..e496a63a 100644
--- a/desktop/src/onionshare/resources/images/dark_mode_new_tab_chat.png
+++ b/desktop/onionshare/resources/images/dark_mode_new_tab_chat.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/dark_mode_new_tab_receive.png b/desktop/onionshare/resources/images/dark_mode_new_tab_receive.png
index 6912ff24..6912ff24 100644
--- a/desktop/src/onionshare/resources/images/dark_mode_new_tab_receive.png
+++ b/desktop/onionshare/resources/images/dark_mode_new_tab_receive.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/dark_mode_new_tab_share.png b/desktop/onionshare/resources/images/dark_mode_new_tab_share.png
index 3d8ae81f..3d8ae81f 100644
--- a/desktop/src/onionshare/resources/images/dark_mode_new_tab_share.png
+++ b/desktop/onionshare/resources/images/dark_mode_new_tab_share.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/dark_mode_new_tab_website.png b/desktop/onionshare/resources/images/dark_mode_new_tab_website.png
index 5eef2a2e..5eef2a2e 100644
--- a/desktop/src/onionshare/resources/images/dark_mode_new_tab_website.png
+++ b/desktop/onionshare/resources/images/dark_mode_new_tab_website.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/dark_mode_receive.png b/desktop/onionshare/resources/images/dark_mode_receive.png
index 60795631..60795631 100644
--- a/desktop/src/onionshare/resources/images/dark_mode_receive.png
+++ b/desktop/onionshare/resources/images/dark_mode_receive.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/dark_mode_share.png b/desktop/onionshare/resources/images/dark_mode_share.png
index b6ea7202..b6ea7202 100644
--- a/desktop/src/onionshare/resources/images/dark_mode_share.png
+++ b/desktop/onionshare/resources/images/dark_mode_share.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/dark_mode_website.png b/desktop/onionshare/resources/images/dark_mode_website.png
index 52bae58c..52bae58c 100644
--- a/desktop/src/onionshare/resources/images/dark_mode_website.png
+++ b/desktop/onionshare/resources/images/dark_mode_website.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/dark_settings.png b/desktop/onionshare/resources/images/dark_settings.png
index 8bb96f8a..8bb96f8a 100644
--- a/desktop/src/onionshare/resources/images/dark_settings.png
+++ b/desktop/onionshare/resources/images/dark_settings.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/dark_tor_settings.png b/desktop/onionshare/resources/images/dark_tor_settings.png
index 0b44bd95..0b44bd95 100644
--- a/desktop/src/onionshare/resources/images/dark_tor_settings.png
+++ b/desktop/onionshare/resources/images/dark_tor_settings.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/file_delete.png b/desktop/onionshare/resources/images/file_delete.png
index b9057df5..b9057df5 100644
--- a/desktop/src/onionshare/resources/images/file_delete.png
+++ b/desktop/onionshare/resources/images/file_delete.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/history_completed.png b/desktop/onionshare/resources/images/history_completed.png
index e68fe5a2..e68fe5a2 100644
--- a/desktop/src/onionshare/resources/images/history_completed.png
+++ b/desktop/onionshare/resources/images/history_completed.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/history_completed_none.png b/desktop/onionshare/resources/images/history_completed_none.png
index 8dbd6939..8dbd6939 100644
--- a/desktop/src/onionshare/resources/images/history_completed_none.png
+++ b/desktop/onionshare/resources/images/history_completed_none.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/history_in_progress.png b/desktop/onionshare/resources/images/history_in_progress.png
index 19694659..19694659 100644
--- a/desktop/src/onionshare/resources/images/history_in_progress.png
+++ b/desktop/onionshare/resources/images/history_in_progress.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/history_in_progress_none.png b/desktop/onionshare/resources/images/history_in_progress_none.png
index 2d61dba4..2d61dba4 100644
--- a/desktop/src/onionshare/resources/images/history_in_progress_none.png
+++ b/desktop/onionshare/resources/images/history_in_progress_none.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/history_requests.png b/desktop/onionshare/resources/images/history_requests.png
index 4965744d..4965744d 100644
--- a/desktop/src/onionshare/resources/images/history_requests.png
+++ b/desktop/onionshare/resources/images/history_requests.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/history_requests_none.png b/desktop/onionshare/resources/images/history_requests_none.png
index 93a71ef3..93a71ef3 100644
--- a/desktop/src/onionshare/resources/images/history_requests_none.png
+++ b/desktop/onionshare/resources/images/history_requests_none.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/info.png b/desktop/onionshare/resources/images/info.png
index 4be4e65e..4be4e65e 100644
--- a/desktop/src/onionshare/resources/images/info.png
+++ b/desktop/onionshare/resources/images/info.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/light_logo_text.png b/desktop/onionshare/resources/images/light_logo_text.png
index 4b05d0b2..4b05d0b2 100644
--- a/desktop/src/onionshare/resources/images/light_logo_text.png
+++ b/desktop/onionshare/resources/images/light_logo_text.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/light_logo_text_bg.png b/desktop/onionshare/resources/images/light_logo_text_bg.png
index 72156b50..72156b50 100644
--- a/desktop/src/onionshare/resources/images/light_logo_text_bg.png
+++ b/desktop/onionshare/resources/images/light_logo_text_bg.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/light_mode_chat.png b/desktop/onionshare/resources/images/light_mode_chat.png
index cd3a4432..cd3a4432 100644
--- a/desktop/src/onionshare/resources/images/light_mode_chat.png
+++ b/desktop/onionshare/resources/images/light_mode_chat.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/light_mode_new_tab_chat.png b/desktop/onionshare/resources/images/light_mode_new_tab_chat.png
index ec1e29cb..ec1e29cb 100644
--- a/desktop/src/onionshare/resources/images/light_mode_new_tab_chat.png
+++ b/desktop/onionshare/resources/images/light_mode_new_tab_chat.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/light_mode_new_tab_receive.png b/desktop/onionshare/resources/images/light_mode_new_tab_receive.png
index 722fe3df..722fe3df 100644
--- a/desktop/src/onionshare/resources/images/light_mode_new_tab_receive.png
+++ b/desktop/onionshare/resources/images/light_mode_new_tab_receive.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/light_mode_new_tab_share.png b/desktop/onionshare/resources/images/light_mode_new_tab_share.png
index 17569fc2..17569fc2 100644
--- a/desktop/src/onionshare/resources/images/light_mode_new_tab_share.png
+++ b/desktop/onionshare/resources/images/light_mode_new_tab_share.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/light_mode_new_tab_website.png b/desktop/onionshare/resources/images/light_mode_new_tab_website.png
index e88f344e..e88f344e 100644
--- a/desktop/src/onionshare/resources/images/light_mode_new_tab_website.png
+++ b/desktop/onionshare/resources/images/light_mode_new_tab_website.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/light_mode_receive.png b/desktop/onionshare/resources/images/light_mode_receive.png
index 277ec487..277ec487 100644
--- a/desktop/src/onionshare/resources/images/light_mode_receive.png
+++ b/desktop/onionshare/resources/images/light_mode_receive.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/light_mode_share.png b/desktop/onionshare/resources/images/light_mode_share.png
index 2339f69f..2339f69f 100644
--- a/desktop/src/onionshare/resources/images/light_mode_share.png
+++ b/desktop/onionshare/resources/images/light_mode_share.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/light_mode_website.png b/desktop/onionshare/resources/images/light_mode_website.png
index 56e492a3..56e492a3 100644
--- a/desktop/src/onionshare/resources/images/light_mode_website.png
+++ b/desktop/onionshare/resources/images/light_mode_website.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/light_settings.png b/desktop/onionshare/resources/images/light_settings.png
index b6f8fa55..b6f8fa55 100644
--- a/desktop/src/onionshare/resources/images/light_settings.png
+++ b/desktop/onionshare/resources/images/light_settings.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/light_tor_settings.png b/desktop/onionshare/resources/images/light_tor_settings.png
index e8db08eb..e8db08eb 100644
--- a/desktop/src/onionshare/resources/images/light_tor_settings.png
+++ b/desktop/onionshare/resources/images/light_tor_settings.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/logo.png b/desktop/onionshare/resources/images/logo.png
index 43884c1f..43884c1f 100644
--- a/desktop/src/onionshare/resources/images/logo.png
+++ b/desktop/onionshare/resources/images/logo.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/logo_grayscale.png b/desktop/onionshare/resources/images/logo_grayscale.png
index 950d9ff6..950d9ff6 100644
--- a/desktop/src/onionshare/resources/images/logo_grayscale.png
+++ b/desktop/onionshare/resources/images/logo_grayscale.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/logo_transparent.png b/desktop/onionshare/resources/images/logo_transparent.png
index 1e8ed196..1e8ed196 100644
--- a/desktop/src/onionshare/resources/images/logo_transparent.png
+++ b/desktop/onionshare/resources/images/logo_transparent.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/mode_chat.svg b/desktop/onionshare/resources/images/mode_chat.svg
index 335e9cf4..335e9cf4 100644
--- a/desktop/src/onionshare/resources/images/mode_chat.svg
+++ b/desktop/onionshare/resources/images/mode_chat.svg
diff --git a/desktop/src/onionshare/resources/images/mode_receive.svg b/desktop/onionshare/resources/images/mode_receive.svg
index 5a0a29fd..5a0a29fd 100644
--- a/desktop/src/onionshare/resources/images/mode_receive.svg
+++ b/desktop/onionshare/resources/images/mode_receive.svg
diff --git a/desktop/src/onionshare/resources/images/mode_share.svg b/desktop/onionshare/resources/images/mode_share.svg
index 9fb97c65..9fb97c65 100644
--- a/desktop/src/onionshare/resources/images/mode_share.svg
+++ b/desktop/onionshare/resources/images/mode_share.svg
diff --git a/desktop/src/onionshare/resources/images/mode_website.svg b/desktop/onionshare/resources/images/mode_website.svg
index 1a80846f..1a80846f 100644
--- a/desktop/src/onionshare/resources/images/mode_website.svg
+++ b/desktop/onionshare/resources/images/mode_website.svg
diff --git a/desktop/src/onionshare/resources/images/open_folder.png b/desktop/onionshare/resources/images/open_folder.png
index 0a734c41..0a734c41 100644
--- a/desktop/src/onionshare/resources/images/open_folder.png
+++ b/desktop/onionshare/resources/images/open_folder.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/open_message.png b/desktop/onionshare/resources/images/open_message.png
index 6712ecf9..6712ecf9 100644
--- a/desktop/src/onionshare/resources/images/open_message.png
+++ b/desktop/onionshare/resources/images/open_message.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/persistent_enabled.png b/desktop/onionshare/resources/images/persistent_enabled.png
index 6c295db5..6c295db5 100644
--- a/desktop/src/onionshare/resources/images/persistent_enabled.png
+++ b/desktop/onionshare/resources/images/persistent_enabled.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/receive_icon_toggle.png b/desktop/onionshare/resources/images/receive_icon_toggle.png
index 846ececb..846ececb 100644
--- a/desktop/src/onionshare/resources/images/receive_icon_toggle.png
+++ b/desktop/onionshare/resources/images/receive_icon_toggle.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/receive_icon_toggle_selected.png b/desktop/onionshare/resources/images/receive_icon_toggle_selected.png
index 127ce208..127ce208 100644
--- a/desktop/src/onionshare/resources/images/receive_icon_toggle_selected.png
+++ b/desktop/onionshare/resources/images/receive_icon_toggle_selected.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/receive_icon_transparent.png b/desktop/onionshare/resources/images/receive_icon_transparent.png
index 99207097..99207097 100644
--- a/desktop/src/onionshare/resources/images/receive_icon_transparent.png
+++ b/desktop/onionshare/resources/images/receive_icon_transparent.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/server_started.png b/desktop/onionshare/resources/images/server_started.png
index 9c0c3176..9c0c3176 100644
--- a/desktop/src/onionshare/resources/images/server_started.png
+++ b/desktop/onionshare/resources/images/server_started.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/server_stopped.png b/desktop/onionshare/resources/images/server_stopped.png
index 5c5b2ec0..5c5b2ec0 100644
--- a/desktop/src/onionshare/resources/images/server_stopped.png
+++ b/desktop/onionshare/resources/images/server_stopped.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/server_working.png b/desktop/onionshare/resources/images/server_working.png
index e5c8b318..e5c8b318 100644
--- a/desktop/src/onionshare/resources/images/server_working.png
+++ b/desktop/onionshare/resources/images/server_working.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/share_icon_toggle.png b/desktop/onionshare/resources/images/share_icon_toggle.png
index 87303c9f..87303c9f 100644
--- a/desktop/src/onionshare/resources/images/share_icon_toggle.png
+++ b/desktop/onionshare/resources/images/share_icon_toggle.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/share_icon_toggle_selected.png b/desktop/onionshare/resources/images/share_icon_toggle_selected.png
index 0ba52cff..0ba52cff 100644
--- a/desktop/src/onionshare/resources/images/share_icon_toggle_selected.png
+++ b/desktop/onionshare/resources/images/share_icon_toggle_selected.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/images/share_icon_transparent.png b/desktop/onionshare/resources/images/share_icon_transparent.png
index 3648c3fb..3648c3fb 100644
--- a/desktop/src/onionshare/resources/images/share_icon_transparent.png
+++ b/desktop/onionshare/resources/images/share_icon_transparent.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/locale/af.json b/desktop/onionshare/resources/locale/af.json
index 6a7219bd..6a7219bd 100644
--- a/desktop/src/onionshare/resources/locale/af.json
+++ b/desktop/onionshare/resources/locale/af.json
diff --git a/desktop/src/onionshare/resources/locale/am.json b/desktop/onionshare/resources/locale/am.json
index 9a93c31f..9a93c31f 100644
--- a/desktop/src/onionshare/resources/locale/am.json
+++ b/desktop/onionshare/resources/locale/am.json
diff --git a/desktop/src/onionshare/resources/locale/ar.json b/desktop/onionshare/resources/locale/ar.json
index eaf26a4c..eaf26a4c 100644
--- a/desktop/src/onionshare/resources/locale/ar.json
+++ b/desktop/onionshare/resources/locale/ar.json
diff --git a/desktop/src/onionshare/resources/locale/bg.json b/desktop/onionshare/resources/locale/bg.json
index 76feab06..76feab06 100644
--- a/desktop/src/onionshare/resources/locale/bg.json
+++ b/desktop/onionshare/resources/locale/bg.json
diff --git a/desktop/src/onionshare/resources/locale/bn.json b/desktop/onionshare/resources/locale/bn.json
index a156afb3..a156afb3 100644
--- a/desktop/src/onionshare/resources/locale/bn.json
+++ b/desktop/onionshare/resources/locale/bn.json
diff --git a/desktop/src/onionshare/resources/locale/ca.json b/desktop/onionshare/resources/locale/ca.json
index 132c764a..132c764a 100644
--- a/desktop/src/onionshare/resources/locale/ca.json
+++ b/desktop/onionshare/resources/locale/ca.json
diff --git a/desktop/src/onionshare/resources/locale/ckb.json b/desktop/onionshare/resources/locale/ckb.json
index 68122adb..68122adb 100644
--- a/desktop/src/onionshare/resources/locale/ckb.json
+++ b/desktop/onionshare/resources/locale/ckb.json
diff --git a/desktop/src/onionshare/resources/locale/cs.json b/desktop/onionshare/resources/locale/cs.json
index 901f6439..901f6439 100644
--- a/desktop/src/onionshare/resources/locale/cs.json
+++ b/desktop/onionshare/resources/locale/cs.json
diff --git a/desktop/src/onionshare/resources/locale/da.json b/desktop/onionshare/resources/locale/da.json
index 57ff605a..57ff605a 100644
--- a/desktop/src/onionshare/resources/locale/da.json
+++ b/desktop/onionshare/resources/locale/da.json
diff --git a/desktop/src/onionshare/resources/locale/de.json b/desktop/onionshare/resources/locale/de.json
index 04cce9e3..04cce9e3 100644
--- a/desktop/src/onionshare/resources/locale/de.json
+++ b/desktop/onionshare/resources/locale/de.json
diff --git a/desktop/src/onionshare/resources/locale/el.json b/desktop/onionshare/resources/locale/el.json
index b195869c..d47d92d2 100644
--- a/desktop/src/onionshare/resources/locale/el.json
+++ b/desktop/onionshare/resources/locale/el.json
@@ -90,16 +90,16 @@
"gui_settings_authenticate_no_auth_option": "Χωρίς επαλήθευση ή επαλήθευση με cookie",
"gui_settings_authenticate_password_option": "Κωδικός",
"gui_settings_password_label": "Κωδικός",
- "gui_settings_tor_bridges": "Υποστήριξη γεφυρών Tor",
+ "gui_settings_tor_bridges": "Σύνδεση με χρήση γέφυρας Tor;",
"gui_settings_tor_bridges_no_bridges_radio_option": "Να μη χρησιμοποιηθούν γέφυρες",
"gui_settings_tor_bridges_obfs4_radio_option": "Να χρησιμοποιηθούν τα ενσωματωμένα obfs4 pluggable transports",
"gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Να χρησιμοποιηθούν τα ενσωματωμένα obfs4 pluggable transports (απαιτείται το πρόγραμμα obfs4proxy)",
"gui_settings_tor_bridges_meek_lite_azure_radio_option": "Να χρησιμοποιηθουν τα ενσωματωμένα meek_lite (Azure) pluggable transports",
"gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Να χρησιμοποιηθούν τα ενσωματωμένα meek_lite (Azure) pluggable transports (απαιτείται το πρόγραμμα obfs4proxy)",
- "gui_settings_meek_lite_expensive_warning": "Προσοχή: Τα meek_lite bridges επιβαρύνουν πολύ το Tor Project στη λειτουργία. <br><br> Χρησιμοποιήστε τα μόνο αν δεν μπορείτε να συνδεθείτε κατ' ευθείαν στο Tor μέσω obfs4 transports ή άλλων κανονικών bridges.",
+ "gui_settings_meek_lite_expensive_warning": "Προσοχή: Οι γέφυρες meek_azure επιβαρύνουν τη λειτουργία του Tor Project. <br><br> Χρησιμοποιήστε τες μόνο αν δεν μπορείτε να συνδεθείτε κατ' ευθείαν στο Tor μέσω obfs4 transports ή άλλων κανονικών γεφυρών.",
"gui_settings_tor_bridges_custom_radio_option": "Χρήση παραμετροποιημένων γεφυρών",
"gui_settings_tor_bridges_custom_label": "Αποκτήστε γέφυρες στο <a href=\"https://bridges.torproject.org/options?lang=el\"> https://bridges.torproject.org</a>",
- "gui_settings_tor_bridges_invalid": "Δεν λειτούργησε κάποιο από τα bridges που προσθέσατε.\nΞαναελέγξτε τα ή προσθέστε άλλα.",
+ "gui_settings_tor_bridges_invalid": "Καμία γέφυρα που προσθέσατε δεν λειτουργεί. Ελέγξτε ξανά ή προσθέστε άλλες.",
"gui_settings_button_save": "Αποθήκευση",
"gui_settings_button_cancel": "Άκυρο",
"gui_settings_button_help": "Βοήθεια",
@@ -178,7 +178,7 @@
"gui_upload_finished": "",
"gui_download_in_progress": "",
"gui_open_folder_error_nautilus": "Δεν μπορεί να ανοιχτεί ο φάκελος γιατί το nautilus δεν είναι διαθέσιμο. Το αρχείο είναι εδω: {}",
- "gui_settings_language_label": "Προτιμώμενη γλώσσα",
+ "gui_settings_language_label": "Γλώσσα",
"gui_settings_language_changed_notice": "Επανεκκινήστε το OnionShare για να εφαρμοστεί η αλλαγή γλώσσας.",
"timeout_upload_still_running": "Αναμονή ολοκλήρωσης του ανεβάσματος",
"gui_add_files": "Προσθήκη αρχείων",
@@ -237,7 +237,7 @@
"gui_receive_flatpak_data_dir": "Επειδή έχετε εγκαταστήσει το OnionShare μέσω Flatpak, θα πρέπει να αποθηκεύσετε τα αρχεία μέσα σε έναν φάκελο στο ~/OnionShare.",
"gui_chat_stop_server": "Τερματισμός διακομιστή συνομιλίας",
"gui_chat_start_server": "Έναρξη διακομιστή συνομιλίας",
- "mode_settings_website_disable_csp_checkbox": "Μην στέλνετε κεφαλίδα με περιεχόμενο από την πολιτικής ασφάλειας σας (επιτρέπει στην ιστοσελίδα σας να χρησιμοποιεί πόρους τρίτων)",
+ "mode_settings_website_disable_csp_checkbox": "Μην στέλνετε την προεπιλεγμένη κεφαλίδα Πολιτικής Ασφάλειας Περιεχομένου (επιτρέπει στην ιστοσελίδα σας να χρησιμοποιεί πόρους τρίτων)",
"mode_settings_receive_data_dir_browse_button": "Επιλογή",
"mode_settings_receive_data_dir_label": "Αποθήκευση αρχείων σε",
"mode_settings_share_autostop_sharing_checkbox": "Τερματισμός κοινής χρήσης με την ολοκλήρωση αρχείων (αποεπιλέξτε για λήψη μεμονωμένων αρχείων)",
@@ -309,5 +309,30 @@
"gui_settings_theme_dark": "Σκοτεινό",
"gui_url_instructions": "Αρχικά, στείλτε την παρακάτω διεύθυνση OnionShare:",
"gui_settings_theme_light": "Φωτεινό",
- "gui_client_auth_instructions": "Στη συνέχεια, στείλτε το ιδιωτικό κλειδί για πρόσβαση στην υπηρεσία OnionShare:"
+ "gui_client_auth_instructions": "Στη συνέχεια, στείλτε το ιδιωτικό κλειδί για πρόσβαση στην υπηρεσία OnionShare:",
+ "gui_dragdrop_sandbox_flatpak": "Για να γίνει πιο ασφαλές το sandbox του Flatpak, δεν υποστηρίζεται η μεταφορά και απόθεση. Χρησιμοποιήστε τα κουμπιά Προσθήκη αρχείων και Προσθήκη φακέλου για να αναζητήσετε αρχεία.",
+ "moat_captcha_label": "Λύστε το CAPTCHA για να αιτηθείτε μια γέφυρα.",
+ "gui_settings_tor_bridges_label": "Οι γέφυρες σας βοηθούν να αποκτήσετε πρόσβαση στο δίκτυο Tor σε τοποθεσίες όπου είναι αποκλεισμένο. Ανάλογα με το πού βρίσκεστε, μια γέφυρα μπορεί να λειτουργεί καλύτερα από μια άλλη.",
+ "moat_captcha_submit": "Υποβολή",
+ "moat_solution_empty_error": "Πρέπει να εισαγάγετε τους χαρακτήρες από την εικόνα",
+ "moat_contact_label": "Επικοινωνία με BridgeDB...",
+ "gui_tor_settings_window_title": "Ρυθμίσεις Tor",
+ "gui_settings_controller_extras_label": "Ρυθμίσεις Tor",
+ "gui_settings_bridge_use_checkbox": "Χρήση γέφυρας",
+ "gui_settings_bridge_radio_builtin": "Επιλέξτε μια ενσωματωμένη γέφυρα",
+ "gui_settings_bridge_none_radio_option": "Χωρίς χρήση γέφυρας",
+ "gui_settings_bridge_moat_radio_option": "Αιτηθείτε μια γέφυρα από torproject.org",
+ "gui_settings_bridge_moat_button": "Αίτημα για νέα γέφυρα",
+ "gui_settings_bridge_custom_radio_option": "Προτείνετε μια γέφυρα για την οποία ενημερωθήκατε από αξιόπιστη πηγή",
+ "gui_settings_bridge_custom_placeholder": "πληκτρολογήστε διεύθυνση: πόρτα (μια ανά γραμμή)",
+ "gui_settings_moat_bridges_invalid": "Δεν έχετε αιτηθεί ακόμα γέφυρα από το torproject.org.",
+ "gui_settings_stop_active_tabs_label": "Υπάρχουν υπηρεσίες που εκτελούνται σε ορισμένες από τις καρτέλες σας.\nΠρέπει να σταματήσετε όλες τις υπηρεσίες για να αλλάξετε τις ρυθμίσεις του Tor.",
+ "gui_settings_version_label": "Χρησιμοποιείτε το OnionShare {}",
+ "gui_settings_help_label": "Χρειάζεστε βοήθεια; Δείτε το <a href='https://docs.onionshare.org'>docs.onionshare.org</a>",
+ "mode_settings_website_custom_csp_checkbox": "Αποστολή προσαρμοσμένης κεφαλίδας Πολιτικής Ασφαλείας Περιεχομένου",
+ "moat_captcha_placeholder": "Εισαγάγετε τους χαρακτήρες από την εικόνα",
+ "moat_captcha_reload": "Επαναφόρτωση",
+ "moat_bridgedb_error": "Σφάλμα επικοινωνίας με BridgeDB.",
+ "moat_captcha_error": "Η λύση δεν είναι σωστή. Παρακαλούμε δοκιμάστε ξανά.",
+ "mode_tor_not_connected_label": "Το OnionShare δεν είναι συνδεδεμένο με το δίκτυο Tor"
}
diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/onionshare/resources/locale/en.json
index 8b4a6301..8b4a6301 100644
--- a/desktop/src/onionshare/resources/locale/en.json
+++ b/desktop/onionshare/resources/locale/en.json
diff --git a/desktop/src/onionshare/resources/locale/enm.json b/desktop/onionshare/resources/locale/enm.json
index 7db75f7d..7db75f7d 100644
--- a/desktop/src/onionshare/resources/locale/enm.json
+++ b/desktop/onionshare/resources/locale/enm.json
diff --git a/desktop/src/onionshare/resources/locale/eo.json b/desktop/onionshare/resources/locale/eo.json
index 9f450275..9f450275 100644
--- a/desktop/src/onionshare/resources/locale/eo.json
+++ b/desktop/onionshare/resources/locale/eo.json
diff --git a/desktop/src/onionshare/resources/locale/es.json b/desktop/onionshare/resources/locale/es.json
index ed4cab2b..ed4cab2b 100644
--- a/desktop/src/onionshare/resources/locale/es.json
+++ b/desktop/onionshare/resources/locale/es.json
diff --git a/desktop/src/onionshare/resources/locale/fa.json b/desktop/onionshare/resources/locale/fa.json
index 2c27c998..2c27c998 100644
--- a/desktop/src/onionshare/resources/locale/fa.json
+++ b/desktop/onionshare/resources/locale/fa.json
diff --git a/desktop/src/onionshare/resources/locale/fi.json b/desktop/onionshare/resources/locale/fi.json
index 37c28dac..37c28dac 100644
--- a/desktop/src/onionshare/resources/locale/fi.json
+++ b/desktop/onionshare/resources/locale/fi.json
diff --git a/desktop/src/onionshare/resources/locale/fr.json b/desktop/onionshare/resources/locale/fr.json
index fdbd6ae4..21bd0bf4 100644
--- a/desktop/src/onionshare/resources/locale/fr.json
+++ b/desktop/onionshare/resources/locale/fr.json
@@ -80,10 +80,10 @@
"gui_settings_connection_type_test_button": "Tester la connexion à Tor",
"gui_settings_control_port_label": "Port de contrôle",
"gui_settings_authenticate_label": "Paramètres d’authentification de Tor",
- "gui_settings_tor_bridges": "Prise en charge des ponts de Tor",
+ "gui_settings_tor_bridges": "Se connecter en utilisant un pont Tor ?",
"gui_settings_tor_bridges_custom_radio_option": "Utiliser des ponts personnalisés",
"gui_settings_tor_bridges_custom_label": "Vous pouvez obtenir des ponts sur <a href=\"https://bridges.torproject.org/options\">https://bridges.torproject.org</a>",
- "gui_settings_tor_bridges_invalid": "Aucun des ponts que vous avez ajoutés ne fonctionne.\nVérifiez-les de nouveau ou ajoutez-en d’autres.",
+ "gui_settings_tor_bridges_invalid": "Aucun des ponts que vous avez ajoutés ne fonctionne. Vérifiez-les de nouveau ou ajoutez-en d’autres.",
"settings_error_unknown": "Impossible de se connecter au contrôleur Tor, car vos paramètres sont incohérents.",
"settings_error_automatic": "Impossible de se connecter au contrôleur Tor. Le Navigateur Tor (téléchargeable sur torproject.org/fr) fonctionne-t-il en arrière-plan ?",
"settings_error_socket_port": "Impossible de se connecter au contrôleur Tor à {}:{}.",
@@ -140,7 +140,7 @@
"gui_upload_finished": "{} envoyé",
"gui_download_in_progress": "Téléchargement démarré {}",
"gui_open_folder_error_nautilus": "Impossible d’ouvrir le dossier, car nautilus n’est pas disponible. Le fichier est ici : {}",
- "gui_settings_language_label": "Langue de choix",
+ "gui_settings_language_label": "Langue",
"help_stealth": "Utilisation de l’autorisation client (avancé)",
"help_receive": "Recevoir des partages au lieu de les envoyer",
"gui_receive_start_server": "Démarrer le mode réception",
@@ -153,7 +153,7 @@
"gui_settings_stealth_option": "Utiliser l’autorisation du client",
"timeout_upload_still_running": "En attente de la fin de l'envoi",
"gui_settings_autoupdate_check_button": "Vérifier la présence d’une nouvelle version",
- "settings_test_success": "Vous êtes connecté au contrôleur Tor.\n\nVersion de Tor : {}\nPrend en charge les services onion éphémères : {}.\nPrend en charge l’authentification client : {}.\nPrend en charge la nouvelle génération d’adresses .onion : {}.",
+ "settings_test_success": "Vous êtes connecté au contrôleur Tor.\n\nVersion de Tor : {}\nPrend en charge les services oignon éphémères : {}.\nPrend en charge l’authentification client : {}.\nPrend en charge la nouvelle génération d’adresses .onion : {}.",
"update_error_check_error": "Impossible de vérifier l’existence d’une mise à jour : peut-être n’êtes-vous pas connecté à Tor ou le site Web d’OnionShare est-il hors service ?",
"update_error_invalid_latest_version": "Impossible de vérifier la présence d’une mise à jour : le site Web d’OnionShare indique que la version la plus récente est la « {} » qui n’est pas reconnue…",
"gui_tor_connection_ask": "Ouvrir les paramètres pour résoudre le problème de connexion à Tor ?",
@@ -172,7 +172,7 @@
"gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Utiliser les transports enfichables obfs4 intégrés (exige obfs4proxy)",
"gui_settings_tor_bridges_meek_lite_azure_radio_option": "Utiliser les transports enfichables meek_lite (Azure) intégrés",
"gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Utiliser les transports enfichables meek_lite (Azure) intégrés (exige obfs4proxy)",
- "gui_settings_meek_lite_expensive_warning": "Avertissement : L’exploitation de ponts meek_lite demande beaucoup de ressources au Projet Tor.<br><br>Ne les utilisez que si vous ne pouvez pas vous connecter directement à Tor par les transports obfs4 ou autres ponts normaux.",
+ "gui_settings_meek_lite_expensive_warning": "Avertissement : L’exploitation de ponts meek_azure demande beaucoup de ressources au Projet Tor.<br><br>Ne les utilisez que si vous ne pouvez pas vous connecter directement à Tor par les transports obfs4 ou autres ponts normaux.",
"gui_settings_autostop_timer_checkbox": "Utiliser une minuterie d’arrêt automatique",
"gui_server_started_after_autostop_timer": "La minuterie d’arrêt automatique est arrivée au bout de son délai avant le démarrage du serveur. Veuillez mettre en place un nouveau partage.",
"gui_server_autostop_timer_expired": "La minuterie d’arrêt automatique est déjà arrivée au bout de son délai. Veuillez la modifier pour commencer le partage.",
@@ -247,12 +247,12 @@
"gui_close_tab_warning_persistent_description": "Cet onglet est persistant. Si vous le fermez, vous perdrez l’adresse onion qu’il utilise. Voulez-vous vraiment le fermer ?",
"mode_settings_autostop_timer_checkbox": "Arrêter un service onion à une heure prédéterminée",
"mode_settings_autostart_timer_checkbox": "Démarrer un service onion à une heure prédéterminée",
- "mode_settings_website_disable_csp_checkbox": "Ne pas envoyer d’en-tête Politique de sécurité de contenu (permet à votre site Web d’utiliser des ressources tierces)",
+ "mode_settings_website_disable_csp_checkbox": "Ne pas envoyer l’en-tête par défaut de Politique de sécurité de contenu (permet à votre site Web d’utiliser des ressources tierces)",
"mode_settings_receive_data_dir_browse_button": "Parcourir",
"mode_settings_receive_data_dir_label": "Enregistrer les fichiers dans",
"mode_settings_share_autostop_sharing_checkbox": "Cesser le partage une fois que les fichiers ont été envoyés (décocher afin de permettre le téléchargement de fichiers individuels)",
"mode_settings_legacy_checkbox": "Utiliser une ancienne adresse (service onion v2, non recommandée)",
- "mode_settings_public_checkbox": "Ceci est un service OnionShare public (sans clé privée)",
+ "mode_settings_public_checkbox": "Ce service OnionShare est public (il désactive la clé privée)",
"mode_settings_persistent_checkbox": "Enregistrer cet onglet et l’ouvrir automatiquement quand j’ouvre OnionShare",
"mode_settings_advanced_toggle_hide": "Cacher les paramètres avancés",
"mode_settings_advanced_toggle_show": "Afficher les paramètres avancés",
@@ -297,24 +297,49 @@
"gui_status_indicator_chat_scheduled": "Planifié…",
"gui_status_indicator_chat_working": "Démarrage…",
"gui_status_indicator_chat_stopped": "Prêt à dialoguer",
- "gui_copied_client_auth_title": "Clé privée copiée",
+ "gui_copied_client_auth_title": "La clé privée a été copiée",
"gui_please_wait_no_button": "Démarrage…",
- "gui_copied_client_auth": "Clé privée copiée dans le presse-papiers",
- "gui_qr_label_url_title": "Adresse OnionShare",
+ "gui_copied_client_auth": "La clé privée a été copiée dans le presse-papiers",
+ "gui_qr_label_url_title": "Adresse OnionShare",
"gui_hide": "Cacher",
"gui_qr_label_auth_string_title": "Clé privée",
"gui_copy_client_auth": "Copier la clé privée",
"gui_share_url_public_description": "<b>Quiconque</b> disposant de cette adresse OnionShare peut <b>télécharger</b> vos fichiers en utilisant le <b>Navigateur Tor</b> : <img src='{}' />",
- "gui_url_instructions": "Tout d'abord, envoyez l'adresse OnionShare ci-dessous :",
+ "gui_url_instructions": "Envoyez d’abord l’adresse OnionShare ci-dessous :",
"gui_settings_theme_light": "Clair",
- "gui_reveal": "Montrer",
+ "gui_reveal": "Révéler",
"gui_chat_url_public_description": "<b>Quiconque</b> disposant de cette adresse OnionShare peut <b>se joindre à ce salon de discussion</b> en utilisant le <b>Navigateur Tor</b> : <img src='{}' />",
- "gui_url_instructions_public_mode": "Envoyez l'adresse OnionShare ci-dessous :",
+ "gui_url_instructions_public_mode": "Envoyez l’adresse OnionShare ci-dessous :",
"gui_settings_theme_label": "Thème",
"gui_settings_theme_auto": "Automatique",
"gui_settings_theme_dark": "Sombre",
"gui_website_url_public_description": "<b>Quiconque</b> disposant de cette adresse OnionShare peut <b>visiter</b> votre site Web en utilisant le <b>Navigateur Tor</b> : <img src='{}' />",
- "gui_server_doesnt_support_stealth": "Désolé, cette version de Tor ne prend pas en charge la fonctionnalité \"stealth\" (le client d'authentification). Veuillez essayer avec une version plus récente de Tor, ou utilisez le mode 'public' s'il n'a pas besoin d'être privé.",
+ "gui_server_doesnt_support_stealth": "Désolé, cette version de Tor ne prend pas en charge l’authentification client. Veuillez essayer avec une version plus récente de Tor ou utilisez le mode « public » si la confidentialité n’est pas nécessaire.",
"gui_receive_url_public_description": "<b>Quiconque</b> disposant de cette adresse OnionShare peut <b>téléverser</b> des fichiers vers votre ordinateur en utilisant le <b>Navigateur Tor</b> : <img src='{}' />",
- "gui_client_auth_instructions": "Ensuite, envoyez la clé privée pour autoriser l'accès à votre service OnionShare :"
+ "gui_client_auth_instructions": "Envoyez ensuite la clé privée pour accorder l’accès à votre service OnionShare :",
+ "gui_dragdrop_sandbox_flatpak": "Afin de rendre la sandbox Flatpak plus sécurisée, le glisser-coller n'est pas pris en charge. Utilisez les boutons Ajouter des fichiers et Ajouter des dossiers pour chercher vos fichiers à la place.",
+ "moat_solution_empty_error": "Vous devez saisir les caractères présentés par l’image",
+ "gui_settings_stop_active_tabs_label": "Des services sont en cours d’exécution dans certains de vos onglets.\nVous devez arrêter tous les services pour changer vos paramètres de Tor.",
+ "moat_captcha_label": "Résolvez le CAPTCHA pour demander un pont.",
+ "gui_tor_settings_window_title": "Paramètres de Tor",
+ "gui_settings_controller_extras_label": "Paramètres de Tor",
+ "gui_settings_tor_bridges_label": "Les ponts vous aident à accéder au réseau Tor où Tor est bloqué. Selon l’endroit où vous êtes, un pont pourrait fonctionner mieux qu’un autre.",
+ "gui_settings_bridge_use_checkbox": "Utiliser un pont",
+ "gui_settings_bridge_radio_builtin": "Choisir un pont intégré",
+ "gui_settings_bridge_none_radio_option": "Ne pas utiliser de pont",
+ "gui_settings_bridge_moat_radio_option": "Demander un pont à torproject.org",
+ "gui_settings_bridge_moat_button": "Demander un nouveau pont",
+ "gui_settings_bridge_custom_radio_option": "Fournir un pont dont vous avez connaissance de source sûre",
+ "gui_settings_bridge_custom_placeholder": "écrire address:port (une par ligne)",
+ "gui_settings_moat_bridges_invalid": "Vous n'avez pas encore demandé un pont depuis torprohect.com.",
+ "gui_settings_version_label": "Vous utilisez OnionShare {}",
+ "gui_settings_help_label": "Besoin d’aide ? Consultez <a href='https://docs.onionshare.org'>docs.onionshare.org</a>",
+ "mode_settings_website_custom_csp_checkbox": "Envoyer en-tête de Politique de sécurité de contenu personnalisé",
+ "moat_contact_label": "Contact de BridgeDB…",
+ "moat_captcha_placeholder": "Saisissez les caractères de l’image",
+ "moat_captcha_submit": "Envoyer",
+ "moat_captcha_reload": "Recharger",
+ "moat_bridgedb_error": "Erreur lors du contact de BridgeDB.",
+ "moat_captcha_error": "La solution est erronée. Veuillez réessayer.",
+ "mode_tor_not_connected_label": "OnionShare n’est pas connecté au réseau Tor"
}
diff --git a/desktop/src/onionshare/resources/locale/ga.json b/desktop/onionshare/resources/locale/ga.json
index 7d8563a9..7d8563a9 100644
--- a/desktop/src/onionshare/resources/locale/ga.json
+++ b/desktop/onionshare/resources/locale/ga.json
diff --git a/desktop/src/onionshare/resources/locale/gl.json b/desktop/onionshare/resources/locale/gl.json
index 6600dd9b..6600dd9b 100644
--- a/desktop/src/onionshare/resources/locale/gl.json
+++ b/desktop/onionshare/resources/locale/gl.json
diff --git a/desktop/src/onionshare/resources/locale/gu.json b/desktop/onionshare/resources/locale/gu.json
index 313f17d8..313f17d8 100644
--- a/desktop/src/onionshare/resources/locale/gu.json
+++ b/desktop/onionshare/resources/locale/gu.json
diff --git a/desktop/src/onionshare/resources/locale/he.json b/desktop/onionshare/resources/locale/he.json
index ee941304..ee941304 100644
--- a/desktop/src/onionshare/resources/locale/he.json
+++ b/desktop/onionshare/resources/locale/he.json
diff --git a/desktop/src/onionshare/resources/locale/hi.json b/desktop/onionshare/resources/locale/hi.json
index 4d2ff6e5..4d2ff6e5 100644
--- a/desktop/src/onionshare/resources/locale/hi.json
+++ b/desktop/onionshare/resources/locale/hi.json
diff --git a/desktop/src/onionshare/resources/locale/hr.json b/desktop/onionshare/resources/locale/hr.json
index 39df94fa..39df94fa 100644
--- a/desktop/src/onionshare/resources/locale/hr.json
+++ b/desktop/onionshare/resources/locale/hr.json
diff --git a/desktop/src/onionshare/resources/locale/hu.json b/desktop/onionshare/resources/locale/hu.json
index 3a725427..3a725427 100644
--- a/desktop/src/onionshare/resources/locale/hu.json
+++ b/desktop/onionshare/resources/locale/hu.json
diff --git a/desktop/src/onionshare/resources/locale/id.json b/desktop/onionshare/resources/locale/id.json
index 7cdb5993..7cdb5993 100644
--- a/desktop/src/onionshare/resources/locale/id.json
+++ b/desktop/onionshare/resources/locale/id.json
diff --git a/desktop/src/onionshare/resources/locale/is.json b/desktop/onionshare/resources/locale/is.json
index a1c2b9af..a1c2b9af 100644
--- a/desktop/src/onionshare/resources/locale/is.json
+++ b/desktop/onionshare/resources/locale/is.json
diff --git a/desktop/src/onionshare/resources/locale/it.json b/desktop/onionshare/resources/locale/it.json
index 9063f0f0..9063f0f0 100644
--- a/desktop/src/onionshare/resources/locale/it.json
+++ b/desktop/onionshare/resources/locale/it.json
diff --git a/desktop/src/onionshare/resources/locale/ja.json b/desktop/onionshare/resources/locale/ja.json
index 5290ea63..5290ea63 100644
--- a/desktop/src/onionshare/resources/locale/ja.json
+++ b/desktop/onionshare/resources/locale/ja.json
diff --git a/desktop/src/onionshare/resources/locale/ka.json b/desktop/onionshare/resources/locale/ka.json
index 87d5c0c5..87d5c0c5 100644
--- a/desktop/src/onionshare/resources/locale/ka.json
+++ b/desktop/onionshare/resources/locale/ka.json
diff --git a/desktop/src/onionshare/resources/locale/km.json b/desktop/onionshare/resources/locale/km.json
index 11b3cdb3..11b3cdb3 100644
--- a/desktop/src/onionshare/resources/locale/km.json
+++ b/desktop/onionshare/resources/locale/km.json
diff --git a/desktop/src/onionshare/resources/locale/ko.json b/desktop/onionshare/resources/locale/ko.json
index 76c0c814..76c0c814 100644
--- a/desktop/src/onionshare/resources/locale/ko.json
+++ b/desktop/onionshare/resources/locale/ko.json
diff --git a/desktop/src/onionshare/resources/locale/lg.json b/desktop/onionshare/resources/locale/lg.json
index 13e70fdf..13e70fdf 100644
--- a/desktop/src/onionshare/resources/locale/lg.json
+++ b/desktop/onionshare/resources/locale/lg.json
diff --git a/desktop/src/onionshare/resources/locale/lt.json b/desktop/onionshare/resources/locale/lt.json
index 2436efcd..2436efcd 100644
--- a/desktop/src/onionshare/resources/locale/lt.json
+++ b/desktop/onionshare/resources/locale/lt.json
diff --git a/desktop/src/onionshare/resources/locale/mk.json b/desktop/onionshare/resources/locale/mk.json
index a264021f..a264021f 100644
--- a/desktop/src/onionshare/resources/locale/mk.json
+++ b/desktop/onionshare/resources/locale/mk.json
diff --git a/desktop/src/onionshare/resources/locale/ms.json b/desktop/onionshare/resources/locale/ms.json
index 371c61b7..371c61b7 100644
--- a/desktop/src/onionshare/resources/locale/ms.json
+++ b/desktop/onionshare/resources/locale/ms.json
diff --git a/desktop/src/onionshare/resources/locale/nb_NO.json b/desktop/onionshare/resources/locale/nb_NO.json
index e4f9b317..e4f9b317 100644
--- a/desktop/src/onionshare/resources/locale/nb_NO.json
+++ b/desktop/onionshare/resources/locale/nb_NO.json
diff --git a/desktop/src/onionshare/resources/locale/nl.json b/desktop/onionshare/resources/locale/nl.json
index 2ae1351a..2ae1351a 100644
--- a/desktop/src/onionshare/resources/locale/nl.json
+++ b/desktop/onionshare/resources/locale/nl.json
diff --git a/desktop/src/onionshare/resources/locale/pa.json b/desktop/onionshare/resources/locale/pa.json
index 766e3a02..766e3a02 100644
--- a/desktop/src/onionshare/resources/locale/pa.json
+++ b/desktop/onionshare/resources/locale/pa.json
diff --git a/desktop/src/onionshare/resources/locale/pl.json b/desktop/onionshare/resources/locale/pl.json
index bd725126..bd725126 100644
--- a/desktop/src/onionshare/resources/locale/pl.json
+++ b/desktop/onionshare/resources/locale/pl.json
diff --git a/desktop/src/onionshare/resources/locale/pt_BR.json b/desktop/onionshare/resources/locale/pt_BR.json
index 55789bf4..cab895e3 100644
--- a/desktop/src/onionshare/resources/locale/pt_BR.json
+++ b/desktop/onionshare/resources/locale/pt_BR.json
@@ -86,16 +86,16 @@
"gui_settings_authenticate_no_auth_option": "Sem autenticação nem cookie de autenticação",
"gui_settings_authenticate_password_option": "Senha",
"gui_settings_password_label": "Senha",
- "gui_settings_tor_bridges": "Suporte para pontes Tor",
+ "gui_settings_tor_bridges": "Conectar usando uma ponte Tor?",
"gui_settings_tor_bridges_no_bridges_radio_option": "Não usar pontes",
"gui_settings_tor_bridges_obfs4_radio_option": "Usar transportadores plugáveis obfs4 já instalados",
"gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Usar transportadores plugáveis obfs4 já instalados (requer obfs4proxy)",
"gui_settings_tor_bridges_meek_lite_azure_radio_option": "Usar transportadores plugáveis meek_lite (Azure) já instalados",
"gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Usar transportadores plugáveis meek_lite (Azure) já instalados (requer obfs4proxy)",
- "gui_settings_meek_lite_expensive_warning": "Aviso: as pontes meek_lite são muito custosas para o Projeto Tor.<br><br>Use-as somente se você não conseguir se conectar ao Tor diretamente, via transportadores obfs4 ou outras pontes comuns.",
+ "gui_settings_meek_lite_expensive_warning": "Aviso: as pontes meek-azure são muito custosas para o Projeto Tor.<br><br>Use-as somente se você não conseguir se conectar ao Tor diretamente, via transportadores obfs4 ou outras pontes comuns.",
"gui_settings_tor_bridges_custom_radio_option": "Usar pontes personalizadas",
"gui_settings_tor_bridges_custom_label": "Você pode obter pontes em <a href=\"https://bridges.torproject.org/options?lang=pt_BR\">https://bridges.torproject.org</a>",
- "gui_settings_tor_bridges_invalid": "Nenhuma das ponte adicionadas funciona.\nTente usá-las de novo ou adicione outras.",
+ "gui_settings_tor_bridges_invalid": "Nenhuma das ponte adicionadas funciona. Tente usá-las de novo ou adicione outras.",
"gui_settings_button_save": "Salvar",
"gui_settings_button_cancel": "Cancelar",
"gui_settings_button_help": "Ajuda",
@@ -174,7 +174,7 @@
"gui_upload_finished": "Upload realizado de {}",
"gui_download_in_progress": "Download Iniciado {}",
"gui_open_folder_error_nautilus": "Não foi possível abrir a pasta porque o nautilus não está disponível. O arquivo está aqui: {}",
- "gui_settings_language_label": "Idioma",
+ "gui_settings_language_label": "Língua",
"gui_settings_language_changed_notice": "Reinicie OnionShare para que o novo idioma seja aplicado.",
"timeout_upload_still_running": "Esperando o término do upload",
"gui_add_files": "Adicionar Arquivos",
@@ -229,7 +229,7 @@
"gui_website_mode_no_files": "Nenhum website compartilhado ainda",
"history_requests_tooltip": "{} solicitações da web",
"gui_settings_website_label": "Configurações do Website",
- "mode_settings_website_disable_csp_checkbox": "Desativar cabeçalho da política de segurança de conteúdo (permite que seu site use recursos de terceiros)",
+ "mode_settings_website_disable_csp_checkbox": "Não envie o cabeçalho padrão da Política de Segurança de Conteúdo (permite que seu website utilize recursos de terceiros)",
"mode_settings_receive_data_dir_browse_button": "Navegar",
"mode_settings_receive_data_dir_label": "Salvar arquivos em",
"mode_settings_share_autostop_sharing_checkbox": "Interrompa o compartilhamento após o envio dos arquivos (desmarque para permitir o download de arquivos individuais)",
@@ -309,5 +309,30 @@
"gui_url_instructions": "Primeiro, envie o endereço OnionShare abaixo:",
"gui_chat_url_public_description": "<b>Qualquer pessoa</b> com este endereço OnionShare pode <b>entrar nesta sala de bate-papo</b> usando o <b>Navegador Tor</b>: <img src='{}' />",
"gui_receive_url_public_description": "<b>Qualquer pessoa</b> com este endereço OnionShare pode <b>carregar</b> arquivos para o seu computador usando o <b>Navegador Tor</b>: <img src='{}' />",
- "gui_website_url_public_description": "<b>Qualquer pessoa</b> com este endereço OnionShare pode <b>visitar</b> o seu site usando o <b>Navegador Tor</b>: <img src='{}' />"
+ "gui_website_url_public_description": "<b>Qualquer pessoa</b> com este endereço OnionShare pode <b>visitar</b> o seu site usando o <b>Navegador Tor</b>: <img src='{}' />",
+ "gui_dragdrop_sandbox_flatpak": "Para tornar a ferramenta Flatpak sandbox mais segura, a função de arrastar e largar não é suportada. Em vez disso, use os botões Adicionar Arquivos e Adicionar Pasta para procurar por arquivos.",
+ "gui_tor_settings_window_title": "Configurações do Tor",
+ "gui_settings_controller_extras_label": "Configurações do Tor",
+ "gui_settings_tor_bridges_label": "Pontes ajudam a acessar a Rede Tor em locais onde o Tor está bloqueado. Dependendo de onde você estiver, uma ponte pode funcionar melhor que outra.",
+ "gui_settings_bridge_use_checkbox": "Usar uma ponte",
+ "gui_settings_bridge_radio_builtin": "Selecione uma ponte embutida",
+ "gui_settings_bridge_none_radio_option": "Não usar uma ponte",
+ "gui_settings_bridge_moat_radio_option": "Solicite uma ponte no torproject.org",
+ "gui_settings_bridge_moat_button": "Solicitar uma nova ponte",
+ "gui_settings_bridge_custom_radio_option": "Fornece uma ponte que você teve acesso de uma fonte confiável",
+ "gui_settings_bridge_custom_placeholder": "digite adress:port (um por linha)",
+ "gui_settings_moat_bridges_invalid": "Você ainda não solicitou uma ponte do torproject.org.",
+ "gui_settings_stop_active_tabs_label": "Há serviços funcionando em algumas de suas abas.\nVocê deve parar todos os serviços para alterar suas configurações Tor.",
+ "gui_settings_version_label": "Você está usando o OnionShare {}",
+ "gui_settings_help_label": "Precisa de ajuda? Veja <a href='https://docs.onionshare.org'>docs.onionshare.org</a>",
+ "mode_settings_website_custom_csp_checkbox": "Enviar um cabeçalho personalizado da Política de Segurança de Conteúdo",
+ "moat_contact_label": "Contactando BridgeDB...",
+ "moat_captcha_label": "Resolva o CAPTCHA para solicitar uma ponte.",
+ "moat_captcha_placeholder": "Digite os caracteres que aparecem na imagem",
+ "moat_captcha_submit": "Enviar",
+ "moat_captcha_reload": "Recarregar",
+ "moat_bridgedb_error": "Erro ao contactar BridgeDB.",
+ "moat_captcha_error": "A solução não está correta. Por favor tente novamente.",
+ "moat_solution_empty_error": "Você deve informar os caracteres que aparecem na imagem",
+ "mode_tor_not_connected_label": "OnionShare não está conectado com a rede Tor"
}
diff --git a/desktop/src/onionshare/resources/locale/pt_PT.json b/desktop/onionshare/resources/locale/pt_PT.json
index b7e63075..b7e63075 100644
--- a/desktop/src/onionshare/resources/locale/pt_PT.json
+++ b/desktop/onionshare/resources/locale/pt_PT.json
diff --git a/desktop/src/onionshare/resources/locale/ro.json b/desktop/onionshare/resources/locale/ro.json
index 35dcedbf..35dcedbf 100644
--- a/desktop/src/onionshare/resources/locale/ro.json
+++ b/desktop/onionshare/resources/locale/ro.json
diff --git a/desktop/src/onionshare/resources/locale/ru.json b/desktop/onionshare/resources/locale/ru.json
index 5819e38e..2636323f 100644
--- a/desktop/src/onionshare/resources/locale/ru.json
+++ b/desktop/onionshare/resources/locale/ru.json
@@ -98,16 +98,16 @@
"gui_settings_socks_label": "Порт SOCKS",
"gui_settings_authenticate_label": "Настройки аутентификации Tor",
"gui_settings_authenticate_no_auth_option": "Без аутентификации или cookie-аутентификации",
- "gui_settings_tor_bridges": "Поддержка \"мостов\" Tor",
+ "gui_settings_tor_bridges": "Использовать \"мост\" Tor?",
"gui_settings_tor_bridges_no_bridges_radio_option": "Не использовать \"мосты\"",
"gui_settings_tor_bridges_obfs4_radio_option": "Использовать встроенные подключаемые транспорты obfs4",
"gui_settings_tor_bridges_obfs4_radio_option_no_obfs4proxy": "Использовать встроенные подключаемые транспорты obfs4 (необходим obfs4proxy)",
"gui_settings_tor_bridges_meek_lite_azure_radio_option": "Использовать встроенные транспорты meek_lite (Azure)",
"gui_settings_tor_bridges_meek_lite_azure_radio_option_no_obfs4proxy": "Использовать встроенные транспорты meek_lite (Azure) (необходим obfs4proxy)",
- "gui_settings_meek_lite_expensive_warning": "Внимание: использование \"мостов\" meek_lite очень затратно для Tor Project.<br><br>Используйте их только если не можете подключиться к сети Tor напрямую, через obfs4 транспорты или другие обычные \"мосты\".",
+ "gui_settings_meek_lite_expensive_warning": "Внимание: использование \"мостов\" meek_azure очень затратно для Tor Project.<br><br>Используйте их только если не можете подключиться к сети Tor напрямую, через obfs4 транспорты или другие обычные \"мосты\".",
"gui_settings_tor_bridges_custom_radio_option": "Использовать пользовательские \"мосты\"",
"gui_settings_tor_bridges_custom_label": "Получить настройки \"мостов\" можно здесь: <a href=\"https://bridges.torproject.org/options?lang=ru\">https://bridges.torproject.org</a>",
- "gui_settings_tor_bridges_invalid": "Ни один из добавленных вами \"мостов\" не работает.\nПроверьте их снова или добавьте другие.",
+ "gui_settings_tor_bridges_invalid": "Ни один из добавленных вами \"мостов\" не работает. Проверьте их снова или добавьте другие.",
"gui_settings_autostop_timer_checkbox": "Использовать стоп-таймер",
"gui_settings_autostop_timer": "Остановить отправку в:",
"settings_error_unknown": "Невозможно произвести подключение к контроллеру Tor: некорректные настройки.",
@@ -230,7 +230,7 @@
"gui_settings_website_label": "Настройки Веб-сайта",
"gui_main_page_share_button": "Сделать доступным для скачивания",
"gui_close_tab_warning_title": "Вы уверены?",
- "mode_settings_website_disable_csp_checkbox": "Не посылать заголовок Content Security Policy (позволяет Вашему веб сайту использовать ресурсы третих сторон)",
+ "mode_settings_website_disable_csp_checkbox": "Не посылать стандартный заголовок Content Security Policy (разрешить вашему веб-сайту использовать сторонние ресурсы)",
"mode_settings_receive_data_dir_browse_button": "Обзор файлов",
"mode_settings_receive_data_dir_label": "Сохранять файлы в",
"mode_settings_share_autostop_sharing_checkbox": "Закрыть доступ к файлам после их отправки (отмените чтобы разрешить скачивание отдельных файлов)",
@@ -305,5 +305,30 @@
"gui_qr_label_url_title": "Адрес OnionShare",
"gui_copied_client_auth": "Секретный Ключ скопирован в буфер обмена",
"gui_copied_client_auth_title": "Секретный Ключ Скопирован",
- "gui_copy_client_auth": "Копировать Секретный Ключ"
+ "gui_copy_client_auth": "Копировать Секретный Ключ",
+ "gui_dragdrop_sandbox_flatpak": "Для обеспечения дополнительной безопасности, функция \"drag and drop\" не поддерживается песочницей Flatpak. Вместо этого используйте кнопки \"Добавить файлы\" и \"Добавить папку\".",
+ "gui_tor_settings_window_title": "Настройки Tor",
+ "gui_settings_controller_extras_label": "Настройки Tor",
+ "gui_settings_tor_bridges_label": "Мосты позволяют подключаться к сети Tor в местах, где его использование заблокировано. В зависимости от вашего местоположения лучше работать может тот или иной мост.",
+ "gui_settings_bridge_use_checkbox": "Использовать мост",
+ "gui_settings_bridge_radio_builtin": "Выбрать встроенный мост",
+ "gui_settings_bridge_none_radio_option": "Не использовать мост",
+ "gui_settings_bridge_moat_radio_option": "Запросить мост с сайта torproject.org",
+ "gui_settings_bridge_moat_button": "Запросить Новый Мост",
+ "gui_settings_bridge_custom_radio_option": "Подключить мост о котором вы узнали из доверенного источника",
+ "gui_settings_bridge_custom_placeholder": "ввести адрес:порт (по одному на каждой строке)",
+ "gui_settings_moat_bridges_invalid": "Вы ещё не запрашивали мост с сайта torproject.org.",
+ "gui_settings_stop_active_tabs_label": "На некоторых из ваших вкладок запущены сервисы.\nНеобходимо остановить все сервисы чтобы изменить настройки Tor.",
+ "gui_settings_version_label": "Вы используете OnionShare {}",
+ "gui_settings_help_label": "Нужна помощь? Вам сюда: <a href='https://docs.onionshare.org'>docs.onionshare.org</a>",
+ "mode_settings_website_custom_csp_checkbox": "Отправить самостоятельно настроенный заголовок Content Security Policy",
+ "moat_contact_label": "Устанавливается связь с BridgeDB...",
+ "moat_captcha_label": "Решите CAPTCHA, чтобы запросить мост.",
+ "moat_captcha_placeholder": "Введите символы на картинке",
+ "moat_captcha_submit": "Отправить",
+ "moat_captcha_reload": "Перезагрузить",
+ "moat_bridgedb_error": "Ошибка соединения с BridgeDB.",
+ "moat_captcha_error": "Решение не верно. Пожалуйста, попробуйте ещё раз.",
+ "moat_solution_empty_error": "Вы должны ввести символы с картинки",
+ "mode_tor_not_connected_label": "OnionShare не подключен к сети Tor"
}
diff --git a/desktop/src/onionshare/resources/locale/si.json b/desktop/onionshare/resources/locale/si.json
index 32417022..32417022 100644
--- a/desktop/src/onionshare/resources/locale/si.json
+++ b/desktop/onionshare/resources/locale/si.json
diff --git a/desktop/src/onionshare/resources/locale/sk.json b/desktop/onionshare/resources/locale/sk.json
index 841b156e..841b156e 100644
--- a/desktop/src/onionshare/resources/locale/sk.json
+++ b/desktop/onionshare/resources/locale/sk.json
diff --git a/desktop/src/onionshare/resources/locale/sl.json b/desktop/onionshare/resources/locale/sl.json
index 52f14cce..52f14cce 100644
--- a/desktop/src/onionshare/resources/locale/sl.json
+++ b/desktop/onionshare/resources/locale/sl.json
diff --git a/desktop/src/onionshare/resources/locale/sn.json b/desktop/onionshare/resources/locale/sn.json
index 81b46cba..81b46cba 100644
--- a/desktop/src/onionshare/resources/locale/sn.json
+++ b/desktop/onionshare/resources/locale/sn.json
diff --git a/desktop/src/onionshare/resources/locale/sr_Latn.json b/desktop/onionshare/resources/locale/sr_Latn.json
index f47bade1..f47bade1 100644
--- a/desktop/src/onionshare/resources/locale/sr_Latn.json
+++ b/desktop/onionshare/resources/locale/sr_Latn.json
diff --git a/desktop/src/onionshare/resources/locale/sv.json b/desktop/onionshare/resources/locale/sv.json
index 6593ed7f..d44b3a9e 100644
--- a/desktop/src/onionshare/resources/locale/sv.json
+++ b/desktop/onionshare/resources/locale/sv.json
@@ -315,5 +315,8 @@
"gui_qr_label_url_title": "OnionShare-adress",
"gui_copied_client_auth": "Privat nyckel kopierad till Urklipp",
"gui_copied_client_auth_title": "Kopierad privat nyckel",
- "gui_copy_client_auth": "Kopiera den privata nyckeln"
+ "gui_copy_client_auth": "Kopiera den privata nyckeln",
+ "gui_tor_settings_window_title": "Torinställningar",
+ "gui_settings_controller_extras_label": "Torinställningar",
+ "gui_dragdrop_sandbox_flatpak": "För att göra Flatpak mer säkert, är dra och släpp inte tillåtet. Använd Lägg till filer och Lägg till katalog knapparna för att bläddra efter filer istället."
}
diff --git a/desktop/src/onionshare/resources/locale/sw.json b/desktop/onionshare/resources/locale/sw.json
index 31eb72c5..31eb72c5 100644
--- a/desktop/src/onionshare/resources/locale/sw.json
+++ b/desktop/onionshare/resources/locale/sw.json
diff --git a/desktop/src/onionshare/resources/locale/te.json b/desktop/onionshare/resources/locale/te.json
index d1784090..d1784090 100644
--- a/desktop/src/onionshare/resources/locale/te.json
+++ b/desktop/onionshare/resources/locale/te.json
diff --git a/desktop/src/onionshare/resources/locale/tr.json b/desktop/onionshare/resources/locale/tr.json
index dc792c27..dc792c27 100644
--- a/desktop/src/onionshare/resources/locale/tr.json
+++ b/desktop/onionshare/resources/locale/tr.json
diff --git a/desktop/src/onionshare/resources/locale/uk.json b/desktop/onionshare/resources/locale/uk.json
index 74a380eb..74a380eb 100644
--- a/desktop/src/onionshare/resources/locale/uk.json
+++ b/desktop/onionshare/resources/locale/uk.json
diff --git a/desktop/src/onionshare/resources/locale/wo.json b/desktop/onionshare/resources/locale/wo.json
index e0f37715..e0f37715 100644
--- a/desktop/src/onionshare/resources/locale/wo.json
+++ b/desktop/onionshare/resources/locale/wo.json
diff --git a/desktop/src/onionshare/resources/locale/yo.json b/desktop/onionshare/resources/locale/yo.json
index 5da034d1..5da034d1 100644
--- a/desktop/src/onionshare/resources/locale/yo.json
+++ b/desktop/onionshare/resources/locale/yo.json
diff --git a/desktop/src/onionshare/resources/locale/zh_Hans.json b/desktop/onionshare/resources/locale/zh_Hans.json
index 749bb9a0..749bb9a0 100644
--- a/desktop/src/onionshare/resources/locale/zh_Hans.json
+++ b/desktop/onionshare/resources/locale/zh_Hans.json
diff --git a/desktop/src/onionshare/resources/locale/zh_Hant.json b/desktop/onionshare/resources/locale/zh_Hant.json
index f0a51217..f0a51217 100644
--- a/desktop/src/onionshare/resources/locale/zh_Hant.json
+++ b/desktop/onionshare/resources/locale/zh_Hant.json
diff --git a/desktop/src/onionshare/resources/onionshare-128.png b/desktop/onionshare/resources/onionshare-128.png
index 856ab4e7..856ab4e7 100644
--- a/desktop/src/onionshare/resources/onionshare-128.png
+++ b/desktop/onionshare/resources/onionshare-128.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/onionshare-16.png b/desktop/onionshare/resources/onionshare-16.png
index dea20940..dea20940 100644
--- a/desktop/src/onionshare/resources/onionshare-16.png
+++ b/desktop/onionshare/resources/onionshare-16.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/onionshare-256.png b/desktop/onionshare/resources/onionshare-256.png
index b47cd94a..b47cd94a 100644
--- a/desktop/src/onionshare/resources/onionshare-256.png
+++ b/desktop/onionshare/resources/onionshare-256.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/onionshare-32.png b/desktop/onionshare/resources/onionshare-32.png
index 14c849c9..14c849c9 100644
--- a/desktop/src/onionshare/resources/onionshare-32.png
+++ b/desktop/onionshare/resources/onionshare-32.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/onionshare-512.png b/desktop/onionshare/resources/onionshare-512.png
index a4810d04..a4810d04 100644
--- a/desktop/src/onionshare/resources/onionshare-512.png
+++ b/desktop/onionshare/resources/onionshare-512.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/onionshare-64.png b/desktop/onionshare/resources/onionshare-64.png
index 8468dc52..8468dc52 100644
--- a/desktop/src/onionshare/resources/onionshare-64.png
+++ b/desktop/onionshare/resources/onionshare-64.png
Binary files differ
diff --git a/desktop/src/onionshare/resources/onionshare.icns b/desktop/onionshare/resources/onionshare.icns
index f65ad12d..f65ad12d 100644
--- a/desktop/src/onionshare/resources/onionshare.icns
+++ b/desktop/onionshare/resources/onionshare.icns
Binary files differ
diff --git a/desktop/src/onionshare/resources/onionshare.ico b/desktop/onionshare/resources/onionshare.ico
index dcde4f1f..dcde4f1f 100644
--- a/desktop/src/onionshare/resources/onionshare.ico
+++ b/desktop/onionshare/resources/onionshare.ico
Binary files differ
diff --git a/desktop/src/onionshare/resources/onionshare.png b/desktop/onionshare/resources/onionshare.png
index a4810d04..a4810d04 100644
--- a/desktop/src/onionshare/resources/onionshare.png
+++ b/desktop/onionshare/resources/onionshare.png
Binary files differ
diff --git a/desktop/src/onionshare/settings_tab.py b/desktop/onionshare/settings_tab.py
index cfa3261e..58843a0d 100644
--- a/desktop/src/onionshare/settings_tab.py
+++ b/desktop/onionshare/settings_tab.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/strings.py b/desktop/onionshare/strings.py
index 55f56788..f79195ea 100644
--- a/desktop/src/onionshare/strings.py
+++ b/desktop/onionshare/strings.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/tab/__init__.py b/desktop/onionshare/tab/__init__.py
index 62ec4a74..38c3abd5 100644
--- a/desktop/src/onionshare/tab/__init__.py
+++ b/desktop/onionshare/tab/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/tab/mode/__init__.py b/desktop/onionshare/tab/mode/__init__.py
index c9b5cad1..e50b9859 100644
--- a/desktop/src/onionshare/tab/mode/__init__.py
+++ b/desktop/onionshare/tab/mode/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/tab/mode/chat_mode/__init__.py b/desktop/onionshare/tab/mode/chat_mode/__init__.py
index 1081fe9d..af2cab81 100644
--- a/desktop/src/onionshare/tab/mode/chat_mode/__init__.py
+++ b/desktop/onionshare/tab/mode/chat_mode/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/tab/mode/file_selection.py b/desktop/onionshare/tab/mode/file_selection.py
index 1addba22..87d2e087 100644
--- a/desktop/src/onionshare/tab/mode/file_selection.py
+++ b/desktop/onionshare/tab/mode/file_selection.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/tab/mode/history.py b/desktop/onionshare/tab/mode/history.py
index 091905f7..d24e53c1 100644
--- a/desktop/src/onionshare/tab/mode/history.py
+++ b/desktop/onionshare/tab/mode/history.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -481,6 +481,7 @@ class IndividualFileHistoryItem(HistoryItem):
self.common.gui.css["history_individual_file_timestamp_label"]
)
self.path_label = QtWidgets.QLabel(self.path)
+ self.path_label.setTextFormat(QtCore.Qt.PlainText)
self.path_label.setStyleSheet(self.common.gui.css["history_default_label"])
self.status_code_label = QtWidgets.QLabel()
diff --git a/desktop/src/onionshare/tab/mode/mode_settings_widget.py b/desktop/onionshare/tab/mode/mode_settings_widget.py
index 0e80023e..7545c19e 100644
--- a/desktop/src/onionshare/tab/mode/mode_settings_widget.py
+++ b/desktop/onionshare/tab/mode/mode_settings_widget.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/tab/mode/receive_mode/__init__.py b/desktop/onionshare/tab/mode/receive_mode/__init__.py
index b2b2fc5a..55640c33 100644
--- a/desktop/src/onionshare/tab/mode/receive_mode/__init__.py
+++ b/desktop/onionshare/tab/mode/receive_mode/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/tab/mode/share_mode/__init__.py b/desktop/onionshare/tab/mode/share_mode/__init__.py
index ed7f6912..2617176d 100644
--- a/desktop/src/onionshare/tab/mode/share_mode/__init__.py
+++ b/desktop/onionshare/tab/mode/share_mode/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/tab/mode/share_mode/threads.py b/desktop/onionshare/tab/mode/share_mode/threads.py
index 839d30ea..6b1d96d6 100644
--- a/desktop/src/onionshare/tab/mode/share_mode/threads.py
+++ b/desktop/onionshare/tab/mode/share_mode/threads.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/tab/mode/website_mode/__init__.py b/desktop/onionshare/tab/mode/website_mode/__init__.py
index 0acbc1a2..a732c390 100644
--- a/desktop/src/onionshare/tab/mode/website_mode/__init__.py
+++ b/desktop/onionshare/tab/mode/website_mode/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/tab/server_status.py b/desktop/onionshare/tab/server_status.py
index 115acfd5..d355b43b 100644
--- a/desktop/src/onionshare/tab/server_status.py
+++ b/desktop/onionshare/tab/server_status.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/tab/tab.py b/desktop/onionshare/tab/tab.py
index b0aa25df..7f4e4073 100644
--- a/desktop/src/onionshare/tab/tab.py
+++ b/desktop/onionshare/tab/tab.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/tab_widget.py b/desktop/onionshare/tab_widget.py
index b810d607..29f443ac 100644
--- a/desktop/src/onionshare/tab_widget.py
+++ b/desktop/onionshare/tab_widget.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/threads.py b/desktop/onionshare/threads.py
index b02c6f21..7f445fc1 100644
--- a/desktop/src/onionshare/threads.py
+++ b/desktop/onionshare/threads.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/tor_connection.py b/desktop/onionshare/tor_connection.py
index 83422b3a..f6b4bcb2 100644
--- a/desktop/src/onionshare/tor_connection.py
+++ b/desktop/onionshare/tor_connection.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/tor_settings_tab.py b/desktop/onionshare/tor_settings_tab.py
index 28cafc4c..9c9ea593 100644
--- a/desktop/src/onionshare/tor_settings_tab.py
+++ b/desktop/onionshare/tor_settings_tab.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/update_checker.py b/desktop/onionshare/update_checker.py
index e9dbc060..71095356 100644
--- a/desktop/src/onionshare/update_checker.py
+++ b/desktop/onionshare/update_checker.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/onionshare/widgets.py b/desktop/onionshare/widgets.py
index 761df212..64a07703 100644
--- a/desktop/src/onionshare/widgets.py
+++ b/desktop/onionshare/widgets.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/desktop/src/org.onionshare.OnionShare.appdata.xml b/desktop/org.onionshare.OnionShare.appdata.xml
index 1bdac5f8..d6afc314 100644
--- a/desktop/src/org.onionshare.OnionShare.appdata.xml
+++ b/desktop/org.onionshare.OnionShare.appdata.xml
@@ -13,7 +13,7 @@
<launchable type="desktop-id">org.onionshare.OnionShare.desktop</launchable>
<screenshots>
<screenshot type="default">
- <image>https://docs.onionshare.org/2.4/en/_images/tabs.png</image>
+ <image>https://docs.onionshare.org/2.5/en/_images/tabs.png</image>
<caption>Types of services that OnionShare supports</caption>
</screenshot>
</screenshots>
@@ -24,6 +24,6 @@
<update_contact>micah@micahflee.com</update_contact>
<content_rating type="oars-1.1" />
<releases>
- <release type="development" date="2021-09-26" version="2.4" />
+ <release type="development" date="2022-01-17" version="2.5" />
</releases>
</component>
diff --git a/desktop/src/org.onionshare.OnionShare.desktop b/desktop/org.onionshare.OnionShare.desktop
index 479dd395..479dd395 100644
--- a/desktop/src/org.onionshare.OnionShare.desktop
+++ b/desktop/org.onionshare.OnionShare.desktop
diff --git a/desktop/src/org.onionshare.OnionShare.svg b/desktop/org.onionshare.OnionShare.svg
index 502da0d8..502da0d8 100644
--- a/desktop/src/org.onionshare.OnionShare.svg
+++ b/desktop/org.onionshare.OnionShare.svg
diff --git a/desktop/package/macos/Entitlements.plist b/desktop/package/Entitlements.plist
index 8c5c4268..8c5c4268 100644
--- a/desktop/package/macos/Entitlements.plist
+++ b/desktop/package/Entitlements.plist
diff --git a/desktop/package/build-mac.py b/desktop/package/build-mac.py
new file mode 100755
index 00000000..9d2a0dfd
--- /dev/null
+++ b/desktop/package/build-mac.py
@@ -0,0 +1,308 @@
+#!/usr/bin/env python3
+import os
+import inspect
+import subprocess
+import shutil
+import itertools
+import glob
+
+root = os.path.dirname(
+ os.path.dirname(
+ os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
+ )
+)
+
+
+def run(cmd, cwd=None, error_ok=False):
+ print(f"{cmd} # cwd={cwd}")
+ subprocess.run(cmd, cwd=cwd, check=True)
+
+
+def get_size(dir):
+ size = 0
+ for path, dirs, files in os.walk(dir):
+ for f in files:
+ fp = os.path.join(path, f)
+ size += os.path.getsize(fp)
+ return size
+
+
+def codesign(path, entitlements, identity):
+ run(
+ [
+ "codesign",
+ "--sign",
+ identity,
+ "--entitlements",
+ str(entitlements),
+ "--timestamp",
+ "--deep",
+ "--force",
+ "--options",
+ "runtime,library",
+ str(path),
+ ]
+ )
+
+
+def main():
+ desktop_dir = f"{root}/desktop"
+ app_dir = f"{desktop_dir}/build/OnionShare.app"
+
+ print("○ Clean up from last build")
+ if os.path.exists(f"{desktop_dir}/build"):
+ shutil.rmtree(f"{desktop_dir}/build")
+ if os.path.exists(f"{desktop_dir}/dist"):
+ shutil.rmtree(f"{desktop_dir}/dist")
+
+ print("○ Building binaries")
+ run(
+ [
+ shutil.which("python"),
+ "setup-freeze.py",
+ "bdist_mac",
+ ],
+ desktop_dir,
+ )
+ before_size = get_size(f"{app_dir}")
+
+ print("○ Delete unused Qt Frameworks")
+ for framework in [
+ "Qt3DAnimation",
+ "Qt3DCore",
+ "Qt3DExtras",
+ "Qt3DInput",
+ "Qt3DLogic",
+ "Qt3DQuick",
+ "Qt3DQuickAnimation",
+ "Qt3DQuickExtras",
+ "Qt3DQuickInput",
+ "Qt3DQuickRender",
+ "Qt3DQuickScene2D",
+ "Qt3DRender",
+ "QtBluetooth",
+ "QtBodymovin",
+ "QtCharts",
+ "QtConcurrent",
+ "QtDataVisualization",
+ "QtDesigner",
+ "QtDesignerComponents",
+ "QtGamepad",
+ "QtHelp",
+ "QtLocation",
+ "QtMultimedia",
+ "QtMultimediaQuick",
+ "QtMultimediaWidgets",
+ "QtNetwork",
+ "QtNetworkAuth",
+ "QtNfc",
+ "QtOpenGL",
+ "QtPdf",
+ "QtPdfWidgets",
+ "QtPositioning",
+ "QtPositioningQuick",
+ "QtPrintSupport",
+ "QtPurchasing",
+ "QtQml",
+ "QtQmlModels",
+ "QtQmlWorkerScript",
+ "QtQuick",
+ "QtQuick3D",
+ "QtQuick3DAssetImport",
+ "QtQuick3DRender",
+ "QtQuick3DRuntimeRender",
+ "QtQuick3DUtils",
+ "QtQuickControls2",
+ "QtQuickParticles",
+ "QtQuickShapes",
+ "QtQuickTemplates2",
+ "QtQuickTest",
+ "QtQuickWidgets",
+ "QtRemoteObjects",
+ "QtRepParser",
+ "QtScript",
+ "QtScriptTools",
+ "QtScxml",
+ "QtSensors",
+ "QtSerialBus",
+ "QtSerialPort",
+ "QtSql",
+ "QtSvg",
+ "QtTest",
+ "QtTextToSpeech",
+ "QtUiPlugin",
+ "QtVirtualKeyboard",
+ "QtWebChannel",
+ "QtWebEngine",
+ "QtWebEngineCore",
+ "QtWebEngineWidgets",
+ "QtWebSockets",
+ "QtWebView",
+ "QtXml",
+ "QtXmlPatterns",
+ ]:
+ shutil.rmtree(
+ f"{app_dir}/Contents/MacOS/lib/PySide2/Qt/lib/{framework}.framework"
+ )
+ try:
+ os.remove(
+ f"{app_dir}/Contents/MacOS/lib/PySide2/{framework}.abi3.so"
+ )
+ os.remove(
+ f"{app_dir}/Contents/MacOS/lib/PySide2/{framework}.pyi"
+ )
+ except FileNotFoundError:
+ pass
+
+ print("○ Move files around so Apple will notarize")
+ # https://github.com/marcelotduarte/cx_Freeze/issues/594
+ # https://gist.github.com/TechnicalPirate/259a9c24878fcad948452cb148af2a2c#file-custom_bdist_mac-py-L415
+
+ # Move lib from MacOS into Resources
+ os.rename(
+ f"{app_dir}/Contents/MacOS/lib",
+ f"{app_dir}/Contents/Resources/lib",
+ )
+ run(
+ ["ln", "-s", "../Resources/lib"],
+ cwd=f"{app_dir}/Contents/MacOS",
+ )
+
+ # Move frameworks from Resources/lib into Frameworks
+ os.makedirs(f"{app_dir}/Contents/Frameworks", exist_ok=True)
+ for framework_filename in glob.glob(
+ f"{app_dir}/Contents/Resources/lib/PySide2/Qt/lib/Qt*.framework"
+ ):
+ basename = os.path.basename(framework_filename)
+
+ os.rename(framework_filename, f"{app_dir}/Contents/Frameworks/{basename}")
+ run(
+ ["ln", "-s", f"../../../../../Frameworks/{basename}"],
+ cwd=f"{app_dir}/Contents/Resources/lib/PySide2/Qt/lib",
+ )
+ if os.path.exists(f"{app_dir}/Contents/Frameworks/{basename}/Resources"):
+ os.rename(
+ f"{app_dir}/Contents/Frameworks/{basename}/Resources",
+ f"{app_dir}/Contents/Frameworks/{basename}/Versions/5/Resources"
+ )
+ run(
+ ["ln", "-s", "Versions/5/Resources"],
+ cwd=f"{app_dir}/Contents/Frameworks/{basename}",
+ )
+
+ run(
+ ["ln", "-s", "5", "Current"],
+ cwd=f"{app_dir}/Contents/Frameworks/{basename}/Versions",
+ )
+
+ # Move Qt plugins
+ os.rename(
+ f"{app_dir}/Contents/Resources/lib/PySide2/Qt/plugins",
+ f"{app_dir}/Contents/Frameworks/plugins",
+ )
+ run(
+ ["ln", "-s", "../../../../Frameworks/plugins"],
+ cwd=f"{app_dir}/Contents/Resources/lib/PySide2/Qt",
+ )
+
+ print("○ Delete more unused PySide2 stuff to save space")
+ for filename in [
+ f"{app_dir}/Contents/Resources/lib/PySide2/Designer.app",
+ f"{app_dir}/Contents/Resources/lib/PySide2/examples",
+ f"{app_dir}/Contents/Resources/lib/PySide2/glue",
+ f"{app_dir}/Contents/Resources/lib/PySide2/include",
+ f"{app_dir}/Contents/Resources/lib/PySide2/pyside2-lupdate",
+ f"{app_dir}/Contents/Resources/lib/PySide2/Qt/qml",
+ f"{app_dir}/Contents/Resources/lib/PySide2/libpyside2.abi3.5.15.dylib",
+ f"{app_dir}/Contents/Resources/lib/PySide2/Qt/lib/QtRepParser.framework",
+ f"{app_dir}/Contents/Resources/lib/PySide2/Qt/lib/QtUiPlugin.framework",
+ f"{app_dir}/Contents/Resources/lib/PySide2/Qt/lib/QtWebEngineCore.framework/Helpers",
+ f"{app_dir}/Contents/Resources/lib/shiboken2/libshiboken2.abi3.5.15.dylib",
+ f"{app_dir}/Contents/Resources/lib/shiboken2/docs",
+ f"{app_dir}/Contents/Resources/lib/PySide2/rcc",
+ f"{app_dir}/Contents/Resources/lib/PySide2/uic",
+ ]:
+ if os.path.isdir(filename):
+ shutil.rmtree(filename)
+ elif os.path.isfile(filename):
+ os.remove(filename)
+ else:
+ print(f"Cannot delete, filename not found: {filename}")
+
+ after_size = get_size(f"{app_dir}")
+ freed_bytes = before_size - after_size
+ freed_mb = int(freed_bytes / 1024 / 1024)
+ print(f"○ Freed {freed_mb} mb")
+
+ print("○ Sign app bundle")
+ identity_name_application = "Developer ID Application: Micah Lee (N9B95FDWH4)"
+ entitlements_plist_path = f"{desktop_dir}/package/Entitlements.plist"
+
+ for path in itertools.chain(
+ glob.glob(f"{app_dir}/Contents/Resources/lib/**/*.so", recursive=True),
+ glob.glob(f"{app_dir}/Contents/Resources/lib/**/*.dylib", recursive=True),
+ [
+ f"{app_dir}/Contents/Frameworks/QtCore.framework/Versions/5/QtCore",
+ f"{app_dir}/Contents/Frameworks/QtDBus.framework/Versions/5/QtDBus",
+ f"{app_dir}/Contents/Frameworks/QtGui.framework/Versions/5/QtGui",
+ f"{app_dir}/Contents/Frameworks/QtMacExtras.framework/Versions/5/QtMacExtras",
+ f"{app_dir}/Contents/Frameworks/QtWidgets.framework/Versions/5/QtWidgets",
+ f"{app_dir}/Contents/Resources/lib/Python",
+ f"{app_dir}/Contents/Resources/lib/onionshare/resources/tor/meek-client",
+ f"{app_dir}/Contents/Resources/lib/onionshare/resources/tor/obfs4proxy",
+ f"{app_dir}/Contents/Resources/lib/onionshare/resources/tor/snowflake-client",
+ f"{app_dir}/Contents/Resources/lib/onionshare/resources/tor/tor",
+ f"{app_dir}/Contents/Resources/lib/onionshare/resources/tor/libevent-2.1.7.dylib",
+ f"{app_dir}/Contents/MacOS/onionshare",
+ f"{app_dir}/Contents/MacOS/onionshare-cli",
+ f"{app_dir}",
+ ],
+ ):
+ codesign(path, entitlements_plist_path, identity_name_application)
+
+ print(f"○ Signed app bundle: {app_dir}")
+
+ if not os.path.exists("/usr/local/bin/create-dmg"):
+ print("○ Error: create-dmg is not installed")
+ return
+
+ print("○ Create DMG")
+ version_filename = f"{root}/cli/onionshare_cli/resources/version.txt"
+ with open(version_filename) as f:
+ version = f.read().strip()
+
+ os.makedirs(f"{desktop_dir}/dist", exist_ok=True)
+ dmg_path = f"{desktop_dir}/dist/OnionShare-{version}.dmg"
+ run(
+ [
+ "create-dmg",
+ "--volname",
+ "OnionShare",
+ "--volicon",
+ f"{desktop_dir}/onionshare/resources/onionshare.icns",
+ "--window-size",
+ "400",
+ "200",
+ "--icon-size",
+ "100",
+ "--icon",
+ "OnionShare.app",
+ "100",
+ "70",
+ "--hide-extension",
+ "OnionShare.app",
+ "--app-drop-link",
+ "300",
+ "70",
+ dmg_path,
+ f"{app_dir}",
+ "--identity",
+ identity_name_application,
+ ]
+ )
+
+ print(f"○ Finished building DMG: {dmg_path}")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/desktop/package/build-windows.py b/desktop/package/build-windows.py
new file mode 100644
index 00000000..9984dd4f
--- /dev/null
+++ b/desktop/package/build-windows.py
@@ -0,0 +1,587 @@
+#!/usr/bin/env python3
+import os
+import inspect
+import subprocess
+import shutil
+import uuid
+import xml.etree.ElementTree as ET
+
+
+root = os.path.dirname(
+ os.path.dirname(
+ os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
+ )
+)
+
+
+def run(cmd, cwd=None, error_ok=False):
+ print(cmd)
+ try:
+ subprocess.run(cmd, cwd=cwd, check=True)
+ except subprocess.CalledProcessError as e:
+ if not error_ok:
+ raise subprocess.CalledProcessError(e)
+
+
+def sign(filename, cwd=None):
+ run(
+ [
+ shutil.which("signtool"),
+ "sign",
+ "/v",
+ "/d",
+ "OnionShare",
+ "/sha1",
+ "bb1d265ab02272e8fc742f149dcf8751cac63f50",
+ "/fd",
+ "SHA256",
+ "/td",
+ "SHA256",
+ "/tr",
+ "http://timestamp.digicert.com",
+ filename,
+ ],
+ cwd,
+ )
+
+
+def get_size(dir):
+ size = 0
+ for path, dirs, files in os.walk(dir):
+ for f in files:
+ fp = os.path.join(path, f)
+ size += os.path.getsize(fp)
+ return size
+
+
+def wix_build_data(dirname, dir_prefix, id_, name):
+ data = {
+ "id": id_,
+ "name": name,
+ "files": [],
+ "dirs": [],
+ }
+
+ for basename in os.listdir(dirname):
+ filename = os.path.join(dirname, basename)
+ if os.path.isfile(filename):
+ data["files"].append(os.path.join(dir_prefix, basename))
+ elif os.path.isdir(filename):
+ if id_ == "INSTALLDIR":
+ id_prefix = "Folder"
+ else:
+ id_prefix = id_
+
+ # Skip lib/Pyside2/Examples folder
+ if "\\build\\exe.win32-3.9\\lib\\PySide2\\examples" in dirname:
+ continue
+
+ id_value = f"{id_prefix}{basename.capitalize().replace('-', '_')}"
+ data["dirs"].append(
+ wix_build_data(
+ os.path.join(dirname, basename),
+ os.path.join(dir_prefix, basename),
+ id_value,
+ basename,
+ )
+ )
+
+ if len(data["files"]) > 0:
+ if id_ == "INSTALLDIR":
+ data["component_id"] = "ApplicationFiles"
+ else:
+ data["component_id"] = "FolderComponent" + id_[len("Folder") :]
+ data["component_guid"] = str(uuid.uuid4())
+
+ return data
+
+
+def wix_build_dir_xml(root, data):
+ attrs = {}
+ if "id" in data:
+ attrs["Id"] = data["id"]
+ if "name" in data:
+ attrs["Name"] = data["name"]
+ el = ET.SubElement(root, "Directory", attrs)
+ for subdata in data["dirs"]:
+ wix_build_dir_xml(el, subdata)
+
+ # If this is the ProgramMenuFolder, add the menu component
+ if "id" in data and data["id"] == "ProgramMenuFolder":
+ component_el = ET.SubElement(
+ el,
+ "Component",
+ Id="ApplicationShortcuts",
+ Guid="539e7de8-a124-4c09-aa55-0dd516aad7bc",
+ )
+ ET.SubElement(
+ component_el,
+ "Shortcut",
+ Id="ApplicationShortcut1",
+ Name="OnionShare",
+ Description="OnionShare",
+ Target="[INSTALLDIR]onionshare.exe",
+ WorkingDirectory="INSTALLDIR",
+ )
+ ET.SubElement(
+ component_el,
+ "RegistryValue",
+ Root="HKCU",
+ Key="Software\OnionShare",
+ Name="installed",
+ Type="integer",
+ Value="1",
+ KeyPath="yes",
+ )
+
+
+def wix_build_components_xml(root, data):
+ component_ids = []
+ if "component_id" in data:
+ component_ids.append(data["component_id"])
+
+ for subdata in data["dirs"]:
+ if "component_guid" in subdata:
+ dir_ref_el = ET.SubElement(root, "DirectoryRef", Id=subdata["id"])
+ component_el = ET.SubElement(
+ dir_ref_el,
+ "Component",
+ Id=subdata["component_id"],
+ Guid=subdata["component_guid"],
+ )
+ for filename in subdata["files"]:
+ file_el = ET.SubElement(
+ component_el, "File", Source=filename, Id="file_" + uuid.uuid4().hex
+ )
+
+ component_ids += wix_build_components_xml(root, subdata)
+
+ return component_ids
+
+
+def main():
+ desktop_dir = os.path.join(root, "desktop")
+
+ print("○ Clean up from last build")
+ if os.path.exists(os.path.join(desktop_dir, "build")):
+ shutil.rmtree(os.path.join(desktop_dir, "build"))
+ if os.path.exists(os.path.join(desktop_dir, "dist")):
+ shutil.rmtree(os.path.join(desktop_dir, "dist"))
+
+ print("○ Building binaries")
+ run(
+ [
+ shutil.which("python"),
+ "setup-freeze.py",
+ "build",
+ ],
+ desktop_dir,
+ )
+ before_size = get_size(os.path.join(desktop_dir, "build", "exe.win32-3.9"))
+
+ print("○ Delete unused PySide2 stuff to save space")
+ for dirname in ["examples", "qml"]:
+ shutil.rmtree(
+ os.path.join(
+ desktop_dir, "build", "exe.win32-3.9", "lib", "PySide2", dirname
+ )
+ )
+ for filename in [
+ "lconvert.exe",
+ "linguist.exe",
+ "lrelease.exe",
+ "lupdate.exe",
+ "plugins/assetimporters/assimp.dll",
+ "plugins/assetimporters/uip.dll",
+ "plugins/audio/qtaudio_wasapi.dll",
+ "plugins/audio/qtaudio_windows.dll",
+ "plugins/bearer/qgenericbearer.dll",
+ "plugins/canbus/qtpassthrucanbus.dll",
+ "plugins/canbus/qtpeakcanbus.dll",
+ "plugins/canbus/qtsysteccanbus.dll",
+ "plugins/canbus/qttinycanbus.dll",
+ "plugins/canbus/qtvectorcanbus.dll",
+ "plugins/canbus/qtvirtualcanbus.dll",
+ "plugins/gamepads/xinputgamepad.dll",
+ "plugins/generic/qtuiotouchplugin.dll",
+ "plugins/geometryloaders/defaultgeometryloader.dll",
+ "plugins/geometryloaders/gltfgeometryloader.dll",
+ "plugins/geoservices/qtgeoservices_esri.dll",
+ "plugins/geoservices/qtgeoservices_itemsoverlay.dll",
+ "plugins/geoservices/qtgeoservices_mapbox.dll",
+ "plugins/geoservices/qtgeoservices_nokia.dll",
+ "plugins/geoservices/qtgeoservices_osm.dll",
+ "plugins/mediaservice/dsengine.dll",
+ "plugins/mediaservice/qtmedia_audioengine.dll",
+ "plugins/mediaservice/wmfengine.dll",
+ "plugins/platforminputcontexts/qtvirtualkeyboardplugin.dll",
+ "plugins/platforms/qdirect2d.dll",
+ "plugins/platforms/qoffscreen.dll",
+ "plugins/platforms/qwebgl.dll",
+ "plugins/platformthemes/qxdgdesktopportal.dll",
+ "plugins/playlistformats/qtmultimedia_m3u.dll",
+ "plugins/position/qtposition_positionpoll.dll",
+ "plugins/position/qtposition_serialnmea.dll",
+ "plugins/position/qtposition_winrt.dll",
+ "plugins/printsupport/windowsprintersupport.dll",
+ "plugins/qmltooling/qmldbg_debugger.dll",
+ "plugins/qmltooling/qmldbg_inspector.dll",
+ "plugins/qmltooling/qmldbg_local.dll",
+ "plugins/qmltooling/qmldbg_messages.dll",
+ "plugins/qmltooling/qmldbg_native.dll",
+ "plugins/qmltooling/qmldbg_nativedebugger.dll",
+ "plugins/qmltooling/qmldbg_preview.dll",
+ "plugins/qmltooling/qmldbg_profiler.dll",
+ "plugins/qmltooling/qmldbg_quickprofiler.dll",
+ "plugins/qmltooling/qmldbg_server.dll",
+ "plugins/qmltooling/qmldbg_tcp.dll",
+ "plugins/renderers/openglrenderer.dll",
+ "plugins/renderplugins/scene2d.dll",
+ "plugins/scenegraph/qsgd3d12backend.dll",
+ "plugins/sceneparsers/gltfsceneexport.dll",
+ "plugins/sceneparsers/gltfsceneimport.dll",
+ "plugins/sensorgestures/qtsensorgestures_plugin.dll",
+ "plugins/sensorgestures/qtsensorgestures_shakeplugin.dll",
+ "plugins/sensors/qtsensors_generic.dll",
+ "plugins/sqldrivers/qsqlite.dll",
+ "plugins/sqldrivers/qsqlodbc.dll",
+ "plugins/sqldrivers/qsqlpsql.dll",
+ "plugins/styles/qwindowsvistastyle.dll",
+ "plugins/texttospeech/qtexttospeech_sapi.dll",
+ "plugins/virtualkeyboard/qtvirtualkeyboard_hangul.dll",
+ "plugins/virtualkeyboard/qtvirtualkeyboard_openwnn.dll",
+ "plugins/virtualkeyboard/qtvirtualkeyboard_pinyin.dll",
+ "plugins/virtualkeyboard/qtvirtualkeyboard_tcime.dll",
+ "plugins/virtualkeyboard/qtvirtualkeyboard_thai.dll",
+ "plugins/webview/qtwebview_webengine.dll",
+ "pyside2-lupdate.exe",
+ "Qt3DAnimation.pyd",
+ "Qt3DAnimation.pyi",
+ "Qt3DCore.pyd",
+ "Qt3DCore.pyi",
+ "Qt3DExtras.pyd",
+ "Qt3DExtras.pyi",
+ "Qt3DInput.pyd",
+ "Qt3DInput.pyi",
+ "Qt3DLogic.pyd",
+ "Qt3DLogic.pyi",
+ "Qt3DRender.pyd",
+ "Qt3DRender.pyi",
+ "Qt53DAnimation.dll",
+ "Qt53DCore.dll",
+ "Qt53DExtras.dll",
+ "Qt53DInput.dll",
+ "Qt53DLogic.dll",
+ "Qt53DQuick.dll",
+ "Qt53DQuickAnimation.dll",
+ "Qt53DQuickExtras.dll",
+ "Qt53DQuickInput.dll",
+ "Qt53DQuickRender.dll",
+ "Qt53DQuickScene2D.dll",
+ "Qt53DRender.dll",
+ "Qt5Bluetooth.dll",
+ "Qt5Bodymovin.dll",
+ "Qt5Charts.dll",
+ "Qt5Concurrent.dll",
+ "Qt5DataVisualization.dll",
+ "Qt5DBus.dll",
+ "Qt5Designer.dll",
+ "Qt5DesignerComponents.dll",
+ "Qt5Gamepad.dll",
+ "Qt5Help.dll",
+ "Qt5Location.dll",
+ "Qt5Multimedia.dll",
+ "Qt5MultimediaQuick.dll",
+ "Qt5MultimediaWidgets.dll",
+ "Qt5Nfc.dll",
+ "Qt5OpenGL.dll",
+ "Qt5Pdf.dll",
+ "Qt5PdfWidgets.dll",
+ "Qt5Positioning.dll",
+ "Qt5PositioningQuick.dll",
+ "Qt5PrintSupport.dll",
+ "Qt5Purchasing.dll",
+ "Qt5Quick.dll",
+ "Qt5Quick3D.dll",
+ "Qt5Quick3DAssetImport.dll",
+ "Qt5Quick3DRender.dll",
+ "Qt5Quick3DRuntimeRender.dll",
+ "Qt5Quick3DUtils.dll",
+ "Qt5QuickControls2.dll",
+ "Qt5QuickParticles.dll",
+ "Qt5QuickShapes.dll",
+ "Qt5QuickTemplates2.dll",
+ "Qt5QuickTest.dll",
+ "Qt5QuickWidgets.dll",
+ "Qt5RemoteObjects.dll",
+ "Qt5Script.dll",
+ "Qt5ScriptTools.dll",
+ "Qt5Scxml.dll",
+ "Qt5Sensors.dll",
+ "Qt5SerialBus.dll",
+ "Qt5SerialPort.dll",
+ "Qt5Sql.dll",
+ "Qt5Svg.dll",
+ "Qt5Test.dll",
+ "Qt5TextToSpeech.dll",
+ "Qt5VirtualKeyboard.dll",
+ "Qt5WebChannel.dll",
+ "Qt5WebEngine.dll",
+ "Qt5WebEngineCore.dll",
+ "Qt5WebEngineWidgets.dll",
+ "Qt5WebSockets.dll",
+ "Qt5WebView.dll",
+ "Qt5Xml.dll",
+ "Qt5XmlPatterns.dll",
+ "QtAxContainer.pyd",
+ "QtAxContainer.pyi",
+ "QtCharts.pyd",
+ "QtCharts.pyi",
+ "QtConcurrent.pyd",
+ "QtConcurrent.pyi",
+ "QtDataVisualization.pyd",
+ "QtDataVisualization.pyi",
+ "qtdiag.exe",
+ "QtHelp.pyd",
+ "QtHelp.pyi",
+ "QtLocation.pyd",
+ "QtLocation.pyi",
+ "QtMultimedia.pyd",
+ "QtMultimedia.pyi",
+ "QtMultimediaWidgets.pyd",
+ "QtMultimediaWidgets.pyi",
+ "QtNetwork.pyd",
+ "QtNetwork.pyi",
+ "QtOpenGL.pyd",
+ "QtOpenGL.pyi",
+ "QtOpenGLFunctions.pyd",
+ "QtOpenGLFunctions.pyi",
+ "QtPositioning.pyd",
+ "QtPositioning.pyi",
+ "QtPrintSupport.pyd",
+ "QtPrintSupport.pyi",
+ "QtQml.pyd",
+ "QtQml.pyi",
+ "QtQuick.pyd",
+ "QtQuick.pyi",
+ "QtQuickControls2.pyd",
+ "QtQuickControls2.pyi",
+ "QtQuickWidgets.pyd",
+ "QtQuickWidgets.pyi",
+ "QtRemoteObjects.pyd",
+ "QtRemoteObjects.pyi",
+ "QtScript.pyd",
+ "QtScript.pyi",
+ "QtScriptTools.pyd",
+ "QtScriptTools.pyi",
+ "QtScxml.pyd",
+ "QtScxml.pyi",
+ "QtSensors.pyd",
+ "QtSensors.pyi",
+ "QtSerialPort.pyd",
+ "QtSerialPort.pyi",
+ "QtSql.pyd",
+ "QtSql.pyi",
+ "QtSvg.pyd",
+ "QtSvg.pyi",
+ "QtTest.pyd",
+ "QtTest.pyi",
+ "QtTextToSpeech.pyd",
+ "QtTextToSpeech.pyi",
+ "QtUiTools.pyd",
+ "QtUiTools.pyi",
+ "QtWebChannel.pyd",
+ "QtWebChannel.pyi",
+ "QtWebEngine.pyd",
+ "QtWebEngine.pyi",
+ "QtWebEngineCore.pyd",
+ "QtWebEngineCore.pyi",
+ "QtWebEngineProcess.exe",
+ "QtWebEngineWidgets.pyd",
+ "QtWebEngineWidgets.pyi",
+ "QtWebSockets.pyd",
+ "QtWebSockets.pyi",
+ "QtWinExtras.pyd",
+ "QtWinExtras.pyi",
+ "QtXml.pyd",
+ "QtXml.pyi",
+ "QtXmlPatterns.pyd",
+ "QtXmlPatterns.pyi",
+ "rcc.exe",
+ "uic.exe",
+ ]:
+ os.remove(
+ os.path.join(
+ desktop_dir,
+ "build",
+ "exe.win32-3.9",
+ "lib",
+ "PySide2",
+ filename.replace("/", "\\"),
+ )
+ )
+
+ after_size = get_size(os.path.join(desktop_dir, "build", "exe.win32-3.9"))
+ freed_bytes = before_size - after_size
+ freed_mb = int(freed_bytes / 1024 / 1024)
+ print(f"○ Freed {freed_mb} mb")
+
+ print(f"○ Signing onionshare.exe")
+ sign(os.path.join("build", "exe.win32-3.9", "onionshare.exe"), desktop_dir)
+
+ print(f"○ Signing onionshare-cli.exe")
+ sign(os.path.join("build", "exe.win32-3.9", "onionshare-cli.exe"), desktop_dir)
+
+ print(f"○ Build the WiX file")
+ version_filename = os.path.join(
+ root, "cli", "onionshare_cli", "resources", "version.txt"
+ )
+ with open(version_filename) as f:
+ version = f.read().strip()
+
+ dist_dir = os.path.join(
+ root,
+ "desktop",
+ "build",
+ "exe.win32-3.9",
+ )
+
+ data = {
+ "id": "TARGETDIR",
+ "name": "SourceDir",
+ "dirs": [
+ {
+ "id": "ProgramFilesFolder",
+ "dirs": [],
+ },
+ {
+ "id": "ProgramMenuFolder",
+ "dirs": [],
+ },
+ ],
+ }
+
+ data["dirs"][0]["dirs"].append(
+ wix_build_data(
+ dist_dir,
+ "exe.win32-3.9",
+ "INSTALLDIR",
+ "OnionShare",
+ )
+ )
+
+ root_el = ET.Element("Wix", xmlns="http://schemas.microsoft.com/wix/2006/wi")
+ product_el = ET.SubElement(
+ root_el,
+ "Product",
+ Name="OnionShare",
+ Manufacturer="Micah Lee, et al.",
+ Id="*",
+ UpgradeCode="$(var.ProductUpgradeCode)",
+ Language="1033",
+ Codepage="1252",
+ Version="$(var.ProductVersion)",
+ )
+ ET.SubElement(
+ product_el,
+ "Package",
+ Id="*",
+ Keywords="Installer",
+ Description="OnionShare $(var.ProductVersion) Installer",
+ Manufacturer="Micah Lee, et al.",
+ InstallerVersion="100",
+ Languages="1033",
+ Compressed="yes",
+ SummaryCodepage="1252",
+ )
+ ET.SubElement(product_el, "Media", Id="1", Cabinet="product.cab", EmbedCab="yes")
+ ET.SubElement(
+ product_el,
+ "Icon",
+ Id="ProductIcon",
+ SourceFile="..\\onionshare\\resources\\onionshare.ico",
+ )
+ ET.SubElement(product_el, "Property", Id="ARPPRODUCTICON", Value="ProductIcon")
+ ET.SubElement(
+ product_el,
+ "Property",
+ Id="ARPHELPLINK",
+ Value="https://docs.onionshare.org",
+ )
+ ET.SubElement(
+ product_el,
+ "Property",
+ Id="ARPURLINFOABOUT",
+ Value="https://onionshare.org",
+ )
+ ET.SubElement(product_el, "UIRef", Id="WixUI_Minimal")
+ ET.SubElement(product_el, "UIRef", Id="WixUI_ErrorProgressText")
+ ET.SubElement(
+ product_el,
+ "WixVariable",
+ Id="WixUILicenseRtf",
+ Value="..\\package\\license.rtf",
+ )
+ ET.SubElement(
+ product_el,
+ "WixVariable",
+ Id="WixUIDialogBmp",
+ Value="..\\package\\dialog.bmp",
+ )
+ ET.SubElement(
+ product_el,
+ "MajorUpgrade",
+ AllowSameVersionUpgrades="yes",
+ DowngradeErrorMessage="A newer version of [ProductName] is already installed. If you are sure you want to downgrade, remove the existing installation via Programs and Features.",
+ )
+
+ wix_build_dir_xml(product_el, data)
+ component_ids = wix_build_components_xml(product_el, data)
+
+ feature_el = ET.SubElement(product_el, "Feature", Id="DefaultFeature", Level="1")
+ for component_id in component_ids:
+ ET.SubElement(feature_el, "ComponentRef", Id=component_id)
+ ET.SubElement(feature_el, "ComponentRef", Id="ApplicationShortcuts")
+
+ with open(os.path.join(root, "desktop", "build", "OnionShare.wxs"), "w") as f:
+ f.write('<?xml version="1.0" encoding="windows-1252"?>\n')
+ f.write(f'<?define ProductVersion = "{version}"?>\n')
+ f.write(
+ '<?define ProductUpgradeCode = "12b9695c-965b-4be0-bc33-21274e809576"?>\n'
+ )
+
+ ET.indent(root_el)
+ f.write(ET.tostring(root_el).decode())
+
+ print(f"○ Build the MSI")
+ run(
+ [shutil.which("candle.exe"), "OnionShare.wxs"],
+ os.path.join(desktop_dir, "build"),
+ )
+ run(
+ [shutil.which("light.exe"), "-ext", "WixUIExtension", "OnionShare.wixobj"],
+ os.path.join(desktop_dir, "build"),
+ )
+
+ print(f"○ Prepare OnionShare.msi for signing")
+ run(
+ [
+ shutil.which("insignia.exe"),
+ "-im",
+ os.path.join(desktop_dir, "build", "OnionShare.msi"),
+ ],
+ error_ok=True,
+ )
+ sign(os.path.join(desktop_dir, "build", "OnionShare.msi"))
+
+ final_msi_filename = os.path.join(desktop_dir, "dist", f"OnionShare-{version}.msi")
+ print(f"○ Final MSI: {final_msi_filename}")
+ os.makedirs(os.path.join(desktop_dir, "dist"), exist_ok=True)
+ os.rename(
+ os.path.join(desktop_dir, "build", "OnionShare.msi"),
+ final_msi_filename,
+ )
+
+
+if __name__ == "__main__":
+ main()
diff --git a/desktop/package/dialog.bmp b/desktop/package/dialog.bmp
new file mode 100644
index 00000000..02576827
--- /dev/null
+++ b/desktop/package/dialog.bmp
Binary files differ
diff --git a/desktop/package/license.rtf b/desktop/package/license.rtf
new file mode 100644
index 00000000..d9385a66
--- /dev/null
+++ b/desktop/package/license.rtf
@@ -0,0 +1,136 @@
+{\rtf1\ansi\ansicpg1252\deff0\nouicompat{\fonttbl{\f0\fswiss\fcharset0 Helvetica;}{\f1\fswiss Helvetica;}{\f2\fnil Courier;}}
+{\colortbl ;\red0\green0\blue255;}
+{\*\generator Riched20 10.0.19041}\viewkind4\uc1
+\pard\sa180\b\f0\fs24\lang1033 OnionShare is free and open source software and is developed by Micah Lee, et al.\f1\lang9\par
+\fs28 GNU GENERAL PUBLIC LICENSE\par
+\b0\fs24 Version 3, 29 June 2007\par
+Copyright \f0\'a9 2007 Free Software Foundation, Inc. <{{\field{\*\fldinst{HYPERLINK "https://fsf.org/"}}{\fldrslt{https://fsf.org/\ul0\cf0}}}}\f0\fs24 >\par
+\f1 Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.\par
+\b\fs28 Preamble\par
+\b0\fs24 The GNU General Public License is a free, copyleft license for software and other kinds of works.\par
+The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.\par
+When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.\par
+To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.\par
+For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.\par
+Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.\par
+For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.\par
+Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.\par
+Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.\par
+The precise terms and conditions for copying, distribution and modification follow.\par
+\b\fs28 TERMS AND CONDITIONS\par
+\fs24 0. Definitions.\par
+\b0\ldblquote This License\rdblquote refers to version 3 of the GNU General Public License.\par
+\ldblquote Copyright\rdblquote also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.\par
+\ldblquote The Program\rdblquote refers to any copyrightable work licensed under this License. Each licensee is addressed as \ldblquote you\rdblquote . \ldblquote Licensees\rdblquote and \ldblquote recipients\rdblquote may be individuals or organizations.\par
+To \ldblquote modify\rdblquote a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a \ldblquote modified version\rdblquote of the earlier work or a work \ldblquote based on\rdblquote the earlier work.\par
+A \ldblquote covered work\rdblquote means either the unmodified Program or a work based on the Program.\par
+To \ldblquote propagate\rdblquote a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.\par
+To \ldblquote convey\rdblquote a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.\par
+An interactive user interface displays \ldblquote Appropriate Legal Notices\rdblquote to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.\par
+\b 1. Source Code.\par
+\b0 The \ldblquote source code\rdblquote for a work means the preferred form of the work for making modifications to it. \ldblquote Object code\rdblquote means any non-source form of a work.\par
+A \ldblquote Standard Interface\rdblquote means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.\par
+The \ldblquote System Libraries\rdblquote of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A \ldblquote Major Component\rdblquote , in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.\par
+The \ldblquote Corresponding Source\rdblquote for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.\par
+The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.\par
+The Corresponding Source for a work in source code form is that same work.\par
+\b 2. Basic Permissions.\par
+\b0 All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.\par
+You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.\par
+Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.\par
+\b 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\par
+\b0 No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.\par
+When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.\par
+\b 4. Conveying Verbatim Copies.\par
+\b0 You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.\par
+You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.\par
+\b 5. Conveying Modified Source Versions.\par
+\b0 You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:\par
+
+\pard\fi-360\li360\tx360\bullet\tab a) The work must carry prominent notices stating that you modified it, and giving a relevant date.\par
+\bullet\tab b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to \ldblquote keep intact all notices\rdblquote .\par
+\bullet\tab c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.\par
+
+\pard\fi-360\li360\sa180\tx360\bullet\tab d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.\par
+
+\pard\sa180 A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an \ldblquote aggregate\rdblquote if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.\par
+\b 6. Conveying Non-Source Forms.\par
+\b0 You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:\par
+
+\pard\fi-360\li360\tx360\bullet\tab a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.\par
+\bullet\tab b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.\par
+\bullet\tab c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.\par
+\bullet\tab d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.\par
+
+\pard\fi-360\li360\sa180\tx360\bullet\tab e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.\par
+
+\pard\sa180 A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.\par
+A \ldblquote User Product\rdblquote is either (1) a \ldblquote consumer product\rdblquote , which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, \ldblquote normally used\rdblquote refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.\par
+\ldblquote Installation Information\rdblquote for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.\par
+If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).\par
+The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.\par
+Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.\par
+\b 7. Additional Terms.\par
+\b0\ldblquote Additional permissions\rdblquote are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.\par
+When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.\par
+Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:\par
+
+\pard\fi-360\li360\tx360\bullet\tab a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or\par
+\bullet\tab b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or\par
+\bullet\tab c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or\par
+\bullet\tab d) Limiting the use for publicity purposes of names of licensors or authors of the material; or\par
+\bullet\tab e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or\par
+
+\pard\fi-360\li360\sa180\tx360\bullet\tab f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.\par
+
+\pard\sa180 All other non-permissive additional terms are considered \ldblquote further restrictions\rdblquote within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.\par
+If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.\par
+Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.\par
+\b 8. Termination.\par
+\b0 You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).\par
+However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.\par
+Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.\par
+Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.\par
+\b 9. Acceptance Not Required for Having Copies.\par
+\b0 You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.\par
+\b 10. Automatic Licensing of Downstream Recipients.\par
+\b0 Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.\par
+An \ldblquote entity transaction\rdblquote is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.\par
+You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.\par
+\b 11. Patents.\par
+\b0 A \ldblquote contributor\rdblquote is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's \ldblquote contributor version\rdblquote .\par
+A contributor's \ldblquote essential patent claims\rdblquote are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, \ldblquote control\rdblquote includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.\par
+Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.\par
+In the following three paragraphs, a \ldblquote patent license\rdblquote is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To \ldblquote grant\rdblquote such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.\par
+If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. \ldblquote Knowingly relying\rdblquote means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.\par
+If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.\par
+A patent license is \ldblquote discriminatory\rdblquote if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.\par
+Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.\par
+\b 12. No Surrender of Others' Freedom.\par
+\b0 If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.\par
+\b 13. Use with the GNU Affero General Public License.\par
+\b0 Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.\par
+\b 14. Revised Versions of this License.\par
+\b0 The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.\par
+Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License \ldblquote or any later version\rdblquote applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.\par
+If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.\par
+Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.\par
+\b 15. Disclaimer of Warranty.\par
+\b0 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \ldblquote AS IS\rdblquote WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\par
+\b 16. Limitation of Liability.\par
+\b0 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\par
+\b 17. Interpretation of Sections 15 and 16.\par
+\b0 If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.\par
+END OF TERMS AND CONDITIONS\par
+\b\fs28 How to Apply These Terms to Your New Programs\par
+\b0\fs24 If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.\par
+To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the \ldblquote copyright\rdblquote line and a pointer to where the full notice is found.\par
+\f2 <one line to give the program's name and a brief idea of what it does.>\line Copyright (C) <year> <name of author>\line\line This program is free software: you can redistribute it and/or modify\line it under the terms of the GNU General Public License as published by\line the Free Software Foundation, either version 3 of the License, or\line (at your option) any later version.\line\line This program is distributed in the hope that it will be useful,\line but WITHOUT ANY WARRANTY; without even the implied warranty of\line MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\line GNU General Public License for more details.\line\line You should have received a copy of the GNU General Public License\line along with this program. If not, see <{{\field{\*\fldinst{HYPERLINK "https://www.gnu.org/licenses/"}}{\fldrslt{https://www.gnu.org/licenses/\ul0\cf0}}}}\f2\fs24 >.\par
+\f1 Also add information on how to contact you by electronic and paper mail.\par
+If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:\par
+\f2 <program> Copyright (C) <year> <name of author>\line This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\line This is free software, and you are welcome to redistribute it\line under certain conditions; type `show c' for details.\par
+\f1 The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an \ldblquote about box\rdblquote .\par
+You should also get your employer (if you work as a programmer) or school, if any, to sign a \ldblquote copyright disclaimer\rdblquote for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see <{{\field{\*\fldinst{HYPERLINK "https://www.gnu.org/licenses/"}}{\fldrslt{https://www.gnu.org/licenses/\ul0\cf0}}}}\f1\fs24 >.\par
+The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read <{{\field{\*\fldinst{HYPERLINK "https://www.gnu.org/licenses/why-not-lgpl.html"}}{\fldrslt{https://www.gnu.org/licenses/why-not-lgpl.html\ul0\cf0}}}}\f1\fs24 >.\par
+}
+
diff --git a/desktop/package/linux/build-appimage.py b/desktop/package/linux/build-appimage.py
deleted file mode 100755
index dfaba1b4..00000000
--- a/desktop/package/linux/build-appimage.py
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env python3
-import os
-import inspect
-import subprocess
-import shutil
-import glob
-
-root = os.path.dirname(
- os.path.dirname(
- os.path.dirname(
- os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
- )
- )
-)
-
-
-def run(cmd, cwd=None):
- subprocess.run(cmd, cwd=cwd, check=True)
-
-
-def main():
- cli_dir = os.path.join(root, "cli")
- desktop_dir = os.path.join(root, "desktop")
-
- print("○ Clean up from last build")
- if os.path.exists(os.path.join(cli_dir, "dist")):
- shutil.rmtree(os.path.join(cli_dir, "dist"))
- if os.path.exists(os.path.join(desktop_dir, "linux")):
- shutil.rmtree(os.path.join(desktop_dir, "linux"))
-
- print("○ Building onionshare-cli")
- run(["poetry", "install"], cli_dir)
- run(["poetry", "build"], cli_dir)
- whl_filename = glob.glob(os.path.join(cli_dir, "dist", "*.whl"))[0]
- whl_basename = os.path.basename(whl_filename)
- shutil.copyfile(whl_filename, os.path.join(desktop_dir, whl_basename))
-
- print("○ Create the binary")
- run(["briefcase", "create"], desktop_dir)
-
- print("○ Create the AppImage")
- run(["briefcase", "build"], desktop_dir)
-
-
-if __name__ == "__main__":
- main()
diff --git a/desktop/package/macos/build.py b/desktop/package/macos/build.py
deleted file mode 100755
index 2bfea3ad..00000000
--- a/desktop/package/macos/build.py
+++ /dev/null
@@ -1,262 +0,0 @@
-#!/usr/bin/env python3
-import os
-import inspect
-import subprocess
-import argparse
-import shutil
-import glob
-import itertools
-
-root = os.path.dirname(
- os.path.dirname(
- os.path.dirname(
- os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
- )
- )
-)
-
-
-def codesign(path, entitlements, identity):
- run(
- [
- "codesign",
- "--sign",
- identity,
- "--entitlements",
- str(entitlements),
- "--timestamp",
- "--deep",
- str(path),
- "--force",
- "--options",
- "runtime",
- ]
- )
-
-
-def run(cmd, cwd=None):
- subprocess.run(cmd, cwd=cwd, check=True)
-
-
-def main():
- # Parse arguments
- parser = argparse.ArgumentParser()
- parser.add_argument(
- "--with-codesign",
- action="store_true",
- dest="with_codesign",
- help="Codesign the app bundle",
- )
- args = parser.parse_args()
-
- cli_dir = os.path.join(root, "cli")
- desktop_dir = os.path.join(root, "desktop")
-
- print("○ Clean up from last build")
- if os.path.exists(os.path.join(cli_dir, "dist")):
- shutil.rmtree(os.path.join(cli_dir, "dist"))
- if os.path.exists(os.path.join(desktop_dir, "macOS")):
- shutil.rmtree(os.path.join(desktop_dir, "macOS"))
-
- print("○ Build onionshare-cli")
- run(["poetry", "install"], cli_dir)
- run(["poetry", "build"], cli_dir)
- whl_filename = glob.glob(os.path.join(cli_dir, "dist", "*.whl"))[0]
- whl_basename = os.path.basename(whl_filename)
- shutil.copyfile(whl_filename, os.path.join(desktop_dir, whl_basename))
-
- print("○ Create app bundle")
- run(["briefcase", "create"], desktop_dir)
- app_path = os.path.join(desktop_dir, "macOS", "app", "OnionShare", "OnionShare.app")
-
- print("○ Delete unused Qt5 frameworks from app bundle")
- for framework in [
- "Qt3DAnimation",
- "Qt3DCore",
- "Qt3DExtras",
- "Qt3DInput",
- "Qt3DLogic",
- "Qt3DQuick",
- "Qt3DQuickAnimation",
- "Qt3DQuickExtras",
- "Qt3DQuickInput",
- "Qt3DQuickRender",
- "Qt3DQuickScene2D",
- "Qt3DRender",
- "QtBluetooth",
- "QtBodymovin",
- "QtCharts",
- "QtConcurrent",
- "QtDataVisualization",
- "QtDesigner",
- "QtDesignerComponents",
- "QtGamepad",
- "QtHelp",
- "QtLocation",
- "QtMultimedia",
- "QtMultimediaQuick",
- "QtMultimediaWidgets",
- "QtNfc",
- "QtOpenGL",
- "QtPdf",
- "QtPdfWidgets",
- "QtPositioning",
- "QtPositioningQuick",
- "QtPurchasing",
- "QtQuick",
- "QtQuick3D",
- "QtQuick3DAssetImport",
- "QtQuick3DRender",
- "QtQuick3DRuntimeRender",
- "QtQuick3DUtils",
- "QtQuickControls2",
- "QtQuickParticles",
- "QtQuickShapes",
- "QtQuickTemplates2",
- "QtQuickTest",
- "QtQuickWidgets",
- "QtRemoteObjects",
- "QtRepParser",
- "QtScript",
- "QtScriptTools",
- "QtScxml",
- "QtSensors",
- "QtSerialBus",
- "QtSerialPort",
- "QtSql",
- "QtSvg",
- "QtTest",
- "QtTextToSpeech",
- "QtUiPlugin",
- "QtVirtualKeyboard",
- "QtWebChannel",
- "QtWebEngine",
- "QtWebEngineCore",
- "QtWebEngineWidgets",
- "QtWebSockets",
- "QtWebView",
- "QtXml",
- "QtXmlPatterns",
- ]:
- shutil.rmtree(
- os.path.join(
- app_path,
- "Contents",
- "Resources",
- "app_packages",
- "PySide2",
- "Qt",
- "lib",
- f"{framework}.framework",
- )
- )
- try:
- os.remove(
- os.path.join(
- app_path,
- "Contents",
- "Resources",
- "app_packages",
- "PySide2",
- f"{framework}.abi3.so",
- )
- )
- os.remove(
- os.path.join(
- app_path,
- "Contents",
- "Resources",
- "app_packages",
- "PySide2",
- f"{framework}.pyi",
- )
- )
- except FileNotFoundError:
- pass
- shutil.rmtree(
- os.path.join(
- app_path,
- "Contents",
- "Resources",
- "app_packages",
- "PySide2",
- "Designer.app",
- )
- )
-
- print(f"○ Unsigned app bundle: {app_path}")
-
- if args.with_codesign:
- identity_name_application = "Developer ID Application: Micah Lee (N9B95FDWH4)"
- entitlements_plist_path = os.path.join(
- desktop_dir, "package", "macos", "Entitlements.plist"
- )
-
- print("○ Code sign app bundle")
- for path in itertools.chain(
- glob.glob(
- f"{app_path}/Contents/Resources/app_packages/**/*.dylib", recursive=True
- ),
- glob.glob(
- f"{app_path}/Contents/Resources/app_packages/**/*.so", recursive=True
- ),
- glob.glob(
- f"{app_path}/Contents/Resources/Support/**/*.dylib", recursive=True
- ),
- glob.glob(f"{app_path}/Contents/Resources/Support/**/*.so", recursive=True),
- glob.glob(
- f"{app_path}/Contents/Resources/app_packages/PySide2/Qt/lib/**/Versions/5/*",
- recursive=True,
- ),
- [
- f"{app_path}/Contents/Resources/app_packages/PySide2/pyside2-lupdate",
- f"{app_path}/Contents/Resources/app_packages/PySide2/rcc",
- f"{app_path}/Contents/Resources/app_packages/PySide2/uic",
- app_path,
- ],
- ):
- codesign(path, entitlements_plist_path, identity_name_application)
- codesign(app_path, entitlements_plist_path, identity_name_application)
- print(f"○ Signed app bundle: {app_path}")
-
- if not os.path.exists("/usr/local/bin/create-dmg"):
- print("○ Error: create-dmg is not installed")
- return
-
- print("○ Create DMG")
- dmg_path = os.path.join(desktop_dir, "macOS", "OnionShare.dmg")
- run(
- [
- "create-dmg",
- "--volname",
- "OnionShare",
- "--volicon",
- os.path.join(
- desktop_dir, "src", "onionshare", "resources", "onionshare.icns"
- ),
- "--window-size",
- "400",
- "200",
- "--icon-size",
- "100",
- "--icon",
- "OnionShare.app",
- "100",
- "70",
- "--hide-extension",
- "OnionShare.app",
- "--app-drop-link",
- "300",
- "70",
- dmg_path,
- app_path,
- "--identity",
- identity_name_application,
- ]
- )
-
- print(f"○ Finished building DMG: {dmg_path}")
-
-
-if __name__ == "__main__":
- main()
diff --git a/desktop/package/onionshare-cli.py b/desktop/package/onionshare-cli.py
new file mode 100644
index 00000000..3cb03d59
--- /dev/null
+++ b/desktop/package/onionshare-cli.py
@@ -0,0 +1,3 @@
+import onionshare_cli
+
+onionshare_cli.main()
diff --git a/desktop/package/onionshare.py b/desktop/package/onionshare.py
new file mode 100644
index 00000000..f9b7c4c8
--- /dev/null
+++ b/desktop/package/onionshare.py
@@ -0,0 +1,3 @@
+import onionshare
+
+onionshare.main()
diff --git a/desktop/package/windows/build.py b/desktop/package/windows/build.py
deleted file mode 100644
index bbccbe46..00000000
--- a/desktop/package/windows/build.py
+++ /dev/null
@@ -1,234 +0,0 @@
-#!/usr/bin/env python3
-import os
-import inspect
-import subprocess
-import shutil
-import glob
-
-root = os.path.dirname(
- os.path.dirname(
- os.path.dirname(
- os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
- )
- )
-)
-
-
-def run(cmd, cwd=None):
- subprocess.run(cmd, cwd=cwd, check=True)
-
-
-def main():
- cli_dir = os.path.join(root, "cli")
- desktop_dir = os.path.join(root, "desktop")
-
- print("○ Clean up from last build")
- if os.path.exists(os.path.join(cli_dir, "dist")):
- shutil.rmtree(os.path.join(cli_dir, "dist"))
- if os.path.exists(os.path.join(desktop_dir, "windows")):
- shutil.rmtree(os.path.join(desktop_dir, "windows"))
-
- print("○ Building onionshare-cli")
- run(["poetry", "install"], cli_dir)
- run(["poetry", "build"], cli_dir)
- whl_filename = glob.glob(os.path.join(cli_dir, "dist", "*.whl"))[0]
- whl_basename = os.path.basename(whl_filename)
- shutil.copyfile(whl_filename, os.path.join(desktop_dir, whl_basename))
-
- print("○ Create the binary")
- run(["briefcase", "create"], desktop_dir)
-
- print("○ Delete unused Qt5 DLLs to save space")
- for filename in [
- "plugins/assetimporters/assimp.dll",
- "plugins/assetimporters/uip.dll",
- "plugins/audio/qtaudio_wasapi.dll",
- "plugins/audio/qtaudio_windows.dll",
- "plugins/bearer/qgenericbearer.dll",
- "plugins/canbus/qtpassthrucanbus.dll",
- "plugins/canbus/qtpeakcanbus.dll",
- "plugins/canbus/qtsysteccanbus.dll",
- "plugins/canbus/qttinycanbus.dll",
- "plugins/canbus/qtvectorcanbus.dll",
- "plugins/canbus/qtvirtualcanbus.dll",
- "plugins/gamepads/xinputgamepad.dll",
- "plugins/generic/qtuiotouchplugin.dll",
- "plugins/geometryloaders/defaultgeometryloader.dll",
- "plugins/geometryloaders/gltfgeometryloader.dll",
- "plugins/geoservices/qtgeoservices_esri.dll",
- "plugins/geoservices/qtgeoservices_itemsoverlay.dll",
- "plugins/geoservices/qtgeoservices_mapbox.dll",
- "plugins/geoservices/qtgeoservices_nokia.dll",
- "plugins/geoservices/qtgeoservices_osm.dll",
- "plugins/mediaservice/dsengine.dll",
- "plugins/mediaservice/qtmedia_audioengine.dll",
- "plugins/mediaservice/wmfengine.dll",
- "plugins/platforminputcontexts/qtvirtualkeyboardplugin.dll",
- "plugins/platformthemes/qxdgdesktopportal.dll",
- "plugins/playlistformats/qtmultimedia_m3u.dll",
- "plugins/position/qtposition_positionpoll.dll",
- "plugins/position/qtposition_serialnmea.dll",
- "plugins/position/qtposition_winrt.dll",
- "plugins/printsupport/windowsprintersupport.dll",
- "plugins/qmltooling/qmldbg_debugger.dll",
- "plugins/qmltooling/qmldbg_inspector.dll",
- "plugins/qmltooling/qmldbg_local.dll",
- "plugins/qmltooling/qmldbg_messages.dll",
- "plugins/qmltooling/qmldbg_native.dll",
- "plugins/qmltooling/qmldbg_nativedebugger.dll",
- "plugins/qmltooling/qmldbg_preview.dll",
- "plugins/qmltooling/qmldbg_profiler.dll",
- "plugins/qmltooling/qmldbg_quickprofiler.dll",
- "plugins/qmltooling/qmldbg_server.dll",
- "plugins/qmltooling/qmldbg_tcp.dll",
- "plugins/renderers/openglrenderer.dll",
- "plugins/renderplugins/scene2d.dll",
- "plugins/scenegraph/qsgd3d12backend.dll",
- "plugins/sceneparsers/assimpsceneimport.dll",
- "plugins/sceneparsers/gltfsceneexport.dll",
- "plugins/sceneparsers/gltfsceneimport.dll",
- "plugins/sensorgestures/qtsensorgestures_plugin.dll",
- "plugins/sensorgestures/qtsensorgestures_shakeplugin.dll",
- "plugins/sensors/qtsensors_generic.dll",
- "plugins/sqldrivers/qsqlite.dll",
- "plugins/sqldrivers/qsqlodbc.dll",
- "plugins/sqldrivers/qsqlpsql.dll",
- "plugins/texttospeech/qtexttospeech_sapi.dll",
- "plugins/virtualkeyboard/qtvirtualkeyboard_hangul.dll",
- "plugins/virtualkeyboard/qtvirtualkeyboard_openwnn.dll",
- "plugins/virtualkeyboard/qtvirtualkeyboard_pinyin.dll",
- "plugins/virtualkeyboard/qtvirtualkeyboard_tcime.dll",
- "plugins/virtualkeyboard/qtvirtualkeyboard_thai.dll",
- "plugins/webview/qtwebview_webengine.dll",
- "qml/Qt/labs/animation/labsanimationplugin.dll",
- "qml/Qt/labs/calendar/qtlabscalendarplugin.dll",
- "qml/Qt/labs/folderlistmodel/qmlfolderlistmodelplugin.dll",
- "qml/Qt/labs/location/locationlabsplugin.dll",
- "qml/Qt/labs/lottieqt/lottieqtplugin.dll",
- "qml/Qt/labs/platform/qtlabsplatformplugin.dll",
- "qml/Qt/labs/qmlmodels/labsmodelsplugin.dll",
- "qml/Qt/labs/settings/qmlsettingsplugin.dll",
- "qml/Qt/labs/sharedimage/sharedimageplugin.dll",
- "qml/Qt/labs/wavefrontmesh/qmlwavefrontmeshplugin.dll",
- "qml/Qt3D/Animation/quick3danimationplugin.dll",
- "qml/Qt3D/Core/quick3dcoreplugin.dll",
- "qml/Qt3D/Extras/quick3dextrasplugin.dll",
- "qml/Qt3D/Input/quick3dinputplugin.dll",
- "qml/Qt3D/Logic/quick3dlogicplugin.dll",
- "qml/Qt3D/Render/quick3drenderplugin.dll",
- "qml/QtBluetooth/declarative_bluetooth.dll",
- "qml/QtCharts/qtchartsqml2.dll",
- "qml/QtDataVisualization/datavisualizationqml2.dll",
- "qml/QtGamepad/declarative_gamepad.dll",
- "qml/QtGraphicalEffects/private/qtgraphicaleffectsprivate.dll",
- "qml/QtGraphicalEffects/qtgraphicaleffectsplugin.dll",
- "qml/QtLocation/declarative_location.dll",
- "qml/QtMultimedia/declarative_multimedia.dll",
- "qml/QtNfc/declarative_nfc.dll",
- "qml/QtPositioning/declarative_positioning.dll",
- "qml/QtPurchasing/declarative_purchasing.dll",
- "qml/QtQml/Models.2/modelsplugin.dll",
- "qml/QtQml/qmlplugin.dll",
- "qml/QtQml/RemoteObjects/qtqmlremoteobjects.dll",
- "qml/QtQml/StateMachine/qtqmlstatemachine.dll",
- "qml/QtQml/WorkerScript.2/workerscriptplugin.dll",
- "qml/QtQuick/Controls/qtquickcontrolsplugin.dll",
- "qml/QtQuick/Controls/Styles/Flat/qtquickextrasflatplugin.dll",
- "qml/QtQuick/Controls.2/Fusion/qtquickcontrols2fusionstyleplugin.dll",
- "qml/QtQuick/Controls.2/Imagine/qtquickcontrols2imaginestyleplugin.dll",
- "qml/QtQuick/Controls.2/Material/qtquickcontrols2materialstyleplugin.dll",
- "qml/QtQuick/Controls.2/qtquickcontrols2plugin.dll",
- "qml/QtQuick/Controls.2/Universal/qtquickcontrols2universalstyleplugin.dll",
- "qml/QtQuick/Dialogs/dialogplugin.dll",
- "qml/QtQuick/Dialogs/Private/dialogsprivateplugin.dll",
- "qml/QtQuick/Extras/qtquickextrasplugin.dll",
- "qml/QtQuick/Layouts/qquicklayoutsplugin.dll",
- "qml/QtQuick/LocalStorage/qmllocalstorageplugin.dll",
- "qml/QtQuick/Particles.2/particlesplugin.dll",
- "qml/QtQuick/Pdf/pdfplugin.dll",
- "qml/QtQuick/PrivateWidgets/widgetsplugin.dll",
- "qml/QtQuick/Scene2D/qtquickscene2dplugin.dll",
- "qml/QtQuick/Scene3D/qtquickscene3dplugin.dll",
- "qml/QtQuick/Shapes/qmlshapesplugin.dll",
- "qml/QtQuick/Templates.2/qtquicktemplates2plugin.dll",
- "qml/QtQuick/Timeline/qtquicktimelineplugin.dll",
- "qml/QtQuick/VirtualKeyboard/qtquickvirtualkeyboardplugin.dll",
- "qml/QtQuick/VirtualKeyboard/Settings/qtquickvirtualkeyboardsettingsplugin.dll",
- "qml/QtQuick/VirtualKeyboard/Styles/qtquickvirtualkeyboardstylesplugin.dll",
- "qml/QtQuick/Window.2/windowplugin.dll",
- "qml/QtQuick/XmlListModel/qmlxmllistmodelplugin.dll",
- "qml/QtQuick.2/qtquick2plugin.dll",
- "qml/QtQuick3D/Effects/qtquick3deffectplugin.dll",
- "qml/QtQuick3D/Helpers/qtquick3dhelpersplugin.dll",
- "qml/QtQuick3D/Materials/qtquick3dmaterialplugin.dll",
- "qml/QtQuick3D/qquick3dplugin.dll",
- "qml/QtRemoteObjects/qtremoteobjects.dll",
- "qml/QtScxml/declarative_scxml.dll",
- "qml/QtSensors/declarative_sensors.dll",
- "qml/QtTest/qmltestplugin.dll",
- "qml/QtWebChannel/declarative_webchannel.dll",
- "qml/QtWebEngine/qtwebengineplugin.dll",
- "qml/QtWebSockets/declarative_qmlwebsockets.dll",
- "qml/QtWebView/declarative_webview.dll",
- "Qt5DBus.dll",
- "Qt5PrintSupport.dll",
- "Qt5Script.dll",
- "Qt5ScriptTools.dll",
- "Qt5Scxml.dll",
- "Qt5Sensors.dll",
- "Qt5SerialBus.dll",
- "Qt5SerialPort.dll",
- "Qt5Sql.dll",
- "Qt5Svg.dll",
- "Qt5Test.dll",
- "Qt5TextToSpeech.dll",
- "Qt5VirtualKeyboard.dll",
- "Qt5WebChannel.dll",
- "Qt5WebEngine.dll",
- "Qt5WebEngineCore.dll",
- "Qt5WebEngineWidgets.dll",
- "Qt5WebSockets.dll",
- "Qt5WebView.dll",
- "Qt5Xml.dll",
- "Qt5XmlPatterns.dll",
- ]:
- os.remove(
- os.path.join(
- desktop_dir,
- "windows",
- "msi",
- "OnionShare",
- "src",
- "app_packages",
- "PySide2",
- filename.replace("/", "\\"),
- )
- )
-
- print("○ Create the installer")
- run(["briefcase", "package"], desktop_dir)
- msi_filename = glob.glob(os.path.join(desktop_dir, "windows", "OnionShare-*.msi"))[
- 0
- ]
- print(f"○ Created unsigned installer: {msi_filename}")
-
- print("○ Signing installer")
- run(
- [
- "signtool.exe",
- "sign",
- "/v",
- "/d",
- "OnionShare",
- "/a",
- "/tr",
- "http://time.certum.pl/",
- msi_filename,
- ],
- desktop_dir,
- )
- print(f"○ Signed installer: {msi_filename}")
-
-
-if __name__ == "__main__":
- main()
diff --git a/desktop/poetry.lock b/desktop/poetry.lock
new file mode 100644
index 00000000..149ceae4
--- /dev/null
+++ b/desktop/poetry.lock
@@ -0,0 +1,1317 @@
+[[package]]
+name = "appdirs"
+version = "1.4.4"
+description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "atomicwrites"
+version = "1.4.0"
+description = "Atomic file writes."
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "attrs"
+version = "21.4.0"
+description = "Classes Without Boilerplate"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.extras]
+dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"]
+docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
+tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"]
+tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"]
+
+[[package]]
+name = "bidict"
+version = "0.21.4"
+description = "The bidirectional mapping library for Python."
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "black"
+version = "20.8b1"
+description = "The uncompromising code formatter."
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+appdirs = "*"
+click = ">=7.1.2"
+dataclasses = {version = ">=0.6", markers = "python_version < \"3.7\""}
+mypy-extensions = ">=0.4.3"
+pathspec = ">=0.6,<1"
+regex = ">=2020.1.8"
+toml = ">=0.10.1"
+typed-ast = ">=1.4.0"
+typing-extensions = ">=3.7.4"
+
+[package.extras]
+colorama = ["colorama (>=0.4.3)"]
+d = ["aiohttp (>=3.3.2)", "aiohttp-cors"]
+
+[[package]]
+name = "cepa"
+version = "1.8.3"
+description = "Stem is a Python controller library that allows applications to interact with Tor (https://www.torproject.org/)."
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "certifi"
+version = "2021.10.8"
+description = "Python package for providing Mozilla's CA Bundle."
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "cffi"
+version = "1.15.0"
+description = "Foreign Function Interface for Python calling C code."
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+pycparser = "*"
+
+[[package]]
+name = "charset-normalizer"
+version = "2.0.10"
+description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
+category = "main"
+optional = false
+python-versions = ">=3.5.0"
+
+[package.extras]
+unicode_backport = ["unicodedata2"]
+
+[[package]]
+name = "click"
+version = "7.1.2"
+description = "Composable command line interface toolkit"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[[package]]
+name = "colorama"
+version = "0.4.4"
+description = "Cross-platform colored terminal text."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[[package]]
+name = "cx-freeze"
+version = "6.9"
+description = "Create standalone executables from Python scripts"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+cx-logging = {version = ">=3.0", markers = "sys_platform == \"win32\""}
+importlib-metadata = ">=4.3.1"
+
+[[package]]
+name = "cx-logging"
+version = "3.0"
+description = "Python and C interfaces for logging"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "dataclasses"
+version = "0.8"
+description = "A backport of the dataclasses module for Python 3.6"
+category = "dev"
+optional = false
+python-versions = ">=3.6, <3.7"
+
+[[package]]
+name = "dnspython"
+version = "2.1.0"
+description = "DNS toolkit"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.extras]
+dnssec = ["cryptography (>=2.6)"]
+doh = ["requests", "requests-toolbelt"]
+idna = ["idna (>=2.1)"]
+curio = ["curio (>=1.2)", "sniffio (>=1.1)"]
+trio = ["trio (>=0.14.0)", "sniffio (>=1.1)"]
+
+[[package]]
+name = "eventlet"
+version = "0.33.0"
+description = "Highly concurrent networking library"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+dnspython = ">=1.15.0"
+greenlet = ">=0.3"
+six = ">=1.10.0"
+
+[[package]]
+name = "flask"
+version = "1.1.4"
+description = "A simple framework for building complex web applications."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.dependencies]
+click = ">=5.1,<8.0"
+itsdangerous = ">=0.24,<2.0"
+Jinja2 = ">=2.10.1,<3.0"
+Werkzeug = ">=0.15,<2.0"
+
+[package.extras]
+dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"]
+docs = ["sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"]
+dotenv = ["python-dotenv"]
+
+[[package]]
+name = "flask-socketio"
+version = "5.0.1"
+description = "Socket.IO integration for Flask applications"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+Flask = ">=0.9"
+python-socketio = ">=5.0.2"
+
+[[package]]
+name = "gevent"
+version = "21.12.0"
+description = "Coroutine-based network library"
+category = "main"
+optional = false
+python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5"
+
+[package.dependencies]
+cffi = {version = ">=1.12.2", markers = "platform_python_implementation == \"CPython\" and sys_platform == \"win32\""}
+greenlet = {version = ">=1.1.0,<2.0", markers = "platform_python_implementation == \"CPython\""}
+"zope.event" = "*"
+"zope.interface" = "*"
+
+[package.extras]
+dnspython = ["dnspython (>=1.16.0,<2.0)", "idna"]
+docs = ["repoze.sphinx.autointerface", "sphinxcontrib-programoutput", "zope.schema"]
+monitor = ["psutil (>=5.7.0)"]
+recommended = ["cffi (>=1.12.2)", "dnspython (>=1.16.0,<2.0)", "idna", "selectors2", "backports.socketpair", "psutil (>=5.7.0)"]
+test = ["requests", "objgraph", "cffi (>=1.12.2)", "dnspython (>=1.16.0,<2.0)", "idna", "selectors2", "futures", "mock", "backports.socketpair", "contextvars (==2.4)", "coverage (>=5.0)", "coveralls (>=1.7.0)", "psutil (>=5.7.0)"]
+
+[[package]]
+name = "gevent-websocket"
+version = "0.10.1"
+description = "Websocket handler for the gevent pywsgi server, a Python network library"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+gevent = "*"
+
+[[package]]
+name = "greenlet"
+version = "1.1.2"
+description = "Lightweight in-process concurrent programming"
+category = "main"
+optional = false
+python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
+
+[package.extras]
+docs = ["sphinx"]
+
+[[package]]
+name = "idna"
+version = "3.3"
+description = "Internationalized Domain Names in Applications (IDNA)"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[[package]]
+name = "importlib-metadata"
+version = "4.8.3"
+description = "Read metadata from Python packages"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
+zipp = ">=0.5"
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
+perf = ["ipython"]
+testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"]
+
+[[package]]
+name = "iniconfig"
+version = "1.1.1"
+description = "iniconfig: brain-dead simple config-ini parsing"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "itsdangerous"
+version = "1.1.0"
+description = "Various helpers to pass data to untrusted environments and back."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "jinja2"
+version = "2.11.3"
+description = "A very fast and expressive template engine."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.dependencies]
+MarkupSafe = ">=0.23"
+
+[package.extras]
+i18n = ["Babel (>=0.8)"]
+
+[[package]]
+name = "markupsafe"
+version = "2.0.1"
+description = "Safely add untrusted strings to HTML/XML markup."
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "mypy-extensions"
+version = "0.4.3"
+description = "Experimental type system extensions for programs checked with the mypy typechecker."
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "onionshare-cli"
+version = "2.5"
+description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service."
+category = "main"
+optional = false
+python-versions = "^3.6"
+develop = true
+
+[package.dependencies]
+cepa = "1.8.3"
+click = "*"
+colorama = "*"
+eventlet = "*"
+flask = "1.1.4"
+flask-socketio = "5.0.1"
+gevent-websocket = "*"
+psutil = "*"
+pynacl = "*"
+pysocks = "*"
+requests = {version = "*", extras = ["socks"]}
+unidecode = "*"
+urllib3 = "*"
+
+[package.source]
+type = "directory"
+url = "../cli"
+
+[[package]]
+name = "packaging"
+version = "21.3"
+description = "Core utilities for Python packages"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
+
+[[package]]
+name = "pathspec"
+version = "0.9.0"
+description = "Utility library for gitignore style pattern matching of file paths."
+category = "dev"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
+
+[[package]]
+name = "pluggy"
+version = "1.0.0"
+description = "plugin and hook calling mechanisms for python"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
+
+[package.extras]
+dev = ["pre-commit", "tox"]
+testing = ["pytest", "pytest-benchmark"]
+
+[[package]]
+name = "psutil"
+version = "5.9.0"
+description = "Cross-platform lib for process and system monitoring in Python."
+category = "main"
+optional = false
+python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[package.extras]
+test = ["ipaddress", "mock", "unittest2", "enum34", "pywin32", "wmi"]
+
+[[package]]
+name = "py"
+version = "1.11.0"
+description = "library with cross-python path, ini-parsing, io, code, log facilities"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[[package]]
+name = "pycparser"
+version = "2.21"
+description = "C parser in Python"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "pynacl"
+version = "1.5.0"
+description = "Python binding to the Networking and Cryptography (NaCl) library"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+cffi = ">=1.4.1"
+
+[package.extras]
+docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"]
+tests = ["pytest (>=3.2.1,!=3.3.0)", "hypothesis (>=3.27.0)"]
+
+[[package]]
+name = "pyparsing"
+version = "3.0.6"
+description = "Python parsing module"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.extras]
+diagrams = ["jinja2", "railroad-diagrams"]
+
+[[package]]
+name = "pyside2"
+version = "5.15.2"
+description = "Python bindings for the Qt cross-platform application and UI framework"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.10"
+
+[package.dependencies]
+shiboken2 = "5.15.2"
+
+[[package]]
+name = "pysocks"
+version = "1.7.1"
+description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "pytest"
+version = "6.2.5"
+description = "pytest: simple powerful testing with Python"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""}
+attrs = ">=19.2.0"
+colorama = {version = "*", markers = "sys_platform == \"win32\""}
+importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
+iniconfig = "*"
+packaging = "*"
+pluggy = ">=0.12,<2.0"
+py = ">=1.8.2"
+toml = "*"
+
+[package.extras]
+testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
+
+[[package]]
+name = "pytest-faulthandler"
+version = "2.0.1"
+description = "py.test plugin that activates the fault handler module for tests (dummy package)"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+pytest = ">=5.0"
+
+[[package]]
+name = "pytest-qt"
+version = "4.0.2"
+description = "pytest support for PyQt and PySide applications"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+pytest = ">=3.0.0"
+
+[package.extras]
+dev = ["pre-commit", "tox"]
+doc = ["sphinx", "sphinx-rtd-theme"]
+
+[[package]]
+name = "python-engineio"
+version = "4.3.1"
+description = "Engine.IO server and client for Python"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.extras]
+asyncio_client = ["aiohttp (>=3.4)"]
+client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
+
+[[package]]
+name = "python-socketio"
+version = "5.5.1"
+description = "Socket.IO server and client for Python"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+bidict = ">=0.21.0"
+python-engineio = ">=4.3.0"
+
+[package.extras]
+asyncio_client = ["aiohttp (>=3.4)"]
+client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
+
+[[package]]
+name = "qrcode"
+version = "7.3.1"
+description = "QR Code image generator"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+colorama = {version = "*", markers = "platform_system == \"Windows\""}
+
+[package.extras]
+all = ["zest.releaser", "tox", "pytest", "pytest", "pytest-cov", "pillow"]
+dev = ["tox", "pytest"]
+maintainer = ["zest.releaser"]
+pil = ["pillow"]
+test = ["pytest", "pytest-cov"]
+
+[[package]]
+name = "regex"
+version = "2021.11.10"
+description = "Alternative regular expression module, to replace re."
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "requests"
+version = "2.27.1"
+description = "Python HTTP for Humans."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
+
+[package.dependencies]
+certifi = ">=2017.4.17"
+charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""}
+idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""}
+PySocks = {version = ">=1.5.6,<1.5.7 || >1.5.7", optional = true, markers = "extra == \"socks\""}
+urllib3 = ">=1.21.1,<1.27"
+
+[package.extras]
+socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
+use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"]
+
+[[package]]
+name = "shiboken2"
+version = "5.15.2"
+description = "Python / C++ bindings helper module"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.10"
+
+[[package]]
+name = "six"
+version = "1.16.0"
+description = "Python 2 and 3 compatibility utilities"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
+
+[[package]]
+name = "toml"
+version = "0.10.2"
+description = "Python Library for Tom's Obvious, Minimal Language"
+category = "dev"
+optional = false
+python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+
+[[package]]
+name = "typed-ast"
+version = "1.5.1"
+description = "a fork of Python 2 and 3 ast modules with type comment support"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "typing-extensions"
+version = "4.0.1"
+description = "Backported and Experimental Type Hints for Python 3.6+"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "unidecode"
+version = "1.3.2"
+description = "ASCII transliterations of Unicode text"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[[package]]
+name = "urllib3"
+version = "1.26.8"
+description = "HTTP library with thread-safe connection pooling, file post, and more."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
+
+[package.extras]
+brotli = ["brotlipy (>=0.6.0)"]
+secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
+socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
+
+[[package]]
+name = "werkzeug"
+version = "1.0.1"
+description = "The comprehensive WSGI web application library."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.extras]
+dev = ["pytest", "pytest-timeout", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinx-issues"]
+watchdog = ["watchdog"]
+
+[[package]]
+name = "zipp"
+version = "3.6.0"
+description = "Backport of pathlib-compatible object wrapper for zip files"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
+
+[[package]]
+name = "zope.event"
+version = "4.5.0"
+description = "Very basic event publishing system"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.extras]
+docs = ["sphinx"]
+test = ["zope.testrunner"]
+
+[[package]]
+name = "zope.interface"
+version = "5.4.0"
+description = "Interfaces for Python"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.extras]
+docs = ["sphinx", "repoze.sphinx.autointerface"]
+test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
+testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
+
+[metadata]
+lock-version = "1.1"
+python-versions = ">=3.6,<3.10"
+content-hash = "58bc422b26a9918e9bb78933ddc05a6fabb3cf9294ccc7a064ad9fc93ae28835"
+
+[metadata.files]
+appdirs = [
+ {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"},
+ {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"},
+]
+atomicwrites = [
+ {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"},
+ {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"},
+]
+attrs = [
+ {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"},
+ {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"},
+]
+bidict = [
+ {file = "bidict-0.21.4-py3-none-any.whl", hash = "sha256:3ac67daa353ecf853a1df9d3e924f005e729227a60a8dbada31a4c31aba7f654"},
+ {file = "bidict-0.21.4.tar.gz", hash = "sha256:42c84ffbe6f8de898af6073b4be9ea7ccedcd78d3474aa844c54e49d5a079f6f"},
+]
+black = [
+ {file = "black-20.8b1.tar.gz", hash = "sha256:1c02557aa099101b9d21496f8a914e9ed2222ef70336404eeeac8edba836fbea"},
+]
+cepa = [
+ {file = "cepa-1.8.3.tar.gz", hash = "sha256:1dc6f0b324d37a2ed2ca274648ece8fd2c96a1d2f440f58c0ca17afd4b5ede7a"},
+]
+certifi = [
+ {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"},
+ {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"},
+]
+cffi = [
+ {file = "cffi-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962"},
+ {file = "cffi-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0"},
+ {file = "cffi-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14"},
+ {file = "cffi-1.15.0-cp27-cp27m-win32.whl", hash = "sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474"},
+ {file = "cffi-1.15.0-cp27-cp27m-win_amd64.whl", hash = "sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6"},
+ {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27"},
+ {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023"},
+ {file = "cffi-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2"},
+ {file = "cffi-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e"},
+ {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7"},
+ {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3"},
+ {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c"},
+ {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962"},
+ {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382"},
+ {file = "cffi-1.15.0-cp310-cp310-win32.whl", hash = "sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55"},
+ {file = "cffi-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0"},
+ {file = "cffi-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e"},
+ {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39"},
+ {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc"},
+ {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032"},
+ {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8"},
+ {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605"},
+ {file = "cffi-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e"},
+ {file = "cffi-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc"},
+ {file = "cffi-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636"},
+ {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4"},
+ {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997"},
+ {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b"},
+ {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2"},
+ {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7"},
+ {file = "cffi-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66"},
+ {file = "cffi-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029"},
+ {file = "cffi-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880"},
+ {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20"},
+ {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024"},
+ {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e"},
+ {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728"},
+ {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6"},
+ {file = "cffi-1.15.0-cp38-cp38-win32.whl", hash = "sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c"},
+ {file = "cffi-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443"},
+ {file = "cffi-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a"},
+ {file = "cffi-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37"},
+ {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a"},
+ {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e"},
+ {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796"},
+ {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df"},
+ {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8"},
+ {file = "cffi-1.15.0-cp39-cp39-win32.whl", hash = "sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a"},
+ {file = "cffi-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139"},
+ {file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"},
+]
+charset-normalizer = [
+ {file = "charset-normalizer-2.0.10.tar.gz", hash = "sha256:876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd"},
+ {file = "charset_normalizer-2.0.10-py3-none-any.whl", hash = "sha256:cb957888737fc0bbcd78e3df769addb41fd1ff8cf950dc9e7ad7793f1bf44455"},
+]
+click = [
+ {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"},
+ {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"},
+]
+colorama = [
+ {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
+ {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
+]
+cx-freeze = [
+ {file = "cx_Freeze-6.9-cp310-cp310-win32.whl", hash = "sha256:776d4fb68a4831691acbd3c374362b9b48ce2e568514a73c3d4cb14d5dcf1470"},
+ {file = "cx_Freeze-6.9-cp310-cp310-win_amd64.whl", hash = "sha256:243f36d35a034a409cd6247d8cb5d1fbfd7374e3e668e813d0811f64d6bd5ed3"},
+ {file = "cx_Freeze-6.9-cp36-cp36m-win32.whl", hash = "sha256:ffc855eabc735b693e2d604d71dce6d52d78a6ba1070c55d51e786dd68ed232c"},
+ {file = "cx_Freeze-6.9-cp36-cp36m-win_amd64.whl", hash = "sha256:fe4e32a0c75b2b54491882926bf3ba12f8a3d589822a68a8be7c09f1dcca5546"},
+ {file = "cx_Freeze-6.9-cp37-cp37m-win32.whl", hash = "sha256:99c292e7a31cb343efc0cf47f82220a44a4a3b8776651624cd8ee03c23104940"},
+ {file = "cx_Freeze-6.9-cp37-cp37m-win_amd64.whl", hash = "sha256:738ab22f3a3f6bc220b16dccf2aa0603c3cd271b2a7a9d9480dab82311308b23"},
+ {file = "cx_Freeze-6.9-cp38-cp38-win32.whl", hash = "sha256:c1c75df572858e623d0aa39771cd984c0abd8aacb43b2aca2d12d0bc95f25566"},
+ {file = "cx_Freeze-6.9-cp38-cp38-win_amd64.whl", hash = "sha256:0788c895c47fdcf375151ce78ff42336c01aca7bc43daecb8f8f8356cdc42b43"},
+ {file = "cx_Freeze-6.9-cp39-cp39-win32.whl", hash = "sha256:a31f5ddbc80b29e297370d868791470b0e3e9062db45038c23293a76ed039018"},
+ {file = "cx_Freeze-6.9-cp39-cp39-win_amd64.whl", hash = "sha256:30708f603076713c0a839cdfb34f4126d68e9d61afb3d9a59daa9cf252033872"},
+ {file = "cx_Freeze-6.9.tar.gz", hash = "sha256:673aa3199af2ef87fc03a43a30e5d78b27ced2cedde925da89c55b5657da267b"},
+]
+cx-logging = [
+ {file = "cx_Logging-3.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:9fcd297e5c51470521c47eff0f86ba844aeca6be97e13c3e2114ebdf03fa3c96"},
+ {file = "cx_Logging-3.0-cp36-cp36m-win32.whl", hash = "sha256:0df4be47c5022cc54316949e283403214568ef599817ced0c0972183d6d4fabb"},
+ {file = "cx_Logging-3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:203ca92ee7c15d5dfe1fcdfcef7b39d0123eba5c6d8c2388b6e7db6b961a5362"},
+ {file = "cx_Logging-3.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:20daa71b2a30f61d09bcf55dbda002c10f0c7c691f53cb393fc6485410fa2484"},
+ {file = "cx_Logging-3.0-cp37-cp37m-win32.whl", hash = "sha256:5be5f905e8d34a3326e28d428674cdc2d57912fdf6e25b8676d63f76294eb4e0"},
+ {file = "cx_Logging-3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:04e4b61e2636dc8ae135937655af6626362aefc7f6175e86888a244b61001823"},
+ {file = "cx_Logging-3.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:1bf0ebc79a7baa331c7deaf57088c234b82710286dfad453ff0c55eee0122b72"},
+ {file = "cx_Logging-3.0-cp38-cp38-win32.whl", hash = "sha256:d98a59a47e99fa430b3f6d2a979e27509852d2c43e204f43bd0168e7ec97f469"},
+ {file = "cx_Logging-3.0-cp38-cp38-win_amd64.whl", hash = "sha256:bb2e91019e5905415f795eef994de60ace5ae186fc4fe3d358e2d8feebb24992"},
+ {file = "cx_Logging-3.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:b6f4a9b750e02a180517f779d174a1c7db651981cd37e5623235b87da9774dfd"},
+ {file = "cx_Logging-3.0-cp39-cp39-win32.whl", hash = "sha256:e7cca28e8ee4082654b6062cc4d06f83d48f1a7e2d152bab020c9e3e373afb90"},
+ {file = "cx_Logging-3.0-cp39-cp39-win_amd64.whl", hash = "sha256:302e9c4f65a936c288a4fa59a90e7e142d9ef994aa29676731acafdcccdbb3f5"},
+ {file = "cx_Logging-3.0.tar.gz", hash = "sha256:ba8a7465facf7b98d8f494030fb481a2e8aeee29dc191e10383bb54ed42bdb34"},
+]
+dataclasses = [
+ {file = "dataclasses-0.8-py3-none-any.whl", hash = "sha256:0201d89fa866f68c8ebd9d08ee6ff50c0b255f8ec63a71c16fda7af82bb887bf"},
+ {file = "dataclasses-0.8.tar.gz", hash = "sha256:8479067f342acf957dc82ec415d355ab5edb7e7646b90dc6e2fd1d96ad084c97"},
+]
+dnspython = [
+ {file = "dnspython-2.1.0-py3-none-any.whl", hash = "sha256:95d12f6ef0317118d2a1a6fc49aac65ffec7eb8087474158f42f26a639135216"},
+ {file = "dnspython-2.1.0.zip", hash = "sha256:e4a87f0b573201a0f3727fa18a516b055fd1107e0e5477cded4a2de497df1dd4"},
+]
+eventlet = [
+ {file = "eventlet-0.33.0-py2.py3-none-any.whl", hash = "sha256:d10a8fcc9e33381905d9873303fde96ebe3541c03fb795055d2c7347dce0639c"},
+ {file = "eventlet-0.33.0.tar.gz", hash = "sha256:80144f489c1bb273a51b6f96ff9785a382d2866b9bab1f5bd748385019f4141f"},
+]
+flask = [
+ {file = "Flask-1.1.4-py2.py3-none-any.whl", hash = "sha256:c34f04500f2cbbea882b1acb02002ad6fe6b7ffa64a6164577995657f50aed22"},
+ {file = "Flask-1.1.4.tar.gz", hash = "sha256:0fbeb6180d383a9186d0d6ed954e0042ad9f18e0e8de088b2b419d526927d196"},
+]
+flask-socketio = [
+ {file = "Flask-SocketIO-5.0.1.tar.gz", hash = "sha256:5c4319f5214ada20807857dc8fdf3dc7d2afe8d6dd38f5c516c72e2be47d2227"},
+ {file = "Flask_SocketIO-5.0.1-py2.py3-none-any.whl", hash = "sha256:5d9a4438bafd806c5a3b832e74b69758781a8ee26fb6c9b1dbdda9b4fced432e"},
+]
+gevent = [
+ {file = "gevent-21.12.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:2afa3f3ad528155433f6ac8bd64fa5cc303855b97004416ec719a6b1ca179481"},
+ {file = "gevent-21.12.0-cp27-cp27m-win32.whl", hash = "sha256:177f93a3a90f46a5009e0841fef561601e5c637ba4332ab8572edd96af650101"},
+ {file = "gevent-21.12.0-cp27-cp27m-win_amd64.whl", hash = "sha256:a5ad4ed8afa0a71e1927623589f06a9b5e8b5e77810be3125cb4d93050d3fd1f"},
+ {file = "gevent-21.12.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:eae3c46f9484eaacd67ffcdf4eaf6ca830f587edd543613b0f5c4eb3c11d052d"},
+ {file = "gevent-21.12.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e1899b921219fc8959ff9afb94dae36be82e0769ed13d330a393594d478a0b3a"},
+ {file = "gevent-21.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c21cb5c9f4e14d75b3fe0b143ec875d7dbd1495fad6d49704b00e57e781ee0f"},
+ {file = "gevent-21.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:542ae891e2aa217d2cf6d8446538fcd2f3263a40eec123b970b899bac391c47a"},
+ {file = "gevent-21.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:0082d8a5d23c35812ce0e716a91ede597f6dd2c5ff508a02a998f73598c59397"},
+ {file = "gevent-21.12.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:da8d2d51a49b2a5beb02ad619ca9ddbef806ef4870ba04e5ac7b8b41a5b61db3"},
+ {file = "gevent-21.12.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cfff82f05f14b7f5d9ed53ccb7a609ae8604df522bb05c971bca78ec9d8b2b9"},
+ {file = "gevent-21.12.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:7909780f0cf18a1fc32aafd8c8e130cdd93c6e285b11263f7f2d1a0f3678bc50"},
+ {file = "gevent-21.12.0-cp36-cp36m-win32.whl", hash = "sha256:bb5cb8db753469c7a9a0b8a972d2660fe851aa06eee699a1ca42988afb0aaa02"},
+ {file = "gevent-21.12.0-cp36-cp36m-win_amd64.whl", hash = "sha256:c43f081cbca41d27fd8fef9c6a32cf83cb979345b20abc07bf68df165cdadb24"},
+ {file = "gevent-21.12.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:74fc1ef16b86616cfddcc74f7292642b0f72dde4dd95aebf4c45bb236744be54"},
+ {file = "gevent-21.12.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cc2fef0f98ee180704cf95ec84f2bc2d86c6c3711bb6b6740d74e0afe708b62c"},
+ {file = "gevent-21.12.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08b4c17064e28f4eb85604486abc89f442c7407d2aed249cf54544ce5c9baee6"},
+ {file = "gevent-21.12.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:973749bacb7bc4f4181a8fb2a7e0e2ff44038de56d08e856dd54a5ac1d7331b4"},
+ {file = "gevent-21.12.0-cp37-cp37m-win32.whl", hash = "sha256:6a02a88723ed3f0fd92cbf1df3c4cd2fbd87d82b0a4bac3e36a8875923115214"},
+ {file = "gevent-21.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:f289fae643a3f1c3b909d6b033e6921b05234a4907e9c9c8c3f1fe403e6ac452"},
+ {file = "gevent-21.12.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:3baeeccc4791ba3f8db27179dff11855a8f9210ddd754f6c9b48e0d2561c2aea"},
+ {file = "gevent-21.12.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05c5e8a50cd6868dd36536c92fb4468d18090e801bd63611593c0717bab63692"},
+ {file = "gevent-21.12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d86438ede1cbe0fde6ef4cc3f72bf2f1ecc9630d8b633ff344a3aeeca272cdd"},
+ {file = "gevent-21.12.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:01928770972181ad8866ee37ea3504f1824587b188fcab782ef1619ce7538766"},
+ {file = "gevent-21.12.0-cp38-cp38-win32.whl", hash = "sha256:3c012c73e6c61f13c75e3a4869dbe6a2ffa025f103421a6de9c85e627e7477b1"},
+ {file = "gevent-21.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:b7709c64afa8bb3000c28bb91ec42c79594a7cb0f322e20427d57f9762366a5b"},
+ {file = "gevent-21.12.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:ec21f9eaaa6a7b1e62da786132d6788675b314f25f98d9541f1bf00584ed4749"},
+ {file = "gevent-21.12.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:22ce1f38fdfe2149ffe8ec2131ca45281791c1e464db34b3b4321ae9d8d2efbb"},
+ {file = "gevent-21.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ccffcf708094564e442ac6fde46f0ae9e40015cb69d995f4b39cc29a7643881"},
+ {file = "gevent-21.12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24d3550fbaeef5fddd794819c2853bca45a86c3d64a056a2c268d981518220d1"},
+ {file = "gevent-21.12.0-cp39-cp39-win32.whl", hash = "sha256:2bcec9f80196c751fdcf389ca9f7141e7b0db960d8465ed79be5e685bfcad682"},
+ {file = "gevent-21.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:3dad62f55fad839d498c801e139481348991cee6e1c7706041b5fe096cb6a279"},
+ {file = "gevent-21.12.0-pp27-pypy_73-win_amd64.whl", hash = "sha256:9f9652d1e4062d4b5b5a0a49ff679fa890430b5f76969d35dccb2df114c55e0f"},
+ {file = "gevent-21.12.0.tar.gz", hash = "sha256:f48b64578c367b91fa793bf8eaaaf4995cb93c8bc45860e473bf868070ad094e"},
+]
+gevent-websocket = [
+ {file = "gevent-websocket-0.10.1.tar.gz", hash = "sha256:7eaef32968290c9121f7c35b973e2cc302ffb076d018c9068d2f5ca8b2d85fb0"},
+ {file = "gevent_websocket-0.10.1-py3-none-any.whl", hash = "sha256:17b67d91282f8f4c973eba0551183fc84f56f1c90c8f6b6b30256f31f66f5242"},
+]
+greenlet = [
+ {file = "greenlet-1.1.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6"},
+ {file = "greenlet-1.1.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:aec52725173bd3a7b56fe91bc56eccb26fbdff1386ef123abb63c84c5b43b63a"},
+ {file = "greenlet-1.1.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:833e1551925ed51e6b44c800e71e77dacd7e49181fdc9ac9a0bf3714d515785d"},
+ {file = "greenlet-1.1.2-cp27-cp27m-win32.whl", hash = "sha256:aa5b467f15e78b82257319aebc78dd2915e4c1436c3c0d1ad6f53e47ba6e2713"},
+ {file = "greenlet-1.1.2-cp27-cp27m-win_amd64.whl", hash = "sha256:40b951f601af999a8bf2ce8c71e8aaa4e8c6f78ff8afae7b808aae2dc50d4c40"},
+ {file = "greenlet-1.1.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:95e69877983ea39b7303570fa6760f81a3eec23d0e3ab2021b7144b94d06202d"},
+ {file = "greenlet-1.1.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:356b3576ad078c89a6107caa9c50cc14e98e3a6c4874a37c3e0273e4baf33de8"},
+ {file = "greenlet-1.1.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:8639cadfda96737427330a094476d4c7a56ac03de7265622fcf4cfe57c8ae18d"},
+ {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97e5306482182170ade15c4b0d8386ded995a07d7cc2ca8f27958d34d6736497"},
+ {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6a36bb9474218c7a5b27ae476035497a6990e21d04c279884eb10d9b290f1b1"},
+ {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abb7a75ed8b968f3061327c433a0fbd17b729947b400747c334a9c29a9af6c58"},
+ {file = "greenlet-1.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b336501a05e13b616ef81ce329c0e09ac5ed8c732d9ba7e3e983fcc1a9e86965"},
+ {file = "greenlet-1.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:14d4f3cd4e8b524ae9b8aa567858beed70c392fdec26dbdb0a8a418392e71708"},
+ {file = "greenlet-1.1.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:17ff94e7a83aa8671a25bf5b59326ec26da379ace2ebc4411d690d80a7fbcf23"},
+ {file = "greenlet-1.1.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9f3cba480d3deb69f6ee2c1825060177a22c7826431458c697df88e6aeb3caee"},
+ {file = "greenlet-1.1.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:fa877ca7f6b48054f847b61d6fa7bed5cebb663ebc55e018fda12db09dcc664c"},
+ {file = "greenlet-1.1.2-cp35-cp35m-win32.whl", hash = "sha256:7cbd7574ce8e138bda9df4efc6bf2ab8572c9aff640d8ecfece1b006b68da963"},
+ {file = "greenlet-1.1.2-cp35-cp35m-win_amd64.whl", hash = "sha256:903bbd302a2378f984aef528f76d4c9b1748f318fe1294961c072bdc7f2ffa3e"},
+ {file = "greenlet-1.1.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:049fe7579230e44daef03a259faa24511d10ebfa44f69411d99e6a184fe68073"},
+ {file = "greenlet-1.1.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:dd0b1e9e891f69e7675ba5c92e28b90eaa045f6ab134ffe70b52e948aa175b3c"},
+ {file = "greenlet-1.1.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:7418b6bfc7fe3331541b84bb2141c9baf1ec7132a7ecd9f375912eca810e714e"},
+ {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9d29ca8a77117315101425ec7ec2a47a22ccf59f5593378fc4077ac5b754fce"},
+ {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21915eb821a6b3d9d8eefdaf57d6c345b970ad722f856cd71739493ce003ad08"},
+ {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eff9d20417ff9dcb0d25e2defc2574d10b491bf2e693b4e491914738b7908168"},
+ {file = "greenlet-1.1.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b8c008de9d0daba7b6666aa5bbfdc23dcd78cafc33997c9b7741ff6353bafb7f"},
+ {file = "greenlet-1.1.2-cp36-cp36m-win32.whl", hash = "sha256:32ca72bbc673adbcfecb935bb3fb1b74e663d10a4b241aaa2f5a75fe1d1f90aa"},
+ {file = "greenlet-1.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:f0214eb2a23b85528310dad848ad2ac58e735612929c8072f6093f3585fd342d"},
+ {file = "greenlet-1.1.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:b92e29e58bef6d9cfd340c72b04d74c4b4e9f70c9fa7c78b674d1fec18896dc4"},
+ {file = "greenlet-1.1.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:fdcec0b8399108577ec290f55551d926d9a1fa6cad45882093a7a07ac5ec147b"},
+ {file = "greenlet-1.1.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:93f81b134a165cc17123626ab8da2e30c0455441d4ab5576eed73a64c025b25c"},
+ {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e12bdc622676ce47ae9abbf455c189e442afdde8818d9da983085df6312e7a1"},
+ {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c790abda465726cfb8bb08bd4ca9a5d0a7bd77c7ac1ca1b839ad823b948ea28"},
+ {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f276df9830dba7a333544bd41070e8175762a7ac20350786b322b714b0e654f5"},
+ {file = "greenlet-1.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c5d5b35f789a030ebb95bff352f1d27a93d81069f2adb3182d99882e095cefe"},
+ {file = "greenlet-1.1.2-cp37-cp37m-win32.whl", hash = "sha256:64e6175c2e53195278d7388c454e0b30997573f3f4bd63697f88d855f7a6a1fc"},
+ {file = "greenlet-1.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b11548073a2213d950c3f671aa88e6f83cda6e2fb97a8b6317b1b5b33d850e06"},
+ {file = "greenlet-1.1.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:9633b3034d3d901f0a46b7939f8c4d64427dfba6bbc5a36b1a67364cf148a1b0"},
+ {file = "greenlet-1.1.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:eb6ea6da4c787111adf40f697b4e58732ee0942b5d3bd8f435277643329ba627"},
+ {file = "greenlet-1.1.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:f3acda1924472472ddd60c29e5b9db0cec629fbe3c5c5accb74d6d6d14773478"},
+ {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e859fcb4cbe93504ea18008d1df98dee4f7766db66c435e4882ab35cf70cac43"},
+ {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00e44c8afdbe5467e4f7b5851be223be68adb4272f44696ee71fe46b7036a711"},
+ {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec8c433b3ab0419100bd45b47c9c8551248a5aee30ca5e9d399a0b57ac04651b"},
+ {file = "greenlet-1.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2bde6792f313f4e918caabc46532aa64aa27a0db05d75b20edfc5c6f46479de2"},
+ {file = "greenlet-1.1.2-cp38-cp38-win32.whl", hash = "sha256:288c6a76705dc54fba69fbcb59904ae4ad768b4c768839b8ca5fdadec6dd8cfd"},
+ {file = "greenlet-1.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:8d2f1fb53a421b410751887eb4ff21386d119ef9cde3797bf5e7ed49fb51a3b3"},
+ {file = "greenlet-1.1.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:166eac03e48784a6a6e0e5f041cfebb1ab400b394db188c48b3a84737f505b67"},
+ {file = "greenlet-1.1.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:572e1787d1460da79590bf44304abbc0a2da944ea64ec549188fa84d89bba7ab"},
+ {file = "greenlet-1.1.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:be5f425ff1f5f4b3c1e33ad64ab994eed12fc284a6ea71c5243fd564502ecbe5"},
+ {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1692f7d6bc45e3200844be0dba153612103db241691088626a33ff1f24a0d88"},
+ {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7227b47e73dedaa513cdebb98469705ef0d66eb5a1250144468e9c3097d6b59b"},
+ {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff61ff178250f9bb3cd89752df0f1dd0e27316a8bd1465351652b1b4a4cdfd3"},
+ {file = "greenlet-1.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0051c6f1f27cb756ffc0ffbac7d2cd48cb0362ac1736871399a739b2885134d3"},
+ {file = "greenlet-1.1.2-cp39-cp39-win32.whl", hash = "sha256:f70a9e237bb792c7cc7e44c531fd48f5897961701cdaa06cf22fc14965c496cf"},
+ {file = "greenlet-1.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:013d61294b6cd8fe3242932c1c5e36e5d1db2c8afb58606c5a67efce62c1f5fd"},
+ {file = "greenlet-1.1.2.tar.gz", hash = "sha256:e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a"},
+]
+idna = [
+ {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"},
+ {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"},
+]
+importlib-metadata = [
+ {file = "importlib_metadata-4.8.3-py3-none-any.whl", hash = "sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e"},
+ {file = "importlib_metadata-4.8.3.tar.gz", hash = "sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668"},
+]
+iniconfig = [
+ {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
+ {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"},
+]
+itsdangerous = [
+ {file = "itsdangerous-1.1.0-py2.py3-none-any.whl", hash = "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"},
+ {file = "itsdangerous-1.1.0.tar.gz", hash = "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19"},
+]
+jinja2 = [
+ {file = "Jinja2-2.11.3-py2.py3-none-any.whl", hash = "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419"},
+ {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"},
+]
+markupsafe = [
+ {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"},
+ {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"},
+]
+mypy-extensions = [
+ {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"},
+ {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"},
+]
+onionshare-cli = []
+packaging = [
+ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"},
+ {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
+]
+pathspec = [
+ {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"},
+ {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"},
+]
+pluggy = [
+ {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"},
+ {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"},
+]
+psutil = [
+ {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:55ce319452e3d139e25d6c3f85a1acf12d1607ddedea5e35fb47a552c051161b"},
+ {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:7336292a13a80eb93c21f36bde4328aa748a04b68c13d01dfddd67fc13fd0618"},
+ {file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:cb8d10461c1ceee0c25a64f2dd54872b70b89c26419e147a05a10b753ad36ec2"},
+ {file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:7641300de73e4909e5d148e90cc3142fb890079e1525a840cf0dfd39195239fd"},
+ {file = "psutil-5.9.0-cp27-none-win32.whl", hash = "sha256:ea42d747c5f71b5ccaa6897b216a7dadb9f52c72a0fe2b872ef7d3e1eacf3ba3"},
+ {file = "psutil-5.9.0-cp27-none-win_amd64.whl", hash = "sha256:ef216cc9feb60634bda2f341a9559ac594e2eeaadd0ba187a4c2eb5b5d40b91c"},
+ {file = "psutil-5.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90a58b9fcae2dbfe4ba852b57bd4a1dded6b990a33d6428c7614b7d48eccb492"},
+ {file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff0d41f8b3e9ebb6b6110057e40019a432e96aae2008951121ba4e56040b84f3"},
+ {file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:742c34fff804f34f62659279ed5c5b723bb0195e9d7bd9907591de9f8f6558e2"},
+ {file = "psutil-5.9.0-cp310-cp310-win32.whl", hash = "sha256:8293942e4ce0c5689821f65ce6522ce4786d02af57f13c0195b40e1edb1db61d"},
+ {file = "psutil-5.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:9b51917c1af3fa35a3f2dabd7ba96a2a4f19df3dec911da73875e1edaf22a40b"},
+ {file = "psutil-5.9.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e9805fed4f2a81de98ae5fe38b75a74c6e6ad2df8a5c479594c7629a1fe35f56"},
+ {file = "psutil-5.9.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c51f1af02334e4b516ec221ee26b8fdf105032418ca5a5ab9737e8c87dafe203"},
+ {file = "psutil-5.9.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32acf55cb9a8cbfb29167cd005951df81b567099295291bcfd1027365b36591d"},
+ {file = "psutil-5.9.0-cp36-cp36m-win32.whl", hash = "sha256:e5c783d0b1ad6ca8a5d3e7b680468c9c926b804be83a3a8e95141b05c39c9f64"},
+ {file = "psutil-5.9.0-cp36-cp36m-win_amd64.whl", hash = "sha256:d62a2796e08dd024b8179bd441cb714e0f81226c352c802fca0fd3f89eeacd94"},
+ {file = "psutil-5.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3d00a664e31921009a84367266b35ba0aac04a2a6cad09c550a89041034d19a0"},
+ {file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7779be4025c540d1d65a2de3f30caeacc49ae7a2152108adeaf42c7534a115ce"},
+ {file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:072664401ae6e7c1bfb878c65d7282d4b4391f1bc9a56d5e03b5a490403271b5"},
+ {file = "psutil-5.9.0-cp37-cp37m-win32.whl", hash = "sha256:df2c8bd48fb83a8408c8390b143c6a6fa10cb1a674ca664954de193fdcab36a9"},
+ {file = "psutil-5.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1d7b433519b9a38192dfda962dd8f44446668c009833e1429a52424624f408b4"},
+ {file = "psutil-5.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c3400cae15bdb449d518545cbd5b649117de54e3596ded84aacabfbb3297ead2"},
+ {file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2237f35c4bbae932ee98902a08050a27821f8f6dfa880a47195e5993af4702d"},
+ {file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1070a9b287846a21a5d572d6dddd369517510b68710fca56b0e9e02fd24bed9a"},
+ {file = "psutil-5.9.0-cp38-cp38-win32.whl", hash = "sha256:76cebf84aac1d6da5b63df11fe0d377b46b7b500d892284068bacccf12f20666"},
+ {file = "psutil-5.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:3151a58f0fbd8942ba94f7c31c7e6b310d2989f4da74fcbf28b934374e9bf841"},
+ {file = "psutil-5.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:539e429da49c5d27d5a58e3563886057f8fc3868a5547b4f1876d9c0f007bccf"},
+ {file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58c7d923dc209225600aec73aa2c4ae8ea33b1ab31bc11ef8a5933b027476f07"},
+ {file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3611e87eea393f779a35b192b46a164b1d01167c9d323dda9b1e527ea69d697d"},
+ {file = "psutil-5.9.0-cp39-cp39-win32.whl", hash = "sha256:4e2fb92e3aeae3ec3b7b66c528981fd327fb93fd906a77215200404444ec1845"},
+ {file = "psutil-5.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:7d190ee2eaef7831163f254dc58f6d2e2a22e27382b936aab51c835fc080c3d3"},
+ {file = "psutil-5.9.0.tar.gz", hash = "sha256:869842dbd66bb80c3217158e629d6fceaecc3a3166d3d1faee515b05dd26ca25"},
+]
+py = [
+ {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"},
+ {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"},
+]
+pycparser = [
+ {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
+ {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
+]
+pynacl = [
+ {file = "PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93"},
+ {file = "PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba"},
+]
+pyparsing = [
+ {file = "pyparsing-3.0.6-py3-none-any.whl", hash = "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4"},
+ {file = "pyparsing-3.0.6.tar.gz", hash = "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"},
+]
+pyside2 = [
+ {file = "PySide2-5.15.2-5.15.2-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:4f17a0161995678110447711d685fcd7b15b762810e8f00f6dc239bffb70a32e"},
+ {file = "PySide2-5.15.2-5.15.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:0558ced3bcd7f9da638fa8b7709dba5dae82a38728e481aac8b9058ea22fcdd9"},
+ {file = "PySide2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-abi3-macosx_10_13_intel.whl", hash = "sha256:976cacf01ef3b397a680f9228af7d3d6273b9254457ad4204731507c1f9e6c3c"},
+ {file = "PySide2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-abi3-manylinux1_x86_64.whl", hash = "sha256:081d8c8a6c65fb1392856a547814c0c014e25ac04b38b987d9a3483e879e9634"},
+ {file = "PySide2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win32.whl", hash = "sha256:087a0b719bb967405ea85fd202757c761f1fc73d0e2397bc3a6a15376782ee75"},
+ {file = "PySide2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win_amd64.whl", hash = "sha256:1316aa22dd330df096daf7b0defe9c00297a66e0b4907f057aaa3e88c53d1aff"},
+]
+pysocks = [
+ {file = "PySocks-1.7.1-py27-none-any.whl", hash = "sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299"},
+ {file = "PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5"},
+ {file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"},
+]
+pytest = [
+ {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"},
+ {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"},
+]
+pytest-faulthandler = [
+ {file = "pytest-faulthandler-2.0.1.tar.gz", hash = "sha256:ed72bbce87ac344da81eb7d882196a457d4a1026a3da4a57154dacd85cd71ae5"},
+ {file = "pytest_faulthandler-2.0.1-py2.py3-none-any.whl", hash = "sha256:236430ba962fd1c910d670922be55fe5b25ea9bc3fc6561a0cafbb8759e7504d"},
+]
+pytest-qt = [
+ {file = "pytest-qt-4.0.2.tar.gz", hash = "sha256:dfc5240dec7eb43b76bcb5f9a87eecae6ef83592af49f3af5f1d5d093acaa93e"},
+ {file = "pytest_qt-4.0.2-py2.py3-none-any.whl", hash = "sha256:e03847ac02a890ccaac0fde1748855b9dce425aceba62005c6cfced6cf7d5456"},
+]
+python-engineio = [
+ {file = "python-engineio-4.3.1.tar.gz", hash = "sha256:6e1d26977ffefe3b7da1b5df7a8750aedc7686da8201cd90daf36693db122489"},
+ {file = "python_engineio-4.3.1-py3-none-any.whl", hash = "sha256:85986067cb9f7695347954d4e03491f7d45152c5428c07109a9707e04e8942cb"},
+]
+python-socketio = [
+ {file = "python-socketio-5.5.1.tar.gz", hash = "sha256:ac8e64d59a15d1c31a4fe8434f4ff16d0f640c824ba517dce7ca99e95f0cd36a"},
+ {file = "python_socketio-5.5.1-py3-none-any.whl", hash = "sha256:d0b98474064ac239a618649ca67f5288827705d36bd5f7615a473b37965baf61"},
+]
+qrcode = [
+ {file = "qrcode-7.3.1.tar.gz", hash = "sha256:375a6ff240ca9bd41adc070428b5dfc1dcfbb0f2507f1ac848f6cded38956578"},
+]
+regex = [
+ {file = "regex-2021.11.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9345b6f7ee578bad8e475129ed40123d265464c4cfead6c261fd60fc9de00bcf"},
+ {file = "regex-2021.11.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:416c5f1a188c91e3eb41e9c8787288e707f7d2ebe66e0a6563af280d9b68478f"},
+ {file = "regex-2021.11.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0538c43565ee6e703d3a7c3bdfe4037a5209250e8502c98f20fea6f5fdf2965"},
+ {file = "regex-2021.11.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ee1227cf08b6716c85504aebc49ac827eb88fcc6e51564f010f11a406c0a667"},
+ {file = "regex-2021.11.10-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6650f16365f1924d6014d2ea770bde8555b4a39dc9576abb95e3cd1ff0263b36"},
+ {file = "regex-2021.11.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:30ab804ea73972049b7a2a5c62d97687d69b5a60a67adca07eb73a0ddbc9e29f"},
+ {file = "regex-2021.11.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68a067c11463de2a37157930d8b153005085e42bcb7ad9ca562d77ba7d1404e0"},
+ {file = "regex-2021.11.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:162abfd74e88001d20cb73ceaffbfe601469923e875caf9118333b1a4aaafdc4"},
+ {file = "regex-2021.11.10-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b9ed0b1e5e0759d6b7f8e2f143894b2a7f3edd313f38cf44e1e15d360e11749b"},
+ {file = "regex-2021.11.10-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:473e67837f786404570eae33c3b64a4b9635ae9f00145250851a1292f484c063"},
+ {file = "regex-2021.11.10-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2fee3ed82a011184807d2127f1733b4f6b2ff6ec7151d83ef3477f3b96a13d03"},
+ {file = "regex-2021.11.10-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:d5fd67df77bab0d3f4ea1d7afca9ef15c2ee35dfb348c7b57ffb9782a6e4db6e"},
+ {file = "regex-2021.11.10-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5d408a642a5484b9b4d11dea15a489ea0928c7e410c7525cd892f4d04f2f617b"},
+ {file = "regex-2021.11.10-cp310-cp310-win32.whl", hash = "sha256:98ba568e8ae26beb726aeea2273053c717641933836568c2a0278a84987b2a1a"},
+ {file = "regex-2021.11.10-cp310-cp310-win_amd64.whl", hash = "sha256:780b48456a0f0ba4d390e8b5f7c661fdd218934388cde1a974010a965e200e12"},
+ {file = "regex-2021.11.10-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:dba70f30fd81f8ce6d32ddeef37d91c8948e5d5a4c63242d16a2b2df8143aafc"},
+ {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1f54b9b4b6c53369f40028d2dd07a8c374583417ee6ec0ea304e710a20f80a0"},
+ {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fbb9dc00e39f3e6c0ef48edee202f9520dafb233e8b51b06b8428cfcb92abd30"},
+ {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666abff54e474d28ff42756d94544cdfd42e2ee97065857413b72e8a2d6a6345"},
+ {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5537f71b6d646f7f5f340562ec4c77b6e1c915f8baae822ea0b7e46c1f09b733"},
+ {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2e07c6a26ed4bea91b897ee2b0835c21716d9a469a96c3e878dc5f8c55bb23"},
+ {file = "regex-2021.11.10-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ca5f18a75e1256ce07494e245cdb146f5a9267d3c702ebf9b65c7f8bd843431e"},
+ {file = "regex-2021.11.10-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:74cbeac0451f27d4f50e6e8a8f3a52ca074b5e2da9f7b505c4201a57a8ed6286"},
+ {file = "regex-2021.11.10-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:3598893bde43091ee5ca0a6ad20f08a0435e93a69255eeb5f81b85e81e329264"},
+ {file = "regex-2021.11.10-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:50a7ddf3d131dc5633dccdb51417e2d1910d25cbcf842115a3a5893509140a3a"},
+ {file = "regex-2021.11.10-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:61600a7ca4bcf78a96a68a27c2ae9389763b5b94b63943d5158f2a377e09d29a"},
+ {file = "regex-2021.11.10-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:563d5f9354e15e048465061509403f68424fef37d5add3064038c2511c8f5e00"},
+ {file = "regex-2021.11.10-cp36-cp36m-win32.whl", hash = "sha256:93a5051fcf5fad72de73b96f07d30bc29665697fb8ecdfbc474f3452c78adcf4"},
+ {file = "regex-2021.11.10-cp36-cp36m-win_amd64.whl", hash = "sha256:b483c9d00a565633c87abd0aaf27eb5016de23fed952e054ecc19ce32f6a9e7e"},
+ {file = "regex-2021.11.10-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fff55f3ce50a3ff63ec8e2a8d3dd924f1941b250b0aac3d3d42b687eeff07a8e"},
+ {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e32d2a2b02ccbef10145df9135751abea1f9f076e67a4e261b05f24b94219e36"},
+ {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:53db2c6be8a2710b359bfd3d3aa17ba38f8aa72a82309a12ae99d3c0c3dcd74d"},
+ {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2207ae4f64ad3af399e2d30dde66f0b36ae5c3129b52885f1bffc2f05ec505c8"},
+ {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5ca078bb666c4a9d1287a379fe617a6dccd18c3e8a7e6c7e1eb8974330c626a"},
+ {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dd33eb9bdcfbabab3459c9ee651d94c842bc8a05fabc95edf4ee0c15a072495e"},
+ {file = "regex-2021.11.10-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05b7d6d7e64efe309972adab77fc2af8907bb93217ec60aa9fe12a0dad35874f"},
+ {file = "regex-2021.11.10-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:42b50fa6666b0d50c30a990527127334d6b96dd969011e843e726a64011485da"},
+ {file = "regex-2021.11.10-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6e1d2cc79e8dae442b3fa4a26c5794428b98f81389af90623ffcc650ce9f6732"},
+ {file = "regex-2021.11.10-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:0416f7399e918c4b0e074a0f66e5191077ee2ca32a0f99d4c187a62beb47aa05"},
+ {file = "regex-2021.11.10-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:ce298e3d0c65bd03fa65ffcc6db0e2b578e8f626d468db64fdf8457731052942"},
+ {file = "regex-2021.11.10-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:dc07f021ee80510f3cd3af2cad5b6a3b3a10b057521d9e6aaeb621730d320c5a"},
+ {file = "regex-2021.11.10-cp37-cp37m-win32.whl", hash = "sha256:e71255ba42567d34a13c03968736c5d39bb4a97ce98188fafb27ce981115beec"},
+ {file = "regex-2021.11.10-cp37-cp37m-win_amd64.whl", hash = "sha256:07856afef5ffcc052e7eccf3213317fbb94e4a5cd8177a2caa69c980657b3cb4"},
+ {file = "regex-2021.11.10-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ba05430e819e58544e840a68b03b28b6d328aff2e41579037e8bab7653b37d83"},
+ {file = "regex-2021.11.10-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7f301b11b9d214f83ddaf689181051e7f48905568b0c7017c04c06dfd065e244"},
+ {file = "regex-2021.11.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aaa4e0705ef2b73dd8e36eeb4c868f80f8393f5f4d855e94025ce7ad8525f50"},
+ {file = "regex-2021.11.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:788aef3549f1924d5c38263104dae7395bf020a42776d5ec5ea2b0d3d85d6646"},
+ {file = "regex-2021.11.10-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f8af619e3be812a2059b212064ea7a640aff0568d972cd1b9e920837469eb3cb"},
+ {file = "regex-2021.11.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85bfa6a5413be0ee6c5c4a663668a2cad2cbecdee367630d097d7823041bdeec"},
+ {file = "regex-2021.11.10-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f23222527b307970e383433daec128d769ff778d9b29343fb3496472dc20dabe"},
+ {file = "regex-2021.11.10-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:da1a90c1ddb7531b1d5ff1e171b4ee61f6345119be7351104b67ff413843fe94"},
+ {file = "regex-2021.11.10-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f5be7805e53dafe94d295399cfbe5227f39995a997f4fd8539bf3cbdc8f47ca8"},
+ {file = "regex-2021.11.10-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a955b747d620a50408b7fdf948e04359d6e762ff8a85f5775d907ceced715129"},
+ {file = "regex-2021.11.10-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:139a23d1f5d30db2cc6c7fd9c6d6497872a672db22c4ae1910be22d4f4b2068a"},
+ {file = "regex-2021.11.10-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:ca49e1ab99593438b204e00f3970e7a5f70d045267051dfa6b5f4304fcfa1dbf"},
+ {file = "regex-2021.11.10-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:96fc32c16ea6d60d3ca7f63397bff5c75c5a562f7db6dec7d412f7c4d2e78ec0"},
+ {file = "regex-2021.11.10-cp38-cp38-win32.whl", hash = "sha256:0617383e2fe465732af4509e61648b77cbe3aee68b6ac8c0b6fe934db90be5cc"},
+ {file = "regex-2021.11.10-cp38-cp38-win_amd64.whl", hash = "sha256:a3feefd5e95871872673b08636f96b61ebef62971eab044f5124fb4dea39919d"},
+ {file = "regex-2021.11.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f7f325be2804246a75a4f45c72d4ce80d2443ab815063cdf70ee8fb2ca59ee1b"},
+ {file = "regex-2021.11.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:537ca6a3586931b16a85ac38c08cc48f10fc870a5b25e51794c74df843e9966d"},
+ {file = "regex-2021.11.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eef2afb0fd1747f33f1ee3e209bce1ed582d1896b240ccc5e2697e3275f037c7"},
+ {file = "regex-2021.11.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:432bd15d40ed835a51617521d60d0125867f7b88acf653e4ed994a1f8e4995dc"},
+ {file = "regex-2021.11.10-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b43c2b8a330a490daaef5a47ab114935002b13b3f9dc5da56d5322ff218eeadb"},
+ {file = "regex-2021.11.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:962b9a917dd7ceacbe5cd424556914cb0d636001e393b43dc886ba31d2a1e449"},
+ {file = "regex-2021.11.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa8c626d6441e2d04b6ee703ef2d1e17608ad44c7cb75258c09dd42bacdfc64b"},
+ {file = "regex-2021.11.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3c5fb32cc6077abad3bbf0323067636d93307c9fa93e072771cf9a64d1c0f3ef"},
+ {file = "regex-2021.11.10-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:cd410a1cbb2d297c67d8521759ab2ee3f1d66206d2e4328502a487589a2cb21b"},
+ {file = "regex-2021.11.10-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e6096b0688e6e14af6a1b10eaad86b4ff17935c49aa774eac7c95a57a4e8c296"},
+ {file = "regex-2021.11.10-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:529801a0d58809b60b3531ee804d3e3be4b412c94b5d267daa3de7fadef00f49"},
+ {file = "regex-2021.11.10-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0f594b96fe2e0821d026365f72ac7b4f0b487487fb3d4aaf10dd9d97d88a9737"},
+ {file = "regex-2021.11.10-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2409b5c9cef7054dde93a9803156b411b677affc84fca69e908b1cb2c540025d"},
+ {file = "regex-2021.11.10-cp39-cp39-win32.whl", hash = "sha256:3b5df18db1fccd66de15aa59c41e4f853b5df7550723d26aa6cb7f40e5d9da5a"},
+ {file = "regex-2021.11.10-cp39-cp39-win_amd64.whl", hash = "sha256:83ee89483672b11f8952b158640d0c0ff02dc43d9cb1b70c1564b49abe92ce29"},
+ {file = "regex-2021.11.10.tar.gz", hash = "sha256:f341ee2df0999bfdf7a95e448075effe0db212a59387de1a70690e4acb03d4c6"},
+]
+requests = [
+ {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"},
+ {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"},
+]
+shiboken2 = [
+ {file = "shiboken2-5.15.2-5.15.2-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:03f41b0693b91c7f89627f1085a4ecbe8591c03f904118a034854d935e0e766c"},
+ {file = "shiboken2-5.15.2-5.15.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ae8ca41274cfa057106268b6249674ca669c5b21009ec49b16d77665ab9619ed"},
+ {file = "shiboken2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-abi3-macosx_10_13_intel.whl", hash = "sha256:edc12a4df2b5be7ca1e762ab94e331ba9e2fbfe3932c20378d8aa3f73f90e0af"},
+ {file = "shiboken2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-abi3-manylinux1_x86_64.whl", hash = "sha256:4aee1b91e339578f9831e824ce2a1ec3ba3a463f41fda8946b4547c7eb3cba86"},
+ {file = "shiboken2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win32.whl", hash = "sha256:89c157a0e2271909330e1655892e7039249f7b79a64a443d52c512337065cde0"},
+ {file = "shiboken2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win_amd64.whl", hash = "sha256:14a33169cf1bd919e4c4c4408fffbcd424c919a3f702df412b8d72b694e4c1d5"},
+]
+six = [
+ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
+ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
+]
+toml = [
+ {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
+ {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
+]
+typed-ast = [
+ {file = "typed_ast-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d8314c92414ce7481eee7ad42b353943679cf6f30237b5ecbf7d835519e1212"},
+ {file = "typed_ast-1.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b53ae5de5500529c76225d18eeb060efbcec90ad5e030713fe8dab0fb4531631"},
+ {file = "typed_ast-1.5.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:24058827d8f5d633f97223f5148a7d22628099a3d2efe06654ce872f46f07cdb"},
+ {file = "typed_ast-1.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:a6d495c1ef572519a7bac9534dbf6d94c40e5b6a608ef41136133377bba4aa08"},
+ {file = "typed_ast-1.5.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:de4ecae89c7d8b56169473e08f6bfd2df7f95015591f43126e4ea7865928677e"},
+ {file = "typed_ast-1.5.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:256115a5bc7ea9e665c6314ed6671ee2c08ca380f9d5f130bd4d2c1f5848d695"},
+ {file = "typed_ast-1.5.1-cp36-cp36m-win_amd64.whl", hash = "sha256:7c42707ab981b6cf4b73490c16e9d17fcd5227039720ca14abe415d39a173a30"},
+ {file = "typed_ast-1.5.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:71dcda943a471d826ea930dd449ac7e76db7be778fcd722deb63642bab32ea3f"},
+ {file = "typed_ast-1.5.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4f30a2bcd8e68adbb791ce1567fdb897357506f7ea6716f6bbdd3053ac4d9471"},
+ {file = "typed_ast-1.5.1-cp37-cp37m-win_amd64.whl", hash = "sha256:ca9e8300d8ba0b66d140820cf463438c8e7b4cdc6fd710c059bfcfb1531d03fb"},
+ {file = "typed_ast-1.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9caaf2b440efb39ecbc45e2fabde809cbe56272719131a6318fd9bf08b58e2cb"},
+ {file = "typed_ast-1.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c9bcad65d66d594bffab8575f39420fe0ee96f66e23c4d927ebb4e24354ec1af"},
+ {file = "typed_ast-1.5.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:591bc04e507595887160ed7aa8d6785867fb86c5793911be79ccede61ae96f4d"},
+ {file = "typed_ast-1.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:a80d84f535642420dd17e16ae25bb46c7f4c16ee231105e7f3eb43976a89670a"},
+ {file = "typed_ast-1.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:38cf5c642fa808300bae1281460d4f9b7617cf864d4e383054a5ef336e344d32"},
+ {file = "typed_ast-1.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5b6ab14c56bc9c7e3c30228a0a0b54b915b1579613f6e463ba6f4eb1382e7fd4"},
+ {file = "typed_ast-1.5.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a2b8d7007f6280e36fa42652df47087ac7b0a7d7f09f9468f07792ba646aac2d"},
+ {file = "typed_ast-1.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:b6d17f37f6edd879141e64a5db17b67488cfeffeedad8c5cec0392305e9bc775"},
+ {file = "typed_ast-1.5.1.tar.gz", hash = "sha256:484137cab8ecf47e137260daa20bafbba5f4e3ec7fda1c1e69ab299b75fa81c5"},
+]
+typing-extensions = [
+ {file = "typing_extensions-4.0.1-py3-none-any.whl", hash = "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"},
+ {file = "typing_extensions-4.0.1.tar.gz", hash = "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e"},
+]
+unidecode = [
+ {file = "Unidecode-1.3.2-py3-none-any.whl", hash = "sha256:215fe33c9d1c889fa823ccb66df91b02524eb8cc8c9c80f9c5b8129754d27829"},
+ {file = "Unidecode-1.3.2.tar.gz", hash = "sha256:669898c1528912bcf07f9819dc60df18d057f7528271e31f8ec28cc88ef27504"},
+]
+urllib3 = [
+ {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"},
+ {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"},
+]
+werkzeug = [
+ {file = "Werkzeug-1.0.1-py2.py3-none-any.whl", hash = "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43"},
+ {file = "Werkzeug-1.0.1.tar.gz", hash = "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c"},
+]
+zipp = [
+ {file = "zipp-3.6.0-py3-none-any.whl", hash = "sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc"},
+ {file = "zipp-3.6.0.tar.gz", hash = "sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832"},
+]
+"zope.event" = [
+ {file = "zope.event-4.5.0-py2.py3-none-any.whl", hash = "sha256:2666401939cdaa5f4e0c08cf7f20c9b21423b95e88f4675b1443973bdb080c42"},
+ {file = "zope.event-4.5.0.tar.gz", hash = "sha256:5e76517f5b9b119acf37ca8819781db6c16ea433f7e2062c4afc2b6fbedb1330"},
+]
+"zope.interface" = [
+ {file = "zope.interface-5.4.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:7df1e1c05304f26faa49fa752a8c690126cf98b40b91d54e6e9cc3b7d6ffe8b7"},
+ {file = "zope.interface-5.4.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:2c98384b254b37ce50eddd55db8d381a5c53b4c10ee66e1e7fe749824f894021"},
+ {file = "zope.interface-5.4.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:08f9636e99a9d5410181ba0729e0408d3d8748026ea938f3b970a0249daa8192"},
+ {file = "zope.interface-5.4.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:0ea1d73b7c9dcbc5080bb8aaffb776f1c68e807767069b9ccdd06f27a161914a"},
+ {file = "zope.interface-5.4.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:273f158fabc5ea33cbc936da0ab3d4ba80ede5351babc4f577d768e057651531"},
+ {file = "zope.interface-5.4.0-cp27-cp27m-win32.whl", hash = "sha256:a1e6e96217a0f72e2b8629e271e1b280c6fa3fe6e59fa8f6701bec14e3354325"},
+ {file = "zope.interface-5.4.0-cp27-cp27m-win_amd64.whl", hash = "sha256:877473e675fdcc113c138813a5dd440da0769a2d81f4d86614e5d62b69497155"},
+ {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f7ee479e96f7ee350db1cf24afa5685a5899e2b34992fb99e1f7c1b0b758d263"},
+ {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:b0297b1e05fd128d26cc2460c810d42e205d16d76799526dfa8c8ccd50e74959"},
+ {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:af310ec8335016b5e52cae60cda4a4f2a60a788cbb949a4fbea13d441aa5a09e"},
+ {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:9a9845c4c6bb56e508651f005c4aeb0404e518c6f000d5a1123ab077ab769f5c"},
+ {file = "zope.interface-5.4.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0b465ae0962d49c68aa9733ba92a001b2a0933c317780435f00be7ecb959c702"},
+ {file = "zope.interface-5.4.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:5dd9ca406499444f4c8299f803d4a14edf7890ecc595c8b1c7115c2342cadc5f"},
+ {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:469e2407e0fe9880ac690a3666f03eb4c3c444411a5a5fddfdabc5d184a79f05"},
+ {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:52de7fc6c21b419078008f697fd4103dbc763288b1406b4562554bd47514c004"},
+ {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:3dd4952748521205697bc2802e4afac5ed4b02909bb799ba1fe239f77fd4e117"},
+ {file = "zope.interface-5.4.0-cp35-cp35m-win32.whl", hash = "sha256:dd93ea5c0c7f3e25335ab7d22a507b1dc43976e1345508f845efc573d3d779d8"},
+ {file = "zope.interface-5.4.0-cp35-cp35m-win_amd64.whl", hash = "sha256:3748fac0d0f6a304e674955ab1365d515993b3a0a865e16a11ec9d86fb307f63"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:66c0061c91b3b9cf542131148ef7ecbecb2690d48d1612ec386de9d36766058f"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:d0c1bc2fa9a7285719e5678584f6b92572a5b639d0e471bb8d4b650a1a910920"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2876246527c91e101184f63ccd1d716ec9c46519cc5f3d5375a3351c46467c46"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:334701327f37c47fa628fc8b8d28c7d7730ce7daaf4bda1efb741679c2b087fc"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:71aace0c42d53abe6fc7f726c5d3b60d90f3c5c055a447950ad6ea9cec2e37d9"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:5bb3489b4558e49ad2c5118137cfeaf59434f9737fa9c5deefc72d22c23822e2"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-win32.whl", hash = "sha256:1c0e316c9add0db48a5b703833881351444398b04111188069a26a61cfb4df78"},
+ {file = "zope.interface-5.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f0c02cbb9691b7c91d5009108f975f8ffeab5dff8f26d62e21c493060eff2a1"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:7d97a4306898b05404a0dcdc32d9709b7d8832c0c542b861d9a826301719794e"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:867a5ad16892bf20e6c4ea2aab1971f45645ff3102ad29bd84c86027fa99997b"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5f931a1c21dfa7a9c573ec1f50a31135ccce84e32507c54e1ea404894c5eb96f"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:194d0bcb1374ac3e1e023961610dc8f2c78a0f5f634d0c737691e215569e640d"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:8270252effc60b9642b423189a2fe90eb6b59e87cbee54549db3f5562ff8d1b8"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:15e7d1f7a6ee16572e21e3576d2012b2778cbacf75eb4b7400be37455f5ca8bf"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-win32.whl", hash = "sha256:8892f89999ffd992208754851e5a052f6b5db70a1e3f7d54b17c5211e37a98c7"},
+ {file = "zope.interface-5.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2e5a26f16503be6c826abca904e45f1a44ff275fdb7e9d1b75c10671c26f8b94"},
+ {file = "zope.interface-5.4.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:0f91b5b948686659a8e28b728ff5e74b1be6bf40cb04704453617e5f1e945ef3"},
+ {file = "zope.interface-5.4.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:4de4bc9b6d35c5af65b454d3e9bc98c50eb3960d5a3762c9438df57427134b8e"},
+ {file = "zope.interface-5.4.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:bf68f4b2b6683e52bec69273562df15af352e5ed25d1b6641e7efddc5951d1a7"},
+ {file = "zope.interface-5.4.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:63b82bb63de7c821428d513607e84c6d97d58afd1fe2eb645030bdc185440120"},
+ {file = "zope.interface-5.4.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:db1fa631737dab9fa0b37f3979d8d2631e348c3b4e8325d6873c2541d0ae5a48"},
+ {file = "zope.interface-5.4.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:f44e517131a98f7a76696a7b21b164bcb85291cee106a23beccce454e1f433a4"},
+ {file = "zope.interface-5.4.0-cp38-cp38-win32.whl", hash = "sha256:a9506a7e80bcf6eacfff7f804c0ad5350c8c95b9010e4356a4b36f5322f09abb"},
+ {file = "zope.interface-5.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:3c02411a3b62668200910090a0dff17c0b25aaa36145082a5a6adf08fa281e54"},
+ {file = "zope.interface-5.4.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:0cee5187b60ed26d56eb2960136288ce91bcf61e2a9405660d271d1f122a69a4"},
+ {file = "zope.interface-5.4.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:a8156e6a7f5e2a0ff0c5b21d6bcb45145efece1909efcbbbf48c56f8da68221d"},
+ {file = "zope.interface-5.4.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:205e40ccde0f37496904572035deea747390a8b7dc65146d30b96e2dd1359a83"},
+ {file = "zope.interface-5.4.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:3f24df7124c323fceb53ff6168da70dbfbae1442b4f3da439cd441681f54fe25"},
+ {file = "zope.interface-5.4.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:5208ebd5152e040640518a77827bdfcc73773a15a33d6644015b763b9c9febc1"},
+ {file = "zope.interface-5.4.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:17776ecd3a1fdd2b2cd5373e5ef8b307162f581c693575ec62e7c5399d80794c"},
+ {file = "zope.interface-5.4.0-cp39-cp39-win32.whl", hash = "sha256:d4d9d6c1a455d4babd320203b918ccc7fcbefe308615c521062bc2ba1aa4d26e"},
+ {file = "zope.interface-5.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:0cba8477e300d64a11a9789ed40ee8932b59f9ee05f85276dbb4b59acee5dd09"},
+ {file = "zope.interface-5.4.0.tar.gz", hash = "sha256:5dba5f530fec3f0988d83b78cc591b58c0b6eb8431a85edd1569a0539a8a5a0e"},
+]
diff --git a/desktop/pyproject.toml b/desktop/pyproject.toml
index 79056ada..4c87cca8 100644
--- a/desktop/pyproject.toml
+++ b/desktop/pyproject.toml
@@ -1,41 +1,27 @@
-[tool.briefcase]
-project_name = "OnionShare"
-bundle = "org.onionshare"
-version = "2.4"
-url = "https://onionshare.org"
-license = "GPLv3"
-author = 'Micah Lee'
-author_email = "micah@micahflee.com"
+[tool.poetry]
+name = "onionshare"
+version = "2.5"
+description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service."
+authors = ["Micah Lee <micah@micahflee.com>"]
+license = "GPLv3+"
-[tool.briefcase.app.onionshare]
-formal_name = "OnionShare"
-description = "Securely and anonymously share files, host websites, and chat with friends using the Tor network"
-icon = "src/onionshare/resources/onionshare"
-sources = ['src/onionshare']
-requires = [
- "./onionshare_cli-2.4-py3-none-any.whl",
- "pyside2==5.15.1",
- "qrcode"
-]
+[tool.poetry.dependencies]
+python = ">=3.6,<3.10"
+onionshare_cli = {path = "../cli", develop = true}
+PySide2 = "5.15.2"
+qrcode = "*"
+cx_freeze = "*"
-[tool.briefcase.app.onionshare.macOS]
-requires = []
+[tool.poetry.dev-dependencies]
+black = "*"
+pytest = "*"
+pytest-faulthandler = "*"
+pytest-qt = "*"
-[tool.briefcase.app.onionshare.linux]
-requires = []
-system_requires = [
- "tor",
- "obfs4proxy",
- "gcc",
- "python3-dev",
-]
+[build-system]
+requires = ["poetry-core>=1.0.0"]
+build-backend = "poetry.core.masonry.api"
-[tool.briefcase.app.onionshare.windows]
-requires = ["pywin32"]
-
-# Mobile deployments
-[tool.briefcase.app.onionshare.iOS]
-requires = []
-
-[tool.briefcase.app.onionshare.android]
-requires = []
+[tool.poetry.scripts]
+onionshare = 'onionshare:main'
+onionshare-cli = 'onionshare_cli:main'
diff --git a/desktop/scripts/bridges/__init__.py b/desktop/scripts/bridges/__init__.py
new file mode 100644
index 00000000..e2495e38
--- /dev/null
+++ b/desktop/scripts/bridges/__init__.py
@@ -0,0 +1,82 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+OnionShare | https://onionshare.org/
+
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+"""
+
+import os
+import requests
+
+
+class UpdateTorBridges:
+ """
+ Update the built-in Tor Bridges in OnionShare's torrc templates.
+ """
+
+ def __init__(self, root_path):
+ self.root_path = root_path
+ torrc_template_dir = os.path.join(
+ self.root_path, os.pardir, "cli/onionshare_cli/resources"
+ )
+ endpoint = "https://bridges.torproject.org/moat/circumvention/builtin"
+ r = requests.post(
+ endpoint,
+ headers={"Content-Type": "application/vnd.api+json"},
+ )
+ if r.status_code != 200:
+ print(
+ f"There was a problem fetching the latest built-in bridges: status_code={r.status_code}"
+ )
+ return False
+
+ result = r.json()
+
+ if "errors" in result:
+ print(
+ f"There was a problem fetching the latest built-in bridges: errors={result['errors']}"
+ )
+ return False
+
+ for bridge_type in ["meek", "obfs4", "snowflake"]:
+ if result[bridge_type]:
+ if bridge_type == "meek":
+ torrc_template_extension = "meek_lite_azure"
+ else:
+ torrc_template_extension = bridge_type
+ torrc_template = os.path.join(
+ self.root_path,
+ torrc_template_dir,
+ f"torrc_template-{torrc_template_extension}",
+ )
+
+ with open(torrc_template, "w") as f:
+ f.write(f"# Enable built-in {bridge_type} bridge\n")
+ bridges = result[bridge_type]
+ # Sorts the bridges numerically by IP, since they come back in
+ # random order from the API each time, and create noisy git diff.
+ bridges.sort(key=lambda s: s.split()[1])
+ for item in bridges:
+ if bridge_type == "meek":
+ # obfs4proxy expects the bridge type to be meek_lite, and the url/front params
+ # are missing in the Tor API response, so we have to add them in ourselves.
+ bridge = item.replace("meek", "meek_lite")
+ f.write(
+ f"Bridge {bridge} url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com\n"
+ )
+ else:
+ f.write(f"Bridge {item}\n")
diff --git a/desktop/scripts/build-meek-client.py b/desktop/scripts/build-meek-client.py
index af58173a..3d81d62f 100755
--- a/desktop/scripts/build-meek-client.py
+++ b/desktop/scripts/build-meek-client.py
@@ -3,7 +3,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -48,10 +48,10 @@ def main():
os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
)
if platform.system() == "Windows":
- dist_path = os.path.join(root_path, "src", "onionshare", "resources", "tor", "Tor")
+ dist_path = os.path.join(root_path, "onionshare", "resources", "tor", "Tor")
bin_filename = "meek-client.exe"
else:
- dist_path = os.path.join(root_path, "src", "onionshare", "resources", "tor")
+ dist_path = os.path.join(root_path, "onionshare", "resources", "tor")
bin_filename = "meek-client"
bin_path = os.path.join(os.path.expanduser("~"), "go", "bin", bin_filename)
diff --git a/desktop/scripts/check_lacked_trans.py b/desktop/scripts/check_lacked_trans.py
deleted file mode 100755
index 2456c995..00000000
--- a/desktop/scripts/check_lacked_trans.py
+++ /dev/null
@@ -1,154 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-"""
-Check translation lacked or disused.
-
-Example:
-in OnionShare directory
-$ check_lacked_trans.py
-de disused choose_file
-de disused gui_starting_server
-de lacked gui_canceled
-de lacked gui_starting_server1
-de lacked gui_starting_server2
-de lacked gui_starting_server3
-en disused choose_file
-es disused choose_file
-es disused gui_starting_server
-...
-
-
-1. search `{{strings.translation_key}}` and `strings._('translation_key')`
- from .py or .html files.
-2. load translation key from locale/*.json.
-3. compare these.
-
-"""
-
-
-import argparse
-import re
-import os
-import codecs
-import json
-import sys
-
-
-def arg_parser():
- desc = __doc__.strip().splitlines()[0]
- p = argparse.ArgumentParser(description=desc)
- p.add_argument(
- "-d",
- default=".",
- help="onionshare directory",
- metavar="ONIONSHARE_DIR",
- dest="onionshare_dir",
- )
- p.add_argument(
- "--show-all-keys",
- action="store_true",
- help="show translation key in source and exit",
- ),
- p.add_argument(
- "-l",
- default="all",
- help="language code (default: all)",
- metavar="LANG_CODE",
- dest="lang_code",
- )
- return p
-
-
-def files_in(*dirs):
- dir = os.path.join(*dirs)
- files = os.listdir(dir)
- return [os.path.join(dir, f) for f in files]
-
-
-def main():
- parser = arg_parser()
- args = parser.parse_args()
-
- dir = args.onionshare_dir
-
- src = (
- files_in(dir, "onionshare_gui")
- + files_in(dir, "onionshare_gui/tab")
- + files_in(dir, "onionshare_gui/tab/mode")
- + files_in(dir, "onionshare_gui/tab/mode/chat_mode")
- + files_in(dir, "onionshare_gui/tab/mode/receive_mode")
- + files_in(dir, "onionshare_gui/tab/mode/share_mode")
- + files_in(dir, "onionshare_gui/tab/mode/website_mode")
- + files_in(dir, "install/scripts")
- )
- filenames = [p for p in src if p.endswith(".py")]
-
- lang_code = args.lang_code
-
- translate_keys = set()
- for filename in filenames:
- # load translate key from python source
- with open(filename) as f:
- src = f.read()
-
- # find all the starting strings
- start_substr = "strings._\("
- starting_indices = [m.start() for m in re.finditer(start_substr, src)]
-
- for starting_i in starting_indices:
- # are we dealing with single quotes or double quotes?
- quote = None
- inc = 0
- while True:
- quote_i = starting_i + len("strings._(") + inc
- if src[quote_i] == '"':
- quote = '"'
- break
- if src[quote_i] == "'":
- quote = "'"
- break
- inc += 1
-
- # find the starting quote
- starting_i = src.find(quote, starting_i)
- if starting_i:
- starting_i += 1
- # find the ending quote
- ending_i = src.find(quote, starting_i)
- if ending_i:
- key = src[starting_i:ending_i]
- translate_keys.add(key)
-
- if args.show_all_keys:
- for k in sorted(translate_keys):
- print(k)
- sys.exit()
-
- if lang_code == "all":
- locale_files = [f for f in files_in(dir, "share/locale") if f.endswith(".json")]
- else:
- locale_files = [
- f
- for f in files_in(dir, "share/locale")
- if f.endswith("%s.json" % lang_code)
- ]
- for locale_file in locale_files:
- with codecs.open(locale_file, "r", encoding="utf-8") as f:
- trans = json.load(f)
- # trans -> {"key1": "translate-text1", "key2": "translate-text2", ...}
- locale_keys = set(trans.keys())
-
- disused = locale_keys - translate_keys
- lacked = translate_keys - locale_keys
-
- locale, ext = os.path.splitext(os.path.basename(locale_file))
- for k in sorted(disused):
- print(locale, "disused", k)
-
- for k in sorted(lacked):
- print(locale, "lacked", k)
-
-
-if __name__ == "__main__":
- main()
diff --git a/desktop/scripts/dev.bat b/desktop/scripts/dev.bat
deleted file mode 100644
index 9b537a90..00000000
--- a/desktop/scripts/dev.bat
+++ /dev/null
@@ -1,3 +0,0 @@
-cd src
-python -c "import onionshare; onionshare.main()" %*
-cd .. \ No newline at end of file
diff --git a/desktop/scripts/dev.sh b/desktop/scripts/dev.sh
deleted file mode 100755
index 18fade68..00000000
--- a/desktop/scripts/dev.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-# Run OnionShare desktop, allowing you to use command-line arguments
-
-SCRIPTS_DIR=$( cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )
-cd "$SCRIPTS_DIR"
-
-cd ../src
-python -c "import onionshare; onionshare.main()" $@
diff --git a/desktop/scripts/get-tor-linux.py b/desktop/scripts/get-tor-linux.py
index 51beb475..2882a591 100755
--- a/desktop/scripts/get-tor-linux.py
+++ b/desktop/scripts/get-tor-linux.py
@@ -3,7 +3,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -31,13 +31,14 @@ import hashlib
import shutil
import subprocess
import requests
+from bridges import UpdateTorBridges
def main():
- tarball_url = "https://dist.torproject.org/torbrowser/11.0a10/tor-browser-linux64-11.0a10_en-US.tar.xz"
- tarball_filename = "tor-browser-linux64-11.0a10_en-US.tar.xz"
+ tarball_url = "https://dist.torproject.org/torbrowser/11.0.4/tor-browser-linux64-11.0.4_en-US.tar.xz"
+ tarball_filename = "tor-browser-linux64-11.0.4_en-US.tar.xz"
expected_tarball_sha256 = (
- "5d3e2ebc4fb6a10f44624359bc2a5a151a57e8402cbd8563d15f9b2524374f1f"
+ "05a5fd6d633ca84c33bbd3e2f8ffca2d2fa2105032a430b07d3c0cf062d9e15f"
)
# Build paths
@@ -46,7 +47,7 @@ def main():
)
working_path = os.path.join(root_path, "build", "tor")
tarball_path = os.path.join(working_path, tarball_filename)
- dist_path = os.path.join(root_path, "src", "onionshare", "resources", "tor")
+ dist_path = os.path.join(root_path, "onionshare", "resources", "tor")
# Make sure dirs exist
if not os.path.exists(working_path):
@@ -126,6 +127,9 @@ def main():
print(f"Tor binaries extracted to: {dist_path}")
+ # Fetch the built-in bridges
+ UpdateTorBridges(root_path)
+
if __name__ == "__main__":
main()
diff --git a/desktop/scripts/get-tor-osx.py b/desktop/scripts/get-tor-osx.py
index 80d7aee8..b973a90a 100755
--- a/desktop/scripts/get-tor-osx.py
+++ b/desktop/scripts/get-tor-osx.py
@@ -3,7 +3,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -32,12 +32,14 @@ import shutil
import subprocess
import requests
+from bridges import UpdateTorBridges
+
def main():
- dmg_url = "https://dist.torproject.org/torbrowser/11.0a10/TorBrowser-11.0a10-osx64_en-US.dmg"
- dmg_filename = "TorBrowser-11.0a10-osx64_en-US.dmg"
+ dmg_url = "https://dist.torproject.org/torbrowser/11.0.4/TorBrowser-11.0.4-osx64_en-US.dmg"
+ dmg_filename = "TorBrowser-11.0.4-osx64_en-US.dmg"
expected_dmg_sha256 = (
- "c6823a28fd28205437564815f93011ff93b7972da2a8ce16919adfc65909e7b9"
+ "309a67c8a82ae266756d7cf5ea00e94d9242e59d55eaff97dcd6201da3c8449c"
)
# Build paths
@@ -49,7 +51,7 @@ def main():
"/Volumes", "Tor Browser", "Tor Browser.app", "Contents"
)
dmg_path = os.path.join(working_path, dmg_filename)
- dist_path = os.path.join(root_path, "src", "onionshare", "resources", "tor")
+ dist_path = os.path.join(root_path, "onionshare", "resources", "tor")
if not os.path.exists(dist_path):
os.makedirs(dist_path, exist_ok=True)
@@ -113,6 +115,9 @@ def main():
# Eject dmg
subprocess.call(["diskutil", "eject", "/Volumes/Tor Browser"])
+ # Fetch the built-in bridges
+ UpdateTorBridges(root_path)
+
if __name__ == "__main__":
main()
diff --git a/desktop/scripts/get-tor-windows.py b/desktop/scripts/get-tor-windows.py
index 8ca2e79f..513ff168 100644
--- a/desktop/scripts/get-tor-windows.py
+++ b/desktop/scripts/get-tor-windows.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -31,12 +31,14 @@ import shutil
import subprocess
import requests
+from bridges import UpdateTorBridges
+
def main():
- exe_url = "https://dist.torproject.org/torbrowser/11.0a10/torbrowser-install-11.0a10_en-US.exe"
- exe_filename = "torbrowser-install-11.0a10_en-US.exe"
+ exe_url = "https://dist.torproject.org/torbrowser/11.0.4/torbrowser-install-11.0.4_en-US.exe"
+ exe_filename = "torbrowser-install-11.0.4_en-US.exe"
expected_exe_sha256 = (
- "f567dd8368dea0a8d7bbf7c19ece7840f93d493e70662939b92f5058c8dc8d2d"
+ "c7073f58f49a225bcf7668a5630e94f5f5e96fb7bed095feebf3bf8417bd3d07"
)
# Build paths
root_path = os.path.dirname(
@@ -44,7 +46,7 @@ def main():
)
working_path = os.path.join(root_path, "build", "tor")
exe_path = os.path.join(working_path, exe_filename)
- dist_path = os.path.join(root_path, "src", "onionshare", "resources", "tor")
+ dist_path = os.path.join(root_path, "onionshare", "resources", "tor")
# Make sure the working folder exists
if not os.path.exists(working_path):
@@ -98,6 +100,9 @@ def main():
os.path.join(working_path, "Data"), os.path.join(dist_path, "Data", "Tor")
)
+ # Fetch the built-in bridges
+ UpdateTorBridges(root_path)
+
if __name__ == "__main__":
main()
diff --git a/desktop/scripts/rebuild-cli.py b/desktop/scripts/rebuild-cli.py
deleted file mode 100755
index f9a43554..00000000
--- a/desktop/scripts/rebuild-cli.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python3
-"""
-This script builds the CLI python wheel, copies it to the desktop folder,
-and installs it in the virtual environment.
-"""
-
-import inspect
-import os
-import glob
-import subprocess
-import shutil
-
-
-def main():
- # Build paths
- root_path = os.path.dirname(
- os.path.dirname(
- os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
- )
- )
- cli_path = os.path.join(root_path, "cli")
- desktop_path = os.path.join(root_path, "desktop")
-
- # Delete old wheels
- for filename in glob.glob(os.path.join(cli_path, "dist", "*.whl")):
- os.remove(filename)
-
- # Build new wheel
- subprocess.call(["poetry", "install"], cwd=cli_path)
- subprocess.call(["poetry", "build"], cwd=cli_path)
- wheel_filename = glob.glob(os.path.join(cli_path, "dist", "*.whl"))[0]
- wheel_basename = os.path.basename(wheel_filename)
- shutil.copyfile(
- wheel_filename,
- os.path.join(desktop_path, wheel_basename),
- )
-
- # Reinstall the new wheel
- subprocess.call(["pip", "uninstall", "onionshare-cli", "-y"])
- subprocess.call(["pip", "install", os.path.join(desktop_path, wheel_basename)])
- subprocess.call(["pip", "install", "typing-extensions"])
-
-
-if __name__ == "__main__":
- main()
diff --git a/desktop/setup-freeze.py b/desktop/setup-freeze.py
new file mode 100644
index 00000000..76ff6061
--- /dev/null
+++ b/desktop/setup-freeze.py
@@ -0,0 +1,232 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+OnionShare | https://onionshare.org/
+
+Copyright (C) 2014-2022 Micah Lee, et al. <micah@micahflee.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+"""
+import os
+import sys
+import platform
+import shutil
+import cx_Freeze
+from cx_Freeze import setup, Executable
+
+# There's an obscure cx_Freeze bug that I'm hitting that's preventing the macOS
+# package from getting built. This is some monkeypatching to fix it.
+
+if platform.system() == "Darwin" or platform.system() == "Linux":
+ import importlib_metadata
+ import pathlib
+ from pathlib import Path
+ from tempfile import TemporaryDirectory
+
+ class CustomPackagePath(pathlib.PurePosixPath):
+ def __init__(self, filename):
+ self.long_filename = str(filename)
+ self.short_filename = "/".join(filename.as_posix().split("/")[-2:])
+ super(CustomPackagePath, self).__init__()
+
+ def read_text(self, encoding="utf-8"):
+ with self.locate().open(encoding=encoding) as stream:
+ return stream.read()
+
+ def read_binary(self):
+ with self.locate().open("rb") as stream:
+ return stream.read()
+
+ def locate(self):
+ return Path(self.long_filename)
+
+ def as_posix(self):
+ return self.short_filename
+
+ class DistributionCache(importlib_metadata.PathDistribution):
+ _cachedir = TemporaryDirectory(prefix="cxfreeze-")
+
+ @staticmethod
+ def at(path):
+ return DistributionCache(Path(path))
+
+ at.__doc__ = importlib_metadata.PathDistribution.at.__doc__
+
+ @classmethod
+ def from_name(cls, name):
+ distribution = super().from_name(name)
+ temp_dir = Path(cls._cachedir.name)
+ dist_dir = None
+ files = distribution.files or []
+ prep = importlib_metadata.Prepared(distribution.name)
+ normalized = prep.normalized
+ legacy_normalized = prep.legacy_normalized
+ for file in files:
+ # patch: the onionshare and onionshare_cli files are using absolute paths, which break everything
+ if name in ["onionshare", "onionshare_cli"]:
+ if ".dist-info" not in file.as_posix():
+ continue
+
+ file = CustomPackagePath(file)
+
+ if (
+ not file.match(f"{name}-*.dist-info/*")
+ and not file.match(f"{distribution.name}-*.dist-info/*")
+ and not file.match(f"{normalized}-*.dist-info/*")
+ and not file.match(f"{legacy_normalized}-*.dist-info/*")
+ ):
+ continue
+ src_path = file.locate()
+ if not src_path.exists():
+ continue
+ dst_path = temp_dir / file.as_posix()
+ if dist_dir is None:
+ dist_dir = dst_path.parent
+ dist_dir.mkdir(exist_ok=True)
+ shutil.copy2(src_path, dst_path)
+ if dist_dir is None:
+ raise importlib_metadata.PackageNotFoundError(name)
+ return cls.at(dist_dir)
+
+ from_name.__doc__ = importlib_metadata.PathDistribution.from_name.__doc__
+
+ cx_Freeze.module.DistributionCache = DistributionCache
+
+
+# Discover the version
+with open(os.path.join("..", "cli", "onionshare_cli", "resources", "version.txt")) as f:
+ version = f.read().strip()
+
+
+# Build
+include_files = [(os.path.join("..", "LICENSE"), "LICENSE")]
+
+if platform.system() == "Windows":
+ include_msvcr = True
+ gui_base = "Win32GUI"
+ exec_icon = os.path.join("onionshare", "resources", "onionshare.ico")
+
+elif platform.system() == "Darwin":
+ import PySide2
+ import shiboken2
+
+ include_msvcr = False
+ gui_base = None
+ exec_icon = None
+ include_files += [
+ (
+ os.path.join(PySide2.__path__[0], "libpyside2.abi3.5.15.dylib"),
+ "libpyside2.abi3.5.15.dylib",
+ ),
+ (
+ os.path.join(shiboken2.__path__[0], "libshiboken2.abi3.5.15.dylib"),
+ "libshiboken2.abi3.5.15.dylib",
+ ),
+ ]
+
+elif platform.system() == "Linux":
+ include_msvcr = False
+ gui_base = None
+ exec_icon = None
+
+ if not shutil.which("patchelf"):
+ print("Install the patchelf package")
+ sys.exit()
+
+setup(
+ name="onionshare",
+ version=version,
+ description="Securely and anonymously share files, host websites, and chat with friends using the Tor network",
+ options={
+ # build_exe, for Windows and macOS
+ "build_exe": {
+ "packages": [
+ "cffi",
+ "engineio",
+ "engineio.async_drivers.gevent",
+ "engineio.async_drivers.gevent_uwsgi",
+ "gevent",
+ "jinja2.ext",
+ "onionshare",
+ "onionshare_cli",
+ "PySide2",
+ "PySide2.QtCore",
+ "PySide2.QtGui",
+ "PySide2.QtWidgets",
+ ],
+ "excludes": [
+ "test",
+ "tkinter",
+ "PySide2.Qt3DAnimation",
+ "PySide2.Qt3DCore",
+ "PySide2.Qt3DExtras",
+ "PySide2.Qt3DInput",
+ "PySide2.Qt3DLogic",
+ "PySide2.Qt3DRender",
+ "PySide2.QtCharts",
+ "PySide2.QtConcurrent",
+ "PySide2.QtDataVisualization",
+ "PySide2.QtHelp",
+ "PySide2.QtLocation",
+ "PySide2.QtMultimedia",
+ "PySide2.QtMultimediaWidgets",
+ "PySide2.QtNetwork",
+ "PySide2.QtOpenGL",
+ "PySide2.QtOpenGLFunctions",
+ "PySide2.QtPositioning",
+ "PySide2.QtPrintSupport",
+ "PySide2.QtQml",
+ "PySide2.QtQuick",
+ "PySide2.QtQuickControls2",
+ "PySide2.QtQuickWidgets",
+ "PySide2.QtRemoteObjects",
+ "PySide2.QtScript",
+ "PySide2.QtScriptTools",
+ "PySide2.QtScxml",
+ "PySide2.QtSensors",
+ "PySide2.QtSerialPort",
+ "PySide2.QtSql",
+ "PySide2.QtTest",
+ "PySide2.QtTextToSpeech",
+ "PySide2.QtUiTools",
+ "PySide2.QtWebChannel",
+ "PySide2.QtWebEngine",
+ "PySide2.QtWebEngineCore",
+ "PySide2.QtWebEngineWidgets",
+ "PySide2.QtWebSockets",
+ "PySide2.QtXml",
+ "PySide2.QtXmlPatterns",
+ ],
+ "include_files": include_files,
+ "include_msvcr": include_msvcr,
+ },
+ # bdist_mac, making the macOS app bundle
+ "bdist_mac": {
+ "iconfile": os.path.join("onionshare", "resources", "onionshare.icns"),
+ "bundle_name": "OnionShare"
+ },
+ },
+ executables=[
+ Executable(
+ "package/onionshare.py",
+ base=gui_base,
+ icon=exec_icon,
+ ),
+ Executable(
+ "package/onionshare-cli.py",
+ base=None,
+ icon=exec_icon,
+ ),
+ ],
+)
diff --git a/desktop/src/setup.py b/desktop/setup.py
index 95cad942..24359907 100644
--- a/desktop/src/setup.py
+++ b/desktop/setup.py
@@ -1,36 +1,14 @@
#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-OnionShare | https://onionshare.org/
-
-Copyright (C) 2014-2021 Micah Lee, et al. <micah@micahflee.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
+# This file is used to build the Snapcraft and Flatpak packages
import setuptools
-version = "2.4"
+# The version must be hard-coded because Snapcraft won't have access to ../cli
+version = "2.5"
setuptools.setup(
name="onionshare",
version=version,
- description=(
- "OnionShare lets you securely and anonymously send and receive files. It works by starting a web "
- "server, making it accessible as a Tor onion service, and generating an unguessable web address so "
- "others can download files from you, or upload files to you. It does _not_ require setting up a "
- "separate server or using a third party file-sharing service."
- ),
+ description="Securely and anonymously share files, host websites, and chat with friends using the Tor network",
author="Micah Lee",
author_email="micah@micahflee.com",
maintainer="Micah Lee",
diff --git a/desktop/tests/gui_base_test.py b/desktop/tests/gui_base_test.py
index 9fbb4309..2bf762e1 100644
--- a/desktop/tests/gui_base_test.py
+++ b/desktop/tests/gui_base_test.py
@@ -177,6 +177,13 @@ class GuiBaseTest(unittest.TestCase):
tab.get_mode().toggle_history.click()
self.assertEqual(tab.get_mode().history.isVisible(), not currently_visible)
+ def javascript_is_correct_mime_type(self, tab, file):
+ """Test that the javascript file send.js is fetchable and that its MIME type is correct"""
+ path = f"{tab.get_mode().web.static_url_path}/js/{file}"
+ url = f"http://127.0.0.1:{tab.app.port}/{path}"
+ r = requests.get(url)
+ self.assertTrue(r.headers["Content-Type"].startswith("text/javascript;"))
+
def history_indicator(self, tab, indicator_count="1"):
"""Test that we can make sure the history is toggled off, do an action, and the indicator works"""
# Make sure history is toggled off
diff --git a/desktop/tests/test_gui_chat.py b/desktop/tests/test_gui_chat.py
index 786782f7..ee6c0787 100644
--- a/desktop/tests/test_gui_chat.py
+++ b/desktop/tests/test_gui_chat.py
@@ -61,6 +61,7 @@ class TestChat(GuiBaseTest):
tab = self.new_chat_tab()
self.run_all_chat_mode_started_tests(tab)
self.view_chat(tab)
+ self.javascript_is_correct_mime_type(tab, "chat.js")
self.change_username(tab)
self.run_all_chat_mode_stopping_tests(tab)
self.close_all_tabs()
diff --git a/desktop/tests/test_gui_receive.py b/desktop/tests/test_gui_receive.py
index ca69c957..3921c6a2 100644
--- a/desktop/tests/test_gui_receive.py
+++ b/desktop/tests/test_gui_receive.py
@@ -1,3 +1,4 @@
+import glob
import pytest
import os
import requests
@@ -35,17 +36,17 @@ class TestReceive(GuiBaseTest):
now = datetime.now()
for _ in range(10):
date_dir = now.strftime("%Y-%m-%d")
- if identical_files_at_once:
- time_dir = now.strftime("%H%M%S-1")
- else:
- time_dir = now.strftime("%H%M%S")
+ time_dir = now.strftime("%H%M%S")
receive_mode_dir = os.path.join(
tab.settings.get("receive", "data_dir"), date_dir, time_dir
)
- expected_filename = os.path.join(receive_mode_dir, expected_basename)
- if os.path.exists(expected_filename):
- exists = True
- break
+ # The directories have microseconds in the name, so we need
+ # to use globbing against directory names containing the same
+ # second in order to try to find the file.
+ for path in glob.glob(receive_mode_dir + "*"):
+ if os.path.exists(os.path.join(path, expected_basename)):
+ exists = True
+ break
now = now - timedelta(seconds=1)
self.assertTrue(exists)
@@ -83,17 +84,18 @@ class TestReceive(GuiBaseTest):
for _ in range(10):
date_dir = now.strftime("%Y-%m-%d")
time_dir = now.strftime("%H%M%S")
- expected_filename = os.path.join(
+ expected_estimated_filename = os.path.join(
tab.settings.get("receive", "data_dir"),
date_dir,
- f"{time_dir}-message.txt",
+ f"{time_dir}*-message.txt",
)
- if os.path.exists(expected_filename):
- with open(expected_filename) as f:
- assert f.read() == message
+ for path in glob.glob(expected_estimated_filename):
+ if os.path.exists(path):
+ with open(path) as f:
+ assert f.read() == message
- exists = True
- break
+ exists = True
+ break
now = now - timedelta(seconds=1)
self.assertTrue(exists)
@@ -122,6 +124,7 @@ class TestReceive(GuiBaseTest):
def run_all_receive_mode_tests(self, tab):
"""Submit files and messages in receive mode and stop the share"""
self.run_all_receive_mode_setup_tests(tab)
+ self.javascript_is_correct_mime_type(tab, "receive.js")
self.upload_file(tab, self.tmpfile_test, "test.txt")
self.history_widgets_present(tab)
self.counter_incremented(tab, 1)
diff --git a/desktop/tests/test_gui_share.py b/desktop/tests/test_gui_share.py
index 2cc48d17..ba175fa9 100644
--- a/desktop/tests/test_gui_share.py
+++ b/desktop/tests/test_gui_share.py
@@ -197,6 +197,7 @@ class TestShare(GuiBaseTest):
self.tmpfile_test
)
self.web_page(tab, "Total size")
+ self.javascript_is_correct_mime_type(tab, "send.js")
self.download_share(tab)
self.history_widgets_present(tab)
self.server_is_stopped(tab)
diff --git a/docs/build.sh b/docs/build.sh
index e30d6b31..85a045e2 100755
--- a/docs/build.sh
+++ b/docs/build.sh
@@ -3,7 +3,7 @@
VERSION=$(cat ../cli/onionshare_cli/resources/version.txt)
# Supported locales
-LOCALES="en fi pl pt_BR ru tr uk"
+LOCALES="en fr de el it nb_NO pl pt_BR ru es tr uk"
# Generate English .po files
make gettext
diff --git a/docs/gettext/.doctrees/advanced.doctree b/docs/gettext/.doctrees/advanced.doctree
index e36dddee..8e03765f 100644
--- a/docs/gettext/.doctrees/advanced.doctree
+++ b/docs/gettext/.doctrees/advanced.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/develop.doctree b/docs/gettext/.doctrees/develop.doctree
index e3a6bd6a..67238fc5 100644
--- a/docs/gettext/.doctrees/develop.doctree
+++ b/docs/gettext/.doctrees/develop.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/environment.pickle b/docs/gettext/.doctrees/environment.pickle
index 9619e47c..6136c751 100644
--- a/docs/gettext/.doctrees/environment.pickle
+++ b/docs/gettext/.doctrees/environment.pickle
Binary files differ
diff --git a/docs/gettext/.doctrees/features.doctree b/docs/gettext/.doctrees/features.doctree
index 3c7f575c..8f0c8e3e 100644
--- a/docs/gettext/.doctrees/features.doctree
+++ b/docs/gettext/.doctrees/features.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/help.doctree b/docs/gettext/.doctrees/help.doctree
index c733889f..33ed6597 100644
--- a/docs/gettext/.doctrees/help.doctree
+++ b/docs/gettext/.doctrees/help.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/index.doctree b/docs/gettext/.doctrees/index.doctree
index e79b6478..5571c00b 100644
--- a/docs/gettext/.doctrees/index.doctree
+++ b/docs/gettext/.doctrees/index.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/install.doctree b/docs/gettext/.doctrees/install.doctree
index 22d1cf79..b6d0da35 100644
--- a/docs/gettext/.doctrees/install.doctree
+++ b/docs/gettext/.doctrees/install.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/security.doctree b/docs/gettext/.doctrees/security.doctree
index 9c8ff96e..7986938c 100644
--- a/docs/gettext/.doctrees/security.doctree
+++ b/docs/gettext/.doctrees/security.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/tor.doctree b/docs/gettext/.doctrees/tor.doctree
index d1b40318..baf8a41a 100644
--- a/docs/gettext/.doctrees/tor.doctree
+++ b/docs/gettext/.doctrees/tor.doctree
Binary files differ
diff --git a/docs/gettext/advanced.pot b/docs/gettext/advanced.pot
index cbb1a2e6..0c0beb6f 100644
--- a/docs/gettext/advanced.pot
+++ b/docs/gettext/advanced.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.4.1\n"
+"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-23 19:33-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/develop.pot b/docs/gettext/develop.pot
index 0e69a5c4..4a6cd8af 100644
--- a/docs/gettext/develop.pot
+++ b/docs/gettext/develop.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.4.1\n"
+"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-23 19:33-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/features.pot b/docs/gettext/features.pot
index ed794467..c55bf091 100644
--- a/docs/gettext/features.pot
+++ b/docs/gettext/features.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.4.1\n"
+"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-23 19:33-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/help.pot b/docs/gettext/help.pot
index 38237877..fc618538 100644
--- a/docs/gettext/help.pot
+++ b/docs/gettext/help.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.4.1\n"
+"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-23 19:33-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/index.pot b/docs/gettext/index.pot
index 431f6d84..d57f1150 100644
--- a/docs/gettext/index.pot
+++ b/docs/gettext/index.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.4.1\n"
+"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-23 19:33-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/install.pot b/docs/gettext/install.pot
index b0cb6c4d..a6c23cc0 100644
--- a/docs/gettext/install.pot
+++ b/docs/gettext/install.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.4.1\n"
+"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-23 19:33-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/security.pot b/docs/gettext/security.pot
index c68c04e2..123f2747 100644
--- a/docs/gettext/security.pot
+++ b/docs/gettext/security.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.4.1\n"
+"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-23 19:33-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/sphinx.pot b/docs/gettext/sphinx.pot
index 454a1718..500e619f 100644
--- a/docs/gettext/sphinx.pot
+++ b/docs/gettext/sphinx.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.4.1\n"
+"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-23 19:33-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/gettext/tor.pot b/docs/gettext/tor.pot
index 7fd4bc5b..14168f16 100644
--- a/docs/gettext/tor.pot
+++ b/docs/gettext/tor.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.4.1\n"
+"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-23 19:33-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/docs/poetry.lock b/docs/poetry.lock
index 3bc4f44a..50625b81 100644
--- a/docs/poetry.lock
+++ b/docs/poetry.lock
@@ -16,7 +16,7 @@ python-versions = ">=3.5"
[[package]]
name = "babel"
-version = "2.9.0"
+version = "2.9.1"
description = "Internationalization utilities"
category = "main"
optional = false
@@ -27,27 +27,34 @@ pytz = ">=2015.7"
[[package]]
name = "certifi"
-version = "2020.11.8"
+version = "2021.10.8"
description = "Python package for providing Mozilla's CA Bundle."
category = "main"
optional = false
python-versions = "*"
[[package]]
-name = "chardet"
-version = "3.0.4"
-description = "Universal encoding detector for Python 2 and 3"
+name = "charset-normalizer"
+version = "2.0.10"
+description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
category = "main"
optional = false
-python-versions = "*"
+python-versions = ">=3.5.0"
+
+[package.extras]
+unicode_backport = ["unicodedata2"]
[[package]]
name = "click"
-version = "7.1.2"
+version = "8.0.3"
description = "Composable command line interface toolkit"
category = "main"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+python-versions = ">=3.6"
+
+[package.dependencies]
+colorama = {version = "*", markers = "platform_system == \"Windows\""}
+importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
[[package]]
name = "colorama"
@@ -101,7 +108,7 @@ http2 = ["h2 (>=3,<5)"]
[[package]]
name = "httpx"
-version = "0.18.1"
+version = "0.18.2"
description = "The next generation HTTP client."
category = "main"
optional = false
@@ -110,7 +117,7 @@ python-versions = ">=3.6"
[package.dependencies]
async-generator = {version = "*", markers = "python_version < \"3.7\""}
certifi = "*"
-httpcore = ">=0.13.0,<0.14.0"
+httpcore = ">=0.13.3,<0.14.0"
rfc3986 = {version = ">=1.3,<2", extras = ["idna2008"]}
sniffio = "*"
@@ -120,15 +127,15 @@ http2 = ["h2 (>=3.0.0,<4.0.0)"]
[[package]]
name = "idna"
-version = "2.10"
+version = "3.3"
description = "Internationalized Domain Names in Applications (IDNA)"
category = "main"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+python-versions = ">=3.5"
[[package]]
name = "imagesize"
-version = "1.2.0"
+version = "1.3.0"
description = "Getting image size from png/jpeg/jpeg2000/gif file"
category = "main"
optional = false
@@ -136,52 +143,71 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "immutables"
-version = "0.15"
+version = "0.16"
description = "Immutable Collections"
category = "main"
optional = false
-python-versions = ">=3.5"
+python-versions = ">=3.6"
+
+[package.dependencies]
+typing-extensions = {version = ">=3.7.4.3", markers = "python_version < \"3.8\""}
[package.extras]
-test = ["flake8 (>=3.8.4,<3.9.0)", "pycodestyle (>=2.6.0,<2.7.0)"]
+test = ["flake8 (>=3.8.4,<3.9.0)", "pycodestyle (>=2.6.0,<2.7.0)", "mypy (>=0.910)", "pytest (>=6.2.4,<6.3.0)"]
+
+[[package]]
+name = "importlib-metadata"
+version = "4.8.3"
+description = "Read metadata from Python packages"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
+zipp = ">=0.5"
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
+perf = ["ipython"]
+testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"]
[[package]]
name = "jinja2"
-version = "2.11.2"
+version = "3.0.3"
description = "A very fast and expressive template engine."
category = "main"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+python-versions = ">=3.6"
[package.dependencies]
-MarkupSafe = ">=0.23"
+MarkupSafe = ">=2.0"
[package.extras]
-i18n = ["Babel (>=0.8)"]
+i18n = ["Babel (>=2.7)"]
[[package]]
name = "markupsafe"
-version = "1.1.1"
+version = "2.0.1"
description = "Safely add untrusted strings to HTML/XML markup."
category = "main"
optional = false
-python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
+python-versions = ">=3.6"
[[package]]
name = "packaging"
-version = "20.4"
+version = "21.3"
description = "Core utilities for Python packages"
category = "main"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+python-versions = ">=3.6"
[package.dependencies]
-pyparsing = ">=2.0.2"
-six = "*"
+pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
[[package]]
name = "pygments"
-version = "2.7.2"
+version = "2.11.2"
description = "Pygments is a syntax highlighting package written in Python."
category = "main"
optional = false
@@ -189,15 +215,18 @@ python-versions = ">=3.5"
[[package]]
name = "pyparsing"
-version = "2.4.7"
+version = "3.0.6"
description = "Python parsing module"
category = "main"
optional = false
-python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+python-versions = ">=3.6"
+
+[package.extras]
+diagrams = ["jinja2", "railroad-diagrams"]
[[package]]
name = "pytz"
-version = "2020.4"
+version = "2021.3"
description = "World timezone definitions, modern and historical"
category = "main"
optional = false
@@ -205,21 +234,21 @@ python-versions = "*"
[[package]]
name = "requests"
-version = "2.25.0"
+version = "2.27.1"
description = "Python HTTP for Humans."
category = "main"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
[package.dependencies]
certifi = ">=2017.4.17"
-chardet = ">=3.0.2,<4"
-idna = ">=2.5,<3"
+charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""}
+idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""}
urllib3 = ">=1.21.1,<1.27"
[package.extras]
-security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"]
+use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"]
[[package]]
name = "rfc3986"
@@ -236,14 +265,6 @@ idna = {version = "*", optional = true, markers = "extra == \"idna2008\""}
idna2008 = ["idna"]
[[package]]
-name = "six"
-version = "1.15.0"
-description = "Python 2 and 3 compatibility utilities"
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
-
-[[package]]
name = "sniffio"
version = "1.2.0"
description = "Sniff out which async library your code is running under"
@@ -256,15 +277,15 @@ contextvars = {version = ">=2.1", markers = "python_version < \"3.7\""}
[[package]]
name = "snowballstemmer"
-version = "2.0.0"
-description = "This package provides 26 stemmers for 25 languages generated from Snowball algorithms."
+version = "2.2.0"
+description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms."
category = "main"
optional = false
python-versions = "*"
[[package]]
name = "sphinx"
-version = "3.3.1"
+version = "3.5.4"
description = "Python documentation generator"
category = "main"
optional = false
@@ -274,7 +295,7 @@ python-versions = ">=3.5"
alabaster = ">=0.7,<0.8"
babel = ">=1.3"
colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""}
-docutils = ">=0.12"
+docutils = ">=0.12,<0.17"
imagesize = "*"
Jinja2 = ">=2.3"
packaging = "*"
@@ -290,8 +311,8 @@ sphinxcontrib-serializinghtml = "*"
[package.extras]
docs = ["sphinxcontrib-websupport"]
-lint = ["flake8 (>=3.5.0)", "flake8-import-order", "mypy (>=0.790)", "docutils-stubs"]
-test = ["pytest", "pytest-cov", "html5lib", "typed-ast", "cython"]
+lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.800)", "docutils-stubs"]
+test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"]
[[package]]
name = "sphinx-intl"
@@ -312,13 +333,14 @@ transifex = ["transifex_client (>=0.11)"]
[[package]]
name = "sphinx-rtd-theme"
-version = "0.5.0"
+version = "0.5.2"
description = "Read the Docs theme for Sphinx"
category = "main"
optional = false
python-versions = "*"
[package.dependencies]
+docutils = "<0.17"
sphinx = "*"
[package.extras]
@@ -350,11 +372,11 @@ test = ["pytest"]
[[package]]
name = "sphinxcontrib-htmlhelp"
-version = "1.0.3"
+version = "2.0.0"
description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files"
category = "main"
optional = false
-python-versions = ">=3.5"
+python-versions = ">=3.6"
[package.extras]
lint = ["flake8", "mypy", "docutils-stubs"]
@@ -385,7 +407,7 @@ test = ["pytest"]
[[package]]
name = "sphinxcontrib-serializinghtml"
-version = "1.1.4"
+version = "1.1.5"
description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)."
category = "main"
optional = false
@@ -396,8 +418,16 @@ lint = ["flake8", "mypy", "docutils-stubs"]
test = ["pytest"]
[[package]]
+name = "typing-extensions"
+version = "4.0.1"
+description = "Backported and Experimental Type Hints for Python 3.6+"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
name = "urllib3"
-version = "1.26.2"
+version = "1.26.8"
description = "HTTP library with thread-safe connection pooling, file post, and more."
category = "main"
optional = false
@@ -408,6 +438,18 @@ brotli = ["brotlipy (>=0.6.0)"]
secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
+[[package]]
+name = "zipp"
+version = "3.6.0"
+description = "Backport of pathlib-compatible object wrapper for zip files"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
+
[metadata]
lock-version = "1.1"
python-versions = "^3.6"
@@ -423,20 +465,20 @@ async-generator = [
{file = "async_generator-1.10.tar.gz", hash = "sha256:6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144"},
]
babel = [
- {file = "Babel-2.9.0-py2.py3-none-any.whl", hash = "sha256:9d35c22fcc79893c3ecc85ac4a56cde1ecf3f19c540bba0922308a6c06ca6fa5"},
- {file = "Babel-2.9.0.tar.gz", hash = "sha256:da031ab54472314f210b0adcff1588ee5d1d1d0ba4dbd07b94dba82bde791e05"},
+ {file = "Babel-2.9.1-py2.py3-none-any.whl", hash = "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9"},
+ {file = "Babel-2.9.1.tar.gz", hash = "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"},
]
certifi = [
- {file = "certifi-2020.11.8-py2.py3-none-any.whl", hash = "sha256:1f422849db327d534e3d0c5f02a263458c3955ec0aae4ff09b95f195c59f4edd"},
- {file = "certifi-2020.11.8.tar.gz", hash = "sha256:f05def092c44fbf25834a51509ef6e631dc19765ab8a57b4e7ab85531f0a9cf4"},
+ {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"},
+ {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"},
]
-chardet = [
- {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"},
- {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"},
+charset-normalizer = [
+ {file = "charset-normalizer-2.0.10.tar.gz", hash = "sha256:876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd"},
+ {file = "charset_normalizer-2.0.10-py3-none-any.whl", hash = "sha256:cb957888737fc0bbcd78e3df769addb41fd1ff8cf950dc9e7ad7793f1bf44455"},
]
click = [
- {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"},
- {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"},
+ {file = "click-8.0.3-py3-none-any.whl", hash = "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3"},
+ {file = "click-8.0.3.tar.gz", hash = "sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b"},
]
colorama = [
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
@@ -458,139 +500,168 @@ httpcore = [
{file = "httpcore-0.13.3.tar.gz", hash = "sha256:5d674b57a11275904d4fd0819ca02f960c538e4472533620f322fc7db1ea0edc"},
]
httpx = [
- {file = "httpx-0.18.1-py3-none-any.whl", hash = "sha256:ad2e3db847be736edc4b272c4d5788790a7e5789ef132fc6b5fef8aeb9e9f6e0"},
- {file = "httpx-0.18.1.tar.gz", hash = "sha256:0a2651dd2b9d7662c70d12ada5c290abcf57373b9633515fe4baa9f62566086f"},
+ {file = "httpx-0.18.2-py3-none-any.whl", hash = "sha256:979afafecb7d22a1d10340bafb403cf2cb75aff214426ff206521fc79d26408c"},
+ {file = "httpx-0.18.2.tar.gz", hash = "sha256:9f99c15d33642d38bce8405df088c1c4cfd940284b4290cacbfb02e64f4877c6"},
]
idna = [
- {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
- {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
+ {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"},
+ {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"},
]
imagesize = [
- {file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"},
- {file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"},
+ {file = "imagesize-1.3.0-py2.py3-none-any.whl", hash = "sha256:1db2f82529e53c3e929e8926a1fa9235aa82d0bd0c580359c67ec31b2fddaa8c"},
+ {file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"},
]
immutables = [
- {file = "immutables-0.15-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:6728f4392e3e8e64b593a5a0cd910a1278f07f879795517e09f308daed138631"},
- {file = "immutables-0.15-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f0836cd3bdc37c8a77b192bbe5f41dbcc3ce654db048ebbba89bdfe6db7a1c7a"},
- {file = "immutables-0.15-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:8703d8abfd8687932f2a05f38e7de270c3a6ca3bd1c1efb3c938656b3f2f985a"},
- {file = "immutables-0.15-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:b8ad986f9b532c026f19585289384b0769188fcb68b37c7f0bd0df9092a6ca54"},
- {file = "immutables-0.15-cp36-cp36m-win_amd64.whl", hash = "sha256:6f117d9206165b9dab8fd81c5129db757d1a044953f438654236ed9a7a4224ae"},
- {file = "immutables-0.15-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:b75ade826920c4e490b1bb14cf967ac14e61eb7c5562161c5d7337d61962c226"},
- {file = "immutables-0.15-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:b7e13c061785e34f73c4f659861f1b3e4a5fd918e4395c84b21c4e3d449ebe27"},
- {file = "immutables-0.15-cp37-cp37m-win_amd64.whl", hash = "sha256:3035849accee4f4e510ed7c94366a40e0f5fef9069fbe04a35f4787b13610a4a"},
- {file = "immutables-0.15-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:b04fa69174e0c8f815f9c55f2a43fc9e5a68452fab459a08e904a74e8471639f"},
- {file = "immutables-0.15-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:141c2e9ea515a3a815007a429f0b47a578ebeb42c831edaec882a245a35fffca"},
- {file = "immutables-0.15-cp38-cp38-win_amd64.whl", hash = "sha256:cbe8c64640637faa5535d539421b293327f119c31507c33ca880bd4f16035eb6"},
- {file = "immutables-0.15-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:a0a4e4417d5ef4812d7f99470cd39347b58cb927365dd2b8da9161040d260db0"},
- {file = "immutables-0.15-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:3b15c08c71c59e5b7c2470ef949d49ff9f4263bb77f488422eaa157da84d6999"},
- {file = "immutables-0.15-cp39-cp39-win_amd64.whl", hash = "sha256:2283a93c151566e6830aee0e5bee55fc273455503b43aa004356b50f9182092b"},
- {file = "immutables-0.15.tar.gz", hash = "sha256:3713ab1ebbb6946b7ce1387bb9d1d7f5e09c45add58c2a2ee65f963c171e746b"},
+ {file = "immutables-0.16-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:acbfa79d44228d96296279068441f980dc63dbed52522d9227ff9f4d96c6627e"},
+ {file = "immutables-0.16-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c9ed003eacb92e630ef200e31f47236c2139b39476894f7963b32bd39bafa3"},
+ {file = "immutables-0.16-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0a396314b9024fa55bf83a27813fd76cf9f27dce51f53b0f19b51de035146251"},
+ {file = "immutables-0.16-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:4a2a71678348fb95b13ca108d447f559a754c41b47bd1e7e4fb23974e735682d"},
+ {file = "immutables-0.16-cp36-cp36m-win32.whl", hash = "sha256:064001638ab5d36f6aa05b6101446f4a5793fb71e522bc81b8fc65a1894266ff"},
+ {file = "immutables-0.16-cp36-cp36m-win_amd64.whl", hash = "sha256:1de393f1b188740ca7b38f946f2bbc7edf3910d2048f03bbb8d01f17a038d67c"},
+ {file = "immutables-0.16-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fcf678a3074613119385a02a07c469ec5130559f5ea843c85a0840c80b5b71c6"},
+ {file = "immutables-0.16-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a307eb0984eb43e815dcacea3ac50c11d00a936ecf694c46991cd5a23bcb0ec0"},
+ {file = "immutables-0.16-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7a58825ff2254e2612c5a932174398a4ea8fbddd8a64a02c880cc32ee28b8820"},
+ {file = "immutables-0.16-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:798b095381eb42cf40db6876339e7bed84093e5868018a9e73d8e1f7ab4bb21e"},
+ {file = "immutables-0.16-cp37-cp37m-win32.whl", hash = "sha256:19bdede174847c2ef1292df0f23868ab3918b560febb09fcac6eec621bd4812b"},
+ {file = "immutables-0.16-cp37-cp37m-win_amd64.whl", hash = "sha256:9ccf4c0e3e2e3237012b516c74c49de8872ccdf9129739f7a0b9d7444a8c4862"},
+ {file = "immutables-0.16-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d59beef203a3765db72b1d0943547425c8318ecf7d64c451fd1e130b653c2fbb"},
+ {file = "immutables-0.16-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0020aaa4010b136056c20a46ce53204e1407a9e4464246cb2cf95b90808d9161"},
+ {file = "immutables-0.16-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edd9f67671555af1eb99ad3c7550238487dd7ac0ac5205b40204ed61c9a922ac"},
+ {file = "immutables-0.16-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:298a301f85f307b4c056a0825eb30f060e64d73605e783289f3df37dd762bab8"},
+ {file = "immutables-0.16-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b779617f5b94486bfd0f22162cd72eb5f2beb0214a14b75fdafb7b2c908ed0cb"},
+ {file = "immutables-0.16-cp38-cp38-win32.whl", hash = "sha256:511c93d8b1bbbf103ff3f1f120c5a68a9866ce03dea6ac406537f93ca9b19139"},
+ {file = "immutables-0.16-cp38-cp38-win_amd64.whl", hash = "sha256:b651b61c1af6cda2ee201450f2ffe048a5959bc88e43e6c312f4c93e69c9e929"},
+ {file = "immutables-0.16-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:aa7bf572ae1e006104c584be70dc634849cf0dc62f42f4ee194774f97e7fd17d"},
+ {file = "immutables-0.16-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:50793a44ba0d228ed8cad4d0925e00dfd62ea32f44ddee8854f8066447272d05"},
+ {file = "immutables-0.16-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:799621dcdcdcbb2516546a40123b87bf88de75fe7459f7bd8144f079ace6ec3e"},
+ {file = "immutables-0.16-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7bcf52aeb983bd803b7c6106eae1b2d9a0c7ab1241bc6b45e2174ba2b7283031"},
+ {file = "immutables-0.16-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:734c269e82e5f307fb6e17945953b67659d1731e65309787b8f7ba267d1468f2"},
+ {file = "immutables-0.16-cp39-cp39-win32.whl", hash = "sha256:a454d5d3fee4b7cc627345791eb2ca4b27fa3bbb062ccf362ecaaa51679a07ed"},
+ {file = "immutables-0.16-cp39-cp39-win_amd64.whl", hash = "sha256:2505d93395d3f8ae4223e21465994c3bc6952015a38dc4f03cb3e07a2b8d8325"},
+ {file = "immutables-0.16.tar.gz", hash = "sha256:d67e86859598eed0d926562da33325dac7767b7b1eff84e232c22abea19f4360"},
+]
+importlib-metadata = [
+ {file = "importlib_metadata-4.8.3-py3-none-any.whl", hash = "sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e"},
+ {file = "importlib_metadata-4.8.3.tar.gz", hash = "sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668"},
]
jinja2 = [
- {file = "Jinja2-2.11.2-py2.py3-none-any.whl", hash = "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"},
- {file = "Jinja2-2.11.2.tar.gz", hash = "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0"},
+ {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"},
+ {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"},
]
markupsafe = [
- {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"},
- {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"},
- {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"},
- {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"},
- {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"},
- {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"},
- {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"},
- {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"},
- {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"},
- {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"},
- {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"},
- {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"},
- {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"},
- {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"},
- {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"},
- {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"},
- {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"},
- {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"},
- {file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"},
- {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"},
- {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"},
- {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"},
- {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2"},
- {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032"},
- {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b"},
- {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"},
- {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"},
- {file = "MarkupSafe-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c"},
- {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb"},
- {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014"},
- {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850"},
- {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85"},
- {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"},
- {file = "MarkupSafe-1.1.1-cp39-cp39-win32.whl", hash = "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39"},
- {file = "MarkupSafe-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8"},
- {file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"},
+ {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"},
+ {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"},
+ {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"},
+ {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"},
+ {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"},
+ {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"},
]
packaging = [
- {file = "packaging-20.4-py2.py3-none-any.whl", hash = "sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"},
- {file = "packaging-20.4.tar.gz", hash = "sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8"},
+ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"},
+ {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
]
pygments = [
- {file = "Pygments-2.7.2-py3-none-any.whl", hash = "sha256:88a0bbcd659fcb9573703957c6b9cff9fab7295e6e76db54c9d00ae42df32773"},
- {file = "Pygments-2.7.2.tar.gz", hash = "sha256:381985fcc551eb9d37c52088a32914e00517e57f4a21609f48141ba08e193fa0"},
+ {file = "Pygments-2.11.2-py3-none-any.whl", hash = "sha256:44238f1b60a76d78fc8ca0528ee429702aae011c265fe6a8dd8b63049ae41c65"},
+ {file = "Pygments-2.11.2.tar.gz", hash = "sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a"},
]
pyparsing = [
- {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
- {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
+ {file = "pyparsing-3.0.6-py3-none-any.whl", hash = "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4"},
+ {file = "pyparsing-3.0.6.tar.gz", hash = "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"},
]
pytz = [
- {file = "pytz-2020.4-py2.py3-none-any.whl", hash = "sha256:5c55e189b682d420be27c6995ba6edce0c0a77dd67bfbe2ae6607134d5851ffd"},
- {file = "pytz-2020.4.tar.gz", hash = "sha256:3e6b7dd2d1e0a59084bcee14a17af60c5c562cdc16d828e8eba2e683d3a7e268"},
+ {file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"},
+ {file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"},
]
requests = [
- {file = "requests-2.25.0-py2.py3-none-any.whl", hash = "sha256:e786fa28d8c9154e6a4de5d46a1d921b8749f8b74e28bde23768e5e16eece998"},
- {file = "requests-2.25.0.tar.gz", hash = "sha256:7f1a0b932f4a60a1a65caa4263921bb7d9ee911957e0ae4a23a6dd08185ad5f8"},
+ {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"},
+ {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"},
]
rfc3986 = [
{file = "rfc3986-1.5.0-py2.py3-none-any.whl", hash = "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"},
{file = "rfc3986-1.5.0.tar.gz", hash = "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835"},
]
-six = [
- {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
- {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
-]
sniffio = [
{file = "sniffio-1.2.0-py3-none-any.whl", hash = "sha256:471b71698eac1c2112a40ce2752bb2f4a4814c22a54a3eed3676bc0f5ca9f663"},
{file = "sniffio-1.2.0.tar.gz", hash = "sha256:c4666eecec1d3f50960c6bdf61ab7bc350648da6c126e3cf6898d8cd4ddcd3de"},
]
snowballstemmer = [
- {file = "snowballstemmer-2.0.0-py2.py3-none-any.whl", hash = "sha256:209f257d7533fdb3cb73bdbd24f436239ca3b2fa67d56f6ff88e86be08cc5ef0"},
- {file = "snowballstemmer-2.0.0.tar.gz", hash = "sha256:df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52"},
+ {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"},
+ {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"},
]
sphinx = [
- {file = "Sphinx-3.3.1-py3-none-any.whl", hash = "sha256:d4e59ad4ea55efbb3c05cde3bfc83bfc14f0c95aa95c3d75346fcce186a47960"},
- {file = "Sphinx-3.3.1.tar.gz", hash = "sha256:1e8d592225447104d1172be415bc2972bd1357e3e12fdc76edf2261105db4300"},
+ {file = "Sphinx-3.5.4-py3-none-any.whl", hash = "sha256:2320d4e994a191f4b4be27da514e46b3d6b420f2ff895d064f52415d342461e8"},
+ {file = "Sphinx-3.5.4.tar.gz", hash = "sha256:19010b7b9fa0dc7756a6e105b2aacd3a80f798af3c25c273be64d7beeb482cb1"},
]
sphinx-intl = [
{file = "sphinx-intl-2.0.1.tar.gz", hash = "sha256:b25a6ec169347909e8d983eefe2d8adecb3edc2f27760db79b965c69950638b4"},
{file = "sphinx_intl-2.0.1-py3.8.egg", hash = "sha256:2ff97cba0e4e43249e339a3c29dd2f5b63c25ce794050aabca320ad95f5c5b55"},
]
sphinx-rtd-theme = [
- {file = "sphinx_rtd_theme-0.5.0-py2.py3-none-any.whl", hash = "sha256:373413d0f82425aaa28fb288009bf0d0964711d347763af2f1b65cafcb028c82"},
- {file = "sphinx_rtd_theme-0.5.0.tar.gz", hash = "sha256:22c795ba2832a169ca301cd0a083f7a434e09c538c70beb42782c073651b707d"},
+ {file = "sphinx_rtd_theme-0.5.2-py2.py3-none-any.whl", hash = "sha256:4a05bdbe8b1446d77a01e20a23ebc6777c74f43237035e76be89699308987d6f"},
+ {file = "sphinx_rtd_theme-0.5.2.tar.gz", hash = "sha256:32bd3b5d13dc8186d7a42fc816a23d32e83a4827d7d9882948e7b837c232da5a"},
]
sphinxcontrib-applehelp = [
{file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"},
@@ -601,8 +672,8 @@ sphinxcontrib-devhelp = [
{file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"},
]
sphinxcontrib-htmlhelp = [
- {file = "sphinxcontrib-htmlhelp-1.0.3.tar.gz", hash = "sha256:e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b"},
- {file = "sphinxcontrib_htmlhelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:3c0bc24a2c41e340ac37c85ced6dafc879ab485c095b1d65d2461ac2f7cca86f"},
+ {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"},
+ {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"},
]
sphinxcontrib-jsmath = [
{file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"},
@@ -613,10 +684,18 @@ sphinxcontrib-qthelp = [
{file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"},
]
sphinxcontrib-serializinghtml = [
- {file = "sphinxcontrib-serializinghtml-1.1.4.tar.gz", hash = "sha256:eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc"},
- {file = "sphinxcontrib_serializinghtml-1.1.4-py2.py3-none-any.whl", hash = "sha256:f242a81d423f59617a8e5cf16f5d4d74e28ee9a66f9e5b637a18082991db5a9a"},
+ {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"},
+ {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"},
+]
+typing-extensions = [
+ {file = "typing_extensions-4.0.1-py3-none-any.whl", hash = "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"},
+ {file = "typing_extensions-4.0.1.tar.gz", hash = "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e"},
]
urllib3 = [
- {file = "urllib3-1.26.2-py2.py3-none-any.whl", hash = "sha256:d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473"},
- {file = "urllib3-1.26.2.tar.gz", hash = "sha256:19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08"},
+ {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"},
+ {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"},
+]
+zipp = [
+ {file = "zipp-3.6.0-py3-none-any.whl", hash = "sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc"},
+ {file = "zipp-3.6.0.tar.gz", hash = "sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832"},
]
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 74fa88cc..36679497 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -1,6 +1,6 @@
project = "OnionShare"
author = copyright = "Micah Lee, et al."
-version = release = "2.4.1"
+version = release = "2.5"
extensions = ["sphinx_rtd_theme"]
templates_path = ["_templates"]
@@ -8,18 +8,20 @@ exclude_patterns = []
languages = [
("English", "en"), # English
- ("Finnish", "fi"), # Finnish
+ ("Français", "fr"), # French
+ ("Deutsch", "de"), # German
+ ("Ελληνικά", "el"), # Greek
+ ("Italiano", "it"), # Italian
+ ("Norsk Bokmål", "nb_NO"), # Norwegian Bokmål
("Polish", "pl"), # Polish
("Portuguese (Brazil)", "pt_BR"), # Portuguese (Brazil))
- # ("Deutsch", "de"), # German
- # ("Ελληνικά", "el"), # Greek
("Русский", "ru"), # Russian
- # ("Español", "es"), # Spanish
+ ("Español", "es"), # Spanish
("Türkçe", "tr"), # Turkish
("Українська", "uk"), # Ukrainian
]
-versions = ["2.3", "2.3.1", "2.3.2", "2.3.3", "2.4", "2.4.1"]
+versions = ["2.3", "2.3.1", "2.3.2", "2.3.3", "2.4", "2.5"]
html_theme = "sphinx_rtd_theme"
html_logo = "_static/logo.png"
diff --git a/docs/source/locale/de/LC_MESSAGES/advanced.po b/docs/source/locale/de/LC_MESSAGES/advanced.po
index 5aecf28f..29e8a947 100644
--- a/docs/source/locale/de/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/de/LC_MESSAGES/advanced.po
@@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-09-09 19:49-0700\n"
-"PO-Revision-Date: 2021-09-13 10:46+0000\n"
-"Last-Translator: nautilusx <translate@disroot.org>\n"
+"PO-Revision-Date: 2021-12-04 15:52+0000\n"
+"Last-Translator: Jannes Leßmann <janneslessmann@web.de>\n"
"Language-Team: de <LL@li.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
+"X-Generator: Weblate 4.10-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/advanced.rst:2
@@ -54,16 +54,15 @@ msgstr ""
"purpurfarbenen Stecknadelsymbol links dem Status des Dienstes."
#: ../../source/advanced.rst:18
-#, fuzzy
msgid ""
"When you quit OnionShare and then open it again, your saved tabs will "
"start opened. You'll have to manually start each service, but when you do"
" they will start with the same OnionShare address and private key."
msgstr ""
"Wenn du OnionShare beendest und dann wieder öffnest, werden deine "
-"gespeicherten Reiter wieder geöffnet. Du musst dann zwar jeden Dienst "
-"manuell starten, aber wenn du dies tust, starten die Dienste mit "
-"derselben OnionShare-Adresse und mit demselben Passwort wie zuvor."
+"gespeicherten Tabs wieder geöffnet. Du musst dann zwar jeden Dienst manuell "
+"starten, aber wenn du dies tust, starten die Dienste mit derselben "
+"OnionShare-Adresse und mit demselben Passwort wie zuvor."
#: ../../source/advanced.rst:21
msgid ""
@@ -83,28 +82,29 @@ msgid ""
"By default, all OnionShare services are protected with a private key, "
"which Tor calls \"client authentication\"."
msgstr ""
+"Standardmäßig werden alle OnionShare-Dienste mit einem privaten Schlüssel "
+"gesichert. Dies wird im Tor-Kontext \"Client-Authentifizierung\" genannt."
#: ../../source/advanced.rst:30
msgid ""
"When browsing to an OnionShare service in Tor Browser, Tor Browser will "
"prompt for the private key to be entered."
msgstr ""
+"Wenn du einen OnionShare-Dienst im Tor-Browser aufrufst, wird Tor-Browser "
+"dich auffordern, den privaten Schlüssel einzugeben."
#: ../../source/advanced.rst:32
-#, fuzzy
msgid ""
"Sometimes you might want your OnionShare service to be accessible to the "
"public, like if you want to set up an OnionShare receive service so the "
"public can securely and anonymously send you files. In this case, it's "
"better to disable the private key altogether."
msgstr ""
-"Manchmal könntest du wollen, dass dein OnionShare-Service der "
-"Öffentlichkeit zugänglich ist; dies ist beispielsweise der Fall, wenn du "
-"einen OnionShare-Empfangsdienst einrichten möchtest, über den dir die "
-"Öffentlichkeit sicher und anonym Dateien schicken können. In diesem Fall "
-"wäre es besser, das Passwort komplett zu deaktivieren. Wenn du dies nicht"
-" tust, könnte jemand deinen Dienst anhalten, wenn er 20 mal das Passwort "
-"falsch eingibt, selbst wenn er das richtige Passwort kennt."
+"Manchmal könntest du wollen, dass dein OnionShare-Service der Öffentlichkeit "
+"zugänglich ist; dies ist beispielsweise der Fall, wenn du einen OnionShare-"
+"Empfangsdienst einrichten möchtest, über den dir die Öffentlichkeit sicher "
+"und anonym Dateien schicken kann. In diesem Fall wäre es besser, den "
+"privaten Schlüssel komplett zu deaktivieren."
#: ../../source/advanced.rst:35
msgid ""
@@ -113,6 +113,10 @@ msgid ""
"server. Then the server will be public and won't need a private key to "
"view in Tor Browser."
msgstr ""
+"Um den privaten Schlüssel für einen Tab zu deaktivieren, setze ein Kreuz in "
+"das \"Dies ist ein öffentlicher OnionShare-Service (Deaktiviert den privaten "
+"Schlüssel)\" Kästchen bevor du den Server startest. Dadurch wird der Server "
+"öffentlich Zugänglich, wodurch kein privater Schlüssel mehr benötigt wird."
#: ../../source/advanced.rst:40
msgid "Custom Titles"
@@ -183,7 +187,6 @@ msgstr ""
"gemäß Zeitsteuerung starten würde."
#: ../../source/advanced.rst:60
-#, fuzzy
msgid ""
"**Scheduling an OnionShare service to automatically stop can be useful to"
" limit exposure**, like if you want to share secret documents while "
@@ -191,10 +194,10 @@ msgid ""
"days."
msgstr ""
"**Der automatische, zeigesteuerte Stopp eines OnionShare-Dienstes kann "
-"sinnvoll sein, um den Dienst nicht mehr als nötig einem Zugriff von außen"
-" auszusetzen**; beispielsweise, wenn du geheime Dokumente freigeben "
-"möchtest und diese nicht länger als für ein paar Tage über das Internet "
-"zugänglich sein sollen."
+"sinnvoll sein, um den Dienst nicht mehr als nötig einem Zugriff von Außen "
+"auszusetzen**; beispielsweise, wenn du geheime Dokumente freigeben möchtest "
+"und diese nicht länger als für ein paar Tage über das Internet zugänglich "
+"sein sollen."
#: ../../source/advanced.rst:67
msgid "Command-line Interface"
@@ -235,6 +238,10 @@ msgid ""
"<https://github.com/onionshare/onionshare/blob/develop/cli/README.md>`_ "
"in the git repository."
msgstr ""
+"Um mehr Informationen darüber zu bekommen, wie du es auf verschiedenen "
+"Betriebssystem installieren kannst, schau dir die `CLI README Datei "
+"<https://github.com/onionshare/onionshare/blob/develop/cli/README.md>`_ im "
+"Git-Repository an."
#: ../../source/advanced.rst:83
msgid ""
diff --git a/docs/source/locale/de/LC_MESSAGES/develop.po b/docs/source/locale/de/LC_MESSAGES/develop.po
index de402daf..dbdace47 100644
--- a/docs/source/locale/de/LC_MESSAGES/develop.po
+++ b/docs/source/locale/de/LC_MESSAGES/develop.po
@@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-09-09 19:15-0700\n"
-"PO-Revision-Date: 2021-09-19 15:37+0000\n"
-"Last-Translator: register718 <register2021@outlook.de>\n"
+"PO-Revision-Date: 2021-12-04 15:52+0000\n"
+"Last-Translator: Jannes Leßmann <janneslessmann@web.de>\n"
"Language-Team: de <LL@li.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
+"X-Generator: Weblate 4.10-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/develop.rst:2
@@ -183,7 +183,6 @@ msgstr ""
"Zum Beispiel::"
#: ../../source/develop.rst:165
-#, fuzzy
msgid ""
"In this case, you load the URL ``http://127.0.0.1:17641`` in a normal "
"web-browser like Firefox, instead of using the Tor Browser. The private "
@@ -191,7 +190,7 @@ msgid ""
msgstr ""
"In diesem Fall lädst du die URL ``http://127.0.0.1:17614`` in einem normalen "
"Webbrowser wie Firefox anstelle des Tor Browsers. Der private Schlüssel wird "
-"bei lokalen Betrieb eigentlich nicht benötigt."
+"im lokalen Betrieb für gewöhnlich nicht benötigt."
#: ../../source/develop.rst:168
msgid "Contributing Translations"
diff --git a/docs/source/locale/de/LC_MESSAGES/features.po b/docs/source/locale/de/LC_MESSAGES/features.po
index aca23e44..cec61390 100644
--- a/docs/source/locale/de/LC_MESSAGES/features.po
+++ b/docs/source/locale/de/LC_MESSAGES/features.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2021-09-09 19:15-0700\n"
-"PO-Revision-Date: 2021-11-28 19:16+0000\n"
-"Last-Translator: ilumium <weblate@penfrat.net>\n"
-"Language-Team: de <LL@li.org>\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
+"PO-Revision-Date: 2021-12-04 15:52+0000\n"
+"Last-Translator: Jannes Leßmann <janneslessmann@web.de>\n"
"Language: de\n"
+"Language-Team: de <LL@li.org>\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.10-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/features.rst:4
msgid "How OnionShare Works"
@@ -36,12 +35,12 @@ msgstr ""
#: ../../source/features.rst:8
msgid "By default, OnionShare web addresses are protected with a private key."
msgstr ""
-"Standardmäßig wird die OnionShare Webadresse mit einem privaten Schlüssel "
+"OnionShare-Webadressen werden standardmäßig mit einem privaten Schlüssel "
"geschützt."
#: ../../source/features.rst:10
msgid "OnionShare addresses look something like this::"
-msgstr "OnionShare Adressen sehen in etwa so aus:"
+msgstr "OnionShare-Adressen sehen in etwa so aus:"
#: ../../source/features.rst:14
msgid "And private keys might look something like this::"
@@ -54,12 +53,13 @@ msgid ""
"or using something less secure like unencrypted email, depending on your "
"`threat model <https://ssd.eff.org/module/your-security-plan>`_."
msgstr ""
-"Sie sind für die sichere Weitergabe dieser URL und des privaten Schlüssels "
-"verantwortlich. Die Weitergabe kann z.B. über eine verschlüsselte Chat-"
-"Nachricht, oder eine weniger sichere Kommunikationsmethode wie eine "
-"unverschlüsselte E-Mail erfolgen. Dies Entscheidung wie Sie Ihren Schlüssel "
-"weitergeben sollten Sie aufgrund Ihres persönlichen `threat model "
-"<https://ssd.eff.org/module/your-security-plan>`_ treffen."
+"Sie sind für die sichere Weitergabe dieser URL und des privaten "
+"Schlüssels verantwortlich. Die Weitergabe kann z.B. über eine "
+"verschlüsselte Chat-Nachricht, oder eine weniger sichere "
+"Kommunikationsmethode, wie eine unverschlüsselte E-Mail, erfolgen. Dies "
+"Entscheidung wie Sie Ihren Schlüssel weitergeben sollten Sie aufgrund "
+"Ihres persönlichen `Sicherheitsmodells <https://ssd.eff.org/module/your-"
+"security-plan>`_ treffen."
#: ../../source/features.rst:20
msgid ""
@@ -68,10 +68,11 @@ msgid ""
" Tor Browser will then prompt for the private key, which the people can "
"also then copy and paste in."
msgstr ""
-"Die Empfänger Ihrer URL müssen diesen in ihrem `Tor Browser <https://www."
-"torproject.org/>`_ öffnen, um auf den OnionShare-Dienst zuzugreifen. Der Tor "
-"Browser wird nach einem privaten Schlüssel fragen, der ebenfalls vom "
-"Empfänger eingegeben werden muss."
+"Die Empfänger Ihrer URL müssen diese in ihrem `Tor Browser "
+"<https://www.torproject.org/>`_ öffnen, um auf den OnionShare-Dienst "
+"zuzugreifen. Der Tor Browser wird nach einem privaten Schlüssel fragen, "
+"welcher anschließend vom Empfänger, z.B. über Copy-Paste, eingegeben "
+"werden kann."
#: ../../source/features.rst:24
msgid ""
@@ -80,11 +81,11 @@ msgid ""
"until your laptop is unsuspended and on the internet again. OnionShare "
"works best when working with people in real-time."
msgstr ""
-"Wenn du OnionShare auf deinem Laptop laufen lässt, um jemandem Dateien zu "
-"schicken, und du den Laptop in den Ruhemodus versetzt, ehe die Dateien "
-"gesendet wurden, wird der Dienst so lange nicht erreichbar sein wie der "
-"Laptop im Ruhezustand ist. OnionShare funktioniert am besten, wenn du mit "
-"den Leuten, mit denen du Dateien teilst, in Echtzeit in Verbindung stehst."
+"Solltest du deinen Laptop in den Ruhemodus versetzen und währenddessen "
+"Dateien mit jemandem teilen, so werden die Dateien erst versandt, sobald "
+"sich dein Laptop nicht mehr im Ruhemodus befindet. OnionShare "
+"funktioniert am besten, wenn du mit den Leuten, mit denen du Dateien "
+"teilst, in Echtzeit in Verbindung stehst."
#: ../../source/features.rst:26
msgid ""
@@ -132,11 +133,11 @@ msgid ""
" files have been sent (uncheck to allow downloading individual files)\" "
"box."
msgstr ""
-"Sobald jemand deine Dateien vollständig heruntergeladen hat, wird OnionShare "
-"das Teilen der Dateien automatisch beenden und die Webseite vom Internet "
-"nehmen. Um mehreren Personen das Herunterladen zu ermöglichen, öffne die "
-"Einstellungen von OnionShare und entferne den Haken bei „Server nach "
-"Download der Dateien stoppen“."
+"Sobald jemand deine Dateien vollständig heruntergeladen hat, wird "
+"OnionShare das Teilen der Dateien automatisch beenden und die Webseite "
+"vom Internet nehmen. Um mehreren Personen das Herunterladen zu "
+"ermöglichen, öffne die Einstellungen von OnionShare und entferne den "
+"Haken bei „Server nach Download der Dateien stoppen“."
#: ../../source/features.rst:42
msgid ""
@@ -169,10 +170,11 @@ msgid ""
" stay secure, or the person is otherwise exposed to danger, use an "
"encrypted messaging app."
msgstr ""
-"Jetzt, wo du eine OnionShare-Freigabe hast, kopiere die Adresse und schicke "
-"sie der Person, die die Dateien empfangen soll. Falls die Dateien vor "
-"Anderen geschützt bleiben sollen oder die Empfängerperson anderweitig in "
-"Gefahr ist, nutze einen verschlüsselten Messenger zum senden der Adresse."
+"Jetzt, wo du eine OnionShare-Freigabe hast, kopiere die Adresse und "
+"schicke sie der Person, die die Dateien empfangen soll. Falls die Dateien"
+" vor Anderen geschützt bleiben sollen oder die Empfängerperson "
+"anderweitig in Gefahr ist, nutze einen verschlüsselten Messenger zum "
+"senden der Adresse."
#: ../../source/features.rst:50
msgid ""
@@ -180,10 +182,10 @@ msgid ""
"with the private key, the files can be downloaded directly from your "
"computer by clicking the \"Download Files\" link in the corner."
msgstr ""
-"Diese Person muss nun die Adresse mit dem Tor Browser öffnen. Nachdem sie "
-"sich mit dem zufällig erzeugten Passwort eingeloggt hat, das in der Adresse "
-"enthalten ist, kann sie die Dateien direkt von deinem Rechner über den Link „"
-"Dateien herunterladen” in der Ecke herunterladen."
+"Diese Person muss nun die Adresse mit dem Tor Browser öffnen. Nachdem sie"
+" sich mit dem zufällig erzeugten Passwort eingeloggt hat, das in der "
+"Adresse enthalten ist, kann sie die Dateien direkt von deinem Rechner "
+"über den Link „Dateien herunterladen” in der Ecke herunterladen."
#: ../../source/features.rst:55
msgid "Receive Files and Messages"
@@ -313,7 +315,8 @@ msgstr ""
"Ähnlich wie bei bösartigen E-Mail-Anhängen kann es sein, dass jemand "
"versucht deinen Rechner anzugreifen, indem er eine bösartige Datei auf "
"deinen OnionShare-Dienst hochlädt. OnionShare selbst hat keine "
-"Sicherheitsmechanismen, um deinen Rechner vor solchen Angriffen zu schützen."
+"Sicherheitsmechanismen, um deinen Rechner vor solchen Angriffen zu "
+"schützen."
#: ../../source/features.rst:90
msgid ""
@@ -349,8 +352,8 @@ msgid ""
"basis."
msgstr ""
"Wenn du deinen eigenen anonymen OnionShare-Briefkasten betreiben willst, "
-"solltest du dies auf einem separaten, eigens dafür eingerichteten Rechner "
-"tun, der immer läuft und mit dem Internet verbunden ist; nicht mit dem "
+"solltest du dies auf einem separaten, eigens dafür eingerichteten Rechner"
+" tun, der immer läuft und mit dem Internet verbunden ist; nicht mit dem "
"Rechner, den du sonst regelmäßig benutzt."
#: ../../source/features.rst:99
@@ -361,10 +364,11 @@ msgid ""
"to give it a custom title (see :ref:`custom_titles`)."
msgstr ""
"Falls du deine OnionShare-Adresse auf deiner Webseite oder deinen Social "
-"Media-Profilen veröffentlichen willst, solltest du den entsprechenden Reiter "
-"speichern (siehe :ref:`save_tabs`) und den Service als öffentlich festlegen. "
-"(siehe :ref:`disable password`). In diesem Fall wäre es auch eine gute Idee, "
-"einen benutzerdefinierten Titel festzulegen (siehe :ref:`custom_titles`)."
+"Media-Profilen veröffentlichen willst, solltest du den entsprechenden "
+"Reiter speichern (siehe :ref:`save_tabs`) und den Service als öffentlich "
+"festlegen. (siehe :ref:`disable password`). In diesem Fall wäre es auch "
+"eine gute Idee, einen benutzerdefinierten Titel festzulegen (siehe "
+":ref:`custom_titles`)."
#: ../../source/features.rst:102
msgid "Host a Website"
@@ -419,16 +423,16 @@ msgid ""
"page."
msgstr ""
"Standardmäßig sichert OnionShare deine Webseite, indem es einen strikten "
-"`Content-Security-Policy <https://en.wikipedia.org/wiki/"
-"Content_Security_Policy>`_-Header setzt. Das verhindert allerdings auch das "
-"Laden von Inhalten von Drittanbietern innerhalb deiner Webseite."
+"`Content-Security-Policy "
+"<https://en.wikipedia.org/wiki/Content_Security_Policy>`_-Header setzt. "
+"Das verhindert allerdings auch das Laden von Inhalten von Drittanbietern "
+"innerhalb deiner Webseite."
#: ../../source/features.rst:121
+#, fuzzy
msgid ""
"If you want to load content from third-party websites, like assets or "
-"JavaScript libraries from CDNs, check the \"Don't send Content Security "
-"Policy header (allows your website to use third-party resources)\" box "
-"before starting the service."
+"JavaScript libraries from CDNs, you have two options:"
msgstr ""
"Falls du auch Inhalte von Drittanbieter-Webseiten laden willst, wie z.B. "
"Inhalte oder JavaScript-Bibliotheken von CDNs, musst du einen Haken bei "
@@ -436,11 +440,22 @@ msgstr ""
"von Drittanbietern auf deiner Onion-Webseite einzubinden)“ setzen, bevor "
"du den Dienst startest."
+#: ../../source/features.rst:123
+msgid ""
+"You can disable sending a Content Security Policy header by checking the "
+"\"Don't send Content Security Policy header (allows your website to use "
+"third-party resources)\" box before starting the service."
+msgstr ""
+
#: ../../source/features.rst:124
+msgid "You can send a custom Content Security Policy header."
+msgstr ""
+
+#: ../../source/features.rst:127
msgid "Tips for running a website service"
msgstr "Tipps zum Betreiben eines Webseiten-Dienstes"
-#: ../../source/features.rst:126
+#: ../../source/features.rst:129
msgid ""
"If you want to host a long-term website using OnionShare (meaning not "
"just to quickly show someone something), it's recommended you do it on a "
@@ -449,16 +464,16 @@ msgid ""
" (see :ref:`save_tabs`) so you can resume the website with the same "
"address if you close OnionShare and re-open it later."
msgstr ""
-"Falls du eine Webseite längerfristig über OnionShare anbieten (also nicht "
-"nur kurz jemandem etwas zeigen) möchtest, solltest du dies auf einem "
-"separaten, eigens dafür eingerichteten Rechner tun, der immer läuft und mit "
-"dem Internet verbunden ist; nicht auf dem Rechner, den du sonst regelmäßig "
-"benutzt. Außerdem solltest du den entsprechenden Reiter speichern (see "
-":ref:`save_tabs`), so dass du die Webseite dann mit derselben Adresse "
-"anbieten kannst, wenn OnionShare zwischenzeitig beendet und neu gestartet "
-"wird."
+"Falls du eine Webseite längerfristig über OnionShare anbieten (also nicht"
+" nur kurz jemandem etwas zeigen) möchtest, solltest du dies auf einem "
+"separaten, eigens dafür eingerichteten Rechner tun, der immer läuft und "
+"mit dem Internet verbunden ist; nicht auf dem Rechner, den du sonst "
+"regelmäßig benutzt. Außerdem solltest du den entsprechenden Reiter "
+"speichern (see :ref:`save_tabs`), so dass du die Webseite dann mit "
+"derselben Adresse anbieten kannst, wenn OnionShare zwischenzeitig beendet"
+" und neu gestartet wird."
-#: ../../source/features.rst:129
+#: ../../source/features.rst:132
msgid ""
"If your website is intended for the public, you should run it as a public"
" service (see :ref:`turn_off_private_key`)."
@@ -466,11 +481,11 @@ msgstr ""
"Wenn du deine Webseite öffentlich betreiben willst, solltest du sie als "
"öffentlichen Dienst starten (see :ref:`disable_passwords`)."
-#: ../../source/features.rst:132
+#: ../../source/features.rst:135
msgid "Chat Anonymously"
msgstr "Anonym chatten"
-#: ../../source/features.rst:134
+#: ../../source/features.rst:137
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't"
" log anything. Just open a chat tab and click \"Start chat server\"."
@@ -479,19 +494,20 @@ msgstr ""
"aufsetzen, der nichts aufzeichnet. Öffne einfach einen Chat-Reiter und "
"klicke auf „Chat starten“."
-#: ../../source/features.rst:138
+#: ../../source/features.rst:141
msgid ""
"After you start the server, copy the OnionShare address and private key "
"and send them to the people you want in the anonymous chat room. If it's "
"important to limit exactly who can join, use an encrypted messaging app "
"to send out the OnionShare address and private key."
msgstr ""
-"Nachdem du den Dienst gestartest hast, kopiere die OnionShare-Adresse und "
-"schicke sie den Leuten, die dem anonymen Chat beitreten sollen. Falls es "
-"wichtig ist, den Teilnehmerkreis strikt zu beschränken, solltest du einen "
-"verschlüsselten Messenger zum Teilen der OnionShare-Adresse verwenden."
+"Nachdem du den Dienst gestartest hast, kopiere die OnionShare-Adresse und"
+" schicke sie den Leuten, die dem anonymen Chat beitreten sollen. Falls es"
+" wichtig ist, den Teilnehmerkreis strikt zu beschränken, solltest du "
+"einen verschlüsselten Messenger zum Teilen der OnionShare-Adresse "
+"verwenden."
-#: ../../source/features.rst:143
+#: ../../source/features.rst:146
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -503,7 +519,7 @@ msgstr ""
"Teilnehmer muss im Tor Browser seinen Sicherheitslevel auf „Standard“ "
"oder „Safer“ (anstelle von Safest) setzen."
-#: ../../source/features.rst:146
+#: ../../source/features.rst:149
msgid ""
"When someone joins the chat room they get assigned a random name. They "
"can change their name by typing a new name in the box in the left panel "
@@ -516,7 +532,7 @@ msgstr ""
"Chatverlauf wird nicht angezeigt, selbst wenn andere bereits zuvor im "
"Chatroot gechattet hatten, da der Chatverlauf nirgendwo gespeichert wird."
-#: ../../source/features.rst:152
+#: ../../source/features.rst:155
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change "
"their name to anything, and there is no way to confirm anyone's identity."
@@ -524,7 +540,7 @@ msgstr ""
"In einem OnionShare-Chatroom ist jeder anonym. Jeder kann seinen Namen "
"beliebig ändern und die Identität der Nutzer kann nicht überprüft werden."
-#: ../../source/features.rst:155
+#: ../../source/features.rst:158
msgid ""
"However, if you create an OnionShare chat room and securely send the "
"address only to a small group of trusted friends using encrypted "
@@ -536,11 +552,11 @@ msgstr ""
" nur an eine kleine Anzahl vertrauenswürdiger Freunde über einen "
"verschlüsselten Kanal geschickt hast."
-#: ../../source/features.rst:158
+#: ../../source/features.rst:161
msgid "How is this useful?"
msgstr "Wozu soll das gut sein?"
-#: ../../source/features.rst:160
+#: ../../source/features.rst:163
msgid ""
"If you need to already be using an encrypted messaging app, what's the "
"point of an OnionShare chat room to begin with? It leaves less traces."
@@ -549,7 +565,7 @@ msgstr ""
"verschlüsselten Messenger benutzen solltest? Sie hinterlassen weniger "
"Spuren."
-#: ../../source/features.rst:162
+#: ../../source/features.rst:165
msgid ""
"If you for example send a message to a Signal group, a copy of your "
"message ends up on each device (the smartphones, and computers if they "
@@ -560,8 +576,11 @@ msgid ""
"rooms don't store any messages anywhere, so the problem is reduced to a "
"minimum."
msgstr ""
+"Solltest du zum Beispiel eine Nachricht an eine Signal-Gruppe schicken, "
+"dann bleibt eine Kopie deiner Nachricht auf jedem Gerät aller Teilnehmer "
+"der Gruppe."
-#: ../../source/features.rst:165
+#: ../../source/features.rst:168
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -571,17 +590,17 @@ msgid ""
"anonymity."
msgstr ""
"OnionShare-Chats ermöglichen es außerdem einander unbekannten Personen, "
-"miteinander zu chatten ohne dafür eigene Benutzerkonten erstellen zu müssen. "
-"Beispielsweise könnte eine Quelle einem Journalisten über eine Wegwerf-E"
-"-Mail-Adresse eine OnionShare-Adresse schicken und dann warten, bis der "
-"Journalist den Chat betritt, ohne dass die Quelle dabei ihre Anonymität "
-"gefährdet."
+"miteinander zu chatten ohne dafür eigene Benutzerkonten erstellen zu "
+"müssen. Beispielsweise könnte eine Quelle einem Journalisten über eine "
+"Wegwerf-E-Mail-Adresse eine OnionShare-Adresse schicken und dann warten, "
+"bis der Journalist den Chat betritt, ohne dass die Quelle dabei ihre "
+"Anonymität gefährdet."
-#: ../../source/features.rst:169
+#: ../../source/features.rst:172
msgid "How does the encryption work?"
msgstr "Wie funktioniert die Verschlüsselung?"
-#: ../../source/features.rst:171
+#: ../../source/features.rst:174
msgid ""
"Because OnionShare relies on Tor onion services, connections between the "
"Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When "
@@ -598,7 +617,7 @@ msgstr ""
"WebSockets weiterschickt, wiederum durch deren eigene E2EE-Onion-"
"Verbindungen."
-#: ../../source/features.rst:173
+#: ../../source/features.rst:176
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on"
" the Tor onion service's encryption instead."
@@ -935,3 +954,4 @@ msgstr ""
#~ "Datenbank). OnionShare-Chatrooms speichern "
#~ "nirgendwo Nachrichten, so dass dieses "
#~ "Problem auf ein Minimum reduziert ist."
+
diff --git a/docs/source/locale/de/LC_MESSAGES/tor.po b/docs/source/locale/de/LC_MESSAGES/tor.po
index 6e5d0fd0..59e41adf 100644
--- a/docs/source/locale/de/LC_MESSAGES/tor.po
+++ b/docs/source/locale/de/LC_MESSAGES/tor.po
@@ -7,34 +7,34 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2021-09-09 19:15-0700\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2021-09-13 10:46+0000\n"
"Last-Translator: nautilusx <translate@disroot.org>\n"
-"Language-Team: de <LL@li.org>\n"
"Language: de\n"
+"Language-Team: de <LL@li.org>\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/tor.rst:2
msgid "Connecting to Tor"
msgstr "Mit dem Tor-Netzwerk verbinden"
#: ../../source/tor.rst:4
+#, fuzzy
msgid ""
-"Pick a way to connect OnionShare to Tor by clicking the \"⚙\" icon in the"
-" bottom right of the OnionShare window to get to its settings."
+"Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in"
+" the bottom right of the OnionShare window to open the Tor Settings tab."
msgstr ""
"Lege fest, wie OnionShare sich mit Tor verbinden soll, indem du auf das "
"„⚙“-Symbol am unteren rechten Rand vom OnionShare-Fenster klickst, um die"
" entsprechenden Einstellungen zu sehen."
#: ../../source/tor.rst:9
-msgid "Use the ``tor`` bundled with OnionShare"
-msgstr "Die integrierte Tor-Version benutzen"
+msgid "Use the Tor version built into OnionShare"
+msgstr ""
#: ../../source/tor.rst:11
msgid ""
@@ -59,10 +59,54 @@ msgstr ""
"nutzen kannst."
#: ../../source/tor.rst:18
+msgid "Getting Around Censorship"
+msgstr ""
+
+#: ../../source/tor.rst:20
+#, fuzzy
+msgid ""
+"If your access to the internet is censored, you can configure OnionShare "
+"to connect to the Tor network using `Tor bridges <https://tb-"
+"manual.torproject.org/bridges/>`_. If OnionShare connects to Tor without "
+"one, you don't need to use a bridge."
+msgstr ""
+"Falls dein Internetzugang zensiert wird, kannst du OnionShare so "
+"konfigurieren, dass es sich mit dem Tor-Netzwerk verbindet, indem du "
+"`Tor-Bridges <https://2019.www.torproject.org/docs/bridges.html.en>`_ "
+"benutzt. Wenn OnionShare sich ohne eine Brücke mit Tor verbindet, "
+"brauchst du keine Brücke zu benutzen."
+
+#: ../../source/tor.rst:22
+msgid ""
+"To use a bridge, open the Tor Settings tab. You must select \"Use the Tor"
+" version built into OnionShare\" and check the \"Use a bridge\" checkbox."
+msgstr ""
+
+#: ../../source/tor.rst:25
+msgid ""
+"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges "
+"is recommended over using `meek-azure`."
+msgstr ""
+
+#: ../../source/tor.rst:29
+msgid ""
+"If using a built-in bridge doesn't work, you can request a bridge from "
+"torproject.org. You will have to solve a CAPTCHA in order to request a "
+"bridge. (This makes it more difficult for governments or ISPs to block "
+"access to Tor bridges.)"
+msgstr ""
+
+#: ../../source/tor.rst:33
+msgid ""
+"You also have the option of using a bridge that you learned about from a "
+"trusted source."
+msgstr ""
+
+#: ../../source/tor.rst:36
msgid "Attempt auto-configuration with Tor Browser"
msgstr "Versuche automatische Konfiguration mittels Tor Browser"
-#: ../../source/tor.rst:20
+#: ../../source/tor.rst:38
msgid ""
"If you have `downloaded the Tor Browser <https://www.torproject.org>`_ "
"and don't want two ``tor`` processes running, you can use the ``tor`` "
@@ -75,11 +119,11 @@ msgstr ""
"Damit dies funktionierst, musst du den Tor Browser im Hintergrund "
"geöffnet lassen, so lange du OnionShare nutzt."
-#: ../../source/tor.rst:24
+#: ../../source/tor.rst:42
msgid "Using a system ``tor`` in Windows"
msgstr "Nutze einen systemweiten Tor-Dienst in Windows"
-#: ../../source/tor.rst:26
+#: ../../source/tor.rst:44
msgid ""
"This is fairly advanced. You'll need to know how edit plaintext files and"
" do stuff as an administrator."
@@ -87,7 +131,7 @@ msgstr ""
"Nur etwas für Fortgeschrittene. Hierfür musst du wissen, wie du "
"Textdateien editierst und mit Administratorrechten arbeitest."
-#: ../../source/tor.rst:28
+#: ../../source/tor.rst:46
msgid ""
"Download the Tor Windows Expert Bundle `from "
"<https://www.torproject.org/download/tor/>`_. Extract the compressed file"
@@ -100,7 +144,7 @@ msgstr ""
"``C:\\Programme (x86)\\``. Benenne den entpackten Ordner, der ``Data`` "
"und ``Tor`` beinhaltet, nach ``tor-win32`` um."
-#: ../../source/tor.rst:32
+#: ../../source/tor.rst:50
msgid ""
"Make up a control port password. (Using 7 words in a sequence like "
"``comprised stumble rummage work avenging construct volatile`` is a good "
@@ -114,7 +158,7 @@ msgstr ""
"--hash-password`` aus, um einen Hash deines Passworts zu erzeugen. Zum "
"Beispiel::"
-#: ../../source/tor.rst:39
+#: ../../source/tor.rst:57
msgid ""
"The hashed password output is displayed after some warnings (which you "
"can ignore). In the case of the above example, it is "
@@ -124,7 +168,7 @@ msgstr ""
"ignorieren kannst). In meinem Fall war es "
"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
-#: ../../source/tor.rst:41
+#: ../../source/tor.rst:59
msgid ""
"Now create a new text file at ``C:\\Program Files (x86)\\tor-"
"win32\\torrc`` and put your hashed password output in it, replacing the "
@@ -134,7 +178,7 @@ msgstr ""
"win32\\torrc`` und füge den Passwort-Hash ein, wobei "
"``HashedControlPassword`` mit dem gerade erzeugten ersetzt wird::"
-#: ../../source/tor.rst:46
+#: ../../source/tor.rst:64
msgid ""
"In your administrator command prompt, install ``tor`` as a service using "
"the appropriate ``torrc`` file you just created (as described in "
@@ -146,11 +190,11 @@ msgstr ""
"<https://2019.www.torproject.org/docs/faq.html.en#NTService>`_ für "
"weitere Informationen). Zum Beispiel so::"
-#: ../../source/tor.rst:50
+#: ../../source/tor.rst:68
msgid "You are now running a system ``tor`` process in Windows!"
msgstr "Jetzt hast du einen systemweiten Tor-Dienst in Windows am Laufen!"
-#: ../../source/tor.rst:52
+#: ../../source/tor.rst:70
msgid ""
"Open OnionShare and click the \"⚙\" icon in it. Under \"How should "
"OnionShare connect to Tor?\" choose \"Connect using control port\", and "
@@ -168,11 +212,11 @@ msgstr ""
" dann auf „Verbindung zu Tor testen“. Wenn alles geklappt hat, sollte "
"„Mit dem Tor-Controller verbunden“ erscheinen."
-#: ../../source/tor.rst:61
+#: ../../source/tor.rst:79
msgid "Using a system ``tor`` in macOS"
msgstr "Benutze einen systemweiten Tor-Dienst in macOS"
-#: ../../source/tor.rst:63
+#: ../../source/tor.rst:81
msgid ""
"First, install `Homebrew <https://brew.sh/>`_ if you don't already have "
"it, and then install Tor::"
@@ -180,15 +224,15 @@ msgstr ""
"Installiere zunächst `Homebrew <http://brew.sh/>`_, falls du es noch "
"nicht hast. Installiere dann Tor::"
-#: ../../source/tor.rst:67
+#: ../../source/tor.rst:85
msgid "Now configure Tor to allow connections from OnionShare::"
msgstr "Konfiguriere Tor nun so, dass es Verbindungen von OnionShare aus zulässt::"
-#: ../../source/tor.rst:74
+#: ../../source/tor.rst:92
msgid "And start the system Tor service::"
msgstr "Und starte den systemweiten Tor-Dienst::"
-#: ../../source/tor.rst:78
+#: ../../source/tor.rst:96
msgid ""
"Open OnionShare and click the \"⚙\" icon in it. Under \"How should "
"OnionShare connect to Tor?\" choose \"Connect using socket file\", and "
@@ -203,17 +247,17 @@ msgstr ""
"Identifizierung, oder Identifizierung über Cookie“. Klicke auf den Button"
" „Verbindung zu Tor testen“."
-#: ../../source/tor.rst:84 ../../source/tor.rst:104
+#: ../../source/tor.rst:102 ../../source/tor.rst:122
msgid "If all goes well, you should see \"Connected to the Tor controller\"."
msgstr ""
"Falls alles geklappt hat, solltest du „Mit dem Tor-Controller verbunden“ "
"sehen."
-#: ../../source/tor.rst:87
+#: ../../source/tor.rst:105
msgid "Using a system ``tor`` in Linux"
msgstr "Einen systemweiten Tor-Dienst unter Linux nutzen"
-#: ../../source/tor.rst:89
+#: ../../source/tor.rst:107
msgid ""
"First, install the ``tor`` package. If you're using Debian, Ubuntu, or a "
"similar Linux distro, It is recommended to use the Tor Project's "
@@ -224,7 +268,7 @@ msgstr ""
"ähnliche Distribution nutzt, empfiehlt sich das `offizielle Repository "
"<https://support.torproject.org/de/apt/tor-deb-repo/>`_ des Tor-Projekts."
-#: ../../source/tor.rst:91
+#: ../../source/tor.rst:109
msgid ""
"Next, add your user to the group that runs the ``tor`` process (in the "
"case of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to "
@@ -235,7 +279,7 @@ msgstr ""
"konfiguriere OnionShare so, dass es sich über die Socket-Datei des "
"systemweiten Tor-Dienstes verbindet."
-#: ../../source/tor.rst:93
+#: ../../source/tor.rst:111
msgid ""
"Add your user to the ``debian-tor`` group by running this command "
"(replace ``username`` with your actual username)::"
@@ -243,7 +287,7 @@ msgstr ""
"Füge deinen Benutzer der Gruppe ``debian-tor`` mit folgendem Befehl hinzu"
" (ersetze dabei ``Nutzername`` mit deinem tatsächlichen Nutzernamen)::"
-#: ../../source/tor.rst:97
+#: ../../source/tor.rst:115
msgid ""
"Reboot your computer. After it boots up again, open OnionShare and click "
"the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" "
@@ -259,41 +303,6 @@ msgstr ""
"wähle “Keine Authentifizierung, oder Authentizifierung über Cookie“. "
"Klicke dann auf den Knopf „Teste die Verbindung zu Tor“."
-#: ../../source/tor.rst:107
-msgid "Using Tor bridges"
-msgstr "Über Tor-Bridges"
-
-#: ../../source/tor.rst:109
-msgid ""
-"If your access to the internet is censored, you can configure OnionShare "
-"to connect to the Tor network using `Tor bridges "
-"<https://2019.www.torproject.org/docs/bridges.html.en>`_. If OnionShare "
-"connects to Tor without one, you don't need to use a bridge."
-msgstr ""
-"Falls dein Internetzugang zensiert wird, kannst du OnionShare so "
-"konfigurieren, dass es sich mit dem Tor-Netzwerk verbindet, indem du `Tor-"
-"Bridges <https://2019.www.torproject.org/docs/bridges.html.en>`_ benutzt. "
-"Wenn OnionShare sich ohne eine Brücke mit Tor verbindet, brauchst du keine "
-"Brücke zu benutzen."
-
-#: ../../source/tor.rst:111
-msgid "To configure bridges, click the \"⚙\" icon in OnionShare."
-msgstr "Um Bridges einzustellen, klicke auf das „⚙“-Symbol in OnionShare."
-
-#: ../../source/tor.rst:113
-msgid ""
-"You can use the built-in obfs4 pluggable transports, the built-in "
-"meek_lite (Azure) pluggable transports, or custom bridges, which you can "
-"obtain from Tor's `BridgeDB <https://bridges.torproject.org/>`_. If you "
-"need to use a bridge, try the built-in obfs4 ones first."
-msgstr ""
-"Du kannst die integrierten „obfs4 pluggable transports“, die integrierten"
-" „meek_lite (Amazon) pluggable transports“ oder benutzerdefinierte "
-"Bridges verwenden; letztere findest du in Tors `Bridge-Datenbank "
-"<https://bridges.torproject.org/>`_. Falls du eine Bridge benutzen musst,"
-" solltest du zuerst die intergrierten „obfs4 pluggable transports“ "
-"probieren."
-
#~ msgid "Using a system Tor in Mac OS X"
#~ msgstr ""
@@ -455,3 +464,33 @@ msgstr ""
#~ "win32`` um, so dass sich in diesem"
#~ " Ordner die beiden Ordner ``Data`` "
#~ "und ``Tor`` befinden."
+
+#~ msgid "Use the ``tor`` bundled with OnionShare"
+#~ msgstr "Die integrierte Tor-Version benutzen"
+
+#~ msgid "Using Tor bridges"
+#~ msgstr "Über Tor-Bridges"
+
+#~ msgid "To configure bridges, click the \"⚙\" icon in OnionShare."
+#~ msgstr "Um Bridges einzustellen, klicke auf das „⚙“-Symbol in OnionShare."
+
+#~ msgid ""
+#~ "You can use the built-in obfs4 "
+#~ "pluggable transports, the built-in "
+#~ "meek_lite (Azure) pluggable transports, or "
+#~ "custom bridges, which you can obtain "
+#~ "from Tor's `BridgeDB "
+#~ "<https://bridges.torproject.org/>`_. If you need "
+#~ "to use a bridge, try the built-"
+#~ "in obfs4 ones first."
+#~ msgstr ""
+#~ "Du kannst die integrierten „obfs4 "
+#~ "pluggable transports“, die integrierten "
+#~ "„meek_lite (Amazon) pluggable transports“ oder"
+#~ " benutzerdefinierte Bridges verwenden; letztere"
+#~ " findest du in Tors `Bridge-Datenbank"
+#~ " <https://bridges.torproject.org/>`_. Falls du "
+#~ "eine Bridge benutzen musst, solltest du"
+#~ " zuerst die intergrierten „obfs4 pluggable"
+#~ " transports“ probieren."
+
diff --git a/docs/source/locale/el/LC_MESSAGES/features.po b/docs/source/locale/el/LC_MESSAGES/features.po
index 323492c6..ba01cf23 100644
--- a/docs/source/locale/el/LC_MESSAGES/features.po
+++ b/docs/source/locale/el/LC_MESSAGES/features.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2021-09-09 19:15-0700\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2021-10-09 09:04+0000\n"
"Last-Translator: george kitsoukakis <norhorn@gmail.com>\n"
-"Language-Team: el <LL@li.org>\n"
"Language: el\n"
+"Language-Team: el <LL@li.org>\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/features.rst:4
msgid "How OnionShare Works"
@@ -37,8 +36,8 @@ msgstr ""
#: ../../source/features.rst:8
msgid "By default, OnionShare web addresses are protected with a private key."
msgstr ""
-"Από προεπιλογή, οι διευθύνσεις διαδικτύου του OnionShare προστατεύονται με "
-"ένα ιδιωτικό κλειδί."
+"Από προεπιλογή, οι διευθύνσεις διαδικτύου του OnionShare προστατεύονται "
+"με ένα ιδιωτικό κλειδί."
#: ../../source/features.rst:10
msgid "OnionShare addresses look something like this::"
@@ -56,10 +55,10 @@ msgid ""
"`threat model <https://ssd.eff.org/module/your-security-plan>`_."
msgstr ""
"Είστε υπεύθυνοι για την ασφαλή κοινοποίηση της διεύθυνσης URL και του "
-"ιδιωτικού κλειδιού χρησιμοποιώντας ένα κανάλι επικοινωνίας της επιλογής σας, "
-"όπως ένα κρυπτογραφημένο μήνυμα ή χρησιμοποιώντας κάτι λιγότερο ασφαλές, "
-"όπως μη κρυπτογραφημένο ηλεκτρονικό ταχυδρομείο, ανάλογα με το `μοντέλο "
-"απειλής <https://ssd.eff.org/module/your-security-plan>`_."
+"ιδιωτικού κλειδιού χρησιμοποιώντας ένα κανάλι επικοινωνίας της επιλογής "
+"σας, όπως ένα κρυπτογραφημένο μήνυμα ή χρησιμοποιώντας κάτι λιγότερο "
+"ασφαλές, όπως μη κρυπτογραφημένο ηλεκτρονικό ταχυδρομείο, ανάλογα με το "
+"`μοντέλο απειλής <https://ssd.eff.org/module/your-security-plan>`_."
#: ../../source/features.rst:20
msgid ""
@@ -79,11 +78,11 @@ msgid ""
"until your laptop is unsuspended and on the internet again. OnionShare "
"works best when working with people in real-time."
msgstr ""
-"Εάν χρησιμοποιήσετε το OnionShare στον φορητό υπολογιστή σας για να στείλετε "
-"αρχεία και ο υπολογιστής αυτός κλείσει προτού ολοκληρωθεί η μεταφορά, δεν θα "
-"είναι δυνατή η ολοκλήρωση της έως ότου συνδεθεί ξανά στο Διαδίκτυο. Το "
-"OnionShare λειτουργεί καλύτερα όταν συνεργάζεστε με τον παραλήπτη σε "
-"πραγματικό χρόνο."
+"Εάν χρησιμοποιήσετε το OnionShare στον φορητό υπολογιστή σας για να "
+"στείλετε αρχεία και ο υπολογιστής αυτός κλείσει προτού ολοκληρωθεί η "
+"μεταφορά, δεν θα είναι δυνατή η ολοκλήρωση της έως ότου συνδεθεί ξανά στο"
+" Διαδίκτυο. Το OnionShare λειτουργεί καλύτερα όταν συνεργάζεστε με τον "
+"παραλήπτη σε πραγματικό χρόνο."
#: ../../source/features.rst:26
msgid ""
@@ -132,11 +131,11 @@ msgid ""
" files have been sent (uncheck to allow downloading individual files)\" "
"box."
msgstr ""
-"Με την ολοκλήρωση αποστολής των αρχείων σας, το OnionShare σταματά αυτόματα "
-"τον διακομιστή, αφαιρώντας την ιστοσελίδα από το Διαδίκτυο. Για να "
-"επιτρέψετε τη λήψη από περισσότερους χρήστες, αποεπιλέξτε το \"Τερματισμός "
-"διαμοιρασμού με την ολοκλήρωση αποστολής (αποεπιλέξτε ώστε να επιτρέπεται η "
-"λήψη μεμονωμένων αρχείων)\"."
+"Με την ολοκλήρωση αποστολής των αρχείων σας, το OnionShare σταματά "
+"αυτόματα τον διακομιστή, αφαιρώντας την ιστοσελίδα από το Διαδίκτυο. Για "
+"να επιτρέψετε τη λήψη από περισσότερους χρήστες, αποεπιλέξτε το "
+"\"Τερματισμός διαμοιρασμού με την ολοκλήρωση αποστολής (αποεπιλέξτε ώστε "
+"να επιτρέπεται η λήψη μεμονωμένων αρχείων)\"."
#: ../../source/features.rst:42
msgid ""
@@ -168,10 +167,10 @@ msgid ""
" stay secure, or the person is otherwise exposed to danger, use an "
"encrypted messaging app."
msgstr ""
-"Τώρα που αποκτήσατε το OnionShare, αντιγράψτε και στείλτε τη διεύθυνση λήψης "
-"των αρχείων σας και το ιδιωτικό κλειδί. Εάν χρειάζεστε περισσότερη ασφάλεια "
-"ή ο αποδέκτης δεν είναι έμπιστος, χρησιμοποιήστε μια εφαρμογή αποστολής "
-"κρυπτογραφημένου μηνύματος."
+"Τώρα που αποκτήσατε το OnionShare, αντιγράψτε και στείλτε τη διεύθυνση "
+"λήψης των αρχείων σας και το ιδιωτικό κλειδί. Εάν χρειάζεστε περισσότερη "
+"ασφάλεια ή ο αποδέκτης δεν είναι έμπιστος, χρησιμοποιήστε μια εφαρμογή "
+"αποστολής κρυπτογραφημένου μηνύματος."
#: ../../source/features.rst:50
msgid ""
@@ -179,9 +178,9 @@ msgid ""
"with the private key, the files can be downloaded directly from your "
"computer by clicking the \"Download Files\" link in the corner."
msgstr ""
-"Ο αποδέκτης θα πρέπει να αντιγράψει τη διεύθυνση στο Tor Browser. Μετά τη "
-"σύνδεση με το ιδιωτικό κλειδί, τα αρχεία μπορούν να ληφθούν απευθείας από "
-"τον υπολογιστή σας με κλικ στον σύνδεσμο \"Λήψη αρχείων\"."
+"Ο αποδέκτης θα πρέπει να αντιγράψει τη διεύθυνση στο Tor Browser. Μετά τη"
+" σύνδεση με το ιδιωτικό κλειδί, τα αρχεία μπορούν να ληφθούν απευθείας "
+"από τον υπολογιστή σας με κλικ στον σύνδεσμο \"Λήψη αρχείων\"."
#: ../../source/features.rst:55
msgid "Receive Files and Messages"
@@ -309,9 +308,9 @@ msgid ""
"protect your system from malicious files."
msgstr ""
"Όπως και με τα κακόβουλα συνημμένα e-mail, είναι πιθανό κάποιος να "
-"προσπαθήσει να επιτεθεί στον υπολογιστή σας ανεβάζοντας ένα κακόβουλο αρχείο "
-"στην υπηρεσία σας OnionShare, το οποίο δεν διαθέτει μηχανισμούς ασφαλείας "
-"από κακόβουλα αρχεία."
+"προσπαθήσει να επιτεθεί στον υπολογιστή σας ανεβάζοντας ένα κακόβουλο "
+"αρχείο στην υπηρεσία σας OnionShare, το οποίο δεν διαθέτει μηχανισμούς "
+"ασφαλείας από κακόβουλα αρχεία."
#: ../../source/features.rst:90
msgid ""
@@ -345,10 +344,10 @@ msgid ""
" and connected to the internet, and not on the one you use on a regular "
"basis."
msgstr ""
-"Εάν θέλετε να φιλοξενήσετε το δικό σας ανώνυμο dropbox χρησιμοποιώντας το "
-"OnionShare, συνιστάται να το κάνετε σε έναν ξεχωριστό, μεμονωμένο υπολογιστή "
-"που είναι πάντα ενεργοποιημένος και συνδεδεμένος στο Διαδίκτυο και όχι σε "
-"αυτόν που χρησιμοποιείτε καθημερινά."
+"Εάν θέλετε να φιλοξενήσετε το δικό σας ανώνυμο dropbox χρησιμοποιώντας το"
+" OnionShare, συνιστάται να το κάνετε σε έναν ξεχωριστό, μεμονωμένο "
+"υπολογιστή που είναι πάντα ενεργοποιημένος και συνδεδεμένος στο Διαδίκτυο"
+" και όχι σε αυτόν που χρησιμοποιείτε καθημερινά."
#: ../../source/features.rst:99
msgid ""
@@ -357,10 +356,11 @@ msgid ""
"public service (see :ref:`turn_off_private_key`). It's also a good idea "
"to give it a custom title (see :ref:`custom_titles`)."
msgstr ""
-"Εάν σκοπεύετε να δημοσιεύσετε τη διεύθυνση OnionShare στην ιστοσελίδα ή στα "
-"κοινωνικά σας δίκτυα, αποθηκεύστε την καρτέλα (δείτε :ref:`save_tabs`) και "
-"εκτελέστε την σαν δημόσια υπηρεσία (δείτε :ref:`turn_off_private_key`). "
-"Επίσης μπορείτε να προσθέσετε το δικό σας τίτλο (δείτε :ref:`custom_titles`)."
+"Εάν σκοπεύετε να δημοσιεύσετε τη διεύθυνση OnionShare στην ιστοσελίδα ή "
+"στα κοινωνικά σας δίκτυα, αποθηκεύστε την καρτέλα (δείτε "
+":ref:`save_tabs`) και εκτελέστε την σαν δημόσια υπηρεσία (δείτε "
+":ref:`turn_off_private_key`). Επίσης μπορείτε να προσθέσετε το δικό σας "
+"τίτλο (δείτε :ref:`custom_titles`)."
#: ../../source/features.rst:102
msgid "Host a Website"
@@ -415,28 +415,38 @@ msgid ""
"However, this prevents third-party content from loading inside the web "
"page."
msgstr ""
-"Από προεπιλογή το OnionShare σας βοηθά στην προστασία της ιστοσελίδας σας "
-"ορίζοντας την επικεφαλίδα `Περιεχόμενο πολιτικής ασφαλείας <https://en."
-"wikipedia.org/wiki/Content_Security_Policy>`_. Ωστόσο, αυτό εμποδίζει τη "
-"φόρτωση περιεχομένου τρίτων εντός της ιστοσελίδας."
+"Από προεπιλογή το OnionShare σας βοηθά στην προστασία της ιστοσελίδας σας"
+" ορίζοντας την επικεφαλίδα `Περιεχόμενο πολιτικής ασφαλείας "
+"<https://en.wikipedia.org/wiki/Content_Security_Policy>`_. Ωστόσο, αυτό "
+"εμποδίζει τη φόρτωση περιεχομένου τρίτων εντός της ιστοσελίδας."
#: ../../source/features.rst:121
+#, fuzzy
msgid ""
"If you want to load content from third-party websites, like assets or "
-"JavaScript libraries from CDNs, check the \"Don't send Content Security "
-"Policy header (allows your website to use third-party resources)\" box "
-"before starting the service."
+"JavaScript libraries from CDNs, you have two options:"
+msgstr ""
+"Εάν θέλετε να φορτώσετε περιεχόμενο από ιστότοπους τρίτων, όπως στοιχεία "
+"ή βιβλιοθήκες JavaScript από CDNs, επιλέξτε το πλαίσιο \"Μην στέλνετε την"
+" κεφαλίδα Πολιτικής Ασφαλείας Περιεχομένου (επιτρέπει στην ιστοσελίδα σας"
+" να χρησιμοποιεί πόρους τρίτων)\" πριν την εκκίνηση της υπηρεσίας."
+
+#: ../../source/features.rst:123
+msgid ""
+"You can disable sending a Content Security Policy header by checking the "
+"\"Don't send Content Security Policy header (allows your website to use "
+"third-party resources)\" box before starting the service."
msgstr ""
-"Εάν θέλετε να φορτώσετε περιεχόμενο από ιστότοπους τρίτων, όπως στοιχεία ή "
-"βιβλιοθήκες JavaScript από CDNs, επιλέξτε το πλαίσιο \"Μην στέλνετε την "
-"κεφαλίδα Πολιτικής Ασφαλείας Περιεχομένου (επιτρέπει στην ιστοσελίδα σας να "
-"χρησιμοποιεί πόρους τρίτων)\" πριν την εκκίνηση της υπηρεσίας."
#: ../../source/features.rst:124
+msgid "You can send a custom Content Security Policy header."
+msgstr ""
+
+#: ../../source/features.rst:127
msgid "Tips for running a website service"
msgstr "Συμβουλές για εκτέλεση μιας υπηρεσίας ιστοσελίδας"
-#: ../../source/features.rst:126
+#: ../../source/features.rst:129
msgid ""
"If you want to host a long-term website using OnionShare (meaning not "
"just to quickly show someone something), it's recommended you do it on a "
@@ -445,14 +455,15 @@ msgid ""
" (see :ref:`save_tabs`) so you can resume the website with the same "
"address if you close OnionShare and re-open it later."
msgstr ""
-"Εάν θέλετε να φιλοξενήσετε μια μακροσκελή ιστοσελίδα με το OnionShare (που "
-"σημαίνει πως χρειάζεται χρόνος για περιήγηση), συνιστάται να το κάνετε σε "
-"έναν ξεχωριστό, αυτόνομο υπολογιστή που είναι πάντα ενεργοποιημένος και "
-"συνδεδεμένος στο Διαδίκτυο και όχι σε αυτόν που χρησιμοποιείτε σε τακτική "
-"βάση. Αποθηκεύστε την καρτέλα (δείτε: :ref:`save_tabs`) ώστε να μπορείτε να "
-"ξανανοίξετε την ίδια διεύθυνση εάν κλείσετε το OnionShare."
+"Εάν θέλετε να φιλοξενήσετε μια μακροσκελή ιστοσελίδα με το OnionShare "
+"(που σημαίνει πως χρειάζεται χρόνος για περιήγηση), συνιστάται να το "
+"κάνετε σε έναν ξεχωριστό, αυτόνομο υπολογιστή που είναι πάντα "
+"ενεργοποιημένος και συνδεδεμένος στο Διαδίκτυο και όχι σε αυτόν που "
+"χρησιμοποιείτε σε τακτική βάση. Αποθηκεύστε την καρτέλα (δείτε: "
+":ref:`save_tabs`) ώστε να μπορείτε να ξανανοίξετε την ίδια διεύθυνση εάν "
+"κλείσετε το OnionShare."
-#: ../../source/features.rst:129
+#: ../../source/features.rst:132
msgid ""
"If your website is intended for the public, you should run it as a public"
" service (see :ref:`turn_off_private_key`)."
@@ -460,11 +471,11 @@ msgstr ""
"Εάν η ιστοσελίδα σας προορίζεται για δημόσια χρήση, πρέπει να δηλωθεί ως "
"δημόσια υπηρεσία (δείτε :ref:`turn_off_private_key`)."
-#: ../../source/features.rst:132
+#: ../../source/features.rst:135
msgid "Chat Anonymously"
msgstr "Συνομιλήστε ανώνυμα"
-#: ../../source/features.rst:134
+#: ../../source/features.rst:137
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't"
" log anything. Just open a chat tab and click \"Start chat server\"."
@@ -473,7 +484,7 @@ msgstr ""
"δωμάτιο συνομιλίας που δεν καταγράφει τίποτα. Απλά ανοίξτε μια καρτέλα "
"συνομιλίας και κάντε κλικ \"Έναρξη διακομιστή συνομιλίας\"."
-#: ../../source/features.rst:138
+#: ../../source/features.rst:141
msgid ""
"After you start the server, copy the OnionShare address and private key "
"and send them to the people you want in the anonymous chat room. If it's "
@@ -481,11 +492,11 @@ msgid ""
"to send out the OnionShare address and private key."
msgstr ""
"Μετά την εκκίνηση του διακομιστή, αντιγράψτε και στείλτε τη διεύθυνση "
-"OnionShare και το ιδιωτικό κλειδί, από ένα ανώνυμο δωμάτιο συνομιλίας. Εάν "
-"είναι σημαντικό να περιορίσετε ποιος μπορεί να συμμετάσχει, χρησιμοποιήστε "
-"μια εφαρμογή ανταλλαγής μηνυμάτων με κρυπτογράφηση."
+"OnionShare και το ιδιωτικό κλειδί, από ένα ανώνυμο δωμάτιο συνομιλίας. "
+"Εάν είναι σημαντικό να περιορίσετε ποιος μπορεί να συμμετάσχει, "
+"χρησιμοποιήστε μια εφαρμογή ανταλλαγής μηνυμάτων με κρυπτογράφηση."
-#: ../../source/features.rst:143
+#: ../../source/features.rst:146
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -498,7 +509,7 @@ msgstr ""
"ασφάλεια του Tor Browser σε \"Βασικό\" ή \"Ασφαλέστερο\" και όχι σε "
"\"Ασφαλέστατο\"."
-#: ../../source/features.rst:146
+#: ../../source/features.rst:149
msgid ""
"When someone joins the chat room they get assigned a random name. They "
"can change their name by typing a new name in the box in the left panel "
@@ -511,7 +522,7 @@ msgstr ""
"πουθενά, δεν εμφανίζεται καθόλου ακόμα κι αν βρίσκεται συζήτηση σε "
"εξέλιξη."
-#: ../../source/features.rst:152
+#: ../../source/features.rst:155
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change "
"their name to anything, and there is no way to confirm anyone's identity."
@@ -520,7 +531,7 @@ msgstr ""
"μπορεί να αλλάξει το όνομά του και δεν υπάρχει τρόπος επιβεβαίωσης της "
"ταυτότητάς του."
-#: ../../source/features.rst:155
+#: ../../source/features.rst:158
msgid ""
"However, if you create an OnionShare chat room and securely send the "
"address only to a small group of trusted friends using encrypted "
@@ -533,11 +544,11 @@ msgstr ""
"σίγουροι ότι τα άτομα που συμμετέχουν στην αίθουσα συνομιλίας είναι φίλοι"
" σας."
-#: ../../source/features.rst:158
+#: ../../source/features.rst:161
msgid "How is this useful?"
msgstr "Σε τι χρησιμεύει;"
-#: ../../source/features.rst:160
+#: ../../source/features.rst:163
msgid ""
"If you need to already be using an encrypted messaging app, what's the "
"point of an OnionShare chat room to begin with? It leaves less traces."
@@ -547,7 +558,7 @@ msgstr ""
"OnionShare; Τόσο λιγότερα μέσα επικοινωνίας χρησιμοποιείτε, τόσο λιγότερα"
" ίχνη θα αφήσετε."
-#: ../../source/features.rst:162
+#: ../../source/features.rst:165
msgid ""
"If you for example send a message to a Signal group, a copy of your "
"message ends up on each device (the smartphones, and computers if they "
@@ -559,15 +570,16 @@ msgid ""
"minimum."
msgstr ""
"Εάν, για παράδειγμα, στείλετε ένα μήνυμα σε μια ομάδα του Signal, ένα "
-"αντίγραφο του μηνύματός σας καταλήγει σε κάθε συσκευή (τα κινητά και τους "
-"υπολογιστές αν έχουν το Signal Desktop) κάθε μέλους της ομάδας. Ακόμη και αν "
-"η εξαφάνιση μηνυμάτων είναι ενεργοποιημένη, είναι δύσκολο να επιβεβαιώσετε "
-"ότι όλα τα αντίγραφα των μηνυμάτων έχουν πράγματι διαγραφεί και από "
-"οποιαδήποτε άλλα μέρη (όπως βάσεις δεδομένων ειδοποιήσεων) στα οποία μπορεί "
-"να έχουν αποθηκευτεί. Τα δωμάτια συνομιλίας του OnionShare δεν αποθηκεύουν "
-"κανένα μήνυμα πουθενά, οπότε το πρόβλημα μειώνεται στο ελάχιστο."
-
-#: ../../source/features.rst:165
+"αντίγραφο του μηνύματός σας καταλήγει σε κάθε συσκευή (τα κινητά και τους"
+" υπολογιστές αν έχουν το Signal Desktop) κάθε μέλους της ομάδας. Ακόμη "
+"και αν η εξαφάνιση μηνυμάτων είναι ενεργοποιημένη, είναι δύσκολο να "
+"επιβεβαιώσετε ότι όλα τα αντίγραφα των μηνυμάτων έχουν πράγματι διαγραφεί"
+" και από οποιαδήποτε άλλα μέρη (όπως βάσεις δεδομένων ειδοποιήσεων) στα "
+"οποία μπορεί να έχουν αποθηκευτεί. Τα δωμάτια συνομιλίας του OnionShare "
+"δεν αποθηκεύουν κανένα μήνυμα πουθενά, οπότε το πρόβλημα μειώνεται στο "
+"ελάχιστο."
+
+#: ../../source/features.rst:168
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -576,18 +588,18 @@ msgid ""
"journalist to join the chat room, all without compromosing their "
"anonymity."
msgstr ""
-"Τα δωμάτια συνομιλίας OnionShare είναι επίσης χρήσιμα για άτομα που θέλουν "
-"να συνομιλήσουν ανώνυμα και με ασφάλεια χωρίς να χρειάζεται να δημιουργήσουν "
-"λογαριασμό. Για παράδειγμα, μια πηγή μπορεί να στείλει μια διεύθυνση "
-"OnionShare σε έναν δημοσιογράφο χρησιμοποιώντας μια διεύθυνση e-mail μιας "
-"χρήσης και στη συνέχεια, να περιμένει τον δημοσιογράφο να συμμετάσχει στο "
-"δωμάτιο συνομιλίας, χωρίς να διακυβεύεται η ανωνυμία του."
-
-#: ../../source/features.rst:169
+"Τα δωμάτια συνομιλίας OnionShare είναι επίσης χρήσιμα για άτομα που "
+"θέλουν να συνομιλήσουν ανώνυμα και με ασφάλεια χωρίς να χρειάζεται να "
+"δημιουργήσουν λογαριασμό. Για παράδειγμα, μια πηγή μπορεί να στείλει μια "
+"διεύθυνση OnionShare σε έναν δημοσιογράφο χρησιμοποιώντας μια διεύθυνση "
+"e-mail μιας χρήσης και στη συνέχεια, να περιμένει τον δημοσιογράφο να "
+"συμμετάσχει στο δωμάτιο συνομιλίας, χωρίς να διακυβεύεται η ανωνυμία του."
+
+#: ../../source/features.rst:172
msgid "How does the encryption work?"
msgstr "Πως λειτουργεί η κρυπτογράφηση του OnionShare;"
-#: ../../source/features.rst:171
+#: ../../source/features.rst:174
msgid ""
"Because OnionShare relies on Tor onion services, connections between the "
"Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When "
@@ -603,7 +615,7 @@ msgstr ""
"οποία στη συνέχεια το στέλνει σε όλα τα μέλη της συνομιλίας "
"χρησιμοποιώντας WebSockets, μέσω των συνδέσεων onion E2EE."
-#: ../../source/features.rst:173
+#: ../../source/features.rst:176
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on"
" the Tor onion service's encryption instead."
@@ -1121,3 +1133,4 @@ msgstr ""
#~ "αποθηκευτεί. Τα δωμάτια συνομιλίας OnionShare"
#~ " δεν αποθηκεύουν μηνύματα πουθενά, οπότε"
#~ " το πρόβλημα μειώνεται στο ελάχιστο."
+
diff --git a/docs/source/locale/el/LC_MESSAGES/tor.po b/docs/source/locale/el/LC_MESSAGES/tor.po
index dc358baf..d1c4493b 100644
--- a/docs/source/locale/el/LC_MESSAGES/tor.po
+++ b/docs/source/locale/el/LC_MESSAGES/tor.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2021-09-09 19:15-0700\n"
-"PO-Revision-Date: 2021-10-09 09:04+0000\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
+"PO-Revision-Date: 2022-01-20 11:57+0000\n"
"Last-Translator: george kitsoukakis <norhorn@gmail.com>\n"
"Language-Team: el <LL@li.org>\n"
"Language: el\n"
@@ -16,8 +16,8 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"X-Generator: Weblate 4.11-dev\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/tor.rst:2
msgid "Connecting to Tor"
@@ -25,15 +25,16 @@ msgstr "Σύνδεση στο Tor"
#: ../../source/tor.rst:4
msgid ""
-"Pick a way to connect OnionShare to Tor by clicking the \"⚙\" icon in the"
-" bottom right of the OnionShare window to get to its settings."
+"Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in"
+" the bottom right of the OnionShare window to open the Tor Settings tab."
msgstr ""
-"Επιλέξτε τον τρόπο σύνδεσης του OnionShare με το Tor κάνοντας κλικ στο "
-"εικονίδιο \"⚙\" κάτω δεξιά για μετάβαση στις ρυθμίσεις."
+"Επιλέξτε τον τρόπο σύνδεσης του OnionShare με το Tor, κάνοντας κλικ στο "
+"εικονίδιο του Tor κάτω δεξιά στο παράθυρο του OnionShare για να ανοίξει η "
+"καρτέλα των ρυθμίσεων."
#: ../../source/tor.rst:9
-msgid "Use the ``tor`` bundled with OnionShare"
-msgstr "Χρήση του κελύφους ``tor`` με το OnionShare"
+msgid "Use the Tor version built into OnionShare"
+msgstr "Χρήση της έκδοσης Tor στο OnioShare"
#: ../../source/tor.rst:11
msgid ""
@@ -56,10 +57,62 @@ msgstr ""
"σύστημα ``tor`` ξεχωριστά."
#: ../../source/tor.rst:18
+msgid "Getting Around Censorship"
+msgstr "Παράκαμψη της λογοκρισίας"
+
+#: ../../source/tor.rst:20
+msgid ""
+"If your access to the internet is censored, you can configure OnionShare "
+"to connect to the Tor network using `Tor bridges <https://tb-"
+"manual.torproject.org/bridges/>`_. If OnionShare connects to Tor without "
+"one, you don't need to use a bridge."
+msgstr ""
+"Εάν λογοκρίνεται η πρόσβασή σας στο Διαδίκτυο, μπορείτε να ρυθμίσετε το "
+"OnionShare να συνδέεται με χρήση των `Tor bridges <https://tb-manual."
+"torproject.org/bridges/>`_. Εάν το OnionShare συνδέεται απευθείας στο Tor, "
+"δεν χρειάζεται να χρησιμοποιήσετε μια γέφυρα."
+
+#: ../../source/tor.rst:22
+msgid ""
+"To use a bridge, open the Tor Settings tab. You must select \"Use the Tor"
+" version built into OnionShare\" and check the \"Use a bridge\" checkbox."
+msgstr ""
+"Για χρήση γέφυρας, ανοίξτε την καρτέλα ρυθμίσεων του Tor. Επιλέξτε το \"Χρήση"
+" της έκδοσης Tor με το OnionShare\" και επιλέξτε το \"Χρήση γέφυρας\"."
+
+#: ../../source/tor.rst:25
+msgid ""
+"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges "
+"is recommended over using `meek-azure`."
+msgstr ""
+"Δοκιμάστε αρχικά μια ενσωματωμένη γέφυρα. Η χρήση των γεφυρών `obfs4` ή "
+"`snowflake` προτείνονται με χρήση του `meek-azure`."
+
+#: ../../source/tor.rst:29
+msgid ""
+"If using a built-in bridge doesn't work, you can request a bridge from "
+"torproject.org. You will have to solve a CAPTCHA in order to request a "
+"bridge. (This makes it more difficult for governments or ISPs to block "
+"access to Tor bridges.)"
+msgstr ""
+"Εάν δεν λειτουργεί η χρήση ενσωματωμένης γέφυρας, μπορείτε να αιτηθείτε μια "
+"γέφυρα από το torproject.org. Θα πρέπει να επιλύσετε το CAPTCHA για αίτηση "
+"της γέφυρας. (Με αυτό τον τρόπο καθίσταται δυσκολότερο για τις κυβερνήσεις "
+"και παρόχους να μπλοκάρουν τις γέφυρες του Tor)."
+
+#: ../../source/tor.rst:33
+msgid ""
+"You also have the option of using a bridge that you learned about from a "
+"trusted source."
+msgstr ""
+"Μπορείτε να χρησιμοποιήσετε μια γέφυρα που ήδη γνωρίσετε από μια έμπιστη "
+"πηγή."
+
+#: ../../source/tor.rst:36
msgid "Attempt auto-configuration with Tor Browser"
msgstr "Αυτόματη ρύθμιση με Tor Browser"
-#: ../../source/tor.rst:20
+#: ../../source/tor.rst:38
msgid ""
"If you have `downloaded the Tor Browser <https://www.torproject.org>`_ "
"and don't want two ``tor`` processes running, you can use the ``tor`` "
@@ -72,11 +125,11 @@ msgstr ""
"ότι πρέπει να διατηρήσετε το Tor Browser ανοιχτό στο παρασκήνιο ενώ "
"χρησιμοποιείτε το OnionShare."
-#: ../../source/tor.rst:24
+#: ../../source/tor.rst:42
msgid "Using a system ``tor`` in Windows"
msgstr "Χρήση του συστήματος ``tor`` σε Windows"
-#: ../../source/tor.rst:26
+#: ../../source/tor.rst:44
msgid ""
"This is fairly advanced. You'll need to know how edit plaintext files and"
" do stuff as an administrator."
@@ -84,7 +137,7 @@ msgstr ""
"Είναι αρκετά προχωρημένο. Θα πρέπει να γνωρίζετε επεξεργασία αρχείων "
"απλού κειμένου και να μπορείτε να κάνετε εργασίες ως διαχειριστής."
-#: ../../source/tor.rst:28
+#: ../../source/tor.rst:46
msgid ""
"Download the Tor Windows Expert Bundle `from "
"<https://www.torproject.org/download/tor/>`_. Extract the compressed file"
@@ -96,7 +149,7 @@ msgstr ""
"αντιγράψτε το στο φάκελο ``C:\\Program Files (x86)\\`` μετονομάστε το "
"φάκελο με περιεχόμενα τα ``Data`` και ``Tor`` σε ``tor-win32``."
-#: ../../source/tor.rst:32
+#: ../../source/tor.rst:50
msgid ""
"Make up a control port password. (Using 7 words in a sequence like "
"``comprised stumble rummage work avenging construct volatile`` is a good "
@@ -111,7 +164,7 @@ msgstr ""
"χρησιμοποιήστε το ``tor. exe --hash-password`` για τη δημιουργία ενός "
"αναγνωριστικού του κωδικού πρόσβασής σας. Για παράδειγμα::"
-#: ../../source/tor.rst:39
+#: ../../source/tor.rst:57
msgid ""
"The hashed password output is displayed after some warnings (which you "
"can ignore). In the case of the above example, it is "
@@ -122,7 +175,7 @@ msgstr ""
"παράδειγμα, εμφανίζεται "
"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
-#: ../../source/tor.rst:41
+#: ../../source/tor.rst:59
msgid ""
"Now create a new text file at ``C:\\Program Files (x86)\\tor-"
"win32\\torrc`` and put your hashed password output in it, replacing the "
@@ -132,7 +185,7 @@ msgstr ""
"win32\\torrc`` και προσθέστε το αναγνωριστικό του κωδικού πρόσβασης, "
"αντικαθιστώντας το ``HashedControlPassword`` με αυτό που δημιουργήθηκε::"
-#: ../../source/tor.rst:46
+#: ../../source/tor.rst:64
msgid ""
"In your administrator command prompt, install ``tor`` as a service using "
"the appropriate ``torrc`` file you just created (as described in "
@@ -144,11 +197,11 @@ msgstr ""
"``torrc`` που μόλις δημιουργήσατε (όπως περιγράφεται σε "
"`<https://2019.www.torproject.org/docs/faq.html.en#NTService>`_). Όπως::"
-#: ../../source/tor.rst:50
+#: ../../source/tor.rst:68
msgid "You are now running a system ``tor`` process in Windows!"
msgstr "Εκτελείτε πλέον μια υπηρεσία του συστήματος ``tor`` σε Windows!"
-#: ../../source/tor.rst:52
+#: ../../source/tor.rst:70
msgid ""
"Open OnionShare and click the \"⚙\" icon in it. Under \"How should "
"OnionShare connect to Tor?\" choose \"Connect using control port\", and "
@@ -166,11 +219,11 @@ msgstr ""
"Κάντε κλικ στο κουμπί \"Έλεγχος της σύνδεσης με το Tor\". Εάν όλα είναι "
"σωστά θα δείτε το μήνυμα \"Εγινε σύνδεση με τον ελεγκτή Tor\"."
-#: ../../source/tor.rst:61
+#: ../../source/tor.rst:79
msgid "Using a system ``tor`` in macOS"
msgstr "Χρήση του συστήματος ``tor`` σε macOS"
-#: ../../source/tor.rst:63
+#: ../../source/tor.rst:81
msgid ""
"First, install `Homebrew <https://brew.sh/>`_ if you don't already have "
"it, and then install Tor::"
@@ -178,15 +231,15 @@ msgstr ""
"Εγκαταστήστε αρχικά το `Homebrew <https://brew.sh/>`_ εάν δεν το έχετε "
"ήδη. Στη συνέχεια εγκαταστήστε το Tor::"
-#: ../../source/tor.rst:67
+#: ../../source/tor.rst:85
msgid "Now configure Tor to allow connections from OnionShare::"
msgstr "Ρυθμίστε το Tor ώστε να επιτρέπει τις συνδέσεις από το OnionShare::"
-#: ../../source/tor.rst:74
+#: ../../source/tor.rst:92
msgid "And start the system Tor service::"
msgstr "Και ξεκινήστε την υπηρεσία του συστήματος Tor::"
-#: ../../source/tor.rst:78
+#: ../../source/tor.rst:96
msgid ""
"Open OnionShare and click the \"⚙\" icon in it. Under \"How should "
"OnionShare connect to Tor?\" choose \"Connect using socket file\", and "
@@ -201,17 +254,17 @@ msgstr ""
"επαλήθευσης Tor\" επιλέξτε \"Χωρίς επαλήθευση ή επαλήθευση με cookie\". "
"Κάντε κλικ στο κουμπί \"Έλεγχος σύνδεσης με το Tor\"."
-#: ../../source/tor.rst:84 ../../source/tor.rst:104
+#: ../../source/tor.rst:102 ../../source/tor.rst:122
msgid "If all goes well, you should see \"Connected to the Tor controller\"."
msgstr ""
"εάν όλα είναι σωστά θα δείτε το μήνυμα \"Εγινε σύνδεση με τον ελεγκτή "
"Tor\"."
-#: ../../source/tor.rst:87
+#: ../../source/tor.rst:105
msgid "Using a system ``tor`` in Linux"
msgstr "Χρήση του συστήματος ``tor`` σε Linux"
-#: ../../source/tor.rst:89
+#: ../../source/tor.rst:107
msgid ""
"First, install the ``tor`` package. If you're using Debian, Ubuntu, or a "
"similar Linux distro, It is recommended to use the Tor Project's "
@@ -223,7 +276,7 @@ msgstr ""
"Project από το επίσημο αποθετήριο <https://support.torproject.org/apt"
"/tor-deb-repo/>`_."
-#: ../../source/tor.rst:91
+#: ../../source/tor.rst:109
msgid ""
"Next, add your user to the group that runs the ``tor`` process (in the "
"case of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to "
@@ -234,7 +287,7 @@ msgstr ""
"ρυθμίστε το OnionShare ώστε να συνδεθεί με το αρχείο μετάβασής σας στο "
"σύστημα ``tor``."
-#: ../../source/tor.rst:93
+#: ../../source/tor.rst:111
msgid ""
"Add your user to the ``debian-tor`` group by running this command "
"(replace ``username`` with your actual username)::"
@@ -242,7 +295,7 @@ msgstr ""
"Προσθέστε τον χρήστη σας στην ομάδα ``debian-tor`` εκτελόντας την εντολή "
"(αντικαταστήστε το ``όνομα χρήστη`` με το δικό σας::"
-#: ../../source/tor.rst:97
+#: ../../source/tor.rst:115
msgid ""
"Reboot your computer. After it boots up again, open OnionShare and click "
"the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" "
@@ -258,41 +311,6 @@ msgstr ""
"επιλέξτε \"Χωρίς επαλήθευση ή επαλήθευση με cookie\". Κάντε κλικ στο "
"κουμπί \"Έλεγχος σύνδεσης με το Tor\"."
-#: ../../source/tor.rst:107
-msgid "Using Tor bridges"
-msgstr "Χρήση γεφυρών Tor"
-
-#: ../../source/tor.rst:109
-msgid ""
-"If your access to the internet is censored, you can configure OnionShare "
-"to connect to the Tor network using `Tor bridges "
-"<https://2019.www.torproject.org/docs/bridges.html.en>`_. If OnionShare "
-"connects to Tor without one, you don't need to use a bridge."
-msgstr ""
-"Εάν λογοκρίνεται η πρόσβασή σας στο Διαδίκτυο, μπορείτε να ρυθμίσετε το "
-"OnionShare να συνδέεται με χρήση των `Tor bridges <https://2019.www."
-"torproject.org/docs/bridges.html.en>`_. Εάν το OnionShare συνδέεται "
-"απευθείας στο Tor, δεν χρειάζεται να χρησιμοποιήσετε μια γέφυρα."
-
-#: ../../source/tor.rst:111
-msgid "To configure bridges, click the \"⚙\" icon in OnionShare."
-msgstr ""
-"Για να ρυθμίσετε μια γέφυρα, κάντε κλικ στο εικονίδιο \"⚙\" του "
-"OnionShare."
-
-#: ../../source/tor.rst:113
-msgid ""
-"You can use the built-in obfs4 pluggable transports, the built-in "
-"meek_lite (Azure) pluggable transports, or custom bridges, which you can "
-"obtain from Tor's `BridgeDB <https://bridges.torproject.org/>`_. If you "
-"need to use a bridge, try the built-in obfs4 ones first."
-msgstr ""
-"Μπορείτε να χρησιμοποιήσετε τις προεγκατεστημένες συνδέσεις obfs4, οι "
-"ενσωματωμένες meek_lite (Azure) συνδέσεις ή οι προσαρμοσμένες γέφυρες, "
-"τις οποίες μπορείτε να αποκτήσετε από το Tor `BridgeDB "
-"<https://bridges.torproject.org/>`_. Εάν πρέπει να χρησιμοποιήσετε μια "
-"γέφυρα, δοκιμάστε πρώτα τις obfs4."
-
#~ msgid "Using a system Tor in Mac OS X"
#~ msgstr ""
@@ -510,3 +528,33 @@ msgstr ""
#~ "Files (x86)\\``. Μετονομάστε τον εξαχθέν "
#~ "φάκελο σε ``Data`` και ``Tor`` μέσα "
#~ "στο ``tor-win32``."
+
+#~ msgid "Use the ``tor`` bundled with OnionShare"
+#~ msgstr "Χρήση του κελύφους ``tor`` με το OnionShare"
+
+#~ msgid "Using Tor bridges"
+#~ msgstr "Χρήση γεφυρών Tor"
+
+#~ msgid "To configure bridges, click the \"⚙\" icon in OnionShare."
+#~ msgstr ""
+#~ "Για να ρυθμίσετε μια γέφυρα, κάντε "
+#~ "κλικ στο εικονίδιο \"⚙\" του OnionShare."
+
+#~ msgid ""
+#~ "You can use the built-in obfs4 "
+#~ "pluggable transports, the built-in "
+#~ "meek_lite (Azure) pluggable transports, or "
+#~ "custom bridges, which you can obtain "
+#~ "from Tor's `BridgeDB "
+#~ "<https://bridges.torproject.org/>`_. If you need "
+#~ "to use a bridge, try the built-"
+#~ "in obfs4 ones first."
+#~ msgstr ""
+#~ "Μπορείτε να χρησιμοποιήσετε τις "
+#~ "προεγκατεστημένες συνδέσεις obfs4, οι "
+#~ "ενσωματωμένες meek_lite (Azure) συνδέσεις ή"
+#~ " οι προσαρμοσμένες γέφυρες, τις οποίες "
+#~ "μπορείτε να αποκτήσετε από το Tor "
+#~ "`BridgeDB <https://bridges.torproject.org/>`_. Εάν "
+#~ "πρέπει να χρησιμοποιήσετε μια γέφυρα, "
+#~ "δοκιμάστε πρώτα τις obfs4."
diff --git a/docs/source/locale/es/LC_MESSAGES/features.po b/docs/source/locale/es/LC_MESSAGES/features.po
index 85e0a68b..9497a22e 100644
--- a/docs/source/locale/es/LC_MESSAGES/features.po
+++ b/docs/source/locale/es/LC_MESSAGES/features.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2021-09-09 19:15-0700\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2021-10-09 09:04+0000\n"
"Last-Translator: Zuhualime Akoochimoya <zakooch@protonmail.ch>\n"
-"Language-Team: none\n"
"Language: es\n"
+"Language-Team: none\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/features.rst:4
msgid "How OnionShare Works"
@@ -55,10 +54,11 @@ msgid ""
"or using something less secure like unencrypted email, depending on your "
"`threat model <https://ssd.eff.org/module/your-security-plan>`_."
msgstr ""
-"Usted es responsable de compartir de forma segura la URL y la clave privada "
-"mediante un canal de comunicación de su elección, como mensajes de chat "
-"cifrados, o usando algo menos seguro como un email sin cifrar, dependiendo "
-"de su `modelo de amenaza <https://ssd.eff.org/module/your-security-plan>`_."
+"Usted es responsable de compartir de forma segura la URL y la clave "
+"privada mediante un canal de comunicación de su elección, como mensajes "
+"de chat cifrados, o usando algo menos seguro como un email sin cifrar, "
+"dependiendo de su `modelo de amenaza <https://ssd.eff.org/module/your-"
+"security-plan>`_."
#: ../../source/features.rst:20
msgid ""
@@ -67,10 +67,10 @@ msgid ""
" Tor Browser will then prompt for the private key, which the people can "
"also then copy and paste in."
msgstr ""
-"Las personas a quienes envíe la URL para copiarla y pegarla dentro de su `"
-"Navegador Tor <https://www.torproject.org/>`_ para acceder al servicio "
-"OnionShare. El Navegador Tor les pedirá la clave privada, que en ese momento "
-"también pueden copiar y pegar."
+"Las personas a quienes envíe la URL para copiarla y pegarla dentro de su "
+"`Navegador Tor <https://www.torproject.org/>`_ para acceder al servicio "
+"OnionShare. El Navegador Tor les pedirá la clave privada, que en ese "
+"momento también pueden copiar y pegar."
#: ../../source/features.rst:24
msgid ""
@@ -79,10 +79,11 @@ msgid ""
"until your laptop is unsuspended and on the internet again. OnionShare "
"works best when working with people in real-time."
msgstr ""
-"Si ejecuta OnionShare en su portátil para enviar archivos a alguien, y antes "
-"de que sean enviados la suspende, el servicio no estará disponible hasta que "
-"su portátil deje de estar suspendida, y se conecte de nuevo a Internet. "
-"OnionShare funciona mejor cuando trabaja con personas en tiempo real."
+"Si ejecuta OnionShare en su portátil para enviar archivos a alguien, y "
+"antes de que sean enviados la suspende, el servicio no estará disponible "
+"hasta que su portátil deje de estar suspendida, y se conecte de nuevo a "
+"Internet. OnionShare funciona mejor cuando trabaja con personas en tiempo"
+" real."
#: ../../source/features.rst:26
msgid ""
@@ -92,11 +93,11 @@ msgid ""
"Tor onion services too, it also protects your anonymity. See the "
":doc:`security design </security>` for more info."
msgstr ""
-"Como su propia computadora es el servidor web, *ningún tercero puede acceder "
-"a nada de lo que pasa en OnionShare*, ni siquiera sus desarrolladores. Es "
-"completamente privado. Y como OnionShare también está basado en los "
-"servicios onion de Tor, también protege tu anonimato. Mira el :doc:`diseño "
-"de seguridad </security>` para más información."
+"Como su propia computadora es el servidor web, *ningún tercero puede "
+"acceder a nada de lo que pasa en OnionShare*, ni siquiera sus "
+"desarrolladores. Es completamente privado. Y como OnionShare también está"
+" basado en los servicios onion de Tor, también protege tu anonimato. Mira"
+" el :doc:`diseño de seguridad </security>` para más información."
#: ../../source/features.rst:29
msgid "Share Files"
@@ -109,9 +110,9 @@ msgid ""
"share, and click \"Start sharing\"."
msgstr ""
"Puede usar OnionShare para enviar archivos y carpetas a las personas en "
-"forma segura y anónima. Solo abra una pestaña para compartir, arrastra hacia "
-"ella los archivos y carpetas que deseas compartir, y haz clic en \"Empezar a "
-"compartir\"."
+"forma segura y anónima. Solo abra una pestaña para compartir, arrastra "
+"hacia ella los archivos y carpetas que deseas compartir, y haz clic en "
+"\"Empezar a compartir\"."
#: ../../source/features.rst:35 ../../source/features.rst:112
msgid ""
@@ -131,10 +132,10 @@ msgid ""
"box."
msgstr ""
"Tan pronto como alguien termine de descargar tus archivos, OnionShare "
-"detendrá automáticamente al servidor, removiendo al sitio web de Internet. "
-"Para permitirles descargarlos a múltiples personas, desmarca la casilla "
-"\"Detener compartición después de que los archivos han sido enviados ("
-"desmarca para permitir la descarga de archivos individuales)\"."
+"detendrá automáticamente al servidor, removiendo al sitio web de "
+"Internet. Para permitirles descargarlos a múltiples personas, desmarca la"
+" casilla \"Detener compartición después de que los archivos han sido "
+"enviados (desmarca para permitir la descarga de archivos individuales)\"."
#: ../../source/features.rst:42
msgid ""
@@ -168,9 +169,9 @@ msgid ""
"encrypted messaging app."
msgstr ""
"Ahora que tienes un OnionShare, copia la dirección y la clave privada y "
-"envíaselas a la persona que quieres que reciba los archivos. Si necesitan "
-"permanecer seguros, o si la persona está expuesta a cualquier otro peligro, "
-"usa una aplicación de mensajería cifrada."
+"envíaselas a la persona que quieres que reciba los archivos. Si necesitan"
+" permanecer seguros, o si la persona está expuesta a cualquier otro "
+"peligro, usa una aplicación de mensajería cifrada."
#: ../../source/features.rst:50
msgid ""
@@ -178,10 +179,10 @@ msgid ""
"with the private key, the files can be downloaded directly from your "
"computer by clicking the \"Download Files\" link in the corner."
msgstr ""
-"Esa persona debe cargar luego la dirección en el Navegador Tor. Después de "
-"iniciar sesión con la clave privada, los archivos pueden descargarse "
-"directamente desde tu computadora haciendo clic en el vínculo \"Descargar "
-"Archivos\" en la esquina."
+"Esa persona debe cargar luego la dirección en el Navegador Tor. Después "
+"de iniciar sesión con la clave privada, los archivos pueden descargarse "
+"directamente desde tu computadora haciendo clic en el vínculo \"Descargar"
+" Archivos\" en la esquina."
#: ../../source/features.rst:55
msgid "Receive Files and Messages"
@@ -306,10 +307,11 @@ msgid ""
"OnionShare service. OnionShare does not add any safety mechanisms to "
"protect your system from malicious files."
msgstr ""
-"De la misma manera que con adjuntos maliciosos en correos electrónicos, es "
-"posible que alguien pudiera intentar atacar tu computadora subiendo a tu "
-"servicio OnionShare un archivo malicioso. OnionShare no añade ningún "
-"mecanismo de seguridad para proteger tu sistema contra archivos maliciosos."
+"De la misma manera que con adjuntos maliciosos en correos electrónicos, "
+"es posible que alguien pudiera intentar atacar tu computadora subiendo a "
+"tu servicio OnionShare un archivo malicioso. OnionShare no añade ningún "
+"mecanismo de seguridad para proteger tu sistema contra archivos "
+"maliciosos."
#: ../../source/features.rst:90
msgid ""
@@ -344,9 +346,10 @@ msgid ""
" and connected to the internet, and not on the one you use on a regular "
"basis."
msgstr ""
-"Si quieres alojar tu propio buzón anónimo usando OnionShare, es recomendado "
-"que lo hagas en una computadora dedicada y separada, que siempre esté "
-"encendida y conectada a Internet, y no en la que usas regularmente."
+"Si quieres alojar tu propio buzón anónimo usando OnionShare, es "
+"recomendado que lo hagas en una computadora dedicada y separada, que "
+"siempre esté encendida y conectada a Internet, y no en la que usas "
+"regularmente."
#: ../../source/features.rst:99
msgid ""
@@ -355,9 +358,9 @@ msgid ""
"public service (see :ref:`turn_off_private_key`). It's also a good idea "
"to give it a custom title (see :ref:`custom_titles`)."
msgstr ""
-"Si tu intención es publicitar la dirección OnionShare en tu sitio web o tus "
-"perfiles de redes sociales, guarda la pestaña (ver :ref:`save_tabs`) y "
-"ejecútala como un servicio público (ver :ref:`turn_off_private_key`). "
+"Si tu intención es publicitar la dirección OnionShare en tu sitio web o "
+"tus perfiles de redes sociales, guarda la pestaña (ver :ref:`save_tabs`) "
+"y ejecútala como un servicio público (ver :ref:`turn_off_private_key`). "
"También es una buena idea darle un título personalizado (ver "
":ref:`custom_titles`)."
@@ -414,17 +417,17 @@ msgid ""
"However, this prevents third-party content from loading inside the web "
"page."
msgstr ""
-"Por defecto, OnionShare te ayuda a asegurar tu sitio web estableciendo un "
-"encabezado de `Política de Seguridad de Contenido <https://en.wikipedia.org/"
-"wiki/Content_Security_Policy>`_ estricto. Sin embargo, esto evitará que el "
-"contenido de terceros sea cargado dentro de la página web."
+"Por defecto, OnionShare te ayuda a asegurar tu sitio web estableciendo un"
+" encabezado de `Política de Seguridad de Contenido "
+"<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ estricto. Sin "
+"embargo, esto evitará que el contenido de terceros sea cargado dentro de "
+"la página web."
#: ../../source/features.rst:121
+#, fuzzy
msgid ""
"If you want to load content from third-party websites, like assets or "
-"JavaScript libraries from CDNs, check the \"Don't send Content Security "
-"Policy header (allows your website to use third-party resources)\" box "
-"before starting the service."
+"JavaScript libraries from CDNs, you have two options:"
msgstr ""
"Si quieres cargar contenido desde sitios web de terceros, como recursoss "
"o bibliotecas JavaScript desde CDNs, entonces debes marcar la casilla "
@@ -432,11 +435,22 @@ msgstr ""
"(permite a tu sitio web usar recursos de terceros)\" antes de iniciar el "
"servicio."
+#: ../../source/features.rst:123
+msgid ""
+"You can disable sending a Content Security Policy header by checking the "
+"\"Don't send Content Security Policy header (allows your website to use "
+"third-party resources)\" box before starting the service."
+msgstr ""
+
#: ../../source/features.rst:124
+msgid "You can send a custom Content Security Policy header."
+msgstr ""
+
+#: ../../source/features.rst:127
msgid "Tips for running a website service"
msgstr "Consejos para correr un servicio de sitio web"
-#: ../../source/features.rst:126
+#: ../../source/features.rst:129
msgid ""
"If you want to host a long-term website using OnionShare (meaning not "
"just to quickly show someone something), it's recommended you do it on a "
@@ -445,26 +459,27 @@ msgid ""
" (see :ref:`save_tabs`) so you can resume the website with the same "
"address if you close OnionShare and re-open it later."
msgstr ""
-"Si quieres alojar un sitio web a largo plazo usando OnionShare (que no sea "
-"solo para mostrarle algo a alguien rápidamente), es recomendado que lo hagas "
-"en una computadora separada y dedicada, que siempre esté encendida y "
-"conectada a Internet, y no en la que usas regularmente. Guarda la pestaña ("
-"mira :ref:`save_tabs`) con el fin de que puedas reanudar al sitio web con la "
-"misma dirección, si cierras OnionShare y lo vuelves a iniciar más tarde."
+"Si quieres alojar un sitio web a largo plazo usando OnionShare (que no "
+"sea solo para mostrarle algo a alguien rápidamente), es recomendado que "
+"lo hagas en una computadora separada y dedicada, que siempre esté "
+"encendida y conectada a Internet, y no en la que usas regularmente. "
+"Guarda la pestaña (mira :ref:`save_tabs`) con el fin de que puedas "
+"reanudar al sitio web con la misma dirección, si cierras OnionShare y lo "
+"vuelves a iniciar más tarde."
-#: ../../source/features.rst:129
+#: ../../source/features.rst:132
msgid ""
"If your website is intended for the public, you should run it as a public"
" service (see :ref:`turn_off_private_key`)."
msgstr ""
-"Si planeas que tu sitio web sea visto por el público, deberías ejecutarlo "
-"como servicio público (see :ref:`turn_off_private_key`)."
+"Si planeas que tu sitio web sea visto por el público, deberías ejecutarlo"
+" como servicio público (see :ref:`turn_off_private_key`)."
-#: ../../source/features.rst:132
+#: ../../source/features.rst:135
msgid "Chat Anonymously"
msgstr "Chat Anónimo"
-#: ../../source/features.rst:134
+#: ../../source/features.rst:137
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't"
" log anything. Just open a chat tab and click \"Start chat server\"."
@@ -473,20 +488,20 @@ msgstr ""
"anónimo y seguro, que no registra nada. Solo abre una pestaña de chat y "
"haz clic en \"Iniciar servidor de chat\"."
-#: ../../source/features.rst:138
+#: ../../source/features.rst:141
msgid ""
"After you start the server, copy the OnionShare address and private key "
"and send them to the people you want in the anonymous chat room. If it's "
"important to limit exactly who can join, use an encrypted messaging app "
"to send out the OnionShare address and private key."
msgstr ""
-"Después de iniciar el servidor, copia la dirección de OnionShare y la clave "
-"privada y envíaselas a las personas que deseas en la sala de charla anónima. "
-"Si es importante limitar exactamente quién puede unirse, usa una aplicación "
-"de mensajería cifrada para enviar la dirección de OnionShare y la clave "
-"privada."
+"Después de iniciar el servidor, copia la dirección de OnionShare y la "
+"clave privada y envíaselas a las personas que deseas en la sala de charla"
+" anónima. Si es importante limitar exactamente quién puede unirse, usa "
+"una aplicación de mensajería cifrada para enviar la dirección de "
+"OnionShare y la clave privada."
-#: ../../source/features.rst:143
+#: ../../source/features.rst:146
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -498,7 +513,7 @@ msgstr ""
"por lo que todo aquel que quiera participar debe ajustar su nivel de "
"seguridad a 'Estándar' o 'Más Seguro' en vez de a 'El Más Seguro'."
-#: ../../source/features.rst:146
+#: ../../source/features.rst:149
msgid ""
"When someone joins the chat room they get assigned a random name. They "
"can change their name by typing a new name in the box in the left panel "
@@ -511,7 +526,7 @@ msgstr ""
"en absoluto, aún si otros ya estaban chateando en el cuarto, porque ese "
"historial no es guardado en ningún lado."
-#: ../../source/features.rst:152
+#: ../../source/features.rst:155
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change "
"their name to anything, and there is no way to confirm anyone's identity."
@@ -520,7 +535,7 @@ msgstr ""
"cambiar su nombre a cualquier cosa, y no hay manera de confirmar la "
"identidad de nadie."
-#: ../../source/features.rst:155
+#: ../../source/features.rst:158
msgid ""
"However, if you create an OnionShare chat room and securely send the "
"address only to a small group of trusted friends using encrypted "
@@ -532,11 +547,11 @@ msgstr ""
" mensajes cifrados, entonces puedes estar razonablemente seguro que las "
"personas que se unan a él son tus amigos."
-#: ../../source/features.rst:158
+#: ../../source/features.rst:161
msgid "How is this useful?"
msgstr "¿Cómo es que esto es útil?"
-#: ../../source/features.rst:160
+#: ../../source/features.rst:163
msgid ""
"If you need to already be using an encrypted messaging app, what's the "
"point of an OnionShare chat room to begin with? It leaves less traces."
@@ -545,7 +560,7 @@ msgstr ""
"cifrada, ¿cuál es el punto de un cuarto de chat OnionShare? Deja menos "
"rastros."
-#: ../../source/features.rst:162
+#: ../../source/features.rst:165
msgid ""
"If you for example send a message to a Signal group, a copy of your "
"message ends up on each device (the smartphones, and computers if they "
@@ -560,13 +575,13 @@ msgstr ""
"mensaje termina en cada dispositivo (los teléfonos inteligentes y "
"computadoras, si usan Signal para escritorio) de cada miembro del grupo. "
"Incluso si la opción desaparición de mensajes está activada, es difícil "
-"confirmar si todas las copias de los mensajes han sido eliminadas de todos "
-"los dispositivos, y cualesquiera otros lugares (como bases de datos de "
-"notificaciones) donde puedan haber sido guardados. Las salas de charla de "
-"OnionShare no guardan los mensajes en ningún lado, de forma que este "
-"problema se reduce al mínimo."
+"confirmar si todas las copias de los mensajes han sido eliminadas de "
+"todos los dispositivos, y cualesquiera otros lugares (como bases de datos"
+" de notificaciones) donde puedan haber sido guardados. Las salas de "
+"charla de OnionShare no guardan los mensajes en ningún lado, de forma que"
+" este problema se reduce al mínimo."
-#: ../../source/features.rst:165
+#: ../../source/features.rst:168
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -575,18 +590,18 @@ msgid ""
"journalist to join the chat room, all without compromosing their "
"anonymity."
msgstr ""
-"Las salas de charla de OnionShare también pueden ser útiles para personas "
-"anónimas que quieran charlar en forma segura con alguien sin necesitar crear "
-"alguna cuenta. Por ejemplo, una fuente puede enviar una dirección OnionShare "
-"a un periodista usando una dirección de correo electrónico descartable, y "
-"luego esperar a que el periodista se una a la sala de charla, todo eso sin "
-"comprometer su anonimato."
+"Las salas de charla de OnionShare también pueden ser útiles para personas"
+" anónimas que quieran charlar en forma segura con alguien sin necesitar "
+"crear alguna cuenta. Por ejemplo, una fuente puede enviar una dirección "
+"OnionShare a un periodista usando una dirección de correo electrónico "
+"descartable, y luego esperar a que el periodista se una a la sala de "
+"charla, todo eso sin comprometer su anonimato."
-#: ../../source/features.rst:169
+#: ../../source/features.rst:172
msgid "How does the encryption work?"
msgstr "¿Cómo funciona el cifrado?"
-#: ../../source/features.rst:171
+#: ../../source/features.rst:174
msgid ""
"Because OnionShare relies on Tor onion services, connections between the "
"Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When "
@@ -602,7 +617,7 @@ msgstr ""
"cual lo envía luego a todos los otros miembros del cuarto de chat usando "
"WebSockets, a través de sus conexiones onion E2EE."
-#: ../../source/features.rst:173
+#: ../../source/features.rst:176
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on"
" the Tor onion service's encryption instead."
@@ -942,3 +957,4 @@ msgstr ""
#~ "OnionShare no almacenan ningún mensaje "
#~ "en ningún lugar, por lo que el "
#~ "problema se reduce al mínimo."
+
diff --git a/docs/source/locale/es/LC_MESSAGES/help.po b/docs/source/locale/es/LC_MESSAGES/help.po
index c17a4004..805c1b47 100644
--- a/docs/source/locale/es/LC_MESSAGES/help.po
+++ b/docs/source/locale/es/LC_MESSAGES/help.po
@@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-08-20 13:37-0700\n"
-"PO-Revision-Date: 2021-09-13 10:46+0000\n"
-"Last-Translator: Zuhualime Akoochimoya <zakooch@protonmail.ch>\n"
+"PO-Revision-Date: 2022-01-21 19:12+0000\n"
+"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
+"X-Generator: Weblate 4.11-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/help.rst:2
@@ -66,8 +66,8 @@ msgstr ""
"Si no eres capaz de encontrar una solución, o deseas hacer una pregunta o "
"sugerir una nueva característica, por favor `envía una cuestión "
"<https://github.com/onionshare/onionshare/issues/new>`_. Esto requiere `"
-"crear una cuenta en GitHub <https://help.github.com/articles/"
-"signing-up-for-a-new-github-account/>`_."
+"crear una cuenta en GitHub <https://docs.github.com/es/get-started/"
+"signing-up-for-github/signing-up-for-a-new-github-account/>`_."
#: ../../source/help.rst:20
msgid "Join our Keybase Team"
diff --git a/docs/source/locale/es/LC_MESSAGES/tor.po b/docs/source/locale/es/LC_MESSAGES/tor.po
index 69c03121..a78d72f0 100644
--- a/docs/source/locale/es/LC_MESSAGES/tor.po
+++ b/docs/source/locale/es/LC_MESSAGES/tor.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2021-09-09 19:15-0700\n"
-"PO-Revision-Date: 2021-09-13 10:46+0000\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
+"PO-Revision-Date: 2022-01-20 11:57+0000\n"
"Last-Translator: Zuhualime Akoochimoya <zakooch@protonmail.ch>\n"
"Language-Team: none\n"
"Language: es\n"
@@ -16,8 +16,8 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"X-Generator: Weblate 4.11-dev\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/tor.rst:2
msgid "Connecting to Tor"
@@ -25,15 +25,16 @@ msgstr "Conectar a Tor"
#: ../../source/tor.rst:4
msgid ""
-"Pick a way to connect OnionShare to Tor by clicking the \"⚙\" icon in the"
-" bottom right of the OnionShare window to get to its settings."
+"Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in"
+" the bottom right of the OnionShare window to open the Tor Settings tab."
msgstr ""
"Elige una manera de conectar OnionShare a Tor haciendo clic en el ícono "
-"\"⚙\" abajo a la derecha de la ventana OnionShare, para ir a sus ajustes."
+"cebolla de Tor, abajo a la derecha de la ventana OnionShare, para ir a sus "
+"ajustes."
#: ../../source/tor.rst:9
-msgid "Use the ``tor`` bundled with OnionShare"
-msgstr "Usar el ``tor`` incluido con OnionShare"
+msgid "Use the Tor version built into OnionShare"
+msgstr "Usa la versión de Tor incorporada dentro de OnionShare"
#: ../../source/tor.rst:11
msgid ""
@@ -57,10 +58,63 @@ msgstr ""
"``tor`` de sistema, por su cuenta."
#: ../../source/tor.rst:18
+msgid "Getting Around Censorship"
+msgstr "Pasando por alto a la Censura"
+
+#: ../../source/tor.rst:20
+msgid ""
+"If your access to the internet is censored, you can configure OnionShare "
+"to connect to the Tor network using `Tor bridges <https://tb-"
+"manual.torproject.org/bridges/>`_. If OnionShare connects to Tor without "
+"one, you don't need to use a bridge."
+msgstr ""
+"Si tu acceso a Internet está censurado, puedes configurar OnionShare para "
+"conectarse a la red Tor usando `puentes Tor <https://tb-manual.torproject."
+"org/bridges/>`_. Si OnionShare se conecta exitosamente a Tor, no necesitas "
+"usar un puente."
+
+#: ../../source/tor.rst:22
+msgid ""
+"To use a bridge, open the Tor Settings tab. You must select \"Use the Tor"
+" version built into OnionShare\" and check the \"Use a bridge\" checkbox."
+msgstr ""
+"Para usar un puente, abre la pestaña de Configuraciones de Tor. Debes "
+"seleccionar \"Usar la versión de Tor incorporada dentro de OnionShare\" y "
+"marcar la casilla \"Usar un puente\"."
+
+#: ../../source/tor.rst:25
+msgid ""
+"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges "
+"is recommended over using `meek-azure`."
+msgstr ""
+"Primero intenta usar un puente incorporado. Usar puentes `obfs4` o "
+"`snowflake` es recomendado, en vez de usar `meek-azure`."
+
+#: ../../source/tor.rst:29
+msgid ""
+"If using a built-in bridge doesn't work, you can request a bridge from "
+"torproject.org. You will have to solve a CAPTCHA in order to request a "
+"bridge. (This makes it more difficult for governments or ISPs to block "
+"access to Tor bridges.)"
+msgstr ""
+"Si usar un puente incorporado no funciona, puedes solicitar un puente de "
+"torproject.org. Tendrás que resolver un CAPTCHA a los efectos de solicitar "
+"un puente. (Esto hace que sea más difícil a los gobiernos o ISPs bloquear el "
+"acceso a los puentes Tor.)"
+
+#: ../../source/tor.rst:33
+msgid ""
+"You also have the option of using a bridge that you learned about from a "
+"trusted source."
+msgstr ""
+"También tienes la opción de usar un puente del que te hayas enterado por una "
+"fuente confiable."
+
+#: ../../source/tor.rst:36
msgid "Attempt auto-configuration with Tor Browser"
msgstr "Intentar configuración automática con el Navegador Tor"
-#: ../../source/tor.rst:20
+#: ../../source/tor.rst:38
msgid ""
"If you have `downloaded the Tor Browser <https://www.torproject.org>`_ "
"and don't want two ``tor`` processes running, you can use the ``tor`` "
@@ -72,11 +126,11 @@ msgstr ""
" del Navegador Tor. Ten en cuenta que necesitas mantenerlo abierto en "
"segundo plano mientras estés usando OnionShare para que esto funcione."
-#: ../../source/tor.rst:24
+#: ../../source/tor.rst:42
msgid "Using a system ``tor`` in Windows"
msgstr "Usar un ``tor`` de sistema en Windows"
-#: ../../source/tor.rst:26
+#: ../../source/tor.rst:44
msgid ""
"This is fairly advanced. You'll need to know how edit plaintext files and"
" do stuff as an administrator."
@@ -84,7 +138,7 @@ msgstr ""
"Esto es bastante avanzado. Necesitarás saber cómo editar archivos de "
"texto y hacer cosas como administrador."
-#: ../../source/tor.rst:28
+#: ../../source/tor.rst:46
msgid ""
"Download the Tor Windows Expert Bundle `from "
"<https://www.torproject.org/download/tor/>`_. Extract the compressed file"
@@ -97,7 +151,7 @@ msgstr ""
"Renombra la carpeta extraida con las subcarpetas ``Data`` y ``Tor`` en "
"ella a ``tor-win32``."
-#: ../../source/tor.rst:32
+#: ../../source/tor.rst:50
msgid ""
"Make up a control port password. (Using 7 words in a sequence like "
"``comprised stumble rummage work avenging construct volatile`` is a good "
@@ -111,7 +165,7 @@ msgstr ""
"comando (``cmd``) como administrador, y usa ``tor.exe --hash-password`` "
"para generar un hash de tu contraseña. Por ejemplo::"
-#: ../../source/tor.rst:39
+#: ../../source/tor.rst:57
msgid ""
"The hashed password output is displayed after some warnings (which you "
"can ignore). In the case of the above example, it is "
@@ -121,7 +175,7 @@ msgstr ""
" (que puedes ignorar). En el caso del ejemplo de arriba, es "
"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
-#: ../../source/tor.rst:41
+#: ../../source/tor.rst:59
msgid ""
"Now create a new text file at ``C:\\Program Files (x86)\\tor-"
"win32\\torrc`` and put your hashed password output in it, replacing the "
@@ -131,7 +185,7 @@ msgstr ""
"win32\\torrc`` y escríbelo en él, reemplazando el "
"``HashedControlPassword`` con el que acabas de generar:"
-#: ../../source/tor.rst:46
+#: ../../source/tor.rst:64
msgid ""
"In your administrator command prompt, install ``tor`` as a service using "
"the appropriate ``torrc`` file you just created (as described in "
@@ -144,11 +198,11 @@ msgstr ""
"`<https://2019.www.torproject.org/docs/faq.html.en#NTService>`_). De esta"
" manera::"
-#: ../../source/tor.rst:50
+#: ../../source/tor.rst:68
msgid "You are now running a system ``tor`` process in Windows!"
msgstr "¡Ahora estás ejecutando un proceso ``tor`` de sistema en Windows!"
-#: ../../source/tor.rst:52
+#: ../../source/tor.rst:70
msgid ""
"Open OnionShare and click the \"⚙\" icon in it. Under \"How should "
"OnionShare connect to Tor?\" choose \"Connect using control port\", and "
@@ -166,11 +220,11 @@ msgstr ""
"que elegiste arriba. Haz clic en el botón \"Probar Conexión a Tor\". Si "
"todo va bien, deberías ver \"Conectado al controlador Tor\"."
-#: ../../source/tor.rst:61
+#: ../../source/tor.rst:79
msgid "Using a system ``tor`` in macOS"
msgstr "Usar un ``tor`` de sistema en macOS"
-#: ../../source/tor.rst:63
+#: ../../source/tor.rst:81
msgid ""
"First, install `Homebrew <https://brew.sh/>`_ if you don't already have "
"it, and then install Tor::"
@@ -178,15 +232,15 @@ msgstr ""
"Primero, instala `Homebrew <http://brew.sh/>`_ si es que todavía no lo "
"tienes, y luego instala Tor::"
-#: ../../source/tor.rst:67
+#: ../../source/tor.rst:85
msgid "Now configure Tor to allow connections from OnionShare::"
msgstr "Ahora configura Tor para permitir conexiones desde OnionShare::"
-#: ../../source/tor.rst:74
+#: ../../source/tor.rst:92
msgid "And start the system Tor service::"
msgstr "E inicia el servicio Tor de sistema::"
-#: ../../source/tor.rst:78
+#: ../../source/tor.rst:96
msgid ""
"Open OnionShare and click the \"⚙\" icon in it. Under \"How should "
"OnionShare connect to Tor?\" choose \"Connect using socket file\", and "
@@ -201,15 +255,15 @@ msgstr ""
"autenticación de Tor\", elige \"Sin autenticación, o autenticación por "
"cookies\". Haz clic en el botón \"Probar Conexión a Tor\"."
-#: ../../source/tor.rst:84 ../../source/tor.rst:104
+#: ../../source/tor.rst:102 ../../source/tor.rst:122
msgid "If all goes well, you should see \"Connected to the Tor controller\"."
msgstr "Si todo va bien, deberías ver \"Conectado al controlador Tor\"."
-#: ../../source/tor.rst:87
+#: ../../source/tor.rst:105
msgid "Using a system ``tor`` in Linux"
msgstr "Usando un ``tor`` de sistema en Linux"
-#: ../../source/tor.rst:89
+#: ../../source/tor.rst:107
msgid ""
"First, install the ``tor`` package. If you're using Debian, Ubuntu, or a "
"similar Linux distro, It is recommended to use the Tor Project's "
@@ -221,7 +275,7 @@ msgstr ""
"oficial <https://support.torproject.org/apt/tor-deb-repo/>`_ del Tor "
"Project."
-#: ../../source/tor.rst:91
+#: ../../source/tor.rst:109
msgid ""
"Next, add your user to the group that runs the ``tor`` process (in the "
"case of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to "
@@ -231,7 +285,7 @@ msgstr ""
"caso de Debian y Ubuntu, ``debian-tor``) y configura OnionShare para "
"conectarse al archivo socket de control de tu ``tor`` de sistema."
-#: ../../source/tor.rst:93
+#: ../../source/tor.rst:111
msgid ""
"Add your user to the ``debian-tor`` group by running this command "
"(replace ``username`` with your actual username)::"
@@ -239,7 +293,7 @@ msgstr ""
"Agrega tu usuario al grupo ``debian-tor`` ejecutando este comando "
"(reemplaza ``username`` con tu nombre de usuario real)::"
-#: ../../source/tor.rst:97
+#: ../../source/tor.rst:115
msgid ""
"Reboot your computer. After it boots up again, open OnionShare and click "
"the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" "
@@ -255,38 +309,6 @@ msgstr ""
" \"Sin autenticación, o autenticación por cookies\". Haz clic en el botón"
" \"Probar Conexión a Tor\"."
-#: ../../source/tor.rst:107
-msgid "Using Tor bridges"
-msgstr "Usar puentes Tor"
-
-#: ../../source/tor.rst:109
-msgid ""
-"If your access to the internet is censored, you can configure OnionShare "
-"to connect to the Tor network using `Tor bridges "
-"<https://2019.www.torproject.org/docs/bridges.html.en>`_. If OnionShare "
-"connects to Tor without one, you don't need to use a bridge."
-msgstr ""
-"Si tu acceso a Internet está censurado, puedes configurar OnionShare para "
-"conectarse a la red Tor usando `puentes Tor <https://2019.www.torproject.org/"
-"docs/bridges.html.en>`_. Si OnionShare se conecta exitosamente a Tor, no "
-"necesitas usar un puente."
-
-#: ../../source/tor.rst:111
-msgid "To configure bridges, click the \"⚙\" icon in OnionShare."
-msgstr "Para configurar puentes, haz clic en el ícono \"⚙\" de OnionShare."
-
-#: ../../source/tor.rst:113
-msgid ""
-"You can use the built-in obfs4 pluggable transports, the built-in "
-"meek_lite (Azure) pluggable transports, or custom bridges, which you can "
-"obtain from Tor's `BridgeDB <https://bridges.torproject.org/>`_. If you "
-"need to use a bridge, try the built-in obfs4 ones first."
-msgstr ""
-"Puedes usar los transportes conectables obfs4 o meek_lite (Azure) "
-"incorporados, o puentes personalizados, los cuales puedes obtener de la "
-"`BridgeDB <https://bridges.torproject.org/>`_ de Tor. Si necesitas usar "
-"un puente, intenta primero con los obfs4 incorporados."
-
#~ msgid "Using a system Tor in Mac OS X"
#~ msgstr "Usando un Tor de sistema en macOS"
@@ -445,3 +467,30 @@ msgstr ""
#~ "Renómbrala a ``tor-win32``; dentro de"
#~ " esa carpeta están las subcarpetas "
#~ "``Data`` y ``Tor``."
+
+#~ msgid "Use the ``tor`` bundled with OnionShare"
+#~ msgstr "Usar el ``tor`` incluido con OnionShare"
+
+#~ msgid "Using Tor bridges"
+#~ msgstr "Usar puentes Tor"
+
+#~ msgid "To configure bridges, click the \"⚙\" icon in OnionShare."
+#~ msgstr "Para configurar puentes, haz clic en el ícono \"⚙\" de OnionShare."
+
+#~ msgid ""
+#~ "You can use the built-in obfs4 "
+#~ "pluggable transports, the built-in "
+#~ "meek_lite (Azure) pluggable transports, or "
+#~ "custom bridges, which you can obtain "
+#~ "from Tor's `BridgeDB "
+#~ "<https://bridges.torproject.org/>`_. If you need "
+#~ "to use a bridge, try the built-"
+#~ "in obfs4 ones first."
+#~ msgstr ""
+#~ "Puedes usar los transportes conectables "
+#~ "obfs4 o meek_lite (Azure) incorporados, "
+#~ "o puentes personalizados, los cuales "
+#~ "puedes obtener de la `BridgeDB "
+#~ "<https://bridges.torproject.org/>`_ de Tor. Si "
+#~ "necesitas usar un puente, intenta "
+#~ "primero con los obfs4 incorporados."
diff --git a/docs/source/locale/fr/LC_MESSAGES/advanced.po b/docs/source/locale/fr/LC_MESSAGES/advanced.po
index 91db3662..3b3db2ba 100644
--- a/docs/source/locale/fr/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/fr/LC_MESSAGES/advanced.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-11-15 14:42-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2021-10-23 18:43+0000\n"
"Last-Translator: aezjrareareare <jeromechaland@riseup.net>\n"
-"Language-Team: none\n"
"Language: fr\n"
+"Language-Team: none\n"
+"Plural-Forms: nplurals=2; plural=n > 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/advanced.rst:2
msgid "Advanced Usage"
@@ -35,11 +34,11 @@ msgid ""
"useful if you want to host a website available from the same OnionShare "
"address even if you reboot your computer."
msgstr ""
-"Tout dans OnionShare est temporaire par défaut. Si vous fermez un onglet, "
-"son adresse n'existe plus et ne pourra plus être utilisée. Dans certains "
-"cas, vous voudrez qu'un service OnionShare soit persistent. Cela est utile "
-"si vous souhaitez héberger un site web dont l'adresse OnionShare reste "
-"identique même après un redémarrage de votre ordinateur."
+"Tout dans OnionShare est temporaire par défaut. Si vous fermez un onglet,"
+" son adresse n'existe plus et ne pourra plus être utilisée. Dans certains"
+" cas, vous voudrez qu'un service OnionShare soit persistent. Cela est "
+"utile si vous souhaitez héberger un site web dont l'adresse OnionShare "
+"reste identique même après un redémarrage de votre ordinateur."
#: ../../source/advanced.rst:13
msgid ""
@@ -47,16 +46,16 @@ msgid ""
"open it when I open OnionShare\" box before starting the server. When a "
"tab is saved a purple pin icon appears to the left of its server status."
msgstr ""
-"Pour rendre un onglet persistant, cocher la case \"Enregistrer cet onglet et "
-"l’ouvrir automatiquement quand j’ouvre OnionShare\" avant de démarrer le "
-"serveur. Quand un onglet est sauvegardé un icône d'épingle violet apparaît à "
-"la gauche du statut du serveur."
+"Pour rendre un onglet persistant, cocher la case \"Enregistrer cet onglet"
+" et l’ouvrir automatiquement quand j’ouvre OnionShare\" avant de démarrer"
+" le serveur. Quand un onglet est sauvegardé un icône d'épingle violet "
+"apparaît à la gauche du statut du serveur."
#: ../../source/advanced.rst:18
msgid ""
"When you quit OnionShare and then open it again, your saved tabs will "
"start opened. You'll have to manually start each service, but when you do"
-" they will start with the same OnionShare address and password."
+" they will start with the same OnionShare address and private key."
msgstr ""
#: ../../source/advanced.rst:21
@@ -68,39 +67,59 @@ msgstr ""
"ognon sera stocké dans votre ordinateur avec vos paramètres OnionShare."
#: ../../source/advanced.rst:26
-msgid "Turn Off Passwords"
+msgid "Turn Off Private Key"
msgstr ""
#: ../../source/advanced.rst:28
msgid ""
-"By default, all OnionShare services are protected with the username "
-"``onionshare`` and a randomly-generated password. If someone takes 20 "
-"wrong guesses at the password, your onion service is automatically "
-"stopped to prevent a brute force attack against the OnionShare service."
+"By default, all OnionShare services are protected with a private key, "
+"which Tor calls \"client authentication\"."
msgstr ""
-#: ../../source/advanced.rst:31
+#: ../../source/advanced.rst:30
+msgid ""
+"When browsing to an OnionShare service in Tor Browser, Tor Browser will "
+"prompt for the private key to be entered."
+msgstr ""
+
+#: ../../source/advanced.rst:32
msgid ""
"Sometimes you might want your OnionShare service to be accessible to the "
"public, like if you want to set up an OnionShare receive service so the "
"public can securely and anonymously send you files. In this case, it's "
-"better to disable the password altogether. If you don't do this, someone "
-"can force your server to stop just by making 20 wrong guesses of your "
-"password, even if they know the correct password."
+"better to disable the private key altogether."
msgstr ""
#: ../../source/advanced.rst:35
msgid ""
-"To turn off the password for any tab, just check the \"Don't use a "
-"password\" box before starting the server. Then the server will be public"
-" and won't have a password."
+"To turn off the private key for any tab, check the \"This is a public "
+"OnionShare service (disables private key)\" box before starting the "
+"server. Then the server will be public and won't need a private key to "
+"view in Tor Browser."
+msgstr ""
+
+#: ../../source/advanced.rst:40
+msgid "Custom Titles"
+msgstr ""
+
+#: ../../source/advanced.rst:42
+msgid ""
+"By default, when people load an OnionShare service in Tor Browser they "
+"see the default title for the type of service. For example, the default "
+"title of a chat service is \"OnionShare Chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:44
+msgid ""
+"If you want to choose a custom title, set the \"Custom title\" setting "
+"before starting a server."
msgstr ""
-#: ../../source/advanced.rst:38
+#: ../../source/advanced.rst:47
msgid "Scheduled Times"
msgstr "Programmation horaire"
-#: ../../source/advanced.rst:40
+#: ../../source/advanced.rst:49
msgid ""
"OnionShare supports scheduling exactly when a service should start and "
"stop. Before starting a server, click \"Show advanced settings\" in its "
@@ -108,26 +127,27 @@ msgid ""
"scheduled time\", \"Stop onion service at scheduled time\", or both, and "
"set the respective desired dates and times."
msgstr ""
-"OnionShare permet de planifier quand un service doit démarrer ou s'arrêter. "
-"Avant de démarrer un serveur, cliquer \"Afficher les paramètres avancés\" "
-"dans l'onglet et cocher une ou les deux cases \"Démarrer un service onion à "
-"une heure prédéterminée\" ou \" Arrêter un service onion à une heure "
-"prédéterminée\", et définissez les dates et heures souhaitées."
-
-#: ../../source/advanced.rst:43
+"OnionShare permet de planifier quand un service doit démarrer ou "
+"s'arrêter. Avant de démarrer un serveur, cliquer \"Afficher les "
+"paramètres avancés\" dans l'onglet et cocher une ou les deux cases "
+"\"Démarrer un service onion à une heure prédéterminée\" ou \" Arrêter un "
+"service onion à une heure prédéterminée\", et définissez les dates et "
+"heures souhaitées."
+
+#: ../../source/advanced.rst:52
msgid ""
"If you scheduled a service to start in the future, when you click the "
"\"Start sharing\" button you will see a timer counting down until it "
"starts. If you scheduled it to stop in the future, after it's started you"
" will see a timer counting down to when it will stop automatically."
msgstr ""
-"Si vous paramétrez un service pour qu'il démarre dans le futur, quand vous "
-"cliquer le bouton \"Commencer le partage\", un compte à rebours s'affichera "
-"jusqu'au démarrage du service. Si vous le paramétrez pour qu'il s'arrête "
-"dans le futur, après son démarrage un compte à rebours jusqu'à son arrêt "
-"automatique s'affichera."
+"Si vous paramétrez un service pour qu'il démarre dans le futur, quand "
+"vous cliquer le bouton \"Commencer le partage\", un compte à rebours "
+"s'affichera jusqu'au démarrage du service. Si vous le paramétrez pour "
+"qu'il s'arrête dans le futur, après son démarrage un compte à rebours "
+"jusqu'à son arrêt automatique s'affichera."
-#: ../../source/advanced.rst:46
+#: ../../source/advanced.rst:55
msgid ""
"**Scheduling an OnionShare service to automatically start can be used as "
"a dead man's switch**, where your service will be made public at a given "
@@ -136,30 +156,30 @@ msgid ""
msgstr ""
"**Planifier le démarrage automatique d'un service OnionShare peut être "
"utilisé comme une veille automatique**, le service deviendra public à un "
-"moment choisis dans le futur si quelque chose vous arrive. Si rien ne vous "
-"arrive, vous pouvez annuler le service avant qu'il ne se lance."
+"moment choisis dans le futur si quelque chose vous arrive. Si rien ne "
+"vous arrive, vous pouvez annuler le service avant qu'il ne se lance."
-#: ../../source/advanced.rst:51
+#: ../../source/advanced.rst:60
msgid ""
"**Scheduling an OnionShare service to automatically stop can be useful to"
" limit exposure**, like if you want to share secret documents while "
-"making sure they're not available on the Internet for more than a few "
+"making sure they're not available on the internet for more than a few "
"days."
msgstr ""
-#: ../../source/advanced.rst:56
+#: ../../source/advanced.rst:67
msgid "Command-line Interface"
msgstr "Interface en ligne de commande"
-#: ../../source/advanced.rst:58
+#: ../../source/advanced.rst:69
msgid ""
"In addition to its graphical interface, OnionShare has a command-line "
"interface."
msgstr ""
-"En plus de son interface graphique, OnionShare dispose d'une interface en "
-"ligne de commande."
+"En plus de son interface graphique, OnionShare dispose d'une interface en"
+" ligne de commande."
-#: ../../source/advanced.rst:60
+#: ../../source/advanced.rst:71
msgid ""
"You can install just the command-line version of OnionShare using "
"``pip3``::"
@@ -167,79 +187,47 @@ msgstr ""
"Vous pouvez installez uniquement la version en ligne de commande "
"d'OnionShare en utilisant ``pip3``::"
-#: ../../source/advanced.rst:64
+#: ../../source/advanced.rst:75
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
msgstr ""
-"Notez que vous aurez aussi besoin d'installer le paquet ``tor``. Sur macOS, "
-"installez le avec : ``brew install tor``"
+"Notez que vous aurez aussi besoin d'installer le paquet ``tor``. Sur "
+"macOS, installez le avec : ``brew install tor``"
-#: ../../source/advanced.rst:66
+#: ../../source/advanced.rst:77
msgid "Then run it like this::"
msgstr "Puis lancez le avec ::"
-#: ../../source/advanced.rst:70
+#: ../../source/advanced.rst:81
+msgid ""
+"For information about installing it on different operating systems, see "
+"the `CLI readme file "
+"<https://github.com/onionshare/onionshare/blob/develop/cli/README.md>`_ "
+"in the git repository."
+msgstr ""
+
+#: ../../source/advanced.rst:83
msgid ""
"If you installed OnionShare using the Linux Snapcraft package, you can "
"also just run ``onionshare.cli`` to access the command-line interface "
"version."
msgstr ""
-"Si vous installez OnionShare en utilisant le paquet Linux Snapcraft, vous "
-"pouvez vous contentez de lancer ``onionshare.cli`` pour accéder à "
+"Si vous installez OnionShare en utilisant le paquet Linux Snapcraft, vous"
+" pouvez vous contentez de lancer ``onionshare.cli`` pour accéder à "
"l'interface en ligne de commande."
-#: ../../source/advanced.rst:73
+#: ../../source/advanced.rst:86
msgid "Usage"
msgstr "Utilisation"
-#: ../../source/advanced.rst:75
+#: ../../source/advanced.rst:88
msgid ""
"You can browse the command-line documentation by running ``onionshare "
"--help``::"
msgstr ""
-"Vous pouvez consultez la documentation de l'interface en ligne de commande "
-"en lançant ``onionshare --help``::"
-
-#: ../../source/advanced.rst:132
-msgid "Legacy Addresses"
-msgstr ""
-
-#: ../../source/advanced.rst:134
-msgid ""
-"OnionShare uses v3 Tor onion services by default. These are modern onion "
-"addresses that have 56 characters, for example::"
-msgstr ""
-
-#: ../../source/advanced.rst:139
-msgid ""
-"OnionShare still has support for v2 onion addresses, the old type of "
-"onion addresses that have 16 characters, for example::"
-msgstr ""
-
-#: ../../source/advanced.rst:143
-msgid ""
-"OnionShare calls v2 onion addresses \"legacy addresses\", and they are "
-"not recommended, as v3 onion addresses are more secure."
-msgstr ""
-
-#: ../../source/advanced.rst:145
-msgid ""
-"To use legacy addresses, before starting a server click \"Show advanced "
-"settings\" from its tab and check the \"Use a legacy address (v2 onion "
-"service, not recommended)\" box. In legacy mode you can optionally turn "
-"on Tor client authentication. Once you start a server in legacy mode you "
-"cannot remove legacy mode in that tab. Instead you must start a separate "
-"service in a separate tab."
-msgstr ""
-
-#: ../../source/advanced.rst:150
-msgid ""
-"Tor Project plans to `completely deprecate v2 onion services "
-"<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, "
-"2021, and legacy onion services will be removed from OnionShare before "
-"then."
-msgstr ""
+"Vous pouvez consultez la documentation de l'interface en ligne de "
+"commande en lançant ``onionshare --help``::"
#~ msgid "Make a symbolic link to the OnionShare command line binary line this::"
#~ msgstr ""
@@ -439,3 +427,109 @@ msgstr ""
#~ " services will soon be removed from"
#~ " OnionShare as well."
#~ msgstr ""
+
+#~ msgid ""
+#~ "When you quit OnionShare and then "
+#~ "open it again, your saved tabs "
+#~ "will start opened. You'll have to "
+#~ "manually start each service, but when"
+#~ " you do they will start with "
+#~ "the same OnionShare address and "
+#~ "password."
+#~ msgstr ""
+
+#~ msgid "Turn Off Passwords"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "By default, all OnionShare services are"
+#~ " protected with the username ``onionshare``"
+#~ " and a randomly-generated password. "
+#~ "If someone takes 20 wrong guesses "
+#~ "at the password, your onion service "
+#~ "is automatically stopped to prevent a"
+#~ " brute force attack against the "
+#~ "OnionShare service."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Sometimes you might want your OnionShare"
+#~ " service to be accessible to the "
+#~ "public, like if you want to set"
+#~ " up an OnionShare receive service so"
+#~ " the public can securely and "
+#~ "anonymously send you files. In this "
+#~ "case, it's better to disable the "
+#~ "password altogether. If you don't do "
+#~ "this, someone can force your server "
+#~ "to stop just by making 20 wrong"
+#~ " guesses of your password, even if"
+#~ " they know the correct password."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "To turn off the password for any"
+#~ " tab, just check the \"Don't use "
+#~ "a password\" box before starting the "
+#~ "server. Then the server will be "
+#~ "public and won't have a password."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "**Scheduling an OnionShare service to "
+#~ "automatically stop can be useful to "
+#~ "limit exposure**, like if you want "
+#~ "to share secret documents while making"
+#~ " sure they're not available on the"
+#~ " Internet for more than a few "
+#~ "days."
+#~ msgstr ""
+
+#~ msgid "Legacy Addresses"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "OnionShare uses v3 Tor onion services"
+#~ " by default. These are modern onion"
+#~ " addresses that have 56 characters, "
+#~ "for example::"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "OnionShare still has support for v2 "
+#~ "onion addresses, the old type of "
+#~ "onion addresses that have 16 characters,"
+#~ " for example::"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "OnionShare calls v2 onion addresses "
+#~ "\"legacy addresses\", and they are not"
+#~ " recommended, as v3 onion addresses "
+#~ "are more secure."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "To use legacy addresses, before starting"
+#~ " a server click \"Show advanced "
+#~ "settings\" from its tab and check "
+#~ "the \"Use a legacy address (v2 "
+#~ "onion service, not recommended)\" box. "
+#~ "In legacy mode you can optionally "
+#~ "turn on Tor client authentication. Once"
+#~ " you start a server in legacy "
+#~ "mode you cannot remove legacy mode "
+#~ "in that tab. Instead you must "
+#~ "start a separate service in a "
+#~ "separate tab."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Tor Project plans to `completely "
+#~ "deprecate v2 onion services "
+#~ "<https://blog.torproject.org/v2-deprecation-timeline>`_ on"
+#~ " October 15, 2021, and legacy onion"
+#~ " services will be removed from "
+#~ "OnionShare before then."
+#~ msgstr ""
+
diff --git a/docs/source/locale/fr/LC_MESSAGES/develop.po b/docs/source/locale/fr/LC_MESSAGES/develop.po
index 4411341d..d43c9e72 100644
--- a/docs/source/locale/fr/LC_MESSAGES/develop.po
+++ b/docs/source/locale/fr/LC_MESSAGES/develop.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-11-15 14:42-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2021-10-24 21:38+0000\n"
"Last-Translator: aezjrareareare <jeromechaland@riseup.net>\n"
-"Language-Team: none\n"
"Language: fr\n"
+"Language-Team: none\n"
+"Plural-Forms: nplurals=2; plural=n > 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/develop.rst:2
msgid "Developing OnionShare"
@@ -40,13 +39,13 @@ msgid ""
msgstr ""
"OnionShare dipose d'une équipe Keybase ouverte pour discuter du projet, "
"poser des questions, partager des idées et concents, et concevoir les "
-"évolutions à venir. (C'est aussi une manière facile d'envoyer des messages "
-"personnels chiffrés de bout-en-bout à d'autres personnes de la communauté "
-"OnionShare, comme des adresses OnionShare.) Pour utiliser Keybase, "
-"télécharger l'`application Keybase <https://keybase.io/download>`_, créer un "
-"compte, et `rejoignez cette équipe <https://keybase.io/team/onionshare>`_. "
-"Dans l'application, allez à \"Teams\", cliquer sur \"Join a Team\", et "
-"écrivez \"onionshare\"."
+"évolutions à venir. (C'est aussi une manière facile d'envoyer des "
+"messages personnels chiffrés de bout-en-bout à d'autres personnes de la "
+"communauté OnionShare, comme des adresses OnionShare.) Pour utiliser "
+"Keybase, télécharger l'`application Keybase "
+"<https://keybase.io/download>`_, créer un compte, et `rejoignez cette "
+"équipe <https://keybase.io/team/onionshare>`_. Dans l'application, allez "
+"à \"Teams\", cliquer sur \"Join a Team\", et écrivez \"onionshare\"."
#: ../../source/develop.rst:12
msgid ""
@@ -54,9 +53,9 @@ msgid ""
"<https://lists.riseup.net/www/subscribe/onionshare-dev>`_ for developers "
"and and designers to discuss the project."
msgstr ""
-"OnionShare a aussi une `liste de diffusion <https://lists.riseup.net/www/"
-"subscribe/onionshare-dev>`_ pour permettre aux développeurs et concepteurs "
-"de discuter du projet."
+"OnionShare a aussi une `liste de diffusion "
+"<https://lists.riseup.net/www/subscribe/onionshare-dev>`_ pour permettre "
+"aux développeurs et concepteurs de discuter du projet."
#: ../../source/develop.rst:15
msgid "Contributing Code"
@@ -65,7 +64,7 @@ msgstr "Contribuer au code"
#: ../../source/develop.rst:17
msgid ""
"OnionShare source code is to be found in this Git repository: "
-"https://github.com/micahflee/onionshare"
+"https://github.com/onionshare/onionshare"
msgstr ""
#: ../../source/develop.rst:19
@@ -73,7 +72,7 @@ msgid ""
"If you'd like to contribute code to OnionShare, it helps to join the "
"Keybase team and ask questions about what you're thinking of working on. "
"You should also review all of the `open issues "
-"<https://github.com/micahflee/onionshare/issues>`_ on GitHub to see if "
+"<https://github.com/onionshare/onionshare/issues>`_ on GitHub to see if "
"there are any you'd like to tackle."
msgstr ""
@@ -83,10 +82,10 @@ msgid ""
"repository and one of the project maintainers will review it and possibly"
" ask questions, request changes, reject it, or merge it into the project."
msgstr ""
-"Quand vous êtes prêt à contribuer au code, faites une demande d'extraction "
-"dans le répertoire GitHub et un des mainteneurs du projet l'évaluera et si "
-"possible posera des questions, demanderas des changements, la rejettera, ou "
-"la fusionnera dans le projet."
+"Quand vous êtes prêt à contribuer au code, faites une demande "
+"d'extraction dans le répertoire GitHub et un des mainteneurs du projet "
+"l'évaluera et si possible posera des questions, demanderas des "
+"changements, la rejettera, ou la fusionnera dans le projet."
#: ../../source/develop.rst:27
msgid "Starting Development"
@@ -95,7 +94,7 @@ msgstr "Commencer le développement"
#: ../../source/develop.rst:29
msgid ""
"OnionShare is developed in Python. To get started, clone the Git "
-"repository at https://github.com/micahflee/onionshare/ and then consult "
+"repository at https://github.com/onionshare/onionshare/ and then consult "
"the ``cli/README.md`` file to learn how to set up your development "
"environment for the command-line version, and the ``desktop/README.md`` "
"file to learn how to set up your development environment for the "
@@ -109,8 +108,8 @@ msgid ""
"source tree."
msgstr ""
"Ces fichiers contiennent les instructions techniques nécessaires et les "
-"commandes nécessaires pour installer les dépendances pour votre plateforme, "
-"et pour faire fonctionner OnionShare depuis les sources."
+"commandes nécessaires pour installer les dépendances pour votre "
+"plateforme, et pour faire fonctionner OnionShare depuis les sources."
#: ../../source/develop.rst:35
msgid "Debugging tips"
@@ -128,20 +127,21 @@ msgid ""
"initialized, when events occur (like buttons clicked, settings saved or "
"reloaded), and other debug info. For example::"
msgstr ""
-"Quand vous développez, il est pratique de faire tourner OnionShare depuis un "
-"terminal et d'ajouter le paramètre ``--verbose`` (ou ``-v``) à la commande. "
-"Cela affiche de nombreux messages utiles dans le terminal, comme le moment "
-"où certains objets sont initialisés, quand des évènements se produisent ("
-"comme des boutons qui sont cliqués, des paramètres qui sont sauvegardés ou "
-"rechargés), et d'autres information de débogage. Par exemple ::"
+"Quand vous développez, il est pratique de faire tourner OnionShare depuis"
+" un terminal et d'ajouter le paramètre ``--verbose`` (ou ``-v``) à la "
+"commande. Cela affiche de nombreux messages utiles dans le terminal, "
+"comme le moment où certains objets sont initialisés, quand des évènements"
+" se produisent (comme des boutons qui sont cliqués, des paramètres qui "
+"sont sauvegardés ou rechargés), et d'autres information de débogage. Par "
+"exemple ::"
#: ../../source/develop.rst:117
msgid ""
"You can add your own debug messages by running the ``Common.log`` method "
"from ``onionshare/common.py``. For example::"
msgstr ""
-"Vous pouvez rajouter vos propres messages de débogage en activant la méthode "
-"``Common.log`` depuis ``onionshare/common.py``. Par exemple ::"
+"Vous pouvez rajouter vos propres messages de débogage en activant la "
+"méthode ``Common.log`` depuis ``onionshare/common.py``. Par exemple ::"
#: ../../source/develop.rst:121
msgid ""
@@ -149,8 +149,8 @@ msgid ""
"using OnionShare, or the value of certain variables before and after they"
" are manipulated."
msgstr ""
-"Cela peut être utilise quand on apprend la succession des évènements qui se "
-"produisent lorsque l'on utilise OnionShare, ou la valeur de certaines "
+"Cela peut être utilise quand on apprend la succession des évènements qui "
+"se produisent lorsque l'on utilise OnionShare, ou la valeur de certaines "
"variables avant et après qu'elles aient été manipulées."
#: ../../source/develop.rst:124
@@ -163,22 +163,22 @@ msgid ""
"altogether during development. You can do this with the ``--local-only`` "
"flag. For example::"
msgstr ""
-"Tor est lent, et il est souvent pratique d'éviter de démarrer les services "
-"ognons durant le développement. Vous pouvez faire ça avec le paramètre "
-"``--local-only``. Par exemple ::"
+"Tor est lent, et il est souvent pratique d'éviter de démarrer les "
+"services ognons durant le développement. Vous pouvez faire ça avec le "
+"paramètre ``--local-only``. Par exemple ::"
-#: ../../source/develop.rst:164
+#: ../../source/develop.rst:165
msgid ""
-"In this case, you load the URL ``http://onionshare:train-"
-"system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of"
-" using the Tor Browser."
+"In this case, you load the URL ``http://127.0.0.1:17641`` in a normal "
+"web-browser like Firefox, instead of using the Tor Browser. The private "
+"key is not actually needed in local-only mode, so you can ignore it."
msgstr ""
-#: ../../source/develop.rst:167
+#: ../../source/develop.rst:168
msgid "Contributing Translations"
msgstr "Contribuer aux traductions"
-#: ../../source/develop.rst:169
+#: ../../source/develop.rst:170
msgid ""
"Help make OnionShare easier to use and more familiar and welcoming for "
"people by translating it on `Hosted Weblate "
@@ -189,51 +189,51 @@ msgstr ""
"Aidez à rendre OnionShare plus facile à utiliser, plus familier et plus "
"accueillant pour les gens en le traduisant sur `Hosted Weblate "
"<https://hosted.weblate.org/projects/onionshare/>`_. Garder toujours le "
-"terme \"OnionShare\" en lettre latine, et utiliser \"OnionShare (nom local)\""
-" si nécessaire."
+"terme \"OnionShare\" en lettre latine, et utiliser \"OnionShare (nom "
+"local)\" si nécessaire."
-#: ../../source/develop.rst:171
+#: ../../source/develop.rst:172
msgid "To help translate, make a Hosted Weblate account and start contributing."
msgstr "Pour aider à traduire, créez un compte Hosted Weblate et contribuer."
-#: ../../source/develop.rst:174
+#: ../../source/develop.rst:175
msgid "Suggestions for Original English Strings"
msgstr "Suggestions pour les lignes anglaises d'origine"
-#: ../../source/develop.rst:176
+#: ../../source/develop.rst:177
msgid ""
"Sometimes the original English strings are wrong, or don't match between "
"the application and the documentation."
msgstr ""
-"Parfois les lignes anglaises de base sont fausses, ou ne correspondent pas "
-"entre l'application et la documentation."
+"Parfois les lignes anglaises de base sont fausses, ou ne correspondent "
+"pas entre l'application et la documentation."
-#: ../../source/develop.rst:178
+#: ../../source/develop.rst:179
msgid ""
"File source string improvements by adding @kingu to your Weblate comment,"
" or open a GitHub issue or pull request. The latter ensures all upstream "
"developers see the suggestion, and can potentially modify the string via "
"the usual code review processes."
msgstr ""
-"Classer les améliorations sur les lignes sources en ajoutant @kingu à votre "
-"commentaire Weblate, ou en ouvrant une \"issue\" GitHub ou requête "
+"Classer les améliorations sur les lignes sources en ajoutant @kingu à "
+"votre commentaire Weblate, ou en ouvrant une \"issue\" GitHub ou requête "
"d'extraction. La dernière solution garanti que tout les développeurs en "
-"amont voient la suggestion, et puisse potentiellement modifier la ligne à "
-"travers les processus de vérification du code habituel."
+"amont voient la suggestion, et puisse potentiellement modifier la ligne à"
+" travers les processus de vérification du code habituel."
-#: ../../source/develop.rst:182
+#: ../../source/develop.rst:183
msgid "Status of Translations"
msgstr "État des traductions"
-#: ../../source/develop.rst:183
+#: ../../source/develop.rst:184
msgid ""
"Here is the current translation status. If you want start a translation "
"in a language not yet started, please write to the mailing list: "
"onionshare-dev@lists.riseup.net"
msgstr ""
-"Voilà l'état actuel des traductions. Si vous voulez commencer une traduction "
-"dans une nouvelle langue, merci d'écrire à la liste de diffusion : "
-"onionshare-dev@lists.riseup.net"
+"Voilà l'état actuel des traductions. Si vous voulez commencer une "
+"traduction dans une nouvelle langue, merci d'écrire à la liste de "
+"diffusion : onionshare-dev@lists.riseup.net"
#~ msgid ""
#~ "OnionShare is developed in Python. To"
@@ -450,3 +450,42 @@ msgstr ""
#~ msgid "Do the same for other untranslated lines."
#~ msgstr ""
+
+#~ msgid ""
+#~ "OnionShare source code is to be "
+#~ "found in this Git repository: "
+#~ "https://github.com/micahflee/onionshare"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "If you'd like to contribute code "
+#~ "to OnionShare, it helps to join "
+#~ "the Keybase team and ask questions "
+#~ "about what you're thinking of working"
+#~ " on. You should also review all "
+#~ "of the `open issues "
+#~ "<https://github.com/micahflee/onionshare/issues>`_ on "
+#~ "GitHub to see if there are any "
+#~ "you'd like to tackle."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "OnionShare is developed in Python. To"
+#~ " get started, clone the Git "
+#~ "repository at https://github.com/micahflee/onionshare/ "
+#~ "and then consult the ``cli/README.md`` "
+#~ "file to learn how to set up "
+#~ "your development environment for the "
+#~ "command-line version, and the "
+#~ "``desktop/README.md`` file to learn how "
+#~ "to set up your development environment"
+#~ " for the graphical version."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "In this case, you load the URL "
+#~ "``http://onionshare:train-system@127.0.0.1:17635`` in "
+#~ "a normal web-browser like Firefox, "
+#~ "instead of using the Tor Browser."
+#~ msgstr ""
+
diff --git a/docs/source/locale/fr/LC_MESSAGES/features.po b/docs/source/locale/fr/LC_MESSAGES/features.po
index 68eecf05..31f76aa0 100644
--- a/docs/source/locale/fr/LC_MESSAGES/features.po
+++ b/docs/source/locale/fr/LC_MESSAGES/features.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-11-15 14:42-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2021-10-24 21:38+0000\n"
"Last-Translator: aezjrareareare <jeromechaland@riseup.net>\n"
-"Language-Team: none\n"
"Language: fr\n"
+"Language-Team: none\n"
+"Plural-Forms: nplurals=2; plural=n > 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/features.rst:4
msgid "How OnionShare Works"
@@ -30,38 +29,47 @@ msgid ""
"<https://community.torproject.org/onion-services/>`_."
msgstr ""
"Les serveurs web sont démarrés automatiquement sur votre ordinateur et "
-"rendus accessibles à autrui en tant que `service ognon <https://community."
-"torproject.org/onion-services/>`_ `Tor <https://www.torproject.org/>`_ ."
+"rendus accessibles à autrui en tant que `service ognon "
+"<https://community.torproject.org/onion-services/>`_ `Tor "
+"<https://www.torproject.org/>`_ ."
#: ../../source/features.rst:8
-msgid ""
-"By default, OnionShare web addresses are protected with a random "
-"password. A typical OnionShare address might look something like this::"
+msgid "By default, OnionShare web addresses are protected with a private key."
msgstr ""
-#: ../../source/features.rst:12
-msgid ""
-"You're responsible for securely sharing that URL using a communication "
-"channel of your choice like in an encrypted chat message, or using "
-"something less secure like unencrypted e-mail, depending on your `threat "
-"model <https://ssd.eff.org/module/your-security-plan>`_."
+#: ../../source/features.rst:10
+msgid "OnionShare addresses look something like this::"
msgstr ""
#: ../../source/features.rst:14
+msgid "And private keys might look something like this::"
+msgstr ""
+
+#: ../../source/features.rst:18
+msgid ""
+"You're responsible for securely sharing that URL and private key using a "
+"communication channel of your choice like in an encrypted chat message, "
+"or using something less secure like unencrypted email, depending on your "
+"`threat model <https://ssd.eff.org/module/your-security-plan>`_."
+msgstr ""
+
+#: ../../source/features.rst:20
msgid ""
"The people you send the URL to then copy and paste it into their `Tor "
"Browser <https://www.torproject.org/>`_ to access the OnionShare service."
+" Tor Browser will then prompt for the private key, which the people can "
+"also then copy and paste in."
msgstr ""
-#: ../../source/features.rst:16
+#: ../../source/features.rst:24
msgid ""
"If you run OnionShare on your laptop to send someone files, and then "
"suspend it before the files are sent, the service will not be available "
-"until your laptop is unsuspended and on the Internet again. OnionShare "
+"until your laptop is unsuspended and on the internet again. OnionShare "
"works best when working with people in real-time."
msgstr ""
-#: ../../source/features.rst:18
+#: ../../source/features.rst:26
msgid ""
"Because your own computer is the web server, *no third party can access "
"anything that happens in OnionShare*, not even the developers of "
@@ -69,56 +77,56 @@ msgid ""
"Tor onion services too, it also protects your anonymity. See the "
":doc:`security design </security>` for more info."
msgstr ""
-"Parce que votre propre ordinateur est le serveur web, *aucun tiers ne peut "
-"accéder à ce qui se passe sur OnionShare*, pas même les développeurs "
-"d'OnionShare. C'est totalement confidentiel. Et parce que OnionShare est "
-"basé sur les services oignons Tor, cela protège aussi votre anonyma. Voir le "
-":doc:`security design </security>`pour plus d'information."
+"Parce que votre propre ordinateur est le serveur web, *aucun tiers ne "
+"peut accéder à ce qui se passe sur OnionShare*, pas même les développeurs"
+" d'OnionShare. C'est totalement confidentiel. Et parce que OnionShare est"
+" basé sur les services oignons Tor, cela protège aussi votre anonyma. "
+"Voir le :doc:`security design </security>`pour plus d'information."
-#: ../../source/features.rst:21
+#: ../../source/features.rst:29
msgid "Share Files"
msgstr "Partager des fichiers"
-#: ../../source/features.rst:23
+#: ../../source/features.rst:31
msgid ""
"You can use OnionShare to send files and folders to people securely and "
"anonymously. Open a share tab, drag in the files and folders you wish to "
"share, and click \"Start sharing\"."
msgstr ""
-"Vous pouvez utiliser OnionShare pour envoyer des fichiers et des dosiers à "
-"des personnes de manière sécurisé et anonyme. Ouvrez un onglet partage, "
-"déplacez dedans les fichiers et les dossiers que vous souhaitez partager, et "
-"cliquer \"Commencer à partager\"."
+"Vous pouvez utiliser OnionShare pour envoyer des fichiers et des dosiers "
+"à des personnes de manière sécurisé et anonyme. Ouvrez un onglet partage,"
+" déplacez dedans les fichiers et les dossiers que vous souhaitez "
+"partager, et cliquer \"Commencer à partager\"."
-#: ../../source/features.rst:27 ../../source/features.rst:93
+#: ../../source/features.rst:35 ../../source/features.rst:112
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
msgstr ""
-"Après avoir ajouté les fichiers, vous allez voir certains paramètres. Soyez "
-"certains de choisir les paramètres qui vous intéressent avant de commencer à "
-"partager."
+"Après avoir ajouté les fichiers, vous allez voir certains paramètres. "
+"Soyez certains de choisir les paramètres qui vous intéressent avant de "
+"commencer à partager."
-#: ../../source/features.rst:31
+#: ../../source/features.rst:39
msgid ""
"As soon as someone finishes downloading your files, OnionShare will "
-"automatically stop the server, removing the website from the Internet. To"
+"automatically stop the server, removing the website from the internet. To"
" allow multiple people to download them, uncheck the \"Stop sharing after"
" files have been sent (uncheck to allow downloading individual files)\" "
"box."
msgstr ""
-#: ../../source/features.rst:34
+#: ../../source/features.rst:42
msgid ""
"Also, if you uncheck this box, people will be able to download the "
"individual files you share rather than a single compressed version of all"
" the files."
msgstr ""
"Aussi, si vous décochez cette case, les personnes seront capables de "
-"télécharger les fichiers individuels que vous partagez plutôt qu'une unique "
-"version compressée de tout les fichiers."
+"télécharger les fichiers individuels que vous partagez plutôt qu'une "
+"unique version compressée de tout les fichiers."
-#: ../../source/features.rst:36
+#: ../../source/features.rst:44
msgid ""
"When you're ready to share, click the \"Start sharing\" button. You can "
"always click \"Stop sharing\", or quit OnionShare, immediately taking the"
@@ -126,67 +134,95 @@ msgid ""
"to show the history and progress of people downloading files from you."
msgstr ""
"Quand vous être prêt à partager, cliquer sur le bouton \"Commencer à "
-"partager\". Vous pouvez toujours cliquer \"Arrêter de partager\", ou quitter "
-"OnionShare, mettant immédiatement le site hors-ligne. Vous pouvez aussi "
-"cliquer l'icône \"↑\" dans le coin en haut à droite pour montrer "
-"l'historique et la progression des personnes qui téléchargent vos fichiers."
+"partager\". Vous pouvez toujours cliquer \"Arrêter de partager\", ou "
+"quitter OnionShare, mettant immédiatement le site hors-ligne. Vous pouvez"
+" aussi cliquer l'icône \"↑\" dans le coin en haut à droite pour montrer "
+"l'historique et la progression des personnes qui téléchargent vos "
+"fichiers."
-#: ../../source/features.rst:40
+#: ../../source/features.rst:48
msgid ""
-"Now that you have a OnionShare, copy the address and send it to the "
-"person you want to receive the files. If the files need to stay secure, "
-"or the person is otherwise exposed to danger, use an encrypted messaging "
-"app."
+"Now that you have a OnionShare, copy the address and the private key and "
+"send it to the person you want to receive the files. If the files need to"
+" stay secure, or the person is otherwise exposed to danger, use an "
+"encrypted messaging app."
msgstr ""
-#: ../../source/features.rst:42
+#: ../../source/features.rst:50
msgid ""
"That person then must load the address in Tor Browser. After logging in "
-"with the random password included in the web address, the files can be "
-"downloaded directly from your computer by clicking the \"Download Files\""
-" link in the corner."
+"with the private key, the files can be downloaded directly from your "
+"computer by clicking the \"Download Files\" link in the corner."
msgstr ""
-#: ../../source/features.rst:47
-msgid "Receive Files"
+#: ../../source/features.rst:55
+msgid "Receive Files and Messages"
msgstr ""
-#: ../../source/features.rst:49
+#: ../../source/features.rst:57
msgid ""
-"You can use OnionShare to let people anonymously upload files directly to"
-" your computer, essentially turning it into an anonymous dropbox. Open a "
-"\"Receive tab\", choose where you want to save the files and other "
-"settings, and then click \"Start Receive Mode\"."
+"You can use OnionShare to let people anonymously submit files and "
+"messages directly to your computer, essentially turning it into an "
+"anonymous dropbox. Open a receive tab and choose the settings that you "
+"want."
+msgstr ""
+
+#: ../../source/features.rst:62
+msgid "You can browse for a folder to save messages and files that get submitted."
msgstr ""
-#: ../../source/features.rst:54
+#: ../../source/features.rst:64
msgid ""
-"This starts the OnionShare service. Anyone loading this address in their "
-"Tor Browser will be able to upload files to your computer."
+"You can check \"Disable submitting text\" if want to only allow file "
+"uploads, and you can check \"Disable uploading files\" if you want to "
+"only allow submitting text messages, like for an anonymous contact form."
msgstr ""
-#: ../../source/features.rst:58
+#: ../../source/features.rst:66
+msgid ""
+"You can check \"Use notification webhook\" and then choose a webhook URL "
+"if you want to be notified when someone submits files or messages to your"
+" OnionShare service. If you use this feature, OnionShare will make an "
+"HTTP POST request to this URL whenever someone submits files or messages."
+" For example, if you want to get an encrypted text messaging on the "
+"messaging app `Keybase <https://keybase.io/>`_, you can start a "
+"conversation with `@webhookbot <https://keybase.io/webhookbot>`_, type "
+"``!webhook create onionshare-alerts``, and it will respond with a URL. "
+"Use that as the notification webhook URL. If someone uploads a file to "
+"your receive mode service, @webhookbot will send you a message on Keybase"
+" letting you know as soon as it happens."
+msgstr ""
+
+#: ../../source/features.rst:71
+msgid ""
+"When you are ready, click \"Start Receive Mode\". This starts the "
+"OnionShare service. Anyone loading this address in their Tor Browser will"
+" be able to submit files and messages which get uploaded to your "
+"computer."
+msgstr ""
+
+#: ../../source/features.rst:75
msgid ""
"You can also click the down \"↓\" icon in the top-right corner to show "
"the history and progress of people sending files to you."
msgstr ""
-"Vous pouvez aussi cliquer l'icône \"↓\" dans le coin en haut à droite pour "
-"montrer l'historique et la progression des personnes qui vous envoient des "
-"fichiers."
+"Vous pouvez aussi cliquer l'icône \"↓\" dans le coin en haut à droite "
+"pour montrer l'historique et la progression des personnes qui vous "
+"envoient des fichiers."
-#: ../../source/features.rst:60
-msgid "Here is what it looks like for someone sending you files."
+#: ../../source/features.rst:77
+msgid "Here is what it looks like for someone sending you files and messages."
msgstr ""
-#: ../../source/features.rst:64
+#: ../../source/features.rst:81
msgid ""
-"When someone uploads files to your receive service, by default they get "
-"saved to a folder called ``OnionShare`` in the home folder on your "
-"computer, automatically organized into separate subfolders based on the "
-"time that the files get uploaded."
+"When someone submits files or messages to your receive service, by "
+"default they get saved to a folder called ``OnionShare`` in the home "
+"folder on your computer, automatically organized into separate subfolders"
+" based on the time that the files get uploaded."
msgstr ""
-#: ../../source/features.rst:66
+#: ../../source/features.rst:83
msgid ""
"Setting up an OnionShare receiving service is useful for journalists and "
"others needing to securely accept documents from anonymous sources. When "
@@ -195,25 +231,25 @@ msgid ""
"whistleblower submission system."
msgstr ""
"Mettre en place un service de récupération OnionSare est utile pour les "
-"journalistes et celleux qui ont besoin d'accepter de manière sécurisée des "
-"documents depuis une source anonyme. Utilisé de cette manière, OnionShare "
-"est une sorte de plus légère, plus simple et pas aussi sécurisé version de `"
-"SecureDrop <https://securedrop.org/>`_, le système de soumission pour les "
-"lanceurs d'alerte."
+"journalistes et celleux qui ont besoin d'accepter de manière sécurisée "
+"des documents depuis une source anonyme. Utilisé de cette manière, "
+"OnionShare est une sorte de plus légère, plus simple et pas aussi "
+"sécurisé version de `SecureDrop <https://securedrop.org/>`_, le système "
+"de soumission pour les lanceurs d'alerte."
-#: ../../source/features.rst:69
+#: ../../source/features.rst:86
msgid "Use at your own risk"
msgstr "Utiliser à vos propres risques"
-#: ../../source/features.rst:71
+#: ../../source/features.rst:88
msgid ""
-"Just like with malicious e-mail attachments, it's possible someone could "
+"Just like with malicious email attachments, it's possible someone could "
"try to attack your computer by uploading a malicious file to your "
"OnionShare service. OnionShare does not add any safety mechanisms to "
"protect your system from malicious files."
msgstr ""
-#: ../../source/features.rst:73
+#: ../../source/features.rst:90
msgid ""
"If you receive an Office document or a PDF through OnionShare, you can "
"convert these documents into PDFs that are safe to open using `Dangerzone"
@@ -222,48 +258,53 @@ msgid ""
"<https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ "
"disposableVM."
msgstr ""
-"Si vous recevez un document Office ou un PDF depuis OnionShare, vous pouvez "
-"convertir ces documents en PDFs qui sont sans danger à ouvrir en utilisant `"
-"Dangerzone <https://dangerzone.rocks/>`_. Vous pouvez aussi vous protéger en "
-"ouvrant ces documents non approuvé en les ouvrant dans `Tails <https://tails."
-"boum.org/>`_ ou dans machine virtuel jetable `Qubes <https://qubes-os.org/"
-">`_."
+"Si vous recevez un document Office ou un PDF depuis OnionShare, vous "
+"pouvez convertir ces documents en PDFs qui sont sans danger à ouvrir en "
+"utilisant `Dangerzone <https://dangerzone.rocks/>`_. Vous pouvez aussi "
+"vous protéger en ouvrant ces documents non approuvé en les ouvrant dans "
+"`Tails <https://tails.boum.org/>`_ ou dans machine virtuel jetable `Qubes"
+" <https://qubes-os.org/>`_."
+
+#: ../../source/features.rst:92
+msgid "However, it is always safe to open text messages sent through OnionShare."
+msgstr ""
-#: ../../source/features.rst:76
+#: ../../source/features.rst:95
msgid "Tips for running a receive service"
msgstr "Conseils pour faire tourner un service de réception"
-#: ../../source/features.rst:78
+#: ../../source/features.rst:97
msgid ""
"If you want to host your own anonymous dropbox using OnionShare, it's "
"recommended you do so on a separate, dedicated computer always powered on"
-" and connected to the Internet, and not on the one you use on a regular "
+" and connected to the internet, and not on the one you use on a regular "
"basis."
msgstr ""
-#: ../../source/features.rst:80
+#: ../../source/features.rst:99
msgid ""
"If you intend to put the OnionShare address on your website or social "
"media profiles, save the tab (see :ref:`save_tabs`) and run it as a "
-"public service (see :ref:`turn_off_passwords`)."
+"public service (see :ref:`turn_off_private_key`). It's also a good idea "
+"to give it a custom title (see :ref:`custom_titles`)."
msgstr ""
-#: ../../source/features.rst:83
+#: ../../source/features.rst:102
msgid "Host a Website"
msgstr "Héberger un site web"
-#: ../../source/features.rst:85
+#: ../../source/features.rst:104
msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag "
"the files and folders that make up the static content there, and click "
"\"Start sharing\" when you are ready."
msgstr ""
"Pour héberger un site internet HTML statique avec OnionShare, ouvrez un "
-"onglet site internet, déplacez les fichiers et dossiers qui composeront le "
-"contenu statique dedans, et cliquez sur \"Commencer à partager\" quand vous "
-"êtes prêt."
+"onglet site internet, déplacez les fichiers et dossiers qui composeront "
+"le contenu statique dedans, et cliquez sur \"Commencer à partager\" quand"
+" vous êtes prêt."
-#: ../../source/features.rst:89
+#: ../../source/features.rst:108
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your"
" website. You should also include any other HTML files, CSS files, "
@@ -272,91 +313,101 @@ msgid ""
"websites that execute code or use databases. So you can't for example use"
" WordPress.)"
msgstr ""
-"Si vous ajoutez un fichier ``index.html``, cela sera généré quand quelqu'un "
-"chargera votre site. Vous pouvez aussi inclure n'importe quel autre type de "
-"fichiers HTML, CSS ou JavaScript, ainsi que des images pour faire votre "
-"site. (Notez que OnionShare ne supporte que l'hébergement de sites internets "
-"\"statique\". Il ne peut pas héberger des sites internets qui éxécute du "
-"code ou utilise des bases de données. Ainsi vous ne pouvez pas utilisez "
-"WordPress.)"
+"Si vous ajoutez un fichier ``index.html``, cela sera généré quand "
+"quelqu'un chargera votre site. Vous pouvez aussi inclure n'importe quel "
+"autre type de fichiers HTML, CSS ou JavaScript, ainsi que des images pour"
+" faire votre site. (Notez que OnionShare ne supporte que l'hébergement de"
+" sites internets \"statique\". Il ne peut pas héberger des sites "
+"internets qui éxécute du code ou utilise des bases de données. Ainsi vous"
+" ne pouvez pas utilisez WordPress.)"
-#: ../../source/features.rst:91
+#: ../../source/features.rst:110
msgid ""
"If you don't have an ``index.html`` file, it will show a directory "
"listing instead, and people loading it can look through the files and "
"download them."
msgstr ""
-"Si vous n'avez pas un fichier ``index.html``, cela montrera une liste des "
-"répertoires à la place, et les personnes le chargeant pourront parcourir les "
-"fichiers et les télécharger."
+"Si vous n'avez pas un fichier ``index.html``, cela montrera une liste des"
+" répertoires à la place, et les personnes le chargeant pourront parcourir"
+" les fichiers et les télécharger."
-#: ../../source/features.rst:98
+#: ../../source/features.rst:117
msgid "Content Security Policy"
msgstr "Politique de sécurité du contenu"
-#: ../../source/features.rst:100
+#: ../../source/features.rst:119
msgid ""
"By default OnionShare helps secure your website by setting a strict "
-"`Content Security Police "
+"`Content Security Policy "
"<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ header. "
"However, this prevents third-party content from loading inside the web "
"page."
msgstr ""
-#: ../../source/features.rst:102
+#: ../../source/features.rst:121
+#, fuzzy
msgid ""
"If you want to load content from third-party websites, like assets or "
-"JavaScript libraries from CDNs, check the \"Don't send Content Security "
-"Policy header (allows your website to use third-party resources)\" box "
-"before starting the service."
+"JavaScript libraries from CDNs, you have two options:"
+msgstr ""
+"Si vous voulez charger du contenu depuis des sites internets tiers, comme"
+" des \"assets\" ou des bibliothèque JavaScript depuis des CDNs, vérifiez "
+"la case « Ne pas envoyer d’en-tête Politique de sécurité de contenu "
+"(permet à votre site Web d’utiliser des ressources tierces »."
+
+#: ../../source/features.rst:123
+msgid ""
+"You can disable sending a Content Security Policy header by checking the "
+"\"Don't send Content Security Policy header (allows your website to use "
+"third-party resources)\" box before starting the service."
+msgstr ""
+
+#: ../../source/features.rst:124
+msgid "You can send a custom Content Security Policy header."
msgstr ""
-"Si vous voulez charger du contenu depuis des sites internets tiers, comme "
-"des \"assets\" ou des bibliothèque JavaScript depuis des CDNs, vérifiez la "
-"case « Ne pas envoyer d’en-tête Politique de sécurité de contenu (permet à "
-"votre site Web d’utiliser des ressources tierces »."
-#: ../../source/features.rst:105
+#: ../../source/features.rst:127
msgid "Tips for running a website service"
msgstr "Conseils pour faire fonctionner un site web de service"
-#: ../../source/features.rst:107
+#: ../../source/features.rst:129
msgid ""
"If you want to host a long-term website using OnionShare (meaning not "
-"something to quickly show someone something), it's recommended you do it "
-"on a separate, dedicated computer always powered on and connected to the "
-"Internet, and not on the one you use on a regular basis. Save the tab "
-"(see :ref:`save_tabs`) so you can resume the website with the same "
+"just to quickly show someone something), it's recommended you do it on a "
+"separate, dedicated computer that is always powered on and connected to "
+"the internet, and not on the one you use on a regular basis. Save the tab"
+" (see :ref:`save_tabs`) so you can resume the website with the same "
"address if you close OnionShare and re-open it later."
msgstr ""
-#: ../../source/features.rst:110
+#: ../../source/features.rst:132
msgid ""
"If your website is intended for the public, you should run it as a public"
-" service (see :ref:`turn_off_passwords`)."
+" service (see :ref:`turn_off_private_key`)."
msgstr ""
-#: ../../source/features.rst:113
+#: ../../source/features.rst:135
msgid "Chat Anonymously"
msgstr "Discuter anonymement"
-#: ../../source/features.rst:115
+#: ../../source/features.rst:137
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't"
" log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
-"Vous pouvez utilisez OnionShare pour mettre en place une salle de discussion "
-"privée et sécurisée qui n'enregistre rien. Ouvez juste un onglet discussion "
-"et cliquer \"Lancer le serveur de discussion\"."
+"Vous pouvez utilisez OnionShare pour mettre en place une salle de "
+"discussion privée et sécurisée qui n'enregistre rien. Ouvez juste un "
+"onglet discussion et cliquer \"Lancer le serveur de discussion\"."
-#: ../../source/features.rst:119
+#: ../../source/features.rst:141
msgid ""
-"After you start the server, copy the OnionShare address and send it to "
-"the people you want in the anonymous chat room. If it's important to "
-"limit exactly who can join, use an encrypted messaging app to send out "
-"the OnionShare address."
+"After you start the server, copy the OnionShare address and private key "
+"and send them to the people you want in the anonymous chat room. If it's "
+"important to limit exactly who can join, use an encrypted messaging app "
+"to send out the OnionShare address and private key."
msgstr ""
-#: ../../source/features.rst:124
+#: ../../source/features.rst:146
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -365,11 +416,11 @@ msgid ""
msgstr ""
"Les gens peuvent rejoindre la salle de discussion en chargeant l'adresse "
"OnionShare dans le navigateur Tor. La salle de discussion nécessite "
-"JavaScript, celleux qui souhaitent rejoindre la salle de discussion doivent "
-"mettre le niveau de sécurité de leur navigateur Tor à « Normal » ou « Plus "
-"sûr », à la place de « Le plus sûr »."
+"JavaScript, celleux qui souhaitent rejoindre la salle de discussion "
+"doivent mettre le niveau de sécurité de leur navigateur Tor à « Normal » "
+"ou « Plus sûr », à la place de « Le plus sûr »."
-#: ../../source/features.rst:127
+#: ../../source/features.rst:149
msgid ""
"When someone joins the chat room they get assigned a random name. They "
"can change their name by typing a new name in the box in the left panel "
@@ -377,12 +428,12 @@ msgid ""
"get displayed at all, even if others were already chatting in the room."
msgstr ""
"Quand une personne rejoint la salle de discussion, elle reçoit un nom "
-"aléatoire. Elle peut changer son nom en tapant un nouveau nom dans l'espace "
-"à gauche et en pressant ↵. Comme l'historique de la discussion n'est "
-"enregistré nulle part, il n'est pas du tout affiché, même si d'autres "
-"personnes étaient déjà en train de discuter dans la salle."
+"aléatoire. Elle peut changer son nom en tapant un nouveau nom dans "
+"l'espace à gauche et en pressant ↵. Comme l'historique de la discussion "
+"n'est enregistré nulle part, il n'est pas du tout affiché, même si "
+"d'autres personnes étaient déjà en train de discuter dans la salle."
-#: ../../source/features.rst:133
+#: ../../source/features.rst:155
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change "
"their name to anything, and there is no way to confirm anyone's identity."
@@ -391,7 +442,7 @@ msgstr ""
"N'importe qui peut changer son nom en n'importe quoi, et il n'y a aucun "
"moyen de vérifier l'identité de quiconque."
-#: ../../source/features.rst:136
+#: ../../source/features.rst:158
msgid ""
"However, if you create an OnionShare chat room and securely send the "
"address only to a small group of trusted friends using encrypted "
@@ -400,27 +451,27 @@ msgid ""
msgstr ""
"Malgré cela, si vous créer une salle de discussion OnionShare et envoyer "
"l'adresse de manière sécurisée à un petit groupe d'amies de confiance en "
-"utilisant des messages chiffrées, vous pouvez être raisonnablement confiant "
-"dans le fait que les personnes rejoignant la salle de discussion sont vos "
-"amies."
+"utilisant des messages chiffrées, vous pouvez être raisonnablement "
+"confiant dans le fait que les personnes rejoignant la salle de discussion"
+" sont vos amies."
-#: ../../source/features.rst:139
+#: ../../source/features.rst:161
msgid "How is this useful?"
msgstr "En quoi ceci est-il utile ?"
-#: ../../source/features.rst:141
+#: ../../source/features.rst:163
msgid ""
"If you need to already be using an encrypted messaging app, what's the "
"point of an OnionShare chat room to begin with? It leaves less traces."
msgstr ""
-"Si vous avez besoin de déjà utiliser une messagerie chiffrée, quel est le "
-"point du salle de discussion OnionShare ? Cela laisse moins de traces."
+"Si vous avez besoin de déjà utiliser une messagerie chiffrée, quel est le"
+" point du salle de discussion OnionShare ? Cela laisse moins de traces."
-#: ../../source/features.rst:143
+#: ../../source/features.rst:165
msgid ""
"If you for example send a message to a Signal group, a copy of your "
-"message ends up on each device (the devices, and computers if they set up"
-" Signal Desktop) of each member of the group. Even if disappearing "
+"message ends up on each device (the smartphones, and computers if they "
+"set up Signal Desktop) of each member of the group. Even if disappearing "
"messages is turned on, it's hard to confirm all copies of the messages "
"are actually deleted from all devices, and from any other places (like "
"notifications databases) they may have been saved to. OnionShare chat "
@@ -428,21 +479,21 @@ msgid ""
"minimum."
msgstr ""
-#: ../../source/features.rst:146
+#: ../../source/features.rst:168
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
"accounts. For example, a source can send an OnionShare address to a "
-"journalist using a disposable e-mail address, and then wait for the "
+"journalist using a disposable email address, and then wait for the "
"journalist to join the chat room, all without compromosing their "
"anonymity."
msgstr ""
-#: ../../source/features.rst:150
+#: ../../source/features.rst:172
msgid "How does the encryption work?"
msgstr "Comment marche le chiffrement ?"
-#: ../../source/features.rst:152
+#: ../../source/features.rst:174
msgid ""
"Because OnionShare relies on Tor onion services, connections between the "
"Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When "
@@ -452,13 +503,14 @@ msgid ""
" connections."
msgstr ""
"Parce que OnionShare repose sur les services ognon de Tor, la connexion "
-"entre le navigateur Tor et OnionShare sont toutes chiffrées de bout-à-bout "
-"(E2EE). Quand quelqu'un poste un message dans une discussion OnionShare, le "
-"message est envoyé au serveur à travers la connexion ognon E2EE, qui l’envoi "
-"ensuite à tout les autres membres de la salle de discussion en utilisant "
-"WebSockets, à travers leurs connexions oignon E2EE."
-
-#: ../../source/features.rst:154
+"entre le navigateur Tor et OnionShare sont toutes chiffrées de "
+"bout-à-bout (E2EE). Quand quelqu'un poste un message dans une discussion "
+"OnionShare, le message est envoyé au serveur à travers la connexion ognon"
+" E2EE, qui l’envoi ensuite à tout les autres membres de la salle de "
+"discussion en utilisant WebSockets, à travers leurs connexions oignon "
+"E2EE."
+
+#: ../../source/features.rst:176
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on"
" the Tor onion service's encryption instead."
@@ -853,3 +905,206 @@ msgstr ""
#~ "WebSockets, through their E2EE onion "
#~ "connections."
#~ msgstr ""
+
+#~ msgid ""
+#~ "By default, OnionShare web addresses are"
+#~ " protected with a random password. A"
+#~ " typical OnionShare address might look "
+#~ "something like this::"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "You're responsible for securely sharing "
+#~ "that URL using a communication channel"
+#~ " of your choice like in an "
+#~ "encrypted chat message, or using "
+#~ "something less secure like unencrypted "
+#~ "e-mail, depending on your `threat model"
+#~ " <https://ssd.eff.org/module/your-security-plan>`_."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "The people you send the URL to "
+#~ "then copy and paste it into their"
+#~ " `Tor Browser <https://www.torproject.org/>`_ to"
+#~ " access the OnionShare service."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "If you run OnionShare on your "
+#~ "laptop to send someone files, and "
+#~ "then suspend it before the files "
+#~ "are sent, the service will not be"
+#~ " available until your laptop is "
+#~ "unsuspended and on the Internet again."
+#~ " OnionShare works best when working "
+#~ "with people in real-time."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "As soon as someone finishes downloading"
+#~ " your files, OnionShare will automatically"
+#~ " stop the server, removing the "
+#~ "website from the Internet. To allow "
+#~ "multiple people to download them, "
+#~ "uncheck the \"Stop sharing after files"
+#~ " have been sent (uncheck to allow "
+#~ "downloading individual files)\" box."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Now that you have a OnionShare, "
+#~ "copy the address and send it to"
+#~ " the person you want to receive "
+#~ "the files. If the files need to"
+#~ " stay secure, or the person is "
+#~ "otherwise exposed to danger, use an "
+#~ "encrypted messaging app."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "That person then must load the "
+#~ "address in Tor Browser. After logging"
+#~ " in with the random password included"
+#~ " in the web address, the files "
+#~ "can be downloaded directly from your "
+#~ "computer by clicking the \"Download "
+#~ "Files\" link in the corner."
+#~ msgstr ""
+
+#~ msgid "Receive Files"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "You can use OnionShare to let "
+#~ "people anonymously upload files directly "
+#~ "to your computer, essentially turning it"
+#~ " into an anonymous dropbox. Open a"
+#~ " \"Receive tab\", choose where you "
+#~ "want to save the files and other"
+#~ " settings, and then click \"Start "
+#~ "Receive Mode\"."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "This starts the OnionShare service. "
+#~ "Anyone loading this address in their "
+#~ "Tor Browser will be able to upload"
+#~ " files to your computer."
+#~ msgstr ""
+
+#~ msgid "Here is what it looks like for someone sending you files."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "When someone uploads files to your "
+#~ "receive service, by default they get "
+#~ "saved to a folder called ``OnionShare``"
+#~ " in the home folder on your "
+#~ "computer, automatically organized into "
+#~ "separate subfolders based on the time"
+#~ " that the files get uploaded."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Just like with malicious e-mail "
+#~ "attachments, it's possible someone could "
+#~ "try to attack your computer by "
+#~ "uploading a malicious file to your "
+#~ "OnionShare service. OnionShare does not "
+#~ "add any safety mechanisms to protect "
+#~ "your system from malicious files."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "If you want to host your own "
+#~ "anonymous dropbox using OnionShare, it's "
+#~ "recommended you do so on a "
+#~ "separate, dedicated computer always powered"
+#~ " on and connected to the Internet,"
+#~ " and not on the one you use "
+#~ "on a regular basis."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "If you intend to put the "
+#~ "OnionShare address on your website or"
+#~ " social media profiles, save the tab"
+#~ " (see :ref:`save_tabs`) and run it as"
+#~ " a public service (see "
+#~ ":ref:`turn_off_passwords`)."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "By default OnionShare helps secure your"
+#~ " website by setting a strict `Content"
+#~ " Security Police "
+#~ "<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ "
+#~ "header. However, this prevents third-"
+#~ "party content from loading inside the"
+#~ " web page."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "If you want to host a long-"
+#~ "term website using OnionShare (meaning "
+#~ "not something to quickly show someone"
+#~ " something), it's recommended you do "
+#~ "it on a separate, dedicated computer "
+#~ "always powered on and connected to "
+#~ "the Internet, and not on the one"
+#~ " you use on a regular basis. "
+#~ "Save the tab (see :ref:`save_tabs`) so"
+#~ " you can resume the website with "
+#~ "the same address if you close "
+#~ "OnionShare and re-open it later."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "If your website is intended for "
+#~ "the public, you should run it as"
+#~ " a public service (see "
+#~ ":ref:`turn_off_passwords`)."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "After you start the server, copy "
+#~ "the OnionShare address and send it "
+#~ "to the people you want in the "
+#~ "anonymous chat room. If it's important"
+#~ " to limit exactly who can join, "
+#~ "use an encrypted messaging app to "
+#~ "send out the OnionShare address."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "If you for example send a message"
+#~ " to a Signal group, a copy of"
+#~ " your message ends up on each "
+#~ "device (the devices, and computers if"
+#~ " they set up Signal Desktop) of "
+#~ "each member of the group. Even if"
+#~ " disappearing messages is turned on, "
+#~ "it's hard to confirm all copies of"
+#~ " the messages are actually deleted "
+#~ "from all devices, and from any "
+#~ "other places (like notifications databases)"
+#~ " they may have been saved to. "
+#~ "OnionShare chat rooms don't store any"
+#~ " messages anywhere, so the problem is"
+#~ " reduced to a minimum."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "OnionShare chat rooms can also be "
+#~ "useful for people wanting to chat "
+#~ "anonymously and securely with someone "
+#~ "without needing to create any accounts."
+#~ " For example, a source can send "
+#~ "an OnionShare address to a journalist"
+#~ " using a disposable e-mail address, "
+#~ "and then wait for the journalist "
+#~ "to join the chat room, all without"
+#~ " compromosing their anonymity."
+#~ msgstr ""
+
diff --git a/docs/source/locale/fr/LC_MESSAGES/help.po b/docs/source/locale/fr/LC_MESSAGES/help.po
index bd870673..92e016c4 100644
--- a/docs/source/locale/fr/LC_MESSAGES/help.po
+++ b/docs/source/locale/fr/LC_MESSAGES/help.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-11-15 14:42-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2021-10-21 05:01+0000\n"
"Last-Translator: aezjrareareare <jeromechaland@riseup.net>\n"
-"Language-Team: none\n"
"Language: fr\n"
+"Language-Team: none\n"
+"Plural-Forms: nplurals=2; plural=n > 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/help.rst:2
msgid "Getting Help"
@@ -33,8 +32,8 @@ msgid ""
"the sections first to see if anything answers your questions."
msgstr ""
"Vous trouverez ici des informations sur comment utiliser OnionShare. "
-"Regardez les autres parties d'abord afin de voir si vos questions n'ont pas "
-"déjà été répondues."
+"Regardez les autres parties d'abord afin de voir si vos questions n'ont "
+"pas déjà été répondues."
#: ../../source/help.rst:10
msgid "Check the GitHub Issues"
@@ -43,9 +42,9 @@ msgstr "Vérifiez les signalement de problèmes sur GitHub (GitHub Issues)"
#: ../../source/help.rst:12
msgid ""
"If it isn't on the website, please check the `GitHub issues "
-"<https://github.com/micahflee/onionshare/issues>`_. It's possible someone"
-" else has encountered the same problem and either raised it with the "
-"developers, or maybe even posted a solution."
+"<https://github.com/onionshare/onionshare/issues>`_. It's possible "
+"someone else has encountered the same problem and either raised it with "
+"the developers, or maybe even posted a solution."
msgstr ""
#: ../../source/help.rst:15
@@ -56,7 +55,7 @@ msgstr "Signaler un problème"
msgid ""
"If you are unable to find a solution, or wish to ask a question or "
"suggest a new feature, please `submit an issue "
-"<https://github.com/micahflee/onionshare/issues/new>`_. This requires "
+"<https://github.com/onionshare/onionshare/issues/new>`_. This requires "
"`creating a GitHub account <https://help.github.com/articles/signing-up-"
"for-a-new-github-account/>`_."
msgstr ""
@@ -70,8 +69,8 @@ msgid ""
"See :ref:`collaborating` on how to join the Keybase team used to discuss "
"the project."
msgstr ""
-"Voir :ref:`collaborer` sur comment rejoindre l'équipe Keybase utilisée pour "
-"discuter du projet."
+"Voir :ref:`collaborer` sur comment rejoindre l'équipe Keybase utilisée "
+"pour discuter du projet."
#~ msgid "If you need help with OnionShare, please follow the instructions below."
#~ msgstr ""
@@ -124,3 +123,25 @@ msgstr ""
#~ "that we use to discuss the "
#~ "project."
#~ msgstr ""
+
+#~ msgid ""
+#~ "If it isn't on the website, please"
+#~ " check the `GitHub issues "
+#~ "<https://github.com/micahflee/onionshare/issues>`_. It's "
+#~ "possible someone else has encountered "
+#~ "the same problem and either raised "
+#~ "it with the developers, or maybe "
+#~ "even posted a solution."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "If you are unable to find a "
+#~ "solution, or wish to ask a "
+#~ "question or suggest a new feature, "
+#~ "please `submit an issue "
+#~ "<https://github.com/micahflee/onionshare/issues/new>`_. This "
+#~ "requires `creating a GitHub account "
+#~ "<https://help.github.com/articles/signing-up-for-a-new-"
+#~ "github-account/>`_."
+#~ msgstr ""
+
diff --git a/docs/source/locale/fr/LC_MESSAGES/install.po b/docs/source/locale/fr/LC_MESSAGES/install.po
index 324c441b..8f4d532d 100644
--- a/docs/source/locale/fr/LC_MESSAGES/install.po
+++ b/docs/source/locale/fr/LC_MESSAGES/install.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-12-13 15:48-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2021-10-24 21:38+0000\n"
"Last-Translator: aezjrareareare <jeromechaland@riseup.net>\n"
-"Language-Team: none\n"
"Language: fr\n"
+"Language-Team: none\n"
+"Plural-Forms: nplurals=2; plural=n > 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/install.rst:2
msgid "Installation"
@@ -32,11 +31,11 @@ msgid ""
"You can download OnionShare for Windows and macOS from the `OnionShare "
"website <https://onionshare.org/>`_."
msgstr ""
-"Vous pouvez télécharger OnionShare pour Windows et macOS depuis le `site web "
-"OnionShare <https://onionshare.org/>`_."
+"Vous pouvez télécharger OnionShare pour Windows et macOS depuis le `site "
+"web OnionShare <https://onionshare.org/>`_."
#: ../../source/install.rst:12
-msgid "Install in Linux"
+msgid "Linux"
msgstr ""
#: ../../source/install.rst:14
@@ -47,46 +46,60 @@ msgid ""
"that you'll always use the newest version and run OnionShare inside of a "
"sandbox."
msgstr ""
-"Il y a plusieurs façons d'installer OnionShare sur Linux, mais la méthode "
-"recommendée est le paquet `Flatpak <https://flatpak.org/>`_ ou `Snap "
-"<https://snapcraft.io/>`_. Flatpak et Snap vous assure de toujours avoir la "
-"dernière version d'OnionShare et executé dans un bac à sable (sandbox)."
+"Il y a plusieurs façons d'installer OnionShare sur Linux, mais la méthode"
+" recommendée est le paquet `Flatpak <https://flatpak.org/>`_ ou `Snap "
+"<https://snapcraft.io/>`_. Flatpak et Snap vous assure de toujours avoir "
+"la dernière version d'OnionShare et executé dans un bac à sable "
+"(sandbox)."
#: ../../source/install.rst:17
msgid ""
"Snap support is built-in to Ubuntu and Fedora comes with Flatpak support,"
" but which you use is up to you. Both work in all Linux distributions."
msgstr ""
-"Snap est supporté de manière native dans Ubuntu et Fedora intègre Flatpak, "
-"mais c'est à vous de décider lequel vous souhaitez utiliser. Les deux "
-"marchent sur toutes les distributions Linux."
+"Snap est supporté de manière native dans Ubuntu et Fedora intègre "
+"Flatpak, mais c'est à vous de décider lequel vous souhaitez utiliser. Les"
+" deux marchent sur toutes les distributions Linux."
#: ../../source/install.rst:19
msgid ""
"**Install OnionShare using Flatpak**: "
"https://flathub.org/apps/details/org.onionshare.OnionShare"
msgstr ""
-"**Installer OnionShare en utilisant Flatpak** : https://flathub.org/apps/"
-"details/org.onionshare.OnionShare"
+"**Installer OnionShare en utilisant Flatpak** : "
+"https://flathub.org/apps/details/org.onionshare.OnionShare"
#: ../../source/install.rst:21
msgid "**Install OnionShare using Snap**: https://snapcraft.io/onionshare"
msgstr ""
-"**Installer OnionShare en utilisant Snap** : https://snapcraft.io/onionshare"
+"**Installer OnionShare en utilisant Snap** : "
+"https://snapcraft.io/onionshare"
#: ../../source/install.rst:23
msgid ""
"You can also download and install PGP-signed ``.flatpak`` or ``.snap`` "
"packages from https://onionshare.org/dist/ if you prefer."
msgstr ""
-"Vous pouvez aussi télécharger et installer des paquets ``.flatpak`` ou ``."
-"snap`` signé avec PGP depuis https://onionshare.org/dist/ si vous préférer."
+"Vous pouvez aussi télécharger et installer des paquets ``.flatpak`` ou "
+"``.snap`` signé avec PGP depuis https://onionshare.org/dist/ si vous "
+"préférer."
#: ../../source/install.rst:28
+msgid "Command-line only"
+msgstr ""
+
+#: ../../source/install.rst:30
+msgid ""
+"You can install just the command line version of OnionShare on any "
+"operating system using the Python package manager ``pip``. See :ref:`cli`"
+" for more information."
+msgstr ""
+
+#: ../../source/install.rst:35
msgid "Verifying PGP signatures"
msgstr "Vérifier les signatures PGP"
-#: ../../source/install.rst:30
+#: ../../source/install.rst:37
msgid ""
"You can verify that the package you download is legitimate and hasn't "
"been tampered with by verifying its PGP signature. For Windows and macOS,"
@@ -95,16 +108,17 @@ msgid ""
"rely on those alone if you'd like."
msgstr ""
"Vous pouvez vérifier que les paquets que vous téléchargés n'ont pas été "
-"falsifiés en vérifiant la signature PGP. Pour Windows et macOS, cette étape "
-"est optionnelle et procure une défense en profondeur : les exécutables "
-"OnionShare incluent des signatures spécifiques aux systèmes, et vous pouvez "
-"vous reposer uniquement sur celles-là si vous le souhaitez."
+"falsifiés en vérifiant la signature PGP. Pour Windows et macOS, cette "
+"étape est optionnelle et procure une défense en profondeur : les "
+"exécutables OnionShare incluent des signatures spécifiques aux systèmes, "
+"et vous pouvez vous reposer uniquement sur celles-là si vous le "
+"souhaitez."
-#: ../../source/install.rst:34
+#: ../../source/install.rst:41
msgid "Signing key"
msgstr "Clé de signature"
-#: ../../source/install.rst:36
+#: ../../source/install.rst:43
msgid ""
"Packages are signed by Micah Lee, the core developer, using his PGP "
"public key with fingerprint ``927F419D7EC82C2F149C1BD1403C2657CD994F73``."
@@ -112,27 +126,28 @@ msgid ""
"<https://keys.openpgp.org/vks/v1/by-"
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
msgstr ""
-"Les paquets sont signés par Micah Lee, développeur principal, utilisant sa "
-"clé PGP publique ayant comme empreinte "
-"``927F419D7EC82C2F149C1BD1403C2657CD994F73``. Vous pouvez téléchargez sa clé "
-"`depuis le serveur de clé openpgp.org. <https://keys.openpgp.org/vks/v1/"
-"by-fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
+"Les paquets sont signés par Micah Lee, développeur principal, utilisant "
+"sa clé PGP publique ayant comme empreinte "
+"``927F419D7EC82C2F149C1BD1403C2657CD994F73``. Vous pouvez téléchargez sa "
+"clé `depuis le serveur de clé openpgp.org. "
+"<https://keys.openpgp.org/vks/v1/by-"
+"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
-#: ../../source/install.rst:38
+#: ../../source/install.rst:45
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you "
"probably want `GPGTools <https://gpgtools.org/>`_, and for Windows you "
"probably want `Gpg4win <https://www.gpg4win.org/>`_."
msgstr ""
-"Vous devez avoir installé GnuPG pour vérifier les signatures. Pour macOS, "
-"vous voudrez probablement utilisé `GPGTools <https://gpgtools.org/>`_, et "
-"pour Windows `Gpg4win <https://www.gpg4win.org/>`_."
+"Vous devez avoir installé GnuPG pour vérifier les signatures. Pour macOS,"
+" vous voudrez probablement utilisé `GPGTools <https://gpgtools.org/>`_, "
+"et pour Windows `Gpg4win <https://www.gpg4win.org/>`_."
-#: ../../source/install.rst:41
+#: ../../source/install.rst:48
msgid "Signatures"
msgstr "Signatures"
-#: ../../source/install.rst:43
+#: ../../source/install.rst:50
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, "
"macOS, Flatpak, Snap, and source packages, at "
@@ -140,54 +155,54 @@ msgid ""
"OnionShare. You can also find them on the `GitHub Releases page "
"<https://github.com/micahflee/onionshare/releases>`_."
msgstr ""
-"Vous pouvez trouver les signatures (en tant fichiers \".asc\"), ainsi que "
-"les fichiers Windows, macOS, Flatpak, Snap et sources, à https://onionshare."
-"org/dist/ in les dossiers correspondants à chaque version d'OnionShare. Vous "
-"pouvez aussi les trouvez sur `la page des versions GitHub <https://github."
-"com/micahflee/onionshare/releases>`_."
+"Vous pouvez trouver les signatures (en tant fichiers \".asc\"), ainsi que"
+" les fichiers Windows, macOS, Flatpak, Snap et sources, à "
+"https://onionshare.org/dist/ in les dossiers correspondants à chaque "
+"version d'OnionShare. Vous pouvez aussi les trouvez sur `la page des "
+"versions GitHub <https://github.com/micahflee/onionshare/releases>`_."
-#: ../../source/install.rst:47
+#: ../../source/install.rst:54
msgid "Verifying"
msgstr "Vérifier"
-#: ../../source/install.rst:49
+#: ../../source/install.rst:56
msgid ""
"Once you have imported Micah's public key into your GnuPG keychain, "
"downloaded the binary and and ``.asc`` signature, you can verify the "
"binary for macOS in a terminal like this::"
msgstr ""
-"Une fois que vous avez importé la clé publique de Micah dans votre porte-clé "
-"GnuPG, télécharger l'exécutable et la signature \".asc\", vous pouvez "
-"vérifier l’exécutable pour macOS dans un terminal comme ceci ::"
+"Une fois que vous avez importé la clé publique de Micah dans votre porte-"
+"clé GnuPG, télécharger l'exécutable et la signature \".asc\", vous pouvez"
+" vérifier l’exécutable pour macOS dans un terminal comme ceci ::"
-#: ../../source/install.rst:53
+#: ../../source/install.rst:60
msgid "Or for Windows, in a command-prompt like this::"
msgstr "Ou pour Windows, dans l'invite de commande comme ceci : :"
-#: ../../source/install.rst:57
+#: ../../source/install.rst:64
msgid "The expected output looks like this::"
msgstr "La sortie attendue ressemble à ::"
-#: ../../source/install.rst:69
+#: ../../source/install.rst:76
msgid ""
-"If you don't see 'Good signature from', there might be a problem with the"
-" integrity of the file (malicious or otherwise), and you should not "
-"install the package. (The \"WARNING:\" shown above, is not a problem with"
-" the package, it only means you haven't already defined any level of "
-"'trust' of Micah's PGP key.)"
+"If you don't see ``Good signature from``, there might be a problem with "
+"the integrity of the file (malicious or otherwise), and you should not "
+"install the package. (The ``WARNING:`` shown above, is not a problem with"
+" the package, it only means you haven't defined a level of \"trust\" of "
+"Micah's PGP key.)"
msgstr ""
-#: ../../source/install.rst:71
+#: ../../source/install.rst:78
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS <https://www.qubes-os.org/security/verifying-signatures/>`_ and"
" the `Tor Project <https://support.torproject.org/tbb/how-to-verify-"
"signature/>`_ may be useful."
msgstr ""
-"Si vous voulez en apprendre plus sur la vérification des signatures PGP, le "
-"guide de `Qubes OS <https://www.qubes-os.org/security/verifying-signatures/>`"
-"_ et du `Projet Tor <https://support.torproject.org/tbb/"
-"how-to-verify-signature/>`_ peuvent être utiles."
+"Si vous voulez en apprendre plus sur la vérification des signatures PGP, "
+"le guide de `Qubes OS <https://www.qubes-os.org/security/verifying-"
+"signatures/>`_ et du `Projet Tor <https://support.torproject.org/tbb/how-"
+"to-verify-signature/>`_ peuvent être utiles."
#~ msgid "Install on Windows or macOS"
#~ msgstr ""
@@ -374,3 +389,20 @@ msgstr ""
#~ "Project <https://support.torproject.org/tbb/how-to-"
#~ "verify-signature/>`_ may be helpful."
#~ msgstr ""
+
+#~ msgid "Install in Linux"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "If you don't see 'Good signature "
+#~ "from', there might be a problem "
+#~ "with the integrity of the file "
+#~ "(malicious or otherwise), and you should"
+#~ " not install the package. (The "
+#~ "\"WARNING:\" shown above, is not a "
+#~ "problem with the package, it only "
+#~ "means you haven't already defined any"
+#~ " level of 'trust' of Micah's PGP "
+#~ "key.)"
+#~ msgstr ""
+
diff --git a/docs/source/locale/fr/LC_MESSAGES/security.po b/docs/source/locale/fr/LC_MESSAGES/security.po
index b522be90..c878e925 100644
--- a/docs/source/locale/fr/LC_MESSAGES/security.po
+++ b/docs/source/locale/fr/LC_MESSAGES/security.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-12-13 15:48-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2021-03-10 10:02+0000\n"
"Last-Translator: AO Localisation Lab <ao@localizationlab.org>\n"
-"Language-Team: none\n"
"Language: fr\n"
+"Language-Team: none\n"
+"Plural-Forms: nplurals=2; plural=n > 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.5.2-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/security.rst:2
msgid "Security Design"
@@ -48,13 +47,13 @@ msgid ""
"server for that too. This avoids the traditional model of having to trust"
" the computers of others."
msgstr ""
-"**Les tiers n’ont pas accès à ce qui se passe dans OnionShare.** Utiliser "
-"OnionShare implique d’héberger des services directement sur votre "
-"ordinateur. Quand vous partagez des fichiers avec OnionShare, ils ne sont "
-"téléversés vers aucun serveur. Si vous créez un salon de conversation "
-"OnionShare, votre ordinateur sert aussi de serveur à cet effet. Cela évite "
-"le modèle traditionnel qui implique de faire confiance aux ordinateurs "
-"d’autrui."
+"**Les tiers n’ont pas accès à ce qui se passe dans OnionShare.** Utiliser"
+" OnionShare implique d’héberger des services directement sur votre "
+"ordinateur. Quand vous partagez des fichiers avec OnionShare, ils ne sont"
+" téléversés vers aucun serveur. Si vous créez un salon de conversation "
+"OnionShare, votre ordinateur sert aussi de serveur à cet effet. Cela "
+"évite le modèle traditionnel qui implique de faire confiance aux "
+"ordinateurs d’autrui."
#: ../../source/security.rst:13
msgid ""
@@ -67,12 +66,13 @@ msgid ""
"the onion service's private key."
msgstr ""
"**Les systèmes d’écoute des réseaux ne peuvent pas surveiller ce qui se "
-"passe en transit dans OnionShare.** La connexion entre le service onion de "
-"Tor et le Navigateur Tor est chiffrée de bout en bout. Cela signifie que les "
-"assaillants du réseau ne peuvent rien surveiller, sauf le trafic chiffré de "
-"Tor. Même si le système d’écoute est un nœud malveillant utilisé pour "
-"connecter le Navigateur Tor avec le service onion d’OnionShare, le trafic "
-"est chiffré grâce à la clé privée du service onion."
+"passe en transit dans OnionShare.** La connexion entre le service onion "
+"de Tor et le Navigateur Tor est chiffrée de bout en bout. Cela signifie "
+"que les assaillants du réseau ne peuvent rien surveiller, sauf le trafic "
+"chiffré de Tor. Même si le système d’écoute est un nœud malveillant "
+"utilisé pour connecter le Navigateur Tor avec le service onion "
+"d’OnionShare, le trafic est chiffré grâce à la clé privée du service "
+"onion."
#: ../../source/security.rst:15
msgid ""
@@ -82,80 +82,69 @@ msgid ""
"Browser users, the Tor Browser users and eavesdroppers can't learn the "
"identity of the OnionShare user."
msgstr ""
-"**L’anonymat des utilisateurs d’OnionShare est protégé par Tor.** OnionShare "
-"et le Navigateur Tor protègent l’anonymat des utilisateurs. Tant que l’"
-"utilisateur d’OnionShare communique anonymement l’adresse OnionShare aux "
-"utilisateurs du Navigateur Tor, ni les utilisateurs du Navigateur Tor ni "
-"aucun système d’écoute ne peuvent connaître l’identité de l’utilisateur "
-"d’OnionShare."
+"**L’anonymat des utilisateurs d’OnionShare est protégé par Tor.** "
+"OnionShare et le Navigateur Tor protègent l’anonymat des utilisateurs. "
+"Tant que l’utilisateur d’OnionShare communique anonymement l’adresse "
+"OnionShare aux utilisateurs du Navigateur Tor, ni les utilisateurs du "
+"Navigateur Tor ni aucun système d’écoute ne peuvent connaître l’identité "
+"de l’utilisateur d’OnionShare."
#: ../../source/security.rst:17
msgid ""
"**If an attacker learns about the onion service, it still can't access "
"anything.** Prior attacks against the Tor network to enumerate onion "
-"services allowed the attacker to discover private .onion addresses. If an"
-" attack discovers a private OnionShare address, a password will be "
-"prevent them from accessing it (unless the OnionShare user chooses to "
-"turn it off and make it public). The password is generated by choosing "
-"two random words from a list of 6800 words, making 6800², or about 46 "
-"million possible passwords. Only 20 wrong guesses can be made before "
-"OnionShare stops the server, preventing brute force attacks against the "
-"password."
+"services allowed the attacker to discover private ``.onion`` addresses. "
+"If an attack discovers a private OnionShare address, they will also need "
+"to guess the private key used for client authentication in order to "
+"access it (unless the OnionShare user chooses make their service public "
+"by turning off the private key -- see :ref:`turn_off_private_key`)."
msgstr ""
-"**Si un assaillant apprend l’existence du service onion, il ne peut quand "
-"même accéder à rien.** Des attaques précédentes contre le réseau Tor pour "
-"énumérer les services onion ont permis à l’assaillant de découvrir des "
-"adresses .onion privées. Si un assaillant découvre une adresse OnionShare "
-"privée, un mot de passe l’empêchera d’y accéder (à moins que l’utilisateur d’"
-"OnionShare ne choisisse de le désactiver et de le rendre public). Le mot de "
-"passe est généré en choisissant deux mots au hasard dans une liste de 6 800 "
-"mots, ce qui équivaut à 6800², soit environ 46 millions de mots de passe "
-"possibles. Il ne peut y avoir que vingt essais erronés avant qu’OnionShare n’"
-"arrête le serveur, ce qui prévient les attaques par force brute contre le "
-"mot de passe."
#: ../../source/security.rst:20
msgid "What OnionShare doesn't protect against"
msgstr "Contre quoi OnionShare ne protège pas"
#: ../../source/security.rst:22
+#, fuzzy
msgid ""
-"**Communicating the OnionShare address might not be secure.** "
-"Communicating the OnionShare address to people is the responsibility of "
-"the OnionShare user. If sent insecurely (such as through an email message"
-" monitored by an attacker), an eavesdropper can tell that OnionShare is "
-"being used. If the eavesdropper loads the address in Tor Browser while "
-"the service is still up, they can access it. To avoid this, the address "
-"must be communicateed securely, via encrypted text message (probably with"
-" disappearing messages enabled), encrypted email, or in person. This "
-"isn't necessary when using OnionShare for something that isn't secret."
+"**Communicating the OnionShare address and private key might not be "
+"secure.** Communicating the OnionShare address to people is the "
+"responsibility of the OnionShare user. If sent insecurely (such as "
+"through an email message monitored by an attacker), an eavesdropper can "
+"tell that OnionShare is being used. If the eavesdropper loads the address"
+" in Tor Browser while the service is still up, they can access it. To "
+"avoid this, the address must be communicated securely, via encrypted text"
+" message (probably with disappearing messages enabled), encrypted email, "
+"or in person. This isn't necessary when using OnionShare for something "
+"that isn't secret."
msgstr ""
"**Communiquer l’adresse OnionShare pourrait ne pas être sûr** La "
-"communication de l’adresse OnionShare à autrui est la responsabilité de l’"
-"utilisateur d’OnionShare. Si elle est envoyée de façon non sécurisée (par "
-"exemple par un courriel surveillé par un assaillant), une oreille indiscrète "
-"peut en déduire qu’OnionShare est utilisé. Si la personne qui surveille "
-"charge l’adresse dans le Navigateur Tor alors que le service est encore en "
-"fonction, elle peut y accéder. Pour éviter cette situation, l’adresse doit "
-"être communiquée de façon sécurisée, par un texto chiffré (probablement avec "
-"les messages éphémères activés), un courriel chiffré ou en personne. Cela n’"
-"est pas nécessaire si OnionShare est utilisé pour quelque chose qui n’est "
-"pas secret."
+"communication de l’adresse OnionShare à autrui est la responsabilité de "
+"l’utilisateur d’OnionShare. Si elle est envoyée de façon non sécurisée "
+"(par exemple par un courriel surveillé par un assaillant), une oreille "
+"indiscrète peut en déduire qu’OnionShare est utilisé. Si la personne qui "
+"surveille charge l’adresse dans le Navigateur Tor alors que le service "
+"est encore en fonction, elle peut y accéder. Pour éviter cette situation,"
+" l’adresse doit être communiquée de façon sécurisée, par un texto chiffré"
+" (probablement avec les messages éphémères activés), un courriel chiffré "
+"ou en personne. Cela n’est pas nécessaire si OnionShare est utilisé pour "
+"quelque chose qui n’est pas secret."
#: ../../source/security.rst:24
+#, fuzzy
msgid ""
-"**Communicating the OnionShare address might not be anonymous.** Extra "
-"precautions must be taken to ensure the OnionShare address is "
-"communicated anonymously. A new email or chat account, only accessed over"
-" Tor, can be used to share the address. This isn't necessary unless "
-"anonymity is a goal."
+"**Communicating the OnionShare address and private key might not be "
+"anonymous.** Extra precautions must be taken to ensure the OnionShare "
+"address is communicated anonymously. A new email or chat account, only "
+"accessed over Tor, can be used to share the address. This isn't necessary"
+" unless anonymity is a goal."
msgstr ""
"**Communiquer l’adresse OnionShare pourrait ne pas être anonyme.** Des "
-"précautions supplémentaires doivent être prises pour faire en sorte que l’"
-"adresse OnionShare est communiquée anonymement. Un nouveau compte de "
-"courriel ou de dialogue en ligne auquel vous n’accédez que par Tor peut être "
-"utilisé pour partager l’adresse. Ce n’est pas nécessaire, à moins que l’"
-"anonymat ne soit l’objectif."
+"précautions supplémentaires doivent être prises pour faire en sorte que "
+"l’adresse OnionShare est communiquée anonymement. Un nouveau compte de "
+"courriel ou de dialogue en ligne auquel vous n’accédez que par Tor peut "
+"être utilisé pour partager l’adresse. Ce n’est pas nécessaire, à moins "
+"que l’anonymat ne soit l’objectif."
#~ msgid "Security design"
#~ msgstr ""
@@ -295,3 +284,47 @@ msgstr ""
#~ " share the address. This isn't "
#~ "necessary unless anonymity is a goal."
#~ msgstr ""
+
+#~ msgid ""
+#~ "**If an attacker learns about the "
+#~ "onion service, it still can't access "
+#~ "anything.** Prior attacks against the "
+#~ "Tor network to enumerate onion services"
+#~ " allowed the attacker to discover "
+#~ "private .onion addresses. If an attack"
+#~ " discovers a private OnionShare address,"
+#~ " a password will be prevent them "
+#~ "from accessing it (unless the OnionShare"
+#~ " user chooses to turn it off "
+#~ "and make it public). The password "
+#~ "is generated by choosing two random "
+#~ "words from a list of 6800 words,"
+#~ " making 6800², or about 46 million"
+#~ " possible passwords. Only 20 wrong "
+#~ "guesses can be made before OnionShare"
+#~ " stops the server, preventing brute "
+#~ "force attacks against the password."
+#~ msgstr ""
+#~ "**Si un assaillant apprend l’existence "
+#~ "du service onion, il ne peut quand"
+#~ " même accéder à rien.** Des attaques"
+#~ " précédentes contre le réseau Tor "
+#~ "pour énumérer les services onion ont "
+#~ "permis à l’assaillant de découvrir des"
+#~ " adresses .onion privées. Si un "
+#~ "assaillant découvre une adresse OnionShare "
+#~ "privée, un mot de passe l’empêchera "
+#~ "d’y accéder (à moins que l’utilisateur"
+#~ " d’OnionShare ne choisisse de le "
+#~ "désactiver et de le rendre public). "
+#~ "Le mot de passe est généré en "
+#~ "choisissant deux mots au hasard dans "
+#~ "une liste de 6 800 mots, ce "
+#~ "qui équivaut à 6800², soit environ "
+#~ "46 millions de mots de passe "
+#~ "possibles. Il ne peut y avoir que"
+#~ " vingt essais erronés avant qu’OnionShare"
+#~ " n’arrête le serveur, ce qui prévient"
+#~ " les attaques par force brute contre"
+#~ " le mot de passe."
+
diff --git a/docs/source/locale/fr/LC_MESSAGES/tor.po b/docs/source/locale/fr/LC_MESSAGES/tor.po
index 1218b25d..ec50194e 100644
--- a/docs/source/locale/fr/LC_MESSAGES/tor.po
+++ b/docs/source/locale/fr/LC_MESSAGES/tor.po
@@ -7,34 +7,34 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-12-13 15:48-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2021-10-22 20:45+0000\n"
"Last-Translator: aezjrareareare <jeromechaland@riseup.net>\n"
-"Language-Team: none\n"
"Language: fr\n"
+"Language-Team: none\n"
+"Plural-Forms: nplurals=2; plural=n > 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/tor.rst:2
msgid "Connecting to Tor"
msgstr "Connexion à Tor"
#: ../../source/tor.rst:4
+#, fuzzy
msgid ""
-"Pick a way to connect OnionShare to Tor by clicking the \"⚙\" icon in the"
-" bottom right of the OnionShare window to get to its settings."
+"Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in"
+" the bottom right of the OnionShare window to open the Tor Settings tab."
msgstr ""
"Choisissez une façon de connecter OnionShare à Tor en cliquant sur "
"l’icône ⚙ en bas à droite de la fenêtre d’OnionShare pour accéder à ses "
"paramètres."
#: ../../source/tor.rst:9
-msgid "Use the ``tor`` bundled with OnionShare"
-msgstr "Utiliser le ``tor`` intégré à OnionShare"
+msgid "Use the Tor version built into OnionShare"
+msgstr ""
#: ../../source/tor.rst:11
msgid ""
@@ -59,10 +59,48 @@ msgstr ""
"du système."
#: ../../source/tor.rst:18
+msgid "Getting Around Censorship"
+msgstr ""
+
+#: ../../source/tor.rst:20
+msgid ""
+"If your access to the internet is censored, you can configure OnionShare "
+"to connect to the Tor network using `Tor bridges <https://tb-"
+"manual.torproject.org/bridges/>`_. If OnionShare connects to Tor without "
+"one, you don't need to use a bridge."
+msgstr ""
+
+#: ../../source/tor.rst:22
+msgid ""
+"To use a bridge, open the Tor Settings tab. You must select \"Use the Tor"
+" version built into OnionShare\" and check the \"Use a bridge\" checkbox."
+msgstr ""
+
+#: ../../source/tor.rst:25
+msgid ""
+"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges "
+"is recommended over using `meek-azure`."
+msgstr ""
+
+#: ../../source/tor.rst:29
+msgid ""
+"If using a built-in bridge doesn't work, you can request a bridge from "
+"torproject.org. You will have to solve a CAPTCHA in order to request a "
+"bridge. (This makes it more difficult for governments or ISPs to block "
+"access to Tor bridges.)"
+msgstr ""
+
+#: ../../source/tor.rst:33
+msgid ""
+"You also have the option of using a bridge that you learned about from a "
+"trusted source."
+msgstr ""
+
+#: ../../source/tor.rst:36
msgid "Attempt auto-configuration with Tor Browser"
msgstr "Tenter la configuration automatique avec le Navigateur Tor"
-#: ../../source/tor.rst:20
+#: ../../source/tor.rst:38
msgid ""
"If you have `downloaded the Tor Browser <https://www.torproject.org>`_ "
"and don't want two ``tor`` processes running, you can use the ``tor`` "
@@ -76,11 +114,11 @@ msgstr ""
"ouvert en arrière-plan pendant que vous utilisez OnionShare pour que "
"cette approche fonctionne."
-#: ../../source/tor.rst:24
+#: ../../source/tor.rst:42
msgid "Using a system ``tor`` in Windows"
msgstr "Utiliser un ``tor`` système dans Windows"
-#: ../../source/tor.rst:26
+#: ../../source/tor.rst:44
msgid ""
"This is fairly advanced. You'll need to know how edit plaintext files and"
" do stuff as an administrator."
@@ -89,19 +127,19 @@ msgstr ""
" des fichiers en texte brut et effectuer des opérations en tant "
"qu’administrateur."
-#: ../../source/tor.rst:28
+#: ../../source/tor.rst:46
msgid ""
"Download the Tor Windows Expert Bundle `from "
"<https://www.torproject.org/download/tor/>`_. Extract the compressed file"
" and copy the extracted folder to ``C:\\Program Files (x86)\\`` Rename "
"the extracted folder with ``Data`` and ``Tor`` in it to ``tor-win32``."
msgstr ""
-"`Sur <https://www.torproject.org/fr/download/tor/>`_, téléchargez « Windows "
-"Expert Bundle » de Tor `. Extrayez le fichier compressé et copiez le dossier "
-"résultant sur ``C:\\Program Files (x86)\\`` Renommez en ``tor-win32`` le "
-"dossier résultant qui comprend ``Data`` et ``Tor``."
+"`Sur <https://www.torproject.org/fr/download/tor/>`_, téléchargez « "
+"Windows Expert Bundle » de Tor `. Extrayez le fichier compressé et copiez"
+" le dossier résultant sur ``C:\\Program Files (x86)\\`` Renommez en "
+"``tor-win32`` le dossier résultant qui comprend ``Data`` et ``Tor``."
-#: ../../source/tor.rst:32
+#: ../../source/tor.rst:50
msgid ""
"Make up a control port password. (Using 7 words in a sequence like "
"``comprised stumble rummage work avenging construct volatile`` is a good "
@@ -116,7 +154,7 @@ msgstr ""
"utilisé ``tor.exe --hash-password`` pour générer une empreinte de votre "
"mot de passe. Par exemple :"
-#: ../../source/tor.rst:39
+#: ../../source/tor.rst:57
msgid ""
"The hashed password output is displayed after some warnings (which you "
"can ignore). In the case of the above example, it is "
@@ -127,7 +165,7 @@ msgstr ""
"dessus, l’empreinte est "
"``16:62C47B4E61BE73F26077E5CE7B180A2DFCB2F687D54248927AE82C0BCD``."
-#: ../../source/tor.rst:41
+#: ../../source/tor.rst:59
msgid ""
"Now create a new text file at ``C:\\Program Files (x86)\\tor-"
"win32\\torrc`` and put your hashed password output in it, replacing the "
@@ -138,23 +176,24 @@ msgstr ""
"remplaçant la valeur ``HashedControlPassword`` par l’empreinte que vous "
"venez de générer :"
-#: ../../source/tor.rst:46
+#: ../../source/tor.rst:64
msgid ""
"In your administrator command prompt, install ``tor`` as a service using "
"the appropriate ``torrc`` file you just created (as described in "
"`<https://2019.www.torproject.org/docs/faq.html.en#NTService>`_). Like "
"this::"
msgstr ""
-"Dans votre invite de commande d’administrateur, installez ``tor`` en tant "
-"que service en utilisant le fichier ``torrc`` approprié que vous venez de "
-"créer (comme indiqué dans `<https://2019.www.torproject.org/docs/faq.html."
-"en#NTService>`_). Comme ceci :"
+"Dans votre invite de commande d’administrateur, installez ``tor`` en tant"
+" que service en utilisant le fichier ``torrc`` approprié que vous venez "
+"de créer (comme indiqué dans "
+"`<https://2019.www.torproject.org/docs/faq.html.en#NTService>`_). Comme "
+"ceci :"
-#: ../../source/tor.rst:50
+#: ../../source/tor.rst:68
msgid "You are now running a system ``tor`` process in Windows!"
msgstr "Vous exécutez désormais un processus ``tor``système sur Windows."
-#: ../../source/tor.rst:52
+#: ../../source/tor.rst:70
msgid ""
"Open OnionShare and click the \"⚙\" icon in it. Under \"How should "
"OnionShare connect to Tor?\" choose \"Connect using control port\", and "
@@ -165,37 +204,37 @@ msgid ""
"to the Tor controller\"."
msgstr ""
"Ouvrez OnionShare et cliquer l'icône \"⚙\". Dessous « Comment OnionShare "
-"devrait-il se connecter à Tor ? » choisissez « Se connecter en utilisant le "
-"port de contrôle », et configurez « Port de contrôle » à ``127.0.0.1`` et « "
-"Port » à ``9051``. En dessous de « Paramètres d’authentification de Tor » "
-"choisissez « Mot de passe » et définissez le mot de passe du port de "
-"contrôle que vous avez sélectionné au-dessus. Cliquer sur le bouton « Tester "
-"la connexion à Tor ». Si tout se passe bien, vous devriez voir « Vous êtes "
-"connecté au contrôleur Tor. »."
-
-#: ../../source/tor.rst:61
+"devrait-il se connecter à Tor ? » choisissez « Se connecter en utilisant "
+"le port de contrôle », et configurez « Port de contrôle » à ``127.0.0.1``"
+" et « Port » à ``9051``. En dessous de « Paramètres d’authentification de"
+" Tor » choisissez « Mot de passe » et définissez le mot de passe du port "
+"de contrôle que vous avez sélectionné au-dessus. Cliquer sur le bouton « "
+"Tester la connexion à Tor ». Si tout se passe bien, vous devriez voir « "
+"Vous êtes connecté au contrôleur Tor. »."
+
+#: ../../source/tor.rst:79
msgid "Using a system ``tor`` in macOS"
msgstr "Utilisez un système ``tor`` sur macOS"
-#: ../../source/tor.rst:63
+#: ../../source/tor.rst:81
msgid ""
"First, install `Homebrew <https://brew.sh/>`_ if you don't already have "
"it, and then install Tor::"
msgstr ""
-"Si ce n’est pas déjà fait, installez d’abord `Homebrew <https://brew.sh/>`_, "
-"puis installez Tor :"
+"Si ce n’est pas déjà fait, installez d’abord `Homebrew "
+"<https://brew.sh/>`_, puis installez Tor :"
-#: ../../source/tor.rst:67
+#: ../../source/tor.rst:85
msgid "Now configure Tor to allow connections from OnionShare::"
msgstr ""
-"Maintenant, configurez Tor pour autoriser les connexions à partir d’"
-"OnionShare :"
+"Maintenant, configurez Tor pour autoriser les connexions à partir "
+"d’OnionShare :"
-#: ../../source/tor.rst:74
+#: ../../source/tor.rst:92
msgid "And start the system Tor service::"
msgstr "Et démarrez le service Tor du système :"
-#: ../../source/tor.rst:78
+#: ../../source/tor.rst:96
msgid ""
"Open OnionShare and click the \"⚙\" icon in it. Under \"How should "
"OnionShare connect to Tor?\" choose \"Connect using socket file\", and "
@@ -211,29 +250,29 @@ msgstr ""
"Pas d’authentification, ou authentification par témoin ». Cliquez sur le "
"bouton « Tester la connexion à Tor »."
-#: ../../source/tor.rst:84 ../../source/tor.rst:104
+#: ../../source/tor.rst:102 ../../source/tor.rst:122
msgid "If all goes well, you should see \"Connected to the Tor controller\"."
msgstr ""
-"Si tout se passe bien, vous devriez voir « Vous êtes connecté au contrôleur "
-"Tor »."
+"Si tout se passe bien, vous devriez voir « Vous êtes connecté au "
+"contrôleur Tor »."
-#: ../../source/tor.rst:87
+#: ../../source/tor.rst:105
msgid "Using a system ``tor`` in Linux"
msgstr "Utiliser un ``tor`` système dans Linux"
-#: ../../source/tor.rst:89
+#: ../../source/tor.rst:107
msgid ""
"First, install the ``tor`` package. If you're using Debian, Ubuntu, or a "
"similar Linux distro, It is recommended to use the Tor Project's "
"`official repository <https://support.torproject.org/apt/tor-deb-"
"repo/>`_."
msgstr ""
-"Tout d'abord, installez le paquet ``tor``. Si vous utilisez Debian, Ubuntu, "
-"ou une distribution Linux similaire, il est recommandé d'utilisé le `"
-"répertoire officiel <https://support.torproject.org/apt/tor-deb-repo/>`_ du "
-"projet Tor."
+"Tout d'abord, installez le paquet ``tor``. Si vous utilisez Debian, "
+"Ubuntu, ou une distribution Linux similaire, il est recommandé d'utilisé "
+"le `répertoire officiel <https://support.torproject.org/apt/tor-deb-"
+"repo/>`_ du projet Tor."
-#: ../../source/tor.rst:91
+#: ../../source/tor.rst:109
msgid ""
"Next, add your user to the group that runs the ``tor`` process (in the "
"case of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to "
@@ -244,7 +283,7 @@ msgstr ""
"configurez OnionShare pour se connecter au fichier de contrôle de "
"l'interface de connexion de votre système ``tor``."
-#: ../../source/tor.rst:93
+#: ../../source/tor.rst:111
msgid ""
"Add your user to the ``debian-tor`` group by running this command "
"(replace ``username`` with your actual username)::"
@@ -252,7 +291,7 @@ msgstr ""
"Ajoutez votre utilisateur au groupe ``debian-tor`` en exécutant cette "
"commande (remplacez ``username`` par votre nom d'utilisateur) ::"
-#: ../../source/tor.rst:97
+#: ../../source/tor.rst:115
msgid ""
"Reboot your computer. After it boots up again, open OnionShare and click "
"the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" "
@@ -261,42 +300,14 @@ msgid ""
"\"No authentication, or cookie authentication\". Click the \"Test "
"Connection to Tor\" button."
msgstr ""
-"Redémarrez votre ordinateur. Après qu'il ait redémarré, ouvrez OnionShare et "
-"cliquer l'icône \"⚙\". Dessous « Comment OnionShare devrait-il se connecter "
-"à Tor ? » choisissez « Se connecter en utilisant un fichier d’interface de "
-"connexion ». Définissez le fichier d’interface de connexion comme étant ``/"
-"var/run/tor/control``. En dessous de « Paramètres d’authentification de Tor »"
-" choisissez « Pas d’authentification, ou authentification par témoin ». "
-"Cliquer sur le bouton « Tester la connexion à Tor »."
-
-#: ../../source/tor.rst:107
-msgid "Using Tor bridges"
-msgstr "Utilisez les ponts Tor"
-
-#: ../../source/tor.rst:109
-msgid ""
-"If your access to the Internet is censored, you can configure OnionShare "
-"to connect to the Tor network using `Tor bridges "
-"<https://2019.www.torproject.org/docs/bridges.html.en>`_. If OnionShare "
-"connects to Tor without one, you don't need to use a bridge."
-msgstr ""
-
-#: ../../source/tor.rst:111
-msgid "To configure bridges, click the \"⚙\" icon in OnionShare."
-msgstr "Pour configurer des ponts, cliquez sur l’icône « ⚙ » dans OnionShare."
-
-#: ../../source/tor.rst:113
-msgid ""
-"You can use the built-in obfs4 pluggable transports, the built-in "
-"meek_lite (Azure) pluggable transports, or custom bridges, which you can "
-"obtain from Tor's `BridgeDB <https://bridges.torproject.org/>`_. If you "
-"need to use a bridge, try the built-in obfs4 ones first."
-msgstr ""
-"Vous pouvez utiliser les transports enfichables fournis dans obfs4, ceux "
-"fournis dans les transports enfichables meek_lite (Azure), ou des ponts "
-"personnalisés, que vous pouvez obtenir depuis `la base de données des ponts "
-"Tor <https://bridges.torproject.org/>`_. Si vous avez besoin d'utiliser un "
-"pont, essayer ceux fournis dans obfs4 en premier."
+"Redémarrez votre ordinateur. Après qu'il ait redémarré, ouvrez OnionShare"
+" et cliquer l'icône \"⚙\". Dessous « Comment OnionShare devrait-il se "
+"connecter à Tor ? » choisissez « Se connecter en utilisant un fichier "
+"d’interface de connexion ». Définissez le fichier d’interface de "
+"connexion comme étant ``/var/run/tor/control``. En dessous de « "
+"Paramètres d’authentification de Tor » choisissez « Pas "
+"d’authentification, ou authentification par témoin ». Cliquer sur le "
+"bouton « Tester la connexion à Tor »."
#~ msgid "Using a system Tor in Mac OS X"
#~ msgstr ""
@@ -537,3 +548,45 @@ msgstr ""
#~ "if you don't already have it. "
#~ "Then, install Tor::"
#~ msgstr ""
+
+#~ msgid "Use the ``tor`` bundled with OnionShare"
+#~ msgstr "Utiliser le ``tor`` intégré à OnionShare"
+
+#~ msgid "Using Tor bridges"
+#~ msgstr "Utilisez les ponts Tor"
+
+#~ msgid ""
+#~ "If your access to the Internet is"
+#~ " censored, you can configure OnionShare "
+#~ "to connect to the Tor network "
+#~ "using `Tor bridges "
+#~ "<https://2019.www.torproject.org/docs/bridges.html.en>`_. If "
+#~ "OnionShare connects to Tor without one,"
+#~ " you don't need to use a "
+#~ "bridge."
+#~ msgstr ""
+
+#~ msgid "To configure bridges, click the \"⚙\" icon in OnionShare."
+#~ msgstr "Pour configurer des ponts, cliquez sur l’icône « ⚙ » dans OnionShare."
+
+#~ msgid ""
+#~ "You can use the built-in obfs4 "
+#~ "pluggable transports, the built-in "
+#~ "meek_lite (Azure) pluggable transports, or "
+#~ "custom bridges, which you can obtain "
+#~ "from Tor's `BridgeDB "
+#~ "<https://bridges.torproject.org/>`_. If you need "
+#~ "to use a bridge, try the built-"
+#~ "in obfs4 ones first."
+#~ msgstr ""
+#~ "Vous pouvez utiliser les transports "
+#~ "enfichables fournis dans obfs4, ceux "
+#~ "fournis dans les transports enfichables "
+#~ "meek_lite (Azure), ou des ponts "
+#~ "personnalisés, que vous pouvez obtenir "
+#~ "depuis `la base de données des "
+#~ "ponts Tor <https://bridges.torproject.org/>`_. Si"
+#~ " vous avez besoin d'utiliser un pont,"
+#~ " essayer ceux fournis dans obfs4 en"
+#~ " premier."
+
diff --git a/docs/source/locale/it/LC_MESSAGES/advanced.po b/docs/source/locale/it/LC_MESSAGES/advanced.po
index c0a9f1f6..d9e08ac0 100644
--- a/docs/source/locale/it/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/it/LC_MESSAGES/advanced.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-11-15 14:42-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2020-12-02 19:29+0000\n"
"Last-Translator: x <hardwired1.0@protonmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: it\n"
+"Language-Team: it <LL@li.org>\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/advanced.rst:2
msgid "Advanced Usage"
@@ -36,10 +35,11 @@ msgid ""
"address even if you reboot your computer."
msgstr ""
"Ogni cosa su OnionShare è temporanea per default. Se chiudi una tab di "
-"OnionShare, il suo indirizzo non esiste più e non potrà essere utilizzata di "
-"nuovo. A volte potresti avere bisogno di un servizio OnionShare permanente. "
-"Può essere utile ad esempio se volessi ospitare un sito web disponibile allo "
-"stesso indirizzo di OnionShare anche se riavvii il tuo computer."
+"OnionShare, il suo indirizzo non esiste più e non potrà essere utilizzata"
+" di nuovo. A volte potresti avere bisogno di un servizio OnionShare "
+"permanente. Può essere utile ad esempio se volessi ospitare un sito web "
+"disponibile allo stesso indirizzo di OnionShare anche se riavvii il tuo "
+"computer."
#: ../../source/advanced.rst:13
msgid ""
@@ -47,19 +47,20 @@ msgid ""
"open it when I open OnionShare\" box before starting the server. When a "
"tab is saved a purple pin icon appears to the left of its server status."
msgstr ""
-"Per rendere permanente una qualsiasi scheda, seleziona la casella \"Salva "
-"questa scheda, e aprirla automaticamente quando apro OnionShare\" prima di "
-"avviare il server. Quando una scheda viene salvata, a sinistra dello stato "
-"del server appare l'icona di uno spillo viola."
+"Per rendere permanente una qualsiasi scheda, seleziona la casella \"Salva"
+" questa scheda, e aprirla automaticamente quando apro OnionShare\" prima "
+"di avviare il server. Quando una scheda viene salvata, a sinistra dello "
+"stato del server appare l'icona di uno spillo viola."
#: ../../source/advanced.rst:18
+#, fuzzy
msgid ""
"When you quit OnionShare and then open it again, your saved tabs will "
"start opened. You'll have to manually start each service, but when you do"
-" they will start with the same OnionShare address and password."
+" they will start with the same OnionShare address and private key."
msgstr ""
-"Quando chiudi OnionShare e lo apri di nuovo le tue tab salvate saranno già "
-"aperte. Dovrai avviare manualmente ogni servizio, ma quando lo farai "
+"Quando chiudi OnionShare e lo apri di nuovo le tue tab salvate saranno "
+"già aperte. Dovrai avviare manualmente ogni servizio, ma quando lo farai "
"ripartiranno con lo stesso indirizzo OnionShare e password."
#: ../../source/advanced.rst:21
@@ -67,58 +68,71 @@ msgid ""
"If you save a tab, a copy of that tab's onion service secret key will be "
"stored on your computer with your OnionShare settings."
msgstr ""
-"Se salvi una tab, una copia della chiave segreta dell'onion service della "
-"tab sarà salvata sul tuo computer con le tue impostazioni di OnionShare."
+"Se salvi una tab, una copia della chiave segreta dell'onion service della"
+" tab sarà salvata sul tuo computer con le tue impostazioni di OnionShare."
#: ../../source/advanced.rst:26
-msgid "Turn Off Passwords"
-msgstr "Disattiva le Password"
+msgid "Turn Off Private Key"
+msgstr ""
#: ../../source/advanced.rst:28
msgid ""
-"By default, all OnionShare services are protected with the username "
-"``onionshare`` and a randomly-generated password. If someone takes 20 "
-"wrong guesses at the password, your onion service is automatically "
-"stopped to prevent a brute force attack against the OnionShare service."
+"By default, all OnionShare services are protected with a private key, "
+"which Tor calls \"client authentication\"."
msgstr ""
-"Per impostazione predefinita, tutti i servizi OnionShare sono protetti con "
-"il nome utente ``onionshare`` e una password generata casualmente. Se "
-"qualcuno fa 20 tentativi sbagliati sulla password, il tuo servizio onion "
-"viene automaticamente interrotto per prevenire un attacco di forza bruta "
-"contro il servizio OnionShare."
-#: ../../source/advanced.rst:31
+#: ../../source/advanced.rst:30
+msgid ""
+"When browsing to an OnionShare service in Tor Browser, Tor Browser will "
+"prompt for the private key to be entered."
+msgstr ""
+
+#: ../../source/advanced.rst:32
+#, fuzzy
msgid ""
"Sometimes you might want your OnionShare service to be accessible to the "
"public, like if you want to set up an OnionShare receive service so the "
"public can securely and anonymously send you files. In this case, it's "
-"better to disable the password altogether. If you don't do this, someone "
-"can force your server to stop just by making 20 wrong guesses of your "
-"password, even if they know the correct password."
+"better to disable the private key altogether."
msgstr ""
-"A volte potresti volere che il tuo servizio OnionShare sia accessibile al "
-"pubblico, ad esempio se desideri impostare un servizio di ricezione "
+"A volte potresti volere che il tuo servizio OnionShare sia accessibile al"
+" pubblico, ad esempio se desideri impostare un servizio di ricezione "
"OnionShare in modo che il pubblico possa inviarti file in modo sicuro e "
-"anonimo. In questo caso, è meglio disabilitare del tutto la password. Se non "
-"lo fai, qualcuno può forzare l'arresto del tuo server semplicemente facendo "
-"20 tentativi errati della tua password, anche se conosce la password "
-"corretta."
+"anonimo. In questo caso, è meglio disabilitare del tutto la password. Se "
+"non lo fai, qualcuno può forzare l'arresto del tuo server semplicemente "
+"facendo 20 tentativi errati della tua password, anche se conosce la "
+"password corretta."
#: ../../source/advanced.rst:35
msgid ""
-"To turn off the password for any tab, just check the \"Don't use a "
-"password\" box before starting the server. Then the server will be public"
-" and won't have a password."
+"To turn off the private key for any tab, check the \"This is a public "
+"OnionShare service (disables private key)\" box before starting the "
+"server. Then the server will be public and won't need a private key to "
+"view in Tor Browser."
+msgstr ""
+
+#: ../../source/advanced.rst:40
+msgid "Custom Titles"
+msgstr ""
+
+#: ../../source/advanced.rst:42
+msgid ""
+"By default, when people load an OnionShare service in Tor Browser they "
+"see the default title for the type of service. For example, the default "
+"title of a chat service is \"OnionShare Chat\"."
msgstr ""
-"Per disattivare la password per qualsiasi scheda, seleziona la casella \"Non "
-"utilizzare una password\" prima di avviare il server. Quindi il server sarà "
-"pubblico e non avrà una password."
-#: ../../source/advanced.rst:38
+#: ../../source/advanced.rst:44
+msgid ""
+"If you want to choose a custom title, set the \"Custom title\" setting "
+"before starting a server."
+msgstr ""
+
+#: ../../source/advanced.rst:47
msgid "Scheduled Times"
msgstr "Orari Programmati"
-#: ../../source/advanced.rst:40
+#: ../../source/advanced.rst:49
msgid ""
"OnionShare supports scheduling exactly when a service should start and "
"stop. Before starting a server, click \"Show advanced settings\" in its "
@@ -126,27 +140,27 @@ msgid ""
"scheduled time\", \"Stop onion service at scheduled time\", or both, and "
"set the respective desired dates and times."
msgstr ""
-"OnionShare supporta la pianificazione esattamente quando un servizio deve "
-"essere avviato e interrotto. Prima di avviare un server, fai clic su \"Mostra"
-" impostazioni avanzate\" nella relativa scheda, quindi seleziona le caselle "
-"accanto a \"Avvia servizio onion all'ora pianificata\", \"Arresta il "
-"servizio onion all'ora pianificata\" o entrambe e imposta le rispettive date "
-"e ore desiderate."
-
-#: ../../source/advanced.rst:43
+"OnionShare supporta la pianificazione esattamente quando un servizio deve"
+" essere avviato e interrotto. Prima di avviare un server, fai clic su "
+"\"Mostra impostazioni avanzate\" nella relativa scheda, quindi seleziona "
+"le caselle accanto a \"Avvia servizio onion all'ora pianificata\", "
+"\"Arresta il servizio onion all'ora pianificata\" o entrambe e imposta le"
+" rispettive date e ore desiderate."
+
+#: ../../source/advanced.rst:52
msgid ""
"If you scheduled a service to start in the future, when you click the "
"\"Start sharing\" button you will see a timer counting down until it "
"starts. If you scheduled it to stop in the future, after it's started you"
" will see a timer counting down to when it will stop automatically."
msgstr ""
-"Se hai pianificato un servizio che sia avviato in futuro, quando fai clic "
-"sul pulsante \"Avvia condivisione\" vedrai un timer che esegue il conto alla "
-"rovescia fino all'avvio. Se hai programmato di interromperlo in futuro, dopo "
-"l'avvio vedrai un conto alla rovescia fino a quando si fermerà "
-"automaticamente."
+"Se hai pianificato un servizio che sia avviato in futuro, quando fai clic"
+" sul pulsante \"Avvia condivisione\" vedrai un timer che esegue il conto "
+"alla rovescia fino all'avvio. Se hai programmato di interromperlo in "
+"futuro, dopo l'avvio vedrai un conto alla rovescia fino a quando si "
+"fermerà automaticamente."
-#: ../../source/advanced.rst:46
+#: ../../source/advanced.rst:55
msgid ""
"**Scheduling an OnionShare service to automatically start can be used as "
"a dead man's switch**, where your service will be made public at a given "
@@ -159,31 +173,32 @@ msgstr ""
"qualcosa. Se non ti succede nulla, puoi annullare il servizio prima "
"dell'inizio programmato."
-#: ../../source/advanced.rst:51
+#: ../../source/advanced.rst:60
+#, fuzzy
msgid ""
"**Scheduling an OnionShare service to automatically stop can be useful to"
" limit exposure**, like if you want to share secret documents while "
-"making sure they're not available on the Internet for more than a few "
+"making sure they're not available on the internet for more than a few "
"days."
msgstr ""
-"**La pianificazione dell'arresto automatico di un servizio OnionShare può "
-"essere utile per limitare l'esposizione**, ad esempio se desideri "
+"**La pianificazione dell'arresto automatico di un servizio OnionShare può"
+" essere utile per limitare l'esposizione**, ad esempio se desideri "
"condividere documenti segreti assicurandoti che non siano disponibili su "
"Internet per più di pochi giorni."
-#: ../../source/advanced.rst:56
+#: ../../source/advanced.rst:67
msgid "Command-line Interface"
msgstr "Interfaccia della riga di comando"
-#: ../../source/advanced.rst:58
+#: ../../source/advanced.rst:69
msgid ""
"In addition to its graphical interface, OnionShare has a command-line "
"interface."
msgstr ""
-"Oltre alla sua interfaccia grafica, OnionShare ha un'interfaccia a riga di "
-"comando."
+"Oltre alla sua interfaccia grafica, OnionShare ha un'interfaccia a riga "
+"di comando."
-#: ../../source/advanced.rst:60
+#: ../../source/advanced.rst:71
msgid ""
"You can install just the command-line version of OnionShare using "
"``pip3``::"
@@ -191,7 +206,7 @@ msgstr ""
"Puoi installare solo la versione a riga di comando di OnionShare usando "
"``pip3``::"
-#: ../../source/advanced.rst:64
+#: ../../source/advanced.rst:75
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
@@ -199,87 +214,39 @@ msgstr ""
"Nota che avrai anche bisogno del pacchetto ``tor`` installato. In macOS, "
"installalo con: ``brew install tor``"
-#: ../../source/advanced.rst:66
+#: ../../source/advanced.rst:77
msgid "Then run it like this::"
msgstr "Quindi eseguilo in questo modo::"
-#: ../../source/advanced.rst:70
+#: ../../source/advanced.rst:81
+msgid ""
+"For information about installing it on different operating systems, see "
+"the `CLI readme file "
+"<https://github.com/onionshare/onionshare/blob/develop/cli/README.md>`_ "
+"in the git repository."
+msgstr ""
+
+#: ../../source/advanced.rst:83
msgid ""
"If you installed OnionShare using the Linux Snapcraft package, you can "
"also just run ``onionshare.cli`` to access the command-line interface "
"version."
msgstr ""
-"Se hai installato OnionShare utilizzando il pacchetto Linux Snapcraft, puoi "
-"anche eseguire semplicemente ``onionshare.cli`` per accedere alla versione "
-"dell'interfaccia a riga di comando."
+"Se hai installato OnionShare utilizzando il pacchetto Linux Snapcraft, "
+"puoi anche eseguire semplicemente ``onionshare.cli`` per accedere alla "
+"versione dell'interfaccia a riga di comando."
-#: ../../source/advanced.rst:73
+#: ../../source/advanced.rst:86
msgid "Usage"
msgstr "Utilizzo"
-#: ../../source/advanced.rst:75
+#: ../../source/advanced.rst:88
msgid ""
"You can browse the command-line documentation by running ``onionshare "
"--help``::"
msgstr ""
-"Puoi sfogliare la documentazione della riga di comando eseguendo ``"
-"onionshare --help``::"
-
-#: ../../source/advanced.rst:132
-msgid "Legacy Addresses"
-msgstr "Indirizzi Obsoleti"
-
-#: ../../source/advanced.rst:134
-msgid ""
-"OnionShare uses v3 Tor onion services by default. These are modern onion "
-"addresses that have 56 characters, for example::"
-msgstr ""
-"OnionShare utilizza i servizi onion Tor v3 per impostazione predefinita. "
-"Questi sono indirizzi onion moderni che hanno 56 caratteri, ad esempio:"
-
-#: ../../source/advanced.rst:139
-msgid ""
-"OnionShare still has support for v2 onion addresses, the old type of "
-"onion addresses that have 16 characters, for example::"
-msgstr ""
-"OnionShare ha ancora il supporto per gli indirizzi onion v2, il vecchio tipo "
-"di indirizzi onion che hanno 16 caratteri, ad esempio:"
-
-#: ../../source/advanced.rst:143
-msgid ""
-"OnionShare calls v2 onion addresses \"legacy addresses\", and they are "
-"not recommended, as v3 onion addresses are more secure."
-msgstr ""
-"OnionShare chiama gli indirizzi onion v2 \"indirizzi legacy\" e non sono "
-"consigliati, poiché gli indirizzi onion v3 sono più sicuri."
-
-#: ../../source/advanced.rst:145
-msgid ""
-"To use legacy addresses, before starting a server click \"Show advanced "
-"settings\" from its tab and check the \"Use a legacy address (v2 onion "
-"service, not recommended)\" box. In legacy mode you can optionally turn "
-"on Tor client authentication. Once you start a server in legacy mode you "
-"cannot remove legacy mode in that tab. Instead you must start a separate "
-"service in a separate tab."
-msgstr ""
-"Per utilizzare gli indirizzi legacy, prima di avviare un server fai clic su "
-"\"Mostra impostazioni avanzate\" dalla relativa scheda e seleziona la "
-"casella \"Utilizza un indirizzo legacy (servizio onion v2, sconsigliato)\". "
-"Nella modalità legacy puoi facoltativamente attivare l'autenticazione del "
-"client Tor. Una volta avviato un server in modalità legacy, non è possibile "
-"rimuovere la modalità legacy in quella scheda. Invece è necessario avviare "
-"un servizio separato in una scheda separata."
-
-#: ../../source/advanced.rst:150
-msgid ""
-"Tor Project plans to `completely deprecate v2 onion services "
-"<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, "
-"2021, and legacy onion services will be removed from OnionShare before "
-"then."
-msgstr ""
-"Il Progetto Tor prevede di `deprecare completamente i servizi onion v2 "
-"<https://blog.torproject.org/v2-deprecation-timeline>`_ il 15 ottobre 2021, "
-"ei servizi onion legacy saranno rimossi da OnionShare prima di allora."
+"Puoi sfogliare la documentazione della riga di comando eseguendo "
+"``onionshare --help``::"
#~ msgid "Make a symbolic link to the OnionShare command line binary line this::"
#~ msgstr ""
@@ -479,3 +446,120 @@ msgstr ""
#~ " services will soon be removed from"
#~ " OnionShare as well."
#~ msgstr ""
+
+#~ msgid "Turn Off Passwords"
+#~ msgstr "Disattiva le Password"
+
+#~ msgid ""
+#~ "By default, all OnionShare services are"
+#~ " protected with the username ``onionshare``"
+#~ " and a randomly-generated password. "
+#~ "If someone takes 20 wrong guesses "
+#~ "at the password, your onion service "
+#~ "is automatically stopped to prevent a"
+#~ " brute force attack against the "
+#~ "OnionShare service."
+#~ msgstr ""
+#~ "Per impostazione predefinita, tutti i "
+#~ "servizi OnionShare sono protetti con il"
+#~ " nome utente ``onionshare`` e una "
+#~ "password generata casualmente. Se qualcuno "
+#~ "fa 20 tentativi sbagliati sulla "
+#~ "password, il tuo servizio onion viene"
+#~ " automaticamente interrotto per prevenire "
+#~ "un attacco di forza bruta contro "
+#~ "il servizio OnionShare."
+
+#~ msgid ""
+#~ "To turn off the password for any"
+#~ " tab, just check the \"Don't use "
+#~ "a password\" box before starting the "
+#~ "server. Then the server will be "
+#~ "public and won't have a password."
+#~ msgstr ""
+#~ "Per disattivare la password per "
+#~ "qualsiasi scheda, seleziona la casella "
+#~ "\"Non utilizzare una password\" prima di"
+#~ " avviare il server. Quindi il server"
+#~ " sarà pubblico e non avrà una "
+#~ "password."
+
+#~ msgid "Legacy Addresses"
+#~ msgstr "Indirizzi Obsoleti"
+
+#~ msgid ""
+#~ "OnionShare uses v3 Tor onion services"
+#~ " by default. These are modern onion"
+#~ " addresses that have 56 characters, "
+#~ "for example::"
+#~ msgstr ""
+#~ "OnionShare utilizza i servizi onion Tor"
+#~ " v3 per impostazione predefinita. Questi"
+#~ " sono indirizzi onion moderni che "
+#~ "hanno 56 caratteri, ad esempio:"
+
+#~ msgid ""
+#~ "OnionShare still has support for v2 "
+#~ "onion addresses, the old type of "
+#~ "onion addresses that have 16 characters,"
+#~ " for example::"
+#~ msgstr ""
+#~ "OnionShare ha ancora il supporto per "
+#~ "gli indirizzi onion v2, il vecchio "
+#~ "tipo di indirizzi onion che hanno "
+#~ "16 caratteri, ad esempio:"
+
+#~ msgid ""
+#~ "OnionShare calls v2 onion addresses "
+#~ "\"legacy addresses\", and they are not"
+#~ " recommended, as v3 onion addresses "
+#~ "are more secure."
+#~ msgstr ""
+#~ "OnionShare chiama gli indirizzi onion v2"
+#~ " \"indirizzi legacy\" e non sono "
+#~ "consigliati, poiché gli indirizzi onion "
+#~ "v3 sono più sicuri."
+
+#~ msgid ""
+#~ "To use legacy addresses, before starting"
+#~ " a server click \"Show advanced "
+#~ "settings\" from its tab and check "
+#~ "the \"Use a legacy address (v2 "
+#~ "onion service, not recommended)\" box. "
+#~ "In legacy mode you can optionally "
+#~ "turn on Tor client authentication. Once"
+#~ " you start a server in legacy "
+#~ "mode you cannot remove legacy mode "
+#~ "in that tab. Instead you must "
+#~ "start a separate service in a "
+#~ "separate tab."
+#~ msgstr ""
+#~ "Per utilizzare gli indirizzi legacy, "
+#~ "prima di avviare un server fai "
+#~ "clic su \"Mostra impostazioni avanzate\" "
+#~ "dalla relativa scheda e seleziona la "
+#~ "casella \"Utilizza un indirizzo legacy "
+#~ "(servizio onion v2, sconsigliato)\". Nella "
+#~ "modalità legacy puoi facoltativamente attivare"
+#~ " l'autenticazione del client Tor. Una "
+#~ "volta avviato un server in modalità "
+#~ "legacy, non è possibile rimuovere la "
+#~ "modalità legacy in quella scheda. Invece"
+#~ " è necessario avviare un servizio "
+#~ "separato in una scheda separata."
+
+#~ msgid ""
+#~ "Tor Project plans to `completely "
+#~ "deprecate v2 onion services "
+#~ "<https://blog.torproject.org/v2-deprecation-timeline>`_ on"
+#~ " October 15, 2021, and legacy onion"
+#~ " services will be removed from "
+#~ "OnionShare before then."
+#~ msgstr ""
+#~ "Il Progetto Tor prevede di `deprecare"
+#~ " completamente i servizi onion v2 "
+#~ "<https://blog.torproject.org/v2-deprecation-timeline>`_ il"
+#~ " 15 ottobre 2021, ei servizi onion"
+#~ " legacy saranno rimossi da OnionShare "
+#~ "prima di allora."
+
diff --git a/docs/source/locale/it/LC_MESSAGES/develop.po b/docs/source/locale/it/LC_MESSAGES/develop.po
index cc8f5092..c5c42f67 100644
--- a/docs/source/locale/it/LC_MESSAGES/develop.po
+++ b/docs/source/locale/it/LC_MESSAGES/develop.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-11-15 14:42-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2020-12-01 17:29+0000\n"
"Last-Translator: x <hardwired1.0@protonmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: it\n"
+"Language-Team: it <LL@li.org>\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/develop.rst:2
msgid "Developing OnionShare"
@@ -42,10 +41,11 @@ msgstr ""
"domande, condividere idee e design, e pianificare sviluppi futuri. (Si "
"tratta anche di un modo facile per mandare messaggi diretti protetti da "
"crittografia end-to-end tra le persone che fanno parte della comunità di "
-"OnionShare, simile agli indirizzi OnionShare.) Per usare Keybase, scarica l'`"
-"app Keybase <https://keybase.io/download>`_, crea un account, e `unisciti a "
-"questo team <https://keybase.io/team/onionshare>`_. All'interno dell'app, "
-"vai su \"Teams\", clicca \"Join a Team\", e scrivi \"onionshare\"."
+"OnionShare, simile agli indirizzi OnionShare.) Per usare Keybase, scarica"
+" l'`app Keybase <https://keybase.io/download>`_, crea un account, e "
+"`unisciti a questo team <https://keybase.io/team/onionshare>`_. "
+"All'interno dell'app, vai su \"Teams\", clicca \"Join a Team\", e scrivi "
+"\"onionshare\"."
#: ../../source/develop.rst:12
msgid ""
@@ -53,35 +53,37 @@ msgid ""
"<https://lists.riseup.net/www/subscribe/onionshare-dev>`_ for developers "
"and and designers to discuss the project."
msgstr ""
-"OnionShare ha anche una `mailing list <https://lists.riseup.net/www/"
-"subscribe/onionshare-dev>`_ per sviluppatori e designer che vogliono "
-"discutere del progetto."
+"OnionShare ha anche una `mailing list "
+"<https://lists.riseup.net/www/subscribe/onionshare-dev>`_ per "
+"sviluppatori e designer che vogliono discutere del progetto."
#: ../../source/develop.rst:15
msgid "Contributing Code"
msgstr "Contribuire al Codice"
#: ../../source/develop.rst:17
+#, fuzzy
msgid ""
"OnionShare source code is to be found in this Git repository: "
-"https://github.com/micahflee/onionshare"
+"https://github.com/onionshare/onionshare"
msgstr ""
"Il codice sorgente di OnionShare si trova in questo repository Git: "
"https://github.com/micahflee/onionshare"
#: ../../source/develop.rst:19
+#, fuzzy
msgid ""
"If you'd like to contribute code to OnionShare, it helps to join the "
"Keybase team and ask questions about what you're thinking of working on. "
"You should also review all of the `open issues "
-"<https://github.com/micahflee/onionshare/issues>`_ on GitHub to see if "
+"<https://github.com/onionshare/onionshare/issues>`_ on GitHub to see if "
"there are any you'd like to tackle."
msgstr ""
-"Se desideri contribuire al codice di OnionShare, è utile entrare a far parte "
-"del team di Keybase e porre domande su ciò su cui stai pensando di lavorare. "
-"Dovresti anche esaminare tutte le `questioni aperte <https://github.com/"
-"micahflee/onionshare/issues>` _ su GitHub per vedere se ce ne sono alcune "
-"che vorresti affrontare."
+"Se desideri contribuire al codice di OnionShare, è utile entrare a far "
+"parte del team di Keybase e porre domande su ciò su cui stai pensando di "
+"lavorare. Dovresti anche esaminare tutte le `questioni aperte "
+"<https://github.com/micahflee/onionshare/issues>` _ su GitHub per vedere "
+"se ce ne sono alcune che vorresti affrontare."
#: ../../source/develop.rst:22
msgid ""
@@ -91,8 +93,8 @@ msgid ""
msgstr ""
"Quando sei pronto per contribuire al codice, apri una richiesta pull nel "
"repository GitHub e uno dei manutentori del progetto lo esaminerà ed "
-"eventualmente farà domande, richiederà modifiche, lo rifiuterà o lo inserirà "
-"nel progetto."
+"eventualmente farà domande, richiederà modifiche, lo rifiuterà o lo "
+"inserirà nel progetto."
#: ../../source/develop.rst:27
msgid "Starting Development"
@@ -101,17 +103,12 @@ msgstr "Avvio dello sviluppo"
#: ../../source/develop.rst:29
msgid ""
"OnionShare is developed in Python. To get started, clone the Git "
-"repository at https://github.com/micahflee/onionshare/ and then consult "
+"repository at https://github.com/onionshare/onionshare/ and then consult "
"the ``cli/README.md`` file to learn how to set up your development "
"environment for the command-line version, and the ``desktop/README.md`` "
"file to learn how to set up your development environment for the "
"graphical version."
msgstr ""
-"OnionShare è sviluppato in Python. Per iniziare, clona il repository Git su "
-"https://github.com/micahflee/onionshare/ e quindi consulta il file `` cli/"
-"README.md `` per sapere come configurare il tuo ambiente di sviluppo per la "
-"versione a riga di comando e il file `` desktop/README.md`` per apprendere "
-"come configurare l'ambiente di sviluppo per la versione grafica."
#: ../../source/develop.rst:32
msgid ""
@@ -140,19 +137,19 @@ msgid ""
"reloaded), and other debug info. For example::"
msgstr ""
"Durante lo sviluppo, è conveniente eseguire OnionShare da un terminale e "
-"aggiungere il flag ` --verbose`` (o ``-v``) al comando. Questo stampa molti "
-"messaggi utili su terminale, come quando determinati oggetti vengono "
-"inizializzati, quando si verificano eventi (come i pulsanti cliccati, le "
-"impostazioni salvate o ricaricate) e altre informazioni di debug. Per "
-"esempio::"
+"aggiungere il flag ` --verbose`` (o ``-v``) al comando. Questo stampa "
+"molti messaggi utili su terminale, come quando determinati oggetti "
+"vengono inizializzati, quando si verificano eventi (come i pulsanti "
+"cliccati, le impostazioni salvate o ricaricate) e altre informazioni di "
+"debug. Per esempio::"
#: ../../source/develop.rst:117
msgid ""
"You can add your own debug messages by running the ``Common.log`` method "
"from ``onionshare/common.py``. For example::"
msgstr ""
-"Puoi aggiungere i tuoi messaggi di debug eseguendo il metodo ``Common.log`` "
-"da ``onionshare/common.py``. Per esempio::"
+"Puoi aggiungere i tuoi messaggi di debug eseguendo il metodo "
+"``Common.log`` da ``onionshare/common.py``. Per esempio::"
#: ../../source/develop.rst:121
msgid ""
@@ -174,25 +171,26 @@ msgid ""
"altogether during development. You can do this with the ``--local-only`` "
"flag. For example::"
msgstr ""
-"Tor è lento ed è spesso conveniente saltare del tutto l'avvio dei servizi "
-"onion durante lo sviluppo. Puoi farlo con il flag ``--local-only``. Per "
+"Tor è lento ed è spesso conveniente saltare del tutto l'avvio dei servizi"
+" onion durante lo sviluppo. Puoi farlo con il flag ``--local-only``. Per "
"esempio::"
-#: ../../source/develop.rst:164
+#: ../../source/develop.rst:165
+#, fuzzy
msgid ""
-"In this case, you load the URL ``http://onionshare:train-"
-"system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of"
-" using the Tor Browser."
+"In this case, you load the URL ``http://127.0.0.1:17641`` in a normal "
+"web-browser like Firefox, instead of using the Tor Browser. The private "
+"key is not actually needed in local-only mode, so you can ignore it."
msgstr ""
-"In questo caso, carichi l'URL ``http://onionshare:train-system@127.0.0."
-"1:17635`` in un normale browser web come Firefox, invece di usare Tor "
-"Browser."
+"In questo caso, carichi l'URL ``http://onionshare:train-"
+"system@127.0.0.1:17635`` in un normale browser web come Firefox, invece "
+"di usare Tor Browser."
-#: ../../source/develop.rst:167
+#: ../../source/develop.rst:168
msgid "Contributing Translations"
msgstr "Contribuire alle Traduzioni"
-#: ../../source/develop.rst:169
+#: ../../source/develop.rst:170
msgid ""
"Help make OnionShare easier to use and more familiar and welcoming for "
"people by translating it on `Hosted Weblate "
@@ -201,53 +199,54 @@ msgid ""
"needed."
msgstr ""
"Contribuisci a rendere OnionShare più facile da usare e più familiare e "
-"accogliente per le persone traducendolo su `Hosted Weblate <https://hosted."
-"weblate.org/projects/onionshare/>`_. Mantieni sempre \"OnionShare\" in "
-"lettere latine e usa \"OnionShare (localname)\" se necessario."
+"accogliente per le persone traducendolo su `Hosted Weblate "
+"<https://hosted.weblate.org/projects/onionshare/>`_. Mantieni sempre "
+"\"OnionShare\" in lettere latine e usa \"OnionShare (localname)\" se "
+"necessario."
-#: ../../source/develop.rst:171
+#: ../../source/develop.rst:172
msgid "To help translate, make a Hosted Weblate account and start contributing."
msgstr ""
"Per aiutare a tradurre, crea un account Hosted Weblate e inizia a "
"contribuire."
-#: ../../source/develop.rst:174
+#: ../../source/develop.rst:175
msgid "Suggestions for Original English Strings"
msgstr "Suggerimenti per le Stringhe Originali in Inglese"
-#: ../../source/develop.rst:176
+#: ../../source/develop.rst:177
msgid ""
"Sometimes the original English strings are wrong, or don't match between "
"the application and the documentation."
msgstr ""
-"A volte le stringhe inglesi originali sono sbagliate o non corrispondono tra "
-"l'applicazione e la documentazione."
+"A volte le stringhe inglesi originali sono sbagliate o non corrispondono "
+"tra l'applicazione e la documentazione."
-#: ../../source/develop.rst:178
+#: ../../source/develop.rst:179
msgid ""
"File source string improvements by adding @kingu to your Weblate comment,"
" or open a GitHub issue or pull request. The latter ensures all upstream "
"developers see the suggestion, and can potentially modify the string via "
"the usual code review processes."
msgstr ""
-"Miglioramenti alla stringa sorgente del file aggiungendo @kingu al commento "
-"di Weblate o aprendo un problema su GitHub o una richiesta pull. "
-"Quest'ultimo garantisce che tutti gli sviluppatori a monte vedano il "
+"Miglioramenti alla stringa sorgente del file aggiungendo @kingu al "
+"commento di Weblate o aprendo un problema su GitHub o una richiesta pull."
+" Quest'ultimo garantisce che tutti gli sviluppatori a monte vedano il "
"suggerimento e possano potenzialmente modificare la stringa tramite i "
"consueti processi di revisione del codice."
-#: ../../source/develop.rst:182
+#: ../../source/develop.rst:183
msgid "Status of Translations"
msgstr "Stato delle Traduzioni"
-#: ../../source/develop.rst:183
+#: ../../source/develop.rst:184
msgid ""
"Here is the current translation status. If you want start a translation "
"in a language not yet started, please write to the mailing list: "
"onionshare-dev@lists.riseup.net"
msgstr ""
-"Ecco lo stato attuale della traduzione. Se vuoi iniziare una traduzione in "
-"una lingua non ancora iniziata, scrivi alla mailing list: onionshare-"
+"Ecco lo stato attuale della traduzione. Se vuoi iniziare una traduzione "
+"in una lingua non ancora iniziata, scrivi alla mailing list: onionshare-"
"dev@lists.riseup.net"
#~ msgid ""
@@ -465,3 +464,27 @@ msgstr ""
#~ msgid "Do the same for other untranslated lines."
#~ msgstr ""
+
+#~ msgid ""
+#~ "OnionShare is developed in Python. To"
+#~ " get started, clone the Git "
+#~ "repository at https://github.com/micahflee/onionshare/ "
+#~ "and then consult the ``cli/README.md`` "
+#~ "file to learn how to set up "
+#~ "your development environment for the "
+#~ "command-line version, and the "
+#~ "``desktop/README.md`` file to learn how "
+#~ "to set up your development environment"
+#~ " for the graphical version."
+#~ msgstr ""
+#~ "OnionShare è sviluppato in Python. Per"
+#~ " iniziare, clona il repository Git su"
+#~ " https://github.com/micahflee/onionshare/ e quindi "
+#~ "consulta il file `` cli/README.md `` "
+#~ "per sapere come configurare il tuo "
+#~ "ambiente di sviluppo per la versione "
+#~ "a riga di comando e il file "
+#~ "`` desktop/README.md`` per apprendere come "
+#~ "configurare l'ambiente di sviluppo per "
+#~ "la versione grafica."
+
diff --git a/docs/source/locale/it/LC_MESSAGES/features.po b/docs/source/locale/it/LC_MESSAGES/features.po
index 6963a29c..17c89855 100644
--- a/docs/source/locale/it/LC_MESSAGES/features.po
+++ b/docs/source/locale/it/LC_MESSAGES/features.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-11-15 14:42-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2020-12-02 19:29+0000\n"
"Last-Translator: x <hardwired1.0@protonmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: it\n"
+"Language-Team: it <LL@li.org>\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/features.rst:4
msgid "How OnionShare Works"
@@ -29,54 +28,66 @@ msgid ""
"other people as `Tor <https://www.torproject.org/>`_ `onion services "
"<https://community.torproject.org/onion-services/>`_."
msgstr ""
-"I web server sono avviati localmente sul tuo computer e resi accessibili ad "
-"altre persone come `Tor <https://www.torproject.org/>`_ `onion services "
-"<https://community.torproject.org/onion-services/>`_."
+"I web server sono avviati localmente sul tuo computer e resi accessibili "
+"ad altre persone come `Tor <https://www.torproject.org/>`_ `onion "
+"services <https://community.torproject.org/onion-services/>`_."
#: ../../source/features.rst:8
-msgid ""
-"By default, OnionShare web addresses are protected with a random "
-"password. A typical OnionShare address might look something like this::"
+#, fuzzy
+msgid "By default, OnionShare web addresses are protected with a private key."
+msgstr ""
+"Di default, gli indirizzi web di OnionShare sono protetti con una "
+"password random. Un tipico esempio di indirizzo di OnionShare potrebbe "
+"somigliare a questo::"
+
+#: ../../source/features.rst:10
+msgid "OnionShare addresses look something like this::"
msgstr ""
-"Di default, gli indirizzi web di OnionShare sono protetti con una password "
-"random. Un tipico esempio di indirizzo di OnionShare potrebbe somigliare a "
-"questo::"
-#: ../../source/features.rst:12
+#: ../../source/features.rst:14
+msgid "And private keys might look something like this::"
+msgstr ""
+
+#: ../../source/features.rst:18
+#, fuzzy
msgid ""
-"You're responsible for securely sharing that URL using a communication "
-"channel of your choice like in an encrypted chat message, or using "
-"something less secure like unencrypted e-mail, depending on your `threat "
-"model <https://ssd.eff.org/module/your-security-plan>`_."
+"You're responsible for securely sharing that URL and private key using a "
+"communication channel of your choice like in an encrypted chat message, "
+"or using something less secure like unencrypted email, depending on your "
+"`threat model <https://ssd.eff.org/module/your-security-plan>`_."
msgstr ""
"Sei responsabile della condivisione sicura di quell'URL utilizzando un "
"canale di comunicazione a tua scelta come ad esempio un messaggio in una "
"chat cifrata, o utilizzando qualcosa di meno sicuro come le e-mail non "
-"cifrate, a seconda del tuo `threat model <https://ssd.eff.org/module/your-"
-"security-plan>`_."
+"cifrate, a seconda del tuo `threat model <https://ssd.eff.org/module"
+"/your-security-plan>`_."
-#: ../../source/features.rst:14
+#: ../../source/features.rst:20
+#, fuzzy
msgid ""
"The people you send the URL to then copy and paste it into their `Tor "
"Browser <https://www.torproject.org/>`_ to access the OnionShare service."
+" Tor Browser will then prompt for the private key, which the people can "
+"also then copy and paste in."
msgstr ""
-"Le persone a cui invii l'URL da copiare e incollare nel loro `Tor Browser "
-"<https://www.torproject.org/>`_ per accedere al servizio di OnionShare."
+"Le persone a cui invii l'URL da copiare e incollare nel loro `Tor Browser"
+" <https://www.torproject.org/>`_ per accedere al servizio di OnionShare."
-#: ../../source/features.rst:16
+#: ../../source/features.rst:24
+#, fuzzy
msgid ""
"If you run OnionShare on your laptop to send someone files, and then "
"suspend it before the files are sent, the service will not be available "
-"until your laptop is unsuspended and on the Internet again. OnionShare "
+"until your laptop is unsuspended and on the internet again. OnionShare "
"works best when working with people in real-time."
msgstr ""
-"Se usi OnionShare sul tuo laptop per inviare a qualcuno dei file, e poi lo "
-"sospendi prima che i file siano stati inviati, il servizio non sarà "
+"Se usi OnionShare sul tuo laptop per inviare a qualcuno dei file, e poi "
+"lo sospendi prima che i file siano stati inviati, il servizio non sarà "
"funzionante fino a quando non avrai risvegliato il tuo laptop e sarà di "
-"nuovo connesso a Internet. OnionShare funziona al meglio quando si lavora "
-"con altre persone in tempo reale."
+"nuovo connesso a Internet. OnionShare funziona al meglio quando si lavora"
+" con altre persone in tempo reale."
-#: ../../source/features.rst:18
+#: ../../source/features.rst:26
msgid ""
"Because your own computer is the web server, *no third party can access "
"anything that happens in OnionShare*, not even the developers of "
@@ -84,28 +95,29 @@ msgid ""
"Tor onion services too, it also protects your anonymity. See the "
":doc:`security design </security>` for more info."
msgstr ""
-"Dal momento che il tuo computer è il tuo web server, *nessuna terza parte "
-"può avere accesso a quello che avviene dentro OnionShare*, nemmeno gli "
-"sviluppatori di OnionShare. Tutto è completamente privato. E dal momento che "
-"OnionShare sfrutta anche i Tor onion services, garantisce anche il tuo "
-"anonimato. Guarda il :doc:`security design </security>` per maggiori "
+"Dal momento che il tuo computer è il tuo web server, *nessuna terza parte"
+" può avere accesso a quello che avviene dentro OnionShare*, nemmeno gli "
+"sviluppatori di OnionShare. Tutto è completamente privato. E dal momento "
+"che OnionShare sfrutta anche i Tor onion services, garantisce anche il "
+"tuo anonimato. Guarda il :doc:`security design </security>` per maggiori "
"informazioni."
-#: ../../source/features.rst:21
+#: ../../source/features.rst:29
msgid "Share Files"
msgstr "Condividi i file"
-#: ../../source/features.rst:23
+#: ../../source/features.rst:31
msgid ""
"You can use OnionShare to send files and folders to people securely and "
"anonymously. Open a share tab, drag in the files and folders you wish to "
"share, and click \"Start sharing\"."
msgstr ""
"Puoi usare OnionShare per inviare file e cartelle alle persone in modo "
-"sicuro e anonimo. Apri una tab per la condivisione, trascina dentro i file e "
-"le cartelle che vuoi condividere, e clicca \"Inizia la condivisione\"."
+"sicuro e anonimo. Apri una tab per la condivisione, trascina dentro i "
+"file e le cartelle che vuoi condividere, e clicca \"Inizia la "
+"condivisione\"."
-#: ../../source/features.rst:27 ../../source/features.rst:93
+#: ../../source/features.rst:35 ../../source/features.rst:112
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
@@ -114,118 +126,139 @@ msgstr ""
"selezionare le impostazioni che ti interessano prima di iniziare la "
"condivisione."
-#: ../../source/features.rst:31
+#: ../../source/features.rst:39
+#, fuzzy
msgid ""
"As soon as someone finishes downloading your files, OnionShare will "
-"automatically stop the server, removing the website from the Internet. To"
+"automatically stop the server, removing the website from the internet. To"
" allow multiple people to download them, uncheck the \"Stop sharing after"
" files have been sent (uncheck to allow downloading individual files)\" "
"box."
msgstr ""
-"Non appena qualcuno finisce di scaricare i tuoi file, OnionShare arresterà "
-"automaticamente il server, rimuovendo il sito web da Internet. Per "
-"permettere a più persone di scaricare i tuoi file, deseleziona la casella "
-"\"Interrompere la condivisione dopo che i file sono stati inviati ("
-"deselezionare per consentire il download dei singoli file)\"."
+"Non appena qualcuno finisce di scaricare i tuoi file, OnionShare "
+"arresterà automaticamente il server, rimuovendo il sito web da Internet. "
+"Per permettere a più persone di scaricare i tuoi file, deseleziona la "
+"casella \"Interrompere la condivisione dopo che i file sono stati inviati"
+" (deselezionare per consentire il download dei singoli file)\"."
-#: ../../source/features.rst:34
+#: ../../source/features.rst:42
msgid ""
"Also, if you uncheck this box, people will be able to download the "
"individual files you share rather than a single compressed version of all"
" the files."
msgstr ""
-"Inoltre, se si deseleziona questa casella, le persone potranno scaricare i "
-"singoli file che si condividono individualmente piuttosto che una singola "
-"versione compressa di tutti i file."
+"Inoltre, se si deseleziona questa casella, le persone potranno scaricare "
+"i singoli file che si condividono individualmente piuttosto che una "
+"singola versione compressa di tutti i file."
-#: ../../source/features.rst:36
+#: ../../source/features.rst:44
msgid ""
"When you're ready to share, click the \"Start sharing\" button. You can "
"always click \"Stop sharing\", or quit OnionShare, immediately taking the"
" website down. You can also click the \"↑\" icon in the top-right corner "
"to show the history and progress of people downloading files from you."
msgstr ""
-"Quando sei pronto a condividere, clicca il tasto \"Inizia la condivisione\". "
-"Puoi sempre cliccare su \"Ferma la condivisione\", o uscire da OnionShare, "
-"rimuovendo immediatamente il sito web. Puoi anche cliccare sull'icona \"↑\" "
-"nell'angolo in alto a destra per mostrare la storia e lo stato di "
-"avanzamento del download delle persone che scaricano i file da te."
-
-#: ../../source/features.rst:40
+"Quando sei pronto a condividere, clicca il tasto \"Inizia la "
+"condivisione\". Puoi sempre cliccare su \"Ferma la condivisione\", o "
+"uscire da OnionShare, rimuovendo immediatamente il sito web. Puoi anche "
+"cliccare sull'icona \"↑\" nell'angolo in alto a destra per mostrare la "
+"storia e lo stato di avanzamento del download delle persone che scaricano"
+" i file da te."
+
+#: ../../source/features.rst:48
+#, fuzzy
msgid ""
-"Now that you have a OnionShare, copy the address and send it to the "
-"person you want to receive the files. If the files need to stay secure, "
-"or the person is otherwise exposed to danger, use an encrypted messaging "
-"app."
+"Now that you have a OnionShare, copy the address and the private key and "
+"send it to the person you want to receive the files. If the files need to"
+" stay secure, or the person is otherwise exposed to danger, use an "
+"encrypted messaging app."
msgstr ""
-"Ora che hai un OnionShare, copia l'indirizzo e invialo alla persona che vuoi "
-"riceva i file. Se i file devono rimanere al sicuro, o nel caso in cui la "
-"persona sia esposta a dei pericoli, utilizza un'app di messaggistica cifrata."
+"Ora che hai un OnionShare, copia l'indirizzo e invialo alla persona che "
+"vuoi riceva i file. Se i file devono rimanere al sicuro, o nel caso in "
+"cui la persona sia esposta a dei pericoli, utilizza un'app di "
+"messaggistica cifrata."
-#: ../../source/features.rst:42
+#: ../../source/features.rst:50
+#, fuzzy
msgid ""
"That person then must load the address in Tor Browser. After logging in "
-"with the random password included in the web address, the files can be "
-"downloaded directly from your computer by clicking the \"Download Files\""
-" link in the corner."
+"with the private key, the files can be downloaded directly from your "
+"computer by clicking the \"Download Files\" link in the corner."
+msgstr ""
+"Quella persona deve quindi caricare l'indirizzo sul Tor Browser. Dopo "
+"aver effettuato l'accesso con la password casuale inclusa nell'indirizzo "
+"web, i file possono essere scaricati direttamente dal tuo computer "
+"cliccando il link \"Download Files\" nell'angolo."
+
+#: ../../source/features.rst:55
+msgid "Receive Files and Messages"
+msgstr ""
+
+#: ../../source/features.rst:57
+msgid ""
+"You can use OnionShare to let people anonymously submit files and "
+"messages directly to your computer, essentially turning it into an "
+"anonymous dropbox. Open a receive tab and choose the settings that you "
+"want."
+msgstr ""
+
+#: ../../source/features.rst:62
+msgid "You can browse for a folder to save messages and files that get submitted."
msgstr ""
-"Quella persona deve quindi caricare l'indirizzo sul Tor Browser. Dopo aver "
-"effettuato l'accesso con la password casuale inclusa nell'indirizzo web, i "
-"file possono essere scaricati direttamente dal tuo computer cliccando il "
-"link \"Download Files\" nell'angolo."
-#: ../../source/features.rst:47
-msgid "Receive Files"
-msgstr "Ricevere file"
+#: ../../source/features.rst:64
+msgid ""
+"You can check \"Disable submitting text\" if want to only allow file "
+"uploads, and you can check \"Disable uploading files\" if you want to "
+"only allow submitting text messages, like for an anonymous contact form."
+msgstr ""
-#: ../../source/features.rst:49
+#: ../../source/features.rst:66
msgid ""
-"You can use OnionShare to let people anonymously upload files directly to"
-" your computer, essentially turning it into an anonymous dropbox. Open a "
-"\"Receive tab\", choose where you want to save the files and other "
-"settings, and then click \"Start Receive Mode\"."
+"You can check \"Use notification webhook\" and then choose a webhook URL "
+"if you want to be notified when someone submits files or messages to your"
+" OnionShare service. If you use this feature, OnionShare will make an "
+"HTTP POST request to this URL whenever someone submits files or messages."
+" For example, if you want to get an encrypted text messaging on the "
+"messaging app `Keybase <https://keybase.io/>`_, you can start a "
+"conversation with `@webhookbot <https://keybase.io/webhookbot>`_, type "
+"``!webhook create onionshare-alerts``, and it will respond with a URL. "
+"Use that as the notification webhook URL. If someone uploads a file to "
+"your receive mode service, @webhookbot will send you a message on Keybase"
+" letting you know as soon as it happens."
msgstr ""
-"Puoi usare OnionShare per permettere alle persone di caricare in maniera "
-"anonima i file direttamente sul tuo computer, trasformandolo "
-"fondamentalmente nella tua dropbox anonima. Apri la \"scheda Ricevi\", "
-"scegli dove vuoi salvare i file e altre impostazioni, quindi clicca su "
-"\"Avvia la modalità di ricezione\"."
-#: ../../source/features.rst:54
+#: ../../source/features.rst:71
msgid ""
-"This starts the OnionShare service. Anyone loading this address in their "
-"Tor Browser will be able to upload files to your computer."
+"When you are ready, click \"Start Receive Mode\". This starts the "
+"OnionShare service. Anyone loading this address in their Tor Browser will"
+" be able to submit files and messages which get uploaded to your "
+"computer."
msgstr ""
-"Questo avvia il servizio di OnionShare. Chiunque visiti questo indirizzo sul "
-"proprio Browser Tor sarà in grado di caricare i file sul tuo computer."
-#: ../../source/features.rst:58
+#: ../../source/features.rst:75
msgid ""
"You can also click the down \"↓\" icon in the top-right corner to show "
"the history and progress of people sending files to you."
msgstr ""
-"Puoi anche cliccare l'icona della freccia in basso \"↓\" nell'angolo in alto "
-"a destra per mostrare la cronologia e lo stato di avanzamento dei file che "
-"ti sono stati inviati dalle persone."
+"Puoi anche cliccare l'icona della freccia in basso \"↓\" nell'angolo in "
+"alto a destra per mostrare la cronologia e lo stato di avanzamento dei "
+"file che ti sono stati inviati dalle persone."
-#: ../../source/features.rst:60
-msgid "Here is what it looks like for someone sending you files."
+#: ../../source/features.rst:77
+#, fuzzy
+msgid "Here is what it looks like for someone sending you files and messages."
msgstr "Ecco come appare per qualcuno che ti sta inviando dei file."
-#: ../../source/features.rst:64
+#: ../../source/features.rst:81
msgid ""
-"When someone uploads files to your receive service, by default they get "
-"saved to a folder called ``OnionShare`` in the home folder on your "
-"computer, automatically organized into separate subfolders based on the "
-"time that the files get uploaded."
+"When someone submits files or messages to your receive service, by "
+"default they get saved to a folder called ``OnionShare`` in the home "
+"folder on your computer, automatically organized into separate subfolders"
+" based on the time that the files get uploaded."
msgstr ""
-"Quando qualcuno carica i file sul tuo servizio di ricezione, per "
-"impostazione predefinita vengono salvati in una cartella chiamata "
-"``OnionShare`` nella cartella principale del tuo computer, organizzata "
-"automaticamente in sottocartelle separate in base al momento in cui i file "
-"vengono caricati."
-#: ../../source/features.rst:66
+#: ../../source/features.rst:83
msgid ""
"Setting up an OnionShare receiving service is useful for journalists and "
"others needing to securely accept documents from anonymous sources. When "
@@ -234,28 +267,30 @@ msgid ""
"whistleblower submission system."
msgstr ""
"L'impostazione di un servizio di ricezione di OnionShare è utile per i "
-"giornalisti e altri che devono accettare in modo sicuro documenti da fonti "
-"anonime. Quando viene utilizzato in questo modo, OnionShare è una sorta di "
-"versione leggera, più semplice, non altrettanto sicura di `SecureDrop "
-"<https://securedrop.org/>`_, il sistema di segnalazione degli informatori."
+"giornalisti e altri che devono accettare in modo sicuro documenti da "
+"fonti anonime. Quando viene utilizzato in questo modo, OnionShare è una "
+"sorta di versione leggera, più semplice, non altrettanto sicura di "
+"`SecureDrop <https://securedrop.org/>`_, il sistema di segnalazione degli"
+" informatori."
-#: ../../source/features.rst:69
+#: ../../source/features.rst:86
msgid "Use at your own risk"
msgstr "Utilizzare a proprio rischio e pericolo"
-#: ../../source/features.rst:71
+#: ../../source/features.rst:88
+#, fuzzy
msgid ""
-"Just like with malicious e-mail attachments, it's possible someone could "
+"Just like with malicious email attachments, it's possible someone could "
"try to attack your computer by uploading a malicious file to your "
"OnionShare service. OnionShare does not add any safety mechanisms to "
"protect your system from malicious files."
msgstr ""
-"Proprio come con gli allegati di posta elettronica dannosi, è possibile che "
-"qualcuno possa tentare di attaccare il tuo computer caricando un file "
-"dannoso sul tuo servizio OnionShare. OnionShare non aggiunge alcun "
+"Proprio come con gli allegati di posta elettronica dannosi, è possibile "
+"che qualcuno possa tentare di attaccare il tuo computer caricando un file"
+" dannoso sul tuo servizio OnionShare. OnionShare non aggiunge alcun "
"meccanismo di sicurezza per proteggere il tuo sistema da file dannosi."
-#: ../../source/features.rst:73
+#: ../../source/features.rst:90
msgid ""
"If you receive an Office document or a PDF through OnionShare, you can "
"convert these documents into PDFs that are safe to open using `Dangerzone"
@@ -264,53 +299,61 @@ msgid ""
"<https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ "
"disposableVM."
msgstr ""
-"Se si riceve un documento Office o un PDF tramite OnionShare, è possibile "
-"convertire questi documenti in PDF che possono essere aperti in sicurezza "
-"utilizzando `Dangerzone <https://dangerzone.rocks/>`_. Puoi anche "
-"proteggerti quando apri documenti non attendibili aprendoli in `Tails "
-"<https://tails.boum.org/index.it.html/>`_ o in una macchina virtuale usa e "
-"getta con`Qubes <https://qubes-os.org/>`_."
+"Se si riceve un documento Office o un PDF tramite OnionShare, è possibile"
+" convertire questi documenti in PDF che possono essere aperti in "
+"sicurezza utilizzando `Dangerzone <https://dangerzone.rocks/>`_. Puoi "
+"anche proteggerti quando apri documenti non attendibili aprendoli in "
+"`Tails <https://tails.boum.org/index.it.html/>`_ o in una macchina "
+"virtuale usa e getta con`Qubes <https://qubes-os.org/>`_."
+
+#: ../../source/features.rst:92
+msgid "However, it is always safe to open text messages sent through OnionShare."
+msgstr ""
-#: ../../source/features.rst:76
+#: ../../source/features.rst:95
msgid "Tips for running a receive service"
msgstr "Consigli per la gestione di un servizio di ricezione"
-#: ../../source/features.rst:78
+#: ../../source/features.rst:97
+#, fuzzy
msgid ""
"If you want to host your own anonymous dropbox using OnionShare, it's "
"recommended you do so on a separate, dedicated computer always powered on"
-" and connected to the Internet, and not on the one you use on a regular "
+" and connected to the internet, and not on the one you use on a regular "
"basis."
msgstr ""
"Se desideri ospitare la tua casella personale anonima utilizzando "
-"OnionShare, ti consigliamo di farlo su un computer dedicato separato, sempre "
-"acceso e connesso a Internet, e non su quello che usi regolarmente."
+"OnionShare, ti consigliamo di farlo su un computer dedicato separato, "
+"sempre acceso e connesso a Internet, e non su quello che usi "
+"regolarmente."
-#: ../../source/features.rst:80
+#: ../../source/features.rst:99
+#, fuzzy
msgid ""
"If you intend to put the OnionShare address on your website or social "
"media profiles, save the tab (see :ref:`save_tabs`) and run it as a "
-"public service (see :ref:`turn_off_passwords`)."
+"public service (see :ref:`turn_off_private_key`). It's also a good idea "
+"to give it a custom title (see :ref:`custom_titles`)."
msgstr ""
-"Se intendi inserire l'indirizzo OnionShare sul tuo sito web o sui profili "
-"dei social media, salva la scheda (vedi :ref: `save_tabs`) ee gestiscila "
-"come servizio pubblico (vedi :ref:` turn_off_passwords`)."
+"Se intendi inserire l'indirizzo OnionShare sul tuo sito web o sui profili"
+" dei social media, salva la scheda (vedi :ref: `save_tabs`) ee gestiscila"
+" come servizio pubblico (vedi :ref:` turn_off_passwords`)."
-#: ../../source/features.rst:83
+#: ../../source/features.rst:102
msgid "Host a Website"
msgstr "Ospita un sito Web"
-#: ../../source/features.rst:85
+#: ../../source/features.rst:104
msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag "
"the files and folders that make up the static content there, and click "
"\"Start sharing\" when you are ready."
msgstr ""
-"Per ospitare un sito web HTML statico con OnionShare, apri una scheda del "
-"sito Web, trascina i file e le cartelle che compongono il contenuto statico "
-"e fai clic su \"Avvia condivisione\" quando sei pronto."
+"Per ospitare un sito web HTML statico con OnionShare, apri una scheda del"
+" sito Web, trascina i file e le cartelle che compongono il contenuto "
+"statico e fai clic su \"Avvia condivisione\" quando sei pronto."
-#: ../../source/features.rst:89
+#: ../../source/features.rst:108
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your"
" website. You should also include any other HTML files, CSS files, "
@@ -320,106 +363,121 @@ msgid ""
" WordPress.)"
msgstr ""
"Se aggiungi un file ``index.html``, verrà visualizzato quando qualcuno "
-"carica il tuo sito web. Dovresti anche includere qualsiasi altro file HTML, "
-"file CSS, file JavaScript e immagini che compongono il sito web. (Tieni "
-"presente che OnionShare supporta solo l'hosting di siti Web *statici*. Non "
-"può ospitare siti Web che eseguono codice o utilizzano database. Quindi, ad "
-"esempio, non puoi utilizzare WordPress.)"
+"carica il tuo sito web. Dovresti anche includere qualsiasi altro file "
+"HTML, file CSS, file JavaScript e immagini che compongono il sito web. "
+"(Tieni presente che OnionShare supporta solo l'hosting di siti Web "
+"*statici*. Non può ospitare siti Web che eseguono codice o utilizzano "
+"database. Quindi, ad esempio, non puoi utilizzare WordPress.)"
-#: ../../source/features.rst:91
+#: ../../source/features.rst:110
msgid ""
"If you don't have an ``index.html`` file, it will show a directory "
"listing instead, and people loading it can look through the files and "
"download them."
msgstr ""
-"Se non hai un file ``index.html``, mostrerà invece un elenco di directory e "
-"le persone che lo caricano possono esaminare i file e scaricarli."
+"Se non hai un file ``index.html``, mostrerà invece un elenco di directory"
+" e le persone che lo caricano possono esaminare i file e scaricarli."
-#: ../../source/features.rst:98
+#: ../../source/features.rst:117
msgid "Content Security Policy"
msgstr "Politica sulla Sicurezza dei Contenuti"
-#: ../../source/features.rst:100
+#: ../../source/features.rst:119
+#, fuzzy
msgid ""
"By default OnionShare helps secure your website by setting a strict "
-"`Content Security Police "
+"`Content Security Policy "
"<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ header. "
"However, this prevents third-party content from loading inside the web "
"page."
msgstr ""
-"Per impostazione predefinita, OnionShare aiuta a proteggere il tuo sito web "
-"impostando una rigida intestazione della `Politica sulla sicurezza dei "
-"contenuti <https://en.wikipedia.org/wiki/Content_Security_Policy>`_. "
+"Per impostazione predefinita, OnionShare aiuta a proteggere il tuo sito "
+"web impostando una rigida intestazione della `Politica sulla sicurezza "
+"dei contenuti <https://en.wikipedia.org/wiki/Content_Security_Policy>`_. "
"Tuttavia, ciò impedisce il caricamento di contenuti di terze parti "
"all'interno della pagina web."
-#: ../../source/features.rst:102
+#: ../../source/features.rst:121
+#, fuzzy
msgid ""
"If you want to load content from third-party websites, like assets or "
-"JavaScript libraries from CDNs, check the \"Don't send Content Security "
-"Policy header (allows your website to use third-party resources)\" box "
-"before starting the service."
-msgstr ""
-"Se desideri caricare contenuti da siti Web di terze parti, come risorse o "
-"librerie JavaScript da CDN, seleziona la casella \"Non inviare "
-"l'intestazione della Politica di Sicurezza dei Contenuti (consente al tuo "
-"sito web di utilizzare risorse di terze parti)\" prima di avviare il "
+"JavaScript libraries from CDNs, you have two options:"
+msgstr ""
+"Se desideri caricare contenuti da siti Web di terze parti, come risorse o"
+" librerie JavaScript da CDN, seleziona la casella \"Non inviare "
+"l'intestazione della Politica di Sicurezza dei Contenuti (consente al tuo"
+" sito web di utilizzare risorse di terze parti)\" prima di avviare il "
"servizio."
-#: ../../source/features.rst:105
+#: ../../source/features.rst:123
+msgid ""
+"You can disable sending a Content Security Policy header by checking the "
+"\"Don't send Content Security Policy header (allows your website to use "
+"third-party resources)\" box before starting the service."
+msgstr ""
+
+#: ../../source/features.rst:124
+msgid "You can send a custom Content Security Policy header."
+msgstr ""
+
+#: ../../source/features.rst:127
msgid "Tips for running a website service"
msgstr "Suggerimenti per la gestione di un servizio di un sito web"
-#: ../../source/features.rst:107
+#: ../../source/features.rst:129
+#, fuzzy
msgid ""
"If you want to host a long-term website using OnionShare (meaning not "
-"something to quickly show someone something), it's recommended you do it "
-"on a separate, dedicated computer always powered on and connected to the "
-"Internet, and not on the one you use on a regular basis. Save the tab "
-"(see :ref:`save_tabs`) so you can resume the website with the same "
+"just to quickly show someone something), it's recommended you do it on a "
+"separate, dedicated computer that is always powered on and connected to "
+"the internet, and not on the one you use on a regular basis. Save the tab"
+" (see :ref:`save_tabs`) so you can resume the website with the same "
"address if you close OnionShare and re-open it later."
msgstr ""
-"Se desideri ospitare un sito web a lungo termine utilizzando OnionShare (che "
-"significa non qualcosa per mostrare rapidamente qualcosa a qualcuno), ti "
-"consigliamo di farlo su un computer dedicato separato sempre acceso e "
-"connesso a Internet, e non su quello che usi regolarmente. Salvare la scheda "
-"(vedere :ref:`save_tabs`) in modo da poter riprendere il sito web con lo "
-"stesso indirizzo se si chiude OnionShare e lo si riapre in seguito."
-
-#: ../../source/features.rst:110
+"Se desideri ospitare un sito web a lungo termine utilizzando OnionShare "
+"(che significa non qualcosa per mostrare rapidamente qualcosa a "
+"qualcuno), ti consigliamo di farlo su un computer dedicato separato "
+"sempre acceso e connesso a Internet, e non su quello che usi "
+"regolarmente. Salvare la scheda (vedere :ref:`save_tabs`) in modo da "
+"poter riprendere il sito web con lo stesso indirizzo se si chiude "
+"OnionShare e lo si riapre in seguito."
+
+#: ../../source/features.rst:132
+#, fuzzy
msgid ""
"If your website is intended for the public, you should run it as a public"
-" service (see :ref:`turn_off_passwords`)."
+" service (see :ref:`turn_off_private_key`)."
msgstr ""
"Se il tuo sito web è destinato al pubblico, dovresti gestirlo come un "
"servizio pubblico (vedere :ref:`turn_off_passwords`)."
-#: ../../source/features.rst:113
+#: ../../source/features.rst:135
msgid "Chat Anonymously"
msgstr "Chatta in modo Anonimo"
-#: ../../source/features.rst:115
+#: ../../source/features.rst:137
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't"
" log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
-"Puoi usare OnionShare per configurare una chat room privata e sicura che non "
-"registra nulla. Basta aprire una scheda di chat e fare clic su \"Avvia "
-"server della chat\"."
+"Puoi usare OnionShare per configurare una chat room privata e sicura che "
+"non registra nulla. Basta aprire una scheda di chat e fare clic su "
+"\"Avvia server della chat\"."
-#: ../../source/features.rst:119
+#: ../../source/features.rst:141
+#, fuzzy
msgid ""
-"After you start the server, copy the OnionShare address and send it to "
-"the people you want in the anonymous chat room. If it's important to "
-"limit exactly who can join, use an encrypted messaging app to send out "
-"the OnionShare address."
+"After you start the server, copy the OnionShare address and private key "
+"and send them to the people you want in the anonymous chat room. If it's "
+"important to limit exactly who can join, use an encrypted messaging app "
+"to send out the OnionShare address and private key."
msgstr ""
"Dopo aver avviato il server, copia l'indirizzo OnionShare e invialo alle "
"persone che desideri nella chat room anonima. Se è importante limitare "
"esattamente chi può partecipare, utilizza un'app di messaggistica "
"crittografata per inviare l'indirizzo OnionShare."
-#: ../../source/features.rst:124
+#: ../../source/features.rst:146
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -427,12 +485,12 @@ msgid ""
"\"Standard\" or \"Safer\", instead of \"Safest\"."
msgstr ""
"Le persone possono unirsi alla chat room caricando il proprio indirizzo "
-"OnionShare nel Browser Tor. La chat room richiede JavasScript, quindi tutti "
-"coloro che vogliono partecipare devono avere il proprio livello di sicurezza "
-"Tor Browser impostato su \"Standard\" o \"Sicuro\", invece di \"Molto "
-"sicuro\"."
+"OnionShare nel Browser Tor. La chat room richiede JavasScript, quindi "
+"tutti coloro che vogliono partecipare devono avere il proprio livello di "
+"sicurezza Tor Browser impostato su \"Standard\" o \"Sicuro\", invece di "
+"\"Molto sicuro\"."
-#: ../../source/features.rst:127
+#: ../../source/features.rst:149
msgid ""
"When someone joins the chat room they get assigned a random name. They "
"can change their name by typing a new name in the box in the left panel "
@@ -440,21 +498,21 @@ msgid ""
"get displayed at all, even if others were already chatting in the room."
msgstr ""
"Quando qualcuno si unisce alla chat room, gli viene assegnato un nome "
-"casuale. Possono cambiare il loro nome digitando un nuovo nome nella casella "
-"nel pannello di sinistra e premendo ↵. Poiché la cronologia della chat non "
-"viene salvata da nessuna parte, non viene visualizzata affatto, anche se "
-"altri stavano già chattando nella stanza."
+"casuale. Possono cambiare il loro nome digitando un nuovo nome nella "
+"casella nel pannello di sinistra e premendo ↵. Poiché la cronologia della"
+" chat non viene salvata da nessuna parte, non viene visualizzata affatto,"
+" anche se altri stavano già chattando nella stanza."
-#: ../../source/features.rst:133
+#: ../../source/features.rst:155
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change "
"their name to anything, and there is no way to confirm anyone's identity."
msgstr ""
-"In una chat room di OnionShare, tutti sono anonimi. Chiunque può cambiare il "
-"proprio nome in qualsiasi cosa e non c'è modo di confermare l'identità di "
-"nessuno."
+"In una chat room di OnionShare, tutti sono anonimi. Chiunque può cambiare"
+" il proprio nome in qualsiasi cosa e non c'è modo di confermare "
+"l'identità di nessuno."
-#: ../../source/features.rst:136
+#: ../../source/features.rst:158
msgid ""
"However, if you create an OnionShare chat room and securely send the "
"address only to a small group of trusted friends using encrypted "
@@ -462,15 +520,15 @@ msgid ""
"room are your friends."
msgstr ""
"Tuttavia, se crei una chat room di OnionShare e invii in modo sicuro "
-"l'indirizzo solo a un piccolo gruppo di amici fidati utilizzando messaggi "
-"crittografati, puoi essere ragionevolmente sicuro che le persone che si "
+"l'indirizzo solo a un piccolo gruppo di amici fidati utilizzando messaggi"
+" crittografati, puoi essere ragionevolmente sicuro che le persone che si "
"uniscono alla chat room siano i tuoi amici."
-#: ../../source/features.rst:139
+#: ../../source/features.rst:161
msgid "How is this useful?"
msgstr "In che modo è utile?"
-#: ../../source/features.rst:141
+#: ../../source/features.rst:163
msgid ""
"If you need to already be using an encrypted messaging app, what's the "
"point of an OnionShare chat room to begin with? It leaves less traces."
@@ -478,47 +536,40 @@ msgstr ""
"Se devi già utilizzare un'app di messaggistica crittografata, qual è il "
"punto di partenza di una chat room OnionShare? Lascia meno tracce."
-#: ../../source/features.rst:143
+#: ../../source/features.rst:165
msgid ""
"If you for example send a message to a Signal group, a copy of your "
-"message ends up on each device (the devices, and computers if they set up"
-" Signal Desktop) of each member of the group. Even if disappearing "
+"message ends up on each device (the smartphones, and computers if they "
+"set up Signal Desktop) of each member of the group. Even if disappearing "
"messages is turned on, it's hard to confirm all copies of the messages "
"are actually deleted from all devices, and from any other places (like "
"notifications databases) they may have been saved to. OnionShare chat "
"rooms don't store any messages anywhere, so the problem is reduced to a "
"minimum."
msgstr ""
-"Se ad esempio invii un messaggio a un gruppo Signal, una copia del tuo "
-"messaggio finisce su ogni dispositivo (i dispositivi e i computer se "
-"configurano Signal Desktop) di ogni membro del gruppo. Anche se la scomparsa "
-"dei messaggi è attiva, è difficile confermare che tutte le copie dei "
-"messaggi vengono effettivamente eliminate da tutti i dispositivi e da "
-"qualsiasi altro luogo (come i database delle notifiche) in cui potrebbero "
-"essere state salvate. Le chat room di OnionShare non memorizzano alcun "
-"messaggio da nessuna parte, quindi il problema è ridotto al minimo."
-#: ../../source/features.rst:146
+#: ../../source/features.rst:168
+#, fuzzy
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
"accounts. For example, a source can send an OnionShare address to a "
-"journalist using a disposable e-mail address, and then wait for the "
+"journalist using a disposable email address, and then wait for the "
"journalist to join the chat room, all without compromosing their "
"anonymity."
msgstr ""
"Le chat room di OnionShare possono anche essere utili per le persone che "
-"desiderano chattare in modo anonimo e sicuro con qualcuno senza dover creare "
-"alcun account. Ad esempio, una fonte può inviare un indirizzo OnionShare a "
-"un giornalista utilizzando un indirizzo email usa e getta, quindi attendere "
-"che il giornalista si unisca alla chat room, il tutto senza compromettere il "
-"proprio anonimato."
+"desiderano chattare in modo anonimo e sicuro con qualcuno senza dover "
+"creare alcun account. Ad esempio, una fonte può inviare un indirizzo "
+"OnionShare a un giornalista utilizzando un indirizzo email usa e getta, "
+"quindi attendere che il giornalista si unisca alla chat room, il tutto "
+"senza compromettere il proprio anonimato."
-#: ../../source/features.rst:150
+#: ../../source/features.rst:172
msgid "How does the encryption work?"
msgstr "Come funziona la crittografia?"
-#: ../../source/features.rst:152
+#: ../../source/features.rst:174
msgid ""
"Because OnionShare relies on Tor onion services, connections between the "
"Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When "
@@ -527,20 +578,20 @@ msgid ""
"other members of the chat room using WebSockets, through their E2EE onion"
" connections."
msgstr ""
-"Poiché OnionShare si basa sui servizi onion di Tor, le connessioni tra il "
-"Browser Tor e OnionShare sono tutte crittografate end-to-end (E2EE). Quando "
-"qualcuno pubblica un messaggio in una chat room OnionShare, lo invia al "
-"server tramite la connessione E2EE onion, che quindi lo invia a tutti gli "
-"altri membri della chat room utilizzando i WebSocket, attraverso le loro "
-"connessioni E2EE onion."
-
-#: ../../source/features.rst:154
+"Poiché OnionShare si basa sui servizi onion di Tor, le connessioni tra il"
+" Browser Tor e OnionShare sono tutte crittografate end-to-end (E2EE). "
+"Quando qualcuno pubblica un messaggio in una chat room OnionShare, lo "
+"invia al server tramite la connessione E2EE onion, che quindi lo invia a "
+"tutti gli altri membri della chat room utilizzando i WebSocket, "
+"attraverso le loro connessioni E2EE onion."
+
+#: ../../source/features.rst:176
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on"
" the Tor onion service's encryption instead."
msgstr ""
-"OnionShare non implementa alcuna crittografia della chat da solo. Si basa "
-"invece sulla crittografia del servizio onion di Tor."
+"OnionShare non implementa alcuna crittografia della chat da solo. Si basa"
+" invece sulla crittografia del servizio onion di Tor."
#~ msgid "How OnionShare works"
#~ msgstr ""
@@ -929,3 +980,91 @@ msgstr ""
#~ "WebSockets, through their E2EE onion "
#~ "connections."
#~ msgstr ""
+
+#~ msgid "Receive Files"
+#~ msgstr "Ricevere file"
+
+#~ msgid ""
+#~ "You can use OnionShare to let "
+#~ "people anonymously upload files directly "
+#~ "to your computer, essentially turning it"
+#~ " into an anonymous dropbox. Open a"
+#~ " \"Receive tab\", choose where you "
+#~ "want to save the files and other"
+#~ " settings, and then click \"Start "
+#~ "Receive Mode\"."
+#~ msgstr ""
+#~ "Puoi usare OnionShare per permettere "
+#~ "alle persone di caricare in maniera "
+#~ "anonima i file direttamente sul tuo "
+#~ "computer, trasformandolo fondamentalmente nella "
+#~ "tua dropbox anonima. Apri la \"scheda"
+#~ " Ricevi\", scegli dove vuoi salvare i"
+#~ " file e altre impostazioni, quindi "
+#~ "clicca su \"Avvia la modalità di "
+#~ "ricezione\"."
+
+#~ msgid ""
+#~ "This starts the OnionShare service. "
+#~ "Anyone loading this address in their "
+#~ "Tor Browser will be able to upload"
+#~ " files to your computer."
+#~ msgstr ""
+#~ "Questo avvia il servizio di OnionShare."
+#~ " Chiunque visiti questo indirizzo sul "
+#~ "proprio Browser Tor sarà in grado "
+#~ "di caricare i file sul tuo "
+#~ "computer."
+
+#~ msgid ""
+#~ "When someone uploads files to your "
+#~ "receive service, by default they get "
+#~ "saved to a folder called ``OnionShare``"
+#~ " in the home folder on your "
+#~ "computer, automatically organized into "
+#~ "separate subfolders based on the time"
+#~ " that the files get uploaded."
+#~ msgstr ""
+#~ "Quando qualcuno carica i file sul "
+#~ "tuo servizio di ricezione, per "
+#~ "impostazione predefinita vengono salvati in"
+#~ " una cartella chiamata ``OnionShare`` nella"
+#~ " cartella principale del tuo computer, "
+#~ "organizzata automaticamente in sottocartelle "
+#~ "separate in base al momento in cui"
+#~ " i file vengono caricati."
+
+#~ msgid ""
+#~ "If you for example send a message"
+#~ " to a Signal group, a copy of"
+#~ " your message ends up on each "
+#~ "device (the devices, and computers if"
+#~ " they set up Signal Desktop) of "
+#~ "each member of the group. Even if"
+#~ " disappearing messages is turned on, "
+#~ "it's hard to confirm all copies of"
+#~ " the messages are actually deleted "
+#~ "from all devices, and from any "
+#~ "other places (like notifications databases)"
+#~ " they may have been saved to. "
+#~ "OnionShare chat rooms don't store any"
+#~ " messages anywhere, so the problem is"
+#~ " reduced to a minimum."
+#~ msgstr ""
+#~ "Se ad esempio invii un messaggio a"
+#~ " un gruppo Signal, una copia del "
+#~ "tuo messaggio finisce su ogni "
+#~ "dispositivo (i dispositivi e i computer"
+#~ " se configurano Signal Desktop) di "
+#~ "ogni membro del gruppo. Anche se "
+#~ "la scomparsa dei messaggi è attiva, "
+#~ "è difficile confermare che tutte le "
+#~ "copie dei messaggi vengono effettivamente "
+#~ "eliminate da tutti i dispositivi e "
+#~ "da qualsiasi altro luogo (come i "
+#~ "database delle notifiche) in cui "
+#~ "potrebbero essere state salvate. Le chat"
+#~ " room di OnionShare non memorizzano "
+#~ "alcun messaggio da nessuna parte, quindi"
+#~ " il problema è ridotto al minimo."
+
diff --git a/docs/source/locale/it/LC_MESSAGES/help.po b/docs/source/locale/it/LC_MESSAGES/help.po
index 74f922ce..e17adab6 100644
--- a/docs/source/locale/it/LC_MESSAGES/help.po
+++ b/docs/source/locale/it/LC_MESSAGES/help.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-11-15 14:42-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2020-12-01 17:29+0000\n"
"Last-Translator: rc <coluccini.riccardo@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: it\n"
+"Language-Team: it <LL@li.org>\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/help.rst:2
msgid "Getting Help"
@@ -33,24 +32,25 @@ msgid ""
"the sections first to see if anything answers your questions."
msgstr ""
"Puoi trovare le istruzioni su come usare OnionShare. Controlla prima in "
-"tutte le varie sezioni per vedere se c'è già la risposta a quello che stai "
-"cercando."
+"tutte le varie sezioni per vedere se c'è già la risposta a quello che "
+"stai cercando."
#: ../../source/help.rst:10
msgid "Check the GitHub Issues"
msgstr "Controlla le issue su GitHub"
#: ../../source/help.rst:12
+#, fuzzy
msgid ""
"If it isn't on the website, please check the `GitHub issues "
-"<https://github.com/micahflee/onionshare/issues>`_. It's possible someone"
-" else has encountered the same problem and either raised it with the "
-"developers, or maybe even posted a solution."
+"<https://github.com/onionshare/onionshare/issues>`_. It's possible "
+"someone else has encountered the same problem and either raised it with "
+"the developers, or maybe even posted a solution."
msgstr ""
"Se non si trova sul sito, per favore controlla tra le `issue GitHub "
-"<https://github.com/micahflee/onionshare/issues>`_. Qualche altra persona "
-"potrebbe aver incontrato il tuo stesso problema e averlo già segnalato agli "
-"sviluppatori o forse aver persino postato la soluzione."
+"<https://github.com/micahflee/onionshare/issues>`_. Qualche altra persona"
+" potrebbe aver incontrato il tuo stesso problema e averlo già segnalato "
+"agli sviluppatori o forse aver persino postato la soluzione."
#: ../../source/help.rst:15
msgid "Submit an Issue Yourself"
@@ -60,15 +60,10 @@ msgstr "Apri tu direttamente un'issue"
msgid ""
"If you are unable to find a solution, or wish to ask a question or "
"suggest a new feature, please `submit an issue "
-"<https://github.com/micahflee/onionshare/issues/new>`_. This requires "
+"<https://github.com/onionshare/onionshare/issues/new>`_. This requires "
"`creating a GitHub account <https://help.github.com/articles/signing-up-"
"for-a-new-github-account/>`_."
msgstr ""
-"Se non riesci a trovare una soluzione, o desideri chiedere una domanda o "
-"suggerire una feature, per favre `apri una issue <https://github.com/"
-"micahflee/onionshare/issues/new>`_. Questo richiede di `creare un account "
-"GitHub <https://help.github.com/articles/signing-up-for-a-new-github-account/"
-">`_."
#: ../../source/help.rst:20
msgid "Join our Keybase Team"
@@ -79,8 +74,8 @@ msgid ""
"See :ref:`collaborating` on how to join the Keybase team used to discuss "
"the project."
msgstr ""
-"Guarda :ref:`collaborare` per scoprire come unirti al team Keybase usato per "
-"parlare del progetto."
+"Guarda :ref:`collaborare` per scoprire come unirti al team Keybase usato "
+"per parlare del progetto."
#~ msgid "If you need help with OnionShare, please follow the instructions below."
#~ msgstr ""
@@ -133,3 +128,23 @@ msgstr ""
#~ "that we use to discuss the "
#~ "project."
#~ msgstr ""
+
+#~ msgid ""
+#~ "If you are unable to find a "
+#~ "solution, or wish to ask a "
+#~ "question or suggest a new feature, "
+#~ "please `submit an issue "
+#~ "<https://github.com/micahflee/onionshare/issues/new>`_. This "
+#~ "requires `creating a GitHub account "
+#~ "<https://help.github.com/articles/signing-up-for-a-new-"
+#~ "github-account/>`_."
+#~ msgstr ""
+#~ "Se non riesci a trovare una "
+#~ "soluzione, o desideri chiedere una "
+#~ "domanda o suggerire una feature, per "
+#~ "favre `apri una issue "
+#~ "<https://github.com/micahflee/onionshare/issues/new>`_. Questo"
+#~ " richiede di `creare un account "
+#~ "GitHub <https://help.github.com/articles/signing-up-"
+#~ "for-a-new-github-account/>`_."
+
diff --git a/docs/source/locale/it/LC_MESSAGES/install.po b/docs/source/locale/it/LC_MESSAGES/install.po
index 1c6e82a1..e3edbe91 100644
--- a/docs/source/locale/it/LC_MESSAGES/install.po
+++ b/docs/source/locale/it/LC_MESSAGES/install.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-12-13 15:48-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2021-04-09 19:26+0000\n"
"Last-Translator: rc <coluccini.riccardo@gmail.com>\n"
-"Language-Team: it <LL@li.org>\n"
"Language: it\n"
+"Language-Team: it <LL@li.org>\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.6-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/install.rst:2
msgid "Installation"
@@ -36,8 +35,8 @@ msgstr ""
" <https://onionshare.org/>`_."
#: ../../source/install.rst:12
-msgid "Install in Linux"
-msgstr "Installa su Linux"
+msgid "Linux"
+msgstr ""
#: ../../source/install.rst:14
#, fuzzy
@@ -86,10 +85,21 @@ msgstr ""
"``.flatpak`` o ``.snap`` da https://onionshare.org/dist/."
#: ../../source/install.rst:28
+msgid "Command-line only"
+msgstr ""
+
+#: ../../source/install.rst:30
+msgid ""
+"You can install just the command line version of OnionShare on any "
+"operating system using the Python package manager ``pip``. See :ref:`cli`"
+" for more information."
+msgstr ""
+
+#: ../../source/install.rst:35
msgid "Verifying PGP signatures"
msgstr "Verifica delle firme PGP"
-#: ../../source/install.rst:30
+#: ../../source/install.rst:37
msgid ""
"You can verify that the package you download is legitimate and hasn't "
"been tampered with by verifying its PGP signature. For Windows and macOS,"
@@ -103,11 +113,11 @@ msgstr ""
"OnionShare includono firme specifiche del sistema operativo e se lo vuoi "
"puoi semplicemente fare affidamento solo su quelle."
-#: ../../source/install.rst:34
+#: ../../source/install.rst:41
msgid "Signing key"
msgstr "Signing key"
-#: ../../source/install.rst:36
+#: ../../source/install.rst:43
msgid ""
"Packages are signed by Micah Lee, the core developer, using his PGP "
"public key with fingerprint ``927F419D7EC82C2F149C1BD1403C2657CD994F73``."
@@ -122,7 +132,7 @@ msgstr ""
"<https://keys.openpgp.org/vks/v1/by-"
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
-#: ../../source/install.rst:38
+#: ../../source/install.rst:45
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you "
"probably want `GPGTools <https://gpgtools.org/>`_, and for Windows you "
@@ -133,11 +143,11 @@ msgstr ""
"per Windows è probabilmente necessario `Gpg4win "
"<https://www.gpg4win.org/>`_."
-#: ../../source/install.rst:41
+#: ../../source/install.rst:48
msgid "Signatures"
msgstr "Firme"
-#: ../../source/install.rst:43
+#: ../../source/install.rst:50
#, fuzzy
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, "
@@ -152,11 +162,11 @@ msgstr ""
"trovarli nella pagina `GitHub Releases page "
"<https://github.com/micahflee/onionshare/releases>`_."
-#: ../../source/install.rst:47
+#: ../../source/install.rst:54
msgid "Verifying"
msgstr "Verifica in corso"
-#: ../../source/install.rst:49
+#: ../../source/install.rst:56
#, fuzzy
msgid ""
"Once you have imported Micah's public key into your GnuPG keychain, "
@@ -167,22 +177,22 @@ msgstr ""
"scaricato il binario e scaricato la firma ``.asc``, è possibile "
"verificare il binario per macOS in un terminale come questo::"
-#: ../../source/install.rst:53
+#: ../../source/install.rst:60
msgid "Or for Windows, in a command-prompt like this::"
msgstr "Oppure, per Windows, in un prompt dei comandi come questo::"
-#: ../../source/install.rst:57
+#: ../../source/install.rst:64
msgid "The expected output looks like this::"
msgstr "Il risultato atteso somiglia a questo::"
-#: ../../source/install.rst:69
+#: ../../source/install.rst:76
#, fuzzy
msgid ""
-"If you don't see 'Good signature from', there might be a problem with the"
-" integrity of the file (malicious or otherwise), and you should not "
-"install the package. (The \"WARNING:\" shown above, is not a problem with"
-" the package, it only means you haven't already defined any level of "
-"'trust' of Micah's PGP key.)"
+"If you don't see ``Good signature from``, there might be a problem with "
+"the integrity of the file (malicious or otherwise), and you should not "
+"install the package. (The ``WARNING:`` shown above, is not a problem with"
+" the package, it only means you haven't defined a level of \"trust\" of "
+"Micah's PGP key.)"
msgstr ""
"Se non viene visualizzato 'Good signature from', potrebbe verificarsi un "
"problema con l'integrità del file (dannoso o meno) e non dovresti "
@@ -190,7 +200,7 @@ msgstr ""
"il pacchetto: significa solo che non hai già definito alcun livello di "
"'fiducia' della chiave PGP di Micah.)"
-#: ../../source/install.rst:71
+#: ../../source/install.rst:78
#, fuzzy
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
@@ -317,3 +327,7 @@ msgstr ""
#~ "Project <https://2019.www.torproject.org/docs/verifying-"
#~ "signatures.html.en>`_ may be helpful."
#~ msgstr ""
+
+#~ msgid "Install in Linux"
+#~ msgstr "Installa su Linux"
+
diff --git a/docs/source/locale/it/LC_MESSAGES/security.po b/docs/source/locale/it/LC_MESSAGES/security.po
index 4cf98dfe..5a2f4e5e 100644
--- a/docs/source/locale/it/LC_MESSAGES/security.po
+++ b/docs/source/locale/it/LC_MESSAGES/security.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-12-13 15:48-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2021-04-09 19:26+0000\n"
"Last-Translator: rc <coluccini.riccardo@gmail.com>\n"
-"Language-Team: it <LL@li.org>\n"
"Language: it\n"
+"Language-Team: it <LL@li.org>\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.6-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/security.rst:2
msgid "Security Design"
@@ -90,41 +89,30 @@ msgstr ""
msgid ""
"**If an attacker learns about the onion service, it still can't access "
"anything.** Prior attacks against the Tor network to enumerate onion "
-"services allowed the attacker to discover private .onion addresses. If an"
-" attack discovers a private OnionShare address, a password will be "
-"prevent them from accessing it (unless the OnionShare user chooses to "
-"turn it off and make it public). The password is generated by choosing "
-"two random words from a list of 6800 words, making 6800², or about 46 "
-"million possible passwords. Only 20 wrong guesses can be made before "
-"OnionShare stops the server, preventing brute force attacks against the "
-"password."
+"services allowed the attacker to discover private ``.onion`` addresses. "
+"If an attack discovers a private OnionShare address, they will also need "
+"to guess the private key used for client authentication in order to "
+"access it (unless the OnionShare user chooses make their service public "
+"by turning off the private key -- see :ref:`turn_off_private_key`)."
msgstr ""
-"**Se un utente malintenzionato viene a conoscenza del servizio onion, non "
-"può comunque accedere a nulla.** Gli attacchi precedenti contro la rete Tor "
-"per enumerare i servizi onion hanno consentito all'utente malintenzionato di "
-"individuare indirizzi onion privati. Se un attacco rivela un indirizzo "
-"OnionShare privato, una password impedirà loro di accedervi (a meno che "
-"l'utente OnionShare non scelga di disattivarlo e renderlo pubblico). La "
-"password viene generata scegliendo due parole casuali da un elenco di 6800 "
-"parole, ovvero 6800² o circa 46 milioni di password possibili. Solo 20 "
-"tentativi errati possono essere fatti prima che OnionShare fermi il server, "
-"prevenendo attacchi di tipo brute force contro la password."
#: ../../source/security.rst:20
msgid "What OnionShare doesn't protect against"
msgstr "Da cosa non ti protegge OnionShare"
#: ../../source/security.rst:22
+#, fuzzy
msgid ""
-"**Communicating the OnionShare address might not be secure.** "
-"Communicating the OnionShare address to people is the responsibility of "
-"the OnionShare user. If sent insecurely (such as through an email message"
-" monitored by an attacker), an eavesdropper can tell that OnionShare is "
-"being used. If the eavesdropper loads the address in Tor Browser while "
-"the service is still up, they can access it. To avoid this, the address "
-"must be communicateed securely, via encrypted text message (probably with"
-" disappearing messages enabled), encrypted email, or in person. This "
-"isn't necessary when using OnionShare for something that isn't secret."
+"**Communicating the OnionShare address and private key might not be "
+"secure.** Communicating the OnionShare address to people is the "
+"responsibility of the OnionShare user. If sent insecurely (such as "
+"through an email message monitored by an attacker), an eavesdropper can "
+"tell that OnionShare is being used. If the eavesdropper loads the address"
+" in Tor Browser while the service is still up, they can access it. To "
+"avoid this, the address must be communicated securely, via encrypted text"
+" message (probably with disappearing messages enabled), encrypted email, "
+"or in person. This isn't necessary when using OnionShare for something "
+"that isn't secret."
msgstr ""
"**Comunicare l'indirizzo OnionShare potrebbe non essere sicuro.** "
"Comunicare l'indirizzo OnionShare agli utenti è responsabilità "
@@ -139,19 +127,20 @@ msgstr ""
"OnionShare per qualcosa che non è segreto."
#: ../../source/security.rst:24
+#, fuzzy
msgid ""
-"**Communicating the OnionShare address might not be anonymous.** Extra "
-"precautions must be taken to ensure the OnionShare address is "
-"communicated anonymously. A new email or chat account, only accessed over"
-" Tor, can be used to share the address. This isn't necessary unless "
-"anonymity is a goal."
+"**Communicating the OnionShare address and private key might not be "
+"anonymous.** Extra precautions must be taken to ensure the OnionShare "
+"address is communicated anonymously. A new email or chat account, only "
+"accessed over Tor, can be used to share the address. This isn't necessary"
+" unless anonymity is a goal."
msgstr ""
"**La comunicazione dell'indirizzo di OnionShare potrebbe non essere "
"anonima.** Devono essere prese ulteriori precauzioni per garantire che "
-"l'indirizzo OnionShare sia comunicato in maniera anonima. Per condividerlo "
-"si possono utilizzare una nuova mail o un nuovo account di chat, a cui si "
-"accede solo via Tor. Tutto questo non è necessario a meno che l'anonimato "
-"non sia un tuo obiettivo."
+"l'indirizzo OnionShare sia comunicato in maniera anonima. Per "
+"condividerlo si possono utilizzare una nuova mail o un nuovo account di "
+"chat, a cui si accede solo via Tor. Tutto questo non è necessario a meno "
+"che l'anonimato non sia un tuo obiettivo."
#~ msgid "Security design"
#~ msgstr ""
@@ -259,3 +248,45 @@ msgstr ""
#~ "anonymity, such as co-workers who "
#~ "know each other sharing work documents."
#~ msgstr ""
+
+#~ msgid ""
+#~ "**If an attacker learns about the "
+#~ "onion service, it still can't access "
+#~ "anything.** Prior attacks against the "
+#~ "Tor network to enumerate onion services"
+#~ " allowed the attacker to discover "
+#~ "private .onion addresses. If an attack"
+#~ " discovers a private OnionShare address,"
+#~ " a password will be prevent them "
+#~ "from accessing it (unless the OnionShare"
+#~ " user chooses to turn it off "
+#~ "and make it public). The password "
+#~ "is generated by choosing two random "
+#~ "words from a list of 6800 words,"
+#~ " making 6800², or about 46 million"
+#~ " possible passwords. Only 20 wrong "
+#~ "guesses can be made before OnionShare"
+#~ " stops the server, preventing brute "
+#~ "force attacks against the password."
+#~ msgstr ""
+#~ "**Se un utente malintenzionato viene a"
+#~ " conoscenza del servizio onion, non "
+#~ "può comunque accedere a nulla.** Gli "
+#~ "attacchi precedenti contro la rete Tor"
+#~ " per enumerare i servizi onion hanno"
+#~ " consentito all'utente malintenzionato di "
+#~ "individuare indirizzi onion privati. Se "
+#~ "un attacco rivela un indirizzo "
+#~ "OnionShare privato, una password impedirà "
+#~ "loro di accedervi (a meno che "
+#~ "l'utente OnionShare non scelga di "
+#~ "disattivarlo e renderlo pubblico). La "
+#~ "password viene generata scegliendo due "
+#~ "parole casuali da un elenco di "
+#~ "6800 parole, ovvero 6800² o circa "
+#~ "46 milioni di password possibili. Solo"
+#~ " 20 tentativi errati possono essere "
+#~ "fatti prima che OnionShare fermi il "
+#~ "server, prevenendo attacchi di tipo "
+#~ "brute force contro la password."
+
diff --git a/docs/source/locale/it/LC_MESSAGES/tor.po b/docs/source/locale/it/LC_MESSAGES/tor.po
index 405ea16e..1fa5e78f 100644
--- a/docs/source/locale/it/LC_MESSAGES/tor.po
+++ b/docs/source/locale/it/LC_MESSAGES/tor.po
@@ -7,17 +7,17 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-12-13 15:48-0800\n"
-"PO-Revision-Date: 2021-04-09 19:26+0000\n"
-"Last-Translator: rc <coluccini.riccardo@gmail.com>\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
+"PO-Revision-Date: 2022-01-20 11:57+0000\n"
+"Last-Translator: albanobattistella <albano_battistella@hotmail.com>\n"
"Language-Team: it <LL@li.org>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.6-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"X-Generator: Weblate 4.11-dev\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/tor.rst:2
msgid "Connecting to Tor"
@@ -25,16 +25,16 @@ msgstr "Connessione a Tor in corso"
#: ../../source/tor.rst:4
msgid ""
-"Pick a way to connect OnionShare to Tor by clicking the \"⚙\" icon in the"
-" bottom right of the OnionShare window to get to its settings."
+"Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in"
+" the bottom right of the OnionShare window to open the Tor Settings tab."
msgstr ""
-"Scegli un modo per collegare OnionShare a Tor cliccando l'icona \"⚙\" "
-"nella parte inferiore destra della finestra di OnionShare per raggiungere"
-" le impostazioni."
+"Scegli un modo per connettere OnionShare a Tor facendo clic sull'icona Tor "
+"onion in basso a destra nella finestra di OnionShare per aprire la scheda "
+"Impostazioni Tor."
#: ../../source/tor.rst:9
-msgid "Use the ``tor`` bundled with OnionShare"
-msgstr "Usa ``tor`` fornito con OnionShare"
+msgid "Use the Tor version built into OnionShare"
+msgstr "Usa la versione Tor integrata in OnionShare"
#: ../../source/tor.rst:11
msgid ""
@@ -58,10 +58,63 @@ msgstr ""
"sistema ``tor`` da soli."
#: ../../source/tor.rst:18
+msgid "Getting Around Censorship"
+msgstr "Come aggirare la censura"
+
+#: ../../source/tor.rst:20
+msgid ""
+"If your access to the internet is censored, you can configure OnionShare "
+"to connect to the Tor network using `Tor bridges <https://tb-"
+"manual.torproject.org/bridges/>`_. If OnionShare connects to Tor without "
+"one, you don't need to use a bridge."
+msgstr ""
+"Se il tuo accesso a Internet è censurato, puoi configurare OnionShare per la "
+"connessione alla rete Tor usando `Tor bridges <https://tb-manual.torproject."
+"org/bridges/>`_. Se OnionShare si connette a Tor senza uno, non è necessario "
+"utilizzare un bridge."
+
+#: ../../source/tor.rst:22
+msgid ""
+"To use a bridge, open the Tor Settings tab. You must select \"Use the Tor"
+" version built into OnionShare\" and check the \"Use a bridge\" checkbox."
+msgstr ""
+"Per utilizzare un bridge, apri la scheda Impostazioni Tor. Devi selezionare "
+"\"Usa la versione Tor incorporata in OnionShare\" e selezionare la casella "
+"\"Usa un bridge\"."
+
+#: ../../source/tor.rst:25
+msgid ""
+"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges "
+"is recommended over using `meek-azure`."
+msgstr ""
+"Prova prima a usare un bridge integrato. Si consiglia di utilizzare i bridge "
+"`obfs4` o `snowflake` rispetto a `meek-azure`."
+
+#: ../../source/tor.rst:29
+msgid ""
+"If using a built-in bridge doesn't work, you can request a bridge from "
+"torproject.org. You will have to solve a CAPTCHA in order to request a "
+"bridge. (This makes it more difficult for governments or ISPs to block "
+"access to Tor bridges.)"
+msgstr ""
+"Se l'utilizzo di un bridge integrato non funziona, puoi richiedere un bridge "
+"da torproject.org. Dovrai risolvere un CAPTCHA per richiedere un bridge. ("
+"Ciò rende più difficile per i governi o gli ISP bloccare l'accesso ai bridge "
+"Tor.)"
+
+#: ../../source/tor.rst:33
+msgid ""
+"You also have the option of using a bridge that you learned about from a "
+"trusted source."
+msgstr ""
+"Hai anche la possibilità di utilizzare un bridge che hai appreso da una "
+"fonte attendibile."
+
+#: ../../source/tor.rst:36
msgid "Attempt auto-configuration with Tor Browser"
msgstr "Tenta la configurazione automatica con il Browser Tor"
-#: ../../source/tor.rst:20
+#: ../../source/tor.rst:38
msgid ""
"If you have `downloaded the Tor Browser <https://www.torproject.org>`_ "
"and don't want two ``tor`` processes running, you can use the ``tor`` "
@@ -73,11 +126,11 @@ msgstr ""
"processo `` tor`` dal Browser Tor. Tieni presente che devi tenere il "
"Browser Tor aperto in background mentre usi OnionShare affinché funzioni."
-#: ../../source/tor.rst:24
+#: ../../source/tor.rst:42
msgid "Using a system ``tor`` in Windows"
msgstr "Utilizzando un sistema ``tor`` su Windows"
-#: ../../source/tor.rst:26
+#: ../../source/tor.rst:44
msgid ""
"This is fairly advanced. You'll need to know how edit plaintext files and"
" do stuff as an administrator."
@@ -85,19 +138,20 @@ msgstr ""
"Questo è abbastanza avanzato. Avrai bisogno di sapere come modificare i "
"file di testo in chiaro e fare cose come amministratore."
-#: ../../source/tor.rst:28
+#: ../../source/tor.rst:46
msgid ""
"Download the Tor Windows Expert Bundle `from "
"<https://www.torproject.org/download/tor/>`_. Extract the compressed file"
" and copy the extracted folder to ``C:\\Program Files (x86)\\`` Rename "
"the extracted folder with ``Data`` and ``Tor`` in it to ``tor-win32``."
msgstr ""
-"Scarica il Tor Windows Expert Bundle `da <https://www.torproject.org/"
-"download/tor/>`_. Estrai il file compresso e copia la cartella estratta in "
-"``C:\\Program Files (x86)\\`` Rinomina le cartella all'interno che hanno il "
-"nome ``Data`` e ``Tor`` in ``tor-win32``."
+"Scarica il Tor Windows Expert Bundle `da "
+"<https://www.torproject.org/download/tor/>`_. Estrai il file compresso e "
+"copia la cartella estratta in ``C:\\Program Files (x86)\\`` Rinomina le "
+"cartella all'interno che hanno il nome ``Data`` e ``Tor`` in ``tor-"
+"win32``."
-#: ../../source/tor.rst:32
+#: ../../source/tor.rst:50
msgid ""
"Make up a control port password. (Using 7 words in a sequence like "
"``comprised stumble rummage work avenging construct volatile`` is a good "
@@ -111,7 +165,7 @@ msgstr ""
"comandi (``cmd``) come amministratore e usa ``tor. exe --hash-password`` "
"per generare un hash della tua password. Per esempio::"
-#: ../../source/tor.rst:39
+#: ../../source/tor.rst:57
msgid ""
"The hashed password output is displayed after some warnings (which you "
"can ignore). In the case of the above example, it is "
@@ -121,7 +175,7 @@ msgstr ""
"(che è possibile ignorare). Nel caso dell'esempio precedente, è "
"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
-#: ../../source/tor.rst:41
+#: ../../source/tor.rst:59
msgid ""
"Now create a new text file at ``C:\\Program Files (x86)\\tor-"
"win32\\torrc`` and put your hashed password output in it, replacing the "
@@ -131,7 +185,7 @@ msgstr ""
" '' e inseriscici l'output della password con l'hash, sostituendo "
"``HashedControlPassword`` con quello appena generato:"
-#: ../../source/tor.rst:46
+#: ../../source/tor.rst:64
msgid ""
"In your administrator command prompt, install ``tor`` as a service using "
"the appropriate ``torrc`` file you just created (as described in "
@@ -144,12 +198,11 @@ msgstr ""
"`<https://2019.www.torproject.org/docs/faq.html.en#NTService>`_). Come "
"questo::"
-#: ../../source/tor.rst:50
+#: ../../source/tor.rst:68
msgid "You are now running a system ``tor`` process in Windows!"
msgstr "Ora stai eseguendo un processo di sistema ``tor`` su Windows!"
-#: ../../source/tor.rst:52
-#, fuzzy
+#: ../../source/tor.rst:70
msgid ""
"Open OnionShare and click the \"⚙\" icon in it. Under \"How should "
"OnionShare connect to Tor?\" choose \"Connect using control port\", and "
@@ -160,34 +213,34 @@ msgid ""
"to the Tor controller\"."
msgstr ""
"Apri OnionShare e fai clic sull'icona \"⚙\" al suo interno. In \"Come "
-"dovrebbe connettersi OnionShare a Tor?\" scegli \"Connetti utilizzando la "
-"porta di controllo\" e imposta \"Porta di controllo\" su \"127.0.0.1\" e "
-"\"Porta\" su \"9051\". In \"Impostazioni di autenticazione Tor\" scegli "
-"\"Password\" e imposta la password sulla password della porta di controllo "
-"che hai scelto sopra. Fai clic sul pulsante \"Prova connessione a Tor\". Se "
-"tutto va bene, dovresti vedere \"Connesso al controller di Tor\"."
-
-#: ../../source/tor.rst:61
+"dovrebbe OnionShare connettersi a Tor?\" scegli \"Connetti usando la porta "
+"di controllo\" e imposta \"Porta di controllo\" su ``127.0.0.1`` e \"Porta\" "
+"su ``9051``. In \"Impostazioni di autenticazione Tor\" scegli \"Password\" e "
+"imposta la password sulla password della porta di controllo che hai scelto "
+"sopra. Fai clic sul pulsante \"Test connessione a Tor\". Se tutto va bene, "
+"dovresti vedere \"Connesso al controller Tor\"."
+
+#: ../../source/tor.rst:79
msgid "Using a system ``tor`` in macOS"
msgstr "Utilizzando un sistema ``tor`` su macOS"
-#: ../../source/tor.rst:63
+#: ../../source/tor.rst:81
msgid ""
"First, install `Homebrew <https://brew.sh/>`_ if you don't already have "
"it, and then install Tor::"
msgstr ""
-"Innanzitutto, installa `Homebrew <https://brew.sh/index_it>`_ se non lo hai "
-"già. Quindi, installa Tor::"
+"Innanzitutto, installa `Homebrew <https://brew.sh/index_it>`_ se non lo "
+"hai già. Quindi, installa Tor::"
-#: ../../source/tor.rst:67
+#: ../../source/tor.rst:85
msgid "Now configure Tor to allow connections from OnionShare::"
msgstr "Ora configura Tor per consentire le connessioni da OnionShare::"
-#: ../../source/tor.rst:74
+#: ../../source/tor.rst:92
msgid "And start the system Tor service::"
msgstr "E avvia il servizio di sistema Tor:"
-#: ../../source/tor.rst:78
+#: ../../source/tor.rst:96
msgid ""
"Open OnionShare and click the \"⚙\" icon in it. Under \"How should "
"OnionShare connect to Tor?\" choose \"Connect using socket file\", and "
@@ -202,15 +255,15 @@ msgstr ""
"autenticazione di Tor\" scegli \"Nessuna autenticazione o autenticazione "
"cookie\". Fai clic sul pulsante \"Prova connessione a Tor\"."
-#: ../../source/tor.rst:84 ../../source/tor.rst:104
+#: ../../source/tor.rst:102 ../../source/tor.rst:122
msgid "If all goes well, you should see \"Connected to the Tor controller\"."
msgstr "Se tutto va bene, dovresti vedere \"Connesso al controller di Tor\"."
-#: ../../source/tor.rst:87
+#: ../../source/tor.rst:105
msgid "Using a system ``tor`` in Linux"
msgstr "Utilizzando un sistema ``tor`` su Linux"
-#: ../../source/tor.rst:89
+#: ../../source/tor.rst:107
msgid ""
"First, install the ``tor`` package. If you're using Debian, Ubuntu, or a "
"similar Linux distro, It is recommended to use the Tor Project's "
@@ -222,7 +275,7 @@ msgstr ""
"`repository ufficiale del progetto Tor "
"<https://support.torproject.org/it/apt/tor-deb-repo/>`_."
-#: ../../source/tor.rst:91
+#: ../../source/tor.rst:109
msgid ""
"Next, add your user to the group that runs the ``tor`` process (in the "
"case of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to "
@@ -233,7 +286,7 @@ msgstr ""
"OnionShare per connettersi al file socket di controllo del tuo sistema "
"``tor``."
-#: ../../source/tor.rst:93
+#: ../../source/tor.rst:111
msgid ""
"Add your user to the ``debian-tor`` group by running this command "
"(replace ``username`` with your actual username)::"
@@ -241,7 +294,7 @@ msgstr ""
"Aggiungi il tuo utente al gruppo ``debian-tor`` eseguendo questo comando "
"(sostituisci ``username`` con il tuo nome utente effettivo):"
-#: ../../source/tor.rst:97
+#: ../../source/tor.rst:115
msgid ""
"Reboot your computer. After it boots up again, open OnionShare and click "
"the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" "
@@ -257,40 +310,6 @@ msgstr ""
"autenticazione di Tor\" scegli \"Nessuna autenticazione o autenticazione "
"cookie\". Fai clic sul pulsante \"Prova connessione a Tor\"."
-#: ../../source/tor.rst:107
-msgid "Using Tor bridges"
-msgstr "Usare i bridge di Tor"
-
-#: ../../source/tor.rst:109
-msgid ""
-"If your access to the Internet is censored, you can configure OnionShare "
-"to connect to the Tor network using `Tor bridges "
-"<https://2019.www.torproject.org/docs/bridges.html.en>`_. If OnionShare "
-"connects to Tor without one, you don't need to use a bridge."
-msgstr ""
-"Se il tuo accesso a Internet è censurato, puoi configurare OnionShare per"
-" connettersi alla rete Tor utilizzando `i bridge di "
-"Tor<https://2019.www.torproject.org/docs/bridges.html.en>`_. Se "
-"OnionShare si connette a Tor senza uno, non è necessario utilizzare un "
-"bridge."
-
-#: ../../source/tor.rst:111
-msgid "To configure bridges, click the \"⚙\" icon in OnionShare."
-msgstr "Per configurare i bridge, fare clic sull'icona \"⚙\" in OnionShare."
-
-#: ../../source/tor.rst:113
-msgid ""
-"You can use the built-in obfs4 pluggable transports, the built-in "
-"meek_lite (Azure) pluggable transports, or custom bridges, which you can "
-"obtain from Tor's `BridgeDB <https://bridges.torproject.org/>`_. If you "
-"need to use a bridge, try the built-in obfs4 ones first."
-msgstr ""
-"È possibile utilizzare i trasporti collegabili obfs4 incorporati, i "
-"trasporti collegabili meek_lite (Azure) incorporati o bridge "
-"personalizzati, che è possibile ottenere da `BridgeDB "
-"<https://bridges.torproject.org/?lang=it>`_ di Tor. Se hai bisogno di "
-"usare un bridge, prova prima quelli incorporati obfs4."
-
#~ msgid "Using a system Tor in Mac OS X"
#~ msgstr ""
@@ -507,3 +526,31 @@ msgstr ""
#~ " estratta in ``C:\\Programmi(x86)\\`` Rinomina"
#~ " la cartella estratta con ``Dati`` e"
#~ " `` Tor`` in ``tor-win32``."
+
+#~ msgid "Use the ``tor`` bundled with OnionShare"
+#~ msgstr "Usa ``tor`` fornito con OnionShare"
+
+#~ msgid "Using Tor bridges"
+#~ msgstr "Usare i bridge di Tor"
+
+#~ msgid "To configure bridges, click the \"⚙\" icon in OnionShare."
+#~ msgstr "Per configurare i bridge, fare clic sull'icona \"⚙\" in OnionShare."
+
+#~ msgid ""
+#~ "You can use the built-in obfs4 "
+#~ "pluggable transports, the built-in "
+#~ "meek_lite (Azure) pluggable transports, or "
+#~ "custom bridges, which you can obtain "
+#~ "from Tor's `BridgeDB "
+#~ "<https://bridges.torproject.org/>`_. If you need "
+#~ "to use a bridge, try the built-"
+#~ "in obfs4 ones first."
+#~ msgstr ""
+#~ "È possibile utilizzare i trasporti "
+#~ "collegabili obfs4 incorporati, i trasporti "
+#~ "collegabili meek_lite (Azure) incorporati o"
+#~ " bridge personalizzati, che è possibile "
+#~ "ottenere da `BridgeDB "
+#~ "<https://bridges.torproject.org/?lang=it>`_ di Tor. "
+#~ "Se hai bisogno di usare un bridge,"
+#~ " prova prima quelli incorporati obfs4."
diff --git a/docs/source/locale/ja/LC_MESSAGES/advanced.po b/docs/source/locale/ja/LC_MESSAGES/advanced.po
index 8b9457ea..31b78cde 100644
--- a/docs/source/locale/ja/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/ja/LC_MESSAGES/advanced.po
@@ -3,27 +3,29 @@
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
-#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
-"Report-Msgid-Bugs-To: \n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2022-01-11 05:54+0000\n"
+"Last-Translator: Taro Tanaka <anon_japan@protonmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Weblate 4.10.1\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/advanced.rst:2
msgid "Advanced Usage"
-msgstr ""
+msgstr "先進の使用"
#: ../../source/advanced.rst:7
msgid "Save Tabs"
-msgstr ""
+msgstr "タブを保存する"
#: ../../source/advanced.rst:9
msgid ""
@@ -33,6 +35,9 @@ msgid ""
"useful if you want to host a website available from the same OnionShare "
"address even if you reboot your computer."
msgstr ""
+"OnionShareのデフォルト設定では、全ての機能は一時的です。OnionShareタブを閉じると、そのアドレスは消えて再びに使えません。場合によっては"
+"永続的なOnionShareサービスが必要かもしれない。例えばパソコンを再起動しても、永続的なアドレスでOnionShareウェブサイトをホストしたい場合"
+"には役立つでしょう。"
#: ../../source/advanced.rst:13
msgid ""
@@ -40,6 +45,8 @@ msgid ""
"open it when I open OnionShare\" box before starting the server. When a "
"tab is saved a purple pin icon appears to the left of its server status."
msgstr ""
+"タブを永続的にするのに、サービスを実行する前に「このタブを保存し、OnionShareがスタートアップの時に自動的に開く」というボックスをチェックする。保"
+"存された場合、紫色のピンはタブの左側に表示されます。"
#: ../../source/advanced.rst:18
msgid ""
@@ -52,7 +59,7 @@ msgstr ""
msgid ""
"If you save a tab, a copy of that tab's onion service secret key will be "
"stored on your computer with your OnionShare settings."
-msgstr ""
+msgstr "タブを保存すると、そのonionサービスの秘密鍵はOnionShare設定と一緒にパソコンに保存されます。"
#: ../../source/advanced.rst:26
msgid "Turn Off Passwords"
@@ -85,7 +92,7 @@ msgstr ""
#: ../../source/advanced.rst:38
msgid "Scheduled Times"
-msgstr ""
+msgstr "予定した時間"
#: ../../source/advanced.rst:40
msgid ""
@@ -95,6 +102,9 @@ msgid ""
"scheduled time\", \"Stop onion service at scheduled time\", or both, and "
"set the respective desired dates and times."
msgstr ""
+"OnionShareでは、サービスの開始・停止する時間を予定することができます。サーバーを起動する前に、そのタブに「詳細設定を表示」をクリックして、「 "
+"指定の日時にonionサービスを起動する 」または「 指定の日時にonionサービスを停止する "
+"」それとも両方のボックスをチェックして、希望日時を入力する。"
#: ../../source/advanced.rst:43
msgid ""
@@ -103,6 +113,9 @@ msgid ""
"starts. If you scheduled it to stop in the future, after it's started you"
" will see a timer counting down to when it will stop automatically."
msgstr ""
+"サービスを将来に起動するよう設定した場合、「 共有を開始 "
+"」ボタンをクリックすると開始時間までの減算カウンターが表示されます。将来に停止するよう設定した場合、「 共有を開始 "
+"」ボタンをクリックすると普通に開始して、停止する時間までの減算カウンターは表示されます。"
#: ../../source/advanced.rst:46
msgid ""
@@ -111,6 +124,8 @@ msgid ""
"time in the future if anything happens to you. If nothing happens to you,"
" you can cancel the service before it's scheduled to start."
msgstr ""
+"**自動的な起動を予定することで、OnionShareのサービスを「デッドマン装置」として使えます。** "
+"最悪の事態が起きた場合、特定時間にサービスは自動的に立ち上がります。何も起きなかったら、立ち上がる時点の前に停止できます。"
#: ../../source/advanced.rst:51
msgid ""
@@ -122,29 +137,31 @@ msgstr ""
#: ../../source/advanced.rst:56
msgid "Command-line Interface"
-msgstr ""
+msgstr "コマンドライン・インターフェース"
#: ../../source/advanced.rst:58
msgid ""
"In addition to its graphical interface, OnionShare has a command-line "
"interface."
-msgstr ""
+msgstr "グラフィカル・インターフェースに加えて、OnionShareにはコマンドライン・インターフェースがあります。"
#: ../../source/advanced.rst:60
msgid ""
"You can install just the command-line version of OnionShare using "
"``pip3``::"
-msgstr ""
+msgstr "``pip3``:: を利用して、OnionShareのコマンドライン版のみをインストールできます。"
#: ../../source/advanced.rst:64
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
msgstr ""
+"``tor`` パッケージもインストールする必要があるとご了承ください。macOSの場合は ``brew install tor`` "
+"でインストールできます"
#: ../../source/advanced.rst:66
msgid "Then run it like this::"
-msgstr ""
+msgstr "そして以下のコマンドで実行できます ::"
#: ../../source/advanced.rst:70
msgid ""
@@ -152,16 +169,18 @@ msgid ""
"also just run ``onionshare.cli`` to access the command-line interface "
"version."
msgstr ""
+"LinuxのSnapcraftパッケージでOnionShareをインストールした場合、``onionshare.cli`` "
+"を実行するだけでコマンドライン・インターフェイスをアクセスできます。"
#: ../../source/advanced.rst:73
msgid "Usage"
-msgstr ""
+msgstr "使用方法"
#: ../../source/advanced.rst:75
msgid ""
"You can browse the command-line documentation by running ``onionshare "
"--help``::"
-msgstr ""
+msgstr "コマンドラインのドキュメンテーションを閲覧するには、 ``onionshare --help``::"
#: ../../source/advanced.rst:132
msgid "Legacy Addresses"
@@ -401,4 +420,3 @@ msgstr ""
#~ " services will soon be removed from"
#~ " OnionShare as well."
#~ msgstr ""
-
diff --git a/docs/source/locale/ja/LC_MESSAGES/develop.po b/docs/source/locale/ja/LC_MESSAGES/develop.po
index 79008008..17c8e22d 100644
--- a/docs/source/locale/ja/LC_MESSAGES/develop.po
+++ b/docs/source/locale/ja/LC_MESSAGES/develop.po
@@ -3,27 +3,29 @@
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
-#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
-"Report-Msgid-Bugs-To: \n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2022-01-20 11:57+0000\n"
+"Last-Translator: Taro Tanaka <anon_japan@protonmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Weblate 4.11-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/develop.rst:2
msgid "Developing OnionShare"
-msgstr ""
+msgstr "OnionShareを開発する"
#: ../../source/develop.rst:7
msgid "Collaborating"
-msgstr ""
+msgstr "コラボレーション"
#: ../../source/develop.rst:9
msgid ""
@@ -400,4 +402,3 @@ msgstr ""
#~ msgid "Do the same for other untranslated lines."
#~ msgstr ""
-
diff --git a/docs/source/locale/ja/LC_MESSAGES/features.po b/docs/source/locale/ja/LC_MESSAGES/features.po
index e71451fb..912833f1 100644
--- a/docs/source/locale/ja/LC_MESSAGES/features.po
+++ b/docs/source/locale/ja/LC_MESSAGES/features.po
@@ -3,23 +3,25 @@
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
-#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
-"Report-Msgid-Bugs-To: \n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2021-12-10 02:52+0000\n"
+"Last-Translator: Taro Tanaka <anon_japan@protonmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Weblate 4.10-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/features.rst:4
msgid "How OnionShare Works"
-msgstr ""
+msgstr "OnionShareの仕組みの説明"
#: ../../source/features.rst:6
msgid ""
@@ -27,6 +29,9 @@ msgid ""
"other people as `Tor <https://www.torproject.org/>`_ `onion services "
"<https://community.torproject.org/onion-services/>`_."
msgstr ""
+"ウェブサーバーが自宅のパソコンでローカルに作られ、`Tor <https://www.torproject.org/>`_ネットワーク上で "
+"`「オニオン・サービス」 <https://community.torproject.org/onion-services/"
+">`_として閲覧できるようにされます。."
#: ../../source/features.rst:8
msgid ""
@@ -64,10 +69,13 @@ msgid ""
"Tor onion services too, it also protects your anonymity. See the "
":doc:`security design </security>` for more info."
msgstr ""
+"ウェブサーバーは自宅のパソコンだからこそ、開発者さえも、*第三者はOnionShare内のコンテンツにアクセスできない。*完全にプライベートです。そしてO"
+"nionShareはTorのオニオン・サービスに基づいているので、匿名性も守られています。詳しくは「`security design "
+"</security>`」という:doc:を訪れて下さい。"
#: ../../source/features.rst:21
msgid "Share Files"
-msgstr ""
+msgstr "ファイルを共有"
#: ../../source/features.rst:23
msgid ""
@@ -75,12 +83,14 @@ msgid ""
"anonymously. Open a share tab, drag in the files and folders you wish to "
"share, and click \"Start sharing\"."
msgstr ""
+"OnionShareで、ファイルやフォルダーを安全そして匿名で他の人と共有できます。共有タブを開いて、共有したいファイルをドラッグアンドドロップして、「共"
+"有を開始」をクリックする。"
#: ../../source/features.rst:27 ../../source/features.rst:93
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
-msgstr ""
+msgstr "ファイルを追加したら、設定は表示されます。共有を開始する前に、ふさわしい設定を選択して下さい。"
#: ../../source/features.rst:31
msgid ""
@@ -96,7 +106,7 @@ msgid ""
"Also, if you uncheck this box, people will be able to download the "
"individual files you share rather than a single compressed version of all"
" the files."
-msgstr ""
+msgstr "このチェックを外すと、全ファイルの圧縮された版ではなく各ファイルを別々にダウンロードできるようにします。"
#: ../../source/features.rst:36
msgid ""
@@ -105,6 +115,8 @@ msgid ""
" website down. You can also click the \"↑\" icon in the top-right corner "
"to show the history and progress of people downloading files from you."
msgstr ""
+"共有の始めたい時に、「共有を開始」ボタンをクリックして下さい。いつでも「共有を停止」ボタンをクリックしたら、もしくはOnionShareを閉じたらウェブサ"
+"イトは停止されます。右上にある「↑」ボタンをクリックすると、ファイルのダウンロード状態・歴史は表示されます。"
#: ../../source/features.rst:40
msgid ""
@@ -144,7 +156,7 @@ msgstr ""
msgid ""
"You can also click the down \"↓\" icon in the top-right corner to show "
"the history and progress of people sending files to you."
-msgstr ""
+msgstr "右上にある「↓」ボタンをクリックすると、ファイルのアップロード状態・歴史は表示されます。"
#: ../../source/features.rst:60
msgid "Here is what it looks like for someone sending you files."
@@ -166,10 +178,13 @@ msgid ""
"quite as secure version of `SecureDrop <https://securedrop.org/>`_, the "
"whistleblower submission system."
msgstr ""
+"OnionShareのファイル受信サービスは匿名情報筋から安全に文書を受け入るのにジャーナリストなどに役立つでしょう。このように使うと、OnionShar"
+"eはライトウェイト、単純、そして安全性の少し低い`SecureDrop <https://securedrop.org/"
+">`_(安全に匿名情報源から情報を入手するためのシステム)の代替品になります。"
#: ../../source/features.rst:69
msgid "Use at your own risk"
-msgstr ""
+msgstr "自己責任で使って下さい"
#: ../../source/features.rst:71
msgid ""
@@ -188,10 +203,13 @@ msgid ""
"<https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ "
"disposableVM."
msgstr ""
+"OnionShareでオフィス文書やPDFを受信する場合、`Dangerzone <https://dangerzone.rocks/"
+">`_を使って安全に開けるようなPDFファイルに変換できます。さらに、`Tails <https://tails.boum.org/>`_または`"
+"Qubes <https://qubes-os.org/>`_ の使い捨て仮想マシンを使ってより安全に信頼できないファイルを開くことができます。"
#: ../../source/features.rst:76
msgid "Tips for running a receive service"
-msgstr ""
+msgstr "ファイル受信サービスを管理するアドバイス"
#: ../../source/features.rst:78
msgid ""
@@ -210,7 +228,7 @@ msgstr ""
#: ../../source/features.rst:83
msgid "Host a Website"
-msgstr ""
+msgstr "ウェブサイトをホストする"
#: ../../source/features.rst:85
msgid ""
@@ -218,6 +236,8 @@ msgid ""
"the files and folders that make up the static content there, and click "
"\"Start sharing\" when you are ready."
msgstr ""
+"OnionShareでスタティック型のウェブサイトをホストするのに、ウェブサイトのタブを開いて、スタティック型のコンテンツが含まれるファイルやフォルダーを"
+"ドラッグアンドドロップして、そして「共有を開始」をクリックする。"
#: ../../source/features.rst:89
msgid ""
@@ -228,17 +248,20 @@ msgid ""
"websites that execute code or use databases. So you can't for example use"
" WordPress.)"
msgstr ""
+"``index.html``ファイルも追加すると、ウェブサイトがロードされる時にレンダーリングされます。サイトを構成するHTMLファイル、CSSファイル、"
+"JavaScriptファイル、そして画像データも追加する必要があります。(OnionShareはスタティック型のウェブサイトのみをホストできることをご了承"
+"ください。コードを実行するまたデータベースを利用するウェブサイトをホストできません。例えばWordPressを使えません。)"
#: ../../source/features.rst:91
msgid ""
"If you don't have an ``index.html`` file, it will show a directory "
"listing instead, and people loading it can look through the files and "
"download them."
-msgstr ""
+msgstr "``index.html``ファイルがない場合はディレクトリのリストは表示され、サイトをロードする人々はファイルを閲覧、ダウンロードできます。"
#: ../../source/features.rst:98
msgid "Content Security Policy"
-msgstr ""
+msgstr "コンテンツセキュリティポリシー"
#: ../../source/features.rst:100
msgid ""
@@ -259,7 +282,7 @@ msgstr ""
#: ../../source/features.rst:105
msgid "Tips for running a website service"
-msgstr ""
+msgstr "ウェブサイトのサービスを管理するアドバイス"
#: ../../source/features.rst:107
msgid ""
@@ -279,13 +302,14 @@ msgstr ""
#: ../../source/features.rst:113
msgid "Chat Anonymously"
-msgstr ""
+msgstr "匿名でチャット"
#: ../../source/features.rst:115
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't"
" log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
+"OnionShareを使って、何も記録しないプライベート、安全なチャットルームを作れます。チャットタブを開いて、「チャットサーバーを始動」をクリックする。"
#: ../../source/features.rst:119
msgid ""
@@ -302,6 +326,8 @@ msgid ""
"participate must have their Tor Browser security level set to "
"\"Standard\" or \"Safer\", instead of \"Safest\"."
msgstr ""
+"他の人はTorブラウザでOnionShareのアドレスを訪れたらチャットに参加できます。チャットルームにはJavaScriptが必要だから、参加したい方は"
+"Torブラウザのセキュリティレベルを「最も安全」ではなく「標準」または「より安全」に設定する必要があります。"
#: ../../source/features.rst:127
msgid ""
@@ -310,12 +336,14 @@ msgid ""
"and pressing ↵. Since the chat history isn't saved anywhere, it doesn't "
"get displayed at all, even if others were already chatting in the room."
msgstr ""
+"チャットルームに入る方はランダムのユーザ名を付けられます。左パネルにあるボックスに新しいユーザ名を入力して「↵」を押すと変更できます。入る前に他のユーザが"
+"チャットしてたかどうかにもかかわらず、チャット歴史はどこにも保存されていないので表示されません。"
#: ../../source/features.rst:133
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change "
"their name to anything, and there is no way to confirm anyone's identity."
-msgstr ""
+msgstr "OnionShareのチャットルームに、皆は匿名です。誰でも自由にユーザ名を変更できる、そして身元を認証する方法はありません。"
#: ../../source/features.rst:136
msgid ""
@@ -324,16 +352,18 @@ msgid ""
"messages, you can be reasonably confident the people joining the chat "
"room are your friends."
msgstr ""
+"でもOnionShareのチャットルームを作って、安全な通信でアドレスを信頼できる友達の少人数グループのみと共有すれば、チャットルームに入るユーザは実際に"
+"友達だとそれなりに確信できるでしょう。"
#: ../../source/features.rst:139
msgid "How is this useful?"
-msgstr ""
+msgstr "これは何の役に立ちますか?"
#: ../../source/features.rst:141
msgid ""
"If you need to already be using an encrypted messaging app, what's the "
"point of an OnionShare chat room to begin with? It leaves less traces."
-msgstr ""
+msgstr "どうぜ暗号化メッセンジャーアプリを使う必要あるなら、OnionShareのチャットルームには何の意味がありますか?より少ない痕跡を残します。"
#: ../../source/features.rst:143
msgid ""
@@ -359,7 +389,7 @@ msgstr ""
#: ../../source/features.rst:150
msgid "How does the encryption work?"
-msgstr ""
+msgstr "暗号化の仕組みは何ですか?"
#: ../../source/features.rst:152
msgid ""
@@ -370,12 +400,15 @@ msgid ""
"other members of the chat room using WebSockets, through their E2EE onion"
" connections."
msgstr ""
+"OnionShareはTorオニオンサービスに頼るので、TorブラウザとOnionShareの間の接続は全て終端間暗号化されている(E2EE)。メッセージ"
+"はOnionShareチャットルームに投稿されるとき、E2EEオニオン接続を介してサーバーに送られて、サーバーがWebSocketを使ってE2EEオニオン"
+"接続を介して他のユーザに送ります。"
#: ../../source/features.rst:154
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on"
" the Tor onion service's encryption instead."
-msgstr ""
+msgstr "OnionShare自体はチャットの暗号を実行せず、Torオニオンサービスの暗号に頼ります。"
#~ msgid "How OnionShare works"
#~ msgstr ""
@@ -764,4 +797,3 @@ msgstr ""
#~ "WebSockets, through their E2EE onion "
#~ "connections."
#~ msgstr ""
-
diff --git a/docs/source/locale/ja/LC_MESSAGES/help.po b/docs/source/locale/ja/LC_MESSAGES/help.po
index d1eb81e9..8002b28b 100644
--- a/docs/source/locale/ja/LC_MESSAGES/help.po
+++ b/docs/source/locale/ja/LC_MESSAGES/help.po
@@ -3,37 +3,39 @@
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
-#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
-"Report-Msgid-Bugs-To: \n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-11-15 14:42-0800\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2021-12-10 02:52+0000\n"
+"Last-Translator: Taro Tanaka <anon_japan@protonmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Weblate 4.10-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/help.rst:2
msgid "Getting Help"
-msgstr ""
+msgstr "サポートを受ける方法"
#: ../../source/help.rst:5
msgid "Read This Website"
-msgstr ""
+msgstr "このサイトを見て回る"
#: ../../source/help.rst:7
msgid ""
"You will find instructions on how to use OnionShare. Look through all of "
"the sections first to see if anything answers your questions."
-msgstr ""
+msgstr "OnionShareの説明書をここにアクセスできます。まずは見て回って、質問に回答する情報があるかどうかを確かめて下さい。"
#: ../../source/help.rst:10
msgid "Check the GitHub Issues"
-msgstr ""
+msgstr "GitHubのissuesをチェック"
#: ../../source/help.rst:12
msgid ""
@@ -45,7 +47,7 @@ msgstr ""
#: ../../source/help.rst:15
msgid "Submit an Issue Yourself"
-msgstr ""
+msgstr "新しいissueを提出する"
#: ../../source/help.rst:17
msgid ""
@@ -58,13 +60,13 @@ msgstr ""
#: ../../source/help.rst:20
msgid "Join our Keybase Team"
-msgstr ""
+msgstr "Keybaseチームに参加する"
#: ../../source/help.rst:22
msgid ""
"See :ref:`collaborating` on how to join the Keybase team used to discuss "
"the project."
-msgstr ""
+msgstr "プロジェクトを議論するためのKeybaseチームに参加する方法の詳しくは:ref:`協力`を訪れて下さい。"
#~ msgid "If you need help with OnionShare, please follow the instructions below."
#~ msgstr ""
@@ -117,4 +119,3 @@ msgstr ""
#~ "that we use to discuss the "
#~ "project."
#~ msgstr ""
-
diff --git a/docs/source/locale/ja/LC_MESSAGES/index.po b/docs/source/locale/ja/LC_MESSAGES/index.po
index 2ad2653c..ba5b8e7c 100644
--- a/docs/source/locale/ja/LC_MESSAGES/index.po
+++ b/docs/source/locale/ja/LC_MESSAGES/index.po
@@ -3,27 +3,30 @@
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
-#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
-"Report-Msgid-Bugs-To: \n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-09-03 11:46-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2021-12-10 02:52+0000\n"
+"Last-Translator: Taro Tanaka <anon_japan@protonmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Weblate 4.10-dev\n"
"Generated-By: Babel 2.8.0\n"
#: ../../source/index.rst:2
msgid "OnionShare's documentation"
-msgstr ""
+msgstr "OnionShareのドキュメンテーション"
#: ../../source/index.rst:6
msgid ""
"OnionShare is an open source tool that lets you securely and anonymously "
"share files, host websites, and chat with friends using the Tor network."
msgstr ""
-
+"OnionShareはTorネットワークを利用して安全そして匿名でファイルを共有させる、ウェブサイトをホストさせる、そして友達とチャットさせるオープンソー"
+"スのツールです。"
diff --git a/docs/source/locale/ja/LC_MESSAGES/install.po b/docs/source/locale/ja/LC_MESSAGES/install.po
index 8a1e3472..55957ac6 100644
--- a/docs/source/locale/ja/LC_MESSAGES/install.po
+++ b/docs/source/locale/ja/LC_MESSAGES/install.po
@@ -3,33 +3,36 @@
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
-#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
-"Report-Msgid-Bugs-To: \n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-12-13 15:48-0800\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2022-01-17 06:55+0000\n"
+"Last-Translator: Taro Tanaka <anon_japan@protonmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Weblate 4.10.1\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/install.rst:2
msgid "Installation"
-msgstr ""
+msgstr "インストールする方法"
#: ../../source/install.rst:5
msgid "Windows or macOS"
-msgstr ""
+msgstr "WindowsやmacOS"
#: ../../source/install.rst:7
msgid ""
"You can download OnionShare for Windows and macOS from the `OnionShare "
"website <https://onionshare.org/>`_."
msgstr ""
+"WindowsやmacOSの場合は`OnionShareホームページ <https://onionshare.org/>`_からダウンロードできます。"
#: ../../source/install.rst:12
msgid "Install in Linux"
@@ -43,32 +46,41 @@ msgid ""
"that you'll always use the newest version and run OnionShare inside of a "
"sandbox."
msgstr ""
+"Linuxの場合は、様々なインストールする方法がありますが、勧められる方法は`Flatpak <https://flatpak.org/>`_ または`"
+"Snap <https://snapcraft.io/"
+">`_のパッケージの利用です。FlatpakやSnapでは、必ず最新バージョンを入手できます、そしてサンドボックスに実行されます。"
#: ../../source/install.rst:17
msgid ""
"Snap support is built-in to Ubuntu and Fedora comes with Flatpak support,"
" but which you use is up to you. Both work in all Linux distributions."
msgstr ""
+"UbuntuにはSnapのサポートが組み込まれて、そしてFedoraにはFlatpakのサポートが組み込まれているけど、両方とも全てのLinuxディストリ"
+"ビューションに実行できるのでお好みで選んで下さい。"
#: ../../source/install.rst:19
msgid ""
"**Install OnionShare using Flatpak**: "
"https://flathub.org/apps/details/org.onionshare.OnionShare"
msgstr ""
+"**FlatpakでOnionShareをインストール**: https://flathub.org/apps/details/org."
+"onionshare.OnionShare"
#: ../../source/install.rst:21
msgid "**Install OnionShare using Snap**: https://snapcraft.io/onionshare"
-msgstr ""
+msgstr "**SnapでOnionShareをインストール**: https://snapcraft.io/onionshare"
#: ../../source/install.rst:23
msgid ""
"You can also download and install PGP-signed ``.flatpak`` or ``.snap`` "
"packages from https://onionshare.org/dist/ if you prefer."
msgstr ""
+"もしよろしければ、PGP署名された``.flatpak`` や ``.snap``パッケージを https://onionshare.org/dist/ "
+"からダウンロードしてインストールできます。"
#: ../../source/install.rst:28
msgid "Verifying PGP signatures"
-msgstr ""
+msgstr "PGP署名を確認する方法"
#: ../../source/install.rst:30
msgid ""
@@ -78,10 +90,12 @@ msgid ""
"binaries include operating system-specific signatures, and you can just "
"rely on those alone if you'd like."
msgstr ""
+"PGP署名を確認することによって、ダウンロードしたパッケージが改ざんされていないかを確認できます。WindowsやmacOSの場合、OnionShareバ"
+"イナリーにはOSに特有の署名があるので、確認は任意です。もしよろしければ、OS署名のみに頼ることができます。"
#: ../../source/install.rst:34
msgid "Signing key"
-msgstr ""
+msgstr "署名キー"
#: ../../source/install.rst:36
msgid ""
@@ -91,6 +105,10 @@ msgid ""
"<https://keys.openpgp.org/vks/v1/by-"
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
msgstr ""
+"パッケージは主任開発者のMicah "
+"Leeさんに署名されています。公開キー指紋は``927F419D7EC82C2F149C1BD1403C2657CD994F73``。Micah "
+"Leeさんの公開鍵を` keys.openpgp.org のキーサーバーからダウンロードできます <https://keys.openpgp.org/"
+"vks/v1/by-fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_。"
#: ../../source/install.rst:38
msgid ""
@@ -98,10 +116,12 @@ msgid ""
"probably want `GPGTools <https://gpgtools.org/>`_, and for Windows you "
"probably want `Gpg4win <https://www.gpg4win.org/>`_."
msgstr ""
+"署名を確認するのに、GnuPGをインストールする必要があります。macOSの場合は`GPGTools <https://gpgtools.org/"
+">`_、そしてWindowsの場合は`Gpg4win <https://www.gpg4win.org/>`_を利用できます。"
#: ../../source/install.rst:41
msgid "Signatures"
-msgstr ""
+msgstr "署名"
#: ../../source/install.rst:43
msgid ""
@@ -111,10 +131,14 @@ msgid ""
"OnionShare. You can also find them on the `GitHub Releases page "
"<https://github.com/micahflee/onionshare/releases>`_."
msgstr ""
+"署名(``.asc`` "
+"ファイルの形として)そしてWindows、macOS、Flatpak、Snap、またはソースのパッケージはhttps://onionshare.org/"
+"dist/ から入手できます(各バージョンのフォルダーに)。`GitHubのリリースページ <https://github.com/micahflee/"
+"onionshare/releases>`_にもあります。"
#: ../../source/install.rst:47
msgid "Verifying"
-msgstr ""
+msgstr "確認する方法"
#: ../../source/install.rst:49
msgid ""
@@ -122,14 +146,16 @@ msgid ""
"downloaded the binary and and ``.asc`` signature, you can verify the "
"binary for macOS in a terminal like this::"
msgstr ""
+"Micah Leeさんの公開キーをGnuPGキーチェーンにインポートしたら、そしてバイナリーと``.asc`` "
+"署名をダウンロードしたら、macOSでターミナルに以下のように確認できます::"
#: ../../source/install.rst:53
msgid "Or for Windows, in a command-prompt like this::"
-msgstr ""
+msgstr "またはWindowsの場合はコマンド・プロンプトで以下のように::"
#: ../../source/install.rst:57
msgid "The expected output looks like this::"
-msgstr ""
+msgstr "予想される出力は以下のように表示されるはず::"
#: ../../source/install.rst:69
msgid ""
@@ -147,6 +173,9 @@ msgid ""
" the `Tor Project <https://support.torproject.org/tbb/how-to-verify-"
"signature/>`_ may be useful."
msgstr ""
+"PGP署名を確認する方法の詳しくは、`Qubes OS <https://www.qubes-os.org/security/"
+"verifying-signatures/>`_または`Torプロジェクト <https://support.torproject.org/tbb/"
+"how-to-verify-signature/>`_のガイドは役立つでしょう。"
#~ msgid "Install on Windows or macOS"
#~ msgstr ""
@@ -333,4 +362,3 @@ msgstr ""
#~ "Project <https://support.torproject.org/tbb/how-to-"
#~ "verify-signature/>`_ may be helpful."
#~ msgstr ""
-
diff --git a/docs/source/locale/ja/LC_MESSAGES/security.po b/docs/source/locale/ja/LC_MESSAGES/security.po
index 05816266..666a5baf 100644
--- a/docs/source/locale/ja/LC_MESSAGES/security.po
+++ b/docs/source/locale/ja/LC_MESSAGES/security.po
@@ -3,35 +3,37 @@
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
-#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
-"Report-Msgid-Bugs-To: \n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-12-13 15:48-0800\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2021-12-10 02:52+0000\n"
+"Last-Translator: Taro Tanaka <anon_japan@protonmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Weblate 4.10-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/security.rst:2
msgid "Security Design"
-msgstr ""
+msgstr "セキュリティー設計"
#: ../../source/security.rst:4
msgid "Read :ref:`how_it_works` first to get a handle on how OnionShare works."
-msgstr ""
+msgstr "まずはOnionShareの仕組みを理解するには、:ref:`how_it_works`を訪れて下さい。"
#: ../../source/security.rst:6
msgid "Like all software, OnionShare may contain bugs or vulnerabilities."
-msgstr ""
+msgstr "全てのソフトウェアのように、OnionShareにバグや脆弱性があるかもしれない。"
#: ../../source/security.rst:9
msgid "What OnionShare protects against"
-msgstr ""
+msgstr "OnionShareが防衛できる脅威"
#: ../../source/security.rst:11
msgid ""
@@ -42,6 +44,9 @@ msgid ""
"server for that too. This avoids the traditional model of having to trust"
" the computers of others."
msgstr ""
+"**第三者はOnionShare内のデータやプロセスにアクセスできません。** OnionShareでは、全てのサービスは自宅のパソコンから直接にホストさ"
+"れます。OnionShareでファイルを共有するときに、外部サーバーにアップロードされません。OnionShareのチャットルームを作るときにも、自宅のパ"
+"ソコンはサーバー役になります。つまり、第三者のパソコンを信頼するという従来型モデルの必要がありません。"
#: ../../source/security.rst:13
msgid ""
@@ -53,6 +58,9 @@ msgid ""
"Browser with OnionShare's onion service, the traffic is encrypted using "
"the onion service's private key."
msgstr ""
+"**ネットワーク上の盗聴者がOnionShareで送受信されるデータを傍受できません。** TorオニオンサービスとTorブラウザの間の接続は終端間暗号化"
+"されます。つまり、ネットワーク盗聴者は解読できないTorトラフィックしか傍受できません。たとえ盗聴者は悪用rendezvousノードを使ってTorブラウザ"
+"/OnionShareのオニオンサービス間のトラフィックをルーティングしても、オニオンサービスの秘密鍵で暗号化されるから解読できません。"
#: ../../source/security.rst:15
msgid ""
@@ -62,6 +70,8 @@ msgid ""
"Browser users, the Tor Browser users and eavesdroppers can't learn the "
"identity of the OnionShare user."
msgstr ""
+"**OnionShareユーザの匿名性はTorに保護されます。** OnionShareとTorブラウザはユーザの匿名性を保護します。OnionShare"
+"ユーザが匿名でTorブラウザのユーザとアドレスを共有する限り、誰もがOnionShareユーザの身元を突き止めることができません。"
#: ../../source/security.rst:17
msgid ""
@@ -79,7 +89,7 @@ msgstr ""
#: ../../source/security.rst:20
msgid "What OnionShare doesn't protect against"
-msgstr ""
+msgstr "OnionShareが防衛できない脅威"
#: ../../source/security.rst:22
msgid ""
@@ -241,4 +251,3 @@ msgstr ""
#~ " share the address. This isn't "
#~ "necessary unless anonymity is a goal."
#~ msgstr ""
-
diff --git a/docs/source/locale/ja/LC_MESSAGES/sphinx.po b/docs/source/locale/ja/LC_MESSAGES/sphinx.po
index f2cc8ed5..ab86033a 100644
--- a/docs/source/locale/ja/LC_MESSAGES/sphinx.po
+++ b/docs/source/locale/ja/LC_MESSAGES/sphinx.po
@@ -3,25 +3,26 @@
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
-#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
-"Report-Msgid-Bugs-To: \n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-09-03 11:37-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2021-12-10 02:52+0000\n"
+"Last-Translator: Taro Tanaka <anon_japan@protonmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Weblate 4.10-dev\n"
"Generated-By: Babel 2.8.0\n"
#: ../../source/_templates/versions.html:10
msgid "Versions"
-msgstr ""
+msgstr "バージョン"
#: ../../source/_templates/versions.html:18
msgid "Languages"
-msgstr ""
-
+msgstr "言語"
diff --git a/docs/source/locale/ja/LC_MESSAGES/tor.po b/docs/source/locale/ja/LC_MESSAGES/tor.po
index f73d3756..e9303230 100644
--- a/docs/source/locale/ja/LC_MESSAGES/tor.po
+++ b/docs/source/locale/ja/LC_MESSAGES/tor.po
@@ -3,23 +3,25 @@
# This file is distributed under the same license as the OnionShare package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
-#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
-"Report-Msgid-Bugs-To: \n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2020-12-13 15:48-0800\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2022-01-18 19:31+0000\n"
+"Last-Translator: Taro Tanaka <anon_japan@protonmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Weblate 4.11-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/tor.rst:2
msgid "Connecting to Tor"
-msgstr ""
+msgstr "Torと接続する方法"
#: ../../source/tor.rst:4
msgid ""
@@ -35,7 +37,7 @@ msgstr ""
msgid ""
"This is the default, simplest and most reliable way that OnionShare "
"connects to Tor. For this reason, it's recommended for most users."
-msgstr ""
+msgstr "OnionShareのTor接続設定の中で、これは一番簡単そして確実なデフォルト方法です。こういうわけで、ほとんどのユーザに勧められます。"
#: ../../source/tor.rst:14
msgid ""
@@ -44,10 +46,12 @@ msgid ""
"with other ``tor`` processes on your computer, so you can use the Tor "
"Browser or the system ``tor`` on their own."
msgstr ""
+"OnionShareを開くと、すでに設定されてる``tor``プロセスはバックグラウンドに実行されてOnionShareに利用されます。パソコンに他の``"
+"tor``プロセスと妨げないので、無事にTorブラウザまたはシステムの``tor``を同時に使えます。"
#: ../../source/tor.rst:18
msgid "Attempt auto-configuration with Tor Browser"
-msgstr ""
+msgstr "Torブラウザとの自動的な設定を試す"
#: ../../source/tor.rst:20
msgid ""
@@ -56,16 +60,19 @@ msgid ""
"process from the Tor Browser. Keep in mind you need to keep Tor Browser "
"open in the background while you're using OnionShare for this to work."
msgstr ""
+"`Torブラウザをダウンロード<https://www.torproject.org>`_してたら、余計な``tor``プロセスを実行したくない場合はOn"
+"ionShareがTorブラウザの``tor``プロセスを利用できます。OnionShareを利用する間にTorブラウザを開いたままにしておく必要があるこ"
+"とに留意して下さい。"
#: ../../source/tor.rst:24
msgid "Using a system ``tor`` in Windows"
-msgstr ""
+msgstr "Windowsのシステム``tor``を利用"
#: ../../source/tor.rst:26
msgid ""
"This is fairly advanced. You'll need to know how edit plaintext files and"
" do stuff as an administrator."
-msgstr ""
+msgstr "これはかなり先進の設定です。プレーンテキストファイルの編集そして管理者としてパソコンをいじり方を知る必要があります。"
#: ../../source/tor.rst:28
msgid ""
@@ -74,6 +81,10 @@ msgid ""
" and copy the extracted folder to ``C:\\Program Files (x86)\\`` Rename "
"the extracted folder with ``Data`` and ``Tor`` in it to ``tor-win32``."
msgstr ""
+"<https://www.torproject.org/download/tor/>`_からTorの「Windows Expert "
+"Bundle」をダウンロードする。圧縮したファイルを解凍して、解凍されたフォルダーを``C:\\Program Files (x86)\\"
+"``にコピーする。解凍されたフォルダー名を「``Data``」に変えて、その中の「``Tor``」フォルダーを「``tor-"
+"win32``」に名前を変える。"
#: ../../source/tor.rst:32
msgid ""
@@ -83,6 +94,9 @@ msgid ""
"administrator, and use ``tor.exe --hash-password`` to generate a hash of "
"your password. For example::"
msgstr ""
+"コントロールポートのパスワードを作る(7語の順序は良いパスワードになります、例えば``comprised stumble rummage work "
+"avenging construct volatile``)。次は管理者としてコマンド・プロンプトを開いて(``cmd``)、「``tor.exe "
+"--hash-password``」を入力してパスワードのハッシュを生成する。例えば::"
#: ../../source/tor.rst:39
msgid ""
@@ -90,6 +104,8 @@ msgid ""
"can ignore). In the case of the above example, it is "
"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
msgstr ""
+"警告メッセージの後、ハッシュ化パスワードの出力は表示されます(警告を無視しても問題ありません)。以上の例の場合は「``16:00322E903D96DE9"
+"86058BB9ABDA91E010D7A863768635AC38E213FDBEF``」になります。"
#: ../../source/tor.rst:41
msgid ""
@@ -97,6 +113,8 @@ msgid ""
"win32\\torrc`` and put your hashed password output in it, replacing the "
"``HashedControlPassword`` with the one you just generated::"
msgstr ""
+"次は``C:\\Program Files (x86)\\tor-win32\\torrc`` に新しいテキストファイルを作成して、生成したハッシュ化パス"
+"ワードの出力を「``HashedControlPassword``」を上書きするようにファイルの中に入力する::"
#: ../../source/tor.rst:46
msgid ""
@@ -105,10 +123,12 @@ msgid ""
"`<https://2019.www.torproject.org/docs/faq.html.en#NTService>`_). Like "
"this::"
msgstr ""
+"管理者のコマンド・プロンプトに、先に生成した``torrc``ファイルを使ってサービスとして``tor``をインストールする(`<https://2019"
+".www.torproject.org/docs/faq.html.en#NTService>`_に説明される通りに)。以下のように::"
#: ../../source/tor.rst:50
msgid "You are now running a system ``tor`` process in Windows!"
-msgstr ""
+msgstr "Windowsに``tor``のシステムプロセスを実行するようになりました!"
#: ../../source/tor.rst:52
msgid ""
@@ -120,24 +140,28 @@ msgid ""
"Connection to Tor\" button. If all goes well, you should see \"Connected "
"to the Tor controller\"."
msgstr ""
+"OnionShareを開いて、下にある \"⚙\"アイコンをクリックする"
+"。「OnionShareがどうやってTorと接続して欲しい?」の下に、「コントロールポートを使用して接続する」を選択し、「コントロールポート」を``127"
+".0.0.1``、そして「ポート」を``9051``に設定する。「Tor認証設定」に「パスワード」を選択し、この前に作ったコントロールポートのパスワードに"
+"設定する。「Torへの接続をテストする」ボタンをクリックする。全てがうまくいくと「Torコントローラーと接続完了」が表示されます。"
#: ../../source/tor.rst:61
msgid "Using a system ``tor`` in macOS"
-msgstr ""
+msgstr "macOSのシステム``tor``を利用"
#: ../../source/tor.rst:63
msgid ""
"First, install `Homebrew <https://brew.sh/>`_ if you don't already have "
"it, and then install Tor::"
-msgstr ""
+msgstr "まずは`Homebrew <https://brew.sh/>`_をインストールして、そしてTorをインストールする::"
#: ../../source/tor.rst:67
msgid "Now configure Tor to allow connections from OnionShare::"
-msgstr ""
+msgstr "次はTorをOnionShareからの接続を受け入れるように設定する::"
#: ../../source/tor.rst:74
msgid "And start the system Tor service::"
-msgstr ""
+msgstr "そしてシステムのTorサービスを実行する::"
#: ../../source/tor.rst:78
msgid ""
@@ -147,14 +171,18 @@ msgid ""
"Under \"Tor authentication settings\" choose \"No authentication, or "
"cookie authentication\". Click the \"Test Connection to Tor\" button."
msgstr ""
+"OnionShareを開いて、下にある \"⚙\"アイコンをクリックする"
+"。「OnionShareがどうやってTorと接続して欲しい?」の下に、「ソケットファイル」を選択し、ソケットファイルを``/usr/local/var/"
+"run/tor/control."
+"socket``に設定する。「Tor認証設定」に「認証なし、それともクッキー認証」を選択する。「Torへの接続をテストする」ボタンをクリックする。"
#: ../../source/tor.rst:84 ../../source/tor.rst:104
msgid "If all goes well, you should see \"Connected to the Tor controller\"."
-msgstr ""
+msgstr "全てがうまくいくと「Torコントローラーと接続完了」が表示されます。"
#: ../../source/tor.rst:87
msgid "Using a system ``tor`` in Linux"
-msgstr ""
+msgstr "Linuxのシステム``tor``を利用"
#: ../../source/tor.rst:89
msgid ""
@@ -163,6 +191,8 @@ msgid ""
"`official repository <https://support.torproject.org/apt/tor-deb-"
"repo/>`_."
msgstr ""
+"まずは``tor``パッケージをインストールする。Debian、Ubuntu、または似てるようなディストリビューションを使う場合は、Torプロジェクトの`"
+"公式リポジトリ <https://support.torproject.org/apt/tor-deb-repo/>`_を使うようお進められます。"
#: ../../source/tor.rst:91
msgid ""
@@ -170,12 +200,15 @@ msgid ""
"case of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to "
"connect to your system ``tor``'s control socket file."
msgstr ""
+"次は``tor``プロセスを実行するグループ(DebianやUbuntuの場合は``debian-"
+"tor``)にユーザを追加して、OnionShareをシステム``tor``のコントロールソケットファイルと接続できるように設定する。"
#: ../../source/tor.rst:93
msgid ""
"Add your user to the ``debian-tor`` group by running this command "
"(replace ``username`` with your actual username)::"
msgstr ""
+"以下のコマンドを実行してユーザを``debian-tor``グループに追加できます(``username``に実際のユーザ名と書き換えて下さい)::"
#: ../../source/tor.rst:97
msgid ""
@@ -186,6 +219,9 @@ msgid ""
"\"No authentication, or cookie authentication\". Click the \"Test "
"Connection to Tor\" button."
msgstr ""
+"パソコンを再起動する。そしてOnionShareを開いて、下にある \"⚙\"アイコンをクリックする"
+"。「OnionShareがどうやってTorと接続して欲しい?」の下に、「ソケットファイル」を選択し、ソケットファイルを``/var/run/tor/"
+"control``に設定する。「Tor認証設定」に「認証なし、それともクッキー認証」を選択する。「Torへの接続をテストする」ボタンをクリックする。"
#: ../../source/tor.rst:107
msgid "Using Tor bridges"
@@ -443,4 +479,3 @@ msgstr ""
#~ "if you don't already have it. "
#~ "Then, install Tor::"
#~ msgstr ""
-
diff --git a/docs/source/locale/nb_NO/LC_MESSAGES/advanced.po b/docs/source/locale/nb_NO/LC_MESSAGES/advanced.po
index ce99aef2..8fb19012 100644
--- a/docs/source/locale/nb_NO/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/advanced.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-11-15 14:42-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2020-11-19 08:28+0000\n"
"Last-Translator: Kurt Eilertsen <kurt@kheds.com>\n"
-"Language-Team: none\n"
"Language: nb_NO\n"
+"Language-Team: none\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/advanced.rst:2
msgid "Advanced Usage"
@@ -35,11 +34,11 @@ msgid ""
"useful if you want to host a website available from the same OnionShare "
"address even if you reboot your computer."
msgstr ""
-"Alt i OnionShare er midlertidig som forvalg. Hvis du lukker en OnionShare-"
-"fane, blir den borte, og kan ikke brukes igjen. Noen ganger kan det hende du "
-"ønsker at en OnionShare-tjeneste skal vedvare. Dette er nyttig hvis du vil "
-"vertstjene en nettside tilgjengelig fra samme OnionShare, uansett om du "
-"utfører omstart av datamaskinen."
+"Alt i OnionShare er midlertidig som forvalg. Hvis du lukker en "
+"OnionShare-fane, blir den borte, og kan ikke brukes igjen. Noen ganger "
+"kan det hende du ønsker at en OnionShare-tjeneste skal vedvare. Dette er "
+"nyttig hvis du vil vertstjene en nettside tilgjengelig fra samme "
+"OnionShare, uansett om du utfører omstart av datamaskinen."
#: ../../source/advanced.rst:13
msgid ""
@@ -48,19 +47,20 @@ msgid ""
"tab is saved a purple pin icon appears to the left of its server status."
msgstr ""
"For å gjøre en fane vedvarende, huk av «Lagre denne fanen og åpne den "
-"automatisk sammen med OnionShare»-boksen, før du starter tjeneren. Når en "
-"fane er lagret, vil et lilla stifteikon vises til venstre for dens "
+"automatisk sammen med OnionShare»-boksen, før du starter tjeneren. Når en"
+" fane er lagret, vil et lilla stifteikon vises til venstre for dens "
"tjenerstatus."
#: ../../source/advanced.rst:18
+#, fuzzy
msgid ""
"When you quit OnionShare and then open it again, your saved tabs will "
"start opened. You'll have to manually start each service, but when you do"
-" they will start with the same OnionShare address and password."
+" they will start with the same OnionShare address and private key."
msgstr ""
-"Når du avslutter OnionShare og så åpner det igjen, vil dine lagrede faner "
-"starte åpnet. Du må manuelt starte hver tjeneste, men når du gjør det vil de "
-"starte med samme OnionShare-adresse og -passord."
+"Når du avslutter OnionShare og så åpner det igjen, vil dine lagrede faner"
+" starte åpnet. Du må manuelt starte hver tjeneste, men når du gjør det "
+"vil de starte med samme OnionShare-adresse og -passord."
#: ../../source/advanced.rst:21
msgid ""
@@ -72,51 +72,66 @@ msgstr ""
"innstillinger."
#: ../../source/advanced.rst:26
-msgid "Turn Off Passwords"
-msgstr "Skru av passord"
+msgid "Turn Off Private Key"
+msgstr ""
#: ../../source/advanced.rst:28
msgid ""
-"By default, all OnionShare services are protected with the username "
-"``onionshare`` and a randomly-generated password. If someone takes 20 "
-"wrong guesses at the password, your onion service is automatically "
-"stopped to prevent a brute force attack against the OnionShare service."
+"By default, all OnionShare services are protected with a private key, "
+"which Tor calls \"client authentication\"."
+msgstr ""
+
+#: ../../source/advanced.rst:30
+msgid ""
+"When browsing to an OnionShare service in Tor Browser, Tor Browser will "
+"prompt for the private key to be entered."
msgstr ""
-"Som forvalg er alle OnionShare-tjenester beskyttet med brukernavnet "
-"`onionshare`, og et tilfeldig generert passord. Hvis noen gjetter passordet "
-"20 ganger, vil din onion-tjeneste automatisk stoppes for å forhindre et "
-"totalsøksangrep mot OnionShare-tjenesten."
-#: ../../source/advanced.rst:31
+#: ../../source/advanced.rst:32
+#, fuzzy
msgid ""
"Sometimes you might want your OnionShare service to be accessible to the "
"public, like if you want to set up an OnionShare receive service so the "
"public can securely and anonymously send you files. In this case, it's "
-"better to disable the password altogether. If you don't do this, someone "
-"can force your server to stop just by making 20 wrong guesses of your "
-"password, even if they know the correct password."
+"better to disable the private key altogether."
msgstr ""
"Noen ganger kan de hende at du ønsker at OnionShare-tjenesten skal være "
"tilgjengelig for alle, som når du ønsker å sette opp en OnionShare-"
-"mottakstjeneste slik at hvem som helst anonymt kan sende deg filer. I sådant "
-"fall, er det bedre å skru av passordet helt og holdent. Hvis du ikke gjør "
-"dette, kan noen få tjeneren din til å stoppe ved å skrive inn passordet feil "
-"20 ganger, selv om de kanskje vet det riktige passordet."
+"mottakstjeneste slik at hvem som helst anonymt kan sende deg filer. I "
+"sådant fall, er det bedre å skru av passordet helt og holdent. Hvis du "
+"ikke gjør dette, kan noen få tjeneren din til å stoppe ved å skrive inn "
+"passordet feil 20 ganger, selv om de kanskje vet det riktige passordet."
#: ../../source/advanced.rst:35
msgid ""
-"To turn off the password for any tab, just check the \"Don't use a "
-"password\" box before starting the server. Then the server will be public"
-" and won't have a password."
+"To turn off the private key for any tab, check the \"This is a public "
+"OnionShare service (disables private key)\" box before starting the "
+"server. Then the server will be public and won't need a private key to "
+"view in Tor Browser."
msgstr ""
-"For å skru av passordet for en fane, velg «Ikke bruk passord»-boksen før du "
-"starter tjeneren. Den vil så bli offentlig, og vil ikke ha et passord."
-#: ../../source/advanced.rst:38
+#: ../../source/advanced.rst:40
+msgid "Custom Titles"
+msgstr ""
+
+#: ../../source/advanced.rst:42
+msgid ""
+"By default, when people load an OnionShare service in Tor Browser they "
+"see the default title for the type of service. For example, the default "
+"title of a chat service is \"OnionShare Chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:44
+msgid ""
+"If you want to choose a custom title, set the \"Custom title\" setting "
+"before starting a server."
+msgstr ""
+
+#: ../../source/advanced.rst:47
msgid "Scheduled Times"
msgstr "Planlagte tider"
-#: ../../source/advanced.rst:40
+#: ../../source/advanced.rst:49
msgid ""
"OnionShare supports scheduling exactly when a service should start and "
"stop. Before starting a server, click \"Show advanced settings\" in its "
@@ -124,13 +139,13 @@ msgid ""
"scheduled time\", \"Stop onion service at scheduled time\", or both, and "
"set the respective desired dates and times."
msgstr ""
-"OnionShare støtter planlegging for akkurat når en tjeneste skal starte og "
-"stoppe. Før du starter en tjener, klikk på «Vis avanserte innstillinger» i "
-"dens fane, og klikk så på boksene ved enten «Start løktjeneste ved planlagt "
-"tidspunkt», «stopp løktjeneste ved planlagt tidspunkt», eller begge, og sett "
-"opp tilhørende dato og tider du ønsker at ting skal skje."
+"OnionShare støtter planlegging for akkurat når en tjeneste skal starte og"
+" stoppe. Før du starter en tjener, klikk på «Vis avanserte innstillinger»"
+" i dens fane, og klikk så på boksene ved enten «Start løktjeneste ved "
+"planlagt tidspunkt», «stopp løktjeneste ved planlagt tidspunkt», eller "
+"begge, og sett opp tilhørende dato og tider du ønsker at ting skal skje."
-#: ../../source/advanced.rst:43
+#: ../../source/advanced.rst:52
msgid ""
"If you scheduled a service to start in the future, when you click the "
"\"Start sharing\" button you will see a timer counting down until it "
@@ -142,7 +157,7 @@ msgstr ""
"planlagt stopp i fremtiden, vil du se en nedtelling til den stoppes "
"automatisk."
-#: ../../source/advanced.rst:46
+#: ../../source/advanced.rst:55
msgid ""
"**Scheduling an OnionShare service to automatically start can be used as "
"a dead man's switch**, where your service will be made public at a given "
@@ -151,25 +166,26 @@ msgid ""
msgstr ""
"**Planlagt oppstart av en OnionShare-tjeneste kan fungere som en "
"dødmannsknapp**, der din tjeneste vil bli gjort offentlig på et gitt "
-"tidspunkt i fremtiden hvis noe skjer med deg. Hvis ingenting skjer, kan du "
-"avbryte tjenesten før dens planlagte oppstart."
+"tidspunkt i fremtiden hvis noe skjer med deg. Hvis ingenting skjer, kan "
+"du avbryte tjenesten før dens planlagte oppstart."
-#: ../../source/advanced.rst:51
+#: ../../source/advanced.rst:60
+#, fuzzy
msgid ""
"**Scheduling an OnionShare service to automatically stop can be useful to"
" limit exposure**, like if you want to share secret documents while "
-"making sure they're not available on the Internet for more than a few "
+"making sure they're not available on the internet for more than a few "
"days."
msgstr ""
"**Planlagt stopp av en OnionShare-tjeneste er nyttig for å begrense "
-"publisitet**, hvis du ønsker å dele hemmelige dokumenter og ikke vil at de "
-"skal være tilgjengelige i mer enn et par dager."
+"publisitet**, hvis du ønsker å dele hemmelige dokumenter og ikke vil at "
+"de skal være tilgjengelige i mer enn et par dager."
-#: ../../source/advanced.rst:56
+#: ../../source/advanced.rst:67
msgid "Command-line Interface"
msgstr "Kommandolinjegrensesnitt"
-#: ../../source/advanced.rst:58
+#: ../../source/advanced.rst:69
msgid ""
"In addition to its graphical interface, OnionShare has a command-line "
"interface."
@@ -177,7 +193,7 @@ msgstr ""
"I tillegg til det grafiske grensesnittet, har OnionShare et "
"kommandolinjegrensesnitt."
-#: ../../source/advanced.rst:60
+#: ../../source/advanced.rst:71
msgid ""
"You can install just the command-line version of OnionShare using "
"``pip3``::"
@@ -185,33 +201,41 @@ msgstr ""
"Du kan installere kun kommandolinjeversjonen av OnionShare ved bruk av "
"``pip3``::"
-#: ../../source/advanced.rst:64
+#: ../../source/advanced.rst:75
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
msgstr ""
-"Merk at du også trenger ``tor``-pakken. I macOS kan du installere den med : "
-"``brew install tor``"
+"Merk at du også trenger ``tor``-pakken. I macOS kan du installere den med"
+" : ``brew install tor``"
-#: ../../source/advanced.rst:66
+#: ../../source/advanced.rst:77
msgid "Then run it like this::"
msgstr "Kjør den så slik::"
-#: ../../source/advanced.rst:70
+#: ../../source/advanced.rst:81
+msgid ""
+"For information about installing it on different operating systems, see "
+"the `CLI readme file "
+"<https://github.com/onionshare/onionshare/blob/develop/cli/README.md>`_ "
+"in the git repository."
+msgstr ""
+
+#: ../../source/advanced.rst:83
msgid ""
"If you installed OnionShare using the Linux Snapcraft package, you can "
"also just run ``onionshare.cli`` to access the command-line interface "
"version."
msgstr ""
-"Hvis du har installer OnionShare ved bruk av Snapcraft-pakken for Linux, kan "
-"du også bare kjøre ``onionshare.cli`` for å få tilgang til versjonen med "
-"kommandolinjegrensesnittet."
+"Hvis du har installer OnionShare ved bruk av Snapcraft-pakken for Linux, "
+"kan du også bare kjøre ``onionshare.cli`` for å få tilgang til versjonen "
+"med kommandolinjegrensesnittet."
-#: ../../source/advanced.rst:73
+#: ../../source/advanced.rst:86
msgid "Usage"
msgstr "Bruk"
-#: ../../source/advanced.rst:75
+#: ../../source/advanced.rst:88
msgid ""
"You can browse the command-line documentation by running ``onionshare "
"--help``::"
@@ -219,61 +243,6 @@ msgstr ""
"Du kan utforske kommandolinje-dokumentasjonen ved å kjøre ``onionshare "
"--help``::"
-#: ../../source/advanced.rst:132
-msgid "Legacy Addresses"
-msgstr "Gammeldagse adresser"
-
-#: ../../source/advanced.rst:134
-msgid ""
-"OnionShare uses v3 Tor onion services by default. These are modern onion "
-"addresses that have 56 characters, for example::"
-msgstr ""
-"OnionShare bruker v3-løktjeenster fra Tor som forvalg. Disse er moderne "
-"løkadresser med 56 tegn, for eksempel::"
-
-#: ../../source/advanced.rst:139
-msgid ""
-"OnionShare still has support for v2 onion addresses, the old type of "
-"onion addresses that have 16 characters, for example::"
-msgstr ""
-"OnionShare har fremdeles støtte for v2-løkadresser, den gamle typen som kun "
-"har 16 tegn, for eksempel::"
-
-#: ../../source/advanced.rst:143
-msgid ""
-"OnionShare calls v2 onion addresses \"legacy addresses\", and they are "
-"not recommended, as v3 onion addresses are more secure."
-msgstr ""
-"OnionShare kaller v2-løkadresser «gammeldagse adresser», og de anbefales "
-"ikke, siden v3-løkadresser er sikrere."
-
-#: ../../source/advanced.rst:145
-msgid ""
-"To use legacy addresses, before starting a server click \"Show advanced "
-"settings\" from its tab and check the \"Use a legacy address (v2 onion "
-"service, not recommended)\" box. In legacy mode you can optionally turn "
-"on Tor client authentication. Once you start a server in legacy mode you "
-"cannot remove legacy mode in that tab. Instead you must start a separate "
-"service in a separate tab."
-msgstr ""
-"For å bruke gammeldagse adresser klikker du «Vis avanserte innstillinger» "
-"fra en fane før du starter en tjener, og velger «Bruk en gammeldags adresse "
-"(v2-løktjeneste, anbefales ikke)-boksen. I gammeldags modus kan du "
-"alternativt skru på Tor-klientverifisering. Når du starter en tjener i "
-"gammeldags modus, kan du ikke fjerne gammeldags modus for denne fanen. Du må "
-"istedenfor starte en egen tjeneste i en egen fane."
-
-#: ../../source/advanced.rst:150
-msgid ""
-"Tor Project plans to `completely deprecate v2 onion services "
-"<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, "
-"2021, and legacy onion services will be removed from OnionShare before "
-"then."
-msgstr ""
-"Tor-prosjektet planlegger å <https://blog.torproject.org/v2-deprecation-"
-"timeline>`_ 15 Oktober, 2021, og gammeldagse løktjeenster vil bli fjernet "
-"fra OnionShare før den tid."
-
#~ msgid "Make a symbolic link to the OnionShare command line binary line this::"
#~ msgstr ""
@@ -472,3 +441,112 @@ msgstr ""
#~ " services will soon be removed from"
#~ " OnionShare as well."
#~ msgstr ""
+
+#~ msgid "Turn Off Passwords"
+#~ msgstr "Skru av passord"
+
+#~ msgid ""
+#~ "By default, all OnionShare services are"
+#~ " protected with the username ``onionshare``"
+#~ " and a randomly-generated password. "
+#~ "If someone takes 20 wrong guesses "
+#~ "at the password, your onion service "
+#~ "is automatically stopped to prevent a"
+#~ " brute force attack against the "
+#~ "OnionShare service."
+#~ msgstr ""
+#~ "Som forvalg er alle OnionShare-tjenester"
+#~ " beskyttet med brukernavnet `onionshare`, "
+#~ "og et tilfeldig generert passord. Hvis"
+#~ " noen gjetter passordet 20 ganger, "
+#~ "vil din onion-tjeneste automatisk "
+#~ "stoppes for å forhindre et "
+#~ "totalsøksangrep mot OnionShare-tjenesten."
+
+#~ msgid ""
+#~ "To turn off the password for any"
+#~ " tab, just check the \"Don't use "
+#~ "a password\" box before starting the "
+#~ "server. Then the server will be "
+#~ "public and won't have a password."
+#~ msgstr ""
+#~ "For å skru av passordet for en "
+#~ "fane, velg «Ikke bruk passord»-boksen "
+#~ "før du starter tjeneren. Den vil "
+#~ "så bli offentlig, og vil ikke ha"
+#~ " et passord."
+
+#~ msgid "Legacy Addresses"
+#~ msgstr "Gammeldagse adresser"
+
+#~ msgid ""
+#~ "OnionShare uses v3 Tor onion services"
+#~ " by default. These are modern onion"
+#~ " addresses that have 56 characters, "
+#~ "for example::"
+#~ msgstr ""
+#~ "OnionShare bruker v3-løktjeenster fra Tor "
+#~ "som forvalg. Disse er moderne "
+#~ "løkadresser med 56 tegn, for eksempel::"
+
+#~ msgid ""
+#~ "OnionShare still has support for v2 "
+#~ "onion addresses, the old type of "
+#~ "onion addresses that have 16 characters,"
+#~ " for example::"
+#~ msgstr ""
+#~ "OnionShare har fremdeles støtte for "
+#~ "v2-løkadresser, den gamle typen som kun"
+#~ " har 16 tegn, for eksempel::"
+
+#~ msgid ""
+#~ "OnionShare calls v2 onion addresses "
+#~ "\"legacy addresses\", and they are not"
+#~ " recommended, as v3 onion addresses "
+#~ "are more secure."
+#~ msgstr ""
+#~ "OnionShare kaller v2-løkadresser «gammeldagse "
+#~ "adresser», og de anbefales ikke, siden"
+#~ " v3-løkadresser er sikrere."
+
+#~ msgid ""
+#~ "To use legacy addresses, before starting"
+#~ " a server click \"Show advanced "
+#~ "settings\" from its tab and check "
+#~ "the \"Use a legacy address (v2 "
+#~ "onion service, not recommended)\" box. "
+#~ "In legacy mode you can optionally "
+#~ "turn on Tor client authentication. Once"
+#~ " you start a server in legacy "
+#~ "mode you cannot remove legacy mode "
+#~ "in that tab. Instead you must "
+#~ "start a separate service in a "
+#~ "separate tab."
+#~ msgstr ""
+#~ "For å bruke gammeldagse adresser klikker"
+#~ " du «Vis avanserte innstillinger» fra "
+#~ "en fane før du starter en tjener,"
+#~ " og velger «Bruk en gammeldags "
+#~ "adresse (v2-løktjeneste, anbefales ikke)-boksen. "
+#~ "I gammeldags modus kan du alternativt"
+#~ " skru på Tor-klientverifisering. Når "
+#~ "du starter en tjener i gammeldags "
+#~ "modus, kan du ikke fjerne gammeldags "
+#~ "modus for denne fanen. Du må "
+#~ "istedenfor starte en egen tjeneste i "
+#~ "en egen fane."
+
+#~ msgid ""
+#~ "Tor Project plans to `completely "
+#~ "deprecate v2 onion services "
+#~ "<https://blog.torproject.org/v2-deprecation-timeline>`_ on"
+#~ " October 15, 2021, and legacy onion"
+#~ " services will be removed from "
+#~ "OnionShare before then."
+#~ msgstr ""
+#~ "Tor-prosjektet planlegger å "
+#~ "<https://blog.torproject.org/v2-deprecation-timeline>`_ 15"
+#~ " Oktober, 2021, og gammeldagse løktjeenster"
+#~ " vil bli fjernet fra OnionShare før"
+#~ " den tid."
+
diff --git a/docs/source/locale/nb_NO/LC_MESSAGES/develop.po b/docs/source/locale/nb_NO/LC_MESSAGES/develop.po
index d12cbafb..2017d89f 100644
--- a/docs/source/locale/nb_NO/LC_MESSAGES/develop.po
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/develop.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-11-15 14:42-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2020-11-19 08:28+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
-"Language-Team: none\n"
"Language: nb_NO\n"
+"Language-Team: none\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/develop.rst:2
msgid "Developing OnionShare"
@@ -39,13 +38,13 @@ msgid ""
"click \"Join a Team\", and type \"onionshare\"."
msgstr ""
"OnionShare har et åpent Keybase-team for å diskutere prosjektet, stille "
-"spørsmål, dele ideer og design, og legge planer for fremtidig utvikling. ("
-"Det er også en enkel måte å sende end-to-end krypterte direktemeldinger til "
-"andre i OnionShare-fellesskapet, som OnionShare-adresser.) For å bruke "
-"Keybase, last ned `Keybase-appen <https://keybase.io/download>` _ , lag en "
-"konto, og `bli med i dette teamet <https://keybase.io/team/onionshare>` _. "
-"Gå til \"Teams\" i appen, klikk \"Bli med i et team\" og skriv \"onionshare\""
-"."
+"spørsmål, dele ideer og design, og legge planer for fremtidig utvikling. "
+"(Det er også en enkel måte å sende end-to-end krypterte direktemeldinger "
+"til andre i OnionShare-fellesskapet, som OnionShare-adresser.) For å "
+"bruke Keybase, last ned `Keybase-appen <https://keybase.io/download>` _ ,"
+" lag en konto, og `bli med i dette teamet "
+"<https://keybase.io/team/onionshare>` _. Gå til \"Teams\" i appen, klikk "
+"\"Bli med i et team\" og skriv \"onionshare\"."
#: ../../source/develop.rst:12
msgid ""
@@ -53,33 +52,37 @@ msgid ""
"<https://lists.riseup.net/www/subscribe/onionshare-dev>`_ for developers "
"and and designers to discuss the project."
msgstr ""
-"OnionShare har også en `postliste <https://lists.riseup.net/www/subscribe/"
-"onionshare-dev>` _ for utviklere og designere for å diskutere prosjektet."
+"OnionShare har også en `postliste <https://lists.riseup.net/www/subscribe"
+"/onionshare-dev>` _ for utviklere og designere for å diskutere "
+"prosjektet."
#: ../../source/develop.rst:15
msgid "Contributing Code"
msgstr "Kodebidrag"
#: ../../source/develop.rst:17
+#, fuzzy
msgid ""
"OnionShare source code is to be found in this Git repository: "
-"https://github.com/micahflee/onionshare"
+"https://github.com/onionshare/onionshare"
msgstr ""
-"OnionShare-kildekoden finnes i dette Git-depotet: https://github.com/"
-"micahflee/onionshare"
+"OnionShare-kildekoden finnes i dette Git-depotet: "
+"https://github.com/micahflee/onionshare"
#: ../../source/develop.rst:19
+#, fuzzy
msgid ""
"If you'd like to contribute code to OnionShare, it helps to join the "
"Keybase team and ask questions about what you're thinking of working on. "
"You should also review all of the `open issues "
-"<https://github.com/micahflee/onionshare/issues>`_ on GitHub to see if "
+"<https://github.com/onionshare/onionshare/issues>`_ on GitHub to see if "
"there are any you'd like to tackle."
msgstr ""
-"Hvis du vil bidra med kode til OnionShare, hjelper det å bli med i Keybase-"
-"teamet og stille spørsmål om hva du tenker å jobbe med. Du bør også "
-"gjennomgå alle de `åpne problemene <https://github.com/micahflee/onionshare/"
-"issues>` _ på GitHub for å se om det er noen du vil takle."
+"Hvis du vil bidra med kode til OnionShare, hjelper det å bli med i "
+"Keybase-teamet og stille spørsmål om hva du tenker å jobbe med. Du bør "
+"også gjennomgå alle de `åpne problemene "
+"<https://github.com/micahflee/onionshare/issues>` _ på GitHub for å se om"
+" det er noen du vil takle."
#: ../../source/develop.rst:22
msgid ""
@@ -87,9 +90,10 @@ msgid ""
"repository and one of the project maintainers will review it and possibly"
" ask questions, request changes, reject it, or merge it into the project."
msgstr ""
-"Når du er klar til å bidra med kode, åpner du en pull-forespørsel i GitHub-"
-"depotet, og en av prosjektansvarlige vil gjennomgå den og muligens stille "
-"spørsmål, be om endringer, avvise den eller slå den sammen i prosjektet."
+"Når du er klar til å bidra med kode, åpner du en pull-forespørsel i "
+"GitHub-depotet, og en av prosjektansvarlige vil gjennomgå den og muligens"
+" stille spørsmål, be om endringer, avvise den eller slå den sammen i "
+"prosjektet."
#: ../../source/develop.rst:27
msgid "Starting Development"
@@ -98,17 +102,12 @@ msgstr "Utviklingsstart"
#: ../../source/develop.rst:29
msgid ""
"OnionShare is developed in Python. To get started, clone the Git "
-"repository at https://github.com/micahflee/onionshare/ and then consult "
+"repository at https://github.com/onionshare/onionshare/ and then consult "
"the ``cli/README.md`` file to learn how to set up your development "
"environment for the command-line version, and the ``desktop/README.md`` "
"file to learn how to set up your development environment for the "
"graphical version."
msgstr ""
-"OnionShare er utviklet i Python. For å komme i gang kloner du Git-depotet på "
-"https://github.com/micahflee/onionshare/ og konsulterer deretter filen `` "
-"cli / README.md '' for å lære hvordan du konfigurerer utviklingsmiljøet for "
-"kommandolinjeversjonen. , og filen 'desktop / README.md' for å lære hvordan "
-"du konfigurerer utviklingsmiljøet ditt for den grafiske versjonen."
#: ../../source/develop.rst:32
msgid ""
@@ -116,9 +115,9 @@ msgid ""
"install dependencies for your platform, and to run OnionShare from the "
"source tree."
msgstr ""
-"Disse filene inneholder de nødvendige tekniske instruksjonene og kommandoene "
-"for å installere avhengigheter for plattformen din, og for å kjøre "
-"OnionShare fra kildetreet."
+"Disse filene inneholder de nødvendige tekniske instruksjonene og "
+"kommandoene for å installere avhengigheter for plattformen din, og for å "
+"kjøre OnionShare fra kildetreet."
#: ../../source/develop.rst:35
msgid "Debugging tips"
@@ -136,11 +135,11 @@ msgid ""
"initialized, when events occur (like buttons clicked, settings saved or "
"reloaded), and other debug info. For example::"
msgstr ""
-"Når du utvikler, er det praktisk å kjøre OnionShare fra en terminal og legge "
-"til `` --verbose '' (eller `` -v '') -flagget til kommandoen. Dette skriver "
-"ut mange nyttige meldinger til terminalen, for eksempel når visse objekter "
-"initialiseres, når hendelser inntreffer (som knapper som er klikket, "
-"innstillinger lagret eller lastet inn på nytt) og annen "
+"Når du utvikler, er det praktisk å kjøre OnionShare fra en terminal og "
+"legge til `` --verbose '' (eller `` -v '') -flagget til kommandoen. Dette"
+" skriver ut mange nyttige meldinger til terminalen, for eksempel når "
+"visse objekter initialiseres, når hendelser inntreffer (som knapper som "
+"er klikket, innstillinger lagret eller lastet inn på nytt) og annen "
"feilsøkingsinformasjon. For eksempel::"
#: ../../source/develop.rst:117
@@ -148,8 +147,8 @@ msgid ""
"You can add your own debug messages by running the ``Common.log`` method "
"from ``onionshare/common.py``. For example::"
msgstr ""
-"Du kan legge til dine egne feilsøkingsmeldinger ved å kjøre `` Common.log '' "
-"-metoden fra `` onionshare / common.py ''. For eksempel::"
+"Du kan legge til dine egne feilsøkingsmeldinger ved å kjøre `` Common.log"
+" '' -metoden fra `` onionshare / common.py ''. For eksempel::"
#: ../../source/develop.rst:121
msgid ""
@@ -157,9 +156,9 @@ msgid ""
"using OnionShare, or the value of certain variables before and after they"
" are manipulated."
msgstr ""
-"Dette kan være nyttig når du lærer hendelseskjeden som oppstår når du bruker "
-"OnionShare, eller verdien av visse variabler før og etter at de blir "
-"manipulert."
+"Dette kan være nyttig når du lærer hendelseskjeden som oppstår når du "
+"bruker OnionShare, eller verdien av visse variabler før og etter at de "
+"blir manipulert."
#: ../../source/develop.rst:124
msgid "Local Only"
@@ -171,25 +170,26 @@ msgid ""
"altogether during development. You can do this with the ``--local-only`` "
"flag. For example::"
msgstr ""
-"Tor er treg, og det er ofte praktisk å hoppe over å starte onion tjenester "
-"helt under utvikling. Du kan gjøre dette med flagget `` - bare lokal ''. For "
-"eksempel::"
+"Tor er treg, og det er ofte praktisk å hoppe over å starte onion "
+"tjenester helt under utvikling. Du kan gjøre dette med flagget `` - bare "
+"lokal ''. For eksempel::"
-#: ../../source/develop.rst:164
+#: ../../source/develop.rst:165
+#, fuzzy
msgid ""
-"In this case, you load the URL ``http://onionshare:train-"
-"system@127.0.0.1:17635`` in a normal web-browser like Firefox, instead of"
-" using the Tor Browser."
+"In this case, you load the URL ``http://127.0.0.1:17641`` in a normal "
+"web-browser like Firefox, instead of using the Tor Browser. The private "
+"key is not actually needed in local-only mode, so you can ignore it."
msgstr ""
"I dette tilfellet laster du inn URL-en `` http: // onionshare: train-"
-"system@127.0.0.1: 17635 '' i en vanlig nettleser som Firefox, i stedet for å "
-"bruke Tor-nettleseren."
+"system@127.0.0.1: 17635 '' i en vanlig nettleser som Firefox, i stedet "
+"for å bruke Tor-nettleseren."
-#: ../../source/develop.rst:167
+#: ../../source/develop.rst:168
msgid "Contributing Translations"
msgstr "Bidra med oversettelser"
-#: ../../source/develop.rst:169
+#: ../../source/develop.rst:170
msgid ""
"Help make OnionShare easier to use and more familiar and welcoming for "
"people by translating it on `Hosted Weblate "
@@ -197,30 +197,31 @@ msgid ""
"\"OnionShare\" in latin letters, and use \"OnionShare (localname)\" if "
"needed."
msgstr ""
-"Hjelp med å gjøre OnionShare enklere å bruke og mer kjent og imøtekommende "
-"for folk ved å oversette den på `Hosted Weblate <https://hosted.weblate.org/"
-"projects/onionshare/>` _. Oppbevar alltid \"OnionShare\" med latinske "
-"bokstaver, og bruk \"OnionShare (lokalt navn)\" om nødvendig."
+"Hjelp med å gjøre OnionShare enklere å bruke og mer kjent og "
+"imøtekommende for folk ved å oversette den på `Hosted Weblate "
+"<https://hosted.weblate.org/projects/onionshare/>` _. Oppbevar alltid "
+"\"OnionShare\" med latinske bokstaver, og bruk \"OnionShare (lokalt "
+"navn)\" om nødvendig."
-#: ../../source/develop.rst:171
+#: ../../source/develop.rst:172
msgid "To help translate, make a Hosted Weblate account and start contributing."
msgstr ""
-"For å hjelpe deg med å oversette, lag en Hosted Weblate-konto og begynn å "
-"bidra."
+"For å hjelpe deg med å oversette, lag en Hosted Weblate-konto og begynn å"
+" bidra."
-#: ../../source/develop.rst:174
+#: ../../source/develop.rst:175
msgid "Suggestions for Original English Strings"
msgstr "Forslag til originale engelske strenger"
-#: ../../source/develop.rst:176
+#: ../../source/develop.rst:177
msgid ""
"Sometimes the original English strings are wrong, or don't match between "
"the application and the documentation."
msgstr ""
-"Noen ganger er de originale engelske strengene feil, eller samsvarer ikke "
-"mellom applikasjonen og dokumentasjonen."
+"Noen ganger er de originale engelske strengene feil, eller samsvarer ikke"
+" mellom applikasjonen og dokumentasjonen."
-#: ../../source/develop.rst:178
+#: ../../source/develop.rst:179
msgid ""
"File source string improvements by adding @kingu to your Weblate comment,"
" or open a GitHub issue or pull request. The latter ensures all upstream "
@@ -229,22 +230,22 @@ msgid ""
msgstr ""
"Filkildeforbedringer ved å legge til @kingu i Weblate-kommentaren, eller "
"åpne et GitHub-problem eller forespørsel. Sistnevnte sikrer at alle "
-"oppstrøms utviklere ser forslaget, og potensielt kan endre strengen via de "
-"vanlige kodegjennomgangsprosessene."
+"oppstrøms utviklere ser forslaget, og potensielt kan endre strengen via "
+"de vanlige kodegjennomgangsprosessene."
-#: ../../source/develop.rst:182
+#: ../../source/develop.rst:183
msgid "Status of Translations"
msgstr "Oversettelsesstatus"
-#: ../../source/develop.rst:183
+#: ../../source/develop.rst:184
msgid ""
"Here is the current translation status. If you want start a translation "
"in a language not yet started, please write to the mailing list: "
"onionshare-dev@lists.riseup.net"
msgstr ""
-"Her er gjeldende oversettelsesstatus. Hvis du vil starte en oversettelse på "
-"et språk som ikke er startet, kan du skrive til adresselisten: onionshare-"
-"dev@lists.riseup.net"
+"Her er gjeldende oversettelsesstatus. Hvis du vil starte en oversettelse "
+"på et språk som ikke er startet, kan du skrive til adresselisten: "
+"onionshare-dev@lists.riseup.net"
#~ msgid ""
#~ "OnionShare is developed in Python. To"
@@ -461,3 +462,27 @@ msgstr ""
#~ msgid "Do the same for other untranslated lines."
#~ msgstr ""
+
+#~ msgid ""
+#~ "OnionShare is developed in Python. To"
+#~ " get started, clone the Git "
+#~ "repository at https://github.com/micahflee/onionshare/ "
+#~ "and then consult the ``cli/README.md`` "
+#~ "file to learn how to set up "
+#~ "your development environment for the "
+#~ "command-line version, and the "
+#~ "``desktop/README.md`` file to learn how "
+#~ "to set up your development environment"
+#~ " for the graphical version."
+#~ msgstr ""
+#~ "OnionShare er utviklet i Python. For "
+#~ "å komme i gang kloner du Git-"
+#~ "depotet på https://github.com/micahflee/onionshare/ "
+#~ "og konsulterer deretter filen `` cli "
+#~ "/ README.md '' for å lære hvordan"
+#~ " du konfigurerer utviklingsmiljøet for "
+#~ "kommandolinjeversjonen. , og filen 'desktop"
+#~ " / README.md' for å lære hvordan "
+#~ "du konfigurerer utviklingsmiljøet ditt for "
+#~ "den grafiske versjonen."
+
diff --git a/docs/source/locale/nb_NO/LC_MESSAGES/features.po b/docs/source/locale/nb_NO/LC_MESSAGES/features.po
index 19804774..c95a6911 100644
--- a/docs/source/locale/nb_NO/LC_MESSAGES/features.po
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/features.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-11-15 14:42-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2020-11-20 17:28+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
-"Language-Team: none\n"
"Language: nb_NO\n"
+"Language-Team: none\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/features.rst:4
msgid "How OnionShare Works"
@@ -34,47 +33,59 @@ msgstr ""
"`-løktjenester<https://community.torproject.org/onion-services/>`_."
#: ../../source/features.rst:8
-msgid ""
-"By default, OnionShare web addresses are protected with a random "
-"password. A typical OnionShare address might look something like this::"
+#, fuzzy
+msgid "By default, OnionShare web addresses are protected with a private key."
msgstr ""
-"Som forvalg er OnionShare-vevadresser beskyttet med et tilfeldig passord. En "
-"typisk OnionShare-adresse ser slik ut:"
+"Som forvalg er OnionShare-vevadresser beskyttet med et tilfeldig passord."
+" En typisk OnionShare-adresse ser slik ut:"
-#: ../../source/features.rst:12
+#: ../../source/features.rst:10
+msgid "OnionShare addresses look something like this::"
+msgstr ""
+
+#: ../../source/features.rst:14
+msgid "And private keys might look something like this::"
+msgstr ""
+
+#: ../../source/features.rst:18
+#, fuzzy
msgid ""
-"You're responsible for securely sharing that URL using a communication "
-"channel of your choice like in an encrypted chat message, or using "
-"something less secure like unencrypted e-mail, depending on your `threat "
-"model <https://ssd.eff.org/module/your-security-plan>`_."
+"You're responsible for securely sharing that URL and private key using a "
+"communication channel of your choice like in an encrypted chat message, "
+"or using something less secure like unencrypted email, depending on your "
+"`threat model <https://ssd.eff.org/module/your-security-plan>`_."
msgstr ""
"Du er ansvarlig for å dele nettadressen på sikkert vis ved bruk av en "
"kommunikasjonskanal du velger, som f.eks. en kryptert slydringsmelding, "
-"eller noe mindre sikkert, som ukryptert e-post, avhengig av din `"
-"trusselmodell <https://ssd.eff.org/module/your-security-plan>`_."
+"eller noe mindre sikkert, som ukryptert e-post, avhengig av din "
+"`trusselmodell <https://ssd.eff.org/module/your-security-plan>`_."
-#: ../../source/features.rst:14
+#: ../../source/features.rst:20
+#, fuzzy
msgid ""
"The people you send the URL to then copy and paste it into their `Tor "
"Browser <https://www.torproject.org/>`_ to access the OnionShare service."
+" Tor Browser will then prompt for the private key, which the people can "
+"also then copy and paste in."
msgstr ""
"Folkene du sender nettadressen til kopierer den så inn i deres `Tor-"
-"nettleser <https://www.torproject.org/>`_ for å få tilgang til OnionShare-"
-"tjenesten."
+"nettleser <https://www.torproject.org/>`_ for å få tilgang til "
+"OnionShare-tjenesten."
-#: ../../source/features.rst:16
+#: ../../source/features.rst:24
+#, fuzzy
msgid ""
"If you run OnionShare on your laptop to send someone files, and then "
"suspend it before the files are sent, the service will not be available "
-"until your laptop is unsuspended and on the Internet again. OnionShare "
+"until your laptop is unsuspended and on the internet again. OnionShare "
"works best when working with people in real-time."
msgstr ""
"Hvis du kjører OnionShare på din bærbare for å sende noen filer, og så "
"sender den i hvilemodus før filene er sendt, vil ikke tjenesten være "
-"tilgjengelig igjen før den går ut av hvilemodus og er på Internett igjen. "
-"OnionShare fungerer best når folk jobber sammen i sanntid."
+"tilgjengelig igjen før den går ut av hvilemodus og er på Internett igjen."
+" OnionShare fungerer best når folk jobber sammen i sanntid."
-#: ../../source/features.rst:18
+#: ../../source/features.rst:26
msgid ""
"Because your own computer is the web server, *no third party can access "
"anything that happens in OnionShare*, not even the developers of "
@@ -82,17 +93,17 @@ msgid ""
"Tor onion services too, it also protects your anonymity. See the "
":doc:`security design </security>` for more info."
msgstr ""
-"Fordi din egen datamaskin er vevtjeneren, *har ingen tredjepart tilgang til "
-"noe som skjer i OnionShare*, ikke engang utviklerne av OnionShare. Det er "
-"helt privat. Og fordi OnionShare er basert på Tor-løktjenester også, "
-"beskytter det anonymiteten din. Sjekk :doc:`sikkerhetsdesign </security>` "
-"for mer info."
+"Fordi din egen datamaskin er vevtjeneren, *har ingen tredjepart tilgang "
+"til noe som skjer i OnionShare*, ikke engang utviklerne av OnionShare. "
+"Det er helt privat. Og fordi OnionShare er basert på Tor-løktjenester "
+"også, beskytter det anonymiteten din. Sjekk :doc:`sikkerhetsdesign "
+"</security>` for mer info."
-#: ../../source/features.rst:21
+#: ../../source/features.rst:29
msgid "Share Files"
msgstr "Del filer"
-#: ../../source/features.rst:23
+#: ../../source/features.rst:31
msgid ""
"You can use OnionShare to send files and folders to people securely and "
"anonymously. Open a share tab, drag in the files and folders you wish to "
@@ -102,37 +113,41 @@ msgstr ""
"anonymt. Åpne en delingsfane, dra inn filene og mappene du vil dele, og "
"klikk «Begynn deling»."
-#: ../../source/features.rst:27 ../../source/features.rst:93
+#: ../../source/features.rst:35 ../../source/features.rst:112
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
msgstr ""
-"Etter at du har lagt til filer, vil du se noen innstillinger. Forsikre deg "
-"om at du velger den innstillingen du er interessert i før du begynner å dele."
+"Etter at du har lagt til filer, vil du se noen innstillinger. Forsikre "
+"deg om at du velger den innstillingen du er interessert i før du begynner"
+" å dele."
-#: ../../source/features.rst:31
+#: ../../source/features.rst:39
+#, fuzzy
msgid ""
"As soon as someone finishes downloading your files, OnionShare will "
-"automatically stop the server, removing the website from the Internet. To"
+"automatically stop the server, removing the website from the internet. To"
" allow multiple people to download them, uncheck the \"Stop sharing after"
" files have been sent (uncheck to allow downloading individual files)\" "
"box."
msgstr ""
"Så snart noen laster ned filene dine, vil OnionShare automatisk stoppe "
-"tjeneren, noe som fjerner nettsiden fra Internett. For å tillate flerfoldige "
-"folk å laste dem ned, fjern avhukingen av «Slutt å dele etter at filer har "
-"blitt sendt (fjern avhuking for å laste ned individuelle filer)»-boksen."
+"tjeneren, noe som fjerner nettsiden fra Internett. For å tillate "
+"flerfoldige folk å laste dem ned, fjern avhukingen av «Slutt å dele etter"
+" at filer har blitt sendt (fjern avhuking for å laste ned individuelle "
+"filer)»-boksen."
-#: ../../source/features.rst:34
+#: ../../source/features.rst:42
msgid ""
"Also, if you uncheck this box, people will be able to download the "
"individual files you share rather than a single compressed version of all"
" the files."
msgstr ""
-"Når du avhuker denne boksen, vil folk kunne laste ned de individuelle filene "
-"du deler, snarere enn en enkelt sammenpakket versjon av alle filene."
+"Når du avhuker denne boksen, vil folk kunne laste ned de individuelle "
+"filene du deler, snarere enn en enkelt sammenpakket versjon av alle "
+"filene."
-#: ../../source/features.rst:36
+#: ../../source/features.rst:44
msgid ""
"When you're ready to share, click the \"Start sharing\" button. You can "
"always click \"Stop sharing\", or quit OnionShare, immediately taking the"
@@ -140,82 +155,102 @@ msgid ""
"to show the history and progress of people downloading files from you."
msgstr ""
"Når du er klar til å dele, klikk «Begynn deling»-knappen. Du kan alltids "
-"klikke «Stopp deling», eller avslutte OnionShare, noe som umiddelbart tar "
-"ned nettsiden. Du kan også klikke «↑»-ikonet øverst i høyre hjørne for å "
-"vise historikken og framdriften for dem som laster ned filer fra deg."
+"klikke «Stopp deling», eller avslutte OnionShare, noe som umiddelbart tar"
+" ned nettsiden. Du kan også klikke «↑»-ikonet øverst i høyre hjørne for å"
+" vise historikken og framdriften for dem som laster ned filer fra deg."
-#: ../../source/features.rst:40
+#: ../../source/features.rst:48
+#, fuzzy
msgid ""
-"Now that you have a OnionShare, copy the address and send it to the "
-"person you want to receive the files. If the files need to stay secure, "
-"or the person is otherwise exposed to danger, use an encrypted messaging "
-"app."
+"Now that you have a OnionShare, copy the address and the private key and "
+"send it to the person you want to receive the files. If the files need to"
+" stay secure, or the person is otherwise exposed to danger, use an "
+"encrypted messaging app."
msgstr ""
"Nå som du har en OnionShare, kopier adressen og send den til personen du "
"ønsker å sende filene til. Hvis filene må forbli sikre, eller personen "
"ellers er gjenstand for fare, bruk et kryptert meldingsprogram."
-#: ../../source/features.rst:42
+#: ../../source/features.rst:50
+#, fuzzy
msgid ""
"That person then must load the address in Tor Browser. After logging in "
-"with the random password included in the web address, the files can be "
-"downloaded directly from your computer by clicking the \"Download Files\""
-" link in the corner."
+"with the private key, the files can be downloaded directly from your "
+"computer by clicking the \"Download Files\" link in the corner."
+msgstr ""
+"Personen må deretter laste inn adressen i Tor-nettleseren. Etter å ha "
+"logget inn med det tilfeldige passordet som er å finne i nettadressen, "
+"kan filene lastes ned direkte til din datamaskin ved å klikke «Last end "
+"filer»-lenken i hjørnet."
+
+#: ../../source/features.rst:55
+msgid "Receive Files and Messages"
+msgstr ""
+
+#: ../../source/features.rst:57
+msgid ""
+"You can use OnionShare to let people anonymously submit files and "
+"messages directly to your computer, essentially turning it into an "
+"anonymous dropbox. Open a receive tab and choose the settings that you "
+"want."
msgstr ""
-"Personen må deretter laste inn adressen i Tor-nettleseren. Etter å ha logget "
-"inn med det tilfeldige passordet som er å finne i nettadressen, kan filene "
-"lastes ned direkte til din datamaskin ved å klikke «Last end filer»-lenken i "
-"hjørnet."
-#: ../../source/features.rst:47
-msgid "Receive Files"
-msgstr "Mottak av filer"
+#: ../../source/features.rst:62
+msgid "You can browse for a folder to save messages and files that get submitted."
+msgstr ""
-#: ../../source/features.rst:49
+#: ../../source/features.rst:64
msgid ""
-"You can use OnionShare to let people anonymously upload files directly to"
-" your computer, essentially turning it into an anonymous dropbox. Open a "
-"\"Receive tab\", choose where you want to save the files and other "
-"settings, and then click \"Start Receive Mode\"."
+"You can check \"Disable submitting text\" if want to only allow file "
+"uploads, and you can check \"Disable uploading files\" if you want to "
+"only allow submitting text messages, like for an anonymous contact form."
msgstr ""
-"Du kan bruke OnionShare for å la folk laste opp filer anonymt, direkte til "
-"din datamaskin, noe som effektivt sett gjør den til en anonym postboks. Åpne "
-"en «Mottaksfane», velg hvor du ønsker å lagre filene og andre innstillinger, "
-"og klikk så «Start mottaksmodus»."
-#: ../../source/features.rst:54
+#: ../../source/features.rst:66
msgid ""
-"This starts the OnionShare service. Anyone loading this address in their "
-"Tor Browser will be able to upload files to your computer."
+"You can check \"Use notification webhook\" and then choose a webhook URL "
+"if you want to be notified when someone submits files or messages to your"
+" OnionShare service. If you use this feature, OnionShare will make an "
+"HTTP POST request to this URL whenever someone submits files or messages."
+" For example, if you want to get an encrypted text messaging on the "
+"messaging app `Keybase <https://keybase.io/>`_, you can start a "
+"conversation with `@webhookbot <https://keybase.io/webhookbot>`_, type "
+"``!webhook create onionshare-alerts``, and it will respond with a URL. "
+"Use that as the notification webhook URL. If someone uploads a file to "
+"your receive mode service, @webhookbot will send you a message on Keybase"
+" letting you know as soon as it happens."
msgstr ""
-"Dette starter OnionShare-tjenesten. Alle som laster inn denne adressen i "
-"deres Tor-nettleser vil kunne laste opp filer til din datamaskin."
-#: ../../source/features.rst:58
+#: ../../source/features.rst:71
+msgid ""
+"When you are ready, click \"Start Receive Mode\". This starts the "
+"OnionShare service. Anyone loading this address in their Tor Browser will"
+" be able to submit files and messages which get uploaded to your "
+"computer."
+msgstr ""
+
+#: ../../source/features.rst:75
msgid ""
"You can also click the down \"↓\" icon in the top-right corner to show "
"the history and progress of people sending files to you."
msgstr ""
-"Du kan også klikke «↓»-ikonet i øvre høyre hjørne for å vise historikken og "
-"framdriften for folk som sender filer til deg."
+"Du kan også klikke «↓»-ikonet i øvre høyre hjørne for å vise historikken "
+"og framdriften for folk som sender filer til deg."
-#: ../../source/features.rst:60
-msgid "Here is what it looks like for someone sending you files."
+#: ../../source/features.rst:77
+#, fuzzy
+msgid "Here is what it looks like for someone sending you files and messages."
msgstr "Det ser slik ut når noen sender deg filer."
-#: ../../source/features.rst:64
+#: ../../source/features.rst:81
msgid ""
-"When someone uploads files to your receive service, by default they get "
-"saved to a folder called ``OnionShare`` in the home folder on your "
-"computer, automatically organized into separate subfolders based on the "
-"time that the files get uploaded."
+"When someone submits files or messages to your receive service, by "
+"default they get saved to a folder called ``OnionShare`` in the home "
+"folder on your computer, automatically organized into separate subfolders"
+" based on the time that the files get uploaded."
msgstr ""
-"Når noen laster opp filer til din mottakstjeneste, vil de som forvalg bli "
-"lastet ned til en mappe som heter ``OnionShare`` i hjemmemappen på din "
-"datamaskin, i automatisk organiserte undermapper basert på når de ble lastet "
-"opp."
-#: ../../source/features.rst:66
+#: ../../source/features.rst:83
msgid ""
"Setting up an OnionShare receiving service is useful for journalists and "
"others needing to securely accept documents from anonymous sources. When "
@@ -223,28 +258,30 @@ msgid ""
"quite as secure version of `SecureDrop <https://securedrop.org/>`_, the "
"whistleblower submission system."
msgstr ""
-"Å sette opp en OnionShare-tjeneste er nyttig for journalister og andre som "
-"må motta dokumenter fra anonyme kilder. Når det brukes på denne måten, er "
-"OnionShare en lettere, enklere, ikke helt like sikker versjon av `SecureDrop "
-"<https://securedrop.org/>` fløyteblåserinnsendelsessystemet."
+"Å sette opp en OnionShare-tjeneste er nyttig for journalister og andre "
+"som må motta dokumenter fra anonyme kilder. Når det brukes på denne "
+"måten, er OnionShare en lettere, enklere, ikke helt like sikker versjon "
+"av `SecureDrop <https://securedrop.org/>` "
+"fløyteblåserinnsendelsessystemet."
-#: ../../source/features.rst:69
+#: ../../source/features.rst:86
msgid "Use at your own risk"
msgstr "Bruk på egen risiko"
-#: ../../source/features.rst:71
+#: ../../source/features.rst:88
+#, fuzzy
msgid ""
-"Just like with malicious e-mail attachments, it's possible someone could "
+"Just like with malicious email attachments, it's possible someone could "
"try to attack your computer by uploading a malicious file to your "
"OnionShare service. OnionShare does not add any safety mechanisms to "
"protect your system from malicious files."
msgstr ""
-"Akkurat som for skadelige e-postvedlegg, er det mulig at noen kan prøve å "
-"angripe datamaskinen din ved å laste opp en skadelig fil til din OnionShare-"
-"tjeneste. OnionShare legger ikke til noen sikkerhetsfunksjoner for å "
-"beskytte systemet ditt fra skadelige filer."
+"Akkurat som for skadelige e-postvedlegg, er det mulig at noen kan prøve å"
+" angripe datamaskinen din ved å laste opp en skadelig fil til din "
+"OnionShare-tjeneste. OnionShare legger ikke til noen sikkerhetsfunksjoner"
+" for å beskytte systemet ditt fra skadelige filer."
-#: ../../source/features.rst:73
+#: ../../source/features.rst:90
msgid ""
"If you receive an Office document or a PDF through OnionShare, you can "
"convert these documents into PDFs that are safe to open using `Dangerzone"
@@ -253,53 +290,61 @@ msgid ""
"<https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ "
"disposableVM."
msgstr ""
-"Hvis du mottar et office-dokument, eller en PDF gjennom OnionShare, kan du "
-"konvertere disse dokumentene til PDF-er som er trygge å åpne ved bruk av `"
-"Dangerzone <https://dangerzone.rocks/>`. Du kan også beskytte deg selv når "
-"du åpner ubetrodde dokumenter ved å åpne dem i `Tails <https://tails.boum."
-"org/>` i en engangs-VM fra `Qubes <https://qubes-os.org/>`."
+"Hvis du mottar et office-dokument, eller en PDF gjennom OnionShare, kan "
+"du konvertere disse dokumentene til PDF-er som er trygge å åpne ved bruk "
+"av `Dangerzone <https://dangerzone.rocks/>`. Du kan også beskytte deg "
+"selv når du åpner ubetrodde dokumenter ved å åpne dem i `Tails "
+"<https://tails.boum.org/>` i en engangs-VM fra `Qubes <https://qubes-"
+"os.org/>`."
+
+#: ../../source/features.rst:92
+msgid "However, it is always safe to open text messages sent through OnionShare."
+msgstr ""
-#: ../../source/features.rst:76
+#: ../../source/features.rst:95
msgid "Tips for running a receive service"
msgstr "Tips for kjøring av en mottakstjeneste"
-#: ../../source/features.rst:78
+#: ../../source/features.rst:97
+#, fuzzy
msgid ""
"If you want to host your own anonymous dropbox using OnionShare, it's "
"recommended you do so on a separate, dedicated computer always powered on"
-" and connected to the Internet, and not on the one you use on a regular "
+" and connected to the internet, and not on the one you use on a regular "
"basis."
msgstr ""
"Hvis du ønsker å vertstjene din egne anonyme postboks ved bruk av "
-"OnionShare, anbefales det at du gjør dette på en egen, dedikert datamaskin "
-"som alltid er påslått og koblet til Internett, og ikke den du bruker til "
-"vanlig."
+"OnionShare, anbefales det at du gjør dette på en egen, dedikert "
+"datamaskin som alltid er påslått og koblet til Internett, og ikke den du "
+"bruker til vanlig."
-#: ../../source/features.rst:80
+#: ../../source/features.rst:99
+#, fuzzy
msgid ""
"If you intend to put the OnionShare address on your website or social "
"media profiles, save the tab (see :ref:`save_tabs`) and run it as a "
-"public service (see :ref:`turn_off_passwords`)."
+"public service (see :ref:`turn_off_private_key`). It's also a good idea "
+"to give it a custom title (see :ref:`custom_titles`)."
msgstr ""
-"Hvis du har til hensikt å legge OnionShare-adressen på din nettside eller "
-"sosiale mediaprofiler, lagre fanen (sjekk :ref:`save_tabs`) og kjør den som "
-"en offentlig tjeneste (sjekk :ref:`turn_off_passwords`)."
+"Hvis du har til hensikt å legge OnionShare-adressen på din nettside eller"
+" sosiale mediaprofiler, lagre fanen (sjekk :ref:`save_tabs`) og kjør den "
+"som en offentlig tjeneste (sjekk :ref:`turn_off_passwords`)."
-#: ../../source/features.rst:83
+#: ../../source/features.rst:102
msgid "Host a Website"
msgstr "Vertstjen en nettside"
-#: ../../source/features.rst:85
+#: ../../source/features.rst:104
msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag "
"the files and folders that make up the static content there, and click "
"\"Start sharing\" when you are ready."
msgstr ""
"For å vertstjene en statisk HTML-nettside med OnionShare, kan du åpne en "
-"nettsidefane, dra filene og mappene som utgjør det statiske innholdet dit, "
-"og klikke på «Begynn deling» når du er klar."
+"nettsidefane, dra filene og mappene som utgjør det statiske innholdet "
+"dit, og klikke på «Begynn deling» når du er klar."
-#: ../../source/features.rst:89
+#: ../../source/features.rst:108
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your"
" website. You should also include any other HTML files, CSS files, "
@@ -308,105 +353,120 @@ msgid ""
"websites that execute code or use databases. So you can't for example use"
" WordPress.)"
msgstr ""
-"Hvis du legger til en ``index.html``-fil, vil den vises når noen laster inn "
-"nettsiden din. Du kan også inkludere andre HTML-filer, som CSS-filer, "
-"JavaScript-filer, og bilder på nettsiden. (Merk at OnionShare kun støtter "
-"vertstjening av *statiske* nettsider. Den kan ikke vertstjene nettsider som "
-"kjører kode eller bruker databaser. Så du kan for eksempel ikke bruke "
-"WordPress.)"
+"Hvis du legger til en ``index.html``-fil, vil den vises når noen laster "
+"inn nettsiden din. Du kan også inkludere andre HTML-filer, som CSS-filer,"
+" JavaScript-filer, og bilder på nettsiden. (Merk at OnionShare kun "
+"støtter vertstjening av *statiske* nettsider. Den kan ikke vertstjene "
+"nettsider som kjører kode eller bruker databaser. Så du kan for eksempel "
+"ikke bruke WordPress.)"
-#: ../../source/features.rst:91
+#: ../../source/features.rst:110
msgid ""
"If you don't have an ``index.html`` file, it will show a directory "
"listing instead, and people loading it can look through the files and "
"download them."
msgstr ""
-"Hvis du ikke har en ``index.html``-fil, vil den vise en kategoriopplisting "
-"istedenfor, og folk som laster den inn kan se gjennom filene og laste dem "
-"ned."
+"Hvis du ikke har en ``index.html``-fil, vil den vise en "
+"kategoriopplisting istedenfor, og folk som laster den inn kan se gjennom "
+"filene og laste dem ned."
-#: ../../source/features.rst:98
+#: ../../source/features.rst:117
msgid "Content Security Policy"
msgstr "Sikkerhetspraksis for innhold"
-#: ../../source/features.rst:100
+#: ../../source/features.rst:119
+#, fuzzy
msgid ""
"By default OnionShare helps secure your website by setting a strict "
-"`Content Security Police "
+"`Content Security Policy "
"<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ header. "
"However, this prevents third-party content from loading inside the web "
"page."
msgstr ""
-"Som forvalg sikrer OnionSHare din nettside ved å håndheve en streng `"
-"sikkerhetspraksis for innhold <https://en.wikipedia.org/wiki/"
-"Content_Security_Policy>`_ i toppteksten. Dog forhindrer dette "
-"tredjepartsinnhold fra å bli lastet inn inne i nettsiden."
+"Som forvalg sikrer OnionSHare din nettside ved å håndheve en streng "
+"`sikkerhetspraksis for innhold "
+"<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ i toppteksten. "
+"Dog forhindrer dette tredjepartsinnhold fra å bli lastet inn inne i "
+"nettsiden."
-#: ../../source/features.rst:102
+#: ../../source/features.rst:121
+#, fuzzy
msgid ""
"If you want to load content from third-party websites, like assets or "
-"JavaScript libraries from CDNs, check the \"Don't send Content Security "
-"Policy header (allows your website to use third-party resources)\" box "
-"before starting the service."
+"JavaScript libraries from CDNs, you have two options:"
msgstr ""
"Hvis du vil laste inn innhold fra tredjeparts nettsteder, som eiendeler "
"eller JavaScript-biblioteker fra CDN, merker du av i boksen \"Ikke send "
-"innholdssikkerhetspolicyhode (lar nettstedet ditt bruke tredjepartsressurser)"
-"\" før du starter tjenesten."
+"innholdssikkerhetspolicyhode (lar nettstedet ditt bruke "
+"tredjepartsressurser)\" før du starter tjenesten."
-#: ../../source/features.rst:105
+#: ../../source/features.rst:123
+msgid ""
+"You can disable sending a Content Security Policy header by checking the "
+"\"Don't send Content Security Policy header (allows your website to use "
+"third-party resources)\" box before starting the service."
+msgstr ""
+
+#: ../../source/features.rst:124
+msgid "You can send a custom Content Security Policy header."
+msgstr ""
+
+#: ../../source/features.rst:127
msgid "Tips for running a website service"
msgstr "Tips for kjøring av en nettside-tjeneste"
-#: ../../source/features.rst:107
+#: ../../source/features.rst:129
+#, fuzzy
msgid ""
"If you want to host a long-term website using OnionShare (meaning not "
-"something to quickly show someone something), it's recommended you do it "
-"on a separate, dedicated computer always powered on and connected to the "
-"Internet, and not on the one you use on a regular basis. Save the tab "
-"(see :ref:`save_tabs`) so you can resume the website with the same "
+"just to quickly show someone something), it's recommended you do it on a "
+"separate, dedicated computer that is always powered on and connected to "
+"the internet, and not on the one you use on a regular basis. Save the tab"
+" (see :ref:`save_tabs`) so you can resume the website with the same "
"address if you close OnionShare and re-open it later."
msgstr ""
-"Hvis du vil være vert for et langsiktig nettsted ved hjelp av OnionShare ("
-"som ikke betyr noe for raskt å vise noen noe), anbefales det at du gjør det "
-"på en separat, dedikert datamaskin som alltid er slått på og koblet til "
-"Internett, og ikke på den du bruker på en jevnlig basis. Lagre fanen (se: "
-"ref: `save_tabs`), slik at du kan gjenoppta nettstedet med samme adresse "
-"hvis du lukker OnionShare og åpner det senere."
-
-#: ../../source/features.rst:110
+"Hvis du vil være vert for et langsiktig nettsted ved hjelp av OnionShare "
+"(som ikke betyr noe for raskt å vise noen noe), anbefales det at du gjør "
+"det på en separat, dedikert datamaskin som alltid er slått på og koblet "
+"til Internett, og ikke på den du bruker på en jevnlig basis. Lagre fanen "
+"(se: ref: `save_tabs`), slik at du kan gjenoppta nettstedet med samme "
+"adresse hvis du lukker OnionShare og åpner det senere."
+
+#: ../../source/features.rst:132
+#, fuzzy
msgid ""
"If your website is intended for the public, you should run it as a public"
-" service (see :ref:`turn_off_passwords`)."
+" service (see :ref:`turn_off_private_key`)."
msgstr ""
"Hvis din nettside er tiltenkt offentligheten, burde du kjøre det som en "
"offentlig tjeneste (sjekk: ref:`turn_off_passwords`)."
-#: ../../source/features.rst:113
+#: ../../source/features.rst:135
msgid "Chat Anonymously"
msgstr "Sludre anonymt"
-#: ../../source/features.rst:115
+#: ../../source/features.rst:137
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't"
" log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
-"Du kan bruke OnionShare til å sette opp et privat, sikkert praterom som ikke "
-"logger noe. Åpne en pratefane og klikk «Start pratetjener»."
+"Du kan bruke OnionShare til å sette opp et privat, sikkert praterom som "
+"ikke logger noe. Åpne en pratefane og klikk «Start pratetjener»."
-#: ../../source/features.rst:119
+#: ../../source/features.rst:141
+#, fuzzy
msgid ""
-"After you start the server, copy the OnionShare address and send it to "
-"the people you want in the anonymous chat room. If it's important to "
-"limit exactly who can join, use an encrypted messaging app to send out "
-"the OnionShare address."
+"After you start the server, copy the OnionShare address and private key "
+"and send them to the people you want in the anonymous chat room. If it's "
+"important to limit exactly who can join, use an encrypted messaging app "
+"to send out the OnionShare address and private key."
msgstr ""
-"Når du har startet serveren, kopierer du OnionShare-adressen og sender den "
-"til personene du vil ha i det anonyme chatterommet. Hvis det er viktig å "
-"begrense nøyaktig hvem som kan delta, bruk en kryptert meldingsapp for å "
-"sende OnionShare-adressen."
+"Når du har startet serveren, kopierer du OnionShare-adressen og sender "
+"den til personene du vil ha i det anonyme chatterommet. Hvis det er "
+"viktig å begrense nøyaktig hvem som kan delta, bruk en kryptert "
+"meldingsapp for å sende OnionShare-adressen."
-#: ../../source/features.rst:124
+#: ../../source/features.rst:146
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -414,11 +474,11 @@ msgid ""
"\"Standard\" or \"Safer\", instead of \"Safest\"."
msgstr ""
"Folk kan bli med i praterommet ved å laste OnionShare-adressen i Tor "
-"Browser. Praterommet krever JavasScript, så alle som ønsker å delta må ha "
-"sitt sikkerhetsnivå for Tor Browser satt til \"Standard\" eller \"Safer\", i "
-"stedet for \"Safest\"."
+"Browser. Praterommet krever JavasScript, så alle som ønsker å delta må ha"
+" sitt sikkerhetsnivå for Tor Browser satt til \"Standard\" eller "
+"\"Safer\", i stedet for \"Safest\"."
-#: ../../source/features.rst:127
+#: ../../source/features.rst:149
#, fuzzy
msgid ""
"When someone joins the chat room they get assigned a random name. They "
@@ -426,83 +486,77 @@ msgid ""
"and pressing ↵. Since the chat history isn't saved anywhere, it doesn't "
"get displayed at all, even if others were already chatting in the room."
msgstr ""
-"Når noen blir med i praterommet, får de et tilfeldig navn. De kan endre navn "
-"ved å skrive et nytt navn i boksen i venstre panel og trykke på «↵». Siden "
-"sludrehistorikken ikke er lagret noe sted, blir den ikke vist i det hele "
-"tatt, selv om andre allerede prater i rommet."
+"Når noen blir med i praterommet, får de et tilfeldig navn. De kan endre "
+"navn ved å skrive et nytt navn i boksen i venstre panel og trykke på «↵»."
+" Siden sludrehistorikken ikke er lagret noe sted, blir den ikke vist i "
+"det hele tatt, selv om andre allerede prater i rommet."
-#: ../../source/features.rst:133
+#: ../../source/features.rst:155
#, fuzzy
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change "
"their name to anything, and there is no way to confirm anyone's identity."
msgstr ""
-"I et OnionShare-sludrerom er alle anonyme. Alle kan endre navnet sitt til "
-"hva som helst, og det går ikke an å bekrefte noens identitet."
+"I et OnionShare-sludrerom er alle anonyme. Alle kan endre navnet sitt til"
+" hva som helst, og det går ikke an å bekrefte noens identitet."
-#: ../../source/features.rst:136
+#: ../../source/features.rst:158
msgid ""
"However, if you create an OnionShare chat room and securely send the "
"address only to a small group of trusted friends using encrypted "
"messages, you can be reasonably confident the people joining the chat "
"room are your friends."
msgstr ""
-"Dog, hvis du oppretter et OnionShare-sludringsrom og sikkert sender adressen "
-"til kun et lite knippe betrodde venner ved bruk av krypterte meldinger, kan "
-"du være ganske sikker på at folkene som tar del i sludringsrommet er vennene "
-"dine."
+"Dog, hvis du oppretter et OnionShare-sludringsrom og sikkert sender "
+"adressen til kun et lite knippe betrodde venner ved bruk av krypterte "
+"meldinger, kan du være ganske sikker på at folkene som tar del i "
+"sludringsrommet er vennene dine."
-#: ../../source/features.rst:139
+#: ../../source/features.rst:161
msgid "How is this useful?"
msgstr "Hvordan er dette nyttig?"
-#: ../../source/features.rst:141
+#: ../../source/features.rst:163
msgid ""
"If you need to already be using an encrypted messaging app, what's the "
"point of an OnionShare chat room to begin with? It leaves less traces."
msgstr ""
-"Hvis man bruke et kryptert meldingsprogram fra før av, hva er da poenget med "
-"et OnionShare-praterom? Det levner færre spor."
+"Hvis man bruke et kryptert meldingsprogram fra før av, hva er da poenget "
+"med et OnionShare-praterom? Det levner færre spor."
-#: ../../source/features.rst:143
+#: ../../source/features.rst:165
msgid ""
"If you for example send a message to a Signal group, a copy of your "
-"message ends up on each device (the devices, and computers if they set up"
-" Signal Desktop) of each member of the group. Even if disappearing "
+"message ends up on each device (the smartphones, and computers if they "
+"set up Signal Desktop) of each member of the group. Even if disappearing "
"messages is turned on, it's hard to confirm all copies of the messages "
"are actually deleted from all devices, and from any other places (like "
"notifications databases) they may have been saved to. OnionShare chat "
"rooms don't store any messages anywhere, so the problem is reduced to a "
"minimum."
msgstr ""
-"Hvis du for eksempel sender en melding til en Signal-gruppe, vil en kopi av "
-"den ende opp på hver enhet (enhetene, og datamaskinene hvis de har satt opp "
-"Signal Desktop) for hvert medlem av gruppen. Selv om forsvinningsmeldinger "
-"er påskrudd, er det vanskelig å bekrefte at alle kopiene av meldingene "
-"faktisk er slettet fra alle enheter, og fra alle andre steder (som "
-"merknadsdatabaser) de har blitt lagret i. OnionShare-sludrerom lagrer ingen "
-"meldinger noensteds hen, så problemet er redusert til et minimum."
-#: ../../source/features.rst:146
+#: ../../source/features.rst:168
+#, fuzzy
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
"accounts. For example, a source can send an OnionShare address to a "
-"journalist using a disposable e-mail address, and then wait for the "
+"journalist using a disposable email address, and then wait for the "
"journalist to join the chat room, all without compromosing their "
"anonymity."
msgstr ""
-"OnionShare-praterom kan også være nyttig for folk som ønsker å prate anonymt "
-"og sikkert med noen uten å opprette en konto. For eksempel, en kilde kan "
-"sende en OnionShare-adresse til en journalist ved hjelp av en engangs e-"
-"postadresse, og så vente på at journalisten skal ta del i praterommet, helt "
-"uten å miste anonymiteten."
+"OnionShare-praterom kan også være nyttig for folk som ønsker å prate "
+"anonymt og sikkert med noen uten å opprette en konto. For eksempel, en "
+"kilde kan sende en OnionShare-adresse til en journalist ved hjelp av en "
+"engangs e-postadresse, og så vente på at journalisten skal ta del i "
+"praterommet, helt uten å miste anonymiteten."
-#: ../../source/features.rst:150
+#: ../../source/features.rst:172
msgid "How does the encryption work?"
msgstr "Hvordan fungerer krypteringen?"
-#: ../../source/features.rst:152
+#: ../../source/features.rst:174
msgid ""
"Because OnionShare relies on Tor onion services, connections between the "
"Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When "
@@ -511,19 +565,19 @@ msgid ""
"other members of the chat room using WebSockets, through their E2EE onion"
" connections."
msgstr ""
-"Fordi OnionShare avhenger av Tor-onion tjenester, er tilkoblinger mellom Tor-"
-"nettleseren og OnionShare ende-til-ende -kryptert (E2EE). Når noen poster en "
-"melding i et OnionShare-praterom, sender de den til en tjener gjennom E2EE-"
-"onion tilkobling, som sender den til alle andre medlemmer i praterommet med "
-"WebSockets, gjennom deres E2EE-onion tjenester."
+"Fordi OnionShare avhenger av Tor-onion tjenester, er tilkoblinger mellom "
+"Tor-nettleseren og OnionShare ende-til-ende -kryptert (E2EE). Når noen "
+"poster en melding i et OnionShare-praterom, sender de den til en tjener "
+"gjennom E2EE-onion tilkobling, som sender den til alle andre medlemmer i "
+"praterommet med WebSockets, gjennom deres E2EE-onion tjenester."
-#: ../../source/features.rst:154
+#: ../../source/features.rst:176
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on"
" the Tor onion service's encryption instead."
msgstr ""
-"OnionShare implementerer ingen sludringskryptering på egenhånd. Det avhenger "
-"av Tor-løktjenestens kryptering istedenfor."
+"OnionShare implementerer ingen sludringskryptering på egenhånd. Det "
+"avhenger av Tor-løktjenestens kryptering istedenfor."
#~ msgid "How OnionShare works"
#~ msgstr ""
@@ -912,3 +966,87 @@ msgstr ""
#~ "WebSockets, through their E2EE onion "
#~ "connections."
#~ msgstr ""
+
+#~ msgid "Receive Files"
+#~ msgstr "Mottak av filer"
+
+#~ msgid ""
+#~ "You can use OnionShare to let "
+#~ "people anonymously upload files directly "
+#~ "to your computer, essentially turning it"
+#~ " into an anonymous dropbox. Open a"
+#~ " \"Receive tab\", choose where you "
+#~ "want to save the files and other"
+#~ " settings, and then click \"Start "
+#~ "Receive Mode\"."
+#~ msgstr ""
+#~ "Du kan bruke OnionShare for å la"
+#~ " folk laste opp filer anonymt, "
+#~ "direkte til din datamaskin, noe som "
+#~ "effektivt sett gjør den til en "
+#~ "anonym postboks. Åpne en «Mottaksfane», "
+#~ "velg hvor du ønsker å lagre filene"
+#~ " og andre innstillinger, og klikk så"
+#~ " «Start mottaksmodus»."
+
+#~ msgid ""
+#~ "This starts the OnionShare service. "
+#~ "Anyone loading this address in their "
+#~ "Tor Browser will be able to upload"
+#~ " files to your computer."
+#~ msgstr ""
+#~ "Dette starter OnionShare-tjenesten. Alle "
+#~ "som laster inn denne adressen i "
+#~ "deres Tor-nettleser vil kunne laste "
+#~ "opp filer til din datamaskin."
+
+#~ msgid ""
+#~ "When someone uploads files to your "
+#~ "receive service, by default they get "
+#~ "saved to a folder called ``OnionShare``"
+#~ " in the home folder on your "
+#~ "computer, automatically organized into "
+#~ "separate subfolders based on the time"
+#~ " that the files get uploaded."
+#~ msgstr ""
+#~ "Når noen laster opp filer til din"
+#~ " mottakstjeneste, vil de som forvalg "
+#~ "bli lastet ned til en mappe som"
+#~ " heter ``OnionShare`` i hjemmemappen på "
+#~ "din datamaskin, i automatisk organiserte "
+#~ "undermapper basert på når de ble "
+#~ "lastet opp."
+
+#~ msgid ""
+#~ "If you for example send a message"
+#~ " to a Signal group, a copy of"
+#~ " your message ends up on each "
+#~ "device (the devices, and computers if"
+#~ " they set up Signal Desktop) of "
+#~ "each member of the group. Even if"
+#~ " disappearing messages is turned on, "
+#~ "it's hard to confirm all copies of"
+#~ " the messages are actually deleted "
+#~ "from all devices, and from any "
+#~ "other places (like notifications databases)"
+#~ " they may have been saved to. "
+#~ "OnionShare chat rooms don't store any"
+#~ " messages anywhere, so the problem is"
+#~ " reduced to a minimum."
+#~ msgstr ""
+#~ "Hvis du for eksempel sender en "
+#~ "melding til en Signal-gruppe, vil "
+#~ "en kopi av den ende opp på "
+#~ "hver enhet (enhetene, og datamaskinene "
+#~ "hvis de har satt opp Signal "
+#~ "Desktop) for hvert medlem av gruppen."
+#~ " Selv om forsvinningsmeldinger er påskrudd,"
+#~ " er det vanskelig å bekrefte at "
+#~ "alle kopiene av meldingene faktisk er"
+#~ " slettet fra alle enheter, og fra "
+#~ "alle andre steder (som merknadsdatabaser) "
+#~ "de har blitt lagret i. OnionShare-"
+#~ "sludrerom lagrer ingen meldinger noensteds "
+#~ "hen, så problemet er redusert til "
+#~ "et minimum."
+
diff --git a/docs/source/locale/nb_NO/LC_MESSAGES/help.po b/docs/source/locale/nb_NO/LC_MESSAGES/help.po
index 83ec0b04..ec11fb70 100644
--- a/docs/source/locale/nb_NO/LC_MESSAGES/help.po
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/help.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-11-15 14:42-0800\n"
-"PO-Revision-Date: 2020-11-19 08:28+0000\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
+"PO-Revision-Date: 2022-01-21 19:11+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language-Team: none\n"
"Language: nb_NO\n"
@@ -16,8 +16,8 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"X-Generator: Weblate 4.11-dev\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/help.rst:2
msgid "Getting Help"
@@ -32,19 +32,20 @@ msgid ""
"You will find instructions on how to use OnionShare. Look through all of "
"the sections first to see if anything answers your questions."
msgstr ""
-"Du finner instruks i detaljert bruk av OnionShare. Se gjennom alle delene "
-"først for å se om ditt spørsmål er besvart."
+"Du finner instruks i detaljert bruk av OnionShare. Se gjennom alle delene"
+" først for å se om ditt spørsmål er besvart."
#: ../../source/help.rst:10
msgid "Check the GitHub Issues"
msgstr "Sjekk GitHub-feilrapportene"
#: ../../source/help.rst:12
+#, fuzzy
msgid ""
"If it isn't on the website, please check the `GitHub issues "
-"<https://github.com/micahflee/onionshare/issues>`_. It's possible someone"
-" else has encountered the same problem and either raised it with the "
-"developers, or maybe even posted a solution."
+"<https://github.com/onionshare/onionshare/issues>`_. It's possible "
+"someone else has encountered the same problem and either raised it with "
+"the developers, or maybe even posted a solution."
msgstr ""
"Hvis det ikke er å finne på nettsiden, sjekk `GitHub-feilsporeren "
"<https://github.com/micahflee/onionshare/issues>`_. Det er mulig at noen "
@@ -59,15 +60,14 @@ msgstr "Send inn en feilrapport selv"
msgid ""
"If you are unable to find a solution, or wish to ask a question or "
"suggest a new feature, please `submit an issue "
-"<https://github.com/micahflee/onionshare/issues/new>`_. This requires "
+"<https://github.com/onionshare/onionshare/issues/new>`_. This requires "
"`creating a GitHub account <https://help.github.com/articles/signing-up-"
"for-a-new-github-account/>`_."
msgstr ""
-"Hvis du ikke finner en løsning, eller ønsker å stille et spørsmål eller "
-"foreslå en ny funksjon, `send inn en feilrapport <https://github.com/"
-"micahflee/onionshare/issues/new>`_. Dette krever `opprettelse av GitHub-"
-"konto <https://help.github.com/articles/signing-up-for-a-new-github-account/"
-">`_."
+"Hvis du ikke finner en løsning, eller vil foreslå en ny funksjon kan du `"
+"sende inn en forespørsel <https://github.com/onionshare/onionshare/issues/"
+"new>`_. Dette krever `en GitHub-konto <https://help.github.com/articles/"
+"signing-up-for-a-new-github-account/>`_."
#: ../../source/help.rst:20
msgid "Join our Keybase Team"
@@ -78,8 +78,8 @@ msgid ""
"See :ref:`collaborating` on how to join the Keybase team used to discuss "
"the project."
msgstr ""
-"Sjekk :ref:`collaborating` for info om hvordan du tar del i Keybase-laget "
-"brukt til diskusjon av prosjektet."
+"Sjekk :ref:`collaborating` for info om hvordan du tar del i Keybase-laget"
+" brukt til diskusjon av prosjektet."
#~ msgid "If you need help with OnionShare, please follow the instructions below."
#~ msgstr ""
@@ -132,3 +132,22 @@ msgstr ""
#~ "that we use to discuss the "
#~ "project."
#~ msgstr ""
+
+#~ msgid ""
+#~ "If you are unable to find a "
+#~ "solution, or wish to ask a "
+#~ "question or suggest a new feature, "
+#~ "please `submit an issue "
+#~ "<https://github.com/micahflee/onionshare/issues/new>`_. This "
+#~ "requires `creating a GitHub account "
+#~ "<https://help.github.com/articles/signing-up-for-a-new-"
+#~ "github-account/>`_."
+#~ msgstr ""
+#~ "Hvis du ikke finner en løsning, "
+#~ "eller ønsker å stille et spørsmål "
+#~ "eller foreslå en ny funksjon, `send "
+#~ "inn en feilrapport "
+#~ "<https://github.com/micahflee/onionshare/issues/new>`_. Dette"
+#~ " krever `opprettelse av GitHub-konto "
+#~ "<https://help.github.com/articles/signing-up-for-a-new-"
+#~ "github-account/>`_."
diff --git a/docs/source/locale/nb_NO/LC_MESSAGES/install.po b/docs/source/locale/nb_NO/LC_MESSAGES/install.po
index e314cb74..482bc293 100644
--- a/docs/source/locale/nb_NO/LC_MESSAGES/install.po
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/install.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-12-13 15:48-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2021-01-10 16:32+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
-"Language-Team: none\n"
"Language: nb_NO\n"
+"Language-Team: none\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4.1-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/install.rst:2
msgid "Installation"
@@ -36,8 +35,8 @@ msgstr ""
"nettsiden <https://onionshare.org/>`_."
#: ../../source/install.rst:12
-msgid "Install in Linux"
-msgstr "Installasjon på Linux"
+msgid "Linux"
+msgstr ""
#: ../../source/install.rst:14
#, fuzzy
@@ -49,9 +48,10 @@ msgid ""
"sandbox."
msgstr ""
"Det er forskjellige måter å installere OnionShare i Linux|GNU, men den "
-"anbefalte måten er å enten bruke `Flatpak <https://flatpak.org/>`_ eller `"
-"Snapcraft <https://snapcraft.io/>`_-pakken. Flatpak og Snapcraft sørger for "
-"at du alltid har den nyeste versjonen, og kjører OnionShare i en sandkasse."
+"anbefalte måten er å enten bruke `Flatpak <https://flatpak.org/>`_ eller "
+"`Snapcraft <https://snapcraft.io/>`_-pakken. Flatpak og Snapcraft sørger "
+"for at du alltid har den nyeste versjonen, og kjører OnionShare i en "
+"sandkasse."
#: ../../source/install.rst:17
#, fuzzy
@@ -74,8 +74,8 @@ msgstr ""
#, fuzzy
msgid "**Install OnionShare using Snap**: https://snapcraft.io/onionshare"
msgstr ""
-"**Installer OnionShare ved bruk av Snapcraft**: https://snapcraft.io/"
-"onionshare"
+"**Installer OnionShare ved bruk av Snapcraft**: "
+"https://snapcraft.io/onionshare"
#: ../../source/install.rst:23
#, fuzzy
@@ -88,10 +88,21 @@ msgstr ""
"det."
#: ../../source/install.rst:28
+msgid "Command-line only"
+msgstr ""
+
+#: ../../source/install.rst:30
+msgid ""
+"You can install just the command line version of OnionShare on any "
+"operating system using the Python package manager ``pip``. See :ref:`cli`"
+" for more information."
+msgstr ""
+
+#: ../../source/install.rst:35
msgid "Verifying PGP signatures"
msgstr "Bekreftelse av PGP-signaturer"
-#: ../../source/install.rst:30
+#: ../../source/install.rst:37
msgid ""
"You can verify that the package you download is legitimate and hasn't "
"been tampered with by verifying its PGP signature. For Windows and macOS,"
@@ -105,11 +116,11 @@ msgstr ""
"binærfilen har operativsystem-spesifikke signaturer, og du kan bare stole"
" på dem hvis du ønsker det."
-#: ../../source/install.rst:34
+#: ../../source/install.rst:41
msgid "Signing key"
msgstr "Signering av nøkkel"
-#: ../../source/install.rst:36
+#: ../../source/install.rst:43
msgid ""
"Packages are signed by Micah Lee, the core developer, using his PGP "
"public key with fingerprint ``927F419D7EC82C2F149C1BD1403C2657CD994F73``."
@@ -124,7 +135,7 @@ msgstr ""
"<https://keys.openpgp.org/vks/v1/by-"
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
-#: ../../source/install.rst:38
+#: ../../source/install.rst:45
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you "
"probably want `GPGTools <https://gpgtools.org/>`_, and for Windows you "
@@ -135,11 +146,11 @@ msgstr ""
"Windows vil du antagelig ønske å bruke `Gpg4win "
"<https://www.gpg4win.org/>`_."
-#: ../../source/install.rst:41
+#: ../../source/install.rst:48
msgid "Signatures"
msgstr "Signaturer"
-#: ../../source/install.rst:43
+#: ../../source/install.rst:50
#, fuzzy
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, "
@@ -154,11 +165,11 @@ msgstr ""
"`GitHub-utgivelsessiden "
"<https://github.com/micahflee/onionshare/releases>`_."
-#: ../../source/install.rst:47
+#: ../../source/install.rst:54
msgid "Verifying"
msgstr "Bekreftelse"
-#: ../../source/install.rst:49
+#: ../../source/install.rst:56
#, fuzzy
msgid ""
"Once you have imported Micah's public key into your GnuPG keychain, "
@@ -169,29 +180,29 @@ msgstr ""
"nøkkelknippe, lastet ned binærfilen, og lastet ned ``.asc``-signaturen, "
"kan du bekrefte den kjørbare binærfilen for macOS i en terminal slik::"
-#: ../../source/install.rst:53
+#: ../../source/install.rst:60
msgid "Or for Windows, in a command-prompt like this::"
msgstr "Eller for WIndows, i en kommandoledetekst slik::"
-#: ../../source/install.rst:57
+#: ../../source/install.rst:64
msgid "The expected output looks like this::"
msgstr "Forventet utdata ser slik ut::"
-#: ../../source/install.rst:69
+#: ../../source/install.rst:76
#, fuzzy
msgid ""
-"If you don't see 'Good signature from', there might be a problem with the"
-" integrity of the file (malicious or otherwise), and you should not "
-"install the package. (The \"WARNING:\" shown above, is not a problem with"
-" the package, it only means you haven't already defined any level of "
-"'trust' of Micah's PGP key.)"
+"If you don't see ``Good signature from``, there might be a problem with "
+"the integrity of the file (malicious or otherwise), and you should not "
+"install the package. (The ``WARNING:`` shown above, is not a problem with"
+" the package, it only means you haven't defined a level of \"trust\" of "
+"Micah's PGP key.)"
msgstr ""
"Hvis du ikke ser «God signatur fra» er det kanskje et problem med filen "
"(ondsinnet eller av annen årsak), og du bør ikke installere pakken. "
"(ADVARSEL vist ovenfor er ikke et problem med pakken; det betyr kun at du"
" ikke allerede har etablert et tillits-nivå til Micah sin PGP-nøkkel."
-#: ../../source/install.rst:71
+#: ../../source/install.rst:78
#, fuzzy
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
@@ -318,3 +329,7 @@ msgstr ""
#~ "Project <https://2019.www.torproject.org/docs/verifying-"
#~ "signatures.html.en>`_ may be helpful."
#~ msgstr ""
+
+#~ msgid "Install in Linux"
+#~ msgstr "Installasjon på Linux"
+
diff --git a/docs/source/locale/nb_NO/LC_MESSAGES/security.po b/docs/source/locale/nb_NO/LC_MESSAGES/security.po
index effe102a..10f36afe 100644
--- a/docs/source/locale/nb_NO/LC_MESSAGES/security.po
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/security.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-12-13 15:48-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2021-05-10 22:38+0000\n"
"Last-Translator: Jonas Matisen <hdsumo@protonmail.ch>\n"
-"Language-Team: none\n"
"Language: nb_NO\n"
+"Language-Team: none\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.7-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/security.rst:2
msgid "Security Design"
@@ -87,40 +86,30 @@ msgstr ""
msgid ""
"**If an attacker learns about the onion service, it still can't access "
"anything.** Prior attacks against the Tor network to enumerate onion "
-"services allowed the attacker to discover private .onion addresses. If an"
-" attack discovers a private OnionShare address, a password will be "
-"prevent them from accessing it (unless the OnionShare user chooses to "
-"turn it off and make it public). The password is generated by choosing "
-"two random words from a list of 6800 words, making 6800², or about 46 "
-"million possible passwords. Only 20 wrong guesses can be made before "
-"OnionShare stops the server, preventing brute force attacks against the "
-"password."
+"services allowed the attacker to discover private ``.onion`` addresses. "
+"If an attack discovers a private OnionShare address, they will also need "
+"to guess the private key used for client authentication in order to "
+"access it (unless the OnionShare user chooses make their service public "
+"by turning off the private key -- see :ref:`turn_off_private_key`)."
msgstr ""
-"**Hvis en angriper lærer om løketjenesten, kan den fremdeles ikke få tilgang "
-"til noe. ** Tidligere angrep mot Tor-nettverket for å oppregne løketjenester "
-"tillot angriperen å oppdage private .onion-adresser. Hvis et angrep oppdager "
-"en privat OnionShare-adresse, vil et passord hindre dem i å få tilgang til "
-"den (med mindre OnionShare-brukeren velger å slå den av og gjøre den "
-"offentlig). Passordet genereres ved å velge to tilfeldige ord fra en liste "
-"på 6800 ord, noe som gir 6800², eller omtrent 46 millioner mulige passord. "
-"Bare 20 feil gjetninger kan gjøres før OnionShare stopper serveren, og "
-"forhindrer brute force-angrep mot passordet."
#: ../../source/security.rst:20
msgid "What OnionShare doesn't protect against"
msgstr "Hva OnionShare ikke beskytter mot"
#: ../../source/security.rst:22
+#, fuzzy
msgid ""
-"**Communicating the OnionShare address might not be secure.** "
-"Communicating the OnionShare address to people is the responsibility of "
-"the OnionShare user. If sent insecurely (such as through an email message"
-" monitored by an attacker), an eavesdropper can tell that OnionShare is "
-"being used. If the eavesdropper loads the address in Tor Browser while "
-"the service is still up, they can access it. To avoid this, the address "
-"must be communicateed securely, via encrypted text message (probably with"
-" disappearing messages enabled), encrypted email, or in person. This "
-"isn't necessary when using OnionShare for something that isn't secret."
+"**Communicating the OnionShare address and private key might not be "
+"secure.** Communicating the OnionShare address to people is the "
+"responsibility of the OnionShare user. If sent insecurely (such as "
+"through an email message monitored by an attacker), an eavesdropper can "
+"tell that OnionShare is being used. If the eavesdropper loads the address"
+" in Tor Browser while the service is still up, they can access it. To "
+"avoid this, the address must be communicated securely, via encrypted text"
+" message (probably with disappearing messages enabled), encrypted email, "
+"or in person. This isn't necessary when using OnionShare for something "
+"that isn't secret."
msgstr ""
"**Å kommunisere OnionShare-adressen er ikke nødvendigvis sikkert.** Å "
"dele OnionShare-adressen til folk er OnionShare-brukerens ansvar. Hvis "
@@ -134,17 +123,19 @@ msgstr ""
"brukes for noe som ikke er hemmelig."
#: ../../source/security.rst:24
+#, fuzzy
msgid ""
-"**Communicating the OnionShare address might not be anonymous.** Extra "
-"precautions must be taken to ensure the OnionShare address is "
-"communicated anonymously. A new email or chat account, only accessed over"
-" Tor, can be used to share the address. This isn't necessary unless "
-"anonymity is a goal."
+"**Communicating the OnionShare address and private key might not be "
+"anonymous.** Extra precautions must be taken to ensure the OnionShare "
+"address is communicated anonymously. A new email or chat account, only "
+"accessed over Tor, can be used to share the address. This isn't necessary"
+" unless anonymity is a goal."
msgstr ""
-"** Kommunikasjon av OnionShare-adressen er kanskje ikke anonym. ** Ekstra "
-"forholdsregler må tas for å sikre at OnionShare-adressen kommuniseres "
-"anonymt. En ny e-post eller chat-konto, kun tilgjengelig via Tor, kan brukes "
-"til å dele adressen. Dette er ikke nødvendig med mindre anonymitet er et mål."
+"** Kommunikasjon av OnionShare-adressen er kanskje ikke anonym. ** Ekstra"
+" forholdsregler må tas for å sikre at OnionShare-adressen kommuniseres "
+"anonymt. En ny e-post eller chat-konto, kun tilgjengelig via Tor, kan "
+"brukes til å dele adressen. Dette er ikke nødvendig med mindre anonymitet"
+" er et mål."
#~ msgid "Security design"
#~ msgstr ""
@@ -252,3 +243,44 @@ msgstr ""
#~ "anonymity, such as co-workers who "
#~ "know each other sharing work documents."
#~ msgstr ""
+
+#~ msgid ""
+#~ "**If an attacker learns about the "
+#~ "onion service, it still can't access "
+#~ "anything.** Prior attacks against the "
+#~ "Tor network to enumerate onion services"
+#~ " allowed the attacker to discover "
+#~ "private .onion addresses. If an attack"
+#~ " discovers a private OnionShare address,"
+#~ " a password will be prevent them "
+#~ "from accessing it (unless the OnionShare"
+#~ " user chooses to turn it off "
+#~ "and make it public). The password "
+#~ "is generated by choosing two random "
+#~ "words from a list of 6800 words,"
+#~ " making 6800², or about 46 million"
+#~ " possible passwords. Only 20 wrong "
+#~ "guesses can be made before OnionShare"
+#~ " stops the server, preventing brute "
+#~ "force attacks against the password."
+#~ msgstr ""
+#~ "**Hvis en angriper lærer om "
+#~ "løketjenesten, kan den fremdeles ikke få"
+#~ " tilgang til noe. ** Tidligere angrep"
+#~ " mot Tor-nettverket for å oppregne"
+#~ " løketjenester tillot angriperen å oppdage"
+#~ " private .onion-adresser. Hvis et "
+#~ "angrep oppdager en privat OnionShare-"
+#~ "adresse, vil et passord hindre dem "
+#~ "i å få tilgang til den (med "
+#~ "mindre OnionShare-brukeren velger å slå"
+#~ " den av og gjøre den offentlig). "
+#~ "Passordet genereres ved å velge to "
+#~ "tilfeldige ord fra en liste på "
+#~ "6800 ord, noe som gir 6800², eller"
+#~ " omtrent 46 millioner mulige passord. "
+#~ "Bare 20 feil gjetninger kan gjøres "
+#~ "før OnionShare stopper serveren, og "
+#~ "forhindrer brute force-angrep mot "
+#~ "passordet."
+
diff --git a/docs/source/locale/nb_NO/LC_MESSAGES/tor.po b/docs/source/locale/nb_NO/LC_MESSAGES/tor.po
index 39190459..89c9828c 100644
--- a/docs/source/locale/nb_NO/LC_MESSAGES/tor.po
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/tor.po
@@ -7,33 +7,33 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2020-12-13 15:48-0800\n"
+"POT-Creation-Date: 2022-01-17 10:28-0800\n"
"PO-Revision-Date: 2021-01-10 16:32+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
-"Language-Team: none\n"
"Language: nb_NO\n"
+"Language-Team: none\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4.1-dev\n"
-"Generated-By: Babel 2.9.0\n"
+"Generated-By: Babel 2.9.1\n"
#: ../../source/tor.rst:2
msgid "Connecting to Tor"
msgstr "Tilkobling til Tor"
#: ../../source/tor.rst:4
+#, fuzzy
msgid ""
-"Pick a way to connect OnionShare to Tor by clicking the \"⚙\" icon in the"
-" bottom right of the OnionShare window to get to its settings."
+"Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in"
+" the bottom right of the OnionShare window to open the Tor Settings tab."
msgstr ""
"Velg en måte å koble OnionShare til Tor ved å klikke på \"⚙\"-ikonet "
"nederst til høyre i OnionShare-vinduet for å komme til de innstillingene."
#: ../../source/tor.rst:9
-msgid "Use the ``tor`` bundled with OnionShare"
-msgstr "Bruk Tor som det kommer, innebygd i OnionShare"
+msgid "Use the Tor version built into OnionShare"
+msgstr ""
#: ../../source/tor.rst:11
msgid ""
@@ -57,10 +57,53 @@ msgstr ""
"Tor-nettleseren på systemet, eller ``tor`` på egenhånd."
#: ../../source/tor.rst:18
+msgid "Getting Around Censorship"
+msgstr ""
+
+#: ../../source/tor.rst:20
+#, fuzzy
+msgid ""
+"If your access to the internet is censored, you can configure OnionShare "
+"to connect to the Tor network using `Tor bridges <https://tb-"
+"manual.torproject.org/bridges/>`_. If OnionShare connects to Tor without "
+"one, you don't need to use a bridge."
+msgstr ""
+"Hvis din tilgang til Internett er sensurert, kan du sette opp OnionShare "
+"slik at det kobler til Tor-nettverket ved bruk av `Tor-broer "
+"<https://2019.www.torproject.org/docs/bridges.html.en>`_. Hvis OnionShare"
+" klarer å koble til uten, trenger du ikke å bruke en bro."
+
+#: ../../source/tor.rst:22
+msgid ""
+"To use a bridge, open the Tor Settings tab. You must select \"Use the Tor"
+" version built into OnionShare\" and check the \"Use a bridge\" checkbox."
+msgstr ""
+
+#: ../../source/tor.rst:25
+msgid ""
+"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges "
+"is recommended over using `meek-azure`."
+msgstr ""
+
+#: ../../source/tor.rst:29
+msgid ""
+"If using a built-in bridge doesn't work, you can request a bridge from "
+"torproject.org. You will have to solve a CAPTCHA in order to request a "
+"bridge. (This makes it more difficult for governments or ISPs to block "
+"access to Tor bridges.)"
+msgstr ""
+
+#: ../../source/tor.rst:33
+msgid ""
+"You also have the option of using a bridge that you learned about from a "
+"trusted source."
+msgstr ""
+
+#: ../../source/tor.rst:36
msgid "Attempt auto-configuration with Tor Browser"
msgstr "Forsøk automatisk oppsett med Tor-nettleseren"
-#: ../../source/tor.rst:20
+#: ../../source/tor.rst:38
msgid ""
"If you have `downloaded the Tor Browser <https://www.torproject.org>`_ "
"and don't want two ``tor`` processes running, you can use the ``tor`` "
@@ -73,11 +116,11 @@ msgstr ""
"nettleseren. Ha i minne at du må ha Tor-nettleseren åpen i bakgrunnen "
"mens du bruker OnionShare for at dette skal virke."
-#: ../../source/tor.rst:24
+#: ../../source/tor.rst:42
msgid "Using a system ``tor`` in Windows"
msgstr "Bruk av systemets Tor i Windows"
-#: ../../source/tor.rst:26
+#: ../../source/tor.rst:44
msgid ""
"This is fairly advanced. You'll need to know how edit plaintext files and"
" do stuff as an administrator."
@@ -85,7 +128,7 @@ msgstr ""
"Dette er ganske avansert. Du må vite hvordan du redigerer filer i "
"klartekst og gjøre ting som administrator."
-#: ../../source/tor.rst:28
+#: ../../source/tor.rst:46
#, fuzzy
msgid ""
"Download the Tor Windows Expert Bundle `from "
@@ -93,12 +136,13 @@ msgid ""
" and copy the extracted folder to ``C:\\Program Files (x86)\\`` Rename "
"the extracted folder with ``Data`` and ``Tor`` in it to ``tor-win32``."
msgstr ""
-"Last ned ekspertknippet for Tor på Windows `fra <https://www.torproject.org/"
-"download/tor/>`_. Pakk ut de komprimerte filene og kopier det utpakkede "
-"innholdet til ``C:\\Programfiler (x86)\\`` Gi den utpakkede mappen det nye "
-"navnet ``Data`` og ``Tor`` inne i den til ``tor-win32``."
+"Last ned ekspertknippet for Tor på Windows `fra "
+"<https://www.torproject.org/download/tor/>`_. Pakk ut de komprimerte "
+"filene og kopier det utpakkede innholdet til ``C:\\Programfiler (x86)\\``"
+" Gi den utpakkede mappen det nye navnet ``Data`` og ``Tor`` inne i den "
+"til ``tor-win32``."
-#: ../../source/tor.rst:32
+#: ../../source/tor.rst:50
msgid ""
"Make up a control port password. (Using 7 words in a sequence like "
"``comprised stumble rummage work avenging construct volatile`` is a good "
@@ -112,7 +156,7 @@ msgstr ""
"administrator og bruke ``tor.exe --hash-password`` for å generere en "
"sjekksum for ditt passord. For eksempel::"
-#: ../../source/tor.rst:39
+#: ../../source/tor.rst:57
msgid ""
"The hashed password output is displayed after some warnings (which you "
"can ignore). In the case of the above example, it is "
@@ -122,7 +166,7 @@ msgstr ""
" kan se bort fra). For eksmplet ovenfor, er den "
"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
-#: ../../source/tor.rst:41
+#: ../../source/tor.rst:59
msgid ""
"Now create a new text file at ``C:\\Program Files (x86)\\tor-"
"win32\\torrc`` and put your hashed password output in it, replacing the "
@@ -132,7 +176,7 @@ msgstr ""
" og sett inn den sjekksummerte utdataen for passordet i den, slik at det "
"erstatter ``HashedControlPassword`` med det du akkurat genererte::"
-#: ../../source/tor.rst:46
+#: ../../source/tor.rst:64
msgid ""
"In your administrator command prompt, install ``tor`` as a service using "
"the appropriate ``torrc`` file you just created (as described in "
@@ -143,11 +187,11 @@ msgstr ""
"bruke den egnede ``torrc``-filen du akkurat oppretet (som beskrevet i "
"`<https://2019.www.torproject.org/docs/faq.html.en#NTService>`_). Slik::"
-#: ../../source/tor.rst:50
+#: ../../source/tor.rst:68
msgid "You are now running a system ``tor`` process in Windows!"
msgstr "Du kjører nå en systembasert``tor``-prosess i Windows!"
-#: ../../source/tor.rst:52
+#: ../../source/tor.rst:70
#, fuzzy
msgid ""
"Open OnionShare and click the \"⚙\" icon in it. Under \"How should "
@@ -166,11 +210,11 @@ msgstr ""
"ovenfor. Klikk på \"Test tilkoblingen til Tor\"-knappen. Hvis alt går "
"bra, vil du se \"Tilkoblet til Tor-kontrolleren\"."
-#: ../../source/tor.rst:61
+#: ../../source/tor.rst:79
msgid "Using a system ``tor`` in macOS"
msgstr "Bruk av systemets Tor i macOS"
-#: ../../source/tor.rst:63
+#: ../../source/tor.rst:81
#, fuzzy
msgid ""
"First, install `Homebrew <https://brew.sh/>`_ if you don't already have "
@@ -179,15 +223,15 @@ msgstr ""
"Først må du installere `Homebrew <https://brew.sh/>`_ hvis du ikke "
"allerede har det, og så installere Tor::"
-#: ../../source/tor.rst:67
+#: ../../source/tor.rst:85
msgid "Now configure Tor to allow connections from OnionShare::"
msgstr "Sett opp Tor for å tillate tilkoblinger fra OnionShare::"
-#: ../../source/tor.rst:74
+#: ../../source/tor.rst:92
msgid "And start the system Tor service::"
msgstr "Og start den systembaserte Tor-tjenesten::"
-#: ../../source/tor.rst:78
+#: ../../source/tor.rst:96
msgid ""
"Open OnionShare and click the \"⚙\" icon in it. Under \"How should "
"OnionShare connect to Tor?\" choose \"Connect using socket file\", and "
@@ -203,15 +247,15 @@ msgstr ""
"kakebasert identitetsbekreftelse\". Klikk på \"Test tilkobling til "
"Tor\"-knappen."
-#: ../../source/tor.rst:84 ../../source/tor.rst:104
+#: ../../source/tor.rst:102 ../../source/tor.rst:122
msgid "If all goes well, you should see \"Connected to the Tor controller\"."
msgstr "Hvis alt går bra, vil du se «Tilkoblet til Tor-kontrolleren»."
-#: ../../source/tor.rst:87
+#: ../../source/tor.rst:105
msgid "Using a system ``tor`` in Linux"
msgstr "Bruk av systemets Tor på Linux"
-#: ../../source/tor.rst:89
+#: ../../source/tor.rst:107
msgid ""
"First, install the ``tor`` package. If you're using Debian, Ubuntu, or a "
"similar Linux distro, It is recommended to use the Tor Project's "
@@ -223,7 +267,7 @@ msgstr ""
"`offisielle pakkebrønn <https://support.torproject.org/apt/tor-deb-"
"repo/>`_."
-#: ../../source/tor.rst:91
+#: ../../source/tor.rst:109
msgid ""
"Next, add your user to the group that runs the ``tor`` process (in the "
"case of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to "
@@ -233,7 +277,7 @@ msgstr ""
"``tor``-prosessen (som for Debian og Ubuntu er ``debian-tor`` og setter "
"opp OnionShare til å koblet til ditt systems ``tor``-kontrollsocket-fil."
-#: ../../source/tor.rst:93
+#: ../../source/tor.rst:111
msgid ""
"Add your user to the ``debian-tor`` group by running this command "
"(replace ``username`` with your actual username)::"
@@ -241,7 +285,7 @@ msgstr ""
"Legg så til din bruker i ``debian-tor``-gruppen ved å kjøre denne "
"kommandoen (erstatt ``username`` med ditt faktiske brukernavn)::"
-#: ../../source/tor.rst:97
+#: ../../source/tor.rst:115
msgid ""
"Reboot your computer. After it boots up again, open OnionShare and click "
"the \"⚙\" icon in it. Under \"How should OnionShare connect to Tor?\" "
@@ -250,47 +294,14 @@ msgid ""
"\"No authentication, or cookie authentication\". Click the \"Test "
"Connection to Tor\" button."
msgstr ""
-"Utfør en omstart av datamaskinen. Etter at den starter opp igjen, åpner du "
-"OnionShare og klikker på \"⚙\"-ikonet i det. Under «Hvordan skal OnionShare "
-"koble til Tor?» velger du «Koble til ved bruk av socket-fil». Sett socket-"
-"fil til å være ``/var/run/tor/control``. Under «Innstillinger for Tor-"
-"identitetsbekreftelse» velger du «Ingen identitetsbekreftelse, eller "
-"kakebasert identitetsbekreftelse». Klikk så «Test tilkobling til "
+"Utfør en omstart av datamaskinen. Etter at den starter opp igjen, åpner "
+"du OnionShare og klikker på \"⚙\"-ikonet i det. Under «Hvordan skal "
+"OnionShare koble til Tor?» velger du «Koble til ved bruk av socket-fil». "
+"Sett socket-fil til å være ``/var/run/tor/control``. Under «Innstillinger"
+" for Tor-identitetsbekreftelse» velger du «Ingen identitetsbekreftelse, "
+"eller kakebasert identitetsbekreftelse». Klikk så «Test tilkobling til "
"Tor»-knappen."
-#: ../../source/tor.rst:107
-msgid "Using Tor bridges"
-msgstr "Bruk av Tor-broer"
-
-#: ../../source/tor.rst:109
-msgid ""
-"If your access to the Internet is censored, you can configure OnionShare "
-"to connect to the Tor network using `Tor bridges "
-"<https://2019.www.torproject.org/docs/bridges.html.en>`_. If OnionShare "
-"connects to Tor without one, you don't need to use a bridge."
-msgstr ""
-"Hvis din tilgang til Internett er sensurert, kan du sette opp OnionShare "
-"slik at det kobler til Tor-nettverket ved bruk av `Tor-broer "
-"<https://2019.www.torproject.org/docs/bridges.html.en>`_. Hvis OnionShare"
-" klarer å koble til uten, trenger du ikke å bruke en bro."
-
-#: ../../source/tor.rst:111
-msgid "To configure bridges, click the \"⚙\" icon in OnionShare."
-msgstr "For å sette opp broer, åpne OnionShare-innstillingene."
-
-#: ../../source/tor.rst:113
-#, fuzzy
-msgid ""
-"You can use the built-in obfs4 pluggable transports, the built-in "
-"meek_lite (Azure) pluggable transports, or custom bridges, which you can "
-"obtain from Tor's `BridgeDB <https://bridges.torproject.org/>`_. If you "
-"need to use a bridge, try the built-in obfs4 ones first."
-msgstr ""
-"Du kan bruke den pluggbare transporten obfs4, den innebygde meek_lite "
-"(Azure)-pluggbare transporten, eller egendefinerte broer, som du kan finne i "
-"Tor sin `BridgeDB <https://bridges.torproject.org/>`_. Hvis du må bruke en "
-"bro, prøv de innebygde obfs4-baserte broene først."
-
#~ msgid "Using a system Tor in Mac OS X"
#~ msgstr "Bruk av systemets Tor på macOS"
@@ -505,3 +516,31 @@ msgstr ""
#~ " Files (x86)\\`` Gi mappen med "
#~ "``Data`` og``Tor`` nytt navn til "
#~ "``tor-win32``."
+
+#~ msgid "Use the ``tor`` bundled with OnionShare"
+#~ msgstr "Bruk Tor som det kommer, innebygd i OnionShare"
+
+#~ msgid "Using Tor bridges"
+#~ msgstr "Bruk av Tor-broer"
+
+#~ msgid "To configure bridges, click the \"⚙\" icon in OnionShare."
+#~ msgstr "For å sette opp broer, åpne OnionShare-innstillingene."
+
+#~ msgid ""
+#~ "You can use the built-in obfs4 "
+#~ "pluggable transports, the built-in "
+#~ "meek_lite (Azure) pluggable transports, or "
+#~ "custom bridges, which you can obtain "
+#~ "from Tor's `BridgeDB "
+#~ "<https://bridges.torproject.org/>`_. If you need "
+#~ "to use a bridge, try the built-"
+#~ "in obfs4 ones first."
+#~ msgstr ""
+#~ "Du kan bruke den pluggbare transporten"
+#~ " obfs4, den innebygde meek_lite "
+#~ "(Azure)-pluggbare transporten, eller egendefinerte"
+#~ " broer, som du kan finne i Tor"
+#~ " sin `BridgeDB <https://bridges.torproject.org/>`_. "
+#~ "Hvis du må bruke en bro, prøv "
+#~ "de innebygde obfs4-baserte broene først."
+
diff --git a/docs/source/locale/pt_BR/LC_MESSAGES/advanced.po b/docs/source/locale/pt_BR/LC_MESSAGES/advanced.po
index 869a27a0..2f9cc266 100644
--- a/docs/source/locale/pt_BR/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/pt_BR/LC_MESSAGES/advanced.po
@@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-09-09 19:49-0700\n"
-"PO-Revision-Date: 2021-10-24 21:38+0000\n"
-"Last-Translator: Gabriel Cardoso <g.cardoso@mailfence.com>\n"
+"PO-Revision-Date: 2021-12-02 14:52+0000\n"
+"Last-Translator: Venilson Carneiro <venilsoncarneiro@pm.me>\n"
"Language-Team: pt_BR <LL@li.org>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
+"X-Generator: Weblate 4.10-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/advanced.rst:2
@@ -111,6 +111,10 @@ msgid ""
"server. Then the server will be public and won't need a private key to "
"view in Tor Browser."
msgstr ""
+"Para desligar a chave privada para qualquer aba, marque a caixa \"Este é um "
+"serviço público OnionShare (desativa a chave privada)\" antes de iniciar o "
+"servidor. Então o servidor será público e não precisará de uma chave privada "
+"para visualizar no Tor Browser."
#: ../../source/advanced.rst:40
msgid "Custom Titles"
@@ -122,12 +126,17 @@ msgid ""
"see the default title for the type of service. For example, the default "
"title of a chat service is \"OnionShare Chat\"."
msgstr ""
+"Por padrão, quando as pessoas carregam um serviço OnionShare no Tor Browser "
+"elas vêem o título padrão para o tipo de serviço. Por exemplo, o título "
+"padrão de um serviço de bate-papo é \"OnionShare Chat\"."
#: ../../source/advanced.rst:44
msgid ""
"If you want to choose a custom title, set the \"Custom title\" setting "
"before starting a server."
msgstr ""
+"Se você quiser escolher um título personalizado, defina a configuração "
+"\"Título personalizado\" antes de iniciar um servidor."
#: ../../source/advanced.rst:47
msgid "Scheduled Times"
diff --git a/docs/source/locale/pt_BR/LC_MESSAGES/features.po b/docs/source/locale/pt_BR/LC_MESSAGES/features.po
index fd574ba1..aa0d01d4 100644
--- a/docs/source/locale/pt_BR/LC_MESSAGES/features.po
+++ b/docs/source/locale/pt_BR/LC_MESSAGES/features.po
@@ -8,16 +8,15 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-11-23 19:33-0800\n"
-"PO-Revision-Date: 2021-09-19 15:37+0000\n"
-"Last-Translator: souovan <souovan@protonmail.com>\n"
-"Language: pt_BR\n"
+"PO-Revision-Date: 2021-12-02 14:52+0000\n"
+"Last-Translator: Venilson Carneiro <venilsoncarneiro@pm.me>\n"
"Language-Team: pt_BR <LL@li.org>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
+"X-Generator: Weblate 4.10-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/features.rst:4
@@ -229,6 +228,18 @@ msgid ""
"your receive mode service, @webhookbot will send you a message on Keybase"
" letting you know as soon as it happens."
msgstr ""
+"Você pode verificar \"Use o webhook de notificação\" e então escolher uma "
+"URL webhook se você quiser ser notificado quando alguém enviar arquivos ou "
+"mensagens para seu serviço OnionShare. Se você usar este recurso, o "
+"OnionShare fará um pedido HTTP POST para esta URL sempre que alguém enviar "
+"arquivos ou mensagens. Por exemplo, se você quiser obter uma mensagem de "
+"texto criptografada no aplicativo de mensagens `Keybase <https://keybase.io/"
+">`_, você pode iniciar uma conversa com `@webhookbot <https://keybase.io/"
+"webhookbot>`_, digite ``!webhook create onionshare-alerts```, e ele "
+"responderá com uma URL. Use isso como a URL do webhook de notificação. Se "
+"alguém carregar um arquivo para seu serviço de modo de recebimento, @"
+"webhookbot lhe enviará uma mensagem no Keybase para que você saiba assim que "
+"acontecer."
#: ../../source/features.rst:71
msgid ""
@@ -405,15 +416,12 @@ msgstr ""
"terceiros seja carregado dentro da página da web."
#: ../../source/features.rst:121
-#, fuzzy
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
msgstr ""
"Se você deseja carregar conteúdo de sites de terceiros, como ativos ou "
-"bibliotecas JavaScript de CDNs, marque a caixa \"Não enviar o cabeçalho "
-"Política de Segurança de Conteúdo (permite que seu site use recursos de "
-"terceiros)\" antes de iniciar o serviço."
+"bibliotecas JavaScript de CDNs, você tem duas opções:"
#: ../../source/features.rst:123
msgid ""
@@ -421,10 +429,16 @@ msgid ""
"\"Don't send Content Security Policy header (allows your website to use "
"third-party resources)\" box before starting the service."
msgstr ""
+"Você pode desativar o envio de um cabeçalho da Política de Segurança de "
+"Conteúdo marcando a caixa \"Não enviar cabeçalho da Política de Segurança de "
+"Conteúdo (permite que seu website use recursos de terceiros)\" antes de "
+"iniciar o serviço."
#: ../../source/features.rst:124
msgid "You can send a custom Content Security Policy header."
msgstr ""
+"Você pode enviar um cabeçalho personalizado da Política de Segurança de "
+"Conteúdo."
#: ../../source/features.rst:127
msgid "Tips for running a website service"
diff --git a/docs/source/locale/pt_BR/LC_MESSAGES/install.po b/docs/source/locale/pt_BR/LC_MESSAGES/install.po
index 179cc61c..9d5b2a93 100644
--- a/docs/source/locale/pt_BR/LC_MESSAGES/install.po
+++ b/docs/source/locale/pt_BR/LC_MESSAGES/install.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-09-09 19:16-0700\n"
-"PO-Revision-Date: 2021-10-23 18:43+0000\n"
+"PO-Revision-Date: 2021-12-02 14:52+0000\n"
"Last-Translator: Gabriel Cardoso <g.cardoso@mailfence.com>\n"
"Language-Team: pt_BR <LL@li.org>\n"
"Language: pt_BR\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
+"X-Generator: Weblate 4.10-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/install.rst:2
@@ -184,7 +184,6 @@ msgid "The expected output looks like this::"
msgstr "O resultado esperado se parece com isso::"
#: ../../source/install.rst:76
-#, fuzzy
msgid ""
"If you don't see ``Good signature from``, there might be a problem with "
"the integrity of the file (malicious or otherwise), and you should not "
@@ -195,8 +194,8 @@ msgstr ""
"Se você não ver 'Boa assinatura de', pode haver um problema com a "
"integridade do arquivo (malicioso ou outro) e você não deve instalar o "
"pacote. (O \"AVISO:\" mostrado acima não é um problema com o pacote, "
-"significa apenas que você ainda não definiu nenhum nível de 'confiança' "
-"da chave PGP de Micah.)"
+"significa apenas que você ainda não definiu nenhum nível de 'confiança' da "
+"chave PGP de Micah.)"
#: ../../source/install.rst:78
msgid ""
diff --git a/docs/source/locale/pt_BR/LC_MESSAGES/tor.po b/docs/source/locale/pt_BR/LC_MESSAGES/tor.po
index 0047ed53..342515d1 100644
--- a/docs/source/locale/pt_BR/LC_MESSAGES/tor.po
+++ b/docs/source/locale/pt_BR/LC_MESSAGES/tor.po
@@ -8,16 +8,15 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-11-23 19:33-0800\n"
-"PO-Revision-Date: 2021-09-19 15:37+0000\n"
-"Last-Translator: souovan <souovan@protonmail.com>\n"
-"Language: pt_BR\n"
+"PO-Revision-Date: 2021-12-02 14:52+0000\n"
+"Last-Translator: Venilson Carneiro <venilsoncarneiro@pm.me>\n"
"Language-Team: pt_BR <LL@li.org>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.9-dev\n"
+"X-Generator: Weblate 4.10-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/tor.rst:2
@@ -25,17 +24,16 @@ msgid "Connecting to Tor"
msgstr "Conectando ao Tor"
#: ../../source/tor.rst:4
-#, fuzzy
msgid ""
"Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in"
" the bottom right of the OnionShare window to open the Tor Settings tab."
msgstr ""
-"Escolha um jeito de conectar o OnionShare ao Tor clicando no icone \"⚙\" "
-"no canto inferior direito da janela do OnionShare para acessar as opções."
+"Escolha uma forma de conectar o OnionShare ao Tor clicando no icone \"⚙\" no "
+"canto inferior direito da janela do OnionShare para acessar as opções."
#: ../../source/tor.rst:9
msgid "Use the Tor version built into OnionShare"
-msgstr ""
+msgstr "Use a versão do Tor que está integrada no OnionShare"
#: ../../source/tor.rst:11
msgid ""
@@ -60,7 +58,7 @@ msgstr ""
#: ../../source/tor.rst:18
msgid "Getting Around Censorship"
-msgstr ""
+msgstr "Contornando a Censura"
#: ../../source/tor.rst:20
msgid ""
@@ -69,18 +67,27 @@ msgid ""
"manual.torproject.org/bridges/>`_. If OnionShare connects to Tor without "
"one, you don't need to use a bridge."
msgstr ""
+"Se o seu acesso à internet for censurado, você pode configurar o OnionShare "
+"para conectar-se à rede Tor usando `Tor bridges <https://tb-manual.torproject"
+".org/bridges/>` _. Se o OnionShare se conectar à rede Tor sem o uso de uma "
+"bridge, você não precisa usa-las."
#: ../../source/tor.rst:22
msgid ""
"To use a bridge, open the Tor Settings tab. You must select \"Use the Tor"
" version built into OnionShare\" and check the \"Use a bridge\" checkbox."
msgstr ""
+"Para usar uma ponte, abra a aba Configurações do Tor. Você deve selecionar "
+"\"Use the Tor version built into OnionShare\" e marcar a caixa de seleção "
+"\"Use a bridge\"."
#: ../../source/tor.rst:25
msgid ""
"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges "
"is recommended over using `meek-azure`."
msgstr ""
+"Tente usar primeiro uma ponte embutida. Recomenda-se utilizar pontes \"obfs4"
+"\" ou \"snowflake\" em vez de utilizar \"meek-azure\"."
#: ../../source/tor.rst:29
msgid ""
@@ -89,12 +96,18 @@ msgid ""
"bridge. (This makes it more difficult for governments or ISPs to block "
"access to Tor bridges.)"
msgstr ""
+"Se o uso de uma ponte integrada não funcionar, você pode solicitar uma ponte "
+"ao torproject.org. Você terá que resolver um CAPTCHA para poder solicitar "
+"uma ponte. (Isto torna mais difícil para os governos ou ISPs (provedores de "
+"internet) bloquearem o acesso às pontes Tor)."
#: ../../source/tor.rst:33
msgid ""
"You also have the option of using a bridge that you learned about from a "
"trusted source."
msgstr ""
+"Você também tem a opção de usar uma ponte que você teve acesso a partir de "
+"uma fonte confiável."
#: ../../source/tor.rst:36
msgid "Attempt auto-configuration with Tor Browser"
@@ -576,4 +589,3 @@ msgstr ""
#~ "do Tor. Se você precisa usar uma"
#~ " ponte, tente primeiro as obfs4 "
#~ "integradas."
-
diff --git a/docs/source/locale/ru/LC_MESSAGES/features.po b/docs/source/locale/ru/LC_MESSAGES/features.po
index d1f90dfb..160834bf 100644
--- a/docs/source/locale/ru/LC_MESSAGES/features.po
+++ b/docs/source/locale/ru/LC_MESSAGES/features.po
@@ -8,15 +8,16 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-11-23 19:33-0800\n"
-"PO-Revision-Date: 2021-09-25 12:36+0000\n"
+"PO-Revision-Date: 2021-12-16 21:41+0000\n"
"Last-Translator: Alexander Tarasenko <alexound.login@gmail.com>\n"
-"Language: ru\n"
"Language-Team: ru <LL@li.org>\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
+"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.10\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/features.rst:4
@@ -420,16 +421,12 @@ msgstr ""
"содержимого из сторонних источников."
#: ../../source/features.rst:121
-#, fuzzy
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
msgstr ""
-"Если требуется загрузить и использовать содержимое из сторонних "
-"иточников, например активы или библиотеки JavaScript из CDN, то нужно "
-"установить флажок \"Не отправлять заголовок политики безопасности "
-"контента\" перед запуском сервиса. Это позволит вебсайту использовать "
-"сторонние источники содержимого."
+"Если требуется загрузить и использовать содержимое из сторонних иточников, "
+"например активы или библиотеки JavaScript из CDN, у вас есть две возможности:"
#: ../../source/features.rst:123
msgid ""
@@ -437,10 +434,15 @@ msgid ""
"\"Don't send Content Security Policy header (allows your website to use "
"third-party resources)\" box before starting the service."
msgstr ""
+"Вы можете отключить отправку заголовка \"Content Security Policy\" отметив "
+"флажок \"Не отправлять заголовок Contenct Security Policy (разрешить сайту "
+"использовать сторонние ресурсы)\" перед запуском сервиса."
#: ../../source/features.rst:124
msgid "You can send a custom Content Security Policy header."
msgstr ""
+"Вы можете отправить самостоятельно настроенный заголовок Content Security "
+"Policy."
#: ../../source/features.rst:127
msgid "Tips for running a website service"
@@ -1111,4 +1113,3 @@ msgstr ""
#~ "быть сохранены. OnionShare не хранит "
#~ "какие-либо сообщения, так что описанная "
#~ "проблема сведена к минимуму."
-
diff --git a/docs/source/locale/ru/LC_MESSAGES/tor.po b/docs/source/locale/ru/LC_MESSAGES/tor.po
index 38f8f3f4..3320f6ee 100644
--- a/docs/source/locale/ru/LC_MESSAGES/tor.po
+++ b/docs/source/locale/ru/LC_MESSAGES/tor.po
@@ -8,15 +8,16 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-11-23 19:33-0800\n"
-"PO-Revision-Date: 2021-09-23 15:36+0000\n"
+"PO-Revision-Date: 2021-12-17 04:52+0000\n"
"Last-Translator: Alexander Tarasenko <alexound.login@gmail.com>\n"
-"Language: ru\n"
"Language-Team: ru <LL@li.org>\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
+"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.10\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/tor.rst:2
@@ -24,18 +25,17 @@ msgid "Connecting to Tor"
msgstr "Подключение к сети Тор"
#: ../../source/tor.rst:4
-#, fuzzy
msgid ""
"Pick a way to connect OnionShare to Tor by clicking the Tor onion icon in"
" the bottom right of the OnionShare window to open the Tor Settings tab."
msgstr ""
-"Чтобы выбрать способ подключения OnionShare к сети Tor, нажмите на значок"
-" \"⚙\" в нижнем правом углу окна OnionShare. Так Вы попадёте в настройки "
+"Чтобы выбрать способ подключения OnionShare к сети Tor, нажмите на значок \"⚙"
+"\" в нижнем правом углу окна OnionShare. Так Вы попадёте в настройки "
"приложения."
#: ../../source/tor.rst:9
msgid "Use the Tor version built into OnionShare"
-msgstr ""
+msgstr "Использовать версию Tor встроенную в OnionShare"
#: ../../source/tor.rst:11
msgid ""
@@ -59,33 +59,36 @@ msgstr ""
#: ../../source/tor.rst:18
msgid "Getting Around Censorship"
-msgstr ""
+msgstr "Обойти цензуру"
#: ../../source/tor.rst:20
-#, fuzzy
msgid ""
"If your access to the internet is censored, you can configure OnionShare "
"to connect to the Tor network using `Tor bridges <https://tb-"
"manual.torproject.org/bridges/>`_. If OnionShare connects to Tor without "
"one, you don't need to use a bridge."
msgstr ""
-"В случае, если доступ к сети Интернет подвергается цензуре, можно "
-"настроить подключение OnionShare к сети Tor при помощи `мостов Tor` "
-"<https://2019.www.torproject.org/docs/bridges.html.en>`_. В случае, если "
-"OnionShare успешно подключается к сети Tor, использование сетевого моста "
-"необязательно."
+"Если доступ к сети Интернет подвергается цензуре, можно настроить "
+"подключение OnionShare к сети Tor при помощи `мостов Tor` <https://2019.www."
+"torproject.org/docs/bridges.html.en>`_. Если OnionShare успешно подключается "
+"к сети Tor, использование сетевого моста необязательно."
#: ../../source/tor.rst:22
msgid ""
"To use a bridge, open the Tor Settings tab. You must select \"Use the Tor"
" version built into OnionShare\" and check the \"Use a bridge\" checkbox."
msgstr ""
+"Чтобы изспользовать мост, откройте вкладку \"Настройки Tor\". Нужно выбрать "
+"пункт \"Использовать версию Tor встроенную в OnionShare\" и установить "
+"флажок \"Использовать мост\"."
#: ../../source/tor.rst:25
msgid ""
"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges "
"is recommended over using `meek-azure`."
msgstr ""
+"Попробуйте сначала использовать встроенные мосты. Бльше рекомендуется "
+"использование мостов `obfs4` или `snowflake`, нежели `meek-azure`."
#: ../../source/tor.rst:29
msgid ""
@@ -94,12 +97,18 @@ msgid ""
"bridge. (This makes it more difficult for governments or ISPs to block "
"access to Tor bridges.)"
msgstr ""
+"Если встроенный мост не работает, вы можете запросить мост с сайта "
+"torproject.org. Вам придётся пройти проверку CAPTCHA чтобы запросить мост. ("
+"Это затрудняет правительству и поставщикам услуг интернета блокировку мостов "
+"Tor.)"
#: ../../source/tor.rst:33
msgid ""
"You also have the option of using a bridge that you learned about from a "
"trusted source."
msgstr ""
+"Также вы можете использовать мост, о котором вы узнали из доверенного "
+"источника."
#: ../../source/tor.rst:36
msgid "Attempt auto-configuration with Tor Browser"
@@ -569,4 +578,3 @@ msgstr ""
#~ "<https://bridges.torproject.org/>`_. Если использование"
#~ " мостов необходимо, рекомендуется в первую"
#~ " очередь попробовать транспорты obfs4."
-
diff --git a/docs/source/locale/uk/LC_MESSAGES/develop.po b/docs/source/locale/uk/LC_MESSAGES/develop.po
index 6fb98d08..ce95f506 100644
--- a/docs/source/locale/uk/LC_MESSAGES/develop.po
+++ b/docs/source/locale/uk/LC_MESSAGES/develop.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-09-09 19:15-0700\n"
-"PO-Revision-Date: 2021-09-10 20:35+0000\n"
+"PO-Revision-Date: 2022-01-21 18:55+0000\n"
"Last-Translator: Ihor Hordiichuk <igor_ck@outlook.com>\n"
"Language-Team: none\n"
"Language: uk\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.9-dev\n"
+"X-Generator: Weblate 4.11-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/develop.rst:2
@@ -249,9 +249,8 @@ msgid ""
"in a language not yet started, please write to the mailing list: "
"onionshare-dev@lists.riseup.net"
msgstr ""
-"Тут знаходиться поточний стан перекладу. Якщо ви хочете розпочати "
-"переклад відсутньою тут мовою, будь ласка, напишіть нам до списку "
-"розсилання: onionshare-dev@lists.riseup.net"
+"Ось поточний стан перекладу. Якщо ви хочете розпочати переклад відсутньою "
+"тут мовою, напишіть нам до списку розсилання: onionshare-dev@lists.riseup.net"
#~ msgid ""
#~ "OnionShare is developed in Python. To"
diff --git a/docs/source/locale/uk/LC_MESSAGES/help.po b/docs/source/locale/uk/LC_MESSAGES/help.po
index 072cc117..22d2af6b 100644
--- a/docs/source/locale/uk/LC_MESSAGES/help.po
+++ b/docs/source/locale/uk/LC_MESSAGES/help.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-08-20 13:37-0700\n"
-"PO-Revision-Date: 2021-09-10 21:34+0000\n"
+"PO-Revision-Date: 2022-01-21 18:55+0000\n"
"Last-Translator: Ihor Hordiichuk <igor_ck@outlook.com>\n"
"Language-Team: none\n"
"Language: uk\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.9-dev\n"
+"X-Generator: Weblate 4.11-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/help.rst:2
@@ -34,7 +34,7 @@ msgid ""
"the sections first to see if anything answers your questions."
msgstr ""
"Цей вебсайт містить настанови щодо користування OnionShare. Спочатку "
-"перегляньте всі розділи, щоб дізнатися, чи містять вони відповідей на ваші "
+"перегляньте всі розділи, щоб дізнатися, чи містять вони відповіді на ваші "
"запитання."
#: ../../source/help.rst:10
@@ -66,10 +66,10 @@ msgid ""
"for-a-new-github-account/>`_."
msgstr ""
"Якщо не можете знайти як виправити свою проблему або хочете запитати чи "
-"запропонувати нову функцію, `поставте питання <https://github.com/micahflee/"
-"onionshare/issues/new>`_. Для цього потрібно `створити обліковий запис "
-"GitHub <https://help.github.com/articles/signing-up-for-a-new-github-account/"
-">`_."
+"запропонувати нову функцію, `створіть обговорення <https://github.com/"
+"micahflee/onionshare/issues/new>`_. Для цього потрібно `створити обліковий "
+"запис GitHub <https://help.github.com/articles/"
+"signing-up-for-a-new-github-account/>`_."
#: ../../source/help.rst:20
msgid "Join our Keybase Team"
diff --git a/docs/source/locale/uk/LC_MESSAGES/install.po b/docs/source/locale/uk/LC_MESSAGES/install.po
index 283a49ef..55285596 100644
--- a/docs/source/locale/uk/LC_MESSAGES/install.po
+++ b/docs/source/locale/uk/LC_MESSAGES/install.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
"POT-Creation-Date: 2021-09-09 19:15-0700\n"
-"PO-Revision-Date: 2021-10-08 07:03+0000\n"
+"PO-Revision-Date: 2022-01-21 18:55+0000\n"
"Last-Translator: Ihor Hordiichuk <igor_ck@outlook.com>\n"
"Language-Team: none\n"
"Language: uk\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.9-dev\n"
+"X-Generator: Weblate 4.11-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/install.rst:2
@@ -50,9 +50,9 @@ msgid ""
msgstr ""
"Існують різні способи встановлення OnionShare на Linux, але радимо "
"використовувати пакунок `Flatpak <https://flatpak.org/>`_ або пакунок "
-"Snapcraft `Snap <https://snapcraft.io/>`_. Flatpak і Snapcraft "
-"гарантують, що ви завжди користуватиметеся найновішою версією та "
-"запускатимете OnionShare в пісочниці."
+"Snapcraft `Snap <https://snapcraft.io/>`_. Flatpak і Snapcraft гарантують, "
+"що ви завжди користуватиметеся найновішою версією та запускатимете "
+"OnionShare у пісочниці."
#: ../../source/install.rst:17
msgid ""
@@ -96,7 +96,7 @@ msgid ""
msgstr ""
"Ви можете встановити версію OnionShare для командного рядка на будь-яку "
"операційну систему за допомогою менеджера пакунків Python ``pip``. "
-"Перегляньте :rref:`cli` для отримання додаткових відомостей."
+"Перегляньте :ref:`cli` для отримання додаткових відомостей."
#: ../../source/install.rst:35
msgid "Verifying PGP signatures"
diff --git a/security/2021 Penetration Test Report.pdf b/security/2021 Penetration Test Report.pdf
new file mode 100644
index 00000000..4a041994
--- /dev/null
+++ b/security/2021 Penetration Test Report.pdf
Binary files differ
diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
index b07faab9..acdc3fd2 100644
--- a/snap/snapcraft.yaml
+++ b/snap/snapcraft.yaml
@@ -1,6 +1,6 @@
name: onionshare
base: core18
-version: '2.4.1'
+version: '2.5'
summary: Securely and anonymously share files, host websites, and chat using Tor
description: |
OnionShare lets you securely and anonymously send and receive files. It works by starting
@@ -38,13 +38,18 @@ apps:
parts:
onionshare:
- source: ./desktop/src
+ source: ./desktop
plugin: python
python-version: python3
python-packages:
+ - setuptools
- psutil
- - pyside2 == 5.15.2
- qrcode
+ - pyside2 == 5.15.2
+ # Force using setup.py, prevent using setup-freeze.py or poetry
+ override-build: |
+ rm setup-freeze.py pyproject.toml poetry.lock || true
+ snapcraftctl build
stage-packages:
- libasound2
- libatk1.0-0
@@ -114,19 +119,7 @@ parts:
plugin: python
python-version: python3
python-packages:
- - click
- - flask
- - flask-socketio == 5.0.1
- - psutil
- - pysocks
- - requests
- - unidecode
- - urllib3
- - eventlet
- - setuptools
- - pynacl
- - colorama
- - cepa == 1.8.3
+ - poetry
stage-packages:
- build-essential
- libssl-dev
@@ -139,8 +132,8 @@ parts:
after: [tor, obfs4, snowflake-client, meek-client]
tor:
- source: https://dist.torproject.org/tor-0.4.6.8.tar.gz
- source-checksum: sha256/15ce1a37b4cc175b07761e00acdcfa2c08f0d23d6c3ab9c97c464bd38cc5476a
+ source: https://dist.torproject.org/tor-0.4.6.9.tar.gz
+ source-checksum: sha256/c7e93380988ce20b82aa19c06cdb2f10302b72cfebec7c15b5b96bcfc94ca9a9
source-type: tar
plugin: autotools
build-packages:
@@ -176,7 +169,8 @@ parts:
# Not sure why I have to do this, but it works
override-build: |
cd meek-client
- go build -o /root/parts/meek-client/install/bin ./...
+ mkdir /root/parts/meek-client/install/bin
+ go build -o /root/parts/meek-client/install/bin/meek-client ./...
source: https://git.torproject.org/pluggable-transports/meek.git
source-type: git
source-tag: v0.37.0