{"block":{"name":"keymgr","variant":null,"commit":"58f8fdd5396817b775d2c69af9a6322ac7a84e5a","commit_short":"58f8fdd","branch":"master","url":"https://github.com/lowRISC/opentitan/tree/58f8fdd5396817b775d2c69af9a6322ac7a84e5a","revision_info":"GitHub Revision: [`58f8fdd`](https://github.com/lowrisc/opentitan/tree/58f8fdd5396817b775d2c69af9a6322ac7a84e5a)"},"tool":{"name":"vcs","version":"unknown"},"timestamp":"2026-07-11T02:34:57Z","build_seed":null,"testplan_ref":"https://opentitan.org/book/hw/ip/keymgr/data/keymgr_testplan.html","stages":{"V1":{"testpoints":{"smoke":{"tests":{"keymgr_smoke":{"max_time":15.85,"sim_time":2134.036293,"passed":30,"total":30,"percent":100.0}},"passed":30,"total":30,"percent":100.0},"random":{"tests":{"keymgr_random":{"max_time":86.35,"sim_time":10648.412155,"passed":30,"total":30,"percent":100.0}},"passed":30,"total":30,"percent":100.0},"csr_hw_reset":{"tests":{"keymgr_csr_hw_reset":{"max_time":1.5,"sim_time":88.09706299999999,"passed":1,"total":1,"percent":100.0}},"passed":1,"total":1,"percent":100.0},"csr_rw":{"tests":{"keymgr_csr_rw":{"max_time":1.83,"sim_time":29.699668000000003,"passed":5,"total":5,"percent":100.0}},"passed":5,"total":5,"percent":100.0},"csr_bit_bash":{"tests":{"keymgr_csr_bit_bash":{"max_time":18.77,"sim_time":820.729447,"passed":1,"total":1,"percent":100.0}},"passed":1,"total":1,"percent":100.0},"csr_aliasing":{"tests":{"keymgr_csr_aliasing":{"max_time":7.04,"sim_time":694.1517680000001,"passed":1,"total":1,"percent":100.0}},"passed":1,"total":1,"percent":100.0},"csr_mem_rw_with_rand_reset":{"tests":{"keymgr_csr_mem_rw_with_rand_reset":{"max_time":1.87,"sim_time":37.434187,"passed":5,"total":5,"percent":100.0}},"passed":5,"total":5,"percent":100.0},"regwen_csr_and_corresponding_lockable_csr":{"tests":{"keymgr_csr_rw":{"max_time":1.83,"sim_time":29.699668000000003,"passed":5,"total":5,"percent":100.0},"keymgr_csr_aliasing":{"max_time":7.04,"sim_time":694.1517680000001,"passed":1,"total":1,"percent":100.0}},"passed":6,"total":6,"percent":100.0}},"passed":73,"total":73,"percent":100.0},"V2":{"testpoints":{"cfgen_during_op":{"tests":{"keymgr_cfg_regwen":{"max_time":75.09,"sim_time":4194.203911,"passed":50,"total":50,"percent":100.0}},"passed":50,"total":50,"percent":100.0},"sideload":{"tests":{"keymgr_sideload":{"max_time":19.26,"sim_time":2517.755607,"passed":20,"total":20,"percent":100.0},"keymgr_sideload_kmac":{"max_time":29.94,"sim_time":5940.843,"passed":20,"total":20,"percent":100.0},"keymgr_sideload_aes":{"max_time":28.38,"sim_time":1480.4195419999999,"passed":20,"total":20,"percent":100.0},"keymgr_sideload_otbn":{"max_time":14.9,"sim_time":11418.816647,"passed":20,"total":20,"percent":100.0}},"passed":80,"total":80,"percent":100.0},"direct_to_disabled_state":{"tests":{"keymgr_direct_to_disabled":{"max_time":25.19,"sim_time":1678.572062,"passed":30,"total":30,"percent":100.0}},"passed":30,"total":30,"percent":100.0},"lc_disable":{"tests":{"keymgr_lc_disable":{"max_time":5.99,"sim_time":543.8876339999999,"passed":50,"total":50,"percent":100.0}},"passed":50,"total":50,"percent":100.0},"kmac_error_response":{"tests":{"keymgr_kmac_rsp_err":{"max_time":6.33,"sim_time":774.1568980000001,"passed":19,"total":20,"percent":95.0}},"passed":19,"total":20,"percent":95.0},"invalid_sw_input":{"tests":{"keymgr_sw_invalid_input":{"max_time":12.56,"sim_time":1492.351703,"passed":20,"total":20,"percent":100.0}},"passed":20,"total":20,"percent":100.0},"invalid_hw_input":{"tests":{"keymgr_hwsw_invalid_input":{"max_time":25.79,"sim_time":1158.978814,"passed":50,"total":50,"percent":100.0}},"passed":50,"total":50,"percent":100.0},"sync_async_fault_cross":{"tests":{"keymgr_sync_async_fault_cross":{"max_time":9.44,"sim_time":1844.360138,"passed":20,"total":20,"percent":100.0}},"passed":20,"total":20,"percent":100.0},"stress_all":{"tests":{"keymgr_stress_all":{"max_time":794.34,"sim_time":74157.065888,"passed":50,"total":50,"percent":100.0}},"passed":50,"total":50,"percent":100.0},"intr_test":{"tests":{"keymgr_intr_test":{"max_time":1.19,"sim_time":10.801427,"passed":10,"total":10,"percent":100.0}},"passed":10,"total":10,"percent":100.0},"alert_test":{"tests":{"keymgr_alert_test":{"max_time":1.2,"sim_time":33.324769999999994,"passed":10,"total":10,"percent":100.0}},"passed":10,"total":10,"percent":100.0},"tl_d_oob_addr_access":{"tests":{"keymgr_tl_errors":{"max_time":4.54,"sim_time":703.222313,"passed":25,"total":25,"percent":100.0}},"passed":25,"total":25,"percent":100.0},"tl_d_illegal_access":{"tests":{"keymgr_tl_errors":{"max_time":4.54,"sim_time":703.222313,"passed":25,"total":25,"percent":100.0}},"passed":25,"total":25,"percent":100.0},"tl_d_outstanding_access":{"tests":{"keymgr_csr_hw_reset":{"max_time":1.5,"sim_time":88.09706299999999,"passed":1,"total":1,"percent":100.0},"keymgr_csr_rw":{"max_time":1.83,"sim_time":29.699668000000003,"passed":5,"total":5,"percent":100.0},"keymgr_csr_aliasing":{"max_time":7.04,"sim_time":694.1517680000001,"passed":1,"total":1,"percent":100.0},"keymgr_same_csr_outstanding":{"max_time":3.32,"sim_time":108.785764,"passed":5,"total":5,"percent":100.0}},"passed":12,"total":12,"percent":100.0},"tl_d_partial_access":{"tests":{"keymgr_csr_hw_reset":{"max_time":1.5,"sim_time":88.09706299999999,"passed":1,"total":1,"percent":100.0},"keymgr_csr_rw":{"max_time":1.83,"sim_time":29.699668000000003,"passed":5,"total":5,"percent":100.0},"keymgr_csr_aliasing":{"max_time":7.04,"sim_time":694.1517680000001,"passed":1,"total":1,"percent":100.0},"keymgr_same_csr_outstanding":{"max_time":3.32,"sim_time":108.785764,"passed":5,"total":5,"percent":100.0}},"passed":12,"total":12,"percent":100.0}},"passed":426,"total":427,"percent":99.76580796252928},"V2S":{"testpoints":{"sec_cm_additional_check":{"tests":{"keymgr_sec_cm":{"max_time":13.69,"sim_time":2515.604949,"passed":5,"total":5,"percent":100.0}},"passed":5,"total":5,"percent":100.0},"tl_intg_err":{"tests":{"keymgr_sec_cm":{"max_time":13.69,"sim_time":2515.604949,"passed":5,"total":5,"percent":100.0},"keymgr_tl_intg_err":{"max_time":9.46,"sim_time":3035.098982,"passed":25,"total":25,"percent":100.0}},"passed":30,"total":30,"percent":100.0},"shadow_reg_update_error":{"tests":{"keymgr_shadow_reg_errors":{"max_time":4.65,"sim_time":172.28690799999998,"passed":20,"total":20,"percent":100.0}},"passed":20,"total":20,"percent":100.0},"shadow_reg_read_clear_staged_value":{"tests":{"keymgr_shadow_reg_errors":{"max_time":4.65,"sim_time":172.28690799999998,"passed":20,"total":20,"percent":100.0}},"passed":20,"total":20,"percent":100.0},"shadow_reg_storage_error":{"tests":{"keymgr_shadow_reg_errors":{"max_time":4.65,"sim_time":172.28690799999998,"passed":20,"total":20,"percent":100.0}},"passed":20,"total":20,"percent":100.0},"shadowed_reset_glitch":{"tests":{"keymgr_shadow_reg_errors":{"max_time":4.65,"sim_time":172.28690799999998,"passed":20,"total":20,"percent":100.0}},"passed":20,"total":20,"percent":100.0},"shadow_reg_update_error_with_csr_rw":{"tests":{"keymgr_shadow_reg_errors_with_csr_rw":{"max_time":16.38,"sim_time":3739.7982650000004,"passed":20,"total":20,"percent":100.0}},"passed":20,"total":20,"percent":100.0},"prim_count_check":{"tests":{"keymgr_sec_cm":{"max_time":13.69,"sim_time":2515.604949,"passed":5,"total":5,"percent":100.0}},"passed":5,"total":5,"percent":100.0},"prim_fsm_check":{"tests":{"keymgr_sec_cm":{"max_time":13.69,"sim_time":2515.604949,"passed":5,"total":5,"percent":100.0}},"passed":5,"total":5,"percent":100.0},"sec_cm_bus_integrity":{"tests":{"keymgr_tl_intg_err":{"max_time":9.46,"sim_time":3035.098982,"passed":25,"total":25,"percent":100.0}},"passed":25,"total":25,"percent":100.0},"sec_cm_config_shadow":{"tests":{"keymgr_shadow_reg_errors":{"max_time":4.65,"sim_time":172.28690799999998,"passed":20,"total":20,"percent":100.0}},"passed":20,"total":20,"percent":100.0},"sec_cm_op_config_regwen":{"tests":{"keymgr_cfg_regwen":{"max_time":75.09,"sim_time":4194.203911,"passed":50,"total":50,"percent":100.0}},"passed":50,"total":50,"percent":100.0},"sec_cm_reseed_config_regwen":{"tests":{"keymgr_random":{"max_time":86.35,"sim_time":10648.412155,"passed":30,"total":30,"percent":100.0},"keymgr_csr_rw":{"max_time":1.83,"sim_time":29.699668000000003,"passed":5,"total":5,"percent":100.0}},"passed":35,"total":35,"percent":100.0},"sec_cm_sw_binding_config_regwen":{"tests":{"keymgr_random":{"max_time":86.35,"sim_time":10648.412155,"passed":30,"total":30,"percent":100.0},"keymgr_csr_rw":{"max_time":1.83,"sim_time":29.699668000000003,"passed":5,"total":5,"percent":100.0}},"passed":35,"total":35,"percent":100.0},"sec_cm_max_key_ver_config_regwen":{"tests":{"keymgr_random":{"max_time":86.35,"sim_time":10648.412155,"passed":30,"total":30,"percent":100.0},"keymgr_csr_rw":{"max_time":1.83,"sim_time":29.699668000000003,"passed":5,"total":5,"percent":100.0}},"passed":35,"total":35,"percent":100.0},"sec_cm_lc_ctrl_intersig_mubi":{"tests":{"keymgr_lc_disable":{"max_time":5.99,"sim_time":543.8876339999999,"passed":50,"total":50,"percent":100.0}},"passed":50,"total":50,"percent":100.0},"sec_cm_constants_consistency":{"tests":{"keymgr_hwsw_invalid_input":{"max_time":25.79,"sim_time":1158.978814,"passed":50,"total":50,"percent":100.0}},"passed":50,"total":50,"percent":100.0},"sec_cm_intersig_consistency":{"tests":{"keymgr_hwsw_invalid_input":{"max_time":25.79,"sim_time":1158.978814,"passed":50,"total":50,"percent":100.0}},"passed":50,"total":50,"percent":100.0},"sec_cm_hw_key_sw_noaccess":{"tests":{"keymgr_random":{"max_time":86.35,"sim_time":10648.412155,"passed":30,"total":30,"percent":100.0}},"passed":30,"total":30,"percent":100.0},"sec_cm_output_keys_ctrl_redun":{"tests":{"keymgr_sideload_protect":{"max_time":13.67,"sim_time":5995.394098000001,"passed":20,"total":20,"percent":100.0}},"passed":20,"total":20,"percent":100.0},"sec_cm_ctrl_fsm_sparse":{"tests":{"keymgr_sec_cm":{"max_time":13.69,"sim_time":2515.604949,"passed":5,"total":5,"percent":100.0}},"passed":5,"total":5,"percent":100.0},"sec_cm_data_fsm_sparse":{"tests":{"keymgr_sec_cm":{"max_time":13.69,"sim_time":2515.604949,"passed":5,"total":5,"percent":100.0}},"passed":5,"total":5,"percent":100.0},"sec_cm_ctrl_fsm_local_esc":{"tests":{"keymgr_sec_cm":{"max_time":13.69,"sim_time":2515.604949,"passed":5,"total":5,"percent":100.0}},"passed":5,"total":5,"percent":100.0},"sec_cm_ctrl_fsm_consistency":{"tests":{"keymgr_custom_cm":{"max_time":14.12,"sim_time":1065.4126059999999,"passed":48,"total":50,"percent":96.0}},"passed":48,"total":50,"percent":96.0},"sec_cm_ctrl_fsm_global_esc":{"tests":{"keymgr_lc_disable":{"max_time":5.99,"sim_time":543.8876339999999,"passed":50,"total":50,"percent":100.0}},"passed":50,"total":50,"percent":100.0},"sec_cm_ctrl_ctr_redun":{"tests":{"keymgr_sec_cm":{"max_time":13.69,"sim_time":2515.604949,"passed":5,"total":5,"percent":100.0}},"passed":5,"total":5,"percent":100.0},"sec_cm_kmac_if_fsm_sparse":{"tests":{"keymgr_sec_cm":{"max_time":13.69,"sim_time":2515.604949,"passed":5,"total":5,"percent":100.0}},"passed":5,"total":5,"percent":100.0},"sec_cm_kmac_if_ctr_redun":{"tests":{"keymgr_sec_cm":{"max_time":13.69,"sim_time":2515.604949,"passed":5,"total":5,"percent":100.0}},"passed":5,"total":5,"percent":100.0},"sec_cm_kmac_if_cmd_ctrl_consistency":{"tests":{"keymgr_custom_cm":{"max_time":14.12,"sim_time":1065.4126059999999,"passed":48,"total":50,"percent":96.0}},"passed":48,"total":50,"percent":96.0},"sec_cm_kmac_if_done_ctrl_consistency":{"tests":{"keymgr_custom_cm":{"max_time":14.12,"sim_time":1065.4126059999999,"passed":48,"total":50,"percent":96.0}},"passed":48,"total":50,"percent":96.0},"sec_cm_reseed_ctr_redun":{"tests":{"keymgr_sec_cm":{"max_time":13.69,"sim_time":2515.604949,"passed":5,"total":5,"percent":100.0}},"passed":5,"total":5,"percent":100.0},"sec_cm_side_load_sel_ctrl_consistency":{"tests":{"keymgr_custom_cm":{"max_time":14.12,"sim_time":1065.4126059999999,"passed":48,"total":50,"percent":96.0}},"passed":48,"total":50,"percent":96.0},"sec_cm_sideload_ctrl_fsm_sparse":{"tests":{"keymgr_sec_cm":{"max_time":13.69,"sim_time":2515.604949,"passed":5,"total":5,"percent":100.0}},"passed":5,"total":5,"percent":100.0},"sec_cm_ctrl_key_integrity":{"tests":{"keymgr_custom_cm":{"max_time":14.12,"sim_time":1065.4126059999999,"passed":48,"total":50,"percent":96.0}},"passed":48,"total":50,"percent":96.0}},"passed":323,"total":325,"percent":99.38461538461539},"V3":{"testpoints":{"stress_all_with_rand_reset":{"tests":{"keymgr_stress_all_with_rand_reset":{"max_time":18.82,"sim_time":2307.524154,"passed":11,"total":20,"percent":55.0}},"passed":11,"total":20,"percent":55.0}},"passed":11,"total":20,"percent":55.0}},"coverage":{"code":{"block":null,"line_statement":99.2,"branch":99.0,"condition_expression":98.08,"toggle":97.68,"fsm":100.0},"assertion":97.72,"functional":91.26},"cov_report_page":"/nightly/current_run/scratch/master/keymgr-sim-vcs/cov_report/dashboard.html","vplan_report_page":null,"vplan_coverage":null,"failed_jobs":{"buckets":{"UVM_ERROR (cip_base_vseq.sv:1286) [keymgr_common_vseq] Check failed (!has_outstanding_access()) Waited * cycles to issue a reset with no outstanding accesses.":[{"name":"keymgr_stress_all_with_rand_reset","qual_name":"0.keymgr_stress_all_with_rand_reset.28935614408184292590252810630294267779130642467801230223601955958897278178087","seed":28935614408184292590252810630294267779130642467801230223601955958897278178087,"line":516,"log_path":"/nightly/current_run/scratch/master/keymgr-sim-vcs/0.keymgr_stress_all_with_rand_reset/latest/run.log","log_context":["UVM_INFO @ 242197778 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER] \n","--- UVM Report catcher Summary ---\n","\n","\n"]},{"name":"keymgr_stress_all_with_rand_reset","qual_name":"2.keymgr_stress_all_with_rand_reset.11152862732110812927623158816498648417795037211316200355279872385030161516867","seed":11152862732110812927623158816498648417795037211316200355279872385030161516867,"line":228,"log_path":"/nightly/current_run/scratch/master/keymgr-sim-vcs/2.keymgr_stress_all_with_rand_reset/latest/run.log","log_context":["UVM_INFO @ 114994750 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER] \n","--- UVM Report catcher Summary ---\n","\n","\n"]},{"name":"keymgr_stress_all_with_rand_reset","qual_name":"3.keymgr_stress_all_with_rand_reset.30993871032696494467916029846236196497498442294080610552046213770947279999216","seed":30993871032696494467916029846236196497498442294080610552046213770947279999216,"line":1078,"log_path":"/nightly/current_run/scratch/master/keymgr-sim-vcs/3.keymgr_stress_all_with_rand_reset/latest/run.log","log_context":["UVM_INFO @ 2288976122 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER] \n","--- UVM Report catcher Summary ---\n","\n","\n"]},{"name":"keymgr_stress_all_with_rand_reset","qual_name":"4.keymgr_stress_all_with_rand_reset.23807550878070207962121946582869599077338761960725410309709432045175338689417","seed":23807550878070207962121946582869599077338761960725410309709432045175338689417,"line":325,"log_path":"/nightly/current_run/scratch/master/keymgr-sim-vcs/4.keymgr_stress_all_with_rand_reset/latest/run.log","log_context":["UVM_INFO @ 334242858 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER] \n","--- UVM Report catcher Summary ---\n","\n","\n"]},{"name":"keymgr_stress_all_with_rand_reset","qual_name":"10.keymgr_stress_all_with_rand_reset.56794973761956653875851460222920115517336051892337382905743159383019778050839","seed":56794973761956653875851460222920115517336051892337382905743159383019778050839,"line":615,"log_path":"/nightly/current_run/scratch/master/keymgr-sim-vcs/10.keymgr_stress_all_with_rand_reset/latest/run.log","log_context":["UVM_INFO @ 735067775 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER] \n","--- UVM Report catcher Summary ---\n","\n","\n"]},{"name":"keymgr_stress_all_with_rand_reset","qual_name":"12.keymgr_stress_all_with_rand_reset.1892928400898618200218453780041950976177954376533398143943767441356166787716","seed":1892928400898618200218453780041950976177954376533398143943767441356166787716,"line":326,"log_path":"/nightly/current_run/scratch/master/keymgr-sim-vcs/12.keymgr_stress_all_with_rand_reset/latest/run.log","log_context":["UVM_INFO @ 472079648 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER] \n","--- UVM Report catcher Summary ---\n","\n","\n"]},{"name":"keymgr_stress_all_with_rand_reset","qual_name":"16.keymgr_stress_all_with_rand_reset.79029129878608406883993814194482721730111993389362167907995420169654619139527","seed":79029129878608406883993814194482721730111993389362167907995420169654619139527,"line":181,"log_path":"/nightly/current_run/scratch/master/keymgr-sim-vcs/16.keymgr_stress_all_with_rand_reset/latest/run.log","log_context":["UVM_INFO @ 122900513 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER] \n","--- UVM Report catcher Summary ---\n","\n","\n"]},{"name":"keymgr_stress_all_with_rand_reset","qual_name":"18.keymgr_stress_all_with_rand_reset.107727852887141701767956108817617203021030607919647314864729245741854374071649","seed":107727852887141701767956108817617203021030607919647314864729245741854374071649,"line":528,"log_path":"/nightly/current_run/scratch/master/keymgr-sim-vcs/18.keymgr_stress_all_with_rand_reset/latest/run.log","log_context":["UVM_INFO @ 966907803 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER] \n","--- UVM Report catcher Summary ---\n","\n","\n"]},{"name":"keymgr_stress_all_with_rand_reset","qual_name":"19.keymgr_stress_all_with_rand_reset.18827855202610128467509263274767179975382029951467608021613103311297854114472","seed":18827855202610128467509263274767179975382029951467608021613103311297854114472,"line":267,"log_path":"/nightly/current_run/scratch/master/keymgr-sim-vcs/19.keymgr_stress_all_with_rand_reset/latest/run.log","log_context":["UVM_INFO @ 165694294 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER] \n","--- UVM Report catcher Summary ---\n","\n","\n"]}],"UVM_ERROR (cip_base_scoreboard.sv:267) [scoreboard] Check failed expected_alert[alert_name].expected == * (* [*] vs * [*]) alert recov_operation_err triggered unexpectedly":[{"name":"keymgr_kmac_rsp_err","qual_name":"2.keymgr_kmac_rsp_err.45112455098082839674800904700383877376860978081503542999152693084026278945623","seed":45112455098082839674800904700383877376860978081503542999152693084026278945623,"line":104,"log_path":"/nightly/current_run/scratch/master/keymgr-sim-vcs/2.keymgr_kmac_rsp_err/latest/run.log","log_context":["UVM_INFO @  12972076 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER] \n","--- UVM Report catcher Summary ---\n","\n","\n"]}],"UVM_FATAL (keymgr_if.sv:403) [keymgr_if] wait timeout occurred!":[{"name":"keymgr_custom_cm","qual_name":"2.keymgr_custom_cm.43649695937169651456905615067876196935751656200258980517689459766727353239717","seed":43649695937169651456905615067876196935751656200258980517689459766727353239717,"line":286,"log_path":"/nightly/current_run/scratch/master/keymgr-sim-vcs/2.keymgr_custom_cm/latest/run.log","log_context":["UVM_INFO @ 6449476692 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER] \n","--- UVM Report catcher Summary ---\n","\n","\n"]}],"UVM_ERROR (csr_utils_pkg.sv:456) [csr_utils_pkg::csr_rd_check.isolation_fork.unnamed$$_*] Check failed obs == exp (* [*] vs * [*]) Regname: keymgr_reg_block.fault_status.cmd reset value: *":[{"name":"keymgr_custom_cm","qual_name":"34.keymgr_custom_cm.5435596599002705232543313900842749951242607773934453175277880729774476716145","seed":5435596599002705232543313900842749951242607773934453175277880729774476716145,"line":253,"log_path":"/nightly/current_run/scratch/master/keymgr-sim-vcs/34.keymgr_custom_cm/latest/run.log","log_context":["UVM_INFO @ 115347490 ps: (uvm_report_catcher.svh:705) [UVM/REPORT/CATCHER] \n","--- UVM Report catcher Summary ---\n","\n","\n"]}]}},"passed":641,"total":653,"percent":98.16232771822358}