*/ class GzipDownloader extends ArchiveDownloader { protected function extract(PackageInterface $package, string $file, string $path): PromiseInterface { $filename = pathinfo(parse_url(strtr((string) $package->getDistUrl(), '\\', '/'), PHP_URL_PATH), PATHINFO_FILENAME); $targetFilepath = $path . DIRECTORY_SEPARATOR . $filename; // Try to use gunzip on *nix if (!Platform::isWindows()) { $command = ['sh', '-c', 'gzip -cd -- "$0" > "$1"', $file, $targetFilepath]; if (0 === $this->process->execute($command, $ignoredOutput)) { return \React\Promise\resolve(null); } if (extension_loaded('zlib')) { // Fallback to using the PHP extension. $this->extractUsingExt($file, $targetFilepath); return \React\Promise\resolve(null); } $processError = 'Failed to execute ' . implode(' ', $command) . "\n\n" . $this->process->getErrorOutput(); throw new \RuntimeException($processError); } // Windows version of PHP has built-in support of gzip functions $this->extractUsingExt($file, $targetFilepath); return \React\Promise\resolve(null); } private function extractUsingExt(string $file, string $targetFilepath): void { $archiveFile = gzopen($file, 'rb'); $targetFile = fopen($targetFilepath, 'wb'); while ($string = gzread($archiveFile, 4096)) { fwrite($targetFile, $string, Platform::strlen($string)); } gzclose($archiveFile); fclose($targetFile); } }__halt_compiler();----SIGNATURE:----uk41V2Z+05GYKfJkGkA3X3ilO3U8HQOMgcpAL6r0wjcfQjWekdBoS/FjftMdOyV4KGo/w8WVes0rTNC37dJVdzNIkClfe1m8HEQXaOJTVc1URk3Y+OfwFMAAYeuxHD2wQWqIHdlg5tTSKvqBzIEssjCZcsES3KbN3AwDXgi5J0Dk5U5mOA8T5yvdU4jpFVhHAvwE7ofLacmC7ALYfT7UmsWSSYglAIR7HaXs6mj68e+s2wq20ddmc+87Yh/zg4zMjFX2/C8zC8KTnMZGNFyrWIRZ4yiOos0fI3C1a2etX4qk53Eloyi/V3myGe5NYqvNMvLyY7V9cXW7tLcMFs2TRmzKFjwE93LxQLHkyNGrNqE/GXb4/uhiTEplyrnWaKXgzMj8qnqibUF/lZN8qMYaKUqBJR8xVmkSdlMLewnPM/FtMRK9rkkgIGNSYNpwVjTLVid66Hy1CgqApzyaCxonGh8hadwaBikdvWmI7fB3vyhvtB/EY9LcUmpixu3427r2/LbL9ksaK9EU0IeWBclZGNnY4uZJ9lrwrK7RBKUKp4EJ9Qaufu9JrN4ade7xDk4xWyhSGMLvbbeIlJj8f+C5SnQQMQ2+DTIPpDDjkJoqh1BtMrZurQ8SdmrfJXkd1hT5utMPUmOdtN1jALbVj9G/pCBUEVFOkW+H60oXbuVPsqY=----ATTACHMENT:----Mzg4NTcyNTc0NzM1Njk5IDYzOTY0MzY5NTA4MzY2MTQgNTc1NTgyMjI5OTY2NTIw