LINUX.ORG.RU

Сообщения futurama

 

pdf с полями ввода из tcl/tk

Из программы на tcl/tk генерируется отчёт с текстом и картинками, затем экспортируется в pdf через библиотеку pdf4tcl (https://pdf4tcl.sourceforge.net/)

Облом когда понадобилось добавить поля ввода в pdf

pdf4tcl умеет добавлять такие поля (метод addForm), но система координат не совпадает

Хочется чтобы поля ввода были справа от Label1 и Label2

Кто виноват и что делать?

Минимальный тестовый фрагмент

#!/usr/bin/wish 

lappend auto_path [file join lib pdf4tcl094]
package require pdf4tcl

    set height 800
    set width  800

    canvas .canv -width $width -height $height 
    pack   .canv

    button .savePDF -text "save" -command savepdf
    pack .savePDF

	set font1 [font create -family Helvetica -size 10]

  .canv create text 0  0 -text "__________________________________________________________________________________________" -anchor w  -font $font1
  .canv create text 31  32 -text "Label 1 :" -anchor w -tag addform -font $font1
  .canv create text 90 450 -text "Label 2 :" -anchor w -tag addform -font $font1

proc savepdf {} {
    set fname {output.pdf}

    pdf4tcl::new mypdf -paper a4 -margin 15mm -compress 0

    mypdf startPage
    mypdf setFont 10 Helvetica
    mypdf canvas .canv
    foreach item [.canv find withtag addform] {
        set x [lindex [.canv bbox $item] 2]
        set y [lindex [.canv bbox $item] 3]
        puts "debug (x,y): $x,$y"
        mypdf addForm text [expr $x+20] $y 100 20 -init 0
    }
    mypdf write -file $fname
    mypdf destroy        

    exit 0
}

Вот полученный pdf

%PDF-1.4
5 0 obj
<<
/Length 6 0 R
>>
stream
/Helvetica 10 Tf
0 Tr
10 TL
q
1 w
[] 0 d
0 0 0 rg
0 0 0 RG
0 J
0 j
10.433 M
0.706317 0 0 -0.706317 43.226 793.83 cm
-1 -8 m
-1 459 l
721 459 l
721 -8 l
W
n
q
0 0 0 rg
BT
/Helvetica 17 Tf
0 Tr
17 TL
/Helvetica 14.388 Tf
0 Tr
14.388 TL
1 0 0 -1 0 4.079 Tm
(__________________________________________________________________________________________) Tj
ET
Q
q
0 0 0 rg
BT
/Helvetica 17 Tf
0 Tr
17 TL
/Helvetica 14.338 Tf
0 Tr
14.338 TL
1 0 0 -1 31 36.061 Tm
(Label 1 :) Tj
ET
Q
q
0 0 0 rg
BT
/Helvetica 17 Tf
0 Tr
17 TL
/Helvetica 14.338 Tf
0 Tr
14.338 TL
1 0 0 -1 90 454.061 Tm
(Label 2 :) Tj
ET
Q
Q

endstream
endobj

6 0 obj
599
endobj

4 0 obj
<</Type /Page
/Parent 2 0 R
/Resources 3 0 R
/Group <</S /Transparency /CS /DeviceRGB /I false /K false>>
/MediaBox [0 0 595 842]
/Contents [5 0 R]
/Annots [9 0 R
11 0 R]
>>
endobj

7 0 obj
<<
/Type /Font
/Subtype /Type1
/Encoding /WinAnsiEncoding
/Name /Helvetica
/BaseFont /Helvetica
>>
endobj
8 0 obj
<< /BBox [ 0 0 100 20] 
/Resources 3 0 R
/Subtype /Form
/Type /XObject

/Length 54
>>
stream
/Tx BMC BT /Helvetica 10 Tf 0 g 2 1.1 Td (0) Tj ET EMC
endstream
endobj
9 0 obj
<<
  /Subtype /Widget
  /P 4 0 R
  /Rect [149.52 738.48 249.52 758.48]
  /FT /Tx
  /T (textform8)
  /DA (/Helvetica 10 Tf 0 g)
  /Q 0
  /V (0)
  /AP << /N 8 0 R >>
  /F 4
>>

endobj
10 0 obj
<< /BBox [ 0 0 100 20] 
/Resources 3 0 R
/Subtype /Form
/Type /XObject

/Length 54
>>
stream
/Tx BMC BT /Helvetica 10 Tf 0 g 2 1.1 Td (0) Tj ET EMC
endstream
endobj
11 0 obj
<<
  /Subtype /Widget
  /P 4 0 R
  /Rect [208.52 320.48 308.52 340.48]
  /FT /Tx
  /T (textform10)
  /DA (/Helvetica 10 Tf 0 g)
  /Q 0
  /V (0)
  /AP << /N 10 0 R >>
  /F 4
>>

endobj
1 0 obj
<<
/Type /Catalog
/Pages 2 0 R
/AcroForm 12 0 R
>>
endobj

2 0 obj
<<
/Type /Pages
/Count 1
/Kids [4 0 R ]
>>
endobj

3 0 obj
<<
/ProcSet[/PDF /Text /ImageC]
/Font <<
/Helvetica 7 0 R
>>
>>
endobj

12 0 obj
<<
/Fields [9 0 R
11 0 R]
/DR 3 0 R
>>
endobj

xref
0 13
0000000000 65535 f 
0000001720 00000 n 
0000001787 00000 n 
0000001846 00000 n 
0000000686 00000 n 
0000000014 00000 n 
0000000666 00000 n 
0000000876 00000 n 
0000000990 00000 n 
0000001163 00000 n 
0000001353 00000 n 
0000001527 00000 n 
0000001926 00000 n 
trailer
<<
/Size 13
/Root 1 0 R
>>

startxref
1982
%%EOF

 , ,

futurama
()

debian 13 после апдейта firefox'а один сайт перестал открываться

/var/log/dpkg.log

upgrade firefox-esr:amd64 128.14.0esr-1~deb13u1 140.3.0esr-1~deb13u1

до апдейта всё работало

  1. Профиль чистый
  2. из chromium этот сайт без проблем открывается
  3. tcpdump показывает уход пакетов
13:01:23.706021 enp0s31f6 Out IP My-local-IP.33834 > IP-of-the-SITE.443: Flags [S], seq 1475834980, win 64240, options [mss 1460,sackOK,TS val 1291134423 ecr 0,nop,wscale 7], length 0
13:01:23.741646 enp0s31f6 In  IP IP-of-the-SITE.443 > My-local-IP.33834: Flags [S.], seq 406400922, ack 1475834981, win 28960, options [mss 1452,sackOK,TS val 3546451527 ecr 1291134423,nop,wscale 6], length 0
13:01:23.741668 enp0s31f6 Out IP My-local-IP.33834 > IP-of-the-SITE.443: Flags [.], ack 1, win 502, options [nop,nop,TS val 1291134458 ecr 3546451527], length 0
13:01:23.742353 enp0s31f6 Out IP My-local-IP.33834 > IP-of-the-SITE.443: Flags [.], seq 1:1441, ack 1, win 502, options [nop,nop,TS val 1291134459 ecr 3546451527], length 1440
13:01:23.742356 enp0s31f6 Out IP My-local-IP.33834 > IP-of-the-SITE.443: Flags [P.], seq 1441:1907, ack 1, win 502, options [nop,nop,TS val 1291134459 ecr 3546451527], length 466
13:01:23.819959 enp0s31f6 Out IP My-local-IP.33834 > IP-of-the-SITE.443: Flags [P.], seq 1441:1907, ack 1, win 502, options [nop,nop,TS val 1291134537 ecr 3546451527], length 466
13:01:24.064062 enp0s31f6 Out IP My-local-IP.33834 > IP-of-the-SITE.443: Flags [.], seq 1:1441, ack 1, win 502, options [nop,nop,TS val 1291134781 ecr 3546451527], length 1440
13:01:24.575945 enp0s31f6 Out IP My-local-IP.33834 > IP-of-the-SITE.443: Flags [.], seq 1:1441, ack 1, win 502, options [nop,nop,TS val 1291135293 ecr 3546451527], length 1440
13:01:25.571883 enp0s31f6 Out IP My-local-IP.33834 > IP-of-the-SITE.443: Flags [.], seq 1:1441, ack 1, win 502, options [nop,nop,TS val 1291136289 ecr 3546451527], length 1440
13:01:27.519964 enp0s31f6 Out IP My-local-IP.33834 > IP-of-the-SITE.443: Flags [.], seq 1:1441, ack 1, win 502, options [nop,nop,TS val 1291138237 ecr 3546451527], length 1440
13:01:31.487908 enp0s31f6 Out IP My-local-IP.33834 > IP-of-the-SITE.443: Flags [.], seq 1:1441, ack 1, win 502, options [nop,nop,TS val 1291142205 ecr 3546451527], length 1440

 ,

futurama
()

Arduino_GIGA_R1_WiFi на stm32

И как теперь stm’щики буду презрительно называть ардуинщиков, если те на stm32 пересели?!

Они убили Кенни! Сволочи!

https://dronebotworkshop.com/giga/#Arduino_GIGA_R1_WiFi

Arduino GIGA Specifications

Here is an outline of the specifications of the Arduino GIGA:

Microcontroller

The Arduino GIGA is based on a STM32H747XIH6 Microcontroller. This microcontroller has two cores:

32-bit Arm® Cortex®-M7 core with double-precision FPU and L1 cache up to 480 MHz
32-bit Arm® 32-bit Cortex®-M4 core with FPU up to 240 MHz

The STM32H747XIH6 includes a full set of DSP instructions and a Memory Protection Unit (MPU).

WiFi & Bluetooth

The Arduino GIGA uses a Murata® 1DX Wi-Fi/Bluetooth Module with the following capabilities:

Wi-Fi 802.11b/g/n 65 Mbps
Bluetooth Low Energy (version 5.X via Cordio stack, version 4.2 via Arduino Stack)

Memory

There are three memory storage devices on the Arduino GIGA, with a total of five memory areas.

STM32H747XI – 2MB Flash & 1 MB RAM
AT25SF128A-MHB-T – 16 MB NOR Flash
AS4C4M16SA – 8 MB SDRAM

Input/Output

The Arduino GIGA has a wide variety of I/O pins:

Digital I/O Pins: 76
Analog input pins: 12
PWM pins: 12
Analog output pins (DAC0/DAC1): 2
USB Host: USB 2.0 A
USB Peripheral: USB-C®
Logic level: 3.3V
VRTC: To power the RTC while the board is off
OFF pin: To turn off the board

Communication

There are also many communications options on the GIGA:

4x UART
3x I2C
2x SPI
1x CAN (an external transceiver is required)

USB Ports

There are two USB connectors on the Arduino GIGA:

USB-A – USB Host for keyboards, mice, and USB mass storage devices.
USB-C – Programming and HID (emulates mice and keyboards)

 , ,

futurama
()

как организовать gsm <-> voip?

Какие есть варианты для одного клиента? Хочу оставить дома СИМ-карту и получать/совершать звонки/смс через устройство подкл. к интернету.

Желательно автономное (без сторонних сервисов), может есть устройство или просто телефон с андроидом которые могут быть с одной стороны ГСМ, с другой – voip-server

Строить на астериксе или freepbx полноценную АТС как-то перебор, но если только так …

Имеется huawei b315s-22 LTE router. У него в настройках есть раздел VOIP settings

тут упоминают его

https://www.3cx.com/community/threads/how-do-i-connect-huawei-b315-voip-account-to-3cx.55801/

что делать дальше? ставить астериск?

Upd: решено: использовался asterisk + goip-1

 , ,

futurama
()

Lithium ECAD

Нашел случайно в интернете, потом оказалось что оно и в репозитории Дебиана есть.

На ЛОРе в поиске не находит ничего.

Как так?

www.lecad.ru

Скачать для Linux: DEB
RPM
TAR

** - Устанавливается в каталог /opt.

 ,

futurama
()

micro sd card «Wirte Protect is on»

dd снял дамп, записал на др. сд-карту такого же типа и размера. С этим порядок.

Вопрос:
С этой read-only картой что-то можно сделать, в смысле вернуть ее в режим writable?

dmesg

[835823.353526] sd 3:0:0:4: [sde] 122138624 512-byte logical blocks: (62.5 GB/58.2 GiB)
[835823.354131] sd 3:0:0:4: [sde] Write Protect is on

 , ,

futurama
()

сдвиг влево

Вопрос банальный, но спрошу.

ID микроконтроллера задается тремя ногами от 000 до 111

как правильно вдвинуть эти биты в инт?

bool h; // high bit
bool m; // middle bit
bool l; // low bit

 uint8_t id;

1. id = h*4 + m*2 + l;

2. id = h;
   id = id<<1 | m;
   id = id<<1 | l;

3. id = h<<2 | m<<1 | l;

 , ,

futurama
()

Вы не поверите хочу реверс-трактор

Да, из-за бугра в Россию. Надоело жить на острове, хочу простор.

Где я не прав?

 

futurama
()

nginx при обращении к блокированному url все-равно дергает fpm-php

в конфиге nginx

    location ^~ /admin/ {
        deny all;
        return 403;
    }

в логах

3.114.140.9 - - [24/Jan/2022:11:03:20 +0200] "POST /admin/ HTTP/1.1" 403 135 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
3.112.234.13 - - [24/Jan/2022:11:03:20 +0200] "POST /admin/ HTTP/1.1" 403 135 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
54.252.200.11 - - [24/Jan/2022:11:03:20 +0200] "POST /admin/ HTTP/1.1" 403 135 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
3.26.3.220 - - [24/Jan/2022:11:03:20 +0200] "POST /admin/ HTTP/1.1" 403 135 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
3.112.208.92 - - [24/Jan/2022:11:03:20 +0200] "POST /admin/ HTTP/1.1" 403 135 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
35.183.95.74 - - [24/Jan/2022:11:03:21 +0200] "POST /admin/ HTTP/1.1" 403 135 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
54.169.201.97 - - [24/Jan/2022:11:03:21 +0200] "POST /admin/ HTTP/1.1" 403 135 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
13.213.37.47 - - [24/Jan/2022:11:03:21 +0200] "POST /admin/ HTTP/1.1" 403 135 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
3.106.132.235 - - [24/Jan/2022:11:03:21 +0200] "POST /admin/ HTTP/1.1" 403 135 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
3.1.220.168 - - [24/Jan/2022:11:03:21 +0200] "POST /admin/ HTTP/1.1" 403 135 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"

fail2ban банит, адресов много

но при этом php-fpm перегружен. Почему он на эти запросы дергается? И как это исправить?

 ,

futurama
()

static html cms/generator

посоветуйте что использовать, чтобы было зашибись

надо чтобы пользователь уровня libreoffice writer:

1 создавал свои тексты/картинки/таблички – в конечном итоге static html

  1. управлял иерархией этих статей (меню/подменю)

  2. Заливал/синхронизировал с веб-сервером

и инструмент (редактор) создания веб-страниц

Как я понимаю п.1 это static site generator — что посоветуете использовать?

п.2 – это flat file CMS или просто локальная CMS (не разбираюсь, возможно ерунду пишу) – что посоветуете?

п.3 – понятно

 , , ,

futurama
()

sendmail перенаправление по адресату (From)

Промежуточный почтовик, т.е. почта проходящая (не локальная)

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

Все письма от sender@abc.org пересылать в appadmin@abc.org

Как?

 

futurama
()

rtsp прокси с регулируемой задержкой (буфером)

Существует ли прокси или что-то подобное, чтобы с одной стороны подключалось к rtsp:// камере, читало бы поток в RAM буфер, а с другой при подключении к нему клиента выдавало бы поток с задержкой на 10 сек (настраиваемое в зависимости от размера буфера)?

Т.е. клиент всегда бы получал видео из «прошлого».

 , ,

futurama
()

сделать/заказать веб-сайт. что? где? когда?

Нужен отосительно простой сайт:

1. до 10 статических страниц, картинки, текст, сверху меню выбора
2. страница а-ля магазин для оформления заказа (набрать в корзину товары/услуги), т.е. будет задействована база данных (маленькая) товаров (данные о товаре) и клиентов (данные о клиенте)
3. Смена языка сайта со всем содержимым.
4. Мобильная версия.
5. Современный вид (ну хотя бы не привет из прошлого века)

Выбор:

1. Делать самому без движка: (долго, т.к. я этим не занимаюсь регулярно)
2. использовать движок: (долго, хотя может есть легкие в освоении движки. какие?)
3. закзать: что мне надо знать для заказа и сколько потребуется сил для создания макета или что требуется нынче веб-разработчику.

 , ,

futurama
()

Почему такая стандартная операция получается такой сложной?

Подозреваю что я делаю что-то не так

Входные данные: fs=/usr size_in_GB=8 (fs – это mountpoint, size_in_GB желаемый размер в ГБ)

По идее надо ресайзить LV модулем lvol, затем модулем filesystem ресайзить саму файловую систему

lvol:
  lv: ??? неизвестен, надо выковыривать из facts ???
  vg: ??? неизвестен, надо выковыривать из facts ???

дальше проще, но как быть с этими lv: и vg: ?

Получается проще из facts вытащить device=/dev/rootvg/lv_usr (как пример) и затем lvextend -L"{{sizeGB}}g" -r "{{device}}"

Но это как-то не по канону

Update: Сделал так пока

---
#
# usage: ansible-playbook linux_resize_fs.yaml -e 'fsmount=/usr fssize=5.5g'
#

- name: Resize fs on Linux
  hosts: all
  gather_facts: True
  tasks:

    - name: set vg and lv vars
     # double split /dev/mapper/VG-LV
     # 1. by '/' -- get VG-LV
     # 2. by '-' -- get VG and LV
      set_fact:
          vg: "{{ item.device.split('/').3.split('-').0 }}"
          lv: "{{ item.device.split('/').3.split('-').1 }}"
      when: item.mount == fsmount
      loop: "{{ ansible_mounts }}"


    - name: Resize up and do not try to shrink if size is lower
      lvol:
        vg: "{{ vg }}"
        lv: "{{ lv }}"
        size: "{{ fssize }}"
        shrink: no
        resizefs: yes

 , , ,

futurama
()

ansible aix_devices

решил исп. ansible в среде linux и AIX и сразу на AIX попал не странное поведение.

# cat dev_scan.yaml
  - name: Test devices on aix
    hosts: testserver
    gather_facts: no
    tasks:
       - name: Scan new devices
         aix_devices:
          #  force: yes
            state: available
# ansible-playbook -v dev_scan.yaml
Using /etc/ansible/ansible.cfg as config file

PLAY [Test devices on aix] ***************************************************************

TASK [Scan new devices] ******************************************************************
changed: [testserver] => {"changed": true, "msg": ""}

PLAY RECAP *******************************************************************************
testserver                : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

должен запуститься cfgmgr, но он «не срабатывает»

даже запустил вот такой «снифер»

cfgmgr появляется в процессах на «мгновение» и ничего не делает, хотя если запустить его из консоли он работае почти 1 сек и этот «снифер» выдал бы сотню другую строк.

[root@testserver /] # while :; do ps -ef | grep '[c]fgmgr'; done

    root  8323440 13894080  10 22:18:45  pts/1  0:00 /usr/sbin/cfgmgr

Кто виноват и что делать?

ЗЫ: через модуль command не проблема запустить cfgmgr, но хотелось бы без костылей раз уж есть модули для AIX

AIX 7.2 on POWER9

ansible 2.9

 ,

futurama
()

postfix local domain masquerade

я в смятении, понадобилось сделать в postfix банальную вещь, маскировать домен исходящих адресов

так это делают в sendmail

MASQUERADE_AS(`mydomain.ru')dnl
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl
MASQUERADE_DOMAIN(myhostname.localdomain)dnl
MASQUERADE_DOMAIN(myhostname.mydomain.ru)dnl

в postfix предлагают http://www.postfix.org/postconf.5.html#smtp_generic_maps и http://www.postfix.org/postconf.5.html#masquerade_domains

не осилил в общем. Помогите кто чем может, пожалуйста.

 ,

futurama
()

Сенсация в мире UNIX! Обнаружена ситуация где исп. «sudo su -» необходима!!!

AIX 7.1

Не работает!
user$ sudo cfgmgr


Не работает!
user$ sudo -i
root# cfgmgr

Так работает!
user$ sudo su -
root# cfgmgr

Теперь и вы знаете ответ на вопрос «зачем sudo su -»?

 ,

futurama
()

snmptt — срабатывают сразу два правила

Вопрос почему срабатывают оба правила, что не так с MATCH ?

snmptt.conf

EVENT eccGatewayEventTrap .1.3.6.1.4.1.1139.3.0.4 "eccGatewayEventTrap" Normal
FORMAT eccGatewayEventTrap, host=$r, severity=$s , val1=$1, val4=$4, val5=$5
MATCH MODE=and
MATCH $5: > 5
MATCH $4: !(Service Processor could not complete a call for service|Device configuration has changed)
EXEC /usr/lib/nagios/plugins/submit_check_result "$r" "snmp_traps" 0 "$4"
SDESC
        Normal
EDESC
#
#
#
EVENT eccGatewayEventTrap .1.3.6.1.4.1.1139.3.0.4 "eccGatewayEventTrap" Critical
FORMAT eccGatewayEventTrap, host=$r, severity=$s , val1=$1, val4=$4, val5=$5
MATCH MODE=and
MATCH $5: < 6
MATCH $4: !(Service Processor could not complete a call for service|Device configuration has changed)
EXEC /usr/lib/nagios/plugins/submit_check_result "$r" "snmp_traps" 2 "$4"
SDESC
        Critical
EDESC

snmptt.log

Wed Jun 14 13:09:37 2017 .1.3.6.1.4.1.1139.3.0.4 Normal "eccGatewayEventTrap" lnx280 - eccGatewayEventTrap, host=lnx280, severity=Normal , val1=977, val4=Symmetrix 000296700895 : Disk state is now Online (was: Offline). - Object is: ... , val5=8

Wed Jun 14 13:09:37 2017 .1.3.6.1.4.1.1139.3.0.4 Critical "eccGatewayEventTrap" lnx280 - eccGatewayEventTrap, host=lnx280, severity=Critical , val1=977, val4=Symmetrix 000296700895 : Disk state is now Online (was: Offline). - Object is ... , val5=8

 ,

futurama
()

помогите опознать чип

https://s24.postimg.org/8q6ba29s5/IMG_20170121_130205.jpg

надпись на чипе

CHMC S39
D6208

Система завязана на линукс, так что, надеюсь, не оффтоп.

 ,

futurama
()

Debian: chroot не работает с ядром 4.8

Debian stable, ядро 4.7 (4.7.8-1~bpo8+1) из backports, chroot работает

[host]# chroot /chroot_env /bin/bash
[in_chroot] # 

Тот же Debian stable, ядро 4.8 (4.8.11-1~bpo8+1) из backports, chroot НЕ работает

[host]# chroot /chroot_env /bin/bash
Segmentation fault
[host]# chroot /chroot_env /bin/dash  --- (dash работает)
[in_chroot] # bash
Segmentation fault
[in_chroot] # tcsh
Segmentation fault
[in_chroot] # ldd
Segmentation fault

selinux'a нет.

Что изменилось такого в 4.8? Что делать, кроме отката на 4.7?

 ,

futurama
()

RSS подписка на новые темы