{"abstract":"Tables with a nonzero low bound select the wrong case or run off the operands.","category":"Bytecode virtual machines","checks":8,"contract":"code is a method's bytes; at addr is tableswitch (0xAA) or lookupswitch (0xAB). After the opcode, 0-3 padding bytes align the next byte to a multiple of 4 from the method start; then big-endian signed 32-bit words: default, and either low, high and high-low+1 offsets, or npairs followed by sorted (match, offset) pairs. Branch offsets are relative to the switch opcode address. Return the target address, or [\"VerifyError\", reason] for low > high, negative npairs, keys not strictly increasing, another opcode, or truncated operands.","evaluation_group":"w2-bytecode-virtual-machines-switch-dispatch","failed_approach":"Starting the table one word early reads the high bound as the first offset.","family":"w2-bytecode-virtual-machines-switch-dispatch-jump-table-index","id":"FA-90266","implementations":{"attempt":{"sha256":"a75312e8f0c0c97d76f9a3b1f763af8ee04676eafe5470879118f4265c02e3cd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(code, addr, key):\n    def s32(p):\n        v = (code[p] << 24) | (code[p + 1] << 16) | (code[p + 2] << 8) | code[p + 3]\n        return v - (1 << 32) if v & 0x80000000 else v\n    def dispatch():\n        op = code[addr]\n        p = addr + 1\n        p += (4 - p % 4) % 4\n        default = s32(p)\n        if op == 0xAA:\n            low, high = s32(p + 4), s32(p + 8)\n            if low > high:\n                return ['VerifyError', 'low>high']\n            if low <= key <= high:\n                return addr + s32(p + 8 + 4 * (key - low))\n            return addr + default\n        if op == 0xAB:\n            npairs = s32(p + 4)\n            if npairs < 0:\n                return ['VerifyError', 'npairs']\n            pairs = [(s32(p + 8 + 8 * i), s32(p + 12 + 8 * i)) for i in range(npairs)]\n            if any(pairs[i][0] >= pairs[i + 1][0] for i in range(npairs - 1)):\n                return ['VerifyError', 'unsorted']\n            lo, hi = 0, npairs - 1\n            while lo <= hi:\n                mid = (lo + hi) // 2\n                if pairs[mid][0] == key:\n                    return addr + pairs[mid][1]\n                if pairs[mid][0] < key:\n                    lo = mid + 1\n                else:\n                    hi = mid - 1\n            return addr + default\n        return ['VerifyError', 'opcode']\n    try:\n        return dispatch()\n    except IndexError:\n        return ['VerifyError', 'truncated']\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression: tableswitch hit with aligned operands',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     31,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    7,\n    0),\n   47),\n  ('tableswitch hit at the high bound',\n   ([0,\n     170,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     31,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    1,\n    1),\n   51),\n  ('tableswitch hit at the low bound',\n   ([0,\n     0,\n     170,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     31,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    2,\n    -2),\n   22),\n  ('tableswitch miss takes the backward default',\n   ([0,\n     170,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     31,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    1,\n    5),\n   -7),\n  ('lookupswitch hit with negative offset',\n   ([0,\n     171,\n     0,\n     0,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    1,\n    100),\n   -3),\n  ('lookupswitch miss',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    7,\n    3),\n   19),\n  ('lookupswitch with duplicate keys is rejected',\n   ([0, 171, 0, 0, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 12, 177], 1, 1),\n   ['VerifyError', 'unsorted']),\n  ('control: low greater than high',\n   ([0, 170, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 177], 1, 3),\n   ['VerifyError', 'low>high'])],\n [('regression: tableswitch hit with aligned operands',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     32,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    11,\n    0),\n   51),\n  ('tableswitch hit at the high bound',\n   ([0,\n     0,\n     170,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     32,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    2,\n    1),\n   52),\n  ('tableswitch hit at the low bound',\n   ([0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     32,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    3,\n    -2),\n   23),\n  ('tableswitch miss takes the backward default',\n   ([0,\n     0,\n     170,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     32,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    2,\n    5),\n   -6),\n  ('lookupswitch hit with negative offset',\n   ([0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    2,\n    100),\n   -2),\n  ('lookupswitch miss',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    11,\n    3),\n   23),\n  ('lookupswitch with duplicate keys is rejected',\n   ([0, 0, 171, 0, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 12, 177], 2, 1),\n   ['VerifyError', 'unsorted']),\n  ('control: low greater than high',\n   ([0, 0, 170, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 177], 2, 3),\n   ['VerifyError', 'low>high'])],\n [('regression: tableswitch hit with aligned operands',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    15,\n    0),\n   55),\n  ('tableswitch hit at the high bound',\n   ([0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    3,\n    1),\n   53),\n  ('tableswitch hit at the low bound',\n   ([0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    4,\n    -2),\n   24),\n  ('tableswitch miss takes the backward default',\n   ([0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    3,\n    5),\n   -5),\n  ('lookupswitch hit with negative offset',\n   ([0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    3,\n    100),\n   -1),\n  ('lookupswitch miss',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    15,\n    3),\n   27),\n  ('lookupswitch with duplicate keys is rejected',\n   ([0, 0, 0, 171, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 12, 177], 3, 1),\n   ['VerifyError', 'unsorted']),\n  ('control: low greater than high',\n   ([0, 0, 0, 170, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 177], 3, 3),\n   ['VerifyError', 'low>high'])],\n [('regression: tableswitch hit with aligned operands',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    19,\n    0),\n   59),\n  ('tableswitch hit at the high bound',\n   ([0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    4,\n    1),\n   54),\n  ('tableswitch hit at the low bound',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    5,\n    -2),\n   25),\n  ('tableswitch miss takes the backward default',\n   ([0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    4,\n    5),\n   -4),\n  ('lookupswitch hit with negative offset',\n   ([0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     36,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    4,\n    100),\n   0),\n  ('lookupswitch miss',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     36,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    19,\n    3),\n   31),\n  ('lookupswitch with duplicate keys is rejected',\n   ([0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 12, 177],\n    4,\n    1),\n   ['VerifyError', 'unsorted']),\n  ('control: low greater than high',\n   ([0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 177], 4, 3),\n   ['VerifyError', 'low>high'])],\n [('regression: tableswitch hit with aligned operands',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    23,\n    0),\n   63),\n  ('tableswitch hit at the high bound',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    5,\n    1),\n   55),\n  ('tableswitch hit at the low bound',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    6,\n    -2),\n   26),\n  ('tableswitch miss takes the backward default',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    5,\n    5),\n   -3),\n  ('lookupswitch hit with negative offset',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     37,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    5,\n    100),\n   1),\n  ('lookupswitch miss',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     37,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    23,\n    3),\n   35),\n  ('lookupswitch with duplicate keys is rejected',\n   ([0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 12, 177],\n    5,\n    1),\n   ['VerifyError', 'unsorted']),\n  ('control: low greater than high',\n   ([0, 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 177], 5, 3),\n   ['VerifyError', 'low>high'])]]\nfor label, args, expected in cases[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":"a33dfd44daa5780e56e3458318544c11d418af2bf070982c89733ed67d1ec6a6","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(code, addr, key):\n    def s32(p):\n        v = (code[p] << 24) | (code[p + 1] << 16) | (code[p + 2] << 8) | code[p + 3]\n        return v - (1 << 32) if v & 0x80000000 else v\n    def dispatch():\n        op = code[addr]\n        p = addr + 1\n        p += (4 - p % 4) % 4\n        default = s32(p)\n        if op == 0xAA:\n            low, high = s32(p + 4), s32(p + 8)\n            if low > high:\n                return ['VerifyError', 'low>high']\n            if low <= key <= high:\n                return addr + s32(p + 12 + 4 * key)\n            return addr + default\n        if op == 0xAB:\n            npairs = s32(p + 4)\n            if npairs < 0:\n                return ['VerifyError', 'npairs']\n            pairs = [(s32(p + 8 + 8 * i), s32(p + 12 + 8 * i)) for i in range(npairs)]\n            if any(pairs[i][0] >= pairs[i + 1][0] for i in range(npairs - 1)):\n                return ['VerifyError', 'unsorted']\n            lo, hi = 0, npairs - 1\n            while lo <= hi:\n                mid = (lo + hi) // 2\n                if pairs[mid][0] == key:\n                    return addr + pairs[mid][1]\n                if pairs[mid][0] < key:\n                    lo = mid + 1\n                else:\n                    hi = mid - 1\n            return addr + default\n        return ['VerifyError', 'opcode']\n    try:\n        return dispatch()\n    except IndexError:\n        return ['VerifyError', 'truncated']\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression: tableswitch hit with aligned operands',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     31,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    7,\n    0),\n   47),\n  ('tableswitch hit at the high bound',\n   ([0,\n     170,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     31,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    1,\n    1),\n   51),\n  ('tableswitch hit at the low bound',\n   ([0,\n     0,\n     170,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     31,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    2,\n    -2),\n   22),\n  ('tableswitch miss takes the backward default',\n   ([0,\n     170,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     31,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    1,\n    5),\n   -7),\n  ('lookupswitch hit with negative offset',\n   ([0,\n     171,\n     0,\n     0,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    1,\n    100),\n   -3),\n  ('lookupswitch miss',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    7,\n    3),\n   19),\n  ('lookupswitch with duplicate keys is rejected',\n   ([0, 171, 0, 0, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 12, 177], 1, 1),\n   ['VerifyError', 'unsorted']),\n  ('control: low greater than high',\n   ([0, 170, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 177], 1, 3),\n   ['VerifyError', 'low>high'])],\n [('regression: tableswitch hit with aligned operands',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     32,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    11,\n    0),\n   51),\n  ('tableswitch hit at the high bound',\n   ([0,\n     0,\n     170,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     32,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    2,\n    1),\n   52),\n  ('tableswitch hit at the low bound',\n   ([0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     32,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    3,\n    -2),\n   23),\n  ('tableswitch miss takes the backward default',\n   ([0,\n     0,\n     170,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     32,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    2,\n    5),\n   -6),\n  ('lookupswitch hit with negative offset',\n   ([0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    2,\n    100),\n   -2),\n  ('lookupswitch miss',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    11,\n    3),\n   23),\n  ('lookupswitch with duplicate keys is rejected',\n   ([0, 0, 171, 0, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 12, 177], 2, 1),\n   ['VerifyError', 'unsorted']),\n  ('control: low greater than high',\n   ([0, 0, 170, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 177], 2, 3),\n   ['VerifyError', 'low>high'])],\n [('regression: tableswitch hit with aligned operands',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    15,\n    0),\n   55),\n  ('tableswitch hit at the high bound',\n   ([0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    3,\n    1),\n   53),\n  ('tableswitch hit at the low bound',\n   ([0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    4,\n    -2),\n   24),\n  ('tableswitch miss takes the backward default',\n   ([0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    3,\n    5),\n   -5),\n  ('lookupswitch hit with negative offset',\n   ([0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    3,\n    100),\n   -1),\n  ('lookupswitch miss',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    15,\n    3),\n   27),\n  ('lookupswitch with duplicate keys is rejected',\n   ([0, 0, 0, 171, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 12, 177], 3, 1),\n   ['VerifyError', 'unsorted']),\n  ('control: low greater than high',\n   ([0, 0, 0, 170, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 177], 3, 3),\n   ['VerifyError', 'low>high'])],\n [('regression: tableswitch hit with aligned operands',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    19,\n    0),\n   59),\n  ('tableswitch hit at the high bound',\n   ([0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    4,\n    1),\n   54),\n  ('tableswitch hit at the low bound',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    5,\n    -2),\n   25),\n  ('tableswitch miss takes the backward default',\n   ([0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    4,\n    5),\n   -4),\n  ('lookupswitch hit with negative offset',\n   ([0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     36,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    4,\n    100),\n   0),\n  ('lookupswitch miss',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     36,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    19,\n    3),\n   31),\n  ('lookupswitch with duplicate keys is rejected',\n   ([0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 12, 177],\n    4,\n    1),\n   ['VerifyError', 'unsorted']),\n  ('control: low greater than high',\n   ([0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 177], 4, 3),\n   ['VerifyError', 'low>high'])],\n [('regression: tableswitch hit with aligned operands',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    23,\n    0),\n   63),\n  ('tableswitch hit at the high bound',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    5,\n    1),\n   55),\n  ('tableswitch hit at the low bound',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    6,\n    -2),\n   26),\n  ('tableswitch miss takes the backward default',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    5,\n    5),\n   -3),\n  ('lookupswitch hit with negative offset',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     37,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    5,\n    100),\n   1),\n  ('lookupswitch miss',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     37,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    23,\n    3),\n   35),\n  ('lookupswitch with duplicate keys is rejected',\n   ([0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 12, 177],\n    5,\n    1),\n   ['VerifyError', 'unsorted']),\n  ('control: low greater than high',\n   ([0, 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 177], 5, 3),\n   ['VerifyError', 'low>high'])]]\nfor label, args, expected in cases[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":"3ca024a5f888ea848ccc327ce22beb22587cd787a9c9b40136729a35b25f744f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(code, addr, key):\n    def s32(p):\n        v = (code[p] << 24) | (code[p + 1] << 16) | (code[p + 2] << 8) | code[p + 3]\n        return v - (1 << 32) if v & 0x80000000 else v\n    def dispatch():\n        op = code[addr]\n        p = addr + 1\n        p += (4 - p % 4) % 4\n        default = s32(p)\n        if op == 0xAA:\n            low, high = s32(p + 4), s32(p + 8)\n            if low > high:\n                return ['VerifyError', 'low>high']\n            if low <= key <= high:\n                return addr + s32(p + 12 + 4 * (key - low))\n            return addr + default\n        if op == 0xAB:\n            npairs = s32(p + 4)\n            if npairs < 0:\n                return ['VerifyError', 'npairs']\n            pairs = [(s32(p + 8 + 8 * i), s32(p + 12 + 8 * i)) for i in range(npairs)]\n            if any(pairs[i][0] >= pairs[i + 1][0] for i in range(npairs - 1)):\n                return ['VerifyError', 'unsorted']\n            lo, hi = 0, npairs - 1\n            while lo <= hi:\n                mid = (lo + hi) // 2\n                if pairs[mid][0] == key:\n                    return addr + pairs[mid][1]\n                if pairs[mid][0] < key:\n                    lo = mid + 1\n                else:\n                    hi = mid - 1\n            return addr + default\n        return ['VerifyError', 'opcode']\n    try:\n        return dispatch()\n    except IndexError:\n        return ['VerifyError', 'truncated']\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression: tableswitch hit with aligned operands',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     31,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    7,\n    0),\n   47),\n  ('tableswitch hit at the high bound',\n   ([0,\n     170,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     31,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    1,\n    1),\n   51),\n  ('tableswitch hit at the low bound',\n   ([0,\n     0,\n     170,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     31,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    2,\n    -2),\n   22),\n  ('tableswitch miss takes the backward default',\n   ([0,\n     170,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     31,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    1,\n    5),\n   -7),\n  ('lookupswitch hit with negative offset',\n   ([0,\n     171,\n     0,\n     0,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    1,\n    100),\n   -3),\n  ('lookupswitch miss',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    7,\n    3),\n   19),\n  ('lookupswitch with duplicate keys is rejected',\n   ([0, 171, 0, 0, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 12, 177], 1, 1),\n   ['VerifyError', 'unsorted']),\n  ('control: low greater than high',\n   ([0, 170, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 177], 1, 3),\n   ['VerifyError', 'low>high'])],\n [('regression: tableswitch hit with aligned operands',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     32,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    11,\n    0),\n   51),\n  ('tableswitch hit at the high bound',\n   ([0,\n     0,\n     170,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     32,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    2,\n    1),\n   52),\n  ('tableswitch hit at the low bound',\n   ([0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     32,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    3,\n    -2),\n   23),\n  ('tableswitch miss takes the backward default',\n   ([0,\n     0,\n     170,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     32,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    2,\n    5),\n   -6),\n  ('lookupswitch hit with negative offset',\n   ([0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    2,\n    100),\n   -2),\n  ('lookupswitch miss',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    11,\n    3),\n   23),\n  ('lookupswitch with duplicate keys is rejected',\n   ([0, 0, 171, 0, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 12, 177], 2, 1),\n   ['VerifyError', 'unsorted']),\n  ('control: low greater than high',\n   ([0, 0, 170, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 177], 2, 3),\n   ['VerifyError', 'low>high'])],\n [('regression: tableswitch hit with aligned operands',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    15,\n    0),\n   55),\n  ('tableswitch hit at the high bound',\n   ([0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    3,\n    1),\n   53),\n  ('tableswitch hit at the low bound',\n   ([0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    4,\n    -2),\n   24),\n  ('tableswitch miss takes the backward default',\n   ([0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     33,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    3,\n    5),\n   -5),\n  ('lookupswitch hit with negative offset',\n   ([0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    3,\n    100),\n   -1),\n  ('lookupswitch miss',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    15,\n    3),\n   27),\n  ('lookupswitch with duplicate keys is rejected',\n   ([0, 0, 0, 171, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 12, 177], 3, 1),\n   ['VerifyError', 'unsorted']),\n  ('control: low greater than high',\n   ([0, 0, 0, 170, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 177], 3, 3),\n   ['VerifyError', 'low>high'])],\n [('regression: tableswitch hit with aligned operands',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    19,\n    0),\n   59),\n  ('tableswitch hit at the high bound',\n   ([0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    4,\n    1),\n   54),\n  ('tableswitch hit at the low bound',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    5,\n    -2),\n   25),\n  ('tableswitch miss takes the backward default',\n   ([0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     34,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    4,\n    5),\n   -4),\n  ('lookupswitch hit with negative offset',\n   ([0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     36,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    4,\n    100),\n   0),\n  ('lookupswitch miss',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     36,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    19,\n    3),\n   31),\n  ('lookupswitch with duplicate keys is rejected',\n   ([0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 12, 177],\n    4,\n    1),\n   ['VerifyError', 'unsorted']),\n  ('control: low greater than high',\n   ([0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 177], 4, 3),\n   ['VerifyError', 'low>high'])],\n [('regression: tableswitch hit with aligned operands',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    23,\n    0),\n   63),\n  ('tableswitch hit at the high bound',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    5,\n    1),\n   55),\n  ('tableswitch hit at the low bound',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    6,\n    -2),\n   26),\n  ('tableswitch miss takes the backward default',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     170,\n     0,\n     0,\n     255,\n     255,\n     255,\n     248,\n     255,\n     255,\n     255,\n     254,\n     0,\n     0,\n     0,\n     1,\n     0,\n     0,\n     0,\n     20,\n     0,\n     0,\n     0,\n     35,\n     0,\n     0,\n     0,\n     40,\n     0,\n     0,\n     0,\n     50,\n     177],\n    5,\n    5),\n   -3),\n  ('lookupswitch hit with negative offset',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     37,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    5,\n    100),\n   1),\n  ('lookupswitch miss',\n   ([0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     171,\n     0,\n     0,\n     0,\n     12,\n     0,\n     0,\n     0,\n     4,\n     255,\n     255,\n     255,\n     251,\n     0,\n     0,\n     0,\n     16,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     0,\n     24,\n     0,\n     0,\n     0,\n     7,\n     0,\n     0,\n     0,\n     37,\n     0,\n     0,\n     0,\n     100,\n     255,\n     255,\n     255,\n     252,\n     177],\n    23,\n    3),\n   35),\n  ('lookupswitch with duplicate keys is rejected',\n   ([0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 12, 177],\n    5,\n    1),\n   ['VerifyError', 'unsorted']),\n  ('control: low greater than high',\n   ([0, 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 177], 5, 3),\n   ['VerifyError', 'low>high'])]]\nfor label, args, expected in cases[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 bytecode virtual machine mechanism with a stipulated instruction encoding; it is not a production VM and claims no conformance to any real specification. 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-bytecode-virtual-machines-switch-dispatch-jump-table-index","generated_at":"2026-09-29T14:51:25.129107+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Switch opcodes combine alignment, signed decoding and relative targets in one instruction.","repair":"Index the offsets with key - low.","root_cause":"The entry index uses key rather than key - low.","sha256":"b7dcfbf546c103d38294e2cde5f3b2c88b79e39bce47bf07eca7d925e14bca04","title":"Switch dispatch: table indexed by key without subtracting low · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.165,"exit_code":1,"observations":[{"actual":38,"check":"regression: tableswitch hit with aligned operands","expected":47,"passed":false},{"actual":41,"check":"tableswitch hit at the high bound","expected":51,"passed":false},{"actual":3,"check":"tableswitch hit at the low bound","expected":22,"passed":false},{"actual":-7,"check":"tableswitch miss takes the backward default","expected":-7,"passed":true},{"actual":-3,"check":"lookupswitch hit with negative offset","expected":-3,"passed":true},{"actual":19,"check":"lookupswitch miss","expected":19,"passed":true},{"actual":["VerifyError","unsorted"],"check":"lookupswitch with duplicate keys is rejected","expected":["VerifyError","unsorted"],"passed":true},{"actual":["VerifyError","low>high"],"check":"control: low greater than high","expected":["VerifyError","low>high"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: tableswitch hit with aligned operands\", \"actual\": 38, \"expected\": 47, \"passed\": false}, {\"check\": \"tableswitch hit at the high bound\", \"actual\": 41, \"expected\": 51, \"passed\": false}, {\"check\": \"tableswitch hit at the low bound\", \"actual\": 3, \"expected\": 22, \"passed\": false}, {\"check\": \"tableswitch miss takes the backward default\", \"actual\": -7, \"expected\": -7, \"passed\": true}, {\"check\": \"lookupswitch hit with negative offset\", \"actual\": -3, \"expected\": -3, \"passed\": true}, {\"check\": \"lookupswitch miss\", \"actual\": 19, \"expected\": 19, \"passed\": true}, {\"check\": \"lookupswitch with duplicate keys is rejected\", \"actual\": [\"VerifyError\", \"unsorted\"], \"expected\": [\"VerifyError\", \"unsorted\"], \"passed\": true}, {\"check\": \"control: low greater than high\", \"actual\": [\"VerifyError\", \"low>high\"], \"expected\": [\"VerifyError\", \"low>high\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.144,"exit_code":1,"observations":[{"actual":27,"check":"regression: tableswitch hit with aligned operands","expected":47,"passed":false},{"actual":32,"check":"tableswitch hit at the high bound","expected":51,"passed":false},{"actual":0,"check":"tableswitch hit at the low bound","expected":22,"passed":false},{"actual":-7,"check":"tableswitch miss takes the backward default","expected":-7,"passed":true},{"actual":-3,"check":"lookupswitch hit with negative offset","expected":-3,"passed":true},{"actual":19,"check":"lookupswitch miss","expected":19,"passed":true},{"actual":["VerifyError","unsorted"],"check":"lookupswitch with duplicate keys is rejected","expected":["VerifyError","unsorted"],"passed":true},{"actual":["VerifyError","low>high"],"check":"control: low greater than high","expected":["VerifyError","low>high"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: tableswitch hit with aligned operands\", \"actual\": 27, \"expected\": 47, \"passed\": false}, {\"check\": \"tableswitch hit at the high bound\", \"actual\": 32, \"expected\": 51, \"passed\": false}, {\"check\": \"tableswitch hit at the low bound\", \"actual\": 0, \"expected\": 22, \"passed\": false}, {\"check\": \"tableswitch miss takes the backward default\", \"actual\": -7, \"expected\": -7, \"passed\": true}, {\"check\": \"lookupswitch hit with negative offset\", \"actual\": -3, \"expected\": -3, \"passed\": true}, {\"check\": \"lookupswitch miss\", \"actual\": 19, \"expected\": 19, \"passed\": true}, {\"check\": \"lookupswitch with duplicate keys is rejected\", \"actual\": [\"VerifyError\", \"unsorted\"], \"expected\": [\"VerifyError\", \"unsorted\"], \"passed\": true}, {\"check\": \"control: low greater than high\", \"actual\": [\"VerifyError\", \"low>high\"], \"expected\": [\"VerifyError\", \"low>high\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.228,"exit_code":0,"observations":[{"actual":47,"check":"regression: tableswitch hit with aligned operands","expected":47,"passed":true},{"actual":51,"check":"tableswitch hit at the high bound","expected":51,"passed":true},{"actual":22,"check":"tableswitch hit at the low bound","expected":22,"passed":true},{"actual":-7,"check":"tableswitch miss takes the backward default","expected":-7,"passed":true},{"actual":-3,"check":"lookupswitch hit with negative offset","expected":-3,"passed":true},{"actual":19,"check":"lookupswitch miss","expected":19,"passed":true},{"actual":["VerifyError","unsorted"],"check":"lookupswitch with duplicate keys is rejected","expected":["VerifyError","unsorted"],"passed":true},{"actual":["VerifyError","low>high"],"check":"control: low greater than high","expected":["VerifyError","low>high"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: tableswitch hit with aligned operands\", \"actual\": 47, \"expected\": 47, \"passed\": true}, {\"check\": \"tableswitch hit at the high bound\", \"actual\": 51, \"expected\": 51, \"passed\": true}, {\"check\": \"tableswitch hit at the low bound\", \"actual\": 22, \"expected\": 22, \"passed\": true}, {\"check\": \"tableswitch miss takes the backward default\", \"actual\": -7, \"expected\": -7, \"passed\": true}, {\"check\": \"lookupswitch hit with negative offset\", \"actual\": -3, \"expected\": -3, \"passed\": true}, {\"check\": \"lookupswitch miss\", \"actual\": 19, \"expected\": 19, \"passed\": true}, {\"check\": \"lookupswitch with duplicate keys is rejected\", \"actual\": [\"VerifyError\", \"unsorted\"], \"expected\": [\"VerifyError\", \"unsorted\"], \"passed\": true}, {\"check\": \"control: low greater than high\", \"actual\": [\"VerifyError\", \"low>high\"], \"expected\": [\"VerifyError\", \"low>high\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}