# Сигнатурный уровень верификации решений: каждый из ботов, однако системы
В современном интернете защита от автоматических запросов стала неотъемлемой частью любой ** системы** , обрабатывающей пользовательские данные. В предыдущем материале «Полный разбор процесса проверки ботов и его нюансы» был раскрыт общий контекст верификации, а также три уровня защиты: сигнатурный, поведенческий и контекстный. Чтобы углубиться в детали и понять, как эти уровни взаимодействуют в реальных решениях, рекомендуется [ Узнать больше] ( https: //t...content-available-to-author-only...a.ph/Polnyj-razbor-processa-proverki-botov-i-ego-nyuansy-10-21) о практических примерах внедрения и о том, какие ограничения встречаются при их эксплуатации.
> Аналитики отмечают, что лишь комбинирование сигнатурного, поведенческого и контекстного уровней позволяет достичь устойчивой защиты от современных бот‑сетей, поскольку каждый из них покрывает уникальные аспекты атак.
! [ Article illustration] ( http: //localhost/home/kidsdan/promopilot.link/www/uploads/generated-images/2025/10/1761059644263-d7d5df12.jpg)
- Сигнатурный уровень: каждый запрос под микроскопом
- Поведенческий анализ: микродвижения и тайминг
- Контекстный уровень: геолокация, репутация и история взаимодействий
### Сигнатурный уровень: каждый запрос под микроскопом
Сигнатурный уровень верификации опирается на известные шаблоны запросов, характерные для скриптов и известных бот‑фреймворков. Каждый запрос сравнивается с базой сигнатур, где хранятся типичные параметры HTTP‑заголовков, частоты запросов и характерные паттерны
URL . Несмотря на простоту реализации, такой подход быстро теряет эффективность,
* однако
* он остаётся важным элементом в многоуровневой защите, позволяя отсеять большую часть простых автоматических атак без значительных вычислительных затрат.
Для поддержания актуальности сигнатурных баз необходимо постоянное обновление, что требует интеграции с внешними сервисами, собирающими данные о новых бот‑моделях. Такие решения часто включают автоматический импорт новых правил, а также возможность ручного добавления сигнатур в случае обнаружения уникального поведения. Важно отметить, что сигнатурный уровень не может полностью защитить от продвинутых ботов, способных имитировать человеческие запросы, поэтому он всегда используется в сочетании с другими уровнями.
### Поведенческий анализ: микродвижения и тайминг
Поведенческий уровень фиксирует микродвижения мыши, интервалы между нажатиями клавиш и паттерны навигации по странице. Эти данные позволяют построить профиль типичного пользователя и сравнить его с текущей сессией. Исследования показывают, что в лабораторных условиях такой анализ достигает точности до 95 % , что делает его одним из самых надёжных методов верификации. При этом система должна учитывать естественные отклонения, связанные с различными устройствами и особенностями пользователей.
Однако внедрение поведенческого анализа требует значительных вычислительных ресурсов и продуманного подхода к хранению и обработке персональных данных. Решения, ориентированные на конфиденциальность, используют анонимизацию и локальное вычисление, отправляя в облако только агрегированные показатели. Такой компромисс позволяет сохранять эффективность защиты, одновременно соблюдая требования GDPR и аналогичных нормативов.
### Контекстный уровень: геолокация, репутация и история взаимодействий
Контекстный уровень объединяет данные о геолокации, истории IP‑адреса, репутационных списках и предыдущих взаимодействиях пользователя с системой. Каждый элемент контекста вносит свой вклад в общий риск‑оценочный балл, позволяя принимать более гибкие решения: от простого запроса капчи до полной блокировки. Важно, что контекстный анализ учитывает не только текущую сессию, но и кросс‑доменные паттерны, что повышает устойчивость к распределённым атакам.
Для повышения точности контекстного уровня часто используют машинное обучение, обучая модели на больших наборах данных о легитимных и вредоносных запросах. Такие модели способны выявлять скрытые корреляции, которые трудно обнаружить вручную. При этом необходимо регулярно переобучать модели, поскольку атакующие постоянно меняют свои стратегии. Более того, интеграция с внешними репутационными сервисами позволяет быстро реагировать на новые угрозы, что особенно важно в условиях динамично меняющегося ландшафта киберугроз. Подробнее о практических аспектах внедрения таких решений можно прочитать в разделе [ детали анализа] ( https: //t...content-available-to-author-only...a.ph/Polnyj-razbor-processa-proverki-botov-i-ego-nyuansy-10-21).
### Заключение и рекомендации
Сочетание всех трёх уровней — сигнатурного, поведенческого и контекстного — формирует комплексную систему верификации, способную адаптироваться к эволюции ботов. Каждый уровень покрывает свои уязвимости: сигнатурный быстро отсекает простые скрипты, поведенческий выявляет продвинутые имитации, а контекстный учитывает широкий спектр факторов, включая географию и репутацию. Однако эффективность любой системы напрямую зависит от её способности обновляться и интегрировать новые данные, поэтому рекомендуется внедрять автоматические механизмы обновления сигнатур и регулярное переобучение моделей машинного обучения.
- Сигнатурный уровень обеспечивает быстрый фильтр простых запросов.
- Поведенческий анализ выявляет аномалии в действиях пользователя с высокой точностью.
- Контекстный уровень учитывает географию, репутацию и историю взаимодействий, позволяя гибко реагировать на угрозы.
- Регулярное обновление баз сигнатур и переобучение ML‑моделей критически важны для поддержания эффективности.
- Комбинация всех трёх уровней создаёт устойчивую защиту против современных бот‑атак.
Для подтверждения актуальности подходов к защите от ботов стоит обратиться к независимым исследованиям, например, к обзору, опубликованному в Википедии, где подробно описаны методы [ технология капча] ( https: //r...content-available-to-author-only...a.org/wiki/Капча) и их эффективность. Выбор конкретных решений должен базироваться на анализе рисков, характере трафика и требованиях к пользовательскому опыту, а также на готовности поддерживать систему в актуальном состоянии./* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
}
}
IyDQodC40LPQvdCw0YLRg9GA0L3Ri9C5INGD0YDQvtCy0LXQvdGMINCy0LXRgNC40YTQuNC60LDRhtC40Lgg0YDQtdGI0LXQvdC40Lk6INC60LDQttC00YvQuSDQuNC3INCx0L7RgtC+0LIsINC+0LTQvdCw0LrQviDRgdC40YHRgtC10LzRiwoK0JIg0YHQvtCy0YDQtdC80LXQvdC90L7QvCDQuNC90YLQtdGA0L3QtdGC0LUg0LfQsNGJ0LjRgtCwINC+0YIg0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LjRhSDQt9Cw0L/RgNC+0YHQvtCyINGB0YLQsNC70LAg0L3QtdC+0YLRitC10LzQu9C10LzQvtC5INGH0LDRgdGC0YzRjiDQu9GO0LHQvtC5ICoq0YHQuNGB0YLQtdC80YsqKiwg0L7QsdGA0LDQsdCw0YLRi9Cy0LDRjtGJ0LXQuSDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQtSDQtNCw0L3QvdGL0LUuINCSINC/0YDQtdC00YvQtNGD0YnQtdC8INC80LDRgtC10YDQuNCw0LvQtSDCq9Cf0L7Qu9C90YvQuSDRgNCw0LfQsdC+0YAg0L/RgNC+0YbQtdGB0YHQsCDQv9GA0L7QstC10YDQutC4INCx0L7RgtC+0LIg0Lgg0LXQs9C+INC90Y7QsNC90YHRi8K7INCx0YvQuyDRgNCw0YHQutGA0YvRgiDQvtCx0YnQuNC5INC60L7QvdGC0LXQutGB0YIg0LLQtdGA0LjRhNC40LrQsNGG0LjQuCwg0LAg0YLQsNC60LbQtSDRgtGA0Lgg0YPRgNC+0LLQvdGPINC30LDRidC40YLRizog0YHQuNCz0L3QsNGC0YPRgNC90YvQuSwg0L/QvtCy0LXQtNC10L3Rh9C10YHQutC40Lkg0Lgg0LrQvtC90YLQtdC60YHRgtC90YvQuS4g0KfRgtC+0LHRiyDRg9Cz0LvRg9Cx0LjRgtGM0YHRjyDQsiDQtNC10YLQsNC70Lgg0Lgg0L/QvtC90Y/RgtGMLCDQutCw0Log0Y3RgtC4INGD0YDQvtCy0L3QuCDQstC30LDQuNC80L7QtNC10LnRgdGC0LLRg9GO0YIg0LIg0YDQtdCw0LvRjNC90YvRhSDRgNC10YjQtdC90LjRj9GFLCDRgNC10LrQvtC80LXQvdC00YPQtdGC0YHRjyBb0KPQt9C90LDRgtGMINCx0L7Qu9GM0YjQtV0oaHR0cHM6Ly90Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5hLnBoL1BvbG55ai1yYXpib3ItcHJvY2Vzc2EtcHJvdmVya2ktYm90b3YtaS1lZ28tbnl1YW5zeS0xMC0yMSkg0L4g0L/RgNCw0LrRgtC40YfQtdGB0LrQuNGFINC/0YDQuNC80LXRgNCw0YUg0LLQvdC10LTRgNC10L3QuNGPINC4INC+INGC0L7QvCwg0LrQsNC60LjQtSDQvtCz0YDQsNC90LjRh9C10L3QuNGPINCy0YHRgtGA0LXRh9Cw0Y7RgtGB0Y8g0L/RgNC4INC40YUg0Y3QutGB0L/Qu9GD0LDRgtCw0YbQuNC4LgoKPiDQkNC90LDQu9C40YLQuNC60Lgg0L7RgtC80LXRh9Cw0Y7Rgiwg0YfRgtC+INC70LjRiNGMINC60L7QvNCx0LjQvdC40YDQvtCy0LDQvdC40LUg0YHQuNCz0L3QsNGC0YPRgNC90L7Qs9C+LCDQv9C+0LLQtdC00LXQvdGH0LXRgdC60L7Qs9C+INC4INC60L7QvdGC0LXQutGB0YLQvdC+0LPQviDRg9GA0L7QstC90LXQuSDQv9C+0LfQstC+0LvRj9C10YIg0LTQvtGB0YLQuNGH0Ywg0YPRgdGC0L7QudGH0LjQstC+0Lkg0LfQsNGJ0LjRgtGLINC+0YIg0YHQvtCy0YDQtdC80LXQvdC90YvRhSDQsdC+0YLigJHRgdC10YLQtdC5LCDQv9C+0YHQutC+0LvRjNC60YMg0LrQsNC20LTRi9C5INC40Lcg0L3QuNGFINC/0L7QutGA0YvQstCw0LXRgiDRg9C90LjQutCw0LvRjNC90YvQtSDQsNGB0L/QtdC60YLRiyDQsNGC0LDQui4KCiFbQXJ0aWNsZSBpbGx1c3RyYXRpb25dKGh0dHA6Ly9sb2NhbGhvc3QvaG9tZS9raWRzZGFuL3Byb21vcGlsb3QubGluay93d3cvdXBsb2Fkcy9nZW5lcmF0ZWQtaW1hZ2VzLzIwMjUvMTAvMTc2MTA1OTY0NDI2My1kN2Q1ZGYxMi5qcGcpCgotINCh0LjQs9C90LDRgtGD0YDQvdGL0Lkg0YPRgNC+0LLQtdC90Yw6INC60LDQttC00YvQuSDQt9Cw0L/RgNC+0YEg0L/QvtC0INC80LjQutGA0L7RgdC60L7Qv9C+0LwKLSDQn9C+0LLQtdC00LXQvdGH0LXRgdC60LjQuSDQsNC90LDQu9C40Lc6INC80LjQutGA0L7QtNCy0LjQttC10L3QuNGPINC4INGC0LDQudC80LjQvdCzCi0g0JrQvtC90YLQtdC60YHRgtC90YvQuSDRg9GA0L7QstC10L3RjDog0LPQtdC+0LvQvtC60LDRhtC40Y8sINGA0LXQv9GD0YLQsNGG0LjRjyDQuCDQuNGB0YLQvtGA0LjRjyDQstC30LDQuNC80L7QtNC10LnRgdGC0LLQuNC5CgojIyMg0KHQuNCz0L3QsNGC0YPRgNC90YvQuSDRg9GA0L7QstC10L3RjDog0LrQsNC20LTRi9C5INC30LDQv9GA0L7RgSDQv9C+0LQg0LzQuNC60YDQvtGB0LrQvtC/0L7QvAoK0KHQuNCz0L3QsNGC0YPRgNC90YvQuSDRg9GA0L7QstC10L3RjCDQstC10YDQuNGE0LjQutCw0YbQuNC4INC+0L/QuNGA0LDQtdGC0YHRjyDQvdCwINC40LfQstC10YHRgtC90YvQtSDRiNCw0LHQu9C+0L3RiyDQt9Cw0L/RgNC+0YHQvtCyLCDRhdCw0YDQsNC60YLQtdGA0L3Ri9C1INC00LvRjyDRgdC60YDQuNC/0YLQvtCyINC4INC40LfQstC10YHRgtC90YvRhSDQsdC+0YLigJHRhNGA0LXQudC80LLQvtGA0LrQvtCyLiDQmtCw0LbQtNGL0Lkg0LfQsNC/0YDQvtGBINGB0YDQsNCy0L3QuNCy0LDQtdGC0YHRjyDRgSDQsdCw0LfQvtC5INGB0LjQs9C90LDRgtGD0YAsINCz0LTQtSDRhdGA0LDQvdGP0YLRgdGPINGC0LjQv9C40YfQvdGL0LUg0L/QsNGA0LDQvNC10YLRgNGLIEhUVFDigJHQt9Cw0LPQvtC70L7QstC60L7Qsiwg0YfQsNGB0YLQvtGC0Ysg0LfQsNC/0YDQvtGB0L7QsiDQuCDRhdCw0YDQsNC60YLQtdGA0L3Ri9C1INC/0LDRgtGC0LXRgNC90YsgVVJMLiDQndC10YHQvNC+0YLRgNGPINC90LAg0L/RgNC+0YHRgtC+0YLRgyDRgNC10LDQu9C40LfQsNGG0LjQuCwg0YLQsNC60L7QuSDQv9C+0LTRhdC+0LQg0LHRi9GB0YLRgNC+INGC0LXRgNGP0LXRgiDRjdGE0YTQtdC60YLQuNCy0L3QvtGB0YLRjCwgKtC+0LTQvdCw0LrQviog0L7QvSDQvtGB0YLQsNGR0YLRgdGPINCy0LDQttC90YvQvCDRjdC70LXQvNC10L3RgtC+0Lwg0LIg0LzQvdC+0LPQvtGD0YDQvtCy0L3QtdCy0L7QuSDQt9Cw0YnQuNGC0LUsINC/0L7Qt9Cy0L7Qu9GP0Y8g0L7RgtGB0LXRj9GC0Ywg0LHQvtC70YzRiNGD0Y4g0YfQsNGB0YLRjCDQv9GA0L7RgdGC0YvRhSDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuNGFINCw0YLQsNC6INCx0LXQtyDQt9C90LDRh9C40YLQtdC70YzQvdGL0YUg0LLRi9GH0LjRgdC70LjRgtC10LvRjNC90YvRhSDQt9Cw0YLRgNCw0YIuCgrQlNC70Y8g0L/QvtC00LTQtdGA0LbQsNC90LjRjyDQsNC60YLRg9Cw0LvRjNC90L7RgdGC0Lgg0YHQuNCz0L3QsNGC0YPRgNC90YvRhSDQsdCw0Lcg0L3QtdC+0LHRhdC+0LTQuNC80L4g0L/QvtGB0YLQvtGP0L3QvdC+0LUg0L7QsdC90L7QstC70LXQvdC40LUsINGH0YLQviDRgtGA0LXQsdGD0LXRgiDQuNC90YLQtdCz0YDQsNGG0LjQuCDRgSDQstC90LXRiNC90LjQvNC4INGB0LXRgNCy0LjRgdCw0LzQuCwg0YHQvtCx0LjRgNCw0Y7RidC40LzQuCDQtNCw0L3QvdGL0LUg0L4g0L3QvtCy0YvRhSDQsdC+0YLigJHQvNC+0LTQtdC70Y/RhS4g0KLQsNC60LjQtSDRgNC10YjQtdC90LjRjyDRh9Cw0YHRgtC+INCy0LrQu9GO0YfQsNGO0YIg0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LjQuSDQuNC80L/QvtGA0YIg0L3QvtCy0YvRhSDQv9GA0LDQstC40LssINCwINGC0LDQutC20LUg0LLQvtC30LzQvtC20L3QvtGB0YLRjCDRgNGD0YfQvdC+0LPQviDQtNC+0LHQsNCy0LvQtdC90LjRjyDRgdC40LPQvdCw0YLRg9GAINCyINGB0LvRg9GH0LDQtSDQvtCx0L3QsNGA0YPQttC10L3QuNGPINGD0L3QuNC60LDQu9GM0L3QvtCz0L4g0L/QvtCy0LXQtNC10L3QuNGPLiDQktCw0LbQvdC+INC+0YLQvNC10YLQuNGC0YwsINGH0YLQviDRgdC40LPQvdCw0YLRg9GA0L3Ri9C5INGD0YDQvtCy0LXQvdGMINC90LUg0LzQvtC20LXRgiDQv9C+0LvQvdC+0YHRgtGM0Y4g0LfQsNGJ0LjRgtC40YLRjCDQvtGCINC/0YDQvtC00LLQuNC90YPRgtGL0YUg0LHQvtGC0L7Qsiwg0YHQv9C+0YHQvtCx0L3Ri9GFINC40LzQuNGC0LjRgNC+0LLQsNGC0Ywg0YfQtdC70L7QstC10YfQtdGB0LrQuNC1INC30LDQv9GA0L7RgdGLLCDQv9C+0Y3RgtC+0LzRgyDQvtC9INCy0YHQtdCz0LTQsCDQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LIg0YHQvtGH0LXRgtCw0L3QuNC4INGBINC00YDRg9Cz0LjQvNC4INGD0YDQvtCy0L3Rj9C80LguCgojIyMg0J/QvtCy0LXQtNC10L3Rh9C10YHQutC40Lkg0LDQvdCw0LvQuNC3OiDQvNC40LrRgNC+0LTQstC40LbQtdC90LjRjyDQuCDRgtCw0LnQvNC40L3QswoK0J/QvtCy0LXQtNC10L3Rh9C10YHQutC40Lkg0YPRgNC+0LLQtdC90Ywg0YTQuNC60YHQuNGA0YPQtdGCINC80LjQutGA0L7QtNCy0LjQttC10L3QuNGPINC80YvRiNC4LCDQuNC90YLQtdGA0LLQsNC70Ysg0LzQtdC20LTRgyDQvdCw0LbQsNGC0LjRj9C80Lgg0LrQu9Cw0LLQuNGIINC4INC/0LDRgtGC0LXRgNC90Ysg0L3QsNCy0LjQs9Cw0YbQuNC4INC/0L4g0YHRgtGA0LDQvdC40YbQtS4g0K3RgtC4INC00LDQvdC90YvQtSDQv9C+0LfQstC+0LvRj9GO0YIg0L/QvtGB0YLRgNC+0LjRgtGMINC/0YDQvtGE0LjQu9GMINGC0LjQv9C40YfQvdC+0LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0Lgg0YHRgNCw0LLQvdC40YLRjCDQtdCz0L4g0YEg0YLQtdC60YPRidC10Lkg0YHQtdGB0YHQuNC10LkuINCY0YHRgdC70LXQtNC+0LLQsNC90LjRjyDQv9C+0LrQsNC30YvQstCw0Y7Rgiwg0YfRgtC+INCyINC70LDQsdC+0YDQsNGC0L7RgNC90YvRhSDRg9GB0LvQvtCy0LjRj9GFINGC0LDQutC+0Lkg0LDQvdCw0LvQuNC3INC00L7RgdGC0LjQs9Cw0LXRgiDRgtC+0YfQvdC+0YHRgtC4INC00L4gOTUgJSwg0YfRgtC+INC00LXQu9Cw0LXRgiDQtdCz0L4g0L7QtNC90LjQvCDQuNC3INGB0LDQvNGL0YUg0L3QsNC00ZHQttC90YvRhSDQvNC10YLQvtC00L7QsiDQstC10YDQuNGE0LjQutCw0YbQuNC4LiDQn9GA0Lgg0Y3RgtC+0Lwg0YHQuNGB0YLQtdC80LAg0LTQvtC70LbQvdCwINGD0YfQuNGC0YvQstCw0YLRjCDQtdGB0YLQtdGB0YLQstC10L3QvdGL0LUg0L7RgtC60LvQvtC90LXQvdC40Y8sINGB0LLRj9C30LDQvdC90YvQtSDRgSDRgNCw0LfQu9C40YfQvdGL0LzQuCDRg9GB0YLRgNC+0LnRgdGC0LLQsNC80Lgg0Lgg0L7RgdC+0LHQtdC90L3QvtGB0YLRj9C80Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuCgrQntC00L3QsNC60L4g0LLQvdC10LTRgNC10L3QuNC1INC/0L7QstC10LTQtdC90YfQtdGB0LrQvtCz0L4g0LDQvdCw0LvQuNC30LAg0YLRgNC10LHRg9C10YIg0LfQvdCw0YfQuNGC0LXQu9GM0L3Ri9GFINCy0YvRh9C40YHQu9C40YLQtdC70YzQvdGL0YUg0YDQtdGB0YPRgNGB0L7QsiDQuCDQv9GA0L7QtNGD0LzQsNC90L3QvtCz0L4g0L/QvtC00YXQvtC00LAg0Log0YXRgNCw0L3QtdC90LjRjiDQuCDQvtCx0YDQsNCx0L7RgtC60LUg0L/QtdGA0YHQvtC90LDQu9GM0L3Ri9GFINC00LDQvdC90YvRhS4g0KDQtdGI0LXQvdC40Y8sINC+0YDQuNC10L3RgtC40YDQvtCy0LDQvdC90YvQtSDQvdCwINC60L7QvdGE0LjQtNC10L3RhtC40LDQu9GM0L3QvtGB0YLRjCwg0LjRgdC/0L7Qu9GM0LfRg9GO0YIg0LDQvdC+0L3QuNC80LjQt9Cw0YbQuNGOINC4INC70L7QutCw0LvRjNC90L7QtSDQstGL0YfQuNGB0LvQtdC90LjQtSwg0L7RgtC/0YDQsNCy0LvRj9GPINCyINC+0LHQu9Cw0LrQviDRgtC+0LvRjNC60L4g0LDQs9GA0LXQs9C40YDQvtCy0LDQvdC90YvQtSDQv9C+0LrQsNC30LDRgtC10LvQuC4g0KLQsNC60L7QuSDQutC+0LzQv9GA0L7QvNC40YHRgSDQv9C+0LfQstC+0LvRj9C10YIg0YHQvtGF0YDQsNC90Y/RgtGMINGN0YTRhNC10LrRgtC40LLQvdC+0YHRgtGMINC30LDRidC40YLRiywg0L7QtNC90L7QstGA0LXQvNC10L3QvdC+INGB0L7QsdC70Y7QtNCw0Y8g0YLRgNC10LHQvtCy0LDQvdC40Y8gR0RQUiDQuCDQsNC90LDQu9C+0LPQuNGH0L3Ri9GFINC90L7RgNC80LDRgtC40LLQvtCyLgoKIyMjINCa0L7QvdGC0LXQutGB0YLQvdGL0Lkg0YPRgNC+0LLQtdC90Yw6INCz0LXQvtC70L7QutCw0YbQuNGPLCDRgNC10L/Rg9GC0LDRhtC40Y8g0Lgg0LjRgdGC0L7RgNC40Y8g0LLQt9Cw0LjQvNC+0LTQtdC50YHRgtCy0LjQuQoK0JrQvtC90YLQtdC60YHRgtC90YvQuSDRg9GA0L7QstC10L3RjCDQvtCx0YrQtdC00LjQvdGP0LXRgiDQtNCw0L3QvdGL0LUg0L4g0LPQtdC+0LvQvtC60LDRhtC40LgsINC40YHRgtC+0YDQuNC4IElQ4oCR0LDQtNGA0LXRgdCwLCDRgNC10L/Rg9GC0LDRhtC40L7QvdC90YvRhSDRgdC/0LjRgdC60LDRhSDQuCDQv9GA0LXQtNGL0LTRg9GJ0LjRhSDQstC30LDQuNC80L7QtNC10LnRgdGC0LLQuNGP0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINGBINGB0LjRgdGC0LXQvNC+0LkuINCa0LDQttC00YvQuSDRjdC70LXQvNC10L3RgiDQutC+0L3RgtC10LrRgdGC0LAg0LLQvdC+0YHQuNGCINGB0LLQvtC5INCy0LrQu9Cw0LQg0LIg0L7QsdGJ0LjQuSDRgNC40YHQuuKAkdC+0YbQtdC90L7Rh9C90YvQuSDQsdCw0LvQuywg0L/QvtC30LLQvtC70Y/RjyDQv9GA0LjQvdC40LzQsNGC0Ywg0LHQvtC70LXQtSDQs9C40LHQutC40LUg0YDQtdGI0LXQvdC40Y86INC+0YIg0L/RgNC+0YHRgtC+0LPQviDQt9Cw0L/RgNC+0YHQsCDQutCw0L/Rh9C4INC00L4g0L/QvtC70L3QvtC5INCx0LvQvtC60LjRgNC+0LLQutC4LiDQktCw0LbQvdC+LCDRh9GC0L4g0LrQvtC90YLQtdC60YHRgtC90YvQuSDQsNC90LDQu9C40Lcg0YPRh9C40YLRi9Cy0LDQtdGCINC90LUg0YLQvtC70YzQutC+INGC0LXQutGD0YnRg9GOINGB0LXRgdGB0LjRjiwg0L3QviDQuCDQutGA0L7RgdGB4oCR0LTQvtC80LXQvdC90YvQtSDQv9Cw0YLRgtC10YDQvdGLLCDRh9GC0L4g0L/QvtCy0YvRiNCw0LXRgiDRg9GB0YLQvtC50YfQuNCy0L7RgdGC0Ywg0Log0YDQsNGB0L/RgNC10LTQtdC70ZHQvdC90YvQvCDQsNGC0LDQutCw0LwuCgrQlNC70Y8g0L/QvtCy0YvRiNC10L3QuNGPINGC0L7Rh9C90L7RgdGC0Lgg0LrQvtC90YLQtdC60YHRgtC90L7Qs9C+INGD0YDQvtCy0L3RjyDRh9Cw0YHRgtC+INC40YHQv9C+0LvRjNC30YPRjtGCINC80LDRiNC40L3QvdC+0LUg0L7QsdGD0YfQtdC90LjQtSwg0L7QsdGD0YfQsNGPINC80L7QtNC10LvQuCDQvdCwINCx0L7Qu9GM0YjQuNGFINC90LDQsdC+0YDQsNGFINC00LDQvdC90YvRhSDQviDQu9C10LPQuNGC0LjQvNC90YvRhSDQuCDQstGA0LXQtNC+0L3QvtGB0L3Ri9GFINC30LDQv9GA0L7RgdCw0YUuINCi0LDQutC40LUg0LzQvtC00LXQu9C4INGB0L/QvtGB0L7QsdC90Ysg0LLRi9GP0LLQu9GP0YLRjCDRgdC60YDRi9GC0YvQtSDQutC+0YDRgNC10LvRj9GG0LjQuCwg0LrQvtGC0L7RgNGL0LUg0YLRgNGD0LTQvdC+INC+0LHQvdCw0YDRg9C20LjRgtGMINCy0YDRg9GH0L3Rg9GOLiDQn9GA0Lgg0Y3RgtC+0Lwg0L3QtdC+0LHRhdC+0LTQuNC80L4g0YDQtdCz0YPQu9GP0YDQvdC+INC/0LXRgNC10L7QsdGD0YfQsNGC0Ywg0LzQvtC00LXQu9C4LCDQv9C+0YHQutC+0LvRjNC60YMg0LDRgtCw0LrRg9GO0YnQuNC1INC/0L7RgdGC0L7Rj9C90L3QviDQvNC10L3Rj9GO0YIg0YHQstC+0Lgg0YHRgtGA0LDRgtC10LPQuNC4LiDQkdC+0LvQtdC1INGC0L7Qs9C+LCDQuNC90YLQtdCz0YDQsNGG0LjRjyDRgSDQstC90LXRiNC90LjQvNC4INGA0LXQv9GD0YLQsNGG0LjQvtC90L3Ri9C80Lgg0YHQtdGA0LLQuNGB0LDQvNC4INC/0L7Qt9Cy0L7Qu9GP0LXRgiDQsdGL0YHRgtGA0L4g0YDQtdCw0LPQuNGA0L7QstCw0YLRjCDQvdCwINC90L7QstGL0LUg0YPQs9GA0L7Qt9GLLCDRh9GC0L4g0L7RgdC+0LHQtdC90L3QviDQstCw0LbQvdC+INCyINGD0YHQu9C+0LLQuNGP0YUg0LTQuNC90LDQvNC40YfQvdC+INC80LXQvdGP0Y7RidC10LPQvtGB0Y8g0LvQsNC90LTRiNCw0YTRgtCwINC60LjQsdC10YDRg9Cz0YDQvtC3LiDQn9C+0LTRgNC+0LHQvdC10LUg0L4g0L/RgNCw0LrRgtC40YfQtdGB0LrQuNGFINCw0YHQv9C10LrRgtCw0YUg0LLQvdC10LTRgNC10L3QuNGPINGC0LDQutC40YUg0YDQtdGI0LXQvdC40Lkg0LzQvtC20L3QviDQv9GA0L7Rh9C40YLQsNGC0Ywg0LIg0YDQsNC30LTQtdC70LUgW9C00LXRgtCw0LvQuCDQsNC90LDQu9C40LfQsF0oaHR0cHM6Ly90Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5hLnBoL1BvbG55ai1yYXpib3ItcHJvY2Vzc2EtcHJvdmVya2ktYm90b3YtaS1lZ28tbnl1YW5zeS0xMC0yMSkuCgojIyMg0JfQsNC60LvRjtGH0LXQvdC40LUg0Lgg0YDQtdC60L7QvNC10L3QtNCw0YbQuNC4CgrQodC+0YfQtdGC0LDQvdC40LUg0LLRgdC10YUg0YLRgNGR0YUg0YPRgNC+0LLQvdC10Lkg4oCUINGB0LjQs9C90LDRgtGD0YDQvdC+0LPQviwg0L/QvtCy0LXQtNC10L3Rh9C10YHQutC+0LPQviDQuCDQutC+0L3RgtC10LrRgdGC0L3QvtCz0L4g4oCUINGE0L7RgNC80LjRgNGD0LXRgiDQutC+0LzQv9C70LXQutGB0L3Rg9GOINGB0LjRgdGC0LXQvNGDINCy0LXRgNC40YTQuNC60LDRhtC40LgsINGB0L/QvtGB0L7QsdC90YPRjiDQsNC00LDQv9GC0LjRgNC+0LLQsNGC0YzRgdGPINC6INGN0LLQvtC70Y7RhtC40Lgg0LHQvtGC0L7Qsi4g0JrQsNC20LTRi9C5INGD0YDQvtCy0LXQvdGMINC/0L7QutGA0YvQstCw0LXRgiDRgdCy0L7QuCDRg9GP0LfQstC40LzQvtGB0YLQuDog0YHQuNCz0L3QsNGC0YPRgNC90YvQuSDQsdGL0YHRgtGA0L4g0L7RgtGB0LXQutCw0LXRgiDQv9GA0L7RgdGC0YvQtSDRgdC60YDQuNC/0YLRiywg0L/QvtCy0LXQtNC10L3Rh9C10YHQutC40Lkg0LLRi9GP0LLQu9GP0LXRgiDQv9GA0L7QtNCy0LjQvdGD0YLRi9C1INC40LzQuNGC0LDRhtC40LgsINCwINC60L7QvdGC0LXQutGB0YLQvdGL0Lkg0YPRh9C40YLRi9Cy0LDQtdGCINGI0LjRgNC+0LrQuNC5INGB0L/QtdC60YLRgCDRhNCw0LrRgtC+0YDQvtCyLCDQstC60LvRjtGH0LDRjyDQs9C10L7Qs9GA0LDRhNC40Y4g0Lgg0YDQtdC/0YPRgtCw0YbQuNGOLiDQntC00L3QsNC60L4g0Y3RhNGE0LXQutGC0LjQstC90L7RgdGC0Ywg0LvRjtCx0L7QuSDRgdC40YHRgtC10LzRiyDQvdCw0L/RgNGP0LzRg9GOINC30LDQstC40YHQuNGCINC+0YIg0LXRkSDRgdC/0L7RgdC+0LHQvdC+0YHRgtC4INC+0LHQvdC+0LLQu9GP0YLRjNGB0Y8g0Lgg0LjQvdGC0LXQs9GA0LjRgNC+0LLQsNGC0Ywg0L3QvtCy0YvQtSDQtNCw0L3QvdGL0LUsINC/0L7RjdGC0L7QvNGDINGA0LXQutC+0LzQtdC90LTRg9C10YLRgdGPINCy0L3QtdC00YDRj9GC0Ywg0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LjQtSDQvNC10YXQsNC90LjQt9C80Ysg0L7QsdC90L7QstC70LXQvdC40Y8g0YHQuNCz0L3QsNGC0YPRgCDQuCDRgNC10LPRg9C70Y/RgNC90L7QtSDQv9C10YDQtdC+0LHRg9GH0LXQvdC40LUg0LzQvtC00LXQu9C10Lkg0LzQsNGI0LjQvdC90L7Qs9C+INC+0LHRg9GH0LXQvdC40Y8uCgogIAotINCh0LjQs9C90LDRgtGD0YDQvdGL0Lkg0YPRgNC+0LLQtdC90Ywg0L7QsdC10YHQv9C10YfQuNCy0LDQtdGCINCx0YvRgdGC0YDRi9C5INGE0LjQu9GM0YLRgCDQv9GA0L7RgdGC0YvRhSDQt9Cw0L/RgNC+0YHQvtCyLgogIAotINCf0L7QstC10LTQtdC90YfQtdGB0LrQuNC5INCw0L3QsNC70LjQtyDQstGL0Y/QstC70Y/QtdGCINCw0L3QvtC80LDQu9C40Lgg0LIg0LTQtdC50YHRgtCy0LjRj9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDRgSDQstGL0YHQvtC60L7QuSDRgtC+0YfQvdC+0YHRgtGM0Y4uCiAgCi0g0JrQvtC90YLQtdC60YHRgtC90YvQuSDRg9GA0L7QstC10L3RjCDRg9GH0LjRgtGL0LLQsNC10YIg0LPQtdC+0LPRgNCw0YTQuNGOLCDRgNC10L/Rg9GC0LDRhtC40Y4g0Lgg0LjRgdGC0L7RgNC40Y4g0LLQt9Cw0LjQvNC+0LTQtdC50YHRgtCy0LjQuSwg0L/QvtC30LLQvtC70Y/RjyDQs9C40LHQutC+INGA0LXQsNCz0LjRgNC+0LLQsNGC0Ywg0L3QsCDRg9Cz0YDQvtC30YsuCiAgCi0g0KDQtdCz0YPQu9GP0YDQvdC+0LUg0L7QsdC90L7QstC70LXQvdC40LUg0LHQsNC3INGB0LjQs9C90LDRgtGD0YAg0Lgg0L/QtdGA0LXQvtCx0YPRh9C10L3QuNC1IE1M4oCR0LzQvtC00LXQu9C10Lkg0LrRgNC40YLQuNGH0LXRgdC60Lgg0LLQsNC20L3RiyDQtNC70Y8g0L/QvtC00LTQtdGA0LbQsNC90LjRjyDRjdGE0YTQtdC60YLQuNCy0L3QvtGB0YLQuC4KICAKLSDQmtC+0LzQsdC40L3QsNGG0LjRjyDQstGB0LXRhSDRgtGA0ZHRhSDRg9GA0L7QstC90LXQuSDRgdC+0LfQtNCw0ZHRgiDRg9GB0YLQvtC50YfQuNCy0YPRjiDQt9Cw0YnQuNGC0YMg0L/RgNC+0YLQuNCyINGB0L7QstGA0LXQvNC10L3QvdGL0YUg0LHQvtGC4oCR0LDRgtCw0LouCgrQlNC70Y8g0L/QvtC00YLQstC10YDQttC00LXQvdC40Y8g0LDQutGC0YPQsNC70YzQvdC+0YHRgtC4INC/0L7QtNGF0L7QtNC+0LIg0Log0LfQsNGJ0LjRgtC1INC+0YIg0LHQvtGC0L7QsiDRgdGC0L7QuNGCINC+0LHRgNCw0YLQuNGC0YzRgdGPINC6INC90LXQt9Cw0LLQuNGB0LjQvNGL0Lwg0LjRgdGB0LvQtdC00L7QstCw0L3QuNGP0LwsINC90LDQv9GA0LjQvNC10YAsINC6INC+0LHQt9C+0YDRgywg0L7Qv9GD0LHQu9C40LrQvtCy0LDQvdC90L7QvNGDINCyINCS0LjQutC40L/QtdC00LjQuCwg0LPQtNC1INC/0L7QtNGA0L7QsdC90L4g0L7Qv9C40YHQsNC90Ysg0LzQtdGC0L7QtNGLIFvRgtC10YXQvdC+0LvQvtCz0LjRjyDQutCw0L/Rh9CwXShodHRwczovL3IuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmEub3JnL3dpa2kv0JrQsNC/0YfQsCkg0Lgg0LjRhSDRjdGE0YTQtdC60YLQuNCy0L3QvtGB0YLRjC4g0JLRi9Cx0L7RgCDQutC+0L3QutGA0LXRgtC90YvRhSDRgNC10YjQtdC90LjQuSDQtNC+0LvQttC10L0g0LHQsNC30LjRgNC+0LLQsNGC0YzRgdGPINC90LAg0LDQvdCw0LvQuNC30LUg0YDQuNGB0LrQvtCyLCDRhdCw0YDQsNC60YLQtdGA0LUg0YLRgNCw0YTQuNC60LAg0Lgg0YLRgNC10LHQvtCy0LDQvdC40Y/RhSDQuiDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60L7QvNGDINC+0L/Ri9GC0YMsINCwINGC0LDQutC20LUg0L3QsCDQs9C+0YLQvtCy0L3QvtGB0YLQuCDQv9C+0LTQtNC10YDQttC40LLQsNGC0Ywg0YHQuNGB0YLQtdC80YMg0LIg0LDQutGC0YPQsNC70YzQvdC+0Lwg0YHQvtGB0YLQvtGP0L3QuNC4Li8qIHBhY2thZ2Ugd2hhdGV2ZXI7IC8vIGRvbid0IHBsYWNlIHBhY2thZ2UgbmFtZSEgKi8KCmltcG9ydCBqYXZhLnV0aWwuKjsKaW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgamF2YS5pby4qOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgl9Cn0=
compilation info
Main.java:1: error: illegal character: '#'
# ??????????? ??????? ??????????? ???????: ?????? ?? ?????, ?????? ???????
^
Main.java:1: error: class, interface, or enum expected
# ??????????? ??????? ??????????? ???????: ?????? ?? ?????, ?????? ???????
^
Main.java:3: error: illegal character: '\u00ab'
? ??????????? ????????? ?????? ?? ?????????????? ???????? ????? ???????????? ?????? ????? **???????**, ?????????????? ???????????????? ??????. ? ?????????? ????????? ??????? ?????? ???????? ???????? ????? ? ??? ??????? ??? ??????? ????? ???????? ???????????, ? ????? ??? ?????? ??????: ???????????, ????????????? ? ???????????. ????? ?????????? ? ?????? ? ??????, ??? ??? ?????? ??????????????? ? ???????? ????????, ????????????? [?????? ??????](https://telegra.ph/Polnyj-razbor-processa-proverki-botov-i-ego-nyuansy-10-21) ? ???????????? ???????? ????????? ? ? ???, ????? ??????????? ??????????? ??? ?? ????????????.
^
Main.java:3: error: illegal character: '\u00bb'
? ??????????? ????????? ?????? ?? ?????????????? ???????? ????? ???????????? ?????? ????? **???????**, ?????????????? ???????????????? ??????. ? ?????????? ????????? ??????? ?????? ???????? ???????? ????? ? ??? ??????? ??? ??????? ????? ???????? ???????????, ? ????? ??? ?????? ??????: ???????????, ????????????? ? ???????????. ????? ?????????? ? ?????? ? ??????, ??? ??? ?????? ??????????????? ? ???????? ????????, ????????????? [?????? ??????](https://telegra.ph/Polnyj-razbor-processa-proverki-botov-i-ego-nyuansy-10-21) ? ???????????? ???????? ????????? ? ? ???, ????? ??????????? ??????????? ??? ?? ????????????.
^
Main.java:5: error: illegal character: '\u2011'
> ????????? ????????, ??? ???? ?????????????? ????????????, ?????????????? ? ???????????? ??????? ????????? ??????? ?????????? ?????? ?? ??????????? ?????????, ????????? ?????? ?? ??? ????????? ?????????? ??????? ????.
^
Main.java:13: error: illegal character: '#'
### ??????????? ???????: ?????? ?????? ??? ???????????
^
Main.java:13: error: illegal character: '#'
### ??????????? ???????: ?????? ?????? ??? ???????????
^
Main.java:13: error: illegal character: '#'
### ??????????? ???????: ?????? ?????? ??? ???????????
^
Main.java:15: error: illegal character: '\u2011'
??????????? ??????? ??????????? ????????? ?? ????????? ??????? ????????, ??????????? ??? ???????? ? ????????? ???????????????. ?????? ?????? ???????????? ? ????? ????????, ??? ???????? ???????? ????????? HTTP???????????, ??????? ???????? ? ??????????? ???????? URL. ???????? ?? ???????? ??????????, ????? ?????? ?????? ?????? ?????????????, *??????* ?? ???????? ?????? ????????? ? ?????????????? ??????, ???????? ??????? ??????? ????? ??????? ?????????????? ???? ??? ???????????? ?????????????? ??????.
^
Main.java:15: error: illegal character: '\u2011'
??????????? ??????? ??????????? ????????? ?? ????????? ??????? ????????, ??????????? ??? ???????? ? ????????? ???????????????. ?????? ?????? ???????????? ? ????? ????????, ??? ???????? ???????? ????????? HTTP???????????, ??????? ???????? ? ??????????? ???????? URL. ???????? ?? ???????? ??????????, ????? ?????? ?????? ?????? ?????????????, *??????* ?? ???????? ?????? ????????? ? ?????????????? ??????, ???????? ??????? ??????? ????? ??????? ?????????????? ???? ??? ???????????? ?????????????? ??????.
^
Main.java:17: error: illegal character: '\u2011'
??? ??????????? ???????????? ??????????? ??? ?????????? ?????????? ??????????, ??? ??????? ?????????? ? ???????? ?????????, ??????????? ?????? ? ????? ???????????. ????? ??????? ????? ???????? ?????????????? ?????? ????? ??????, ? ????? ??????????? ??????? ?????????? ???????? ? ?????? ??????????? ??????????? ?????????. ????? ????????, ??? ??????????? ??????? ?? ????? ????????? ???????? ?? ??????????? ?????, ????????? ??????????? ???????????? ???????, ??????? ?? ?????? ???????????? ? ????????? ? ??????? ????????.
^
Main.java:19: error: illegal character: '#'
### ????????????? ??????: ????????????? ? ???????
^
Main.java:19: error: illegal character: '#'
### ????????????? ??????: ????????????? ? ???????
^
Main.java:19: error: illegal character: '#'
### ????????????? ??????: ????????????? ? ???????
^
Main.java:25: error: illegal character: '#'
### ??????????? ???????: ??????????, ????????? ? ??????? ??????????????
^
Main.java:25: error: illegal character: '#'
### ??????????? ???????: ??????????, ????????? ? ??????? ??????????????
^
Main.java:25: error: illegal character: '#'
### ??????????? ???????: ??????????, ????????? ? ??????? ??????????????
^
Main.java:27: error: illegal character: '\u2011'
??????????? ??????? ?????????? ?????? ? ??????????, ??????? IP???????, ????????????? ??????? ? ?????????? ??????????????? ???????????? ? ????????. ?????? ??????? ????????? ?????? ???? ????? ? ????? ?????????????? ????, ???????? ????????? ????? ?????? ???????: ?? ???????? ??????? ????? ?? ?????? ??????????. ?????, ??? ??????????? ?????? ????????? ?? ?????? ??????? ??????, ?? ? ?????????????? ????????, ??? ???????? ???????????? ? ?????????????? ??????.
^
Main.java:27: error: illegal character: '\u2011'
??????????? ??????? ?????????? ?????? ? ??????????, ??????? IP???????, ????????????? ??????? ? ?????????? ??????????????? ???????????? ? ????????. ?????? ??????? ????????? ?????? ???? ????? ? ????? ?????????????? ????, ???????? ????????? ????? ?????? ???????: ?? ???????? ??????? ????? ?? ?????? ??????????. ?????, ??? ??????????? ?????? ????????? ?? ?????? ??????? ??????, ?? ? ?????????????? ????????, ??? ???????? ???????????? ? ?????????????? ??????.
^
Main.java:27: error: illegal character: '\u2011'
??????????? ??????? ?????????? ?????? ? ??????????, ??????? IP???????, ????????????? ??????? ? ?????????? ??????????????? ???????????? ? ????????. ?????? ??????? ????????? ?????? ???? ????? ? ????? ?????????????? ????, ???????? ????????? ????? ?????? ???????: ?? ???????? ??????? ????? ?? ?????? ??????????. ?????, ??? ??????????? ?????? ????????? ?? ?????? ??????? ??????, ?? ? ?????????????? ????????, ??? ???????? ???????????? ? ?????????????? ??????.
^
Main.java:31: error: illegal character: '#'
### ?????????? ? ????????????
^
Main.java:31: error: illegal character: '#'
### ?????????? ? ????????????
^
Main.java:31: error: illegal character: '#'
### ?????????? ? ????????????
^
Main.java:33: error: illegal character: '\u2014'
????????? ???? ???? ??????? ? ????????????, ?????????????? ? ???????????? ? ????????? ??????????? ??????? ???????????, ????????? ?????????????? ? ???????? ?????. ?????? ??????? ????????? ???? ??????????: ??????????? ?????? ???????? ??????? ???????, ????????????? ???????? ??????????? ????????, ? ??????????? ????????? ??????? ?????? ????????, ??????? ????????? ? ?????????. ?????? ????????????? ????? ??????? ???????? ??????? ?? ?? ??????????? ??????????? ? ????????????? ????? ??????, ??????? ????????????? ???????? ?????????????? ????????? ?????????? ???????? ? ?????????? ???????????? ??????? ????????? ????????.
^
Main.java:33: error: illegal character: '\u2014'
????????? ???? ???? ??????? ? ????????????, ?????????????? ? ???????????? ? ????????? ??????????? ??????? ???????????, ????????? ?????????????? ? ???????? ?????. ?????? ??????? ????????? ???? ??????????: ??????????? ?????? ???????? ??????? ???????, ????????????? ???????? ??????????? ????????, ? ??????????? ????????? ??????? ?????? ????????, ??????? ????????? ? ?????????. ?????? ????????????? ????? ??????? ???????? ??????? ?? ?? ??????????? ??????????? ? ????????????? ????? ??????, ??????? ????????????? ???????? ?????????????? ????????? ?????????? ???????? ? ?????????? ???????????? ??????? ????????? ????????.
^
Main.java:42: error: illegal character: '\u2011'
- ?????????? ?????????? ??? ???????? ? ???????????? ML???????? ?????????? ????? ??? ??????????? ?????????????.
^
Main.java:44: error: illegal character: '\u2011'
- ?????????? ???? ???? ??????? ??????? ?????????? ?????? ?????? ??????????? ????????.
^
27 errors
stdout