第二天五點四十三分,牆內先響起一陣短促的送氣聲,金屬隨即沿斜槽滑下,在軟墊盒底彈了一次。第七把鑰匙落下的聲音比所有人預想中都輕,守在門廳的貝阿特麗斯卻像聽見鐘響,立刻按停秒表:「五點四十三分十七秒。」
桑多涅沒有去拿鑰匙。她蹲在拆開的裝飾木條旁,指尖貼著那截舊管道。送氣結束後,管壁仍在微微震動,持續約四秒才完全平復。
「鍋爐剛啟動兩分十七秒。」法潔歐站在門廳另一側,顯示屏同步記錄地下設備的耗電變化,「公共照明分閘處於關閉狀態。氣流壓力來自獨立機械支路。」
哥倫比亞坐在樓梯第一級,懷裡抱著兩袋烤栗子。她今天吸取教訓,沒有在關鍵時刻吃完,只剝開一顆放到紙袋邊緣,等桑多涅起身。
貝阿特麗斯戴上手套,將新鑰匙連同軟墊一起端到桌面。匙柄壓著數字「31」,齒槽上帶有新鮮的黃銅毛刺;一側還粘著極少的黑色潤滑脂。
「和前六把一樣?」她問。
桑多涅將七把鑰匙依次排開。肉眼看尺寸各異,放到側光下卻能看到每道齒槽末端都有同樣窄的半月形壓痕。
「同一台切削設備。」她說,「刀頭已經偏磨,最後一刀會向右帶出毛刺。第一把到第七把都存在。」
「那機器確實還在地下?」
「至少制鑰部分在同一處。數字不是日期,更像舊圖紙編號。」
她將「31」與檔案館調出的建築改造表對應。三十一號圖紙恰好是二層北側的煤具櫃,二十七年前併入了另一套公寓。貝阿特麗斯查到現住戶後,立即打電話告知對方別自行試鑰匙,並安排午後更換那處仍保留的舊鎖。
昨晚的準備不只是一隻盒子。鍋爐技師米哈伊爾已經檢查燃氣閥,確認舊維護間不在燃燒室內;消防員帶來氣體檢測儀和內窺鏡,洗衣房也暫停使用。高櫃移開後,窄門完整露了出來。門鎖鏽死,但門板下沿留有一條通風縫。
「氧氣正常,沒有可燃氣體積聚。」米哈伊爾看完讀數,「裡面的震動與鍋爐啟動同步。老壓縮機可能共用機械軸。」
貝阿特麗斯問:「能開門了嗎?」
「先看鉸鏈。」桑多涅說。
門向內開,右側鉸鏈被牆漆蓋住,尚未完全鏽蝕。消防員從通風縫送進內窺鏡,屏幕上先出現積灰地面,隨後是倒下的木架與一根橫在門後的金屬杆。
不是鎖不肯開。門後確實被東西擋住了。
「直接頂會讓杆子卡進管線。」桑多涅放大畫面,「從上方切一個檢修口,把它提起來。」
萊昂納德原本趕來旁觀,聽見要切牆,立刻從自家工具間拿來防塵布。埃德加也下樓,卻被貝阿特麗斯安排在洗衣房外登記進出,免得他又憑三十二年的居住經驗擅自摸任何東西。米蕾爾帶孩子去親戚家待半天,安東則把堆在走廊的花桶移走,給消防員騰出通道。
舊公寓沒有為了調查停止生活,只是每個人都暫時繞開這間洗衣房。樓上的水管仍在響,送貨員從後門搬進麵包,二層有人在爭論誰把濕傘靠在牆上。哥倫比亞坐在防塵布邊,替紙袋折出蓋子,免得牆灰落進栗子裡。
檢修口切開後,消防員用鉤索提起金屬杆。窄門向內推開三十厘米,積塵與冷空氣一起湧出。米哈伊爾先進入檢查,確認地面與鍋爐隔離,才讓桑多涅、哥倫比亞和法潔歐跟進去。
維護間比圖紙上窄。擴建洗衣房時,西側被砌掉近一半,只剩沿牆的一條走道。舊式壓縮機嵌在最裡面,皮帶連接鍋爐側的傳動輪;每當鍋爐清晨啟動,老舊離合器便被帶動一小段。
壓縮機旁是一台桌櫃大小的制鑰設備。
銅條從上方料匣落入,經過夾具與切削輪,成品進入透明輸送筒。筒管向上穿牆,與門廳發現的氣動管道連接。地面鋪著細細一層銅屑,其中一條軌跡更新、更亮,從機器底部一直延伸到門邊。
「有人進來過?」哥倫比亞問。
桑多涅照亮那條痕跡:「像拖動物品留下的,但灰塵沒有腳印。」
她沿痕跡找到一隻傾倒的接屑盒。盒邊正好靠著壓縮機,啟動時的震動會讓新銅屑一點點向外爬,在地面形成細帶。這不是人的路線。
法潔歐連接設備側面的機械讀數口。屏幕沒有亮,櫃內卻傳來緩慢的齒輪嚙合聲。制鑰機並非依靠整棟公寓的電路:鍋爐帶動壓縮機,壓縮空氣推動輸送;控制部分則由一個老式蓄力機構每日前進一格。
「這東西怎麼知道該切哪把?」貝阿特麗斯站在門口問。
桑多涅打開上層蓋板。裡面沒有聯網終端,只有三組結構迥異的模塊。最左側是穿孔紙帶讀取器,中間是一台微型光學掃描架,右側則有後來加裝的電子存儲匣。三條線路最終都接向同一個選序輪。
紙帶捲軸正在緩慢轉動,上面印著與舊建築圖對應的編號。第七格「31」已經被打上完成孔,下一格是「8」。
「它按隊列工作。」桑多涅說,「每次壓縮機壓力達到閾值,選序輪前進一格,讀取一項門鎖參數,切一把鑰匙,再送上去。」
「為什麼現在才開始?」
米哈伊爾蹲在傳動輪邊:「這個月換過鍋爐泵。新泵啟動轉矩更大,把一直打滑的舊離合器帶起來了。」
他拆下防護罩,露出磨得發亮的皮帶邊緣。過去多年,傳動不足以讓制鑰機完整走完一次;新泵安裝後,每天清晨的第一次啟動恰好能提供一輪壓力。
「所以不是有人每天來放鑰匙。」貝阿特麗斯鬆了一口氣,隨即又看向那捲長得看不到盡頭的紙帶,「它還準備做多少把?」
法潔歐讀取完成孔,給出數字:「未完成任務四十二項。部分任務由三種介質重複記錄,去重後預計二十六至三十七把。」
貝阿特麗斯的臉色重新變了。
「先停壓力。」桑多涅對米哈伊爾說,「不要直接拔紙帶,也別轉選序輪。隊列和圖紙要保留,才能確認已經出現的鑰匙對應哪些空間。」
米哈伊爾脫開傳動皮帶,給壓縮支路上機械鎖。設備里的齒輪聲慢慢停下。門廳那條舊管道失去殘餘壓力,再也沒有響。
真正麻煩的是這台機器內部的年代。
紙帶讀取器顯然來自公寓落成初期,零件銘牌的年份與首版圖紙一致。光學掃描架晚了二十六年,固定孔位也經過重新擴鑽;電子存儲匣則更新,外殼材料是十幾年前才普及的合金。三個模塊並非一次製造,它們在漫長時間裡被陸續加入,卻都在內側刻著同一個研究署名:多托雷。
桑多涅先拍攝位置,再逐項抄錄序列號。第一個簽名旁的技術說明強調機械冗餘,認為電子存儲不可靠;第二個模塊的說明卻把紙帶稱為「低效過渡」;到了第三個,設計者又重新保留紙帶,並批註光學架存在不可接受的校準偏差。
像三個人在不同年份持續改造同一台機器,彼此還不太認同。
哥倫比亞站在她身邊,沒有因為看到那個名字就替它下結論。她只是輕聲說:「字跡有一點不一樣。」
「哪裡?」
「第一個收得很緊,後兩個更快。像同一首歌換了三個時候唱。」
桑多涅用比例尺拍下三處簽名:「字跡會隨年齡、工具和書寫面變化。也可能是團隊共用署名。」
「嗯。」
她們已經抓住了博士,也封存過他控制的設備。舊項目里出現名字並不反常;同一研究署名跨越數十年,完全可以由團隊、繼承者或後期維修解釋。桑多涅沒有讓熟悉的名字替物證跑到前面。
法潔歐完成離線複製,忽然抬頭:「三個模塊使用的尺寸公差標準不同。電子匣輸出參數無法被早期切削輪直接執行。」
「所以中間還有轉換層。」桑多涅說。
她在櫃體下方找到一塊可拆面板。螺絲被銅屑堵住,擰開後,裡面露出一組手工改造的機械換算盤。盤面同時標有三套尺度,將後期電子數據換算成老切削輪能讀取的齒距。
換算盤邊緣也刻著多托雷的署名,年份介於第二與第三個模塊之間。
「這支團隊很喜歡留下名字。」米哈伊爾說。
桑多涅合上面板:「或者項目一直沿用負責人署名。先按舊實驗網絡遺留設備處理。序列號送去比對,但不影響今天把公寓恢復正常。」
現實問題仍排在前面。二十六到三十七項積壓任務里,可能包含已併入私人住宅的房門、封閉水箱與廢棄電路間。每把已出現的鑰匙必須找到對應圖紙,確認是否有人誤開;機器也不能簡單砸毀,否則住戶將失去判斷哪些舊鎖仍可被相同齒形開啟的依據。
桑多涅讓法潔歐複製隊列,自己與貝阿特麗斯核對圖紙。埃德加終於被允許進入維護間,只能站在門邊口述早期房間用途。他這次很配合,認出「8」不是八號房,而是最早的嬰兒車庫。
「現在那裡是安東的花材冷間。」他說。
「鎖換過嗎?」
安東在外面回答:「門換過,裡面還有一隻舊櫃。」
下一把鑰匙原本會打開什麼,由此有了答案。
午前,制鑰設備完成斷能,管道兩端加上可見封簽。貝阿特麗斯決定保留維護室入口,不再用高櫃永久遮擋;洗衣房恢復一半使用,另一半先圍起施工擋板。住戶們陸續來認領情況,沒人再問能不能把第七把鑰匙拿去試一圈。
桑多涅走出地下室時,哥倫比亞把一直留著的栗子遞給她。栗子已經不熱,但剝得完整,薄皮也去乾淨了。
「今天真的留下了。」她說。
桑多涅吃掉那顆栗子,抬手替她撣去肩頭的牆灰:「另外一袋呢?」
哥倫比亞指向門外。萊昂納德、安東和米蕾爾的孩子正圍著紙袋,埃德加手裡也拿著一顆。
「給住戶了。」
「你倒是很會分。」
「還剩殼。」
「殼你自己留著。」
地下室的門終於打開,門後的機器卻沒有給出任何誇張答案。它只是按一份過期太久的工作表,日復一日準備打開已經不存在的門。
桑多涅將三個年代的模塊編號收入記錄。明天,她們要做的仍是最具體的事:讓每一把鑰匙找到原本對應的鎖,再讓這棟樓的人決定,那些鎖究竟應該留下,還是徹底失效。