Access denied.

'; return; } // Filters (GET). All optional. $days = isset($_GET['days']) && ctype_digit((string)$_GET['days']) ? max(1, min(365, (int)$_GET['days'])) : MultiAccount::WINDOW_DAYS; $minScore = isset($_GET['min']) && ctype_digit((string)$_GET['min']) ? max(0, min(100, (int)$_GET['min'])) : MultiAccount::MIN_REPORT_SCORE; $focusUid = isset($_GET['focus']) && ctype_digit((string)$_GET['focus']) ? (int)$_GET['focus'] : 0; $data = MultiAccount::riskPairs(['days' => $days, 'min_score' => $minScore, 'focus_uid' => $focusUid]); $pairs = $data['pairs']; ?>

Window: last days  |  scanned login-log + fingerprint rows  |  suspicious pair  | focused on UID

Tip: the User-Agent signal starts filling in only after players log in once with this feature deployed. IP & login-time signals work on existing history immediately. Try lowering the minimum score or widening the window.
# #
IPs:
0): ?>
transfer volume: res