— Зачем?
— Рики, бога ради, могу я его увидеть или нет?
— Можешь, конечно, можешь. Все версии кода в директориях через слэш после кода. Они запаролированы.
Я нашел нужную директорию. Но войти в нее не смог.
— Какой пароль, Рики?
— Пароль — л-а-н-г-т-о-н, все буквы строчные.
— Хорошо.
Я ввел пароль. И вошел в директорию, в которой были собраны все модификации программы, с указанием размера файла и даты изменений. Все документы были больших размеров. Это означало, что в них — все программы для разных аспектов системы роя. Потому что коды самих частиц обычно бывают маленькими — всего несколько строчек, на восемь-десять килобайт, не больше.
— Рики.
— Да, Джек.
— Где коды частиц?
— Их там нет?
— Черт тебя дери, Рики, перестань увиливать!
— Слушай, Джек, это не я занимался архивами…
— Рики, это рабочие файлы, а не архивы, — сказал я. — Скажи мне, где они?
Он помолчал немного, потом сказал:
— Там должна быть субдиректория Си-Ди-Эн. Коды в ней.
Я прокрутил страничку вниз.
— Вижу.
В этой директории я нашел список файлов, все — очень маленькие. Судя по датам модификаций, они начали создаваться около шести недель назад. А за последние две недели ничего нового не появилось.
— Рики, вы не меняли коды последние две недели?
— Да, примерно столько.
Я открыл самый последний документ.
— Вы делали краткие сводки?
Когда эти ребята работали в моей группе, я всегда требовал, чтобы они составляли краткое описание структуры программы на обычном языке. Такую сводку просмотреть гораздо проще, чем документацию внутри самого программного кода. К тому же, когда требуется сжато описать структуру программы, нередко удается решить логические проблемы.
— Они должны быть там же, — сказал Рики.
Я увидел на экране следующее:
/*Инициализировать*/
Для j=1 до LxV выполнить
Sj=0 /*установить начальный запрос до 0/
Закончить для
Для i=L до z выполнить
Для j=1 до LxV выполнить
Sij = (состояние (x,y,z))/*пороговые параметры агента*/
0ij = (требуемые (Сj,Нj))/*требуемые параметры агента*/
Реакция = 0/*начало реакции агента*/
Зона = z(i)/*начальная зона, не изученная агентом*/
Охват = 1/*активация перемещения агента*/
Закончить для
Закончить для
/* Главное*/
Для k1=1 до RVd выполнить
Для tm=1 до nv выполнить
Для S=L до j выполнить/*выслеживание окружающего*/
0ij = (требуемые (Сj,Нj))/*требуемые параметры агента*/
Sij (состояние (x,y,z))/*агент находится в движении*/
SikL = (действительное(x,y,z))/*отслеживать ближайшие агенты*/
Я какое-то время изучал записи, пытаясь понять, что они в них изменяли. Потом я пролистал вниз, до описания окончательного кода, чтобы посмотреть, как в конце концов они это выполнили. Но самого главного кода в папке не было. Вся совокупность поведения частиц была обозначена как объект со ссылкой на нечто под названием «комп. стат.».
— Рики, — сказал я. — Что такое «комп. стат.»? Где это?
— Должно быть там…
— Его здесь нет.
— Ну, я не знаю… Может, его скомпилировали.
— Но мне-то от этого не легче, правда? — Скомпилированный код прочитать невозможно. — Рики, я хочу увидеть этот чертов модуль. В чем проблема?
— Да нет никакой проблемы… Мне придется его поискать, вот и все.
— Хорошо…
— Я сделаю это, когда вы вернетесь.
Я посмотрел на Мае.
— Ты можешь найти код?
Она покачала головой. По выражению ее лица я понял, что кода мне не видать как своих ушей, что Рики будет придумывать все новые и новые отговорки, чтобы не допустить меня к нужной информации. Я только не понимал почему. В конце концов, я ведь затем сюда и приехал, чтобы помочь им разобраться с кодом. Я эксперт в этой области.
В соседней комнате Рози и Дэвид копались на полках с запасным оборудованием в поисках радиопередатчиков. Пока ничего подходящего не нашлось. Чарли Давенпорт в противоположном углу комнаты громко пукнул и крикнул:
— Бинго!
— Господи, Чарли! — пробормотала Рози.
— Нельзя долго удерживать газы внутри, — заявил Чарли. — Это вредно для здоровья.
— У меня здоровье портится от твоего присутствия, — сказала Рози.
— Ну, извини, — Чарли поднял руку и показал какой-то блестящий металлический предмет. — Тогда, наверное, тебе не нужен вот этот выпускной клапан с дистанционным управлением?
— Что? — переспросила Рози и повернулась к Чарли.
— Ты что, издеваешься? — возмутился Дэвид и пошел к Чарли, чтобы рассмотреть его находку.
— Причем, заметьте, он рассчитан на давление до двадцати атмосфер.
— Как раз то, что нам нужно, — сказал Дэвид.
— Если только ты его не испортишь, — подковырнул Чарли.
Дэвид взял клапан, и они все вместе пошли к умывальнику. Там все еще возилась Мае, в толстых резиновых перчатках.
— Дайте мне закончить, — попросила она.
— Я буду светиться в темноте? — спросил Чарли улыбаясь.
— Только твои неудержимые газы, — ответила Рози.
— Они и без того светятся. Особенно если ты их подожжешь.
— Господи, Чарли…
— Ты же знаешь, в газах полно метана. А метан при горении дает интенсивное синее пламя, — Чарли захохотал.
— Я рада, что ты полностью собой доволен, — сказала Рози. — Потому что всем остальным ты давно опротивел.
— Ой-ой-ой! — горестно воскликнул Чарли и прижал руку к сердцу. — Я умираю, умираю…
— Не подавай нам несбыточных надежд.
У меня в наушнике затрещало.
— Эй, ребята! — это снова был Бобби Лембек. — Скорость ветра упала до шести узлов.
Я сказал:
— Хорошо, — и, повернувшись к остальным, добавил: — Давайте заканчивать, ребята.
Дэвид проронил:
— Мае нас всех задерживает. Когда она справится, мы установим этот клапан.
— Давайте разберемся с клапаном уже в лаборатории, — предложил я. — Собирайте вещи, ребята.
Я подошел к окну и выглянул наружу. Кусты можжевельника по-прежнему клонились под порывами ветра, но песчаной поземки больше не было.
В наушнике раздался голос Рики:
— Джек, уводи оттуда свою чертову группу!
— Мы уже собираемся уходить, — ответил я.
Дэвид Брукс деловито сказал:
— Не имеет смысла уходить, пока мы не нашли клапан, который точно подойдет к бутыли…
— По-моему, нам все-таки лучше уйти — закончили мы или де закончили, — сказала Мае.
— И какой в этом смысл? — возразил Дэвид.
— Собирайтесь! — скомандовал я. — Перестаньте препираться и собирайте вещи — прямо сейчас.
Бобби передал по рации:
— Скорость ветра — четыре узла и продолжает снижаться. Быстро.
— Все, уходим, ребята, — сказал я и повел всех к двери.
Но тут вмешался Рики:
— Нет.
— Что?
— Вы не можете уйти прямо сейчас.
— Но почему?
— Слишком поздно. Они уже здесь.
День шестой. 15:12
Все бросились к окну. Мы стукались головами, пытаясь выглянуть наружу и осмотреться во всех направлениях. Насколько я смог увидеть, горизонт был чист. Я не заметил вообще ничего подозрительного.
— Где они? — спросил я.
— Приближаются с юга. Мы видим их на мониторах.
— Сколько их? — спросил Чарли.
— Четыре роя.
— Четыре!
Главный производственный корпус был как раз к югу от нас. А в южной стене склада не было ни одного окна.
Дэвид сказал:
— Мы ничего не видим. Насколько быстро они приближаются?
— Быстро.
— Нам хватит времени добежать до входа?
— Не думаю.
Дэвид нахмурился.
— Он «не думает»… Господи Иисусе…
И прежде чем я успел что-то сказать, Дэвид бросился к наружной двери склада, распахнул ее настежь и вышел на солнце. Сквозь прямоугольник дверного проема мы видели, как он смотрит на юг, заслонившись ладонью от слепящего солнца. Мы все заговорили одновременно: