ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π΅ ΡΠ΅Π»ΠΈΠ· Π½Π° Π‘Π£ΠΠ EdgeDB 2.0, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΎ-Π³ΡΠ°ΡΠΎΠ²Π°ΡΠ° ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ EdgeQL, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠΎΠ΄ΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΡΠΈ Python ΠΈ Rust (ΠΏΠ°ΡΡΠ΅Ρ ΠΈ ΠΊΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΠ°ΡΡΠΈ) ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠΈΡ Apache 2.0. ΠΡΠΎΠ΅ΠΊΡΡΡ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΊΠ°ΡΠΎ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° Π²ΡΡΡ Ρ PostgreSQL. ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Π·Π° Π΅Π·ΠΈΡΠΈ Python, Go, Rust ΠΈ TypeScript/Javascript. ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π‘Π£ΠΠ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ (REPL).
ΠΠΌΠ΅ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈ, Π² EdgeDB ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΎΡΠ½ΠΎΠ²Π°Π²Π°ΡΠ° ΡΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅. ΠΠΌΠ΅ΡΡΠΎ Π²ΡΠ½ΡΠ½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅ (foreign key) Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ ΡΡΠ΅Π· ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ (Π΅Π΄ΠΈΠ½ ΠΎΠ±Π΅ΠΊΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΊΠ°ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π½Π° Π΄ΡΡΠ³ ΠΎΠ±Π΅ΠΊΡ).
type Person { required property name -> str; } type Movie { required property title -> str; multi link actors -> Person; }
ΠΠ° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΡΠΎ ΡΡΡΠΎΠ³ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ°, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ°, ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ Ρ ΡΠ°Π½ΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ. Π‘ΡΠ΅Π΄ ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠ½Π°ΡΠ° ΡΡ Π΅ΠΌΠ° Π½Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² EdgeDB, ΠΊΠΎΡΡΠΎ Π½Π°ΠΏΠΎΠΌΠ½Ρ Π΄ΠΎΠ½ΡΠΊΡΠ΄Π΅ Π½Π° ORM, Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠΌΠ΅ΡΠ²Π°Π½Π΅ Π½Π° ΡΡ Π΅ΠΌΠΈ, ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° JSON.
ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΡΠ΅ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° ΡΡ Π΅ΠΌΠ°ΡΠ° β ΡΠ»Π΅Π΄ ΠΏΡΠΎΠΌΡΠ½Π° Π² ΡΡ Π΅ΠΌΠ°ΡΠ°, Π·Π°Π΄Π°Π΄Π΅Π½Π° Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ esdl-ΡΠ°ΠΉΠ», Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«edgedb migration createΒ» ΠΈ Π‘Π£ΠΠ ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° ΡΠ°Π·Π»ΠΈΠΊΠΈΡΠ΅ Π² ΡΡ Π΅ΠΌΠ°ΡΠ° ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΡΠΊΡΠΈΠΏΡ Π·Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΊΡΠΌ Π½ΠΎΠ²Π°ΡΠ° ΡΡ Π΅ΠΌΠ°. ΠΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΡΡ Π΅ΠΌΠ°ΡΠ° ΡΠ΅ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ.
ΠΠ° ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΊΠ°ΠΊΡΠΎ Π΅Π·ΠΈΠΊΡΡ Π·Π° Π·Π°ΡΠ²ΠΊΠΈ GraphQL, ΡΠ°ΠΊΠ° ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΡ Π΅Π·ΠΈΠΊ EdgeDB, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°Ρ Π°Π΄Π°ΠΏΡΠ°ΡΠΈΡ Π½Π° SQL Π·Π° ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠΌΠ΅ΡΡΠΎ ΡΠΏΠΈΡΡΡΠΈ, ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΡΠ΅ ΠΎΡΠΎΡΠΌΡΡ Π² ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½Π° ΡΠΎΡΠΌΠ°, Π° Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠ΄Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ JOIN ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΅Π΄Π½Π° Π·Π°ΡΠ²ΠΊΠ° EdgeQL ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΠ°Π· Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΄ΡΡΠ³Π° Π·Π°ΡΠ²ΠΊΠ°. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΠΈΠΊΠ»ΠΈ.
select Movie { title, actors: { name } } filter .title = Β«The MatrixΒ» insert Movie { title := Β«The Matrix ResurrectionsΒ», actors := ( select Person filter .name in { βKeanu Reevesβ, βCarrie-Anne Mossβ, βLaurence Fishburneβ } ) } for number in {0, 1, 2, 3} union ( select { number, number + 0.5 } );
Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ:
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π²Π³ΡΠ°Π΄Π΅Π½ ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΠ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° EdgeQL Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ ΠΈ Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π°ΡΠ° ΡΡ
Π΅ΠΌΠ° Π½Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡΡ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«edgedb uiΒ», ΡΠ»Π΅Π΄ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΡΡΠΎ ΡΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΡΠΈ ΠΎΠ±ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΌ localhost.

- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π΅ ΠΈΠ·ΡΠ°Π·Π΅Π½ΠΈΠ΅ Β«GROUPΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΎ ΡΠ΅ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ EdgeQL, ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Ρ Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° SELECT.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π½Π° Π½ΠΈΠ²ΠΎ ΠΎΠ±Π΅ΠΊΡΠΈ. ΠΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° Π΄ΠΎΡΡΡΠΏ ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π½Π° Π½ΠΈΠ²ΠΎ ΡΡ Π΅ΠΌΠ° Π½Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΎΠ±Π΅ΠΊΡΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅, Π²ΠΌΡΠΊΠ²Π°Π½Π΅, ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π°ΡΠΎ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡΡΠ° ΡΠ°ΠΌΠΎ ΠΎΡ Π°Π²ΡΠΎΡΠ°.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² ΡΡ Π΅ΠΌΠ°ΡΠ° Π½Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅. ΠΠ° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΊΡΠΌ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π½ΠΎΠ²Π° Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° current_user.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΠ²Π΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ (range).
- ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²Π΅Π½Π° Π΅ ΠΎΡΠΈΡΠΈΠ°Π»Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° Π΅Π·ΠΈΠΊΠ° Rust.
- Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ Π±ΠΈΠ½Π°ΡΠ½Π°ΡΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π½Π° EdgeDB, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅ΡΠΈΠΈ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΅Π΄Π½ΠΎ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ Π²ΡΡΠ·ΠΊΠ°, ΠΏΡΠΎΠ±ΠΈΠ²Π°Π½Π΅ ΠΏΡΠ΅Π· HTTP, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΡ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ ΠΏΠΎ ΡΠΎΠΊΠ΅Ρ, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π½Π΅ ΡΠ΅ Π·Π°Π΄ΡΡΠΆΠ° ΡΡΡΠ²ΡΡΠ΅Π½ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΡΠ°ΠΌΠΎ ΠΏΡΠΈ ΠΎΠΏΠΈΡ Π·Π° ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠ° (ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° ΡΠΏΠ΅ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru

