电调中心的门一开,热浪和刺鼻气味一起扑出来。
清晨五点二十,地铁总调度园区的天还灰着,B区机房外已经堆满消防罐和应急电缆。值班工程师脸色发青,手还在发抖:“不是明火,是烟雾报警连发。我们切备用电源,切换逻辑卡死,屏幕全部延迟三秒,调度台像被人按着喉咙。”
邱夜清边走边问:“列车状态?”
“首班车前窗口,正线没发车,但车辆段两组列车自动解锁失败,差点冲突。”
沈策脚步没停,先看顶上的喷淋,再看地上的水痕。喷淋头有水珠,却没有完全开启的痕迹,说明温感触发不成立,是烟感被误导。机房门口的回风格栅边,卡着一小团褐色纤维,像烧过的香灰结块。
他戴手套夹起那团灰,凑到鼻前一闻,立刻皱眉。
“不是电缆烧焦味,是人为配的烟。里面有槐炭和龙脑。”
邱夜清回头:“能确定?”
“先取样。再给我昨晚城隍庙断香和总阀站泵房残留物的样本。”
值班工程师把他们带进中控间。主屏上三十六个监控窗还在闪警报,时钟右上角不断抖动,从05:23跳回05:22,再跳到05:24,像被看不见的手来回拨。沈策盯了十秒,低声说:“他们做了两层攻击。第一层是烟雾制造火警,你们切换;第二层在切换窗口里篡改时钟源,让调度系统误判指令先后。”
工程师急道:“我们明明有授时冗余,怎么会被一套脚本拖住?”
“因为脚本不是目标,脚本只是烟。”沈策指向侧墙上的应急配线架,“有人在本地做了临时桥接,把外部时钟信号接进了你们的低压控制回路。你看到的是软件故障,本质是硬件被借道。”
邱夜清立刻下令:“封所有配线架,拆临时线,拍照取证,不允许任何人先复位。”
沈策走到配线架前,蹲下。最下层端口果然多了一段不在备案里的黑线,线头打着他在旧衣库见过的锁电结。黑线外皮有轻微油光,指腹一捻,沾着细粉。
“把便携光谱仪给我。”
技术员把设备递过去。沈策把粉末刮上载片,屏幕上很快跳出一串峰值。他把峰值与手机里保存的城隍庙断香数据对比,前四个主峰几乎重合。
龙脑、槐炭、硝化纤维素、微量豆蔻油。
邱夜清看不懂曲线,但看懂了沈策脸上的变化:“同一种配方?”
“至少同一类工艺。”沈策说,“城隍庙那‘第三炷断香’我一直觉得不对。它不是普通供香,是一种‘回火香’。点燃后会在中段形成脆裂区,既能制造断香错觉,又能在短时间释放高浓度烟。电调中心这团灰和它是同脉。”
“也就是说,第一案和第三局不是临时拼凑,是同一个供应链。”
“对。”沈策把取样袋封好,“写符的人可能在变,执行层可能在换,但物料链更难伪装。”
机房角落,消防员从回风井里拖出一只扁平金属盒。盒盖内侧贴着耐高温布,布面被针脚固定,针距细密,像缝衣针活。沈策看了一眼就明白:这就是“零号不上身”的缩小版,导电布不是穿在人身上,而是贴在设备上做信号桥接。
“照片、封存、单独运输。”他起身,“别让任何人先碰针脚。”
邱夜清边记录边问:“现在去哪?”
“法检中心,做成分谱全比对。我要一小时内拿到可用于搜查令的结论。”
六点四十,法检中心有机实验室。
离心机的嗡鸣像一拉直的线,把所有人的神经都绷着。沈策站在玻璃窗外,看着三份样本依次进气相色谱:城隍庙断香残段、总阀站泵房粉末、电调中心回风灰。屏幕曲线一条条爬升,峰值排列逐渐重叠,像三把钥匙慢慢卡进同一把锁。
实验员推门出来,把初检报告递给邱夜清:“三组样本主成分高度同源,配比区间误差小于2.5%。另检出一种少见黏结剂,叫‘松骨胶’,民用极少,常见于老式香品和祭器固定。”
沈策问:“松骨胶本地谁能稳定做?”
实验员摇头:“工业化大厂不会碰这东西,污染大、利润低。一般是小作坊手工熬。原料要用陈松脂和灰骨粉,工艺脏,产量不高。”
邱夜清已经让情报员接入市场监管库,键盘敲得飞快:“近两年在青岚登记、且采购松脂和骨粉的香料作坊,一共六家。排掉三家停业,剩三家:‘庆和香料店’、‘福临炉具坊’、‘云栈旧香作’。”
沈策盯着名单没说话,拿过纸笔写了三个字:第三炷。
“什么意思?”邱夜清问。
“城隍庙现场只有第三炷断,前两炷正常。做局的人不是要烧香,是要在‘第三’这个位置释放特定烟量。能做这种分段控燃的人,必须熟悉旧式香模分层。三家里谁还保留手工分层线?”
情报员快速检索后抬头:“云栈旧香作。老板早年给道观做法会香,工艺备案里有‘三段芯’。”
“地址。”
“城西老窑街,靠近废陶厂。”
沈策把报告折进文件夹:“走。”
七点二十,老窑街。
这条街白天像刚醒,卷帘门开一半,地上全是昨夜没扫净的灰。云栈旧香作的门脸不大,招牌木匾发黑,门口挂着“停业整修”的牌子,牌子却是今天新写的,墨还湿。
邱夜清抬手示意两侧封控,自己和沈策从正门进。门锁完好,但锁芯有新划痕,不像撬门,像反复快速开合留下的磨线。
店里比想象中净。净到不正常。
货架上只留空盒,地面被水拖过两遍,水里掺了漂白剂,连墙缝都在泛白。后厨熬胶间的灶还温着,铁锅里只剩一层黑褐色薄膜。沈策用刀片刮下一点,闻到熟悉的松脂焦甜味。
“他们半小时前还在这里。”他说。
邱夜清蹲在柜台前,拉开抽屉。抽屉里有订书钉、有旧发票封皮,有一本台历,但该有的账册不见了,电脑主机只剩外壳,硬盘位置空着,连数据线都被整齐剪断。
“不是临时逃跑。”她说,“是有计划搬空。”
沈策走到后间,看见墙上钉着一块木板,木板上挂过很多钥匙,现在只剩一个空钩。空钩旁边贴着小标签:三号炉。
他盯着“三号”两个字,忽然明白这家作坊为什么会出现在链条里。城隍庙的第三炷、总阀站第二局后的第三局、电调中心第三秒时钟抖动,对方在反复使用“第三”做触发位。云栈的三号炉可能就是那条物料链的起点。
“找到进货单了吗?”他问。
“没有正式账册。”技术员在里屋喊,“只有碎纸。”
沈策过去,看到碎纸被丢在冷却池里泡烂,能拼出的字很少:……三段芯……松骨胶……739……夜送……
邱夜清看着那串残字,声音很冷:“他们知道我们会来,而且知道我们会先找什么。”
“不止。”沈策指了指冷却池边缘,“碎纸泡水前被火烤过,先毁墨,再浸水。这是老法子,针对手工账册。做这一步的人熟悉香行,不是外行打手。”
门外忽然传来一阵急促脚步。便衣把一个中年男人押了进来,男人手上全是香灰,裤脚还沾着湿泥。
“邱队,在后巷抓到的,自称是店里伙计。”
邱夜清盯着他:“名字。”
“周、周贺。”
“老板呢?”
“不知道,我今早来就关门了。”
沈策把一张刚拍的锅底照片递到他眼前:“锅底温度还在四十度以上。你说你‘刚来’,那是谁在五点后还熬胶?”
周贺喉结一滚:“我……我真不知道。”
沈策换了个问法:“你们店三号炉做什么香?”
周贺眼神明显一躲:“普通供香。”
“普通供香不用三段芯,也不用松骨胶。”沈策把那段拼出的碎纸摆在台面,“你再说一次,做的是什么?”
周贺嘴唇抖了两下,忽然低声说:“叫……回火香。法会压场用的。”
“给谁做?”
“中间人拿单,我只见过代号。”周贺不敢抬头,“最近半年,最多的代号是‘辰’。”
邱夜清追问:“中间人长什么样?”
“戴口罩,手很白,右手无名指缺一节。”周贺咽了口唾沫,“他每次都催一句话:‘第三炷要先断。’”
沈策和邱夜清对视,谁都没说话。掌骨“只有手”的描述,第一次有了可辨认的轮廓。
技术员这时从后门跑进来:“邱队,后门巷子发现监控,昨晚四点四十有两辆面包车停靠,搬了七分钟。我们放大看到了箱体标记:‘云栈-账’。”
邱夜清问:“车牌?”
“套牌。”
“去调路口天网,按箱体尺寸和行驶轨迹做反推。”
命令下完,她回头看柜台那一排空抽屉,指节慢慢收紧:“他们把最关键的东西先拿走了。”
沈策站在熬胶间门口,盯着那口还温的铁锅。他脑子里同时浮现三处现场:城隍庙断香、总阀站黑线、电调中心回风灰。三条线在这里汇成一点,然后在他们到达前被整齐剪断。
这不是仓促灭迹,是预先演练过的撤收流程。
“司辰不是在躲我们。”他低声说,“他在教我们看他留下的空位。”
邱夜清没听清,侧头:“你说什么?”
沈策收回视线,把碎纸证物袋递给她:“我说第四局快了。因为第三条物料链已经被他主动废弃。一个人会主动丢掉还能用的刀,通常是因为下一把刀已经磨好。”
邱夜清看着证物袋里的烂纸,眼神沉下来:“先把周贺带回去,做保护性羁押。其余人全线追车,重点找那两箱账册。”
沈策点头,转身往门外走。清晨的风带着陶土和焦松脂混在一起的味道,像一炉没烧透的香。街口太阳已经露头,照在“停业整修”的牌子上,墨迹反光,刺得人眼睛生疼。
他走到车边时,手机振了一下。不是信息,是一张自动推送的快照截图,来源未知。截图里是一本账册封面,封面只写了三个字:
第三炷。
下一行被红笔划掉,只剩半句还能认出来。
“已清。”