Прошивки –  Каталог навигаторов –  Восстановление навигатора

Вернуться   Мир Автомобильных навигаторов > PNA / PND Устройства > Альтернативное меню > Меню System Information
Регистрация ФайлыПравила форумаБан-лист Справка Календарь Поиск Сообщения за день Все разделы прочитаны

Важная информация


     
Ответ
 
Опции темы
Старый 28.01.2013, 12:37   #1
_SIL_
Старичок
 
Аватар для _SIL_
Доп. информация
Радары System Information v1.6.3 и её доработка

Отличие оригинальных версий SystemInformation Menu 1.6.3 и 1.6.1

Наткнулся в инете на новую версию 1.6.3. Особых отличий от 1.6.1 в ней нет. По мелочи кое-что подправлено.
Полный список изменений неизвестен. Мне удалось выявить следующие отличия:
- BackgroundBitmap можно не указывать (поправлен глюк версии 1.6.1).
- запустить программу по относительному пути как обычно нельзя. Напомню, во многих взломанных версиях SI 1.6.1 (взламывали не профи) народ запускал программы по относительному пути не через Command, а через NewIni. Но при этом новый инишник через NewIni не запускался.
- появились новые символы, которые комментируют строку, например "[". Благодаря этому с конфигом стало можно работать как с обычным инишником с блочной структурой.
пример

Для разработчиков это очень полезная фишка. Структуру ини гораздо удобнее читать и генерировать скриптами, работая с конфигом также как с обычным инишником, а не как с текстовым файлом.
Код:
[GLOBALSETTINGS]
GLOBALSETTINGS =
Arrange = No
X = 0
Y = 0
BackgroundBitmap = fon.bmp
....

[Button1]
ICONXPBUTTON =
x = 20
y = 100
IconNormal = Icons\but1_normal.ico
...


Переработанное SystemInfomation menu 1.6.3 с поддержкой картинок PNG с прозрачностью.

Переработка произведена способом [[Ссылки могут видеть только зарегистрированные пользователи. ]]> [[Ссылки могут видеть только зарегистрированные пользователи. ]]>
НОВЫЕ ВОЗМОЖНОСТИ:
  • совместимость с файлами настроек оригинальной программы
  • везде, в любой секции вместо BMP или ICO можно прописывать PNG и JPG (но прозрачность поддерживается только в секции ICONXPBUTTON)
  • в секции GLOBALSETTINGS добавился новый параметр HideTaskBar. Если указать 1, то при запуске менюшки будет скрываться таскбар;
  • в секции ICONXPBUTTON добавил новые параметры Width, Height и Stretch. Теперь можно указывать картинки произвольного размера.
    Параметры SizeNormal и SizePushed как и раньше задают квадратную область для ненажатой и нажатой картинки,
    Параметры Width и Height задают произвольные размеры области сразу для обеих картинок.
    Параметр Stretch=1...5 указывает, что в случае несовпадения реальных размеров картнки с размерами, заданными в конфиге, картинку нужно растянуть/сжать;
  • при отсутствии картинок надписи "no bitmap" и "no icon" теперь не выводятся;
  • в параметре Commnand можно задавать относительный путь для запуска программ. Путь указывается отностельно папки текущего инишника (также как и для картинок или новых инишников);
  • новый параметр Command- (минус на конце) - работает также как Command, только при запуске программы еще будет скрываться таскбар. Если программа по каким-то причинам не запустилась, таскбар скрываться не будет.
  • все сообщения переведены с немецкого на английский язык
  • в секции GLOBALSETTINGS можно задать имя окну менюшки через новый параметр WindowName . Это позволяет из скрипта общаться с менюшкой, например скрывать, отображать, закрываеть окно, посылать комманды и пр.
  • окну SI можно посылать специальную комманду из скриптов для перечитывания конфигурации после правки текущего инишника! Делается это вот так:
    PostMessage("имя окна SI", HexToNumber("8001"), 0, 0 )
    Никаких убийсв процессов или маускликов на спрятанную кнопку больше не нужно!
  • в инишнике можно прописать таблицу, содержащую ссылки на новые инишники, переход по которым можно сделать из скрипта коммандой
    PostMessage("имя окна SI", HexToNumber("8001"), N, 0 )
    где N - число от 1 до 63 - номер инишника по порядку.
    Таблица инишников прописывается сразу после секции [B]GLOBALSETTINGS[/B] в таком виде:
    BUTTON
    NewIni=Test1.ini

    BUTTON
    NewIni=Test2.ini

    BUTTON
    NewIni=Test3.ini

    и так далее. Всего в таблицу можно внести не более 63 инишников, остальные будут игнорироваться.

  • в качестве фоновой картинки можно использовать сразу несколько полупрозрачных картинок и даже скриншот экрана, которые будут накладываться друг на друга. Всего не более 15 картинок включая скриншот. Пользоваться так:
    Картинки:
    BackgroundBitmap = ..\Pics\overlay.png|xx,yy,ww,hh,stretch (после символа | всё указывается без пробелов)
    xx,yy - координата от начала окна. BitmapOffsetX/Y - игнорируется
    ww,hh - ширина и высота картинки (если нужно их изменить)
    stretch=0-5 - аналогично кнопкам - для растягивания/сжатия на новые размеры

    Скриншот:
    BackgroundBitmap = /SCREEN|xx,yy,ww,hh
    если не указывать |xx,yy то нарисуется с корректным смещением когда заданы BitmapOffsetX/Y

    Пример фона из нескольких картинок:
    BackgroundBitmap = /SCREEN
    BackgroundBitmap = ..\res\8x8.png|0,0,480,272,1
    BackgroundBitmap = ..\res\top.png|0,0
    BackgroundBitmap = ..\res\fon.jpg|50,88,366,56
    BackgroundBitmap = ..\res\fon2.png|10,220,460,20,1


  • У кнопки ICONXPBUTTON появилась текстовая надпись, аналогичная WINDOWSBUTTON!
    У этих двух типов кнопок появились новые параметры:
    TxtOffsetX - отступ по горизонтали, начиная с которого текстовая надпись будет отображаться на кнопке.
    TxtOffsetY - тоже, но по вертикали.
    TxtColor2 - цвет надписи когда кнопка нажата
    Например, чтобы текст был под картинкой, в параметре Height нужно указать число, больше чем высота картинки и задать параметр TxtOffsetY. При этом кнопка будет нажиматься даже при нажатии на текстовую надпись!

  • В глобальной секции параметром Sound можно задать wav-файл, озвучивающий нажатия кнопок.
  • В секции TIME параметром CloseTimer=(1-255) можно задать количество секунд, через которое менюшка автоматически закроется если не нажимать на экран. При этом на экране будет отображаться обратный отсчет в стандартном формате секции TIME. (см. пример)
  • В секции TIME параметром StartTimer=(0/1) или (yes/no) можно отобразить счетчик секунд с момента старта менюшки.
  • В секции TIME параметром FlashText=(0/1) или (yes/no) можно сделать текст мигающим. Мигание будет с интервлом, заданным через параметр Interval.
  • В любом месте инишника можно прописать секцию END. Это укажет менюшке что всё что написано после этой секции считывать не нужно.
  • При отсутствии файла SysInfoSettings.ini, содержащий список конфигурационных ини-файлов, будет предпринята попытка прочитать ини-конфиг с имененем экзешника. См. Пример 2 в архиве.
  • Чтобы шрифт был сглаженным, нужно указать параметр CreateFont+. Без "+" на конце шрифт будет как и раньше, несглаженный.

Естественно все эти новые фишки доступны только на навигаторе и не поддерживаются на ПК программой-эмулятором SystemInfomation32.exe.


Картинки ICO и BMP прога загружает своим старым способом. Остальные картинки загружаются системными средствами MS Imaging API. Для этого в системе должны быть библиотеки imaging.dll и zlib.dll. Практчески на всех навиках они сейчас есть.
В архиве Imaging_Install.rar (см. вложения) содержится установочный комплект ImagingApi для любой версии WinCE. Но даже если ImagingApi не поддерживается, то для 24 и 32-битных PNG со сжатем Хоффмана (стандарт фотошопа) в SI присутствует второй способ загрузки PNG, не требующий никаких длл. Этот способ взят c [[Ссылки могут видеть только зарегистрированные пользователи. ]]>



Вам надоели тонны килобайт BMP и ICO, которые занимают ваши менюшки? Тогда мы идем к вам!

Что мы имеем в результате в цифрах:
  • fon.bmp=390кб --> fon.jpg=13кб, размер уменьшен в 30 раз;
  • 0.ico=160кб --> 0.png=9кб, размер уменьшен в 18 раз;
  • fon2.bmp=390кб --> fon2.png=4кб, размер уменьшен почти в 100 раз!
А если таких картинок/иконок с полсотни? А если разрешение экрана высокое - 800х480??? Есть повод задуматься.
Вложения
Тип файла: rar Imaging_Install.rar (174.0 Кб, 507 просмотров)
Тип файла: rar SysInfo_1.6.3.20_Samples.rar (241.4 Кб, 453 просмотров)
_SIL_ вне форума  
Старый 06.01.2014, 22:17   #16
Norm
Куратор
 
Аватар для Norm
Доп. информация
По умолчанию

Я тоже в этом засомневался, но и отрицать не стал.
Не мог понять, как же он (морт) найдет среди двух безымянных окон то, которое мне надо закрыть и как я уже говорил, Handle этой пустышки редко какие программы видят.
Из таких мне известна только одна программа SoftButto, может и другие есть, но я пока не встречал.
Вот она действительно может работать с хендлом от SI, но от этого нам ни холодно ни жарко.

Этот параметр 16 применим исключительно к SI или это можно с другими приложениями использовать, для их корректного завершения?
И в нашем случае, как мне кажется, лучше SendMessage посылать, чтоб быстрее исполнялось
Norm вне форума  
Старый 06.01.2014, 23:24   #17
_SIL_
Старичок
 
Аватар для _SIL_
Доп. информация
По умолчанию

WM_CLOSE применяется к окнам любых приложений.
SendMessage медленнее PostMessage. SendMessage выполняется до тех пор пока окно не вернет код завешения на эту комманду. А вернуть оно этот код может черз доли секунд, а может и через несколько секунд. Это уже зависит от того как сделана подпрограмма-обработчик окна в закрываемой проге.
_SIL_ вне форума  
Старый 07.01.2014, 14:41   #18
Norm
Куратор
 
Аватар для Norm
Доп. информация
По умолчанию

Спорить не буду, поскольку сужу по тому, что написамно в мануале. В русском некоторые вещи переведены не корректно, поэтому, пользуюсь немеким, как никак родной язык автора, и там было написано, что сообщение SendMessage принимающая его программа обрабатывает немедленно, вместо того, чтобы обработать его в очереди в порядке поступления, как это делает с PostMessage, и лишь после обработки вернет код завешения.
Тоже самое и в английском варианте. А вот русский перевод там некоректен.
Но после прочтения [[Ссылки могут видеть только зарегистрированные пользователи. ]]>
P.S.
Спасибо, через тябя узнал немного больше
Norm вне форума  
Пользователь сказал cпасибо:
Старый 09.01.2014, 20:40   #19
_RUSER_
Куратор
 
Аватар для _RUSER_
Доп. информация
По умолчанию

Цитата:
Сообщение от Norm Посмотреть сообщение
Странно в моем меню эти звуки при эмуляции не слышно

Да ..., всё правильно, нет никакого звука..., это просто я без ушей ковырял....
_RUSER_ вне форума  
Старый 15.01.2014, 19:28   #20
_RUSER_
Куратор
 
Аватар для _RUSER_
Доп. информация
По умолчанию

_SIL_
А реально всё же заставить SI воспринимать *.gif файлы в качестве ICONXPBUTTON , BUTTON или BITMAPBUTTON ?
_RUSER_ вне форума  
Старый 17.01.2014, 16:46   #21
_SIL_
Старичок
 
Аватар для _SIL_
Доп. информация
По умолчанию

_RUSER_, Анимированные - нет, а в статических гифах смысла мало, пнг выгоднее и по качеству и по размеру.
_SIL_ вне форума  
Старый 25.01.2014, 09:57   #22
Norm
Куратор
 
Аватар для Norm
Доп. информация
По умолчанию

Уже какую неделю "рву волосы" от негодования, потому что не могу использовать эту революционную доработку.
Отподает любой смысла её применять в каком-то боле менее профессиональом варианте
Уменьшаем размер графики и тут же засовываем, вмесно высвобожденных десятков Мб, ЕХЕ-шники исполняемых файлов скриптов, и меню снова распухает до неузноваемости.
К сожалению, так я и не смог понять, почему не удалось ко всем чудесным доработкам, добавить еще одну маленькую, а именно запуск файлов скриптов *.mscr по относительному пути, как это уже сделано в 1.6.1
Все професиональные оболочки используют этот трюк, при этом нет никаких опасений, что ассоциация с *.mscr можкт слететь, поскольку при таком использовании MortScript не умеет сам себя в реестре прописывать.
Это возможно только в одном случае, если запустить отдельно сам файл MortScript.exe, при этом появится сообщение: Версия скрипта и т.д.

Эх, одно растройство, лучше-б я вообще эту тему не видел


P.S.
С 1-го января этого года хомяк на ultimatelaunch.de уже недоступен, автор похоже закрыл проэкт.
Лицензионных соглашений, тоже вроде нигде ни кто не видел......
Norm вне форума  
Старый 31.01.2014, 14:43   #23
johnzver
Новичок
Доп. информация
По умолчанию

Привет всем!Может подскажете,что подправить,чтобы при выключении программы,например iGO,возвращаться в альт.меню,а не в меню навигатора?Меню прстенькое,одностраничное,установил на SDMMC,на резидентфлеш не помещается,Объём р-флеш всего 0,35 мб,навигатор пионер РА-783 800х480.
johnzver вне форума  
Старый 31.01.2014, 15:30   #24
YuS
Любознательный
Доп. информация
По умолчанию

Цитата:
Сообщение от johnzver Посмотреть сообщение
чтобы при выключении программы,например iGO,возвращаться в альт.меню,а не в меню навигатора?

mortscript в помощь. System Information в решении этой проблемы не поможет.
Альтменю закрывается при запуске программы? Если нет, то по идее оно и должно отображаться... ситуацию надо подробнее описать
YuS вне форума  
Пользователь сказал cпасибо:
Старый 31.01.2014, 19:33   #25
johnzver
Новичок
Доп. информация
По умолчанию

Да,меню закрывается после нажатия на иконку с программой,какбы не такая большая проблема потом второй раз нажать на кнопку,просто у меня было меню на навигаторе 480х272,так там после выхода из нави программы открывалось альт.меню.Сейчас поменял навигатор на 800х480,сложил менюшку простенькую для себя и вот такой возник вопрос.На старом навигаторе и после его выключения,он стартовал с альт.меню!
johnzver вне форума  
Старый 31.01.2014, 20:42   #26
Norm
Куратор
 
Аватар для Norm
Доп. информация
По умолчанию

Цитата:
Сообщение от johnzver Посмотреть сообщение
Привет всем!Может подскажете,что подправить,чтобы при выключении программы,например iGO,возвращаться в альт.меню,а не в меню навигатора?Меню прстенькое,одностраничное,установил на SDMMC,на резидентфлеш не помещается,Объём р-флеш всего 0,35 мб,навигатор пионер РА-783 800х480.

Данная проблема не каким боком к обсуждениям в данной теме не относиться !
Правильнее было бы спрашивать в теме посвященной пионеру РА-783 или установленному на него меню.
Norm вне форума  
Старый 16.04.2014, 20:18   #27
Skondr1
Старичок
 
Аватар для Skondr1
Доп. информация
По умолчанию

Цитата:
Сообщение от Norm Посмотреть сообщение
Уменьшаем размер графики и тут же засовываем, вместо высвобожденных десятков Мб, ЕХЕ-шники исполняемых файлов скриптов, и меню снова распухает до неузнаваемости.
К сожалению, так я и не смог понять, почему не удалось ко всем чудесным доработкам, добавить еще одну маленькую, а именно запуск файлов скриптов *.mscr по относительному пути...

Полностью поддерживаю. Было бы замечательно оставить совместимость со старой версией. Сам использую оболочку уже отработанную и поставленную на коммерческую основу, в которой только основных исполняемых модулей mscr 111, не говоря уж о скриптах, запускающих программы с внесением разных мелких поправок и устранением недочетов, не позволяющих корректно работать на всех навигаторах. 85Мб из 165 занимают фоны и иконки и очень хотелось бы этот объем сократить. Но невозможность запуска mscr перечеркивает все преимущества нововведений. Если исправить положение вещей, то революция свершится.
Но все запускается по Command, остается лишь перелопатить модули и вписать правильные команды Не смертельно, но работы куча.
__________________
Pioneer 7" Mediatek MT3351 ARM1176JZ-S (468MHz) 128Mb WinCE5.1400 800x480px, Navitel NX-5300
Skondr1 вне форума  
Старый 19.04.2014, 23:11   #28
_SIL_
Старичок
 
Аватар для _SIL_
Доп. информация
По умолчанию

Цитата:
Сообщение от Skondr1 Посмотреть сообщение
Но невозможность запуска mscr перечеркивает все преимущества нововведений.

Подробней про этот момент можно? Скрипты вроде как итак запускаются...

Я сделал маленькую программу MortRun.exe для запуска скриптов. C ее помощью скрипты запускаются именно с тем MortScript.exe который мы ХОТИМ независимо от того какой мортскрипт прописан в реестре (если вообще прописан). Плюс с помощью этой програмки скриптам можно передавать параметры из инишника.
Данное возможно решить только сторонней программой и к менюшке тут претензий нет.



Цитата:
Сообщение от Skondr1 Посмотреть сообщение
Если исправить положение вещей, то революция свершится.

Что конкретно вы хотите? По-моему ничего менять не нужно, поскольку итак всё великолепно работает.

Ну есть на 5 винде небольшой косяк. У всех программ, запускаемых по относительному пути в процессах видно что в их пути присутствуют двоеточия. Это я тоже какбы подправил, правда пока тестируется, поэтому не выкладывал. Но это доработка совсем мелкая и незначительная.

Вот, можете попробовать в качестве проверки: [[Ссылки могут видеть только зарегистрированные пользователи. ]]>
_SIL_ вне форума  
Старый 20.04.2014, 22:04   #29
Skondr1
Старичок
 
Аватар для Skondr1
Доп. информация
По умолчанию

Скрипты запускаются, не спорю. Тут момент совместимости со старой версией, на которой строилось меню. При простой подмене старой версии SI новой получаем следующее:
При попытке запустить mscr по команде newini получаем The File is empty or not in Unicode format. Т.е. функционал параметра NewIni все же нарушен. Это не критично совершенно. Поменять NewIni на Command не проблема.
из Ico файла берется только самая большая иконка, т.е. игнорируются параметры SizeNormal и SizePushed. А вот это уже не гуд. Понятно, что ico не нужно, когда есть возможность ставить png. Но функционал хотелось бы сохранить.
На WinCE5.0 на предмет двоеточия в пути посмотрел. Как раз использую раритетный Pioneer на 5 винде для отладки меню. В тестовой версии никаких двоеточий нет. Путь передается правильный. Тестовое меню работает, багов не замечено.
Свое меню перелопатил. Пока все отрабатывает четко. Никаких странностей в работе не наблюдаю.
MortRun замечательное дополнение. С его помощью избавился от кучи скриптов, запускавших один и тот же скрипт, но с разными параметрами. Работает все корректно. Единственный нюанс, относительный путь к MortRun.exe указывается исходя из местоположения ini файла, а параметр, т.е. скрипт, который будет запускать MortRun, указывается исходя из местоположения MortRun.exe.
Большое спасибо за проделанную работу. Я свою революцию свершил. Перевел меню на новую платформу. Если не придираться к мелочам совместимости с меню, работавшим на старом движке, то проблем нет и функционала теперь в полной мере хватает для комфортной реализации практически всех задумок и даже с запасом на будущее)
Само меню выглядит так


Цитата:
Сообщение от Norm Посмотреть сообщение
Здесь на, мой взгляд, будет хорошо работать такая схема:
Созадать два каталога 1 и 2 и в каждый положить SI
Проверяем какой из процессов запущен
Запускаем один,
делаем запись в ИНИ,
запускаем второй,
Ждем полной загрузки
убиваем первай (обязательно указать полный путь к файлу)

Эта схема требует дубля одного и того же ini в 2-x папках. Можно проще - назвать 2 копии SI по-разному. Например: MenuX.exe и MenuY.exe. Изменяем ini, проверяем запущен ли MenuX.exe, если да, то запускаем MenuY.exe, убиваем MenuX.exe, если нет, запускаем MenuX.exe, убиваем MenuY.exe. У меня эта схема проверена и работает на всех навигаторах. А меню ставил практически на все платформы.
__________________
Pioneer 7" Mediatek MT3351 ARM1176JZ-S (468MHz) 128Mb WinCE5.1400 800x480px, Navitel NX-5300
Skondr1 вне форума  
Пользователь сказал cпасибо:
Старый 21.04.2014, 11:51   #30
_SIL_
Старичок
 
Аватар для _SIL_
Доп. информация
По умолчанию

Цитата:
Сообщение от Skondr1 Посмотреть сообщение
Тут момент совместимости со старой версией

Но это ведь была ломанная версия! В ней не работал функционал NewIni. То что вы ранее использовали коряво взломанную версию - ваше право, но делать совместимось с коряво взломанной версией по моему глупо.

Цитата:
Единственный нюанс, относительный путь к MortRun.exe указывается исходя из местоположения ini файла, а параметр, т.е. скрипт, который будет запускать MortRun, указывается исходя из местоположения MortRun.exe.

Да, именно так, я про это забыл написать.

Цитата:
Сообщение от Skondr1 Посмотреть сообщение
Можно проще - назвать 2 копии SI по-разному. Например: MenuX.exe и MenuY.exe. Изменяем ini, проверяем запущен ли MenuX.exe, если да, то запускаем MenuY.exe, убиваем MenuX.exe, если нет, запускаем MenuX.exe, убиваем MenuY.exe. У меня эта схема проверена и работает на всех навигаторах. А меню ставил практически на все платформы.

Мне больше нравится способ _RUSER_ - без убийств, тк работает быстрее и надежнее.
в координате (0,0) сделать невидимую кнопку в 1 пиксель, в которой написано NEW_INI=тотже ини что и в GLOBALSETTINGS.
Изменяем ini и делаем MouseClick 0,0 - менюшка обновится гораздо быстрее.
Вообще убивание процессов - вещь не очень хорошая, всегда лучше не убивать, а заставлять прогу закрыться самой. Иначе в памяти остаются хвосты зарезервированной оперативки. Иногда маленькие, иногда большие. Применительно конкретно к этой менюшке - хвостов после убиения пока не наблюдал.




Я нашел способ как запускать скрипты из SI и передавать им параметры без MortRun.exe.

Проблема в том что Мортскрипт регистрирует себя в реестре вот так:
HKEY_CLASSES_ROOT\MortScript\Shell\Open\Command\@ = "\SDMMC\Test\Mort\MortScript.exe" "%1"
а нужно вот так:
HKEY_CLASSES_ROOT\MortScript\Shell\Open\Command\@ = "\SDMMC\Test\Mort\MortScript.exe" "%1" %*

Тогда если в SI написать
Command="..\Script\Test.mscr" Param1 "Param2 with spaces" Param3
То мортскрипт запустит Test.mscr и передаст ему параметры!!! То есть прокладка в виде MortRun.exe не нужна!

Но как сделать так чтобы то что написано красным постоянно присутствовало в реестре?
Постоянно запускать какой-то исправляющий скрипт или экзешник? Неудобно и ненадежно. Взломать Мортскрипт4.3? Удобнее, надежнее, но тоже не выход. Юзер может прописать какой-то свой мортскрипт и менюшка перестанет работать.
В общем, как ни крути, надежнее всего - плевать на то что в реестре и юзать в менюшке мортран
Command="..\Mort\MortRun.exe" "..\Script\Test.mscr" Param1 "Param2 with spaces" Param3
_SIL_ вне форума  
2 пользователя(ей) сказали cпасибо:
Ответ

Метки
hack, menu, png, system infomation

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Азы работы с меню на основе System Information. asterrX Меню System Information 214 02.06.2017 23:20
FAQ по System Information 7kot7 Меню System Information 7 22.12.2015 16:05
Альтернативное ПО для CAMERON-CA585GPS (на основе System Information) Pritorius 480x272 95 17.08.2014 23:01
еще меню-скин-1 экран-480х272 основа System Information VictorV 480x272 17 18.01.2011 15:43
V7 Portable Navigation System mr_kan Разное 11 20.09.2010 10:06


Текущее время: 14:22. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot

Копирайты
Время генерации страницы 0.16670 секунды с 13 запросами