理论上已完成。未经测试。