From 58b0afb833eb5e75e955860abe07d4ae20dc6c8e Mon Sep 17 00:00:00 2001 From: Benjamin Date: Sun, 1 Mar 2026 17:42:30 +1000 Subject: [PATCH 1/2] feat: add batch-add-disc-fixtures skill New skill for processing multiple Blu-ray ISOs in one pass: - Mount and analyze all ISOs in a folder - Generate summary report with IG menu cross-checks - User reviews/confirms counts in bulk - Create all fixtures, tests, and matrix entries Includes reference batch-analysis-report.py script template for structured report generation with IG button-per-page cross-validation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../skills/batch-add-disc-fixtures/SKILL.md | 304 ++++++++++++++++++ .../references/batch-analysis-report.py | 228 +++++++++++++ 2 files changed, 532 insertions(+) create mode 100644 .github/skills/batch-add-disc-fixtures/SKILL.md create mode 100644 .github/skills/batch-add-disc-fixtures/references/batch-analysis-report.py diff --git a/.github/skills/batch-add-disc-fixtures/SKILL.md b/.github/skills/batch-add-disc-fixtures/SKILL.md new file mode 100644 index 0000000..bf86d6b --- /dev/null +++ b/.github/skills/batch-add-disc-fixtures/SKILL.md @@ -0,0 +1,304 @@ +--- +name: batch-add-disc-fixtures +description: 'Batch-process a folder of Blu-ray ISOs: mount each, run analysis, generate a summary report for user review, then create fixtures for confirmed discs. Use when given a folder of ISOs or asked to add multiple discs at once.' +--- + +# Batch Add Disc Fixtures + +## Overview + +Orchestration workflow for processing multiple Blu-ray ISOs in one pass. +Instead of the single-disc back-and-forth (mount → analyze → user confirms +→ fixture → repeat), this skill: + +1. Mounts and analyzes every ISO in a folder +2. Generates a summary report with IG menu cross-checks +3. User reviews and confirms/corrects counts in one pass +4. Creates all fixtures, tests, and matrix entries + +Delegates per-disc fixture creation to the +[add-disc-fixture](../add-disc-fixture/SKILL.md) skill. + +## When to Use This Skill + +- User provides a folder path containing multiple ISOs +- User asks to "add all discs from …" or "batch add" +- User wants to process an entire series at once + +## Prerequisites + +- Windows (uses `Mount-DiskImage` / `Dismount-DiskImage`) +- ISOs accessible via local path or UNC share +- Python environment with bdpl installed (`pip install -e ".[dev]"`) +- Existing test infrastructure (conftest.py, test_disc_matrix.py) + +## Step-by-Step Workflow + +### 1. Enumerate ISOs + +```powershell +$folder = "\\server\share\SERIES NAME" +Get-ChildItem $folder -Filter "*.ISO" | Select-Object Name, Length | + Sort-Object Name +``` + +List the ISOs found and confirm with the user before proceeding. + +### 2. Determine Next Disc Number + +Check existing fixtures to find the next available disc number: + +```python +import re +from pathlib import Path + +fixtures = Path("tests/fixtures") +existing = sorted( + int(m.group(1)) + for d in fixtures.iterdir() + if d.is_dir() and (m := re.match(r"disc(\d+)", d.name)) +) +next_disc = existing[-1] + 1 if existing else 1 +print(f"Next disc number: {next_disc}") +``` + +### 3. Mount and Analyze All ISOs + +For each ISO, mount it, find the BDMV directory, and run analysis. +Collect results into a structured report. + +**IMPORTANT**: Always dismount ISOs after analysis, even if errors occur. +Use try/finally to guarantee cleanup. + +```python +import json +from pathlib import Path +from bdpl.analyze import scan_disc +from bdpl.bdmv.mpls import parse_mpls_dir +from bdpl.bdmv.clpi import parse_clpi_dir + +results = [] + +for iso_path in iso_files: + # Mount + # $vol = (Mount-DiskImage -ImagePath $iso -PassThru | Get-Volume) + # $drive = "$($vol.DriveLetter):\" + + try: + bdmv = Path(f"{drive}/BDMV") + if not bdmv.exists(): + # Some discs have BDMV directly at root, others nested + results.append({"iso": iso_path.name, "error": "No BDMV found"}) + continue + + playlists = parse_mpls_dir(bdmv / "PLAYLIST") + clips = parse_clpi_dir(bdmv / "CLIPINF") + result = scan_disc(bdmv, playlists, clips) + + results.append({ + "iso": iso_path.name, + "episodes": len(result.episodes), + "episode_details": [ + { + "num": ep.episode, + "playlist": ep.playlist, + "duration_min": round(ep.duration_ms / 60000, 1), + } + for ep in result.episodes + ], + "specials": len(result.special_features), + "special_details": [ + { + "index": sf.index, + "playlist": sf.playlist, + "category": sf.category, + "duration_min": round(sf.duration_ms / 60000, 1), + } + for sf in result.special_features + ], + "classifications": result.analysis.get("classifications", {}), + }) + finally: + # Always dismount + # Dismount-DiskImage -ImagePath $iso + pass +``` + +### 4. Collect IG Menu Cross-Check Data + +For each disc, extract IG menu button counts per page and compare +against detected episode/special counts. This provides a confidence +signal — if the menu says 4 episode buttons but analysis found 5 +episodes, flag it. + +```python +from bdpl.bdmv.ig_stream import parse_ics + +def ig_cross_check(bdmv_path, result): + """Return per-page button summary for cross-checking.""" + ics_path = bdmv_path.parent / "ics_menu.bin" + # During batch analysis, use the live ICS from the mounted disc + # (the fixture ics_menu.bin doesn't exist yet) + hints = result.analysis.get("disc_hints", {}) + ig_raw = hints.get("ig_hints_raw", []) + + if not ig_raw: + return {"pages": [], "note": "No IG data available"} + + # Group buttons by page + pages = {} + for h in ig_raw: + pid = h.page_id + if pid not in pages: + pages[pid] = {"page_id": pid, "buttons": 0, "targets": set()} + pages[pid]["buttons"] += 1 + if h.jump_title is not None: + pages[pid]["targets"].add(f"JT({h.jump_title})") + elif h.playlist is not None: + pages[pid]["targets"].add(f"PL({h.playlist})") + + # Convert sets to sorted lists for display + for p in pages.values(): + p["targets"] = sorted(p["targets"]) + p["unique_targets"] = len(p["targets"]) + + return {"pages": sorted(pages.values(), key=lambda x: x["page_id"])} +``` + +### 5. Generate Summary Report + +Present results in a table format. Flag any rows where IG cross-check +disagrees with detected counts. + +``` +┌──────────────────────┬──────┬─────────┬────────────┬───────────────────────┐ +│ ISO │ Eps │ Specials│ IG Check │ Notes │ +├──────────────────────┼──────┼─────────┼────────────┼───────────────────────┤ +│ SERIES_D1.ISO │ 4 │ 0 │ ✅ 4 btns │ ch-split, 24min each │ +│ SERIES_D2.ISO │ 4 │ 4 │ ✅ 4+4 │ 24min eps, <3min spc │ +│ SERIES_SD.ISO │ 1 │ 1 │ ⚠️ no IG │ 1 ep + 1 dig.archive │ +└──────────────────────┴──────┴─────────┴────────────┴───────────────────────┘ + +Episode details: + SERIES_D1.ISO: + ep1: 00002.mpls 24.0min | ep2: 00002.mpls 24.0min | ... + ... + +Special details: + SERIES_D2.ISO: + #1: 00005.mpls creditless_op 1.5min | #2: 00006.mpls creditless_ed 1.5min | ... + ... +``` + +**Key indicators:** +- ✅ = IG button count matches detected count +- ⚠️ = No IG data or inconclusive (common for SD/archive discs) +- ❌ = IG button count disagrees — needs user attention + +### 6. User Review + +Present the summary and ask the user to confirm or correct. Use +`ask_user` for each disc that needs attention: + +- For ✅ discs: batch confirm ("These N discs look correct?") +- For ⚠️ discs: ask for expected counts individually +- For ❌ discs: flag disagreement, ask user to provide correct counts + +After review, you'll have a confirmed list: +``` +disc22: SERIES_D1.ISO → 4 episodes, 0 specials +disc23: SERIES_D2.ISO → 4 episodes, 4 specials +disc24: SERIES_SD.ISO → 1 episode, 1 digital_archive +``` + +### 7. Create Fixtures (Batch) + +For each confirmed disc, follow the [add-disc-fixture](../add-disc-fixture/SKILL.md) +workflow steps 5–8: + +1. Re-mount the ISO (if dismounted after step 3) +2. Extract ICS menu data +3. Copy PLAYLIST/, CLIPINF/, index.bdmv, MovieObject.bdmv +4. Create generic bdmt_eng.xml with `TEST DISC {N}` +5. Verify size < 100KB +6. Create integration test file +7. Add conftest.py fixtures +8. Add to test_disc_matrix.py (all 6 parametrizations) +9. Dismount ISO + +**Tip**: Process all fixture file copies first (steps 1-5 for all discs), +then create all test files (steps 6-8 for all discs). This minimizes +mount/dismount cycles. + +### 8. Handle Analysis Mismatches + +If user-confirmed counts don't match analysis results for any disc: + +1. **Don't fix yet** — create fixtures for all matching discs first +2. Run tests for matching discs to establish a green baseline +3. Then debug mismatches one at a time using the + [debug-analysis guide](../add-disc-fixture/references/debug-analysis.md) +4. Follow the structural-signals-over-thresholds approach (see AGENTS.md) +5. After each fix, re-run ALL tests to verify no regressions + +### 9. Validate and PR + +```bash +python -m pytest tests/ -x -q # All tests pass +python -m ruff check . # No lint issues +python -m ruff format --check . # No format issues +``` + +Create a single PR for all new fixtures using the +[make-repo-contribution](../make-repo-contribution/SKILL.md) skill. +The PR should list all discs added and any analysis fixes made. + +### 10. Clean Up + +- Dismount all ISOs +- Delete temporary scripts +- Verify no copyrighted content in fixtures + +## Execution Notes + +### Mount/Dismount Pattern (PowerShell) + +```powershell +# Mount — returns drive letter +$vol = Mount-DiskImage -ImagePath $isoPath -PassThru | Get-Volume +$drive = "$($vol.DriveLetter):\" + +# ... do work ... + +# Dismount — use original ISO path +Dismount-DiskImage -ImagePath $isoPath +``` + +**Gotchas:** +- UNC paths may need to be copied locally first for Mount-DiskImage +- Always use `-PassThru` to get the volume object +- Some ISOs mount slowly — add a small delay or retry if drive not ready +- `Dismount-DiskImage` uses the ISO path, not the drive letter + +### Parallel vs Sequential + +Mount ISOs **one at a time**. Windows can mount multiple, but: +- Fewer drive letters to track +- Cleaner error handling +- Lower risk of forgetting to dismount + +### Fixture Numbering + +Disc numbers are assigned sequentially from the next available number. +The order should match the ISO sort order (typically alphabetical). +Document the ISO→disc mapping in the PR description. + +## Comparison with add-disc-fixture + +| Aspect | add-disc-fixture | batch-add-disc-fixtures | +|--------|-----------------|------------------------| +| Input | Single disc path | Folder of ISOs | +| User interaction | Per-disc confirm | Bulk review table | +| IG cross-check | Not included | Included in report | +| When to use | One-off disc | Multiple discs/series | +| Debugging | Inline | After green baseline | diff --git a/.github/skills/batch-add-disc-fixtures/references/batch-analysis-report.py b/.github/skills/batch-add-disc-fixtures/references/batch-analysis-report.py new file mode 100644 index 0000000..810b174 --- /dev/null +++ b/.github/skills/batch-add-disc-fixtures/references/batch-analysis-report.py @@ -0,0 +1,228 @@ +# Batch Analysis Report — Reference Template +# +# This script template is used by the batch-add-disc-fixtures skill. +# The agent adapts it for each batch run — it is NOT meant to be +# executed standalone. +# +# Usage: The agent will inline this logic in a Python session, +# substituting actual ISO paths and drive letters. + +""" +Batch-analyze mounted Blu-ray ISOs and produce a summary report. + +Expects a list of (iso_name, bdmv_path) tuples for already-mounted discs. +""" + +from __future__ import annotations + +import sys +from dataclasses import dataclass +from pathlib import Path + +# bdpl must be installed: pip install -e ".[dev]" +from bdpl.analyze import scan_disc +from bdpl.bdmv.clpi import parse_clpi_dir +from bdpl.bdmv.mpls import parse_mpls_dir + + +@dataclass +class DiscReport: + iso_name: str + episodes: int + specials: int + episode_details: list[dict] + special_details: list[dict] + classifications: dict + ig_pages: list[dict] + ig_note: str + ig_match: str # "ok", "warn", "mismatch" + + +def analyze_one(iso_name: str, bdmv_path: Path) -> DiscReport: + """Analyze a single mounted BDMV and return a structured report.""" + playlists = parse_mpls_dir(bdmv_path / "PLAYLIST") + clips = parse_clpi_dir(bdmv_path / "CLIPINF") + result = scan_disc(bdmv_path, playlists, clips) + + # Episode details + ep_details = [ + { + "num": ep.episode, + "playlist": ep.playlist, + "duration_min": round(ep.duration_ms / 60000, 1), + } + for ep in result.episodes + ] + + # Special details + sp_details = [ + { + "index": sf.index, + "playlist": sf.playlist, + "category": sf.category, + "duration_min": round(sf.duration_ms / 60000, 1), + } + for sf in result.special_features + ] + + # IG cross-check + hints = result.analysis.get("disc_hints", {}) + ig_raw = hints.get("ig_hints_raw", []) + ig_pages = _extract_ig_pages(ig_raw) + ig_match, ig_note = _ig_cross_check( + ig_pages, len(result.episodes), len(result.special_features) + ) + + return DiscReport( + iso_name=iso_name, + episodes=len(result.episodes), + specials=len(result.special_features), + episode_details=ep_details, + special_details=sp_details, + classifications=result.analysis.get("classifications", {}), + ig_pages=ig_pages, + ig_note=ig_note, + ig_match=ig_match, + ) + + +def _extract_ig_pages(ig_raw: list) -> list[dict]: + """Group IG hints by page, counting buttons and unique targets.""" + if not ig_raw: + return [] + + pages: dict[int, dict] = {} + for h in ig_raw: + pid = h.page_id + if pid not in pages: + pages[pid] = {"page_id": pid, "buttons": 0, "targets": set()} + pages[pid]["buttons"] += 1 + if h.jump_title is not None: + pages[pid]["targets"].add(f"JT({h.jump_title})") + elif h.playlist is not None: + pages[pid]["targets"].add(f"PL({h.playlist})") + + result = [] + for p in sorted(pages.values(), key=lambda x: x["page_id"]): + result.append( + { + "page_id": p["page_id"], + "buttons": p["buttons"], + "unique_targets": len(p["targets"]), + "targets": sorted(p["targets"]), + } + ) + return result + + +def _ig_cross_check( + ig_pages: list[dict], ep_count: int, sp_count: int +) -> tuple[str, str]: + """ + Compare IG page button counts against detected episode/special counts. + + Returns (match_status, note) where match_status is one of: + - "ok": IG data supports the detected counts + - "warn": No IG data or inconclusive + - "mismatch": IG data disagrees with detected counts + """ + if not ig_pages: + return "warn", "No IG data available" + + # Heuristic: the page with the most buttons targeting unique playlists + # that roughly matches episode count is likely the episode page. + # Pages with fewer buttons targeting unique playlists may be special pages. + # + # This is advisory only — the user makes the final call. + notes = [] + for page in ig_pages: + notes.append( + f"p{page['page_id']}: {page['buttons']} btns, " + f"{page['unique_targets']} unique targets" + ) + + # Simple match check: is there a page with unique_targets == ep_count? + ep_page_match = any(p["unique_targets"] == ep_count for p in ig_pages) + if ep_page_match: + return "ok", "; ".join(notes) + + # Check if any page is close (off by 1, which can happen with + # "play all" button being counted) + close_match = any( + abs(p["unique_targets"] - ep_count) <= 1 for p in ig_pages + ) + if close_match: + return "ok", "; ".join(notes) + " (close match)" + + return "mismatch", "; ".join(notes) + + +def format_report(reports: list[DiscReport], start_disc: int) -> str: + """Format batch analysis results as a readable summary table.""" + lines = [] + lines.append("=" * 72) + lines.append("BATCH ANALYSIS REPORT") + lines.append("=" * 72) + lines.append("") + + # Summary table + match_icons = {"ok": "✅", "warn": "⚠️", "mismatch": "❌"} + lines.append( + f"{'#':<5} {'ISO':<30} {'Eps':>4} {'Spc':>4} {'IG':>3} Notes" + ) + lines.append("-" * 72) + for i, r in enumerate(reports): + disc_n = start_disc + i + icon = match_icons.get(r.ig_match, "?") + lines.append( + f"d{disc_n:<4} {r.iso_name:<30} {r.episodes:>4} " + f"{r.specials:>4} {icon} {r.ig_note}" + ) + + # Episode details + lines.append("") + lines.append("EPISODE DETAILS") + lines.append("-" * 72) + for i, r in enumerate(reports): + disc_n = start_disc + i + if r.episode_details: + eps = " | ".join( + f"ep{e['num']}: {e['playlist']} {e['duration_min']}min" + for e in r.episode_details + ) + lines.append(f" disc{disc_n}: {eps}") + + # Special details + lines.append("") + lines.append("SPECIAL DETAILS") + lines.append("-" * 72) + for i, r in enumerate(reports): + disc_n = start_disc + i + if r.special_details: + sps = " | ".join( + f"#{s['index']}: {s['playlist']} {s['category']} " + f"{s['duration_min']}min" + for s in r.special_details + ) + lines.append(f" disc{disc_n}: {sps}") + + # Classifications + lines.append("") + lines.append("CLASSIFICATIONS") + lines.append("-" * 72) + for i, r in enumerate(reports): + disc_n = start_disc + i + if r.classifications: + cls_str = ", ".join( + f"{k}: {v}" for k, v in sorted(r.classifications.items()) + ) + lines.append(f" disc{disc_n}: {cls_str}") + + lines.append("") + lines.append("=" * 72) + return "\n".join(lines) + + +if __name__ == "__main__": + # Example usage — agent substitutes real values + print("This script is a reference template. See SKILL.md for usage.") From a7f79304ece9bb4ab3c48fb96b8707d8d85aea08 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Sun, 1 Mar 2026 18:32:18 +1000 Subject: [PATCH 2/2] feat: add disc22-25 fixtures + improve periodicity detection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Batch-add 4 disc fixtures from 0083 Stardust Memory: - disc22 (D1): 5 episodes, 0 specials — chapter-split compilation - disc23 (D2): 5 episodes, 0 specials — chapter-split compilation - disc24 (D3): 3 episodes, 8 specials — compilation + commentary + extras - disc25 (SD): 1 episode, 1 digital archive Analysis improvements: - Extended periodicity detector: OP can be at position [1] when [0] is a short preamble; ED check extended to [-3] for patterns with trailing preview/transition chapters after ED - Majority rule: replaced 75% threshold with simple majority (matched > unmatched AND matched >= 2). Series finales often drop OP/ED, making one group fail without invalidating the pattern. - Always try chapter-splitting the longest episode playlist, not just when there's exactly one. Structural evidence (periodicity/IG marks) prevents false splits. 399 tests passing across 25 disc fixtures. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../references/batch-analysis-report.py | 29 +++-------- bdpl/analyze/ordering.py | 30 +++++++---- tests/conftest.py | 48 +++++++++++++++++ tests/fixtures/disc22/CLIPINF/00000.clpi | Bin 0 -> 428 bytes tests/fixtures/disc22/CLIPINF/00001.clpi | Bin 0 -> 564 bytes tests/fixtures/disc22/CLIPINF/00002.clpi | Bin 0 -> 504 bytes tests/fixtures/disc22/CLIPINF/00003.clpi | Bin 0 -> 292 bytes tests/fixtures/disc22/CLIPINF/00004.clpi | Bin 0 -> 292 bytes tests/fixtures/disc22/CLIPINF/00006.clpi | Bin 0 -> 60528 bytes tests/fixtures/disc22/CLIPINF/00007.clpi | Bin 0 -> 572 bytes tests/fixtures/disc22/META/DL/bdmt_eng.xml | 6 +++ tests/fixtures/disc22/MovieObject.bdmv | Bin 0 -> 1046 bytes tests/fixtures/disc22/PLAYLIST/00000.mpls | Bin 0 -> 280 bytes tests/fixtures/disc22/PLAYLIST/00001.mpls | Bin 0 -> 322 bytes tests/fixtures/disc22/PLAYLIST/00002.mpls | Bin 0 -> 922 bytes tests/fixtures/disc22/ics_menu.bin | Bin 0 -> 14882 bytes tests/fixtures/disc22/index.bdmv | Bin 0 -> 120 bytes tests/fixtures/disc23/CLIPINF/00000.clpi | Bin 0 -> 428 bytes tests/fixtures/disc23/CLIPINF/00001.clpi | Bin 0 -> 564 bytes tests/fixtures/disc23/CLIPINF/00002.clpi | Bin 0 -> 504 bytes tests/fixtures/disc23/CLIPINF/00003.clpi | Bin 0 -> 292 bytes tests/fixtures/disc23/CLIPINF/00004.clpi | Bin 0 -> 292 bytes tests/fixtures/disc23/CLIPINF/00006.clpi | Bin 0 -> 61032 bytes tests/fixtures/disc23/CLIPINF/00007.clpi | Bin 0 -> 572 bytes tests/fixtures/disc23/META/DL/bdmt_eng.xml | 6 +++ tests/fixtures/disc23/MovieObject.bdmv | Bin 0 -> 1046 bytes tests/fixtures/disc23/PLAYLIST/00000.mpls | Bin 0 -> 280 bytes tests/fixtures/disc23/PLAYLIST/00001.mpls | Bin 0 -> 322 bytes tests/fixtures/disc23/PLAYLIST/00002.mpls | Bin 0 -> 936 bytes tests/fixtures/disc23/ics_menu.bin | Bin 0 -> 14942 bytes tests/fixtures/disc23/index.bdmv | Bin 0 -> 120 bytes tests/fixtures/disc24/CLIPINF/00000.clpi | Bin 0 -> 428 bytes tests/fixtures/disc24/CLIPINF/00001.clpi | Bin 0 -> 564 bytes tests/fixtures/disc24/CLIPINF/00002.clpi | Bin 0 -> 504 bytes tests/fixtures/disc24/CLIPINF/00003.clpi | Bin 0 -> 292 bytes tests/fixtures/disc24/CLIPINF/00004.clpi | Bin 0 -> 292 bytes tests/fixtures/disc24/CLIPINF/00005.clpi | Bin 0 -> 37684 bytes tests/fixtures/disc24/CLIPINF/00006.clpi | Bin 0 -> 572 bytes tests/fixtures/disc24/CLIPINF/00007.clpi | Bin 0 -> 1856 bytes tests/fixtures/disc24/CLIPINF/00008.clpi | Bin 0 -> 5504 bytes tests/fixtures/disc24/CLIPINF/00009.clpi | Bin 0 -> 17868 bytes tests/fixtures/disc24/CLIPINF/00010.clpi | Bin 0 -> 18524 bytes tests/fixtures/disc24/CLIPINF/00011.clpi | Bin 0 -> 292 bytes tests/fixtures/disc24/CLIPINF/00012.clpi | Bin 0 -> 1244 bytes tests/fixtures/disc24/CLIPINF/00013.clpi | Bin 0 -> 1140 bytes tests/fixtures/disc24/CLIPINF/00014.clpi | Bin 0 -> 1204 bytes tests/fixtures/disc24/CLIPINF/00015.clpi | Bin 0 -> 1204 bytes tests/fixtures/disc24/META/DL/bdmt_eng.xml | 6 +++ tests/fixtures/disc24/MovieObject.bdmv | Bin 0 -> 5154 bytes tests/fixtures/disc24/PLAYLIST/00000.mpls | Bin 0 -> 280 bytes tests/fixtures/disc24/PLAYLIST/00001.mpls | Bin 0 -> 322 bytes tests/fixtures/disc24/PLAYLIST/00002.mpls | Bin 0 -> 740 bytes tests/fixtures/disc24/PLAYLIST/00003.mpls | Bin 0 -> 240 bytes tests/fixtures/disc24/PLAYLIST/00004.mpls | Bin 0 -> 240 bytes tests/fixtures/disc24/PLAYLIST/00005.mpls | Bin 0 -> 240 bytes tests/fixtures/disc24/PLAYLIST/00006.mpls | Bin 0 -> 240 bytes tests/fixtures/disc24/PLAYLIST/00007.mpls | Bin 0 -> 534 bytes tests/fixtures/disc24/PLAYLIST/00008.mpls | Bin 0 -> 240 bytes tests/fixtures/disc24/PLAYLIST/00009.mpls | Bin 0 -> 240 bytes tests/fixtures/disc24/PLAYLIST/00010.mpls | Bin 0 -> 240 bytes tests/fixtures/disc24/PLAYLIST/00011.mpls | Bin 0 -> 240 bytes tests/fixtures/disc24/PLAYLIST/00012.mpls | Bin 0 -> 240 bytes tests/fixtures/disc24/PLAYLIST/00013.mpls | Bin 0 -> 240 bytes tests/fixtures/disc24/PLAYLIST/00014.mpls | Bin 0 -> 240 bytes tests/fixtures/disc24/PLAYLIST/00015.mpls | Bin 0 -> 240 bytes tests/fixtures/disc24/ics_menu.bin | Bin 0 -> 10784 bytes tests/fixtures/disc24/index.bdmv | Bin 0 -> 276 bytes tests/fixtures/disc25/CLIPINF/00000.clpi | Bin 0 -> 496 bytes tests/fixtures/disc25/CLIPINF/00001.clpi | Bin 0 -> 556 bytes tests/fixtures/disc25/CLIPINF/00002.clpi | Bin 0 -> 480 bytes tests/fixtures/disc25/CLIPINF/00003.clpi | Bin 0 -> 292 bytes tests/fixtures/disc25/CLIPINF/00004.clpi | Bin 0 -> 292 bytes tests/fixtures/disc25/CLIPINF/00005.clpi | Bin 0 -> 21380 bytes tests/fixtures/disc25/CLIPINF/00006.clpi | Bin 0 -> 292 bytes tests/fixtures/disc25/CLIPINF/00007.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00008.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00009.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00010.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00011.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00012.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00013.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00014.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00015.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00016.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00017.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00018.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00019.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00020.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00021.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00022.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00023.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00024.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00025.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00026.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00027.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00028.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00029.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00030.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00031.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00032.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00033.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00034.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00035.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00036.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00037.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00038.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00039.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00040.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00041.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00042.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00043.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00044.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00045.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00046.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00047.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00048.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00049.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00050.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00051.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00052.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00053.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00054.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00055.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00056.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00057.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00058.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00059.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00060.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00061.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00062.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00063.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00064.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00065.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00066.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00067.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00068.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00069.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00070.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00071.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00072.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00073.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00074.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00075.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00076.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00077.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00078.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00079.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00080.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00081.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00082.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00083.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00084.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00085.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00086.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00087.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00088.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00089.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00090.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00091.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00092.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00093.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00094.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00095.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00096.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00097.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00098.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00099.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00100.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00101.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00102.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00103.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00104.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00105.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00106.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00107.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00108.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00109.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00110.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00111.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00112.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00113.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/CLIPINF/00114.clpi | Bin 0 -> 324 bytes tests/fixtures/disc25/META/DL/bdmt_eng.xml | 6 +++ tests/fixtures/disc25/MovieObject.bdmv | Bin 0 -> 1350 bytes tests/fixtures/disc25/PLAYLIST/00000.mpls | Bin 0 -> 280 bytes tests/fixtures/disc25/PLAYLIST/00001.mpls | Bin 0 -> 306 bytes tests/fixtures/disc25/PLAYLIST/00002.mpls | Bin 0 -> 404 bytes tests/fixtures/disc25/PLAYLIST/00003.mpls | Bin 0 -> 10482 bytes tests/fixtures/disc25/ics_menu.bin | Bin 0 -> 3703 bytes tests/fixtures/disc25/index.bdmv | Bin 0 -> 132 bytes tests/test_disc22_scan.py | 35 +++++++++++++ tests/test_disc23_scan.py | 35 +++++++++++++ tests/test_disc24_scan.py | 49 ++++++++++++++++++ tests/test_disc25_scan.py | 36 +++++++++++++ tests/test_disc_matrix.py | 24 +++++++++ 195 files changed, 278 insertions(+), 32 deletions(-) create mode 100644 tests/fixtures/disc22/CLIPINF/00000.clpi create mode 100644 tests/fixtures/disc22/CLIPINF/00001.clpi create mode 100644 tests/fixtures/disc22/CLIPINF/00002.clpi create mode 100644 tests/fixtures/disc22/CLIPINF/00003.clpi create mode 100644 tests/fixtures/disc22/CLIPINF/00004.clpi create mode 100644 tests/fixtures/disc22/CLIPINF/00006.clpi create mode 100644 tests/fixtures/disc22/CLIPINF/00007.clpi create mode 100644 tests/fixtures/disc22/META/DL/bdmt_eng.xml create mode 100644 tests/fixtures/disc22/MovieObject.bdmv create mode 100644 tests/fixtures/disc22/PLAYLIST/00000.mpls create mode 100644 tests/fixtures/disc22/PLAYLIST/00001.mpls create mode 100644 tests/fixtures/disc22/PLAYLIST/00002.mpls create mode 100644 tests/fixtures/disc22/ics_menu.bin create mode 100644 tests/fixtures/disc22/index.bdmv create mode 100644 tests/fixtures/disc23/CLIPINF/00000.clpi create mode 100644 tests/fixtures/disc23/CLIPINF/00001.clpi create mode 100644 tests/fixtures/disc23/CLIPINF/00002.clpi create mode 100644 tests/fixtures/disc23/CLIPINF/00003.clpi create mode 100644 tests/fixtures/disc23/CLIPINF/00004.clpi create mode 100644 tests/fixtures/disc23/CLIPINF/00006.clpi create mode 100644 tests/fixtures/disc23/CLIPINF/00007.clpi create mode 100644 tests/fixtures/disc23/META/DL/bdmt_eng.xml create mode 100644 tests/fixtures/disc23/MovieObject.bdmv create mode 100644 tests/fixtures/disc23/PLAYLIST/00000.mpls create mode 100644 tests/fixtures/disc23/PLAYLIST/00001.mpls create mode 100644 tests/fixtures/disc23/PLAYLIST/00002.mpls create mode 100644 tests/fixtures/disc23/ics_menu.bin create mode 100644 tests/fixtures/disc23/index.bdmv create mode 100644 tests/fixtures/disc24/CLIPINF/00000.clpi create mode 100644 tests/fixtures/disc24/CLIPINF/00001.clpi create mode 100644 tests/fixtures/disc24/CLIPINF/00002.clpi create mode 100644 tests/fixtures/disc24/CLIPINF/00003.clpi create mode 100644 tests/fixtures/disc24/CLIPINF/00004.clpi create mode 100644 tests/fixtures/disc24/CLIPINF/00005.clpi create mode 100644 tests/fixtures/disc24/CLIPINF/00006.clpi create mode 100644 tests/fixtures/disc24/CLIPINF/00007.clpi create mode 100644 tests/fixtures/disc24/CLIPINF/00008.clpi create mode 100644 tests/fixtures/disc24/CLIPINF/00009.clpi create mode 100644 tests/fixtures/disc24/CLIPINF/00010.clpi create mode 100644 tests/fixtures/disc24/CLIPINF/00011.clpi create mode 100644 tests/fixtures/disc24/CLIPINF/00012.clpi create mode 100644 tests/fixtures/disc24/CLIPINF/00013.clpi create mode 100644 tests/fixtures/disc24/CLIPINF/00014.clpi create mode 100644 tests/fixtures/disc24/CLIPINF/00015.clpi create mode 100644 tests/fixtures/disc24/META/DL/bdmt_eng.xml create mode 100644 tests/fixtures/disc24/MovieObject.bdmv create mode 100644 tests/fixtures/disc24/PLAYLIST/00000.mpls create mode 100644 tests/fixtures/disc24/PLAYLIST/00001.mpls create mode 100644 tests/fixtures/disc24/PLAYLIST/00002.mpls create mode 100644 tests/fixtures/disc24/PLAYLIST/00003.mpls create mode 100644 tests/fixtures/disc24/PLAYLIST/00004.mpls create mode 100644 tests/fixtures/disc24/PLAYLIST/00005.mpls create mode 100644 tests/fixtures/disc24/PLAYLIST/00006.mpls create mode 100644 tests/fixtures/disc24/PLAYLIST/00007.mpls create mode 100644 tests/fixtures/disc24/PLAYLIST/00008.mpls create mode 100644 tests/fixtures/disc24/PLAYLIST/00009.mpls create mode 100644 tests/fixtures/disc24/PLAYLIST/00010.mpls create mode 100644 tests/fixtures/disc24/PLAYLIST/00011.mpls create mode 100644 tests/fixtures/disc24/PLAYLIST/00012.mpls create mode 100644 tests/fixtures/disc24/PLAYLIST/00013.mpls create mode 100644 tests/fixtures/disc24/PLAYLIST/00014.mpls create mode 100644 tests/fixtures/disc24/PLAYLIST/00015.mpls create mode 100644 tests/fixtures/disc24/ics_menu.bin create mode 100644 tests/fixtures/disc24/index.bdmv create mode 100644 tests/fixtures/disc25/CLIPINF/00000.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00001.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00002.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00003.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00004.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00005.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00006.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00007.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00008.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00009.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00010.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00011.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00012.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00013.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00014.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00015.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00016.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00017.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00018.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00019.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00020.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00021.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00022.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00023.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00024.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00025.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00026.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00027.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00028.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00029.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00030.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00031.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00032.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00033.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00034.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00035.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00036.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00037.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00038.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00039.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00040.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00041.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00042.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00043.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00044.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00045.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00046.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00047.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00048.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00049.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00050.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00051.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00052.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00053.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00054.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00055.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00056.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00057.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00058.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00059.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00060.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00061.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00062.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00063.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00064.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00065.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00066.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00067.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00068.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00069.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00070.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00071.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00072.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00073.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00074.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00075.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00076.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00077.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00078.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00079.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00080.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00081.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00082.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00083.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00084.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00085.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00086.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00087.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00088.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00089.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00090.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00091.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00092.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00093.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00094.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00095.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00096.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00097.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00098.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00099.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00100.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00101.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00102.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00103.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00104.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00105.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00106.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00107.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00108.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00109.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00110.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00111.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00112.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00113.clpi create mode 100644 tests/fixtures/disc25/CLIPINF/00114.clpi create mode 100644 tests/fixtures/disc25/META/DL/bdmt_eng.xml create mode 100644 tests/fixtures/disc25/MovieObject.bdmv create mode 100644 tests/fixtures/disc25/PLAYLIST/00000.mpls create mode 100644 tests/fixtures/disc25/PLAYLIST/00001.mpls create mode 100644 tests/fixtures/disc25/PLAYLIST/00002.mpls create mode 100644 tests/fixtures/disc25/PLAYLIST/00003.mpls create mode 100644 tests/fixtures/disc25/ics_menu.bin create mode 100644 tests/fixtures/disc25/index.bdmv create mode 100644 tests/test_disc22_scan.py create mode 100644 tests/test_disc23_scan.py create mode 100644 tests/test_disc24_scan.py create mode 100644 tests/test_disc25_scan.py diff --git a/.github/skills/batch-add-disc-fixtures/references/batch-analysis-report.py b/.github/skills/batch-add-disc-fixtures/references/batch-analysis-report.py index 810b174..67c4eef 100644 --- a/.github/skills/batch-add-disc-fixtures/references/batch-analysis-report.py +++ b/.github/skills/batch-add-disc-fixtures/references/batch-analysis-report.py @@ -15,7 +15,6 @@ from __future__ import annotations -import sys from dataclasses import dataclass from pathlib import Path @@ -115,9 +114,7 @@ def _extract_ig_pages(ig_raw: list) -> list[dict]: return result -def _ig_cross_check( - ig_pages: list[dict], ep_count: int, sp_count: int -) -> tuple[str, str]: +def _ig_cross_check(ig_pages: list[dict], ep_count: int, sp_count: int) -> tuple[str, str]: """ Compare IG page button counts against detected episode/special counts. @@ -137,8 +134,7 @@ def _ig_cross_check( notes = [] for page in ig_pages: notes.append( - f"p{page['page_id']}: {page['buttons']} btns, " - f"{page['unique_targets']} unique targets" + f"p{page['page_id']}: {page['buttons']} btns, {page['unique_targets']} unique targets" ) # Simple match check: is there a page with unique_targets == ep_count? @@ -148,9 +144,7 @@ def _ig_cross_check( # Check if any page is close (off by 1, which can happen with # "play all" button being counted) - close_match = any( - abs(p["unique_targets"] - ep_count) <= 1 for p in ig_pages - ) + close_match = any(abs(p["unique_targets"] - ep_count) <= 1 for p in ig_pages) if close_match: return "ok", "; ".join(notes) + " (close match)" @@ -167,16 +161,13 @@ def format_report(reports: list[DiscReport], start_disc: int) -> str: # Summary table match_icons = {"ok": "✅", "warn": "⚠️", "mismatch": "❌"} - lines.append( - f"{'#':<5} {'ISO':<30} {'Eps':>4} {'Spc':>4} {'IG':>3} Notes" - ) + lines.append(f"{'#':<5} {'ISO':<30} {'Eps':>4} {'Spc':>4} {'IG':>3} Notes") lines.append("-" * 72) for i, r in enumerate(reports): disc_n = start_disc + i icon = match_icons.get(r.ig_match, "?") lines.append( - f"d{disc_n:<4} {r.iso_name:<30} {r.episodes:>4} " - f"{r.specials:>4} {icon} {r.ig_note}" + f"d{disc_n:<4} {r.iso_name:<30} {r.episodes:>4} {r.specials:>4} {icon} {r.ig_note}" ) # Episode details @@ -187,8 +178,7 @@ def format_report(reports: list[DiscReport], start_disc: int) -> str: disc_n = start_disc + i if r.episode_details: eps = " | ".join( - f"ep{e['num']}: {e['playlist']} {e['duration_min']}min" - for e in r.episode_details + f"ep{e['num']}: {e['playlist']} {e['duration_min']}min" for e in r.episode_details ) lines.append(f" disc{disc_n}: {eps}") @@ -200,8 +190,7 @@ def format_report(reports: list[DiscReport], start_disc: int) -> str: disc_n = start_disc + i if r.special_details: sps = " | ".join( - f"#{s['index']}: {s['playlist']} {s['category']} " - f"{s['duration_min']}min" + f"#{s['index']}: {s['playlist']} {s['category']} {s['duration_min']}min" for s in r.special_details ) lines.append(f" disc{disc_n}: {sps}") @@ -213,9 +202,7 @@ def format_report(reports: list[DiscReport], start_disc: int) -> str: for i, r in enumerate(reports): disc_n = start_disc + i if r.classifications: - cls_str = ", ".join( - f"{k}: {v}" for k, v in sorted(r.classifications.items()) - ) + cls_str = ", ".join(f"{k}: {v}" for k, v in sorted(r.classifications.items())) lines.append(f" disc{disc_n}: {cls_str}") lines.append("") diff --git a/bdpl/analyze/ordering.py b/bdpl/analyze/ordering.py index c0af3d1..b6f76ae 100644 --- a/bdpl/analyze/ordering.py +++ b/bdpl/analyze/ordering.py @@ -157,18 +157,26 @@ def _detect_episode_periodicity( if len(group) < 3: continue + # OP: first chapter, or second if first is a short preamble op_ok = _OP_MIN_S <= group[0] <= _OP_MAX_S + if not op_ok and len(group) >= 4 and group[0] < _OP_MIN_S: + op_ok = _OP_MIN_S <= group[1] <= _OP_MAX_S body_ok = any(d > _BODY_MIN_S_CH for d in group[1:-1]) - ed_ok = (_ED_MIN_S <= group[-1] <= _ED_MAX_S) or ( - len(group) >= 3 and _ED_MIN_S <= group[-2] <= _ED_MAX_S + # ED: within last 3 positions (covers trailing preview/transition) + ed_ok = any( + _ED_MIN_S <= group[-(i + 1)] <= _ED_MAX_S for i in range(min(3, len(group) - 1)) ) if op_ok and body_ok and ed_ok: groups_matched += 1 - if n_groups >= 2: + if n_groups >= 2 and groups_matched >= 2: score = groups_matched / n_groups - if score >= 0.75: + # Majority rule: more groups match than don't. A simple + # majority is structural evidence rather than a magic + # threshold. Series finales often drop OP/ED, making one + # group fail without invalidating the overall pattern. + if groups_matched * 2 > n_groups: if best is None or score > best[2] or (score == best[2] and n_groups > best[1]): best = (period, n_groups, score) @@ -374,13 +382,13 @@ def order_episodes( return _episodes_from_individual(individual_eps) if individual_eps: - # Strategy 3: if only one "episode" but it's very long with chapters, - # it likely contains multiple episodes in a single m2ts - if len(individual_eps) == 1: - candidate = individual_eps[0] - ch_episodes = _episodes_from_chapters(candidate, ig_chapter_marks) - if len(ch_episodes) >= 2: - return ch_episodes + # Try chapter-splitting the longest playlist. If structural + # evidence (IG marks or periodicity) confirms it's a compilation, + # its split episodes are better than one massive "episode" entry. + longest = max(individual_eps, key=lambda p: p.duration_ms) + ch_episodes = _episodes_from_chapters(longest, ig_chapter_marks) + if len(ch_episodes) >= 2: + return ch_episodes return _episodes_from_individual(individual_eps) if pa_episodes: diff --git a/tests/conftest.py b/tests/conftest.py index ad154dd..49b1e06 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -292,6 +292,54 @@ def disc21_analysis(disc21_path): return _analyze_fixture(disc21_path) +@pytest.fixture(scope="session") +def disc22_path() -> Path: + """Return path to bundled disc22 fixture.""" + return _fixture_path("disc22") + + +@pytest.fixture(scope="session") +def disc22_analysis(disc22_path): + """Run and cache full analysis for the bundled disc22 fixture.""" + return _analyze_fixture(disc22_path) + + +@pytest.fixture(scope="session") +def disc23_path() -> Path: + """Return path to bundled disc23 fixture.""" + return _fixture_path("disc23") + + +@pytest.fixture(scope="session") +def disc23_analysis(disc23_path): + """Run and cache full analysis for the bundled disc23 fixture.""" + return _analyze_fixture(disc23_path) + + +@pytest.fixture(scope="session") +def disc24_path() -> Path: + """Return path to bundled disc24 fixture.""" + return _fixture_path("disc24") + + +@pytest.fixture(scope="session") +def disc24_analysis(disc24_path): + """Run and cache full analysis for the bundled disc24 fixture.""" + return _analyze_fixture(disc24_path) + + +@pytest.fixture(scope="session") +def disc25_path() -> Path: + """Return path to bundled disc25 fixture.""" + return _fixture_path("disc25") + + +@pytest.fixture(scope="session") +def disc25_analysis(disc25_path): + """Run and cache full analysis for the bundled disc25 fixture.""" + return _analyze_fixture(disc25_path) + + @pytest.fixture def cli_runner() -> Callable[..., subprocess.CompletedProcess[str]]: """Return helper to invoke `python -m bdpl.cli` consistently in tests.""" diff --git a/tests/fixtures/disc22/CLIPINF/00000.clpi b/tests/fixtures/disc22/CLIPINF/00000.clpi new file mode 100644 index 0000000000000000000000000000000000000000..6906fa2c27d26dad9b88ee96d8ca9e4e962e652a GIT binary patch literal 428 zcmeZp@eMODGB99ZV7LRs-xwGeO@Md>kc|#D0L2->g3-MV46L)!<>}9tYw!R%AD_Kq z3}6>CG6;ZaZk6BwZapucPZ+FVGE58tf}+xizz{G%0w6;L8AKZlvkLN%ghAm10tG5_zV|)yZbf_ae+6Ir>;SEpfD3%x)*W KI$$}_Tm}HX7BSlZ literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc22/CLIPINF/00001.clpi b/tests/fixtures/disc22/CLIPINF/00001.clpi new file mode 100644 index 0000000000000000000000000000000000000000..c8fc749426c6562bbfadfb7ecbb6b8eb3f09fc38 GIT binary patch literal 564 zcmeZp@eMODGB99ZV7LRs-xwGeO&A!MKzwwt0Vu}^7L4v~VBop^09^sy`Em^&K} z83hCxSQvB|lz~e5fH(#iZl{4X3j?Fm83x9}9Sn?z&M+{^Tw!2lI?KR(_&fu%(^&=< zqs0s?P3IWc5-J#251nJ+aOPlOV>-{kG0Ta89Y}Mj8#1srU0~pPyM%$m=>h|fSdYvE z1{T>FjtA{hny=V995l24$fRtTU%12Q`~zp>I+-gbdXWvPYAeo|`TV|Y?jB-ovGwqI zDXKQ&+G%ptLFmXnm+ vKW6RO2`_biAO0;DrEVy{rfZ`h&)X$JxdF3V4SmND^SZRm<$JlfS{;!A}|CDkO0U~K?czV!>oclBw zHYZ{c7h({d02IbBM~G2$LTX+*rZ|)6gsO~uOmSu$;w;$3flkr^`i4cZp14A~7 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc22/CLIPINF/00003.clpi b/tests/fixtures/disc22/CLIPINF/00003.clpi new file mode 100644 index 0000000000000000000000000000000000000000..d8b02f2a569e8dc4f2efe18d10e0268ca6484c92 GIT binary patch literal 292 zcmeZp@eMODGB99ZV7LRs-xwGeWq?=#$VLYnfa0uR!RX!w1_n+AbOm(h%QbiaosZ92 pF$PAEG$Vrmgr5E90OK4M5ulI~Ooov`gh6y-RzV(v0TMtq6aZJM53>LO literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc22/CLIPINF/00004.clpi b/tests/fixtures/disc22/CLIPINF/00004.clpi new file mode 100644 index 0000000000000000000000000000000000000000..abcbdf39ab7297d34d2b3e1e202f771f4abe338f GIT binary patch literal 292 zcmeZp@eMODGB99ZV7LRs-xwGeWq?=#$VLYnfa0uR!RX!w1_q7;=nCl0muv62!rUvtb#lS10;ZKC;;eS5K;gD literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc22/CLIPINF/00006.clpi b/tests/fixtures/disc22/CLIPINF/00006.clpi new file mode 100644 index 0000000000000000000000000000000000000000..94eee04ffd86fc5d1cf1de297f78f1030b09435c GIT binary patch literal 60528 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�uQF#mC$OqG zH5}u7Ev}%)f#)sodlO=@H5}ZQ#%yMl^24Y(Wlt?V|zG z3iCPK*$HoWN1My|%E`q7Uf6%a>WfFHz$k+HT<$Mfvwn)StIvuaKEs7^>3TcM$oUt0 z;r=I_yZg*tGV?Uif5xm8I&ILz@^OKiy ztXEv+WPK1@}FtsG~tk-`$C*ZXz^UUBP&HR{$+reX{IN9Er-cub3zf&|czpIKD;tt|5*d>Y!pARRlBdcE_>3VoEs2 z?ri00x-s|>IX?yahfazN=TOBd_uVCz8F4glq=LQ~jc0ht7TR@eIl+qWE@oE-2uSC4 zr*TW#$M|-BP=N245OhC}qqx$aihi$5chkJxAsIFIqpjYgqQB^bjQvxRncT254kcCI zBps7ePAO@z&aH1MU6|qo*KLRDD5}4X)Jx*mZkelsrEX{D5$A)$^n?E`V)Q&$In49` z?CMijxsHTwylrdh_(vX;3T`?&h$MLh;-WuuBohm#Ngos!5O;K*wnOB$cGVlQmth~eXqOg!AxRkcM4t37c%agPjJw+`^Gvn z?G`(5hnVDa?-=I=zKxqCLU=xDW4zC`@5o>O(FJvWdxW7Y_fR4)dx)81vnA(~UeWYk z{Gc!Qk}w{hld{}Qz1SN!{N#M?3+IJSH{xHYe=gK>&K1FwucD!bb&?gX)7)Efnuxm_ zx6`AM2!@~RjJ@IZ9Q%gbK@L4Qf&FP#DA(~8i?@~hf`8?pouK&jQsG?do1&66H>h<_ zzqs@GkBRw*cG-^pEw&d%5?OOALfOq0_c)CSWllG*%^|x}e+Z5q!-fAQdx%3eK9%ep zvL|ZJ++#bp<`?6p$z_(-ntFC}mma4j+{c-I{Q~(IDL@c5d$&+8|AJ_}My0rK-gimY zX`1`3@0aOr5!wvDV{7bb{V!M-LeI0ab4i@YXC2%-5-YyLX^()(eOp}K($7$03ahBK z8kKHOLL8;9j;d%MKE9yW(}oxYsY3h6%k8Xc(ozmQbep?I^M!NW(kBA$iw@Vd+`yo+ zk|K$f*#;?ddA5gD<6n9qr;ssr{1ZzwG1qZ^G?yejsK=f0-pEvK-WV^y3apu4a}6Z*ET=|7PGq zA+a14tu$~JhXxKx2+FFE-%nzRt9&8-S?v|Z*5O4=C&nR`qR@|hR%a%6O0pF%_Cp2# z!8An3Z;*<%v-XQePa{$TxRu6UCa0HtLc9&5%vdRp%-K)9BDu_({k*-DtNfuOmxK{| z5fsIW`{Hvi|GH1{6A+a(GTR=fwf6o8|6`p7-#Bpfgj3R&&AfY&Hw5ISJ;E&hG12F< zED3*#Qd+vhnhwTe7*R_`>>Ju-lA?Z```PUg-|y%aLFwdmBCxSXocMj6q%r<4 z&9vn+UE#Tp@#SJR%g=5O`&8clyK*@@C$8)zt2#+Shv|Wot#=K?U94KE@5%SXlO_~~ zP8PIZ@H2~bcVR2X@%aVrYMBSG^NNAMmkfm^1+7#aG)=M~-Aa0=pG$X)mD_E5xS!c6 zddv1XpUNq*$>mMTJx-pkB^5NJJf+xuiV<&_PLh1OTTb)hq|u8{`!lu8OIh=`BkbE_ z{am}Hdw84Q2k}3JISajSwTp^bJKVHRWlHB;c+hTd_hcB2H!?Rb(_nSHGvRoL&fuQ7 z<;B-xCifUt3V(uvXZ!qgqsY$3A$bj*i6G?cR^S+x- zc{;=Ni{_YFHcQ*NCpW+)Qe7^zjOQmxPz;O1U#^zKP-3NZMK@`cU7P8V|_&@hV5B!8%fLggdvhs*FG1*+ph6LWqZ|dJx=7@!iCx)UtkCWmb71^QTwyqwR_N?+U z(lYm6nCj#6wCfFrF_S0T+Y~7OBsL0&xNs}*5-~s6aL<|$=U$bRE{~yEZmXj`Xyn-O z-23cC7dA2Tiz?Y>8m6Q*b00aqyv^ow9D4)@6n?^y9=13#V4Gye(NognKdtE2agQ09 zOC6T> z?Tphg+rDfCL)D~y)!2JDYHh6{ZS2|O^l`cm-?Q4*rO5iVuyx%RQSXZ)NutLlsj5_) zP9kjd{4954WNk}l>GUpPFAUwznY58fx?KC)sZ9@e-tMuLJazG2{=<`%E`{B#u4^30 z6sOrosfxPAZnaZ=rE8;!G*r2ZSle)gKH*krA6jsowO4l;Nn=@&Q}{hyX9ej!-y+<@ zW!()o*TW`6igM8gD(_gHc;xLCcUP%`W|F;*p4S(_7z$p*3crxZK4EZ(YqWAXZ{>4+ zekc#L%~_KAJ}SUs5Tm_a#0dYJQ#C;GO7pA+;+&~n~I z6l5_^T(r4b@?k(jy2Un;R*N|s>)XA7R6$Nd-Pv~cx2&i+sjoC z?aKe5}I$`E&P0=OO*BJh-A`#U!)5^P&~Fv zOz6js)!J3}TQe`RQ`yuKIww;wl3QqH#guVF{)XC!-ZWh9E zx1XEVyAL$x5kF&(>3_m$cHPBC9Tvhr6cb~Z-k(U4T75z9_%G58qz{sNfoM#uT;mhvRm_czjbic8H@Cxa8qzV{K1+Yim_(p!>7y8H3njKhWx+=69``DV}830Ct|!WV~)#OA*zNu-gE?seCW+u~L~Y+r@nVkmd4cR+@pIwr;p zk*?lMa)ws-$SoNs0Yt5-A42o#F@#PY^z&T_GU~c`~W1_Rw9< zl)vA&=?imtZ&Y%DHSwO%D=kfQ^HYq(Ht?Wy#l@er4^w6`Xd6~B{$0_wKlV-TXceYU zT7Pk_Q@i0!=PRL&{M9>?U4{ooD6*K#)X;O2B>V}v`>7SB#PbdP^a8WvOtWkyYt2|X z`^x+_(!2Z3ykOU7{PH~#A>l`oXzBDC@!paSN%eRXjU8W0-`}9ecww2&Lf3v|D?1`M zJ>Fw-|1&%I8JepFduRR>#_zsPX&*Fpa}WQ|{YaG&aY_Gsx-+?uacX}w3mH#kCoYKK zsG6?uNYtnNtUYrDnXgM-7de_yzGSa(%}qzb#_eN9%a7Y7d zT|MZWF|~`_pGkBL`lzHF@#>&1NiTIHS3Pn+Wu9k?tRJ#VcpqqA<1ys0Cbfp`bhepO zY~#k$+OFi!`*m9|+b2XQJGek}M|Zl!A-!3;_1h4wYpw>vx22SM(woQDsl33M?_$Zl zeTc_5#ztILWn2(;eEltE&nc6*tFO)YNGdHUvYTFeF@^C>pU(Pk(_41^P#sqz%8|#q zF_nDL$;8!Q_iDv-P61EkNAXRUsAnzos23Z=;WyRx$%JD6HBqX&lS2SZ;d#23{L!w?MGlR+#^* zRP;9Lt3>l^t~Aq*Nqe`=pCRdXWgZPMV@;G5a^ehgxz|^(;#FU3AfEs&t~QIDDI4xL zP~TB7cS%ktaeCWUdZ<%5qkeZb%j)MT$Bfu*r1m>^c?MGh$mF#fTuRy;T#IZRM9L%$ z3G(oqG|^2&o3qk}9(WD6Yb2g^AZ_}_&iW)GeevmVmYt!HPht8l-APMCf_smsSKX4O z7Q3&~w4dFljaj3NwOcZo_dA=}e7`)-jx#5@{_hrWM~yh-)vHSc&t48v*us0%{YREd zeoi>krpKq*R^7?4Hz5T(q;79!Kkp}TP5oavC!O0#R#%$~W&b@A&Au^7yxCak_C2+m z7Wa}*zroA3w<+{sZ5ZF}crvJ(RCeT@v-1RY2p>=B-$*%hVX~H(hsXi`(FT8ozrO=^GIF{u~xl$J>j{XiMuV;Lu zacgYp2h5`xBkRtv?$1u9 z(tVNLjFQDOm_HwsvlmczaH{q+^NfdAlT&Bf2%guhpg^=mY&~aCa`?_4>0hU0`fTNO zMtyH2Yig(#duc^D=dD2nR~3H7d4Jv|7lU6JuF10wQ=ZiJN$68oxJ}Hom)7Tz>B8Z1 z`Y0vVu5g~cgX!(fjy8B92b-bfN{efFvLEmGRgtG$jjx7K@G)P?8^LeMtW#mqE8sZY zJn1JRy5S^q(^OrDzniF>*&P|&Yu?R#z2jt;Y1*-_fj+Y+?CgEiHSf1e4*!p#^Ki?# z4Z|>rB+^on>TSMny^Y`AqrC@`5=vT<6+**KDP>eBBxx_ALYb9@QK*a%MQO^+*TUD| z@I1%yJjZ>X*LC6zrrFUgg8j93wBjT`X$RQ%!>;k&x+mZ1>ZO`E;IlJz@a};E;wqd$ zy7`}@O!KR#FMa8Z1SrQ0M}ZvBwu-kE*8p|Nm5}aK3x0H%DpLO`3A46chsPF(NXa=q z)bfp?bb0eDb^-963rktYzxW*tT6oGp8fn+G$2-*E5v@nMe}Ze#_FEgVkbyw_f<+>c z8~5Dc;7dcp7vi<_SahgSPyGXv*-Af6eyu$$SYC5L>x?O+eJ8>U&U^3ySut%k+7dLb z|K{33Vf~~ADO_`rnvtANWi=k9mrd7WYPP=Q6uJ)ZC!IF{n@%1z7r#1bVW#&4HrjPp zckP2>y_E`**sDV*p*sAXbn^aeSXHx~5gRKr{p-|>)6Uy*9_?TFc;b$r^w?dk`qt-A znN|&A8nXgD-p6Ab^g@K9b>^bn2Tlh4dX?hoo1f5QH|MfD7Zq`P{RO7$%ccu@l~S|~ zwhh9Ouht@Otb;Mb3Jxz=C}kiWK1#m2vB2=^sJb`-oo&SITEq&5IWs{kG}8SYxpJ69Ff(UMq6HX;R~>Ak^QM6a?j@x!%NHtBSHEXc41Ek zJ0k8i-G1!2K&N)Cpmj7+>oy8%$8Vc@X}iCoL7vmF%GFHl z#uzu{o&r3Nl!G_FUWA^S`M?j4r=Y5zQGFA-Sa{*0tLWeKT*FO%e&Tx%ZW(KcWlZ)a zM4P@FHW2i{n&9&&RoMAME>dhZp|>&o7G`)Y1}{*FAO^#tDfZ=S`X((j8ai>7ljwQO zAFz7}v=;h9+LHOOowpovy)F||(I3aynVfi!Z};l%k*k=Ruq^+NN)vG=pzihy-{4E$?<7_OOlSZwbs$rN1cGj96Z#@)0( zz`r}yD`@P>(YCgEt&@`!F1= z-$S3jpM-Nv&ZCOQyRhxwOYjFv4jU+6?KVtS+$HvPGGjE4d}R}Vo#iH1*8{8To`WUE zDbT;fAVhCi3B9=77N2%Ki11ZePF9Bp(pqoVIqm1$*v{-E9-f^HWNwfKZ`?$*OJ^R{ zHS){VvnqeAA3O&Y_J%}|w$05{F0hgAi`&V{e(dIsT2JE#^CLiqIdV{8h!--a*&SUo zwZ$fb-LU_16$pQsHDueyd|J2ZJ98K)G2XY!kPE-B$p6v}2W?^&L95%2!U0-U$fuaC zm}Orye#!nJDN(eL@|{o8)m!(oTF>jb{jd+;nKA*IjV**Sy_%8fw@;#LwHIOc53M5v z-A_ncEX;7t(I?`^Uly^3E*p(UV|Q`&4>Sdqq8nOS@zbWR+hw4q3ug)!sEI{k z30njQ8<{|Z&lTZYA}4B`U`J_eqD z&KVYM-pRfv2QtKf;tTh^Ft%?$^RQDED?rkurexgRztL|W|qPMWw z1B3j`rOWuQ=W>Dmz7J5~YCpLC@gr1^x`Z7rIE{BN%pI^ve-eIIsFBn@GGlB2!UQXPx9;L*^v+2}%%Zx@h|KvQM7xR_KY*6OZ4egN8 z4LX>y5&YWs54xyK51VSX#IJ-eBj*pyrJwpwU41Qu{~$xjtvO!QbJ+n#CrX+<+5MLL=6nlSQb~cC+8VI@Q41vWzYz4< zS`-Hw{}3n9Rb+64=9Et;olcBQU8BqScPv2 zp;z;UobrqrwjF6RLI$*qV{Ie2_M&>gM&1p~-JS+3y*hyeku%Vxk)JW+`!HT;@SB`- zLXlekyO(~rCY?2?*W!*C$?|(~a{qfu=y^Gjhwt4o{HRsMSR9(h zUh4j05~}`(H}$#!lr+o+TQs$xz9>axMb~_^&SJArC0m}@IddJ^9sG*6dc2>>G5yZX zJW28aKjHvL+yZaGP86i8S4HlvLsmdgYi5v&_1Zbx1|HhqFom zgI!+0$n|qz#rQoK2yQ|SzKTU(@F#G+;&kHD0-TcA6GkuV+`^o(8RHahYVg~HbAjt8 z*FjR#B;dnA-MT%`!u72Pp>X}NC}Mx#2-)RD(Q6)MF_*Db?6=i&6#)^pg#XEWt^2Yj?xBKI5Z~aIWn@qz~Hwp1CgI`9I z`|q=#Umr0g`FOxJrx$!8TLQ~&^U>Y>#sST;;c%_O90DIrCOL;)hE=!Lh->E$FjxEr zIrX-!{4C9C(;r)1fatVr@N9oBbPDi=-L_@vmVHV`*QtHc-yM>O``^nVx9%0a+*dl1d!^y>il0dT{6O^k#!=yxjufKV#mpe# zWFY0x+CWXrokc&i(O`lPrLw(4WjwKLxgg?Zh}M`fqq8#oxo*CKhraS5O?>CiVbLqU zF$#YXK(B^Hx@ae1`4;ZxG)Uwe+83rV53hiE-D8%E25G@z2#}01ZhI?0<5q9HU zq_la1!HdWP4!dr;(2YWY)3ZIhIj13vFInaTL?%4YA|Id9_SUkpwA=j@v1q_h<3+am zzB?g2_{B@nUQraeVgCtg|7%PfhvG&Vu^ZXQw<6AP!E@96I7MJ!>pmnoF z&-4YU$-)EDQKGmtk>vKP1C-BXG<`83(5UTUv-8u%>s|JFIPj}3Y5~H}`JjZ>QSh4o zLTGRDnwOt3cGu&$BeK-U4Y+8@0%&*3J91?|D@sXmD;T~$vQdwG%Y2`Ti zZ6_P)Ka0EbXeR#+`lY3tGzX%-K8Me(E=6K#<9l zoPnA0mS~W9sR7->-4M0ZdwP-Md$2dFItl8I*%a$Bm7fZEO&3(EvI`e&W&R%CI6eg7SY3MzwhM^S(1F-X$RoW z@Dqsg>3}UNMd~%%z`+ZyPTX*{ztEhMVMRv`E!ec`uK>~3cy=CKZw40-14k} zDKefm16w6+jNjVbK&pMVFpO}yDqeBg&j@ z-PQZr+b4AK=pZgPmKn|`w$MKL8O+^{4I2g+X(cJ^>jR>LYcU&=S&%%@}>98 z(q{&D9_QH4pG^xrmVZv8NDuRww zc)Drk{ol-OnoaqJBhb3z3e-43nt+;~pG_aTzy#UWH zx=Qpb6g#NzT}!785l-(sB{`;+cTI%9nSIGyVKL>{gO_iTL2_Ht(K|>Z_URBOZ0ax) zT^E{@@51-f%=-<@KFd{Xb^0@t_AzT@$SDWP4@FVNo7=B~5T_yMwP`xaE9I1HVf_>GO2e->86 z#1gg@732d$MS51!FXrI5s&Rvthsj_S0LaOG2F3%HX*Cwfz_w~nk&y5 z!WG*ciCIPG$-^2xRKxMDM%MrOjk80Sn@WDFF@3HZ4;&Bn2LHVf!)Dg+k-N9l*EpE^wu7PdG6lGfsI@E#Y(GON4?*IJEp2BUYPAiR4>0qQx^4LzhZKU z<-d!_il7zrf>%|{4!b0_?dD4!HMj?yI!l7T=De|79@%JB-h0_*fm^9B#ljJoT2lq#iK*y;+uB(9!eZg&t-FZ7 zFU+VZ3eNE7zFxYc;R5T0PMTEZ)$%FBx&n9OM6Ktkt~yH6H*`83-sySYYQ(PUJhT0o z>`88&Q9yYub9Y>poxnU-lIFm}3?I;&2ShkzfTK4K!7By7kb)Rq?@M1O)+m}UoIK=a zAldCr9kA!cT@~`InR2(u#eFCEwzuEKPBn_9yLy<0AH6Lwc;KUTMC%%K`(P0qalaCo z`_)bNj=^R0->FjJl4%!3Nn6(%O1#)2b~E)cicMr#waR@a5&8wD7ov^`jy!7vNvZAN zm{qBcac(K1@=Xp+StgDBD*HybFStqO?24up+fOmuXaU=D{(>p=HyB9Xuoygd_X-pv zpQ|geJ5F!i`}g{_)~7`}MVm=~#axGv(J!4WMy@(%1q`^1w8#UPg`?T$$Y~aHp1yx5 z&e3}Kp|>U~(>N15B7TbZB`FbqyBx^>pnG&s`ZuOc>Jo>9Me-@{rvW22zajT4QE>U9 zMpWtWFy{Z2!(Vu{lW47w@>~>7Z{2x_8G5subEcp2CFvW%d4KOf+D^fii_@}@bCMgeVj%#_fA4W!p{H!sZsgtK3Rv0E&l-nQ3>4f7c_i(ZHsw$$PUv>_>d z=_(Z{JxvgOf60$Wsk)W+XdaZa% zP980wcMlaakDdKF@#Sbfb>28Iu<0q}+58Z$H2#Eqh$==$o^8OlQLBlTOfL$YvyeWy z<2>{IZ5w-6Z9W&Zx`7|BX#iJ=9z!L`ZxOXWEE?gv3nMOk$7g+rBM#YVlAnrJ(H8UV zm`mG!a1t-ac|Ya{P@5GFX-h}I2e+yq-dC=pi-!p;aaD-zmnUL-hB!+dE0AMk=7h0p z!ZvePJ~;x5-4}yVwOLRH@Y1qq;|Q{!!jB$WPYixLOkOt$qyo3Br@LR@Vy!Lo zxSZm<{4crPAhA0e%Kco6ELfU{hTSd0uInAOo1LOe#!4M==-oZT$#&o)d)i|G_og8Z z@Sv}QH;SuaWsNV$`uI$=@XtovARv^8d)i69CW~pCj4&qR&n@=K8eiVHF%;NqstgXD z^M;)zW0CaWXJ}We1-_cgCH#*qCzrfWqncc|GRF6t*#t0v8@i-tHe(tI8mvo&@>-i~LaW=}P>cg0freSV7tLu z`o?>k^&%zP#%BifXCU&fPG5*zX zg48*!PaTvxLI2pD$u1ih=gL+~1M-ivz^$wkwBg8OOXBHIs|st-WxbcV!fZ(|~h#OUC=NyYf7JQ3Fx2;UW%ua{f{B4_Vx5w&@eMdzL zt)V}MIhH`NUX9aS3}(ZwIpOnw{{~bc|7CubW~Zu6~R=uq4<$NwxVIMybApr({DT5lk^AKV4J2b{34EtObM%e25*)IruOtzMA^b(C( z%*CT#Z1+Tvsjv5YAnX1&NFbDgx5fJ)H9uBk=6)u4X6pxXn$>S=ZN)U&QR20cwWkSN zeFxzcbYunFj#_{b&jBc4Q7HT(4nvw+gVB1yIou*ime@JsV{qJKOe|CN+-QTArt$5A zPfV`Y_VOoZ{{-jn4u^bu{Nd)MB}id%rSnedl~* zue__um+xkb{Xx(wPX?-$kw6qTR-*@+hpQ~YiK)c4 zYrzsoes2Tp_xT9&Y$=KXcP;Rf`pby#2_GD$mRfY_hM%m&o9`~6wvYIblnB7Rw*ahJ z?f{)Q)&ZL}Wgu5b4NU!#EjIYU%Qjz&vDZKO%^_Ces$=i=^UmalI4;7qmj8YKF6aSX zwYZU4fha31wO$|j6Du5$Ck$2=kvh4Z4)ewYjz@y$IQ6~W=R(_kb1k@j(yUqTJJ`L& z0ABa55~;Oo#uO`F;f7KN?36s?$)tyKs81-txMkL|*JS7M5>ctZy8c~Y2u48eu|l|Y z#0!OdOR>cT-PpkQ3L<#ze)8dyyR<&>i%~cLISn^m;nuJryf}Ox|M=Po&`wLkBL0{w zGW*|B>y?`+o67gRoyg^x{gIlz4*l?4C-K>h?3AC=<;gZ%z^FS0+~@Wi`cSKmIH4Kn zh1^7}OJ*AW-=^7QP-h+0w$#i?w?@dGf@C?j&HK5Lg8RT$)j!~~!%Z;o^8<3oBhb3; z{$AVy@FkMcmQpij&ZFHz)tTB4pE(8FyZrw0B|z6=Ey(NG-*-VxC&4Q!b$`=p(N+m^U=o5h(~m7X>apC17o-}Il=ytgW-x9v4-#VIX(NzX&# zsk1GmSs6hm2zh2G#fEd9F^4bNtSz5)9*05~u)6uCauh6w|g;k#Zm5T7k#DVxg= zX>M|e5j!7X^KKpCXNf2va4NsiAaM&8ZXuD_cSF{n?Iv*ICQIb$)RT|*q#J&E>u2O` zp}<}$3E?$02w>mwcrg5fF|-c0fIG8}TAM39z%mb;;hP$k6GpN!DgV1jI(Wq zar)I!(?tr!f{1OP)}xkg9kJ;%WXnl!^qs_ixI^eEqVP>GB{Rhhgj~yEZmT$RDM5a`p&sd%j=4q zHZ~-*7!kd;+Mf2*x<%@VEwnSyj(Yf!)LYzan6>Ae(ToqQ@iMc6TutUvf!2(JS_l05 zwY%yibs^z)y^C>+gwy)}iF}uxH7Kh%CRSLu)o5FIopH-sO;ecrEl9rTqII+fhjtp0 zaQDd)blJ#xtjsflP`tB>+@?8)I*faMGX?nt!AV-qLpiX|~;u$z{LB z{bq&{&;1utd~FGRLCi9LQy|WJGL~OyF=%FaB-On7*LO?7+Fw@tn=tEe)kZ8}!v?(d z<*4Y1RtA~6aS^TDnZfK@YQ(;(e#vFe*vYT6F9zP<(}sA{dN|`EkNlPUf!=j4z`Tz- z;qU%wknC19D!ucnHo;-OQpEkXVSQ|Qryx-MN%R5&y z?sufvXC@nXAj1|oBqs%a-`5B){pyaCu64uYo=?L=Es}_kB$RaTRikRWrqO+6K2BY8 zO*x-EC9YS$LgpGiUC`F&Gc7-uPi4l-HrQOymA4%}^UhxBTR%15ehYoH9A}zUP)=gc zPJZvub08RzHn%<)57mA@jcBj=h3SDxS%sZiiK?^&U@2Bl@Lv@Mq`RI3m2+y9lhSO)dB^UlnO*-0 ze$f0M@H68uq&!U#PTA^%{OVH0+?OWek)?*j33(rC?!Mdf#%~2o)4F8NxOEPnU}*^q zRm4Efx*sh|&PXADr44O1?mC7)>04<(-_?vlue;ILgp;g78qE30wD7f2b3t&(4?3~N z8P30b25Hi0!yHeZ!3(FKAm@a>blC7QfWEb2DXUfkxp+gZ{F~gvps`XnbS|2NCw@($ zUI7kR@ymULn)N#}^13axW5!?F+cTSaSAUgbQ7Qghp&~HlbcMX)V=SvC%22h-r(KWM4Dauib;QVot?D2#;-1S2JYx7fpxpDLsuSuM2x8SXjE<_c28wG z!N%2)`@V-bWP3u4_G4L=)ZOF)M~(1Tz6F7@zS}J}x14~hErzX4%M!3-`q%KzBrj4& z;w6=_a})iqH<6w4W4lm!XI+aFbAd01K0+ZQ+VG>`Jao}p4J^{}0p5SxiTEfpY5&AW z*3seV6(>~lBWt>SoJ;?3n4feU0yo?&gs!MFaO>WMsO8sM?2^w)LhgA18ER2PtxB3s zyZ1b1p1Ia?+7<73`?)Q^rhqE*j+Z+v9c+OR!&b!BJ_OCX zR*Q|QhzV+cK6&%Ud55bOopkyc-dJ@M;C6fZ@vkfQfaIb8C~Ye1KKQC$&j^pwFFf-^ zIR5iD$-Cd9N^U3{Em8?&9y!is;}0D*8ST~wrW>jX2DeLT2e5GO zc2C^EzOvddS2fgVR(Paw;OlQD4TQTu^-PVR_wi5gwB&DCGH|=@@`h`Ab)pgdrpr05uUP{(>=yE#gta;y|B=!&e^}nU;#`QkjiTeAd1)^~+>GS?t zJ*~RhDYApGmBn`5OIZxsD_JBo*lH=7StLueep9AgR@Bjp&$NjLUQ*1b#hE6)2USg1 zK0F2>^D96vUpwt}S3c?N9xK#!x6af9_sr63EnlsFrN0wjqFG5iIsD4t$D47nG;)z{ z*zC;&X9O5GN~W3ASYPHZ#C-#5I_$Krm`>9XCoj?6^iNCg-P%rEuG$&@GL00ab3+E< zyG<#BtLkFK(Rt!YLec0^BxFK#jGLzMZh}M6xu9hu50#qSMh1l{PCwRMS9sv~ zB~fIXC%HoH9OV+|PtPsc%pBF3HN~{N;^n`G3iMZCV0J?rG&1#qkXdi79=GJ6EusMI zLWmEs_?n?>L~LD@vj9_K4EYhrvq(FvWDM`j-d3aDy*PhhnNz5 zlIs&UQdPg?=noFhjM~rK?6B-M+Zk#4DxxxgW!VGYb^q2##*+81z96K?%1j25dNxmC%N3niYiYr zWRxb(vSEIe+>Pq*{5wGtP`@@BjJ~uUo*_Mm_)X1|YMV%05_BbYoJ%94KKnQXp~vVK znIBmTX%Tm6+f_i~oebz_*9)ylo(tP{FG0#3j$*pyE;ua%6TU&7WOdVFS`JlUj-~Bq zJO8Hgy#HljUiwPlPCE}#<~!iCc{#|${0fZS9E*px&LW1nP|B%5jV@6*#l*Qcvi7Oz zCUs*P0^L=H;QDH3sKrLRkX zSV{(LKl2ba7}G?i+{f6gx0J2D<3*z3wgjatqG_*GJLcuT3=R+S&o$0*h&Md)YLmMdBrUd&LA#HQ>NGq5vGs&WBBuz9NN( z4Y4`Dg~E`)CefWITgbm?6djehjp>ldV_$fnTy@?efKfT2b^ge9XmWG|vS$4q^vY+mtAG$%lyS}|Qf?;OzdzK}{+kbQcI_xM`*{Z(Y*B(#UK_#|YFFU9r*by!l1Y^P zjwN(KcaQOG_dafY9l=+kHlQ%~02HH~48M*EL~Z_y&`%3`Ad-45V-RQu8s5BdpHUSy zv$3gi+-K=y0wVk_nA<-LOL-kcf}UvW)iZl>23dt)H!yMyv?QKjoFT8;I}+DxK#pYq+O-9da- zAe6J~D>AcB7xiBWVhQ=`YQRX}A8g%t z8D1MANh)?^8Xj~_r$631&sswHTvnC{n5H}lu8lL(zCWITXoU#T18=*rPNyWo?9NUy z)5K6bJ!8AkviYaj`}@*(!PoP^fwjxPu4e~fGqV=tM5zxpU27)poAQLXKNF<{VRPtp zJ!(c3>=O2IN(=Y(x0mZ1b2H#$+(qzm3k6SAN+Fi{YUs6v?O4_NgLw9x3#1P4fHF9o z;i&UohOslb%bFb+cQJbKmK&Tio&V`xBd9*7F~zftO#OkbA@6Iy=&#ZHfM@JYB3i$Q zD9C0R?V0tQd8N|9$wZ>OR!0SJ%vlMXyjcjZ(QQ%6JW;JYeK^5(twS4esc1w|(1yCMZjufJ%`*ZK}gZC(H$Zl6FlYmT7~A;VZ>t0AF^w2&dG_o+VV z6vl4DK%{g#PE%ssHcNY5Z}|aZ#==Vqmv! z(lGwkBz;wW!l`G+B~JB~HP@{g3apE3GzXfhz^_Ul;Z1v`kjK5(^!{3x;>wvZMDpA) zgP&moV(T}ZOpN7APO|hhKQ%uC>JpkEy~$5-^rnAE_xrt=waY;~=k5+t(sV1e?n0wu z?ffmyI*~aphx(qnwt4a977sT=SwyPUjKXN^<(gufnv*x}bf#C^AKC^wq&?n6Ulipq z34zKilUr$0BzM6y*v3L2vrig~?F`ZWY@x1ela-3*&3unb1z8e74|B#(a1%h1D7-kE{4-aBp1FE}?kW~C zSNeV$d+TPg-`qxc-76b`DIYbsWfKA&eiop!RwW2=^3g;ao7#j1{Ayz6;Rm9+x-*7m zfUNjnW|YyAk5`PJx+R-x-ZnK`Cq4tdKW_~^8pJJY+54z@@pnr?%deEhd@~O7O>5J5ZW1WVJa9&>N?I|sXIYE)jRG#fbki!LYYsp z!q1v}MW;Qd8~m=Q5sQ_t(u2#-F?$Z>85`dT<2D;?G`*j)7n~s}fGxH>6V0FBC>ry}4GPY=QbDhA@mXpE6BDgB#SQoJezrqEZJ`)ankx+-+|-PG zd>VvVg0{k}q&wt{zX8;oW$zq*E`S5>>N9wGU5psTYVl{E;RzLUTuxMesU5c*#P|L zWp83s;{@e-TtpZCYh}t@S2(9xTF}7smH{7VK z(GHa=AhW{m(u$qU%sR&|w&liRet}j3Fy+$*x4a*R2Ar}HhwE?ABCTgwS!gz%UhPEA z6-rYsi8=I>F^ZkO(uhNE8uQfrKtSI;2l#Q01uwOA!CF?I5chlwbi z9%c{T^5Q-j?B%n9oB-eaL!fE@hy_OJ!Y0R_!Nc_rtkP%vz~=2Nz&G_45l>bJIT$r< zbxh=DI!#<%>f)rW>spv>2uw~)K;ZgV_)0sBTn8f1i_yur?C2h1UvNL!@#ddHf}#y= zvP7L(ULbT{{U?aKvqc1uAG*O*7gK2TW)`wiyBMuZoWLfAYY2gB33;q?8ud@>3geoP z$KLzdW4d_NOJH;D0GOr!6MB`{iMan|(DE$|uJq|C5w_fttb6d9da{6VydE6jjJ!MG za?0_J>&Pt{TyC@lI&w@AzVLMos_yBENnKFKUUa|2r`+GfT5n5|$vaOKsl+fcF~e-g z&u82tKL{XN>%gNnb$G%OB;!Tbbq~onRs?aEzj@fO?Slw-9YYkTOIw@wr_6bYy`UW{z z_w7L>%r+gZ%&5nnj(giSnnw{aM+(VbO>{q`Qsn(m@zR=I~W5m_*rAM!`}rx zTT_5t)l;xd-zrPw)UlKVT15?S-tJgjl*NkGqg;-joas6+-52<=!q@y=VVvcvh5xLI z_FJM~21WR4_cg?$JHIKh-gWxuiGR%CSPZAJ{3ef-{s)u^4?&8lo8Wb`hmo4_l{V0T zEKZw6*y*JlA}>n4rJ`KE)6A)z%=tg%oa(mEt|8qXz$14NMASWm(?|pf+7F{}{alQa zwZ{whq>~G~e^BA}ALx=P4!mZXA!oLwgTL6`2z)ogAhd8TT&jE$l{+MZ&3T!H&lJxj zwx3%{Mh>nw^f#L;{&@L|(cp}A&M!P(@|KSZ&8`vB77F=S;O)up|iKe*yK z(N+^gp(bgx{PwkUN0kpNSdhtCZQa3N`{W2JE>VI!rus}b%56siJ(N)0bW1EtI+>WU zHG=egB~9ID(;2~~KkR|IKe(K^p>gxBoSKR3CZtKaeock@7L<1uJeS}|Na=O!xJ(Tg2Gs*U=0;rK?gEhsw?9z>cjS!iOJOkIn}}uzDEUc26Ge5_F*O!C@@9+mo1PzmZ&9_>iiWjiGyd zt}}lsOu5}6gnyl6Yfem>L3{iz!c9*vpbloSSmD*PwqLZW$dDu%>XAe%UE^lzbm3CA zi@M@;*FA?S1owWaY8$PP)=9WYBY#vUu{DR5;O@`&+L`IywZDDl#FRzotkafoMdyzG z99PEc9~UbO-wM?c3QCe%W#uF z3&esoJ3GOQwx7^9tQfIK>_R<1oxxt&?7*KU)QN7r%rM08aq;Q2a-$0$GuSwBF)x*} z3A;sj?ey6f+F$ z{c#4Y_KStJT35p55*;Y8ox@IaAHcu6Ym-asr&Fca5k@ZWp7T^k7pLV>!#z*=V0xg* z1Nh5VgMINn(1Z2|h`BRsoq4C+cA81A-Li~FWSJa9D;}_Aw*S&%Tl`mYeU;n!)_M0p z%e?~@S>FLf!p{>Kzx)er9GmLO+_0O-d#ghBIjPetZWl9krVyu+ag1ljEX7W|!w z{I#XA&Bbf*j(Pt`c8e{Q{(Oj@gn4%LX_zbi8E^W1d6(9vn_k*aRQ+|0_Jr#typPh) z5$6d@q8dqqPIJQu%NcavWss$(&ZXc$jzD_QO3Q1xt@gSLaj;Xrx$Z-U4ovOp68wn5 zc~RdEin43-q6_eItaR#kF8FUE-{{i{imFwiIPEI9KNdpm`>L>f2PtB9Q4YCM&d@N? z*O|_#*vm@Fz2lZ|>*8Bp%mQKj1(cko2fr9^M3=2YuxqW?2}R5Ir2DlsREuI5qqJj$ zP3oTHe1s6Mz6s!)aw33&k8jL9b)uoY;r;OLmSV(OX$cy)y&21BM~KDFQysLWYpEcG z5A>&f@yxxNS?u1KdfZUhDB$$T8^rZ;!T*AOz}sJMLCjQ-SpD^pw%Pc6Cw>){6*VNM zQdTn@>6GoEPQO05nUJn^re|)s2~J2xf-cT;prrhZmIX6QP~pxow5RN>{;8kcB83&^ zqG!kR49+*H7@nDb0A~UU%CN zq>C4sR%uD?n0Al$c6`YMrlhiKyN<7*B@r3tOD?02#FOb)|qx4$L=@*k6(GUl|| z#u(;eQw#gkG@5ry%mz+5Xw4j!wk-u=o`>) zR^@Cb7cEiBzx1^S7e26q&frfhOHOK9*VofhS1cb7J z#H}3Ge~&-oR1VxK*$a04%YYs&?MLh$B%*tCHL>JFZFo;VNsK$TQgY|KsL8LfOt_mo z+g^E)H&j~##P4?lqZ`VgJqq*TiT#VM9lvbB3O)BtiHC2Ht_C&KaF;pGTO{@YjRKI8@;3von%d=3?TtwH;V0jzcJ4E#!?8}U(V4LNY|GOh7p zg_8=!8Ec+g#NnU3O$Foy!G%leTK}XgVDoJ&kUJl8Fj?mXxbnFkyJ_FPlA*p<4#8Is z(d%aZU^;g?xR~`t@`pU5&03%MLQ9zGmPz>vsJyBQCbOvzSFEolmK(nz1>1@!(L*Wm zf(1L7lSft97ymkWB)ALke0CjtWoZTF#D28&dm3-`o=>&muBqFe)c#`k{rGAM{+C6U z`X#Y)jSifj{w6->$YxM$@)NXwQ>A6+`*hTN=?83n@->^L_G5&D?LRW1*p#YPxXtjp zirC}rCEQ=y4)8wT0p647hv%=|f-J4IK<^`7wt`HM@Kcz|RUPu9`d?eoEk<`(vlD^b zhLRNzZ~WM&3fF4W*#fCTp<79R>KG&on8C1(U<^we;%WV&<_Y%HBvn#a-#O z2aHxsg8DfXkla`=e0&3pe0i&nel|3~p6$IyxD0P~RPws_>i({N0kYr*&AClk$cn+@f*+KUsO7Z`nkJx#!5NB+RCOrXVa z0vyc=gu_&?A}`{9VZw{3&+DM(JQg?iz-}GSY%9Suz^st|QFA@uW#s36{AIU={v+g5m z>+R6ErUO{t)TYbsge;l=v)*vR-H%~Qud-X`2)N;p5P{3nby`<|e0cuJ-@03Vf7iR~ zN$dY8@FwQ`4JTv$%&Fc7u?!(BV^iak`B_5*Fdc+|!3YH?_)`nK6^cW=4gu)P!5uih zOr1D$8zX<~-lPAo=seuHeA_sTG&B$qWqj@J`|LgJz0)8gL|Q6IG)XC0MN37+j}&Pr z$qWsp5>XMNVU{Rmme+g#3D12T_j4WBb$!lr)o}rnJ8+nja2Vp6W5xN?6^)>@MhLY1 z_(s^_r8}}n${gvlO-0jUGw``T5{NLDZqg<32c`0Anoi`qn5rzA?VkOW_YXG)yq?5@ z*2{{Z$5Cq$t*$rdVe<=E$gxyBxZ$MkJ7SleVx}7%u|&v31y{0ribuFhbF`e}-ERXo z^RrCPiz>qMJM$5-N+aZ>WQ}E>>v3G~$y?$WAxZY;UbZ(_Hs9e|65}K>4LJvgJT<9p z*D=$x?T6!v+>mZ9dn>Cmd#uyM2WypG>?Cs(x*SEKFv>5$9!*&|mrJ zy%pDR_|Y$$6uicEC=alAUH-=5c0xOw*P+jyf{X+*sn%+tBX8BcDGXj610rv}WNAZI zK00g8o+CoOm5|?8Xc{;cc^l?0%{RImD8gkt7zC8{+ra%7(xHmE&K4q}Z!EWWXIOo7 z|7gQMPO{CwS-XEZ)(+0HqmGqF7C5VpyfO*#8w2k&l)*wPA0+vv5FJ!}i8~$DB`%N1 zl8?$*6cuR|&94{UY;$HQ53wvx^LA=Nex~nh>A94#uOp*_vl_EEB)g5<-JC%HwyiC7s(vi}Oa&EXqTc{3SPk%jQ2U1GZbRmYJxWRKAX zhiwhv)&^Dy3got=0eq^s1SlG@3!HokLA6WL5$vcmdS)EPcG8kK7@bR8`Q@zlFTjU3 zdrvVQ`Z#MI-Qf7HP=z}^Jk6J^SZ7k5cM<{xi{aJ#?<3AFAJ7+;3$f#S<8i|~O2oFs zq2!UU6zca^W4gmog(=y2*O+M8BaE~A2%Jo70QU}7L;b!f$eP!$&^$8{EGwbUddIsF zV$kjnIdbVWH8`%xcyIM&%Ug|kC2L6_;nqL!`_f_P*_zYv(F+fdk-1AT-8Hc|SAf`9 z&vGUoZ)Rz&H+z_HQl9;iZqK9Q&wxnponUg&I%rDp5ZMy@6)hVM!If7pBlcJKk(tXL zQ%}Mt7>falJ?k}#pZ&rUSkIy0quaBfl%EaeuH-u8WsWvxC=KEXku`)vaip!nL=$y( z<4$_CrIB4_70vC*7V@d0t)SFSTgd$F9oUocMBd)ELTkjIVmI8+;(Jf-)+HN1lTHSY z$symjv`>Q}vqAHcqwBtpT-6U85cpj&jcVKsWrH$sU1|bqHLC^73HykTeRU;OIh0y@ z<`aE-+=m%i+veo{P?x`_nFz|o?gOXms-Q8s6-d~jF|?_F5=Y(gh|?uDAU;=(X=eaOI^Rr!QGIAMh;h%UiKtS?wsr_3;^=j^7g zME-LS9hmR9&Zpn0qJEu;DrW%(6cj)ms!QPaJHI21wd>JQrMKAU9oEFsCJ!Wf}6DGQjzrdX8V)ME19>m~eGYZdSC~x^}!M~J#x0zHa zp*E+kp#we+GMuoLEz82VbA6)xYT*Z<`BVxx-hI|wnmLFh+>}Ne1UGR0WG|6F%Y;1U zbc|Y`_Ke>1{TH*#(w+Tv=Q;1D> zONL!y_5=IfRd z(wDw$X^=eYx#5q%vqpV+gWQ|n3Vazq2vWBtp$qEAVSC?s@ML-hYCq0k{!Z<9$3q38 zbj~YsucHw)TJe)^oFmPoI53>#9W#F05*eUATo!y*HV^u5wk0A6_qG_k|Iaf2-%i|M z$0htjfi00XWJb;LT4HbaqK3HuVr*g3u+zcUZ=I{jiy&}4#cbiXN~jK2gu4=aP}8v^ z*yZ2`ytw!?k+sNxQj650qdUu)PMiIl$*pjHwdiGm?+Q0?^|@_O{P0zc6c-!KgbSxF z!v|%tbo+yN_Lb*E>7QqMcOAv4_c=%DF0npl+_%!nqi&2xr1Jq04|QPTauitn^(&0K z)xkZ9YDo5rMOsO+SL8Q&AHl88T(_C?c8#rp@d`>SuA9yppJdM4KVxGvM)+A$mw|w& zrQp4xXRx~8U*u4u9s1eqwvKtByl$pup1#=W^>o1O45nt67pKv^mp`-`0zN(c0+|!$ z@Re)k$hH9jRWWSUzIetC|2um>>AkC#D(|*t7P=`Ixm15Qu7nYRQPwUnVF?L!9Huq7 zkx{Kn>%y_Fh8)5NI<8lCD$zjc56Em=UBR|Lu;K;Fr3DwGD6q4m76#4Lk(+rQ=)Wa9 zaGxkQ;??(0l&S|!@o zwsSkN<4Y9zdZj4UeO=0+@n4vc^EQyX@=*&Aah3+%N=nSK3`7yN3n$U2g|S%Yel^16 zdn0+pr*wvKx1K?$AMC9>oL{UY1MEn&1RMSi!Ri|`koB!*=o>pL+`QCmhPxYLCz9b# z`$@$zRZ$k4+R#Hj%1>O-*tQK;M#VNNc762`$4D zk%2}-eXP)RO%8DT2?vRw^Wg0{yO64-yD_z6^7zS_-v3~54CU1Fg1%{|#7dQb+&aA} z{?++$P`KcXdh*^fxU2sn>f|+(xqlf=h;jmQTY)b1O67~8ak8pWvWPnOW4ofjxw924 zaLtA#tKtw}$QG^4?8J>_>WBj|Y2>#N&cHEHj=9mS$}O~l`7JZO#g{tKkkL7PIALxR z@@;pKwnNVo{Kgt@V!Bp=+CpT~71z$QMv9r-{^RSN+b2*phfRg*`5&S+7unDFtIC43 z%ZwBW!weg8zhnzFaInsJ-`3-x4&8972UEwlVUvoXO@3b#EFn2p{A0bJk z_Y6_i~}W%7HJ?gFie^^n~(0bkgjh)i}(V4K`Tb)HuzlX~zeD(=4u zx>w$ZwTXSmogY01NCYc_Yu_uY*V@G*%SwCDy~b`>-{lTnYH=!=d&tLN-Y*-&jRAkz z(l?{Lu7#W6Sdo-kpLP>$d*+U2?%aHA-tIx2;9d{iXKN}co!YZ>EaAkw&&N4yrD^_Z zk_|BM&r6;1S`EA1wbZQF@Y8w_ei6%l5{=i&Ium#OgD9Y}gg$9y!F(=?V%tP3xm<^7 zJ|#(L;?|e|+AEer3w(Rw$Tv!em2{S7x8pwT_2uvJtx}tb)gCc=_aEJ$5u-nbD%(t$ zZ-u{%H)^gFK09*IbWzU=XwO!CV%i83GgYv9oebGHiieXo!jx$GY`;L%FZ#^KR42_ zeIse~tYDjQ;fSTccukaG>ZFfa$*b6z{q|{1c$b8hRLNqk4+CP_`vli?CK4m{?1tU- zQS2bC76UNpzqhkfe&M`V!z!TMv;|VW69MnjNI=?B`!IG^JD$G%9Pzg!($35AFRp9cl^JidQM#CK3yoZ+Xcv20D@mDdezn2K zj0iUt3(?>*b8-c0^8{e@#@$fY^Dl^rkpX%+=_oETq(Jz&J||D-3{!biQjBg;B73ZU znCqbi0qY!XaEmx)mf~lDh&&rYCZ#RWrz=0H|Af5Zk6vtz701)^<)B9~tQ&cld0g8lEg;0Hb1u zq2OlrM2?A2YJoJcZHJ7SRHlYnW!sqg7eG$ql)s^-c0xJw_KA;H_WU2(Gp$q|@Zd}0 zWV<2xh|{7D?bD){Tz_Kl=&Ld-;d0B^qfAYB(cl3%|HKA$ul{Qq$u_4DjW8UI>5|jV z!4K%9#J3P;)wf8I=^lO5UyWAHyTV*t6va+$8=krEcHjnF1u38Ih4+ufAZ;EB+Dyq6 zJYD-Ok-ayWOs?0W=d%`!*Nvxaor(pooOA`)_OBM~Ul$77Rc9l4nx5E#LkIEAowmet zZjQeGg&hXR$Jz`BR;@O+FT5r^zbG2$*wh1gJ_~_M4HS^Qe#cOQ3x}~B@ms{4&?UA( zpLn~cZg&`ohj-XmquE?{Y9(MbJ`cR=YXi@H`T_|e9ndG&m*YB$&4lXujpTwm#Z;_{ zCjCC@K5O-9Hh0zXHb0)b8eFsFGgQ1k5K;IVk48HDhqV;#zz4h0?3tb2SvoBz&3{~uw79o@<4evrg&6l#)}|Nymua?h(aeie(825 zHTWnSU)0KtX{rLj@tNR(b{dKl&P1us>7!N>L0HbtU&NA5J#v@*T?#%lKz)8#P4~|) zV2bVc8DqDTg=b|Y1fyXN(CX$Wjk_ia=#tDNj27$AaSbfeWwYu?iOyoX2(zDbcP`43 z61O;Kw<#f+Su7};-Kv&ib{=wxxemYT7Da{DzF2a8K0df;k|?n%AtPd%sXyH`V{0eI z-p@DY=PmjG1c&TZyWUu&p-AXzMy54t?QA`UIq6e68E1CrDUE&6-|xARZm$Ys8K{Iy zNU`K!|9T5L&ak*|)HK0Ey34h;B#LN-F;R96%AiMAB`E0s=K8_q;re9mI+;l@|V z<9y$lDsaP;2lT}I4x(ADkE+f)gh{Lv;*nKbiEh0YlvT=oI%g`3oxA=zxB5jUUj*L< zwKL{GN5!+@o~@gZkM|4E=d&xYPPbb+t?6!ht0toL?|Wf}OUsY3;VK=*wNXC8*N^X; zluDk1$mk6C>`zbRPf#Of(_Dk!H(5(eUN5J@WrOIqk#|_#PH!&G(t;n&O9E{q+o7V! zPDFm@&EIWehP}%=K z%12-5=$>VCfzAX{Sx=QpOFux5N$q0SL{&Q#4=>|Cx*P|7-}wxM%FDsk`yEmBPtI7X z1%!XjzD*4Dm)JHTD)w$!PaF!R<(+09eB>NBFl_Q@jjkE=w8~s`-g>ywDG{a1_F(7r zEbwnAccjMetp!8UkRi2MTc-Zotwn< za|E?u-dWl^%*)}@*Ik^Fa}~d@xDROmfAN^?Y<^zE&thVGp_M}?f|oknAeR@#P)kHZ zsDG|=8K1kVY?h)luNu1;IQT~qjI}E^+n(_k{vo*tb>63g-TZc)kn|a{^?Ce+$^xqy z)yybnvbUWr5duQ&QWS7j(g7UZy9!?2drLFd<*H?W*(AQvsFiq@v651lZ$W$Qxx_sG zX3UXm?fJC&dq6+0W@cC52|rMMk1D3hV-eyu`1`O7Qny=Rm$urQ?t3K48X}X%xfw_J z?;_JCU#-i*?4%{I+Qc-n%&Of|{OnCEW}zPbdH+%p{+?%->7(HwRzJzq%fM{%8WZks zRUII+*ch1d-32*S_rkmMjv>P-4=~rsRNT&@o3J>gO%~36Z7&-h>#(y&f$j8&;WEz7 zcXoO&0AAWEKt^T%!3o0U$hS+!F-Ms&e8=`gBCfHH5;x7J*Wb=%?k_*dX&nvakBsxc zm%uX+_EOC}l9)zDZ)jqxR2V!bsg?+P-DC^PBv4ll|8ZFS`#fvmA;Ni0?U^3Tv@8tc$jCunuJSJ5IO`ke zvLyn#)w~v2%*CTSu06(H%k=8hdZrS0vXUrJ#+HuRTfq!}`NO%mO!G6@E#SatBFK`3 zP-%`hq9E0QMnoE6@B0JK&iyfjX?y*x)5bu>`4V267hm?;x!TZOq zA#EECF{Y&vPj^xw{#K%t7f?)>UD?Sh%P6t~?s`tw&btAc3toW1p+V5a_AAH&$G6Du z)1v6T){Qve*hQSE=p=`MPqgcmHs+ShDNg!GC%^sAcA#OyJ_!7vV}8Ou4;iY^#7uz& zxJO)qjo+u)uT`_Z%p(QEOqrG?qwLX z=(iY=7j_$;TTsQ1?OPytQgInPGJBrJtgvFZzIZW`{4WHZ+TMwKbvYB|?nPwR4K2IY z*%-4XVy4dOd&nz#904M0Z-DQaBv?0}M$RseKu6=paoe#)#PN-G)V#JVdaa`iQ(9hc ztP2kC5t(T~i|j1O_V5OcYrn_Pc|qs2gIoUTJhQv0r&GF%iZwh*cVD(-I)}8`a{hud zeQOfu0*R!0h_9#^{UpC9Xez zlz%%_tY*2b6)Nni)s%7DrxjYQg1y0{b>SSEOp*7YejYPm+{Vq=!r**fw#^afpPDEhWKRqW%l(LF7r62uKX6O3ToJZpw{>jXrMIp}>I;(U? z<3{Kgq@jK}X2L*tL2eHzwe%*n?O-%r-|fYG!427tV~DfoA2X91LI0rT?{35DhMz1X zqfVjwhHis?nn+^)+W82lx$q@xLQT*Sy{6 z=%#Qyuz7})VKJZ5ESRQKm)&OaBKq0-rWj|=Mij^|#=#nS1nP@;gam#=EQ`E)arqaj z#1SsT_F&ROYU3w}uC+6A7|gG7@>Z>$VHvxd>d*QQI==HB+~4gwBl)nm%6od1n2&1^ zBS$ZjgKbiFed?R-uLjjRYPH^WI&AOb+*GD$YAMt+JAJ9bJpD%*5^FwTnRHsgdeOWR zo2?Pk z_qS2*TB-Eiq)p6=u29FvD9yvUpG-0p4?|+HKg|8dLXny+F;*IFF4m#WD{PMEwvbom z#L~)PZy57;ci3R^EBEC_A7H6c0cIx`Lzg~Ygpa{bkrT1H=)XTdan}tHQQuld8QUw{ zA1Etgei&stIc6N^^B27Y7w(CHpq90;E!~T3J6?i%w2EPGZHfu3P?9{WGEN1oUrK}5 z)0hG!G4|gPf)5$-2I{@#z<2oyW>u4J=EY_wEFxmZ(2>7O@s*ofh zah*NP-rh3C3qQ64NzOswjMEI3RV_vgqFqtA`O%CL_M=t5KScz+@+F^=mua2MD@^Qy zT-M)lDH<1dMg0*?b8nf5)tWgdk0S`_7;usr{U(1=j*~S-|uLPc5NC0aFU%{NmGvq`ijlR*d#9dEpByNe`q@+W| zX}6EXOoQn!W7(`SVbZKP!C>G4b*HD&8do$kW_Yp6*ox5x{9#}v|~* zEQ#SRAF$-NlyN48)6J$AcAA?_elf7{T-{<>TYKDEk9=zrm-oZASE6n>h}ba5{kaF+z+$LI?f`Z|P8t7nkR)BcU8ZiYoz2X8w4b#A zLbyBW3jvMU0x)LlYG`ZWPT2PE63ue~PqfC$aok8hS~valwElweE`v>L*E7!_xv=*Z z5M0a(9e%iY73iZ_4F&m^!*2PDkgDYwnDEGKJbJ{4=v;3?zRzu^?*1&HKUkPBk5dyl zGtrIw;f)SJZABdTUA9y`-KtrGj~vh}ZL8Bdqu8Ro-t(OGo+33OZ0ew`x!p^u@?H%6 zQ+hu;fAbqIwk4SF;ip0CtL{*alr}uJ;|of)Jj5P2vV>ykQ!-qy&dzPSxq(d4II~ju zmSfz(7N_L}G0u?a0YKlq53x zDL`ChF8JOs0MS`FLLE&|YCrSqzZ< zdleXkE`XfEhheMYpe0MDc{Ft$pnW0#FMj0rDcuC@4jH^RnEKMu!swY?WBC&a#^i?^ z!n-qw&N-Qd>bqut&}iPUQcI_n#ZFOMtVarzZC9!k+TBZD>o7;8*zb#1FWYW zf#w-i8x&dD2N%c}U54&#IMtYjF%ntL%m@ z961k94!WS8p0QZT<0N7^6hZF2^v14rktjp$$Jm6fPUCv}Ufyrd1;NMmOKSPbZDz-O z-yz~JI?+HR95am`(=m8{SU1;Tx86k3F8wDpu5|d+I>Tqan~fKgwFm{Wmw;vdS3r|u zC3OQaD~)UG9pxk*H)scI*WecGAKFOg_>jpmS1I25sQ%xmKtqjZ0qjDV8|)v?U&f6& z<*KdU>;+HZMs@UTxJK55Bl5+EM5ku5RY_eV_z!0X61=yGDo`0=L=Ns_&Av)-l`iIh z>Vp+P)eM(-yS^MWcoKmBd^&+H!n&~d%ma9OH-KFmjrxsE`+#(MtG(81*BnfuU5-FRJ&1ZpRS4T z0rGH-1@%Cq+@L*bj^XbQChRx$2JZUiQ0F@}0cx_46BLvFSi|?D0-~h(06ib)q1`_a zNvw6Q)6+?~r}z6gX5g;V#GE=;I%zQ% zpLHe{|Isr@Zd&nK|9P>a!Jh9C46U=7b&X=V)D{UoMBZg)Ouxlc;rwB6q)P|~xUEIN z_!Ok8b|nTVzr}5KY7#EBvZSr#cWSOnyut1QgejJq=Clus^JhjCfS!Oo>SX;L7?8gO z|68w$npCdCHpo@siR;UW-M4!6iWf;y-!_OEZfdqPsw4e{2Ip%9dql$2!c2|S&5osN z+?x2VnTTxFvfopWP8LOLKbwfvxq~0pP1<{&j3|9gks`hHy)C88$pXyCb?B6_q=q&2Yks>%lE9_6%q zJ_)n!wbf?ds!`V!&4f)nWstJ+MVORIsg6WIg|2A+RlNh!S^6EJN`_p+aie78lg4in zD+Q)Ma=;XqL0F`~%)(qc5xspN4Ojb8PWU_Ok)8MKXbt(l%$4Z(>~zm(ZVb%lf9^R8 zhP0i8s%RBNcyR}sJmraX`Z^I#RrTZ*T^(8~c{$@Z*vDqBc)$zFt$}Fu9bi{nFwFn3 zLr%E4Xf+lu)p3=(uX}sfYrO~Mo>Zo|IU^JH#xe9O;nc7u2{3(T0$wKXLPObG5mep> zy&ZoOpEcz|U>=`IhqA3yo$(lBaM_eSF5Sgd>}=+nnjeBItW=@G`&w|~--C#Q`3 zt`gQT?=N2N?M52BnqzmI&!ER{o?tzeKj9u6EdUgMPk<4AS!N}Vv*9k?MAZ58Ld@X( zKAky&G=e(NPZsxIq9s<<(ZA2{W(wO6asZ#mpU9B|jtzOJ1yW(q=ZoJFt$)2}=H}bD z*ei?(5Vn$=_w1rp)^yU<=pPpP?;m$^@fLn~4-J}kjzfnXmT8LJxP)}{U)D<3$<JS3`IY!5-$HGPpH07*%x38==eWeyF#emRCFpr04RRj|(BOGj&6DT0p^t}~uwJVX z>!u5Qch;3W-LcEgUoV(GcEFSgeQnOBDW@36Y&yf=e{m0}kT+60ABd<2r#Wh9H&tpL zB|c~!3@5Gldvew#`Uvsw{2#Kn-GI8UdY`V`R>0hUoH65zd&h;CP6@-0NdRu|Tht2q zGf>ZIDP+;mX7re6KGyq4ov_vGC*w~j(h{TpnBcX?+1j#pez^(@#6^#QeV=_{eTyQ* z=e#!>^vfJeWS-)?W9@X)o2JQFXb!XR?QdpOyURH6BrAM8DQYUexeq%0S{42Z zR-h|V7i(va_!8o)WAxTPP@v-Gh|(w5m9SEck(|6v3NIZM2qg5J0Kc!g1v^$(TDZ%8 zLb-q>tn8&9p^U|mz86udZO+WDN=PMp@x3B4PL1+9&{g{t(4_=YfNUBUf*FU(!)!<`Sz7gl<%w^PY!fAw8^UXdBRmeX= zRAL*@1EW8&kHLKe-?E#`aPXl1l}|Fh#zpMSOLuumsZt;$ssn8MX#leUG?L!*4xO^f z!kvm&6F2o7DCM-b2K(m2OxxZ%j`~=k>tTv48Pp!~tn|+pK zA{wcL{sM!)YYmOO>qfZ}rV?0oBU5d!sh3?Z&er46 zQc8ZF9L=nw1G#&Mm#FO4;U$%$)xLt^NKW literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc22/CLIPINF/00007.clpi b/tests/fixtures/disc22/CLIPINF/00007.clpi new file mode 100644 index 0000000000000000000000000000000000000000..42c4c1fd6152bdb558b5bfbde77b966f1f1b4b22 GIT binary patch literal 572 zcmeZp@eMODGB99ZV7LRs-xwGek1#MWSpeDSU;|K&5iA(p+rYrGK>=L>-T8729zf^g zvsR1&>|#a+0WhuDG@D1UyQ>zc`_x$B5OjC5<7UfG&cf3oU5Y + + +TEST DISC 22 + + diff --git a/tests/fixtures/disc22/MovieObject.bdmv b/tests/fixtures/disc22/MovieObject.bdmv new file mode 100644 index 0000000000000000000000000000000000000000..f9fc9fc144a3811f6da45d47d592f4161a5cf4ac GIT binary patch literal 1046 zcmd5*yH3ME5Zv?m2%!lD1tp}Qi)4@xt(7W5LL`5XPr2kv_>_DPKauQ=ccY~U2_0+6 z9?#C)?cU?#bN=4Fbe)`y{7p$-i{xc5$qm!$NaS%t%-mY!ZP7QLOb7eI^)@G&r=Nv#6%nSeOJ00exELV|%xxK)A!xb?g?*zEuN z-vOpUkAZ;^NjE2>fFMMQRXP#K;ADhy8CV+(vkLMcCK|#_)bmi`c7At~ft>;q85ndJ bm_a@Ox$pmfuHMgvBbI2xM?FLb(jA4Tf0-c|bl?Eo*Zkm@fp? z$vOeZ1*#W<$xlelO9$~mwg3U^gsO~u5T6;1&w|1SsulqYuucS-2Lvh%ARUYhG9bSg dgZ;t)bUMU0ED*&YbpjwS0u=&%`Tsvi000c~Cy)RD literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc22/PLAYLIST/00002.mpls b/tests/fixtures/disc22/PLAYLIST/00002.mpls new file mode 100644 index 0000000000000000000000000000000000000000..2bfaeb31fc8a0a48c8e0d7f75a322880fd57cf20 GIT binary patch literal 922 zcmeYb@Ci0BGB99ZV6b9fVEh22aRELCMxYc6LYi?Ckj(@XJzxL?X1+!t!9WhTQ|AW7 z4qsb@Iv{Hv&}=4FkbW@WWE2pDuvn!NfecPYD3^h?!7!^J56FkAWo=Fb^MxSF8CWL( zxj^+oF!>3odFdcN6V$v3RT=ppJ~J90>TXtuJW#a=SOM!qka-Xvm_vP_*fg6*vAe65 z1EK_C&|vog1A__!$j^)nGN9Nn0s93UJ+uEDV4TAO_Y31P205TAa6JA05B400HzB_U z!Q)N5k&NK+n_b<5#A}}Bio~0IWCjv%1$QtK@4Hhxf+yH~cp8EyJWWy(iT9LG6N&e2 z@oof9M2Lq4iI?asfZ&PgXXqe!;@_4fB6t$68w-$l(G1c^yfSAbA4wdoI)RXrD&xvP z@MJb-u_Ab~45cDSJkgu`ka)TioRN4n$NdpJ`F2jEa8Xot?nB5a7P))Cd5oa62jKw# DMs1y# literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc22/ics_menu.bin b/tests/fixtures/disc22/ics_menu.bin new file mode 100644 index 0000000000000000000000000000000000000000..df8f0ffd26d4ab4c84089062621627db97b9b0a4 GIT binary patch literal 14882 zcmeHONsL@q6+Q3&Usc`JbGzqu+wJz;9!P*dVgfh>f*AsBh7e{jgdt{1AP@*cHAx5= z9Guu$utP|wS45y7fsg=8Y+!=~3wBwzyPkML{2l?lHBmTtmpzPB5wiCyzph|^W?&JmJ za?PJCl4mBbHpz37*P7&o$@`k*6_fXi9Bqzh+^Xq|KY1jtnOyvd<$Wd>e`0yR$;F>o zUN^b;6UzroUKcr{Bl2O;bi}tJk`I|&e2eA7CKumg`H0EIw^%-Ea`7#ekC|M2D-a!# z596jIzEvXmHj|5Qv3$bh;#(}AG`aW|%co2(zQyuslZ$UMpVp7ahZ)lm->Q*(*5u+_ zET1#E_!i6OO)kF0^6e%U-(vZK$;G!SqQm6kPv#iY;)du$@7?~6meJ&iuNRmY_nYNw9`syPaZv6IgWmcc|GD|9T~TjuPWTq=6A*cU4GDDG} z;EKTu*^69L6Z{z?hxBu;)CrFPqE22B&QeO`n&x#weoqeLD%G*;K2fmidUQP)T@TB3 zd?cJv39eP>T7|9+5*|Z@$1t&Vu2nNs>7BcifveKHQH*1R@Vpx3d5nm?lYJ9|cA;J1 z;zZC*;FQ==3$E47wQ;)Vv5oMQOl+ZReHr@bUG`H3u8*FK(WgnmV~X&YCgQ+JW|F{Z z3X5lo&8#?Z@$B2^jML1A{@_}_xi*6tIyFmprmeXxbgiDDPVe$RF>rMTY@FwL!ecw( zu|ULulhiGN%j2NQ^;H5F&%REUs%{N15L_Ej*9NeI@YqRsED~Gi+F*u3dWRSCBV3wu zq>xGMB0QD|kKIJ?J(*5nJclaE4)e zR~%#DwsEFSka71D9tQ}IgGB6|Z2ly0$-aJrGcFFC&c65s(0<+kSyqmb)U^>T6CQ^M zkHf^)xi;!BDn<2Q@Ow=MObJmrU6$4(?RM_b?%P>4pff0vhw7nOp1092+Q=)hT!U&S z3$(sSyDnG5n8O&K%>4wv(Gn>B;xWhO{&i;z z8ac$S-N;IR=0%wkwmEF$$i=_#yk<~l(M^pU-cGxbb?V#5C8kQWnEs0a*!sAB5%d?H=(Z_a*OnoXc={Aiwv`Am}l`C!sE4s z$IV19%p0H3tzn*Xn3JrOWqY+GVp-IZ8gGU7QFbBl&sach&-E{9#z%I>9>R4jtm z6RE8whb3ycDQZbYBX|RmYVCH|O)YNbSG3}hs^^VFs

qkJx&NWF>`&;5dlS2%3Fw3YuRDB)cTdy3{p4TL8MxT91h8df6acWHHFj_ZzWQ# z!w!c_TQ6(PA$7+IBGo$La749eOZGB?w-Kqvjtse zyj7d)vgwd!xg71A>#l6aYjd4#bm~e={z}btYsY7+oY)nPAfCK~@OUTTaVHVJ9YjOz zX*<4A{d2ymw#ELt2#q- zK2CIIso!aDt8xo1Nm|5$Jjk!p=N zZ7yg!ke;rfH64^iewhxW=PUROk=iN?W|^NCL&1#C5~)^M+#>%E-;Ncx_#BaHm4zts zJE$eCT*2pwRI4l+k^PujRy5*XBGoDjJn?HS6nHpIq*_y~zxZm4muO4cvw|-Wsn)cE z))K#_mb7mLUnEkk8K?W;%Fn1JT~)!Ch*WFV={BzV?|fOiuF`q^GLdSPTM&>ZUJhFj ze1%B0$}NRxEr%@y?juqy+aiz>me;okEhCl`p>w`Gd7m#`C$vkF-2m;%cZbK1#o? zO1t^*sAYXMJVB&>8SQe!wRPHk5>Ga18SOGnU83Em@KlqQ(Qa`cwF2#)!I>s4qg~cE ztLwD;G@fqKGTN=&LoN9-OwgJRjCQjnYFQI1 zhxf(xk~AtCN*c0P&$~(*)oYeCQcJZil16H&o1~Fi>LzKVmbytAsij`hDCrC6C5;e? zUeXAWxLndWhjW`r8f8l&N*mr+u9u`y-Eh(@*DPtImbytAsikg`Mrx^>q>)IHPZB(z9q`|*X-avawDh>X}0Q**8 zGwrGIYnC)pOWh=m)KWJ|Bem2`(nu|JlQdFGy`&KcqL(y6Bzj3BMB;Ku<2gLHnWXVw D69Y~l literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc22/index.bdmv b/tests/fixtures/disc22/index.bdmv new file mode 100644 index 0000000000000000000000000000000000000000..9ebd6bd470e1c16306c4d1e779314854eb9ca687 GIT binary patch literal 120 ucmebDbBQo8GB99ZVDJNCd_W1GBwS9-0nTJ#0I`9X5iGkc|#D0L2->g3-MV46L)!<>}9tYw!R%AD_Kq z3}6>CG6;ZaZk6BwZapucPZ+FVGE58tf}+xizz{G%0w6;L8AKZlvkLN%ghAm10tG5_zV|)yZbf_ae+6Ir>;SEpfD3%x)*W KI$$}_Tm}HX7BSlZ literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc23/CLIPINF/00001.clpi b/tests/fixtures/disc23/CLIPINF/00001.clpi new file mode 100644 index 0000000000000000000000000000000000000000..c8fc749426c6562bbfadfb7ecbb6b8eb3f09fc38 GIT binary patch literal 564 zcmeZp@eMODGB99ZV7LRs-xwGeO&A!MKzwwt0Vu}^7L4v~VBop^09^sy`Em^&K} z83hCxSQvB|lz~e5fH(#iZl{4X3j?Fm83x9}9Sn?z&M+{^Tw!2lI?KR(_&fu%(^&=< zqs0s?P3IWc5-J#251nJ+aOPlOV>-{kG0Ta89Y}Mj8#1srU0~pPyM%$m=>h|fSdYvE z1{T>FjtA{hny=V995l24$fRtTU%12Q`~zp>I+-gbdXWvPYAeo|`TV|Y?jB-ovGwqI zDXKQ&+G%ptLFmXnm+ vKW6RO2`_biAO0;DrEVy{rfZ`h&)X$JxdF3V4SmND^SZRm<$JlfS{;!A}|CDkO0U~K?czV!>oclBw zHYZ{c7h({d02IbBM~G2$LTX+*rZ|)6gsO~uOmSu$;w;$3flkr^`i4cZp14A~7 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc23/CLIPINF/00003.clpi b/tests/fixtures/disc23/CLIPINF/00003.clpi new file mode 100644 index 0000000000000000000000000000000000000000..d8b02f2a569e8dc4f2efe18d10e0268ca6484c92 GIT binary patch literal 292 zcmeZp@eMODGB99ZV7LRs-xwGeWq?=#$VLYnfa0uR!RX!w1_n+AbOm(h%QbiaosZ92 pF$PAEG$Vrmgr5E90OK4M5ulI~Ooov`gh6y-RzV(v0TMtq6aZJM53>LO literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc23/CLIPINF/00004.clpi b/tests/fixtures/disc23/CLIPINF/00004.clpi new file mode 100644 index 0000000000000000000000000000000000000000..0fa2e9b0e8daf495601e54afdae39b252b718cf2 GIT binary patch literal 292 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 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc23/CLIPINF/00007.clpi b/tests/fixtures/disc23/CLIPINF/00007.clpi new file mode 100644 index 0000000000000000000000000000000000000000..139b3742e7b819f119f59b3ada1546f92162c442 GIT binary patch literal 572 zcmeZp@eMODGB99ZV7LRs-xwGek1#MWSpeDSU;|K&5iA(p+rYrGK>=L>-T8729zf^g zvsR1&>|#a+0Wht2tU^NZe0nEP%PE))2ZMm1sB|JQ1PqV>$WTEB(FVh;f;=Q)P&hFN zGKw}QVi6Z&5S;)N#xO^SQFKCTUOJ{Yljwx1jC@RSW*p)y*u{ZPDggS1Q9zJ^g+YXY z7s%%WVjTtsjzS>K!oYB%2q+uHz}Qj5z@%!-z{F9^z;t&t12d3j@!Kc!0Z8VAZ}2~} z`KzO@K$KH&&LrozCr-Nhs2aPiX)N^Mxx3mk*Yc&;*=hbhx}Vx)^ZfP!&1C=p@ET4v literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc23/META/DL/bdmt_eng.xml b/tests/fixtures/disc23/META/DL/bdmt_eng.xml new file mode 100644 index 0000000..ad90bee --- /dev/null +++ b/tests/fixtures/disc23/META/DL/bdmt_eng.xml @@ -0,0 +1,6 @@ + + + +TEST DISC 23 + + diff --git a/tests/fixtures/disc23/MovieObject.bdmv b/tests/fixtures/disc23/MovieObject.bdmv new file mode 100644 index 0000000000000000000000000000000000000000..f9fc9fc144a3811f6da45d47d592f4161a5cf4ac GIT binary patch literal 1046 zcmd5*yH3ME5Zv?m2%!lD1tp}Qi)4@xt(7W5LL`5XPr2kv_>_DPKauQ=ccY~U2_0+6 z9?#C)?cU?#bN=4Fbe)`y{7p$-i{xc5$qm!$NaS%t%-mY!ZP7QLOb7eI^)@G&r=Nv#6%nSeOJ00exELV|%xxK)A!xb?g?*zEuN z-vOpUkAZ;^NjE2>fFMMQRXP#K;ADhy8CV+(vkLMcCK|#_)bmi`c7At~ft>;q85ndJ bm_a@Ox$pmfuHMgvBbI2xM?FLb(jA4Tf0-c|bl?Eo*Zkm@fp? z$vOeZ1*#W<$xlelO9$~mwg3U^gsO~u5T6;1&w|1SsulqYuucS-2Lvh%ARUYhG9bSg dgZ;t)bUMU0ED*&YbpjwS0u=&%`Tsvi000c~Cy)RD literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc23/PLAYLIST/00002.mpls b/tests/fixtures/disc23/PLAYLIST/00002.mpls new file mode 100644 index 0000000000000000000000000000000000000000..06b1fd88cc38d8fde1f2567fd3ee2429b48109a0 GIT binary patch literal 936 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 S_(=F6Q25EgQ+R4Ir14*#7fvPs literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc23/index.bdmv b/tests/fixtures/disc23/index.bdmv new file mode 100644 index 0000000000000000000000000000000000000000..9ebd6bd470e1c16306c4d1e779314854eb9ca687 GIT binary patch literal 120 ucmebDbBQo8GB99ZVDJNCd_W1GBwS9-0nTJ#0I`9X5iGkc|#D0L2->g3-MV46L)!<>}9tYw!R%AD_Kq z3}6>CG6;ZaZk6BwZapucPZ+FVGE58tf}+xizz{G%0w6;L8AKZlvkLN%ghAm10tG5_zV|)yZbf_ae+6Ir>;SEpfD3%x)*W KI$$}_Tm}HX7BSlZ literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/CLIPINF/00001.clpi b/tests/fixtures/disc24/CLIPINF/00001.clpi new file mode 100644 index 0000000000000000000000000000000000000000..c8fc749426c6562bbfadfb7ecbb6b8eb3f09fc38 GIT binary patch literal 564 zcmeZp@eMODGB99ZV7LRs-xwGeO&A!MKzwwt0Vu}^7L4v~VBop^09^sy`Em^&K} z83hCxSQvB|lz~e5fH(#iZl{4X3j?Fm83x9}9Sn?z&M+{^Tw!2lI?KR(_&fu%(^&=< zqs0s?P3IWc5-J#251nJ+aOPlOV>-{kG0Ta89Y}Mj8#1srU0~pPyM%$m=>h|fSdYvE z1{T>FjtA{hny=V995l24$fRtTU%12Q`~zp>I+-gbdXWvPYAeo|`TV|Y?jB-ovGwqI zDXKQ&+G%ptLFmXnm+ vKW6RO2`_biAO0;DrEVy{rfZ`h&)X$JxdF3V4SmND^SZRm<$JlfS{;!A}|CDkO0U~K?czV!>oclBw zHYZ{c7h({d02IbBM~G2$LTX+*rZ|)6gsO~uOmSu$;w;$3flkr^`i4j!SUiC=P>cZp1Qj-% literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/CLIPINF/00003.clpi b/tests/fixtures/disc24/CLIPINF/00003.clpi new file mode 100644 index 0000000000000000000000000000000000000000..c1c4ba5ecb4bf0df8b9db032a519042e083619af GIT binary patch literal 292 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 BAZ`Ev literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/CLIPINF/00006.clpi b/tests/fixtures/disc24/CLIPINF/00006.clpi new file mode 100644 index 0000000000000000000000000000000000000000..9b9298800d8ec4f9e0ee6344a47af8bead21fb97 GIT binary patch literal 572 zcmeZp@eMODGB99ZV7LRs-xwGek1#MWSpeDSU;|K&5iA(p+rYrGK>=L>-T8729zf^g zvsR1&>|#a+0WdAee=q#3C-lAUXjkjA4!tqv(XxymU-)CeaC18Tpvv%s9kZu!{qoQ~>l1qktd-3xfy) zFObg%#5xQNY|cQMg@M7%g@GY_0|R553j>p?F$3cQAj(xgXOdh0iIeW{RE<6T8VkMF-Cga&Z~4+Uf11DF`A=;E0)G2|<}v^P DLmNzf literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/CLIPINF/00007.clpi b/tests/fixtures/disc24/CLIPINF/00007.clpi new file mode 100644 index 0000000000000000000000000000000000000000..76454f033f423c5124a2a3532ff376ba55309d37 GIT binary patch literal 1856 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 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/CLIPINF/00010.clpi b/tests/fixtures/disc24/CLIPINF/00010.clpi new file mode 100644 index 0000000000000000000000000000000000000000..4d8eec70cbd285a30e1463976ff9cb8553e24b97 GIT binary patch literal 18524 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 B&M^Q0 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/CLIPINF/00011.clpi b/tests/fixtures/disc24/CLIPINF/00011.clpi new file mode 100644 index 0000000000000000000000000000000000000000..36f86dbbb23774d8ac4f16a5f27f6c5de855d6f9 GIT binary patch literal 292 zcmeZp@eMODGB99ZV7LRs-xwGeWq?=#$VLYnfa0uR!RX!wAngEV4^}z>=dg$Xg_K}2j0_?Sq7$*Gi literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/CLIPINF/00012.clpi b/tests/fixtures/disc24/CLIPINF/00012.clpi new file mode 100644 index 0000000000000000000000000000000000000000..664104de7d2d8bb01e5911aef4ed2ea0afc9f2e2 GIT binary patch literal 1244 zcmchXYfM{Z7{~v;?8v<>(sC)6Gbr~8Z7GGe&_dY`T>;Cu4zNNCK^a5PD9hL~Nm=U1 z5XMGyQ9uSNG{(&6$TTQ(Y&nA%CK9g7J}`!J5FI8+7E$6E#$;KHAAOQHzvq2!@00(B z*SIgINT!g<04y3G5As^+^Itl zOw(|89D;XnI6R3G_(U9mm!kwCq60jl6rzhp@EQ8?#=)n{;4imBK$RiDQx9*)a|qOWU ztwsbARz$gUBFJGy3@-;kv<)$JB7{&jNEN9Fp(`Psae`zRXJKP6RfTwR3ZX<5WQAG2 z1h~o7#Wm`?H}bXns5V!ip<_79ysW#98S|p8GQD`3HlziIXL!||P@Y&EOuTIhQmwvoBk9`O(d4#> zBhe{Vv3lxkwq|pERr{wgGqrBSrmG@4^l3%IvY3lTxzn2$=4#(aSRKEo?B|U~kS9lz zY!8;Aya^?)pueK&!o^MiqqyAl$*&UcP zxZ_B!R{E%kn$j4})pD)xo_=Xo#l$oDW4^kvNCPSBvdhnI{TBLbMZF~a%iD<>|3=m4 zuiuRFTehf=WtdD!C(Wk$kpXD|DNb!VI;gWxyrNGh-X&wxw#grkU)o#$(UKwL$J)@f z=*cj;+%9SC+X$cA`8v|Q+?Mq5`Q>EGt;T2%mrjlBa7oN`pG5o9!-FX+=3$-n@@)J$ zUXE<8P9%S^`z^(UTW7+9iUG;uaBO(%`mCx-ks8@_MwMJW<5aJxKGkMiSV$Sz4$`qL jY`tytJK1$|N)cwS3Ts(ek=!ZFN?dc^6wN%`{lESK-&#-* literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/CLIPINF/00013.clpi b/tests/fixtures/disc24/CLIPINF/00013.clpi new file mode 100644 index 0000000000000000000000000000000000000000..87592071a5fb09e25151e9a3c4d7a8a02812dd2c GIT binary patch literal 1140 zcmeZp@eMODGB99ZV7LRs-xwGeeHa*63V>{MumLE?2o{X)ZD7#mK$oXKU#`Ie=zM(k ziZOs)%*Y@BrX{DojF7xNFA%6D2qweKARs6zod^s810(=4RFFZm!7!^J4@nplP7H#K zqRoj|#2FZv6@aEP3J5Z=Fic>m1}fzPhM5Wj16wMP&BDOQmd3zX9M8bmmd3!Ougk!6 zES-V*d;tS9TRH=a-f;$&whRU~lXDELK$?T;2?HBjCIiR100wrqOa?9)2L=wdECz1% z(+nKPvKV;$+ZZ_8vKe>_Lm0T&vKjbn<}z@zmct<6dzpc!Er&sf;|~Kb zTP}l8?F|OLwp<30j0Ft*YSd5%D`rs45@L{O zD`rp<31yHxR>GjXyM{rEt%N~Ecq4-hTPcHD%s~cOAg!TumO-|yj6qYllR?g{j6utL zukzdf*cB#Bu-RUOGS!FIAmuS&>zQFQ~ z-f^o(eH}JVKdfxMUBvWUn-%Pt53V+7FgfRVZ^cn#d-0tn6MLmh|1mu=k4x*bh*%e3 z>GX4w)#j9U*7b9{ZS-#z*-FSb*q%sGuy;Fr!(h4kX(RS-dE@lA3r&vsx0$JJaxiZf z^RYNt7~=W<)OqhLo4G!x)}QgyR%-LFou=Y2`O{;^S-zK@CH60IsWdw0TG*0j=6hv@ z*&mKS=4%`mT2$5E&|LReOsiI9mbPr9g!Rw)dba#O?Dcvw7TDjrvC+`ir_|VuY!f~s$OY3#%FQ=q!3w7J|miFBCzxlpJ(IcitNo3M$ zr6boCEB`d@Gr3ypVVb^1z|8seIddird5yZsXD#pj*r;tEbJzO+p!Q^@;X+r*XfLrZH=ul=K&WJAFW>1g6>c=pA%Qjx!GhjsjHA*#w&>rDSw%rUQh{lnr; z%t0@k3rgN|T~vI2@2K&M(mCtDYk{1jv~Z_Wb;}{=+g}S^9(nH-y|d&xDE|Ne0%|Hk literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/CLIPINF/00014.clpi b/tests/fixtures/disc24/CLIPINF/00014.clpi new file mode 100644 index 0000000000000000000000000000000000000000..5c8d2ee1833f43932bb11bd077b7e4ba2fd9c1a4 GIT binary patch literal 1204 zcmchWdrXs87{;H{@)awC7FsA2>(`c+UZDMYp%)4?A^4%m3}ecrb~q*B4`dl`$SSB< zOD(A2)WJYBpiz^BMPND*ShBfW*-Q*h9YZ%4bzv-l5EQ)N61Gp0CB`iKb8m9;d(U&; z^PV?Pa@OXqFQQBo1>hHEJqB2>0-Sy(e>oV9#ab3UEk0PMzwf2Kwaobc^=urL zCuV`a%!EJk#fcd|Lit+3%fT&|~4p?*@!uWo$g1ZprJC87i99Ie0#BPL>U0{cHgQyw; zhu#Bjz6zYs9z+p_h$FhH;L3yh1b}uBR7K48>JuLU=Y&IlZatRmiZ7%G(whJkJw-%G*byFLyN`F?*hlTR9vB``?_X2=`PaqtO;tmxk-KSXNxn)` z`-NCLVNj;pyH}+hkFL-!?v;}6S+8tp^RPlZ)|y=FnpEEE8&0v4h3bwY)0#z=ROf!@ zjnv_LXS2lxlxyc#_sCnOX}RM}lcGbYwLA?}T1ytr+J?*5XyV818Sl~Ey79sJG+RoS zzP)|K^_c577J1q7!Ko=rd~sj8_q$ltxFcU}?djFDOFY^q&Brr~m&(!xtIUSDyE4*S z&@cPx%kRxr$PnI+nfu^iL8z79{oUsgcQ}Dlhw>L$ZwWjwphk` zm2IvQ*2#XqeIq%jxo~vJ8Oy$tSzVKtbz`d3Wpb~kj$O%-&1V%THuSEyT#)OnF|D7c zREKBSZ`90d&6BgbV@0E>4@b+gH`r8$iyy6##fVGg?>2pFzW#JhX|DK9^}+2*+rxGD v9j}c9w4Z3}GTEKgS=)J6_1AXYA>}ib#-r{e(}QoEiqp^XggF*J^N;X189+Zf literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/CLIPINF/00015.clpi b/tests/fixtures/disc24/CLIPINF/00015.clpi new file mode 100644 index 0000000000000000000000000000000000000000..a7afc5c85c31da597137fb6d4ba000eb09f8feba GIT binary patch literal 1204 zcmchWYfMvT7{~vImct!NYoWGWdO5uuZ0QY4%jJ|!BA%t>H#s9iQcNaD7j%QD%KWQj4$KJH20{GRv! zKDRu{TVDFYW}Cxi1Mt0Y76GCH5Dy9d^CoBnu`IrHG=RLalIH{d_j^{LTp0hq+NNQ7 zVgiz7Dhoztlt=T$LdwQ}UPO?j%2n0E25isR)1s-62kd+H?|nvox+kO(@}}y4(E-tR zp(-Isg%~4vQwU8KcJ>-TekAxpSFQyZ)q`ML5Je~uMIM7_?GZ$A#~{|tLBzEpdcGMV zz7^#92M`O4mDVDfJdW7L8z2S7mnuPWCy+pS5ksCpqWC^y_#l!hO^9WKNM1dQIQAq` z9y5sJPC`<{Azq-A4kMob7}EACBnVuw)q_O#6y%-`B=V<_rZgjoKaKRcNhFh}p{Phe z3fTr_k^&O84H?WRBwRZ(hIB|3n6>W~q+|!O*YS{Y9Z=gXka3;RJXAo&cS7q|VTC}7 zYJi;l1XNIlG=YXq`AFlsV00cvI@tx2%!72k8?=8B3bq?LzG19nLoi3Xq2xlyb%mki zdyqSzf=Zxm*G*)wy|9;0A%pLQgT97Lz7NhptGotc*VQe%P3)+i9x(K;ifKJ>ew9!Z z^Lt;n8fHt?&1;Wnem*~~V|8v#C&rBwf;fjp(`HqPmVaIEcC7Q zjI>rGZoJ{x`Rjml!mrTlry0YcQl&96(npt3-kkp67PDAqu`NO0c$?3~_bzF_F- z{K}0a1-<>9KXS$vHkvh6q2hzrD|6?WQFY0XPScY;;3QfcRP|Dwer(?@qx#3+O$XQU z^qsM;!VCA%LzF{*n!dkki zmfWRay{#(Rt+`yc + + +TEST DISC 24 + + diff --git a/tests/fixtures/disc24/MovieObject.bdmv b/tests/fixtures/disc24/MovieObject.bdmv new file mode 100644 index 0000000000000000000000000000000000000000..33acbfa26e8b9e721c1a538d3da8348f1acc490a GIT binary patch literal 5154 zcmeH~&rZTX5XNVLg8w1WgYl#sJZVx*jMs(}F)_j$aPUD^pTI}pQ8@ZQ#;fj3zwJzG zfO<1=mxO-%%}m+-bqeM2Y4VWY<~eO0$DfiiS`c+-1-V!-_E8aCyoi?Ag6Mu)bYjq* zm$4BWrrtqI4YU+NcTIj4bj5WdnBd9HVaS z`|jQPiJj5_JAMYP4f9)(*wx7B1nlHLj=Hw*+?DlH-zg2S+gGPl+INXvlTDn1-9enk tqha?JJwB$sQyO4*s7|R8yC#vJbFe#VMhv?T8%uqsG{A1CPN~|k`v!xp=XwAD literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/PLAYLIST/00000.mpls b/tests/fixtures/disc24/PLAYLIST/00000.mpls new file mode 100644 index 0000000000000000000000000000000000000000..cbf16f4b01a8f8c5532dd69103d0e40ad75fa695 GIT binary patch literal 280 zcmeYb@Ci0BGB99ZV6Xz>7eI^)@G&r=Nv#6%nSeOJ00exELV|%xxK)A!xb?g?*zEuN z-vOpUkAZ;^NjE2>fFMMQRXP#K;ADhy8CV+(vkLMcCK|#_)bmi`c7At~ft>;q85ndJ bm_a@Ox$pmfuHMgvBbI2xM?FLb(jA4Tf0-c|bl?Eo*Zkm@fp? z$vOeZ1*#W<$xlelO9$~mwg3U^gsO~u5T6;1&w|1SsulqYuucS-2Lvh%ARUYhG9bSg dgZ;t)bUMU0ED*&YbpjwS0u=&%`Tsvi000c~Cy)RD literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/PLAYLIST/00002.mpls b/tests/fixtures/disc24/PLAYLIST/00002.mpls new file mode 100644 index 0000000000000000000000000000000000000000..e19fd51f225fd89b3cd37fc2e2189223aba24234 GIT binary patch literal 740 zcmeYb@Ci0BGB99ZV6b9fVEh22aRELCMxYc6LYi?Ckj(@XJzxL?roKiY!9WhTQ|AUr z;lS4jbwJiUpxI2UApKy#$tWNQVX;al0vVi)P%Z;&gJD)d9*_@J%i5d><_kfTGq6qo za)IiFVDb}E^U^_lCa8H6sxtCHd}cI0)ZMHQd7x?$umaYJAoCzTFoXI)lK*6eq{NP! z91tZCg9f_~7#LI-Kz?RqkO9Sp3D_^-=$ZZJ0OK4MgkL@|2m)1sb3lv>@G&p~rC5-pCji-uK$u_v1m?a*A;Cb7RIk(wX}PTH zNa`3E?0^bEDxrXrQ9uyFWR*??GB_EbTn5$#!>oclP9_Eh5wHT*i9jxhrNY1rBpDfG sfL0kAg6(2pU}9jL{pSGV92SUTkUBY#AOqMH|NnyoKs;&LU5_9<0L)+-wg3PC literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/PLAYLIST/00004.mpls b/tests/fixtures/disc24/PLAYLIST/00004.mpls new file mode 100644 index 0000000000000000000000000000000000000000..1c62b8032304ee45ac0b5983284cfa8a32407b56 GIT binary patch literal 240 zcmeYb@Ci0BGB99ZV6Xz>b3lv>@G&p~rC5-pCji-uK$u_v1m?a*A;Cb7RIk(wX}PTH zNa`3E?0^bEDxrXrQ9uyFWR*??GB_Cpp>nLviCG1CoJHq)$ literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/PLAYLIST/00005.mpls b/tests/fixtures/disc24/PLAYLIST/00005.mpls new file mode 100644 index 0000000000000000000000000000000000000000..c098212e37c0bd88f52aaf1eb8934ecdc23e3cf6 GIT binary patch literal 240 zcmeYb@Ci0BGB99ZV6Xz>b3lv>@G&p~rC5-pCji-uK$u_v1QxzVA;Cb7w9(WDvf}Df zk<>9T*Z~!SR6+qKqktfU$ts-)WNb3lv>@G&p~rC5-pCji-uK$u_v1eU%=A;Cb7$m^>IWP|UU zBdKFxumdUtse}SfMgc(xlT|tq$lzpzav4|~46_RIIGGq2M8FDICjz-3mI?zikYr?# t0a|5f2)2uXfr)`}_MZccb66mXLF(i{fb3lv>@G&p~rC5-pCji-uK$u`)U|?wAYZMX;v z%|lYhz+eYd2vP|JoQwj35GJd1B9Ot!2<0-cHW+3V^}z>=deH&gA}+hh=c3_x#ItSkVY`?0c$OS$77NE4T(2T;v<5` zE4RW1iRZH40Ew5+{Sd+9vkpFn#G9_N8HxAywHt!RFFVT{iI?lP42ie0!yLgA;G6gi ziFZvs8^IGa)^SDRO?W7R#JkhYg5U|I%+^KXJ(!w{;0c@U+KR+myxAIw_y24qga-ge C1!MLA literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/PLAYLIST/00008.mpls b/tests/fixtures/disc24/PLAYLIST/00008.mpls new file mode 100644 index 0000000000000000000000000000000000000000..ce3db43ee34fcfd9fd7dd247ef31af3a25375dc6 GIT binary patch literal 240 zcmeYb@Ci0BGB99ZV6Xz>b3lv>@G&p~rC5-pCji-uK$u`)U|?wEYZMX;5Axu{3L?DBc5z1v?Z7|F#$m3*UU=RT-V4Vo$f>b3lv>@G&p~rC5-pCji-uK$u`)U|?wEYZMX;5Axu{3L?DBcQ4lJ}+MJkGkjKfyz#sxvz&a7g1+i2Zn1LiC sgAB+nL$F;83``7+v;Q1moWlZ93{oct5@Z0o;{Sh;0GKy9YbJyT0NaNe*Z=?k literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/PLAYLIST/00010.mpls b/tests/fixtures/disc24/PLAYLIST/00010.mpls new file mode 100644 index 0000000000000000000000000000000000000000..9bc110af88a96efc68dd2f4e874864c475161fd5 GIT binary patch literal 240 zcmeYb@Ci0BGB99ZV6Xz>b3lv>@G&p~rC5-pCji-uK$u`)U|?wMYZMX;1_nEzLXb)*;A9jKgfLm96M+m)MktqowZSl}Adi!Yfk6bUfOR5}3u37-Fat?O s1{siDhG4rG7?>CsXa70CIEMwI7^F@PB**}E#sB{x0Wj~@yBG)$0C#j8u>b%7 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/PLAYLIST/00011.mpls b/tests/fixtures/disc24/PLAYLIST/00011.mpls new file mode 100644 index 0000000000000000000000000000000000000000..785d9572d75c2a48e723ca856d17cd6c4fe50007 GIT binary patch literal 240 zcmeYb@Ci0BGB99ZV6Xz>b3lv>@G&p~rC5-pCji-uK$u`)U|?wMYZMX;1_nEzLXb)*;A9jKgfLm96M+m)MnR|?Yja{&K^`X)1A_=y0qaB{7sOIwUSivRyX0$|>)cQFti0E(C#b3lv>@G&p~rC5-pCji-uK$u`)U|?wCYZMX;5Axu{3L?DBc5z1v?Z7|F#$m3*UU=RT-V4Vo$f>b%7 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/PLAYLIST/00013.mpls b/tests/fixtures/disc24/PLAYLIST/00013.mpls new file mode 100644 index 0000000000000000000000000000000000000000..ce5310c60255d33c994b202febe5210df2ff983c GIT binary patch literal 240 zcmeYb@Ci0BGB99ZV6Xz>b3lv>@G&p~rC5-pCji-uK$u`)U|?wCYZMX;5Axu{3L?DBcQ4lJ}+MJkGkjKfyz#sxvz&a7g1+i2Zn1LiC tgAB+nL$F;83``7+v;Q1moWlZ93{oct5@Z0o;{Sh;0Ej1LrRWdg0RY(?8RY-~ literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/PLAYLIST/00014.mpls b/tests/fixtures/disc24/PLAYLIST/00014.mpls new file mode 100644 index 0000000000000000000000000000000000000000..a36b9fa675a26f86938f09b2f72676c446a00207 GIT binary patch literal 240 zcmeYb@Ci0BGB99ZV6Xz>b3lv>@G&p~rC5-pCji-uK$u`)U|?wKYZMX;!49Ypq!J1^83hC(OjhYcAcK<;%4J|}Fw82*<78rB5CJP-oe1QDSSk$6K$4L` q24t5Z*e(VJCI-gYe-1FtVSy+HsgnZb3lv>@G&p~rC5-pCji-uK$u`)U|?wKYZMX;!49Ypq!J1^83hC(OjhYcAcK=p5Gu#ooS0RR$H~ONAOcpvIuXbPu~ZnCfg~e? r49G4+uw4ucObm>({~TbP!vawZQYQxzWB|M3|9_AGnAg+J58(j--xnIk literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc24/ics_menu.bin b/tests/fixtures/disc24/ics_menu.bin new file mode 100644 index 0000000000000000000000000000000000000000..7ac77d0e733433d8eddb8726dfb050236272c048 GIT binary patch literal 10784 zcmeHNNpECV75?shuLhTAw`ccYyW2gu2NEE32nm?EAq3nENthuJhJ+~$83+kwnr%x+ z@B>gJj7@||<1FztINmdoqOuM zbMHCdNj2K#ofANN2kX;20BZcnFXvz&|2fxA|KfO2_VVkgD;srCMNF8hJ1FEme{3SR zL0+%Oiy&`Q94^`y#Aa98r$(8uf2s+|hk;t1tF21Gmp&%FEQh6)L#kW*G z9OU9#Djx}Q@vT5|B|eM>9r3M9b4g=JvKOHz$%HZ^-)~U#QCE_jql3dzu298yKRT@5f#IyZkHb z@)DhxVroB;#}t$MQ~j7?!xecLaNC|F>w6N z!mM0VUH`&RTi#LrMDO5VsZkIV5sq7?1~bXewR=xNv%JIJuXl*9L7i~aY4Ej49Bw#& z*t}{s97>ClPZclNm-yVL`7_BpAL8?D5e~ydi@7iRsxG;}yyN?}{GMH5KdDZ5-xP)L zzLmTmN#2ji`}E54x)xol(X|>~8zCG<35PM_;9RR))ajkMkAbVxy9rEToN#ESbl&+m39M%Yj z)5O8KHfAwK@5;LvxFgK8X`Z-e2#2$T!#N`LP8t*mTt~}3VBj?S(g#5MMH@V2dj z8^=1~aGr3uKpdQF69yAPPX3JFYdK&^NN9uOZO9-Nk4aCHNwUE4|J^DoQWnwvpi z4#Ny~e|=s(!#r;>&q&*~!YA}1ZN83hcs=282a!hF9wzjyLmnbMD_Y^`&@m1c@-Q#p z4TQsG!r@NhFwFZ;=*}=N8Z1gxvUW`=5ou9JZO{|3&6AGLD0VSQM8X40t@_hw$zX|A z?H}w(9z}{LVmc0sfnx^8_-pZ3Y6*=JbZQ+p zI8Lqdd1?u}5!^-OwoVwFpcdK24P`&VfZjypTFVB@vf__P=9UBQ#@!XI6@wLO*+-}) zj74w{k=t4|Sf!SkrIs)n!JCO(>!iU+YO$H$RK_E$=Pg98b;{tB*!m|ADVtAY$}lvGV?Yf*E(ZxM*K1)8A2`uZzpoCvj%6WRo^T| zm3#;Rc?XeeoijM+R~%JxA_V1~M6R`Nu%75vS@AFSm&z%GSG=3Z zwJsQ3@V0I$=Mdg;g~+uo8eCK@+LB&I@E#)9x@2%kv_LKCbp-DvGA->hsIz-HXIFKf z@m3uGOVc3(UAcM>fQ=s+>j0ReUh2x&_*MhpFfz7VOzaw05KrzU9NtGb+(*O_INEAY zN5<{?pNcKDE%x6}IDCL`*d*c|HQrG$3uGMG#&zBygJ{83!r_C2!-t4?N0WDys2RwV z&^*LDLG)*-X>?dtj?j`ce+`aiKS?-zig5Te z(VwLuqqD8@MOqSC)8zE%Glauu35SP>{w%eO&Y^0*pe3O!LyYC;2#3!T4i6LkSsFGv zHe!Bk>!4YN&0iq0gvW^SXHU;Y=$RwVg&gvhl#VFsVzb|lPrl*qL_xrO~Z_f{ac z_zID0c_JzqdLt51e3i(xJZVHRLB9fN#Mg*i%M&~lzoS+lc=$SzYt52>`8~0%<5?Ne zeuK!h<_v^OuzYUm_*O=^j}f`nywN_me2iK$RTX@b$h8)Xws9=7TRL@>$?La>T+6p0 zs69+AnaT>jP2^g>rGQjunp+%@4qgHGYp1>0ot*=UQvvv55$2+Q~`k$b=5TLd0x>ue4@I#%=t z9QSIxoGboUiUv!>K8i-GEyZz=q9HMqAM=WfMt4h%0g6U}oQZ%|- z3Vo~=4e4P8o#o)LX!v6SI4l}5692D7<7qryDH@^i(xM?vm!P9)_~L6b(I~<*Ouu&I39W1a>#uWDy>nS|L%jFOG@Y*%ybyUdK0) zA#{#!0z=U8jj#j3_lUfo3Jify`Nl3ocm~f@v?4=zfYFK!;aNOe(FzQqc#c}~tq{TY ziG0Pt5bS@bCEpqmw253RGK9;FS7ZoV*s5rS!(Mw?`Lc)L2SjcwFofE@Tro0)Yq(a? u3JgJe*~kz&4haN?z~^{#mmzfavVkFJFDvXo@IxZ^D=-8-mLfywSnh`gtL7>ZXe0tRi9jn6xJv{&i9jzA7$gD@iNI4LFiHeo5`jq~@RlD2NeAu# literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00000.clpi b/tests/fixtures/disc25/CLIPINF/00000.clpi new file mode 100644 index 0000000000000000000000000000000000000000..12b474d060874d75f5ca569517e3af940982c368 GIT binary patch literal 496 zcmeZp@eMODGB99ZV7LRs-xwGeO@R0fkc|#D0L2->g3-MV44fw(pevv|U#`Ie=zM(E ziZOs)%*Y@BriB`+1%xIiJ_Ks9g2^y32ndQwCjvvj011E$6=V=?Fw82*LlOps69{Yp z>Sh!WWME;CV2}aw`G6Q0ZY&FcGz$Y`%R&Yw#WxI0M;0+KzZ7C%W?96*;vx&giy7E> zPBO3_S;D}f_f6m%1B*~t^giJ&+YW~s3)~5toc%cb^RbtaL5gppHr0HO5xV|Aw%C|8 z?s6YbfbmPAz)3E$PM_whikSRfFFG}RmAUZ7rxpb~CoM0eU$izjblqm6>>b;W6%XwL fFTXR`p!dy4p!1J$!BZBKiw+!O!m~wzZesudS|n6F literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00001.clpi b/tests/fixtures/disc25/CLIPINF/00001.clpi new file mode 100644 index 0000000000000000000000000000000000000000..a90358d2247518fb78cd19071239d5e119c66bdf GIT binary patch literal 556 zcmeZp@eMODGB99ZV7LRs-xwGeO&A!MG=OY$umLE?2o{X)ZD8Q(bU;@?cfMSM2hjQW ztQBJbyO@zd089%_j^zx8JGmGF)+0(V_^E&z`*RX zjDbZ{kAa0{IRk6?8wQq^Se|`;#9Al3+NS5Ywe4H8GxolVtqs;N&NaN?=PmSN-Zl}BUmI1A shAvQ7-LONVg?pdmwX|c>W(Uv8OqaPO$69eiKK1flfn|D6fc|0t0RFvX^#A|> literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00002.clpi b/tests/fixtures/disc25/CLIPINF/00002.clpi new file mode 100644 index 0000000000000000000000000000000000000000..89b52c15bcc59032e9fd94bcc76cbff558a23150 GIT binary patch literal 480 zcmeZp@eMODGB99ZV7LRs-xwGe*8nkyjSe;d#TmhZ(Y*}}4A}?J70{h8*WdwkK0a&3 z7{D%OWDtPRv;Q1moU>*tP|GHm3_F8>pr~{rFa!*c0LV~52GIt?tb#lwVNf_R2r-CG z019KM7h)8hkeZi{Db6H1p(-OEQ=A!xI16@hpw&7+S2GF-GO#dkFfal6d_XJ$#A!gx X!oc8=&cF~bRs9D8izko2!rUvtb#lS10;ZKC;$Vy5O4qh literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00004.clpi b/tests/fixtures/disc25/CLIPINF/00004.clpi new file mode 100644 index 0000000000000000000000000000000000000000..1898dda0e09d8ff478cb1cdba8c67e65beb7ee77 GIT binary patch literal 292 zcmeZp@eMODGB99ZV7LRs-xwGeWq?=#$VLYnfa0uR!RX!w1_o9IbOm(h%QbiaosZ92 pF$PAEG$Vrmgr5E90OK4M5ulI~Ooov`gh6y-RzV(v0TMtq6aZ8L53c|K literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00005.clpi b/tests/fixtures/disc25/CLIPINF/00005.clpi new file mode 100644 index 0000000000000000000000000000000000000000..50041ef65ec46a2a9645bc67bd45531c34b5562a GIT binary patch literal 21380 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 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00006.clpi b/tests/fixtures/disc25/CLIPINF/00006.clpi new file mode 100644 index 0000000000000000000000000000000000000000..6d63c6867a82dc5ec8c54c23b49ad0b87158c1c7 GIT binary patch literal 292 zcmeZp@eMODGB99ZV7LRs-xwGeWq?=#$VLYnfa0uR!RX!wAgusq4^}z>=dg$Xg_K}2j0_?Sq7$kI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBSpePUk0HjS22mk;8 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00011.clpi b/tests/fixtures/disc25/CLIPINF/00011.clpi new file mode 100644 index 0000000000000000000000000000000000000000..5b70bc3d9714a0d01eea19f9ced0e971149832c2 GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=CWk&=t^~FW2A!bUr?7 z#TXbt(u@oO5PJ5X1B`Q6M1Vp{Fd3knpr~{rFa!*c0Mt+gpejZIK?W8e1ew4G#5_Qp N2E;7xKY*e@005G15e)zU literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00012.clpi b/tests/fixtures/disc25/CLIPINF/00012.clpi new file mode 100644 index 0000000000000000000000000000000000000000..89ed28c7e0fd2389271ab32b623444bb7a25a1c1 GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=CWe=nCl0muv6kI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHB-~at$6p=i_sM z7y~0nnvp>OLeKtlfN>6s2vA4~CIgfc6qQZ{hJXPQfEua*RK+MD$iM=GAQSk2mkI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBkI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBkI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBkI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBkI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBkI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHB-~at$6p=i_sM z7y~0nnvp>OLeKtlfN>6s2vA4~CIgfc6qQZ{hJXPQfEua*RK+MD$iM=GAQSk2m&=t^~FW2A!bUr?7 z#TXbt(u@oO5PJ5X1B`Q6M1Vp{Fd3knpr~{rFa!*c0Mt+gpejZIK?W8e1ew4G#5_Qp N2E;7tKY*e@003$d5XS%j literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00054.clpi b/tests/fixtures/disc25/CLIPINF/00054.clpi new file mode 100644 index 0000000000000000000000000000000000000000..6b033b30da9c397c6b41be93cf2f3bbc8c8a502f GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=FIa=nCl0muv6&=t^~FW2A!bUr?7 z#TXbt(u@oO5PJ5X1B`Q6M1Vp{Fd3knpr~{rFa!*c0Mt+gpejZIK?W8e1ew4G#5_Qp N2E;7tKY*e@003$d5XS%j literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00061.clpi b/tests/fixtures/disc25/CLIPINF/00061.clpi new file mode 100644 index 0000000000000000000000000000000000000000..6b033b30da9c397c6b41be93cf2f3bbc8c8a502f GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=FIa=nCl0muv6&=t^~FW2A!bUr?7 z#TXbt(u@oO5PJ5X1B`Q6M1Vp{Fd3knpr~{rFa!*c0Mt+gpejZIK?W8e1ew4G#5_Qp N2E;7tKY*e@003$d5XS%j literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00063.clpi b/tests/fixtures/disc25/CLIPINF/00063.clpi new file mode 100644 index 0000000000000000000000000000000000000000..902cb8e9bc27eee8c0c82f2b727892951210f2e2 GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=FIe=nCl0muv6kI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBSpePUk0HjS22mk;8 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00067.clpi b/tests/fixtures/disc25/CLIPINF/00067.clpi new file mode 100644 index 0000000000000000000000000000000000000000..b1c44154e4ace062aeb14dbd331e279234f349ac GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=FL3^7QA+HFyA>kI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBSpePUk0HjS22mk;8 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00068.clpi b/tests/fixtures/disc25/CLIPINF/00068.clpi new file mode 100644 index 0000000000000000000000000000000000000000..3310360ac040752886d1617d9e4c0a80c2a11b08 GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=FId=nCl0muv6kI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHB??C@P%@3;_cq05wzrsEScQkbwmVK_>74F%J-@ N0WpjD51=Rz002sS5V!yU literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00075.clpi b/tests/fixtures/disc25/CLIPINF/00075.clpi new file mode 100644 index 0000000000000000000000000000000000000000..5171cbd3f2b10b520304cf360b48a79eb612e19b GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=FIf&=t^~FW2A!bUr?7 z#TXbt(u@oO5PJ5X1B`Q6M1Vp{Fd3knpr~{rFa!*c0Mt+gpejZIK?W8e1ew4G#5_Qp N2E;7pKY*e@004}<5cmK9 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00076.clpi b/tests/fixtures/disc25/CLIPINF/00076.clpi new file mode 100644 index 0000000000000000000000000000000000000000..111ade7f9a319524d5f567f5bfd3a7dc22708adf GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=C}O^7QA+HFyA>kI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBkI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBSpePUk0HjS22mk;8 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00079.clpi b/tests/fixtures/disc25/CLIPINF/00079.clpi new file mode 100644 index 0000000000000000000000000000000000000000..1982c1ce77cd4ca8221a9af04b2ad8a7065ea61d GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=C`y=nCl0muv6kI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBSpePUk0HjS22mk;8 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00081.clpi b/tests/fixtures/disc25/CLIPINF/00081.clpi new file mode 100644 index 0000000000000000000000000000000000000000..111ade7f9a319524d5f567f5bfd3a7dc22708adf GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=C}O^7QA+HFyA>kI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBkI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBSpePUk0HjS22mk;8 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00084.clpi b/tests/fixtures/disc25/CLIPINF/00084.clpi new file mode 100644 index 0000000000000000000000000000000000000000..5171cbd3f2b10b520304cf360b48a79eb612e19b GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=FIf&=t^~FW2A!bUr?7 z#TXbt(u@oO5PJ5X1B`Q6M1Vp{Fd3knpr~{rFa!*c0Mt+gpejZIK?W8e1ew4G#5_Qp N2E;7pKY*e@004}<5cmK9 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00085.clpi b/tests/fixtures/disc25/CLIPINF/00085.clpi new file mode 100644 index 0000000000000000000000000000000000000000..b1c44154e4ace062aeb14dbd331e279234f349ac GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=FL3^7QA+HFyA>kI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBSpePUk0HjS22mk;8 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00086.clpi b/tests/fixtures/disc25/CLIPINF/00086.clpi new file mode 100644 index 0000000000000000000000000000000000000000..c9e9ddff245d3ea43c79831fe3e17790fe75cd97 GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=Av|=nCl0muv6kI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBSpePUk0HjS22mk;8 literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00094.clpi b/tests/fixtures/disc25/CLIPINF/00094.clpi new file mode 100644 index 0000000000000000000000000000000000000000..c9e9ddff245d3ea43c79831fe3e17790fe75cd97 GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=Av|=nCl0muv6kI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHBkI!B) z21bxHBZB~hp8e+l;~W+dppX(w1}G;eDxC-n0RtoeHB&=t^~FW2A!bUr?7 z#TXbt(u@oO5PJ5X1B`Q6M1Vp{Fd3knpr~{rFa!*c0Mt+gpejZIK?W8e1ew4G#5_Qp N2E;7tKY*e@003$d5XS%j literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00103.clpi b/tests/fixtures/disc25/CLIPINF/00103.clpi new file mode 100644 index 0000000000000000000000000000000000000000..902cb8e9bc27eee8c0c82f2b727892951210f2e2 GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=FIe=nCl0muv6??C@P%@3;_cq05wzrsEScQkbwmVK_>74F%J-@ N0WpjD51=Rz002sS5V!yU literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00109.clpi b/tests/fixtures/disc25/CLIPINF/00109.clpi new file mode 100644 index 0000000000000000000000000000000000000000..3310360ac040752886d1617d9e4c0a80c2a11b08 GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=FId=nCl0muv6??C@P%@3;_cq05wzrsEScQkbwmVK_>74F%J-@ N0WpjD51=Rz002sS5V!yU literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/CLIPINF/00111.clpi b/tests/fixtures/disc25/CLIPINF/00111.clpi new file mode 100644 index 0000000000000000000000000000000000000000..3310360ac040752886d1617d9e4c0a80c2a11b08 GIT binary patch literal 324 zcmeZp@eMODGB99ZV7LRs-xwGeWq{ZL$VLYnfa1(xL76!g3=FId=nCl0muv6 + + +TEST DISC 25 + + diff --git a/tests/fixtures/disc25/MovieObject.bdmv b/tests/fixtures/disc25/MovieObject.bdmv new file mode 100644 index 0000000000000000000000000000000000000000..46f30df56d9c57fe97fd97b9ac9d27d5b9169b9a GIT binary patch literal 1350 zcmeHG%WlFj5FF>xKraXhDz&E;i5rKgsyIiS5E26ZAfMv?Nk4@@E1u16yHrAf8;3el zG8xaVcgOa2x7yV2b&cLpzKEn~fqdT}SimeA0^UAhKfs;fN5^L#(x3;R4mbx{q;=26A=McN zN3RiYJ3cbc&7RMqEaCU-LzoLMtyyNjfM>0n|F&oMd={lP7TY)UY=sCEeOk_|k3SdF VV*cFSf4|fi^-C_idBv~y>jcvwL7xBs literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/PLAYLIST/00000.mpls b/tests/fixtures/disc25/PLAYLIST/00000.mpls new file mode 100644 index 0000000000000000000000000000000000000000..9541ca8ed3b356138af16b7ec2aa1b7bec67272b GIT binary patch literal 280 zcmeYb@Ci0BGB99ZV6Xz>7eI^)@G&r=Nv#6%nSeOJ00exELV|%xgc_;^geE6GwAugn zzXMEz9s>g-l5S2$0YQiqt8^le!N~~aGO#unW)T z2&$KLLTX+*hz~Lq2v{dnW#ohS%xHWT6h2V32v~r1BFH=-P+|NlV(VBV6;h6o;SoYz|fkI&-VOazbLu#*Rg_hCssf+sln Ol_i2F6jgo!!UF(Ej5_WB literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/PLAYLIST/00003.mpls b/tests/fixtures/disc25/PLAYLIST/00003.mpls new file mode 100644 index 0000000000000000000000000000000000000000..10c86ebf0ee7494bd38ae6e03e530737c819e5e6 GIT binary patch literal 10482 zcmb{2*-jKe7>41RVMZMn1jQBH0C&Zz>Zyap5O znK76z#{a{6f1z?aQz4wXcn#l`-||G+{a~SHIrXstpYGPR-%P>d>m5>AleWy!7d#=}j!~ zi6uSJS$v|yCwhEhhEELm#E4H!_(Z%Jhd1N!W<1`E$D8qZGahfo=xe zfHxEHW+L89#G8qDGZAkl;>|?7nTR(N@n$04OvIZ>cryuaCgIH_yqSbIlkjE|-b})q zNq92}Zzji^$?;}#yqO$tCdZq}@n&+onH+B>$D7IVW(vHS0&k|knGST zDez_ryqN-Tro@{m@n%ZAnG$cN#G5JcW=g!75^tu&nn{jwE4sFJmano0=m(v`VyEv_{kttre{ktru+&^@}!&21J9RO`^@B zA<-7mR?#-mcF_*ePSLPvM6^q^TeL^CSF}$wDjE}wi}s5Shz^Pli4Kd7h>nVmiH?gV zL?=X6|TIni~|4bi;lrs$TaEm{!W7Tpou72Olv7d;R?6g?6>7CjL?6+IIzik^#Jh+c|b SiC&A|h~A3ciIzm~|LQlN<9w+A literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/ics_menu.bin b/tests/fixtures/disc25/ics_menu.bin new file mode 100644 index 0000000000000000000000000000000000000000..879f2454a4209fbc8b936d86486514d309da463c GIT binary patch literal 3703 zcmc(iNp2)X7=_=TnKih|uDLwVW~PB|Xa*sKdIMsEWLB)$_5vsIj-P6n(PgBm$1vIDBW*AU?Quv3(?^e@Q0LTTd;WXU zpH*`F{iO?Mt`U3AA5h*?s(fLX?T#omtSjvLsq%xhM5BY%VcL?M{aq^ zpm0ZV9`E2+7&)K|1a*K-neSisS8(mF`n06_x~ zGz51it(&QfI{O&ox~Q9IrcDsE1%gH(Rp$#2)2`Z#bMtDm{)=(tV(8V#V6(R%%>ap=++VxbwA9OWUZV zEwx0{HVE1Q=`;O*r42F-P?!INaRXG%xbA|WJrJ}HQgwcGxp8^Ay^>YdW?Z`Zo@T4Y zqfx_J+AvBR>Hq{Cf}kUCchWX9ZK94d?i<#>u}POY20@yp`DL zmvQ=W1ttAiOMl+dU$pdh(*7qH9UmkQ)nC-g-7qyxnVEgZ%sfZHt(o=y#mwS~{e;T( zyM|XTBW-4yQ91jA%AOZst;)4`ZI$CLuI5~3!rU~ca`8KrJ)^){mFuU|Rym#-Rps(f zU9jhT&iAtSV=j`7YgMkFe_Q3a(W=VjskAgLsoeRL${vAWt;+QZYpWbrc2&9D*4w6S zc6R<5Z@nJ7j+cO!um6OQc1%0v{=bf~?9u!(XtH)qyRbOpIxro;vTazNfR5KdlXYl1gjE;^t0$!6K4`LzOh>S~ zm-*wEpq`=+K$CTBI)=p@AIDVlWP2SnStq8GlJ!GOJx{(jK$CT9I`xV_=R-2F#6vy2 u!8$XYm1F%D!^#8eP0$?c+;m>DhB3@M(B1+~)`jW9S)!tco#SoLVEqZ(A7Y#U literal 0 HcmV?d00001 diff --git a/tests/fixtures/disc25/index.bdmv b/tests/fixtures/disc25/index.bdmv new file mode 100644 index 0000000000000000000000000000000000000000..cee9035c41e13403bc7e79957f6ae45736b20289 GIT binary patch literal 132 zcmebDbBQo8GB99ZVDJNCd_W1GBwWtO0nTJ#0I`9X5iG<6WPtz^h;RTA3=GU50svo! B1K None: + assert len(disc22_analysis.episodes) == 5 + + def test_episodes_are_ordered(self, disc22_analysis: DiscAnalysis) -> None: + assert [ep.episode for ep in disc22_analysis.episodes] == list(range(1, 6)) + + def test_all_from_same_playlist(self, disc22_analysis: DiscAnalysis) -> None: + assert all(ep.playlist == "00002.mpls" for ep in disc22_analysis.episodes) + + def test_episode_durations(self, disc22_analysis: DiscAnalysis) -> None: + for ep in disc22_analysis.episodes: + dur_min = ep.duration_ms / 60000 + assert 24 < dur_min < 32, f"ep{ep.episode} duration {dur_min:.1f}min out of range" + + +class TestDisc22Specials: + def test_no_specials(self, disc22_analysis: DiscAnalysis) -> None: + assert len(disc22_analysis.special_features) == 0 + + +class TestDisc22Metadata: + def test_disc_title(self, disc22_analysis: DiscAnalysis) -> None: + assert disc22_analysis.disc_title == "TEST DISC 22" diff --git a/tests/test_disc23_scan.py b/tests/test_disc23_scan.py new file mode 100644 index 0000000..9924d8d --- /dev/null +++ b/tests/test_disc23_scan.py @@ -0,0 +1,35 @@ +"""Integration tests for the disc23 fixture — 5-episode chapter-split compilation.""" + +from __future__ import annotations + +import pytest + +from bdpl.model import DiscAnalysis + +pytestmark = pytest.mark.integration + + +class TestDisc23Episodes: + def test_episode_count(self, disc23_analysis: DiscAnalysis) -> None: + assert len(disc23_analysis.episodes) == 5 + + def test_episodes_are_ordered(self, disc23_analysis: DiscAnalysis) -> None: + assert [ep.episode for ep in disc23_analysis.episodes] == list(range(1, 6)) + + def test_all_from_same_playlist(self, disc23_analysis: DiscAnalysis) -> None: + assert all(ep.playlist == "00002.mpls" for ep in disc23_analysis.episodes) + + def test_episode_durations(self, disc23_analysis: DiscAnalysis) -> None: + for ep in disc23_analysis.episodes: + dur_min = ep.duration_ms / 60000 + assert 24 < dur_min < 32, f"ep{ep.episode} duration {dur_min:.1f}min out of range" + + +class TestDisc23Specials: + def test_no_specials(self, disc23_analysis: DiscAnalysis) -> None: + assert len(disc23_analysis.special_features) == 0 + + +class TestDisc23Metadata: + def test_disc_title(self, disc23_analysis: DiscAnalysis) -> None: + assert disc23_analysis.disc_title == "TEST DISC 23" diff --git a/tests/test_disc24_scan.py b/tests/test_disc24_scan.py new file mode 100644 index 0000000..94c1b0f --- /dev/null +++ b/tests/test_disc24_scan.py @@ -0,0 +1,49 @@ +"""Integration tests for the disc24 fixture — 3-episode compilation + commentary + extras.""" + +from __future__ import annotations + +import pytest + +from bdpl.model import DiscAnalysis + +pytestmark = pytest.mark.integration + + +class TestDisc24Episodes: + def test_episode_count(self, disc24_analysis: DiscAnalysis) -> None: + assert len(disc24_analysis.episodes) == 3 + + def test_episodes_are_ordered(self, disc24_analysis: DiscAnalysis) -> None: + assert [ep.episode for ep in disc24_analysis.episodes] == [1, 2, 3] + + def test_all_from_same_playlist(self, disc24_analysis: DiscAnalysis) -> None: + assert all(ep.playlist == "00002.mpls" for ep in disc24_analysis.episodes) + + def test_episode_durations(self, disc24_analysis: DiscAnalysis) -> None: + for ep in disc24_analysis.episodes: + dur_min = ep.duration_ms / 60000 + assert 25 < dur_min < 33, f"ep{ep.episode} duration {dur_min:.1f}min out of range" + + +class TestDisc24Specials: + def test_special_count(self, disc24_analysis: DiscAnalysis) -> None: + assert len(disc24_analysis.special_features) == 8 + + def test_extra_count(self, disc24_analysis: DiscAnalysis) -> None: + extras = [sf for sf in disc24_analysis.special_features if sf.category == "extra"] + assert len(extras) == 1 + + def test_commentary_count(self, disc24_analysis: DiscAnalysis) -> None: + commentaries = [ + sf for sf in disc24_analysis.special_features if sf.category == "commentary" + ] + assert len(commentaries) == 3 + + def test_creditless_ed_count(self, disc24_analysis: DiscAnalysis) -> None: + creds = [sf for sf in disc24_analysis.special_features if sf.category == "creditless_ed"] + assert len(creds) == 4 + + +class TestDisc24Metadata: + def test_disc_title(self, disc24_analysis: DiscAnalysis) -> None: + assert disc24_analysis.disc_title == "TEST DISC 24" diff --git a/tests/test_disc25_scan.py b/tests/test_disc25_scan.py new file mode 100644 index 0000000..b54378f --- /dev/null +++ b/tests/test_disc25_scan.py @@ -0,0 +1,36 @@ +"""Integration tests for the disc25 fixture — special disc with OVA + digital archive.""" + +from __future__ import annotations + +import pytest + +from bdpl.model import DiscAnalysis + +pytestmark = pytest.mark.integration + + +class TestDisc25Episodes: + def test_episode_count(self, disc25_analysis: DiscAnalysis) -> None: + assert len(disc25_analysis.episodes) == 1 + + def test_episode_playlist(self, disc25_analysis: DiscAnalysis) -> None: + assert disc25_analysis.episodes[0].playlist == "00002.mpls" + + def test_episode_duration(self, disc25_analysis: DiscAnalysis) -> None: + dur_min = disc25_analysis.episodes[0].duration_ms / 60000 + assert 43 < dur_min < 45, f"OVA duration {dur_min:.1f}min, expected ~44min" + + +class TestDisc25Specials: + def test_special_feature_count(self, disc25_analysis: DiscAnalysis) -> None: + assert len(disc25_analysis.special_features) == 1 + + def test_digital_archive(self, disc25_analysis: DiscAnalysis) -> None: + sf = disc25_analysis.special_features[0] + assert sf.category == "digital_archive" + assert sf.playlist == "00003.mpls" + + +class TestDisc25Metadata: + def test_disc_title(self, disc25_analysis: DiscAnalysis) -> None: + assert disc25_analysis.disc_title == "TEST DISC 25" diff --git a/tests/test_disc_matrix.py b/tests/test_disc_matrix.py index 1a02ffe..3606d2d 100644 --- a/tests/test_disc_matrix.py +++ b/tests/test_disc_matrix.py @@ -32,6 +32,10 @@ ("disc19_analysis", 1, ["00002.mpls"]), ("disc20_analysis", 1, ["00002.mpls"]), ("disc21_analysis", 1, ["00002.mpls"]), + ("disc22_analysis", 5, ["00002.mpls"] * 5), + ("disc23_analysis", 5, ["00002.mpls"] * 5), + ("disc24_analysis", 3, ["00002.mpls"] * 3), + ("disc25_analysis", 1, ["00002.mpls"]), ], ) def test_disc_episode_expectation_matrix( @@ -69,6 +73,10 @@ def test_disc_episode_expectation_matrix( ("disc19_analysis", 1, 1), # 1 digital archive (hint-backed) ("disc20_analysis", 1, 1), # 1 extra (trailer) ("disc21_analysis", 1, 1), # 1 digital archive + ("disc22_analysis", 0, 0), # chapter-split disc with no extras + ("disc23_analysis", 0, 0), # chapter-split disc with no extras + ("disc24_analysis", 8, 8), # 1 extra + 3 commentary + 4 creditless ED + ("disc25_analysis", 1, 1), # 1 digital archive ], ) def test_disc_special_visibility_expectation_matrix( @@ -110,6 +118,10 @@ def test_disc_special_visibility_expectation_matrix( "disc19_analysis", "disc20_analysis", "disc21_analysis", + "disc22_analysis", + "disc23_analysis", + "disc24_analysis", + "disc25_analysis", ], ) def test_disc_episode_segment_boundaries_matrix( @@ -155,6 +167,10 @@ def test_disc_episode_segment_boundaries_matrix( "disc19_analysis", "disc20_analysis", "disc21_analysis", + "disc22_analysis", + "disc23_analysis", + "disc24_analysis", + "disc25_analysis", ], ) def test_disc_special_boundary_semantics_matrix( @@ -207,6 +223,10 @@ def test_disc_special_boundary_semantics_matrix( ("disc19_analysis", 0), ("disc20_analysis", 0), ("disc21_analysis", 0), + ("disc22_analysis", 0), + ("disc23_analysis", 0), + ("disc24_analysis", 0), + ("disc25_analysis", 0), ], ) def test_disc_special_chapter_split_expectation_matrix( @@ -242,6 +262,10 @@ def test_disc_special_chapter_split_expectation_matrix( ("disc19_analysis", "TEST DISC 19"), ("disc20_analysis", "TEST DISC 20"), ("disc21_analysis", "TEST DISC 21"), + ("disc22_analysis", "TEST DISC 22"), + ("disc23_analysis", "TEST DISC 23"), + ("disc24_analysis", "TEST DISC 24"), + ("disc25_analysis", "TEST DISC 25"), ], ) def test_disc_title_extraction_matrix(