{"abstract":"Every check digit on the line disagrees with the document.","category":"Check-digit algorithms","checks":8,"contract":"Machine-readable passport (TD3) second line, 44 characters of 0-9, A-Z and the filler \"<\" (else \"malformed\"). Check digits use weights 7,3,1 restarting per field, \"<\" = 0, A-Z = 10-35: document number [0:9] check [9]; birth date [13:19] check [19]; expiry [21:27] check [27]; optional data [28:42] check [42] (a \"<\" check is allowed only when the optional field is entirely filler); composite check [43] over [0:10]+[13:20]+[21:43]. Return five booleans.","evaluation_group":"w2-check_digit_algorithms-mrz-td3-line2","failed_approach":"Rotating to (3, 7, 1) still misaligns the weights.","family":"w2-check_digit_algorithms-mrz-td3-line2-weight-sequence","id":"FA-72616","implementations":{"attempt":{"sha256":"85454bc303a1074c6c8396192f9e6c12fb62f8c8708b07e1113c8db882058d7b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(line):\n    def cd(field):\n        total = 0\n        for i, ch in enumerate(field):\n            if ch == '<':\n                v = 0\n            elif ch.isdigit():\n                v = int(ch)\n            else:\n                v = ord(ch) - 55\n            total += v * (3, 7, 1)[i % 3]\n        return str(total % 10)\n    if len(line) != 44 or not line.isascii():\n        return 'malformed'\n    if any(not (c.isdigit() or 'A' <= c <= 'Z' or c == '<') for c in line):\n        return 'malformed'\n    opt_ok = line[42] == cd(line[28:42]) or (line[42] == '<' and set(line[28:42]) == {'<'})\n    comp = line[0:10] + line[13:20] + line[21:43]\n    return [line[9] == cd(line[0:9]), line[19] == cd(line[13:19]), line[27] == cd(line[21:27]), opt_ok, line[43] == cd(comp)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [\"SK5TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\"]', ['SK5TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14'], [True, True, True, True, True]], ['regression [\"S75TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\"]', ['S75TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14'], [False, True, True, True, False]], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<10'], 'malformed'], ['control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['l898902C36UTO7408122F1204159ZE184226B<<<<<10'], 'malformed'], ['control [\"HM87YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\"]', ['HM87YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0'], [True, True, True, True, True]], ['control [\"HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\"]', ['HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0'], [False, True, True, True, False]], ['control [\"ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46\"]', ['ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46'], [True, True, True, True, True]], ['control [\"ZX2H4LT816UTO1712239F2305086AOX6HQ<<<<<<<<46\"]', ['ZX2H4LT816UTO1712239F2305086AOX6HQ<<<<<<<<46'], [True, False, True, True, False]]], [['regression [\"HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\"]', ['HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0'], [False, True, True, True, False]], ['regression [\"ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46\"]', ['ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46'], [True, True, True, True, True]], ['control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['l898902C36UTO7408122F1204159ZE184226B<<<<<10'], 'malformed'], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<10'], 'malformed'], ['control [\"WEXHJ2U<<7UTO6804200F3706184<<<<<<<<<<<<<<00\"]', ['WEXHJ2U<<7UTO6804200F3706184<<<<<<<<<<<<<<00'], [True, True, False, True, False]], ['control [\"6OGHJGP443UTO4305208F2401025ORMBRF<<<<<<<<40\"]', ['6OGHJGP443UTO4305208F2401025ORMBRF<<<<<<<<40'], [True, True, True, True, True]], ['control [\"6OGHJGP443UTO7305208F2401025ORMBRF<<<<<<<<40\"]', ['6OGHJGP443UTO7305208F2401025ORMBRF<<<<<<<<40'], [True, False, True, True, False]], ['control [\"ZI4II1W798UTO2103259F3311282<<<<<<<<<<<<<<<2\"]', ['ZI4II1W798UTO2103259F3311282<<<<<<<<<<<<<<<2'], [True, True, True, True, True]]], [['regression [\"WEXHJ2U<<7UTO6804200F3006184<<<<<<<<<<<<<<00\"]', ['WEXHJ2U<<7UTO6804200F3006184<<<<<<<<<<<<<<00'], [True, True, True, True, True]], ['regression [\"WEXHJ2U<<7UTO6804200F3706184<<<<<<<<<<<<<<00\"]', ['WEXHJ2U<<7UTO6804200F3706184<<<<<<<<<<<<<<00'], [True, True, False, True, False]], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<10'], 'malformed'], ['control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['l898902C36UTO7408122F1204159ZE184226B<<<<<10'], 'malformed'], ['control [\"A6OUR3Y<<4UTO3107232F3005017P9VLEN<<<<<<<<50\"]', ['A6OUR3Y<<4UTO3107232F3005017P9VLEN<<<<<<<<50'], [True, True, True, True, True]], ['control [\"ORO5E0T416UTO4006240F2711221<<<<<<<<<<<<<<04\"]', ['ORO5E0T416UTO4006240F2711221<<<<<<<<<<<<<<04'], [True, True, True, True, True]], ['control [\"IW9C4XZ762UTO4007096F2906025PS0IN0<<<<<<<<40\"]', ['IW9C4XZ762UTO4007096F2906025PS0IN0<<<<<<<<40'], [True, True, True, True, True]], ['control [\"QQJKFSW<<6UTO2607034F2004079<<<<<<<<<<<<<<<0\"]', ['QQJKFSW<<6UTO2607034F2004079<<<<<<<<<<<<<<<0'], [True, True, True, True, True]]], [['regression [\"6OGHJGP443UTO7305208F2401025ORMBRF<<<<<<<<40\"]', ['6OGHJGP443UTO7305208F2401025ORMBRF<<<<<<<<40'], [True, False, True, True, False]], ['regression [\"ZI4II1W798UTO2103259F3311282<<<<<<<<<<<<<<<2\"]', ['ZI4II1W798UTO2103259F3311282<<<<<<<<<<<<<<<2'], [True, True, True, True, True]], ['control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['l898902C36UTO7408122F1204159ZE184226B<<<<<10'], 'malformed'], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<10'], 'malformed'], ['control [\"T8AHLV5223UTO4905147F2401173<<<<<<<<<<<<<<02\"]', ['T8AHLV5223UTO4905147F2401173<<<<<<<<<<<<<<02'], [True, True, True, True, True]], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<<10'], [True, True, True, True, True]], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<<11\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<<11'], [True, True, True, True, False]], ['control [\"AB1234<<<1UTO8501019F3001019<<<<<<<<<<<<<<<0\"]', ['AB1234<<<1UTO8501019F3001019<<<<<<<<<<<<<<<0'], [True, True, True, True, True]]], [['regression [\"ORO5E0T416UTO4006240F2711221<<<<<<<<<<<<<<04\"]', ['ORO5E0T416UTO4006240F2711221<<<<<<<<<<<<<<04'], [True, True, True, True, True]], ['regression [\"IW9C4XZ762UTO4007096F2906025PS0IN0<<<<<<<<40\"]', ['IW9C4XZ762UTO4007096F2906025PS0IN0<<<<<<<<40'], [True, True, True, True, True]], ['partial-repair [\"A6OUR3Y<<4UTO3107232F3005017P9VLEN<<<<<<<<50\"]', ['A6OUR3Y<<4UTO3107232F3005017P9VLEN<<<<<<<<50'], [True, True, True, True, True]], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<10'], 'malformed'], ['control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['l898902C36UTO7408122F1204159ZE184226B<<<<<10'], 'malformed'], ['control [\"AB1234<<<1UTO8501019F3001019<<<<<<<<<<<<<<<0\"]', ['AB1234<<<1UTO8501019F3001019<<<<<<<<<<<<<<<0'], [True, True, True, True, True]], ['control [\"X<<<<<<<<1UTO0002299F2912316ABC<<<<<<<<<<<56\"]', ['X<<<<<<<<1UTO0002299F2912316ABC<<<<<<<<<<<56'], [True, True, True, True, True]], ['control [\"C0000001<7UTO9111303F3106305PX77<<<<<<<<<<<8\"]', ['C0000001<7UTO9111303F3106305PX77<<<<<<<<<<<8'], [True, True, True, False, True]]]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"9c0ab9f2b6339601a6574c64d8e1e90ca9cbb73856d44616f4cb2a1520d307a0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(line):\n    def cd(field):\n        total = 0\n        for i, ch in enumerate(field):\n            if ch == '<':\n                v = 0\n            elif ch.isdigit():\n                v = int(ch)\n            else:\n                v = ord(ch) - 55\n            total += v * (1, 3, 7)[i % 3]\n        return str(total % 10)\n    if len(line) != 44 or not line.isascii():\n        return 'malformed'\n    if any(not (c.isdigit() or 'A' <= c <= 'Z' or c == '<') for c in line):\n        return 'malformed'\n    opt_ok = line[42] == cd(line[28:42]) or (line[42] == '<' and set(line[28:42]) == {'<'})\n    comp = line[0:10] + line[13:20] + line[21:43]\n    return [line[9] == cd(line[0:9]), line[19] == cd(line[13:19]), line[27] == cd(line[21:27]), opt_ok, line[43] == cd(comp)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [\"SK5TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\"]', ['SK5TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14'], [True, True, True, True, True]], ['regression [\"S75TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\"]', ['S75TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14'], [False, True, True, True, False]], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<10'], 'malformed'], ['control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['l898902C36UTO7408122F1204159ZE184226B<<<<<10'], 'malformed'], ['control [\"HM87YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\"]', ['HM87YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0'], [True, True, True, True, True]], ['control [\"HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\"]', ['HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0'], [False, True, True, True, False]], ['control [\"ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46\"]', ['ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46'], [True, True, True, True, True]], ['control [\"ZX2H4LT816UTO1712239F2305086AOX6HQ<<<<<<<<46\"]', ['ZX2H4LT816UTO1712239F2305086AOX6HQ<<<<<<<<46'], [True, False, True, True, False]]], [['regression [\"HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\"]', ['HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0'], [False, True, True, True, False]], ['regression [\"ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46\"]', ['ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46'], [True, True, True, True, True]], ['control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['l898902C36UTO7408122F1204159ZE184226B<<<<<10'], 'malformed'], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<10'], 'malformed'], ['control [\"WEXHJ2U<<7UTO6804200F3706184<<<<<<<<<<<<<<00\"]', ['WEXHJ2U<<7UTO6804200F3706184<<<<<<<<<<<<<<00'], [True, True, False, True, False]], ['control [\"6OGHJGP443UTO4305208F2401025ORMBRF<<<<<<<<40\"]', ['6OGHJGP443UTO4305208F2401025ORMBRF<<<<<<<<40'], [True, True, True, True, True]], ['control [\"6OGHJGP443UTO7305208F2401025ORMBRF<<<<<<<<40\"]', ['6OGHJGP443UTO7305208F2401025ORMBRF<<<<<<<<40'], [True, False, True, True, False]], ['control [\"ZI4II1W798UTO2103259F3311282<<<<<<<<<<<<<<<2\"]', ['ZI4II1W798UTO2103259F3311282<<<<<<<<<<<<<<<2'], [True, True, True, True, True]]], [['regression [\"WEXHJ2U<<7UTO6804200F3006184<<<<<<<<<<<<<<00\"]', ['WEXHJ2U<<7UTO6804200F3006184<<<<<<<<<<<<<<00'], [True, True, True, True, True]], ['regression [\"WEXHJ2U<<7UTO6804200F3706184<<<<<<<<<<<<<<00\"]', ['WEXHJ2U<<7UTO6804200F3706184<<<<<<<<<<<<<<00'], [True, True, False, True, False]], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<10'], 'malformed'], ['control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['l898902C36UTO7408122F1204159ZE184226B<<<<<10'], 'malformed'], ['control [\"A6OUR3Y<<4UTO3107232F3005017P9VLEN<<<<<<<<50\"]', ['A6OUR3Y<<4UTO3107232F3005017P9VLEN<<<<<<<<50'], [True, True, True, True, True]], ['control [\"ORO5E0T416UTO4006240F2711221<<<<<<<<<<<<<<04\"]', ['ORO5E0T416UTO4006240F2711221<<<<<<<<<<<<<<04'], [True, True, True, True, True]], ['control [\"IW9C4XZ762UTO4007096F2906025PS0IN0<<<<<<<<40\"]', ['IW9C4XZ762UTO4007096F2906025PS0IN0<<<<<<<<40'], [True, True, True, True, True]], ['control [\"QQJKFSW<<6UTO2607034F2004079<<<<<<<<<<<<<<<0\"]', ['QQJKFSW<<6UTO2607034F2004079<<<<<<<<<<<<<<<0'], [True, True, True, True, True]]], [['regression [\"6OGHJGP443UTO7305208F2401025ORMBRF<<<<<<<<40\"]', ['6OGHJGP443UTO7305208F2401025ORMBRF<<<<<<<<40'], [True, False, True, True, False]], ['regression [\"ZI4II1W798UTO2103259F3311282<<<<<<<<<<<<<<<2\"]', ['ZI4II1W798UTO2103259F3311282<<<<<<<<<<<<<<<2'], [True, True, True, True, True]], ['control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['l898902C36UTO7408122F1204159ZE184226B<<<<<10'], 'malformed'], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<10'], 'malformed'], ['control [\"T8AHLV5223UTO4905147F2401173<<<<<<<<<<<<<<02\"]', ['T8AHLV5223UTO4905147F2401173<<<<<<<<<<<<<<02'], [True, True, True, True, True]], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<<10'], [True, True, True, True, True]], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<<11\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<<11'], [True, True, True, True, False]], ['control [\"AB1234<<<1UTO8501019F3001019<<<<<<<<<<<<<<<0\"]', ['AB1234<<<1UTO8501019F3001019<<<<<<<<<<<<<<<0'], [True, True, True, True, True]]], [['regression [\"ORO5E0T416UTO4006240F2711221<<<<<<<<<<<<<<04\"]', ['ORO5E0T416UTO4006240F2711221<<<<<<<<<<<<<<04'], [True, True, True, True, True]], ['regression [\"IW9C4XZ762UTO4007096F2906025PS0IN0<<<<<<<<40\"]', ['IW9C4XZ762UTO4007096F2906025PS0IN0<<<<<<<<40'], [True, True, True, True, True]], ['partial-repair [\"A6OUR3Y<<4UTO3107232F3005017P9VLEN<<<<<<<<50\"]', ['A6OUR3Y<<4UTO3107232F3005017P9VLEN<<<<<<<<50'], [True, True, True, True, True]], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<10'], 'malformed'], ['control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['l898902C36UTO7408122F1204159ZE184226B<<<<<10'], 'malformed'], ['control [\"AB1234<<<1UTO8501019F3001019<<<<<<<<<<<<<<<0\"]', ['AB1234<<<1UTO8501019F3001019<<<<<<<<<<<<<<<0'], [True, True, True, True, True]], ['control [\"X<<<<<<<<1UTO0002299F2912316ABC<<<<<<<<<<<56\"]', ['X<<<<<<<<1UTO0002299F2912316ABC<<<<<<<<<<<56'], [True, True, True, True, True]], ['control [\"C0000001<7UTO9111303F3106305PX77<<<<<<<<<<<8\"]', ['C0000001<7UTO9111303F3106305PX77<<<<<<<<<<<8'], [True, True, True, False, True]]]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"bd5699bb1e45f9d7c3db8fafd7477d64b80e48aa3c0435a300e9039f90dbd371","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(line):\n    def cd(field):\n        total = 0\n        for i, ch in enumerate(field):\n            if ch == '<':\n                v = 0\n            elif ch.isdigit():\n                v = int(ch)\n            else:\n                v = ord(ch) - 55\n            total += v * (7, 3, 1)[i % 3]\n        return str(total % 10)\n    if len(line) != 44 or not line.isascii():\n        return 'malformed'\n    if any(not (c.isdigit() or 'A' <= c <= 'Z' or c == '<') for c in line):\n        return 'malformed'\n    opt_ok = line[42] == cd(line[28:42]) or (line[42] == '<' and set(line[28:42]) == {'<'})\n    comp = line[0:10] + line[13:20] + line[21:43]\n    return [line[9] == cd(line[0:9]), line[19] == cd(line[13:19]), line[27] == cd(line[21:27]), opt_ok, line[43] == cd(comp)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [\"SK5TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\"]', ['SK5TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14'], [True, True, True, True, True]], ['regression [\"S75TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\"]', ['S75TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14'], [False, True, True, True, False]], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<10'], 'malformed'], ['control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['l898902C36UTO7408122F1204159ZE184226B<<<<<10'], 'malformed'], ['control [\"HM87YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\"]', ['HM87YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0'], [True, True, True, True, True]], ['control [\"HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\"]', ['HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0'], [False, True, True, True, False]], ['control [\"ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46\"]', ['ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46'], [True, True, True, True, True]], ['control [\"ZX2H4LT816UTO1712239F2305086AOX6HQ<<<<<<<<46\"]', ['ZX2H4LT816UTO1712239F2305086AOX6HQ<<<<<<<<46'], [True, False, True, True, False]]], [['regression [\"HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\"]', ['HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0'], [False, True, True, True, False]], ['regression [\"ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46\"]', ['ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46'], [True, True, True, True, True]], ['control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['l898902C36UTO7408122F1204159ZE184226B<<<<<10'], 'malformed'], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<10'], 'malformed'], ['control [\"WEXHJ2U<<7UTO6804200F3706184<<<<<<<<<<<<<<00\"]', ['WEXHJ2U<<7UTO6804200F3706184<<<<<<<<<<<<<<00'], [True, True, False, True, False]], ['control [\"6OGHJGP443UTO4305208F2401025ORMBRF<<<<<<<<40\"]', ['6OGHJGP443UTO4305208F2401025ORMBRF<<<<<<<<40'], [True, True, True, True, True]], ['control [\"6OGHJGP443UTO7305208F2401025ORMBRF<<<<<<<<40\"]', ['6OGHJGP443UTO7305208F2401025ORMBRF<<<<<<<<40'], [True, False, True, True, False]], ['control [\"ZI4II1W798UTO2103259F3311282<<<<<<<<<<<<<<<2\"]', ['ZI4II1W798UTO2103259F3311282<<<<<<<<<<<<<<<2'], [True, True, True, True, True]]], [['regression [\"WEXHJ2U<<7UTO6804200F3006184<<<<<<<<<<<<<<00\"]', ['WEXHJ2U<<7UTO6804200F3006184<<<<<<<<<<<<<<00'], [True, True, True, True, True]], ['regression [\"WEXHJ2U<<7UTO6804200F3706184<<<<<<<<<<<<<<00\"]', ['WEXHJ2U<<7UTO6804200F3706184<<<<<<<<<<<<<<00'], [True, True, False, True, False]], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<10'], 'malformed'], ['control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['l898902C36UTO7408122F1204159ZE184226B<<<<<10'], 'malformed'], ['control [\"A6OUR3Y<<4UTO3107232F3005017P9VLEN<<<<<<<<50\"]', ['A6OUR3Y<<4UTO3107232F3005017P9VLEN<<<<<<<<50'], [True, True, True, True, True]], ['control [\"ORO5E0T416UTO4006240F2711221<<<<<<<<<<<<<<04\"]', ['ORO5E0T416UTO4006240F2711221<<<<<<<<<<<<<<04'], [True, True, True, True, True]], ['control [\"IW9C4XZ762UTO4007096F2906025PS0IN0<<<<<<<<40\"]', ['IW9C4XZ762UTO4007096F2906025PS0IN0<<<<<<<<40'], [True, True, True, True, True]], ['control [\"QQJKFSW<<6UTO2607034F2004079<<<<<<<<<<<<<<<0\"]', ['QQJKFSW<<6UTO2607034F2004079<<<<<<<<<<<<<<<0'], [True, True, True, True, True]]], [['regression [\"6OGHJGP443UTO7305208F2401025ORMBRF<<<<<<<<40\"]', ['6OGHJGP443UTO7305208F2401025ORMBRF<<<<<<<<40'], [True, False, True, True, False]], ['regression [\"ZI4II1W798UTO2103259F3311282<<<<<<<<<<<<<<<2\"]', ['ZI4II1W798UTO2103259F3311282<<<<<<<<<<<<<<<2'], [True, True, True, True, True]], ['control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['l898902C36UTO7408122F1204159ZE184226B<<<<<10'], 'malformed'], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<10'], 'malformed'], ['control [\"T8AHLV5223UTO4905147F2401173<<<<<<<<<<<<<<02\"]', ['T8AHLV5223UTO4905147F2401173<<<<<<<<<<<<<<02'], [True, True, True, True, True]], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<<10'], [True, True, True, True, True]], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<<11\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<<11'], [True, True, True, True, False]], ['control [\"AB1234<<<1UTO8501019F3001019<<<<<<<<<<<<<<<0\"]', ['AB1234<<<1UTO8501019F3001019<<<<<<<<<<<<<<<0'], [True, True, True, True, True]]], [['regression [\"ORO5E0T416UTO4006240F2711221<<<<<<<<<<<<<<04\"]', ['ORO5E0T416UTO4006240F2711221<<<<<<<<<<<<<<04'], [True, True, True, True, True]], ['regression [\"IW9C4XZ762UTO4007096F2906025PS0IN0<<<<<<<<40\"]', ['IW9C4XZ762UTO4007096F2906025PS0IN0<<<<<<<<40'], [True, True, True, True, True]], ['partial-repair [\"A6OUR3Y<<4UTO3107232F3005017P9VLEN<<<<<<<<50\"]', ['A6OUR3Y<<4UTO3107232F3005017P9VLEN<<<<<<<<50'], [True, True, True, True, True]], ['control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]', ['L898902C36UTO7408122F1204159ZE184226B<<<<10'], 'malformed'], ['control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]', ['l898902C36UTO7408122F1204159ZE184226B<<<<<10'], 'malformed'], ['control [\"AB1234<<<1UTO8501019F3001019<<<<<<<<<<<<<<<0\"]', ['AB1234<<<1UTO8501019F3001019<<<<<<<<<<<<<<<0'], [True, True, True, True, True]], ['control [\"X<<<<<<<<1UTO0002299F2912316ABC<<<<<<<<<<<56\"]', ['X<<<<<<<<1UTO0002299F2912316ABC<<<<<<<<<<<56'], [True, True, True, True, True]], ['control [\"C0000001<7UTO9111303F3106305PX77<<<<<<<<<<<8\"]', ['C0000001<7UTO9111303F3106305PX77<<<<<<<<<<<8'], [True, True, True, False, True]]]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic, bounded teaching model of the named scheme under the stated contract; not a certified validator. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-check_digit_algorithms-mrz-td3-line2-weight-sequence","generated_at":"2026-09-29T14:48:40.096565+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Border-control kiosks verify MRZ check digits to catch OCR misreads before a database query.","repair":"Use weights 7, 3, 1 repeating from the first character of each field.","root_cause":"The repeating weight triple is reversed to (1, 3, 7).","sha256":"737ceee69699eb63de01cb4e867681003cf5ee6392a6e9b3a7cefebb448658c8","title":"MRZ weights run 1,3,7 · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.612,"exit_code":1,"observations":[{"actual":[true,false,false,false,false],"check":"regression [\"SK5TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\"]","expected":[true,true,true,true,true],"passed":false},{"actual":[false,false,false,false,false],"check":"regression [\"S75TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\"]","expected":[false,true,true,true,false],"passed":false},{"actual":"malformed","check":"control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]","expected":"malformed","passed":true},{"actual":"malformed","check":"control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]","expected":"malformed","passed":true},{"actual":[false,false,false,true,false],"check":"control [\"HM87YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\"]","expected":[true,true,true,true,true],"passed":false},{"actual":[false,false,false,true,false],"check":"control [\"HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\"]","expected":[false,true,true,true,false],"passed":false},{"actual":[false,true,false,true,false],"check":"control [\"ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46\"]","expected":[true,true,true,true,true],"passed":false},{"actual":[false,false,false,true,false],"check":"control [\"ZX2H4LT816UTO1712239F2305086AOX6HQ<<<<<<<<46\"]","expected":[true,false,true,true,false],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [\\\"SK5TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\\\"]\", \"actual\": [true, false, false, false, false], \"expected\": [true, true, true, true, true], \"passed\": false}, {\"check\": \"regression [\\\"S75TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\\\"]\", \"actual\": [false, false, false, false, false], \"expected\": [false, true, true, true, false], \"passed\": false}, {\"check\": \"control [\\\"L898902C36UTO7408122F1204159ZE184226B<<<<10\\\"]\", \"actual\": \"malformed\", \"expected\": \"malformed\", \"passed\": true}, {\"check\": \"control [\\\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\\\"]\", \"actual\": \"malformed\", \"expected\": \"malformed\", \"passed\": true}, {\"check\": \"control [\\\"HM87YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\\\"]\", \"actual\": [false, false, false, true, false], \"expected\": [true, true, true, true, true], \"passed\": false}, {\"check\": \"control [\\\"HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\\\"]\", \"actual\": [false, false, false, true, false], \"expected\": [false, true, true, true, false], \"passed\": false}, {\"check\": \"control [\\\"ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46\\\"]\", \"actual\": [false, true, false, true, false], \"expected\": [true, true, true, true, true], \"passed\": false}, {\"check\": \"control [\\\"ZX2H4LT816UTO1712239F2305086AOX6HQ<<<<<<<<46\\\"]\", \"actual\": [false, false, false, true, false], \"expected\": [true, false, true, true, false], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.57,"exit_code":1,"observations":[{"actual":[false,false,false,false,false],"check":"regression [\"SK5TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\"]","expected":[true,true,true,true,true],"passed":false},{"actual":[false,false,false,false,false],"check":"regression [\"S75TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\"]","expected":[false,true,true,true,false],"passed":false},{"actual":"malformed","check":"control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]","expected":"malformed","passed":true},{"actual":"malformed","check":"control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]","expected":"malformed","passed":true},{"actual":[true,false,false,true,false],"check":"control [\"HM87YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\"]","expected":[true,true,true,true,true],"passed":false},{"actual":[false,false,false,true,false],"check":"control [\"HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\"]","expected":[false,true,true,true,false],"passed":false},{"actual":[false,false,false,false,false],"check":"control [\"ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46\"]","expected":[true,true,true,true,true],"passed":false},{"actual":[false,false,false,false,false],"check":"control [\"ZX2H4LT816UTO1712239F2305086AOX6HQ<<<<<<<<46\"]","expected":[true,false,true,true,false],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [\\\"SK5TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\\\"]\", \"actual\": [false, false, false, false, false], \"expected\": [true, true, true, true, true], \"passed\": false}, {\"check\": \"regression [\\\"S75TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\\\"]\", \"actual\": [false, false, false, false, false], \"expected\": [false, true, true, true, false], \"passed\": false}, {\"check\": \"control [\\\"L898902C36UTO7408122F1204159ZE184226B<<<<10\\\"]\", \"actual\": \"malformed\", \"expected\": \"malformed\", \"passed\": true}, {\"check\": \"control [\\\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\\\"]\", \"actual\": \"malformed\", \"expected\": \"malformed\", \"passed\": true}, {\"check\": \"control [\\\"HM87YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\\\"]\", \"actual\": [true, false, false, true, false], \"expected\": [true, true, true, true, true], \"passed\": false}, {\"check\": \"control [\\\"HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\\\"]\", \"actual\": [false, false, false, true, false], \"expected\": [false, true, true, true, false], \"passed\": false}, {\"check\": \"control [\\\"ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46\\\"]\", \"actual\": [false, false, false, false, false], \"expected\": [true, true, true, true, true], \"passed\": false}, {\"check\": \"control [\\\"ZX2H4LT816UTO1712239F2305086AOX6HQ<<<<<<<<46\\\"]\", \"actual\": [false, false, false, false, false], \"expected\": [true, false, true, true, false], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.169,"exit_code":0,"observations":[{"actual":[true,true,true,true,true],"check":"regression [\"SK5TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\"]","expected":[true,true,true,true,true],"passed":true},{"actual":[false,true,true,true,false],"check":"regression [\"S75TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\"]","expected":[false,true,true,true,false],"passed":true},{"actual":"malformed","check":"control [\"L898902C36UTO7408122F1204159ZE184226B<<<<10\"]","expected":"malformed","passed":true},{"actual":"malformed","check":"control [\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\"]","expected":"malformed","passed":true},{"actual":[true,true,true,true,true],"check":"control [\"HM87YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\"]","expected":[true,true,true,true,true],"passed":true},{"actual":[false,true,true,true,false],"check":"control [\"HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\"]","expected":[false,true,true,true,false],"passed":true},{"actual":[true,true,true,true,true],"check":"control [\"ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46\"]","expected":[true,true,true,true,true],"passed":true},{"actual":[true,false,true,true,false],"check":"control [\"ZX2H4LT816UTO1712239F2305086AOX6HQ<<<<<<<<46\"]","expected":[true,false,true,true,false],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [\\\"SK5TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\\\"]\", \"actual\": [true, true, true, true, true], \"expected\": [true, true, true, true, true], \"passed\": true}, {\"check\": \"regression [\\\"S75TG49<<9UTO2004046F2210193O66P4C<<<<<<<<14\\\"]\", \"actual\": [false, true, true, true, false], \"expected\": [false, true, true, true, false], \"passed\": true}, {\"check\": \"control [\\\"L898902C36UTO7408122F1204159ZE184226B<<<<10\\\"]\", \"actual\": \"malformed\", \"expected\": \"malformed\", \"passed\": true}, {\"check\": \"control [\\\"l898902C36UTO7408122F1204159ZE184226B<<<<<10\\\"]\", \"actual\": \"malformed\", \"expected\": \"malformed\", \"passed\": true}, {\"check\": \"control [\\\"HM87YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\\\"]\", \"actual\": [true, true, true, true, true], \"expected\": [true, true, true, true, true], \"passed\": true}, {\"check\": \"control [\\\"HM77YWD225UTO1907195F3112216<<<<<<<<<<<<<<<0\\\"]\", \"actual\": [false, true, true, true, false], \"expected\": [false, true, true, true, false], \"passed\": true}, {\"check\": \"control [\\\"ZX2H4LT816UTO1612239F2305086AOX6HQ<<<<<<<<46\\\"]\", \"actual\": [true, true, true, true, true], \"expected\": [true, true, true, true, true], \"passed\": true}, {\"check\": \"control [\\\"ZX2H4LT816UTO1712239F2305086AOX6HQ<<<<<<<<46\\\"]\", \"actual\": [true, false, true, true, false], \"expected\": [true, false, true, true, false], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}