рдиреЗрдЯрдмрд┐рдпрдВрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдХ рд╕реНрд╡рд┐рдВрдЧ-рдЖрдзрд╛рд░рд┐рдд рд░реВрдкрд░реЗрдЦрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдбрд╝реЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реА рдирд╛рдо рдХрд╛ рдиреЗрдЯрдмрд┐рди рдЖрдИрдбреАрдИ рд╕рд┐рд░реНрдл рдиреЗрдЯрдмреАрдиреНрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬрд╝, рдПрдХреНрд╢рди, рдлрд╛рдЗрд▓ рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рди рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдХрдИ рдПрдкреАрдЖрдИ рд╣реИрдВред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдиреЗрдЯрдмреАрдиреНрд╕ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо рдПрдХреНрд▓рд┐рдкреНрд╕ рдЖрд░рд╕реАрдкреА (рд░рд┐рдЪ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо) рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ рд╕реНрд╡рд┐рдВрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣реИ, рдПрд╕рдбрдмреНрд▓реНрдпреВрдЯреА рдирд╣реАрдВред рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдХреМрди рдмреЗрд╣рддрд░ рд╣реИ рдПрдХ рд░рд╛рдп рд╣реИ рдХрд┐ рдиреЗрдЯрдмреАрдиреНрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реАрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдХрдо "рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА" рдФрд░, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрд╡рд┐рдВрдЧ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЕрдзрд┐рдХ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣рд░ рдЬрдЧрд╣ рд╕рдорд╛рди рджрд┐рдЦрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдореЗрдВ рдХреБрдЫ рдЪреАрдЬреЗрдВ рдЧрд╛рдпрдм рд╣реИрдВред
Netbeans Platform рдкрд░ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрд╡рд╕рд░ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдкреНрд▓рдЧ-рдЗрди рдХреЗ рд▓рд┐рдП рддреБрд▓рдиреАрдп рд╣реИред рдиреЗрдЯрдмреАрдиреНрд╕ рдореЙрдбреНрдпреВрд▓ рдЬрд╛рд╡рд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИ рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдЖрд╡реЗрджрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд░реВрд╕реА рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рд╛рдордЧреНрд░реА рд╣реИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдмреБрдХрдорд╛рд░реНрдХ рдореЗрдВ
netbeans.org/features/platform/all-docs.html рдкреЗрдЬ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡рд╣рд╛рдБ рд▓рдЧрднрдЧ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдХрд╛рдо рдкрд░ рд▓рдЧрдирд╛ред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Netbeans IDE рдХреЛ Netbeans рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд╕рдорд░реНрдерди рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдЗрд╕ рд▓рд┐рдВрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ:
netbeans.org/downloads/index.html рдФрд░ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдЬрд╣рд╛рдВ "рдиреЗрдЯрдмреАрдиреНрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдПрд╕рдбреАрдХреЗ" рдХреЗ рд╕рд╛рдордиреЗ рдПрдХ рдкрдВрдЬрд╛ рд╣реИред
рдПрдХ рдкрд░рд┐рдЪрдп рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВрдЧреЗ рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдкрд╛рда рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред
рд╣рдо IDE рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдлрд╝рд╛рдЗрд▓ рдореЗрдиреВ рдореЗрдВ рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдЗрдЯрдо рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, рдЦреБрд▓рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ, "рдиреЗрдЯрдмреАрдиреНрд╕ рдореЙрдбреНрдпреВрд▓реНрд╕" -> "рдиреЗрдЯрдмреАрдиреНрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди" рдЪреБрдиреЗрдВред "рдЕрдЧрд▓рд╛" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдХреБрдЫ рдирд╛рдо рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд╣рд╛рдВ рдЗрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдВрдд рдореЗрдВ, рд╕рдорд╛рдкреНрдд рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдорд╛рд╣реМрд▓ рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЖрдк рдЗрд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореЙрдбреНрдпреВрд▓ рдХреА рд╕реВрдЪреА рдЦрд╛рд▓реА рд╣реИ, рдЪрд▓реЛ рд╡рд┐рдВрдбреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдФрд░ рдПрдХ рдПрдХреНрд╢рди рдХреЙрд▓ рдмрдЯрди рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "рдореЙрдбреНрдпреВрд▓" -> "рдирдпрд╛ рдЬреЛрдбрд╝реЗрдВ ..." рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдлрд┐рд░, рд╣рдо рдПрдХ рдирд╛рдо рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВ рдФрд░ "рдЕрдЧрд▓рд╛" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рдХреЛрдб рдХрд╛ рдирд╛рдо "org.word.editor.core" рд▓рд┐рдЦреЗрдВ, рдФрд░ "рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдкрд░рд┐рдгрд╛рдо рдПрдХ рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рд╣реИ, рдЗрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрд╕ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, "рдмрдирд╛рдПрдВ" -> "рдЕрдиреНрдп" рдЪреБрдиреЗрдВред рдЦреБрд▓рдиреЗ рд╡рд╛рд▓реА рдЦрд┐рдбрд╝рдХреА рдореЗрдВ, "рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╡рд┐рдХрд╛рд╕" рд╢реНрд░реЗрдгреА рдореЗрдВ "рдбрд╛рдпрд▓реЙрдЧ", "рдЕрдЧрд▓рд╛" рдЪреБрдиреЗрдВред рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ "рд╕рдВрдкрд╛рджрдХ" рдХреА рд╕реНрдерд┐рддрд┐ рд░рдЦреЛ, рдлрд┐рд░ рд╕реЗ "рдЕрдЧрд▓рд╛", рд╡рд░реНрдЧ рдирд╛рдо рдЙрдкрд╕рд░реНрдЧ рдФрд░ "рд╕рдорд╛рдкреНрдд" рдореЗрдВ "рдкрд╛рда" рд▓рд┐рдЦреЗрдВред
рдЦреБрд▓реЗ рд╣реБрдП рдлреЙрд░реНрдо рдкрд░, "рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб" рдФрд░ рдмрдЯрди рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВред

"JTextArea1" рдХреЛ "рдЯреЗрдХреНрд╕реНрдЯ" рдирд╛рдо рджреЗрдВред рдЕрдЧрд▓рд╛, рдЕрдкрдиреЗ рдмрдЯрди рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
text.setText(text.getText().toUpperCase());
}
рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ (рдХреБрдВрдЬреА F6)ред рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ, "рд╡рд┐рдВрдбреЛ" -> "рдЯреЗрдХреНрд╕реНрдЯ" рдЪреБрдиреЗрдВ рдФрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА, рдЬреЛ рд╣рдорд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред

рд▓реБрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧред
рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рд╣рдо рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдВрдЧреЗред рдкрд╣рд▓рд╛ рдореЙрдбреНрдпреВрд▓, "TextFilterAPI" рдореЗрдВ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИред рдФрд░ рджреВрд╕рд░рд╛ рдореЙрдбреНрдпреВрд▓, UppercaseFilter, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ GUI рдореЙрдбреНрдпреВрд▓ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ UppercaseFilter рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛ рдХреЛрдб рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ UppercaseFilter рдХреЛ META-INF / Services рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ Netbeans рд▓реБрдХрдЕрдк рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдХрд┐ JDK6 рд╕реЗ ServiceLoader рд╡рд░реНрдЧ рдХреЗ рд╕рдорд╛рди рд╣реИред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рдВрдбреЛ рдореЗрдВ, TextFilterAPI рдирд╛рдордХ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдВред "рдЕрдЧрд▓рд╛" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдХреЛрдб рдирд╛рдо рдлрд╝реАрд▓реНрдб рдореЗрдВ "org.word.editor.api" рдФрд░ "рд╕рдорд╛рдкреНрдд" рджрд░реНрдЬ рдХрд░реЗрдВред рдирдП рдореЙрдбреНрдпреВрд▓ рдореЗрдВ, рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ TextFormater рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдПрдВ:
package org.word.editor.api;
public interface TextFilter {
String process(String s);
}
TextFilterAPI рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ, рдЯреИрдм "рдПрдкреАрдЖрдИ рд╕рдВрд╕реНрдХрд░рдг" рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреИрдХреЗрдЬреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ "org.word.editor.api" рдХреЗ рд╕рд╛рдордиреЗ рдПрдХ рдкрдВрдЬрд╛ рдбрд╛рд▓реЗрдВред

рд╣рдо "рдЕрдкрд░рдХреЗрд╕" рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдб рдХрд╛ рдирд╛рдо "org.word.editor.uppercase" рд╣реИред рд╣рдо рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ "TextFilter" рдФрд░ "рд▓реБрдХрдЕрдк API" рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ "рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝" рдЯреИрдм рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рдЙрд╕рдХреЗ рдмрд╛рдж, рдкреИрдХреЗрдЬ рдореЗрдВ тАЬрдмрдбрд╝реЗ.рдЧрд░реНред
package org.word.editor.uppercase;
import org.openide.util.lookup.ServiceProvider;
import org.word.editor.api.TextFilter;
@ServiceProvider(service=TextFilter.class)
public class UppercaseFilter implements TextFilter {
public String process(String s) {
return s.toUpperCase();
}
}
рдЕрдм GUI рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдкрд╣рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдЙрдирдХреЗ svostva рдореЗрдВ рд╣рдо "TextFilterAPI" рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рдПрдХ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String enteredText = text.getText();
Collection<? extends TextFilter> allFilters = Lookup.getDefault().lookupAll(TextFilter.class);
StringBuilder sb = new StringBuilder();
for (TextFilter textFilter : allFilters) {
String processedText = textFilter.process(enteredText);
sb.append(processedText).append("\n");
}
text.setText(sb.toString());
}
рдЕрдм рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк "рд▓реЛрдЕрд░рдХреЗрд╕рдлрд┐рд▓реНрдЯрд░" рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЙрд╕реА рддрд░рд╣ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд╛рда рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ред