18+
реклама
18+
Бургер менюБургер меню

Nikita Danilov – Чужое завтра (страница 16)

18

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

– Теперь у нас есть не прогноз, сказал Виктор. – Есть другое событие, которое умеет быть похожим.

Он надел наушники и услышал, как женщина в записи наконец договорила предложение. Её голос не изменился. Изменился смысл перебивок вокруг него.

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

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

Виктор провёл между карточками вертикальную черту и не стал соединять совпадения стрелками.

В 22:06 городской портал сообщил, что светофор исправен. Заявка 614 была закрыта.

Под статусом находилась кнопка Оценить результат.

Виктор выбрал вариант Проверка выполнена, не отмечая, помогла ли она.

Глава 5. Два прогноза

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

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

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

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

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

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

Её интересовало приложение погоды.

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

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

Ася начала с простого: открыла локальный кэш.

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

На 31 июля в 17:00 существовали два прогноза.

Первый обещал двадцать девять градусов, ясное небо и ветер с юго-запада. Второй показывал двадцать два градуса, грозу и северный ветер.

Они были сохранены с разницей в одну секунду.

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

Она открыла историю уведомлений. В 08:05 приложение показало: К вечеру возможна сильная гроза. В 08:06 уведомление обновилось: Осадков не ожидается.

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

Ася нашла архив поставщика. Для Реченска грозовой вариант никогда не публиковался. В соседнем Заречном 31 июля дождь прошёл утром, но температура и ветер не совпадали. На северо-западе области гроза началась только ночью.

Она записала: версия сервера могла быть отозвана до архивации.

Потом заметила тень.

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

Она открыла исходный файл без обработки. Полоса исчезла.

В уменьшенной копии появилась снова.

– Компрессия, сказала Ася вслух.

Из комнаты Антона донеслось:

– Ты со мной?

– Нет.

– Тогда потише спорь.

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

Следующим был браузер.

История показывала запросы о трамвайных пересечениях, старом рынке и режиме работы городской транспортной службы. Первый запрос был сделан 20 июля в 07:42: где маршрут 23 пересекает трамвайные пути.

Сообщение Виктора с просьбой найти все пересечения пришло Асе в восемь утра.

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

Ася проверила системное время ноутбука. В тот день оно синхронизировалось с сетью в 06:03 и 12:11, отклонение составляло меньше секунды. История браузера могла быть перенесена с телефона, но телефон показывал тот же момент создания. В облачной учётной записи запрос появился в журнале активности в 07:42.

Она открыла журнал клавиатуры, который использовала для тестирования корпоративного приложения. Программа не хранила сами нажатия, только время активности. В 07:42 ноутбук спал.

Телефон лежал на зарядке и не разблокировался с 01:18 до 07:57.

Запрос существовал на двух устройствах раньше, чем Ася могла его сделать.

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

Ася создала образ диска ноутбука, посчитала контрольную сумму и только потом позвонила Виктору.

Он ответил сразу.

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

– Восемнадцать.

– Что?

– От 07:42 до восьми восемнадцать минут.

– Спасибо. Теперь аномалия точнее.

– Ты могла увидеть запрос у меня раньше?

– Номер маршрута появился после аварии.

– В памяти Севера он мог быть.

– Ты его не передавал.

– Мог получить и забыть.

– Мог. А потом каким-то образом заставить мой спящий ноутбук выполнить поиск.

Виктор не ответил.

– Я не говорю, что это невозможно, продолжила Ася. – Я говорю, что для этой версии нужен ещё один механизм, которого у нас нет.

– Не трогай файлы до Дарьи.

– Я уже сделала образ.