mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 21:36:06 -04:00
feat(phase-25): T5b batch-2 — def-side wall cracked mechanically (canon_sig_reconcile); +5 giants, 3x134 (fleet 72.18->72.29%)
- 29 giants drafted (Opus-xHigh wave), 16 R14-isolation-MATCH but 0 auto-banked: ALL blocked by the DEF-SIDE canonical-sig wall (Ghidra-typed draft sigs conflict with the engine_core.h canonical, which lives inside DEFINE_ macros so sig_unify can't reach it). - NEW tools/canon_sig_reconcile.py: strip ambient-dup typedefs/externs -> rewrite def to the canonical sig -> cast changed params AT USE (never intermediate locals: a local adds a pseudo -> regalloc shift -> byte-diff, measured 70ff4748 != d19c9580). Byte-neutral. - BANKED 5 giants mechanically: func_8013B274 func_80130D48 func_80167DBC (family_sweep x134) + func_8016DC20 func_8018514C (exemplar-only). ~404 new fn-defs. - R22 clean-fleet 136/136 BYTE-IDENTICAL (from make clean + extract-all + check-all), dedup 1813/0, 0 NON_MATCHING (G4). - 11 walls backlogged (non-identical ambient types SVEC/ApplyMatrixSV, macro-local data symbols D_*, u8 redef, byte-diff) + 13 nears (permuter-ILS/Fable5 fuel). Frontier +29. - Cookbook §41 (the reconcile recipe + the at-use-cast-not-locals regalloc proof) + decision-log R31 (the "giant tier was plumbing not matching" pivot). R30/R31.
This commit is contained in:
+2778
-2762
File diff suppressed because it is too large
Load Diff
@@ -98,3 +98,35 @@ the session that produced it. Route TECHNICAL idioms to the cookbook; this file
|
||||
precision on the hard/byte-weighty band, the **permuter** for regalloc/schedule search, a **frozen small LoRA**
|
||||
only for the cheap ≤15-ins tail. Don't spend GPU-hours chasing band-extension on a 7B; rent a bigger GPU or use
|
||||
the frontier tier when the hard band is the target.
|
||||
|
||||
## 2026-07-09 · Phase 25 — the GIANT def-side wall is mechanically crackable → build the lever, don't just measure (T5b batch-2)
|
||||
- **Context / belief:** T5b batch-2 (the 29 giants) was scoped as a pure *measure* wave — draft, `match_one`, map the
|
||||
frontier; the plan filed the def-side loose-typing wall as a T7 (post-curriculum) problem, expecting ~0 giant banks.
|
||||
Belief going in: giants would mostly near-miss and feed Fable5/permuter; any that isolation-MATCHed would bank via
|
||||
the gate's existing `sig_unify`/`cast` transforms.
|
||||
- **What was tried that failed:** all **16** R14-verified isolation-MATCH giants banked **0/16** through `gate_stage`
|
||||
AND through raw `harvest_verify`. Root cause (dug out by placing one and reading the cc1 error, not trusting the
|
||||
gate's summary): `conflicting types for func_X` — the drafters wrote Ghidra-*typed* sigs (`void f(u32*, s16*)`) that
|
||||
clash with the TU's **canonical** sig, which lives *inside a `DEFINE_func_*` macro* in `engine_core.h` where
|
||||
`sig_unify` (a file-scope-extern rewriter) can't see it. First reconcile attempt ALSO failed twice: an `s32/s32-args`
|
||||
form conflicted with the engine_core.h `void/void*` canonical; then intermediate cast-locals (`u32 *a0 = (u32*)arg0`)
|
||||
*compiled* but produced the WRONG bytes (`70ff4748`) — a fresh pseudo shifted regalloc.
|
||||
- **Pivot:** stop treating the def-side wall as a future-T7 abstraction and **build the lever now**
|
||||
(`tools/canon_sig_reconcile.py`): strip ambient-dup typedefs/externs, rewrite the def to the engine_core.h canonical,
|
||||
and **cast each changed param AT ITS USES, never via a local**. That banked `func_8013B274` byte-identical, then
|
||||
**5/16** giants total; 3 swept ×134. Batch-2 turned from "measure + backlog" into "prove + partly-automate the
|
||||
phase's #1 lever," pulling a chunk of T7 forward on real data.
|
||||
- **Why (byte/measurement-grounded):** the cast-local vs at-use difference is a *measured* byte fact (`70ff4748` wrong
|
||||
vs `d19c9580` right), not a style call — an intermediate local is a new pseudo gcc-2.7.2 may color differently; an
|
||||
at-use cast is free. The whole-binary byte-gate stayed the sole arbiter throughout (G3/P9): every one of the 5 banks
|
||||
is byte-identical, and R22 clean-fleet is the backstop — it caught my *own* buggy R22 harness (an unexpanded
|
||||
`$(OVERLAY_BINARIES)` that only extracted 2 of 136 binaries) before any false "136/136" could be reported.
|
||||
- **Hindsight / for the wiki:** when a whole *class* of candidates fails the gate identically, **read the raw compiler
|
||||
error on ONE placed candidate before concluding "hard / defer"** — the summary ("0 banked") hid a *mechanical*
|
||||
declaration conflict behind what looked like an intractable matching wall. The giant tier was never a matching
|
||||
problem; it was a **plumbing** problem (the body was already right in isolation). General lesson for
|
||||
frontier-crack→propagate→byte-gate: distinguish *codegen* residuals (permuter/Fable5) from *TU-integration* residuals
|
||||
(a deterministic reconcile) early — they look identical at the gate ("0 banked") but have completely different levers,
|
||||
and the integration ones are cheap ×134 wins hiding as "hard giants." Residual: non-identical ambient types and
|
||||
macro-local data symbols are the genuinely-hard remainder (real `reconcile_decls`/rename work), and a reconciled body
|
||||
doesn't `family_sweep` cleanly to siblings (per-sibling re-reconcile needed) — both logged for T7.
|
||||
|
||||
@@ -2309,3 +2309,47 @@ includes (`src/shared/engine_types.h` via `engine_core.h`), then re-sweep. **+1,
|
||||
(ov077 `d19c9580`) before sweeping. A broken strip / mis-ordered header surfaces as a compile failure or SHA drift
|
||||
at this cheap ~30s gate, before any expensive sweep. Then the full R22 clean-fleet 136/136 confirms no fleet-wide
|
||||
header collision. Tools: `build_engine_types.py --file/--exclude`, `family_sweep.py --no-preclassify`.
|
||||
|
||||
## §41 — The DEF-SIDE canonical-sig wall: mechanically banking a drafted giant past `conflicting types` (Phase 25 T5b batch-2, 2026-07-09; `tools/canon_sig_reconcile.py`, byte-proven on `func_8013B274`)
|
||||
|
||||
**The wall (dominant for GIANTS — ~universal, vs ~35% clean-bank for small fns):** a drafter writes an
|
||||
**isolation-MATCH** giant body (`match_one` c=0) with Ghidra-derived **TYPED** params — `void func(u32 *a0, s16 *a2)`.
|
||||
Placed in the real overlay TU it fails the whole-binary gate on `conflicting types for func_X` (a *declaration*
|
||||
conflict, NOT a byte diff). The gate's `sig_unify`/`cast_call_sites` can't fix it and it banks **0/16**. Two sources:
|
||||
1. The TU's callers reference the fn through the **CANONICAL signature** declared in `src/shared/engine_core.h`
|
||||
(`extern void func_8013B274(s32 a0, s32 a1, void *a2);`) — but that decl lives **inside a `DEFINE_func_*` macro**,
|
||||
so `sig_unify` (which rewrites file-scope externs) never sees it. The draft's typed sig conflicts with it.
|
||||
2. Absent an engine_core.h decl, a caller *above* the definition gives gcc-2.7.2 an implicit K&R `int func_X()`;
|
||||
the draft's `void`/typed-param def conflicts with that. (This is *why* the overlay's "Phase-17 canonical-sig
|
||||
layer" at each `_a.c` top uses `s32 func(s32,…)` — it's K&R-`int`-compatible AND byte-neutral.)
|
||||
|
||||
**The crack — reconcile the DEF to the canonical sig, BYTE-NEUTRALLY (3 steps, all proven on `func_8013B274` → banked
|
||||
`d19c9580` byte-identical):**
|
||||
1. **Strip the draft's redefinitions of ambient symbols.** A `typedef … P_TAG;` identical to `engine_types.h`'s is a
|
||||
*redefinition error* in gcc-2.7.2/C89 (not "compatible" like C11). Strip identical-def typedefs; strip `extern`
|
||||
decls (func / data `D_*` / `memcpy`) the TU or engine headers already declare — the draft's Ghidra-typed
|
||||
re-declaration is a conflict source. (`memcpy` always: a mismatched prototype trips `conflicting types for
|
||||
built-in memcpy`; the TU macros / builtin provide it.)
|
||||
2. **Rewrite the def signature to the canonical** (`engine_core.h` decl if present, else the implicit-int-compatible
|
||||
`s32 func(s32,…)` at the draft's arity; arity-grow adds unused params so an N-arg implicit caller still matches).
|
||||
3. **Cast each type-changed param AT ITS USES — NEVER via an intermediate local.** THE load-bearing insight:
|
||||
`u32 *a0 = (u32*)arg0;` at the top introduces a *fresh pseudo* → gcc allocates it a different reg → **regalloc
|
||||
shifts → byte diff** (measured: cast-locals gave `70ff4748`, wrong). Casting the param in place —
|
||||
`((s16*)a2)[i]`, `((s16*)param + 1)` (preserves stride!), `*(T*)p` — adds **no pseudo**, is free, and preserves the
|
||||
isolation-match codegen. `tools/canon_sig_reconcile.py` blanket-wraps every use of a changed param in
|
||||
`((origtype)name)` (correct for index/deref/arith/member/already-cast alike). Give it `--tu <split.c>` so it treats
|
||||
that TU's already-declared symbols as ambient (strips their redundant draft externs too).
|
||||
|
||||
**Result:** **5/16** batch-2 giants banked purely mechanically (`func_8013B274 80130D48 80167DBC 8016DC20 8018514C`);
|
||||
3 then `family_sweep`'d **×134**. This is the phase's **#1 def-side lever**, now partly automated — reusable across the
|
||||
whole giant tier AND the batch-1 backlog of "match_one-MATCH but gate-rejected" near-misses (the dominant gate-failure).
|
||||
|
||||
**The residual walls (the other 11 — genuine per-fn T7, NOT this mechanical pass; backlogged with cause):**
|
||||
(a) **non-identical ambient types** — draft's `SVEC`/`ApplyMatrixSV` differ in layout from `engine_types.h`'s (can't
|
||||
strip: not identical; can't keep: conflicts) → needs a rename or a real layout reconcile. (b) **data symbols declared
|
||||
inside `DEFINE_` macros** (`D_80078EB0`) — macro-local, not file-scope, so stripping the draft's extern leaves the body
|
||||
referencing an undeclared symbol, and keeping it conflicts → `reconcile_decls.py`/§33 byte-neutral-access-cast territory.
|
||||
(c) primitive-typedef redefs the reconcile missed; (d) genuine **byte-diff** (reconcile compiles but codegen differs —
|
||||
back to permuter/hand). **Sweep fragility:** a reconciled body carries ov_SC01_077-specific canonical sigs/casts, so
|
||||
`family_sweep` to sibling overlays (with their OWN engine_core.h decls) byte-matches only some siblings (`func_8016DC20`
|
||||
= 133 siblings failed → exemplar-only). A robust sweep of reconciled giants must re-reconcile per sibling TU (T7 follow-up).
|
||||
|
||||
+137
-137
@@ -3,148 +3,148 @@
|
||||
# source-derived (committed src/*.c + config/dedup.us.yaml). Live byte gate: `make check-all`;
|
||||
# cross-binary collapsible-byte leverage: docs/duplicates.cross.md.
|
||||
|
||||
FLEET REAL substantive : 246974 (of which dedup-shared 223275 via 1813 groups / 223725 instances)
|
||||
FLEET REAL substantive : 247378 (of which dedup-shared 223275 via 1813 groups / 223725 instances)
|
||||
FLEET LINKED PsyQ objs : 959
|
||||
FLEET byte-identical : 248503 / 344306 = 72.18% (REAL+LINKED+empties)
|
||||
FLEET byte-identical : 248907 / 344306 = 72.29% (REAL+LINKED+empties)
|
||||
FLEET NON_MATCHING : 7 (0 in any default build — G4)
|
||||
FLEET INCLUDE_ASM stubs : 95796
|
||||
FLEET INCLUDE_ASM stubs : 95392
|
||||
FLEET matchable : 344306
|
||||
|
||||
| binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % |
|
||||
|---|---:|---:|---:|---:|---:|---:|
|
||||
| main | 54 | 2 | 959 | 1055 | 2096 | 50.3% |
|
||||
| resident | 123 | 0 | 0 | 125 | 146 | 85.6% |
|
||||
| ov_SC01_000 | 1836 | 1669 | 0 | 1836 | 2407 | 76.3% |
|
||||
| ov_SC01_001 | 1833 | 1669 | 0 | 1835 | 2471 | 74.3% |
|
||||
| ov_SC01_004 | 1826 | 1660 | 0 | 1827 | 2418 | 75.6% |
|
||||
| ov_SC01_005 | 1850 | 1682 | 0 | 1850 | 2508 | 73.8% |
|
||||
| ov_SC01_006 | 1849 | 1682 | 0 | 1849 | 2508 | 73.7% |
|
||||
| ov_SC01_008 | 1827 | 1660 | 0 | 1829 | 2430 | 75.3% |
|
||||
| ov_SC01_009 | 1847 | 1661 | 0 | 1848 | 2512 | 73.6% |
|
||||
| ov_SC01_074 | 1827 | 1661 | 0 | 1829 | 2429 | 75.3% |
|
||||
| ov_SC01_077 | 2218 | 1624 | 0 | 2220 | 2586 | 85.8% |
|
||||
| ov_SC01_080 | 1845 | 1664 | 0 | 1845 | 2517 | 73.3% |
|
||||
| ov_SC01_084 | 1848 | 1664 | 0 | 1853 | 2583 | 71.7% |
|
||||
| ov_SC02_000 | 1865 | 1699 | 0 | 1865 | 2688 | 69.4% |
|
||||
| ov_SC02_003 | 1865 | 1699 | 0 | 1865 | 2688 | 69.4% |
|
||||
| ov_SC02_004 | 1831 | 1664 | 0 | 1831 | 2405 | 76.1% |
|
||||
| ov_SC02_005 | 1890 | 1660 | 0 | 1900 | 2932 | 64.8% |
|
||||
| ov_SC02_011 | 1871 | 1667 | 0 | 1882 | 2898 | 64.9% |
|
||||
| ov_SC02_015 | 1832 | 1666 | 0 | 1832 | 2418 | 75.8% |
|
||||
| ov_SC02_016 | 1836 | 1666 | 0 | 1839 | 2550 | 72.1% |
|
||||
| ov_SC02_017 | 1855 | 1666 | 0 | 1863 | 2737 | 68.1% |
|
||||
| ov_SC02_021 | 1835 | 1666 | 0 | 1835 | 2441 | 75.2% |
|
||||
| ov_SC02_026 | 1839 | 1664 | 0 | 1845 | 2577 | 71.6% |
|
||||
| ov_SC02_027 | 1848 | 1664 | 0 | 1857 | 2697 | 68.9% |
|
||||
| ov_SC02_028 | 1856 | 1664 | 0 | 1866 | 2706 | 69.0% |
|
||||
| ov_SC02_031 | 1846 | 1665 | 0 | 1851 | 2567 | 72.1% |
|
||||
| ov_SC02_035 | 1837 | 1664 | 0 | 1840 | 2525 | 72.9% |
|
||||
| ov_SC02_039 | 1828 | 1664 | 0 | 1828 | 2420 | 75.5% |
|
||||
| ov_SC02_041 | 1835 | 1664 | 0 | 1838 | 2565 | 71.7% |
|
||||
| ov_SC03_001 | 1888 | 1665 | 0 | 1905 | 2874 | 66.3% |
|
||||
| ov_SC03_002 | 1854 | 1669 | 0 | 1869 | 2636 | 70.9% |
|
||||
| ov_SC03_003 | 1826 | 1664 | 0 | 1827 | 2427 | 75.3% |
|
||||
| ov_SC03_006 | 1867 | 1670 | 0 | 1876 | 2772 | 67.7% |
|
||||
| ov_SC03_007 | 1842 | 1664 | 0 | 1846 | 2628 | 70.2% |
|
||||
| ov_SC03_010 | 1836 | 1664 | 0 | 1836 | 2474 | 74.2% |
|
||||
| ov_SC03_011 | 1832 | 1664 | 0 | 1838 | 2532 | 72.6% |
|
||||
| ov_SC03_012 | 1827 | 1664 | 0 | 1828 | 2410 | 75.9% |
|
||||
| ov_SC03_013 | 1835 | 1664 | 0 | 1835 | 2497 | 73.5% |
|
||||
| ov_SC03_014 | 1857 | 1689 | 0 | 1857 | 2690 | 69.0% |
|
||||
| ov_SC03_015 | 1863 | 1689 | 0 | 1863 | 2690 | 69.3% |
|
||||
| ov_SC03_023 | 1829 | 1664 | 0 | 1830 | 2439 | 75.0% |
|
||||
| ov_SC03_024 | 1859 | 1669 | 0 | 1866 | 2646 | 70.5% |
|
||||
| ov_SC03_028 | 1850 | 1664 | 0 | 1854 | 2669 | 69.5% |
|
||||
| ov_SC03_029 | 1836 | 1666 | 0 | 1846 | 2649 | 69.7% |
|
||||
| ov_SC03_030 | 1837 | 1668 | 0 | 1839 | 2500 | 73.6% |
|
||||
| ov_SC03_031 | 1831 | 1664 | 0 | 1835 | 2519 | 72.8% |
|
||||
| ov_SC03_089 | 1841 | 1664 | 0 | 1848 | 2586 | 71.5% |
|
||||
| ov_SC03_090 | 1842 | 1664 | 0 | 1850 | 2630 | 70.3% |
|
||||
| ov_SC03_091 | 1841 | 1664 | 0 | 1849 | 2645 | 69.9% |
|
||||
| ov_SC03_092 | 1841 | 1664 | 0 | 1853 | 2592 | 71.5% |
|
||||
| ov_SC03_093 | 1838 | 1664 | 0 | 1842 | 2568 | 71.7% |
|
||||
| ov_SC03_094 | 1832 | 1664 | 0 | 1838 | 2581 | 71.2% |
|
||||
| ov_SC03_095 | 1830 | 1664 | 0 | 1833 | 2479 | 73.9% |
|
||||
| ov_SC03_096 | 1833 | 1664 | 0 | 1836 | 2470 | 74.3% |
|
||||
| ov_SC03_097 | 1837 | 1664 | 0 | 1844 | 2608 | 70.7% |
|
||||
| ov_SC03_098 | 1833 | 1664 | 0 | 1836 | 2546 | 72.1% |
|
||||
| ov_SC03_099 | 1830 | 1664 | 0 | 1833 | 2509 | 73.1% |
|
||||
| ov_SC03_100 | 1832 | 1664 | 0 | 1836 | 2544 | 72.2% |
|
||||
| ov_SC03_101 | 1834 | 1664 | 0 | 1838 | 2533 | 72.6% |
|
||||
| ov_SC03_102 | 1834 | 1664 | 0 | 1837 | 2497 | 73.6% |
|
||||
| ov_SC03_103 | 1833 | 1666 | 0 | 1836 | 2515 | 73.0% |
|
||||
| ov_SC03_104 | 1844 | 1664 | 0 | 1851 | 2621 | 70.6% |
|
||||
| ov_SC03_105 | 1838 | 1664 | 0 | 1845 | 2602 | 70.9% |
|
||||
| ov_SC03_108 | 1826 | 1664 | 0 | 1826 | 2448 | 74.6% |
|
||||
| ov_SC03_109 | 1827 | 1664 | 0 | 1829 | 2428 | 75.3% |
|
||||
| ov_SC03_110 | 1829 | 1664 | 0 | 1829 | 2473 | 74.0% |
|
||||
| ov_SC03_111 | 1834 | 1664 | 0 | 1837 | 2515 | 73.0% |
|
||||
| ov_SC03_112 | 1832 | 1666 | 0 | 1834 | 2531 | 72.5% |
|
||||
| ov_SC03_113 | 1829 | 1666 | 0 | 1832 | 2473 | 74.1% |
|
||||
| ov_SC03_114 | 1825 | 1664 | 0 | 1827 | 2419 | 75.5% |
|
||||
| ov_SC03_115 | 1833 | 1664 | 0 | 1835 | 2477 | 74.1% |
|
||||
| ov_SC03_116 | 1831 | 1664 | 0 | 1834 | 2443 | 75.1% |
|
||||
| ov_SC03_117 | 1831 | 1664 | 0 | 1837 | 2562 | 71.7% |
|
||||
| ov_SC03_118 | 1859 | 1688 | 0 | 1860 | 2690 | 69.1% |
|
||||
| ov_SC03_119 | 1854 | 1688 | 0 | 1855 | 2690 | 69.0% |
|
||||
| ov_SC03_121 | 1831 | 1664 | 0 | 1834 | 2464 | 74.4% |
|
||||
| ov_SC03_124 | 1855 | 1660 | 0 | 1875 | 2746 | 68.3% |
|
||||
| ov_SC03_125 | 1837 | 1664 | 0 | 1849 | 2593 | 71.3% |
|
||||
| ov_SC03_126 | 1828 | 1666 | 0 | 1828 | 2427 | 75.3% |
|
||||
| ov_SC04_000 | 1837 | 1668 | 0 | 1846 | 2551 | 72.4% |
|
||||
| ov_SC04_002 | 1841 | 1664 | 0 | 1845 | 2641 | 69.9% |
|
||||
| ov_SC04_003 | 1829 | 1664 | 0 | 1833 | 2507 | 73.1% |
|
||||
| ov_SC04_004 | 1836 | 1664 | 0 | 1838 | 2563 | 71.7% |
|
||||
| ov_SC04_005 | 1838 | 1664 | 0 | 1844 | 2617 | 70.5% |
|
||||
| ov_SC04_006 | 1827 | 1664 | 0 | 1829 | 2458 | 74.4% |
|
||||
| ov_SC04_007 | 1837 | 1664 | 0 | 1841 | 2574 | 71.5% |
|
||||
| ov_SC04_008 | 1827 | 1664 | 0 | 1827 | 2419 | 75.5% |
|
||||
| ov_SC04_009 | 1830 | 1664 | 0 | 1833 | 2445 | 75.0% |
|
||||
| ov_SC04_010 | 1830 | 1664 | 0 | 1831 | 2423 | 75.6% |
|
||||
| ov_SC04_011 | 1853 | 1664 | 0 | 1859 | 2808 | 66.2% |
|
||||
| ov_SC04_012 | 1827 | 1664 | 0 | 1828 | 2424 | 75.4% |
|
||||
| ov_SC04_015 | 1847 | 1665 | 0 | 1858 | 2616 | 71.0% |
|
||||
| ov_SC04_016 | 1825 | 1664 | 0 | 1827 | 2444 | 74.8% |
|
||||
| ov_SC04_018 | 1873 | 1699 | 0 | 1873 | 2862 | 65.4% |
|
||||
| ov_SC04_019 | 1878 | 1699 | 0 | 1878 | 2862 | 65.6% |
|
||||
| ov_SC04_020 | 1840 | 1664 | 0 | 1852 | 2572 | 72.0% |
|
||||
| ov_SC04_021 | 1826 | 1666 | 0 | 1826 | 2427 | 75.2% |
|
||||
| ov_SC05_000 | 1830 | 1668 | 0 | 1833 | 2426 | 75.6% |
|
||||
| ov_SC05_001 | 1830 | 1664 | 0 | 1835 | 2579 | 71.2% |
|
||||
| ov_SC05_002 | 1827 | 1664 | 0 | 1830 | 2447 | 74.8% |
|
||||
| ov_SC05_003 | 1828 | 1664 | 0 | 1829 | 2486 | 73.6% |
|
||||
| ov_SC05_004 | 1828 | 1664 | 0 | 1830 | 2469 | 74.1% |
|
||||
| ov_SC05_005 | 1829 | 1664 | 0 | 1830 | 2496 | 73.3% |
|
||||
| ov_SC05_006 | 1826 | 1664 | 0 | 1826 | 2434 | 75.0% |
|
||||
| ov_SC05_007 | 1831 | 1664 | 0 | 1836 | 2487 | 73.8% |
|
||||
| ov_SC05_008 | 1851 | 1664 | 0 | 1853 | 2548 | 72.7% |
|
||||
| ov_SC05_009 | 1831 | 1664 | 0 | 1835 | 2442 | 75.1% |
|
||||
| ov_SC05_010 | 1839 | 1664 | 0 | 1843 | 2593 | 71.1% |
|
||||
| ov_SC05_011 | 1826 | 1664 | 0 | 1827 | 2413 | 75.7% |
|
||||
| ov_SC05_017 | 1858 | 1661 | 0 | 1869 | 2847 | 65.6% |
|
||||
| ov_SC05_018 | 1849 | 1664 | 0 | 1862 | 2678 | 69.5% |
|
||||
| ov_SC05_019 | 1827 | 1666 | 0 | 1827 | 2427 | 75.3% |
|
||||
| ov_SC06_000 | 1861 | 1673 | 0 | 1864 | 2696 | 69.1% |
|
||||
| ov_SC06_006 | 1834 | 1664 | 0 | 1835 | 2516 | 72.9% |
|
||||
| ov_SC06_008 | 1839 | 1666 | 0 | 1845 | 2546 | 72.5% |
|
||||
| ov_SC06_010 | 1838 | 1664 | 0 | 1843 | 2522 | 73.1% |
|
||||
| ov_SC06_011 | 1830 | 1664 | 0 | 1834 | 2473 | 74.2% |
|
||||
| ov_SC06_013 | 1829 | 1664 | 0 | 1830 | 2429 | 75.3% |
|
||||
| ov_SC06_014 | 1831 | 1664 | 0 | 1833 | 2457 | 74.6% |
|
||||
| ov_SC06_015 | 1828 | 1664 | 0 | 1828 | 2425 | 75.4% |
|
||||
| ov_SC06_016 | 1839 | 1664 | 0 | 1841 | 2554 | 72.1% |
|
||||
| ov_SC06_018 | 1838 | 1667 | 0 | 1845 | 2670 | 69.1% |
|
||||
| ov_SC06_020 | 1832 | 1666 | 0 | 1833 | 2523 | 72.7% |
|
||||
| ov_SC06_022 | 1838 | 1664 | 0 | 1846 | 2647 | 69.7% |
|
||||
| ov_SC06_024 | 1843 | 1664 | 0 | 1849 | 2672 | 69.2% |
|
||||
| ov_SC06_025 | 1836 | 1664 | 0 | 1841 | 2577 | 71.4% |
|
||||
| ov_SC06_027 | 1824 | 1664 | 0 | 1825 | 2412 | 75.7% |
|
||||
| ov_SC06_029 | 1852 | 1664 | 0 | 1864 | 2667 | 69.9% |
|
||||
| ov_SC06_030 | 1830 | 1664 | 0 | 1830 | 2461 | 74.4% |
|
||||
| ov_SC06_032 | 1831 | 1665 | 0 | 1838 | 2663 | 69.0% |
|
||||
| ov_SC06_033 | 1839 | 1665 | 0 | 1846 | 2636 | 70.0% |
|
||||
| ov_SC07_000 | 1842 | 1668 | 0 | 1844 | 2526 | 73.0% |
|
||||
| ov_SC07_001 | 1831 | 1664 | 0 | 1833 | 2459 | 74.5% |
|
||||
| ov_SC07_002 | 1845 | 1664 | 0 | 1849 | 2584 | 71.6% |
|
||||
| ov_SC07_008 | 1825 | 1664 | 0 | 1825 | 2390 | 76.4% |
|
||||
| ov_SC07_009 | 1833 | 1664 | 0 | 1835 | 2434 | 75.4% |
|
||||
| ov_SC01_000 | 1839 | 1669 | 0 | 1839 | 2407 | 76.4% |
|
||||
| ov_SC01_001 | 1836 | 1669 | 0 | 1838 | 2471 | 74.4% |
|
||||
| ov_SC01_004 | 1829 | 1660 | 0 | 1830 | 2418 | 75.7% |
|
||||
| ov_SC01_005 | 1853 | 1682 | 0 | 1853 | 2508 | 73.9% |
|
||||
| ov_SC01_006 | 1852 | 1682 | 0 | 1852 | 2508 | 73.8% |
|
||||
| ov_SC01_008 | 1830 | 1660 | 0 | 1832 | 2430 | 75.4% |
|
||||
| ov_SC01_009 | 1850 | 1661 | 0 | 1851 | 2512 | 73.7% |
|
||||
| ov_SC01_074 | 1830 | 1661 | 0 | 1832 | 2429 | 75.4% |
|
||||
| ov_SC01_077 | 2223 | 1624 | 0 | 2225 | 2586 | 86.0% |
|
||||
| ov_SC01_080 | 1848 | 1664 | 0 | 1848 | 2517 | 73.4% |
|
||||
| ov_SC01_084 | 1851 | 1664 | 0 | 1856 | 2583 | 71.9% |
|
||||
| ov_SC02_000 | 1868 | 1699 | 0 | 1868 | 2688 | 69.5% |
|
||||
| ov_SC02_003 | 1868 | 1699 | 0 | 1868 | 2688 | 69.5% |
|
||||
| ov_SC02_004 | 1834 | 1664 | 0 | 1834 | 2405 | 76.3% |
|
||||
| ov_SC02_005 | 1893 | 1660 | 0 | 1903 | 2932 | 64.9% |
|
||||
| ov_SC02_011 | 1874 | 1667 | 0 | 1885 | 2898 | 65.0% |
|
||||
| ov_SC02_015 | 1835 | 1666 | 0 | 1835 | 2418 | 75.9% |
|
||||
| ov_SC02_016 | 1839 | 1666 | 0 | 1842 | 2550 | 72.2% |
|
||||
| ov_SC02_017 | 1858 | 1666 | 0 | 1866 | 2737 | 68.2% |
|
||||
| ov_SC02_021 | 1838 | 1666 | 0 | 1838 | 2441 | 75.3% |
|
||||
| ov_SC02_026 | 1842 | 1664 | 0 | 1848 | 2577 | 71.7% |
|
||||
| ov_SC02_027 | 1851 | 1664 | 0 | 1860 | 2697 | 69.0% |
|
||||
| ov_SC02_028 | 1859 | 1664 | 0 | 1869 | 2706 | 69.1% |
|
||||
| ov_SC02_031 | 1849 | 1665 | 0 | 1854 | 2567 | 72.2% |
|
||||
| ov_SC02_035 | 1840 | 1664 | 0 | 1843 | 2525 | 73.0% |
|
||||
| ov_SC02_039 | 1831 | 1664 | 0 | 1831 | 2420 | 75.7% |
|
||||
| ov_SC02_041 | 1838 | 1664 | 0 | 1841 | 2565 | 71.8% |
|
||||
| ov_SC03_001 | 1891 | 1665 | 0 | 1908 | 2874 | 66.4% |
|
||||
| ov_SC03_002 | 1857 | 1669 | 0 | 1872 | 2636 | 71.0% |
|
||||
| ov_SC03_003 | 1829 | 1664 | 0 | 1830 | 2427 | 75.4% |
|
||||
| ov_SC03_006 | 1870 | 1670 | 0 | 1879 | 2772 | 67.8% |
|
||||
| ov_SC03_007 | 1845 | 1664 | 0 | 1849 | 2628 | 70.4% |
|
||||
| ov_SC03_010 | 1839 | 1664 | 0 | 1839 | 2474 | 74.3% |
|
||||
| ov_SC03_011 | 1835 | 1664 | 0 | 1841 | 2532 | 72.7% |
|
||||
| ov_SC03_012 | 1830 | 1664 | 0 | 1831 | 2410 | 76.0% |
|
||||
| ov_SC03_013 | 1838 | 1664 | 0 | 1838 | 2497 | 73.6% |
|
||||
| ov_SC03_014 | 1860 | 1689 | 0 | 1860 | 2690 | 69.1% |
|
||||
| ov_SC03_015 | 1866 | 1689 | 0 | 1866 | 2690 | 69.4% |
|
||||
| ov_SC03_023 | 1832 | 1664 | 0 | 1833 | 2439 | 75.2% |
|
||||
| ov_SC03_024 | 1862 | 1669 | 0 | 1869 | 2646 | 70.6% |
|
||||
| ov_SC03_028 | 1853 | 1664 | 0 | 1857 | 2669 | 69.6% |
|
||||
| ov_SC03_029 | 1839 | 1666 | 0 | 1849 | 2649 | 69.8% |
|
||||
| ov_SC03_030 | 1840 | 1668 | 0 | 1842 | 2500 | 73.7% |
|
||||
| ov_SC03_031 | 1834 | 1664 | 0 | 1838 | 2519 | 73.0% |
|
||||
| ov_SC03_089 | 1844 | 1664 | 0 | 1851 | 2586 | 71.6% |
|
||||
| ov_SC03_090 | 1845 | 1664 | 0 | 1853 | 2630 | 70.5% |
|
||||
| ov_SC03_091 | 1844 | 1664 | 0 | 1852 | 2645 | 70.0% |
|
||||
| ov_SC03_092 | 1844 | 1664 | 0 | 1856 | 2592 | 71.6% |
|
||||
| ov_SC03_093 | 1841 | 1664 | 0 | 1845 | 2568 | 71.8% |
|
||||
| ov_SC03_094 | 1835 | 1664 | 0 | 1841 | 2581 | 71.3% |
|
||||
| ov_SC03_095 | 1833 | 1664 | 0 | 1836 | 2479 | 74.1% |
|
||||
| ov_SC03_096 | 1836 | 1664 | 0 | 1839 | 2470 | 74.5% |
|
||||
| ov_SC03_097 | 1840 | 1664 | 0 | 1847 | 2608 | 70.8% |
|
||||
| ov_SC03_098 | 1836 | 1664 | 0 | 1839 | 2546 | 72.2% |
|
||||
| ov_SC03_099 | 1833 | 1664 | 0 | 1836 | 2509 | 73.2% |
|
||||
| ov_SC03_100 | 1835 | 1664 | 0 | 1839 | 2544 | 72.3% |
|
||||
| ov_SC03_101 | 1837 | 1664 | 0 | 1841 | 2533 | 72.7% |
|
||||
| ov_SC03_102 | 1837 | 1664 | 0 | 1840 | 2497 | 73.7% |
|
||||
| ov_SC03_103 | 1836 | 1666 | 0 | 1839 | 2515 | 73.1% |
|
||||
| ov_SC03_104 | 1847 | 1664 | 0 | 1854 | 2621 | 70.7% |
|
||||
| ov_SC03_105 | 1841 | 1664 | 0 | 1848 | 2602 | 71.0% |
|
||||
| ov_SC03_108 | 1829 | 1664 | 0 | 1829 | 2448 | 74.7% |
|
||||
| ov_SC03_109 | 1830 | 1664 | 0 | 1832 | 2428 | 75.5% |
|
||||
| ov_SC03_110 | 1832 | 1664 | 0 | 1832 | 2473 | 74.1% |
|
||||
| ov_SC03_111 | 1837 | 1664 | 0 | 1840 | 2515 | 73.2% |
|
||||
| ov_SC03_112 | 1835 | 1666 | 0 | 1837 | 2531 | 72.6% |
|
||||
| ov_SC03_113 | 1832 | 1666 | 0 | 1835 | 2473 | 74.2% |
|
||||
| ov_SC03_114 | 1828 | 1664 | 0 | 1830 | 2419 | 75.7% |
|
||||
| ov_SC03_115 | 1836 | 1664 | 0 | 1838 | 2477 | 74.2% |
|
||||
| ov_SC03_116 | 1834 | 1664 | 0 | 1837 | 2443 | 75.2% |
|
||||
| ov_SC03_117 | 1834 | 1664 | 0 | 1840 | 2562 | 71.8% |
|
||||
| ov_SC03_118 | 1862 | 1688 | 0 | 1863 | 2690 | 69.3% |
|
||||
| ov_SC03_119 | 1857 | 1688 | 0 | 1858 | 2690 | 69.1% |
|
||||
| ov_SC03_121 | 1834 | 1664 | 0 | 1837 | 2464 | 74.6% |
|
||||
| ov_SC03_124 | 1858 | 1660 | 0 | 1878 | 2746 | 68.4% |
|
||||
| ov_SC03_125 | 1840 | 1664 | 0 | 1852 | 2593 | 71.4% |
|
||||
| ov_SC03_126 | 1831 | 1666 | 0 | 1831 | 2427 | 75.4% |
|
||||
| ov_SC04_000 | 1840 | 1668 | 0 | 1849 | 2551 | 72.5% |
|
||||
| ov_SC04_002 | 1844 | 1664 | 0 | 1848 | 2641 | 70.0% |
|
||||
| ov_SC04_003 | 1832 | 1664 | 0 | 1836 | 2507 | 73.2% |
|
||||
| ov_SC04_004 | 1839 | 1664 | 0 | 1841 | 2563 | 71.8% |
|
||||
| ov_SC04_005 | 1841 | 1664 | 0 | 1847 | 2617 | 70.6% |
|
||||
| ov_SC04_006 | 1830 | 1664 | 0 | 1832 | 2458 | 74.5% |
|
||||
| ov_SC04_007 | 1840 | 1664 | 0 | 1844 | 2574 | 71.6% |
|
||||
| ov_SC04_008 | 1830 | 1664 | 0 | 1830 | 2419 | 75.7% |
|
||||
| ov_SC04_009 | 1833 | 1664 | 0 | 1836 | 2445 | 75.1% |
|
||||
| ov_SC04_010 | 1833 | 1664 | 0 | 1834 | 2423 | 75.7% |
|
||||
| ov_SC04_011 | 1856 | 1664 | 0 | 1862 | 2808 | 66.3% |
|
||||
| ov_SC04_012 | 1830 | 1664 | 0 | 1831 | 2424 | 75.5% |
|
||||
| ov_SC04_015 | 1850 | 1665 | 0 | 1861 | 2616 | 71.1% |
|
||||
| ov_SC04_016 | 1828 | 1664 | 0 | 1830 | 2444 | 74.9% |
|
||||
| ov_SC04_018 | 1876 | 1699 | 0 | 1876 | 2862 | 65.5% |
|
||||
| ov_SC04_019 | 1881 | 1699 | 0 | 1881 | 2862 | 65.7% |
|
||||
| ov_SC04_020 | 1843 | 1664 | 0 | 1855 | 2572 | 72.1% |
|
||||
| ov_SC04_021 | 1829 | 1666 | 0 | 1829 | 2427 | 75.4% |
|
||||
| ov_SC05_000 | 1833 | 1668 | 0 | 1836 | 2426 | 75.7% |
|
||||
| ov_SC05_001 | 1833 | 1664 | 0 | 1838 | 2579 | 71.3% |
|
||||
| ov_SC05_002 | 1830 | 1664 | 0 | 1833 | 2447 | 74.9% |
|
||||
| ov_SC05_003 | 1831 | 1664 | 0 | 1832 | 2486 | 73.7% |
|
||||
| ov_SC05_004 | 1831 | 1664 | 0 | 1833 | 2469 | 74.2% |
|
||||
| ov_SC05_005 | 1832 | 1664 | 0 | 1833 | 2496 | 73.4% |
|
||||
| ov_SC05_006 | 1829 | 1664 | 0 | 1829 | 2434 | 75.1% |
|
||||
| ov_SC05_007 | 1834 | 1664 | 0 | 1839 | 2487 | 73.9% |
|
||||
| ov_SC05_008 | 1854 | 1664 | 0 | 1856 | 2548 | 72.8% |
|
||||
| ov_SC05_009 | 1834 | 1664 | 0 | 1838 | 2442 | 75.3% |
|
||||
| ov_SC05_010 | 1842 | 1664 | 0 | 1846 | 2593 | 71.2% |
|
||||
| ov_SC05_011 | 1829 | 1664 | 0 | 1830 | 2413 | 75.8% |
|
||||
| ov_SC05_017 | 1861 | 1661 | 0 | 1872 | 2847 | 65.8% |
|
||||
| ov_SC05_018 | 1852 | 1664 | 0 | 1865 | 2678 | 69.6% |
|
||||
| ov_SC05_019 | 1830 | 1666 | 0 | 1830 | 2427 | 75.4% |
|
||||
| ov_SC06_000 | 1864 | 1673 | 0 | 1867 | 2696 | 69.3% |
|
||||
| ov_SC06_006 | 1837 | 1664 | 0 | 1838 | 2516 | 73.1% |
|
||||
| ov_SC06_008 | 1842 | 1666 | 0 | 1848 | 2546 | 72.6% |
|
||||
| ov_SC06_010 | 1841 | 1664 | 0 | 1846 | 2522 | 73.2% |
|
||||
| ov_SC06_011 | 1833 | 1664 | 0 | 1837 | 2473 | 74.3% |
|
||||
| ov_SC06_013 | 1832 | 1664 | 0 | 1833 | 2429 | 75.5% |
|
||||
| ov_SC06_014 | 1834 | 1664 | 0 | 1836 | 2457 | 74.7% |
|
||||
| ov_SC06_015 | 1831 | 1664 | 0 | 1831 | 2425 | 75.5% |
|
||||
| ov_SC06_016 | 1842 | 1664 | 0 | 1844 | 2554 | 72.2% |
|
||||
| ov_SC06_018 | 1841 | 1667 | 0 | 1848 | 2670 | 69.2% |
|
||||
| ov_SC06_020 | 1835 | 1666 | 0 | 1836 | 2523 | 72.8% |
|
||||
| ov_SC06_022 | 1841 | 1664 | 0 | 1849 | 2647 | 69.9% |
|
||||
| ov_SC06_024 | 1846 | 1664 | 0 | 1852 | 2672 | 69.3% |
|
||||
| ov_SC06_025 | 1839 | 1664 | 0 | 1844 | 2577 | 71.6% |
|
||||
| ov_SC06_027 | 1827 | 1664 | 0 | 1828 | 2412 | 75.8% |
|
||||
| ov_SC06_029 | 1855 | 1664 | 0 | 1867 | 2667 | 70.0% |
|
||||
| ov_SC06_030 | 1833 | 1664 | 0 | 1833 | 2461 | 74.5% |
|
||||
| ov_SC06_032 | 1834 | 1665 | 0 | 1841 | 2663 | 69.1% |
|
||||
| ov_SC06_033 | 1842 | 1665 | 0 | 1849 | 2636 | 70.1% |
|
||||
| ov_SC07_000 | 1845 | 1668 | 0 | 1847 | 2526 | 73.1% |
|
||||
| ov_SC07_001 | 1834 | 1664 | 0 | 1836 | 2459 | 74.7% |
|
||||
| ov_SC07_002 | 1848 | 1664 | 0 | 1852 | 2584 | 71.7% |
|
||||
| ov_SC07_008 | 1828 | 1664 | 0 | 1828 | 2390 | 76.5% |
|
||||
| ov_SC07_009 | 1836 | 1664 | 0 | 1838 | 2434 | 75.5% |
|
||||
|
||||
Reference in New Issue
Block a user