| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
bugfix: 统计耗时命名 Co-authored-by: 丛吉钰<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !1604 merge keepgoing into master bugfix: 统计耗时命名 Created-by: cong-jiyu Commit-by: 丛吉钰 Merged-by: cann-robot Description: ## 描述 修复统计耗时算子变量命名 ## 关联的Issue [#870](https://gitcode.com/cann/ops-nn/issues/870) <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 编包后调用脚本,成功统计耗时 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!1604 | 6 个月前 | |
修复因脚本导致线上ci门禁执行失败的问题 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !4411 merge issue_fix2 into master 修复因脚本导致线上ci门禁执行失败的问题 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 ### 📋 变更概要 本 PR 修复了线上 CI 门禁执行失败的问题,主要通过对 CI 检查脚本和编译脚本进行参数调整,跳过 experimental 算子的检查并修复编译流程。 ### 🎯 主要改动 * CI 检查脚本: 在 check_example.sh 和 check_pkg.sh 中添加跳过 experimental 算子的逻辑,避免对实验性算子进行不必要的检查 * 构建脚本: 在 build.sh 的 cmake 初始化命令中添加 -DENABLE_ASAN 参数传递 * 编译脚本: 在 compile_ascend950_pkg.sh 的安装命令中添加 --force 参数,确保强制安装 ## 关联的Issue [#2428](https://gitcode.com/cann/ops-nn/issues/2428) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4411 | 4 个月前 | |
local check ut Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !4552 merge master into master local check ut Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 1.修复本地构建时ophost ut与opapi ut没有拦截的问题, 2.修复experimental环境变量异常,导致cmake失败的问题, 3.修复使用modext出现编译选项无法生效的问题 4.修复experimental cmake日志被吞的问题 5.删除无效的compute unit解析 ## 关联的Issue [#2533](https://gitcode.com/cann/ops-nn/issues/2533) ## 测试 修改ut并执行本地构建脚本 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4552 | 3 个月前 | |
local check ut Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !4552 merge master into master local check ut Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 1.修复本地构建时ophost ut与opapi ut没有拦截的问题, 2.修复experimental环境变量异常,导致cmake失败的问题, 3.修复使用modext出现编译选项无法生效的问题 4.修复experimental cmake日志被吞的问题 5.删除无效的compute unit解析 ## 关联的Issue [#2533](https://gitcode.com/cann/ops-nn/issues/2533) ## 测试 修改ut并执行本地构建脚本 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4552 | 3 个月前 | |
增加experimental算子的kernel ut支持 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6550 merge master into master 增加experimental算子的kernel ut支持 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 ## 背景 当前门禁不支持执行experimental kernel ut ,且同名算子会误触发非experimental算子 ## 主要修改 精准识别experimental算子的修改,并增加experimental算子 kernel ut的触发 ## 关联的Issue [#3565](https://gitcode.com/cann/ops-nn/issues/3565) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!6550 | 2 个月前 | |
修复因脚本导致线上ci门禁执行失败的问题 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !4411 merge issue_fix2 into master 修复因脚本导致线上ci门禁执行失败的问题 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 ### 📋 变更概要 本 PR 修复了线上 CI 门禁执行失败的问题,主要通过对 CI 检查脚本和编译脚本进行参数调整,跳过 experimental 算子的检查并修复编译流程。 ### 🎯 主要改动 * CI 检查脚本: 在 check_example.sh 和 check_pkg.sh 中添加跳过 experimental 算子的逻辑,避免对实验性算子进行不必要的检查 * 构建脚本: 在 build.sh 的 cmake 初始化命令中添加 -DENABLE_ASAN 参数传递 * 编译脚本: 在 compile_ascend950_pkg.sh 的安装命令中添加 --force 参数,确保强制安装 ## 关联的Issue [#2428](https://gitcode.com/cann/ops-nn/issues/2428) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4411 | 4 个月前 | |
新增 pre-push 本地编译门禁脚本,将 CI 质量门禁左移到开发者本地,在 git push 时自动触发构建与 UT 检查。 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !8563 merge master into master 新增 pre-push 本地编译门禁脚本,将 CI 质量门禁左移到开发者本地,在 git push 时自动触发构建与 UT 检查。 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: 本 PR 新增 pre-push 本地编译门禁脚本,将 CI 质量门禁左移到开发者本地,在 git push 时自动触发构建与 UT 检查。 ### 改动原因 远程 CI 门禁失败导致开发往返成本高,开发者需要在本地反复调试后才能合入。通过 pre-push hook 在 push 前自动运行本地构建与 UT,提前发现问题,提升远程门禁成功率。 ### 采取的方法 1. **新增 scripts/ci/pre_push_build.sh**:pre-push hook 脚本,支持两种运行模式: - **快速模式(默认)**:根据变更文件路径智能识别受影响模块(op_host/op_kernel/op_api/op_graph/arch35/experimental),仅触发相关阶段的构建与 UT,耗时短,适合日常迭代。 - **完整模式(PRE_PUSH_FULL=1)**:直接调用 local_build.sh,100% 复刻 CI 门禁语义,适合合入前验证。 2. **.pre-commit-config.yaml 注册 pre-push hook**:通过 pre-commit 框架管理,与现有 pre-commit 检查无缝衔接。 3. **智能跳过策略**: - 仅文档/配置/cmake/scripts 变更 → 全部跳过 - 仅 experimental 变更 → 只执行 check_experimental_pkg.sh - arch35/op_kernel 变更 → 跳过 JIT 打包,由 compile_ascend950_pkg.sh 处理 4. **CANN 环境检测**:未安装 CANN 包时红色高亮提示并跳过检查,允许提交。 5. **全流程日志**:所有环节名称、执行命令、构建输出同步写入终端和 pre_push_build.log,包含 Pipeline Preview 概览和变更文件列表。 ## 关联的Issue ## 测试 - 修改 matmul/mat_mul_v3/op_host/op_tiling/arch35/ 下文件,验证快速模式正确识别 arch35 变更,跳过 JIT 打包,触发 ascend950 pkg(force_jit)。 - 修改 op_host 非 arch35 文件,验证 JIT 打包 + ophost UT 正确触发。 - 仅修改 .md 文件,验证 md_only 早退逻辑生效,全部跳过。 - 未 source CANN 环境时,验证红色高亮提示并跳过检查。 - 验证 pre_push_build.log 日志内容与终端输出一致,包含变更文件列表、模块识别、Pipeline Preview、各阶段命令与输出。 ## 文档更新 - 新增 pre-commit.md:本地代码门禁使用指南(pre-commit + pre-push-build 合并文档),包含安装、环境前置条件、日常开发流程、跳过检查、运行模式、执行流程、典型场景、日志与报错排查、配置参数汇总、取消安装。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8563 | 24 天前 | |
ops-nn support ascend350 Co-authored-by: 丛吉钰<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !4745 merge huipian into master ops-nn support ascend350 Created-by: cong-jiyu Commit-by: 丛吉钰 Merged-by: cann-robot Description: ## 描述 ops-nn support ascend350 ## 关联的Issue [#2645](https://gitcode.com/cann/ops-nn/issues/2645) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4745 | 3 个月前 | |
fix:experimental 算子.py文件生成 Co-authored-by: 丛吉钰<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !4774 merge master into master fix:experimental 算子.py文件生成 Created-by: cong-jiyu Commit-by: 丛吉钰 Merged-by: cann-robot Description: ## 描述 fix:experimental 算子.py文件生成 ## 关联的Issue [#2533](https://gitcode.com/cann/ops-nn/issues/2533) ## 测试 本地编译experimental算子 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4774 | 3 个月前 | |
优化静态库合并脚本 Co-authored-by: 18811725231<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !8196 merge mainline into master 优化静态库合并脚本 Created-by: yang-di52 Commit-by: 18811725231 Merged-by: cann-robot Description: ## 描述 ### 变更摘要 此 PR 对 scripts/ci/merge_static_packages.sh 静态库合并脚本进行了性能与健壮性优化:引入并行解压(支持 pigz)、使用硬链接减少拷贝开销、通过 cmp 跳过内容相同的目标文件,并增强了对空 .o 目录等边界情况的处理。 ### 主要改动 * 并行解压支持: 在 extract_packages 中增加 pigz 检测与 NJOBS 环境变量支持,通过 xargs -P 实现多包并行解压,替代原来的串行 for 循环,显著提升解压速度。 * 目标文件智能合并: merge_static_lib 将 .o 文件分为新文件、资源文件(op_resource.cpp.o)和已存在文件三类处理:新文件优先尝试硬链接(cp -l);已存在文件通过 cmp -s 比对,内容相同则跳过不覆盖,减少不必要的写入。 * 合并统计输出: merge_static_lib 新增 merged/skipped 计数,尾部输出 [pkg_name] merged X objects, skipped Y 日志,便于追踪每次合并的实际效果。 * 空目录安全处理: package_result 中使用 shopt -s nullglob 和数组收集 .o 文件,当不存在任何 .o 时仍能正确创建 libcann_nn_static.a,避免 ar 命令因通配符无匹配而报错。 * 最终打包支持 pigz: package_result 的 tar 打包步骤同样增加 pigz 检测,若可用则使用 --use-compress-program=pigz 加速压缩。 ## 关联的Issue [#4534](https://gitcode.com/cann/ops-nn/issues/4534) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8196 | 1 个月前 | |
fix ops-nn build for examples Co-authored-by: magicjason0007<wangdongxu20@huawei.com> # message auto-generated for no-merge-commit merge: !7402 merge master into master fix ops-nn build for examples Created-by: magicjason0007 Commit-by: magicjason0007 Merged-by: cann-robot Description: ## 描述 先查 arch35,为空则回退到 examples/ <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4035 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7402 | 1 个月前 | |
support deb\rpm pkg Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !8121 merge pkg into master support deb\rpm pkg Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 此 PR 为构建系统新增了 deb 和 rpm 包格式支持。通过新增的 --pkg-type 参数(支持 run/rpm/deb/all),用户可在 --pkg 构建模式下选择生成指定格式的系统安装包,并配套了 RPM/DEB 包的安装后/卸载前脚本以自动管理 Python wheel 文件,同时更新了底层 cann-cmake 依赖版本及包描述文件的权限配置。 主要改动 build.sh 新增 --pkg-type 参数及包类型构建流程:新增 check_pkg_type 校验函数,限定仅接受 run/rpm/deb/all;在 check_param 中约束非 run/all 类型不得与 --static、--jit、--ops/--vendor_name/--experimental 等自定义算子选项混用;build_pkg 中对 all 类型循环构建三种包,并通过 clean_rpm_deb_package 和 collect_rpm_deb_package 清理旧产物与复制成品到输出目录。 新增 RPM/DEB 安装与卸载脚本:custom_postinst.sh 在包安装后通过 pip install 自动部署 es_packages/whl 及 python/site-packages 下的 .whl 文件;custom_prerm.sh 在包卸载前通过 pip uninstall 移除 cann-ops-nn 和 es-nn,并清理相关目录和残留文件。 cmake/package.cmake 传递 PACKAGE_TYPE 并调整包配置:set_cann_cpack_config 调用中新增 PACKAGE_TYPE "${PACKAGE_TYPE}" 参数;移除了 path.cfg 配置文件的安装逻辑;新增 CANN_VERSION_ops-nn_VERSION 的版本号映射以兼容 CPack 组件命名。 fetch_cann_cmake.cmake 升级底层依赖版本:CANN_CMAKE_TAG 从 master-015 升级至 master-046,并新增离线包的 URL_HASH(SHA256)校验。 CI 打包脚本及包描述文件权限调整:ops_run_repackage.sh 新增 --pkg-type 参数解析,并在非 run 类型时调用 ops_generate_rpm_deb.sh 生成 RPM/DEB 包;ops_nn.xml 调整 scene.info 权限为 640、version.info 显式设为 440,并移除了对已删除 EngineeringFiles.xml 的引用。 ## 关联的Issue [#4536](https://gitcode.com/cann/ops-nn/issues/4536) ## 测试 本地验证 --pkg-type 参数校验逻辑 CI 流水线已通过 ## 文档更新 更新 docs/zh/install/compile.md 中 cann-cmake 版本信息 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8121 | 1 个月前 | |
add st action with ops-nn Co-authored-by: he_kan<hekan4@huawei.com> # message auto-generated for no-merge-commit merge: !8690 merge ci into master add st action with ops-nn Created-by: he_kan Commit-by: he_kan Merged-by: cann-robot Description: ## 描述 新增/st_950 标签完成950场景的st验证功能 脚本中内置白名单机制,当前仅开放mat_mul_v3和batch_mat_mul_v3 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8690 | 19 天前 | |
qbmm golden with ttk Co-authored-by: he_kan<hekan4@huawei.com> # message auto-generated for no-merge-commit merge: !8267 merge wqbmm into master qbmm golden with ttk Created-by: he_kan Commit-by: he_kan Merged-by: cann-robot Description: ## 描述 matmul量化算子支持ops-test-kit的aclnn和e2e(torchapi)测试 新增golden和用例: 1. quant_batch_matmul_v3: 1.1 重新优化kernel算子golden 1.2 新增aclnn golden文件 1.3 新增torch api golden文件 2. quant_batch_matmul_v4: 2.1 重新优化kernel算子golden 2.2 新增aclnn golden文件 3. weight_quant_batch_matmul_v2: 3.1 重新优化kernel算子golden 3.2 新增aclnn golden文件 3.3 新增torch api golden文件 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。-->  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8267 | 1 个月前 | |
新增 pre-push 本地编译门禁脚本,将 CI 质量门禁左移到开发者本地,在 git push 时自动触发构建与 UT 检查。 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !8563 merge master into master 新增 pre-push 本地编译门禁脚本,将 CI 质量门禁左移到开发者本地,在 git push 时自动触发构建与 UT 检查。 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: 本 PR 新增 pre-push 本地编译门禁脚本,将 CI 质量门禁左移到开发者本地,在 git push 时自动触发构建与 UT 检查。 ### 改动原因 远程 CI 门禁失败导致开发往返成本高,开发者需要在本地反复调试后才能合入。通过 pre-push hook 在 push 前自动运行本地构建与 UT,提前发现问题,提升远程门禁成功率。 ### 采取的方法 1. **新增 scripts/ci/pre_push_build.sh**:pre-push hook 脚本,支持两种运行模式: - **快速模式(默认)**:根据变更文件路径智能识别受影响模块(op_host/op_kernel/op_api/op_graph/arch35/experimental),仅触发相关阶段的构建与 UT,耗时短,适合日常迭代。 - **完整模式(PRE_PUSH_FULL=1)**:直接调用 local_build.sh,100% 复刻 CI 门禁语义,适合合入前验证。 2. **.pre-commit-config.yaml 注册 pre-push hook**:通过 pre-commit 框架管理,与现有 pre-commit 检查无缝衔接。 3. **智能跳过策略**: - 仅文档/配置/cmake/scripts 变更 → 全部跳过 - 仅 experimental 变更 → 只执行 check_experimental_pkg.sh - arch35/op_kernel 变更 → 跳过 JIT 打包,由 compile_ascend950_pkg.sh 处理 4. **CANN 环境检测**:未安装 CANN 包时红色高亮提示并跳过检查,允许提交。 5. **全流程日志**:所有环节名称、执行命令、构建输出同步写入终端和 pre_push_build.log,包含 Pipeline Preview 概览和变更文件列表。 ## 关联的Issue ## 测试 - 修改 matmul/mat_mul_v3/op_host/op_tiling/arch35/ 下文件,验证快速模式正确识别 arch35 变更,跳过 JIT 打包,触发 ascend950 pkg(force_jit)。 - 修改 op_host 非 arch35 文件,验证 JIT 打包 + ophost UT 正确触发。 - 仅修改 .md 文件,验证 md_only 早退逻辑生效,全部跳过。 - 未 source CANN 环境时,验证红色高亮提示并跳过检查。 - 验证 pre_push_build.log 日志内容与终端输出一致,包含变更文件列表、模块识别、Pipeline Preview、各阶段命令与输出。 ## 文档更新 - 新增 pre-commit.md:本地代码门禁使用指南(pre-commit + pre-push-build 合并文档),包含安装、环境前置条件、日常开发流程、跳过检查、运行模式、执行流程、典型场景、日志与报错排查、配置参数汇总、取消安装。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8563 | 24 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 6 个月前 | ||
| 4 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 24 天前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 19 天前 | ||
| 1 个月前 | ||
| 24 天前 |