рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдкреБрдВрдЯреЛ рд╕реНрд╡рд┐рдЪрд░: xswitcher

Xneur рд╕рдорд░реНрдерди рдХреА рд╕рдорд╛рдкреНрддрд┐ рдиреЗ рдореБрдЭреЗ рдкрд┐рдЫрд▓реЗ рдЫрд╣ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдХреБрдЫ рдХрд╖реНрдЯреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ (OpenSUSE 15.1 рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде рдореЗрд░реА рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░: рдЬрдм xneur рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡рд┐рдВрдбреЛрдЬрд╝ рдлрд╝реЛрдХрд╕ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдХреАрдмреЛрд░реНрдб рдЗрдирдкреБрдЯ рдмреАрдЯ рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдлрд╝реНрд▓рд┐рдХрд░ рдХрд░рддреЗ рд╣реИрдВ) ред

"рдЖрд╣, рдпрд╣ рд▓рд╛рдирдд рд╣реИ, рдореИрдВ рдлрд┐рд░ рд╕реЗ рдЧрд▓рдд рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛" - рдпрд╣ рдЕрдХреНрд╕рд░ рдореЗрд░реЗ рдХрд╛рдо рдореЗрдВ рдЕрд╢реНрд▓реАрд▓ рд╣реИред рдФрд░ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред


рдЙрд╕реА рд╕рдордп, рдореИрдВ (рдПрдХ рдбрд┐рдЬрд╛рдЗрди рдЗрдВрдЬреАрдирд┐рдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ) рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ (рдкрд╣рд▓реЗ рдкреБрдВрдЯреЛ рд╕реНрд╡рд┐рдЪрд░ рд╕реЗ, рдФрд░ рдлрд┐рд░, рд╡рд┐рдВрдбреЛрдЬ рд╡рд┐рд╕реНрдЯрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЕрдВрдд рдореЗрдВ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдкреНрд░рддрд┐рдХреГрддрд┐, xneur рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдПрдХред рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рд╕реНрдХреНрд░реАрди рдкрд░ рдмрдХрд╡рд╛рд╕ рдЙрд╕ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдирд╣реАрдВ рд╣реИ (рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдирдП рд╢рдмреНрдж рд╕реЗрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ), "рдкреЙрдЬ / рдмреНрд░реЗрдХ" рдкрд░ рд╕реНрдЯреЙрдореНрдк рдХрд░реЗрдВред рдФрд░ рдЬреЛ рдореИрдВрдиреЗ рдЫрд╛рдкрд╛, рд╡рд╣ рдкрд╛рдУред

рдлрд┐рд▓рд╣рд╛рд▓, рдЙрддреНрдкрд╛рдж рдореЗрдВ рдПрдХ рдЗрд╖реНрдЯрддрдо (рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ) рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ / рдЬрдЯрд┐рд▓рддрд╛ рдЕрдиреБрдкрд╛рдд рд╣реИред рдпрд╣ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

TL.DR


рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ - рдЕрдзреАрд░ рдХреЗ рд▓рд┐рдП рдПрдХ "рд╕реНрдкрд░реНрд╢" рд▓рд┐рдВрдХ ред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рдореНрди рд╡реНрдпрд╡рд╣рд╛рд░ рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  • "рд░реЛрдХреЗрдВ / рддреЛрдбрд╝реЗрдВ": рдЕрдВрддрд┐рдо рд╢рдмреНрдж рдХреЛ рдмреИрдХрд╕реНрдкреЗрд╕ рджреЗрдВ, рд▓реЗрдЖрдЙрдЯ рдХреЛ рд╕рдХреНрд░рд┐рдп рд╡рд┐рдВрдбреЛ (0 рдФрд░ 1 рдХреЗ рдмреАрдЪ) рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЯрд╛рдЗрдк рдХрд░реЗрдВред
  • рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рд▓реЗрдлреНрдЯ Ctrl: рд╕рдХреНрд░рд┐рдп рд╡рд┐рдВрдбреЛ рдореЗрдВ рд▓реЗрдЖрдЙрдЯ рдХреЛ рдЯреЙрдЧрд▓ рдХрд░рддрд╛ рд╣реИ (0 рдФрд░ 1 рдХреЗ рдмреАрдЪ)ред
  • "рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рд▓реЗрдлреНрдЯ рд╢рд┐рдлреНрдЯ": рд╕рдХреНрд░рд┐рдп рд╡рд┐рдВрдбреЛ рдореЗрдВ рд▓реЗрдЖрдЙрдЯ 0 рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реИред
  • "рд░рд╛рдЗрдЯ рд╢рд┐рдлреНрдЯ рд╡рд┐рджрд╛рдЙрдЯ рдирдерд┐рдВрдЧ": рд╕рдХреНрд░рд┐рдп рд╡рд┐рдВрдбреЛ рдореЗрдВ рд▓реЗрдЖрдЙрдЯ рдирдВрдмрд░ 1 рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реИред

рдЕрдм рд╕реЗ, рдореИрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд┐рдирд╛, рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ (рдореИрдВ рд╡реИрд╕реЗ рднреА рдЦреБрд╢ рд╣реВрдВ) рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╣реИрдмреЗ рдкрд░ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╡рд╛рд▓реЗ рджрд░реНрд╢рдХреЛрдВ рдХрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рддрд┐рд╢рдд рд╣реЛрдЧрд╛ред

рдПрдирдмреА рдХреЗ рдмрд╛рдж рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдХреАрдЧрд▓рд░ рдХреЛ "/ dev / рдЗрдирдкреБрдЯ /" рд╕реЗ рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, xswitcher рдХреЛ рдореВрд▓ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:

chown root:root xswitcher
chmod +xs xswitcher

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ: suid рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕реНрд╡рд╛рдореА рд░реВрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдЬреЛ рдорд╛рд▓рд┐рдХ рд╣реИ рд╡рд╣ рд╕реБрд╕рд╛рдЗрдб рдХрд░ рд▓реЗрдЧрд╛ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдЪрд╛рд▓реВ рдХрд░ рджреЗрдЧрд╛ред

рдкреИрд░рд╛рдиреЙрдпрдб (рдореИрдВ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реВрдВ) рдЬреАрдЖрдИрдЯреА рд╕реЗ рдХреНрд▓реЛрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдореМрдХреЗ рдкрд░ рдЗрдХрдЯреНрдард╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдЬреИрд╕рд╛:

go get "github.com/micmonay/keybd_event"
go get "github.com/gvalkov/golang-evdev"

### X11 headers for OpenSUSE/deb-based
zypper install libX11-devel libXmu-devel
apt-get install libx11-dev libxmu-dev

cd "x switcher/src/"
go build -o xswitcher -ldflags "-s -w" --tags static_all src/*.go

рдСрдЯреЛрд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрд╡рд╛рдж рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рдбреАрдИ рдХреЗ рдЖрдзрд╛рд░ рдкрд░)ред

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, "рджрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдордд рдкреВрдЫреЛ" (рдкреНрд░рддрд┐ рджрд┐рди CPU30 рд╕реЗрдХрдВрдб рд╕реАрдкреАрдпреВ, рдЖрд░рдПрд╕рдПрд╕ рдореЗрдВ MB12 рдПрдордмреА)ред

рд╡рд┐рд╡рд░рдг


рдЕрдм рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдПред

рд╕рдВрдкреВрд░реНрдг рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореВрд▓ рд░реВрдк рд╕реЗ рдореЗрд░реА рдкрд╛рд▓рддреВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдереА, рдФрд░ рдПрдХ рдФрд░ рд╢реБрд░реВ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИред рддреЛ, рд╕рдм рдХреБрдЫ рдвреЗрд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ (рдХреЗрд╡рд▓ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдореЗрдВ) рдФрд░ рдПрдЬреАрдкреАрдПрд▓ ("рдкреЗрдЯреЗрдВрдЯ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд") рдХреЗ рд╕рд╛рде рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

Xswitcher рдХреЛрдб рдХреЛ Golang рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, C. рдХреА рдПрдХ рдиреНрдпреВрдирддрдо рдЫрдк рдХреЗ рд╕рд╛рдеред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрдо рд╕реЗ рдХрдо рдкреНрд░рдпрд╛рд╕ рджреЗрдЧрд╛ (рдЕрдм рддрдХ рдпрд╣ рд╣реИ)ред рдЬрдмрдХрд┐ рдХреЛрдЧреЛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдкрддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдмрдирд╛рдП рд░рдЦрдирд╛ред

рдХрдореЗрдВрдЯреНрд░реА рдХрд╛ рдкрд╛рда рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕реЗ рдЗрд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдХреНрдпреЛрдВред рдЪреВрдВрдХрд┐ xneur рдХреЛрдб "рдореБрдЭреЗ рдкреНрд░реЗрд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛", рд▓реЛрд▓реЛрд╕реНрд╡рд┐рдЪ рдиреЗ рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ ред

"/ рджреЗрд╡ / рдЗрдирдкреБрдЯ /" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдлрд╛рдпрджреЗ рд╣реИрдВ (рд╕рдм рдХреБрдЫ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдСрдЯреЛ-рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд╕рд╛рде рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рдХреБрдВрдЬреА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ), рдФрд░ рдорд┐рдиреНрдпреВрдЬрд╝ред рд╡рд┐рдкрдХреНрд╖ рд╣реИрдВ:

  • рдСрдЯреЛ-рд░рд┐рдкреАрдЯ (рдХреЛрдб "2" рдХреЗ рд╕рд╛рде рдИрд╡реЗрдВрдЯреНрд╕) рдПрдХреНрд╕ рдХреЗ рд╕рд╛рде рджреЛрд╣рд░рд╛рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред
  • рдЖрдк X11 рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрдирдкреБрдЯ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реАрдПрдирд╕реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред
  • рдПрдХ рдЬрдбрд╝ рдЪрд╛рд╣рд┐рдПред

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк "XSelectExtensionEvent ()" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕ рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк xinput рдХреЛрдб рдореЗрдВ рдЭрд╛рдВрдХ рд╕рдХрддреЗ рд╣реИрдВ ред рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛, рдФрд░ рдбреНрд░рд╛рдлреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдиреЗ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕реА-рдХреЛрдб рдХреА рд╕реМ рд▓рд╛рдЗрдиреЗрдВ рджреАрдВред рдЕрдм рддрдХ рдЕрд▓рдЧ рд╕реЗрдЯред

рд╡рд░реНрдЪреБрдЕрд▓ рдХреАрдмреЛрд░реНрдб рдХреЛ рд╕реНрдХреНрд░реВ рдХрд░рдХреЗ рдЕрдм рддрдХ рдХрд╛ "рдмреИрдХ" рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдЦрдХ рдХреАbd_event рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЕрдореВрд░реНрддрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдирд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рд╕рд╣реА рд╡рд┐рди-рдХреА рд╣реИ, рддреАрд╕рд░реА рдкрдВрдХреНрддрд┐ рдХрд╛ рдЪрдпрдиред рдФрд░ рдХреЗрд╡рд▓ рдмрд╛рдИрдВ рдЬреАрдд рдХреЛ рд╡рд╛рдкрд╕ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬреНрдЮрд╛рдд рдХреАрдбрд╝реЗ


  • рд╣рдореЗрдВ "рд╕рдордЧреНрд░" рдЗрдирдкреБрдЯ (рдЙрджрд╛рд╣рд░рдг:ред) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИред рдЕрднреА рдЗрд╕рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред
  • рд╣рдо рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╕рд╣реА рд╡рд┐рди рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд▓рд╣рдЬреЗ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред
  • рдЗрдирдкреБрдЯ рдХреА рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдХрдИ рдХрд╛рд░реНрдп рд╣реИрдВ: рддреБрд▓рдирд╛ (), CtrlSequence (), repeatSequence (), SpaceSequence ()ред рдзрдиреНрдпрд╡рд╛рджnsmcanрдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП: рдпрд╣рд╛рдБ рдХреЛрдб рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде, рдЖрдк рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдмрдЧ рдХреЛ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
    рдЗрд╕ рдЬрдЧрд╣ рдкрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ "рдХреИрд╕реЗ" рдФрд░ рдореИрдВ рдХрд┐рд╕реА рднреА рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рд░рд╣реВрдВрдЧрд╛ред
  • (рдУрд╣, рд╣реЙрд░рд░) рдЪреИрдирд▓реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдЙрдкрдпреЛрдЧ (рдХреАрдмреЛрд░реНрдбрд╡реНрдпреВрдПрдВрдЯреНрд╕, рдорд╛рдЗрд╕реЗрд╡реЗрдВрдЯреНрд╕)ред

рдирд┐рд╖реНрдХрд░реНрд╖


рдХреЛрдб рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд╣реИред рдФрд░ рдореЗрд░реА рддрд░рд╣ рдмреЗрд╡рдХреВрдлред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЗрд╕ рдЙрдореНрдореАрдж рдХреЗ рд╕рд╛рде рджрд┐рд▓рд╛рд╕рд╛ рджреЗ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд▓рдЧрднрдЧ рдХреЛрдИ рднреА рддрдХрдиреАрдХреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдЬреЛ рдЪрд╛рд╣реЗрдЧрд╛ рдЙрд╕реЗ рдкреВрд░рд╛ рдХрд░ рд╕рдХреЗрдЧрд╛ред рдФрд░ рдЗрд╕ рдЙрддреНрдкрд╛рдж рдХреА рд╡рдЬрд╣ рд╕реЗ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд░реНрдерди рдХреЗ рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ рд╕рд┐рд░реНрдл-рдордЬрд╛рдХ рдХреЗ рд▓рд┐рдПред

рд╕реМрднрд╛рдЧреНрдп

All Articles