Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Miranda NG (Часть 2)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77

Открыть новую тему     Написать ответ в эту тему

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предыдущие темы: Часть 1 Тема по Miranda IM
Miranda NG  0.95.13.1 (от 03.05.2021)
 
Домашняя страница | Форум | Скачать | История изменений | Wiki | Описание и FAQ | Статья на Хабре | RSS (зеркало в Twitter) | Багтрекер | GitHub
 
Miranda NG — это мультипротокольный клиент для Windows. Очень лёгкий и не требовательный к ресурсам компьютера. Быстрый.  


Стабильная сборка: x32 | x64 | Русский языковой пакет  

Тестовая сборка: x32 | x64 | Русский языковой пакет  


Список доступных для закачки плагинов и прочее...


Внимание!
К сообщениям об ошибках прикладывайте пожалуйста краш-репорт!
(Как правильно делать краш-репорты...)
 
Как отключить уведомления о входе контакта в сеть
Большой FAQ по поддержке ICQ в Miranda NG
Ошибка «Miranda NG не может открыть <имя_профиля>, профиль в неизвестном формате» после обновления
Как собрать Миранду самостоятельно
 
Различные сборки Miranda

Топик в с обсуждением шапки - все кардинальные изменения обсуждаем и сначала выкладываем там!

Всего записей: 37512 | Зарегистр. 26-02-2002 | Отправлено: 12:10 14-03-2019 | Исправлено: Dart Raiden, 20:48 03-05-2021
AlexeiKozlov

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dart Raiden
попробовал.
F:\save\hdd2\miranda32>mdbx_dump -n -f  "F:\save\hdd2\ngprofile.dumped.dat" "F:\save\hdd2\miranda32\ngprofile.dat"
mdbx_dump: F:\save\hdd2\miranda32\ngprofile.dat: MDBX_CORRUPTED: Database is corrupted
 
F:\save\hdd2\miranda32>
 
тоже самое выдает.
 
Добавлено:
я ведь даже ничего не делал.
просто пытался запустить миранду, а она глючила на запуске.

Всего записей: 1994 | Зарегистр. 16-10-2004 | Отправлено: 23:04 25-02-2020
Wave_Blessed

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dart Raiden, не, это была уже обновлённая база, с которой обновлённая миранда запускалась, но глючила. Повторюсь, импорт в новый профиль из этого более-менее помог.
 
У меня ещё такой вопрос: то, что загружены одновременно dbx_mdbx.dll и dbx_mmap.dll - это правильно? Так и должно быть? А то я уже немного потерялся, какие есть драйверы базы на данный момент. И какие рекомендуются.

Всего записей: 788 | Зарегистр. 16-04-2006 | Отправлено: 23:07 25-02-2020
AlexeiKozlov

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я могу дать базу , вдруг там есть шанс восстановить, поправив в файле какие то байты?

Всего записей: 1994 | Зарегистр. 16-10-2004 | Отправлено: 23:26 25-02-2020
AlexeiKozlov

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что-то разрабы побадались с libmdx и как бы, печально, что моя БД 67 мб по анализу проблемы превратилась типа в ничто.
Как так бывает?
Что разве взять оттуда ничего нельзя?
Не могу осознать такое в 21 веке, даже уточню, на фоне других СУБД.

Всего записей: 1994 | Зарегистр. 16-10-2004 | Отправлено: 11:33 26-02-2020 | Исправлено: AlexeiKozlov, 11:51 26-02-2020
Taciturn

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А как вообще запускать mdbx_chk.exe?

Код:
mdbx_chk.exe Taciturn.dat

(для теста положил профиль в каталог с mdbx_chk.exe) выдаёт:

Код:
 ! mdbx_env_open failed, error 3 Системе не удается найти указанный путь.

Всего записей: 1763 | Зарегистр. 26-07-2003 | Отправлено: 19:17 26-02-2020 | Исправлено: Taciturn, 19:18 26-02-2020
AlexeiKozlov

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Taciturn
Miranda NG (Часть 2)
картинку глянь.

Всего записей: 1994 | Зарегистр. 16-10-2004 | Отправлено: 20:38 26-02-2020
za4emperm



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Я так понял, что всё, гитлер капут отличной программе... Так и не смог с 19 января базу восстановить.

Всего записей: 609 | Зарегистр. 27-07-2006 | Отправлено: 06:00 27-02-2020
Taciturn

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Запустил mdbx_chk.exe, получил:

Код:
Total 26155 errors are detected, elapsed 0.312 seconds.

Сделал mdbx_dump.exe и mdbx_load.exe, размер профиля не изменился, mdbx_chk.exe ошибок больше не пишет, с точки зрения Miranda база пустая — протоколов нет, контактов нет, настроек нет.
Пробовал стабильную и ночные версии.
 
Попробовал создать новый профиль в последней ночной версии, добавил один протокол, больше ничего не делал — mdbx_chk.exe показывает ошибки, mdbx_dump.exe + mdbx_load.exe убивают базу.

Всего записей: 1763 | Зарегистр. 26-07-2003 | Отправлено: 08:32 27-02-2020 | Исправлено: Taciturn, 10:20 27-02-2020
AlexeiKozlov

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
za4emperm
я пока тоже сижу с битой базой.
67 мегабайт каким то образом типа превратились в ничто.
Комментариев никто не дает с обоих сторон: разраб libmdx и разрабы миранды.
 
интересуует, как вытащить пароль, контакты.

Всего записей: 1994 | Зарегистр. 16-10-2004 | Отправлено: 12:43 27-02-2020 | Исправлено: AlexeiKozlov, 12:50 27-02-2020
erthink

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Запустил mdbx_chk.exe, получил:
 
Код:
Total 26155 errors are detected, elapsed 0.312 seconds.

 
1)  Утилита mdbx_chk предназначена для использующий libmdbx, т.е. предполагается что запускающий знает наборе её опций и понимает их смысл/назначение. Базовая информация есть в man-странице, а также выводиться по опции -h.
 
2) Вы показали только последнюю строку, без информации о том какие именно проблемы были обнаружены.
Запускайте mdbx_chk с опцией -v.
 
3) Скорее всего так много ошибок насчитывается из-за использования в миранде НЕ рекомендуемых кастомных компаратов (функций сравнения. которые есть только внутри миранды). Для игнорирования таких ошибок можно добавить опцию -i.

Всего записей: 24 | Зарегистр. 02-09-2019 | Отправлено: 14:23 27-02-2020
AlexeiKozlov

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
erthink

Цитата:
F:\save\hdd2\miranda32 (1)>mdbx_chk.exe -i -vvvvvvv -n ngprofile.dat
Traversal b-tree by txn#4295543961...
 ! mdbx_env_pgwalk failed, error -30796 MDBX_CORRUPTED: Database is corrupted
 
F:\save\hdd2\miranda32 (1)>mdbx_chk.exe -vvvvvvv -n ngprofile.dat
 - monopolistic mode
 - pagesize 4096 (4096 system), max keysize 1300..1344, max readers 122
 - mapsize 70254592 (67.00 Mb)
 - dynamic datafile: 12288 (12.00 Kb) .. 536870912 (512.00 Mb), +1048576 (1.00 Mb), -524288 (512.00 Kb)
 - current datafile: 70254592 (67.00 Mb), 17152 pages
 - transactions: recent 4295543961, latter reader 4295543961, lag 0
 - meta-0: weak 4295543959, tail
 - meta-1: steady 4295543961, head
 - meta-2: no-sync/legacy 4295543960, stay
 - performs check for meta-pages clashes
 - performs full check recent-txn-id with meta-pages
Traversal b-tree by txn#4295543961...
     meta-span 0[3] of @META: header 60, payload 624, unused 11604, deep 0
     large-page 16511 of @GC: header 20, payload 1364, unused 2712, deep 0
     leaf-page 15967 of @GC: header 26, payload 108, unused 3962, deep 0
 ! mdbx_env_pgwalk failed, error -30796 MDBX_CORRUPTED: Database is corrupted

 
ВОт, что выдает на моей базе.

Всего записей: 1994 | Зарегистр. 16-10-2004 | Отправлено: 14:33 27-02-2020 | Исправлено: AlexeiKozlov, 14:34 27-02-2020
erthink

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
я пока тоже сижу с битой базой.
67 мегабайт каким то образом типа превратились в ничто.
Комментариев никто не дает с обоих сторон: разраб libmdx и разрабы миранды.

 
Все комментарии уже были, свои я могу повторить:
 
1) В миранде mdbx-база используется в "хрупком" режиме, при котором с высокой вероятностью база превращается в фарш из тыквы при любой системной аварии.
 
2) В вашем случае дополнительно была какая-то проблема с носителем.
 
3) Утилита проверки сообщает что БД повреждена и у вас (видимо) нет бекапа.
 
https://ru.wikipedia.org/wiki/Shit_happens
 
 
Добавлено:

Цитата:
Traversal b-tree by txn#4295543961...
     meta-span 0[3] of @META: header 60, payload 624, unused 11604, deep 0
     large-page 16511 of @GC: header 20, payload 1364, unused 2712, deep 0
     leaf-page 15967 of @GC: header 26, payload 108, unused 3962, deep 0
 ! mdbx_env_pgwalk failed, error -30796 MDBX_CORRUPTED: Database is corrupted
 

 
Уже был дан совет запустить с опцией -d (выключает b-tree traversal) чтобы оценить объем повреждений.
Покажите вывод.

Всего записей: 24 | Зарегистр. 02-09-2019 | Отправлено: 14:38 27-02-2020 | Исправлено: erthink, 14:42 27-02-2020
AlexeiKozlov

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
erthink

Цитата:
F:\save\hdd2\miranda32 (1)>mdbx_chk.exe -vvvvvvv -n -d ngprofile.dat
 - monopolistic mode
 - pagesize 4096 (4096 system), max keysize 1300..1344, max readers 122
 - mapsize 70254592 (67.00 Mb)
 - dynamic datafile: 12288 (12.00 Kb) .. 536870912 (512.00 Mb), +1048576 (1.00 Mb), -524288 (512.00 Kb)
 - current datafile: 70254592 (67.00 Mb), 17152 pages
 - transactions: recent 4295543961, latter reader 4295543961, lag 0
 - meta-0: weak 4295543959, tail
 - meta-1: steady 4295543961, head
 - meta-2: no-sync/legacy 4295543960, stay
 - performs check for meta-pages clashes
 - performs full check recent-txn-id with meta-pages
Skipping b-tree walk...
Processing '@MAIN'...
 - dbi-id 1, flags: none (0x00)
 - page size 4096, entries 8
 - b-tree depth 1, pages: branch 0, leaf 1, overflow 0
 ! subtotal pages mismatch (1 != walked 0)
 ! all-leaf pages mismatch (1 != walked 0)
 ! mdbx_cursor_get failed, error -30796 MDBX_CORRUPTED: Database is corrupted
     entry #0: differentent number of entries (0 != 8)
 - problems: differentent number of entries (1)
 - summary: 0 records, 0 dups, 0 key's bytes, 0 data's bytes, 1 problems
Processing '@GC'...
 ! mdbx_dbi_flags failed, error -30782 MDBX_BAD_TXN: Transaction is not valid for requested operation, e.g. had errored and be must aborted, has a child, or is invalid
 - space: 17152 total pages, backed 17152 (100.0%), allocated 17109 (99.7%), remained 43 (0.3%), used 17109 (99.7%), gc 0 (0.0%), detained 0 (0.0%), reclaimable 0 (0.0%), available 43 (0.3%)
Total 5 errors are detected, elapsed 0.047 seconds.
 

 
да ну, там я вижу 1 транзакция зависла.
Не уж то все данные теперь ничего не значат? как то вытащить можно.
 
отрезать эту ошибочную транзакцию от базы и всё(на мой взгляд) мне данных из последней транзакции не жалко.

Всего записей: 1994 | Зарегистр. 16-10-2004 | Отправлено: 14:53 27-02-2020 | Исправлено: AlexeiKozlov, 14:59 27-02-2020
Taciturn

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
erthink
Утилита mdbx_chk внезапно начала поставляться с Miranda. Собственно я не просил ничего чинить, просто обратил внимание на то, что идущая в комплекте с программой утилита некорректно работает с базой данных, которую эта самая программа создаёт. И более важно то, что текущие версии mdbx_dump/mdbx_load, идущие в комплекте с Miranda, убивают базу, даже свежесозданную.

Всего записей: 1763 | Зарегистр. 26-07-2003 | Отправлено: 15:15 27-02-2020 | Исправлено: Taciturn, 16:13 27-02-2020
erthink

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Processing '@MAIN'...
 - dbi-id 1, flags: none (0x00)
 - page size 4096, entries 8
 - b-tree depth 1, pages: branch 0, leaf 1, overflow 0
 ! subtotal pages mismatch (1 != walked 0)
 ! all-leaf pages mismatch (1 != walked 0)
 ! mdbx_cursor_get failed, error -30796 MDBX_CORRUPTED: Database is corrupted
     entry #0: differentent number of entries (0 != 8)
 - problems: differentent number of entries (1)
 - summary: 0 records, 0 dups, 0 key's bytes, 0 data's bytes, 1 problems

 
После каких-то изменений измененные страницы не записались на носитель, среди них оказалась корневая страница B+дерева (https://en.wikipedia.org/wiki/B%2B_tree).
 
Восстановить вашу базу - это как сложить в верном порядке рассыпанную стопку из 17109 страниц с распечаткой hex-дампа ваших данных.
 

Цитата:
 ! mdbx_dbi_flags failed, error -30782 MDBX_BAD_TXN: Transaction is not valid for requested operation, e.g. had errored and be must aborted, has a child, or is invalid
 - space: 17152 total pages, backed 17152 (100.0%), allocated 17109 (99.7%), remained 43 (0.3%), used 17109 (99.7%), gc 0 (0.0%), detained 0 (0.0%), reclaimable 0 (0.0%), available 43 (0.3%)
Total 5 errors are detected, elapsed 0.047 seconds.
  
да ну, там я вижу 1 транзакция зависла.

 
Никакой транзакции не зависло, внутри БД им негде висеть.
 
Это лишнее сообщение об ошибке из-за того, что транзакция в рамках которой выполняется проверка была помечена как сбойная из-за повреждения БД.
Т.е. это примерно косметический недочет, проявляющийся при проверка фатально поврежденных баз.
Тем не менее поправил https://github.com/erthink/libmdbx/commit/ecffc831fa7394194e71904792ae32e0e9639d33

Всего записей: 24 | Зарегистр. 02-09-2019 | Отправлено: 16:24 27-02-2020 | Исправлено: erthink, 16:26 27-02-2020
AlexeiKozlov

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
erthink
то есть, миранда и libmdx работают по такой схеме:
миранда загружает в память всю базу
а потом в нужные моменты делает запись этой БД на диск
если момент записи был подпорчен чем-то, то БД запишется на диск с ошибкой и получаем @стопку@  
Так ли я понял?
 
Не уж то, у стопки нету ID каждого листочка и родителя этого листочка, чтобы сложить их обратно?
 
я могу дать свою БД для анализа. ВДруг это проще, чем показывают логи ошибок.
 

Цитата:
The leaves (the bottom-most index blocks) of the B+ tree are often linked to one another in a linked list; this makes range queries or an (ordered) iteration through the blocks simpler and more efficient (though the aforementioned upper bound can be achieved even without this addition). This does not substantially increase space consumption or maintenance on the tree. This illustrates one of the significant advantages of a B+tree over a B-tree; in a B-tree, since not all keys are present in the leaves, such an ordered linked list cannot be constructed. A B+tree is thus particularly useful as a database system index, where the data typically resides on disk, as it allows the B+tree to actually provide an efficient structure for housing the data itself  

 
Ну это теория. Весь вопрос, есть ли эти ключи в реализации libmdx.
Ведь B+ в libmdx я так понял, опираясь на ссылку выше ,на википедию.

Всего записей: 1994 | Зарегистр. 16-10-2004 | Отправлено: 16:38 27-02-2020 | Исправлено: AlexeiKozlov, 17:22 27-02-2020
erthink

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
то есть, миранда и libmdx работают по такой схеме:
миранда загружает в память всю базу
а потом в нужные моменты делает запись этой БД на диск
если момент записи был подпорчен чем-то, то БД запишется на диск с ошибкой и получаем @стопку@  
Так ли я понял?

 
Ваша формулировка верна на 50%, на вторые 50 - нет.
А точный ответ требует разъяснение массы технических подробностей.
 
Короче, сейчас миранда использует возможности libmdbx как НЕ следует делать для сохранности ваших данных.
Грубо говоря через Ж.

Всего записей: 24 | Зарегистр. 02-09-2019 | Отправлено: 17:14 27-02-2020
AlexeiKozlov

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
erthink
да вот, я смотрю ваша риторика, странная.
вроде вы как бы тут) но и помочь нечем.
только отправляете для разрабов миранды какие-то свои выводы.
че у вас там конфликт интересов, чтоли произошел с разрабами?
 
Хочется, осознаТЬ, что в 21 веке мы можем, 67 мегабайт вернуть к жизни. я копил их с 2009 года. А тут хлоп и какая то ерунда рассыпала 67 мегабайт на осколки и получили типа пазл из 67 000 000 осколков, который некому собирать. Сказка хороша
 
Жду ответа про цитату с википедии, которая говорит о каких-то ключах в B+ дереве, которые ваша libmdx по-идее должна поддерживать или как ?

Всего записей: 1994 | Зарегистр. 16-10-2004 | Отправлено: 17:26 27-02-2020 | Исправлено: AlexeiKozlov, 17:43 27-02-2020
erthink

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
да вот, я смотрю ваша риторика, странная.
вроде вы как бы тут) но и помочь нечем.
только отправляете для разрабов миранды какие то свои выводы.
че у вас там конфликт интересов, чтоли произошел с разрабами?
 

 
Еще раз: Сейчас миранда использует возможности libmdbx как НЕ следует делать для сохранности ваших данных.
И пока это так данные будут гарантированно теряться в таких ситуациях как у вас.
 
Подробности есть в описании API режима MDBX_UTTERLY_NOSYNC.
В частности https://github.com/erthink/libmdbx/blob/ecffc831fa7394194e71904792ae32e0e9639d33/mdbx.h#L1173-L1209
 

Цитата:
Хочется, осознаТЬ, что в 21 веке мы можем, 67 мегабайт вернуть к жизни. я копил их с 2009 года. А тут хлоп и какая то ерунда рассыпала 67 мегабайт на осколки и получили типа пазл из 67 000 000 осколков, который некому собирать. Сказка хороша  
 

 
Еще раз: Надо было делать резервные копии, ибо https://ru.wikipedia.org/wiki/Shit_happens
Никто не давал вам никаких гарантий и ничем не обязан.
 

Цитата:
 
Жду ответа про цитату с википедии, которая говорит о каких-то ключах в B+ дереве, которые libmdx по-идее должна поддерживать или как ?
 

 
1) MDBX является развитием LMDB. Это указано в README проекта вместе со списком отличий/доработок  
http://erthink.github.io/libmdbx/
 
2) По LMDB в Сети есть масса информация. Почти вся эта информация применима к MDBX с учетом списка доработок по первой ссылке.
Может быть полезным http://www.lmdb.tech/media/20130406-LOADays-LMDB.pdf и т.п.
 
3) Исходный код libmdbx и миранды доступен публично. Поэтому вы можете попробовать сделать утилиту, которая если не восстановит вашу БД, то хотя-бы извлечет максимум сохранившихся данных.
Думаю будет проще и результативнее действовать самым простым способом:
 - читать файл постранично, т.е. кусками по 4-09 байт.
 - смотреть на флаги mdbx-страницы в заголовке и пропускать все страницы кроме leaf и overflow.
 - эвристиками выявлять структуры данных используемые в миранде.
 - распечатывать или куда-то сохранять найденные данные.
 - отфильтровать дубликаты и прочий мусор.
 
 

Всего записей: 24 | Зарегистр. 02-09-2019 | Отправлено: 18:02 27-02-2020
AlexeiKozlov

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
erthink
по 1 уже пора завершить. это всем понятно. хотя и тут ВЫЫЫ ушли от ответа про конфликт.
 
а вот по другим вопросам , ваша техника ухода от ответа, довольно не этично работает.
почему нету прямого ответа про B+ деревья и их реализацию?
 
Вы как автор явно это знаете. НО вместо этого отсылаете в тьму тараканью по разным ссылкам.
 
Что-то странная позиция.
Предлагаете заняться программированием того, что, кроме вас , никто не знает.
 
Что с тобой erthink ?
 
ЧТо ты хочешь сказать, этими отписками ?
То, что ты хорошо уверачиваешься от ответственности? так это стало понятно с твоего первого сообщения тут Сча все так умеют.
 
Если разрабы повернули свою избушку к нам задом, то давай хоть ты поверни свою избушку передом.
 
А то получается, есть слабое звено во всей этой архитектуре :
пользователи + разрабы(миранды) + разрабы (третьи лица)
 
Анализ по архитектуре показывает :
A)разрабы (миранды) сделали выбор не просчитав минусов и теперь видя эту картинку замолчали.
а минусы оказались такими : по тому, что сейчас получаем,

  1. за libmdx никто отвечать не хочет и не будет.
  2. также с libmdx с точки зрения реализации работает только в одну сторону.  
  3. в libmdx нету инструментов, чтобы пользователь сам мог делать с данными , что пожелает, в отличии от старой mmap.
     

B)разраб( libmdx) сделал выбор уйти от отвественности и какой либо помощи , скрывая карты в рукаве(про B+ и ключи) и даёт советы, которые не приведут пользователя к результатам.
 
С) переводить базы в sqlite, такой формат поддерживается на данный момент. для sqlite есть инструменты не зависящие от разработчиков миранды и самого sqlite.

Всего записей: 1994 | Зарегистр. 16-10-2004 | Отправлено: 18:30 27-02-2020 | Исправлено: AlexeiKozlov, 20:23 27-02-2020
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77

Компьютерный форум Ru.Board » Компьютеры » Программы » Miranda NG (Часть 2)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru