{"abstract":"Holding the step input races through the whole sequence.","category":"PLC ladder logic scan cycles","checks":8,"contract":"Sequencer output (SQO). words is the sequencer file whose element 0 is the home step; position starts at 0. On each rising edge of enable the position advances; past the last element it wraps to 1 (not 0). Each advance writes dest = (dest AND NOT mask) OR (word AND mask) in 16 bits. A reset input returns position to 0 without writing dest and has priority over a coincident advance; the enable edge memory is always updated. steps is a list of [enable, reset]; return [position, dest] per scan.","evaluation_group":"w2-plc-ladder-logic-scan-cycles-sqo-sequencer","failed_approach":"Stopping at the last element instead of edge-detecting still cannot wrap.","family":"w2-plc-ladder-logic-scan-cycles-sqo-sequencer-advance-edge","id":"FA-92096","implementations":{"attempt":{"sha256":"565404a6ea7389b592fe8405f2ead375a83772be171d10bffe6ceb69afe4e99d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(words, mask, start_dest, steps):\n    pos = 0\n    dest = start_dest\n    prev = False\n    length = len(words) - 1\n    out = []\n    for en, res in steps:\n        en = bool(en)\n        if res:\n            pos = 0\n        elif en and not prev and pos < length:\n            pos += 1\n            if pos > length:\n                pos = 1\n            dest = (dest & ~mask & 0xFFFF) | (words[pos] & mask)\n        prev = en\n        out.append([pos, dest])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: wrap past last step',\n   [[0, 17, 34],\n    255,\n    43776,\n    [[True, False], [False, False], [True, False], [False, False], [True, False], [True, False]]],\n   [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]]],\n  ['regression: scenario 5',\n   [[31779, 18767, 26849],\n    3855,\n    17424,\n    [[True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False]]],\n   [[1, 18719],\n    [1, 18719],\n    [1, 18719],\n    [2, 18449],\n    [2, 18449],\n    [2, 18449],\n    [2, 18449],\n    [2, 18449],\n    [2, 18449],\n    [2, 18449],\n    [1, 18719],\n    [1, 18719]]],\n  ['control: two element file',\n   [[5, 9], 65535, 0, [[True, False], [False, False], [True, False], [False, False], [True, False]]],\n   [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]],\n  ['control: reset while enabled',\n   [[0, 3, 12], 15, 65520, [[True, False], [True, True], [False, False], [True, False]]],\n   [[1, 65523], [0, 65523], [0, 65523], [1, 65523]]],\n  ['control: reset with advance',\n   [[0, 256, 512], 65280, 170, [[False, False], [True, True], [False, False], [True, False]]],\n   [[0, 170], [0, 170], [0, 170], [1, 426]]],\n  ['regression: scenario 1',\n   [[26918, 50611, 8879, 59828],\n    65535,\n    52597,\n    [[False, False],\n     [False, False],\n     [False, False],\n     [True, True],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False]]],\n   [[0, 52597],\n    [0, 52597],\n    [0, 52597],\n    [0, 52597],\n    [0, 52597],\n    [0, 52597],\n    [0, 52597],\n    [1, 50611],\n    [1, 50611],\n    [1, 50611]]],\n  ['control: scenario 2',\n   [[42968, 29173, 43546],\n    255,\n    5794,\n    [[True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, True],\n     [False, False]]],\n   [[1, 5877],\n    [1, 5877],\n    [1, 5877],\n    [1, 5877],\n    [2, 5658],\n    [2, 5658],\n    [2, 5658],\n    [2, 5658],\n    [0, 5658],\n    [0, 5658]]],\n  ['regression: scenario 3',\n   [[16785, 47110, 21847, 45361],\n    61440,\n    41889,\n    [[True, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False]]],\n   [[1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985]]]],\n [['regression: scenario 1',\n   [[8488, 43469, 38296, 4034],\n    255,\n    44563,\n    [[False, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False]]],\n   [[0, 44563],\n    [1, 44749],\n    [1, 44749],\n    [1, 44749],\n    [1, 44749],\n    [2, 44696],\n    [2, 44696],\n    [3, 44738],\n    [3, 44738],\n    [1, 44749],\n    [1, 44749],\n    [2, 44696]]],\n  ['regression: scenario 21',\n   [[35992, 43053, 59445],\n    65535,\n    52164,\n    [[False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [False, True],\n     [False, False]]],\n   [[0, 52164],\n    [1, 43053],\n    [1, 43053],\n    [2, 59445],\n    [2, 59445],\n    [1, 43053],\n    [1, 43053],\n    [2, 59445],\n    [2, 59445],\n    [2, 59445],\n    [2, 59445],\n    [0, 59445],\n    [0, 59445]]],\n  ['regression: wrap past last step',\n   [[0, 17, 34],\n    255,\n    43776,\n    [[True, False], [False, False], [True, False], [False, False], [True, False], [True, False]]],\n   [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]]],\n  ['control: two element file',\n   [[5, 9], 65535, 0, [[True, False], [False, False], [True, False], [False, False], [True, False]]],\n   [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]],\n  ['control: reset while enabled',\n   [[0, 3, 12], 15, 65520, [[True, False], [True, True], [False, False], [True, False]]],\n   [[1, 65523], [0, 65523], [0, 65523], [1, 65523]]],\n  ['control: reset with advance',\n   [[0, 256, 512], 65280, 170, [[False, False], [True, True], [False, False], [True, False]]],\n   [[0, 170], [0, 170], [0, 170], [1, 426]]],\n  ['regression: scenario 2',\n   [[43079, 20640, 23622, 26553],\n    255,\n    15109,\n    [[False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, True]]],\n   [[0, 15109],\n    [0, 15109],\n    [1, 15264],\n    [1, 15264],\n    [1, 15264],\n    [1, 15264],\n    [2, 15174],\n    [2, 15174],\n    [2, 15174],\n    [2, 15174],\n    [3, 15289],\n    [0, 15289]]],\n  ['regression: scenario 3',\n   [[16618, 36272, 41924, 55813],\n    3855,\n    48911,\n    [[True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, False]]],\n   [[1, 48384], [1, 48384], [1, 48384], [1, 48384], [1, 48384], [2, 45828], [2, 45828]]]],\n [['regression: scenario 3',\n   [[45414, 65173, 31151, 4829],\n    3855,\n    46402,\n    [[False, True],\n     [False, False],\n     [True, True],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [True, False]]],\n   [[0, 46402],\n    [0, 46402],\n    [0, 46402],\n    [0, 46402],\n    [0, 46402],\n    [0, 46402],\n    [1, 48709],\n    [1, 48709],\n    [1, 48709]]],\n  ['regression: scenario 6',\n   [[53426, 5627, 11199, 28564],\n    3855,\n    26531,\n    [[True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False]]],\n   [[1, 26027],\n    [1, 26027],\n    [1, 26027],\n    [2, 27567],\n    [2, 27567],\n    [2, 27567],\n    [2, 27567],\n    [3, 28580],\n    [3, 28580],\n    [3, 28580],\n    [1, 26027],\n    [1, 26027],\n    [1, 26027],\n    [1, 26027]]],\n  ['regression: wrap past last step',\n   [[0, 17, 34],\n    255,\n    43776,\n    [[True, False], [False, False], [True, False], [False, False], [True, False], [True, False]]],\n   [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]]],\n  ['control: two element file',\n   [[5, 9], 65535, 0, [[True, False], [False, False], [True, False], [False, False], [True, False]]],\n   [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]],\n  ['control: reset while enabled',\n   [[0, 3, 12], 15, 65520, [[True, False], [True, True], [False, False], [True, False]]],\n   [[1, 65523], [0, 65523], [0, 65523], [1, 65523]]],\n  ['control: reset with advance',\n   [[0, 256, 512], 65280, 170, [[False, False], [True, True], [False, False], [True, False]]],\n   [[0, 170], [0, 170], [0, 170], [1, 426]]],\n  ['control: scenario 1',\n   [[38610, 2229],\n    65535,\n    14704,\n    [[False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, True],\n     [False, False]]],\n   [[0, 14704], [0, 14704], [0, 14704], [0, 14704], [0, 14704], [1, 2229], [1, 2229], [0, 2229], [0, 2229]]],\n  ['regression: scenario 2',\n   [[36741, 30504],\n    65535,\n    26589,\n    [[True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, True],\n     [True, False],\n     [False, False]]],\n   [[1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [0, 30504],\n    [0, 30504],\n    [0, 30504]]]],\n [['regression: scenario 6',\n   [[41259, 64194, 24167],\n    255,\n    50548,\n    [[True, False],\n     [False, False],\n     [True, True],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False]]],\n   [[1, 50626], [1, 50626], [0, 50626], [0, 50626], [1, 50626], [1, 50626], [1, 50626]]],\n  ['regression: scenario 34',\n   [[14407, 35134, 61773],\n    65535,\n    32422,\n    [[True, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False]]],\n   [[1, 35134],\n    [1, 35134],\n    [2, 61773],\n    [2, 61773],\n    [2, 61773],\n    [1, 35134],\n    [1, 35134],\n    [2, 61773],\n    [2, 61773],\n    [2, 61773],\n    [2, 61773],\n    [2, 61773],\n    [2, 61773]]],\n  ['regression: wrap past last step',\n   [[0, 17, 34],\n    255,\n    43776,\n    [[True, False], [False, False], [True, False], [False, False], [True, False], [True, False]]],\n   [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]]],\n  ['control: two element file',\n   [[5, 9], 65535, 0, [[True, False], [False, False], [True, False], [False, False], [True, False]]],\n   [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]],\n  ['control: reset while enabled',\n   [[0, 3, 12], 15, 65520, [[True, False], [True, True], [False, False], [True, False]]],\n   [[1, 65523], [0, 65523], [0, 65523], [1, 65523]]],\n  ['control: reset with advance',\n   [[0, 256, 512], 65280, 170, [[False, False], [True, True], [False, False], [True, False]]],\n   [[0, 170], [0, 170], [0, 170], [1, 426]]],\n  ['control: scenario 1',\n   [[61786, 58708],\n    255,\n    45362,\n    [[False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False]]],\n   [[0, 45362], [0, 45362], [0, 45362], [1, 45396], [1, 45396], [1, 45396], [1, 45396]]],\n  ['control: scenario 2',\n   [[57902, 51779],\n    61440,\n    26811,\n    [[True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False]]],\n   [[1, 51387], [1, 51387], [1, 51387], [1, 51387], [1, 51387], [1, 51387], [1, 51387], [1, 51387]]]],\n [['regression: scenario 6',\n   [[49875, 17863, 34135],\n    3855,\n    57202,\n    [[False, False], [True, False], [True, False], [True, True], [False, False], [False, False]]],\n   [[0, 57202], [1, 54647], [1, 54647], [0, 54647], [0, 54647], [0, 54647]]],\n  ['regression: scenario 46',\n   [[23503, 30684, 5429],\n    61440,\n    58681,\n    [[True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False]]],\n   [[1, 30009],\n    [1, 30009],\n    [1, 30009],\n    [1, 30009],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [1, 30009]]],\n  ['regression: wrap past last step',\n   [[0, 17, 34],\n    255,\n    43776,\n    [[True, False], [False, False], [True, False], [False, False], [True, False], [True, False]]],\n   [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]]],\n  ['control: two element file',\n   [[5, 9], 65535, 0, [[True, False], [False, False], [True, False], [False, False], [True, False]]],\n   [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]],\n  ['control: reset while enabled',\n   [[0, 3, 12], 15, 65520, [[True, False], [True, True], [False, False], [True, False]]],\n   [[1, 65523], [0, 65523], [0, 65523], [1, 65523]]],\n  ['control: reset with advance',\n   [[0, 256, 512], 65280, 170, [[False, False], [True, True], [False, False], [True, False]]],\n   [[0, 170], [0, 170], [0, 170], [1, 426]]],\n  ['control: scenario 1',\n   [[39974, 26951],\n    3855,\n    4546,\n    [[False, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, True]]],\n   [[0, 4546],\n    [0, 4546],\n    [1, 6599],\n    [1, 6599],\n    [1, 6599],\n    [1, 6599],\n    [1, 6599],\n    [1, 6599],\n    [1, 6599],\n    [0, 6599]]],\n  ['regression: scenario 2',\n   [[43067, 57880, 6921, 33106, 51712],\n    255,\n    13830,\n    [[True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, True],\n     [True, True],\n     [False, False],\n     [True, False],\n     [False, False]]],\n   [[1, 13848],\n    [1, 13848],\n    [1, 13848],\n    [2, 13833],\n    [2, 13833],\n    [2, 13833],\n    [3, 13906],\n    [3, 13906],\n    [0, 13906],\n    [0, 13906],\n    [0, 13906],\n    [1, 13848],\n    [1, 13848]]]]]\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":"e82a3d0c0abbf84fda12e06da96cebc43d479ed1e9ca056dda64e0311ad23b12","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(words, mask, start_dest, steps):\n    pos = 0\n    dest = start_dest\n    prev = False\n    length = len(words) - 1\n    out = []\n    for en, res in steps:\n        en = bool(en)\n        if res:\n            pos = 0\n        elif en:\n            pos += 1\n            if pos > length:\n                pos = 1\n            dest = (dest & ~mask & 0xFFFF) | (words[pos] & mask)\n        prev = en\n        out.append([pos, dest])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: wrap past last step',\n   [[0, 17, 34],\n    255,\n    43776,\n    [[True, False], [False, False], [True, False], [False, False], [True, False], [True, False]]],\n   [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]]],\n  ['regression: scenario 5',\n   [[31779, 18767, 26849],\n    3855,\n    17424,\n    [[True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False]]],\n   [[1, 18719],\n    [1, 18719],\n    [1, 18719],\n    [2, 18449],\n    [2, 18449],\n    [2, 18449],\n    [2, 18449],\n    [2, 18449],\n    [2, 18449],\n    [2, 18449],\n    [1, 18719],\n    [1, 18719]]],\n  ['control: two element file',\n   [[5, 9], 65535, 0, [[True, False], [False, False], [True, False], [False, False], [True, False]]],\n   [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]],\n  ['control: reset while enabled',\n   [[0, 3, 12], 15, 65520, [[True, False], [True, True], [False, False], [True, False]]],\n   [[1, 65523], [0, 65523], [0, 65523], [1, 65523]]],\n  ['control: reset with advance',\n   [[0, 256, 512], 65280, 170, [[False, False], [True, True], [False, False], [True, False]]],\n   [[0, 170], [0, 170], [0, 170], [1, 426]]],\n  ['regression: scenario 1',\n   [[26918, 50611, 8879, 59828],\n    65535,\n    52597,\n    [[False, False],\n     [False, False],\n     [False, False],\n     [True, True],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False]]],\n   [[0, 52597],\n    [0, 52597],\n    [0, 52597],\n    [0, 52597],\n    [0, 52597],\n    [0, 52597],\n    [0, 52597],\n    [1, 50611],\n    [1, 50611],\n    [1, 50611]]],\n  ['control: scenario 2',\n   [[42968, 29173, 43546],\n    255,\n    5794,\n    [[True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, True],\n     [False, False]]],\n   [[1, 5877],\n    [1, 5877],\n    [1, 5877],\n    [1, 5877],\n    [2, 5658],\n    [2, 5658],\n    [2, 5658],\n    [2, 5658],\n    [0, 5658],\n    [0, 5658]]],\n  ['regression: scenario 3',\n   [[16785, 47110, 21847, 45361],\n    61440,\n    41889,\n    [[True, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False]]],\n   [[1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985]]]],\n [['regression: scenario 1',\n   [[8488, 43469, 38296, 4034],\n    255,\n    44563,\n    [[False, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False]]],\n   [[0, 44563],\n    [1, 44749],\n    [1, 44749],\n    [1, 44749],\n    [1, 44749],\n    [2, 44696],\n    [2, 44696],\n    [3, 44738],\n    [3, 44738],\n    [1, 44749],\n    [1, 44749],\n    [2, 44696]]],\n  ['regression: scenario 21',\n   [[35992, 43053, 59445],\n    65535,\n    52164,\n    [[False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [False, True],\n     [False, False]]],\n   [[0, 52164],\n    [1, 43053],\n    [1, 43053],\n    [2, 59445],\n    [2, 59445],\n    [1, 43053],\n    [1, 43053],\n    [2, 59445],\n    [2, 59445],\n    [2, 59445],\n    [2, 59445],\n    [0, 59445],\n    [0, 59445]]],\n  ['regression: wrap past last step',\n   [[0, 17, 34],\n    255,\n    43776,\n    [[True, False], [False, False], [True, False], [False, False], [True, False], [True, False]]],\n   [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]]],\n  ['control: two element file',\n   [[5, 9], 65535, 0, [[True, False], [False, False], [True, False], [False, False], [True, False]]],\n   [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]],\n  ['control: reset while enabled',\n   [[0, 3, 12], 15, 65520, [[True, False], [True, True], [False, False], [True, False]]],\n   [[1, 65523], [0, 65523], [0, 65523], [1, 65523]]],\n  ['control: reset with advance',\n   [[0, 256, 512], 65280, 170, [[False, False], [True, True], [False, False], [True, False]]],\n   [[0, 170], [0, 170], [0, 170], [1, 426]]],\n  ['regression: scenario 2',\n   [[43079, 20640, 23622, 26553],\n    255,\n    15109,\n    [[False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, True]]],\n   [[0, 15109],\n    [0, 15109],\n    [1, 15264],\n    [1, 15264],\n    [1, 15264],\n    [1, 15264],\n    [2, 15174],\n    [2, 15174],\n    [2, 15174],\n    [2, 15174],\n    [3, 15289],\n    [0, 15289]]],\n  ['regression: scenario 3',\n   [[16618, 36272, 41924, 55813],\n    3855,\n    48911,\n    [[True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, False]]],\n   [[1, 48384], [1, 48384], [1, 48384], [1, 48384], [1, 48384], [2, 45828], [2, 45828]]]],\n [['regression: scenario 3',\n   [[45414, 65173, 31151, 4829],\n    3855,\n    46402,\n    [[False, True],\n     [False, False],\n     [True, True],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [True, False]]],\n   [[0, 46402],\n    [0, 46402],\n    [0, 46402],\n    [0, 46402],\n    [0, 46402],\n    [0, 46402],\n    [1, 48709],\n    [1, 48709],\n    [1, 48709]]],\n  ['regression: scenario 6',\n   [[53426, 5627, 11199, 28564],\n    3855,\n    26531,\n    [[True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False]]],\n   [[1, 26027],\n    [1, 26027],\n    [1, 26027],\n    [2, 27567],\n    [2, 27567],\n    [2, 27567],\n    [2, 27567],\n    [3, 28580],\n    [3, 28580],\n    [3, 28580],\n    [1, 26027],\n    [1, 26027],\n    [1, 26027],\n    [1, 26027]]],\n  ['regression: wrap past last step',\n   [[0, 17, 34],\n    255,\n    43776,\n    [[True, False], [False, False], [True, False], [False, False], [True, False], [True, False]]],\n   [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]]],\n  ['control: two element file',\n   [[5, 9], 65535, 0, [[True, False], [False, False], [True, False], [False, False], [True, False]]],\n   [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]],\n  ['control: reset while enabled',\n   [[0, 3, 12], 15, 65520, [[True, False], [True, True], [False, False], [True, False]]],\n   [[1, 65523], [0, 65523], [0, 65523], [1, 65523]]],\n  ['control: reset with advance',\n   [[0, 256, 512], 65280, 170, [[False, False], [True, True], [False, False], [True, False]]],\n   [[0, 170], [0, 170], [0, 170], [1, 426]]],\n  ['control: scenario 1',\n   [[38610, 2229],\n    65535,\n    14704,\n    [[False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, True],\n     [False, False]]],\n   [[0, 14704], [0, 14704], [0, 14704], [0, 14704], [0, 14704], [1, 2229], [1, 2229], [0, 2229], [0, 2229]]],\n  ['regression: scenario 2',\n   [[36741, 30504],\n    65535,\n    26589,\n    [[True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, True],\n     [True, False],\n     [False, False]]],\n   [[1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [0, 30504],\n    [0, 30504],\n    [0, 30504]]]],\n [['regression: scenario 6',\n   [[41259, 64194, 24167],\n    255,\n    50548,\n    [[True, False],\n     [False, False],\n     [True, True],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False]]],\n   [[1, 50626], [1, 50626], [0, 50626], [0, 50626], [1, 50626], [1, 50626], [1, 50626]]],\n  ['regression: scenario 34',\n   [[14407, 35134, 61773],\n    65535,\n    32422,\n    [[True, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False]]],\n   [[1, 35134],\n    [1, 35134],\n    [2, 61773],\n    [2, 61773],\n    [2, 61773],\n    [1, 35134],\n    [1, 35134],\n    [2, 61773],\n    [2, 61773],\n    [2, 61773],\n    [2, 61773],\n    [2, 61773],\n    [2, 61773]]],\n  ['regression: wrap past last step',\n   [[0, 17, 34],\n    255,\n    43776,\n    [[True, False], [False, False], [True, False], [False, False], [True, False], [True, False]]],\n   [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]]],\n  ['control: two element file',\n   [[5, 9], 65535, 0, [[True, False], [False, False], [True, False], [False, False], [True, False]]],\n   [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]],\n  ['control: reset while enabled',\n   [[0, 3, 12], 15, 65520, [[True, False], [True, True], [False, False], [True, False]]],\n   [[1, 65523], [0, 65523], [0, 65523], [1, 65523]]],\n  ['control: reset with advance',\n   [[0, 256, 512], 65280, 170, [[False, False], [True, True], [False, False], [True, False]]],\n   [[0, 170], [0, 170], [0, 170], [1, 426]]],\n  ['control: scenario 1',\n   [[61786, 58708],\n    255,\n    45362,\n    [[False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False]]],\n   [[0, 45362], [0, 45362], [0, 45362], [1, 45396], [1, 45396], [1, 45396], [1, 45396]]],\n  ['control: scenario 2',\n   [[57902, 51779],\n    61440,\n    26811,\n    [[True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False]]],\n   [[1, 51387], [1, 51387], [1, 51387], [1, 51387], [1, 51387], [1, 51387], [1, 51387], [1, 51387]]]],\n [['regression: scenario 6',\n   [[49875, 17863, 34135],\n    3855,\n    57202,\n    [[False, False], [True, False], [True, False], [True, True], [False, False], [False, False]]],\n   [[0, 57202], [1, 54647], [1, 54647], [0, 54647], [0, 54647], [0, 54647]]],\n  ['regression: scenario 46',\n   [[23503, 30684, 5429],\n    61440,\n    58681,\n    [[True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False]]],\n   [[1, 30009],\n    [1, 30009],\n    [1, 30009],\n    [1, 30009],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [1, 30009]]],\n  ['regression: wrap past last step',\n   [[0, 17, 34],\n    255,\n    43776,\n    [[True, False], [False, False], [True, False], [False, False], [True, False], [True, False]]],\n   [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]]],\n  ['control: two element file',\n   [[5, 9], 65535, 0, [[True, False], [False, False], [True, False], [False, False], [True, False]]],\n   [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]],\n  ['control: reset while enabled',\n   [[0, 3, 12], 15, 65520, [[True, False], [True, True], [False, False], [True, False]]],\n   [[1, 65523], [0, 65523], [0, 65523], [1, 65523]]],\n  ['control: reset with advance',\n   [[0, 256, 512], 65280, 170, [[False, False], [True, True], [False, False], [True, False]]],\n   [[0, 170], [0, 170], [0, 170], [1, 426]]],\n  ['control: scenario 1',\n   [[39974, 26951],\n    3855,\n    4546,\n    [[False, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, True]]],\n   [[0, 4546],\n    [0, 4546],\n    [1, 6599],\n    [1, 6599],\n    [1, 6599],\n    [1, 6599],\n    [1, 6599],\n    [1, 6599],\n    [1, 6599],\n    [0, 6599]]],\n  ['regression: scenario 2',\n   [[43067, 57880, 6921, 33106, 51712],\n    255,\n    13830,\n    [[True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, True],\n     [True, True],\n     [False, False],\n     [True, False],\n     [False, False]]],\n   [[1, 13848],\n    [1, 13848],\n    [1, 13848],\n    [2, 13833],\n    [2, 13833],\n    [2, 13833],\n    [3, 13906],\n    [3, 13906],\n    [0, 13906],\n    [0, 13906],\n    [0, 13906],\n    [1, 13848],\n    [1, 13848]]]]]\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":"ee784ba15fa24cf9319cc8ced7415a0bf54e387175ce7ea0807e7709d1464cc2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(words, mask, start_dest, steps):\n    pos = 0\n    dest = start_dest\n    prev = False\n    length = len(words) - 1\n    out = []\n    for en, res in steps:\n        en = bool(en)\n        if res:\n            pos = 0\n        elif en and not prev:\n            pos += 1\n            if pos > length:\n                pos = 1\n            dest = (dest & ~mask & 0xFFFF) | (words[pos] & mask)\n        prev = en\n        out.append([pos, dest])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: wrap past last step',\n   [[0, 17, 34],\n    255,\n    43776,\n    [[True, False], [False, False], [True, False], [False, False], [True, False], [True, False]]],\n   [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]]],\n  ['regression: scenario 5',\n   [[31779, 18767, 26849],\n    3855,\n    17424,\n    [[True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False]]],\n   [[1, 18719],\n    [1, 18719],\n    [1, 18719],\n    [2, 18449],\n    [2, 18449],\n    [2, 18449],\n    [2, 18449],\n    [2, 18449],\n    [2, 18449],\n    [2, 18449],\n    [1, 18719],\n    [1, 18719]]],\n  ['control: two element file',\n   [[5, 9], 65535, 0, [[True, False], [False, False], [True, False], [False, False], [True, False]]],\n   [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]],\n  ['control: reset while enabled',\n   [[0, 3, 12], 15, 65520, [[True, False], [True, True], [False, False], [True, False]]],\n   [[1, 65523], [0, 65523], [0, 65523], [1, 65523]]],\n  ['control: reset with advance',\n   [[0, 256, 512], 65280, 170, [[False, False], [True, True], [False, False], [True, False]]],\n   [[0, 170], [0, 170], [0, 170], [1, 426]]],\n  ['regression: scenario 1',\n   [[26918, 50611, 8879, 59828],\n    65535,\n    52597,\n    [[False, False],\n     [False, False],\n     [False, False],\n     [True, True],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False]]],\n   [[0, 52597],\n    [0, 52597],\n    [0, 52597],\n    [0, 52597],\n    [0, 52597],\n    [0, 52597],\n    [0, 52597],\n    [1, 50611],\n    [1, 50611],\n    [1, 50611]]],\n  ['control: scenario 2',\n   [[42968, 29173, 43546],\n    255,\n    5794,\n    [[True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, True],\n     [False, False]]],\n   [[1, 5877],\n    [1, 5877],\n    [1, 5877],\n    [1, 5877],\n    [2, 5658],\n    [2, 5658],\n    [2, 5658],\n    [2, 5658],\n    [0, 5658],\n    [0, 5658]]],\n  ['regression: scenario 3',\n   [[16785, 47110, 21847, 45361],\n    61440,\n    41889,\n    [[True, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False]]],\n   [[1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985]]]],\n [['regression: scenario 1',\n   [[8488, 43469, 38296, 4034],\n    255,\n    44563,\n    [[False, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False]]],\n   [[0, 44563],\n    [1, 44749],\n    [1, 44749],\n    [1, 44749],\n    [1, 44749],\n    [2, 44696],\n    [2, 44696],\n    [3, 44738],\n    [3, 44738],\n    [1, 44749],\n    [1, 44749],\n    [2, 44696]]],\n  ['regression: scenario 21',\n   [[35992, 43053, 59445],\n    65535,\n    52164,\n    [[False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [False, True],\n     [False, False]]],\n   [[0, 52164],\n    [1, 43053],\n    [1, 43053],\n    [2, 59445],\n    [2, 59445],\n    [1, 43053],\n    [1, 43053],\n    [2, 59445],\n    [2, 59445],\n    [2, 59445],\n    [2, 59445],\n    [0, 59445],\n    [0, 59445]]],\n  ['regression: wrap past last step',\n   [[0, 17, 34],\n    255,\n    43776,\n    [[True, False], [False, False], [True, False], [False, False], [True, False], [True, False]]],\n   [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]]],\n  ['control: two element file',\n   [[5, 9], 65535, 0, [[True, False], [False, False], [True, False], [False, False], [True, False]]],\n   [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]],\n  ['control: reset while enabled',\n   [[0, 3, 12], 15, 65520, [[True, False], [True, True], [False, False], [True, False]]],\n   [[1, 65523], [0, 65523], [0, 65523], [1, 65523]]],\n  ['control: reset with advance',\n   [[0, 256, 512], 65280, 170, [[False, False], [True, True], [False, False], [True, False]]],\n   [[0, 170], [0, 170], [0, 170], [1, 426]]],\n  ['regression: scenario 2',\n   [[43079, 20640, 23622, 26553],\n    255,\n    15109,\n    [[False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, True]]],\n   [[0, 15109],\n    [0, 15109],\n    [1, 15264],\n    [1, 15264],\n    [1, 15264],\n    [1, 15264],\n    [2, 15174],\n    [2, 15174],\n    [2, 15174],\n    [2, 15174],\n    [3, 15289],\n    [0, 15289]]],\n  ['regression: scenario 3',\n   [[16618, 36272, 41924, 55813],\n    3855,\n    48911,\n    [[True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, False]]],\n   [[1, 48384], [1, 48384], [1, 48384], [1, 48384], [1, 48384], [2, 45828], [2, 45828]]]],\n [['regression: scenario 3',\n   [[45414, 65173, 31151, 4829],\n    3855,\n    46402,\n    [[False, True],\n     [False, False],\n     [True, True],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [True, False]]],\n   [[0, 46402],\n    [0, 46402],\n    [0, 46402],\n    [0, 46402],\n    [0, 46402],\n    [0, 46402],\n    [1, 48709],\n    [1, 48709],\n    [1, 48709]]],\n  ['regression: scenario 6',\n   [[53426, 5627, 11199, 28564],\n    3855,\n    26531,\n    [[True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False]]],\n   [[1, 26027],\n    [1, 26027],\n    [1, 26027],\n    [2, 27567],\n    [2, 27567],\n    [2, 27567],\n    [2, 27567],\n    [3, 28580],\n    [3, 28580],\n    [3, 28580],\n    [1, 26027],\n    [1, 26027],\n    [1, 26027],\n    [1, 26027]]],\n  ['regression: wrap past last step',\n   [[0, 17, 34],\n    255,\n    43776,\n    [[True, False], [False, False], [True, False], [False, False], [True, False], [True, False]]],\n   [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]]],\n  ['control: two element file',\n   [[5, 9], 65535, 0, [[True, False], [False, False], [True, False], [False, False], [True, False]]],\n   [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]],\n  ['control: reset while enabled',\n   [[0, 3, 12], 15, 65520, [[True, False], [True, True], [False, False], [True, False]]],\n   [[1, 65523], [0, 65523], [0, 65523], [1, 65523]]],\n  ['control: reset with advance',\n   [[0, 256, 512], 65280, 170, [[False, False], [True, True], [False, False], [True, False]]],\n   [[0, 170], [0, 170], [0, 170], [1, 426]]],\n  ['control: scenario 1',\n   [[38610, 2229],\n    65535,\n    14704,\n    [[False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, True],\n     [False, False]]],\n   [[0, 14704], [0, 14704], [0, 14704], [0, 14704], [0, 14704], [1, 2229], [1, 2229], [0, 2229], [0, 2229]]],\n  ['regression: scenario 2',\n   [[36741, 30504],\n    65535,\n    26589,\n    [[True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, True],\n     [True, False],\n     [False, False]]],\n   [[1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [1, 30504],\n    [0, 30504],\n    [0, 30504],\n    [0, 30504]]]],\n [['regression: scenario 6',\n   [[41259, 64194, 24167],\n    255,\n    50548,\n    [[True, False],\n     [False, False],\n     [True, True],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False]]],\n   [[1, 50626], [1, 50626], [0, 50626], [0, 50626], [1, 50626], [1, 50626], [1, 50626]]],\n  ['regression: scenario 34',\n   [[14407, 35134, 61773],\n    65535,\n    32422,\n    [[True, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False]]],\n   [[1, 35134],\n    [1, 35134],\n    [2, 61773],\n    [2, 61773],\n    [2, 61773],\n    [1, 35134],\n    [1, 35134],\n    [2, 61773],\n    [2, 61773],\n    [2, 61773],\n    [2, 61773],\n    [2, 61773],\n    [2, 61773]]],\n  ['regression: wrap past last step',\n   [[0, 17, 34],\n    255,\n    43776,\n    [[True, False], [False, False], [True, False], [False, False], [True, False], [True, False]]],\n   [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]]],\n  ['control: two element file',\n   [[5, 9], 65535, 0, [[True, False], [False, False], [True, False], [False, False], [True, False]]],\n   [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]],\n  ['control: reset while enabled',\n   [[0, 3, 12], 15, 65520, [[True, False], [True, True], [False, False], [True, False]]],\n   [[1, 65523], [0, 65523], [0, 65523], [1, 65523]]],\n  ['control: reset with advance',\n   [[0, 256, 512], 65280, 170, [[False, False], [True, True], [False, False], [True, False]]],\n   [[0, 170], [0, 170], [0, 170], [1, 426]]],\n  ['control: scenario 1',\n   [[61786, 58708],\n    255,\n    45362,\n    [[False, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False]]],\n   [[0, 45362], [0, 45362], [0, 45362], [1, 45396], [1, 45396], [1, 45396], [1, 45396]]],\n  ['control: scenario 2',\n   [[57902, 51779],\n    61440,\n    26811,\n    [[True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False]]],\n   [[1, 51387], [1, 51387], [1, 51387], [1, 51387], [1, 51387], [1, 51387], [1, 51387], [1, 51387]]]],\n [['regression: scenario 6',\n   [[49875, 17863, 34135],\n    3855,\n    57202,\n    [[False, False], [True, False], [True, False], [True, True], [False, False], [False, False]]],\n   [[0, 57202], [1, 54647], [1, 54647], [0, 54647], [0, 54647], [0, 54647]]],\n  ['regression: scenario 46',\n   [[23503, 30684, 5429],\n    61440,\n    58681,\n    [[True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [False, False],\n     [True, False]]],\n   [[1, 30009],\n    [1, 30009],\n    [1, 30009],\n    [1, 30009],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [2, 5433],\n    [1, 30009]]],\n  ['regression: wrap past last step',\n   [[0, 17, 34],\n    255,\n    43776,\n    [[True, False], [False, False], [True, False], [False, False], [True, False], [True, False]]],\n   [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]]],\n  ['control: two element file',\n   [[5, 9], 65535, 0, [[True, False], [False, False], [True, False], [False, False], [True, False]]],\n   [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]]],\n  ['control: reset while enabled',\n   [[0, 3, 12], 15, 65520, [[True, False], [True, True], [False, False], [True, False]]],\n   [[1, 65523], [0, 65523], [0, 65523], [1, 65523]]],\n  ['control: reset with advance',\n   [[0, 256, 512], 65280, 170, [[False, False], [True, True], [False, False], [True, False]]],\n   [[0, 170], [0, 170], [0, 170], [1, 426]]],\n  ['control: scenario 1',\n   [[39974, 26951],\n    3855,\n    4546,\n    [[False, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, True]]],\n   [[0, 4546],\n    [0, 4546],\n    [1, 6599],\n    [1, 6599],\n    [1, 6599],\n    [1, 6599],\n    [1, 6599],\n    [1, 6599],\n    [1, 6599],\n    [0, 6599]]],\n  ['regression: scenario 2',\n   [[43067, 57880, 6921, 33106, 51712],\n    255,\n    13830,\n    [[True, False],\n     [False, False],\n     [False, False],\n     [True, False],\n     [True, False],\n     [False, False],\n     [True, False],\n     [False, False],\n     [True, True],\n     [True, True],\n     [False, False],\n     [True, False],\n     [False, False]]],\n   [[1, 13848],\n    [1, 13848],\n    [1, 13848],\n    [2, 13833],\n    [2, 13833],\n    [2, 13833],\n    [3, 13906],\n    [3, 13906],\n    [0, 13906],\n    [0, 13906],\n    [0, 13906],\n    [1, 13848],\n    [1, 13848]]]]]\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 one PLC instruction or rung pattern evaluated scan by scan. The stated contract is a stipulated toy convention, not a claim of conformance to any vendor controller or IEC 61131-3 runtime. 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-plc-ladder-logic-scan-cycles-sqo-sequencer-advance-edge","generated_at":"2026-09-29T14:51:42.460102+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Ladder programs are executed as repeated scans; each defect here changes what a rung, timer, counter or data-table instruction reports on a particular scan, which is how commissioning and field faults are actually observed.","repair":"Advance only when enable is true and was false on the previous scan.","root_cause":"The advance condition tests the enable level instead of its rising edge.","sha256":"bd1db501f1fe2c627dccadf5e4a0ca11417e2c0b1cfb61725e93b8269777c025","title":"Sequencer advances every scan while enable is held · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.284,"exit_code":1,"observations":[{"actual":[[1,43793],[1,43793],[2,43810],[2,43810],[2,43810],[2,43810]],"check":"regression: wrap past last step","expected":[[1,43793],[1,43793],[2,43810],[2,43810],[1,43793],[1,43793]],"passed":false},{"actual":[[1,18719],[1,18719],[1,18719],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449]],"check":"regression: scenario 5","expected":[[1,18719],[1,18719],[1,18719],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[1,18719],[1,18719]],"passed":false},{"actual":[[1,9],[1,9],[1,9],[1,9],[1,9]],"check":"control: two element file","expected":[[1,9],[1,9],[1,9],[1,9],[1,9]],"passed":true},{"actual":[[1,65523],[0,65523],[0,65523],[1,65523]],"check":"control: reset while enabled","expected":[[1,65523],[0,65523],[0,65523],[1,65523]],"passed":true},{"actual":[[0,170],[0,170],[0,170],[1,426]],"check":"control: reset with advance","expected":[[0,170],[0,170],[0,170],[1,426]],"passed":true},{"actual":[[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[1,50611],[1,50611],[1,50611]],"check":"regression: scenario 1","expected":[[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[1,50611],[1,50611],[1,50611]],"passed":true},{"actual":[[1,5877],[1,5877],[1,5877],[1,5877],[2,5658],[2,5658],[2,5658],[2,5658],[0,5658],[0,5658]],"check":"control: scenario 2","expected":[[1,5877],[1,5877],[1,5877],[1,5877],[2,5658],[2,5658],[2,5658],[2,5658],[0,5658],[0,5658]],"passed":true},{"actual":[[1,45985],[1,45985],[1,45985],[1,45985],[1,45985],[1,45985],[1,45985]],"check":"regression: scenario 3","expected":[[1,45985],[1,45985],[1,45985],[1,45985],[1,45985],[1,45985],[1,45985]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: wrap past last step\", \"actual\": [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [2, 43810], [2, 43810]], \"expected\": [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]], \"passed\": false}, {\"check\": \"regression: scenario 5\", \"actual\": [[1, 18719], [1, 18719], [1, 18719], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449]], \"expected\": [[1, 18719], [1, 18719], [1, 18719], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [1, 18719], [1, 18719]], \"passed\": false}, {\"check\": \"control: two element file\", \"actual\": [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]], \"expected\": [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]], \"passed\": true}, {\"check\": \"control: reset while enabled\", \"actual\": [[1, 65523], [0, 65523], [0, 65523], [1, 65523]], \"expected\": [[1, 65523], [0, 65523], [0, 65523], [1, 65523]], \"passed\": true}, {\"check\": \"control: reset with advance\", \"actual\": [[0, 170], [0, 170], [0, 170], [1, 426]], \"expected\": [[0, 170], [0, 170], [0, 170], [1, 426]], \"passed\": true}, {\"check\": \"regression: scenario 1\", \"actual\": [[0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [1, 50611], [1, 50611], [1, 50611]], \"expected\": [[0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [1, 50611], [1, 50611], [1, 50611]], \"passed\": true}, {\"check\": \"control: scenario 2\", \"actual\": [[1, 5877], [1, 5877], [1, 5877], [1, 5877], [2, 5658], [2, 5658], [2, 5658], [2, 5658], [0, 5658], [0, 5658]], \"expected\": [[1, 5877], [1, 5877], [1, 5877], [1, 5877], [2, 5658], [2, 5658], [2, 5658], [2, 5658], [0, 5658], [0, 5658]], \"passed\": true}, {\"check\": \"regression: scenario 3\", \"actual\": [[1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985]], \"expected\": [[1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.334,"exit_code":1,"observations":[{"actual":[[1,43793],[1,43793],[2,43810],[2,43810],[1,43793],[2,43810]],"check":"regression: wrap past last step","expected":[[1,43793],[1,43793],[2,43810],[2,43810],[1,43793],[1,43793]],"passed":false},{"actual":[[1,18719],[1,18719],[1,18719],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[1,18719],[2,18449]],"check":"regression: scenario 5","expected":[[1,18719],[1,18719],[1,18719],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[1,18719],[1,18719]],"passed":false},{"actual":[[1,9],[1,9],[1,9],[1,9],[1,9]],"check":"control: two element file","expected":[[1,9],[1,9],[1,9],[1,9],[1,9]],"passed":true},{"actual":[[1,65523],[0,65523],[0,65523],[1,65523]],"check":"control: reset while enabled","expected":[[1,65523],[0,65523],[0,65523],[1,65523]],"passed":true},{"actual":[[0,170],[0,170],[0,170],[1,426]],"check":"control: reset with advance","expected":[[0,170],[0,170],[0,170],[1,426]],"passed":true},{"actual":[[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[1,50611],[2,8879],[2,8879]],"check":"regression: scenario 1","expected":[[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[1,50611],[1,50611],[1,50611]],"passed":false},{"actual":[[1,5877],[1,5877],[1,5877],[1,5877],[2,5658],[2,5658],[2,5658],[2,5658],[0,5658],[0,5658]],"check":"control: scenario 2","expected":[[1,5877],[1,5877],[1,5877],[1,5877],[2,5658],[2,5658],[2,5658],[2,5658],[0,5658],[0,5658]],"passed":true},{"actual":[[1,45985],[2,21409],[3,45985],[1,45985],[2,21409],[2,21409],[2,21409]],"check":"regression: scenario 3","expected":[[1,45985],[1,45985],[1,45985],[1,45985],[1,45985],[1,45985],[1,45985]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: wrap past last step\", \"actual\": [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [2, 43810]], \"expected\": [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]], \"passed\": false}, {\"check\": \"regression: scenario 5\", \"actual\": [[1, 18719], [1, 18719], [1, 18719], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [1, 18719], [2, 18449]], \"expected\": [[1, 18719], [1, 18719], [1, 18719], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [1, 18719], [1, 18719]], \"passed\": false}, {\"check\": \"control: two element file\", \"actual\": [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]], \"expected\": [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]], \"passed\": true}, {\"check\": \"control: reset while enabled\", \"actual\": [[1, 65523], [0, 65523], [0, 65523], [1, 65523]], \"expected\": [[1, 65523], [0, 65523], [0, 65523], [1, 65523]], \"passed\": true}, {\"check\": \"control: reset with advance\", \"actual\": [[0, 170], [0, 170], [0, 170], [1, 426]], \"expected\": [[0, 170], [0, 170], [0, 170], [1, 426]], \"passed\": true}, {\"check\": \"regression: scenario 1\", \"actual\": [[0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [1, 50611], [2, 8879], [2, 8879]], \"expected\": [[0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [1, 50611], [1, 50611], [1, 50611]], \"passed\": false}, {\"check\": \"control: scenario 2\", \"actual\": [[1, 5877], [1, 5877], [1, 5877], [1, 5877], [2, 5658], [2, 5658], [2, 5658], [2, 5658], [0, 5658], [0, 5658]], \"expected\": [[1, 5877], [1, 5877], [1, 5877], [1, 5877], [2, 5658], [2, 5658], [2, 5658], [2, 5658], [0, 5658], [0, 5658]], \"passed\": true}, {\"check\": \"regression: scenario 3\", \"actual\": [[1, 45985], [2, 21409], [3, 45985], [1, 45985], [2, 21409], [2, 21409], [2, 21409]], \"expected\": [[1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985]], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.433,"exit_code":0,"observations":[{"actual":[[1,43793],[1,43793],[2,43810],[2,43810],[1,43793],[1,43793]],"check":"regression: wrap past last step","expected":[[1,43793],[1,43793],[2,43810],[2,43810],[1,43793],[1,43793]],"passed":true},{"actual":[[1,18719],[1,18719],[1,18719],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[1,18719],[1,18719]],"check":"regression: scenario 5","expected":[[1,18719],[1,18719],[1,18719],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[2,18449],[1,18719],[1,18719]],"passed":true},{"actual":[[1,9],[1,9],[1,9],[1,9],[1,9]],"check":"control: two element file","expected":[[1,9],[1,9],[1,9],[1,9],[1,9]],"passed":true},{"actual":[[1,65523],[0,65523],[0,65523],[1,65523]],"check":"control: reset while enabled","expected":[[1,65523],[0,65523],[0,65523],[1,65523]],"passed":true},{"actual":[[0,170],[0,170],[0,170],[1,426]],"check":"control: reset with advance","expected":[[0,170],[0,170],[0,170],[1,426]],"passed":true},{"actual":[[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[1,50611],[1,50611],[1,50611]],"check":"regression: scenario 1","expected":[[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[0,52597],[1,50611],[1,50611],[1,50611]],"passed":true},{"actual":[[1,5877],[1,5877],[1,5877],[1,5877],[2,5658],[2,5658],[2,5658],[2,5658],[0,5658],[0,5658]],"check":"control: scenario 2","expected":[[1,5877],[1,5877],[1,5877],[1,5877],[2,5658],[2,5658],[2,5658],[2,5658],[0,5658],[0,5658]],"passed":true},{"actual":[[1,45985],[1,45985],[1,45985],[1,45985],[1,45985],[1,45985],[1,45985]],"check":"regression: scenario 3","expected":[[1,45985],[1,45985],[1,45985],[1,45985],[1,45985],[1,45985],[1,45985]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: wrap past last step\", \"actual\": [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]], \"expected\": [[1, 43793], [1, 43793], [2, 43810], [2, 43810], [1, 43793], [1, 43793]], \"passed\": true}, {\"check\": \"regression: scenario 5\", \"actual\": [[1, 18719], [1, 18719], [1, 18719], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [1, 18719], [1, 18719]], \"expected\": [[1, 18719], [1, 18719], [1, 18719], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [2, 18449], [1, 18719], [1, 18719]], \"passed\": true}, {\"check\": \"control: two element file\", \"actual\": [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]], \"expected\": [[1, 9], [1, 9], [1, 9], [1, 9], [1, 9]], \"passed\": true}, {\"check\": \"control: reset while enabled\", \"actual\": [[1, 65523], [0, 65523], [0, 65523], [1, 65523]], \"expected\": [[1, 65523], [0, 65523], [0, 65523], [1, 65523]], \"passed\": true}, {\"check\": \"control: reset with advance\", \"actual\": [[0, 170], [0, 170], [0, 170], [1, 426]], \"expected\": [[0, 170], [0, 170], [0, 170], [1, 426]], \"passed\": true}, {\"check\": \"regression: scenario 1\", \"actual\": [[0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [1, 50611], [1, 50611], [1, 50611]], \"expected\": [[0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [0, 52597], [1, 50611], [1, 50611], [1, 50611]], \"passed\": true}, {\"check\": \"control: scenario 2\", \"actual\": [[1, 5877], [1, 5877], [1, 5877], [1, 5877], [2, 5658], [2, 5658], [2, 5658], [2, 5658], [0, 5658], [0, 5658]], \"expected\": [[1, 5877], [1, 5877], [1, 5877], [1, 5877], [2, 5658], [2, 5658], [2, 5658], [2, 5658], [0, 5658], [0, 5658]], \"passed\": true}, {\"check\": \"regression: scenario 3\", \"actual\": [[1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985]], \"expected\": [[1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985], [1, 45985]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}