塞勒斯的手機從死機狀態醒來時,已經凌晨三點。遠程擦除程序毀掉了通訊資料庫,卻漏過一塊供維修人員離線查看的緩存;裡面有十二份設備手冊、三段損壞錄音和一頁沒有標題的控制參數,文件名都由隨機字符組成,創建時間卻比聖奧菲莉亞的約束場早了七年。
桑多涅沒有立即打開錄音。
她先讓技術員製作兩份只讀鏡像,記錄校驗值,再把參數頁與檔案館的A.G.合同放在不同屏幕。兩者都使用一種少見的分段編號:主項用羅馬數字,例外條件卻從零開始,旁邊的修訂符號像一枚少了一角的齒輪。
阿蘭的舊筆記也這樣寫。
哥倫比亞坐在工作檯另一邊。她沒有說「就是他」,只問:「別人會不會也學這種記號?」
「會。所以記號只能增加關聯,不能確認作者。」
紙張纖維檢測表明參數頁來自九年前;印表機微點與彌賽拉研究所一台報廢設備吻合。頁腳的校驗碼能對應撤回專利的第二版草案,但正文多出三項人體負載限制,墨粉形成時間晚了四個月。
「有人在原技術上加了東西。」哥倫比亞說。
「或者列印了原本沒公開的版本。要聽錄音。」
第一段只有風扇聲。第二段出現兩個人爭執,聲音嚴重失真。
技術員沒有直接使用軟體自動降噪。原錄音中的風扇頻率可能用於判斷房間和設備,一鍵過濾會把背景證據一起抹掉。他先複製工作軌,再分別保留人聲、低頻和瞬態聲三組版本。
低頻軌里除了繼電器,還有一段四十七赫茲的持續振動。彌賽拉採購表顯示,月相模擬室的舊冷卻泵在負載超過七成時恰好產生相近振動;普通檔案室和辦公室沒有同類設備。瞬態軌則在爭執前捕捉到刷卡提示音,與醫院門禁不同,卻和研究所拍賣清單中的艾倫舊系統一致。
「錄音可能在彌賽拉形成,也可能有人用舊設備偽造環境。」桑多涅說。
哥倫比亞聽了兩遍:「多托雷不需要為我偽造一段阿蘭反對他的錄音吧?」
「除非他希望我們相信阿蘭只在最後才知情,或者利用它把我們引去某個地方。動機不能替代鑑定。」
「所以連對我們有利的東西也要懷疑。」
「尤其是剛好回答舊問題的東西。」
「……穩定器用於非生物載體。你們改了輸入定義。」
「定義服務於結果。」另一個聲音含著笑,「載體能承受,為什麼人不能?」
「撤回我的授權,封存全部校準表。」
「簽名可以撤回,已經發生的知識不行。」
錄音在撞擊聲中中斷。
桑多涅調出彌賽拉九年前的項目日曆。A.G.撤回授權的日期是五月十七日,月相模擬室在五月十八日至二十一日出現「冷卻系統檢修」,刷卡記錄全部缺失。錄音文件的內部時鐘寫著五月十六日,但設備時鐘可能修改。
技術員從文件尾部恢復一段未覆蓋的電源日誌:錄音設備在結束後因斷電重啟,重新聯網時與授時伺服器相差三分十一秒。研究所同期的消防系統也記錄過同樣時差。兩套獨立設備共享錯誤,偽造者若要複製,必須取得未公開的舊消防日誌。
真實性因此提高,卻仍沒有證明說話人的身份。
紙張纖維和聲紋的進一步報告要到傍晚,水廠手續最快也得第二天。桑多涅在白板前站了十分鐘,把已經驗證的三條線又看一遍,沒有憑空長出第四條。
哥倫比亞從門外探進來:「桑多涅現在是在調查,還是在用眼睛催報告?」
「整理信息。」
「同一行整理了三遍。」
「你怎麼知道?」
「第一次看左邊,第二次看右邊,第三次開始盯中間。中間只有一句『等待鑑定』。它被看得很有壓力。」
桑多涅蓋上筆帽:「所以?」
「所以在報告學會自己走過來以前,陪我出去一趟。」哥倫比亞晃了晃手機,「舊港今天有歌劇服裝展,只到下午五點。羅莎琳給了兩張票,還特意說如果浪費,她就把票價寫進茶會公共帳目,讓所有人知道我們欠了群體文化生活。」
「她不會這麼記帳。」
「對。最後一句是我補的。但票是真的,展覽也是真的。」
桑多涅原本想說自己沒有心情。哥倫比亞已經把她桌上的材料按「已鏡像」「待報告」「明日手續」分成三摞,連便簽方向都與她習慣的一致。
「兩個小時。」桑多涅說。
「從到達展館開始算。」
「從離開這裡開始。」
「路上也是臨海市文化的一部分。」
最後計時從她們鎖上辦公室門開始,哥倫比亞對此發表了長達一條街的不滿。
舊港展館由停用的海關倉庫改建,裡面陳列著二十年來從臨海劇院搶救出的服裝、面具和舞台機械。哥倫比亞進門後沒有沿說明牌依次參觀。她先去聽每一件服裝對應的唱段,聽到熟悉處便倒著走回來,再拉桑多涅看袖口刺繡。
「這件月神長袍很重。」她隔著玻璃比劃,「穿它的人第三幕還要走十四級台階。」
「裙擺內部有提帶。」桑多涅指向腰側一條不起眼的縫,「上台階時用左手提,不會踩住。」
「桑多涅怎麼知道?」
「結構明顯。」
「你在大學裡明明陪我看過這一版。」
「那你還問?」
「想知道桑多涅會選結構,還是承認陪我看過。」
「結構。」
哥倫比亞繞到另一邊繼續看,嘴角一直彎著。
展廳中央有一台復原到一半的風暴機。轉動木柄,帆布與薄板摩擦,能模擬舞台上的海浪和雷聲。管理員正在向一群孩子演示,機器卻只發出乾澀的刮擦聲。幾個孩子認定雷聲壞掉,圍著木柄輪流用力,聲音反而越來越小。
桑多涅停下腳步。哥倫比亞順著她的視線問:「想修?」
「不是故障。帆布裝反了,接縫方向與滾筒逆著走,越用力越貼緊。」
「要告訴管理員嗎?」
「展品有自己的維護人員。」
話剛說完,最小的女孩轉柄太快,鬆動的定位銷滾到了護欄外。女孩嚇得把手藏到背後,另外幾個孩子立刻圍成一個很不擅長保守秘密的小圈。
哥倫比亞蹲下來:「你們是在討論雷聲為什麼離家出走嗎?」
女孩點頭,又搖頭。
「它現在躲在那張長椅下面。可如果我們偷偷送回去,管理員下次還會以為它自己會跑。」
「會被罵嗎?」
「我不知道。哥倫比亞小時候弄壞東西,會先想一個聽起來很合理的故事。比如風把杯子推下桌,月亮讓窗簾撞倒花瓶。故事通常很好聽,然後還是要把碎片撿起來。」
桑多涅看她:「你什麼時候被月亮推過花瓶?」
「這是教育孩子,細節不接受調查。」
女孩最後自己找到管理員。定位銷沒有損壞,管理員也承認安全卡扣早就鬆了,關閉互動區重新安裝。桑多涅在對方拆開側板後提醒帆布方向,風暴機再次轉動時,低沉雷聲從倉庫高頂滾過去。
孩子們歡呼,哥倫比亞也跟著鼓掌,仿佛修好的不是一塊帆布,而是一整場海上風暴。
「找到靈感了嗎?」她問。
「案件不是靠看展覽找答案。」
「我問的是桑多涅有沒有找到繼續想的力氣。」
桑多涅看向正在被管理員重新標註的定位銷。錯誤方向、鬆動卡扣和用力後反而更安靜的聲音都沒有直接指向水廠。可兩小時裡,她第一次沒有反覆逼迫那段錄音立刻交出阿蘭。
「一點。」她說。
「那剩下的展廳可以繼續增加。」
「只剩二十三分鐘。」
「剛才幫助公共展品的時間應該從約會時長里扣除。」
「不是約會。」
「那更應該扣。案件外公務不能占用私人遊玩。」
兩人就計時歸屬爭到出口。回程電車上,哥倫比亞買了一隻風暴機形狀的紀念磁貼,宣布要貼在冰箱上提醒桑多涅:有些聲音不是盯著就會出現,需要先把方向放對。
桑多涅沒有同意這條比喻,但回到辦公室時,她把磁貼收進外套口袋,沒有讓它留在票根回收箱裡。
哥倫比亞的指尖壓在杯沿:「後一個是多托雷。九年前的聲音。」
第三段更短。第一個聲音說:「有人已經被接入,立即停機。」隨後是一串被覆蓋的坐標尾數。
法潔歐從背景噪聲中分離出每十七秒一次的繼電器撞擊。彌賽拉消防驗收記錄顯示,只有月相模擬室使用該型號舊穩壓器。錄音地點由此得到旁證。
桑多涅把結論寫進白板第二欄:A.G.極可能為阿蘭·吉約丹;曾提供非生物載體穩定技術;發現人體用途後要求撤回並封存。她又在後面加了一句:無法證明此前完全不知情,無法解釋此後去向。
哥倫比亞讀完:「你沒有替他原諒自己。」
「證據也沒有這個權限。」
「那桑多涅呢?」
背後的發條停過短短一拍,隨後恢復。
「我現在只知道他發現以後反對過。為什麼參加、為什麼沒能停下、為什麼離開我,都沒有答案。」桑多涅合上舊筆記,「一段錄音不能把他變成好父親,也不能證明他是壞人。」
哥倫比亞繞過桌角,輕輕靠住她的肩,沒有吻她,也沒有急著說安慰的話。
過了一會兒,她才開口:「那就先讓他當一個需要繼續調查的人。這樣他暫時不用占據結論的位置。」
「你給嫌疑對象安排得很體貼。」
「因為結論的位置要留給更有證據的人。」
桑多涅把舊筆記重新分成三個時期。最早的穩定器草圖只畫非生物關節和法潔歐的前代結構;中期開始出現「柔性載體」字樣,卻沒有人體指標;最後四個月的筆記被整齊撕走十二頁,只剩裝訂孔附近的藍色纖維。
參數頁訂孔里也卡著相同纖維。顯微鏡下,兩者顏色接近,斷面卻不同,不能斷言來自同一本筆記。桑多涅沒有失望,只申請做更精細的染料和老化比對。
「如果確認是他撕下的頁呢?」哥倫比亞問。
「證明技術頁曾屬於這本筆記,不能證明誰把它交給彌賽拉。也可能被偷,也可能由他主動給出。」
「每得到一個答案,就長出兩個問題。」
「正常。假的完整答案才不會長東西。」
參數頁末端還藏著一條被截斷的設備地址。法潔歐復原網絡格式,發現它屬於北汐水廠停用區的內部控制段。文件最後一次讀取發生在四天前,與塞勒斯最後一次運輸同夜。
這沒有告訴他們水廠內部有什麼,卻證明舊技術資料仍在那裡被使用。
搜查手續在上午批准。工程部門確認可於次日零點切斷停用區進水,現役主廠不會受影響,但地下總渠只能維持二十分鐘低水位。超過時限,潮位回升會淹沒最底層通道。
行動會議持續了兩個小時。水廠原圖與三次改造圖互相矛盾,南檢修井在最新版被塗成封閉,可市政機器人上月還從那裡進入檢查。警方沒有把圖紙當作出口保證,先派工程隊從外側打開井蓋,用帶線小車走完整條通道,確認沒有新增柵欄和有毒氣體。
西門內的停用區與現役區共用報警中心。若直接關閉全部警報,對方會發現信號消失;若保持聯網,行動路線可能被監聽。桑多涅讓工程人員只把停用區報警轉入本地記錄,向原系統繼續發送正常心跳。這個偽裝最多維持半小時,足夠覆蓋二十分鐘窗口。
救護組還提出一個問題:低溫轉運箱可能裝有對溫度敏感的藥物或活體,不能一見可疑便斷電。於是計劃增加冷鏈車和獨立電源,證物保全順序寫在人員抓捕之前。
哥倫比亞聽完整場,沒有要求改變地面崗位。會議散後,她卻留下來,把地圖上的兩條撤離線從頭看到尾。
「桑多涅從哪條回?」
「由所在位置決定,不提前固定。」
「那我兩條都記。你從西門出來,我先看見;從南井出來,攝像頭會先看見。只要不從地圖上沒有的第三條路消失就行。」
「我沒有穿牆的習慣。」
「在舊醫院是誰說字母不需要腿?我現在認為偵探需要,而且要按路線使用。」
桑多涅在兩處出口旁都寫上撤離確認人,才把圖捲起。
桑多涅將「二十分鐘」圈了兩遍。
哥倫比亞的醫學複查也在同一時間通過,條件是限制月矩力輸出、持續監測體溫並在任何眩暈出現時退出。
她把醫生簽字遞來:「答案現在取決於什麼?」
「行動需要。」
「這是比檢查更會推遲答案的句子。」
「你留在地面控制點。那裡能覆蓋地下通訊,也能在異常場域出現時示警。」
哥倫比亞沒有立刻爭取進入:「所以不是因為桑多涅認為我會拖累?」
「是因為你在地面能保護所有撤離通道。地下已經有足夠的人負責開門。」
「包括桑多涅?」
「包括我。」
她想了一會兒,點頭:「好。我守住你們回來的路。可二十分鐘以後,無論找到什麼,都要回來。」
「那是止損條件。」
「也是我說的話。兩種身份可以同時成立。」
桑多涅把她的崗位寫進計劃,沒有把那個「好」當作服從。哥倫比亞看完,又在地面控制點旁畫了一枚小小的音符。
「這是崗位標記?」
「提醒桑多涅,回來以後還有十五分鐘沒有聽完。昨天最後一個長音被你提前掐掉了。」
「計時已經結束。」
「聲音還沒有同意。」
討論從校驗碼一路延續到晚飯,阿蘭沒有因此獲得答案,明夜的路線卻一條條清楚起來。