/** * Note: This file may contain artifacts of previous malicious infection. * However, the dangerous code has been removed, and the file is now safe to use. */ /** * @file * Pathologic text filter for Drupal. * * This input filter attempts to make sure that link and image paths will * always be correct, even when domain names change, content is moved from one * server to another, the Clean URLs feature is toggled, etc. */ /** * Implements hook_filter_info(). */ function pathologic_filter_info() { return array( 'pathologic' => array( 'title' => t('Correct URLs with Pathologic'), 'process callback' => '_pathologic_filter', 'settings callback' => '_pathologic_settings', 'default settings' => array( 'local_paths' => '', 'protocol_style' => 'full', ), // Set weight to 50 so that it will hopefully appear at the bottom of // filter lists by default. 50 is the maximum value of the weight menu // for each row in the filter table (the menu is hidden by JavaScript to // use table row dragging instead when JS is enabled). 'weight' => 50, ) ); } /** * Settings callback for Pathologic. */ function _pathologic_settings($form, &$form_state, $filter, $format, $defaults, $filters) { return array( 'reminder' => array( '#type' => 'item', '#title' => t('In most cases, Pathologic should be the last filter in the “Filter processing order” list.'), '#weight' => -10, ), 'protocol_style' => array( '#type' => 'radios', '#title' => t('Processed URL format'), '#default_value' => isset($filter->settings['protocol_style']) ? $filter->settings['protocol_style'] : $defaults['protocol_style'], '#options' => array( 'full' => t('Full URL (http://example.com/foo/bar)'), 'proto-rel' => t('Protocol relative URL (//example.com/foo/bar)'), 'path' => t('Path relative to server root (/foo/bar)'), ), '#description' => t('The Full URL option is best for stopping broken images and links in syndicated content (such as in RSS feeds), but will likely lead to problems if your site is accessible by both HTTP and HTTPS. Paths output with the Protocol relative URL option will avoid such problems, but feed readers and other software not using up-to-date standards may be confused by the paths. The Path relative to server root option will avoid problems with sites accessible by both HTTP and HTTPS with no compatibility concerns, but will absolutely not fix broken images and links in syndicated content.'), '#weight' => 10, ), 'local_paths' => array( '#type' => 'textarea', '#title' => t('All base paths for this site'), '#default_value' => isset($filter->settings['local_paths']) ? $filter->settings['local_paths'] : $defaults['local_paths'], '#description' => t('If this site is or was available at more than one base path or URL, enter them here, separated by line breaks. For example, if this site is live at http://example.com/ but has a staging version at http://dev.example.org/staging/, you would enter both those URLs here. If confused, please read Pathologic’s documentation for more information about this option and what it affects.', array('!docs' => 'http://drupal.org/node/257026')), '#weight' => 20, ), ); } /** * Pathologic filter callback. * * Previous versions of this module worked (or, rather, failed) under the * assumption that $langcode contained the language code of the node. Sadly, * this isn't the case. * @see http://drupal.org/node/1812264 * However, it turns out that the language of the current node isn't as * important as the language of the node we're linking to, and even then only * if language path prefixing (eg /ja/node/123) is in use. REMEMBER THIS IN THE * FUTURE, ALBRIGHT. * * The below code uses the @ operator before parse_url() calls because in PHP * 5.3.2 and earlier, parse_url() causes a warning of parsing fails. The @ * operator is usually a pretty strong indicator of code smell, but please don't * judge me by it in this case; ordinarily, I despise its use, but I can't find * a cleaner way to avoid this problem (using set_error_handler() could work, * but I wouldn't call that "cleaner"). Fortunately, Drupal 8 will require at * least PHP 5.3.5, so this mess doesn't have to spread into the D8 branch of * Pathologic. * @see https://drupal.org/node/2104849 * * @todo Can we do the parsing of the local path settings somehow when the * settings form is submitted instead of doing it here? */ function _pathologic_filter($text, $filter, $format, $langcode, $cache, $cache_id) { // Get the base URL and explode it into component parts. We add these parts // to the exploded local paths settings later. global $base_url; $base_url_parts = @parse_url($base_url . '/'); // Since we have to do some gnarly processing even before we do the *really* // gnarly processing, let's static save the settings - it'll speed things up // if, for example, we're importing many nodes, and not slow things down too // much if it's just a one-off. But since different input formats will have // different settings, we build an array of settings, keyed by format ID. $cached_settings = &drupal_static(__FUNCTION__, array()); if (!isset($cached_settings[$filter->format])) { $filter->settings['local_paths_exploded'] = array(); if ($filter->settings['local_paths'] !== '') { // Build an array of the exploded local paths for this format's settings. // array_filter() below is filtering out items from the array which equal // FALSE - so empty strings (which were causing problems. // @see http://drupal.org/node/1727492 $local_paths = array_filter(array_map('trim', explode("\n", $filter->settings['local_paths']))); foreach ($local_paths as $local) { $parts = @parse_url($local); // Okay, what the hellish "if" statement is doing below is checking to // make sure we aren't about to add a path to our array of exploded // local paths which matches the current "local" path. We consider it // not a match, if… // @todo: This is pretty horrible. Can this be simplified? if ( ( // If this URI has a host, and… isset($parts['host']) && ( // Either the host is different from the current host… $parts['host'] !== $base_url_parts['host'] // Or, if the hosts are the same, but the paths are different… // @see http://drupal.org/node/1875406 || ( // Noobs (like me): "xor" means "true if one or the other are // true, but not both." (isset($parts['path']) xor isset($base_url_parts['path'])) || (isset($parts['path']) && isset($base_url_parts['path']) && $parts['path'] !== $base_url_parts['path']) ) ) ) || // Or… ( // The URI doesn't have a host… !isset($parts['host']) ) && // And the path parts don't match (if either doesn't have a path // part, they can't match)… ( !isset($parts['path']) || !isset($base_url_parts['path']) || $parts['path'] !== $base_url_parts['path'] ) ) { // Add it to the list. $filter->settings['local_paths_exploded'][] = $parts; } } } // Now add local paths based on "this" server URL. $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path']); $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path'], 'host' => $base_url_parts['host']); // We'll also just store the host part separately for easy access. $filter->settings['base_url_host'] = $base_url_parts['host']; $cached_settings[$filter->format] = $filter->settings; } // Get the language code for the text we're about to process. $cached_settings['langcode'] = $langcode; // And also take note of which settings in the settings array should apply. $cached_settings['current_settings'] = &$cached_settings[$filter->format]; // Now that we have all of our settings prepared, attempt to process all // paths in href, src, action or longdesc HTML attributes. The pattern below // is not perfect, but the callback will do more checking to make sure the // paths it receives make sense to operate upon, and just return the original // paths if not. return preg_replace_callback('~ (href|src|action|longdesc)="([^"]+)~i', '_pathologic_replace', $text); } /** * Process and replace paths. preg_replace_callback() callback. */ function _pathologic_replace($matches) { // Get the base path. global $base_path; // Get the settings for the filter. Since we can't pass extra parameters // through to a callback called by preg_replace_callback(), there's basically // three ways to do this that I can determine: use eval() and friends; abuse // globals; or abuse drupal_static(). The latter is the least offensive, I // guess… Note that we don't do the & thing here so that we can modify // $cached_settings later and not have the changes be "permanent." $cached_settings = drupal_static('_pathologic_filter'); // If it appears the path is a scheme-less URL, prepend a scheme to it. // parse_url() cannot properly parse scheme-less URLs. Don't worry; if it // looks like Pathologic can't handle the URL, it will return the scheme-less // original. // @see https://drupal.org/node/1617944 // @see https://drupal.org/node/2030789 if (strpos($matches[2], '//') === 0) { if (isset($_SERVER['https']) && strtolower($_SERVER['https']) === 'on') { $matches[2] = 'https:' . $matches[2]; } else { $matches[2] = 'http:' . $matches[2]; } } // Now parse the URL after reverting HTML character encoding. // @see http://drupal.org/node/1672932 $original_url = htmlspecialchars_decode($matches[2]); // …and parse the URL $parts = @parse_url($original_url); // Do some more early tests to see if we should just give up now. if ( // If parse_url() failed, give up. $parts === FALSE || ( // If there's a scheme part and it doesn't look useful, bail out. isset($parts['scheme']) // We allow for the storage of permitted schemes in a variable, though we // don't actually give the user any way to edit it at this point. This // allows developers to set this array if they have unusual needs where // they don't want Pathologic to trip over a URL with an unusual scheme. // @see http://drupal.org/node/1834308 // "files" and "internal" are for Path Filter compatibility. && !in_array($parts['scheme'], variable_get('pathologic_scheme_whitelist', array('http', 'https', 'files', 'internal'))) ) // Bail out if it looks like there's only a fragment part. || (isset($parts['fragment']) && count($parts) === 1) ) { // Give up by "replacing" the original with the same. return $matches[0]; } if (isset($parts['path'])) { // Undo possible URL encoding in the path. // @see http://drupal.org/node/1672932 $parts['path'] = rawurldecode($parts['path']); } else { $parts['path'] = ''; } // Check to see if we're dealing with a file. // @todo Should we still try to do path correction on these files too? if (isset($parts['scheme']) && $parts['scheme'] === 'files') { // Path Filter "files:" support. What we're basically going to do here is // rebuild $parts from the full URL of the file. $new_parts = @parse_url(file_create_url(file_default_scheme() . '://' . $parts['path'])); // If there were query parts from the original parsing, copy them over. if (!empty($parts['query'])) { $new_parts['query'] = $parts['query']; } $new_parts['path'] = rawurldecode($new_parts['path']); $parts = $new_parts; // Don't do language handling for file paths. $cached_settings['is_file'] = TRUE; } else { $cached_settings['is_file'] = FALSE; } // Let's also bail out of this doesn't look like a local path. $found = FALSE; // Cycle through local paths and find one with a host and a path that matches; // or just a host if that's all we have; or just a starting path if that's // what we have. foreach ($cached_settings['current_settings']['local_paths_exploded'] as $exploded) { // If a path is available in both… if (isset($exploded['path']) && isset($parts['path']) // And the paths match… && strpos($parts['path'], $exploded['path']) === 0 // And either they have the same host, or both have no host… && ( (isset($exploded['host']) && isset($parts['host']) && $exploded['host'] === $parts['host']) || (!isset($exploded['host']) && !isset($parts['host'])) ) ) { // Remove the shared path from the path. This is because the "Also local" // path was something like http://foo/bar and this URL is something like // http://foo/bar/baz; or the "Also local" was something like /bar and // this URL is something like /bar/baz. And we only care about the /baz // part. $parts['path'] = drupal_substr($parts['path'], drupal_strlen($exploded['path'])); $found = TRUE; // Break out of the foreach loop break; } // Okay, we didn't match on path alone, or host and path together. Can we // match on just host? Note that for this one we are looking for paths which // are just hosts; not hosts with paths. elseif ((isset($parts['host']) && !isset($exploded['path']) && isset($exploded['host']) && $exploded['host'] === $parts['host'])) { // No further editing; just continue $found = TRUE; // Break out of foreach loop break; } // Is this is a root-relative url (no host) that didn't match above? // Allow a match if local path has no path, // but don't "break" because we'd prefer to keep checking for a local url // that might more fully match the beginning of our url's path // e.g.: if our url is /foo/bar we'll mark this as a match for // http://example.com but want to keep searching and would prefer a match // to http://example.com/foo if that's configured as a local path elseif (!isset($parts['host']) && (!isset($exploded['path']) || $exploded['path'] === $base_path)) { $found = TRUE; } } // If the path is not within the drupal root return original url, unchanged if (!$found) { return $matches[0]; } // Okay, format the URL. // If there's still a slash lingering at the start of the path, chop it off. $parts['path'] = ltrim($parts['path'],'/'); // Examine the query part of the URL. Break it up and look through it; if it // has a value for "q", we want to use that as our trimmed path, and remove it // from the array. If any of its values are empty strings (that will be the // case for "bar" if a string like "foo=3&bar&baz=4" is passed through // parse_str()), replace them with NULL so that url() (or, more // specifically, drupal_http_build_query()) can still handle it. if (isset($parts['query'])) { parse_str($parts['query'], $parts['qparts']); foreach ($parts['qparts'] as $key => $value) { if ($value === '') { $parts['qparts'][$key] = NULL; } elseif ($key === 'q') { $parts['path'] = $value; unset($parts['qparts']['q']); } } } else { $parts['qparts'] = NULL; } // If we don't have a path yet, bail out. if (!isset($parts['path'])) { return $matches[0]; } // If we didn't previously identify this as a file, check to see if the file // exists now that we have the correct path relative to DRUPAL_ROOT if (!$cached_settings['is_file']) { $cached_settings['is_file'] = !empty($parts['path']) && is_file(DRUPAL_ROOT . '/'. $parts['path']); } // Okay, deal with language stuff. if ($cached_settings['is_file']) { // If we're linking to a file, use a fake LANGUAGE_NONE language object. // Otherwise, the path may get prefixed with the "current" language prefix // (eg, /ja/misc/message-24-ok.png) $parts['language_obj'] = (object) array('language' => LANGUAGE_NONE, 'prefix' => ''); } else { // Let's see if we can split off a language prefix from the path. if (module_exists('locale')) { // Sometimes this file will be require_once-d by the locale module before // this point, and sometimes not. We require_once it ourselves to be sure. require_once DRUPAL_ROOT . '/includes/language.inc'; list($language_obj, $path) = language_url_split_prefix($parts['path'], language_list()); if ($language_obj) { $parts['path'] = $path; $parts['language_obj'] = $language_obj; } } } // If we get to this point and $parts['path'] is now an empty string (which // will be the case if the path was originally just "/"), then we // want to link to . if ($parts['path'] === '') { $parts['path'] = ''; } // Build the parameters we will send to url() $url_params = array( 'path' => $parts['path'], 'options' => array( 'query' => $parts['qparts'], 'fragment' => isset($parts['fragment']) ? $parts['fragment'] : NULL, // Create an absolute URL if protocol_style is 'full' or 'proto-rel', but // not if it's 'path'. 'absolute' => $cached_settings['current_settings']['protocol_style'] !== 'path', // If we seem to have found a language for the path, pass it along to // url(). Otherwise, ignore the 'language' parameter. 'language' => isset($parts['language_obj']) ? $parts['language_obj'] : NULL, // A special parameter not actually used by url(), but we use it to see if // an alter hook implementation wants us to just pass through the original // URL. 'use_original' => FALSE, ), ); // Add the original URL to the parts array $parts['original'] = $original_url; // Now alter! // @see http://drupal.org/node/1762022 drupal_alter('pathologic', $url_params, $parts, $cached_settings); // If any of the alter hooks asked us to just pass along the original URL, // then do so. if ($url_params['options']['use_original']) { return $matches[0]; } // If the path is for a file and clean URLs are disabled, then the path that // url() will create will have a q= query fragment, which won't work for // files. To avoid that, we use this trick to temporarily turn clean URLs on. // This is horrible, but it seems to be the sanest way to do this. // @see http://drupal.org/node/1672430 // @todo Submit core patch allowing clean URLs to be toggled by option sent // to url()? if (!empty($cached_settings['is_file'])) { $cached_settings['orig_clean_url'] = !empty($GLOBALS['conf']['clean_url']); if (!$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = TRUE; } } // Now for the url() call. Drumroll, please… $url = url($url_params['path'], $url_params['options']); // If we turned clean URLs on before to create a path to a file, turn them // back off. if ($cached_settings['is_file'] && !$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = FALSE; } // If we need to create a protocol-relative URL, then convert the absolute // URL we have now. if ($cached_settings['current_settings']['protocol_style'] === 'proto-rel') { // Now, what might have happened here is that url() returned a URL which // isn't on "this" server due to a hook_url_outbound_alter() implementation. // We don't want to convert the URL in that case. So what we're going to // do is cycle through the local paths again and see if the host part of // $url matches with the host of one of those, and only alter in that case. $url_parts = @parse_url($url); if (!empty($url_parts['host']) && $url_parts['host'] === $cached_settings['current_settings']['base_url_host']) { $url = _pathologic_url_to_protocol_relative($url); } } // Apply HTML character encoding, as is required for HTML attributes. // @see http://drupal.org/node/1672932 $url = check_plain($url); // $matches[1] will be the tag attribute; src, href, etc. return " {$matches[1]}=\"{$url}"; } /** * Convert a full URL with a protocol to a protocol-relative URL. * * As the Drupal core url() function doesn't support protocol-relative URLs, we * work around it by just creating a full URL and then running it through this * to strip off the protocol. * * Though this is just a one-liner, it's placed in its own function so that it * can be called independently from our test code. */ function _pathologic_url_to_protocol_relative($url) { return preg_replace('~^https?://~', '//', $url); } ОВЕЯННЫЕ СЛАВОЙ | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

ОВЕЯННЫЕ СЛАВОЙ

Так называется хроникально-документальная книга, вышедшая из печати в одном из столичных изданий в канун 65-летия Победы советского народа в Великой Отечественной войне 1941-1945гг. В ней собраны материалы об истории, героических подвигах воинов, партизан и подпольщиков, воспитанников оборонного общества 22 населенных пунктов республики, совершенных в годы минувшей войны. Эти населенные пункты Указом Президента Республики Беларусь Александра Лукашенко от 29 июня 2009 года награждены вымпелом «За мужество и стойкость в годы Великой Отечественной войны» в связи с празднованием 65-й годовщины освобождения Республики Беларусь от немецко-фашистских захватчиков. Напомним читателям о них. Это – Брест, Бобруйск, Борисов, Витебск, Гомель, Гродно, Жлобин, Заславль, Кличев, Кричев, Лида, Минск, Могилев, Молодечно, Орша, Полоцк, Скидель, Бегомль, Лоев, Октябрьский (Карпиловка), Ушачи, Острошицкий Городок.
В предисловии к новому изданию председатель центрального совета ДОСААФ генерал-майор Анатолий Степук отмечает:
«Общеизвестно, что Великая Победа вершилась не только в крупных сражениях и операциях, но и в боях за каждую высоту, каждый населенный пункт, каждый город, каждую веску, независимо от их размеров. Награждение вымпелом «За мужество и стойкость в годы Великой Оте­чественной войны – символ мужества и стойкости, воинской доблести и отваги, героизма и самоотверженности солдат, партизан, подпольщиков, сражавшихся против оккупантов. Это признание того значимого положения, которое заняли города и населенные пункты Беларуси в истории Великой Отечественной войны. Это вечная память всем тем, кто отдал свои жизни за свободу и независимость нашей страны».
Читаешь книгу «Овеянные славой» страницу за страницей и приходишь к выводу, что авторский коллектив – член Белорусского союза журналистов Николай Шевченко, Екатерина Петова, Василий Лихторович, во главе с секретарем Минского ГК КПБ полковником запаса Владимиром Сероштаном – нашел интересную и очень привлекательную форму изложения материала: каждый населенный пункт, награжденный вымпелом, предстает в историческом повествовании, начиная с момента возникновения до наших дней.
Нельзя без волнения, восхищения и читательского сопереживания читать главы книги, посвященные героизму наших соотечественников, вставших как один на защиту от врага родного края. В интересных и содержательных документальных материалах авторы убедительно показали, как уже в первые недели и месяцы на белорусской земле удалось сорвать гитлеровские планы молниеносной войны. Здесь шагнули в бессмертие бойцы и командиры – защитники Брестской крепости, превратившие Цитадель над Бугом в неприступную боевую твердыню, оказавшие яростное сопротивление врагу, нанося ему большой урон.
С началом Великой Отечественной вой­ны упорные кровопролитные бои развернулись на Березине в районе Борисова, где на пути войск вермахта встали воины 1-й Московской стрелковой дивизии под командованием полковника Я.Г.Крейзера и курсантские батальоны Борисовского танкотехнического училища под командованием корпусного комиссара И.З.Сусайкова.
Героически сражались с врагом на подступах к Гродно воины 86-го Августовского пограничного отряда. 3-я застава этого отряда во главе с лейтенантом Виктором Усовым в течение десяти часов отбивала атаки целого батальона гитлеровцев. Посмертно отважный пограничник удостоен звания Героя Советского Союза.
В книге приводятся примеры героической обороны Могилева 3–26 июля 1941 года, когда, несмотря на многократное превосходство противника в живой силе и технике, части Красной Армии, бойцы народного ополчения, население города показали образцы стойкости, героизма и мужества, верность воинскому долгу. Особо ожесточенные бои шли на Буйничском поле, где танковым немецким армадам противостояли пехотинцы 388-го стрелкового полка под командованием полковника Семена Кутепова и огневые расчеты 340-го артполка под командованием полковника Ивана Мазалова. Жертвы, принесенные героями Могилева, не пропали даром: в боях за город враг потерял большое количество боевой техники, и в самый критический момент Смоленского сражения значительные силы врага оказались скованными и не смогли с ходу прорваться на дальние подступы к столице СССР городу Москве.
Красной нитью всего содержания авторы книги закрепляют неопровержимое утверждение о том, что белорусский народ, принявший на себя вероломный удар фашистских захватчиков 22 июня 1941 года, не склонил головы перед оккупантами. Истерзанная, но непокоренная Беларусь, благодаря исключительному мужеству и самоотверженности воинов, партизан и подпольщиков, всего населения, превратилась в неприступную крепость и вошла в историю как республика-партизанка. В числе удостоенных вымпела «За мужество и стойкость в годы Великой Отечественной войны» – поселок Октябрьский (Карпиловка) Гомельской области. В издании упоминается о том, что здесь среди первых в республике начал действовать партизанский отряд под командованием секретаря Октябрьского райкома партии Т.П.Бумажкова. Его заместителем был активист Осоавиахима Ф.И.Павловский. Под их руководством народные мстители вели беспощадную войну с оккупантами, взрывали мосты, выводили из строя живую силу и боевую технику, занимались разведкой и диверсиями во вражеских тылах. За умелые и отважные действия против оккупантов, уничтожение их живой силы и боевой техники Указом Президиума Верховного Совета СССР 6 августа 1941 года Т.П.Бумажкову и Ф.И.Павловскому первыми из партизан Великой Отечественной войны было присвоено высокое звание Героя Советского Союза.
Город Бобруйск – один из 22-ти населенных пунктов республики, награжденных вымпелом. За весь период вражеской оккупации не прекращалась беспощадная борьба бобруйских патриотов с врагом. Первые подпольные антифашистские группы возникли в конце июля 1941 года. В городе действовало 29 таких подпольных групп общей численностью более 500 человек. Подпольщики создавали разветвленную агентурную сеть, занимались сбором оружия, расклеиванием листовок, подбором людей для дальнейшей отправки в партизанские отряды. В ноябре-декабре 1941 года из подпольщиков Бобруйска был создан первый 752-й партизанский отряд (командир В.И.Ливенцев). Позднее на его базе образована 1-я Бобруйская бригада, которая действовала на территории Осиповичского и Бобруйского районов. Всего за время боевых действий 1-й Бобруйской бригадой было пущено под откос 57 вражеских эшелонов с живой силой и боевой техникой, уничтожено более 5 тысяч гитлеровских солдат, офицеров и полицейских. Командиру партизанской бригады В.И.Ливенцеву было присвоено звание Героя Советского Союза.
Весом вклад в общую Победу и воспитанников оборонного Общества республики. Именно в это суровое время со всей очевидностью проявилась исключительная заслуга оборонного общества в подготовке специалистов для армии и флота. В годы Великой Отечественной войны немеркнущей славой покрыли себя тысячи наших соотечественников, занимавшихся в осоавиахимовских аэроклубах, и тех, кто прошли начальную военную подготовку и получили военные специальности на учебных пунктах Осоавиахима. Члены оборонного общества стали костяком партизанского движения, тысячи из них влились в ряды народных мстителей. Более 45 процентов партизан Беларуси составляла молодежь в возрасте от 18 до 25 лет, большинство из которых прошли военную подготовку на учебных пунктах Осоавиахима, имели по нескольку оборонных значков. Физически закаленные, овладевшие начальными военными навыками, молодые партизаны показывали образцы мужества и героизма в борьбе с врагом, выполняя наиболее ответственные задачи. Рассказывая о городе-герое Минске, авторы книги указывают, что только в Минской области в годы войны около 30 тысяч осоавиахимовцев стали партизанами. В издании отмечается о том, что первому из народных мстителей Беларуси звание Героя Советского Союза было присвоено осоавиахимовцу, члену стрелкового кружка деревни Курино Витебского района Михаилу Федоровичу Сильницкому. Прикрывая отход отряда, он, будучи раненым, продолжал вести неравный бой. Находясь в окружении гитлеровцев, отважный партизан открыл огонь из нагана, а затем вступил с врагом в рукопашный бой. Михаил погиб, как герой.
В книге приводится немало примеров активных, героических действий воспитанников оборонного общества. Лучшим «Ворошиловским стрелком» в Минской профтехшколе являлся Анатолий Волох. Хорошая физическая закалка, воинская смекалка и сноровка определили его судьбу. В Красной Армии он стал разведчиком. Много ответственных, сложных и смелых заданий пришлось выполнять лихому разведчику. Так, 28 августа 1943 года отважный воин напал на вражескую автомашину, уничтожил трех офицеров, а четвертого взял в плен. В октябре 1943 года, находясь в разведке на подступах к Днепру, Анатолий Волох погиб. Ему посмертно присвоено звание Героя Советского Союза. Именем героя названа одна из улиц столицы.
Одним из организаторов, а впоследствии и командиром Гомельского полка народного ополчения был начальник отдела военного обучения областного совета Осоавиахима капитан Ф.Е.Уткин. Полк состоял из 3-х батальонов и насчитывал в своих рядах 2200 бойцов. Вместе с войсками 67-го стрелкового полка они выступили на защиту своего родного города. Два дня они отбивали яростные атаки врага, который концентрировал на этом направлении 25 пехотных дивизий, поддержанных танковыми и авиационными частями. Около 300 гитлеровцев были уничтожены, либо захвачены в плен. Участник Гражданской войны, работавший в Осоавиахиме в Борисове, Белостоке, Гомеле, Ф.Е.Уткин вместе с ополченцами отбил 2 вражеские атаки, однако был в бою смертельно ранен. Его именем названа одна из улиц Гомеля.
Немеркнущей славой покрыли себя тысячи наших соотечественников, занимавшихся в осоавиахимовских аэроклубах. Более 50 воспитанников аэроклубов Белоруссии присвоено высокое звание Героя Советского Союза. Среди них известные всей стране имена – наш прославленный земляк, дважды Герой Советского Союза Павел Яковлевич Головачев, выпускник Гомельского аэроклуба. Прославленный летчик-истребитель совершил в небе войны 457 боевых вылетов, в 125 воздушных боях сбил лично 31 и в группе 1 самолет противника.
В истории ДОСААФ, ВВС достойное место занимает имя воспитанника Бобруйского аэроклуба Бориса Ивановича Ковзана, который за годы войны совершил 359 боевых вылетов, лично сбил 20 фашистских самолетов. Он четыре раза таранил самолеты противника и оставался живым! Такого не удавалось сделать никому в мире.
 
История воздушных сражений не знала и подвига, совершенного 6 июля 1943 года при выполнении боевого задания в районе Курской дуги славным сыном белорусского народа, воспитанником Витебского аэро­клуба Александром Константиновичем Горовцом, уничтожившим в одном воздушном бою 9 немецких бомбардировщиков.
Раскрывая примеры героической борьбы белорусского народа в годы Великой Отечественной войны, авторы книги показывают и вклад партизан и подпольщиков населенных пунктов при освобождении Беларуси от немецко-фашистских захватчиков в ходе Белорусской стратегической операции «Багратион» летом 1944 года.
Несомненным достоинством издания является то, что при описании каждого населенного пункта называются памятники, установленные в честь героев-земляков, воинов-освободителей. Примечательно и то, что издание богато иллюстрировано фотографиями – портретами героев-партизан и подпольщиков, памятных мест населенных пунктов, награжденных вымпелом.
Обратил внимание еще на одну осо­бенность издания – в нем авторы, раскрывая историю, героизм партизан, подпольщиков и жителей того или иного населенного пункта, награжденного вымпелом, в краткой и содержательной форме излагают современную деятельность по решению государственно значимых задач, подготовки юношества к военной службе и патриотическому воспитанию молодежи организационных структур и организаций ДОСААФ, расположенных в этих пунктах.
Книга «Овеянные славой», подготовленная по инициативе центрального совета оборонного общества в целях увековечения подвига воинов Красной Армии, трудящихся, партизан и подпольщиков, совершенного при защите и освобождении белорусских городов и других населенных пунктов, – достойный подарок тем, кто выжил и победил в самой кровопролитной и священной войне.
Твердо убежден, что книгу с интересом прочтут и ветераны, и молодежь. И, прочтя, поймут, какой высокой ценой нам досталась Победа над коварным и беспощадным противником, и как важно хранить героическое наследие, боевые и трудовые традиции белорусского народа, его Вооруженных Сил, передавать молодому поколению самое святое чувство – любовь к Родине, суверенной и независимой Беларуси.
Александр КОСЕНКО,
заведующий отделом организационно-партийной работы ЦК КПБ, полковник в отставке,
член Белорусского союза журналистов
 

Автор: 
Александр КОСЕНКО
Номер газеты: