Package: release.debian.org
Severity: normal
Tags: bullseye
User: release.debian....@packages.debian.org
Usertags: pu
X-Debbugs-Cc: pkg-php-p...@lists.alioth.debian.org, t...@security.debian.org

[ Reason ]

I’d like to address CVE-2022-24828 that has been tagged as no-dsa. Some
people may also wish to see #989315 fixed (it was reported twice), and
the fix is trivial, so I’m proposing a fix for it too.

[ Impact ]

The security fix is worth it, the GitHub token pattern fix is useful for
people using this feature.

[ Tests ]

I had to also checkout a file used for the updated testsuite that
passes. I’m not using the Github feature, but the regex fix looks pretty
obvious.

[ Risks ]

I’ve also provided the diffoscope output, showing probably better the
trival changes.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

Regards

Thanks in advance.

David
diff --git a/debian/changelog b/debian/changelog
index 4498422ae..51613d0d9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+composer (2.0.9-2+deb11u1) bullseye; urgency=medium
+
+  * Fix code injection vulnerability [CVE-2022-24828] (Closes: #1009960)
+  * Update GitHub token pattern (Closes: #989315)
+  * Checkout ProcessExecutorMock.php needed for updated tests
+
+ -- David Prévot <taf...@debian.org>  Sun, 29 May 2022 11:55:56 +0200
+
 composer (2.0.9-2) unstable; urgency=medium
 
   * Use debian/bullseye branch
diff --git a/debian/patches/0010-Merge-pull-request-from-GHSA-x7cr-6qr6-2hh6.patch b/debian/patches/0010-Merge-pull-request-from-GHSA-x7cr-6qr6-2hh6.patch
new file mode 100644
index 000000000..02fd68fe5
--- /dev/null
+++ b/debian/patches/0010-Merge-pull-request-from-GHSA-x7cr-6qr6-2hh6.patch
@@ -0,0 +1,230 @@
+From: Stephan <glaubi...@users.noreply.github.com>
+Date: Wed, 13 Apr 2022 14:54:58 +0100
+Subject: Merge pull request from GHSA-x7cr-6qr6-2hh6
+
+* GitDriver: filter branch names starting with a - character
+
+* GitDriver: getFileContent prevent identifiers starting with a -
+
+* HgDriver: prevent invalid identifiers and prevent file from running commands
+
+* HgDriver: filter branches starting with a - character
+
+Origin: backport, https://github.com/composer/composer/commit/2c40c53637c5c7e43fff7c09d3d324d632734709
+Bug-Debian: https://bugs.debian.org/1009960
+Bug-Debian: https://security-tracker.debian.org/tracker/CVE-2022-24828
+---
+ src/Composer/Repository/Vcs/GitDriver.php          |  6 +-
+ src/Composer/Repository/Vcs/HgDriver.php           | 10 ++-
+ .../Composer/Test/Repository/Vcs/GitDriverTest.php | 81 ++++++++++++++++++++++
+ .../Composer/Test/Repository/Vcs/HgDriverTest.php  | 46 ++++++++++++
+ 4 files changed, 139 insertions(+), 4 deletions(-)
+ create mode 100644 tests/Composer/Test/Repository/Vcs/GitDriverTest.php
+
+diff --git a/src/Composer/Repository/Vcs/GitDriver.php b/src/Composer/Repository/Vcs/GitDriver.php
+index 70400e8..577477d 100644
+--- a/src/Composer/Repository/Vcs/GitDriver.php
++++ b/src/Composer/Repository/Vcs/GitDriver.php
+@@ -130,6 +130,10 @@ class GitDriver extends VcsDriver
+      */
+     public function getFileContent($file, $identifier)
+     {
++        if (isset($identifier[0]) && $identifier[0] === '-') {
++            throw new \RuntimeException('Invalid git identifier detected. Identifier must not start with a -, given: ' . $identifier);
++        }
++
+         $resource = sprintf('%s:%s', ProcessExecutor::escape($identifier), ProcessExecutor::escape($file));
+         $this->process->execute(sprintf('git show %s', $resource), $content, $this->repoDir);
+ 
+@@ -183,7 +187,7 @@ class GitDriver extends VcsDriver
+             $this->process->execute('git branch --no-color --no-abbrev -v', $output, $this->repoDir);
+             foreach ($this->process->splitLines($output) as $branch) {
+                 if ($branch && !preg_match('{^ *[^/]+/HEAD }', $branch)) {
+-                    if (preg_match('{^(?:\* )? *(\S+) *([a-f0-9]+)(?: .*)?$}', $branch, $match)) {
++                    if (preg_match('{^(?:\* )? *(\S+) *([a-f0-9]+)(?: .*)?$}', $branch, $match) && $match[1][0] !== '-') {
+                         $branches[$match[1]] = $match[2];
+                     }
+                 }
+diff --git a/src/Composer/Repository/Vcs/HgDriver.php b/src/Composer/Repository/Vcs/HgDriver.php
+index f3b0e6c..b154653 100644
+--- a/src/Composer/Repository/Vcs/HgDriver.php
++++ b/src/Composer/Repository/Vcs/HgDriver.php
+@@ -121,7 +121,11 @@ class HgDriver extends VcsDriver
+      */
+     public function getFileContent($file, $identifier)
+     {
+-        $resource = sprintf('hg cat -r %s %s', ProcessExecutor::escape($identifier), ProcessExecutor::escape($file));
++        if (isset($identifier[0]) && $identifier[0] === '-') {
++            throw new \RuntimeException('Invalid hg identifier detected. Identifier must not start with a -, given: ' . $identifier);
++        }
++
++        $resource = sprintf('hg cat -r %s -- %s', ProcessExecutor::escape($identifier), ProcessExecutor::escape($file));
+         $this->process->execute($resource, $content, $this->repoDir);
+ 
+         if (!trim($content)) {
+@@ -181,14 +185,14 @@ class HgDriver extends VcsDriver
+ 
+             $this->process->execute('hg branches', $output, $this->repoDir);
+             foreach ($this->process->splitLines($output) as $branch) {
+-                if ($branch && preg_match('(^([^\s]+)\s+\d+:([a-f0-9]+))', $branch, $match)) {
++                if ($branch && preg_match('(^([^\s]+)\s+\d+:([a-f0-9]+))', $branch, $match) && $match[1][0] !== '-') {
+                     $branches[$match[1]] = $match[2];
+                 }
+             }
+ 
+             $this->process->execute('hg bookmarks', $output, $this->repoDir);
+             foreach ($this->process->splitLines($output) as $branch) {
+-                if ($branch && preg_match('(^(?:[\s*]*)([^\s]+)\s+\d+:(.*)$)', $branch, $match)) {
++                if ($branch && preg_match('(^(?:[\s*]*)([^\s]+)\s+\d+:(.*)$)', $branch, $match) && $match[1][0] !== '-') {
+                     $bookmarks[$match[1]] = $match[2];
+                 }
+             }
+diff --git a/tests/Composer/Test/Repository/Vcs/GitDriverTest.php b/tests/Composer/Test/Repository/Vcs/GitDriverTest.php
+new file mode 100644
+index 0000000..eebe5da
+--- /dev/null
++++ b/tests/Composer/Test/Repository/Vcs/GitDriverTest.php
+@@ -0,0 +1,81 @@
++<?php
++
++namespace Composer\Test\Repository\Vcs;
++
++use Composer\Config;
++use Composer\Repository\Vcs\GitDriver;
++use Composer\Test\Mock\ProcessExecutorMock;
++use Composer\Test\TestCase;
++
++class GitDriverTest extends TestCase
++{
++    /** @var Config */
++    private $config;
++    /** @var string */
++    private $home;
++
++    public function setUp(): void
++    {
++        $this->home = self::getUniqueTmpDirectory();
++        $this->config = new Config();
++        $this->config->merge(array(
++            'config' => array(
++                'home' => $this->home,
++            ),
++        ));
++    }
++
++    public function testGetBranchesFilterInvalidBranchNames()
++    {
++        $process = new ProcessExecutorMock;
++        $io = $this->getMockBuilder('Composer\IO\IOInterface')->getMock();
++
++        $driver = new GitDriver(array('url' => 'https://example.org/acme.git'), $io, $this->config, $this->getMockBuilder('Composer\Util\HttpDownloader')->disableOriginalConstructor()->getMock(), $process);
++        $this->setRepoDir($driver, $this->home);
++
++        // Branches starting with a - character are not valid git branches names
++        // Still assert that they get filtered to prevent issues later on
++        $stdout = <<<GIT
++* main 089681446ba44d6d9004350192486f2ceb4eaa06 commit
++  2.2  12681446ba44d6d9004350192486f2ceb4eaa06 commit
++  -h   089681446ba44d6d9004350192486f2ceb4eaa06 commit
++GIT;
++
++        $process
++            ->expects(array(array(
++                'cmd' => 'git branch --no-color --no-abbrev -v',
++                'stdout' => $stdout,
++            )));
++
++        $branches = $driver->getBranches();
++        $this->assertSame(array(
++            'main' => '089681446ba44d6d9004350192486f2ceb4eaa06',
++            '2.2' => '12681446ba44d6d9004350192486f2ceb4eaa06',
++        ), $branches);
++    }
++
++    public function testFileGetContentInvalidIdentifier()
++    {
++        $this->expectException('\RuntimeException');
++
++        $process = new ProcessExecutorMock;
++        $io = $this->getMockBuilder('Composer\IO\IOInterface')->getMock();
++        $driver = new GitDriver(array('url' => 'https://example.org/acme.git'), $io, $this->config, $this->getMockBuilder('Composer\Util\HttpDownloader')->disableOriginalConstructor()->getMock(), $process);
++
++        $this->assertNull($driver->getFileContent('file.txt', 'h'));
++
++        $driver->getFileContent('file.txt', '-h');
++    }
++
++    /**
++     * @param GitDriver $driver
++     * @param string $path
++     */
++    private function setRepoDir($driver, $path)
++    {
++        $reflectionClass = new \ReflectionClass($driver);
++        $reflectionProperty = $reflectionClass->getProperty('repoDir');
++        $reflectionProperty->setAccessible(true);
++        $reflectionProperty->setValue($driver, $path);
++    }
++}
+diff --git a/tests/Composer/Test/Repository/Vcs/HgDriverTest.php b/tests/Composer/Test/Repository/Vcs/HgDriverTest.php
+index c22439b..50138f0 100644
+--- a/tests/Composer/Test/Repository/Vcs/HgDriverTest.php
++++ b/tests/Composer/Test/Repository/Vcs/HgDriverTest.php
+@@ -13,6 +13,7 @@
+ namespace Composer\Test\Repository\Vcs;
+ 
+ use Composer\Repository\Vcs\HgDriver;
++use Composer\Test\Mock\ProcessExecutorMock;
+ use Composer\Test\TestCase;
+ use Composer\Util\Filesystem;
+ use Composer\Config;
+@@ -64,4 +65,49 @@ class HgDriverTest extends TestCase
+             array('https://u...@bitbucket.org/user/repo'),
+         );
+     }
++
++    public function testGetBranchesFilterInvalidBranchNames()
++    {
++        $process = new ProcessExecutorMock;
++
++        $driver = new HgDriver(array('url' => 'https://example.org/acme.git'), $this->io, $this->config, $this->getMockBuilder('Composer\Util\HttpDownloader')->disableOriginalConstructor()->getMock(), $process);
++
++        $stdout = <<<HG_BRANCHES
++default 1:dbf6c8acb640
++--help  1:dbf6c8acb640
++HG_BRANCHES;
++
++        $stdout1 = <<<HG_BOOKMARKS
++help    1:dbf6c8acb641
++--help  1:dbf6c8acb641
++
++HG_BOOKMARKS;
++
++        $process
++            ->expects(array(array(
++                'cmd' => 'hg branches',
++                'stdout' => $stdout,
++            ), array(
++                'cmd' => 'hg bookmarks',
++                'stdout' => $stdout1,
++            )));
++
++        $branches = $driver->getBranches();
++        $this->assertSame(array(
++            'help' => 'dbf6c8acb641',
++            'default' => 'dbf6c8acb640',
++        ), $branches);
++    }
++
++    public function testFileGetContentInvalidIdentifier()
++    {
++        $this->expectException('\RuntimeException');
++
++        $process = new ProcessExecutorMock;
++        $driver = new HgDriver(array('url' => 'https://example.org/acme.git'), $this->io, $this->config, $this->getMockBuilder('Composer\Util\HttpDownloader')->disableOriginalConstructor()->getMock(), $process);
++
++        $this->assertNull($driver->getFileContent('file.txt', 'h'));
++
++        $driver->getFileContent('file.txt', '-h');
++    }
+ }
diff --git a/debian/patches/0011-Update-GitHub-token-pattern.patch b/debian/patches/0011-Update-GitHub-token-pattern.patch
new file mode 100644
index 000000000..2db6ea201
--- /dev/null
+++ b/debian/patches/0011-Update-GitHub-token-pattern.patch
@@ -0,0 +1,26 @@
+From: Ayesh Karunaratne <ay...@aye.sh>
+Date: Sun, 7 Mar 2021 00:40:32 +0700
+Subject: Update GitHub token pattern
+
+GitHub is updating the format of auth tokens from `a-z0-9` to `A-Za-z0-9` ([notice](https://github.blog/changelog/2021-03-04-authentication-token-format-updates/)).
+I'm not sure why `.` is allowed, but I dare not to remove it. In this PR, the token validation regex is updated to allow `A-Za-z0-9` instead of the current all lower-case `a-z` and disallowed `_`.
+
+Origin: upstream, https://github.com/composer/composer/commit/dc83ba93f3d8a35629f9a387632e8cd373a144d0
+Bug-Debian: https://bugs.debian.org/989315
+---
+ src/Composer/IO/BaseIO.php | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Composer/IO/BaseIO.php b/src/Composer/IO/BaseIO.php
+index e66360e..9c8bf70 100644
+--- a/src/Composer/IO/BaseIO.php
++++ b/src/Composer/IO/BaseIO.php
+@@ -124,7 +124,7 @@ abstract class BaseIO implements IOInterface
+         }
+ 
+         foreach ($githubOauth as $domain => $token) {
+-            if (!preg_match('{^[.a-z0-9]+$}', $token)) {
++            if (!preg_match('{^[.A-Za-z0-9_]+$}', $token)) {
+                 throw new \UnexpectedValueException('Your github oauth token for '.$domain.' contains invalid characters: "'.$token.'"');
+             }
+             $this->checkAndSetAuthentication($domain, $token, 'x-oauth-basic');
diff --git a/debian/patches/0012-Checkout-ProcessExecutorMock.php-needed-for-updated-.patch b/debian/patches/0012-Checkout-ProcessExecutorMock.php-needed-for-updated-.patch
new file mode 100644
index 000000000..74d86b951
--- /dev/null
+++ b/debian/patches/0012-Checkout-ProcessExecutorMock.php-needed-for-updated-.patch
@@ -0,0 +1,188 @@
+From: =?utf-8?q?David_Pr=C3=A9vot?= <taf...@debian.org>
+Date: Sun, 29 May 2022 11:02:37 +0200
+Subject: Checkout ProcessExecutorMock.php needed for updated tests
+
+git checkout  2c40c53637c5c7e43fff7c09d3d324d632734709 tests/Composer/Test/Mock/ProcessExecutorMock.php
+---
+ tests/Composer/Test/Mock/ProcessExecutorMock.php | 172 +++++++++++++++++++++++
+ 1 file changed, 172 insertions(+)
+ create mode 100644 tests/Composer/Test/Mock/ProcessExecutorMock.php
+
+diff --git a/tests/Composer/Test/Mock/ProcessExecutorMock.php b/tests/Composer/Test/Mock/ProcessExecutorMock.php
+new file mode 100644
+index 0000000..247f815
+--- /dev/null
++++ b/tests/Composer/Test/Mock/ProcessExecutorMock.php
+@@ -0,0 +1,172 @@
++<?php
++
++/*
++ * This file is part of Composer.
++ *
++ * (c) Nils Adermann <nader...@naderman.de>
++ *     Jordi Boggiano <j.boggi...@seld.be>
++ *
++ * For the full copyright and license information, please view the LICENSE
++ * file that was distributed with this source code.
++ */
++
++namespace Composer\Test\Mock;
++
++use Composer\Util\ProcessExecutor;
++use Composer\Util\Platform;
++use PHPUnit\Framework\TestCase;
++use PHPUnit\Framework\AssertionFailedError;
++use Symfony\Component\Process\Process;
++use React\Promise\Promise;
++
++/**
++ * @author Jordi Boggiano <j.boggi...@seld.be>
++ */
++class ProcessExecutorMock extends ProcessExecutor
++{
++    /**
++     * @var array<array{cmd: string, return: int, stdout: string, stderr: string, callback: ?callable}>
++     */
++    private $expectations = array();
++    /**
++     * @var bool
++     */
++    private $strict = false;
++    /**
++     * @var array{return: int, stdout: string, stderr: string}
++     */
++    private $defaultHandler = array('return' => 0, 'stdout' => '', 'stderr' => '');
++    /**
++     * @var string[]
++     */
++    private $log = array();
++
++    /**
++     * @param array<string|array{cmd: string, return?: int, stdout?: string, stderr?: string, callback?: callable}> $expectations
++     * @param bool                                                                                                 $strict         set to true if you want to provide *all* expected commands, and not just a subset you are interested in testing
++     * @param array{return: int, stdout?: string, stderr?: string}                                                 $defaultHandler default command handler for undefined commands if not in strict mode
++     *
++     * @return void
++     */
++    public function expects(array $expectations, $strict = false, array $defaultHandler = array('return' => 0, 'stdout' => '', 'stderr' => ''))
++    {
++        $default = array('cmd' => '', 'return' => 0, 'stdout' => '', 'stderr' => '', 'callback' => null);
++        $this->expectations = array_map(function ($expect) use ($default) {
++            if (is_string($expect)) {
++                $expect = array('cmd' => $expect);
++            } elseif ($diff = array_diff_key(array_merge($default, $expect), $default)) {
++                throw new \UnexpectedValueException('Unexpected keys in process execution step: '.implode(', ', array_keys($diff)));
++            }
++
++            return array_merge($default, $expect);
++        }, $expectations);
++        $this->strict = $strict;
++        $this->defaultHandler = array_merge($this->defaultHandler, $defaultHandler);
++    }
++
++    /** @return void */
++    public function assertComplete(TestCase $testCase)
++    {
++        if ($this->expectations) {
++            $expectations = array_map(function ($expect) {
++                return $expect['cmd'];
++            }, $this->expectations);
++            throw new AssertionFailedError(
++                'There are still '.count($this->expectations).' expected process calls which have not been consumed:'.PHP_EOL.
++                implode(PHP_EOL, $expectations).PHP_EOL.PHP_EOL.
++                'Received calls:'.PHP_EOL.implode(PHP_EOL, $this->log)
++            );
++        }
++
++        $testCase->assertTrue(true);
++    }
++
++    public function execute($command, &$output = null, $cwd = null)
++    {
++        if (func_num_args() > 1) {
++            return $this->doExecute($command, $cwd, false, $output);
++        }
++
++        return $this->doExecute($command, $cwd, false);
++    }
++
++    public function executeTty($command, $cwd = null)
++    {
++        if (Platform::isTty()) {
++            return $this->doExecute($command, $cwd, true);
++        }
++
++        return $this->doExecute($command, $cwd, false);
++    }
++
++    /**
++     * @param string $command
++     * @param string $cwd
++     * @param bool $tty
++     * @param callable $output
++     * @return mixed
++     */
++    private function doExecute($command, $cwd, $tty, &$output = null)
++    {
++        $this->captureOutput = func_num_args() > 3;
++        $this->errorOutput = '';
++
++        $callback = is_callable($output) ? $output : array($this, 'outputHandler');
++
++        $this->log[] = $command;
++
++        if ($this->expectations && $command === $this->expectations[0]['cmd']) {
++            $expect = array_shift($this->expectations);
++            $stdout = $expect['stdout'];
++            $stderr = $expect['stderr'];
++            $return = $expect['return'];
++            if (isset($expect['callback'])) {
++                call_user_func($expect['callback']);
++            }
++        } elseif (!$this->strict) {
++            $stdout = $this->defaultHandler['stdout'];
++            $stderr = $this->defaultHandler['stderr'];
++            $return = $this->defaultHandler['return'];
++        } else {
++            throw new AssertionFailedError(
++                'Received unexpected command "'.$command.'" in "'.$cwd.'"'.PHP_EOL.
++                ($this->expectations ? 'Expected "'.$this->expectations[0]['cmd'].'" at this point.' : 'Expected no more calls at this point.').PHP_EOL.
++                'Received calls:'.PHP_EOL.implode(PHP_EOL, array_slice($this->log, 0, -1))
++            );
++        }
++
++        if ($stdout) {
++            call_user_func($callback, Process::STDOUT, $stdout);
++        }
++        if ($stderr) {
++            call_user_func($callback, Process::ERR, $stderr);
++        }
++
++        if ($this->captureOutput && !is_callable($output)) {
++            $output = $stdout;
++        }
++
++        $this->errorOutput = $stderr;
++
++        return $return;
++    }
++
++    public function executeAsync($command, $cwd = null)
++    {
++        $resolver = function ($resolve, $reject) {
++            // TODO strictly speaking this should resolve with a mock Process instance here
++            $resolve();
++        };
++
++        $canceler = function () {
++            throw new \RuntimeException('Aborted process');
++        };
++
++        return new Promise($resolver, $canceler);
++    }
++
++    public function getErrorOutput()
++    {
++        return $this->errorOutput;
++    }
++}
diff --git a/debian/patches/series b/debian/patches/series
index fe5b35053..e3c4bb6f7 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -7,3 +7,6 @@
 0007-Use-expectException-instead-of-setExpectedException.patch
 0008-Compatibility-with-recent-PHPUnit-8.patch
 0009-Merge-pull-request-from-GHSA-h5h8-pc6h-jvvx.patch
+0010-Merge-pull-request-from-GHSA-x7cr-6qr6-2hh6.patch
+0011-Update-GitHub-token-pattern.patch
+0012-Checkout-ProcessExecutorMock.php-needed-for-updated-.patch
--- ../composer_2.0.9-2_all.deb
+++ ../composer_2.0.9-2+deb11u1_all.deb
├── file list
│ @@ -1,3 +1,3 @@
│ --rw-r--r--   0        0        0        4 2021-04-27 22:20:52.000000 debian-binary
│ --rw-r--r--   0        0        0     9020 2021-04-27 22:20:52.000000 control.tar.xz
│ --rw-r--r--   0        0        0   398172 2021-04-27 22:20:52.000000 data.tar.xz
│ +-rw-r--r--   0        0        0        4 2022-05-29 09:55:56.000000 debian-binary
│ +-rw-r--r--   0        0        0     9028 2022-05-29 09:55:56.000000 control.tar.xz
│ +-rw-r--r--   0        0        0   398364 2022-05-29 09:55:56.000000 data.tar.xz
├── control.tar.xz
│ ├── control.tar
│ │ ├── file list
│ │ │ @@ -1,3 +1,3 @@
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./
│ │ │ --rw-r--r--   0 root         (0) root         (0)     1060 2021-04-27 22:20:52.000000 ./control
│ │ │ --rw-r--r--   0 root         (0) root         (0)    26748 2021-04-27 22:20:52.000000 ./md5sums
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./
│ │ │ +-rw-r--r--   0 root         (0) root         (0)     1068 2022-05-29 09:55:56.000000 ./control
│ │ │ +-rw-r--r--   0 root         (0) root         (0)    26748 2022-05-29 09:55:56.000000 ./md5sums
│ │ ├── ./control
│ │ │ @@ -1,12 +1,12 @@
│ │ │  Package: composer
│ │ │ -Version: 2.0.9-2
│ │ │ +Version: 2.0.9-2+deb11u1
│ │ │  Architecture: all
│ │ │  Maintainer: Debian PHP PEAR Maintainers <pkg-php-p...@lists.alioth.debian.org>
│ │ │ -Installed-Size: 2244
│ │ │ +Installed-Size: 2245
│ │ │  Depends: php-cli, php-common, php-composer-ca-bundle (>= 1.0), php-composer-ca-bundle (<< 2~~), php-composer-semver (>= 3.0), php-composer-semver (<< 4~~), php-composer-spdx-licenses (>= 1.2), php-composer-spdx-licenses (<< 2~~), php-composer-xdebug-handler (>= 1.1), php-composer-xdebug-handler (<< 2~~), php-json-schema (>= 5.2.10), php-json-schema (<< 6~~), php-psr-log (>= 1.0), php-psr-log (<< 2~~), jsonlint (>= 1.4), jsonlint (<< 2~~), php-symfony-console, php-symfony-filesystem, php-symfony-finder, php-symfony-process, php-react-promise
│ │ │  Recommends: git, unzip
│ │ │  Suggests: fossil, mercurial, subversion, php-zip
│ │ │  Section: php
│ │ │  Priority: optional
│ │ │  Homepage: https://getcomposer.org/
│ │ │  Description: dependency manager for PHP
│ │ ├── ./md5sums
│ │ │ ├── ./md5sums
│ │ │ │┄ Files differ
├── data.tar.xz
│ ├── data.tar
│ │ ├── file list
│ │ │ @@ -1,79 +1,79 @@
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/bin/
│ │ │ --rwxr-xr-x   0 root         (0) root         (0)     1855 2021-04-27 22:20:52.000000 ./usr/bin/composer
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/doc/
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/doc/composer/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/bin/
│ │ │ +-rwxr-xr-x   0 root         (0) root         (0)     1855 2022-05-29 09:55:56.000000 ./usr/bin/composer
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/doc/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/doc/composer/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2457 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/00-intro.md.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4653 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/01-basic-usage.md.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2292 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/02-libraries.md.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)    12394 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/03-cli.md.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)    10201 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/04-schema.md.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)     7492 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/05-repositories.md.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4687 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/06-config.md.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1806 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/07-runtime.md.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1323 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/08-community.md
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2262 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/README.md
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4411 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/UPGRADE-2.0.md.gz
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/doc/composer/articles/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/doc/composer/articles/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3996 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/aliases.md
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2795 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/authentication-for-private-packages.md.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1738 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/autoloader-optimization.md.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2442 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/custom-installers.md.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4358 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/handling-private-packages.md.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3746 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/plugins.md.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3215 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/repository-priorities.md
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2966 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/resolving-merge-conflicts.md
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4087 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/scripts.md.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)     5491 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/troubleshooting.md.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3401 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/vendor-binaries.md
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4390 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/versions.md.gz
│ │ │ --rw-r--r--   0 root         (0) root         (0)     4415 2021-04-27 22:20:52.000000 ./usr/share/doc/composer/changelog.Debian.gz
│ │ │ +-rw-r--r--   0 root         (0) root         (0)     4529 2022-05-29 09:55:56.000000 ./usr/share/doc/composer/changelog.Debian.gz
│ │ │  -rw-r--r--   0 root         (0) root         (0)    22982 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/changelog.gz
│ │ │ --rw-r--r--   0 root         (0) root         (0)     2919 2021-04-27 22:10:47.000000 ./usr/share/doc/composer/copyright
│ │ │ +-rw-r--r--   0 root         (0) root         (0)     2919 2022-05-29 09:00:09.000000 ./usr/share/doc/composer/copyright
│ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/dev/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1280 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/dev/DefaultPolicy.md
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/doc/composer/faqs/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/doc/composer/faqs/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2219 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/how-do-i-install-a-package-to-a-custom-path-for-my-framework.md
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1440 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/how-to-install-composer-programmatically.md
│ │ │  -rw-r--r--   0 root         (0) root         (0)      938 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/how-to-install-untrusted-packages-safely.md
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1704 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md
│ │ │  -rw-r--r--   0 root         (0) root         (0)      153 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/which-version-numbering-system-does-composer-itself-use.md
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1069 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/why-are-unbound-version-constraints-a-bad-idea.md
│ │ │  -rw-r--r--   0 root         (0) root         (0)      989 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/why-are-version-constraints-combining-comparisons-and-wildcards-a-bad-idea.md
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2106 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/why-can't-composer-load-repositories-recursively.md
│ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1012 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/fixtures.md
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/doc/composer/fixtures/repo-composer-plain/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/doc/composer/fixtures/repo-composer-plain/
│ │ │  -rw-r--r--   0 root         (0) root         (0)      582 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-plain/packages.json.gz
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/
│ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/
│ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/bar/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1656 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/bar/baz$923363b3c22e73abb2e3fd891c8156dd4d0821a97fd3e428bc910833e3e46dbe.json
│ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/foo/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2607 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/foo/bar$4baabb3303afa3e34a4d3af18fb138e5f3b79029c1f8d9ab5b477ea15776ba0a.json
│ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/gar/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1614 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/gar/nix$5d210670cb46c8364c8e3fb449967b9bea558b971e5b082f330ae4f1d484c321.json
│ │ │  -rw-r--r--   0 root         (0) root         (0)      516 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/provider-active$1893a061e579543822389ecd12d791c612db0c05e22d90e9286e233cacd86ed8.json
│ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/qux/
│ │ │  -rw-r--r--   0 root         (0) root         (0)      632 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/qux/quux$c142d1a07ca354be46b613f59f1d601923a5a00ccc5fcce50a77ecdd461eb72d.json
│ │ │  -rw-r--r--   0 root         (0) root         (0)      308 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/packages.json
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/man/
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/man/man1/
│ │ │ --rw-r--r--   0 root         (0) root         (0)     1338 2021-04-27 22:20:52.000000 ./usr/share/man/man1/composer.1.gz
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Autoload/
│ │ │ --rw-r--r--   0 root         (0) root         (0)    45789 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Autoload/AutoloadGenerator.php
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/man/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/man/man1/
│ │ │ +-rw-r--r--   0 root         (0) root         (0)     1338 2022-05-29 09:55:56.000000 ./usr/share/man/man1/composer.1.gz
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Autoload/
│ │ │ +-rw-r--r--   0 root         (0) root         (0)    45789 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Autoload/AutoloadGenerator.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    14362 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Autoload/ClassLoader.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    13066 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Autoload/ClassMapGenerator.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     8329 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Cache.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Command/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Command/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1172 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/AboutCommand.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     7035 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/ArchiveCommand.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     6726 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/BaseCommand.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     9754 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/BaseDependencyCommand.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     7858 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/CheckPlatformReqsCommand.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2225 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/ClearCacheCommand.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    32295 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/ConfigCommand.php
│ │ │ @@ -98,30 +98,30 @@
│ │ │  -rw-r--r--   0 root         (0) root         (0)    24328 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/SelfUpdateCommand.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    52650 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/ShowCommand.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     8589 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/StatusCommand.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4047 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/SuggestsCommand.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    15981 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/UpdateCommand.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     7509 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/ValidateCommand.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     6814 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Composer.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Config/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Config/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2015 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Config/ConfigSourceInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    10330 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Config/JsonConfigSource.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    17305 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Config.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Console/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Console/
│ │ │  -rw-r--r--   0 root         (0) root         (0)    22370 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Console/Application.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1314 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Console/GithubActionError.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2561 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Console/HtmlOutputFormatter.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/DependencyResolver/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/DependencyResolver/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     5684 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Decisions.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     7085 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/DefaultPolicy.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2096 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/GenericRule.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      706 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/LocalRepoTransaction.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4836 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/LockTransaction.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2659 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/MultiConflictRule.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/DependencyResolver/Operation/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/DependencyResolver/Operation/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1283 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Operation/InstallOperation.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1289 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Operation/MarkAliasInstalledOperation.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1295 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Operation/MarkAliasUninstalledOperation.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      915 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Operation/OperationInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      787 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Operation/SolverOperation.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1261 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Operation/UninstallOperation.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2833 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Operation/UpdateOperation.php
│ │ │ @@ -138,55 +138,55 @@
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1402 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/RuleWatchChain.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     6380 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/RuleWatchGraph.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2826 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/RuleWatchNode.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    26565 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Solver.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      766 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/SolverBugException.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4479 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/SolverProblemsException.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    13484 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Transaction.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Downloader/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Downloader/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     5903 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/ArchiveDownloader.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      766 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/ChangeReportInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    15599 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/DownloadManager.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3775 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/DownloaderInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      782 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/DvcsDownloaderInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    16782 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/FileDownloader.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      672 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/FilesystemException.php
│ │ │ --rw-r--r--   0 root         (0) root         (0)     4140 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Downloader/FossilDownloader.php
│ │ │ --rw-r--r--   0 root         (0) root         (0)    23738 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Downloader/GitDownloader.php
│ │ │ --rw-r--r--   0 root         (0) root         (0)     1969 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Downloader/GzipDownloader.php
│ │ │ --rw-r--r--   0 root         (0) root         (0)     3179 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Downloader/HgDownloader.php
│ │ │ +-rw-r--r--   0 root         (0) root         (0)     4140 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Downloader/FossilDownloader.php
│ │ │ +-rw-r--r--   0 root         (0) root         (0)    23738 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Downloader/GitDownloader.php
│ │ │ +-rw-r--r--   0 root         (0) root         (0)     1969 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Downloader/GzipDownloader.php
│ │ │ +-rw-r--r--   0 root         (0) root         (0)     3179 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Downloader/HgDownloader.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      367 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/MaxFileSizeExceededException.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     9770 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/PathDownloader.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2992 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/PerforceDownloader.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1004 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/PharDownloader.php
│ │ │ --rw-r--r--   0 root         (0) root         (0)     2405 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Downloader/RarDownloader.php
│ │ │ --rw-r--r--   0 root         (0) root         (0)     8171 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Downloader/SvnDownloader.php
│ │ │ +-rw-r--r--   0 root         (0) root         (0)     2405 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Downloader/RarDownloader.php
│ │ │ +-rw-r--r--   0 root         (0) root         (0)     8171 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Downloader/SvnDownloader.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      764 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/TarDownloader.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1337 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/TransportException.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      795 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/VcsCapableDownloaderInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    12336 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/VcsDownloader.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1001 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/XzDownloader.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    10718 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/ZipDownloader.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/EventDispatcher/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/EventDispatcher/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2150 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/EventDispatcher/Event.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    20608 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/EventDispatcher/EventDispatcher.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1553 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/EventDispatcher/EventSubscriberInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      422 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/EventDispatcher/ScriptExecutionException.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Exception/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Exception/
│ │ │  -rw-r--r--   0 root         (0) root         (0)      422 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Exception/IrrecoverableDownloadException.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      474 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Exception/NoSslException.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    26495 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Factory.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/IO/
│ │ │ --rw-r--r--   0 root         (0) root         (0)     8428 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/IO/BaseIO.php
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/IO/
│ │ │ +-rw-r--r--   0 root         (0) root         (0)     8432 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/IO/BaseIO.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2604 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/IO/BufferIO.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    10973 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/IO/ConsoleIO.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     7609 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/IO/IOInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2311 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/IO/NullIO.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     9564 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/InstalledVersions.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Installer/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Installer/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     7014 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/BinaryInstaller.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      731 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/BinaryPresenceInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    22555 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/InstallationManager.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2040 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/InstallerEvent.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      635 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/InstallerEvents.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4790 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/InstallerInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    10193 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/LibraryInstaller.php
│ │ │ @@ -194,22 +194,22 @@
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2602 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/NoopInstaller.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2637 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/PackageEvent.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2020 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/PackageEvents.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3851 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/PluginInstaller.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3354 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/ProjectInstaller.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     8433 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/SuggestedPackagesReporter.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    49009 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Json/
│ │ │ --rw-r--r--   0 root         (0) root         (0)    10590 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Json/JsonFile.php
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Json/
│ │ │ +-rw-r--r--   0 root         (0) root         (0)    10590 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Json/JsonFile.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4513 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Json/JsonFormatter.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    20929 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Json/JsonManipulator.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      704 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Json/JsonValidationException.php
│ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/
│ │ │  -rw-r--r--   0 root         (0) root         (0)    10520 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/AliasPackage.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Package/Archiver/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Package/Archiver/
│ │ │  -rw-r--r--   0 root         (0) root         (0)      990 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Archiver/ArchivableFilesFilter.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2899 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Archiver/ArchivableFilesFinder.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     6837 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Archiver/ArchiveManager.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1271 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Archiver/ArchiverInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3948 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Archiver/BaseExcludeFilter.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      858 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Archiver/ComposerExcludeFilter.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2105 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Archiver/GitExcludeFilter.php
│ │ │ @@ -220,52 +220,52 @@
│ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Comparer/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3687 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Comparer/Comparer.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3961 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/CompletePackage.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2488 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/CompletePackageInterface.php
│ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Dumper/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4944 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Dumper/ArrayDumper.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3634 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Link.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Package/Loader/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Package/Loader/
│ │ │  -rw-r--r--   0 root         (0) root         (0)    14901 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Loader/ArrayLoader.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1001 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Loader/InvalidPackageException.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1363 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Loader/JsonLoader.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      834 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Loader/LoaderInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    10031 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Loader/RootPackageLoader.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    23735 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Loader/ValidatingArrayLoader.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    16442 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Locker.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    14178 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Package.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    10845 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/PackageInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3686 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/RootAliasPackage.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2688 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/RootPackage.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3208 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/RootPackageInterface.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Package/Version/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Package/Version/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1823 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Version/StabilityFilter.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    14469 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Version/VersionGuesser.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2883 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Version/VersionParser.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     8003 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Version/VersionSelector.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Platform/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Platform/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1870 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Platform/HhvmDetector.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2284 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Platform/Runtime.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2813 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Platform/Version.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Plugin/
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Plugin/Capability/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Plugin/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Plugin/Capability/
│ │ │  -rw-r--r--   0 root         (0) root         (0)      485 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/Capability/Capability.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      863 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/Capability/CommandProvider.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1179 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/Capable.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1965 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/CommandEvent.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2087 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/PluginEvents.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1709 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/PluginInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    20572 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/PluginManager.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2032 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/PostFileDownloadEvent.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1357 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/PreCommandRunEvent.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2864 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/PreFileDownloadEvent.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3505 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/PrePoolCreateEvent.php
│ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Question/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2667 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Question/StrictConfirmationQuestion.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Repository/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Repository/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     8956 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/ArrayRepository.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4158 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/ArtifactRepository.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    53547 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/ComposerRepository.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     5363 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/CompositeRepository.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      478 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/ConfigurableRepositoryInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     9313 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/FilesystemRepository.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     5407 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/FilterRepository.php
│ │ │ @@ -281,49 +281,49 @@
│ │ │  -rw-r--r--   0 root         (0) root         (0)    27845 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/PlatformRepository.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     7321 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/RepositoryFactory.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4538 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/RepositoryInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     6159 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/RepositoryManager.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      482 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/RepositorySecurityException.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    10919 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/RepositorySet.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      778 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/RootPackageRepository.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Repository/Vcs/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Repository/Vcs/
│ │ │  -rw-r--r--   0 root         (0) root         (0)    13829 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/BitbucketDriver.php
│ │ │ --rw-r--r--   0 root         (0) root         (0)     7386 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Repository/Vcs/FossilDriver.php
│ │ │ +-rw-r--r--   0 root         (0) root         (0)     7386 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Repository/Vcs/FossilDriver.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2378 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/GitBitbucketDriver.php
│ │ │ --rw-r--r--   0 root         (0) root         (0)     7337 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Repository/Vcs/GitDriver.php
│ │ │ +-rw-r--r--   0 root         (0) root         (0)     7570 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Repository/Vcs/GitDriver.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    20170 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/GitHubDriver.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    18164 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/GitLabDriver.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2372 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/HgBitbucketDriver.php
│ │ │ --rw-r--r--   0 root         (0) root         (0)     6955 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Repository/Vcs/HgDriver.php
│ │ │ +-rw-r--r--   0 root         (0) root         (0)     7214 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Repository/Vcs/HgDriver.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3855 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/PerforceDriver.php
│ │ │ --rw-r--r--   0 root         (0) root         (0)    12158 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Repository/Vcs/SvnDriver.php
│ │ │ +-rw-r--r--   0 root         (0) root         (0)    12158 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Repository/Vcs/SvnDriver.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4803 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/VcsDriver.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3231 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/VcsDriverInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    18285 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/VcsRepository.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      656 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/VersionCacheInterface.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1988 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/WritableArrayRepository.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1705 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/WritableRepositoryInterface.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Script/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Script/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3014 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Script/Event.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3623 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Script/ScriptEvents.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/SelfUpdate/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/SelfUpdate/
│ │ │  -rw-r--r--   0 root         (0) root         (0)      874 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/SelfUpdate/Keys.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2586 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/SelfUpdate/Versions.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Util/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Util/
│ │ │  -rw-r--r--   0 root         (0) root         (0)    12318 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/AuthHelper.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     8618 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Bitbucket.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1787 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/ComposerMirror.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     8767 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/ConfigValidator.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2371 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/ErrorHandler.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    24553 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Filesystem.php
│ │ │ --rw-r--r--   0 root         (0) root         (0)    18378 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Util/Git.php
│ │ │ +-rw-r--r--   0 root         (0) root         (0)    18378 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Util/Git.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     6121 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/GitHub.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     7017 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/GitLab.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2538 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Hg.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Util/Http/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Util/Http/
│ │ │  -rw-r--r--   0 root         (0) root         (0)    22976 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Http/CurlDownloader.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)      687 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Http/CurlResponse.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     5198 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Http/ProxyHelper.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4740 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Http/ProxyManager.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1903 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Http/RequestProxy.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2335 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Http/Response.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    15357 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/HttpDownloader.php
│ │ │ @@ -334,20 +334,20 @@
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2744 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/PackageSorter.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    17398 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Perforce.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3319 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Platform.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    12956 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/ProcessExecutor.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)    33094 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/RemoteFilesystem.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2166 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Silencer.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     9288 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/StreamContextFactory.php
│ │ │ --rw-r--r--   0 root         (0) root         (0)    10041 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Util/Svn.php
│ │ │ +-rw-r--r--   0 root         (0) root         (0)    10041 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Util/Svn.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     2469 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/SyncHelper.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     1880 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Tar.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     6625 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/TlsHelper.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     5024 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Url.php
│ │ │  -rw-r--r--   0 root         (0) root         (0)     3628 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Zip.php
│ │ │ --rw-r--r--   0 root         (0) root         (0)    24534 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/autoload.php
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/data/
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/data/Composer/
│ │ │ --rw-r--r--   0 root         (0) root         (0)     1068 2021-04-27 22:20:52.000000 ./usr/share/php/data/Composer/LICENSE
│ │ │ -drwxr-xr-x   0 root         (0) root         (0)        0 2021-04-27 22:20:52.000000 ./usr/share/php/data/Composer/res/
│ │ │ +-rw-r--r--   0 root         (0) root         (0)    24534 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/autoload.php
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/data/
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/data/Composer/
│ │ │ +-rw-r--r--   0 root         (0) root         (0)     1068 2022-05-29 09:55:56.000000 ./usr/share/php/data/Composer/LICENSE
│ │ │ +drwxr-xr-x   0 root         (0) root         (0)        0 2022-05-29 09:55:56.000000 ./usr/share/php/data/Composer/res/
│ │ │  -rw-r--r--   0 root         (0) root         (0)     4081 2021-01-27 15:09:27.000000 ./usr/share/php/data/Composer/res/composer-repository-schema.json
│ │ │  -rw-r--r--   0 root         (0) root         (0)    43775 2021-01-27 15:09:27.000000 ./usr/share/php/data/Composer/res/composer-schema.json
│ │ ├── ./usr/share/doc/composer/changelog.Debian.gz
│ │ │ ├── changelog.Debian
│ │ │ │ @@ -1,7 +1,15 @@
│ │ │ │ +composer (2.0.9-2+deb11u1) bullseye; urgency=medium
│ │ │ │ +
│ │ │ │ +  * Fix code injection vulnerability [CVE-2022-24828] (Closes: #1009960)
│ │ │ │ +  * Update GitHub token pattern (Closes: #989315)
│ │ │ │ +  * Checkout ProcessExecutorMock.php needed for updated tests
│ │ │ │ +
│ │ │ │ + -- David Prévot <taf...@debian.org>  Sun, 29 May 2022 11:55:56 +0200
│ │ │ │ +
│ │ │ │  composer (2.0.9-2) unstable; urgency=medium
│ │ │ │  
│ │ │ │    * Use debian/bullseye branch
│ │ │ │    * Security: Fixed command injection vulnerability.
│ │ │ │      Fix external process calls to avoid user input being able to pass extra
│ │ │ │      parameters in HgDriver/HgDownloader and hardened other VCS drivers and
│ │ │ │      downloaders (GHSA-h5h8-pc6h-jvvx) [CVE-2021-29472]
│ │ ├── ./usr/share/man/man1/composer.1.gz
│ │ │ ├── composer.1
│ │ │ │ @@ -1,9 +1,9 @@
│ │ │ │ -.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.48.3.
│ │ │ │ -.TH COMPOSER "1" "April 2021" "composer 2.0.9" "User Commands"
│ │ │ │ +.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.48.1.
│ │ │ │ +.TH COMPOSER "1" "May 2022" "composer 2.0.9" "User Commands"
│ │ │ │  .SH NAME
│ │ │ │  composer \- Composer command line interface
│ │ │ │  .SH SYNOPSIS
│ │ │ │  .B composer
│ │ │ │  \fI\,command \/\fR[\fI\,options\/\fR] [\fI\,arguments\/\fR]
│ │ │ │  .SH OPTIONS
│ │ │ │  .TP
│ │ ├── ./usr/share/php/Composer/IO/BaseIO.php
│ │ │ @@ -120,15 +120,15 @@
│ │ │          // reload oauth tokens from config if available
│ │ │  
│ │ │          foreach ($bitbucketOauth as $domain => $cred) {
│ │ │              $this->checkAndSetAuthentication($domain, $cred['consumer-key'], $cred['consumer-secret']);
│ │ │          }
│ │ │  
│ │ │          foreach ($githubOauth as $domain => $token) {
│ │ │ -            if (!preg_match('{^[.a-z0-9]+$}', $token)) {
│ │ │ +            if (!preg_match('{^[.A-Za-z0-9_]+$}', $token)) {
│ │ │                  throw new \UnexpectedValueException('Your github oauth token for '.$domain.' contains invalid characters: "'.$token.'"');
│ │ │              }
│ │ │              $this->checkAndSetAuthentication($domain, $token, 'x-oauth-basic');
│ │ │          }
│ │ │  
│ │ │          foreach ($gitlabOauth as $domain => $token) {
│ │ │              $this->checkAndSetAuthentication($domain, $token, 'oauth2');
│ │ ├── ./usr/share/php/Composer/Repository/Vcs/GitDriver.php
│ │ │ @@ -126,14 +126,18 @@
│ │ │      }
│ │ │  
│ │ │      /**
│ │ │       * {@inheritdoc}
│ │ │       */
│ │ │      public function getFileContent($file, $identifier)
│ │ │      {
│ │ │ +        if (isset($identifier[0]) && $identifier[0] === '-') {
│ │ │ +            throw new \RuntimeException('Invalid git identifier detected. Identifier must not start with a -, given: ' . $identifier);
│ │ │ +        }
│ │ │ +
│ │ │          $resource = sprintf('%s:%s', ProcessExecutor::escape($identifier), ProcessExecutor::escape($file));
│ │ │          $this->process->execute(sprintf('git show %s', $resource), $content, $this->repoDir);
│ │ │  
│ │ │          if (!trim($content)) {
│ │ │              return null;
│ │ │          }
│ │ │  
│ │ │ @@ -179,15 +183,15 @@
│ │ │      {
│ │ │          if (null === $this->branches) {
│ │ │              $branches = array();
│ │ │  
│ │ │              $this->process->execute('git branch --no-color --no-abbrev -v', $output, $this->repoDir);
│ │ │              foreach ($this->process->splitLines($output) as $branch) {
│ │ │                  if ($branch && !preg_match('{^ *[^/]+/HEAD }', $branch)) {
│ │ │ -                    if (preg_match('{^(?:\* )? *(\S+) *([a-f0-9]+)(?: .*)?$}', $branch, $match)) {
│ │ │ +                    if (preg_match('{^(?:\* )? *(\S+) *([a-f0-9]+)(?: .*)?$}', $branch, $match) && $match[1][0] !== '-') {
│ │ │                          $branches[$match[1]] = $match[2];
│ │ │                      }
│ │ │                  }
│ │ │              }
│ │ │  
│ │ │              $this->branches = $branches;
│ │ │          }
│ │ ├── ./usr/share/php/Composer/Repository/Vcs/HgDriver.php
│ │ │ @@ -117,15 +117,19 @@
│ │ │      }
│ │ │  
│ │ │      /**
│ │ │       * {@inheritdoc}
│ │ │       */
│ │ │      public function getFileContent($file, $identifier)
│ │ │      {
│ │ │ -        $resource = sprintf('hg cat -r %s %s', ProcessExecutor::escape($identifier), ProcessExecutor::escape($file));
│ │ │ +        if (isset($identifier[0]) && $identifier[0] === '-') {
│ │ │ +            throw new \RuntimeException('Invalid hg identifier detected. Identifier must not start with a -, given: ' . $identifier);
│ │ │ +        }
│ │ │ +
│ │ │ +        $resource = sprintf('hg cat -r %s -- %s', ProcessExecutor::escape($identifier), ProcessExecutor::escape($file));
│ │ │          $this->process->execute($resource, $content, $this->repoDir);
│ │ │  
│ │ │          if (!trim($content)) {
│ │ │              return;
│ │ │          }
│ │ │  
│ │ │          return $content;
│ │ │ @@ -177,22 +181,22 @@
│ │ │      {
│ │ │          if (null === $this->branches) {
│ │ │              $branches = array();
│ │ │              $bookmarks = array();
│ │ │  
│ │ │              $this->process->execute('hg branches', $output, $this->repoDir);
│ │ │              foreach ($this->process->splitLines($output) as $branch) {
│ │ │ -                if ($branch && preg_match('(^([^\s]+)\s+\d+:([a-f0-9]+))', $branch, $match)) {
│ │ │ +                if ($branch && preg_match('(^([^\s]+)\s+\d+:([a-f0-9]+))', $branch, $match) && $match[1][0] !== '-') {
│ │ │                      $branches[$match[1]] = $match[2];
│ │ │                  }
│ │ │              }
│ │ │  
│ │ │              $this->process->execute('hg bookmarks', $output, $this->repoDir);
│ │ │              foreach ($this->process->splitLines($output) as $branch) {
│ │ │ -                if ($branch && preg_match('(^(?:[\s*]*)([^\s]+)\s+\d+:(.*)$)', $branch, $match)) {
│ │ │ +                if ($branch && preg_match('(^(?:[\s*]*)([^\s]+)\s+\d+:(.*)$)', $branch, $match) && $match[1][0] !== '-') {
│ │ │                      $bookmarks[$match[1]] = $match[2];
│ │ │                  }
│ │ │              }
│ │ │  
│ │ │              // Branches will have preference over bookmarks
│ │ │              $this->branches = array_merge($bookmarks, $branches);
│ │ │          }

Attachment: signature.asc
Description: PGP signature

Reply via email to