рд╣рдо рдЕрдиреБрднрд╛рдЧ рдХреЗ BTRFS рдХреЗ рд╕рд╛рде ReactOS рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ

рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░!

рдореЗрд░рд╛ рдирд╛рдо рд╡рд┐рдХреНрдЯрд░ рд╣реИ, рдФрд░ рдЗрд╕ рд╡рд░реНрд╖ рдореИрдВ рд░рд┐рдПрдХреНрдЯреЛрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ Google рд╕рдорд░ рдСрдл рдХреЛрдб рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдЫрд╛рддреНрд░ рд╣реВрдВред рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдереЛрдбрд╝рд╛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдореИрдВ рдЗрдВрдЯрд░реНрдирд╢рд┐рдк рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реВрдВред

ReactOS рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдореЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ (fat32, ext2, ReiserFS , BTRFS ) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рдХреЗрд╡рд▓ fat32 рдореЗрдВ рд╕реНрд╡рд░реВрдкрд┐рдд рд╡рд┐рднрд╛рдЬрди рд╕реЗ рдмреВрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд╕рдВрдд, рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдФрд░ рдЬреАрдПрд╕рдУрд╕реА рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХрд┐рдпрд╛ред рдФрд░ рдЗрд╕рд▓рд┐рдП, рдХреБрдЫ рдорд╣реАрдиреЗ рдмрд╛рдж рдореИрдВ рдпрд╣ рдкреЛрд╕реНрдЯ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ :)

BTRFS рдХреНрдпреЛрдВ? рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рд╕рд░рд▓ рд╣реИ - WinBtrfs рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдбреНрд░рд╛рдЗрд╡рд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рд┐рдПрдХреНрдЯреЛрд╕ рдХреЛрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЧрдП рд╕рднреА рдХреЗ рд╕рдмрд╕реЗ рд╕реНрдерд┐рд░ рдФрд░ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реИред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдо рдЙрди рдХрд░реНрдиреЗрд▓ рдмрдЧреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЕрдиреНрдп FS рдХреЛ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП FS рдбреНрд░рд╛рдЗрд╡рд░ рдмрдЧ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреЗрдХрд╛рд░ рд╣реИрдВред



рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдУрдПрд╕ рдХрд░реНрдиреЗрд▓ рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдерд╛ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдерд╛: рд╕рднреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдЬреЛ рд╣рдорд╛рд░реЗ рдЗрдВрд╕реНрдЯреЙрд▓рд░ (usetup) рдореЗрдВ WinBtrfs рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░реЗ, рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реНрд╡рд░реВрдкрдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВред рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдореИрдВ BTRFS рдореЗрдВ рд╕реНрд╡рд░реВрдкрд┐рдд рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП ReactOS рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЙрдкреА (рд▓рдЧрднрдЧ) рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рд╡реЗ рдЬрд▓реНрджреА рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд▓рд╛ рдХрд╛рд░реНрдп рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред ReactOS рдмреВрдЯрд▓реЛрдбрд░ - FreeLdr рд▓рдЧрднрдЧ рдХреЗрд╡рд▓ рджреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдореЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ - fat32 рдФрд░ iso (ext2 рдФрд░ ntfs рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдиреЗ рднреА рдЗрд╕реЗ рд▓рдЧрднрдЧ 5 рд╕рд╛рд▓ рддрдХ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ)ред рдЪреВрдВрдХрд┐ FreeLdr рдПрдордПрд╕ рд╕реЗ ntldr рдмреВрдЯрд▓реЛрдбрд░ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рджреЛ рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ - рдмреВрдЯ рд╕реЗрдХреНрдЯрд░ рдЙрд╕ рдЦрдВрдб рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬрд╣рд╛рдВ рдПрдордмреАрдЖрд░ рдбрд┐рд╕реНрдХ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдореБрдЦреНрдп рднрд╛рдЧ, рдЬреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдореЛрдб рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ, ntoskrnl.exe рдХрд░реНрдиреЗрд▓ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХрд░рддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ред


(рдпрд╣ рдХреИрд╕реЗ ReactOS рдмреВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ)

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдирдИ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡рд┐рднрд╛рдЬрди (VBR) рдХреЗ рдмреВрдЯ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдХрд╛рд░реНрдп рдбрд┐рд╕реНрдХ рдХреЗ рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмреВрдЯрд▓реЛрдбрд░ (рдЬрд┐рд╕реЗ рд╣рдо рдЗрд╕реЗ freeldr.sys рдХрд╣рддреЗ рд╣реИрдВ) рдХреА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрдЬрдирд╛ рд╣реИ, рдЗрд╕реЗ рдореЗрдореЛрд░реА рдФрд░ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрдВрдЯреНрд░реЛрд▓ рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИ, рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓, рдХрд░реНрдиреЗрд▓, рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЭрд╛рдбрд╝рд┐рдпреЛрдВ рдЖрджрд┐ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП freeldr.sys рдХреЛ рд╕реНрд╡рдпрдВ рд╣реА рд▓рдЧрднрдЧ рдкреВрд░реНрдг рд░реАрдб-рдУрдирд▓реА рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдбреНрд░рд╛рдЗрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ BTRFS рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рд╣реА рдирд┐рдкрдЯрдирд╛ рдерд╛ред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╕рдмрд╕реЗ рдХрдард┐рди рдЪреАрдЬреЗрдВ рдЬреЛ рдореИрдВрдиреЗ рдЙрдард╛рдИ рдереАрдВ, рд╡реЗ fat32 рдФрд░ ext2 рдереАрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ BTRFS рд╣рд╛рд░рд╡реЗрд╕реНрдЯрд░ рд╕реАрдЦрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрд╛ред Wiki.kernel.org рдкрд░ рдкреНрд░рд▓реЗрдЦрди рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдерд╛ - рдЖрдкрдХреЛ рдЧреНрд░рдм, рдпреВ-рдмреВрдЯ рдФрд░ рдЕрдиреНрдп рдмреВрдЯ рд▓реЛрдбрд░ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рдЬрд╛рдирд╛ рдерд╛ред рдкрд╛рдпрдерди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЬреЛ рдореИрдВрдиреЗ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдХрдВрд╕реЛрд▓ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреА рдереА, рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдмреВрдЯ рд╕реЗрдХреНрдЯрд░ рдХрд╛ рдкрд╣рд▓рд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд▓рд┐рдЦрд╛, рдЬреЛ рдХрд┐ BTRFS рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдХ рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓ рд╕реЗ рдмреВрдЯрд▓реЛрдбрд░ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИред


(рдЬрдбрд╝ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рддрддреНрд╡ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВ)

рдЕрдм рдЕрд╕рд▓реА рдмреВрдЯ рд╕реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕рдордп рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдЖрдЧрд╛рдореА рдкрд░рд┐рдгрд╛рдо (~ 1mb рдореЗрдореЛрд░реА, рдЦрдВрдбрд┐рдд рдкрддрд╛ рдФрд░ BIOS рдЗрдВрдЯрд░рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд┐рд╕реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛) рд╣реИрдВред рдореЗрд░реЗ рдЬреИрд╕реЗ рдкреБрд░рд╛рдиреЗ рд╕реНрдХреВрд▓ рдХреЗ рдкреНрд░рд╢рдВрд╕рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░ :)

BTRFS рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ, рд▓рдЧрднрдЧ рд╕рднреА рдХреНрд╖реЗрддреНрд░ 64-рдмрд┐рдЯ рдЖрдХрд╛рд░ рдХреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдПрдХ рдмрд╣реБрдд рд╣реА "рдлреВрд▓рд╛ рд╣реБрдЖ" рдХреЛрдб рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ 32-рдмрд┐рдЯ x86 рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛ред рдЕрдХреНрд╕рд░ рдЖрдкрдХреЛ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдЬреИрд╕реЗ:

mov si, SOME_OFFSET lea si, [esi+ecx*8] lea si, [esi+ecx*8] lea si, [esi+ecx*8] // one element is 24 bytes long 

рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рдХрд╛рд░реНрдп рдмреА-рдЯреНрд░реА рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдЦ тАЛтАЛрд░рд╣рд╛ рдерд╛, рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрд╛ред рдФрд░ рдХрдИ рд░рд╛рддреЛрдВ рдХреА рдиреАрдВрдж рд╣рд░рд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЕрднреА рднреА рджреВрд╕рд░реЗ рдбрд╛рдЙрдирд▓реЛрдб рдЪрд░рдг рд╕реЗ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛:



freeldr.sys рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореЛрдб рдЬреИрд╕реЗ рдЬрд╛рджреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рднреА рдирд╣реАрдВ рдереАред 640kb рд╕рднреА рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ!

рдмреВрдЯ рд╕реЗрдХреНрдЯрд░ рдХреЛрдб рдХреЛ рдореЗрд░реЗ рдЬреАрдердм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдЕрднреА рднреА рдЗрд╕рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ), рдФрд░ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ BTRFS рдкрд░ рд╕рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдЕрдм рдпрд╣ рдмреВрдЯрд▓реЛрдбрд░ рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдХреА рдмрд╛рд░реА рд╣реИ - рдЖрдкрдХреЛ рдирдИ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рд┐рдЦрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЦрдмрд░ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ!

Source: https://habr.com/ru/post/hi416367/


All Articles