
Полная версия:
Курьер видел всё
— Я никого не обвинял.
— Пока нет.
Никита вспомнил мужчину без нашивки и промолчал.
Крылов вставил карту в считыватель с маленьким переключателем на боку.
— Защита от записи, — пояснил он. — Сначала создаём копию содержимого и считаем контрольные значения. Оригинал не меняем.
— Сколько это займёт?
— Карта небольшая. Если исправна — минут двадцать.
На экране появилась полоса. Под ней быстро менялись числа. Никита различил список папок: даты, внутри короткие файлы с последовательными номерами. Камера резала смену на отрезки по несколько минут. Когда место заканчивалось, самые старые исчезали первыми.
— Сейчас утро субботы, — сказал Крылов. — Пятничный вечер должен быть далеко от края перезаписи.
— Должен быть?
— Если настройки соответствуют вашим словам и карта заполнена штатно.
— Она погасла ночью.
— Это влияет на конец записи, не на уже созданные файлы.
Рощина попросила Никиту продолжить. Он рассказал про вопрос Дарьи о сроке хранения, заевшую дверь и мужчину у служебной дверцы. Про технический коридор на первом этаже. Про исчезнувший дождевик и женщину, которую он увидел через стекло уже с улицы.
— Это была та же женщина? — спросила Рощина.
— Тот же плащ.
— Я спросила о женщине.
— Лица я не видел ни в первый, ни во второй раз.
— Значит, вы дважды видели жёлтый плащ и фигуру примерно одного сложения.
— Вы умеете делать воспоминания бесполезными.
— Я стараюсь сделать их точными.
Полоса копирования остановилась на восьмидесяти трёх процентах.
Крылов наклонился к экрану. Через несколько секунд нажал одну клавишу, потом другую.
— Что? — спросила Рощина.
— Ошибка чтения в одном диапазоне. Повторяю.
Вторая попытка дошла до того же места и замерла.
— Карта повреждена? — спросил Никита.
— У неё есть нечитаемый участок. Причин много: износ, обрыв питания во время записи, дефект памяти. Пока никаких выводов.
— Можно пропустить?
— Можно снять всё доступное, отдельно зафиксировав ошибку. Это будет неполная копия, а не видимость целой.
Крылов запустил другой режим. Теперь на экране возникали строки: прочитано, ошибка, заполнение нулями, следующий блок. Никита смотрел, как его пятница превращается в проценты.
Рощина положила перед ним лист.
— Добровольная передача устройства и карты для копирования и осмотра. Читайте, не торопитесь.
— Вы уже копируете.
Крылов убрал руки от клавиатуры.
— Могу остановиться.
Никита прочитал дважды. В листе были номер камеры, объём карты, время начала действий и оговорка о том, что устройство содержит записи третьих лиц. Срок возвращения не был указан.
— Камера мне нужна для работы.
— Корпус вернём после первичного осмотра, если не возникнет оснований удерживать его дольше, — сказала Рощина. — Карту пока оставим опечатанной. Сегодня можете купить другую?
— Могу. Кто возместит?
— Сохраните чек и подайте заявление о расходах. Я не обещаю решение за человека, который будет его принимать.
Он подписал. Рощина поставила время рядом с его подписью.
— А если я откажусь от части записей? — спросил Никита. — Например, там человек просил камеру опустить.
— Вы можете сообщить об этом и объяснить обстоятельства. Самостоятельно вырезать фрагмент из исходника после того, как узнали о расследовании, — плохая идея и для проверки записи, и для вас. Частную сцену можно ограничить при ознакомлении или дальнейшем использовании. Исходник при этом должен остаться проверяемым.
— То есть вы увидите всё.
— Специалист технически увидит доступные файлы. В материалы должны попасть те фрагменты, которые имеют значение. Остальное не становится разрешённым к разглашению только потому, что оказалось на носителе.
Никита посмотрел на камеру. Вчера она казалась его свидетелем. Теперь выяснялось, что свидетель болтлив и не умеет отличать нужное от чужого.
Копирование закончилось с предупреждением. Крылов сохранил отчёт, записал длинные строки цифр на отдельный носитель и только после этого открыл каталог копии.
— Время камеры могло отличаться от времени телефона, — сказал он. — Сначала найдём устойчивую привязку. Вы помните момент, который точно проверяется независимо?
— Отметка доставки — 22:14.
— Это время сервиса. В кадре был экран с галочкой?
— Я показывал его Дарье. Камера смотрела на дверь и пакеты. Может, экран попал краем.
Они нашли конец пятничной смены по последнему файлу перед разрядом. На записи дрожал асфальт, мелькало переднее колесо велосипеда, красный свет светофора расплывался в мокрой дороге. Звука почти не было из-за ветра. Потом изображение качнулось, застыло и оборвалось.
— Мост, — сказал Никита. — После аптеки и двух заказов.
Крылов не стал воспроизводить файлы подряд. Он вывел таблицу: имя, размер, время создания, длительность. Несколько отметок шли ровно, затем появлялись разрывы на секунду или две — обычные промежутки между файлами. Возле десяти вечера последовательность ломалась сильнее.
— Вот, — сказал Никита, заметив миниатюру с кирпичной стеной даркстора. — Оттуда я выехал к «Маяку».
Файл открылся. Никита увидел собственные руки: затягивает перчатку, принимает два пакета, проводит пальцем по экрану. Диспетчерский голос за кадром назвал последние четыре цифры заказа. Потом лестница, двор, руль.
Следующий файл начинался у перекрёстка. В кадре был светофор и нижняя часть телефона. Никита нажимал «Прибыл».
— Значит, время сервиса можно сопоставить с часами камеры, — сказал Крылов.
Разница составляла одну минуту и девятнадцать секунд. Камера спешила.
Дальше шла дорога к комплексу. Никита заранее узнал ограду, мокрую плитку, белый свет будки. Мужчина в форме появился сбоку — без лица, только рукав и ладонь, поднятая перед объективом.
«Съёмка у нас запрещена».
На записи голос звучал моложе, чем Никита запомнил.
Он поворачивал камеру вниз. Кадр заполняли молния куртки и серый пол. Слышались шаги, сигнал лифта, его собственное «Едете?», женское «Я вниз». Затем гул кабины.
— Сейчас будет табло, — сказал Никита.
Объектив смотрел вниз.
— Вы же его опустили, — напомнила Рощина.
— В лифте поднял. Точно поднял.
На экране по-прежнему были его руки и край сумки. Телефон завибрировал. Никита дважды коснулся экрана, отказываясь от заказа. Потом файл закончился.
Крылов щёлкнул по следующему.
Система ответила коротким сообщением об ошибке.
Он попробовал открыть файл в другом проигрывателе. Потом посмотрел его свойства. Имя стояло правильное, размер — ноль.
Следующий фрагмент начинался уже на улице. В кадре блестело седло велосипеда. Никита отстёгивал трос.
— Нет, — сказал он.
Крылов вернулся к таблице.
Между записью в лифте и велосипедом было двадцать одна минута сорок три секунды по часам камеры. Внутри диапазона значился один пустой файл и несколько отсутствующих номеров. Не было коридора шестнадцатого этажа, Дарьи, пакетов, мужчины у служебной дверцы, технического прохода и холла.
— Это тот нечитаемый участок? — спросила Рощина.
— Похоже, он приходится сюда. Но отсутствующие номера — отдельный вопрос. Они могли не создаться, могли потеряться из таблицы файлов, могли стать недоступны после сбоя. Нужен анализ образа и самой карты.
— Камера не выключалась, — сказал Никита.
— Вы проверяли индикатор? — спросила Рощина.
— У двери он горел. Мужчина на него смотрел.
— Вы это помните.
— Я видел красную точку.
— Хорошо. Так и запишем.
Никита встал, задел коленом стол. Камера качнулась, но Крылов удержал её ладонью.
— Там была Дарья. Она спросила про хранение. Я показал галочку. Дверь заела. Это не двадцать минут, которые можно перепутать с другой пятницей.
— Я не говорю, что вы перепутали всё, — сказала Рощина.
— А что вы говорите?
— Что в доступной копии сейчас нет фрагмента, который вы описываете. Причину мы не знаем.
— Его удалили.
Крылов покачал головой.
— Пока мы знаем только о повреждении и нарушенной последовательности. Удаление — одна из версий, не факт. Удалённо эту модель не чистят, если она штатная и без переделок. Но карта могла дать сбой, питание могло пропасть, файл мог не закрыться.
— Питание не пропадало. Она писала потом, на улице.
— Камера могла перезапуститься.
Никита хотел возразить и вспомнил, как индикатор мигал у велосипеда. Он принял мигание за низкий заряд. Мог ли тот же сигнал означать перезапуск? Инструкцию он читал год назад, по диагонали.
Рощина посмотрела на часы.
— До выяснения не обсуждайте содержание записи в домовом чате, с жильцами и коллегами. Особенно отсутствующий фрагмент. Если человек, связанный с исчезновением, не знает, что именно сохранилось, это полезнее нам и безопаснее вам.
— А Алине?
— Почему вы спрашиваете именно о ней?
— Она живёт в соседней башне. Она позвонила первой.
— Скажите, что передали запись полиции. Без подробностей.
— Это просьба или запрет?
— Просьба, основанная на риске помешать проверке. Формальные обязанности я обозначу отдельно, если они возникнут.
Никита сел обратно.
— Вы всё время оставляете себе запас.
— Потому что точность важнее уверенного тона.
Крылов упаковал карту в прозрачный пакет, заклеил полосой с номером и попросил Никиту расписаться поперёк края. Корпус камеры положил отдельно.
— Мне вернут хотя бы копию моих маршрутов?
— Не сейчас, — сказала Рощина. — Сначала мы отделим относящееся к проверке. Если вам нужны служебные подтверждения для работы, запросите их у сервиса. Не требуйте общую выгрузку клиентов и не просите коллег лезть в чужие заказы.
— Я похож на человека, которому дадут общую выгрузку?
— Люди охотнее нарушают правила, когда называют это помощью.
У двери она остановилась.
— Вспомните точный порядок файлов после отметки «Прибыл». Не содержание сцен, а внешние опоры: звонки, вибрации, автоматические сигналы, начало и конец фрагментов. Запишите на бумаге, не сверяясь с чужими рассказами.
— Зачем?
— Если повреждение случайное, границы подскажут механизм. Если нет — покажут, что именно исчезло. И ещё: не пытайтесь доказать себе, что память лучше камеры. Они ошибаются по-разному.
Дверь закрылась. Никита услышал, как лифт пришёл на этаж и почти сразу уехал.
Он вернулся к столу. На светлом прямоугольнике пыли, где лежала камера, остался отпечаток крепления. Красной точки не было, но Никита всё равно повернул стул так, чтобы не сидеть к ней лицом.
Телефон показывал три пропущенных от Алины и сообщение от диспетчера: «Ты выходишь в смену? Камера обязательна».
Никита ответил диспетчеру, что оборудование забрала полиция и он купит новую карту. Потом открыл диалог с Алиной.
«Запись передал следователю. Подробностей пока не говорю».
Она набрала ответ сразу: «Там видно Дарью?»
Никита положил телефон экраном вниз.
На листе из старой тетради он написал: «22:14 — зелёная галочка». Ниже: «два пакета», «сигнал из квартиры», «лифт открылся», «служебная дверца», «дверь поднять и толкнуть». Потом вспомнил последовательность на спуске: шестнадцать, пятнадцать, остановка, технический коридор, холл. После холла — велосипед, мигающий индикатор.
Между лифтом и велосипедом камера насчитала почти двадцать две минуты. По ощущению Никиты всё внутри здания заняло не больше десяти.
Он открыл историю приложения и выписал времена событий. «Прибыл» стояло в 22:06. «Передал» — в 22:14. Следующий заказ был принят в 22:19, уже после выхода из комплекса. Восемь минут между перекрёстком и дверью. Пять — от двери до нового заказа. Всего тринадцать.
Камера утверждала, что между последним целым файлом в лифте и велосипедом прошло почти двадцать две минуты. Даже с минутой девятнадцатью секундами расхождения это не сходилось.
Никита провёл линию между двумя столбцами.
Приложение не знало, где он находился между нажатиями. Камера не показывала, что происходило между файлами. Память заполняла обе пустоты одним гладким маршрутом.
Он снова взял телефон, но не стал звонить Рощиной. Она просила порядок и внешние опоры. Значит, сначала нужно было проверить не лица и не догадки, а номера файлов, служебные отметки и часы каждого устройства.
Никита подписал над столбцами: «что сделал», «что записалось», «когда отметилось».
Внизу страницы осталось место для четвёртого: «кто мог это подтвердить».
Он пока оставил его пустым.
Глава 3. Чужой пакет
Утром Никита обнаружил, что порядок событий зависит от того, чем их измерять.
На листе из старой тетради всё выглядело просто. В 22:06 он нажал «Прибыл». В 22:14 — «Передал». В 22:19 принял следующий заказ. Между первой и последней отметками помещалось тринадцать минут. Камера отводила тому же отрезку почти двадцать две.
Он провёл ещё одну линию, подписал её «часы камеры» и расставил номера целых файлов. После записи из лифта шёл пустой файл, потом в последовательности не хватало четырёх номеров, затем начиналась улица и его руки на велосипедном тросе. Если верить нумерации, устройство несколько раз пыталось что-то создать. Если верить содержимому, не создало ничего полезного.
Никита перевернул лист. На обратной стороне проступали вчерашние слова: «кто мог это подтвердить». Этот столбец оставался пустым.
Телефон завибрировал. Алина снова спрашивала, видно ли на записи Дарью. Никита написал: «Полиция разбирается. Сам файл не смотрю». Это было почти правдой. Исходной карты у него не было, а копию Крылов не оставил. Зато у Никиты сохранилась история заказов — та часть собственной работы, которую приложение позволяло открыть без запроса к чужим данным.
Он пролистал пятницу до доставки в «Маяк-12». Два пакета значились одной строкой: общий вес два килограмма восемьсот граммов, выдача через ячейку 41, передача получателю. Состав скрывался после закрытия заказа; вместо товаров оставались категория и сумма. «Бытовые принадлежности». Дарья, открыв дверь, спросила, почему пакетов два. Тогда Никита решил, что в дарксторе разделили заказ из-за размера.
Теперь он увеличил электронный чек. Под общей строкой стояли два коротких кода упаковки. Первый оканчивался на 7К. Второй — на 4М.
Никита посмотрел на бумажный лист. Камера не сохранила дверь Дарьи, но до лифта успела снять оба пакета. Возможно, номер на одном попадал в кадр.
Он не стал просить запись у Рощиной. Она ясно сказала: сначала внешние опоры, не попытка доказать, что память лучше камеры. Служебные коды были как раз такой опорой.
В приложении имелась кнопка «Проблема с завершённым заказом». Никита выбрал «упаковка», затем «неверное количество». Появился чат поддержки.
«Укажите причину обращения».
Он написал, что по закрытому заказу отображаются два пакета и ему требуется подтвердить номера упаковок для объяснительной. Через минуту бот предложил список бесполезных ответов. Никита трижды нажал «Вопрос не решён» и получил обещание подключить оператора в течение суток.
Сутки у него были. Но терпения — нет.
Он позвонил Севе Лисицыну.
Сева работал в дарксторе дольше большинства курьеров и меньше всех походил на человека, которому нравилось это слово. Он называл помещение складом, сборщиков — сборщиками, а любые «умные решения» — таблицами, которые кто-то спрятал от тех, кому они нужны. Официально он отвечал за качество сменных данных. Неофициально знал, почему приложение в дождь назначало велосипедисту пять бутылей воды, а водителю — пакет салфеток.
— Если ты опять про штраф за опоздание, — сказал Сева, — у меня нет права его снимать.
— Не про штраф. Мне надо понять, существовал ли код упаковки.
— Код у тебя есть?
— Два последних знака.
— Тогда у тебя нет кода.
Никита объяснил про два пакета, не называя Дарью и не пересказывая исчезнувшую запись. Сева молчал достаточно долго, чтобы стало слышно, как на складе за его спиной пищит сканер.
— Номер заказа скажешь?
— Ты можешь его смотреть?
— Свои сменные события могу. Карточку клиента — нет. Адрес мне тоже не нужен. Если заказ собирался у нас и попал в отчёт расхождений, увижу статус упаковки. Если не попал — отправлю тебя в поддержку.
Никита продиктовал служебный номер.
— Погоди. И ничего мне не пересылай из приложения.
Сева отключил микрофон. Никита слышал только далёкие удары пластиковых ящиков. На кухонном столе лежала камера без карты, похожая на пустой футляр для доказательства. Он убрал её в ящик.
— Заказ закрыт без претензии, — сказал Сева. — Выдано два места. Коды заканчиваются так, как ты назвал. Вес совпал на выдаче с допуском.
— Значит, оба были Дарьины?
— Я сказал другое. Два места выдали тебе под одним заданием. Кому они принадлежали — вопрос не моей таблицы.
— Можно узнать, кто наклеил этикетки?
— Можно узнать смену и терминал. Имя сборщика тебе не дам. И не потому, что вредный. У тебя сейчас нет основания собирать людей вокруг чужого заказа.
Рощина говорила почти теми же словами. Никиту это раздражало сильнее, чем отказ.
— А номер упаковки может повториться?
— Полный — не должен. Хвост повторяется постоянно.
— Если я принесу полный?
— Откуда?
— С кадра до входа в подъезд. Общая зона, мой заказ.
Сева опять помолчал.
— Не присылай видео. Выпиши номер сам. Я проверю только служебный статус: создан, выдан, закрыт или отменён. Без состава, клиента и адреса.
Никита поблагодарил и сразу набрал Рощину. Она ответила не сразу.
— У меня есть допустимый способ проверить два кода упаковки, — сказал он. — Аналитик склада увидит только их служебные статусы. Никакой клиентской выгрузки.
— Кто предложил способ?
— Я спросил. Он поставил ограничения.
— Имя и должность пришлите сообщением. Саму запись ему не передавайте. Полные номера я могу сообщить вам после того, как специалист установит, относятся ли кадры с этикетками к вашему рабочему заданию и нет ли там персональных данных.
— На улице я держу пакеты перед собой. Там только наклейка.
— Вы помните, что там только наклейка. Мы проверим, что записано.
— Сколько это займёт?
— Я перезвоню.
— Сегодня?
— Орлов, скорость не превращает неразрешённый доступ в разрешённый.
— А медленность не вернёт пропавший файл.
В трубке стало тихо.
— Именно поэтому мы не будем портить то, что осталось, — сказала Рощина. — Пришлите контакт Лисицына.
Никита отправил номер и сел ждать. Через десять минут понял, что ждать дома не сможет. До начала смены оставалось три часа. Новую карту для камеры он купил в магазине у вокзала, запечатанную, с чеком. Камеру не включал: корпус всё ещё мог понадобиться Крылову, а подменять в нём что-либо без разрешения было глупо.
Из магазина он поехал к «Маяку-12», но остановился через дорогу. Калитка башни Б была видна между автобусной остановкой и рекламным щитом. Утренние жильцы выходили по одному, придерживая створку следующему. Теперь она закрывалась легко. Рядом стоял охранник с именной нашивкой. Не тот мужчина, которого Никита видел в пятницу.
Он не стал подходить. Его задача была не искать лица, а проверить порядок. В пятницу он нажал «Прибыл» у перекрёстка, переехал дорогу, отстегнул велосипед, спорил с охранником, прошёл калитку и холл. Восемь минут до двери уже не казались странными. Странными оставались девять лишних минут камеры.
Никита открыл собственную историю поездок на велосипеде. Приложение замка показывало только моменты открытия и закрытия, без координат. В 22:08 трос был закрыт. В 22:18 — открыт.
Десять минут.
Он записал эти времена на листке из блокнота. Получалось, что велосипед подтверждал приложение, а не камеру. Но камера могла спешить только на минуту девятнадцать секунд, не на девять минут. Значит, между её файлами было не прожитое время, а что-то иное: ошибка счётчика, повторная попытка записи, сбой карты. Или камера продолжала считать время, пока Никита уже находился в другом месте.
У калитки появился фургон подрядной службы. Двое рабочих вынесли складную лестницу. Охранник расписался на планшете, поднял створку, и машина въехала во двор.
Никита вспомнил плоскую папку у женщины в жёлтом плаще. Память немедленно предложила удобную картинку: папка у Дарьи, Дарья выходит незамеченной, фургон увозит её. Он зачеркнул эту мысль, хотя не успел записать. Ни лица, ни номера машины он не видел. Папка могла быть планшетом, женщина — любой соседкой, фургон сегодня не имел отношения к пятнице.
Телефон зазвонил, когда он уже собирался уехать.
— На одном из ранних фрагментов читается полная маркировка обеих упаковок, — сказала Рощина. — Кадр относится к выдаче и не содержит данных получателя. Я пришлю два кода текстом. Лисицын подтвердил полномочия и согласился ответить только по статусам. Ответ сохраните целиком.
— Вы с ним уже поговорили?
— Да.
— Быстро.
— Иногда проверка быстрее догадки.
Сообщение пришло через минуту. Два длинных набора символов отличались не только окончаниями. Первый начинался обозначением их склада. Второй — другой группой букв.
Никита переслал Севе только коды и вопрос: «Статус каждого?»
Ответа не было почти час. Никита успел доехать до склада, переодеться и отказаться от двух заданий, для которых требовалась камера. Диспетчер написал, что третий отказ снизит приоритет. Никита показал справку о том, что оборудование изъято для проверки, и получил обычный маршрут без обязательной видеозаписи.
Сева поймал его у ряда холодильников.
— Телефон убери, — сказал он.
— Я не записываю.
— Все так говорят, держа телефон экраном вверх.
Никита сунул аппарат в карман.
Сева выглядел так, словно ночь провёл внутри собственной таблицы: серое лицо, красные полосы на глазах, рубашка застёгнута не на ту пуговицу. Он повёл Никиту к пустой зоне возвратов. Над ними гудели лампы. Сборщики проходили мимо с тележками и не смотрели в их сторону.
— Первый код нормальный, — сказал Сева. — Создан здесь, напечатан на терминале выдачи, связан с твоим пятничным заданием, закрыт после передачи.
— Второй?
— Полный код существует. Но в твоём заказе его нет.
— Ты утром сказал, что два места выдали мне.
— В отчёте заказа два места. В журнале сканирования второй код не тот, что попал на камеру.
Никита не сразу понял разницу.
— То есть в приложении 4М, на пакете тоже 4М, но полный номер другой?
— Хвост одинаковый. Поэтому на экране всё выглядит убедительно, если ты видишь только последние знаки. Полная маркировка с кадра относится к другой упаковке.
— Кому?
— Этого я тебе не скажу.
— Другому клиенту?
— Не пытайся заставить меня подтвердить категорию, которую я не имею права открывать. Статус такой: код создан не на нашем складе. Он связан с закрытым курьерским аккаунтом. Последнее событие — передача в доставку. Подтверждения получателя нет.
— Когда аккаунт закрыли?
— Это уже выходит за мой доступ по твоему обращению.
— До пятницы или после?
— Выходит, Никита.
Сева отступил на полшага, давая понять, что разговор закончен. Никита заслонил ему проход.
— Этот пакет был у меня в руках. Я отдал его женщине, которая пропала.
— Ты уверен, что отдал именно его?
Вопрос остановил Никиту лучше приказа.
Он видел два пакета у себя в руках. Помнил, как Дарья посмотрела на них. Помнил, как поставил один на пол, чтобы достать телефон. Но отсутствующий фрагмент начинался раньше двери. Он не мог проверить, какой пакет поднял с пола и какой остался у порога. Он даже не мог доказать, что оба вошли в квартиру.
— Я передал два, — сказал он.
— Тогда так и говори: помнишь, что передал два. Не говори, что знаешь судьбу конкретной этикетки.
— Откуда чужой пакет оказался в моей ячейке?
— Не знаю, что он был в твоей ячейке. Камера показывает его после выдачи. Между сканером и кадром есть несколько метров, стойка комплектования и твои руки.
— Кто-то поменял наклейку?
— Не знаю. Могли перепутать место. Могли переложить пакет на стойке. Могли неверно связать короткое обозначение с полным кодом. Мог быть возврат, который не прошёл нормальный цикл. Я сейчас перечисляю возможности, а не версии.
Сева вынул из кармана сложенный вчетверо лист.
— Здесь служебный ответ. Без имени клиента, адреса, состава и чужих заказов. Первый код — активное на тот момент задание твоего аккаунта. Второй — упаковка, связанная с аккаунтом, закрытым на момент моей проверки. В твоей доступной истории второго полного кода нет. Я подписал временем запроса. Оригинал оставляю у себя, тебе копия.
— Закрытым на момент проверки — это сегодня.
— Да. Не подменяй этой формулировкой пятницу.

