เบเบฒเบ™เบ›เปˆเบญเบเป‚เบ›เปเบเบกเบžเบฒเบชเบฒ Haxe 4.2

เบกเบตเบเบฒเบ™เบ›เปˆเบญเบเบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบท Haxe 4.2, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบกเบตเบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบฅเบฐเบ”เบฑเบšเบชเบนเบ‡เบซเบผเบฒเบเบฎเบนเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบžเบดเบกเบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡, เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบ‚เป‰เบฒเบกเปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ. เป‚เบ„เบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เปเบ›เบžเบฒเบชเบฒเป€เบ›เบฑเบ™ C ++, HashLink / C, JavaScript, C#, Java, PHP, Python เปเบฅเบฐ Lua, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบเบฑเบš JVM, HashLink / JIT, Flash เปเบฅเบฐ Neko bytecode, เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เบฅเบฐเบซเบฑเบ” compiler เป„เบ”เป‰เบ–เบทเบเปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” GPLv2, เปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡ virtual HashLink เปเบฅเบฐ Neko เบ—เบตเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเปเบฒเบฅเบฑเบš Haxe เปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเบญเบฐเบ™เบธเบเบฒเบ”เบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” MIT.

เบžเบฒเบชเบฒเปเบกเปˆเบ™เป€เบ™เบฑเป‰เบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ”เป‰เบงเบเบเบฒเบ™เบžเบดเบกเบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡. เป€เบ•เบฑเบเบ™เบดเบเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบšเบšเปเบ™เปƒเบชเปˆเบงเบฑเบ”เบ–เบธ, เบ—เบปเปˆเบงเป„เบ› เปเบฅเบฐเปƒเบŠเป‰เป„เบ”เป‰เปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเปœเบฑเบšเบชเบฐเปœเบนเบ™. syntax เบ‚เบญเบ‡ Haxe เปเบกเปˆเบ™เบขเบนเปˆเปƒเบเป‰เบเบฑเบš ECMAScript เปเบฅเบฐเบ‚เบฐเบซเบเบฒเบเบกเบฑเบ™เบ”เป‰เบงเบเบฅเบฑเบเบชเบฐเบ™เบฐเบ•เปˆเบฒเบ‡เป†เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบžเบดเบกเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ, เบ›เบฐเป€เบžเบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” inference, เบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบš, generics, iterator-based for loops, AST macros, GADT (Generalized Algebraic Data Types), เบ›เบฐเป€เบžเบ”เบšเปเปˆเบกเบตเบ•เบปเบงเบ•เบปเบ™, เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบ›เบตเบ”เป€เบœเบตเบเบŠเบทเปˆ, เบ‡เปˆเบฒเบเบ”เบฒเบ. เบ„เปเบฒเบ™เบดเบเบฒเบก arrays, expressions เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ compilation เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚, เบเบฒเบ™เปเบ™เบš metadata เบเบฑเบš fields, classes and expressions, string interpolation ('My name is $name'), type parameters ('new Main("foo")') เปเบฅเบฐเบญเบทเปˆเบ™เป†เบญเบตเบ. class Test { function static main() { final people = [ "Elizabeth" => "Programming", "Joel" => "Design" ]; เบชเปเบฒเบฅเบฑเบš (เบŠเบทเปˆ => เบงเบฝเบเปƒเบ™เบ„เบปเบ™) { trace('$name does $job for a living!'); } } }

เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เปƒเบซเบกเปˆโ€‹เปƒเบ™โ€‹เบชเบฐโ€‹เบšเบฑเบš 4.2โ€‹:

  • เบ›เบฐเบเบฒเบ”เบ•เบปเบงเปเบ›เบชเบฐเบ–เบดเบ” เปเบฅเบฐเปœเป‰เบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเป‚เบกเบ”เบนเบ™, เป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบซเปเปˆเบžเบงเบเบกเบฑเบ™เป„เบงเป‰เปƒเบ™เบŠเบฑเป‰เบ™เบฎเบฝเบ™.
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš "เบ„เบฅเบฒเบชเบชเบดเบ" เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ•เบปเบงเบ•เบปเบ™เปเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆ.
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบšเบšเป€เบ”เบตเบกเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ (haxe.Rest) เปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ "f(...array)".
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ loop เป€เบซเบ”เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบซเบปเบงเบ‚เปเป‰เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™ (โ€œsys.thread.Thread.eventsโ€).
  • "@:inheritDoc" metadata เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบทเบšเบ—เบญเบ”เป€เบญเบเบฐเบชเบฒเบ™เบ›เบฐเป€เบžเบ”/เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™.
  • เบงเบดเบ—เบตเบเบฒเบ™ overloading เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบงเบดเบ—เบตเบเบฒเบ™เบžเบฒเบเบ™เบญเบเปƒเบ™เป€เบงเบ—เบตเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”.
  • เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบ•เบปเบงเบชเป‰เบฒเบ‡เบ—เบตเปˆเบ•เบดเบ”เบžเบฑเบ™เบเบฑเบšเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบกเบฑเบ™เป„เบ›เบซเบฒเบšเบปเบ”เบ„เบฑเบ”เบซเบเปเป‰เป‚เบ”เบเปƒเบŠเป‰ metadata โ€œ@:forward.newโ€.
  • เป€เบžเบตเปˆเบก "EIs" constructor เปƒเบชเปˆ "haxe.macro.Expr".
  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบปเบงเปเบ›เบ›เบฐเป€เบžเบ” abstract เบ”เป‰เบงเบ "@:forward.variance".
  • เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” "เปƒเบ”เป†" เป€เบ›เบฑเบ™ "เป„เบ”เบ™เบฒเบกเบดเบ" เป€เบกเบทเปˆเบญเบเบฒเบ™เบฅเบงเบกเบ•เบปเบงเบ›เปˆเบฝเบ™เปเบ›เบ‡.
  • เป€เบžเบตเปˆเบกเบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบชเปˆเบŠเบธเบ” "haxe.exceptions".
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบฑเบ”เบ•เบดเบ” metadata เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบฐเบเบฒเบ”เบ•เบปเบงเปเบ›.
  • เบŸเบฑเบ‡เบŠเบฑเบ™ "StringTools.unsafeCharAt" เบ—เบตเปˆเปƒเบŠเป‰เบชเบณเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบชเบฒเบเบชเบฐเบ•เบฃเบดเบ‡เบ„เบทเบ™เปƒเปเปˆ.
  • eval (เบ™เบฒเบเบžเบฒเบชเบฒ): เป€เบžเบตเปˆเบกเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบเบฑเบš "libuv" เปƒเบ™เบŠเบธเบ” "eval.luv".
  • eval: เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบ‚เบญเบ‡ "Int64" เปเบฅเบฐ "UInt64" เบœเปˆเบฒเบ™เปเบžเบฑเบเป€เบเบฑเบ” "eval.integers".
  • cs: เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบŠเบฑเบญเบเป€เบเบฑเบ” UDP.
  • cs: "cs.Syntax" เป‚เบกเบ”เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบŠเบ inline เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” C#.
  • jvm: เป€เบžเบตเปˆเบกเบ—เบธเบ‡ โ€œ-D jvm.dynamic-level=xโ€ เป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบˆเบณเบ™เบงเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเบณเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เป„เบ”เบ™เบฒเบกเบดเบ. 0 = none, 1 = เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบญเปˆเบฒเบ™/เบ‚เบฝเบ™เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก, 2 = เบงเบดเบ—เบตเบเบฒเบ™เบ›เบดเบ”เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบก.
  • java, jvm: เบฎเบญเบ‡เบฎเบฑเบšเบ—เบธเบ‡ "--java-lib ".
  • python: เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” API threading.

เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบปเปˆเบงเป„เบ›:

  • "expr is SomeType" เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบซเปเปˆเบขเบนเปˆเปƒเบ™เบงเบปเบ‡เป€เบฅเบฑเบš.
  • เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบ—เบตเปˆเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบš "@: เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰" เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ›เบฐเป€เบžเบ”.
  • เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ›เบฐเป€เบžเบ”เบ„เบปเบ‡เบ—เบตเปˆเบœเปˆเบฒเบ™ "super".
  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡ metadata เป€เบ›เบฑเบ™ "@:noDoc" เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™.
  • เบ›เบฐเป€เบžเบ”เบšเปเปˆเบกเบตเบ•เบปเบงเบ•เบปเบ™ "เปเบœเบ™เบ—เบตเปˆ" เปเบกเปˆเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ›.
  • เบฎเบญเบ‡เบฎเบฑเบš "@:native" เปƒเบ™เบ•เบปเบงเบชเป‰เบฒเบ‡ enum.
  • เบฎเบญเบ‡เบฎเบฑเบš "@:using" เปƒเบ™เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ›เบฐเป€เบžเบ” ("typedefs").
  • เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบซเบผเบฒเบเปเบ–เบงเปƒเบŠเป‰ "..." เป€เบ›เบฑเบ™เบ„เบณเบ™เบณเปœเป‰เบฒเบชเบณเบฅเบฑเบšเปเบ–เบงเบ•เปเปˆเป„เบ›.
  • เบ›เบฐโ€‹เป€เบžเบ” inference เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบ„เบทเบ™โ€‹เปƒเบซเบกเปˆโ€‹, เป‚เบ„เบ‡โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบเบฒเบ™โ€‹เบšเปเปˆโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบŠเบทเปˆโ€‹เปเบกเปˆเบ™โ€‹เบ”เบตเบโ€‹เบงเปˆเบฒโ€‹เบ›เปˆเบฝเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบ—เบตเปˆโ€‹เบŠเบฑเบ”โ€‹เป€เบˆเบ™โ€‹เปเบฅเบฐ "เบ›เบดเบ”โ€‹" เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹.
  • เบเบฒเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เป€เบ›เบฑเบ™ "()->..." เปเบ—เบ™ "Void->...".
  • เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™ "เบซเบ™เป‰เบฒเบ—เบตเปˆ" เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบ›เบฑเบ™เบŠเบทเปˆเบŠเบธเบ”.
  • เบ›เบฑเบšเบ›เบธเบ‡ inlining เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ.
  • cs: เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš .NET 5.0.
  • cpp: เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบฎเบฝเบ™เบžเบฒเบเบ™เบญเบ.
  • php: เป€เบžเบตเปˆเบก "php.Syntax.customArrayDecl" เป€เบžเบทเปˆเบญเบ›เบฐเบเบฒเบ”เบญเบฒเป€เบฃเบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡.
  • php: เบ›เบฑเบšเบ›เบธเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบžเบฒเบเบ™เบญเบเบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เปˆเบฒเบ‡เป†เปเบฅเบฐเบŠเบฑเป‰เบ™เบฎเบฝเบ™.
  • php: เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบ›เบตเบ”เป€เบœเบตเบเบŠเบทเปˆ.
  • hl: เบ‚เป‰เบฒเบกเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ–เป‰เบฒเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เป‚เบกเบ”เบนเบ™.
  • lua: เปƒเบŠเป‰ "hx-lua-simdjson" เป€เบžเบทเปˆเบญเบงเบดเป€เบ„เบฒเบฐ json.
  • jvm: เบเบฒเบ™เป‚เบซเบผเบ” CPU เบซเบผเบธเบ”เบฅเบปเบ‡เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” "sys.thread.Lock".
  • js: เบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš Google Closure Compiler.
  • Null Safety: เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ "@:nullSafety(Off)" เป€เบกเบทเปˆเบญเบ›เบฐเบเบฒเบ”เบ•เบปเบงเปเบ›: "var @:nullSafety(Off) v".

เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ‚เบญเบ‡เบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™ VSCode เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เป€เบ›เบฑเบ™เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเบ‚เบญเบ‡ compiler, เปƒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป„เบ”เป‰เบ›เบฐเบเบปเบ”เบงเปˆเบฒเบกเบตเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ—เบตเปˆเบ‚เบฒเบ”เบซเบฒเบเป„เบ›เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเบšเปเปˆเบกเบตเบ•เบปเบงเบ•เบปเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบŠเบฑเบšเบชเบดเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™