рдиреЛрдЯ рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рджреЛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рдЯреВрд▓ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИрдВред рдмрд╣реБрдд рд╕рдорд╛рди рдирд╛рдореЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╡реЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИрдВ, рдФрд░ рдЕрдиреНрдп рдкреНрд░рд╕рд┐рджреНрдз рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реЛрдмреЛрдЯрд┐рдпрдо рд╕реЗред рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ - рдореИрдВ рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реВрдВред
рдмрдВрджрд░
рдЖрдЗрдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЯреВрд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ - рдмрдВрджрд░ рдХреЗ рд╕рд╛рдеред рддрдерд╛рдХрдерд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрджрд░ рдЗрддрдирд╛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИ рддрдирд╛рд╡ рдкрд░реАрдХреНрд╖рдг, рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рд▓реЗрдЦрди рдХреЗ
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреГрд╖реНрда рдкрд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ - рдпреВрдЖрдИ / рдПрдкреНрд▓реАрдХреЗрд╢рди рдПрдХреНрд╕рд░рд╕рд╛рдЗрдЬред рдореЛрдЯреЗ рддреМрд░ рдкрд░, рдмрдВрджрд░ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛" рдХреЗ рдмрд╛рдж рдХреА рдЕрд░рд╛рдЬрдХ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдВрджрд░ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдПрдХ рдЫреЛрдЯреЗ рдмрдЪреНрдЪреЗ рдХреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ) рдХреЗ рдкрдВрдЬреЗ рдореЗрдВ рдЧрд┐рд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдлреЛрди рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрдВрджрд░ рдЖрдкрдХреЛ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ "рдпрд╛рджреГрдЪреНрдЫрд┐рдХрддрд╛", рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░рд╛рд▓, рдЙрдирдХреЗ рдкреНрд░рдХрд╛рд░ рдЖрджрд┐ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдЖрд╡реЗрджрди рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЗрд╕реЗ рдХреЗрд╡рд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╛ рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдорд╛рдорд▓реЗ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрдВрд╕реЛрд▓ рд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
$ adb shell monkey -p org.monkeys -v 500
рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХрд╛ рдкреИрдХреЗрдЬ рдирд╛рдо рдФрд░ рдЙрддреНрдкрдиреНрди рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЗрдВрдЧрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдЕрдкрд╡рд╛рдж (рдЕрдкрд╡рд╛рдж) рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
:Sending Pointer ACTION_MOVE x=-4.0 y=2.0 :Sending Pointer ACTION_UP x=0.0 y=0.0 // CRASH: org.monkeys (pid 325) // Short Msg: java.lang.NoSuchMethodException // Long Msg: java.lang.NoSuchMethodException: onButtonClick ... // java.lang.IllegalStateException: Could not find a method onButtonClick(View) in the activity class org.monkeys.MonkeysTestActivity for onClick handler on view class android.widget.Button // at android.view.View$1.onClick(View.java:2059) // at android.view.View.performClick(View.java:2408) ... ** Monkey aborted due to error. Events injected: 17 :Dropped: keys=0 pointers=0 trackballs=0 flips=0 ## Network stats: elapsed time=1479ms (1479ms mobile, 0ms wifi, 0ms not connected) ** System appears to have crashed at event 17 of 500 using seed 0
рдпрд╣ рд╕рдм рдмрдВрджрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ - рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ, рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмрдирд╛ рджреЗрдЧрд╛ - рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИред
MonkeyRunner
рдмрдВрджрд░ рдХреЗ рд╕рдорд╛рди рдирд╛рдо рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдордВрдХреА рд░рдирд░ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг ("рдХреНрд▓рд┐рдХ-рдереНрд░реВ" рдкрд░реАрдХреНрд╖рдг) рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ,
рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ
рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди
рдХрд░рддрд╛ рд╣реИ ред MonkeyRunner рд░реЛрдмреЛрдЯрд┐рдпрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирд┐рдореНрди рд╕реНрддрд░ рдХрд╛ рд╣реИ, рдФрд░ рд░реЛрдмреЛрдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдордВрдХреАрд░рдирд░ рдХреЗ рдЖрд╡реЗрджрди рдХрд╛ рдХреНрд╖реЗрддреНрд░ рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рддрдХ рд╣реА рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИ - рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ UI (рдФрд░ рди рдХреЗрд╡рд▓) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдордВрдХреА рд░рдирд░ Jython рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдпрд╛ рдПрдХ рд░рд┐рдХреЙрд░реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдордВрдХреА рд░рдирд░ рдПрд╕рдбреАрдХреЗ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рд╛рде рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рджреБрднрд╛рд╖рд┐рдпрд╛ рдФрд░ рдЗрд╕рдХреЗ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдХрдВрд╕реЛрд▓ рдХреЛ рдПрд╕рдбреАрдХреЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд┐рдд
monkeyrunner
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдФрд░ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЗрд▓ рд░рд╣рд╛ рд╣реИ
рдПрд╕рдбреАрдХреЗ рдХреА рд░рдЪрдирд╛ рд╕реЗ, рд╣рдореЗрдВ рджреЛ рдЕрдЬрдЧрд░ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рд░рд┐рдХреЙрд░реНрдбрд░ рдФрд░
рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд▓рд┐рдП ред рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ
monkeyrunner
рдЕрдиреБрд╕рд╛рд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
monkeyrunner ~/Projects/MonkeysTest/monkeyrunner/monkey_recorder.py
рд░рд┐рдХреЙрд░реНрдбрд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

"рдирд┐рд░реНрдпрд╛рдд рдХреНрд░рд┐рдпрд╛рдПрдВ" рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рджреНрд╡рд╛рд░рд╛ рдЦреЗрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
monkeyrunner ~/Projects/MonkeysTest/monkeyrunner/monkey_playback.py /tmp/actions.out
рдмреЗрд╢рдХ, рдПрдореБрд▓реЗрдЯрд░ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдордВрдХреА рд░рдирд░ рдХрдВрдЯреНрд░реЛрд▓ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмреЗрд╢рдХ рд░реЛрдмреЛрдЯрд┐рдпрдо рдпрд╛ рд░реЛрдмреЛрдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХ рдореЗрдВ рддрддреНрд╡ рдХреА рдкрд╕рдВрдж рдХреЗ рд░реВрдк рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕реНрдХреНрд░реАрди рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреЗрд╕реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдорд╛рдВрдЧ рдореЗрдВ рд╣реЛрдЧрд╛, рди рдХрд┐ рдкрд░рд┐рдЪрд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреЗрдоред
рдкрдЯрдХрдерд╛ рд▓реЗрдЦрди
рдордВрдХреА рд░рдирд░ рдЖрдкрдХреЛ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рдЦреБрдж рдХреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice device = MonkeyRunner.waitForConnection() device.removePackage('org.monkeys') device.installPackage('/tmp/monkeys.apk') package = 'org.monkeys' activity = 'org.monkeys.MonkeysTestActivity' runComponent = package + '/' + activity device.startActivity(component=runComponent) MonkeyRunner.sleep(2.0) device.touch(50, 140, 'DOWN_AND_UP') device.type("Hello!") MonkeyRunner.sleep(1.0) device.takeSnapshot().writeToFile('/tmp/monkeyshot.png','png')
рдПрдкреАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рджреА рдЧрдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдордВрдХреАрд░рдирд░ рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВред
рдЧреНрд░рд╣рдг рдПрдХрддрд╛
рдЧреНрд░рд╣рдг рд╕реЗ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛:
- PyDev рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
- PyDev рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ "рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдПрдХреНрдЬрд╝реАрдХреНрдпреВрдЯреЗрдмрд▓" рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдирдпрд╛ рдкрд╛рдпрдерди рджреБрднрд╛рд╖рд┐рдпрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬреЛ
monkeyrunner
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ (рдЗрд╕реЗ рдкрд╛рдпрдерди рдХреА рддрд░рд╣ рд╣реА рдЬреЛрдбрд╝реЗрдВ, рди рдХрд┐ monkeyrunner
)ред рдПрд╕рдбреАрдХреЗ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред - рдЙрдирдХреЗ рд▓рд┐рдП рдирдП рдЬреЛрдбрд╝реЗ рдЧрдП рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ "рд░рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди" рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝реЗрдВред
рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкрд╛рдпрдерди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣ рд╕рдм рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд╢рд╛рдпрдж рд╡рд░реНрдгрд┐рдд рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреЗред