Константин Бэйт
Сигнатура «До»

Акт 1. Заземление и первый намёк на артефакт

Глава 1. Рутина и заземление.

Щелчок зажигалки. Дым заземлил систему. Ресурс заземления: 3 минуты. Приоритет шума: локальный, но с потенциалом роста.

Максим шагал по переходу, в кармане привычно оттягивала руку пачка — базовый антишум-модуль, последний островок валидной тишины. Он машинально проверил буфер реальности: слева — киоск, где ломбардщик менял мусорный скрап на просроченные батончики; справа — инстанс-фильтр из патруля-глушилки, лениво сканировал толпу на вектор утечки воспоминаний. Уровень шума: 68%. В пределах нормы, но где-то рядом уже пробивался посторонний писк — фантом-фрагмент чужого сна про школьный стадион и мокрый асфальт. Максим поморщился, будто наступил на битый пиксель.

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

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

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

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

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

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

— Тебе надо, — настаивал он. — Ты слышишь лишнее. Я знаю. У тебя ресурс заземления на исходе. Максим невольно коснулся пачки в кармане. Ресурс: 70%. Да, он слышал лишнее. Постоянно. Обрывки чужих воспоминаний накатывали волнами: чей-то страх перед экзаменом, запах больницы, смех ребёнка, который тут же растворялся в шипении пустого канала. Это был фон, как гул трансформатора. Но этот фрагмент он не гудел. Он молчал. И от этого молчания становилось тревожнее, чем от любого шума.

Уровень тревоги: 78%. Ресурс терпения: 2 минуты.

— Откуда это? — Максим взял на мушку метрику фрагмента. — Где взял? — Там, где не шумят, — уклончиво ответил юзер-тень. — Там, где память не выгорает. — Такого места нет, — отрезал Максим. — Выгорание — константа. Это закон системы. Он не взял фрагмент, хотя рука сама чуть подалась вперёд — инстинкт выживания тянулся к тишине, как к воде в пустыне. Но он знал: бесплатный хрусталь — это всегда ловушка. А это было тише хрусталя. Это было опасно.

Вместо этого он достал мини-логгер, быстро прогнал через фильтр ауру юзера-тени. Результат: «Аномалия битрейта; эхо-фон ниже нормы; вектор: ломбард на Заводской». Лог зафиксировал данные, и Максим убрал устройство.

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

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

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

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

В офисе его встретил узел-оператор — вечно сонный, с тёмными кругами под глазами, будто кто-то забыл развернуть периметр тишины. — Опять шум? — спросил он, не поднимая головы от терминала. — Всегда шум, — ответил Максим, скидывая куртку. Ткань пахла дымом — антишум-модулем, который никогда не работал на сто процентов. — Что по логам? — Очередной баг в компрессии памяти, — узел-оператор наконец взглянул на него. — Система пытается упаковать хрусталь как скрап. Выгорание идёт не по протоколу. Эхо остаётся слишком плотным. — Подними логи за последние три часа, — Максим уже включался в режим дебага. — Возьми на мушку метрику шума в секторе 4B. Там вчера кто-то слил лог тревоги, и канал до сих пор фонит. Узел-оператор кивнул и снова уткнулся в экран. Максим сел за свой терминал, чувствуя, как нарастает приоритет шума. Он знал: этот чистый фрагмент и юзер-тень — не случайность. Это окно уязвимости. И вектор на Заводской ломбард — не просто наводка, а потенциальная точка перегрузки.

Но сначала — рутина. Сначала — заземление через код. Он открыл редактор, начал писать скрипт для фильтрации фантом-фрагментов. Пальцы летали по клавиатуре, превращая хаос в строки кода. Каждая строка — как щелчок зажигалки: резкий, заземляющий, реальный.

Где-то в глубине сознания снова всплыл тот фрагмент: тёплый свет запах хлеба смех тишина Максим резко закрыл глаза, сделал глубокий вдох табачного дыма, который просочился в кабинет из коридора. Сброс кэша. Окно уязвимости закрыто. Ресурс заземления: 55%.

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

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

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

Пачка в кармане почти опустела. Ресурс заземления: 15%. Максим щёлкнул зажигалкой в последний раз, глядя на тонкую струйку дыма, которая медленно растворялась в воздухе. Завтра будет новый день. Новые метрики. Новые баги. А пока — заземление. Тишина, купленная за дым и пепел.

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

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

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

«Совпадение?» — подумал он, привычно раскладывая варианты. Вариант первый: юзер-тень и ломбард на Заводской никак не связаны, это два независимых бага. Вероятность: 23%. Вариант второй: ломбард — точка сбора аномальных фрагментов, юзер-тень — курьер. Вероятность: 67%. Вариант третий: кто-то целенаправленно тестирует на нём устойчивость буфера реальности к «тишине». Вероятность: 10%, но угроза выше.

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

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

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

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

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

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

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

— Слушай, — он повернулся к узлу-оператору, — у тебя антишум есть? Хоть огарок? Узел-оператор молча протянул наполовину пустую пачку. Максим взял сигарету, прикурил. Дым ударил в ноздри — резкий, горький, родной. В голове сразу стало тише. Метрика тишины поднялась до 75%.

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

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

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

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

А пока — только дым, только щелчок зажигалки, только реальность, которую нужно чинить по кусочкам.

Глава 2. Офис и корпоративная симуляция.

Щелчок зажигалки. Дым заземлил систему. Ресурс заземления: 12 минут (с учётом окурка от узла-оператора). Уровень тревоги: 78%. Приоритет шума: высокий.

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

Слева — Лина, аналитик сектора 4B. Улыбается ровно, как скрипт после неудачного деплоя. Губы двигаются по заранее заданному паттерну, глаза — пустые, будто кто-то заглушил канал. Битрейт тревоги зашкаливает: зрачки сужены до минимума, пульс на виске выдаёт 112 ударов. Она произносит дежурную фразу: «Мы стабилизировали компрессию памяти по ключевым узлам». Слова звучат чётко, без эха, без интонации — будто их прогнали через инстанс-фильтр и выжали всю человечность.

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

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

— Итак, резюмирую, — голос Лины звучал так, будто его прогнали через фильтр компрессии памяти. — Мы видим положительную динамику по снижению коэффициента выгорания в секторе 3C. — Положительная динамика? — Максим не повышал голоса, просто взял на мушку метрику. — В логах сектора 3C за последние 24 часа — три всплеска шума выше 85%. Это не динамика, это баг. Лина не моргнула. Улыбка осталась той же — ровной, неживой. — Данные верифицированы узлом-оператором центрального периметра, — ответила она, будто зачитала строку из мануала. — Верифицированы кем? — Максим чувствовал, как растёт приоритет шума. — У центрального периметра вчера отвалился кэш воспоминаний. Я сам откатывал транзакцию вручную. Борис наконец оторвал взгляд от невидимого лога. — Ты слишком цепляешься к деталям, — сказал он, и в голосе прозвучала странная пустота — как будто кто-то вырезал из фразы все эмоции, оставив только каркас слов. — Главное — общий вектор. — Общий вектор без деталей — это фантом-фрагмент, — отрезал Максим. — Он выглядит убедительно, пока не прогонишь через фильтр. А потом — рекурсивный цикл и перегрузка буфера реальности. В комнате повисла пауза. Не тишина — именно пауза: та самая, когда эхо временно отступает, чтобы ударить с новой силой. Максим чувствовал запах озона — так пахло там, где недавно прошло выгорание. И поверх — стерильный запах офиса, будто кто-то слишком усердно пытался заглушить канал памяти.

Лина снова улыбнулась той же неживой улыбкой. — Предлагаю перейти к следующему пункту повестки, — сказала она, и слова прозвучали как команда, введённая через терминал. Максим не стал спорить. Он просто поднял логи сектора 4B — те самые, где вчера кто-то слил лог тревоги через кэш воспоминаний. На экране поползли строки: всплески шума, пики выгорания, аномальные транзакции с «тихими» следами. — Вот это — следующий пункт, — он ткнул пальцем в строку с аномалией. — Кто-то гоняет через сектор мусорный скрап с подложкой. Подложка — чистый след, как у того юзера-тени. Борис нахмурился, будто увидел в логе баг, который не мог объяснить. — Это в зоне ответственности эхо-ловцов, — пробормотал он. — Мы тут при чём? — При том, что эхо-ловцы вчера не вышли на смену, — сухо ответил Максим. — Патруль-глушилка зафиксировал: три инстанса не прошли валидацию. Их кэш воспоминаний оказался пустым. Остаток эха — ноль. Это не выгорание. Это — он замялся, подбирая термин, — это стирание. Лина наконец перестала улыбаться. Лицо на секунду потеряло чёткость, будто картинка пошла рябью. — Не надо нагнетать, — сказала она, но голос дрогнул — первый живой звук за всё совещание. — У нас есть план. Мы его деплойнем. — План без учёта аномалий — это патч, который только расширит окно уязвимости, — Максим закрыл планшет. — Если мы сейчас не вскроем узел, завтра придётся зачищать весь сектор. Он чувствовал, как нарастает приоритет шума. Где-то сбоку пробивался чужой обрывок: чей-то смех, запах жареной картошки. картошка смех эхо эхо шумОн снова щёлкнул зажигалкой, но пачка почти пуста. Ресурс заземления: 4 минуты.

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

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

В курилке было полупусто. У окна стоял инстанс из техподдержки — вечно сонный, с тёмными кругами под глазами, будто кто-то забыл развернуть периметр тишины. Он курил, выпуская дым тонкими струйками, которые тут же растворялись в воздухе. — Слышь, — бросил он, не глядя на Максима. — Говорят, есть штука, которая не фонит. Сигнатура «до». Чистая. Без остатка эха. Максим сделал вид, что пропустил фразу мимо ушей. Но в логе тут же появилась новая запись: «Термин подтверждён в поле. Источник — инстанс техподдержки. Приоритет — высокий». — Что за штука? — спросил он как бы между делом, будто речь шла о баге в коде. Инстанс наконец поднял глаза. Взгляд у него был мутный, будто сквозь него пробивалось чужое эхо. — Да кто её знает, — он затянулся, выдохнул дым. — То ли патч в реальность, то ли дыра в буфере. Говорят, на Заводской её меняют. Ломбардщик берёт, но цену не озвучивает. Просто кивает — и фрагмент исчезает. Остатка эха нет. Вообще. — А откуда она берётся? — Максим старался говорить ровно, без эмоций. Меньше эмоций — меньше вектор утечки. — Откуда берётся — никто не говорит, — инстанс затушил окурок. — Но те, кто её скидывал они потом как будто тише становятся. Не фонят. Слышишь? Раньше у них шум-фактор был под 80%, а потом — тишина. Не та, что от антишума, а настоящая. Как будто память перестала выгорать. тишина не фонит эхо ноль системная ошибка шумМаксим встряхнул головой, сбрасывая наваждение. — Звучит как баг, — сказал он. — Или патч, — пожал плечами инстанс. — Ты же бывший опер. Ты должен понимать: если что-то не оставляет эха, это либо эксплойт, либо точка перегрузки. Он вышел, оставив после себя только запах табака и тонкую струйку дыма, которая медленно растворялась в воздухе.

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

Уровень тревоги: 82%. Ресурс терпения: 3 минуты.

Он вернулся в кабинет. Узел-оператор сидел на том же месте, будто и не уходил. — Ну что, как совещание? — спросил он, не поднимая головы. — Как всегда, — Максим сел за терминал. — Скрипты, баги, фантом-фрагменты. — Понятно, — кивнул узел-оператор. — А ты чего такой напряжённый? — В курилке инстанс из техподдержки бросил фразу: «Говорят, есть штука, которая не фонит. Сигнатура до». Узел-оператор замер. Пальцы застыли над клавиатурой. — И что? — голос у него стал тише, будто он боялся, что эхо подслушает. — Я в лог занёс, — Максим открыл редактор кода. — Надо доработать скрипт фильтрации. Теперь он должен ловить не просто аномалии битрейта, а «тихие» следы. — Опасно, — узел-оператор наконец посмотрел на него. — Если система увидит, что мы ищем «тишину», она может заблокировать канал. — Если не искать — она сама нас найдёт, — сухо ответил Максим. — Вчера ты видел лог сектора 4B. Там кто-то уже гоняет «тихие» следы через мусорный скрап. Если мы не вскроем узел сейчас, завтра придётся зачищать весь периметр. Он начал писать код. Строки ложились на экран, как щелчки зажигалки — резкие, заземляющие, реальные. Он добавил новый фильтр: теперь система должна была ловить фрагменты с аномально низким эхом, с битрейтом, близким к нулю. Запустил тестовую транзакцию.

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

Узел-оператор смотрел на экран, будто видел там что-то, чего не хотел видеть. — Ты уверен, что это нужно? — спросил он. — Уверен, что не делать этого — опаснее, — Максим сохранил скрипт. — Если кто-то научился маскировать аномалии под мусорный скрап, значит, буфер реальности можно пробить через «тишину». А это уже не баг, это эксплойт.

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

— Слушай, — он повернулся к узлу-оператору. — У тебя ещё антишум есть? Тот молча протянул наполовину пустую пачку. Максим взял сигарету, прикурил. Дым ударил в ноздри — резкий, горький, родной. В голове сразу стало тише. Метрика тишины поднялась до 75%.

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

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

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

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

Воздух на улице пах озоном и пылью — так всегда пахло там, где недавно прошло выгорание. Максим достал мини-логгер, ещё раз проверил вектор: ломбард на Заводской, приоритет — критический. Он знал: если там действительно меняют «тихие» фрагменты, это меняет всю экономику памяти. Если тишина не оставляет эха, значит, она не выгорает. А если она не выгорает, значит, это не валюта — это дыра в системе.

Уровень тревоги: 85%. Ресурс заземления: 5 минут (с учётом последней сигареты).

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