{"abstract":"A segment playlist resolves byte-range tags into per-segment Range values: a zero-byte sub-range cannot be expressed as an inclusive Range.","category":"HTTP ranges","checks":15,"contract":"x is a list of playlist lines. Lines are trimmed; blank lines skipped; every other line starting with # is a tag or comment. #EXT-X-BYTERANGE:n[@o] (ASCII decimals) applies only to the next URI line. Without @o the range continues at the byte after the immediately previous segment, which must be a sub-range of the same URI string; otherwise null. A URI without a byte-range tag is a whole-resource segment [uri,null] and breaks any continuation chain. Zero-length sub-ranges and malformed tags return null. Return [uri,inclusive bytes=a-b or null] rows.","evaluation_group":"s3-http_ranges-playlist-byterange","failed_approach":"The partial repair uses out=[]\npending=None\nprev=None\nfor raw in x:\n    line=raw.strip()\n    if not line: continue\n    if line.startswith('#EXT-X-BYTERANGE:'):\n        n,at,o=line[17:].partition('@')\n        if not n.isdigit() or (at and not o.isdigit()): return None\n        pending=[int(n),int(o) if at else None]\n    elif line.startswith('#'):\n        continue\n    else:\n        if pending is None:\n            out.append([line,None])\n            prev=None\n        else:\n            n,o=pending\n            if o is None:\n                if prev is None or prev[0]!=line: return None\n                o=prev[1]\n            if n==0 and not out: return None\n            out.append([line,'bytes=%d-%d'%(o,o+n-1)])\n            prev=[line,o+n]\n        pending=None\nreturn out, which still violates the stated contract.","family":"s3-http_ranges-playlist-byterange-zero-length-subrange","id":"FA-27791","implementations":{"attempt":{"sha256":"7742a18fc0dfa875e418a0f162dc0b3eb60eca862499a629d558ec1ff89ec485","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    out=[]\n    pending=None\n    prev=None\n    for raw in x:\n        line=raw.strip()\n        if not line: continue\n        if line.startswith('#EXT-X-BYTERANGE:'):\n            n,at,o=line[17:].partition('@')\n            if not n.isdigit() or (at and not o.isdigit()): return None\n            pending=[int(n),int(o) if at else None]\n        elif line.startswith('#'):\n            continue\n        else:\n            if pending is None:\n                out.append([line,None])\n                prev=None\n            else:\n                n,o=pending\n                if o is None:\n                    if prev is None or prev[0]!=line: return None\n                    o=prev[1]\n                if n==0 and not out: return None\n                out.append([line,'bytes=%d-%d'%(o,o+n-1)])\n                prev=[line,o+n]\n            pending=None\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('zero-length-subrange fixture 0', json.loads(json.dumps(solve(['#EXTM3U','#EXTINF:1,','#EXT-X-BYTERANGE:100@0','a.ts','#EXTINF:1,','#EXT-X-BYTERANGE:50','a.ts','#EXTINF:1,','#EXT-X-BYTERANGE:25','a.ts']))), json.loads(json.dumps([['a.ts','bytes=0-99'],['a.ts','bytes=100-149'],['a.ts','bytes=150-174']])))\ncheck('zero-length-subrange fixture 1', json.loads(json.dumps(solve(['#EXTM3U','# generated by tool','#EXT-X-BYTERANGE:10@5','b.ts']))), json.loads(json.dumps([['b.ts','bytes=5-14']])))\ncheck('zero-length-subrange fixture 2', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@0','a.ts','#EXT-X-BYTERANGE:10','b.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 3', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@0','a.ts?v=1','#EXT-X-BYTERANGE:10','a.ts?v=2']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 4', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 5', json.loads(json.dumps(solve(['full.ts','#EXT-X-BYTERANGE:10','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 6', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@0','a.ts','a.ts','#EXT-X-BYTERANGE:10','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 7', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@0','a.ts','b.ts']))), json.loads(json.dumps([['a.ts','bytes=0-9'],['b.ts',None]])))\ncheck('zero-length-subrange fixture 8', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:0@0','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 9', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:5@0','a.ts','#EXT-X-BYTERANGE:0','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 10', json.loads(json.dumps(solve(['#EXTM3U\\r\\n','#EXT-X-BYTERANGE:10@0\\r\\n','a.ts\\r\\n','#EXT-X-BYTERANGE:4\\r\\n','a.ts\\r\\n']))), json.loads(json.dumps([['a.ts','bytes=0-9'],['a.ts','bytes=10-13']])))\ncheck('zero-length-subrange fixture 11', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:1x@0','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 12', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 13', json.loads(json.dumps(solve(['','#EXT-X-BYTERANGE:3@7','   ','c.ts']))), json.loads(json.dumps([['c.ts','bytes=7-9']])))\ncheck('zero-length-subrange fixture 14', json.loads(json.dumps(solve([\"#EXT-X-BYTERANGE:%d@0\"%N,'a.ts',\"#EXT-X-BYTERANGE:%d\"%N,'a.ts']))), json.loads(json.dumps([['a.ts',\"bytes=0-%d\"%(N-1)],['a.ts',\"bytes=%d-%d\"%(N,2*N-1)]])))\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":"dfe993dc09c7c6a4d83746c751d1584fc9c2f1e325afcc6b23f77eac4264e6fb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    out=[]\n    pending=None\n    prev=None\n    for raw in x:\n        line=raw.strip()\n        if not line: continue\n        if line.startswith('#EXT-X-BYTERANGE:'):\n            n,at,o=line[17:].partition('@')\n            if not n.isdigit() or (at and not o.isdigit()): return None\n            pending=[int(n),int(o) if at else None]\n        elif line.startswith('#'):\n            continue\n        else:\n            if pending is None:\n                out.append([line,None])\n                prev=None\n            else:\n                n,o=pending\n                if o is None:\n                    if prev is None or prev[0]!=line: return None\n                    o=prev[1]\n                if n<0: return None\n                out.append([line,'bytes=%d-%d'%(o,o+n-1)])\n                prev=[line,o+n]\n            pending=None\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('zero-length-subrange fixture 0', json.loads(json.dumps(solve(['#EXTM3U','#EXTINF:1,','#EXT-X-BYTERANGE:100@0','a.ts','#EXTINF:1,','#EXT-X-BYTERANGE:50','a.ts','#EXTINF:1,','#EXT-X-BYTERANGE:25','a.ts']))), json.loads(json.dumps([['a.ts','bytes=0-99'],['a.ts','bytes=100-149'],['a.ts','bytes=150-174']])))\ncheck('zero-length-subrange fixture 1', json.loads(json.dumps(solve(['#EXTM3U','# generated by tool','#EXT-X-BYTERANGE:10@5','b.ts']))), json.loads(json.dumps([['b.ts','bytes=5-14']])))\ncheck('zero-length-subrange fixture 2', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@0','a.ts','#EXT-X-BYTERANGE:10','b.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 3', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@0','a.ts?v=1','#EXT-X-BYTERANGE:10','a.ts?v=2']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 4', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 5', json.loads(json.dumps(solve(['full.ts','#EXT-X-BYTERANGE:10','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 6', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@0','a.ts','a.ts','#EXT-X-BYTERANGE:10','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 7', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@0','a.ts','b.ts']))), json.loads(json.dumps([['a.ts','bytes=0-9'],['b.ts',None]])))\ncheck('zero-length-subrange fixture 8', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:0@0','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 9', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:5@0','a.ts','#EXT-X-BYTERANGE:0','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 10', json.loads(json.dumps(solve(['#EXTM3U\\r\\n','#EXT-X-BYTERANGE:10@0\\r\\n','a.ts\\r\\n','#EXT-X-BYTERANGE:4\\r\\n','a.ts\\r\\n']))), json.loads(json.dumps([['a.ts','bytes=0-9'],['a.ts','bytes=10-13']])))\ncheck('zero-length-subrange fixture 11', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:1x@0','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 12', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 13', json.loads(json.dumps(solve(['','#EXT-X-BYTERANGE:3@7','   ','c.ts']))), json.loads(json.dumps([['c.ts','bytes=7-9']])))\ncheck('zero-length-subrange fixture 14', json.loads(json.dumps(solve([\"#EXT-X-BYTERANGE:%d@0\"%N,'a.ts',\"#EXT-X-BYTERANGE:%d\"%N,'a.ts']))), json.loads(json.dumps([['a.ts',\"bytes=0-%d\"%(N-1)],['a.ts',\"bytes=%d-%d\"%(N,2*N-1)]])))\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":"14f333d926db294b1931ab77fda12cfc692775e13be4f53d05bf916cddf63851","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    out=[]\n    pending=None\n    prev=None\n    for raw in x:\n        line=raw.strip()\n        if not line: continue\n        if line.startswith('#EXT-X-BYTERANGE:'):\n            n,at,o=line[17:].partition('@')\n            if not n.isdigit() or (at and not o.isdigit()): return None\n            pending=[int(n),int(o) if at else None]\n        elif line.startswith('#'):\n            continue\n        else:\n            if pending is None:\n                out.append([line,None])\n                prev=None\n            else:\n                n,o=pending\n                if o is None:\n                    if prev is None or prev[0]!=line: return None\n                    o=prev[1]\n                if n==0: return None\n                out.append([line,'bytes=%d-%d'%(o,o+n-1)])\n                prev=[line,o+n]\n            pending=None\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('zero-length-subrange fixture 0', json.loads(json.dumps(solve(['#EXTM3U','#EXTINF:1,','#EXT-X-BYTERANGE:100@0','a.ts','#EXTINF:1,','#EXT-X-BYTERANGE:50','a.ts','#EXTINF:1,','#EXT-X-BYTERANGE:25','a.ts']))), json.loads(json.dumps([['a.ts','bytes=0-99'],['a.ts','bytes=100-149'],['a.ts','bytes=150-174']])))\ncheck('zero-length-subrange fixture 1', json.loads(json.dumps(solve(['#EXTM3U','# generated by tool','#EXT-X-BYTERANGE:10@5','b.ts']))), json.loads(json.dumps([['b.ts','bytes=5-14']])))\ncheck('zero-length-subrange fixture 2', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@0','a.ts','#EXT-X-BYTERANGE:10','b.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 3', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@0','a.ts?v=1','#EXT-X-BYTERANGE:10','a.ts?v=2']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 4', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 5', json.loads(json.dumps(solve(['full.ts','#EXT-X-BYTERANGE:10','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 6', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@0','a.ts','a.ts','#EXT-X-BYTERANGE:10','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 7', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@0','a.ts','b.ts']))), json.loads(json.dumps([['a.ts','bytes=0-9'],['b.ts',None]])))\ncheck('zero-length-subrange fixture 8', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:0@0','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 9', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:5@0','a.ts','#EXT-X-BYTERANGE:0','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 10', json.loads(json.dumps(solve(['#EXTM3U\\r\\n','#EXT-X-BYTERANGE:10@0\\r\\n','a.ts\\r\\n','#EXT-X-BYTERANGE:4\\r\\n','a.ts\\r\\n']))), json.loads(json.dumps([['a.ts','bytes=0-9'],['a.ts','bytes=10-13']])))\ncheck('zero-length-subrange fixture 11', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:1x@0','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 12', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@','a.ts']))), json.loads(json.dumps(None)))\ncheck('zero-length-subrange fixture 13', json.loads(json.dumps(solve(['','#EXT-X-BYTERANGE:3@7','   ','c.ts']))), json.loads(json.dumps([['c.ts','bytes=7-9']])))\ncheck('zero-length-subrange fixture 14', json.loads(json.dumps(solve([\"#EXT-X-BYTERANGE:%d@0\"%N,'a.ts',\"#EXT-X-BYTERANGE:%d\"%N,'a.ts']))), json.loads(json.dumps([['a.ts',\"bytes=0-%d\"%(N-1)],['a.ts',\"bytes=%d-%d\"%(N,2*N-1)]])))\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":"Deterministic simplified range service, with stipulated local policies and already parsed trusted inputs; not a complete HTTP implementation. 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":"s3-http_ranges-playlist-byterange-zero-length-subrange","generated_at":"2026-09-29T14:41:28.258235+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Range responses combine representation identity, conditional requests, framing, and partial-object state.","repair":"Apply the bounded decision exactly: out=[]\npending=None\nprev=None\nfor raw in x:\n    line=raw.strip()\n    if not line: continue\n    if line.startswith('#EXT-X-BYTERANGE:'):\n        n,at,o=line[17:].partition('@')\n        if not n.isdigit() or (at and not o.isdigit()): return None\n        pending=[int(n),int(o) if at else None]\n    elif line.startswith('#'):\n        continue\n    else:\n        if pending is None:\n            out.append([line,None])\n            prev=None\n        else:\n            n,o=pending\n            if o is None:\n                if prev is None or prev[0]!=line: return None\n                o=prev[1]\n            if n==0: return None\n            out.append([line,'bytes=%d-%d'%(o,o+n-1)])\n            prev=[line,o+n]\n        pending=None\nreturn out","root_cause":"The playlist-byterange-zero-length-subrange decision uses out=[]\npending=None\nprev=None\nfor raw in x:\n    line=raw.strip()\n    if not line: continue\n    if line.startswith('#EXT-X-BYTERANGE:'):\n        n,at,o=line[17:].partition('@')\n        if not n.isdigit() or (at and not o.isdigit()): return None\n        pending=[int(n),int(o) if at else None]\n    elif line.startswith('#'):\n        continue\n    else:\n        if pending is None:\n            out.append([line,None])\n            prev=None\n        else:\n            n,o=pending\n            if o is None:\n                if prev is None or prev[0]!=line: return None\n                o=prev[1]\n            if n<0: return None\n            out.append([line,'bytes=%d-%d'%(o,o+n-1)])\n            prev=[line,o+n]\n        pending=None\nreturn out.","sha256":"d6794afe8896600a4655a541eeb3fea0602bb05f701621bd1a2a990e874ca47b","title":"A segment playlist resolves byte-range tags into per-segment Range values: a zero-byte sub-range cannot be expressed as an inclusive Range · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.259,"exit_code":1,"observations":[{"actual":[["a.ts","bytes=0-99"],["a.ts","bytes=100-149"],["a.ts","bytes=150-174"]],"check":"zero-length-subrange fixture 0","expected":[["a.ts","bytes=0-99"],["a.ts","bytes=100-149"],["a.ts","bytes=150-174"]],"passed":true},{"actual":[["b.ts","bytes=5-14"]],"check":"zero-length-subrange fixture 1","expected":[["b.ts","bytes=5-14"]],"passed":true},{"actual":null,"check":"zero-length-subrange fixture 2","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 3","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 4","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 5","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 6","expected":null,"passed":true},{"actual":[["a.ts","bytes=0-9"],["b.ts",null]],"check":"zero-length-subrange fixture 7","expected":[["a.ts","bytes=0-9"],["b.ts",null]],"passed":true},{"actual":null,"check":"zero-length-subrange fixture 8","expected":null,"passed":true},{"actual":[["a.ts","bytes=0-4"],["a.ts","bytes=5-4"]],"check":"zero-length-subrange fixture 9","expected":null,"passed":false},{"actual":[["a.ts","bytes=0-9"],["a.ts","bytes=10-13"]],"check":"zero-length-subrange fixture 10","expected":[["a.ts","bytes=0-9"],["a.ts","bytes=10-13"]],"passed":true},{"actual":null,"check":"zero-length-subrange fixture 11","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 12","expected":null,"passed":true},{"actual":[["c.ts","bytes=7-9"]],"check":"zero-length-subrange fixture 13","expected":[["c.ts","bytes=7-9"]],"passed":true},{"actual":[["a.ts","bytes=0-0"],["a.ts","bytes=1-1"]],"check":"zero-length-subrange fixture 14","expected":[["a.ts","bytes=0-0"],["a.ts","bytes=1-1"]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"zero-length-subrange fixture 0\", \"actual\": [[\"a.ts\", \"bytes=0-99\"], [\"a.ts\", \"bytes=100-149\"], [\"a.ts\", \"bytes=150-174\"]], \"expected\": [[\"a.ts\", \"bytes=0-99\"], [\"a.ts\", \"bytes=100-149\"], [\"a.ts\", \"bytes=150-174\"]], \"passed\": true}, {\"check\": \"zero-length-subrange fixture 1\", \"actual\": [[\"b.ts\", \"bytes=5-14\"]], \"expected\": [[\"b.ts\", \"bytes=5-14\"]], \"passed\": true}, {\"check\": \"zero-length-subrange fixture 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 7\", \"actual\": [[\"a.ts\", \"bytes=0-9\"], [\"b.ts\", null]], \"expected\": [[\"a.ts\", \"bytes=0-9\"], [\"b.ts\", null]], \"passed\": true}, {\"check\": \"zero-length-subrange fixture 8\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 9\", \"actual\": [[\"a.ts\", \"bytes=0-4\"], [\"a.ts\", \"bytes=5-4\"]], \"expected\": null, \"passed\": false}, {\"check\": \"zero-length-subrange fixture 10\", \"actual\": [[\"a.ts\", \"bytes=0-9\"], [\"a.ts\", \"bytes=10-13\"]], \"expected\": [[\"a.ts\", \"bytes=0-9\"], [\"a.ts\", \"bytes=10-13\"]], \"passed\": true}, {\"check\": \"zero-length-subrange fixture 11\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 12\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 13\", \"actual\": [[\"c.ts\", \"bytes=7-9\"]], \"expected\": [[\"c.ts\", \"bytes=7-9\"]], \"passed\": true}, {\"check\": \"zero-length-subrange fixture 14\", \"actual\": [[\"a.ts\", \"bytes=0-0\"], [\"a.ts\", \"bytes=1-1\"]], \"expected\": [[\"a.ts\", \"bytes=0-0\"], [\"a.ts\", \"bytes=1-1\"]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.571,"exit_code":1,"observations":[{"actual":[["a.ts","bytes=0-99"],["a.ts","bytes=100-149"],["a.ts","bytes=150-174"]],"check":"zero-length-subrange fixture 0","expected":[["a.ts","bytes=0-99"],["a.ts","bytes=100-149"],["a.ts","bytes=150-174"]],"passed":true},{"actual":[["b.ts","bytes=5-14"]],"check":"zero-length-subrange fixture 1","expected":[["b.ts","bytes=5-14"]],"passed":true},{"actual":null,"check":"zero-length-subrange fixture 2","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 3","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 4","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 5","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 6","expected":null,"passed":true},{"actual":[["a.ts","bytes=0-9"],["b.ts",null]],"check":"zero-length-subrange fixture 7","expected":[["a.ts","bytes=0-9"],["b.ts",null]],"passed":true},{"actual":[["a.ts","bytes=0--1"]],"check":"zero-length-subrange fixture 8","expected":null,"passed":false},{"actual":[["a.ts","bytes=0-4"],["a.ts","bytes=5-4"]],"check":"zero-length-subrange fixture 9","expected":null,"passed":false},{"actual":[["a.ts","bytes=0-9"],["a.ts","bytes=10-13"]],"check":"zero-length-subrange fixture 10","expected":[["a.ts","bytes=0-9"],["a.ts","bytes=10-13"]],"passed":true},{"actual":null,"check":"zero-length-subrange fixture 11","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 12","expected":null,"passed":true},{"actual":[["c.ts","bytes=7-9"]],"check":"zero-length-subrange fixture 13","expected":[["c.ts","bytes=7-9"]],"passed":true},{"actual":[["a.ts","bytes=0-0"],["a.ts","bytes=1-1"]],"check":"zero-length-subrange fixture 14","expected":[["a.ts","bytes=0-0"],["a.ts","bytes=1-1"]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"zero-length-subrange fixture 0\", \"actual\": [[\"a.ts\", \"bytes=0-99\"], [\"a.ts\", \"bytes=100-149\"], [\"a.ts\", \"bytes=150-174\"]], \"expected\": [[\"a.ts\", \"bytes=0-99\"], [\"a.ts\", \"bytes=100-149\"], [\"a.ts\", \"bytes=150-174\"]], \"passed\": true}, {\"check\": \"zero-length-subrange fixture 1\", \"actual\": [[\"b.ts\", \"bytes=5-14\"]], \"expected\": [[\"b.ts\", \"bytes=5-14\"]], \"passed\": true}, {\"check\": \"zero-length-subrange fixture 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 7\", \"actual\": [[\"a.ts\", \"bytes=0-9\"], [\"b.ts\", null]], \"expected\": [[\"a.ts\", \"bytes=0-9\"], [\"b.ts\", null]], \"passed\": true}, {\"check\": \"zero-length-subrange fixture 8\", \"actual\": [[\"a.ts\", \"bytes=0--1\"]], \"expected\": null, \"passed\": false}, {\"check\": \"zero-length-subrange fixture 9\", \"actual\": [[\"a.ts\", \"bytes=0-4\"], [\"a.ts\", \"bytes=5-4\"]], \"expected\": null, \"passed\": false}, {\"check\": \"zero-length-subrange fixture 10\", \"actual\": [[\"a.ts\", \"bytes=0-9\"], [\"a.ts\", \"bytes=10-13\"]], \"expected\": [[\"a.ts\", \"bytes=0-9\"], [\"a.ts\", \"bytes=10-13\"]], \"passed\": true}, {\"check\": \"zero-length-subrange fixture 11\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 12\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 13\", \"actual\": [[\"c.ts\", \"bytes=7-9\"]], \"expected\": [[\"c.ts\", \"bytes=7-9\"]], \"passed\": true}, {\"check\": \"zero-length-subrange fixture 14\", \"actual\": [[\"a.ts\", \"bytes=0-0\"], [\"a.ts\", \"bytes=1-1\"]], \"expected\": [[\"a.ts\", \"bytes=0-0\"], [\"a.ts\", \"bytes=1-1\"]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":37.254,"exit_code":0,"observations":[{"actual":[["a.ts","bytes=0-99"],["a.ts","bytes=100-149"],["a.ts","bytes=150-174"]],"check":"zero-length-subrange fixture 0","expected":[["a.ts","bytes=0-99"],["a.ts","bytes=100-149"],["a.ts","bytes=150-174"]],"passed":true},{"actual":[["b.ts","bytes=5-14"]],"check":"zero-length-subrange fixture 1","expected":[["b.ts","bytes=5-14"]],"passed":true},{"actual":null,"check":"zero-length-subrange fixture 2","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 3","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 4","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 5","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 6","expected":null,"passed":true},{"actual":[["a.ts","bytes=0-9"],["b.ts",null]],"check":"zero-length-subrange fixture 7","expected":[["a.ts","bytes=0-9"],["b.ts",null]],"passed":true},{"actual":null,"check":"zero-length-subrange fixture 8","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 9","expected":null,"passed":true},{"actual":[["a.ts","bytes=0-9"],["a.ts","bytes=10-13"]],"check":"zero-length-subrange fixture 10","expected":[["a.ts","bytes=0-9"],["a.ts","bytes=10-13"]],"passed":true},{"actual":null,"check":"zero-length-subrange fixture 11","expected":null,"passed":true},{"actual":null,"check":"zero-length-subrange fixture 12","expected":null,"passed":true},{"actual":[["c.ts","bytes=7-9"]],"check":"zero-length-subrange fixture 13","expected":[["c.ts","bytes=7-9"]],"passed":true},{"actual":[["a.ts","bytes=0-0"],["a.ts","bytes=1-1"]],"check":"zero-length-subrange fixture 14","expected":[["a.ts","bytes=0-0"],["a.ts","bytes=1-1"]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"zero-length-subrange fixture 0\", \"actual\": [[\"a.ts\", \"bytes=0-99\"], [\"a.ts\", \"bytes=100-149\"], [\"a.ts\", \"bytes=150-174\"]], \"expected\": [[\"a.ts\", \"bytes=0-99\"], [\"a.ts\", \"bytes=100-149\"], [\"a.ts\", \"bytes=150-174\"]], \"passed\": true}, {\"check\": \"zero-length-subrange fixture 1\", \"actual\": [[\"b.ts\", \"bytes=5-14\"]], \"expected\": [[\"b.ts\", \"bytes=5-14\"]], \"passed\": true}, {\"check\": \"zero-length-subrange fixture 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 7\", \"actual\": [[\"a.ts\", \"bytes=0-9\"], [\"b.ts\", null]], \"expected\": [[\"a.ts\", \"bytes=0-9\"], [\"b.ts\", null]], \"passed\": true}, {\"check\": \"zero-length-subrange fixture 8\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 9\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 10\", \"actual\": [[\"a.ts\", \"bytes=0-9\"], [\"a.ts\", \"bytes=10-13\"]], \"expected\": [[\"a.ts\", \"bytes=0-9\"], [\"a.ts\", \"bytes=10-13\"]], \"passed\": true}, {\"check\": \"zero-length-subrange fixture 11\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 12\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero-length-subrange fixture 13\", \"actual\": [[\"c.ts\", \"bytes=7-9\"]], \"expected\": [[\"c.ts\", \"bytes=7-9\"]], \"passed\": true}, {\"check\": \"zero-length-subrange fixture 14\", \"actual\": [[\"a.ts\", \"bytes=0-0\"], [\"a.ts\", \"bytes=1-1\"]], \"expected\": [[\"a.ts\", \"bytes=0-0\"], [\"a.ts\", \"bytes=1-1\"]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}