Implements an image recognition captcha.

"; break; case 'admin/modules#description': case 'admin/modules/textimage': case 'admin/textimage': $output = t('Implements an image recognition captcha.'); break; } return $output; } function textimage_captchachallenge(&$form) { $form['captcha_response'] = array ( '#type' => 'textfield', '#title' => t('Captcha Validation'), '#default_value' => '', '#required' => TRUE, '#validate' => array('_captcha_validate' => array()), '#description' => t('Please type in the letters/numbers that are shown in the image above.'), '#prefix' => 'Captcha Image: you will need to recognize the text in it.', ); return $form; } function textimage_captchavalidate(&$captcha_word, &$correct) { $captcha_word = drupal_strtolower($captcha_word); if (($_SESSION['captcha'] != '') && $captcha_word == $_SESSION['captcha']) { $correct = true; } else { $correct = false; form_set_error('captcha_response', t('The image verification code you entered is incorrect.')); } } /** * Implementation of hook_menu(). */ function textimage_menu($may_cache) { $items = array(); $suffix = ''; if (arg(2)!=null) $suffix='/'.arg(2); $items[] = array( 'path' => '_textimage/image'.$suffix, 'title' => t('textimage'), 'callback' => '_textimage_image', 'access' => user_access('access textimages'), 'type' => MENU_CALLBACK ); return $items; } function textimage_perm() { return array('access textimages'); } function textimage_settings() { $fonts_path = variable_get("textimage_fonts_path", ""); $images_path = variable_get("textimage_images_path", ""); //check for GD if (!function_exists(imagecreate)) drupal_set_message(t('Image library not available. Textimage needs the GD library extension to be installed. Please install GD.')); //check for TTF support elseif (!function_exists(imagettftext)) drupal_set_message(t('Your image library does not seem to have TrueType font support. Textimage will work, but will use the default inbuilt font.'),'status'); //check for valid font path elseif ($fonts_path!="" && !is_dir($fonts_path)) drupal_set_message(t('The current font path is invalid. The default font will be used.')); //check for valid image path if ($images_path!="" && !is_dir($images_path)) drupal_set_message(t('The current images path is invalid. No images will be used.')); //Fonts settings $form['fonts'] = array( '#type' => 'fieldset', '#title' => t('Fonts settings'), '#collapsible' => TRUE, '#collapsed' => FALSE ); $form['fonts']['textimage_use_only_upper'] = array( '#type' => 'checkbox', '#title' => t('Use only Uppercase'), '#default_value' => variable_get('textimage_use_only_upper',0) ); $form['fonts']['textimage_fonts_path'] = array( '#type' => 'textfield', '#title' => t('TrueType Fonts Path'), '#default_value' => $fonts_path, '#size' => 30, '#maxlength' => 255, '#description' => t('Location of the directory where the Truetype (.ttf) fonts are stored. If you do not provide any fonts, the module will use the default font for text. Relative paths will be resolved relative to the Drupal installation directory.'), ); $form['fonts']['textimage_font_size'] = array( '#type' => 'textfield', '#title' => t('Font Size'), '#default_value' => variable_get('textimage_font_size',24), '#size' => 5, '#maxlength' => 2, '#description' => t('Font size of Captcha text (in pixels).'), '#validate' => array("_textimage_number_validate" => array("textimage_font_size")), ); $form['fonts']['textimage_char_spacing_max'] = array( '#type' => 'textfield', '#title' => t('Character Spacing'), '#default_value' => variable_get('textimage_char_spacing_max',10), '#size' => 5, '#maxlength' => 4, '#description' => t('Sets the kerning between letters in Captcha. Higher numbers indicate more spacing.'), '#validate' => array("_textimage_number_validate" => array("textimage_char_spacing_max")), ); $form['fonts']['textimage_char_jiggle_amount'] = array( '#type' => 'textfield', '#title' => t('Character Jiggle'), '#default_value' => variable_get('textimage_char_jiggle_amount',5), '#size' => 5, '#maxlength' => 2, '#description' => t('Sets the amount of up and down movement in the Captcha letters. Higher numbers indicate more jiggling.'), '#validate' => array("_textimage_number_validate" => array("textimage_char_jiggle_amount")), ); $form['fonts']['textimage_char_rotate_amount'] = array( '#type' => 'textfield', '#title' => t('Character Rotation'), '#default_value' => variable_get('textimage_char_rotate_amount',5), '#size' => 5, '#maxlength' => 2, '#description' => t('Sets the amount of rotation in the Captcha letters (in degrees, only works with non-default fonts).'), '#validate' => array("_textimage_number_validate" => array("textimage_char_rotate_amount")), ); $form['fonts']['textimage_char_size_amount'] = array( '#type' => 'textfield', '#title' => t('Character Size Adjustment'), '#default_value' => variable_get('textimage_char_size_amount',2), '#size' => 5, '#maxlength' => 2, '#description' => t('Sets the amount of variation in size between the different letters in the Captcha (in pixels).'), '#validate' => array("_textimage_number_validate" => array("textimage_char_size_amount")), ); //Image settings $form['images'] = array( '#type' => 'fieldset', '#title' => t('Image settings'), '#collapsible' => TRUE, '#collapsed' => FALSE ); $form['images']['textimage_images_path'] = array( '#type' => 'textfield', '#title' => t('Background Images Path'), '#default_value' => $images_path, '#size' => 30, '#maxlength' => 255, '#description' => t('Location of the directory where the background images are stored. If you do not provide a directory, solid colors will be used. Relative paths will be resolved relative to the Drupal installation directory.'), ); $form['images']['textimage_image_noise'] = array( '#type' => 'textfield', '#title' => t('Image Noise (pixels)'), '#default_value' => variable_get('textimage_image_noise',4), '#size' => 5, '#maxlength' => 4, '#description' => t('Sets the amount of noise (random pixels) in the Captcha image. Higher numbers indicate more noise.'), '#validate' => array("_textimage_number_validate" => array("textimage_image_noise")), ); $form['images']['textimage_image_lines'] = array( '#type' => 'textfield', '#title' => t('Image Noise (lines)'), '#default_value' => variable_get('textimage_image_lines',4), '#size' => 5, '#maxlength' => 4, '#description' => t('Sets the amount of noise (random lines) in the Captcha image. Higher numbers indicate more noise.'), '#validate' => array("_textimage_number_validate" => array("textimage_image_lines")), ); $form['images']['textimage_image_margin'] = array( '#type' => 'textfield', '#title' => t('Image Margin'), '#default_value' => variable_get('textimage_image_margin',10), '#size' => 5, '#maxlength' => 4, '#description' => t('Set a distance between the Captcha letters and the edges of the image.'), '#validate' => array("_textimage_number_validate" => array("textimage_image_margin")), ); $form['info'] = array( '#type' => 'fieldset', '#title' => t('Image and font information'), '#collapsible' => TRUE, '#collapsed' => FALSE ); if (isset($fonts_path)) { $imagefontinfo .= t('Number of fonts found: ').count(_textimage_font_list()); } if (isset($images_path)) { $imagefontinfo .= '
'.t('Number of background images found: ').count(_textimage_image_list()); } $gdinfo = gd_info(); $imagefontinfo .= '
'.t('GD Version: ').$gdinfo["GD Version"]; $imagefontinfo .= '
'.t(' FreeType Support: '); $imagefontinfo .= ($gdinfo["FreeType Support"]==true) ? 'True' : 'False'; $imagefontinfo .= '
'; $form['info']['captcha_info'] = array ( '#type' => 'item', '#value' => $imagefontinfo, ); return $form; } function textimage_settings_form_validate ($form_id,$form) { //check for valid font path if ($form['textimage_fonts_path'] !="" && !is_dir($form['textimage_fonts_path'])) form_set_error('textimage_fonts_path', t('The entered font path is invalid')); //check for valid image path if ($form['textimage_images_path'] !="" && !is_dir($form['textimage_images_path'])) form_set_error('textimage_images_path', t('The entered image path is invalid')); } function _textimage_number_validate ($field,$fieldName) { if (!is_numeric($field['#value'])) { form_set_error($fieldName,t("The value for")." ".t($field['#title'])." ".t("must be a number")); } } /** * Prints an image containing a textimage code. */ function _textimage_image() { //if we don't have GD2 functions, we can't generate the image if (!function_exists('imagecreatetruecolor')) return; // Set headers header('Expires: Mon, 01 Jan 1997 05:00:00 GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', false); header('Pragma: no-cache'); header('Content-type: image/png'); $string = _textimage_code(); // Get truetype font list $fonts = _textimage_font_list(); // Get the background images list $images = _textimage_image_list(); // Randomization amounts: $charSpacingMax = variable_get('textimage_char_spacing_max',10); // Letter spacing max (pixels) $charSpacingMin = max($charSpacingMax*.5,0); // Letter spacing minimum (pixels) $charJiggleAmount = variable_get('textimage_char_jiggle_amount',5); // Up and down randomization (pixels) $charRotateAmount = variable_get('textimage_char_rotate_amount',5); // Character rotation amount (degrees) $charSizeAmount = variable_get('textimage_char_size_amount',2); // Character size amount (pixels) $imageRotateAmount = variable_get('captcha_image_rotate_amount',12); // Image rotation amount (degrees) // Static amounts: $charInitialSize = variable_get('textimage_font_size',24); // Initial Font $imageNoise = variable_get('textimage_image_noise',4); // Amount of noise added to image $imageLines = variable_get('textimage_image_lines',4); // Amount of noise added to image $imageMargin = variable_get('textimage_image_margin',10); // Margin around image (pixels) // write text using a truetype font if (function_exists(imagettftext) && count($fonts) > 0) { // Initialize variables for the loop $characterDetails = array(); // contains the final info about each character // Build a list of character settings for the captcha string for ($i=0;$i $charSize, "angle" => $charAngle, "x" => $x, "y" => $y, "color" => $foreground, "font" => $font, "char" => $char ); // Increment the image size $imageWidth = $x + $charWidth; $imageHeight = max($imageHeight,$y+$charJiggleAmount); } // Create the image based off the string length and margin if (count($images) > 0) { // We're going to be using an image, and need a tranparent background to start with $im = _textimage_create_transparent_image($imageWidth+2*$imageMargin, $imageHeight+2*$imageMargin); $noisecolor = imagecolorallocatealpha($im, 0, 0, 0, 127); } else { // Just make a plain-jane color brackground $im = imagecreatetruecolor($imageWidth+2*$imageMargin, $imageHeight+2*$imageMargin); $background = imagecolorallocate($im, rand(180, 250), rand(180, 250), rand(180, 250)); $noisecolor = $background; imagefill($im, 0, 0, $background); } // Specify colors to be used in the image $foreground = imagecolorallocate($im, rand(0, 80), rand(0, 80), rand(0, 80)); foreach($characterDetails as $char) { // draw character imagettftext($im,$char['size'],$char['angle'],$char['x']+$imageMargin,$char['y']+$imageMargin,$foreground,$char['font'],$char['char']); } } else { // write text using a built-in font $x = 0; $y = 0; $imageWidth = 60 + drupal_strlen($string)*$charSpacingMax*.35; $imageHeight = 30 + $charJiggleAmount; // Create the image if (count($images) > 0 && function_exists(imagecolorallocatealpha)) { // We're going to be using an image, and need a tranparent background to start with $im = _textimage_create_transparent_image($imageWidth, $imageHeight); $noisecolor = imagecolorallocatealpha($im, 0, 0, 0, 127); } else { // Just make a plain-jane color brackground $im = imagecreatetruecolor($imageWidth, $imageHeight); $background = imagecolorallocate($im, rand(180, 250), rand(180, 250), rand(180, 250)); $noisecolor = $background; imagefill($im, 0, 0, $background); } // Add the text for ($i=0;$i 0) { // Prepare a larger image with a background image $im2 = _textimage_create_transparent_image($imageWidth, $imageHeight); } else { // Prepare a larger image with a solid color $im2 = imagecreatetruecolor($imageWidth, $imageHeight); imagefill($im2, 0, 0, $background); } $result = imagecopyresampled ($im2, $im, $imageMargin, $imageMargin, 0, 0, $imageWidth, $imageHeight, imagesx($im), imagesy($im)); $im = $im2; } // strikethrough imageline($im, rand(0, 120), rand(0, 120), rand(0, 120), rand(0, 120), $foreground); // Add Noise for ($x=0; $x<$imageWidth; $x++) { for ($row=0; $row<$imageNoise;$row++) { $y = rand(0,$imageHeight); imagesetpixel($im, $x, $y, $noisecolor); } } // Add Lines and Ellipses for ($x=0; $x<$imageLines;$x++) { imageline($im, rand(0, $imageWidth), rand(0, $imageHeight), rand(0, $imageWidth), rand(0, $imageHeight), $noisecolor); imageellipse($im, rand(0, $imageWidth), rand(0, $imageHeight), rand(0, $imageWidth), rand(0, $imageHeight), $noisecolor); } // Fill image with a random background image if available if (count($images) > 0) { $image = $images[rand(0,count($images)-1)]; _textimage_apply_background_image($im,$image); } //output to browser imagepng($im); imagedestroy($im); } /** * Returns a random string for use in a captcha */ function _textimage_code() { $consts='bcdgjxvmnprst'; $vowels='aeiou'; for ($x=0; $x < 6; $x++) { mt_srand ((double) microtime() * 1000000); $const[$x] = drupal_substr($consts,mt_rand(0,drupal_strlen($consts)-1),1); $vow[$x] = drupal_substr($vowels,mt_rand(0,drupal_strlen($vowels)-1),1); } $string = $const[0] . $vow[0] .$const[2] . $const[1] . $vow[1] . $const[3] . $vow[3] . $const[4]; $string = drupal_substr($string,0,rand(4,6)); //everytime we create a new code, we write it to session $_SESSION['captcha'] = drupal_strtolower($string); if(variable_get('textimage_use_only_upper',0)) $string = drupal_strtoupper($string); return $string; } /** * Returns an array of files with TTF extensions in the specified directory. */ function _textimage_font_list() { $fontdir = variable_get("textimage_fonts_path", ""); $filelist = array(); if (is_dir($fontdir) && $handle = opendir($fontdir)) { while ($file = readdir($handle)) { if (preg_match("/\.ttf$/i",$file) == 1) $filelist[] = $fontdir.'/'.$file; } closedir($handle); } return $filelist; } /** * Returns an array of files with jpg, png, and gif extensions in the specified directory. */ function _textimage_image_list() { $imagesdir = variable_get("textimage_images_path", ""); $filelist = array(); if (is_dir($imagesdir) && $handle = opendir($imagesdir)) { while ($file = readdir($handle)) { if (preg_match("/\.gif|\.png|\.jpg$/i",$file) == 1) $filelist[] = $imagesdir.'/'.$file; } closedir($handle); } return $filelist; } /** * Overlays an image to the supplied image resource */ function _textimage_apply_background_image (&$imageResource,$imageFile) { $backgroundResource = image_gd_open($imageFile,substr($imageFile,-3)); // Copy the text onto the background $backX = imagesx($backgroundResource); $backY = imagesy($backgroundResource); $textX = imagesx($imageResource); $textY = imagesy($imageResource); $randomBackX = rand(0,$backX-$textX); $randomBackY = rand(0,$backY-$textY); // Place the text onto a random location of the background image imagecopyresampled($backgroundResource,$imageResource,$randomBackX,$randomBackY,0,0,$textX,$textY,$textX,$textY); // Crop the background image to the original image size imagecopyresampled($imageResource,$backgroundResource,0,0,$randomBackX,$randomBackY,$textX,$textY,$textX,$textY); } /** * Creates transparent image resources for images with graphic backgrounds */ function _textimage_create_transparent_image($x, $y) { $i = imagecreatetruecolor($x, $y); $b = imagecreatefromstring(base64_decode(_text_image_blankpng())); imagealphablending($i, false); imagesavealpha($i, true); imagecopyresized($i, $b ,0 ,0 ,0 ,0 ,$x, $y, imagesx($b), imagesy($b)); return $i; } function _text_image_blankpng() { $c = "iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m"; $c .= "dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADqSURBVHjaYvz//z/DYAYAAcTEMMgBQAANegcCBNCg"; $c .= "dyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAAN"; $c .= "egcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQ"; $c .= "oHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAA"; $c .= "DXoHAgTQoHcgQAANegcCBNCgdyBAgAEAMpcDTTQWJVEAAAAASUVORK5CYII="; return $c; } ?> И это всё о них... Пётр Гинц, его учителя, его друзья и его журнал Vedem | Odesskiy Listok

И это всё о них... Пётр Гинц, его учителя, его друзья и его журнал Vedem

user warning: Table './odessapage/cms_sessions' is marked as crashed and last (automatic?) repair failed query: SELECT COUNT(sid) AS count FROM cms_sessions WHERE timestamp >= 1542601014 AND uid = 0 in /home/hepa/public_html/new/includes/database.mysql.inc on line 121.

В одной из русскоязычных газет была опубликована информация о выпуске чешской марки с рисунком Петра Гинца, изображавшим вид нашей Земли с Луны. Этот фантастический рисунок связан с несчастливой судьбой двух человек. Он был создан 14-летним подростком Петром Гинцем в концлагере Терезин в Чехии в 1942 году. Петр разделил судьбу почти всех узников лагеря: он погиб в Освенциме. Рисунок Петра, о котором идет речь, взял с собой в космический полет израильский астронавт Илан Рамон, который из-за аварии шаттла «Колумбия» не вернулся на Землю.
Я хочу рассказать побольше о талантливом мальчике, никогда не ставшем взрослым, о его учителях и друзьях.
В начале восьмидесятых годов я был в командировке в Праге и в воскресенье отправился в Государственный Еврейский музей. Он размещался в зданиях нескольких пражских синагог, тогда используемых только в качестве музейных экспонатов, поскольку молиться в них было, увы, некому: все евреи Праги были уничтожены гитлеровцами.
На стене одной из синагог были выставлены детские рисунки узников концлагеря «для трудового перевоспитания» в Терезине. И среди экспонатов я увидел листы журнала, отпечатанного на машинке; на титульном листе было написано VEDEM – так назывался журнал, выпускавшийся в лагере. Под заглавием было написано имя редактора – Петр Гинц. Но главное, что привлекло мое внимание, – это было стихотворение, напечатанное на одной из страниц. Оно было озаглавлено «Uryvek z dopisu Tatanina Oneginovi» (т.е. «Отрывок из письма Татьяны Онегину»). Но текст был явно не из письма Татьяны, хотя точно принадлежал Пушкину, что и подтверждалось подписью Puskin, prel. Prcek. Вчитавшись, я понял, что это – стихотворение «Я вас любил; любовь, еще, быть может…»
Кто такие Петр Гинц и Прсек? Почему так странно озаглавлено известное пушкинское стихотворение? И что за журнал VEDEM (что по-русски значит «Ведем»)?
Снятую мною копию стихотворения, адрес дирекции музея и прочие данные я переслал моему другу в Одессе И.Л. Попелюхеру, руководителю школьного Пушкинского музея, а он уже вместе со своими учениками запросил дирекцию музея в Праге (я-то сам посетить эту дирекцию не смог: в воскресенье у них был выходной, а в будни я работал, находясь в командировке).
И вот что выяснил мой ныне покойный друг.
Терезин был очищен от коренного населения и преобразован немцами в гетто, или лагерь «перевоспитания евреев». Это не был лагерь уничтожения, и в 1942-43 годах в Терезине работали различные мастерские, функционировал самодеятельный театр и даже исполнялись хоровые произведения, например, «Реквием» Верди (о чем я опубликовал статью в сан-францисской газете «Кстати»). В здании бывшей школы гитлеровцы устроили «Блок L–417», в котором разместили детей – мальчиков в возрасте 13-15 лет. Наибольшей известностью пользовался приют №1, в котором одновременно находилось по 30-40 подростков из Чехии и Моравии. Мало кто из них остался в живых.
В Терезине было создано движение Сопротивления. Доктор философии Бруно Цвиккер (1902 – 1944), бывший профессор университета им. Масарика в Брно, посвятил себя воспитанию детей. Он заявил: «Дети должны выстоять! И не только физически! Они должны сохранить свое человеческое лицо!» Единомышленниками Цвиккера стали молодые воспитатели Йосеф Тауссиг и Йосеф Счастны. В приют № 1 ими был направлен коллега Цвиккера по университету Вальтер Эйсингер (1913 – 1945). Он владел несколькими языками, в том числе и русским, и пользовался любовью гимназистов. Человек маленького роста, он получил прозвище «карапуз» (по-чешски – Prcek), которое и стало его псевдонимом. Он предложил обитателям приюта № 1 организовать самоуправление по типу описанной в повести Л. Пантелеева «Республики Шкид», начать учебные занятия и выпускать журнал.
Спустя 20 лет после окончания войны Иржи Котоуч, председатель самоуправления в L-417/1, вспоминал: «Мы любили его за смелость и решительность, энтузиазм, уверенную позицию в этом неустойчивом лагерном мире. Эйсингер никогда не задавался вопросом, останемся ли мы в живых, и заявлял, что планирует после войны защитить диссертацию. Он был близок нам, ибо мы могли и хотели стать когда-нибудь позже в жизни такими же, как он, наш замечательный преподаватель, переводивший стихи, игравший в футбол, спавший на койке среди нас, над ошибками которого мы могли смеяться, этот смех сближал нас».
Эйсингер организовал подпольную школу, привлек к проведению уроков (без учебников и тетрадей) нескольких талантливых учителей, тоже заключенных, вполне отдававших себе отчет в том, какая кара грозит им за такую деятельность. Как только появлялись нацисты, урок прекращался, и дети выполняли физические упражнения. Важную роль в воспитании детей играли вечерние беседы, которые проводили В. Эйсингер и его верные друзья. Так подростки узнавали о причинах Второй мировой войны, о звериной жестокости фашистов, о замечательных художниках, философах, мореплавателях…
Эйсингеру помогали и художники, обучавшие детей рисованию. Это были работавшие в чертежной технического бюро Терезина Фердинанд Блох (1898 – 1944), Бедржих Фритта (1906 – 1944), Лео Гаас (1901 – 1984) и Отто Унгар (1901 – 1945). Одним из наиболее талантливых учеников этих художников был Петр Гинц, уроженец Праги (он родился в 1928 году). Рисунки многих детей, а также работы перечисленных выше художников, запечатлевших жизнь и быт узников Терезина, частично сохранились. Некоторые из этих рисунков с помощью художника Л. Страсса и его супруги удалось передать в Швейцарию; ряд работ перечисленных выше художников удалось замуровать в углу терезинских Магдебургских казарм, другие были спрятаны в жестяной коробке в земле. Гестапо, которому некоторые рисунки попали в руки, задержало художников и подвергло их допросу: ведь рисунки явились ярким доказательством невыносимых условий проживания узников лагеря! Не зря первые допросы проводил сам Эйхман.
Вальтер Эйсингер, большой поклонник русской классической поэзии, знавший наизусть много стихов, организовал кружок русского языка. На занятиях мальчики декламировали русские стихи, пели русские песни. Ведь Советский Союз был единственной силой в Европе, которая не покорилась немцам и противостояла им, нанося болезненные удары…
Самая яркая страница деятельности В. Эйсингера – выпуск журнала. О журнале он заговорил с подростками уже во время первой встречи. А 18 декабря 1942 года, т.е. через неделю после организации самоуправления, в приюте начал выходить журнал «Ведем». Редактором его стал Петр Гинц. Пока было возможно, журнал печатала на чудом сохранившейся машинке мать ученика Рудольфа Лауби. Позже журнал стал рукописным.
Почти каждый номер открывался титульным листом с рисунком или эмблемой. Авторами большинства статей, очерков, репортажей и рисунков были дети, в том числе и Петр Гинц. Здесь приводится репродукция едва ли не единственной сохранившейся фотографии Петра. Передовые статьи писал Эйсингер.
На страницах журнала были помещены сделанные В. Эйсингером переводы стихотворений Пушкина, Лермонтова, Фета, Бальмонта, Тютчева и других русских поэтов. Вот так в номере 20 журнала от 30 апреля 1943 года и появилось стихотворение «Я вас любил», которое Эйсингер перевел по памяти и ошибочно посчитал отрывком из письма Татьяны Онегину. Именно этот номер журнала я и увидел на стене выставки творчества детей из Терезина в Еврейском музее в Праге.
Переименованный в Терезиенштадт город-гетто Терезин, через который прошло более 140 тысяч человек, стал местом упокоения 35 тысяч узников: тяжелые условия труда, отсутствие должной медицинской помощи, жестокие наказания со стороны охранников и что, пожалуй, главное, – моральная атмосфера в гетто заметно увеличивали смертность узников. Тем не менее, немцы представляли Терезин международным инспекционным органам в качестве «лагеря трудового перевоспитания».
В июне 1944 года сюда прибыла последняя инспекционная группа Красного креста. И отчитавшись перед этими инспекторами, гитлеровцы приступили к ликвидации узников лагеря-гетто. Всех их в течение нескольких месяцев отправили в Освенцим, где и были уничтожены герои этого очерка. В газовых камерах погибли Бруно Цвиккер, Вальтер Эйсингер, Петр Гинц и его друзья-школьники. Погибли и все художники, кроме Лео Гааса и Отто Унгара (Унгар был освобожден в Бухенвальде, но вскоре умер, так и не успев возвратиться домой).
Из числа узников блока L-417/1 выжило 12 человек. Один из них, Зденек Тауссиг, помогал своему отцу – единственному кузнецу в Терезине. Когда Советская армия стала приближаться к Терезину, Зденек с отцом завернули все экземпляры журнала «Ведем» в тряпье и зарыли их (более 800 листов) в заранее подготовленной яме. Через несколько недель после освобождения Терезина танкистами генерала П.С. Рыбалко, Зденек выкопал журналы и отвез их в Прагу. Затем он передал журналы товарищу по лагерю Зденеку Орнесту, который и отдал их в Государственный еврейский музей Чехословакии.
На стене двухэтажного здания бывшей начальной школы висит мемориальная доска. На черном мраморе белеет текст на пяти языках: «Нацисты разбили семьи, отняли у родителей детей и собрали их в нескольких зданиях. Одним из них была и эта школа. Вопреки строгому запрету, в ней проводились тайные учебные занятия. Через Терезин прошло около 15000 детей. Из них пережило войну около ста».
Сколько еще талантливых Петров Гинцев погибло в гитлеровских лагерях смерти? А сколько еще таких же ребят было уничтожено человекообразными существами – шахидами в дельфинарии, на дискотеках и в автобусах в наше время? Ведь дети – самые незащищенные жертвы любой войны…


Об этом имеется документальный фильм

О Петре Гинце, журнале ВЕДЕМ и узниках гетто ТЕРЕЗИН Союзом русскоязычных писателей в Чешской Республике в 2010 году снят
профессиональный 16 минутный документальный фильм.
Подробности: Lev50@seznamn.cz

С.В.Левицкий


Отправить новый комментарий

Содержимое этого поля хранится скрыто и не будет показываться публично.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <p> <br> <tr> <td> <table>
  • Строки и параграфы переносятся автоматически.
  • Images can be added to this post.
Больше информации о возможностях форматирования