рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ Haxe 4.2 рдХреЛ рд░рд┐рд▓реАрдЬ

Haxe 4.2 рдЯреВрд▓рдХрд┐рдЯрдХреЛ рдПрдХ рд░рд┐рд▓реАрдЬ рдЙрдкрд▓рдмреНрдз рдЫ, рдЬрд╕рдорд╛ рдмрд▓рд┐рдпреЛ рдЯрд╛рдЗрдкрд┐рдЩ, рдХреНрд░рд╕-рдХрдореНрдкрд╛рдЗрд▓рд░ рд░ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рд╕рд╛рде рд╕рдорд╛рди рдирд╛рдордХреЛ рдмрд╣реБ-рдкреНрд░рддрд┐рдорд╛рди рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫред рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓реЗ C++, HashLink/C, JavaScript, C#, Java, PHP, Python рд░ Lua рдорд╛ рдЕрдиреБрд╡рд╛рдж рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рд╕рд╛рдереИ JVM, HashLink/JIT, Flash рд░ Neko bytecode рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рд▓рдХреНрд╖рд┐рдд рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рдиреЗрдЯрд┐рдн рдХреНрд╖рдорддрд╛рд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪрдХреЛ рд╕рд╛рде рд╕рдВрдХрд▓рди рдЧрд░реНрджрдЫред рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЛрдб GPLv2 рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ, рд░ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд░ Haxe рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рдХрд╕рд┐рдд HashLink рд░ Neko рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВ MIT рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдЫрдиреНред

рднрд╛рд╖рд╛ рдХрдбрд╛ рдЯрд╛рдЗрдкрд┐рдЩрдХреЛ рд╕рд╛рде рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐-рдЙрдиреНрдореБрдЦ рдЫред рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ, рд╕рд╛рдорд╛рдиреНрдп рд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВ рд╕рдорд░реНрдерд┐рдд рдЫрдиреНред Haxe рдХреЛ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ ECMAScript рдХреЛ рдирдЬрд┐рдХ рдЫ рд░ рдпрд╕рд▓рд╛рдИ рд╕реНрдерд┐рд░ рдЯрд╛рдЗрдкрд┐рдЩ, рд╕реНрд╡рдд: рдкреНрд░рдХрд╛рд░ рдЕрдиреБрдорд╛рди, рдврд╛рдБрдЪрд╛ рдорд┐рд▓рд╛рди, рдЬреЗрдиреЗрд░рд┐рдХ, рд▓реВрдк рдХреЛ рд▓рд╛рдЧреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдЖрдзрд╛рд░рд┐рдд, AST рдореНрдпрд╛рдХреНрд░реЛ, GADT (рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдмреАрдЬрдЧрдгрд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░), рд╕рд╛рд░ рдкреНрд░рдХрд╛рд░, рдмреЗрдирд╛рдореА рд╕рдВрд░рдЪрдирд╛, рд╕рд┐рдордкреНрд▓рд╕ рдЬрд╕реНрддрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрджрдЫред рдкрд░рд┐рднрд╛рд╖рд╛ рдПрд░реЗрд╣рд░реВ, рд╕рд╢рд░реНрдд рд╕рдВрдХрд▓рдирдХрд╛ рд▓рд╛рдЧрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ, рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдорд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╕рдВрд▓рдЧреНрди рдЧрд░реНрджреИ, рд╡рд░реНрдЧрд╣рд░реВ рд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ, рд╕реНрдЯреНрд░рд┐рдЩ рдЗрдиреНрдЯрд░рдкреЛрд▓реЗрд╕рди ('рдореЗрд░реЛ рдирд╛рдо $рдиреЗрдо рд╣реЛ'), рдкреНрд░рдХрд╛рд░ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ ('рдирдпрд╛рдБ рдореБрдЦреНрдп) ("foo")') рд░ рдЕрдиреНрдп рдзреЗрд░реИред рдХрдХреНрд╖рд╛ рдкрд░реАрдХреНрд╖рдг { рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд░реНрдп рдореБрдЦреНрдп () { рдЕрдиреНрддрд┐рдо рд╡реНрдпрдХреНрддрд┐ = [ "рдПрд▓рд┐рдЬрд╛рдмреЗрде" => "рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ", "рдЬреЛрдПрд▓" => "рдбрд┐рдЬрд╛рдЗрди"]; рдХреЛ рд▓рд╛рдЧреА (рдирд╛рдо => рдорд╛рдирд┐рд╕рд╣рд░реБ рдорд╛ рдХрд╛рдо) { рдЯреНрд░реЗрд╕ ('$ рдирд╛рдорд▓реЗ $ рдХрд╛рдо рдПрдХ рдЬреАрд╡рдирдХреЛ рд▓рд╛рдЧрд┐ рдЧрд░реНрдЫ!'); } } }

рд╕рдВрд╕реНрдХрд░рдг рез.реп.реж рдорд╛ рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ:

  • рдореЛрдбреНрдпреБрд▓ рд╕реНрддрд░рдорд╛ рд╕реНрдерд┐рд░ рдЪрд░ рд░ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдШреЛрд╖рдгрд╛ рдЧрд░реНрджреИ, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрдХреНрд╖рд╛рдорд╛ рдмреЗрд░реНрдиреБ рдкрд░реНрджреИрдиред
  • "рдХреНрд▓рд╛рд╕рд┐рдХ" рд╕рд╛рд░ рд╡рд░реНрдЧ рд░ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердиред
  • рд╕рдмреИ рд▓рдХреНрд╖рд┐рдд рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВ (haxe.Rest) рд░ рддрд░реНрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдЕрдкрд░реЗрдЯрд░ "f(...array)" рдХреЛ рдердкрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдиреЗрдЯрд┐рдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред
  • рд╡реНрдпрдХреНрддрд┐рдЧрдд рдереНрд░реЗрдбрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдШрдЯрдирд╛ рд▓реБрдкрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди ("sys.thread.Thread.events")ред
  • "@: inheritDoc" рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЗрдирд╣реЗрд░рд┐рдЯрд┐рдЩ рдкреНрд░рдХрд╛рд░/рдлрд┐рд▓реНрдб рдХрд╛рдЧрдЬрд╛рддрдХрд╛ рд▓рд╛рдЧрд┐ред
  • рд╕рдмреИ рд▓рдХреНрд╖рд┐рдд рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдорд╛ рдмрд╛рд╣реНрдп рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рдзрд┐ рдУрднрд░рд▓реЛрдбрд┐рдЩ рд╕рдорд░реНрдердиред
  • "@:forward.new" рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпрд╕рдХреЛ рдкреНрд░рдХрд╛рд░ рдЕрдиреНрддрд░реНрдирд┐рд╣рд┐рдд рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рд▓рд╛рдИ рд╕рд╛рд░рдорд╛ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реНрджреИред
  • "haxe.macro.Expr" рдорд╛ "EIs" рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдердкрд┐рдпреЛред
  • "@:forward.variance" рдХреЛ рд╕рд╛рде рдПрдХ рдЕрдореВрд░реНрдд рдкреНрд░рдХрд╛рд░ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдЙрди рд╕рдХреНрдиреЗ рдХреНрд╖рдорддрд╛ред
  • рднрд┐рдиреНрдирддрд╛ рдПрдХреАрдХреГрдд рдЧрд░реНрджрд╛ "рдХреБрдиреИ рдкрдирд┐" рдкреНрд░рдХрд╛рд░рдХреЛ "рдЧрддрд┐рд╢реАрд▓" рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ред
  • "haxe.exceptions" рдкреНрдпрд╛рдХреЗрдЬрдорд╛ рдХреЗрд╣реА рдЖрдзрд╛рд░рднреВрдд рдЕрдкрд╡рд╛рдж рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдердкрд┐рдпреЛред
  • рдЪрд░ рдШреЛрд╖рдгрд╛ рдЧрд░реНрджрд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╕рдВрд▓рдЧреНрди рдЧрд░реНрди рд╕рдорд░реНрдердиред
  • рдкреНрд░рдХрд╛рд░реНрдп "StringTools.unsafeCharAt" рд╕реНрдЯреНрд░рд┐рдЩ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдпреЛред
  • eval (Interpreter): рдкреНрдпрд╛рдХреЗрдЬ "eval.luv" рдорд╛ "libuv" рдорд╛ рдмрд╛рдЗрдиреНрдбрд┐рдЩрд╣рд░реВ рдердкрд┐рдпреЛред
  • eval: "eval.integers" рдкреНрдпрд╛рдХреЗрдЬ рдорд╛рд░реНрдлрдд "Int64" рд░ "UInt64" рдХреЛ рдиреЗрдЯрд┐рдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛ рдмрд╛рдЗрдиреНрдбрд┐рдЩред
  • cs: UDP рд╕рдХреЗрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред
  • cs: C# рдХреЛрдбрдХреЛ рдЗрдирд▓рд╛рдЗрди рдЗрдиреНрд╕рд░реНрд╕рдирдХрд╛ рд▓рд╛рдЧрд┐ "cs.Syntax" рдореЛрдбреНрдпреБрд▓ред
  • jvm: "-D jvm.dynamic-level=x" рдЭрдгреНрдбрд╛ рдердкрд┐рдпреЛ рдбрд╛рдпрдирд╛рдорд┐рдХ рдХреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рдЙрддреНрдкрдиреНрди рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрдиред 0 = рдХреБрдиреИ рдкрдирд┐ рдЫреИрди, 1 = рдХреНрд╖реЗрддреНрд░ рдкрдвреНрди/рд▓реЗрдЦрди рдЕрдиреБрдХреВрд▓рди, 2 = рдХрдореНрдкрд╛рдЗрд▓ рд╕рдордпрдорд╛ рд╡рд┐рдзрд┐ рдмрдиреНрджред
  • java, jvm: "--java-lib <directory>" рдлреНрд▓реНрдпрд╛рдЧрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердиред
  • python: рдереНрд░реЗрдбрд┐рдЩ API рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред

рд╕рд╛рдорд╛рдиреНрдп рд╕реБрдзрд╛рд░рд╣рд░реВ:

  • "expr is SomeType" рд▓рд╛рдИ рдХреЛрд╖реНрдардХрдорд╛ рд░реНтАНрдпрд╛рдкрд┐рдЩ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред
  • "@:рдкреНрд░рдпреЛрдЧ" рдкреНрд░рдХрд╛рд░рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдмрдврд╛рдЗрдПрдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ред
  • "рд╕реБрдкрд░" рдорд╛рд░реНрдлрдд рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд░ рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
  • "@:noDoc" рдлрд┐рд▓реНрдбрд╣рд░реВрдорд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╕реЗрдЯ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ред
  • рд╕рд╛рд░ рдкреНрд░рдХрд╛рд░ "рдирдХреНрд╕рд╛" рдЯреНрд░рд╛рдиреНрдЬрд┐рдЯрд┐рдн рдмрдирд╛рдЗрдПрдХреЛ рдЫред
  • enum рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рд╣рд░реВрдорд╛ "@:native" рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердиред
  • рдкреНрд░рдХрд╛рд░ рдШреЛрд╖рдгрд╛рд╣рд░реВ ("typedefs") рдорд╛ "@:using" рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердиред
  • рдмрд╣реБрд▓рд╛рдЗрди рддреНрд░реБрдЯрд┐рд╣рд░реВрд▓реЗ "..." рдкрдЫрд┐рдХрд╛ рд░реЗрдЦрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд╕рд░реНрдЧрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред
  • рдкреНрд░рдХрд╛рд░ рдЕрдиреБрдорд╛рди рдкреБрди: рдХрд╛рдо рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЕрдЬреНрдЮрд╛рдд рд╕рдВрд░рдЪрдирд╛рд╣рд░реВрд▓рд╛рдИ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рдХрд╛рд░рд╣рд░реВрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░рд┐рдиреНрдЫ рд░ рдкреНрд░рдХрд╛рд░реНрдп рдкреВрд░рд╛ рднрдПрдкрдЫрд┐ "рдмрдиреНрдж" рд╣реБрдиреНрдЫред
  • "Void->..." рдХреЛ рд╕рдЯреНрдЯрд╛ "()->..." рдХреЛ рд░реВрдкрдорд╛ рддрд░реНрдХ рдмрд┐рдирд╛ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдкреНрд░рдХрд╛рд░ рдЕрдиреБрдорд╛рди рдЧрд░реНрджреИред
  • "рдкреНрд░рдХрд╛рд░реНрдп" рдХреБрдЮреНрдЬреА рд╢рдмреНрджрд▓рд╛рдИ рдкреНрдпрд╛рдХреЗрдЬ рдирд╛рдордХреЛ рд░реВрдкрдорд╛ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдЫред
  • рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛред
  • cs: .NET 5.0 рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред
  • cpp: рдмрд╛рд╣реНрдп рдХрдХреНрд╖рд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдиреЗрдЯрд┐рдн рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердиред
  • php: рдиреЗрдЯрд┐рдн рдПрд░реЗ рдШреЛрд╖рдгрд╛ рдЧрд░реНрди "php.Syntax.customArrayDecl" рдердкрд┐рдпреЛред
  • php: рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реНрдп рд░ рдХрдХреНрд╖рд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдмрд╛рд╣реНрдп рд╡рд┐рдзрд┐рд╣рд░реВ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдпреЛред
  • php: рдмреЗрдирд╛рдореА рд╕рдВрд░рдЪрдирд╛рд╣рд░реВрдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред
  • hl: рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдорд╛ рдХреБрдиреИ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЫреИрдирдиреН рднрдиреЗ рд╕рдВрдХрд▓рди рдЫреЛрдбреНрдиреБрд╣реЛрд╕реНред
  • lua: json рдкрд╛рд░реНрд╕ рдЧрд░реНрди "hx-lua-simdjson" рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИред
  • jvm: "sys.thread.Lock" рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛ CPU рд▓реЛрдб рдШрдЯрд╛рдЗрдПрдХреЛ рдЫред
  • js: рдЧреБрдЧрд▓ рдХреНрд▓реЛрдЬрд░ рдХрдореНрдкрд╛рдЗрд▓рд░рд╕рдБрдЧ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рдЕрдиреБрдХреВрд▓рддрд╛ред
  • рд╢реВрдиреНрдп рд╕реБрд░рдХреНрд╖рд╛: рдЪрд░ рдШреЛрд╖рдгрд╛ рдЧрд░реНрджрд╛ "@:nullSafety(Off)" рд▓рд╛рдИ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН: "var @:nullSafety(Off) v"ред

рд╕рд╛рдереИ, VSCode рд╕рдореНрдкрд╛рджрдХрдХреЛ рдердкрд▓рд╛рдИ рдХрдореНрдкрд╛рдЗрд▓рд░рдХреЛ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рдорд╛ рд╕рдВрдХреЗрддрд╣рд░реВ рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ, рд╕рд░рд▓ рд░ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧрд╣рд░реВ, рд╕рд╛рдереИ рд╕рдореНрдкрддреНрддрд┐ рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рд╣рд░рд╛рдПрдХреЛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдХреЛ рдЙрддреНрдкрд╛рджрдирдХреЛ рд╕рд╛рде рджреЗрдЦрд╛ рдкрд░реЗрдХрд╛ рдЫрдиреНред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди