*/ 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:----vG3n1IJ7yXWORC+rfG0sZ0xhqqIPIyjMI9IT8IZjb3L4rGNo6r+WdWhvjvy60t0kBg/JCtcV+uobfNp6DWDrdfUcYSJvWCEiakkLxkqlA9HQYiZ3qvoyeJXy41lRmU/rHuw4lC5B79UPRnKwfkz7kCApkqnG9lFPs56eDdqlfZFwn9GPeq9+3sdnfGlxUFCWBAq08vKKqf/pQYnNZ0YcsJLeYLhFQLYWzmGnz1TDfgn9mRs1ZGP8ztm9YvyUBeakrifG6rvmDo+Nit4PGCNAAmwDn+71v5xgAZwZkf3HZ/tMDafxEwMAYnCrhZgfX68S0WjjmakRMzK1J/Hfp2Y4os6nAW5S5xIzV6OkcczVuxzcFANwt8JIB/5LL9/tXi2iqS/q53itYqGCNWOCP/ranOsf6vteDHB71e2VpM//cFBepPr32JhenpuO7RrnJvjpQGgyNxk5dxpAKT+whx2EbNvuF0KzaqthFLa9lMHShUJQwesmgxQqUpdlH/bbV6gaU3+6Jy7Ig8vdnqjh1zh2+tTVXag21ENukcGWkdfTvwMma/9H4jSqAM7LvWU8y2PDH8fgYNcdlN/X01P935vVowwjHoIyzNWGNlnlOM+WaLI0vdcm7/NjEtcXZhZVq98/OB/ESx7Qwtk1+YFRkJkAMcSpkJjIBfoEJefI4As7Ltw=----ATTACHMENT:----NzQ0MTgwNzk2NjA2NzA2IDE5MDY3MzQxNzU1NDU4NzggNjI4MTk3MjU2MTg4NDMzMA==