沈砚盯着手机屏幕,那条短信只剩下最后几秒钟的留存时间。四十三秒,他默数着,屏幕的光映在他的瞳孔里,像一簇微弱却不肯熄灭的火苗。 别去季成蹊办公室。 六个字,没有标点,没有落款,没有区号。发送号码他从未见过,甚至格式都有些古怪——像是虚拟号码池里随机抽取的那种,前缀带着一串他认不出的数字组合。他试着回拨,听筒里传来一段机械女声:您拨打的号码是空号。 空号。他放下手机,后槽牙咬紧了一瞬,又缓缓松开。六月佛山的夜风带着一种黏稠的湿热,从走廊尽头那扇没关严的窗户渗进来,缠在他裸露的小臂上,汗毛微微竖起。凌晨三点十七分的研发中心园区,安静得像一个被抽走了所有声带的巨大容器。他站在D栋一层与二层之间的消防通道拐角,头顶的应急灯发出那种低功率LED特有的冷白光线,把墙壁上张贴的消防疏散图照得边缘清晰,像一页被强行摊开的教案。 他把手机揣进裤兜,又摸出来,看了一眼时间。3:18。从收到那条短信到现在,过去了将近四分钟,他没有任何动作,没有往电梯方向走一步,也没有折回宿舍楼。他只是站在那里,像一尊被临时浇筑进楼梯拐角的石膏像。远处传来某种金属管道热胀冷缩的声音,嗡嗡地响了两秒就断了。 他想到面馆里的那个时刻,那个被他和孙亮同时观察到的手掌压桌动作。孙亮说那像是惯性,像是习惯性动作。可他现在越来越怀疑,那个动作是某种信号,一种触发机制。他当时没有在意,现在回想起来,孙亮说完三秒停步法之后,几乎是在同一瞬间——或者更准确地说,在那句话落地的零点几秒之后——他的手机就震了。 别去季成蹊办公室。 沈砚深吸一口气,喉结滚动。他抬手按了按太阳穴,指尖能感觉到皮肤下面突突跳动的血管。他现在的状态不适合冲动决策。这条短信的发送者要么是知道他正在去季成蹊办公室的路上——那意味着有人在跟踪他,要么是实时监控着他的行动轨迹;要么就是纯粹出于巧合,那条短信其实针对的是另一件事,另一个他还没想到的语境。 他低头看了看自己握在左手里那台拍过空调外机的手机,相册里还躺着两张照片。一张是A座北侧外墙那台被撬动过的空调外机,固定螺丝的垫片偏移了大约四毫米,外机底部的金属挡板有一条肉眼可见的缝隙,缝隙里塞着一截灰色的绝缘胶带,胶带边缘沾着细小的灰尘颗粒,像是被手指反复按压过许多次。另一张是停车场门禁柱上的那张检修通知单,日期落款是五月十一日,通知内容写着A座中央空调系统例行检修,预计工期三日,影响范围为A座三至六层北侧办公区。 可五月十三日凌晨的服务器卡顿和监控画面中断,正好发生在通知单上标注的检修时间段内。他当时没有把这两件事联系在一起,但现在站在消防通道里,那股从A座外墙带回来的灰尘味似乎还在他鼻腔里打转,混合着消防通道里常年积攒的霉味和应急灯电路板加热后的塑料气息,让他觉得胃里一阵轻微翻涌。 他做了一个决定。 他不上楼了。 至少现在不上。 他掏出手机,打开与季成蹊的微信聊天界面。最后一条消息还是昨天下午,季成蹊问他面馆那边的测试情况怎么样,他回了一句“还在验证”。手指悬在输入框上方停了将近十秒,屏幕的亮度被他调到最低,但还是刺得他眼睛发酸。他打字:季总,今晚整理的数据有点多,我明早九点半左右过来找您汇报,您方便吗? 发出去。绿色的气泡浮在屏幕左侧,他盯着看了一秒,锁屏,把手机翻了个面扣在掌心里。他不想再收到任何即时通知的干扰,那种震动的感觉现在让他觉得掌心发麻。 他沿着消防通道往下走。楼梯是那种老式的水磨石台阶,边缘被无数鞋底磨得微微泛着光,踩上去有一种细密的颗粒感从鞋底传上来。他数着台阶,十二级到转角平台,再十二级到一楼。数字让他觉得安心,像是在混乱的信息流里抓住了一把规律。走到一楼出口的时候,他把手机翻过来看了一眼,季成蹊没有回复。对话框安安静静的,像一潭死水。 但他又收到了另一条短信。 这一次,距离上一条只过去了十一分钟。3:29。 空调已修好,别担心。 沈砚的脚步停在了D栋一楼大堂的旋转门内侧,门槛的感应器发出嘀的一声轻响,头顶的筒灯照在他微微发亮的额头上。他把短信读了三遍,每个字都认识,连在一起却让他脊背发紧。空调已修好。谁发的?为什么偏偏在他发现空调外机异常之后发这个?他拍的照片还没来得及发给任何人,他甚至没有在手机上做过任何关于那个模块的笔记。可这条短信像是读过了他的相册一样精准。 他走出旋转门,夜风扑面而来,比刚才在走廊里更浓更沉,带着草坪浇灌后残留的潮气和泥土味。园区的路灯是那种偏黄的钠灯,光线落在柏油路面上晕开一片暖色调的模糊光斑,和他的心境形成了一种尖锐的反差。他的影子被拉得很长,斜斜地铺在地上,像一个沉默的陪伴者。他沿着D栋前面的步行道往宿舍楼方向走,步伐不快,但每一步都踩得很实,鞋底接触地面的声音在空旷的园区里被放大了数倍。 手机又震了。 他停下来,几乎是条件反射地低头去看。 别去运维机房。 第四条。就在他走过C栋侧面那条窄巷的入口时,手机的震动像一条无形的线牵住了他的动作。他站在巷口的边缘,左手边是一排无人值守的快递柜,柜门的蓝色烤漆在路灯下泛着冷光。他没有立刻解锁屏幕,而是先抬头看了看四周。C栋的窗口大部分都是黑的,只有三楼靠西侧的那个窗户透出一线微弱的白光,像是有人在用笔记本电脑加班,亮度不高,隔着一层半透明的百叶窗帘,只露出一条细窄的光缝。 有人在看他吗? 他把手机举起来,假装在看屏幕,实际上余光扫过了周围能藏人的每一个角落——垃圾桶后面,灌木丛的阴影里,停车场那排停得歪歪扭扭的电瓶车之间。什么都没有。夜太安静了,安静到他甚至能听见自己T恤布料摩擦肩胛骨的声音。 他解锁了手机。短信内容和前面几条如出一辙,没有主语,没有解释,只有一句简短的指令。别去运维机房。运维机房在B座地下二层,和季成蹊办公室在A座十九楼完全是两个方向。发送者在阻止他去两个完全不同的地点。这让他产生了一个荒诞的猜想——也许这个发送者并不是在保护他,而是在引导他。先阻止他去A座,再阻止他去B座地下,像是用排除法在逼迫他走向唯一剩下的那个方向。 那个方向是什么? 他攥紧了手机,指节微微泛白。夜风吹过他的耳廓,带走了皮肤表面的温度,留下一片凉意。他忽然意识到,自己从离开面馆到现在,差不多五个小时没喝过水了,嘴唇干得有些发涩,舌尖舔过唇角的时候尝到一丝若有若无的铁锈味。 他继续往宿舍楼走,但心里已经不全是回去睡觉的念头了。他兜里揣着两张照片,脑子里装着三条短信,还有面馆里那个手掌压桌的动作,还有A座外墙那道被撬开的金属缝隙,还有五月十三日凌晨那接近四十分钟的监控空白。这些碎片在他脑海里转着圈,像一种卡在程序死循环里的数据流,每一次运转都输出同样的结果——有人在掩盖什么,有人提前一个月就在准备,有人现在正在看着他。 他走进宿舍楼大堂,电梯门开的时候发出那种老旧的钢丝绳摩擦声,像某种大型动物的低吟。他按下七楼,电梯厢缓缓上升,楼层数字一格一格跳动。他盯着数字面板,忽然想起了什么,猛地掏出手机翻到相册里那张空调外机的照片,把画面放大,再放大,直到像素开始模糊。他在外机底部那块金属挡板右下角的位置,看见了一个极细微的刻痕。 不是划伤。是刻上去的,像某种标记或者编号,笔画很浅,浅到他之前拍完根本没注意到。他把照片亮度调高,试图辨认那串刻痕的轮廓。像是三个数字,或者两个字母一个数字,因为角度问题被外机自身的阴影遮挡了一半。他的心脏加速跳了两下。 电梯叮一声停在七楼。他走出轿厢的时候,走廊里声控灯亮起来,冷白色的灯光照在走廊尽头那扇半掩着的窗户上,窗帘被风鼓起一个弧度,又落下去。他走到自己房门前,钥匙插进锁孔的时候他犹豫了一瞬,侧耳听了一下房间里面的动静。什么声音都没有,静得能听见门缝底下空调冷气渗漏的气流声。 他打开门,没有开大灯,只按了玄关处那盏暖色的小壁灯。光晕很窄,只够照亮门口巴掌大的区域,剩下的房间淹没在阴影里。他反手关上门,锁了两道,然后把背包卸下来放在鞋柜上,整个人靠着墙壁缓缓滑坐下去,坐在门口的地垫上。地垫是那种粗糙的椰棕材质,硌着大腿外侧的皮肤,有点扎。但他没有站起来挪到沙发上的力气了,或者说,他不确定自己现在起身走向房间深处的时候,会不会在黑暗里碰到什么不该碰到的东西。 他拿出手机,翻到通讯录,找到方睿的头像。凌晨三点四十一分。他知道这个时间给别人打电话是不礼貌的,但他顾不上了。他按下了拨号键,把手机贴在耳边,听着那一声一声规律的长音。 嘟——嘟——嘟—— 响到第五声的时候,对面接了。 “……喂?”方睿的声音带着浓重的睡意,像是在两秒之内从深度睡眠里被硬生生拽出来,尾音拖着一种黏糊糊的沙哑。“沈砚?你搞什么……几点了……” “抱歉吵醒你。”沈砚的声音很轻,但语速很快,带着一种压抑着的急切,“方睿,我问你个事。五月十三号夜班的OA登录记录,你确定那条登出时间是正常操作吗?” 电话那头沉默了两秒。然后是窸窸窣窣的声响,像是方睿在翻身坐起来,或者从枕头底下摸眼镜。他的声音清醒了一些:“……不是跟你说过了吗,那条记录的用户名是李振鹏,但登出时间凌晨两点四十七分,登入时间前一天晚上十一点十五分,中间有将近三个半小时的操作记录。可李振鹏那天打的是纸质考勤卡,卡上记录他当晚请假了,根本没来。” “纸质考勤卡上有没有签退时间?” “……你等一下。”方睿的声音远了,像是在把手机放在枕头上去拿什么东西。沈砚听见翻纸页的声音,厚厚一沓纸张被快速翻动的哗啦响。过了一会儿方睿回来了,“我手边只有他那张卡的复印件,正反面都有。正面打卡时间是五月十二号下午五点三十一分,反面五月十三号早上八点零二分——中间是空白。没有夜班打卡记录。他那张卡只刷了两次,而且很明显,录入系统的时候被人手工填过——字迹和别的打卡记录不太一样,墨水的渗透度也有区别。” 沈砚闭上眼睛。黑暗里他的眼皮内侧浮现出那些冷色调的光斑,像是方睿说的话在他视网膜上投下了可视化的数据图表。他终于把那个一直悬在嘴边的猜测说了出来:“所以五月十三号凌晨,有人用李振鹏的账号登录了OA,操作了将近三个半小时,然后正常登出。而李振鹏本人根本没有到岗。” “对。” “那那条登出记录的时间,两点四十七分——”沈砚停顿了一下,“和监控画面恢复的时间差多少?” 电话那头的方睿似乎是愣住了。他听见方睿呼吸粗重了一拍,紧接着是手指敲击键盘的声音,也许是方睿在用笔记本电脑查什么东西。过了大约十五秒,方睿的声音重新响起来,这次彻底清醒了,没有一点睡意的残余:“……监控日志显示五月十三号凌晨的恢复时间戳是两点五十一分。差四分钟。” 四分钟。沈砚在心里把这个数字反复咀嚼了几遍。监控中断了三十八分钟,从两点零九分到两点五十一分。而李振鹏账号的登出时间是两点四十七分。那四分钟的间隔意味着什么呢?操作者登出系统之后,监控才恢复。是故意留出来的安全缓冲吗?还是说,中断监控的操作和OA系统里的操作根本就是两拨人做的? 他把手机换到另一只耳朵,从地垫上撑起来一点,后背离开了冰凉的墙壁。房间里很暗,只有玄关那盏小壁灯的光晕落在他膝盖上,把他的牛仔裤染成一片浅橙色。“方睿,你明天……今天,你白天有空吗?” “怎么了?” “我想去看五月十三号的监控录像。完整的原始文件,不是经过压缩或者转码的版本。” 方睿沉默了一会儿。沈砚能听到那边饮水机加热的声音,咕噜咕噜地响着,像是方睿的房间也亮着灯。“录像在机房那边。安全管理组的权限我没法绕过,但是……”他压低了声音,“但是有一份备份,存在设备科那台工控机的本地硬盘上。我知道密码。那台机器连着空调监控子系统的传感器阵列,没人会去翻那个目录。” 沈砚的呼吸轻了。他忽然想起那条短信,别去运维机房。运维机房和方睿说的那台工控机位置不一样,工控机在设备科的办公室里,和运维机房隔了半层楼。短信阻止他去的是运维机房,也许正是因为这个——真正的线索根本不在运维机房。 “但是,”方睿接着说,“设备科那台机器不太好进。一楼有个门禁,刷卡才能过。我的卡刷不开设备科的门,而且那个区域晚上是红外布防的。” “白天呢?” “……白天反而简单。八点半之后有人工通道,门禁是长开的,进出的人多,不会有人注意你。但你得知道是哪台机器,左侧那个角落,贴着两张黄色便签纸的那台,系统登录密码是……” 沈砚从鞋柜上摸过来一支圆珠笔——那是他随手塞在背包侧袋里的——和一张外卖小票,把方睿报的那串字符记在了小票背面。笔尖划过纸张的声音在安静的房间里格外清晰,像某种密文被刻录进实物载体的一瞬间。 挂掉电话之后,他没有立刻站起来。他坐在原处盯着那张小票看了很久,小票上的字迹在壁灯暖光下发着淡灰色的光泽。圆珠笔写出来的字有种油墨特有的反光,他来回读了两遍,确定记对了。 然后他做了今天晚上最重要的一个决定:他决定不睡了。 他把手机调成静音,放在床头的枕头底下,然后拉上了所有窗帘。窗帘是很普通的那种涤纶遮光布,拉合的时候挂环和轨道摩擦发出连续的细碎声响。拉到最后一下的时候,他透过窗帘和窗框之间没有完全闭合的那道细缝,看见了园区远处那根高压线塔上的红色航空灯,一明一灭,节奏规律得像某种刻意设计过的信号灯语。 他坐到书桌前,把背包里的笔记本电脑取出来。开机的声音在安静的房间里像一声被压扁的叹息。他打开一个空白的文档,文档光标在左上角跳动着,等待着第一个字符。他花了几秒钟理清了思路,然后开始打字。 第一条,停车场通知单,日期不一致。 第二条,A座空调外机,非原厂模块。 第三条,五月十三日凌晨监控中断,与检修时间重叠。 第四条,李振鹏OA账号在未到岗情况下产生操作记录。 第五条,次声波预警参数变更日志。 他把五条线索列在屏幕上,然后用分隔线把下面隔开,继续打: 第六,新收到的短信——四条。1,别去季成蹊办公室。2,空调已修好。3,别去运维机房。4,…… 他忽然停住了。 第四条呢?第四条是哪条?他迅速翻了一下手机短信记录。空调已修好别担心是第二条,别去运维机房是第三条。那第四条,他刚才说漏了。他划开手机屏幕仔细看了一遍短信列表,除了这三条之外,最早的那条——别去季成蹊办公室——是第一条。那就是说,其实他目前一共收到了三条短信,而不是四条。 他删掉打错的数字,重新写: 第六,新收到的短信。共三条。内容分别为阻止前往季成蹊办公室、提及空调维修、阻止前往运维机房。 光标静静地闪着。他盯着那三条短信的内容,那种奇怪的感觉又重新浮现出来——第一条和第三条都是阻止性的指令,唯独第二条却是安抚性的信息。空调已修好,别担心。如果发送者是同一个人的话,那个人的风格不太统一。风格不统一意味着要么发送者不是同一个人,要么同一个人发送这些消息的目的并不单一,阻止和安抚也许只是同一套行动里的不同阶段。 他往后靠进椅背里,椅子的滚轮往后滑了几厘米,后腰撞在床沿上。他抬手揉了揉眉心,指尖的凉意让酸胀的眼眶稍微好受了那么一点。桌上的台灯是那种老式钨丝灯泡,光线偏黄,照射范围里能看到空气里浮着细小的灰尘颗粒,在他呼吸的气流里起起落落。 他继续往下打。第七条,五月十三日之后的空调检修记录——需要调取。 第八条,季成蹊在此次事件中的角色定位不明。 他手指顿了顿,犹豫了几秒,还是把第八条打上去了。他不想承认自己在怀疑季成蹊,但理性告诉他,所有的异常链条如果找不到一个共同的锚点,就无法解释。季成蹊是策划组负责人,对次声波预警参数有最高权限,季成蹊出差的时间点和外机模块安装的时间窗口是否吻合,他目前没有任何证据。但怀疑本身,需要被记录。 他刚把第八条写完,手机在枕头底下闷闷地响了一声。 是短信。 他伸过手去,摸出手机的时候,指尖碰到了被体温焐热的屏幕,亮度自动提了上来。他眯着眼看过去,短信内容让他后背一下子绷直了,像有一根针从脊椎底部沿着脊柱一节一节戳上来。 别查了。 三个字。没有前因,没有后果。发送号码是另一个完全陌生的数字串,格式和之前那三条都不一样。但沈砚已经不在乎号码了。他在乎的是这三个字的出现时机——恰好在他写完第八条之后。他猛地回头看向窗户,窗帘严严实实地拉着,那道细缝里的航空灯依然在规律地明灭,红得像一只悬在高处的眼睛。 可那丝缝隙的角度,只要站在楼外某个特定的位置,其实是可以看到书桌这扇窗户的。他看到台灯的光了吗?他看见沈砚在电脑前写东西了吗? 沈砚站起来,走到窗前,把窗帘那道细缝捏合拢了。手指捏着布料的时候他感觉布料里有一层薄薄的遮光涂层,凉凉的,滑腻的触感。他站了大约十秒钟,什么都没做,只是听着自己心跳的声音一下一下撞在耳膜上。 然后他低头看了一眼手机屏幕,那三个字还在亮着。 别查了。 他把手机翻过去扣在桌面上,屏幕朝下,彻底隔绝了那条短信的视线。他重新坐回椅子上,深吸一口气,指尖落到键盘上。屏幕上那个文档的光标还在第八条末尾跳动着,等着他继续往第九条走。 但他没有动。 他知道今晚他不会继续写了。有人在看着他的行动轨迹,有人在控制着他的信息获取速度。他需要换一种方式,需要更安静,更不显眼,更像个什么都没发现的人那样活着至少几个小时。 他关掉了台灯。整个房间陷入了彻底的黑暗。只有窗帘接缝处那一线微弱的光还在固执地渗进来,像是某种不肯彻底断联的信号。他合上笔记本电脑,没有关机,只是让屏幕休眠。然后他把椅子推到桌下,起身,赤脚走向床边。 他不打算睡了,但打算躺着。 手机在他的手心里微微发烫,像一颗被他攥住的小型心脏。他翻了个身面朝天花板,黑暗中什么也看不见,只有听觉被无限放大——窗外的风声,走廊里偶尔响起的管道水声,远处公路上极低沉的引擎嗡鸣。 以及,他想象中、或者真实存在的,空调外机里那个非原厂模块发出的、只有特定频段才能被听见的、电子元器件通电后的极微弱电流声。 他闭上眼睛。脑袋里那条文档上的八条线索像某种全息投影一样在黑暗里旋转着。它们之间的连接线还没有画完,但是每一条都指向同一个模糊的轮廓,那个轮廓越来越清晰。 他翻出通讯录,给方睿发了一条消息:明早设备科的打卡时间,是八点半对吧。消息发送出去,他等了不到一分钟,方睿回了一个字:嗯。 然后他删掉了这条对话记录。 接着,他又做了一件事。他给季成蹊发了一条消息:季总,不好意思,明天九点半的汇报我这边数据整理遇到了一个小问题,可能会晚一点到,大概十点半左右可以吗? 发出去之后,他锁屏,把手机放在枕头旁边。 他不知道季成蹊会不会回复。但他需要让所有人都以为,他今晚什么都不知道,什么都没发现,什么都没查,只是一个普通的、有点拖延症的下属,正常地调整了一次会议时间。至于真正去做什么,真正在哪一个小时里查什么——那是明天天亮之后的事情了。 他在黑暗里翻了个身,听见自己手肘压过床单的声音,细密的布料摩擦声在静夜里被无限放大。手机屏幕又亮了一瞬,他下意识地侧过头去看。 季成蹊回复了:没事,你整理好再来。 五个字,寻常得几乎让人松懈。但沈砚盯着那五个字看了很久,久到屏幕自动熄灭,房间里重新沉入黑暗。 然后他听见了窗外——楼下停车场的方向——传来一声极轻微的金属颤音。 像是一台空调外机的挡板,被人从外面轻轻合上了。