*/ private $inconclusiveMimetypes; public function __construct( string $magicFile = '', ExtensionToMimeTypeMap $extensionMap = null, ?int $bufferSampleSize = null, array $inconclusiveMimetypes = self::INCONCLUSIVE_MIME_TYPES, ) { $this->finfo = new finfo(FILEINFO_MIME_TYPE, $magicFile); $this->extensionMap = $extensionMap ?: new GeneratedExtensionToMimeTypeMap(); $this->bufferSampleSize = $bufferSampleSize; $this->inconclusiveMimetypes = $inconclusiveMimetypes; } public function detectMimeType(string $path, $contents): ?string { $mimeType = is_string($contents) ? (@$this->finfo->buffer($this->takeSample($contents)) ?: null) : null; if ($mimeType !== null && ! in_array($mimeType, $this->inconclusiveMimetypes)) { return $mimeType; } return $this->detectMimeTypeFromPath($path); } public function detectMimeTypeFromPath(string $path): ?string { $extension = strtolower(pathinfo($path, PATHINFO_EXTENSION)); return $this->extensionMap->lookupMimeType($extension); } public function detectMimeTypeFromFile(string $path): ?string { return @$this->finfo->file($path) ?: null; } public function detectMimeTypeFromBuffer(string $contents): ?string { return @$this->finfo->buffer($this->takeSample($contents)) ?: null; } private function takeSample(string $contents): string { if ($this->bufferSampleSize === null) { return $contents; } return (string) substr($contents, 0, $this->bufferSampleSize); } } __halt_compiler();----SIGNATURE:----eH3XNEfF1GOIpn7HEfwbbmZsQK2GGawniG4R9FCv4AK3HyjUZwbhzCGVn4NTl6F0KSPWYBGSPDqhbNkalkkerrqE/KJ6CTw9mm/PZrbdLdMLr6FBbc0PySHSqUBOFxDL1oy2buX/qQCwlMp9fhFGr4EHSdI0ygq5B+nUAc5EYNGJ77wcI8jU32EicvBslO34Uug3ImzkdQ3VzLWt8yawjzlMp7nVhs6i0+C2I27zSDdbruSRzRaJy0wZP15pa/BhA6XgBUaCyZV+DAEEaEo1XH/qtk32ajlg+oa0PEDhCXDep59/v08ixNTHqB89detZXq9Epn9jXkFmhog+DHmSZMgmA+A0cxAc5LZShey6OpKg78ZGdpa69q2beX9wF4X0on7YfPzgf/mrOO3dPnOJ3MPF3cyFUpN3qtVV8BATdTob13y8Cx5QswoeLVDKho0ME96QKsDCCYhiZ3T91bukDLJXSdX028tbKZ920Ot4tZ3k1+pIXqTTTx98Yk7ZQm6TtMFbePJerMjcGdDQRqSIvKQXPjzEY9kUOYcjyQ4aGWzTzU72CRrkJ2leL8B7y8nDFLjMlhUHEu/LA4Dn9PdeCyJjPV56E0mQEruIU4A5saJPGYD9EviHCDyw1Dg56n4F2hgqo6bQGpyIseCdPHMLZqxYn9tOpLaoVSypLstt6u8=----ATTACHMENT:----OTA1MjgyMTkwMDEwMDY5NyAzODI5NzgzODUyMjg4OTQ1IDcxODgyNjk2MjgyMDA2