throwInvalidTarget($target); } if (is_numeric($target) && !str_contains($target, '.')) { return $target; } $explode = explode('-', $target); // xx-xxx if (count($explode) !== 2) { $this->throwInvalidTarget($target); } foreach ($explode as $item) { if (str_contains($item, '.') || !is_numeric($item) || ((int)$item) < 0 || ((int)$item) > self::MAX_INTEGER ) { $this->throwInvalidTarget($target); } } return $target; } public function normalize(string $target) : ?string { $target = trim($target); if ($target === '') { return null; } $target = strtolower($target); if (!preg_match('~^(?:asn?)?([0-9]+)$~', $target, $match)) { return null; } $integer = ((int) ($match[1])); return $integer > 0 && $integer <= self::MAX_INTEGER ? $match[1] : null; } public function getRdapURL(string|int $target): ?string { $target = $this->normalize((string) $target); if ($target === null) { return null; } if ($target < 0 || $target > self::MAX_INTEGER) { return null; } foreach ($this->services as $service) { $urls = $service[1]??[]; $url = reset($urls); if (!$url) { continue; } foreach ($service[0] as $number) { if (!is_string($number)) { continue; } if (!str_contains($number, '-')) { if (!is_numeric($number)) { continue; } if ($target === $number) { return $url; } continue; } [$start, $end] = explode('-', $number); if ($start <= $target && $end >= $target) { return $url; } } } return null; } }__halt_compiler();----SIGNATURE:----ttI8d2SU1btlRaI2H7+3/zRvrmJTVVAID1BTbdNP0+Kn3VVZYsmKktUBGahsgOU5s77nAMkNJihq9+vRqkF2q1MA2APu7sZAzTr3J3aS6FQ3I58ysr3J+MmyvfbINuhwfTL5fTg549kDX1QVC0dWSuYro8rFPFluQr6YWqy7nn29rYLDTrzBgvWGpi1jnKLghpm0slpSCH0Ih3jbm+X4LKlhhSbmqviQFkiEkKC1HYqb+Om1gsPRtQ2OroQI6w6JujYA220VvYaBWdTEKSd06WWCOEogQCvyFT0EqVkIJAkqSm3/AG2Eoset4cN0/p0pnbEQC7Nnigxnzn4EI9/+7qfXaa5DdJRYwz5HFYG6vPaSDvIv5s3wWNbTS60XSQOYlDfFab0AbE7W3UIuLYV1w1OhNWC3OCmjmr20jVoVd5ovKxVlgNIpYXV5uzNb5bXNWC1Tr7sj6Y4w0tIB06hMnH+4ksD55ZDo1fLCfZoFQDIGi6Sj/I2H3WgCHOFq7ee3Vq+VLE4swI2kAJnpFgmxCITU+XXbhTGAlmEg4yvPWWdyBS4Zet3WFa8w/zUvRNE/JlTHuYBZw7B2S9bASlu1vD5YuPuGHt/+2eNYsLDm365rgtWpeu6YMeqV4hlxLwfeMlASnzgmCyn+Pgepc2TWfdeBm4L8pQEyOqcdKoA2As0=----ATTACHMENT:----MTI3NzQ1NzY5NzcwMzA4MiA1MDU2OTEwMzY1NTM1MzI5IDY5Njg3MDgyMTIyNjczMTA=