{"abstract":"A segment playlist resolves byte-range tags into per-segment Range values: carriage returns from CRLF playlists are trimmed before parsing.","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.rstrip('\\n')\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, which still violates the stated contract.","family":"s3-http_ranges-playlist-byterange-crlf-lines","id":"FA-27796","implementations":{"attempt":{"sha256":"d8848239d7e55657927420020f57cf0796f65849f8e41cf365bb3bc08db4682f","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.rstrip('\\n')\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('crlf-lines 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('crlf-lines 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('crlf-lines 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('crlf-lines 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('crlf-lines fixture 4', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10','a.ts']))), json.loads(json.dumps(None)))\ncheck('crlf-lines fixture 5', json.loads(json.dumps(solve(['full.ts','#EXT-X-BYTERANGE:10','a.ts']))), json.loads(json.dumps(None)))\ncheck('crlf-lines 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('crlf-lines 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('crlf-lines fixture 8', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:0@0','a.ts']))), json.loads(json.dumps(None)))\ncheck('crlf-lines 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('crlf-lines 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('crlf-lines fixture 11', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:1x@0','a.ts']))), json.loads(json.dumps(None)))\ncheck('crlf-lines fixture 12', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@','a.ts']))), json.loads(json.dumps(None)))\ncheck('crlf-lines fixture 13', json.loads(json.dumps(solve(['','#EXT-X-BYTERANGE:3@7','   ','c.ts']))), json.loads(json.dumps([['c.ts','bytes=7-9']])))\ncheck('crlf-lines 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":"249d245a48d6e60d61b8107acf4087bb725920643ca536846d9adacdcabbb86d","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\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('crlf-lines 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('crlf-lines 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('crlf-lines 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('crlf-lines 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('crlf-lines fixture 4', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10','a.ts']))), json.loads(json.dumps(None)))\ncheck('crlf-lines fixture 5', json.loads(json.dumps(solve(['full.ts','#EXT-X-BYTERANGE:10','a.ts']))), json.loads(json.dumps(None)))\ncheck('crlf-lines 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('crlf-lines 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('crlf-lines fixture 8', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:0@0','a.ts']))), json.loads(json.dumps(None)))\ncheck('crlf-lines 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('crlf-lines 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('crlf-lines fixture 11', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:1x@0','a.ts']))), json.loads(json.dumps(None)))\ncheck('crlf-lines fixture 12', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@','a.ts']))), json.loads(json.dumps(None)))\ncheck('crlf-lines fixture 13', json.loads(json.dumps(solve(['','#EXT-X-BYTERANGE:3@7','   ','c.ts']))), json.loads(json.dumps([['c.ts','bytes=7-9']])))\ncheck('crlf-lines 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":"94ce5a85b88cb0419461ff6f9801c9db1fe9b74b225dd3fcacd28756ad4bff72","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('crlf-lines 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('crlf-lines 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('crlf-lines 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('crlf-lines 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('crlf-lines fixture 4', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10','a.ts']))), json.loads(json.dumps(None)))\ncheck('crlf-lines fixture 5', json.loads(json.dumps(solve(['full.ts','#EXT-X-BYTERANGE:10','a.ts']))), json.loads(json.dumps(None)))\ncheck('crlf-lines 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('crlf-lines 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('crlf-lines fixture 8', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:0@0','a.ts']))), json.loads(json.dumps(None)))\ncheck('crlf-lines 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('crlf-lines 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('crlf-lines fixture 11', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:1x@0','a.ts']))), json.loads(json.dumps(None)))\ncheck('crlf-lines fixture 12', json.loads(json.dumps(solve(['#EXT-X-BYTERANGE:10@','a.ts']))), json.loads(json.dumps(None)))\ncheck('crlf-lines fixture 13', json.loads(json.dumps(solve(['','#EXT-X-BYTERANGE:3@7','   ','c.ts']))), json.loads(json.dumps([['c.ts','bytes=7-9']])))\ncheck('crlf-lines 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-crlf-lines","generated_at":"2026-09-29T14:41:28.263291+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-crlf-lines decision uses out=[]\npending=None\nprev=None\nfor raw in x:\n    line=raw\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":"e174e61e9616912d1b75aae548639c8785430e0d31373b73a3e33cfc21464fb8","title":"A segment playlist resolves byte-range tags into per-segment Range values: carriage returns from CRLF playlists are trimmed before parsing · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":37.326,"exit_code":1,"observations":[{"actual":[["a.ts","bytes=0-99"],["a.ts","bytes=100-149"],["a.ts","bytes=150-174"]],"check":"crlf-lines 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":"crlf-lines fixture 1","expected":[["b.ts","bytes=5-14"]],"passed":true},{"actual":null,"check":"crlf-lines fixture 2","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 3","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 4","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 5","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 6","expected":null,"passed":true},{"actual":[["a.ts","bytes=0-9"],["b.ts",null]],"check":"crlf-lines fixture 7","expected":[["a.ts","bytes=0-9"],["b.ts",null]],"passed":true},{"actual":null,"check":"crlf-lines fixture 8","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 9","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 10","expected":[["a.ts","bytes=0-9"],["a.ts","bytes=10-13"]],"passed":false},{"actual":null,"check":"crlf-lines fixture 11","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 12","expected":null,"passed":true},{"actual":[["   ","bytes=7-9"],["c.ts",null]],"check":"crlf-lines fixture 13","expected":[["c.ts","bytes=7-9"]],"passed":false},{"actual":[["a.ts","bytes=0-0"],["a.ts","bytes=1-1"]],"check":"crlf-lines fixture 14","expected":[["a.ts","bytes=0-0"],["a.ts","bytes=1-1"]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"crlf-lines 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\": \"crlf-lines fixture 1\", \"actual\": [[\"b.ts\", \"bytes=5-14\"]], \"expected\": [[\"b.ts\", \"bytes=5-14\"]], \"passed\": true}, {\"check\": \"crlf-lines fixture 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 7\", \"actual\": [[\"a.ts\", \"bytes=0-9\"], [\"b.ts\", null]], \"expected\": [[\"a.ts\", \"bytes=0-9\"], [\"b.ts\", null]], \"passed\": true}, {\"check\": \"crlf-lines fixture 8\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 9\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 10\", \"actual\": null, \"expected\": [[\"a.ts\", \"bytes=0-9\"], [\"a.ts\", \"bytes=10-13\"]], \"passed\": false}, {\"check\": \"crlf-lines fixture 11\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 12\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 13\", \"actual\": [[\"   \", \"bytes=7-9\"], [\"c.ts\", null]], \"expected\": [[\"c.ts\", \"bytes=7-9\"]], \"passed\": false}, {\"check\": \"crlf-lines 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":37.284,"exit_code":1,"observations":[{"actual":[["a.ts","bytes=0-99"],["a.ts","bytes=100-149"],["a.ts","bytes=150-174"]],"check":"crlf-lines 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":"crlf-lines fixture 1","expected":[["b.ts","bytes=5-14"]],"passed":true},{"actual":null,"check":"crlf-lines fixture 2","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 3","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 4","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 5","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 6","expected":null,"passed":true},{"actual":[["a.ts","bytes=0-9"],["b.ts",null]],"check":"crlf-lines fixture 7","expected":[["a.ts","bytes=0-9"],["b.ts",null]],"passed":true},{"actual":null,"check":"crlf-lines fixture 8","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 9","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 10","expected":[["a.ts","bytes=0-9"],["a.ts","bytes=10-13"]],"passed":false},{"actual":null,"check":"crlf-lines fixture 11","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 12","expected":null,"passed":true},{"actual":[["   ","bytes=7-9"],["c.ts",null]],"check":"crlf-lines fixture 13","expected":[["c.ts","bytes=7-9"]],"passed":false},{"actual":[["a.ts","bytes=0-0"],["a.ts","bytes=1-1"]],"check":"crlf-lines fixture 14","expected":[["a.ts","bytes=0-0"],["a.ts","bytes=1-1"]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"crlf-lines 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\": \"crlf-lines fixture 1\", \"actual\": [[\"b.ts\", \"bytes=5-14\"]], \"expected\": [[\"b.ts\", \"bytes=5-14\"]], \"passed\": true}, {\"check\": \"crlf-lines fixture 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 7\", \"actual\": [[\"a.ts\", \"bytes=0-9\"], [\"b.ts\", null]], \"expected\": [[\"a.ts\", \"bytes=0-9\"], [\"b.ts\", null]], \"passed\": true}, {\"check\": \"crlf-lines fixture 8\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 9\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 10\", \"actual\": null, \"expected\": [[\"a.ts\", \"bytes=0-9\"], [\"a.ts\", \"bytes=10-13\"]], \"passed\": false}, {\"check\": \"crlf-lines fixture 11\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 12\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 13\", \"actual\": [[\"   \", \"bytes=7-9\"], [\"c.ts\", null]], \"expected\": [[\"c.ts\", \"bytes=7-9\"]], \"passed\": false}, {\"check\": \"crlf-lines 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":38.778,"exit_code":0,"observations":[{"actual":[["a.ts","bytes=0-99"],["a.ts","bytes=100-149"],["a.ts","bytes=150-174"]],"check":"crlf-lines 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":"crlf-lines fixture 1","expected":[["b.ts","bytes=5-14"]],"passed":true},{"actual":null,"check":"crlf-lines fixture 2","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 3","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 4","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 5","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 6","expected":null,"passed":true},{"actual":[["a.ts","bytes=0-9"],["b.ts",null]],"check":"crlf-lines fixture 7","expected":[["a.ts","bytes=0-9"],["b.ts",null]],"passed":true},{"actual":null,"check":"crlf-lines fixture 8","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 9","expected":null,"passed":true},{"actual":[["a.ts","bytes=0-9"],["a.ts","bytes=10-13"]],"check":"crlf-lines fixture 10","expected":[["a.ts","bytes=0-9"],["a.ts","bytes=10-13"]],"passed":true},{"actual":null,"check":"crlf-lines fixture 11","expected":null,"passed":true},{"actual":null,"check":"crlf-lines fixture 12","expected":null,"passed":true},{"actual":[["c.ts","bytes=7-9"]],"check":"crlf-lines fixture 13","expected":[["c.ts","bytes=7-9"]],"passed":true},{"actual":[["a.ts","bytes=0-0"],["a.ts","bytes=1-1"]],"check":"crlf-lines fixture 14","expected":[["a.ts","bytes=0-0"],["a.ts","bytes=1-1"]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"crlf-lines 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\": \"crlf-lines fixture 1\", \"actual\": [[\"b.ts\", \"bytes=5-14\"]], \"expected\": [[\"b.ts\", \"bytes=5-14\"]], \"passed\": true}, {\"check\": \"crlf-lines fixture 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 7\", \"actual\": [[\"a.ts\", \"bytes=0-9\"], [\"b.ts\", null]], \"expected\": [[\"a.ts\", \"bytes=0-9\"], [\"b.ts\", null]], \"passed\": true}, {\"check\": \"crlf-lines fixture 8\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 9\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines 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\": \"crlf-lines fixture 11\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 12\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"crlf-lines fixture 13\", \"actual\": [[\"c.ts\", \"bytes=7-9\"]], \"expected\": [[\"c.ts\", \"bytes=7-9\"]], \"passed\": true}, {\"check\": \"crlf-lines 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"}