Pytorch: Tensorboard: ValueError: повторяющиеся плагины для имени проектора

Созданный на 10 июл. 2019  ·  36Комментарии  ·  Источник: pytorch/pytorch

Я слежу за введением и столкнулся с этой ошибкой.
cuda 10 , cudnn 7 , установите pytorch с помощью pip.

однако, когда я проверяю

> torch.utils.tensorboard import SummaryWriter

, все хорошо.

Python 3.7.3 | packaged by conda-forge | (default, Jul  1 2019, 21:52:21) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from torch.utils.tensorboard import SummaryWriter
>>> 

но когда я использую

> tensorboard --logdir=runs, it happens to this error:

`Traceback (most recent call last):
  File "/home/kingsoft/anaconda3/envs/liubiao2/bin/tensorboard", line 10, in <module>
    sys.exit(run_main())
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/tensorboard/main.py", line 64, in run_main
    app.run(tensorboard.main, flags_parser=tensorboard.configure)
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/absl/app.py", line 300, in run
    _run_main(main, args)
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/tensorboard/program.py", line 228, in main
    server = self._make_server()
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/tensorboard/program.py", line 309, in _make_server
    self.assets_zip_provider)
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/tensorboard/backend/application.py", line 161, in standard_tensorboard_wsgi
    reload_task)
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/tensorboard/backend/application.py", line 194, in TensorBoardWSGIApp
    return TensorBoardWSGI(plugins, path_prefix)
  File "/home/kingsoft/anaconda3/envs/liubiao2/lib/python3.7/site-packages/tensorboard/backend/application.py", line 245, in __init__
    raise ValueError('Duplicate plugins for name %s' % plugin.plugin_name)
ValueError: Duplicate plugins for name projector`
high priority dependency bug tensorboard triage review triaged

Самый полезный комментарий

@Biaocsu , я тоже столкнулся с проблемой но исправил. Мой метод:

  1. Я загрузил тестовый скрипт с https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py
  2. Я запустил его, и он сказал мне, что у меня есть две тензорные доски с другой версией. Кроме того, он сказал мне, как это исправить.
  3. Я выполнил его инструкции и могу заставить свою тензорную доску работать.

Я думаю, эта ошибка означает, что у вас установлены две тензорные доски, поэтому плагин будет продублирован. Был бы полезен другой метод - переустановка среды python с помощью conda.

Надеюсь помочь вам.

Все 36 Комментарий

Похоже на проблему неправильной конфигурации с tenorboard. @lanpa , знаете ли вы, ошибка это в PyTorch или нет?

У меня такая же проблема: возможность импорта из последней версии pytorch и tensorboardX, но оба дают ту же ошибку выше

Эта проблема вызвана tb-nightly, а tb-nightly сложно удалить.
Я перестроил среду и на этот раз использовал tenorflow, tensorboard, tensorboardx без tb-nightly, и проблема исчезла.

@ LU4E, что вы имеете в виду, удалите tb-nightly и установите tensorflow 、 tensorbard 、 tensorboardx? тогда проблема уйдет?

@Biaocsu Да. Сначала я много раз пытаюсь удалить tb-nightly, но он все еще там. Не знаю почему.
Вы можете создать новую среду, установить tensorflow, tensorboard, tensorboardx, особенно не устанавливайте tb-nightly.

@ LU4E мне он не подходит, могу успешно удалить tb-nightly. и да, я действительно использую другую среду для использования тензорной доски

@Biaocsu Я столкнулся с той же проблемой, но решил, удалив tenorboard. Возможно, оставшаяся тензорная доска - это плохо.

@YosukeSugiura, спасибо за совет, но я попробовал, и это не

@Biaocsu , я тоже столкнулся с проблемой но исправил. Мой метод:

  1. Я загрузил тестовый скрипт с https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py
  2. Я запустил его, и он сказал мне, что у меня есть две тензорные доски с другой версией. Кроме того, он сказал мне, как это исправить.
  3. Я выполнил его инструкции и могу заставить свою тензорную доску работать.

Я думаю, эта ошибка означает, что у вас установлены две тензорные доски, поэтому плагин будет продублирован. Был бы полезен другой метод - переустановка среды python с помощью conda.

Надеюсь помочь вам.

@ElegantLin спасибо

Та же проблема, и спасибо за решение @ elad663 .
Но решение, данное сценарием, состоит в том, чтобы удалить tenorboardX и tb-nightly и установить tensorflow.
Есть ли другое решение с чистой средой pytorch?

Повышение приоритета, поскольку эта проблема, похоже, затрагивает многих людей

@ezyang Я думаю, что @ElegantLin предоставил решение. Основная причина - конфликт версий тензорной платы.
@TomorrowIsAnOtherDay Вы можете открыть новую среду conda и установить pip install torch , tensorboard для чистой настройки pytorch.

Хорошо, в таком случае мы можем закрыть эту проблему.

### Suggestion: Fix conflicting installations

Conflicting package installations found. Depending on the order of
installations and uninstallations, behavior may be undefined. Please
uninstall ALL versions of TensorFlow and TensorBoard, then reinstall
ONLY the desired version of TensorFlow, which will transitively pull
in the proper version of TensorBoard. (If you use TensorBoard without
TensorFlow, just reinstall the appropriate version of TensorBoard
directly.)

Namely:

    pip uninstall tb-nightly tensorboard tensorflow-estimator tensorflow-gpu tf-estimator-nightly
    pip install tensorflow  # or `tensorflow-gpu`, or `tf-nightly`, ...

Это предложение, созданное сценарием @ElegantLin, устранило мою проблему. Спасибо ~

У меня возникла та же проблема, и удаление и переустановка tenorboard и tensorflow не помогли. В моем случае у меня была призрачная копия tensorboard 2.0.0, которая, по-видимому, не была удалена полностью. Оно появилось в пипе как «-ensorboard». Удаление соответствующей папки dist-info в моей среде python устранило проблему.

Кто-то любит (@) меня. Я всегда использовал conda для управления своей средой Python. Поэтому, если я столкнулся с проблемой, что я не смог удалить его успешно, я бы удалил среду и перезапустил новую. Надеюсь, это поможет.

У меня была эта проблема в колабе. Устранено удалением текущего tensorboard и установкой tf-nightly

!pip uninstall tensorboard
!pip install -U transformers torch torchvision tensorboardX tf-nightly grpcio==1.24.3

@Biaocsu , я тоже столкнулся с проблемой но исправил. Мой метод:

  1. Я загрузил тестовый скрипт с https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py
  2. Я запустил его, и он сказал мне, что у меня есть две тензорные доски с другой версией. Кроме того, он сказал мне, как это исправить.
  3. Я выполнил его инструкции и могу заставить свою тензорную доску работать.

Я думаю, эта ошибка означает, что у вас установлены две тензорные доски, поэтому плагин будет продублирован. Был бы полезен другой метод - переустановка среды python с помощью conda.

Надеюсь помочь вам.

У меня есть tensorflow 1.14 для python2 и tensorflow 2.0 для python3, в этом скрипте нет предложений по действиям. Означает ли это, что в моей среде с тензорным потоком нет проблем?

вот журнал диагностики:

Диагностика


Вывод диагностики

`` `` `
--- проверка: автоидентификация
ИНФОРМАЦИЯ: Diagnose_tensorboard.py версия 4725c70c7ed724e2d1b9ba5618d7c30b957ee8a4

--- проверка: общие
ИНФОРМАЦИЯ: sys.version_info: sys.version_info (major = 3, minor = 6, micro = 8, releaselevel = 'final', serial = 0)
ИНФОРМАЦИЯ: os.name: posix
ИНФОРМАЦИЯ: os.uname (): posix.uname_result (sysname = 'Linux', nodename = 'mrt214', release = '4.15.0-48-generic', version = '# 51-Ubuntu SMP Wed Apr 3 08:28 : 49 UTC 2019 ', машина =' x86_64 ')
ИНФОРМАЦИЯ: sys.getwindowsversion (): N / A

--- проверьте: package_management
ИНФОРМАЦИЯ: имеет conda-meta: False
ИНФОРМАЦИЯ: $ VIRTUAL_ENV: '/ home / zwang / env'

--- проверьте: installed_packages
Отслеживание (последний вызов последний):
Файл "/usr/lib/python3.6/runpy.py", строка 183, в _run_module_as_main
имя_мода, спецификация_мода, код = _get_module_details (имя_мода, _Error)
Файл "/usr/lib/python3.6/runpy.py", строка 142, в _get_module_details
вернуть _get_module_details (pkg_main_name, ошибка)
Файл "/usr/lib/python3.6/runpy.py", строка 109, в _get_module_details
__import __ (имя_пакета)
Файл "/usr/lib/python3/dist-packages/pip/__init__.py", строка 29, в
из pip.utils импортируйте get_installed_distributions, get_prog
Файл "/usr/lib/python3/dist-packages/pip/utils/__init__.py", строка 30, в
от pip._vendor.retrying import retry
ModuleNotFoundError: нет модуля с именем pip._vendor.retrying
Отслеживание (последний вызов последний):
Файл "tensorboarddebug.py", строка 420, в основном
предложенияs.extend (проверить ())
Файл "tensorboarddebug.py", строка 165, в installed_packages
freeze = pip (["заморозить", "--all"]). decode ("utf-8"). splitlines ()
Файл "tensorboarddebug.py", строка 104, в pip
return subprocess.check_output (команда)
Файл "/usr/lib/python3.6/subprocess.py", строка 356, в check_output
** kwargs) .stdout
Файл "/usr/lib/python3.6/subprocess.py", строка 438, в процессе
вывод = stdout, stderr = stderr)
subprocess.CalledProcessError: Команда '[' / home / zwang / env / bin / python3 ',' -m ',' pip ',' --disable-pip-version-check ',' freeze ',' --all ' ] 'вернул ненулевой статус выхода 1.

--- проверьте: tensorboard_python_version
ИНФОРМАЦИЯ: tenorboard.version.VERSION: '1.14.0'

--- проверьте: tensorflow_python_version
/home/zwang/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: передача (type, 1) или '1type' в качестве синонима типа устарела; в будущей версии numpy он будет пониматься как (type, (1,)) / '(1,) type'.
_np_qint8 = np.dtype ([("qint8", np.int8, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: передача (type, 1) или '1type' в качестве синонима типа устарела; в будущей версии numpy он будет пониматься как (type, (1,)) / '(1,) type'.
_np_quint8 = np.dtype ([("quint8", np.uint8, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: передача (type, 1) или '1type' в качестве синонима типа устарела; в будущей версии numpy он будет пониматься как (type, (1,)) / '(1,) type'.
_np_qint16 = np.dtype ([("qint16", np.int16, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: передача (type, 1) или '1type' в качестве синонима типа устарела; в будущей версии numpy он будет пониматься как (type, (1,)) / '(1,) type'.
_np_quint16 = np.dtype ([("quint16", np.uint16, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: передача (type, 1) или '1type' в качестве синонима типа устарела; в будущей версии numpy он будет пониматься как (type, (1,)) / '(1,) type'.
_np_qint32 = np.dtype ([("qint32", np.int32, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: передача (type, 1) или '1type' в качестве синонима типа устарела; в будущей версии numpy он будет пониматься как (type, (1,)) / '(1,) type'.
np_resource = np.dtype ([("ресурс", np.ubyte, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: передача (type, 1) или '1type' в качестве синонима типа устарела; в будущей версии numpy он будет пониматься как (type, (1,)) / '(1,) type'.
_np_qint8 = np.dtype ([("qint8", np.int8, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: передача (type, 1) или '1type' в качестве синонима типа устарела; в будущей версии numpy он будет пониматься как (type, (1,)) / '(1,) type'.
_np_quint8 = np.dtype ([("quint8", np.uint8, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: передача (type, 1) или '1type' в качестве синонима типа устарела; в будущей версии numpy он будет пониматься как (type, (1,)) / '(1,) type'.
_np_qint16 = np.dtype ([("qint16", np.int16, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: передача (type, 1) или '1type' в качестве синонима типа устарела; в будущей версии numpy он будет пониматься как (type, (1,)) / '(1,) type'.
_np_quint16 = np.dtype ([("quint16", np.uint16, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: передача (type, 1) или '1type' в качестве синонима типа устарела; в будущей версии numpy он будет пониматься как (type, (1,)) / '(1,) type'.
_np_qint32 = np.dtype ([("qint32", np.int32, 1)])
/home/zwang/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: передача (type, 1) или '1type' в качестве синонима типа устарела; в будущей версии numpy он будет пониматься как (type, (1,)) / '(1,) type'.
np_resource = np.dtype ([("ресурс", np.ubyte, 1)])
ИНФОРМАЦИЯ: tenorflow .__ версия__: '1.14.0'
ИНФОРМАЦИЯ: tenorflow .__ git_version__: 'v1.14.0-rc1-22-gaf24dc91b5'

--- проверьте: tensorboard_binary_path
ИНФОРМАЦИЯ: какой тензорборд: b '/ home / zwang / .local / bin / tensorboardn'

--- проверьте: readable_fqdn
ИНФОРМАЦИЯ: socket.getfqdn (): 'mrt214.mrt.uni-karlsruhe.de'

--- проверьте: stat_tensorboardinfo
ИНФОРМАЦИЯ: каталог: /tmp/.tensorboard-info
ИНФОРМАЦИЯ: каталог .tensorboard-info не существует

--- проверьте: source_trees_without_genfiles
ИНФОРМАЦИЯ: tensorboard_roots (2): ['/home/zwang/.local/lib/python3.6/site-packages', '/usr/local/lib/python3.6/dist-packages']; bad_roots (0): []

--- проверьте: full_pip_freeze
Отслеживание (последний вызов последний):
Файл "/usr/lib/python3.6/runpy.py", строка 183, в _run_module_as_main
имя_мода, спецификация_мода, код = _get_module_details (имя_мода, _Error)
Файл "/usr/lib/python3.6/runpy.py", строка 142, в _get_module_details
вернуть _get_module_details (pkg_main_name, ошибка)
Файл "/usr/lib/python3.6/runpy.py", строка 109, в _get_module_details
__import __ (имя_пакета)
Файл "/usr/lib/python3/dist-packages/pip/__init__.py", строка 29, в
из pip.utils импортируйте get_installed_distributions, get_prog
Файл "/usr/lib/python3/dist-packages/pip/utils/__init__.py", строка 30, в
от pip._vendor.retrying import retry
ModuleNotFoundError: нет модуля с именем pip._vendor.retrying
Отслеживание (последний вызов последний):
Файл "tensorboarddebug.py", строка 420, в основном
предложенияs.extend (проверить ())
Файл "tensorboarddebug.py", строка 77, в оболочке
результат = fn ()
Файл "tensorboarddebug.py", строка 388, в full_pip_freeze
logging.info ("pip freeze - all: n% s ", pip (["freeze", "--all"]). decode ("utf-8"))
Файл "tensorboarddebug.py", строка 104, в pip
return subprocess.check_output (команда)
Файл "/usr/lib/python3.6/subprocess.py", строка 356, в check_output
** kwargs) .stdout
Файл "/usr/lib/python3.6/subprocess.py", строка 438, в процессе
вывод = stdout, stderr = stderr)
subprocess.CalledProcessError: Команда '[' / home / zwang / env / bin / python3 ',' -m ',' pip ',' --disable-pip-version-check ',' freeze ',' --all ' ] 'вернул ненулевой статус выхода 1.
`` `` `

Следующие шаги

Действия не определены. Скопируйте ВСЕ вышеприведенные выходные данные,
включая строки, содержащие только обратные кавычки, в проблему GitHub
или комментарий. Обязательно удалите любую конфиденциальную информацию.

Выполните следующий код, если он показывает два tensorboard установленных в вашей системе, удалите один.

import pkg_resources

for entry_point in pkg_resources.iter_entry_points('tensorboard_plugins'):
    print(entry_point.dist)

как выборочно удалить одну версию тензорборда

Следующие шаги

Действия не определены. Скопируйте ВСЕ вышеприведенные выходные данные,
включая строки, содержащие только обратные кавычки, в проблему GitHub
или комментарий. Обязательно удалите любую конфиденциальную информацию.

@Biaocsu , я тоже столкнулся с проблемой но исправил. Мой метод:

  1. Я загрузил тестовый скрипт с https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py
  2. Я запустил его, и он сказал мне, что у меня есть две тензорные доски с другой версией. Кроме того, он сказал мне, как это исправить.
  3. Я выполнил его инструкции и могу заставить свою тензорную доску работать.

Я думаю, эта ошибка означает, что у вас установлены две тензорные доски, поэтому плагин будет продублирован. Был бы полезен другой метод - переустановка среды python с помощью conda.

Надеюсь помочь вам.

Я решил свою проблему. Большое спасибо!

Я исправляю проблему, выполнив следующие действия:

  • pip удалить tb-nightly tensorboardX tensorboard
  • pip install tensorboard

У меня была эта проблема в колабе. Устранено удалением текущего tensorboard и установкой tf-nightly

!pip uninstall tensorboard
!pip install -U transformers torch torchvision tensorboardX tf-nightly grpcio==1.24.3

Я брошу свои 0,02 доллара и напомню вам также
!conda remove tensorboard

Если вы работаете в среде Windows!

Здравствуйте, сегодня у меня была такая же проблема, и я исправил ее с помощью следующих простых шагов:
Я перешел в каталог, откуда возникла ошибка - site-packages - tensorboard.
Поскольку tf.contrib API обнаружения объектов тензорного потока не работает в тензорном потоке 2.0, на моем компьютере был установлен тензорный поток 1.14 для запуска модели обнаружения.
Итак, когда я перешел в каталог 'tensorboard' внутри пакетов сайтов - я обнаружил «tensorboar-2.0.2.dist-info и tensorflow_estimator-2.0.2.dist-info». Я удалил эти файлы из каталога и проблема была решена.

Выполните следующий код, если он показывает два tensorboard установленных в вашей системе, удалите один.

import pkg_resources

for entry_point in pkg_resources.iter_entry_points('tensorboard_plugins'):
    print(entry_point.dist)

После запуска этого кода я получил следующий результат:

-сенсорная плата 2.0.2
тензорборд 2.0.0

Означает ли это, что у меня установлено два тензорных борта?

Выполните следующий код, если он показывает два tensorboard установленных в вашей системе, удалите один.

import pkg_resources

for entry_point in pkg_resources.iter_entry_points('tensorboard_plugins'):
    print(entry_point.dist)

После запуска этого кода я получил следующий результат:

-сенсорная плата 2.0.2
тензорборд 2.0.0

Означает ли это, что у меня установлено два тензорных борта?

Решено!
Я удалил папку tensorboard-2.0.0.dist-info из Lib/site-packages тогда тензорборд работает.
Но я не знаю, вызовет ли это еще одну проблему или нет.

Я тоже думал о том же, если выскочит какая-то ошибка, но пока никто не сталкивался ...
Самый безопасный способ - не удалять, но хранить файлы где-то еще ... поскольку python ищет файл только в этой конкретной папке и запутывается :)

в моем случае я удалил tenorboard-plugin-wit, и он работает.

в моем случае я удалил tenorboard-plugin-wit, и он работает.

Со мной это тоже сработало. Спасибо!
И я не мог удалить пакет из команды conda, поэтому я просто вручную нашел путь к папке tenorboard-plugin-wit и удалил его в каталоге файлов.

Подводя итоги для опоздавших, лично я сам встречал все эти ошибки, обновляя и понижая тензорный поток и тензорборд.

Симптом 1 Tensorboard: ValueError: Duplicate plugins for name projector

Скачать скрипт диагностики:

wget https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py

Выполните его и следуйте его инструкции:

python diagnose_tensorboard.py

Симптом 2 Tensorboard: ValueError: Duplicate plugins for name projector и сценарий диагностики не показывает никаких действий

Запустите pip freeze чтобы увидеть, появляется ли это предупреждение WARNING: Could not generate requirement for distribution -ensorboard 2.1.0

Если да, то есть копия тензорборда. Надеюсь, приведенное ниже исправление не имеет побочных эффектов, я не уверен в этом.

cd <site-packages>
rm -rf "~ensorboard"
rm -rf "~ensorboard-2.1.0.dist-info"

Симптом 3: Tensorboard: ValueError: Duplicate plugins for name whatif

pip uninstall tensorboard-plugin-wit

в моем случае я удалил tenorboard-plugin-wit, и он работает.

Работал и для меня, у меня была эта проблема под Colab

Следующее решение ВСЕГДА работает для меня, независимо от обновлений, внесенных в tenorboard (например: новый пакет tensorboard-plugin-wit выпущенный в феврале 2020 года, вызывает проблемы у многих здесь, и в будущем могут быть другие обновления).

Добавьте следующий фрагмент кода в каждое руководство по colab, прежде чем загружать тензорборд.

# Remove all TensorBoard packages.
! pip list --format=freeze | grep tensorboard | xargs pip uninstall -y
# Install TensorFlow again (This command will only install the default TensorBoard package associated with this TensorFlow package). 
! pip install -q tensorflow

@Biaocsu , я тоже столкнулся с проблемой но исправил. Мой метод:

1. I downloaded a test script from https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py

2. I run it and it told me that I have two tensorboards with a different version. Also, it told me how to fix it.

3. I followed its instructions and I can make my tensorboard work.

Я думаю, эта ошибка означает, что у вас установлены две тензорные доски, поэтому плагин будет продублирован. Был бы полезен другой метод - переустановка среды python с помощью conda.

Надеюсь помочь вам.

VOCE É UM MONSTRO, UM DEUS O MAIS FODA DE TODOS DENTRO DOS OS ПРОГРАММЫ

Следующие шаги

Действия не определены. Скопируйте ВСЕ вышеприведенные выходные данные,
включая строки, содержащие только обратные кавычки, в проблему GitHub
или комментарий. Обязательно удалите любую конфиденциальную информацию.

та же проблема

Была ли эта страница полезной?
5 / 5 - 1 рейтинги

Смежные вопросы

SeparateReality picture SeparateReality  ·  3Комментарии

eliabruni picture eliabruni  ·  3Комментарии

cdluminate picture cdluminate  ·  3Комментарии

dablyo picture dablyo  ·  3Комментарии

szagoruyko picture szagoruyko  ·  3Комментарии