рдЗрддрдиреА рджреЗрд░ рдкрд╣рд▓реЗ рдореБрдЭреЗ рдПрдХ рдРрд╕реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рдереА рдФрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╣реБрдИ рдереА, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рдереАред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬреА рдпрд╛ рдХреБрдВрдЬреА рдХреЗ рдХрдИ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд░реНрдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдХреБрдВрдЬреА рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐, рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдФрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдореЗрдВ рд▓реИрдЯрд┐рди рдЕрдХреНрд╖рд░реЛрдВ рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред
рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реВрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рднрд╕реНрдо рд╕реНрдореГрддрд┐ рдкрд░ред рдФрд░ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЙрдкрд╕рд░реНрдЧ рд╡реГрдХреНрд╖ рдХрд╛ рдПрдХ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрддрд┐рд░реЗрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рд╡рд┐рдЪрд╛рд░ рд╢рд╛рдпрдж
рдЗрд╕ рд▓реЗрдЦ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдиреЛрдб рдореЗрдВ рдмрд╛рдж рдХреЗ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рдиреЛрдб рдореЗрдВ рд▓рд┐рдВрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ 63 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ (рдкреНрд░рддреНрдпреЗрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде 10 рдЕрдВрдХ, 26 рдкрддреНрд░)ред рдЗрд╕рд▓рд┐рдП, рдмрд┐рдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдкрд░ 64-рдмрд┐рдЯ рдирдВрдмрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реЗрдЯ рдмрд┐рдЯ рдХрд╛ рдЕрд░реНрде рд╣реИ, рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддреАрдХ рдФрд░ рдиреЛрдб (рдЙрдкрдкреНрд░рдХрд╛рд░) рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ред
рдмрд┐рдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рд╡рд┐рддрд░рдг рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ: 0 рд╕реЗ 9 рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ 0 рд╕реЗ 9 рдмрд┐рдЯреНрд╕ рдкрд░ рдХрдмреНрдЬрд╛, 10 рд╕реЗ 35 рдмрд┐рдЯреНрд╕ рд╕реЗ рдПрдЬрд╝ рдЕрдХреНрд╖рд░, 36 рд╕реЗ 62 рдмрд┐рдЯреНрд╕ рддрдХ рдПрдЬрд╝реЗрдб рдЕрдХреНрд╖рд░ рдФрд░ 63 рдмрд┐рдЯреНрд╕ рдкрд░ рдПрдХ рдЬрдЧрд╣ рд╣реЛрддреА рд╣реИред рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ASCII рд╡рд░реНрдг рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдШрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд░реНрдгреЛрдВ рдХреА рдкреНрд░рддреНрдпреЗрдХ рд╢реНрд░реЗрдгреА рдХреЗ рд▓рд┐рдП, рд╕рдВрдЦреНрдпрд╛ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИ: рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП 48 (ASCII рдХреЛрдб рдореЗрдВ рдЕрдВрдХреЛрдВ рдХреА рд╕реАрдорд╛ 48 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ), рдЕрдХреНрд╖рд░ a 87 рдХреЗ рд▓рд┐рдП (рдЕрдХреНрд╖рд░реЛрдВ рдХреА рд╢реНрд░реЗрдгреА az рдХреА рд╢реБрд░реБрдЖрдд рдорд╛рдЗрдирд╕ 10 рдмрд┐рдЯреНрд╕ рд╕реЗ рд╣реЛрддреА рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 10 рдЕрдВрдХреЛрдВ рдФрд░ рдЗрд╕реА рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╛рдкреНрдд рд╣реИ)ред
рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдиреЛрдб рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
type Trie struct { rw sync.RWMutex characters uint64 subTries []*Trie data interface{} }
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдирд┐рдореНрди рд╡рд░реНрдгреЛрдВ рдХреЗ рдмрд┐рдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдЙрдк-рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдФрд░ рдбреЗрдЯрд╛ рд╕реНрд╡рдпрдВред рдореИрдВ рдЦреЛрдЬ, рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдФрд░ рд╡рд┐рд▓реЛрдкрди рддрдВрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ред
рдЗрдирдкреБрдЯ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╕рдордп, рдХреБрдВрдЬреА рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреЗрдбрд╝ рд╕реЗ рдЧреБрдЬрд░рддреА рд╣реИ, рд░реВрдЯ рдиреЛрдб рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдЕрдкрдиреЗ ASCII рдХреЛрдб рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдг рдХреЗ рд▓рд┐рдП, рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ (рд╕рдмрдЯреНрд░реА) рдХреЗ рд╕реНрд▓рд╛рдЗрд╕ рдореЗрдВ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рд╕реВрдЪрдХрд╛рдВрдХ рдореВрд▓реНрдп рд╡рд╛рдВрдЫрд┐рдд рдмрд┐рдЯ рд╕реЗ рдкрд╣рд▓реЗ рдмрд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ: 00 ... 101ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдмрд┐рдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдирдВрдмрд░ 0 рдФрд░ 2 рд╣реИрдВред рдлрд┐рд░ рдирдВрдмрд░ 0 рдХреЗ рд▓рд┐рдП рдЗрдВрдбреЗрдХреНрд╕ рд╢реВрдиреНрдп рд╣реЛрдЧрд╛, рдФрд░ рдирдВрдмрд░ 2 рдХреЗ рд▓рд┐рдП рдпрд╣ 1 рд╣реЛрдЧрд╛, рдпрд╛рдиреА, рд╕рдмрдЯреНрд░реАрдЬрд╝ рдЙрдк-рд╕реАрд░реАрдЬрд╝ [0] рдФрд░ рд╕рдмрдЯреНрд░реАрдЬрд╝: 1 рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП 2 рд▓рд┐рдВрдХ рд╕реНрдЯреЛрд░ рдХрд░реЗрдЧрд╛ред ред
рд╡рд░реНрдг рдХреЗ рд▓рд┐рдП рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб:
func calcBitNum(char rune) (uint64, bool) {
рд╡рд░реНрдг рдХреЗ рд▓рд┐рдП рдиреЛрдб рдЗрдВрдбреЗрдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб:
func (trie *Trie) getSubTreeIndex(bitNum uint64) int { shifted := trie.characters << (64 - bitNum) return bits.OnesCount64(shifted) }
рджрд┐рдП рдЧрдП рд╡рд░реНрдг рдХреЗ рд▓рд┐рдП рдиреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдб:
func (trie *Trie) getSubTrie(char rune) (uint64, int, *Trie) { bitNum, _ := calcBitNum(char) subTrieId := trie.getSubTreeIndex(bitNum)
рдбрд╛рд▓рдиреЗ
рдПрдХ рддрддреНрд╡ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЗрдбрд╝ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рд╡рд░реНрдг (рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рднреА рдмрд╛рдж рд╡рд╛рд▓реЗ) рдЧрд╛рдпрдм рд╣реИ, рддреЛ рдЗрд╕реЗ рдмрд┐рдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╕рдмрдЯреНрд░реА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕ рд▓рд┐рдВрдХ рдХреЛ рд╕реНрд▓рд╛рдЗрд╕ рд╕рдмрдЯреНрд░реАрдЬрд╝ рдХреЗ рд╕рд╣реА рд╕реНрдерд╛рди рдкрд░ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╕рд╣реА рдЬрдЧрд╣ рдмрд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рддрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ)ред рдЬрдм рд╡реЗ рдХреБрдВрдЬреА рдХреЗ рдЕрдВрддрд┐рдо рд╡рд░реНрдг рддрдХ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ, рддреЛ рдбреЗрдЯрд╛ рдХреЛ рдЕрдВрддрд┐рдо рдЙрдкрдкреНрд░рдХрд╛рд░ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЦреЛрдЬ
рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдВрдЬреА рдкреЗрдбрд╝ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд░реВрдк рд╕реЗ "рдЪрд▓рддреА рд╣реИ"ред рдЬреИрд╕реЗ рд╣реА рдпрд╣ рдЦрддреНрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЧреЗ рдЙрдкрдкреНрд░рдХрд╛рд░ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдмрд╛рдж рдХреЗ рд╕рднреА рдЙрдкрдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдЪреБрдиреЗ рдЧрдП рд╣реИрдВ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛ рд╣реИред рд▓реМрдЯрд╛рдП рдЧрдП рдбреЗрдЯрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдВрдкреВрд░реНрдг рдХреБрдВрдЬреА рдХреЗ рд╕рдВрдпреЛрдЧ рд╕реЗ рдПрдХрд▓ рдиреЛрдб рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдпрд╛ рдХрдИ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЧ рд╕реЗ рдиреЛрдбреНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред
рдирд┐рд╖реНрдХрд╛рд╕рди
рдирд┐рд╖реНрдХрд╛рд╕рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╛рдХреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ (рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк) рдирд┐рдХрд▓реАред рдПрдХ рдХреБрдВрдЬреА рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреЗрдбрд╝ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рдиреЛрдбреНрд╕ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИ, рдПрдХ рдЕрд▓рдЧ рд╕реНрд▓рд╛рдЗрд╕ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдиреЛрдб рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрд▓рд╛рдЗрд╕ рд╢реВрдиреНрдп рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреЗрдбрд╝ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рд░реНрдЧ рдЖрдЧреЗ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЛрдбреНрд╕ рдХреЗ рд╕реНрд▓рд╛рдЗрд╕ рдореЗрдВ рдиреЛрдбреНрд╕ рдХрд╛ рдЕрдиреБрдХреНрд░рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЕрдВрдд рдореЗрдВ рдЯреБрдХрдбрд╝рд╛ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдмрд┐рдЯреНрд╕ рдХреЛ рдмрд┐рдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдиреЛрдбреНрд╕ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдо
рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЙрдкрд╕рд░реНрдЧ рд╡реГрдХреНрд╖ рд╣реИ рдЬреЛ рдЧрддрд┐ рдФрд░ рд╕реНрдореГрддрд┐ рдЦрдкрдд рдореЗрдВ рдЕрдиреНрдп рд╕рдордХрдХреНрд╖реЛрдВ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ (рдФрд╕рддрди, рд╕реНрдореГрддрд┐ рдореЗрдВ 30% рдХрдо рдФрд░ рдЕрдзрд┐рдХ рддреЗрдЬ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдПрдХ рдкреЗрдбрд╝ рдХреЗ рд╕рд╛рде рдмрд╣реБрдкрд░рдд рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рдирд╣реАрдВ рдерд╛, рдЬреЛ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЦреЛрдЬ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВред рдмреЗрд╢рдХ, рд╕рдорд╛рдзрд╛рди рдХрд╛рдлреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ (рд▓реИрдЯрд┐рди рд╡рд░реНрдг, рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдкреНрд░рдореБрдЦ рдШрдЯрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реАрдорд╛)ред
рдЙрдкрд╕рд░реНрдЧ рд╡реГрдХреНрд╖ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╢рдмреНрджрдХреЛрд╢, рдЦреЛрдЬ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдХреЛрдб рдбрд╛рд▓рдиреЗ, рдЦреЛрдЬ рдХрд░рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рджрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рд▓реЗрдЦ рдХреЛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрд░реЛрдд рдХреЛрдб
рдЬреАрдердм рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред