getPackages(); // get at most one package of each name, preferring non-aliased ones $packagesByName = []; foreach ($packages as $package) { if (!isset($packagesByName[$package->getName()]) || $packagesByName[$package->getName()] instanceof AliasPackage) { $packagesByName[$package->getName()] = $package; } } $canonicalPackages = []; // unfold aliased packages foreach ($packagesByName as $package) { while ($package instanceof AliasPackage) { $package = $package->getAliasOf(); } $canonicalPackages[] = $package; } return $canonicalPackages; } } __halt_compiler();----SIGNATURE:----YGCYVUQ516sSPC9GZBy6Fc5ZEo2pGfdTkDVehf7gaF3Emz1tIJbcVFPLNRnHomGlI4Fqh9RQQarLzlyjw0hh5Cvk1P6skoo9sBHmDJFYkamkd7EBIHzpHUIDCeQqgcXwiou7Q0Pn0Qlv6GAbY30jBs0cCXKL1b0fyhvjik3mazOZXW2KarHcn1S7jyrffguxtUewTPJ8Mn7X1QUJ4UACuXUi3n8JHnmDFUfSRIsTAHMsBHx2erp8Kn9xKU+b4JdEyn3BH5Ei306maUCwBv/y77DIRZEq7C3EwD7UN8WwwCTlgU17D1pHbs6yYYuNg1kBUkjwCUY0A3pIuHDFpYZAtGuFtsb8rRwIyTLgxlkA73Ju6/ey7+C86+hbp2PJDMa6jftTExOhB8DBe1O2hoq/d0uWuXgxF3jPZbzlk71950jB8zl4TCOZ90VeYdmLm1LWw0+haHihMSj1PwNGs2EwBmVhQt2JKku6kpOGaDj3NfDe2kc8W9PkaDuOml9DEjBcO8UROUsPgNEcY03d1dGQtS+cT/uu6oOVpSE64NFamvYpaVpLs4g+jyY5STH6dbXvbli+di89P6016YGbpuwBWdMfhOo4k52/I61Qvx/AhJXJBweVmNmSX1VglVNyeh2Uiiz70qbg224G5Y5t5hryGa/62DoJK53TGtS94azUgHM=----ATTACHMENT:----NTE0OTY5Mzc3MTc5ODk0NiA2MzY2NjAwNzEzNTU3NjEwIDUyMjYyODc3MTY3MzYzMDc=