备用机房的时钟跳过凌晨四点。林序合上日志本,封面磨出了毛边,边角露出灰色的纸板。
顾远坐在终端前,左手压在右肩下方。这个姿势保持了两个小时,他的颈椎发出过两次轻微的响声,两次他都没有动。屏幕上是一条系统在两分钟前自主输出的语句:“第一百一十四条已填充。”
没有进程编号。没有触发条件。只有这一行字。
陈路调出索引记录。第一百一十四条子进程从议程第七项表决通过那一刻就被预留——创建时间精确到秒,与表决结束的电子戳完全重合。内容栏十六年来一直是空白。现在空白还在,条目状态从“等待”变成了“已填充”。
“谁填的?”陈路问。他把索引页打印出来,纸张带着打印机滚筒的余温。
顾远追溯操作记录。他的手指在键盘上敲了三下,停住。填充动作来自档案室那台哑终端——三个小时前王群推开门、确认锁舌闭合、退出去时肩膀擦过的那台。终端在凌晨三点五十九分向系统发送了一个字节。内容栏显示:空。
“空字节,”顾远说。他把追溯结果投影到白板上方的屏幕上。“填充空白的是空白本身。”
伊琳将严衡留下的地质应力图铺在桌上。图边卷起的两角被她用水杯和传真机压住。第九条断层指向四号断层北端,铅笔线一笔画成,中间没有橡皮擦过的痕迹。与最新监测数据吻合——她在凌晨三点收到的那份自动报告上,四号断层北端应力值越过黄色阈值。
她从笔筒里抽出一支红铅笔,在图上标注了哑终端发送空字节的时间点。三点五十九分。然后从传真机里抽出刚到的中东加压站自动报告。纸还是热的。
四号断层北端在凌晨四点零一分出现新的微震序列。震级不高,但波形特征与平台期记录的所有序列都不同。
“六十一秒,”伊琳说。她用红笔在时间点和微震记录之间画了一条线。“从空字节到微震。严衡在另一个本子里写过,制度动作与地质响应的间隔从二十四小时压缩到七小时,再到四十七分钟。现在是六十一秒。”
周启明从档案室回来。他在走廊里走了四十七步——他自己数了。手里拿着沈默从门缝塞出的第二张纸。纸是从笔记本上撕下来的,左边有锯齿状撕痕,与第一张取自同一本。纸上只有一行字,笔迹与第一张相同:“他们在等你们先开口。”但这行字下面多了一个时间戳——凌晨三点五十九分,与哑终端发送空字节的时间完全一致。
墨迹的颜色比第一张略深。沈默写这几个数字时,笔尖在纸上停了一下。时间戳的最后一个“分”字,右下角有一个极小的墨点。
“沈默知道终端会发送空字节,”周启明把纸放在桌上,用食指按住时间戳的位置。“但他不是操作者。”
伊琳给他让出半个身位。他站到她旁边,肩膀几乎擦到她的袖子。没有人说话。备用机房里只剩下终端风扇转动的声音——一种低沉的、持续了十六年的嗡鸣。
顾远调出门禁记录。他的操作速度比平时慢,每一条查询只开一个窗口,读完再开下一个。三点五十九分,档案室门锁没有动作。室内空气质量传感器仍在关机状态。回风阀开度维持百分之四十三点七——这个数值从王群推门后就再没变过。没有任何人在那个时间点触碰任何设备。
“那台终端被预编程了,”顾远说。他摘下眼镜,用衬衫下摆擦了一下镜片。这是他今晚第三次擦眼镜。“十六年前就设定好了触发条件。”
他调出陶远的架构文档附录。第四解释框架接口定义页,页码是手写的——陶远用铅笔在每一页右上角标了数字。顾远翻到第四十七页,页脚有一行铅笔字被擦去后重新写过。橡皮擦的痕迹朝一个方向,力度均匀——擦的人不着急。擦去的痕迹显示原句是“当议程成为定义者”。重写后的句子是“当空条款被填充之时”。
林序凑近屏幕。他的目光从重写的句子移到被擦去的铅笔痕迹上。痕迹下面还有一层更淡的笔迹,铅笔芯的颜色比上层略灰,几乎与纸纤维融为一体。他将页面放大到极限,逐字辨认。机房的光线在他脸上投下一层淡蓝色的光。他念出原句:“当议程成为定义者。”顿了一下。“定义者必须面对自己的空白。”
陈路在静默预警库中新增一条记录。他打字的节奏不快,每个字敲下去之前都想一下。议程第七项表决通过时,系统子进程编号从一百一十三跳至一百一十五。中间缺了一个数字。三条解释线各自记录的同一事件——议程第七项表决——在索引中占据相邻的三行。技术线的记录标注了表决的系统时间。制度线的记录附注了表决票数。资源线的记录只写了一句话:“表决通过时四号断层微震频率下降百分之十二。”陈路在这三行末尾加上同一个备注:第一百一十四条由空白自行填充。
他保存记录时,系统弹