рдЬрд╛рд╡рд╛ рдПрд╕рдИ 20 рд░рд┐рд▓реАрдЬ

рдЫрд╣ рдорд╣реАрдиреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рдж, Oracle рдиреЗ Java SE 20 (Java Platform, Standard Edition 20) рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЬрд╛рд░реА рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ OpenJDK рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рд╕рдВрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рдмрд╣рд┐рд╖реНрдХреГрдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде, рдЬрд╛рд╡рд╛ рдПрд╕рдИ 20 рдЬрд╛рд╡рд╛ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рдкрд┐рдЫрд▓реЗ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ-рдкрд╣рд▓реЗ рд▓рд┐рдЦреЗ рдЧрдП рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрднреА рднреА рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рддрд╣рдд рдЪрд▓рдиреЗ рдкрд░ рд╕рдВрд╢реЛрдзрди рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред Linux (x20_86, AArch64), Windows (x64_86), рдФрд░ macOS (x64_86, AArch64) рдХреЗ рд▓рд┐рдП Java SE 64 (JDK, JRE, рдФрд░ Server JRE) рдХреЗ рдЗрдВрд╕реНрдЯрд╛рд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрд┐рд▓реНрдб рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдУрдкрдирдЬреЗрдбреАрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд, рдЬрд╛рд╡рд╛ 20 рд╕рдВрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреАрдкреАрдПрд▓рд╡реА2 рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рдЬреАрдПрдирдпреВ рдХреНрд▓рд╛рд╕рдкрд╛рде рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдЧрддрд┐рд╢реАрд▓ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╣реИред

Java SE 20 рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рдкреЛрд░реНрдЯ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдбреЗрдЯ рдЬрд╛рд░реА рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рджреАрд░реНрдШрд╛рд╡рдзрд┐ рд╕рдорд░реНрдерди (рдПрд▓рдЯреАрдПрд╕) рд╢рд╛рдЦрд╛ рдЬрд╛рд╡рд╛ рдПрд╕рдИ 17 рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ 2029 рддрдХ рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧреАред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЬрд╛рд╡рд╛ 10 рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдХрд░, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рдирдИ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдмрджрд▓ рдЧрдИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдирдИ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдЧрдарди рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдЪрдХреНрд░ред рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрдм рдПрдХ рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реНрдг рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдФрд░ рдирдИ рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рд╕реНрдерд┐рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдЫрд╣ рдорд╣реАрдиреЗ рдореЗрдВ рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рд╢рд╛рдЦрд╛рдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрд╛рд╡рд╛ 20 рдореЗрдВ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • рд╕реНрдХреЛрдкреНрдб рд╡реИрд▓реНрдпреВрдЬрд╝ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдорд░реНрдерди рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдбреЗрдЯрд╛ рдХреЛ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЪрд╛рдЗрд▓реНрдб рдереНрд░реЗрдбреНрд╕ рдХреЗ рдмреАрдЪ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдорд╛рди рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╣реИрдВ)ред рдереНрд░реЗрдб-рд╕реНрдерд╛рдиреАрдп рдЪрд░ рддрдВрддреНрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреЛрдкреНрдб рдорд╛рди рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдереНрд░реЗрдб (рд╣рдЬрд╛рд░реЛрдВ рдпрд╛ рд▓рд╛рдЦреЛрдВ рдереНрд░реЗрдб) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛрддреЗ рд╣реИрдВред рд╕реНрдХреЛрдкреНрдб рд╡реИрд▓реНрдпреВ рдФрд░ рдереНрд░реЗрдб-рд▓реЛрдХрд▓ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рдмреАрдЪ рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдкреВрд░реНрд╡ рдХреЛ рдПрдХ рдмрд╛рд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдереНрд░реЗрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд░рд╣рддрд╛ рд╣реИред рдХреНрд▓рд╛рд╕ рд╕рд░реНрд╡рд░ {рдЕрдВрддрд┐рдо рд╕реНрдерд┐рд░ рд╕реНрдХреЛрдкреНрдбрд╡реИрд▓реНрдпреВ CURRENT_USER = рдирдпрд╛ рд╕реНрдХреЛрдкреНрдбрд╡реИрд▓реНрдпреВ(); рд╢реВрдиреНрдп рд╕реЗрд╡рд╛ (рдЕрдиреБрд░реЛрдз рдЕрдиреБрд░реЛрдз, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛) { var рд╕реНрддрд░ = (рдЕрдиреБрд░реЛрдзред рдкреНрд░рд╛рдзрд┐рдХреГрдд рд╣реИ()? рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ: рдЕрддрд┐рдерд┐); var рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ = рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рд╕реНрддрд░); scopedValue.where(CURRENT_USER, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛).run(() -> рдПрдкреНрд▓рд┐рдХреЗрд╢рди.рд╣реИрдВрдбрд▓(рдЕрдиреБрд░реЛрдз, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛)); } } рд╡рд░реНрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рдмрдВрдзрдХ { DBConnection open() { var рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ = Server.CURRENT_USER.get(); рдпрджрд┐ (!user.canOpen()) рдирдпрд╛ InvalidUserException() рдлреЗрдВрдХреЗрдВ; рдирдпрд╛ DBConnection рд▓реМрдЯрд╛рдПрдВ(...); } }
  • рд░рд┐рдХреЙрд░реНрдб рдкреИрдЯрд░реНрди рдХрд╛ рджреВрд╕рд░рд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд░рд┐рдХреЙрд░реНрдб рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ 16 рдореЗрдВ рд╢реБрд░реВ рдХреА рдЧрдИ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рд░рд┐рдХреЙрд░реНрдб рдкреЙрдЗрдВрдЯ (int x, int y) {} рд╕реНрдЯреЗрдЯрд┐рдХ рд╡реЙрдпрдб рдкреНрд░рд┐рдВрдЯрд╕рдо (рдСрдмреНрдЬреЗрдХреНрдЯ obj) { if (obj рдЗрдВрд╕реНрдЯреЗрдВрд╕рдСрдл рдкреЙрдЗрдВрдЯ p) { int x = px(); int y = py(); System.out.println(x+y); } }
  • "рд╕реНрд╡рд┐рдЪ" рдХрдердиреЛрдВ рдореЗрдВ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рдХрд╛ рдЪреМрдерд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ "рдХреЗрд╕" рд▓реЗрдмрд▓ рдХреЛ рд╕рдЯреАрдХ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рдЪреАрд▓реЗ рдкреИрдЯрд░реНрди рдЬреЛ рдПрдХ рд╕рд╛рде рдореВрд▓реНрдпреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдХрд╡рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдмреЛрдЭрд┐рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ "рдпрджрд┐...рдЕрдиреНрдпрдерд╛" рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рд╢реГрдВрдЦрд▓рд╛рдПрдБред рд╕реНрдЯреЗрдЯрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлреЙрд░реНрдореЗрдЯрд░рдкреИрдЯрд░реНрдирд╕реНрд╡рд┐рдЪ(рдСрдмреНрдЬреЗрдХреНрдЯ рдУрдмреАрдЬреЗ) { рд░рд┐рдЯрд░реНрди рд╕реНрд╡рд┐рдЪ (рдУрдмреАрдЬреЗ) {рдХреЗрд╕ рдЗрдВрдЯреАрдЬрд░ рдЖрдИ -> рд╕реНрдЯреНрд░рд┐рдВрдЧ.рдлреЙрд░реНрдореЗрдЯ("рдЗрдВрдЯ %рдбреА", рдЖрдИ); рдХреЗрд╕ рд▓реЙрдиреНрдЧ рдПрд▓ -> рд╕реНрдЯреНрд░рд┐рдВрдЧ.рдлреЙрд░реНрдореЗрдЯ ("рд▓реЙрдиреНрдЧ %d", рдПрд▓); рдХреЗрд╕ рдбрдмрд▓ рдбреА -> рд╕реНрдЯреНрд░рд┐рдВрдЧ.рдлреЙрд░реНрдореЗрдЯ ("рдбрдмрд▓% рдПрдл", рдбреА); рдХреЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрд╕ -> рд╕реНрдЯреНрд░рд┐рдВрдЧ.рдлреЙрд░реНрдореЗрдЯ ("рд╕реНрдЯреНрд░рд┐рдВрдЧ %s", рдПрд╕); рдбрд┐рдлрд╝реЙрд▓реНрдЯ -> o.toString(); }; }
  • рдПрдлрдПрдлрдПрдо (рдлреЙрд░реЗрди рдлрдВрдХреНрд╢рди рдПрдВрдб рдореЗрдореЛрд░реА) рдПрдкреАрдЖрдИ рдХрд╛ рджреВрд╕рд░рд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдХреЙрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдЬреЗрд╡реАрдПрдо рдХреЗ рдмрд╛рд╣рд░ рдореЗрдореЛрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░реА рдХреЛрдб рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рдмрд╛рддрдЪреАрдд рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  • рд╡рд░реНрдЪреБрдЕрд▓ рдереНрд░реЗрдбреНрд╕ рдХрд╛ рджреВрд╕рд░рд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд╣рд▓реНрдХреЗ рдереНрд░реЗрдбреНрд╕ рд╣реИрдВ рдЬреЛ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рд▓реЗ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛рддреЗ рд╣реИрдВред
  • рд╕рдВрд░рдЪрд┐рдд рд╕рдорд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рджреВрд╕рд░рд╛ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдПрдкреАрдЖрдИ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдереНрд░реЗрдб рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рд╣реА рдмреНрд▓реЙрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдХрд░ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред
  • рд╡реЗрдХреНрдЯрд░ рдПрдкреАрдЖрдИ рдХрд╛ рдкрд╛рдВрдЪрд╡рд╛рдВ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд╡реЗрдХреНрдЯрд░ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ x86_64 рдФрд░ AArch64 рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рд╡реЗрдХреНрдЯрд░ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдХрдИ рдорд╛рдиреЛрдВ (SIMD) рдкрд░ рдПрдХ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕реНрдХреЗрд▓рд░ рдСрдкрд░реЗрд╢рдВрд╕ рдХреЗ рдСрдЯреЛ-рд╡реЗрдХреНрдЯрд░рд╛рдЗрдЬреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╣реЙрдЯрд╕реНрдкреЙрдЯ рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдирдпрд╛ рдПрдкреАрдЖрдИ рд╕рдорд╛рдирд╛рдВрддрд░ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡реЗрдХреНрдЯрд░рд╛рдЗрдЬреЗрд╢рди рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ