Алгоритм Чагина

Кеша Захаренков, 2022

Программист Федор Магулов хочет открыть стартап. Но для этого ему нужны деньги. Взамен на инвестиции в бизнес он соглашается выполнить для своего начальника Вышинского тайное задание. Магулову нужно расшифровать код программы, написанной на никому не известном языке программирования. При этом начальник тщательно скрывает, откуда он взял код. Справится ли Магулов с заданием? Узнает ли, кто и зачем написал программу? Сможет ли открыть свой собственный стартап? И как работа на Вышинского повлияет на судьбу программиста? Ответы на эти вопросы вы можете узнать, прочитав книгу!

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Алгоритм Чагина предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Все имена и события в произведении вымышлены, любые совпадения с реальными людьми и событиями случайны.

ЧАСТЬ 0. ЗАДАЧА ОСОБОГО РОДА

0.0. Погружение

0.0.0. Инициализация

Аморальное предложение Вышинский сделал мне в среду, ровно в десять тридцать одну.

С самого утра он отплясывал танец нетерпеливого ожидания возле моего рабочего места. Не успел я кинуть рюкзак под стол и сесть за компьютер, Вышинский уже всучил мне руку для приветствия.

— Помнишь, ты про курсы говорил? — выпалил он. — Прошел их?

Лихорадочное возбуждение директора мне не понравилось. Шла первая неделя моей отработки. И надо сказать, мысленно я уже распрощался с компанией Вышинского. Не хватало еще, чтобы прямо перед увольнением он загрузил меня работой.

Прежде чем ответить, я кинул рюкзак под стол. Сел за компьютер. Вытянул ноги. И даже придвинул к себе клавиатуру со стершимися буквами. Более того, ладонью стер с нее пыль. Все это время я соображал, как быстро и убедительно отделаться от поручений директора.

— Курсы? — наконец спросил я.

— По нейросетям, — уточнил он.

Да. Про курсы по нейросетям я рассказывал на последнем корпоративе. И, помнится, громко хвастался, что их окончил.

Но внезапный интерес директора к моему увлечению не сулил мне ничего хорошего. Поэтому я как можно красноречивее пожал плечами. Точнее передернул, будто отгонял назойливую муху.

Вышинский жест проигнорировал.

— Какие-нибудь еще достижения, успехи в этой области есть? — спросил он.

— В области нейросетей?

Мне нужно было ответить, что нет, достижений нет. Но я не доверился интуиции и промямлил что-то вроде:

— Ну, я в соревновании участвовал.

— И как? — тут же спросил директор.

— Соревнование? Вошел в десятку.

Мне показалось, что он подпрыгнул от удовольствия. Губы точно облизнул.

— Из скольки?

— Человек пятьсот было, — ляпнул я, но, увидев радостный блеск в его глазах, спохватился. — Может, четыреста. Триста. Я не знаю.

— Из разных точек мира?

— Из России, — соврал я. Но было уже поздно.

Вышинский кивнул и довольно выпятил нижнюю губу. Кивком показал на дверь из опенспейса.

— Пойдем, — сказал он.

Директор привел меня в маленькое глухое помещение, переговорную. Только я вошел, запер дверь на ключ. Затем жестом предложил сесть за стол, а сам занял кресло напротив.

Я уже понял, что расспросы Вышинского были не к добру. Но меры предосторожности, что он принял, вызвали еще большее раздражение.

Что бы ни сказал мой без двух недель бывший директор, меня это не интересовало. Я думал о собственном проекте. Увольняясь из компании Вышинского, я надеялся запустить стартап. И все, что меня волновало, это новые задачи на новом месте.

Некоторое время мы молча разглядывали друг друга. Внешностью директор напоминал мне охранника из соседнего стрип-клуба. Крупный, высокий, он под ноль брил свою большую голову. Но за растительностью на лице не ухаживал. Брови над выпученными глазами у него были широкими и кустистыми, щетина выглядела неаккуратно, а из мясистого носа торчали черные волоски.

Большую часть времени в офисе Вышинский был энергичен, общителен и любезен. Но, несмотря на показное дружелюбие директора, я изредка ловил его острый и недобрый взгляд.

— Ты знаешь, что я инвестирую? — спросил он и уставился на меня. — Вкладываю деньги в стартапы.

Готовый возражать любому его слову, я открыл было рот. Но тут же его закрыл. Такого я не ожидал. Инвестиции? В стартапы?

— Тебе же нужны деньги? — спросил директор.

Я очнулся. Неожиданно для самого себя расплылся в улыбке.

— Да. Конечно. Деньги? Да! Деньги нужны.

Он кивнул и продолжил:

— Тогда они будут.

Я вгляделся в Вышинского, стараясь понять, шутит он или всерьез. Но его лицо ничего не выражало. Директор плотно сжал губы и ждал.

— О! — сказал я. — Здорово! Спасибо.

Вышинский кивнул.

Я рассмеялся. Потом смутился. На его вопросительный взгляд ответил:

— Думал, так легко инвестора не найду.

Вышинский снова кивнул.

— Правда, спасибо, — продолжил я, все еще пребывая в восторге. — Найти деньги на этом этапе… Когда ничего нет…

— Уверен, что свою прибыль получу, — сказал он.

Слова были брошены резко и нетерпеливо. И я понял, что Вышинский до сих пор не задал ни одного вопроса о моем стартапе. Проект его как будто не интересовал. Директор словно отмахивался и от моих восторгов, и от моей благодарности, и ждал, когда мы приступим к более серьезному разговору.

— И ничего не спросишь? — пришел я в себя. — Какая у меня бизнес-идея? Какой стартап?

— Я не вкладываю в идеи. Я вкладываю в людей, — он повернул кисти рук ладонями вверх и задумчиво посмотрел на них. — Кстати об этом. Пока ты не уволился, мне нужна помощь.

Вот все и прояснилось.

— Какая? — упавшим голосом спросил я.

— Неофициальная, — произнес директор.

Минуту назад я не смог сдержать улыбку. А теперь у меня вырвался горький смешок.

В последние рабочие недели я должен был отклеивать стикеры с моего монитора и скармливать шредеру личные документы из ящиков стола. Ничего более серьезного я делать для этой компании не собирался. И уж точно не хотел выполнять «неофициальную» работу.

— То есть в резюме я это не смогу указать? — пошутил я.

Вышинский не обратил на мой вопрос внимания. Он решил не снижать темпа. Заверил, что работа сложная и интересная. Совсем такая, какую я заслуживаю.

Не зная, куда спрятать глаза от страха, я посмотрел на циферблат наручных часов. Вышинский носил массивные, со старым позолоченным браслетом.

Секундная стрелка завершила оборот и словно замерла на месте, когда директор резко наклонился ко мне — так, что его кресло скрипнуло — и сказал:

— У меня есть код, нужно его расшифровать.

Часы показали ровно десять тридцать одну. Секундная стрелка ошарашенно стояла на месте.

Пару раз она нервно дернулась, но все же пошла на новый круг. А я продолжал смотреть на циферблат, не смея поднять глаза на Вышинского.

Расшифровать чей-то код. Работа неофициальная. Это вообще законно?

— Зачем? — тупо спросил я. Зачем расшифровывать код.

— Чтобы понять, что он делает.

На большом офисном столе между нами лежала пара листов А4, тупые огрызки карандашей и шариковые ручки. Я взял одну из них и начал катать по столу.

— А запустить программу нельзя?

— Можно, но код не дописан, — тут же ответил директор. — Программа не работает.

Казалось, он бы ответил на любые вопросы, лишь бы я согласился. Но у его откровенности был предел.

— А кто… Кто его не дописал? — спросил я.

Не моргнув, директор сказал, что это неважно.

Я оставил ручку в покое. Посмотрел по сторонам. Смотреть здесь было откровенно не на что: ни картин на стенах, ни растений в горшках, ни даже окон. Единственное, что привлекало внимание, это ключ. Ключ, которым директор запер дверь переговорной на замок.

В голове крутилось подозрение, но я не мог облечь его в слова. Точнее, сделать это так, чтобы не сильно оскорбить директора. В конце концов я собрался с духом и спросил:

— А автор программы знает, что код у тебя?

Сказал бы Вышинский, что нет, не знает, на этом бы все и кончилось. Но он на удивление кивнул.

— Сам мне его и отправил.

— Отправил и ничего не сказал? — удивился я.

Вышинский облокотился на ручку кресла. Оно снова скрипнуло и слегка перекосилось.

— Дело не в том, что он сказал, а в том, что скажут другие. Мне нужна экспертная оценка. Чтобы ты глянул код и сказал, чего он стоит.

Я мысленно повторил за ним слово «экспертная». Слово было приятное. Однако мне его не хватило.

— Ты уверен, что я гожусь на роль эксперта? — спросил я.

— Федор, минуту назад ты уверял, что отлично разбираешься в нейросетях. Или нет?

В голосе Вышинского послышалось раздражение. Это меня испугало. Я вспомнил о предложении директора вложиться в мой стартап и с болью осознал, что все уже решил. Мне нужны были эти деньги.

И я быстро сменил тему разговора.

— Так это код нейросети?

Вышинский кивнул. Потом вспомнил о чем-то и помрачнел.

— Правда, есть одна сложность, — сказал он.

Я напрягся, ожидая новых моральных дилемм. Но сложность, о которой обмолвился директор, была технической.

Оказалось, что код написан на незнакомом языке программирования. На языке программирования Leader. Как объяснил мне Вышинский, автор программы создал этот язык сам.

— И если я погуглю…

— Там ничего нет. И все, что я тебе сказал, только между нами, да?

Когда директор напомнил о секретности задания, я снова испугался и посмотрел на его часы.

— Дима, мне нужно задачу закрыть. Ты сам просил.

Я, конечно, соврал. Никакой задачи у меня не было. Но Вышинский среагировал точно.

— Делегируй, — сказал он.

И сделал последнюю попытку уговорить меня по-доброму:

— Слушай, это просьба, скажем так, особого рода. И задача очень сложная. Но проблем у тебя не будет. Правда. Иначе я бы не просил.

До разговора с Вышинским я держал в голове только одно: как бы не забыть в офисе свою кружку и сменную обувь. Но директор предложил задачу. «Задачу особого рода». И не кофе, печенье и ДМС, а инвестиции в мой бизнес.

«Инвестиции, самые настоящие инвестиции!» — повторил про себя я. Инвестиции тогда, когда и стартапа еще нет.

Пользуясь тишиной, Вышинский безапелляционно встал и направился к двери:

— Ты же программист. Просто глянь код. Окей?

0.0.1. Домашнее окружение

«К тому моменту, как я понял, что готов провести с ней многие и многие годы, она была замужем и уже несколько лет возглавляла список недоступных мне женщин.

Именно поэтому, наверное, не казалось странным, что всю нашу совместную жизнь меня не оставляло впечатление, что она рядом не потому что должна быть, а по какой-то случайности, рикошетом отлетевшая в мою сторону.

И только потому что кто-то другой ее не удержал, я думал, что так же не смогу ее удержать. Даже будь я самым-самым».

Когда Вышинский пообещал вложить деньги в стартап, я подумал о Марине. Представил, как она обрадуется, воодушевленно пересчитает мои шансы на успех.

Но я ошибся. Жена не собиралась славить удачу. Она снова и снова расспрашивала меня о случившемся. А потом, когда суть договоренности с директором стала ей ясна, задала прямой и самый важный вопрос. Вопрос, которого я боялся и старательно избегал: «Почему директор не сделает все официально?»

Марина не спрашивала. Она намекала. На возможные последствия моей работы. При этом безнравственность задачи ее не беспокоила. Моя жена не видела в расшифровке чужого кода преступления норм морали. Она считала соглашение с Вышинским «малоперспективным», а поведение директора — «малообещающим».

Казалось, все слова, что она произносила, начинались с корня «мало-». Как будто я мало старался, чтобы ее обрадовать.

Марина сыпала вопросами, на которые у меня не было ответов: «Что будет, если ты не расшифруешь код? Или будешь расшифровывать слишком долго? А вдруг Вышинский передумает инвестировать! Вы с ним хоть какой-нибудь договор подписали?»

— Это просто одолжение, — сказал я, пытаясь как можно скорее закончить разговор.

— Это просто ерунда, — припечатала Марина.

Она вытащила из бумажного пакета то ли новый плед, то ли новое покрывало, и, не отрывая бирку, прикинула к дивану. Я невольно поморщился: ткань выглядела дорого.

Декорировать квартиру было любимым занятием моей жены. Она часами рассматривала фотографии интерьеров, следила за поступлениями в магазины дизайнерской мебели и постоянно покупала новые тряпки, подушки, корзинки, подсвечники, ящички и прочую дребедень. При этом Марина предпочитала натуральные ткани и материалы, и большая часть нашего бюджета уходила на это хобби. Я уже намекал жене, что денег на подобные траты у нас нет, но она не хотела меня слышать.

Пока я с раздражением рассматривал обновку, Марина спросила:

— Так почему все тайно? Вышинский что, украл этот код?

Я не мог не согласиться, она была права. В то время, как интернет пестрел различными предложениями о профессиональной оценке кода, директор обратился не к специалистам, а к человеку, который прошел курсы. Ко мне.

— Наверное, не украл. Он же не дурак, — сказал я.

— А ты? Ты не дурак? — спросила Марина, буравя меня глазами.

Я вскипел.

— Ты понимаешь, что он денег даст на стартап!

— Сколько?

Точных цифр у меня не было. Я уклончиво ответил: «Много».

Марина внимательно на меня посмотрела. Наверное, старалась обнаружить признаки вранья. Или глупости. Но вскоре бросила попытки и снова обратила внимание на плед.

— Мы и сами можем вложить, — беспечно сказала она и отошла от дивана, чтобы оценить, как смотрится обновка.

— У тебя есть что вложить, а я не знаю? — спросил я.

И тут же получил в ответ претензию: «Почему ты так к этому относишься?» И вдогонку уточняющую: «Почему без энтузиазма?»

— Энтузиазм где-то на деньги обменивают? — спросил я.

— Можно кредит взять. Для малого бизнеса. Или какие там бывают.

— А какими деньгами отдавать?

Марина подошла к дивану и рывком сняла с него плед. Затем скомкала его и кинула обратно в бумажный пакет. Направилась к двери.

Вид ее спины меня встревожил. Каждый раз, когда Марина отворачивалась, чтобы уйти посреди разговора, меня охватывал страх, что она уйдет не только из комнаты, но и из квартиры. Из дома. Из моей жизни. Я боролся с острым желанием подбежать к ней и с силой развернуть к себе.

— Он мой начальник. Что я должен был, отказаться? — крикнул я.

Жена как будто забыла, что я все еще работал на Вышинского. Пусть и последние две недели.

Марина резко обернулась. Скривила красивое лицо и передразнила: «Он мой начальник. Что я должен был, отказаться?»

А потом приняла серьезный вид. Будто собиралась раскрыть мне глаза на правду. Сказать, что на поручение Вышинского может уйти не одна неделя, и, зная это, я просто откладываю вступление в руководящую должность в стартапе. Что я не хочу оформлять и подписывать документы, разрешать бюрократические и организационные проблемы, писать должностные инструкции, нанимать сотрудников, а потом терпеть войны между Project-менеджерами и бизнес-аналитиками, бизнес-аналитиками и программистами, программистами и тестировщиками. И, что самое главное, я ни за что не хочу нести ответственность.

Марина не произнесла ни слова из этой речи, но то, что я вообразил, было так убедительно, что я разгорячился и так же мысленно продолжил с ней спорить.

Я, может, и правда, откладывал запуск стартапа. Но совсем по другой причине. Я сомневался в своей бизнес-идее. А точнее, во всех своих бизнес-идеях.

С самого начала профессиональной деятельности я сталкивался с различного рода проблемами, до сих пор не решенными моими коллегами. Я записывал задачи в блокнот, чтобы выполнить впоследствии. Но, готовый к работе, заглядывал в этот список и не испытывал вдохновения. Ни одна моя идея не решала мировых проблем человечества. Ни одна не была настоящим прорывом.

К тому же, меня беспокоила мысль об аналогах. Еще не приступив к работе над проблемой, я боялся, что подобная программа на самом деле уже создана. Или создается сейчас, в эту минуту. И, начав писать код, я потеряю время. Время и деньги.

Запустить стартап я мечтал давно. Но, даже решившись, неосознанно спешил и сознательно тормозил, спешил и тормозил. И ничего не делал.

Марина меня удивила. Оказалось, что совсем не об этом она хотела поговорить.

— Ты очень рискуешь! — сказала она.

Миндалевидная форма карих глаз хоть и придавала лицу Марины насмешливое выражение, смягчала ее взгляд. Однако я все равно заметил, как холодно смотрит на меня жена.

Я сделал вид, что не понимаю, какое у нее настроение.

Фальшиво рассмеялся и спросил:

— А разве предприниматели не это должны делать, чтобы пить потом шампанское?

— Да, только это чужой код! — сказала она. — За расшифровку чужого кода тебя могут в промышленном шпионаже обвинить! Об этом ты подумал?

Сказала и вышла из комнаты.

Я закрыл глаза. И некстати вспомнил, как октябрьским вечером две тысячи седьмого года мы оба стоим на кухне у общих знакомых, опираемся руками о заставленный цветочными горшками подоконник, смотрим на голые ветки деревьев за окном и не знаем, о чем говорить.

Я провожу воображаемую линию над нашими головами — видимо, рост Марины равен моему и составляет метр восемьдесят семь сантиметров, но в отличие от других высоких девушек она ничуть этого не смущается и не горбится, и может похвастаться такой осанкой, словно работала над ней в институте благородных девиц, — и замечаю, что наши пальцы почти соприкасаются.

А потом вижу, как Марина открывает рот.

— Трусы чьи-то висят, — равнодушно говорит она.

Я перевожу взгляд туда, куда смотрит Марина. Свет уличного фонаря выхватывает из темноты тряпку, застрявшую на ветке.

— Те, что красные?

— Ну, хоть бы и они. По-моему, в этом районе люди чаще других из окон вещи выкидывают.

Я снова смотрю туда, куда смотреть намного приятнее, чем на чье-то рваное белье. На отражение Марины в окне.

— Почему? — спрашиваю я.

— Людей много — всех не поймешь, — пожимает она плечами.

Не то чтобы этот разговор — самый интересный в моей жизни, но он запал мне в душу. Я вспоминал его чаще других, и с каждым разом все яснее становилось, что влюбленность не подвластна никакой аргументации.

0.0.2. Среда разработки

Он не отвечал. Минуту, две, десять. Я открыл Slack. Вышинский не только не прочитал мое сообщение в мессенджере, он вообще не заходил в чат.

Я кинул взгляд ему в спину, на деле мечтая кинуть что-нибудь потяжелее. Мало того что директор заставил меня расшифровывать чужой код, так он еще и помогать не спешил. Убедив в важности «неофициального» занятия, тут же от него отрекся, предался радостям офисной жизни. Сидел в социальных сетях. Листал ленту новостей «ВКонтакте» и увлеченно качал головой в такт музыке в наушниках.

Я оглядел свой стол и заметил грязную стирательную резинку. «То, что надо», — подумал я. Взял резинку и поднял глаза на Вышинского.

Но директор пропал. На его мониторе висела равнодушная заставка с золотой рыбкой.

В поисках Вышинского я оглядел опенспейс. Но увидел лишь с десяток неподвижных затылков. Каждый сотрудник в офисе, наклоняясь как можно ближе к экрану своего монитора, увлеченно работал. Листал документы в Confluence, смотрел задачи в JIRA, проверял почту. Бухгалтер по соседству со мной составляла документы в текстовом редакторе, серверный программист писал код. Их затылки, как и все остальные в офисе, не двигались. Никто, кроме меня, не шнырял глазами по опенспейсу.

Я был один. Часы, висевшие над дверью, показывали полдень. В солнечном свете медленно опускалась пыль.

Коротая время в ожидании Вышинского, я снова открыл в текстовом редакторе файл craft.leader. И уставился в код, написанный на неизвестном языке программирования Leader.

Способов расшифровки было несколько. Один, самый простой, заключался в изучении документации к коду. Но директор не предоставил мне ни справочников, ни руководств, ни примеров использования. Другой, более трудоемкий, базировался на прочтении комментариев. Если присмотреться к одному пояснению внутри кода, к другому, а потом сопоставить полученную информацию, можно обнаружить если не логику языка, то последовательность написанных на нем действий. Здесь меня тоже ждала неудача. Автор программы не оставил внутри кода ни одной подсказки, ни одного комментария. Ни одна команда, ни одно действие не было им разъяснено.

Задача в том виде, в котором рисовал ее Вышинский, была «очень сложной». Но в реальности оказалась невыполнимой. Приложение насчитывало сотни страниц, а я не понимал в нем ни строчки. Марина оказалась права. На расшифровку кода могла уйти уйма времени, а результат мне никто не гарантировал.

Я посмотрел на часы над входом в опенспейс, и в ту же секунду дверь открылась. В надежде увидеть Вышинского я подался вперед, но это была секретарь. Широко зевая, она вошла в офис и медленно направилась к своему рабочему столу.

Я снова опустил глаза в код. Ни слова, ни часто встречающиеся обозначения мне ни о чем не говорили. Ни буквы, ни знаки препинания в коде не имели для меня смысл. Leader не походил ни на какой другой язык программирования. Мне не с чем было его сравнивать. Я смотрел в код и в непривычных сочетаниях букв не узнавал ни функций, ни процедур, ни переменных. Я не знал, где вызов, а где объявление. И что это за синтаксис такой?

Я разочарованно откинулся на спинку, кресло при этом взвизгнуло и чуть не опрокинулось. Я медленно вернулся в прежнее положение. Подумал немного, открыл онлайн-переводчик. Ввел в него название файла, содержащего код программы. Craft. Среди вариантов перевода программа предложила мне такие слова, как «хитрость», «ремесло», «самолет», «ловкость», «мастерство», «искусство» и «масонское братство».

Я посмотрел на дверь. Прошло пятьдесят четыре минуты с момента отправки сообщения, а директор так и не появился. Ни в чате, ни в опенспейсе.

«И Leader. Что за претенциозное название! Что это вообще значит? Ведущий, главный?» Я снова открыл онлайн-переводчик: «проводник», «поводырь», «дирижер». Опять ни намеков, ни подсказок.

«Все же, — подумал я, — Вышинский мог бы и рассказать, что должен делать код». Тогда мне оставалось бы только проверить, достиг автор программы цели или нет.

«Но вдруг Вышинский этого не знает?» — испугался я так же сильно, как пугался всякий раз, когда эта мысль снова приходила мне в голову.

«Может, он соврал. Может, автор программы не знает, что код у директора». Ведь если Вышинский в тайне от него отдал код на расшифровку другому программисту, он способен на любое мошенничество. А, значит, и меня, Магулова, мог обмануть.

Я поднял глаза и увидел Вышинского. Он только вернулся и, сверкнув позолоченным браслетом часов, снял блокировку с экрана монитора.

Я смотрел, как директор открывает Slack, читает мое сообщение и отправляет ответ. Но мне больше не хотелось его получать. Казалось, вопрос, который я задал ему в чате больше часа назад, теперь не имел значения. Не об этом его надо было спрашивать.

И когда в правом нижнем углу моего экрана всплыло сообщение: «Ты о чем?», я мигом разозлился. Открыл мессенджер и напечатал: «О том, что поможет в расшифровке. Пришли мне хоть что-то». И раздраженно посмотрел в спину Вышинского.

Директор так же раздраженно глянул в чат.

«Например?» — прислал он.

«Чтобы запустить программу, — написал я — и чем больше писал, тем больше злился, — нужно скомпилировать ее исходный код. Где компилятор? Где отладчик?»

«Зачем отладчик?» — спросил Вышинский.

«Блин блинский», — подумал я. И понял, что директор департамента по разработке программного обеспечения абсолютно не шарит в программировании.

«Без отладчика я не смогу понять, зачем нужна та или иная строка кода, — объяснил я. — Ау!»

Вышинский опять застрочил в чат. Что-то написал, стер, написал, снова стер. Закрыл чат и заблокировал экран. Встав, он встретился со мной взглядом и уже привычно кивнул в сторону двери.

0.0.3. Прорыв в болоте

Следуя за директором, я решил, что мне представилась отличная возможность отказаться от выполнения задачи. Однако на лестнице он не дал мне и рта раскрыть.

— Я рад, что ты взялся, — сказал Вышинский. — Проект очень крутой, правда. Любой вклад в него — отличная возможность. Мы сможем мир изменить, сможем сделать его лучше. Не представляешь, как я тебе благодарен.

Нельзя не признать, директор был хитер. Я стоял, вцепившись пальцами в перила, и размышлял, как лучше выпутаться из этой истории. Как побыстрее слиться из «очень крутого проекта».

— Ты видел код? — спросил я. — Там ни одного коммента, ни одной подсказки. Как мне его расшифровывать?

Директор поднялся на несколько ступенек и прислонился боком к стене.

— Я пришлю тебе компилятор. Запустишь программу, посмотришь…

— А отладчик?

— Разве универсальный не подходит? — отмахнулся он. — Есть же общие средства отладки. Их используют для всех программ.

Легкомыслие директора меня поражало.

Я перевел дух и попытался как можно спокойнее объяснить ему, что универсальные отладчики подходят для программ, написанных на любом из известных языков программирования. Я говорил медленно и членораздельно и указал на то, что под синтаксис языка Leader отладчики не адаптированы. По той простой причине, что об этом языке, как заверил меня сам Вышинский, никто не знает.

— То есть ты не можешь отладить программу? — спросил директор.

— Чтобы понять, что она делает? Нет.

— Понятно, — сказал он, но озабоченности в его голосе я не услышал. Только нетерпение. — Ладно, я посмотрю.

— Попроси у того, кто написал этот код. У него точно есть.

— Не могу.

«Почему? — снова испугался я. — Неужели он и правда украл код? Неужели я дурак, как сказала Марина?»

Вышинский словно прочитал мои мысли:

— Слушай, я не делаю ничего незаконного! Этот код принадлежит мне. Я выкупил долю, и имею право знать, на что деньги потратил.

— Долю?

— В компании разработчика.

Не успел я отреагировать ни словом, ни жестом, Вышинский уже начал оправдываться.

— Слушай, это крутой специалист, в нейросетях лучше всех шарит. В Швейцарии работал, в Германии в институте. Кучу научных работ написал. Я положился на его репутацию, а сейчас…

— Чагин? Ты про Антона Чагина говоришь?

Вышинский оторопел. Потом прищурился:

— Ты его знаешь?

Я пожал плечами:

— Так, немного.

— Крутой чувак, да?

Я снова пожал плечами. Чагин действительно был одним из лучших специалистов в своей области, но признаваться в этом не хотелось.

«Так, значит, он не только научно-исследовательской деятельностью занимался, — подумал я. — У Чагина был стартап».

Он опять меня опередил. Осуществил то, что я только подумывал сделать.

— Ты говорил, положился на его репутацию — и что? — спросил я.

Вышинский поджал мясистые губы. Глянул в окно и потер нос. Потом перевел взгляд с окна на пол.

— Да. Положился. А он пропал. На связь не выходит, трубку не берет.

Директор быстро сложил руки на груди, убрал их в карманы, снова сложил на груди. В череде его нервных бессвязных жестов читалась не столько обида, сколько желание что-то скрыть. И тогда меня осенило. Страшная и вместе с тем абсолютно ясная мысль пришла мне в голову. Как я и подозревал, Вышинский действительно меня обманывал. Но обман заключался не в краже кода.

— Ты не знаешь, — понял я.

И несмотря на то что мысль я свою не закончил, он испуганно открыл рот. Да. Он, и правда, не знал. Не знал, зачем нужна программа и за что он заплатил деньги.

— Эта программа решает мировую проблему человечества. Программа сохранения мира на земле, — поспешно сказал Вышинский.

Но понял, что прозвучало не слишком убедительно.

— Он боится, что идею украдут, — признался наконец директор. И вдруг улыбнулся, — Разве не лучшая характеристика для проекта?

Я кивнул. Так вот почему в коде нет комментариев. Его автор — параноик.

Однако кое-что мне показалось странным.

— Боится, что идею кода украдут, однако сам код тебе отправил? — спросил я.

— Ты же видишь, как сложно его расшифровать.

Объяснение директора меня не удовлетворило. Несмотря на свой характер, Чагин был умнейшим человеком. И в его действиях, на первый взгляд друг другу противоречащих, должна была присутствовать логика.

Но вместо того чтобы ее понять и разобраться в происходящем, я вдруг вспомнил о предложении Вышинского. Испугался, не передумает ли он инвестировать в мой стартап.

Деланно засмеявшись, я спросил:

— И ты снова хочешь вложить деньги и снова ни о чем не спрашиваешь?

— Я уже говорил, я вкладываю в людей. Он — лучший. Я же не знал, что он трубку перестанет брать!

Ситуация у директора была неоднозначной, я не спорил. Но что-то в ней настораживало, и я никак не мог понять, что именно.

Я вздохнул и посмотрел себе под ноги. Директор пару раз приподнялся на носки и опустился обратно на пятки. Потом наклонил голову и состроил мне щенячьи глазки.

— От тебя ничего особенного не нужно. Просто успокой меня. Скажи, что код крутой, и я дам ему столько времени, сколько нужно. Или скажи, код — дерьмо, и я продам свою долю в компании. Если, конечно, другого такого дурака найду.

— Мне надо подумать, — сказал я. Ситуация, в которой я оказался благодаря Вышинскому, была странной. Мне захотелось как можно скорее из нее выпутаться.

— Федор, это сложная работа, я знаю. Но сейчас мы не видим картину, не можем оценить. Может, это технический прорыв. Может, мы мир спасаем. Все знают, что за нейросетями будущее.

Я кисло улыбнулся. За нейросетями будущее — это да. Но кто знает, есть ли оно за программой Чагина.

Вышинский воспринял улыбку как добрый знак.

— Leader — классное название для языка программирования, согласись?

«Весьма претенциозное», — подумал я и повернулся к выходу.

Вышинский достал из кармана телефон и начал тыкать в экран пальцем.

— Я тебе компилятор скину. Сможешь запустить программу.

— А сам ты ее запускал?

— Да, она просит что-то ввести. Я вводил буквы, цифры, — он развел руки. — И ничего.

— А спецсимволы? Все кнопки на клавиатуре проверил?

Вышинский кивнул:

— Посмотри код.

В опенспейс я вернулся один. Сел в старое кресло, придвинул клавиатуру со стершимися буквами. Задумался. Неужели инновационный, технически совершенный продукт находится сейчас на моем компьютере с двумя гигабайтами оперативной памяти? Код, решающий мировую проблему человечества, — и на экране моего допотопного квадратного монитора с диагональю семнадцать дюймов?

Я достал телефон и открыл контакты. Нашел номер Чагина. Перед тем, как звонить, обвел глазами опенспейс. Я сделал это инстинктивно. Хотел проверить, не подслушает ли кто разговор. Но вместо этого увидел офис глазами Чагина.

Мужчина в очках с толстыми стеклами, который приходил точно к началу рабочего дня и уходил в восемнадцать ноль-ноль; бухгалтер, что болтала по телефону всякий раз, как из офиса отлучался Вышинский; серверный программист, из всех возможных браузеров предпочитавший internet explorer; и я — неужели именно в нашем присутствии должна быть разгадана тайна всего человечества, взломан код, открывающий доступ к мирному сосуществованию на земле?

Чагин бы и минуты здесь не просидел. Ни минуты бы не потратил на рассматривание пыли, в лучах солнца плывущей по офису.

Я отбросил телефон и придвинулся к компьютеру. Открыл чат с директором. Скачал компилятор и с его помощью запустил программу Чагина.

Несмотря на то, что компилятор нашел в коде известного всему миру разработчика тысячи ошибок и вынес тысячи предупреждений, на экране открылось черное окно. В его левом верхнем углу мигал курсор для ввода данных.

Недолго думая, я набрал в поле слово help и нажал клавишу Enter. Мигающий курсор переместился на строку ниже. Ввел несколько цифр — то же самое. Я по очереди напечатал все специальные символы на клавиатуре, а также попробовал часто используемые сочетания клавиш, но результат был один — мигающий курсор.

Я не знал, что требует программа — пароль для запуска? тайный код? — но злился так, словно все преграды для расшифровки кода, с которыми я сталкивался, Чагин поставил специально для меня. И теперь откуда-то наблюдал, как я бьюсь над загадкой, которую он бы решил за пару секунд.

0.1. Адаптация

0.1.0. Большое разочарование

«Помнишь нашу первую встречу?

Ты стояла и смотрела на куст сирени. И я смотрел только на него. Потому что было страшно и неловко смотреть на тебя.

Говорят, чувствуя любовь с первого взгляда, человек не может оторвать от другого глаз. Но с нами было иначе: я еще не увидел тебя, но глаза от тебя уже прятал. Смотрел в землю. В небо. На деревья. На других людей. Но только не на тебя.

Секунду назад я не догадывался о твоем существовании, а теперь знал о тебе все. И, казалось, ты обо мне знаешь. И так же прячешь глаза.

Мы еще не произнесли ни единого слова, но в молчаливом напряжении между нами угадывалось, что у обоих уже тянется друг к другу длинный список претензий. Как будто из прошлой жизни.

И каждому из нас было ясно, что список продолжит тянуться и в этой жизни, и в следующей».

На следующее утро я пошел на работу с единственной целью: хотел забрать свою кружку и сменную обувь, которые опрометчиво оставил в офисе накануне. Две недели отработки уже закончились, а код я так и не расшифровал. Хотя испробовал все доступные мне способы.

Возвращаться за ботинками было глупо, и я сделал вид, что все еще сомневаюсь. Что не решил. Что не до конца убедился в неспособности выполнить поручение Вышинского. А окончательное отчаяние овладело мной только в середине дня. Например, перед обедом.

Я сидел в поломанном кресле, открыв в редакторе исходный текст программы. Как и накануне, смотрел в экран, кликал мышкой. Но листая код, не надеялся его расшифровать. Я не хотел разбираться ни с языком программирования Leader, ни с приложением Чагина. И обрадовался, когда зазвонил мобильник.

Я вскочил с кресла, быстро пересек опенспейс и вышел в коридор.

— Ну что? — спросила Марина. — Обед готовить или в кафе пойдешь?

На самом деле, мою жену не интересовало, что и где я буду есть. Она хотела узнать, продолжу ли я напрасно тратить время в чужом опенспейсе.

— Что ты почувствовал, когда в первый раз увидел меня? — томно спрашивает она, ожидая услышать что-нибудь приятное.

— Возмущение, — без раздумий отвечаю я.

— Что?

Марина улыбается, но краснеет. А платье возмущенно бьется о коленки. Она поднимается по лестнице, ведущей в квартиру, полную цветочных горшков.

— Возмущение. Ты стояла в магазине, в очереди передо мной, и попросила у продавца последнюю сдобную булочку с маком.

Услышав голос Марины, я живо представил ее взгляд. Раньше на меня так смотрела мать. «Магулов — большое разочарование», — говорили ей учителя. И она смотрела на меня их глазами. «Магулов — большое разочарование», — думала теперь Марина.

Я представил, как посреди дня возвращаюсь домой с кружкой, сменкой и без инвестора. И понял, что не хочу ей уступать. «Можно остаться еще на неделю, пока не пойму. Не пойму, каким безумием занимаюсь и как мало за это платят», — подумал я.

А вслух сказал:

— Сама поешь. Приду позже.

И возвратился на рабочее место. Сел за компьютер и прокрутил в редакторе текст программы.

«Магулов — большое разочарование», — понял я. И надо сказать, что разочаровываться в себе больнее, чем разочаровываться в ком-то другом.

Я уныло листал программу вниз-вверх и вверх-вниз. Ждал окончания рабочего дня. И, в конце концов, заметил ошибку. Обычную, синтаксическую. Отсутствие точки с запятой в конце строки тогда, как в конце других строк она была.

Помедлив, я исправил ошибку. И тут же почувствовал себя лучше. Поэтому присмотрелся и нашел еще одну — пропущенную скобку. Исправил и ее. Потом запустил компилятор и увидел больше тысячи ошибок и предупреждений.

— Это будет настоящий прорыв, — говорит Вышинский.

Я взял кружку и пошел к кулеру за водой.

«Предположим, Чагин, и правда, спасает мир, — подумал я. — Изобретает высокотехнологичный продукт и стоит на пороге необычайного прогресса. Все мы стоим, если верить Вышинскому. Но что можно создать при помощи нейросетей? И какую программу следует охранять с такой долей секретности, что в коде нет ни одного комментария?»

Не дойдя до кулера, я вернулся к своему рабочему месту и вел в поисковик фразу «мировые проблемы человечества». В списке были экологическая, демографическая, сырьевая, энергетическая, проблема мира и разоружения.

Я погрузился в чтение и узнал, что искусственный интеллект прогнозировал наводнения и снижал количество дорожных аварий. Ставил диагнозы, определял риски развития заболеваний и должен был избавить человечество от простуды, гриппа и даже рака. Искусственные нейросети рисовали и пели. Они писали, переводили тексты. Распознавали человеческий голос, играли в шахматы и прогнозировали скачки акций на рынке.

Машины научились многому. Дело за малым. Спасти человечество.

Я ни на шутку загорелся. Вдруг Чагин действительно придумал что-то важное? Вдруг и я, Магулов, мог внести свою маленькую лепту в спасение человечества? И что бы сказала об этом Марина?

0.1.1. Звезда конференций

Я то и дело вспоминал свои беседы с Чагиным. И особенно часто возвращался мыслями к нашей последней встрече. Заострял внимание на деталях разговора, на отдельных фразах разработчика, на вскользь брошенных им словах. Я искал ключ. Ключ, который помог бы мне разгадать, какую цель преследовал Чагин и какую программу хотел создать.

Но в зависимости от своего настроения я находил разные смыслы и значения в событиях одного и того же дня. В словах и интонациях Чагина видел то насмешку, то попытку поделиться чем-то важным; то настоящую заинтересованность, то злой умысел; то презрение и превосходство, то страх и надежду на понимание.

Когда я вернулся в офис за ботинками, мне было не по себе. И, вспоминая о последней встрече с Чагиным в тот день, я замечал лишь его откровенную неприязнь ко мне и желание меня унизить. Может, поэтому я не смог тогда в полной мере сосредоточиться на его высказываниях, проследить за его мыслью.

Я открываю дверь и ловлю на себе недовольные взгляды. Говорит докладчик тихо, и воспринимать его речь мешает любой шорох.

Я оглядываю аудиторию. В первом ряду замечаю Чагина. Место рядом с ним свободно, но, увидев меня, он поднимает с пола свой кожаный портфель и демонстративно ставит на пустующий стул. Я занимаю другое место, позади него.

— Это чему же? Если Вас не затруднит, приведите пример, — говорит Чагин докладчику и кривит губы.

Нет, мне это показалось. С того места, где сидел, я никак не мог бы заметить его ухмылку.

Что потом?

Вот Чагин смотрит на меня. Его осанка, посадка головы и даже выражение холодных глаз донельзя высокомерные.

Или нет? Он смотрел не на меня, он смотрел на докладчика. Наверное, тот что-то сказал перед этим. Но что?

— Можно научить искусственный интеллект совести, — говорит докладчик.

Точно! «Научить искусственный интеллект совести».

Он молча вертит в руках кликер.

Видимо, у него это в первый раз. Выступление на конференции. Может, студент или только после окончания двухмесячной практики. Хотел познакомить слушателей с основами машинного обучения, сделать обзор собственной статьи — и нарвался на Чагина.

Все смеются, кроме Чагина.

Антон что-то спросил у докладчика, а бородатый мужик с последнего ряда смешно пошутил. Передразнил он его, что ли?

На лице у Антона обычная маска презрения.

— Господа, Вы мешаете! — громко говорит он, обращаясь к бородатому мужику и его товарищам.

Я саркастически наклоняю голову набок. Слегка улыбаюсь. Готовлюсь кивнуть ему, но он даже не смотрит в мою сторону.

Почему я думал, что он посмотрит? Я тоже его дразнил? Сказал что-то обидное?

Я поправляю бейджик на футболке.

— Сделайте милость, не продолжайте доклад, пока они не уйдут, — говорит Чагин докладчику.

Я вздрагиваю, будто меня ударили. Но продолжаю сидеть на своем месте.

Докладчик сконфуженно кивает Чагину.

Непонятно было, кого он с большим удовольствием выгнал бы — бородатых мужиков или Антона. Все выступление Чагин с чувством собственного превосходства задавал ему вопросы типа: «Почему же Вы так думаете? Почему же Вы так решили? Позвольте спросить, что… Смею узнать, как…» — и специально бил в самые слабые места доклада.

Чагин прикладывает мобильный к уху и вызывает на помощь администратора. Бородачи переглядываются. Отпуская шуточки в адрес Чагина, медленно встают и идут к выходу. Улыбаются мне напоследок.

Докладчик провожает их тоскливым взглядом. Наверняка, хочет выйти вместе с ними. Но Чагин тоже вскоре уходит. Задав еще пару вопросов, — каких вопросов? он что-то хотел узнать у докладчика? что-то важное? про нейросети? — он берет портфель и встает со стула. Бросает вошедшему администратору, что спикеры на этой конференции достойны слушателей.

«Ну нельзя же быть такой скотиной!» — думаю я.

Нельзя же быть такой скотиной и ничем не компенсировать это миру.

0.2. Вынужденное одиночество

0.2.0. Дано

Казалось, что в такой прекрасный солнечный день не может случиться ничего плохого. Но это не так. Все что угодно может случиться когда угодно.

Я достал телефон и прочел СМС. Два слова, которые не вязались с происходящим. Два слова, выпадающие из картины. Выглядели дико и бессмысленно.

Радостно пригревало солнце, в наушниках играла бодрая музыка. Но два слова — и я прятал глаза от прохожих, находил трещины в асфальте.

Я выключил музыку. Споткнувшись, вошел в автобус. Снова включил. Вытащил из ушей наушники. Уставился в окно.

Утром я завтракал, когда вошла Марина. Еще не прожевав бутерброд с колбасой, я встал и подошел к плите, чтобы поставить чайник.

— Как спалось? — спросил я, как только проглотил еду.

Но Марина не ответила. Села за стол.

По утрам она не любила разговаривать, и обычно я не настаивал. Но в этот раз мне хотелось поболтать. Я был уверен, что кое-что нащупал. И это приводило меня если не к разгадке, то к хорошему настроению.

Я налил заварку в чашку и поставил ее на стол перед Мариной. Улыбаясь, наклонился, чтобы поцеловать жену.

Но она молча меня оттолкнула. Заглянула в чашку.

— Слишком крепко, — сказала Марина.

Я вылил часть заварки в раковину. Снова поставит чашку на стол.

— А так?

Она пожала плечами. Ее реакция была более чем положительной.

— Я тут кое-что понял. Про Чагина. Знаешь, как переводится слово Craft? — спросил я.

— Что? — не поняла Марина.

Она взяла пульт и включила телевизор. Показывали рекламу. Последнее время из всего того, что показывали по телевизору, реклама раздражала меньше всего. Но сейчас внимание Марины требовалось мне целиком.

— Craft. Так его программа называется. Знаешь, какой перевод? — И, не дожидаясь ее ответа, торжествующе произнес: — Искусство. Мастерство!

Жена прибавила звук.

— А его язык программирования называется Leader, — повысил я голос.

Послышался свист чайника. Одного недовольного взгляда жены было достаточно, чтобы я встал и побежал его выключать. А потом — наливать кипяток ей в кружку.

— Leader! Представь, какое у него самомнение!

Сказав это, я неловко засмеялся. И тут же пожалел об этом.

— Жаль, у тебя такого нет, — сказала Марина.

Буквы одна за другой следовали из ее рта, но собирать их воедино не хотелось.

Недавно жена приобрела в одном из своих любимых магазинов дорогую деревянную подставку для чайника. Но я поставил его обратно на плиту. Пусть как следует испачкается брызгами масла из сковородки, подпалит бока огнем соседних конфорок.

— Говорят, вселенная — плоская, — она рассматривает на свету вино в бокале, и ее голос медленно растекается в воздухе.

— Почему тогда то, что в ней находится, объемное? — я не хочу противоречить, но считаю своим долгом хоть что-то заметить ей в ответ.

— Потому что, — сначала отмахивается она. Но задумывается и предполагает: — Вселенная плоская, но входит в состав чего-то объемного, — взгляд круглых глаз устремляется ко мне. Зрачки расширяются. — Вселенная — одна из плоскостей объемного тела…

— И как же узнать, что собой представляют другие его плоскости? — спрашиваю я, пытаясь принять позу, в которой не так больно сидеть.

— Человек не может это узнать, — она счастливо смеется, словно сама — не человек. Опять рассматривает капли вина на стенках бокала. — Не зря же космос такой огромный. Человеку и жизни не хватит пролететь там приличное расстояние. Это только граница.

Граница, не похожая на границу.

Обман.

Я сел за стол и спросил:

— Может, поужинаем сегодня где-нибудь?

— Я занята. У меня клиент с ПТСР. И еще один, с неврозом.

— А профессионального выгорания у тебя не будет?

Все, что я запомнил из редких разговоров Марины о работе: психолог должен следить за своей занятостью и строго контролировать количество клиентов. Именно этим она объясняла свой более чем свободный график. А теперь она демонстративно увеличивала часы. И не хотела со мной разговаривать.

— Ты — мой герой! — сказал я и снова попытался ее обнять. — Решила спасти всех людей на планете?

Резким движением руки Марина стряхнула крошки со стола на пол.

— И почему после тебя так грязно всегда?! — сердито спросила она.

Встала и вышла из кухни.

И только я потянулся за бумажными полотенцами, чтобы протереть стол, пришло СМС.

Два слова, которые стояли у меня перед глазами, пока мыл посуду, чистил зубы, собирался на работу.

Я вышел на улицу и сел в автобус, но все еще не видел ничего, кроме этих двух слов. Я непонимающе всматривался в мелькающие многоэтажки, слепо ловил отблески солнца в окнах. Пытался выхватить из пролетающего мира доказательства, свидетельства произошедшего. Но ни доказательств, ни свидетельств не было. Ни намека на то, что случилось.

Мир, который Чагин хотел сделать лучше, ничего не заметил. Мир не заметил, что Чагин умер.

0.2.1. Сознательный выбор

Со мной никто не разговаривал.

Лицо немело, зубы плотно сжимались. Я поискал глазами и нашел свое отражение в темном экране телевизора. И там, среди грязных пятен и в разводах пыли, обнаружил на губах улыбку, дежурное участие в беседе.

Я сделал над собой усилие и разжал челюсти. Но получилось еще хуже. Лицо перекосило, свело судорогой. Казалось, в экране не мое лицо. И вообще не лицо. А страшная маска. Она испугала меня бессмысленным выражением, отсутствием эмоций. Посмотри еще секунду, и изо рта слюна потечет.

Я отвернулся, закрыл лицо руками и глубоко вдохнул. Это не я сидел в стороне от всех, не я медленно пил третий стакан виски, не я высокомерно считал разговор приятелей пустой болтовней. Не у меня мышцы лица немели, а зубы крепко сжимались. И не мое отражение показывал телевизор. Не мое — а Чагина.

Это Чагин, а не я, никого не интересовал. Это к Чагину не подходили. С ним не заговаривали. Каким бы великим ни был его проект и как бы ни старался Антон спасти мир или сделать его лучше, никому Чагин не был нужен.

«А, может, и работа его никому не нужна, — подумал я. — Человечество не нуждается в том, чтобы его спасали. Никто не нуждается. Я, например, — нет!»

Бармен посмотрел на меня, и я жестом попросил повторить заказ.

Другие пили пиво, обсуждали новости, взрывались смехом. Сергей, задирая подбородок, рассказывал о кадровых перестановках на работе. Паша встревал с вопросами и уточнениями. Лысый саркастически улыбался и отпускал пьяные шутки. В одной руке он держал стакан с пивом, в другой — рюмку с водкой. Девушка Лысого сидела рядом и, скрючившись, листала в смартфоне ленту новостей. Иногда отвечала на сообщения. Два незнакомых парня в толстовках тихо спорили о видеоиграх.

Бармен принес мне виски и забрал пустой стакан. Я молча кивнул. Я не мог раскрыть рот. Словно закупорил, сам себя заковал в молчании.

«Я не нуждаюсь в том, чтобы меня спасали», — подумал я и залпом выпил виски.

Захотелось набрать номер Марины. Услышать, с каким удовольствием она на меня ворчит. Я положил на стол деньги, встал и пошел к выходу из бара. В дверях пьяная женщина наступила мне на ногу, обдала смешанным запахом алкоголя и рвоты.

Я снова подумал о Чагине. Антон не искал в мире доказательств, свидетельств или намеков. Ему и в голову не приходило сомневаться в том, что он, Чагин, миру необходим.

0.3. Спасение мира

0.3.0. Спасение человека

Я просматривал статью о реверс-инжиниринге, надеясь узнать из них новые способы расшифровки кода. Но скроллил страницы, не вникая в смысл написанного. Вместо того чтобы читать текст, я вспоминал, что говорил Чагин на конференции.

Докладчик заявляет, что мы все находимся на пороге чего-то важного. Я замечаю свободное место у окна и спешу его занять.

Видимо, мне не терпится узнать, на пороге чего мы стоим. Но было бы смешно, если бы этот худой высокий парень в черных брюках и мятом свитере действительно располагал данной информацией.

— Нейросети могут решать задачи, которые непонятно, как решать, — говорит докладчик.

— Если Вас не затруднит, приведите, пожалуйста, пример, — просит Чагин.

Вроде бы он немного подается вперед, прислушивается. Записывает ответ на смартфон. Точно-точно. Он конспектирует лекцию и постоянно задает уточняющие вопросы. Наверное, тема доклада была ему по-настоящему интересна.

В новой вкладке браузера я открыл книгу по машинному обучению. И тут же закрыл.

— Их можно научить всему, — спикер краснеет. — Даже тому, что мы делаем бессознательно. Или он сказал «подсознательно»? Было бы правильнее, если бы он сказал «подсознательно».

Я зашел в чат робототехники и начал пролистывать сообщения.

— Краснеть, например, — кричит кто-то из бородачей.

Они сидят на заднем ряду — привычное дополнение к каждому митапу. Разливают абсент в бумажные стаканчики из-под кофе, громко перешептываются и смеются. Конференция для них — дринкап, своего рода разминка перед афтепати. Большую часть выступлений они не слушают и приходят просто потусоваться.

Чагин с шумом к ним поворачивается.

— Вы мешаете! — сердито говорит он.

«Может, они, и правда, ему мешали, — предположил я. — Может, он хотел что-то понять, а бородачи отвлекали его от серьезного разговора».

Я посмотрел на пустое кресло Вышинского. На его монитор, после смерти Чагина перешедший из сна в выключенный режим.

Директор не появлялся в офисе несколько дней. Не звонил и СМС больше не присылал.

«Может, он уже передумал расшифровывать код. Или узнал что-нибудь новое о программе. А сообщить мне даже и не подумал. Может же такое быть!» — решил я.

— Например, можно научить их совести, — отвечает докладчик Чагину.

Я покликал мышкой, бездумно переключаясь с одной вкладки на другую, а потом стал переходить с одного на другой чат разработчиков нейронных сетей.

«Кстати, почему никто из нас не спрашивал, можно ли научить совести хотя бы человека? — подумал я. — Неужели никого этот момент не насторожил?»

— Нейронные сети изменяются и, в конечном счете, приобретают характер.

— Вы сказали, — Чагин смотрит на экран смартфона, а затем на докладчика. И как я мог забыть, что он конспектировал лекцию?! — что «нейросети хороши в задачах, которые непонятно, как решать». Все правильно?

Я поочередно вводил в поисковик фразы «neural networks», «deep learning» и «artifical intelligence» и просматривал открытые по запросу картинки.

Докладчик кивает.

— И думаете, они могут проявлять признаки совести, так? Вы уверены, что совести хватит, чтобы все было правильно?

Совести хватит? Или совести нам хватит? О чем это он?

В базах научных работ я искал труды Чагина и гуглил фразу «chagin science publications». И даже «chagin conscience publications».

Чагин выгоняет бородачей из аудитории. Или нет? Может, это потом? И что он имел в виду, когда сказал «чтобы все было правильно»?

— Помогите мне разобраться, — говорит Чагин.

«Может, он действительно хотел разобраться? — спрашивал себя я. — Может, он пытался услышать докладчика и понять его? Может, эта тема — совесть у ИИ — была ему интересна? «Чтобы все было правильно» — но что это все? О чем думал Чагин, над чем он работал?»

Я совершал множество бездумных кликов мышкой и бессмысленно стучал пальцами по клавиатуре, вспоминая ту конференцию. Пока рядом со мной не прозвучали знакомые слова.

— Нет, там что-то про искусственный разум.

Я оглянулся по сторонам. Женщина, что обычно заполняла таблички, болтала по телефону.

— Да, просто кошмар. Нашел какие-то курсы. Говорит, компьютер нужен… Нет, у него есть, просто с ним что-то не так… Не с сыном, с компьютером.

Я состроил гримасу. Стоило сфокусировать внимание на искусственном интеллекте, и о нем заговорил весь мир. Включи я сейчас сериал, открой газету или подсядь к бабушкам на лавочку возле дома, только про нейросети бы и слушал.

— Да, надо. Это вклад в будущее.

Я закрыл лицо руками. «Вклад в будущее» — какая насмешка!

«С другой стороны, — подумал я, — когда мозг занят решением проблемы, он находит ответы повсюду. И все, что нужно знать, у меня перед глазами. Надо только присмотреться».

Я поднял глаза от компьютера и увидел Вышинского.

— Перекурим? — спросил тот.

0.3.1. На своей волне

Вышинский приоткрыл окно, на котором висела наклейка «Не курить», и достал из кармана никотиновую жвачку.

— Как продвигается? — спросил он и положил одну пластинку в рот.

Я пожал плечами. Я не знал, о чем программа Чагина. И в мире не было человека, который знал. Больше не было.

— Когда похороны? — сменил я тему.

Вышинский сел на подоконник.

— Вчера, — ответил он. — Была жена и дети его.

— Дети?

Я не знал, что у Чагина были дети.

— Да, они ничего не знают о программе, я спрашивал. Федор, теперь нужно не только расшифровать, нужно дописать код. Сделать его рабочим. Понимаешь? Я предлагаю тебе полноправное участие в проекте. Предлагаю возглавить проект.

Речь директора должна была вдохновить, но за словами слышалась мольба. Выглядел Вышинский неважно: глаза блестели, руки дрожали.

«Сколько же денег он Чагину отдал?» — подумал я и посмотрел на директора глазами милосердия. Скорее всего, я — не первый, к кому Дима обращался за помощью. Но, возможно, последний. Если я откажусь, Вышинский похоронит проект Чагина, а сам я, Магулов, потрачу себя в поисках задач, более подходящих для такого амбициозного профессионала. В молодом и перспективном коллективе, в котором любому можно только расти и развиваться. Со свободой в лучших формах ее проявления и возможностью писать код с учетом новейших технологий и разработок. Самому-то не смешно?

— Давай сначала расшифруем код, ладно?

В порыве благодарности Вышинский протянул мне жвачку от курения. Настроение было такое отчаянное, что я взял. Много ли мы можем сделать друг для друга? И не все ли, что мы делаем друг для друга, на самом деле мы делаем для себя?

— Я хотел спросить, Чагин с кем-нибудь работал? — спросил я. — Или все в одиночку делал? И сервера сам поднимал?

Вышинский на секунду задумался:

— Был человек. Он с ним вроде обсуждал что-то. По технической части.

Я подумал, что было бы неплохо найти коллегу Чагина и поговорить с ним.

— А зовут его как, знаешь?

— Лисья какая-то фамилия. Лисицев, Лисицын. Не помню, — Вышинский улыбнулся и посмотрел на часы. — Я рад, что ты взялся. Правда. Проект будет очень крутым. Мы его раскрутим, я уверен. Да?

— Я уже говорил, без отладчика мало, что можно сделать. А раз нет никого, кто бы…

Вышинский быстро встал с подоконника и полез в карман.

— Вот, — сказал он и протянул мне флешку. — Совсем забыл. На почту я тебе тоже скинул.

— Это что, отладчик?

Вышинский кивнул.

— Сегодня по электронке пришел, — сказал он.

«Наверное, Чагин запланировал отправку своего письма заранее, — подумал я. — Иначе как это объяснить?»

— Это был код всей его жизни, понимаешь? — произнес директор. — Нужно сделать все, чтобы он заработал!

Вышинский закрыл окно, показывая, что разговор окончен.

— Подожди, — сказал я. — Есть одно условие…

Директор нахмурился. Схватился за поручень лестницы.

Еще один удаленный сотрудник, занимающийся невесть чем, Вышинскому был не нужен. Однако, подумав немного, он согласился на мою просьбу. Точнее пошел на сделку. Принял серьезный, деловитый тон и сказал:

— Ты будешь отчитываться передо мной…, — он поднял глаза к потолку, прикидывая как сильно можно загнуть, и снова посмотрел на меня, — каждый день, понял? Сообщаешь обо всем. Абсолютно. Не сообщаешь — уволен. Окей?

— А когда в последний раз отчитывался Чагин?

Вышинский мысленно прикинул.

— Дней двадцать назад, — сказал он.

— Ну ты, Дима, даешь! Может, он за это время дописал программу, — сказал я и пошел в опенспейс за кружкой и сменными ботинками.

В полдень я отдал пропуск охраннику и вышел из бизнес-центра. На улице не было никого. Никто мне не мешал. Не опережал меня, не наступал мне на ноги.

«Интересно, сколько людей Вышинский привлечет к делу с максимальной степенью свободы прежде, чем научится извлекать опыт из ошибок?» — подумал я.

0.4. Понарошку

0.4.0. В ногу

«Хлюпанье ботинок по мокрому асфальту заглушает рев транспорта, несущегося параллельно нашему с ней движению. Свет редких фонарей отражается в бездонных лужах. А в воздухе пахнет жареными сосисками, пивом и желанием идти бесконечно долго. Идти и никуда не приходить.

Я осторожно ступаю рядом и физически ощущаю ее мысли как попытки вскарабкаться на отвесную гору — она болтает ногами в воздухе, руками стараясь ухватиться за редкие выступы. Увидев это, я пугаюсь и, не успев подумать, с силой хватаю ее за локоть. Она слегка вздрагивает, но смотрит на меня благодарно.

В моем восприятии время, проводимое вместе, не делится на части. И я вряд ли понимаю, где начало нашего знакомства, а где конец. Мы говорим как давние знакомые — вопросы и ответы, ответы и вопросы — о том, что происходило с нами раньше, о том, что произойдет потом. Кажется, мы много лет вели разговор — каждый сам с собой — и остается лишь материализовать его в присутствии друг друга.

Возможно, при этом мы чертим границы, которые в будущем много раз заставят нас пожалеть о возникшей близости. Представляем то, что потом задушит нас в присутствии друг друга. Но так ли важно это потом?»

— А отчего он умер?

Играя в молодежной сборной по футболу, Чагин получил сотрясение мозга. Травму колена — при самостоятельных прыжках с парашютом. Вывих плеча — во время тренировок по боксу. Он постоянно падал со скейта и несколько раз — с велосипеда. А однажды в детстве, прямо при мне, его сбил трамвай.

— Инфаркт, — сказал я.

Антон говорил, что думал, но не думал, кому это говорил. Делал резкие замечания. Шел на конфликты. Нарывался на отморозков с ножом в кармане и как будто специально провоцировал их на драку. Стучал по колесам не по правилам припаркованных автомобилей и хватал пули из пневмата разозленного водителя. А однажды в юности прыгнул в холодную воду за провалившейся под лед собакой. Чтобы потом отчитать хозяев за безответственность и забрать животное себе.

— В таком возрасте… Сколько ему было?

Я посмотрел на Марину. Она вполоборота сидела на диване: нога положена на ногу, локоть — на спинку дивана, указательный палец упирается в висок.

Не знаю, как долго она так сидела. Сколько времени скользила по мне оценивающим взглядом. И какие эмоции прочла на моем лице, пока, я забывшись, вспоминал категоричный характер Чагина.

— Может, бросишь уже эту работу? — спросила она.

— Вышинский хочет, чтобы я дописал код.

— Так ты будешь главным? Ты будешь главным в проекте, который решает проблему всего человечества?

В голосе Марины слышалась насмешка.

— Ну, положим, сначала мне нужно расшифровать код. К тому же, я еще ни на что не соглашался.

— Нужно погуглить его в соцсетях.

— Чагина нет в соцсетях, — сказал я. И почувствовал, что это не может не радовать.

— А его помощника?

— Вышинский не помнит фамилию. Говорит, какая-то, — я поднял руки и показал знак кавычек, — лисья.

Марина потянулась за планшетом.

— Ты так и не сказал, сколько лет было Чагину.

— Мы одного года рождения, — не подумав, сказал я.

И тут же напрягся. Мне совсем не нужно было, чтобы Марина раскапывала информацию об Антоне.

Чагин был своего рода звездой IT-сообщества: всегда на шаг впереди, с завидными связями, избалованный лучшими предложениями по работе. Многие гордились знакомством с ним. В отличие от меня.

Факт давнего знакомства с Антоном я тщательно скрывал. Боялся, что если об этом узнают, узнают и о деталях нашего с ним конфликта.

Но у Марины был нюх. Она тут же нашла именно то, чего не должна была находить.

— Представь, он тоже в шахматы играет. Играл. Третье место на чемпионате 2005-ого, — она углубилась в статью. — Твой кубок разве не за тот же год?

— Нет, — соврал я и встал с кресла.

— Тут написано, свой кубок он не взял.

«Чертов интернет! Всех с потрохами сдаст», — подумал я. И сказал:

— Отлично. Ты пельмени будешь?

— Я не ем это дерьмо. И ты видишь, я занята?!

Я пошел на кухню. Набрал в кастрюлю воды.

— Слышишь?! — закричала Марина из комнаты.

Поставил кастрюлю с водой на плиту и зажег конфорку.

— Ты что, не слышишь? — она вошла на кухню. Глаза лихорадочно блестели. — Я нашла.

Если бы спортивное ориентирование проводили в интернете, Марина получила бы максимальное количество очков, пришла бы к финишу первой и победила в соревновании.

— Лучше бы приготовила что-нибудь, — сказал я.

Марина обиделась, отвернулась. Подумала немного и вышла из кухни. Но не успел я залить чайные пакетики кипятком, как она вернулась. Встала в проеме двери. Сердито спросила:

— Ты хочешь знать или нет?!

Очень уж ей не терпелось поделиться информацией. Но кроме меня, было не с кем.

0.4.1. Вседоступность

— Онлайн, — сказала Марина.

Мы смотрели профиль незнакомой женщины в «Одноклассниках». Несмотря на то, что фамилия, возраст и место проживания совпадали, я сомневался. В подтверждение своих слов Марина показала мне фотографии: «Вот, смотри. Это в отпуске. А вот — на первом звонке, на линейке. Ты же сам говорил, двое детей и не замужем».

Она открыла список друзей. В основном в нем были женщины, но нашлось и несколько мужчин.

— С лисьей фамилией никого, — сказала Марина, пробежав список глазами. — Надо ей написать. Может, она знает, с кем Чагин общался.

— Вышинский просил никому ничего не говорить.

— И не надо, — согласилась жена.

— Тогда зачем?

Не дожидаясь ответа, я отошел от дивана и сел за компьютер. Ситуация меня сердила. Но я не мог запретить жене писать сообщения и при этом не привлечь к себе ее внимание. Марина начала бы спрашивать, почему я не хотел связываться со вдовой Чагина, а чтобы придумать убедительное объяснение, мне требовалось время.

— Светлана, здравствуйте, — начала Марина, тыкая пальцем в экран планшета. — Мы с вашим мужем вместе учились в институте. Антон очень многому меня научил. Он лучше всех на потоке разбирался в… В чем он мог разбираться?

— Что?

— Ну, в чем может разбираться человек, который учился на программиста? — раздраженно спросила Марина.

— Да в чем угодно!

— Ну, например. Можешь ты хоть что-нибудь назвать?!

— В решении системы дифференциальных уравнений. Или в робототехнике. Я не знаю.

— Понятно, — перебила меня Марина, — лучше всех на потоке решал дифференциальные уравнения.

— Системы уравнений, — сказал я и запустил стратегию. Надел наушники, но звук на компьютере не включил.

–…системы дифференциальных уравнений. Примите мои соболезнования. Антон был прекрасным человеком.

Марина нажала «Отправить» и довольная собой улыбнулась.

— Это отвратительно. Тебе не стыдно? — спросил я.

— Тебе не стыдно? — передразнила меня Марина. А потом серьезным голосом добавила: — А почему мне должно быть стыдно?! Я, между прочим, тебе помогаю.

У меня не было слов. Зато они были у Марины:

— Тебе не стыдно? — опять передразнила она. — Мы можем столько всего узнать! Над чем он работал, чего хотел.

Я злился и не спускал глаз с экрана.

— Она, кстати, прочла.

— Прекрасно, — недовольно сказал я. И вспомнив, что все еще голодный, открыл сайт по доставке еды.

— Печатает что-то.

— Может, ты успокоишься?

— Перестала. Нет, опять печатает.

Я выиграл битву, заказал две пиццы, а жена Чагина, к счастью, так ничего и не ответила.

— Холостой выстрел, — сказала Марина и подошла ко мне. Нагнулась и, улыбаясь, поцеловала. — Это отвратительно. Тебе не стыдно?

— Повернись. Я тебя отшлепаю.

— Тебе не стыдно?! — рассмеялась Марина.

А потом принюхалась и испуганно спросила:

— Это чем пахнет?

Я потянул носом. Из кухни несло горелым.

Забыв снять наушники, я вскочил с кресла. Провод резко натянулся, и монитор, обиженно крякнув, рухнул на стол.

Из-за разведывательной деятельности Марины я напрочь забыл о воде для пельменей. И чуть не свернул себе шею.

0.4.2. Свобода выбора

Я не хотел в этом признаваться, но спустя несколько недель бесплодной расшифровки кода идея Марины показалась мне не такой уж и плохой. Во всяком случае она навела меня на другую, более верную мысль. Я не собирался искать профиль Чагина в социальных сетях, но решил заглянуть на технические форумы и профессиональные сайты. А также в чаты и блоги айтишников. Как минимум, в LinkedIn.

Аккаунт Чагина я искал по имени и фамилии. Когда это не дало результата, попробовал подобрать его никнейм. Проверил имена chagin, achagin и antonchagin. Просмотрел списки участников, отфильтровав их по возрасту и месту жительства. Погуглил «Лисов+нейросети», «Лисицын+нейросети» и «Лисинков+нейросети». Но, как и Марина, ничего не нашел.

Подумав немного, я открыл самый популярный среди разработчиков искусственных нейронных сетей чат. Если верить Вышинскому, Антон не хотел делиться идеей спасения мира, но, наверняка, обсуждал с другими проблемы своего кода. Или наоборот. Зная Чагина, можно предположить, что время от времени он назидательно разбирал чужие задачи. А также помогал коллегам понять, что они куда хуже него разбираются в теме машинного обучения.

Я листал ленту в надежде найти сообщения Чагина потому, что не мог расшифровать его код. Вынюхивал след и бродил кругами, так как не был способен подойти вплотную. Я разобрался со смыслом отдельных строк, но не понимал написанный Антоном код в целом. Когда бы я ни открыл исходный текст программы, набранные Чагиным символы выглядели недружелюбно. Они били в глаза холодом, неприступностью и диким высокомерием. Совсем как их автор.

«Но зануда и перфекционист, он не мог написать безграмотный, бессвязный код. Или…», — я закрыл браузер и открыл редактор. С надеждой посмотрел на текст программы. Шрифт был тот же, но показалось, что он округлился, смягчился и повеселел.

У меня появилась идея.

0.5. О началах познания

0.5.0. Порочная аргументация

Я решил, что такие новости сообщают лично. И отправился в офис. Но по дороге — в тот момент, когда дежурная в будке экстренно остановила эскалатор, и пришлось, чтобы не упасть, резко схватиться за поручень, — я вернулся от мыслей, занимавших меня последнюю неделю, к настоящему мгновению и посмотрел на себя как будто со стороны.

«Только не я, — подумалось мне. — Это точно не должен быть я».

— Мне лестно твое доверие, правда, — начал я, осторожно подбирая слова. — Но, может, еще кто-нибудь код посмотрит?

Вышинского я нашел в столовой бизнес-центра. Он только взял на раздаче поднос с едой и уселся за столик. И теперь поднял вилку и оценивал, насколько она чистая.

— Зачем? — спросил Дмитрий и вытащил из держателя салфетку.

— Боюсь, я что-то упускаю. Это какая-то бессмыслица. Я, правда,… Правда, не понимаю.

Вышинский протер вилку и положил использованную салфетку на стол.

— Я же дал тебе отладчик, — сказал он и равнодушно проткнул вилкой котлету.

Я свел брови к переносице и попытался поймать его взгляд, но директор на меня не смотрел. Он сосредоточенно ловил вилкой макароны и отправлял их в рот.

Я глубоко вздохнул. Салфетка полетела на пол. Я поднял ее и положил обратно на стол.

— В программе должна быть описана модель нейронной сети. Код для работы с моделью. Может быть, код обучения. Но там ничего нет.

Вышинский положил вилку на грязный стол.

Сначала я решил, что Чагин ошибся. И вместо исходного кода программы он отправил Вышинскому какой-то другой файл. Но путаницы быть не могло: Антон заливал новые версии программного обеспечения каждый месяц в течение года. Он не мог так долго не замечать, какие выкладывает обновления.

Тогда я подумал, что файл Чагина неполный. Что в нем не хватает части кода. И решил проверить эту версию. Но это оказалось сложнее, чем можно было себе представить. Я более-менее разобрался с основами языка Leader, однако, выясняя, что делает та или иная строка кода, забывал, зачем нужна предыдущая. Я пробовал вырывать из текста программы и запускать повторяющиеся куски кода, но и здесь столкнулся с тем, что разрозненные части не складывались в единое целое.

— По-моему, это не код, — продолжил я. — Это просто набор фраз.

Директор поднял на меня глаза. Потом взял использованную, побывавшую на полу салфетку и вытер свой рот.

— Он же не успел дописать программу. Может, в этом все дело?

— Слушай, ты можешь…

Но он меня перебил.

— И потом, на исследование программного обеспечения нужно много времени.

«Гораздо больше, чем я хочу провести в твоей компании», — подумал я.

— Еще ты говорил, язык непонятный, — не сдавался Вышинский.

На языке Leader я написал программу Hello, world!, калькулятор и код для нахождения максимального элемента каждого столбца матрицы.

— Это не искусственный интеллект, не искусственные нейросети. Не просто программа, решающая какую-то отдельно взятую задачу. Это бессмысленный набор строк, — в пылу спора я сказал то, чего не хотел. Меня просто понесло. Со мной так часто бывало: я заранее решал, что и кому не буду говорить, а потом забывался и говорил.

С каждым словом я будто набирал силу, а Вышинский, наоборот, ее терял. И в конце моей речи выглядел директор пришибленным.

Он шумно втянул ноздрями воздух и выдохнул. Салфетка снова полетела на пол. Я поднял ее, скомкал и положил в карман.

Директор прокашлялся.

— И что? По-твоему Чагин меня обманул? — спросил он.

Я удивленно поднял брови. Если Вышинский настолько близко знал Чагина, что стал его партнером по бизнесу, как он мог предполагать, что тот был мошенником?!

— Может, у него просто не получилось, а признаться не смог?

Я никогда бы не поверил, что Чагин организовал аферу. Но успокаивая Вышинского, сам чувствовал себя обманутым. Антон мог создать гениальное изобретение, но вместо настоящего прорыва обеспечил нам с директором фальшивые надежды.

— Как я и думал, — директор со звоном отодвинул от себя тарелку с недоеденной котлетой. — Сначала все заводные, сердца горят… а заканчивается все очередным лохотроном.

— Слушай, Чагин не из тех людей, что…

И тут он что-то услышал. Уловил в моей интонации. Непонимание? Растерянность?

В конце концов, мое мнение могло быть ошибочным. Я и сам в нем сомневался. Боялся упустить важное. Стоило мне отойти от компьютера с открытым на нем кодом, я снова к нему возвращался. Сам себе не верил, и все время спешил удостовериться, не упустил ли я что-нибудь из виду.

Может, я плохо проверил? Может, просмотрел какие-то строки в коде? Не обнаружил между ними взаимосвязь?

Директор отложил вилку и посмотрел на меня в упор. Его широкие ноздри часто раздувались.

— Тогда еще раз посмотри, — Вышинский с жаром наклонился ко мне, и я почувствовал в его дыхании котлетный запах. — Ты же и не сидел почти. Сколько прошло, несколько недель? Что можно понять за это время?

Последние дни я только и делал, что проверял и перепроверял. И так от этого устал, что хотел одного — чтобы этот код проверяли другие.

Может, его нельзя расшифровать? Может, каких-то строк не хватает? Или, наоборот, они лишние? А, может, расположены в неверном порядке?

От этого бесконечного количества «может» я забыл другие слова. Забыл, что обычно уверен в своей работе.

— Есть целые компании для оценки кода. У них намного больше опыта, чем у меня. Я уверен, что они расшифруют код.

Я вообще не должен был браться за эту работу. Только не я. Не я должен был ставить точку в проекте, выносить приговор работе Чагина.

Со стороны это выглядело как реванш. Месть за нанесенную когда-то обиду. Мне приходило в голову, что подсознательно я хотел, чтобы Чагин облажался. А, значит, мог проигнорировать ценность его работы.

— Понятно, — сказал Вышинский. — Ладно, иди. Я что-нибудь придумаю.

Я неуверенно встал. Оглядываясь на директора, пошел к выходу. Я знал, что нужно делать: оставить код Чагина и запускать собственный стартап. Но меня не оставляло ощущение, что я что-то упускаю. Словно не справился с загадкой. Удовлетворился ответом, лежащим на поверхности.

Словно у программы Чагина было второе дно.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Алгоритм Чагина предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я