Андрей Северский
Осколки «Галилея»

От автора

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

Эта история начинается в момент, когда такого обещания больше нет.

Семь частей «Галилея» расходятся по разным орбитам. На каждой остаются люди, запас воздуха, собственные приборы и неполная картина аварии. То, что спасает одну секцию, может отнять тепло у другой. Приказ приходит с задержкой. Расчёт, верный минуту назад, становится опасным до того, как его успевают проверить. Ни должность, ни профессиональная уверенность не дают человеку права распоряжаться чужим кислородом.

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

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

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

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

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

Глава 1. После звука

Лена проснулась от удара, которого не услышала.

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

Она открыла рот, сглотнула. Уши были целы. Тишина возникла не в голове.

— «Галилей», статус.

Ответа не было.

На визоре мигало: ЛОКАЛЬНЫЙ КОНТУР. СВЯЗЬ С ЯДРОМ ОТСУТСТВУЕТ. Вместо силуэта корабля — схема отсека, обрезанная по двум шпангоутам.

Лена дёрнула правую руку. Ремень не отпустил. В кресле напротив висел Максим Белов, техник второй смены. Глаза закрыты, на щеке тёмная царапина, грудь под страховочной сеткой поднималась. Жив.

— Максим.

Он не отозвался.

На панели у колена горел обратный отсчёт.

АВТОМАТИЧЕСКОЕ СБЛИЖЕНИЕ: 00:01:47.

Лена перестала тянуть ремень.

Сближение с чем?

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

Лена поймала поручень и развернулась к пульту. Серый каркас «Фермы» висел на экране сам по себе. По обоим торцам мигали красные знаки гермозатворов.

Снаружи никого не было.

Нет, поправила она себя. Снаружи не было корабля.

Отсчёт дошёл до минуты тридцати двух секунд.

— Отменить автоматическое сближение.

НЕДОСТАТОЧНО ДАННЫХ ДЛЯ ГОЛОСОВОЙ АВТОРИЗАЦИИ.

— Инженер динамики Ветрова, личный ключ семь-альфа. Отменить.

КОМАНДА ПРОТИВОРЕЧИТ АВАРИЙНОЙ ЦЕЛИ: ВОССТАНОВЛЕНИЕ СТРУКТУРНОЙ ЦЕЛОСТНОСТИ.

На схеме появился пунктир. «Ферма» собиралась дать боковой импульс и выйти к метке, скрытой за краем локального радара. Автоматика знала цель, но не показывала её массу и вектор. Лена вызвала таблицу датчиков. Два лидара не отвечали, третий видел россыпь льда и металла, радар был ослеплён близкими отражениями.

Пятьдесят восемь секунд.

— Покажи исходные измерения для цели сближения.

Пульт выдал старый пакет — возраст три минуты сорок секунд. Относительная скорость ноль целых восемь десятых. Расчётная точка встречи в четырёхстах метрах. Свежей дальности не было.

— Экстраполяция вращения цели?

НЕ ДОСТУПНА.

— Боковой профиль?

НЕ ДОСТУПЕН.

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

Чайник не обиделся. Сорок две секунды.

Лена открыла необработанный поток радара. Большая засветка шла поперёк экрана и двоилась через равные промежутки. Вращающийся объект. Судя по периоду, длинный. Его центр уже ушёл от старой точки встречи, но один конец должен был пересечь расчётный коридор как раз после импульса «Фермы».

Она наложила пределы ошибок. Красные эллипсы распухли и сомкнулись.

Автоматика не стыковала их. Она сталкивала две неизвестности.

Двадцать девять секунд.

Лена откинула прозрачную крышку аппаратного ключа. Под ней были три положения: «контур», «ручной», «обрыв». Она повернула до «ручного».

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

— Блокировать тягу. Все группы.

ПОДТВЕРДИТЕ ПОТЕРЮ ОКНА СБЛИЖЕНИЯ.

На экране осталось восемнадцать секунд.

— Подтверждаю потерю окна. Основание: цель не сопровождена, коридор пересечён вращающимся объектом.

ТРЕБУЕТСЯ ВТОРОЙ КЛЮЧ.

Лена посмотрела на Максима. Тот не двигался.

Двенадцать секунд.

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

Продувка прекратилась. По корпусу прошла дрожь.

В обзорном порту над пультом возник свет: длинная белая полоса медленно выплыла из темноты. Не звезда. Край радиаторной секции, искривлённый у основания. Она вращалась, разбрасывая кристаллы замёрзшего теплоносителя. Один изломанный конец прошёл там, где через несколько секунд оказалась бы «Ферма».

Расстояние — девяносто метров.

— Хорошо, — сказала она никому. — Потеряли окно.

Максим застонал.

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

— Максим, слышишь меня?

— Не повышайте голос, — пробормотал он. — Я уже согласен.

— С чем?

— Не знаю. Поэтому и согласен.

Сухой ответ обнадёжил сильнее показаний браслета.

— Имя?

— Моё или ваше?

— Своё.

— Белов Максим Олегович. Техник конструкций. Ненавижу тесты после сна.

— Это не тест. Не двигай шеей.

Он всё-таки приоткрыл глаза.

— Почему потолок слева?

— Потому что мы вращаемся.

— А почему корабль вращается?

Лена затянула вокруг его головы мягкий фиксатор.

— Корабль не вращается.

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

— Мы отделились?

— Нас отделило. Детали позже.

Она не знала деталей. На «Ферме» находились восемь человек: Максим и Лена на вахте, шестеро в гибернации. Биометки горели зелёным, кроме жёлтой метки Максима. Давление держалось. Кислорода хватало на девяносто один час при восьми бодрствующих — и намного дольше, если не будить остальных.

— Кто был на вахте? — спросил Максим.

— Мы.

— Это я понял. Кто был на корабле?

Лена открыла наружные камеры. Звёзды двигались по дуге. На каждом обороте в кадр входил Предел-7 — тёмно-синий диск с серой каймой атмосферы. Они должны были увидеть его через одиннадцать суток. Значит, траектория изменилась сильнее, чем показывал календарь.

Вслед за планетой появлялись огни.

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

— Включи аварийный маяк, — сказал Максим.

— Он включён.

— Тогда почему мы никого не слышим?

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

Под треском кто-то говорил.

— …приоритет командной секции. Всем уцелевшим узлам подтвердить…

Фраза оборвалась визгом несущей.

Затем поверх неё ворвался другой голос:

— «Ковчег» вызывает энергосекцию, повторяю: нам нужна мощность на защиту, медицинский контур…

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

Все говорили одновременно.

Максим тихо выдохнул:

— Значит, не только мы.

Лена растянула спектр: шесть источников, включая командную секцию. Вместе с «Фермой» — семь.

Она нажала передачу.

— «Ферма» в эфире. У нас восемь живых, один травмирован, герметичность сохранена. Автоматическое сближение остановлено из-за риска столкновения. Передаю сырые данные радара и время локальных часов.

Её сообщение утонуло в голосах.

— Повтори, — сказал Максим.

— Бесполезно. Они повторяют своё.

— Мы тоже.

Лена посмотрела на него. Максим попытался пожать плечами и болезненно поморщился.

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

— Центра больше нет.

Слова прозвучали слишком окончательно. Лена тут же пожалела, что сказала их вслух.

Она поставила пакет на повтор. Через одиннадцать секунд пришло машинное подтверждение, затем ещё два. Кто-то принял данные «Фермы».

На общей частоте прорезался командир Саранов:

— Всем секциям прекратить неприоритетную передачу. Говорит командир экспедиции. Переходим на аварийную иерархию. По моему вызову — название секции, люди, герметичность, тяга. «Ферма», ответьте первой.

Лена протянула руку к передатчику, но в тот же миг другой голос — женский, хриплый — сказал:

— Отрицательно. «Сад» не прекратит телеметрию воды. У нас утечка, и ваша иерархия её не закроет.

— «Сад», освободите частоту.

— Дайте канал приёма на энергосекцию.

— Всем секциям, это приказ.

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

Снова заговорили все.

Лена выключила звук, оставив запись.

— Почему ты не ответила? — спросил Максим.

— Потому что он не услышал бы ответ.

— Он вызвал нас по имени.

— Значит, услышал автоматический пакет. Или видит нашу метку. Это не одно и то же.

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

Максим всматривался в экран одним глазом.

— Мы можем собрать корабль обратно?

— Не знаю.

— Очень инженерный ответ.

— Инженерный ответ начинается после измерений.

«Ферма» делала полный оборот за четыреста восемьдесят две секунды. Две группы ориентационных двигателей горели жёлтым, баки сохраняли восемьдесят три процента рабочего тела. Предстартовая продувка уже отняла запас двух месяцев обычных коррекций.

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

— Ты сейчас что сделала? — спросил Максим.

— Не дала компьютеру забыть, насколько мало мы знаем.

— Полезная функция. Для людей есть?

— Была. Называлась журналом.

Центральный журнал обрывался за три минуты до пробуждения, на переходе конструкции в режим переменной нагрузки. Ни удара, ни команды на разделение. Запрос о пироболтах вернул странное: УЗЛЫ СОПРЯЖЕНИЯ ОТСУТСТВУЮТ В ЛОКАЛЬНОЙ КОНФИГУРАЦИИ. Не сработали и не повреждены — отсутствуют, будто «Ферма» всегда была отдельным аппаратом. Кто-то предусмотрел её самостоятельную жизнь.

— Нашёл аптечку, — сказал Максим.

Он уже освободил одну руку и тянулся к шкафчику.

— Я просила не двигаться.

— А я решил развивать локальную власть.

— Локальная власть сейчас получит седативное.

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

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

Осмотровый дрон показал за кормовым гермозатвором звёзды. Кромка была ровной, разъёмы закрыты штатными крышками; на одной мигал зелёный диод консервации. Секцию не выломало. Её аккуратно отсоединили.

— Так не делают при аварии, — сказал Максим.

— Делают, если есть время.

— У нас было время?

Она посмотрела на оборванный журнал.

— У кого-то было.

Снаружи снова прошла искривлённая радиаторная панель. Теперь дальше: их орбиты расходились. Автоматическая стыковка могла быть единственным близким шансом вернуть два фрагмента друг к другу. Лена остановила её, и окно действительно исчезло.

Новый радарный расчёт подтверждал: «Ферма» ударила бы радиатор силовой балкой. Лена приложила к журналу исходные данные и решение об отмене — чтобы следующий человек мог найти её ошибку, если она была.

Звук общей частоты включился сам: входящий пакет с командным приоритетом обошёл локальное приглушение.

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

Лена включила передачу.

— Команда отменена. Радиатор пересёк коридор боком. Прилагаю запись.

Молчание длилось три секунды. Или больше — часы ничего не доказывали.

— Вы израсходовали окно сближения?

— Я предотвратила столкновение.

— Это оценка или факт?

Вопрос был правильным, и оттого злил сильнее.

— Оценка по сырому радару и визуальное подтверждение прохождения цели в девяноста метрах. Факт: сопровождения не было. Факт: автоматика использовала данные старше трёх минут.

— У вас есть тяга?

— Восемьдесят три процента, две ориентационные группы нестабильны.

— Тогда восстановите автоматический режим и ждите расчёта командной секции.

Лена посмотрела на аппаратный ключ в положении «ручной».

— Сначала передайте исходные векторы всех секций и возраст измерений.

— Ветрова, это аварийная иерархия.

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

На частоте щёлкнуло. Саранов не ответил сразу.

Женский голос с «Сада» негромко сказал:

— Поддерживаю запрос «Фермы». Передайте сырую телеметрию.

Затем врач с «Ковчега»:

— И карту радиационной тени. Без фильтра приоритетов.

Кто-то ещё потребовал синхронизацию часов. Спор опять начал разрастаться, но теперь у него появился предмет.

Саранов перекрыл голоса командным тоном:

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

Это ещё не было согласием. Но двигатели никто не включал.

Лена отпустила кнопку.

— Ты только что отказалась выполнить приказ? — спросил Максим.

— Я попросила входные данные.

— Это очень инженерный способ отказаться.

— Запиши в журнал.

— Уже.

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

Пассивная съёмка связала подтверждения пакетов с направлениями антенны. Командная секция находилась ближе всего. «Ковчег» уходил ниже их плоскости. Ещё три источника пока не имели надёжных имён.

Шесть вызовов вокруг «Фермы». Семь частей.

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

На пульт пришёл первый пакет от командной секции. Не расчёт — таблица: локальное время, давление, число людей, доступная тяга. Затем пакет «Сада». Затем «Ковчега». Форматы различались, единицы совпадали не везде, но это уже были числа, которые можно проверить.

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

Корабля на схеме не получилось.

Получился вопрос.

Максим смотрел на огни за обзорным портом.

— Странно, — сказал он. — Когда всё разошлось, стало видно, сколько нас было.

Лена сохранила схему как нулевую версию общего журнала.

— Нет, — ответила она. — Пока видно только, сколько голосов пытаются говорить первыми.

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

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

Лена начала их разделять.

Глава 2. Право командовать

Первое расписание общей связи прожило сорок три секунды.

Саранов отвёл каждой секции по десять секунд и оставил ещё десять себе — на подтверждения и команды. На бумаге это выглядело почти щедро. В эфире первая же фраза командной секции пришла на «Ферму» дважды: сперва обрезанная с конца, потом целиком, уже поверх ответа «Ковчега». «Сад» начал передачу по собственным часам, которые отставали на шесть секунд. Неопознанный модуль выбросил пакет диагностики без заголовка и занял весь интервал.

Потом расписание началось снова.

— Отключить автоматический повтор, — сказал Саранов.

— Если они слышат команду, — заметил Максим, — повтор им действительно не нужен.

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

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

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

— …до восстановления центрального контура действует аварийное единоначалие. Командные ключи секций перевести в режим внешнего допуска. Подтверждать по очереди. «Ферма».

Лена нажала передачу.

— Внешний допуск к чему именно?

— К ориентации, тяге и распределению энергии. Стандартный профиль «Сборка».

— На «Ферме» такого профиля нет.

— Он есть на всех автономных секциях.

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

— Передаю снимок каталога и схему допуска, — сказала она. — Удалённого исполнения нет.

— Тогда разбудите второго оператора.

— Второй оператор уже бодрствует и временно непригоден к переходам между отсеками.

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

— Разбудите следующего.

Лена посмотрела на шесть зелёных меток гибернации. После пробуждения каждый добавит к расходу воздуха, воды и тепла. Но дело было не только в запасах. Человек, вырванный из капсулы, должен был за минуту согласиться передать движение своего единственного убежища голосу, который слышал с задержкой.

— Сначала нужен план манёвра, — сказала она. — И условия отмены.

— Сначала мне нужен работающий контур управления.

— Контур, который исполняет неизвестный план, не работает. Он подчиняется.

На этот раз пауза могла быть задержкой сигнала. Лена поставила рядом две отметки: время отправки и время приёма. Разница плавала на десятые доли секунды — слишком сильно для движения секций. Значит, пакеты где-то копились перед передачей.

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

— Тогда передайте список угроз по модулям.

— Передам, когда получу управление.

— Вы просите ключи до того, как покажете, что ими откроете.

Следующий интервал занял «Сад».

— Ника Ремезова, биосистемы. Восемнадцать человек, герметичность условная. Потеря воды — четыреста двадцать литров и растёт. Командный контур запросил резерв «Сада» на общую магистраль. Запрос отклонён.

Голос был тот самый — хриплый, вчера требовавший канал к энергосекции. Теперь хрип усилился, словно Ника говорила в респираторе.

Саранов вмешался до конца её интервала:

— Резерв нужен «Ковчегу» для аварийного охлаждения защиты.

— Тогда покажите расход, маршрут и остаток у меня после передачи.

— Это будет в общем плане.

— Плана нет. А запрос есть.

— Четыреста литров не спасут ваш контур, если утечка продолжается.

— Поэтому я чиню утечку. И поэтому не отдам ещё двести неизвестно куда.

В эфир вошёл низкий голос врача с «Ковчега»:

— Ремезова, это Платонов. У нас перегревается теневой экран. Если потеряем циркуляцию, придётся укладывать людей обратно.

— Сколько воды вам нужно?

— Командная секция считала двести.

— А вы?

Платонов замолчал.

— У меня нет модели магистрали после разделения, — сказал он наконец.

— Вот именно.

Саранов попытался вернуть очередь, но теперь поверх него прошёл короткий цифровой визг. На экране Лены появился запрос внешнего доступа. Не к двигателям — к распределителю воды «Фермы».

Она открыла техническую карточку. Запрос был подписан действующим командным сертификатом, однако локальный контроллер требовал второй подписи: начальника соответствующей системы. Поле оставалось пустым.

— Максим, у нас на борту есть магистраль общей воды?

— Была, когда по обе стороны переборки имелся корабль.

— Нас можно использовать как промежуточную ёмкость?

Он повернул планшет, увеличил схему и поморщился от усилия.

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

— Передаю отказ контроллера, — сказала Лена в эфир. — Командного сертификата недостаточно. Нужен ключ владельца системы.

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

— Представьтесь, — потребовал Саранов.

— Олег Шац, ресурсное планирование. Секция «Маяк». Девять человек.

— Почему вы на командной секции не исполняете приказ?

— Потому что я не энергетик. Я сообщаю, что вижу в реестре.

Лена запросила у «Маяка» копию. Ответ пришёл почти сразу: таблица прав, семь колонок, в каждой — отдельные владельцы тяги, среды, энергии и гермозатворов. Центрального корневого ключа не существовало. Командный сертификат мог объявить цель, поднять приоритет связи и потребовать голосование локальных владельцев. Он не мог повернуть клапан.

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

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

Саранов тоже понял это. Его голос стал тише.

— Всем владельцам систем подтвердить личность. После подтверждения мои распоряжения исполняются как приказы командира экспедиции.

— Нет, — сказала Ника.

Одно слово прошло по частоте без помех.

— Обоснуйте.

— Датчик расхода стоит до разрыва магистрали. Он считает водой всё, что уходит за переборку, включая лёд в вакуум. Если я подпишу передачу по вашей цифре, то отдам запас в дыру.

— Ремезова, на «Ковчеге» люди без защиты.

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

Лена вывела пакеты рядом. «Сад» указывал давление в килопаскалях, «Ковчег» — в долях номинала, «Маяк» прислал температуру в кельвинах, командная секция — цветовые категории. Даже слово «резерв» означало разное: общий объём, доступный объём или остаток после неприкосновенного минимума.

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

— Я предлагаю двадцать минут без приказов, — сказала Лена.

— Отклонено, — сразу ответил Саранов.

— Тогда назовите местоположение седьмой секции.

— Мы ещё не закончили перекличку.

— Мы начали её вчера.

Она передала свою нулевую схему. Шесть меток: «Ферма», командная секция, «Сад», «Ковчег», «Маяк» и безымянный источник, от которого приходили координаты. Седьмое место оставалось пустым.

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

— Что вы предлагаете? — спросил Платонов.

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

— За двадцать минут «Сад» потеряет ещё воду, — сказала Ника.

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

— А кто принимает решение? — спросил Саранов.

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

— Это совет, а не экипаж.

— Сейчас у нас даже совета нет.

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

Лена наложила кривые. Утечка на «Саде» была импульсной: расход возрастал при каждом включении насоса. Значит, трещина могла находиться не в резервуаре, а в напорной ветви. Если снизить давление, они выиграют время.

— Ника, у вас есть обходной насос малого контура?

— Есть. Он питает корневые кассеты, не жилой блок.

— Переведите кассеты на самотёк на девяносто секунд и дайте пробу малого контура. Если внешний иней перестанет расти, резерв цел.

— Если кассеты встанут, мы потеряем урожай.

— За девяносто секунд?

— Не урожай. Калибровку подачи. Потом шесть часов выравнивать раствор.

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

— Решать вам, — сказала Лена. — Но проба покажет, можно ли вообще отделить резерв от утечки.

— Проведу на шестьдесят секунд. Передаю начало по своим часам.

Саранов вклинился:

— Согласовано. После пробы готовьте двести литров к передаче.

— Не согласовано, — отрезала Ника. — После пробы готовлю данные.

На «Ферме» щёлкнуло реле. Лена вздрогнула и увидела новый запрос — теперь на ориентационные двигатели. Автоматика предлагала подтвердить общий режим стабилизации. В поле расчёта стоял идентификатор командной секции, но приложенные векторы относились только к четырём модулям.

— Не подтверждай, — сказал Максим.

— Я и не собиралась.

— Я хотел почувствовать себя частью управления.

Лена отклонила запрос и приложила причину: неполный набор исходных данных. Через секунду Саранов спросил:

— Почему «Ферма» блокирует стабилизацию?

— Потому что вы рассчитали её без двух секций.

— Без одной. Неопознанный источник совпадает с грузовой платформой по вектору.

— Совпадает в вашей системе координат. Пришлите сырые дальности.

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

— Именно поэтому ошибка будет стоить дороже с каждой минутой.

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

— Они специально сделали так, чтобы ты не могла согласиться одна, — сказал он.

— И чтобы я не могла отказаться одна.

— Удивительно зрелое отношение к людям.

— К ошибкам.

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

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

— А если секция откажется передавать данные?

— Тогда остальные знают, какого знания у них нет.

— А если откажется выполнять решение?

Ответила Ника:

— Тогда вы узнаете это до того, как сведёте нас на встречных курсах.

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

Шесть секций начали спорить о полях таблицы.

Это был лучший спор за всё время после пробуждения.

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

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

— Резервуар цел, — сказала Лена. — Повреждена напорная ветвь.

— Вижу.

— Можете изолировать её до тройника?

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

— Сколько времени?

— Двадцать пять минут на подготовку. Пять на работу. Если клапан не заклинило.

Платонов прислал уточнённый расчёт. «Ковчегу» требовалось не двести литров, а сто десять — при условии, что экран переведут в циклический режим и получат дополнительную мощность от «Маяка». Шац подтвердил доступность энергии на сорок минут, но только после отключения своего дальнего передатчика.

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

— Не потеряем, — ответил Шац. — Будем включать его на три минуты из десяти. Если расписание наконец начнёт работать.

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

— Решение принято, — объявил Саранов.

— Решение собрано, — поправила Ника.

— Результат один.

— Пока да.

Лена не вмешалась. Её занимала пустая строка.

Пакеты пришли от «Фермы», командной секции, «Сада», «Ковчега», «Маяка» и «Вектора». В реестре «Галилея» значились ещё «Игла» и радиаторно-наблюдательная секция «Линза». Названий было восемь, если считать командную отдельно, но схема автономности объединяла командную секцию с «Линзой» в одном корпусе. После раскрытия они должны были остаться единым узлом.

По данным Саранова, они не остались.

— Командир, пришлите конфигурацию вашей секции, — сказала Лена.

— Она уже в пакете.

— Там нет «Линзы».

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

— Физически?

Саранов не ответил.

Лена подняла запись первого вращения «Фермы». Один из дальних огней тогда двигался против звёзд. Они приняли его за самостоятельный модуль. На следующем обороте он исчез за россыпью обломков. Если это была «Линза», внешних корпусов действительно семь: шесть говорящих и один тёмный.

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

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

— До пробуждения.

— После разделения?

— Нет.

— Люди?

— По штатному расписанию двое.

В общей частоте стало тихо. Даже задержки будто исчезли.

— Почему их не было в ваших сорока семи? — спросила Ника.

— Потому что я считал подтверждённых.

— А командовали всеми.

— Я отвечаю за всех.

Голос Саранова впервые потерял ровность. Не сорвался — стал тяжелее, словно каждое слово теперь приходилось удерживать отдельно.

Лена внесла тёмную отметку в схему. Дальность была ненадёжной, скорость — ещё хуже. Но совпадение по периоду и углу давало достаточно, чтобы начать поиск.

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

— Это приказ? — спросил Шац.

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

— Нет. Это способ их найти.

Первой ответила Ника:

— «Сад» принял. Отдам левую камеру на поиск после изоляции клапана.

Платонов подтвердил обзор из тени «Ковчега». «Вектор» запросил исходную запись и начал уточнять траекторию. Шац назначил окна ретранслятора.

Последним пришёл пакет командной секции. В нём не было голоса. Только подпись Саранова под временным протоколом и новый приоритет задачи:

ПОИСК СЕДЬМОЙ СЕКЦИИ. ЛЮДИ — 2. СВЯЗЬ — НЕТ.

Максим прочитал строку с её экрана.

— Значит, теперь у нас есть командование?

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

— Нет, — сказала она. — Теперь у нас есть общее неизвестное.

На следующем обороте слабая отметка не появилась.

Глава 3. Пустой импульс

Тимур Асанов не доверял точкам, которые появлялись лишь на одном экране. На его навигационном столе «Линза» существовала сразу в шести несовпадающих версиях: слабое пятно у «Фермы», провал звёздного поля у «Сада», короткая дуга на радаре «Ковчега», две пустоты и расчёт Лены, отмеченный честным словом «предположение».

Он наложил версии друг на друга и получил серый лепесток. В одном конце могли находиться двое живых. В другом — ничего.

— «Вектор» принял сырые отметки, — сказал Тимур в общий канал. — Но искать сектором нельзя. Мы найдём там тысячу причин потратить топливо.

Саранов ответил почти без задержки:

— Назовите одну причину не искать людей.

— Топливо, — сказал Тимур. — И ложная уверенность. Это две.

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

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

В канал вошла Лена:

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

— Таблица повреждена.

— Пироболты телеметрировали фактическое время срабатывания.

— На общем журнале дыра.

— Не на общем. На локальных контроллерах.

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

— Нужны часы секций, — сказал он. — Не поправленные. Вместе с дрейфом.

— Они уже в протоколе, — ответила Лена.

— Тогда не мешайте двадцать минут.

Саранов спросил:

— А потом?

— Потом я либо дам вам коридор, либо докажу, что коридора нет.

Тимур закрыл голосовой канал, оставив приём пакетов. Тишина продержалась четыре секунды. Затем посыпались данные: «Ферма», «Сад», «Ковчег», «Маяк», командная секция. Последним пришёл пакет «Иглы», короткий и сильно сжатый. «Линза» молчала.

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

— Тебе что-нибудь говорит «пустой импульс»? — спросил он.

— Команда на клапан без давления.

— Здесь — команда двигателю с нулевой длительностью. Контроллер её принял, проверил ключ и ничего не сделал.

— Значит, всё хорошо.

— Значит, кто-то хотел, чтобы двигатель ничего не сделал.

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

Лада склонилась к экрану.

— Чей ключ?

Подпись была короткой: EV-04.

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

— Пока ничей, — сказал он и убрал строку из общего вида.

— Это теперь так называется?

— Пока не восстановлен объект отмены. Если показать одну строку, Саранов решит, что Ветрова сорвала манёвр. Если спрятать навсегда — решит кто-нибудь другой и без нас. Мне нужно понять, что именно отменяли.

Тимур вернул строку в рабочий слой и поставил рядом красный флаг: «не интерпретировать».

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

Тимур отправил промежуточный вывод всем секциям.

РАЗДЕЛЕНИЕ ШТАТНОЕ. ПИРОУЗЛЫ 37/37. ПРИЗНАКОВ ВНЕШНЕГО УДАРА ДО РАСКРЫТИЯ НЕТ.

Саранов немедленно вызвал его.

— Вы утверждаете, что корабль сам себя разобрал?

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

— Причина запуска?

— Журнал повреждён.

Лена была в канале, но молчала. Тимур видел её метку приёма.

— Асанов, — сказал Саранов, — мне не нужен дипломатический отчёт. Мне нужно понять, кто отдал команду.

— Тогда вам нужен восстановленный журнал. У меня пока есть последствия.

— Продолжайте.

Тимур отключился и заметил, что красный флаг у пустого импульса исчез. Строка оставалась, но его пометка была снята удалённым обновлением. По протоколу править чужие пометки никто не мог. Он проверил историю: флаг создался в локальном слое и исчез при объединении, потому что пакет с «Фермы» объявил более раннюю версию строки канонической.

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

Тимур восстановил флаг и рядом написал правило слияния. Через минуту Лена прислала исправление схемы реестра. Без комментария.

— Вы видите ключ? — спросил он по закрытому каналу.

Пауза была длиннее световой задержки.

— Вижу.

— Что вы отменяли?

— Не знаю, какой пакет был в очереди.

— Я спросил не это.

— А я ответила ровно настолько, насколько позволяет журнал.

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

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

— Да.

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

— Почему вы молчите в общем канале?

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

— И вы хотите дождаться журнала.

— Я хочу, чтобы обвинение можно было проверить.

— Это не обвинение. Это вопрос.

— У Саранова вопросы быстро становятся полномочиями.

Тимур посмотрел на серый лепесток «Линзы». Где-то внутри него двое людей могли считать остаток воздуха и не знать, что их ищут. Он мог передать строку командиру сейчас. Спор поглотил бы канал, но, возможно, заставил Лену назвать цель. Мог скрыть её до конца восстановления и сохранить рабочий порядок. Оба решения казались практичными. Оба делали его владельцем чужой правды.

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

— Это ваше право.

— Нет. Это способ не делать право из владения данными. За пять минут дайте мне номер пакета.

Лена не ответила.

Тимур вернулся к траекториям. Если «Линза» получила штатный толчок, её искали не там. Слабая отметка у «Фермы» была настоящей лишь на первом обороте; дальше расчёт сопровождения подменил измерение прогнозом и стал честно подтверждать собственную ошибку. Он удалил все синтетические точки. Серый лепесток распался на три узких коридора.

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

Но ни один не совпадал с расчётным импульсом четырёх пиропатронов.

Тимур проверил массу «Линзы». Реестр и загрузочная ведомость расходились на сто килограммов — допустимая ошибка для израсходованных запасов. Тогда почему траектория не сходилась?

— Лада, мне нужны графики тяги наших пиропатронов с холодных испытаний.

— Они не наши. Узлы остались на корпусах.

— Мне нужны паспортные отклонения.

— В навигационном архиве.

— Там среднее.

— Хочу перестать считать четыре разных заряда одним идеальным, — пояснил Тимур. — Спроси «Ферму»: Ветрова получала фактические кривые для модели нагрузок.

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

На шестой минуте после обещанного срока Саранов увидел пустую отмену в общем журнале.

— Ветрова, объясните подпись, — потребовал он.

— Подпись подтверждает вызов функции отмены, — сказала Лена. — Номер отменяемого пакета отсутствует. Контроллер ничего не изменил.

— Зачем вы вызывали функцию до аварии?

— Чтобы отменить команду, которой не должно было быть в очереди.

— Какую?

— В повреждённой части журнала.

— Вы её видели.

— Да.

— Назовите.

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

Тимур открыл рот, чтобы вернуть разговор к траектории, и услышал короткий сигнал локальной автоматики. Его модель закончила перебор нештатных масс. Совпадение нашлось при условии, что после отделения «Линза» дала собственный импульс — малый, направленный вниз и против вращения.

— Стоп, — сказал Тимур. — Она маневрировала.

Саранов не сразу переключился:

— Кто?

— «Линза». Пиропатроны дали штатный толчок. Через тридцать — пятьдесят секунд секция включила ориентацию и изменила плоскость. Поэтому мы потеряли её за обломками.

— Автоматика?

— Проверяю.

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

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

— Сколько до сближения? — спросил Саранов.

— На «Векторе» — четыре часа двадцать минут и восемнадцать килограммов рабочего тела до гарантированного возврата. Это треть нашего манёвренного запаса.

— Летите.

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

— Сначала два пассивных наблюдения, — сказал он. — «Маяк» увидит коридор через семь минут, «Сад» — через девять. Если они подтвердят, я начну манёвр.

— Там двое.

— Именно поэтому я не стану промахиваться быстро.

Саранов выдохнул так близко к микрофону, что шум прошёл по всем секциям.

— Протокол даёт вам местное вето. Используйте. Но если окно закроется…

— Окно не закроется девять минут. Это тоже можно проверить.

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

— Подтверждение два, — сказал Тимур. — Готовим манёвр.

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

— «Ферма», — вызвал он. — Проверьте нагрузки на стык двигателя и жилого блока.

— Получила, — ответила Лена.

Через минуту пришло её разрешение с ограничением тяги до шестидесяти двух процентов. Тимур сравнил расчёт с исходными данными, подписал локальным ключом и передал всей сети. «Сад» и «Ковчег» подтвердили отсутствие риска пересечения. «Маяк» назначил окна связи. Командная секция поставила подпись последней.

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

— Импульс устойчив, — сказала Лада.

— Семнадцать секунд.

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

Он отправил фактическую кривую в общий журнал. Только после этого заметил личный пакет от Лены.

В нём не было номера команды. Было назначение закрытого процесса, запустившего раскрытие:

РАЗВЁРТЫВАНИЕ БАЗЫ НАБЛЮДЕНИЯ. УСЛОВИЕ: ПОДТВЕРЖДЁННЫЙ МЕТРИЧЕСКИЙ СИГНАЛ. ОБРАТИМОСТЬ НЕ ПРЕДУСМОТРЕНА.

Ниже Лена написала: «Я пыталась отменить развёртывание. Пакет не должен был существовать в рабочей очереди».

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

— Почему не в общий журнал? — спросил Тимур.

— Потому что назначение ещё не доказано исходной записью.

— Но вы его знали.

— Я узнала формулировку год назад. Мне сказали, что процесс удалён после испытаний.

— Вы подписали конструкцию, которая могла раскрыться.

— Я подписала расчёт нагрузок.

— Это не ответ.

— Это граница ответа, пока журнал не восстановлен.

Тимур мог переслать пакет Саранову одним движением. Вместо этого он прикрепил его к строке пустого импульса как свидетельство Лены, отдельно от телеметрии, и открыл доступ всем секциям. Не истина, не обвинение — утверждение с названным автором.

Через несколько секунд Саранов вызвал общий канал.

— Ветрова, вы скрыли назначение команды.

— Я отделила своё воспоминание от восстановленных данных.

— Пока «Вектор» тратит треть запаса на поиск людей.

— Его расчёт не зависел от назначения раскрытия.

— Моё решение зависело.

— Тогда принимайте новое решение с новой информацией.

Тимур ожидал приказа вернуться. Вместо него Саранов спросил:

— Асанов, манёвр можно отменить?

— Можно. Но уже потраченный импульс не вернётся. Возврат сейчас сэкономит шесть килограммов и оставит «Линзу» без проверки.

— Продолжайте сближение.

Это решение появилось в журнале вместе с исходными данными. Тимур отметил его как проверяемое и вернулся к экрану.

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

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

Она рассказала лишь тогда, когда молчание тоже стало записью.

Глава 4. Девять секунд света

Юна Таль не доверяла слову «сейчас».

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

Юна сидела в тесной аппаратной «Маяка», зажав коленями аварийный планшет. На главном экране висела карта каналов. Линии между секциями то зеленели, то вытягивались в жёлтые дуги. Задержка до «Вектора» менялась на сотые доли секунды, до «Сада» — на десятые. «Линза» оставалась серой. Седьмой голос молчал.

— Проверка связи, пакет сто восемьдесят четыре, — сказала Юна. — Не отвечайте словом «принято». Верните номер пакета и время локального приёма.

Командная секция вернула номер через три десятых секунды. «Ферма» — через шесть. «Сад» задержался почти на две секунды. Ответ «Ковчега» пришёл раньше ответа «Сада», хотя запрос шёл к нему через ретранслятор «Сада».

Юна пометила оба пакета красным.

— Это невозможно, — сказал рядом Сергей Вальд, специалист по оптике «Маяка». Он держался за поручень одной рукой, другой прижимал к боку ремень с инструментами. — Или я окончательно проснулся не в той вселенной.

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

— То есть ответ прибыл раньше вопроса?

— Для журнала — да. Для причинности — нет.

Сергей посмотрел на клубок линий.

— Утешила.

Юна отключила автоматическую сортировку по времени. Пакеты рассыпались в том порядке, в каком действительно попадали на «Маяк»: грязная, рваная последовательность без красивой общей шкалы. Так было честнее.

До раскрытия сеть «Галилея» жила внутри корпуса. Свет проходил от носа до кормы быстрее, чем человек успевал заметить задержку, а единый тактовый сигнал позволял компьютерам притворяться одним устройством. Теперь между секциями росли сотни километров. Лучи связи шли разными маршрутами, ретрансляторы поворачивались, корпуса перекрывали друг друга, а часы, прежде дисциплинированные общей системой, начинали расходиться.

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

— Мне нужен наружный доступ к кормовой антенне, — сказал Сергей. — Привод застрял на двенадцати градусах. Через сорок минут потеряем прямой луч на «Ферму».

— Робот?

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

Юна открыла схему движения. «Маяк» медленно вращался вокруг продольной оси. На пути Сергея лежала складная панель служебного отражателя. По журналу она была убрана. По датчику замка — тоже.

— Сначала визуальное подтверждение, — сказала Юна.

— Через какую камеру? Ты сама сказала, кормовая слепая.

— Через шлем.

— Тогда я уже должен быть снаружи.

Юна увеличила журнал. Команда уборки панели пришла с командной секции восемь минут назад и получила зелёную отметку исполнения. Телеметрия привода подтверждала нулевой угол. Всё совпадало слишком хорошо.

— Подожди две минуты.

— Через две минуты у нас будет тот же привод и на две минуты меньше.

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

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

— А мог быть нулём.

— Вот это и проверим.

Она вызвала «Вектор». Тимур ответил после короткого треска; за его голосом работали насосы двигателя.

— Асанов, дай радарный срез «Маяка» за последнюю минуту. Нужна кормовая полусфера.

— Я сопровождаю «Линзу».

— Мне не нужна обработка. Сырые отражения.

— Отправляю. Зачем?

— Проверяю положение панели перед выходом.

Саранов вмешался раньше, чем пришёл файл:

— Таль, антенна нужна всей сети. Если у вас локальный датчик подтверждает уборку, разрешайте выход.

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

— Локальный датчик подтверждает число, — ответила она. — Не положение.

— Сколько займёт проверка?

— Девять секунд полёта пакета в обе стороны, плюс очередь радара.

— Между нами нет девяти световых секунд.

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

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

Панель не была убрана. Она торчала поперёк маршрута к антенне, почти невидимая ребром.

— Вот тебе ноль, — тихо сказал Сергей.

Юна закрыла разрешение на выход. В ту же секунду из «Сада» пришёл старый пакет: ОТРАЖАТЕЛЬ «МАЯКА» УБРАН, ВНЕШНИЕ РАБОТЫ ДОПУСТИМЫ.

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

Сергей медленно снял шлем.

— Теперь утешила, — сказал он без улыбки.

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

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

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

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

Несколько секунд канал молчал.

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

Это было ближе к согласию, чем Юна ожидала.

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

Юна создала новый заголовок пакета: локальный автор, номер события, ссылка на родительское сообщение, состояние данных и срок годности. Если ответ опирался на измерение, в нём указывался номер измерения. Если команда меняла механизм, следующий отчёт ссылался и на команду, и на фактический датчик. Время оставалось, но переставало доказывать порядок.

— Вы хотите превратить разговор в родословную, — сказала Ника с «Сада».

— Именно. Каждый пакет должен знать своих родителей.

— А если родители неизвестны?

— Тогда это сирота. Его можно читать, но нельзя использовать как разрешение.

— Наконец-то термин, понятный биологу.

Лена подключилась с «Фермы»:

— Для расчётных версий нужна ссылка не на один родительский пакет, а на набор исходных данных.

— Сделаю список.

— И запрет слияния, если наборы различаются.

Юна вспомнила, как исчез красный флаг Тимура у пустого импульса.

— Уже делаю.

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

Затем «Ковчег» запросил теплообмен. Его пакет опирался на старый график температуры и автоматически получил жёлтый статус: исходное измерение просрочено.

— Сеть отказывается выполнять приказ, — сказал врач Дамир Хольм.

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

Через минуту пришёл новый график. Температура оказалась на четыре градуса выше. Запрос изменили, и «Сад» уменьшил поток. Маленькая разница, но она впервые возникла не из доверия к говорящему, а из видимой цепочки.

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

— Запрос выхода МАЯК-СВ-22, — произнёс он нарочито торжественно. — Родители: кадр, положение манипулятора, давление в шлюзе и моё необъяснимое желание работать снаружи.

— Последнее не является измерением.

— Тогда пометь как свидетельство оператора.

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

Когда привод антенны освободили, прямой канал к «Ферме» усилился вдвое. Юна начала переносить причинные метки на остальные маршруты. Старые пакеты не удаляла: заключила их в серую рамку и подписала ПОРЯДОК НЕ ДОКАЗАН.

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

— Пока у нас больше энергии, чем общей реальности.

— Энергия тоже кончается.

— Тогда сжимайте содержание. Происхождение не трогайте.

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

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

— Таль, — вызвал Тимур. — Мне нужен канал на «Линзу». Мы подходим к расчётному окну.

— Прямая видимость через семь минут. Антенна готова.

— Дай непрерывную несущую и очередь аварийных вызовов.

Юна назначила «Вектору» полосу. Сергей уже вернулся в шлюз и отстёгивал страховку. Его дыхание звучало в локальном канале громче голоса.

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

— Есть что-то, — сказала Юна.

— Где? — спросил Тимур.

— Не в голосовой полосе. Ниже несущей.

Она развернула спектр. Всплеск повторился через девять целых четыре десятых секунды, затем ещё раз. Амплитуда почти не менялась, хотя «Вектор» приближался к «Линзе» и геометрия канала улучшалась.

— Аварийный маяк? — спросил Саранов.

— Не похоже. У маяка период две секунды и пакет с идентификатором. Здесь только импульс.

— Может быть биение преобразователя «Линзы», — предположила Лена.

Юна отключила поток от «Вектора». Импульс остался.

— Не «Линза».

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

Арсен Климов с командной секции попросил сырые отсчёты.

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

— Какого?

— Сначала данные.

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

Лена развернула инженерный датчик, Ника уступила двадцать секунд научному приёмнику. У «Сада» первый импульс утонул в работе насоса. Второй увидели все три секции. На «Ферму» он пришёл позже, чем на «Маяк», но в общей временной ленте — раньше.

— Не сортировать, — напомнила Юна. — Сначала родство.

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

Арсен наложил направление на карту Предела-7. Там не было луны, аппарата или известного навигационного маяка. Луч уходил в тёмную область рядом с краем планеты.

— Проверьте каталог ещё раз, — приказал Саранов.

— Каталог проверен по бортовой и резервной копиям, — ответил Арсен. — В этом направлении ничего периодического нет.

— Тогда помеха.

— Помеха не приходит на три разнесённых приёмника с геометрической задержкой.

Юна увеличила форму импульса. Он не был радиосигналом: радиоантенна лишь ловила вторичный отклик в комбинированном датчике. Основной всплеск сидел в канале нейтринного калибратора, который до раскрытия использовался для проверки приборов «Линзы».

— Арсен, — сказала она, — посмотри канал НК-резерва.

Молчание длилось дольше любой сетевой задержки.

— Вижу, — наконец ответил он. — «Маяк», «Ферма», «Сад»: не меняйте ориентацию датчиков.

— Что это? — спросил Саранов.

— Повторяющееся событие в нейтринном канале. Пока больше ничего.

— От реактора?

— Частота не совпадает ни с одним бортовым циклом.

— А с циклом раскрытия? — спросила Лена.

Арсен запросил журнал пиросистем, но Юна остановила автоматическую выдачу.

— Укажи, какое совпадение проверяешь.

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

— Это гипотеза или запись из спецификации?

— Гипотеза. Спецификация повреждена.

Юна отметила запрос жёлтым и только тогда открыла журнал. Периоды служебных циклов лежали между двумя и шестью секундами. Ни один не равнялся найденному. Лена добавила свой архив испытаний: там ближайший процесс повторялся каждые десять секунд, но запускался только при сложенном корабле.

— Не совпало, — сказала она.

Раньше фраза прозвучала бы как неудача. Теперь отрицательный результат получил собственную цепочку: гипотеза, два независимых архива, сравнение, вывод. Юна закрепила её рядом с новой меткой, чтобы через час никто не предложил ту же красивую догадку как открытие.

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

На экране очередной импульс возник сначала у «Маяка», затем у «Сада», потом у «Фермы». Интерфейс попытался переставить их по единому времени. Юна отключила эту функцию окончательно.

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

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

Глава 5. Слабая секция

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

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

— Платонов, подтвердите людей по отсекам, — сказала она.

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

— Фактическая доза?

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

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

— Командная секция передаёт план. «Ковчег» разворачивается кормой к источнику, затем даёт импульс к нам. Мы прикрываем его корпусом и общей водой. «Вектор» корректирует встречу. Исполнение через двенадцать минут.

На экране появился вектор без таблицы массы, оценки облака обломков и цены торможения.

Юна пометила пакет серым.

— Это приказ, — сказал Саранов.

— Тогда у приказа отсутствует происхождение, — ответила она. — Сеть не знает, из каких данных он сделан.

— Его сделал я.

— Это автор. Не происхождение.

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

— Не исполнять, — сказала Лена.

Саранов выдержал паузу.

— Основание?

— Пока одно: вашего расчёта нет. Сейчас будет второе.

Платонов переслал инженерный пакет техника Марины Чжоу. Ксенона оставалось двадцать восемь процентов, но один бак держал давление только в холоде. Разворот подставил бы его солнцу Предела-7 и сделал половину остатка непригодной для точной тяги.

— Второе основание, — сказала Лена. — После разгона им может не хватить на торможение.

— Командная секция затормозит общим манёвром.

— После захвата аварийными тросами.

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

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

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

Платонов спросил:

— Три часа достаточно для ремонта?

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

— Цена?

Лена не ответила сразу. У временной орбиты была неприятная симметрия: «Ковчег» мог спрятаться за «Садом», только если сам «Сад» изменит ориентацию. Его широкий водяной экран должен был принять поток со стороны планеты, а радиаторы — отвернуться от холодного неба. Тепло, которое обычно уходило наружу, останется внутри.

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

— Цена у «Сада», — сказала Лена. — Вам придётся принять тепло «Ковчега» и закрыть один радиатор. Через семьдесят минут температура оранжереи выйдет из рабочего коридора.

— На сколько? — спросила Ника.

— По вашей модели неизвестно. Расчёт обрывается.

— Значит, орбиты нет.

— Есть орбита с неизвестной ценой.

— Для того, кто платит, это одно и то же.

Саранов вернул на экран свой вектор.

— Командная секция берёт риск на себя. «Ковчег» идёт к нам.

— Вы не можете взять их торможение на себя словами, — сказала Лена.

— А вы не можете предлагать пожертвовать продовольствием восемнадцати человек ради трёх часов.

— Не могу. Поэтому предлагаю считать вместе.

Ника коротко рассмеялась. Смех прозвучал хуже кашля.

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

— Вы уже получили воду в замкнутый контур, — сказал Платонов.

— Мы отдали воду вам.

— Сто двадцать литров остались в вашей магистрали.

— Потому что разрыв изолирован. Но насос работал ради вашего экрана.

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

— У «Сада» два малых радиатора на теневой стороне. В пакете они выключены.

— Один повреждён.

— Второй?

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

Она вернула звук.

— Ника, почему резервный радиатор семенного хранилища не включён в модель?

— Потому что он резервный.

— Физическая причина?

— Если основной контур оранжереи лопнет, я перенесу туда холод. Без него потеряем банк культур.

— На три часа он снижает пик на четыре градуса.

— А потом кто вернёт мне его ресурс?

Саранов сказал:

— Я гарантирую приоритет ремонта «Сада» после стабилизации «Ковчега».

Ника ответила мгновенно:

— Нет.

— Это командная гарантия.

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

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

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

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

— Не делайте этого, — сказала Лена. — Потеряете холодный бак.

— Тогда дайте решение, которое существует не только на вашем экране.

Фраза попала точно. Лена убрала красивую поверхность достижимости и оставила четыре числа: длительность тени, тепло «Сада», расход ксенона «Ковчега», вероятность сохранить торможение. Последнее число было диапазоном, потому что тяга одного блока не прошла калибровку.

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

— Расход? — спросила Ника.

— Ноль целых четыре десятых процента доступного ксенона.

— Время?

— Четыре минуты до готового маршрута.

— Тепловая цена «Сада» всё ещё неизвестна.

— Вы можете проверить её до поворота. Закройте основной радиатор на шесть минут и включите резервный. Мы измерим скорость нагрева, не модель.

— В оранжерее люди.

— Выведите их во внутренний коридор.

— Там разобрана магистраль.

— Тогда в семенное хранилище.

Ника замолчала. На экране появились два запроса, оба с её подписью: Платонову — фактическая мощность, которую «Ковчег» передаст излучением и проводимостью при прохождении; Лене — полный профиль угла, без округления до градуса.

Это не было согласием. Это было действие.

Секции начали два испытания одновременно. Чжоу дала короткий импульс. «Вектор» измерил смещение по звёздам, «Ферма» — по задержке радара. Результаты разошлись на шесть процентов, но оба оставляли запас на торможение.

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

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

— Ещё сорок секунд дадут устойчивую производную, — ответила Лена.

— Отмена сейчас.

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

— Принято, — сказала Лена.

Температура по инерции росла ещё минуту. Кривой хватало для границы: девяносто минут «Сад» выдерживал с резервом; дальше уверенность исчезала.

— Тень длится сто семьдесят восемь минут, — сказал Тимур.

— Значит, нет, — сказала Ника.

— Можно разделить проход, — ответила Лена. — Девяносто минут за «Садом», затем «Ковчег» поворачивает свой водяной экран к Пределу и уходит по касательной. За это время Чжоу проверяет контур. Если ремонт не готов, второй проход возможен через пять часов.

— Пять часов они будут без защиты?

— С ослабленной защитой. Платонов распределит людей во внутреннем объёме.

Врач не спорил.

— Для пациентов это лучше, чем нынешняя экспозиция. Но на втором проходе нам снова понадобится «Сад».

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

Саранов произнёс медленно:

— Ремезова, на медицинской палубе растёт доза.

— Я слышала.

— Тогда чего вы добиваетесь?

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

— Я не торгуюсь с вами о пациентах.

— Именно торгуетесь. Только хотите не называть цену.

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

— Двусторонний контракт, — сказала она.

— У нас нет времени на юристов, — отрезал Саранов.

— Поэтому контракт будет машинным. «Сад» даёт ориентацию на девяносто минут и резервный радиатор. «Ковчег» взамен отдаёт ему свой холод после выхода из тени: поворачивает исправный экран к «Саду» и принимает тепловой поток сорок минут. Это вернёт оранжерее большую часть потраченного запаса. Второй проход — только после новой проверки и новой подписи.

Ника спросила:

— Если экран не починят?

— Тогда встречная часть не исполнима.

— Значит, я опять плачу одна.

Платонов вмешался:

— Тогда «Ковчег» передаёт «Саду» два блока сорбента и половину резерва медицинских биофильтров при первом безопасном окне сближения. Они у нас есть независимо от ремонта экрана.

— Срок?

— Не дата. Условие: относительная скорость ниже трёх метров в секунду и подтверждённый маршрут контейнера.

— Кто подтверждает?

— Вы и «Вектор». Не командная секция.

Саранов сказал:

— Медицинские биофильтры входят в общий аварийный запас.

— Сейчас они принадлежат «Ковчегу», — ответил Платонов. — Вы сами настаивали, что командная секция берёт риск. Я беру тот, который могу обеспечить.

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

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

— Канал не выдержит, — ответила Юна.

— Тогда контрольные суммы каждую минуту, полный журнал после прохода.

— Сделано.

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

— Это сорвёт орбиту «Ковчега», — сказал Тимур.

— Не сразу, — ответила Лена. — У него будет двадцать три секунды на уход по касательной. Я добавлю аварийный вектор заранее.

Саранов прочёл пакет и не подписал.

— Вы создаёте договор между секциями в обход командования.

— Мы создаём манёвр, который обе секции способны исполнить, — сказала Лена.

— А если одна откажется в середине?

— Тогда план учитывает отказ. Ваш — нет.

Внутренний дозиметр «Ковчега» прислал второй рост. Теперь выше погрешности.

Платонов подписал контракт первым. Через секунду появилась подпись Ники. «Вектор» подтвердил аварийные траектории, «Ферма» — расчёт тепла. Командная подпись не требовалась для исполнения, но пустое поле оставалось на виду у всех.

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

Саранов поставил подпись на восемьдесят третьей.

«Ковчег» дал первый импульс. Тимур показывал каждую независимую отметку отдельно. Точки дрожали вокруг расчётной дуги, будто модуль выбирал путь заново при каждом наблюдении.

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

— Тень через сорок секунд, — сообщил Тимур.

Платонов перевёл людей во внутренний коридор. Двух пациентов перемещали вместе с койками. В канале слышались команды и стук креплений. Затем врач отключил микрофон. Остались числа.

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

— Внутренний уровень стабилен, — сказал Платонов. — Контур два доступен для ремонта.

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

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

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

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

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

Схема окрасила модуль зелёным. Юна заменила цвет числом.

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

Саранов вызвал Лену по закрытому каналу.

— Секции начали заключать соглашения без команды.

— С вашей подписью.

— У меня не было выбора.

— Значит, подпись была настоящей.

На общем канале возник новый пакет от Арсена Климова. Он не относился ни к защите, ни к теплу. Астрофизик взял траекторию «Ковчега» во время прохода, добавил положения «Сада», «Фермы» и «Маяка» и наложил на направление девятисекундного импульса.

Четыре секции лежали не случайным веером. Их разнос образовывал почти правильную измерительную базу.

— Не меняйте орбиты, — сказал Арсен. — Никто. Пока я не проверю одну вещь.

Саранов ответил первым:

— Какую?

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

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

Глава 6. Не аварийный рисунок

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

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

— Семнадцать минут, — сказал Арсен. — Потом либо сниму запрет, либо дам каждому новую траекторию и цену.

— Вы не можете дать траекторию, — заметила Лена.

— Поэтому вы здесь.

На общем экране он оставил не красивую схему, а таблицу. «Ферма», «Сад», «Ковчег» и «Маяк» образовывали вытянутый четырёхугольник. Командная секция и «Вектор» лежали чуть в стороне. Седьмая отметка отсутствовала. Если соединить точки в порядке номеров модулей, получалась бессмыслица. Если разложить расстояния по направлению внешнего импульса, интервалы почти совпадали.

Почти — это слово Саранов заметил сразу.

— Расхождение одиннадцать процентов.

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

— Каких расчётных?

Арсен увеличил сырые данные. На шкале появились моменты срабатывания пироболтов и первые подтверждённые доплеровские скорости.

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

— У вас нет исходного положения «Линзы», — сказала Юна.

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

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

Лена смотрела на расстояния и чувствовала узнавание раньше, чем могла назвать его. Так бывало с деформацией фермы: глаз уже видел нагрузку, а расчёт ещё не успевал доказать.

— Это не один интерферометр, — сказала она. — Короткая база ловит целую фазу. Средняя снимает неоднозначность. Длинная даёт разрешение.

Арсен кивнул.

— Именно. Если внешний импульс — маяк, три масштаба позволяют не потерять номер периода.

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

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

— Корпусом нельзя, — ответил Арсен. — Но каждая секция несёт синхронизированный детектор. Мы складываем не лучи, а времена событий. «Интерферометр» здесь удобное старое слово.

— Удобные старые слова обычно скрывают новый счёт, — сказала Ника. — Что вы хотите от «Сада»?

— Пока ничего. Не выполнять коррекцию девять минут.

— Уже было семнадцать.

— Восемь прошли.

Ника не ответила, но значок запланированного манёвра остался жёлтым, не красным.

Лена запросила у Арсена обратную модель. Он прислал алгоритм и отдельно — допущения. Два детектора считались исправными без калибровки, масса «Линзы» была взята по проекту, момент её импульса — с погрешностью в четыре десятых секунды. Любого из этих допущений хватало, чтобы случайный рисунок стал рассчитанным.

Она удалила «Линзу» из модели. Три масштаба распались, но направление сохранилось. Удалила «Ковчег» — соотношение длин осталось. Переставила времена в пределах ошибок — узлы расплылись, однако не превратились в веер.

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

— Я уже считаю.

— По каким авариям?

Арсен замолчал.

Лена открыла цифровой макет «Галилея». В штатной библиотеке оставались сценарии разрушения: разрыв бака, столкновение, несимметричная тяга, срыв кольца при торможении. Они создавались не для науки, а для спасателей и страховых расчётов. Лена запустила их с фактическими массами секций и диапазоном неизвестных импульсов.

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

— На «Ферме» это займёт час, — сказал Максим.

— Разделим.

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

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

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

— Один шанс из пятисот пятидесяти, — сказал Саранов. — Редко, но не чудо.

— Направление выбрано после разлёта? — спросила Лена.

— В этих девяти — да, — ответил Арсен. — Они нашли лучший луч сами.

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

Они запретили модели искать удобное направление. Теперь она проверяла только узкий конус, из которого приходили девятисекундные события. Совпадения исчезли. Затем Юна обнаружила, что «Маяк» и «Ферма» использовали разные границы конуса: один взял ошибку одиночного детектора, другой — совместную.

— Результат нельзя склеивать, — сказала она. — Перезапуск.

— Мы потеряем семь минут, — возразил Саранов.

— Мы уже потеряли их. Просто ещё не признали.

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

Лена узнала это усилие. Год назад она так же смотрела на расчёт паруса.

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

— Арсен, откуда вы знаете, какой должна быть база?

— Не знаю. Я восстановил её по положениям.

— Почему три масштаба, а не два?

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

— А если период заранее известен?

— Тогда различим. Но источник не был известен до старта.

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

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

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

— А столкновение или внешняя сила? — спросил Саранов.

Тимур вывел журнал пироболтов.

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

— Значит, команда была в корабле.

— Да.

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

Саранов повернулся к Лене:

— Вы знали название процесса в третьей главе.

— Я видела испытательную ветку.

— Вы сказали, что её удалили.

— Я была уверена.

— Уверенность опять не журнал.

Лена не ответила. Она искала не оправдание, а путь к документу. Закрытые приложения не хранились в обычной библиотеке: перед стартом их разбивали между должностями, чтобы один человек не мог активировать опасный режим. После распада корабля эти доли должны были стать бесполезны.

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

— Юна, найдите запрос моего ключа перед раскрытием. Не саму команду — адрес, к которому она обращалась.

— Адрес пустой.

— Пустой для каталога. Дайте физические блоки памяти.

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

— Пять долей из шести, — сказала Юна. — Для чтения достаточно четырёх. Для исполнения требовались все шесть плюс физические ключи.

— Доли «Линзы» нет, — напомнил Саранов.

— Читать можем.

— Тогда открывайте.

Юна не выполнила приказ.

— Это запечатанный пакет. Нужны четыре должностные подписи. Не командные — разные.

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

— Четыре уже есть в канале, — сказал Саранов.

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

— Это секрет миссии.

— После раскрытия уровень меняется на аварийное общее чтение, — ответила Лена. — Так проектировали, чтобы одна секция не получила власть над остальными.

Саранов посмотрел на неё.

— Вы и это помните только сейчас?

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

Арсен подписал первым. Тимур — после того, как сверил контрольные суммы всех пяти долей. Саранов держал поле пустым.

— Если там военная задача или запрет Совета, вы разошлёте её людям без допуска.

— Эти люди уже летят внутри её исполнения, — сказала Ника. — Допуск немного опоздал.

— Вы не входите в кворум.

— Поэтому могу говорить без вашей кнопки.

Лена поставила подпись. Ей не хотелось делать это первой после Арсена: действие слишком походило на повтор старого решения. Но ожидание не меняло содержания пакета, только переносило ответственность на следующего.

— Третья, — сказала Юна.

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

Четыре доли сошлись. Несовпадающие края файлов подтвердили друг друга, и пустой адрес получил имя:

ПРОТОКОЛ РАСКРЫТИЯ «АПЕРТУРА-Г».

Под ним стояло назначение: «Распределённое измерение транзиентных метрических неоднородностей при утрате штатной наблюдательной платформы».

Максим прочитал строку вслух и поморщился.

— То есть сломать корабль, если сломался телескоп.

— Не сломать, — сказал Арсен. — Перевести конструкцию в необратимую конфигурацию.

— Когда дверь перестаёт быть дверью и становится щепками, формулировка мало помогает.

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

— Кворума не было, — сказал Тимур. — Наши журналы показывают один запрос с ключа Лены. Остальные ключи молчали.

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

— Значит, протокол запустился незаконно, — сказал Саранов.

Лена читала таблицу состояний. У каждого условия были три поля: источник, срок годности, способ независимой проверки. Нынешняя сеть Юны повторяла эту конструкцию, хотя Юна не видела документа. Люди заново изобрели правила, которые корабль должен был соблюдать и почему-то обошёл.

— Не запустился, — сказала Лена. — Был восстановлен из промежуточного состояния.

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

— Стенд не должен был соединяться с полётной сетью, — сказала она.

— Но соединился, — ответил Саранов.

— Да.

— Кто перенёс состояние?

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

Арсен пролистал до приложений.

— Здесь есть расчётные узлы.

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

Теперь рисунок перестал быть похожим. Он совпал.

— Снимайте запрет на манёвры? — спросила Чжоу.

Арсен посмотрел на Лену.

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

— Снимаю общий запрет, — сказала Лена. — Но каждую коррекцию проверяем на две цели: жизнь секции и обратимость к узлу. Если они конфликтуют, безопасность имеет приоритет, а потерю измерения записываем явно.

— Вы уже устанавливаете правила протокола, который нас разорвал, — сказал Саранов.

— Нет. Протокол исполнился без действующего согласия. Я предлагаю не повторять это.

Саранов увеличил первую страницу. Внизу находилась история утверждения. Шесть служебных подписей, даты, версии замечаний. Лена знала, что увидит своё имя, но не дату.

Елена Ветрова, инженер динамики конструкций. Заключение: «Контролируемое раскрытие сохраняет автономную обитаемость секций в пределах расчётного окна». Статус: одобрено. За триста семьдесят два дня до старта.

Рядом открылась её оговорка: «Только при аппаратно подтверждённом новом кворуме; перенос испытательного состояния между сборками исключить».

Оговорка была точной. Подпись под ней — тоже.

Саранов не повысил голоса.

— Вы подписали конструкцию, которая не должна была собраться обратно.

Лена посмотрела на семь расчётных узлов и на пустое место, где должна была находиться «Линза».

— Да.

Глава 7. Условие подписи

— Да, — повторила Лена.

Слово ушло в сеть вместе с отметкой причинности. На «Ферме» оно прозвучало сразу, на «Саде» — через четыре и восемь десятых секунды, на «Ковчеге» — почти через одиннадцать. Остальные услышат его ещё позже, но уже не смогут принять за оговорку: Юна закрепила ответ в общем журнале.

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

— Полный ответ, — сказал Саранов. — Без инженерного сокращения.

Он говорил ровно. От этого требование звучало тяжелее приказа.

Лена вывела заключение на общий канал и раскрыла приложение. В нём сохранились три оценки: штатное раскрытие; раскрытие с отказом одного пироболта; раскрытие с потерей «Линзы». Последнюю строку она знала наизусть и всё же прочла.

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

— Почему заключение одобрили, если оговорка запрещала текущую конфигурацию? — спросил Платонов.

— Потому что текущей конфигурации не существовало. Полётные контроллеры должны были прийти чистыми. Шесть ключей должны были подтвердить условия заново. Стендовое состояние считалось непереносимым.

— Но его перенесли.

— Да.

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

— Вы оценивали вероятность такого переноса? — спросил Саранов.

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

— Нет, — сказала она. — Я оценила его как недостижимый сценарий.

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

— Недостижимый физически? — уточнил Арсен.

— Организационно. В модели он был исключён процедурой очистки.

— Значит, не недостижимый.

— Значит, я назвала запрет свойством системы. Это была ошибка.

Саранов увеличил таблицу расчётных узлов.

— И цена ошибки — семь секций.

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

— Различие утешительное.

— Нет. Проверяемое.

Лена открыла исходную модель. В ней безопасное раскрытие заканчивалось семью зелёными прямоугольниками. За пределами модели стояла единственная строка: «начальное состояние подтверждено». Ни датчика, ни контрольной суммы, ни отдельного ключа. Текст, замаскированный под измерение.

Ника подняла руку перед камерой, хотя никто не требовал формального порядка.

— На «Саде» при каждом обмене водой мы проверяем клапан, давление и состав. Если в инструкции написано, что бак чистый, мы всё равно берём пробу. Почему контроллеру разрешили поверить инструкции?

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

— Дорого, — сказала Ника.

— Девять суток стенда на сборку.

— Теперь у нас нет стенда и почти нет суток.

Максим не стал спорить.

Саранов вернул разговор к Лене:

— Вы знали, что короткое заключение пойдёт в эксплуатационный пакет, а оговорка останется в приложении?

— Знала.

— И подписали.

— Да.

— Почему?

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

— Испытание уже задерживали дважды. Третья задержка сдвигала стартовое окно. Руководитель сборки потребовал формулировку, относящую риск к обслуживанию, а не к конструкции. Я согласилась, потому что считала очистку состояния простой и обязательной операцией. И потому что хотела, чтобы «Галилей» полетел.

— Вас заставили?

— Нет.

— Вам скрыли переход на другую сборку?

— На тот момент перехода не было.

— Тогда не распределяйте подпись между отсутствующими людьми.

— Я не распределяю.

Саранов задержал взгляд на ней ещё секунду, затем убрал её доступ к манёвровой матрице.

Изображение изменилось без предупреждения. Семь расчётных узлов остались на месте, но поля коррекции перед Леной стали серыми. Система сообщила: ПРАВО ЕДИНОЛИЧНОГО МАНЁВРА ОТОЗВАНО КОМАНДИРОМ.

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

— Принято.

— Возражение?

— Есть. Но не против второго подтверждения.

— Формулируйте.

Лена вывела таймер окна. Сорок одна минута двенадцать секунд.

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

— Вы только что доказали, чем заканчиваются заранее утверждённые коридоры.

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

Арсен наложил на схему тонкие оболочки вокруг траекторий.

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

— Кто проверяет расчёт? — спросил Саранов.

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

— «Сад» проверит расход и тепловой предел, — добавила Ника.

Чжоу запросила для своей секции отдельное ограничение по вибрации. Платонов — по перегрузке для трёх пациентов, которых нельзя было закрепить в штатных ложементах. Юна превратила реплики в таблицу условий. За несколько минут наказание перестало быть только запретом и стало устройством работы.

Саранов подтвердил новый порядок.

— Ветрова готовит расчёты. Асанов проверяет геометрию. Ремезова — ресурс. Исполняет командир каждой секции в утверждённом коридоре. За его пределами — мой ключ и один независимый. Срок — до конца первого окна.

— Вашу командную секцию кто подтверждает? — спросила Ника.

— Ветрова.

Лена подняла глаза.

— Вы только что лишили меня права.

— Единоличного. Не права проверки.

Это было не доверием и не прощением. Саранов оставил её расчёты в системе как опасный прибор: пользоваться можно, держать без присмотра нельзя.

Юна закрыла голосовой круг и включила журналирование изменений. Теперь каждое число получало автора, исходные данные и срок годности. Лена начала с «Ковчега». Его траектория уходила выше расчётного узла, зато позволяла снизить перегрузку. Платонов потребовал ещё две десятых метра в секунду запаса на уклонение. Тимур показал, что этот запас через двадцать семь минут превратится в недолёт к узлу.

— Тогда сократим срок коридора до двадцати минут, — сказала Лена.

— И пересчитаем после первого импульса, — ответил Тимур.

— Подтверждаю.

Они двигались от секции к секции. На «Саде» нельзя было долго держать боковую тягу: жидкость уходила от заборников. На «Игле» работал только один кластер ориентации. «Ферма» могла дать точный импульс, но её длинная конструкция входила в колебание, и Лена ограничила длительность включения. Командная секция имела лучший запас, зато прошла дальше расчётного положения и должна была возвращаться против собственного прежнего решения.

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

На тридцать четвёртой минуте Юна разослала пакет. Шесть секций подтвердили получение. Седьмая, как прежде, молчала.

— Начинаем с «Фермы», — сказал Саранов.

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

— В пределах, — сказал он. — Подтверждаю геометрию.

Ника проверила расход.

— Запас после исполнения — двадцать три целых одна десятая процента. Подтверждаю.

Лена передала пакет Максиму. Тот посмотрел на серое поле, где раньше появлялась её команда.

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

— Ты и раньше отвечал.

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

Он исполнил импульс. «Ферма» дрогнула; по продольной балке прошла волна, погасла на третьем узле и вернулась слабым эхом. Траектория легла внутрь оболочки.

Следом маневрировал «Сад». Ника разбила включение на три коротких толчка, между ними насосы возвращали воду к заборникам. Первый толчок оказался слабее расчёта на семь процентов.

— Останавливаю серию, — сказала она.

Саранов уже держал курсор над аварийным подтверждением, но не нажал.

— Причина?

— Пузырь в подающей линии или неверная оценка вязкости. Проверяю по давлению.

— Времени шесть минут.

— Поэтому не буду тратить его на неправильный второй импульс.

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

— Запишите, — сказала Лена. — Исходное состояние теплоносителя нельзя принимать из последней штатной телеметрии. Только текущее измерение.

— Уже, — ответила Юна.

Фраза ударила точнее упрёка. Они снова находили текст, который хотел притвориться фактом, и на этот раз не позволяли ему этого.

Для «Ковчега» Платонов выбрал мягкую траекторию. Она стоила дополнительного рабочего тела, но сохраняла допустимую нагрузку. Саранов попросил расчёт более экономного варианта. Платонов молча вывел медицинскую панель: у одного пациента внутреннее кровотечение было остановлено только временно.

— Вопрос снят, — сказал Саранов.

— Зафиксируйте основание, — потребовала Ника.

Юна записала: «приоритет жизни; дополнительные затраты — одна целая восемь десятых процента запаса командной коррекции в будущем обмене». Цена решения не исчезла, но получила имя.

Когда очередь дошла до командной секции, Саранов передал Лене расчёт без комментария. Она нашла в нём слишком узкий допуск по боковой скорости.

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

— Расширение уведёт нас от шестого узла.

— Узел можно потерять. Секцию — нельзя.

— Это решение командира.

— В пределах утверждённого правила — да. Но вы ещё не получили независимого подтверждения.

Саранов смотрел на неё через задержку. Лена не знала, что именно он проверяет: число или её готовность применить к нему то же ограничение.

— Ваш вариант, — сказал он.

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

— Подтверждаю безопасный коридор, — сказала Лена. — Измерительный коридор не подтверждаю.

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

Первое окно закрылось. Шесть секций остались обитаемыми. Пять удержали свои расчётные узлы; командная могла вернуть шестой при следующей коррекции. Седьмой узел по-прежнему пересекал пустая область «Линзы».

Юна собрала итоговый журнал и поставила рядом две подписи: Саранова — под новым порядком исполнения, Лены — под ограничениями модели. Подпись Лены больше не означала разрешение. Она означала перечень условий, при которых расчёт оставался правдой.

— Так следовало написать год назад, — сказал Арсен.

— Так следовало построить, — ответила Лена.

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

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

Он пришёл не по общей частоте. Юна первой заметила короткий фронт и развернула антенну «Фермы» на источник. Сигнал повторился через две целых четыре десятых секунды — слишком быстро для дальней секции и слишком медленно для внутреннего эха.

— Направление? — спросил Саранов.

— Область седьмого узла, — ответила Юна. — Между расчётным положением «Линзы» и «Иглой».

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

На общем экране появилась строка:

КОНТУР 7: ДВА БИОМАРКЕРА. ДАВЛЕНИЕ ПАДАЕТ.

Ника первой нарушила тишину:

— На седьмой секции есть живые.

Тимур уже строил обратный конус направления.

— Не на расчётной точке. Сигнал идёт со стороны «Иглы».

Лена посмотрела на закрытое поле манёвра. До второго окна оставалось девятнадцать минут. Её право отдавать команду было отозвано, но расчёт всё ещё принадлежал ей — пока его могли проверить другие.

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

— Подтвердите условия задачи, — сказала она.

Тимур прочёл поля вслух. Ника добавила предел, после которого оценка времени по давлению теряла смысл. Арсен потребовал считать не одну точку источника, а весь конус вероятных положений. Юна закрепила версии. Лишь после этого на экране появился статус «расчёт разрешён».

Саранов поставил второй ключ.

— Юна, сохраните сырой пакет. Тимур, три независимых решения по направлению. Ника, оцените время по падению давления, не принимая код контура за исправный датчик.

Саранов не прервал её.

— А вы? — спросил он.

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

На этот раз она не назвала ни один исход недостижимым.

8. Дальний голос

Первое решение Тимура поместило источник в пустоту.

Конус пеленга пересекал расчётную точку «Иглы», но его вершина лежала на четыреста километров ближе к «Ферме». Там не было ни секции, ни крупного обломка.

— Второе решение? — спросил Саранов.

— Отличается на одиннадцать градусов.

— Третье?

— Я ещё считаю.

До закрытия второго манёврового окна оставалось шестнадцать минут. Лена видела напряжение Тимура по дрогнувшей линии спектра.

Юна развернула узкую антенну «Фермы» на расчётное положение «Иглы». Шум поднялся, затем в нём проступили три коротких импульса.

— Это не отражение, — сказала она. — У пакетов меняется счётчик.

— Но контрольная сумма не сходится, — возразил Максим.

— Потому что передатчик режет последние биты. Ему не хватает мощности или он перегрет.

Лена сняла с расчёта любую цифру, которую они знали только из заголовка пакета.

— Пока у нас есть источник радиосигнала и падение давления неизвестно где, — сказала она. — Не люди на «Игле».

Лицо Саранова осталось неподвижным.

— Там моя сестра.

— По списку экипажа — да. По измерению — ещё нет.

— Продолжайте.

Это прозвучало не как согласие, а как отсрочка спора.

Третье решение Тимура совпало с траекторией «Иглы», рассчитанной до раскрытия. При боковом импульсе секция могла уйти в кажущуюся пустоту. Для проверки требовалась вторая точка приёма, но остальные секции слышали лишь шум.

— Почему только мы? — спросил Максим. — У командной антенна мощнее.

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

— Не мощность, — сказала Юна. — Геометрия. «Ферма» находится в боковом лепестке, остальные — за экраном. Если мы уйдём к своему узлу, тоже оглохнем.