fix(core): unify autolock duration formatting
What changed, and why it matters
This commit fixes a minor user-interface inconsistency in how the Trezor device displays auto-lock delays longer than a day. Previously, the confirmation dialog showed "48 hours" while the settings menu showed "2 days" for the same delay. The fix merges two similar formatting functions into one shared implementation so all screens use the same wording. It is a cosmetic bug fix, not a security vulnerability.
No security action required. Treat as a normal UI consistency fix and review for localization/translation completeness if desired.
Security signals we found
No memory safety, cryptographic, or authorization changes
No input validation or parsing logic changes
Only string formatting and translation key renaming
UI consistency fix with no attack surface introduced
Evidence from the diff
The patch unifies format_duration_ms and format_autolock_duration into a single format_duration_ms helper in core/src/trezor/strings.py, adding the missing “day” tier so delays >= 24 hours are rendered as days everywhere. It updates all call sites (apply_settings.py, device_menu.py, Rust UI code, translation keys, mocks, tests, and UI test fixtures) to use the shared implementation and renamed plural translation keys (plurals__days, plurals__hours, etc.). Existing translation string IDs are preserved for blob compatibility.
Changed components
core/src/trezor/strings.pycore/src/apps/management/apply_settings.pycore/src/apps/homescreen/device_menu.pycore/embed/rust/src/ui/layout_eckhart/firmware/value_input_screen.rscore/translations/*.jsontests/click_tests/device_menu/common.pytests/ui_tests/fixtures.jsonInspect captured patch +105 / −138
diff --git a/core/embed/rust/librust_qstr.h b/core/embed/rust/librust_qstr.h
index 8b8b8254..ec9cf43a 100644
--- a/core/embed/rust/librust_qstr.h
+++ b/core/embed/rust/librust_qstr.h
@@ -588,11 +588,11 @@ static void _librust_qstrs(void) {
MP_QSTR_pin__wrong_pin;
MP_QSTR_pin_enabled;
MP_QSTR_plurals__contains_x_keys;
- MP_QSTR_plurals__lock_after_x_days;
- MP_QSTR_plurals__lock_after_x_hours;
- MP_QSTR_plurals__lock_after_x_milliseconds;
- MP_QSTR_plurals__lock_after_x_minutes;
- MP_QSTR_plurals__lock_after_x_seconds;
+ MP_QSTR_plurals__days;
+ MP_QSTR_plurals__hours;
+ MP_QSTR_plurals__milliseconds;
+ MP_QSTR_plurals__minutes;
+ MP_QSTR_plurals__seconds;
MP_QSTR_plurals__sign_x_actions;
MP_QSTR_plurals__transaction_of_x_operations;
MP_QSTR_plurals__x_groups_needed;
diff --git a/core/embed/rust/src/translations/generated/translated_string.rs b/core/embed/rust/src/translations/generated/translated_string.rs
index 0cb41388..1c4aa4ab 100644
--- a/core/embed/rust/src/translations/generated/translated_string.rs
+++ b/core/embed/rust/src/translations/generated/translated_string.rs
@@ -723,10 +723,10 @@ pub enum TranslatedString {
pin__turn_on = 470, // "Turn on PIN protection?"
pin__wrong_pin = 471, // "Wrong PIN"
plurals__contains_x_keys = 472, // "key|keys"
- plurals__lock_after_x_hours = 473, // "hour|hours"
- plurals__lock_after_x_milliseconds = 474, // "millisecond|milliseconds"
- plurals__lock_after_x_minutes = 475, // "minute|minutes"
- plurals__lock_after_x_seconds = 476, // "second|seconds"
+ plurals__hours = 473, // "hour|hours"
+ plurals__milliseconds = 474, // "millisecond|milliseconds"
+ plurals__minutes = 475, // "minute|minutes"
+ plurals__seconds = 476, // "second|seconds"
plurals__sign_x_actions = 477, // "action|actions"
plurals__transaction_of_x_operations = 478, // "operation|operations"
plurals__x_groups_needed = 479, // "group|groups"
@@ -1388,7 +1388,7 @@ pub enum TranslatedString {
words__wallet = 1028, // "Wallet"
words__authenticate = 1029, // "Authenticate"
auto_lock__description = 1032, // "Set the time before your Trezor locks automatically."
- plurals__lock_after_x_days = 1033, // "day|days"
+ plurals__days = 1033, // "day|days"
firmware_update__restart = 1034, // "Trezor will restart after update."
passphrase__access_hidden_wallet = 1035, // {"Bolt": "", "Caesar": "", "Delizia": "", "Eckhart": "Access Passphrase wallet"}
passphrase__hidden_wallet = 1036, // {"Bolt": "", "Caesar": "", "Delizia": "", "Eckhart": "Passphrase wallet"}
@@ -42396,11 +42396,11 @@ impl TranslatedString {
(Qstr::MP_QSTR_pin__wipe_code_exists_title, Self::pin__wipe_code_exists_title),
(Qstr::MP_QSTR_pin__wrong_pin, Self::pin__wrong_pin),
(Qstr::MP_QSTR_plurals__contains_x_keys, Self::plurals__contains_x_keys),
- (Qstr::MP_QSTR_plurals__lock_after_x_days, Self::plurals__lock_after_x_days),
- (Qstr::MP_QSTR_plurals__lock_after_x_hours, Self::plurals__lock_after_x_hours),
- (Qstr::MP_QSTR_plurals__lock_after_x_milliseconds, Self::plurals__lock_after_x_milliseconds),
- (Qstr::MP_QSTR_plurals__lock_after_x_minutes, Self::plurals__lock_after_x_minutes),
- (Qstr::MP_QSTR_plurals__lock_after_x_seconds, Self::plurals__lock_after_x_seconds),
+ (Qstr::MP_QSTR_plurals__days, Self::plurals__days),
+ (Qstr::MP_QSTR_plurals__hours, Self::plurals__hours),
+ (Qstr::MP_QSTR_plurals__milliseconds, Self::plurals__milliseconds),
+ (Qstr::MP_QSTR_plurals__minutes, Self::plurals__minutes),
+ (Qstr::MP_QSTR_plurals__seconds, Self::plurals__seconds),
(Qstr::MP_QSTR_plurals__sign_x_actions, Self::plurals__sign_x_actions),
(Qstr::MP_QSTR_plurals__transaction_of_x_operations, Self::plurals__transaction_of_x_operations),
(Qstr::MP_QSTR_plurals__x_groups_needed, Self::plurals__x_groups_needed),
diff --git a/core/embed/rust/src/ui/layout_eckhart/firmware/value_input_screen.rs b/core/embed/rust/src/ui/layout_eckhart/firmware/value_input_screen.rs
index 9cf05e17..f4897dfc 100644
--- a/core/embed/rust/src/ui/layout_eckhart/firmware/value_input_screen.rs
+++ b/core/embed/rust/src/ui/layout_eckhart/firmware/value_input_screen.rs
@@ -476,10 +476,10 @@ impl ValueInput for DurationInput {
fn repr(&self) -> (u32, Option<ShortString>) {
let units = [
- (self.duration.to_days(), TR::plurals__lock_after_x_days),
- (self.duration.to_hours(), TR::plurals__lock_after_x_hours),
- (self.duration.to_mins(), TR::plurals__lock_after_x_minutes),
- (self.duration.to_secs(), TR::plurals__lock_after_x_seconds),
+ (self.duration.to_days(), TR::plurals__days),
+ (self.duration.to_hours(), TR::plurals__hours),
+ (self.duration.to_mins(), TR::plurals__minutes),
+ (self.duration.to_secs(), TR::plurals__seconds),
];
for &(count, tr) in &units {
diff --git a/core/mocks/trezortranslate_keys.pyi b/core/mocks/trezortranslate_keys.pyi
index 32383e7a..28c7c8b2 100644
--- a/core/mocks/trezortranslate_keys.pyi
+++ b/core/mocks/trezortranslate_keys.pyi
@@ -638,11 +638,11 @@ class TR:
pin__wipe_code_exists_title: str = "Wipe code set"
pin__wrong_pin: str = "Wrong PIN"
plurals__contains_x_keys: str = "key|keys"
- plurals__lock_after_x_days: str = "day|days"
- plurals__lock_after_x_hours: str = "hour|hours"
- plurals__lock_after_x_milliseconds: str = "millisecond|milliseconds"
- plurals__lock_after_x_minutes: str = "minute|minutes"
- plurals__lock_after_x_seconds: str = "second|seconds"
+ plurals__days: str = "day|days"
+ plurals__hours: str = "hour|hours"
+ plurals__milliseconds: str = "millisecond|milliseconds"
+ plurals__minutes: str = "minute|minutes"
+ plurals__seconds: str = "second|seconds"
plurals__sign_x_actions: str = "action|actions"
plurals__transaction_of_x_operations: str = "operation|operations"
plurals__x_groups_needed: str = "group|groups"
diff --git a/core/src/apps/homescreen/device_menu.py b/core/src/apps/homescreen/device_menu.py
index d7ebe2f0..0e5f9743 100644
--- a/core/src/apps/homescreen/device_menu.py
+++ b/core/src/apps/homescreen/device_menu.py
@@ -56,8 +56,8 @@ def get_auto_lock_delay() -> tuple[str, str] | None:
autolock_delay_batt = storage_device.get_autolock_delay_battery_ms()
autolock_delay_usb = storage_device.get_autolock_delay_ms()
- autolock_delay_batt_fmg = strings.format_autolock_duration(autolock_delay_batt)
- autolock_delay_usb_fmt = strings.format_autolock_duration(autolock_delay_usb)
+ autolock_delay_batt_fmg = strings.format_duration_ms(autolock_delay_batt)
+ autolock_delay_usb_fmt = strings.format_duration_ms(autolock_delay_usb)
return (autolock_delay_batt_fmg, autolock_delay_usb_fmt)
diff --git a/core/src/apps/management/apply_settings.py b/core/src/apps/management/apply_settings.py
index 6bade0f7..d5b83d35 100644
--- a/core/src/apps/management/apply_settings.py
+++ b/core/src/apps/management/apply_settings.py
@@ -225,18 +225,11 @@ async def _require_confirm_change_display_rotation(rotation: DisplayRotation) ->
async def _require_confirm_change_autolock_delay(delay_ms: int) -> None:
from trezor.strings import format_duration_ms
- unit_plurals = {
- "millisecond": TR.plurals__lock_after_x_milliseconds,
- "second": TR.plurals__lock_after_x_seconds,
- "minute": TR.plurals__lock_after_x_minutes,
- "hour": TR.plurals__lock_after_x_hours,
- }
-
await confirm_action(
"set_autolock_delay",
TR.auto_lock__title,
description=TR.auto_lock__change_template,
- description_param=format_duration_ms(delay_ms, unit_plurals),
+ description_param=format_duration_ms(delay_ms),
br_code=BRT_PROTECT_CALL,
prompt_screen=True,
)
diff --git a/core/src/trezor/strings.py b/core/src/trezor/strings.py
index 10cbcb22..761d225a 100644
--- a/core/src/trezor/strings.py
+++ b/core/src/trezor/strings.py
@@ -86,20 +86,23 @@ def format_plural(string: str, count: int, plurals: str) -> str:
return string.format(count=count, plural=plural)
-def format_duration_ms(milliseconds: int, unit_plurals: dict[str, str]) -> str:
+def format_duration_ms(milliseconds: int) -> str:
"""
Returns human-friendly representation of a duration. Truncates all decimals.
"""
+ from . import TR
+
units: tuple[tuple[str, int], ...] = (
- (unit_plurals["hour"], 60 * 60 * 1000),
- (unit_plurals["minute"], 60 * 1000),
- (unit_plurals["second"], 1000),
+ (TR.plurals__days, 24 * 60 * 60 * 1000),
+ (TR.plurals__hours, 60 * 60 * 1000),
+ (TR.plurals__minutes, 60 * 1000),
+ (TR.plurals__seconds, 1000),
)
for unit, divisor in units:
if milliseconds >= divisor:
break
else:
- unit = unit_plurals["millisecond"]
+ unit = TR.plurals__milliseconds
divisor = 1
return format_plural("{count} {plural}", milliseconds // divisor, unit)
@@ -120,30 +123,3 @@ def format_timestamp(timestamp: int) -> str:
# that is used internally.
d = utime.gmtime2000(timestamp - _SECONDS_1970_TO_2000)
return f"{d[0]}-{d[1]:02d}-{d[2]:02d} {d[3]:02d}:{d[4]:02d}:{d[5]:02d}"
-
-
-def format_autolock_duration(auto_lock_ms: int) -> str:
- """
- Determine appropriate unit and count for auto-lock delay.
- """
- from . import TR
-
- MS = 1000
- MIN = MS * 60
- HOUR = MIN * 60
- DAY = HOUR * 24
-
- if auto_lock_ms >= DAY:
- auto_lock_num = auto_lock_ms // DAY
- auto_lock_label = TR.plurals__lock_after_x_days
- elif auto_lock_ms >= HOUR:
- auto_lock_num = auto_lock_ms // HOUR
- auto_lock_label = TR.plurals__lock_after_x_hours
- elif auto_lock_ms >= MIN:
- auto_lock_num = auto_lock_ms // MIN
- auto_lock_label = TR.plurals__lock_after_x_minutes
- else:
- auto_lock_num = auto_lock_ms // MS
- auto_lock_label = TR.plurals__lock_after_x_seconds
-
- return format_plural("{count} {plural}", auto_lock_num, auto_lock_label)
diff --git a/core/tests/test_trezor.strings.py b/core/tests/test_trezor.strings.py
index 721d491b..64ec46b5 100644
--- a/core/tests/test_trezor.strings.py
+++ b/core/tests/test_trezor.strings.py
@@ -100,13 +100,6 @@ class TestStrings(unittest.TestCase):
strings.format_plural("Hello", 1, "share")
def test_format_duration_ms(self):
- unit_plurals = {
- "millisecond": "millisecond|milliseconds",
- "second": "second|seconds",
- "minute": "minute|minutes",
- "hour": "hour|hours",
- }
-
VECTORS = [
(0, "0 milliseconds"),
(1, "1 millisecond"),
@@ -121,11 +114,14 @@ class TestStrings(unittest.TestCase):
(60 * 60 * 1000, "1 hour"),
(119 * 60 * 1000, "1 hour"),
(3 * 60 * 60 * 1000, "3 hours"),
- (48 * 60 * 60 * 1000, "48 hours"),
+ (23 * 60 * 60 * 1000, "23 hours"),
+ (24 * 60 * 60 * 1000, "1 day"),
+ (47 * 60 * 60 * 1000, "1 day"),
+ (48 * 60 * 60 * 1000, "2 days"),
]
for v in VECTORS:
- self.assertEqual(strings.format_duration_ms(v[0], unit_plurals), v[1])
+ self.assertEqual(strings.format_duration_ms(v[0]), v[1])
def test_format_timestamp(self):
VECTORS = [
diff --git a/core/translations/cs.json b/core/translations/cs.json
index 1ea64f57..15e896f5 100644
--- a/core/translations/cs.json
+++ b/core/translations/cs.json
@@ -1766,11 +1766,11 @@
},
"pin__wrong_pin": "Chybný PIN",
"plurals__contains_x_keys": "klíč|klíče|klíčů",
- "plurals__lock_after_x_days": "den|dny|dní",
- "plurals__lock_after_x_hours": "hodina|hodiny|hodin",
- "plurals__lock_after_x_milliseconds": "milisekunda|milisekundy|milisekund",
- "plurals__lock_after_x_minutes": "minuta|minuty|minut",
- "plurals__lock_after_x_seconds": "sekunda|sekundy|sekund",
+ "plurals__days": "den|dny|dní",
+ "plurals__hours": "hodina|hodiny|hodin",
+ "plurals__milliseconds": "milisekunda|milisekundy|milisekund",
+ "plurals__minutes": "minuta|minuty|minut",
+ "plurals__seconds": "sekunda|sekundy|sekund",
"plurals__sign_x_actions": "akce|akce|akcí",
"plurals__transaction_of_x_operations": "operace|operace|operací",
"plurals__x_groups_needed": "skupina|skupiny|skupin",
diff --git a/core/translations/de.json b/core/translations/de.json
index e7db66b5..e5e3f01f 100644
--- a/core/translations/de.json
+++ b/core/translations/de.json
@@ -2066,11 +2066,11 @@
"pin__wipe_code_exists_title": "Löschcode erstellt",
"pin__wrong_pin": "Falsche PIN",
"plurals__contains_x_keys": "Key|Keys",
- "plurals__lock_after_x_days": "Tag|Tage",
- "plurals__lock_after_x_hours": "Stunde|Stunden",
- "plurals__lock_after_x_milliseconds": "Millisekunde|Millisekunden",
- "plurals__lock_after_x_minutes": "Minute|Minuten",
- "plurals__lock_after_x_seconds": "Sekunde|Sekunden",
+ "plurals__days": "Tag|Tage",
+ "plurals__hours": "Stunde|Stunden",
+ "plurals__milliseconds": "Millisekunde|Millisekunden",
+ "plurals__minutes": "Minute|Minuten",
+ "plurals__seconds": "Sekunde|Sekunden",
"plurals__sign_x_actions": "Aktion|Aktionen",
"plurals__transaction_of_x_operations": "Operation|Operationen",
"plurals__x_groups_needed": "Gruppe|Gruppen",
diff --git a/core/translations/en.json b/core/translations/en.json
index ed027499..4ff7814d 100644
--- a/core/translations/en.json
+++ b/core/translations/en.json
@@ -1785,11 +1785,11 @@
"pin__wipe_code_exists_title": "Wipe code set",
"pin__wrong_pin": "Wrong PIN",
"plurals__contains_x_keys": "key|keys",
- "plurals__lock_after_x_days": "day|days",
- "plurals__lock_after_x_hours": "hour|hours",
- "plurals__lock_after_x_milliseconds": "millisecond|milliseconds",
- "plurals__lock_after_x_minutes": "minute|minutes",
- "plurals__lock_after_x_seconds": "second|seconds",
+ "plurals__days": "day|days",
+ "plurals__hours": "hour|hours",
+ "plurals__milliseconds": "millisecond|milliseconds",
+ "plurals__minutes": "minute|minutes",
+ "plurals__seconds": "second|seconds",
"plurals__sign_x_actions": "action|actions",
"plurals__transaction_of_x_operations": "operation|operations",
"plurals__x_groups_needed": "group|groups",
diff --git a/core/translations/es.json b/core/translations/es.json
index a9802600..c8a5f467 100644
--- a/core/translations/es.json
+++ b/core/translations/es.json
@@ -1776,11 +1776,11 @@
"pin__wipe_code_exists_title": "Cód. borrar configurado",
"pin__wrong_pin": "PIN incorrecto",
"plurals__contains_x_keys": "clave|claves",
- "plurals__lock_after_x_days": "día|días",
- "plurals__lock_after_x_hours": "hora|horas",
- "plurals__lock_after_x_milliseconds": "milisegundo|milisegundos",
- "plurals__lock_after_x_minutes": "minuto|minutos",
- "plurals__lock_after_x_seconds": "segundo|segundos",
+ "plurals__days": "día|días",
+ "plurals__hours": "hora|horas",
+ "plurals__milliseconds": "milisegundo|milisegundos",
+ "plurals__minutes": "minuto|minutos",
+ "plurals__seconds": "segundo|segundos",
"plurals__sign_x_actions": "acción|acciones",
"plurals__transaction_of_x_operations": "operación|operaciones",
"plurals__x_groups_needed": "grupo|grupos",
diff --git a/core/translations/fr.json b/core/translations/fr.json
index 720db356..1ff2faf8 100644
--- a/core/translations/fr.json
+++ b/core/translations/fr.json
@@ -1946,11 +1946,11 @@
"pin__wipe_code_exists_title": "Code d'effacement défini",
"pin__wrong_pin": "PIN incorrect",
"plurals__contains_x_keys": "touche|touches",
- "plurals__lock_after_x_days": "jour|jours",
- "plurals__lock_after_x_hours": "heure|heures",
- "plurals__lock_after_x_milliseconds": "milliseconde|millisecondes",
- "plurals__lock_after_x_minutes": "minute|minutes",
- "plurals__lock_after_x_seconds": "seconde|secondes",
+ "plurals__days": "jour|jours",
+ "plurals__hours": "heure|heures",
+ "plurals__milliseconds": "milliseconde|millisecondes",
+ "plurals__minutes": "minute|minutes",
+ "plurals__seconds": "seconde|secondes",
"plurals__sign_x_actions": "action|actions",
"plurals__transaction_of_x_operations": "opération|opérations",
"plurals__x_groups_needed": "groupe|groupes",
diff --git a/core/translations/order.json b/core/translations/order.json
index 59590f75..fc24160a 100644
--- a/core/translations/order.json
+++ b/core/translations/order.json
@@ -472,10 +472,10 @@
"470": "pin__turn_on",
"471": "pin__wrong_pin",
"472": "plurals__contains_x_keys",
- "473": "plurals__lock_after_x_hours",
- "474": "plurals__lock_after_x_milliseconds",
- "475": "plurals__lock_after_x_minutes",
- "476": "plurals__lock_after_x_seconds",
+ "473": "plurals__hours",
+ "474": "plurals__milliseconds",
+ "475": "plurals__minutes",
+ "476": "plurals__seconds",
"477": "plurals__sign_x_actions",
"478": "plurals__transaction_of_x_operations",
"479": "plurals__x_groups_needed",
@@ -1032,7 +1032,7 @@
"1030": "ethereum__deploy_contract",
"1031": "ethereum__title_all_input_data_template",
"1032": "auto_lock__description",
- "1033": "plurals__lock_after_x_days",
+ "1033": "plurals__days",
"1034": "firmware_update__restart",
"1035": "passphrase__access_hidden_wallet",
"1036": "passphrase__hidden_wallet",
diff --git a/core/translations/pt.json b/core/translations/pt.json
index 60120612..13a98f39 100644
--- a/core/translations/pt.json
+++ b/core/translations/pt.json
@@ -1836,11 +1836,11 @@
},
"pin__wrong_pin": "PIN incorreto",
"plurals__contains_x_keys": "chave|chaves",
- "plurals__lock_after_x_days": "dia|dias",
- "plurals__lock_after_x_hours": "hora|horas",
- "plurals__lock_after_x_milliseconds": "milissegundo|milissegundos",
- "plurals__lock_after_x_minutes": "minuto|minutos",
- "plurals__lock_after_x_seconds": "segundo|segundos",
+ "plurals__days": "dia|dias",
+ "plurals__hours": "hora|horas",
+ "plurals__milliseconds": "milissegundo|milissegundos",
+ "plurals__minutes": "minuto|minutos",
+ "plurals__seconds": "segundo|segundos",
"plurals__sign_x_actions": "ação|ações",
"plurals__transaction_of_x_operations": "operação|operações",
"plurals__x_groups_needed": "grupo|grupos",
diff --git a/tests/click_tests/device_menu/common.py b/tests/click_tests/device_menu/common.py
index 4b2cfa7c..dc595ed0 100644
--- a/tests/click_tests/device_menu/common.py
+++ b/tests/click_tests/device_menu/common.py
@@ -59,14 +59,16 @@ def format_duration_ms(milliseconds: int) -> str:
assert milliseconds >= 0
unit_plurals = {
- "millisecond": TR.plurals__lock_after_x_milliseconds,
- "second": TR.plurals__lock_after_x_seconds,
- "minute": TR.plurals__lock_after_x_minutes,
- "hour": TR.plurals__lock_after_x_hours,
+ "millisecond": TR.plurals__milliseconds,
+ "second": TR.plurals__seconds,
+ "minute": TR.plurals__minutes,
+ "hour": TR.plurals__hours,
+ "day": TR.plurals__days,
}
# Pick appropriate unit and divisor
units: tuple[tuple[str, int], ...] = (
+ (unit_plurals["day"], 24 * 60 * 60 * 1000),
(unit_plurals["hour"], 60 * 60 * 1000),
(unit_plurals["minute"], 60 * 1000),
(unit_plurals["second"], 1000),
diff --git a/tests/ui_tests/fixtures.json b/tests/ui_tests/fixtures.json
index fd9e223f..c3067522 100644
--- a/tests/ui_tests/fixtures.json
+++ b/tests/ui_tests/fixtures.json
@@ -2828,7 +2828,7 @@
"T2T1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "27306d3151fb605120fd2c5b81091945ff08ae97a687ba4c507b007cb44e0db3",
"T2T1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "f0fe0020410e12882eccf58ff4990fd4cc3ba4a5b3a2999c47fea5cf7f8825fd",
"T2T1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "955e51498b52df97ca462acf9d5936e68eeeb1dece0aa5b63a4f5b7c4af03378",
-"T2T1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "70c1f86295cb40dabffb18f3f42f2d7abb6ceca7cd01bb072e991bddec9290e6",
+"T2T1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "bfdc392bb1f6cfcbbad5831497e37009591e0047e6ab8d13c5be0d8557f0920d",
"T2T1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "e685b25abdb016693b8276378a817e2ff53edbae6b03ec9830f69ff0a705a319",
"T2T1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "b570277cfab3fa9845f5f636b02f0c0effdf3d862efe74acbcef8ae7c5b6d8a7",
"T2T1_cs_test_autolock.py::test_autolock_cancels_ui": "d6400914d0f330b4e19af58a3c007e8cef3e2642658c22610027d99dae615057",
@@ -4666,7 +4666,7 @@
"T2T1_de_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "e98c6d5ac7dea116ae8fa53cf35fbae0f6ff4bb7a1c329fdc6325662e7c42e44",
"T2T1_de_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "4fb886f108f231435dcff02f4b6601f45a0805eac1834f25843de21c205477f9",
"T2T1_de_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "d4aa91d8ab014d296ac90f7dc1574a9894427c195b415c73ac9593f7398086cb",
-"T2T1_de_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "ae0f7e18c166ccdecee784f5959e5933e4b0ab26d35ea5138a69fda6779efa0d",
+"T2T1_de_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "26b4627641a08325671568f5a98c3265931e2fd6294a548ff3ce1bc438dc0f6d",
"T2T1_de_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "47b8d4ff0bebe4a8965ef2a94d4330fa07f709c581d5a4fcb28aca69d791d30c",
"T2T1_de_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "0e2d8d1c8617c66c74e2fb028ae8891ea83f1ffd1c7325090dcbf67babaac6be",
"T2T1_de_test_autolock.py::test_autolock_cancels_ui": "1b7015972d70dd9533bbc48b9312e52042d85cf28a1dc5bf7b8967b6b6175e1b",
@@ -6504,7 +6504,7 @@
"T2T1_en_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "5dffc183107ed7752162bd6d1138e4f0153f3397dd2d64360d3f3d633927bbf1",
"T2T1_en_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "53241581d53d9edb1fcf46e1a1e151403afd93fea609955a2f993c66d2c0c34f",
"T2T1_en_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "8e08ed0e50de281bb54e79a1d5added1cd56aefba78fe923a6fb2841676515e1",
-"T2T1_en_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "41716af99cb338709760341cc034c3e5b41cff1627a5099d7d66195f4847de4a",
+"T2T1_en_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "77c5b6d408056c51f1b8f5d31b8bb26e465531259e5f8cc93be299c3d016d724",
"T2T1_en_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "28a05a12e0ce2a7890291c34977515c4f75145fb51ed50e352ed1780579b6f5c",
"T2T1_en_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "9b044c8df5f130b7cd2c5ec5800a0a29866d185140e6b0b2512e1d5afb0ff1b7",
"T2T1_en_test_autolock.py::test_autolock_cancels_ui": "6f00628e50403c4edb7342cf52a29c3d02be5a3078b80adf8fb2e9d6fb74d68e",
@@ -8360,7 +8360,7 @@
"T2T1_es_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "044426533877082e749ef69af6f7ac47ba25a14f22deb45b8fd7577395a04480",
"T2T1_es_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "c0c41213a8b27229b29d70816745fef6cfa3014eb9937562b329431d49f2b205",
"T2T1_es_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "467d469ec292db79e53ae0255aa0ccf7b8434a7677898ffd1f139d33622a54e6",
-"T2T1_es_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "7c047b09d59c051aa0dca4245f6d71bac4a768ac4654c59193ef1735063d791e",
+"T2T1_es_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "67b0540b5ef1df7e869da9517bce1c59d714dbbecd924ff94f1cc8d97ba53474",
"T2T1_es_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "f173fce8488fa557944ef330733374f9525eacd4002889106b86cac9245ec9e2",
"T2T1_es_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "fec8c8e1a9d87be3828fa25e1e27617fb21edbe5f260dc391fc63f4e0de2d5f9",
"T2T1_es_test_autolock.py::test_autolock_cancels_ui": "38057f81e99ad6d1b582803488c45233d5669c77399f3c0a5b6c5866a532716b",
@@ -10198,7 +10198,7 @@
"T2T1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "62af00f126d6ac0ff4d2e62c723ff197861f2d038bdda63fe25bcdf1a32ccef2",
"T2T1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "3c7e70af230571c9562fc7be200f7a1cc717c62f890ced36d2fb3c532d38fbbb",
"T2T1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "c1042e2ab773a55c17ca88ae6c21223ddad0ee6c8b661bf57552fd1693789c31",
-"T2T1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "79a0fe3d0dcec48f086a24a6024e156a0ff45fe6841bdc5d64c3a2bce3d80461",
+"T2T1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "6bc39e20fc597376fb29059ac3a03f2cf784b876b39cddedd83f41945e749a59",
"T2T1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "2873b6c5395d7dca16952ab65e9460cbe9b7cf8487a1e5b2fdf129bab930ba38",
"T2T1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "39506cac316b5507738908328c946462d19609134e080f559657e903a860d2bc",
"T2T1_fr_test_autolock.py::test_autolock_cancels_ui": "32b0537d6f3b2f3f07fa224a008c4f4bf3ada6ae8217a057c5b12bc196eeb5d8",
@@ -12036,7 +12036,7 @@
"T2T1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "acbe2be1c17b59710df2cc50c2c87424d98db305b8305affe4de7425be9ddcc9",
"T2T1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "bd231889b2e52727922c035e23995b8296b46a6c916e88685e2f1cf559e437b6",
"T2T1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "b187e1b035e2e2a9c03dfd62f3fb356b557e79097b57fc0ec9f07b0c0755cbdc",
-"T2T1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "01fed129ed5412ff1d4ae804ea293379ba3e7434c9952221bb227d45e7686e4e",
+"T2T1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "dcc065b5bf35b1ff9bc846d9c824150914c1dd1c777249cc8a25015a9b789f4e",
"T2T1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "ddacadce36d099a64a44203728a745c6674a4efc9d4f502a07e24d026e3d8de3",
"T2T1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "251bb3cac27ee64a718cab0f1c8dcc62df9c1ebb71a92bd4b85ef694b2a55a1a",
"T2T1_pt_test_autolock.py::test_autolock_cancels_ui": "7de16be3c66152d0f52b0ffc920d02ca8cb53d9a86d2d4f849e07bbb5724be12",
@@ -14131,7 +14131,7 @@
"T3B1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "7e16eb4793e38d045a80a446d780af3a94af0582d0607b6a6f375da5cf49e821",
"T3B1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "fc9fd585fa5a727becbddc110c71d85862986edc3ce2491dbbb708806cae4ca2",
"T3B1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "ea31bb52aafc19f9fc3f721070b1bfecc98486120a1d9b990dbfe07529118789",
-"T3B1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "a6370d9223c559389bbe726b0a32803efe41c2bd20c8db01ac2613d927b2435b",
+"T3B1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "44c7889d072ad6092232d03a68888d67f768d9bed68a95601991c034bd3054a6",
"T3B1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "40f6ab165aa6ea02e47719a79c5efecdb3bd9af7cdf83a14a50912d44d051d94",
"T3B1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "a21a8ce6ab33fe7d825b2e0e148bd81bc5dcd8127a53c458a787eaaa46aef198",
"T3B1_cs_test_autolock.py::test_autolock_cancels_ui": "f3835ca55d792757c2c20a3e6dc967b54f34b95f8125ea73ab5f7c13e53579ec",
@@ -15908,7 +15908,7 @@
"T3B1_de_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "113881c69e39d0f2b72ea8e954f0ce79a8b8aa7373b805dd6f92d135e0af08d9",
"T3B1_de_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "e5a968689328470b80e4abd5712cf33bea8b564ff4f1d5542bfa61964d966b3b",
"T3B1_de_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "56813b9a94604319cbc051fcc6d17eb99833e3e3f54ea4969a857166fa2dd6d0",
-"T3B1_de_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "49fddfdb30d696cc276a6cd2ff98cdb566fb63647a492e3fa651ffa88a7df8d7",
+"T3B1_de_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "db80bf444682d9278d301a2925ddae45140e7393bd8f4250e674560ce301afe4",
"T3B1_de_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "76290050ffc16db6ad2615eeffba7759a66bffde69ab5bc99f128623430388cc",
"T3B1_de_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "00b9b6aafb188762f37a0a02d3b27128b2a7919222fdcd7866b9375b4fd052f2",
"T3B1_de_test_autolock.py::test_autolock_cancels_ui": "ccd588f6144a068849e07b0ccf081bf9fbf2b6be9dbe26ff724517f5c1aec5e6",
@@ -17685,7 +17685,7 @@
"T3B1_en_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "dd035e6e7d523383d6adbdb340924dc31c9342388930e755bc93b8c2d90b4edc",
"T3B1_en_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "fe65239b443e6192bbe05b78aa2ffa9a4e7ac3be87da8e8cd53e42dd3d72634a",
"T3B1_en_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "02b1bedbce5b2934e5e53b4c9466eb7d1d083ed8a46d63434c114fd39a0db375",
-"T3B1_en_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "53c1e4a63b12e1b33931f2cf564f5f7b1d42ed4e3c6d4851634cdcece461012d",
+"T3B1_en_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "890937b7a95c8fdb81dd0b663c66a0118b25c563b00feb58f8096448edca8327",
"T3B1_en_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "4f36f294e5e02cec35f8d88d639c4c3321bb35f5bb5104392743bca5055ab236",
"T3B1_en_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "978c92c1873fc7259fa8b44f369f905b17d26ad739eba26d058ae82236f21f43",
"T3B1_en_test_autolock.py::test_autolock_cancels_ui": "f5e4092a023c29a884d96ef8a441eed7f29a9e957ce7a16b916883603f2710d3",
@@ -19462,7 +19462,7 @@
"T3B1_es_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "8fb50b913a5e41784adfcefc9953c739d8fc2a11ade72abab38e7511dc83f55e",
"T3B1_es_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "4f49523c49978cac0d8ca245e1d1ed505628ccba2f4dbaa5b96716d0e7685440",
"T3B1_es_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "6ccbbd60def9f884cb78093251fe3bd747dc7306ae29fbca35914373c962122e",
-"T3B1_es_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "87088010b5781e5f0b68cae3c938056468f13f2e10721a11807fde68c40ed4ec",
+"T3B1_es_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "3d7839de68871f3ecc512e208b5d250c0839ddaaf70453e7332a4efcc986d355",
"T3B1_es_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "965b34ccd5cc21dfc508deda5df85647ffe8bbade21748af8fc14bd1a5ab7cf3",
"T3B1_es_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "a68e5a652bba7e6085cba48130843a7273c295ae96f5accdc939de56b8ca9bd7",
"T3B1_es_test_autolock.py::test_autolock_cancels_ui": "075605da929d6748ddbef180553c45857f88590e77259f7d2b0e0f221240a503",
@@ -21239,7 +21239,7 @@
"T3B1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "0ed9cd2ab2464979934ce78b99d21864eeebeedac695591df9f1b13b49b6e810",
"T3B1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "57eefe7b00c11745ff75ae648adc137908b599d44d037a8354ef8333f6d745d9",
"T3B1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "1ada80e190df980505145df0d70c7b85c2a47c5c179b2f0a5f4a5dc3f5807624",
-"T3B1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "4c93d8523639a321cc92866246246c8cb07cb603919e999e85add88b8d4ee0d1",
+"T3B1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "b58305d5748f096273cf680eafe169f4e7724a67c2cb36ec3b87f3176fad7155",
"T3B1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "e15a9166e985fb7bf64b6d45c0e2aaf5b5c8ff67fac7e500adb9618ae095dd22",
"T3B1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "30da2f4540142b3c8ddefa6970cdafa6d8dffa731e5e965fdb2ee1030dd4e400",
"T3B1_fr_test_autolock.py::test_autolock_cancels_ui": "f2c03e57c8a09b7a576a347ff0027f0bff48678d4109e6ffbab70924f739a827",
@@ -23016,7 +23016,7 @@
"T3B1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "77310e39c67efc9b3bc54d542dfed55b71df897e23f3258ce339d32dbd626eff",
"T3B1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "febbc169a2c8ccf9799b5711f8b5c51a541ae94f2a157b351866d6ee182e61aa",
"T3B1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "1ff586d29411fa716a82a9ff831ecfcb8d339a0057b96199940203abcca62c21",
-"T3B1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "0e00e8009ee18af0c4291031789ceb75fa55fb62569cf7562b2dea8ee4338310",
+"T3B1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "aec701dcc4098b38feebead3a7024dbb952978d5da11c84d4cc9fefdd2e9f287",
"T3B1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "b20c2a68b86aa8f8e5db2cd209bf4f7084eb784377fb7f986bb58f84c4a5e8c5",
"T3B1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "66cefcd216856478a0807e21ddc4d009d207fc12718b6b20635237b3f280be25",
"T3B1_pt_test_autolock.py::test_autolock_cancels_ui": "24f75f3487819356773fd2754859a2c0cf33854e50de2b819db208dd8d6e15cd",
@@ -25190,7 +25190,7 @@
"T3T1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "c7211b87d48b4e88a0490af99a35c1a81f51fba4ae2fbd0b2ec655c662f3d35d",
"T3T1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "075db3e783bf63dc19cd0648fcf38a0bcd98b082bf25cdc5e661f3d2ede727e2",
"T3T1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "3813d10ac390f7e24d59b3b267ced8e1b3e5176b584631ce0a5e9b5324f81ee8",
-"T3T1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "48f3e07ab1fcd2afbcfa05cd4addd9e52e431537c39b90c0c9d8ba5e4137ae8c",
+"T3T1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "176b62b7b46e73b1320408e6f1c2df48587043a82051b88b237b991b800ac050",
"T3T1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "2f5a84011b032c478f0096fc0442d8acbb40c869ef3f8f2a32dca59f89d2b591",
"T3T1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "f1b3351a1fc97b8dd2abe095818c4d3e5b9ece47a7db99b4f391bc3f579684cc",
"T3T1_cs_test_autolock.py::test_autolock_cancels_ui": "5c6a5611bd87000fc8a9060fe60df5fbd094eb83c1d124dcb8c40ebe9ad25d07",
@@ -27002,7 +27002,7 @@
"T3T1_de_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "4bf6394f7c03f254f51d8cdc4c765911ede85a7f774a195444d53ea7cc1d0f40",
"T3T1_de_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "24fd082fbeaf300042e557535e00dc3c689121e38489ee3b9df91c027efa5ef5",
"T3T1_de_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "357d144b5cb368dbd62181c902de1bb1a6e1c43327346a622409885e67f56566",
-"T3T1_de_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "781efd0b8ebbb4135e34a64661978d7c7a4040e95f754cc96e5267794015f508",
+"T3T1_de_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "efb57501e514fe3cdaf0ecfebad3f47429d16cd2859f52fa42f34840501910bb",
"T3T1_de_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "a87c27a2dedb4f87e2a0d6527c0cd9f0e9137ee74282a14599e06cb7ec3bb0aa",
"T3T1_de_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "e21b7dbcc91ff3614b66dbc678ac06c51b73a0015b735e288ccecd52b7769f66",
"T3T1_de_test_autolock.py::test_autolock_cancels_ui": "cdcb14df792f763e0123cce3bcf62781ea5280075fcd4b84fdac9f0f9feb4829",
@@ -28814,7 +28814,7 @@
"T3T1_en_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "83da5b7b21e556834963dd8b1300fc299682af81a0b5f26248f6d599937a1851",
"T3T1_en_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "aff9fef7675ad6becc6809dd5d18f43394e7953e1a545a97ebcb8dccb9014811",
"T3T1_en_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "ff46cb981cff2cbe3d77197ae8f36de245d03cc3b632ffff94baa79bb0d3a200",
-"T3T1_en_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "f7d6d2115426ac46317c0c6f05594ad8547917f7714df1f9cb5354fa52fb3506",
+"T3T1_en_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "f421a03af4f7bbd1e2a95c8a336efe60f946a72e10fb3f86b69ba9fe0bcf1ab9",
"T3T1_en_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "97c2b0df19e9c7be2c9aa45c7b1a3321013a8ffbf875ff2b921ad1511c9c2e1e",
"T3T1_en_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "39b1d71812be545a6f63335d6a050465c847209016cc70dac04e34f5cac9e5bf",
"T3T1_en_test_autolock.py::test_autolock_cancels_ui": "f4f9708e67635c42c226af6f063f38fb18e238c87ac4123988ad0ac989e8cabe",
@@ -30626,7 +30626,7 @@
"T3T1_es_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "43cb28d7d442544cc9edaecf1f6c9e1062a2c121e2822ea995847ad5b8b573c1",
"T3T1_es_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "27e3b04231a0a79f7e2f48c46e55616f3329044d5edb9aed0e4b3769d66a6f7b",
"T3T1_es_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "1f6582c862819a8e5dfadb1309149a7a042ea7017ce0a468b13171d87eca5053",
-"T3T1_es_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "c0e4c211d2f4656787616d4957148f24710ab3b9fa28e11c7971cb693f235f2f",
+"T3T1_es_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "73f279f6d292866b097b49843ad3e21b086b2498d36af9d379f501a796fb3e49",
"T3T1_es_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "28909230c725ab381f5b415a676ece97e39252cd48b408e351534d989be026f3",
"T3T1_es_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "7ce5b3b6daf730126577534c99e79b860f6941145b0f24e3e559a960305afdda",
"T3T1_es_test_autolock.py::test_autolock_cancels_ui": "af1e236547765ecab6131492770752888943c3e4c72460d6985ac1a64a7e0a2d",
@@ -32438,7 +32438,7 @@
"T3T1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "06e26b853ede11929911f99308fa2d7396ae0a22619d533f02247f655558873f",
"T3T1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "25f495e0d89c932b4dcef69565521712ebb042005bed2ff8eef2f57cb94ced6f",
"T3T1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "28539c28375b3afd5f5f97d3fc00e3b56d8877efbd92c5db4eec67596626d0d2",
-"T3T1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "4236f88299c58890933a1c48289c8768f1f48f603f8f4866ae35f95e1b4483a1",
+"T3T1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "59637fea6d1d556b51952e961529a46a2d3ad3a48b0c5fb39ac9615ad71c11af",
"T3T1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "c0e50f68d36d075d172485fb4c3761d1d33577606ef7bb792e75c59878041a70",
"T3T1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "d75098690b956c1e10903a4ca81e77766f925977125a44a993d7fec3ef73deb3",
"T3T1_fr_test_autolock.py::test_autolock_cancels_ui": "801fc89b5a33b344ba57fb6aba395b5867c8fdf69dbbbf2d450b022a832c2637",
@@ -34250,7 +34250,7 @@
"T3T1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "4d81da454914b23d01c56fa6bb39f4266125b74a89e5f89893dac2f4ebf7b98f",
"T3T1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "ee0a9ccb00c210d44d5454b10aa3641b57c223a523170ae292539c854affadfb",
"T3T1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "c055eb93ae906f848001320e2c1f5fb4468fe7add82e06e5c51bf24cf9278a45",
-"T3T1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "4d57c37b29801d1dd591e2233b90970f8aa985754bf8fb21092c40179856d69f",
+"T3T1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "4064e77d67dcc10efb3d33a9488d6c4a8acb181301f9fde4b0afdd9891db943b",
"T3T1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "fed3a3eb366d089db7cbc82408741cbed1882e45235a476e9ef45b855849905f",
"T3T1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "6c09f5091d3036dd0cd03e950bcea273281940744975cf8e718778369af3556b",
"T3T1_pt_test_autolock.py::test_autolock_cancels_ui": "d44978e9eb062943af493ee29aede1c335c2dbe2b2f03874c33e130f605df028",
@@ -36728,7 +36728,7 @@
"T3W1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "15c428de73f3097fa0cf21d55627464eb309a15108ca71fafb1bdfedf241d01f",
"T3W1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "175ce6f1ead876f971df1ab574970ed57d0c7d61aaf6e779a0156b79b3287441",
"T3W1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "1c428b39b4cedff54659097d0f35cccff26f4988d50eea6cbe447597fb4d05b5",
-"T3W1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "e16d6a1eda9a09e419f58f2c5e498743e2149ec753f2e1d1e525b87f952a3fb8",
+"T3W1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "961a3a0cc12f973368ab3606a46273de0976dee7f7110d0a0fc4b66003cd774b",
"T3W1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "b4164eb95640e02c94012e35a7fcfdf734ee56501a52863afacdb8500bc9580b",
"T3W1_cs_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "56427e6378e99cf52999de6a5233b6038a44ed908db8c8c236c8d03f7d47692e",
"T3W1_cs_test_autolock.py::test_autolock_cancels_ui": "83ce3a415f8621c76921126df3b2bf6f736fa2ef3b9c45e114f1a05908637920",
@@ -38556,7 +38556,7 @@
"T3W1_de_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "e195ef8ae3e063bef7f988bc7161cfd28c89879f43a28b1604b210c7c1edad1c",
"T3W1_de_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "45c1fa097f20617db2b72a24da4fa805793f6ea963f5387c507bec64e22b66e4",
"T3W1_de_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "7cf73cc43f45509dda9791d7929e25a171ff40bb310c0043dce88305a94edfec",
-"T3W1_de_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "3cadfc9d64a30277bcde76befad5c2e04653002f38d06cc6366bfc5588ef5cfb",
+"T3W1_de_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "4b2ade089c100ddd35ff0b2e934ed6147be13c89590a199d1046df8e5a5a068d",
"T3W1_de_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "a667d57ddd9a32d0950203662094980aeb8715d244358a3afe8c1e297c03528e",
"T3W1_de_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "d93b4a94fd5e3e1d96948c5520f39e85b01e6911b2b29ac07de19c76d9c7719d",
"T3W1_de_test_autolock.py::test_autolock_cancels_ui": "f34b0bec12e6931cbe1cba89258933cccd5884657dd01a89f20cecef7f46256f",
@@ -40384,7 +40384,7 @@
"T3W1_en_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "d2e4164283b0513fd96c3ad784ad11024dc0f646d58c0293bc4936e320f96b49",
"T3W1_en_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "bf56d83ba8cc52fd89f71350db0e92a5176b96f4db54705cb5da5183aa83493c",
"T3W1_en_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "c362b066e6d9b2c666e8d9410e7251a1d47abb2922419769949935c187c70ace",
-"T3W1_en_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "7f63195f29ff683a3084536e0a7990d592504f98ab40b92193629ea876e4f97f",
+"T3W1_en_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "5d38cd68ba95efce4dab872ccea3c2d497dcf75413551cf7cdfe901dfef5648b",
"T3W1_en_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "dff52a05cc4e478ba0ccc624f1d40fc8727e213e57b3985bb59b7b27816e3ce8",
"T3W1_en_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "cd6ba4425f6514401f22a49b194d765c67750784b59ef5e198bc6b3745be8e65",
"T3W1_en_test_autolock.py::test_autolock_cancels_ui": "29af1ff17438a99d9524fe01a4c58b61cbe286f2319c8b6b8a96a44fea0a7b16",
@@ -42212,7 +42212,7 @@
"T3W1_es_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "85869506714e8c720787a5820631383054cb1d546ba449e6e7f575a49b23778f",
"T3W1_es_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "77c764dcdc20c4f56e49de94497d7372030c2d5f2c4ea2a6ff906e44bfa2a0de",
"T3W1_es_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "3ffba2c16154684f0e06f02feff6dfc95c57c42835fa9edddc56647412cf283b",
-"T3W1_es_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "c4ca7c27198b14ad4ea0c7156fde98eae737f6c15e20d01a8624c6befccad546",
+"T3W1_es_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "7c7ceacc37ba3757d6484bdd9dbf7fc720e9644071c0d166e79dc73adaca1ab0",
"T3W1_es_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "5234c0d3eea194b23ee10e8e7134e4d21901587d9208a865e28ce9af102ab8bf",
"T3W1_es_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "eadb7b4b0b06bd2775f560f4902abb58f862748e30ba15466656841702bfd769",
"T3W1_es_test_autolock.py::test_autolock_cancels_ui": "0ee465359446939a5d2bf4a345ad21c81da6bad76113e50b37c81e6bfae29879",
@@ -44040,7 +44040,7 @@
"T3W1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "7e2fe225136f6355d35adec8bc9a3bd1e573f31150c38017e97c5cc2a9c0fcc3",
"T3W1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "e21ba28a9c5432b3caf5966aec465b41a3b6cdbd747623e0f396f09b986eeefd",
"T3W1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "4c027552324b39d83d684f6e56e169687297321ee787795a061db2a1bc6fe260",
-"T3W1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "743bc7a5daa52396763d31004d0da468116a763364a76ecc1ac3522423bce5cd",
+"T3W1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "a821e22428e81e43d9c6f619295f599624f1050bace82e60d7d95cd1ee179966",
"T3W1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "3b5c5086cd25a5cf885aea61d28a3574fe6308edb071227762ad9fcfc7e10d31",
"T3W1_fr_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "a4905ba728ffe0e4dd271237d447a657ab375948fe8e60bab4053f401e304059",
"T3W1_fr_test_autolock.py::test_autolock_cancels_ui": "ad8e4c435f42505c262071fdbe92aa504e40b0d5c2a272e33dad4fac2061f017",
@@ -45873,7 +45873,7 @@
"T3W1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "6c79ae2f11c0cd684d8eeba28849296d1bb5e8c873e6563c8726dfd67bbad180",
"T3W1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "c37bcec3a2b6fcc28e2b390b3125a951bf89686dedc75cc38997e337d33d1d7c",
"T3W1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "859740aba55f1f297c97bb94b3363fa261717eaa99edaddcf18ffb97867d5a78",
-"T3W1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "9e976a47a39833d1bc3c2e71636575dfff4ab1404f77d6751780d1f106d0533a",
+"T3W1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "f32ec819e2b823b2265b22b7b1f98d3be473adf82fa9f83566408a8cfc67a206",
"T3W1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "f7a015cce878e885daf32fc35710c88b8dcc6d148ddcabab553080ace52af843",
"T3W1_pt_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "2f6a875e79ecc0d3fc432b750ebdbfbe707264aa6ea8cfe8c2d1a84fdbc1ca0a",
"T3W1_pt_test_autolock.py::test_autolock_cancels_ui": "ab3b01d79e0e3326ba8b58a683e7b1901c284f63b5cd120d6750916c17e815e8",
Why this scored 21/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.